> -----Original Message----- > From: openembedded-core-boun...@lists.openembedded.org > [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of > Mike Crowe > Sent: den 1 maj 2018 13:37 > To: openembedded-core@lists.openembedded.org > Cc: Mike Crowe <m...@mcrowe.com>; Peter Kjellerstedt > <peter.kjellerst...@axis.com> > Subject: [OE-core] [PATCH] 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. > > Tested both with and without usrmerge in DISTRO_FEATURES. > > Signed-off-by: Mike Crowe <m...@mcrowe.com> > Cc: Phil Blundell <p...@pbcl.net> > Cc: Peter Kjellerstedt <peter.kjellerst...@axis.com> > --- > meta/recipes-multimedia/alsa/alsa-utils_1.1.5.bb | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.1.5.bb > b/meta/recipes-multimedia/alsa/alsa-utils_1.1.5.bb > index f2231f34f0..5561b4de3f 100644 > --- a/meta/recipes-multimedia/alsa/alsa-utils_1.1.5.bb > +++ b/meta/recipes-multimedia/alsa/alsa-utils_1.1.5.bb > @@ -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 = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \ > @@ -102,8 +102,8 @@ do_install() { > rm -f ${D}${sbindir}/alsabat-test.sh > > if ${@bb.utils.contains('PACKAGECONFIG', 'udev', 'false', 'true', d)}; > then
I suggest that you remove the if-statement since the /unwanted directory shall always be removed if it exists so there is no need to test for it. > - # 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} > + # If udev is disabled, we told configure to install the rules > in /unwanted, so > + # we can get rid of them now. > + rm -rf ${D}/unwanted Correct the indentation (the rest of the function is indented using tabs). > fi > } > -- > 2.11.0 //Peter -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core