[oe] [meta-filesystems][PATCH] recipes-utils: Add recipe for udevil

Krzysztof Kozlowski krzk at kernel.org
Thu Jul 13 18:56:16 UTC 2017


On Tue, Jul 11, 2017 at 02:02:05PM -0700, Andre McCurdy wrote:
> On Tue, Jul 11, 2017 at 1:08 PM, Krzysztof Kozlowski <krzk at kernel.org> wrote:
> > On Tue, Jul 11, 2017 at 12:33:27PM -0700, Andre McCurdy wrote:
> >> On Sun, Jul 9, 2017 at 9:29 AM, Krzysztof Kozlowski <krzk at kernel.org> wrote:
> >> > udevil is a command line Linux program which mounts and unmounts
> >> > removable devices without a password.
> >> >
> >> > Signed-off-by: Krzysztof Kozlowski <krzk at kernel.org>
> >> > ---
> >> >  .../0001-udevil-0.4.3-fix-compile-with-gcc6.patch  | 12 ++++++++++
> >> >  .../recipes-utils/udevil/udevil_0.4.4.bb           | 28 ++++++++++++++++++++++
> >> >  2 files changed, 40 insertions(+)
> >> >  create mode 100644 meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
> >> >  create mode 100644 meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
> >> >
> >> > diff --git a/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch b/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
> >> > new file mode 100644
> >> > index 000000000000..355e93a37b3b
> >> > --- /dev/null
> >> > +++ b/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
> >> > @@ -0,0 +1,12 @@
> >> > +Fix compilation with GCC6
> >> > +
> >> > +--- a/src/device-info.c        2013-12-09 14:59:27.000000000 +0100
> >> > ++++ b/src/device-info.c        2017-03-13 07:06:25.506666680 +0100
> >> > +@@ -3,6 +3,7 @@
> >> > +  * contains code excerpts from udisks v1.0.4
> >> > + ************************************************************************** */
> >> > +
> >> > ++#include <sys/stat.h>
> >> > + #include "device-info.h"
> >> > +
> >> > + static char *
> >> > diff --git a/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb b/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
> >> > new file mode 100644
> >> > index 000000000000..4ad4a09ed717
> >> > --- /dev/null
> >> > +++ b/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
> >> > @@ -0,0 +1,28 @@
> >> > +SUMMARY = "A command line Linux program which mounts and unmounts removable devices"
> >> > +HOMEPAGE = "http://ignorantguru.github.io/udevil/"
> >> > +
> >> > +DEPENDS = "glib-2.0 \
> >> > +           glib-2.0-native \
> >> > +           intltool-native \
> >> > +           udev \
> >> > +"
> >> > +RDEPENDS_${PN} = "glib-2.0 \
> >> > +                  udev \
> >>
> >> Runtime dependencies on libraries are detected automatically so
> >> explicitly setting RDEPENDS like this shouldn't be required.
> >
> > I'll remove glib then.
> >
> >>
> >> > +"
> >> > +
> >> > +LICENSE = "GPL-3.0"
> >> > +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
> >> > +
> >> > +inherit autotools pkgconfig systemd
> >> > +
> >> > +SRC_URI = "https://github.com/IgnorantGuru/udevil/raw/pkg/${PV}/udevil-${PV}.tar.xz \
> >> > +           file://0001-udevil-0.4.3-fix-compile-with-gcc6.patch \
> >> > +"
> >> > +
> >> > +SRC_URI[md5sum] = "dc1c489b603a0500a04dc7e1805ac1d9"
> >> > +SRC_URI[sha256sum] = "ce8c51fd4d589cda7be56e75b42188deeb258c66fc911a9b3a70a3945c157739"
> >> > +
> >> > +SYSTEMD_SERVICE_${PN} = "devmon at .service"
> >> > +SYSTEMD_AUTO_ENABLE = "disable"
> >> > +
> >> > +FILES_${PN} += " ${libdir}/systemd/system/devmon at .service"
> >>
> >> Setting SYSTEMD_SERVICE_${PN} should be enough to ensure that the
> >> service file gets packaged correctly, so explicitly adding it to
> >> FILES_${PN} like this shouldn't be required.
> >
> > Without it, bitbake complains:
> > WARNING: udevil-0.4.4-r0 do_package: QA Issue: udevil: Files/directories were installed but not shipped in any package:
> >   /usr/lib
> >   /usr/lib/systemd
> >   /usr/lib/systemd/system
> >   /usr/lib/systemd/system/devmon at .service
> >
> > I wonder if this is related to differences in systemd in my build
> > setting which are leading to error:
> > http://errors.yoctoproject.org/Errors/Details/147258/
> 
> It looks like udevil installs the service file in a hardcoded path
> under ${libdir} rather than respecting ${systemd_unitdir} as defined
> by the distro:
> 
>   https://github.com/IgnorantGuru/udevil/blob/master/etc/Makefile.am
>   https://github.com/IgnorantGuru/udevil/tree/master/etc/systemd
> 
> so some patching or sed fix-ups and moving files in do_install() is
> going to be required to cover cases where the two don't align.
> 
> > I tried DISTRO=poky and DISTRO=nodistro and I cannot reproduce error
> > above (with FILES both are working fine).
> 
> If you look in meta/classes/systemd.bbclass ->
> systemd_check_services() you should see the paths which are searched
> to find the service files defined via SYSTEMD_SERVICE_${PN}. From
> there you should be able to determine why your build appears to find
> the service file somewhere in these search paths and doesn't hit the
> fatal error.

Thanks for hints! I found out that entire systemd_populate_packages()
was ignored because of missing systemd feature. Now I have the same
error as reported.

Best regards,
Krzysztof




More information about the Openembedded-devel mailing list