Skip to contentSkip to conversation

alsa-lib: Allow empty alsa-lib package for SDK

PATCH In review Joshua Watt 3 participants 4 messages Aug 2, 2018 – Aug 3, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 alsa-lib: Allow empty alsa-lib package for SDK

Without ALLOW_EMPTY, the empty alsa-lib package (which gets culled) makes it fairly difficult to create an image that has libasound, then create an SDK from that image that has the proper development files.

If there is no alsa-lib package, the only way to get libasound on a target image is to do:

IMAGE_INSTALL += "libasound"

This however causes a problem because all of the development files that would be desired in the SDK are located in alsa-lib-dev, which won't be included (because alsa-lib wasn't included). Without ALLOW_EMPTY_${PN}, it is not possible to do:

IMAGE_INSTALL += "alsa-lib"

because the package is empty and gets culled. Adding the ALLOW_EMPTY and then making alsa-lib RDEPEND on libasound solves this problem and allows alsa-lib to be installed on the target and have the correct development files in the SDK

---
 meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb | 7 +++++++
 1 file changed, 7 insertions(+)
meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb +7 -0
index 6364e9eafaa..581655c5349 100644
@@ -24,6 +24,13 @@ FILES_libasound = "${libdir}/libasound.so.*"
 FILES_alsa-server = "${bindir}/*"
 FILES_alsa-conf = "${datadir}/alsa/"
 
+# Create an alsa-lib package even though it is empty and make it RDEPEND on
+# libasound for target builds. This makes it possible to sanely create a image
+# that has libasound and then generate an SDK from that image that has
+# alsa-lib-dev
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN}_class-target = "libasound"
+
 RDEPENDS_libasound = "alsa-conf"
 
 # alsa-lib gets automatically added to alsa-lib-dev dependencies, but the
Signature · 1 line
2.17.1
#1 lore raw
Quoted 34 lines · Joshua Watt

Without ALLOW_EMPTY, the empty alsa-lib package (which gets culled) makes it fairly difficult to create an image that has libasound, then create an SDK from that image that has the proper development files.

If there is no alsa-lib package, the only way to get libasound on a target image is to do:

IMAGE_INSTALL += "libasound"

This however causes a problem because all of the development files that would be desired in the SDK are located in alsa-lib-dev, which won't be included (because alsa-lib wasn't included). Without ALLOW_EMPTY_${PN}, it is not possible to do:

IMAGE_INSTALL += "alsa-lib"

because the package is empty and gets culled. Adding the ALLOW_EMPTY and then making alsa-lib RDEPEND on libasound solves this problem and allows alsa-lib to be installed on the target and have the correct development files in the SDK

---
 meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb | 7 +++++++
 1 file changed, 7 insertions(+)
meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb +0 -0
index 6364e9eafaa..581655c5349 100644
@@ -24,6 +24,13 @@ FILES_libasound = "${libdir}/libasound.so.*"
 FILES_alsa-server = "${bindir}/*"
 FILES_alsa-conf = "${datadir}/alsa/"
 

meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb FILES_libasound = "${libdir}/libasound.so.*" · line 36

Quoted 10 lines
meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb +7 -0
+# Create an alsa-lib package even though it is empty and make it RDEPEND on
+# libasound for target builds. This makes it possible to sanely create a image
+# that has libasound and then generate an SDK from that image that has
+# alsa-lib-dev
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN}_class-target = "libasound"
+
 RDEPENDS_libasound = "alsa-conf"
 
 # alsa-lib gets automatically added to alsa-lib-dev dependencies, but the

Looks fine to me, although renaming alsa-lib-dev to libasound-dev would seem like a sensible option too.

Signature · 4 lines
Tanu

https://www.patreon.com/tanuk
https://liberapay.com/tanuk
#2 lore raw

I agree with Tanu, the packaging in this recipe is non-standard and instead of making it more non-standard, let's just fix it.

Remove the libasound recipe, the contents of that can go into $PN. Either way with Debian renaming it gets renamed to libasound2, and without renaming it's still a sensible name. The dependency hacks can then all be removed.

Ross

Quoted 59 lines · Tanu Kaskinen
Quoted 34 lines · Joshua Watt

Without ALLOW_EMPTY, the empty alsa-lib package (which gets culled) makes it fairly difficult to create an image that has libasound, then create an SDK from that image that has the proper development files.

