path: root/meta/recipes-multimedia/alsa
diff options
authorMike Crowe <>2018-05-02 14:38:03 +0100
committerRichard Purdie <>2018-05-04 09:55:00 +0100
commit022b644e6ba2caa0b32ce3323621c07f78166234 (patch)
tree643c87b1189ef6cca1215279b030655053af0581 /meta/recipes-multimedia/alsa
parentc16bc7c9b1526ff4b9496af00ada08aa4109c0ef (diff)
alsa-utils: Fix error when removing unwanted udev rules
If alsa-utils configure is not passed a --with-udev-rules-dir option then it defaults to using /lib/udev/rules.d. This meant that the hard-coded use of ${D}/lib in do_install in 262e69c9c7acf0beb7bb6b96299e3c993c906434 worked correctly to remove the unwanted rules. Subsequently, 0a4372705a030ca54ed420cdfec33d46ab93499c changed do_install to use ${nonarch_base_libdir}, claiming to fix this in the usrmerge case. This means that if udev is not present in PACKAGECONFIG and usrmerge is present in DISTRO_FEATURES then the alsa-utils build system will install the rules in ${D}/lib/udev/rules.d but do_install will attempt to remove ${D}/usr/lib, resulting in something like: rmdir: failed to remove '.../tmp-glibc/work/i586-oe-linux/alsa-utils/1.1.5-r0/image/usr/lib': No such file or directory To fix this, let's just tell configure to install the rules in a specific known location when udev is disabled. This location can then easily be cleaned up in do_install without doing any harm if udev is enabled. Tested both with and without usrmerge in DISTRO_FEATURES and with and without udev in PACKAGECONFIG. Signed-off-by: Mike Crowe <> Cc: Phil Blundell <> Cc: Peter Kjellerstedt <> Signed-off-by: Ross Burton <>
Diffstat (limited to 'meta/recipes-multimedia/alsa')
1 files changed, 5 insertions, 6 deletions
diff --git a/meta/recipes-multimedia/alsa/ b/meta/recipes-multimedia/alsa/
index f2231f34f0..33215bf159 100644
--- a/meta/recipes-multimedia/alsa/
+++ b/meta/recipes-multimedia/alsa/
@@ -16,7 +16,7 @@ PACKAGECONFIG ??= "udev"
# or no alsabat at all.
PACKAGECONFIG[bat] = "--enable-bat,--disable-bat,fftwf"
-PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,,udev"
+PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,--with-udev-rules-dir=/unwanted/rules.d,udev"
PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
SRC_URI = "${PV}.tar.bz2 \
@@ -101,9 +101,8 @@ do_install() {
rm ${D}${sbindir}/
rm -f ${D}${sbindir}/
- if ${@bb.utils.contains('PACKAGECONFIG', 'udev', 'false', 'true', d)}; then
- # This is where alsa-utils will install its rules if we don't tell it anything else.
- rm -rf ${D}${nonarch_base_libdir}/udev
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_base_libdir}
- fi
+ # If udev is disabled, we told configure to install the rules
+ # in /unwanted, so we can remove them now. If udev is enabled,
+ # then /unwanted won't exist and this will have no effect.
+ rm -rf ${D}/unwanted