If there is no alsa-lib package, the only way to get libasound on a target image is to do:

IMAGE_INSTALL += "libasound"

This however causes a problem because all of the development files that would be desired in the SDK are located in alsa-lib-dev, which won't be included (because alsa-lib wasn't included). Without ALLOW_EMPTY_${PN}, it is not possible to do:

IMAGE_INSTALL += "alsa-lib"

because the package is empty and gets culled. Adding the ALLOW_EMPTY and then making alsa-lib RDEPEND on libasound solves this problem and allows alsa-lib to be installed on the target and have the correct development files in the SDK

---
 meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb | 7 +++++++
 1 file changed, 7 insertions(+)
meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb +0 -0
index 6364e9eafaa..581655c5349 100644
@@ -24,6 +24,13 @@ FILES_libasound = "${libdir}/libasound.so.*"
 FILES_alsa-server = "${bindir}/*"
 FILES_alsa-conf = "${datadir}/alsa/"
 

meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb FILES_libasound = "${libdir}/libasound.so.*" · line 36

Quoted 10 lines
meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb +7 -0
+# Create an alsa-lib package even though it is empty and make it RDEPEND on
+# libasound for target builds. This makes it possible to sanely create a image
+# that has libasound and then generate an SDK from that image that has
+# alsa-lib-dev
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN}_class-target = "libasound"
+
 RDEPENDS_libasound = "alsa-conf"
 
 # alsa-lib gets automatically added to alsa-lib-dev dependencies, but the

Looks fine to me, although renaming alsa-lib-dev to libasound-dev would seem like a sensible option too.

--
Tanu

https://www.patreon.com/tanuk
https://liberapay.com/tanuk
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#3 lore raw
Quoted 8 lines · Ross

I agree with Tanu, the packaging in this recipe is non-standard and instead of making it more non-standard, let's just fix it.

Remove the libasound recipe, the contents of that can go into $PN. Either way with Debian renaming it gets renamed to libasound2, and without renaming it's still a sensible name. The dependency hacks can
then all be removed.

Done. Sorry I, forgot the "in-reply-to" when I sent the update. See:
http://lists.openembedded.org/pipermail/openembedded-core/2018-August/1
53684.html

Quoted 79 lines

Ross

Quoted 75 lines · Tanu Kaskinen
Quoted 58 lines · Joshua Watt

Without ALLOW_EMPTY, the empty alsa-lib package (which gets culled)
makes it fairly difficult to create an image that has libasound, then
create an SDK from that image that has the proper development files.

If there is no alsa-lib package, the only way to get libasound on a
target image is to do:

IMAGE_INSTALL += "libasound"

This however causes a problem because all of the development files that
would be desired in the SDK are located in alsa-lib-dev, which won't be
included (because alsa-lib wasn't included). Without ALLOW_EMPTY_${PN},
it is not possible to do:

IMAGE_INSTALL += "alsa-lib"

because the package is empty and gets culled. Adding the ALLOW_EMPTY and
then making alsa-lib RDEPEND on libasound solves this problem and allows
alsa-lib to be installed on the target and have the correct development
files in the SDK

---
 meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb | 7 +++++++
 1 file changed, 7 insertions(+)
meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb +1 -0
index 6364e9eafaa..581655c5349 100644
@@ -24,6 +24,13 @@ FILES_libasound = "${libdir}/libasound.so.*"
 FILES_alsa-server = "${bindir}/*"
 FILES_alsa-conf = "${datadir}/alsa/"
 
+# Create an alsa-lib package even though it is empty and make it

RDEPEND on
+# libasound for target builds. This makes it possible to sanely create a image
+# that has libasound and then generate an SDK from that image that has

meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb +4 -0
+# alsa-lib-dev
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN}_class-target = "libasound"
+
 RDEPENDS_libasound = "alsa-conf"
 
 # alsa-lib gets automatically added to alsa-lib-dev
Quoted 1 line

dependencies, but the

Looks fine to me, although renaming alsa-lib-dev to libasound-dev would
seem like a sensible option too.

--
Tanu

https://www.patreon.com/tanuk
https://liberapay.com/tanuk
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Signature · 1 line
Joshua Watt <[email protected]>