[Buildroot] [PATCH v6 2/5] eudev: new package.

Thomas De Schampheleire patrickdepinguin at gmail.com
Mon Feb 3 20:51:19 UTC 2014


Hi Eric,

On Mon, Jan 13, 2014 at 4:45 PM, Eric Le Bihan
<eric.le.bihan.dev at free.fr> wrote:
> eudev is a userspace device management daemon. It is a standalone
> version, independent from systemd. It is a fork maintained by Gentoo.
>
> Features:
>
>  - No extra configuration options are available: Gudev is build if
>    libglib2 is selected.
>  - No dependency on hwdata as the package uses its own hardware
>    database (as does systemd).
>
> eudev 1.3 is in sync with systemd v207.
>
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev at free.fr>
> ---
>  linux/linux.mk                  |    2 +-
>  package/Config.in               |    1 +
>  package/eudev/Config.in         |   37 ++++++++++++++++++++++++++++++
>  package/{udev => eudev}/S10udev |    2 +-
>  package/eudev/eudev.mk          |   48 +++++++++++++++++++++++++++++++++++++++
>  system/Config.in                |   15 ++++++++++++
>  6 files changed, 103 insertions(+), 2 deletions(-)
>  create mode 100644 package/eudev/Config.in
>  copy package/{udev => eudev}/S10udev (98%)
>  create mode 100644 package/eudev/eudev.mk

We are targeting to integrate your patches Very Soon Now... (jay!)
Below are a number of minor comments that should be fixed before that, though.

>
> diff --git a/linux/linux.mk b/linux/linux.mk
> index ab25fe9..17365a0 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -185,7 +185,7 @@ define LINUX_CONFIGURE_CMDS
>                 $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config))
>         $(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),
>                 $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(@D)/.config))
> -       $(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV),
> +       $(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV),

To be correct, this change should not be in this patch like that: udev
still exists, so the above should actually duplicate the
enable-inotify line for both udev ánd eudev, right?

>                 $(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER,$(@D)/.config))
>         $(if $(BR2_PACKAGE_KTAP),
>                 $(call KCONFIG_ENABLE_OPT,CONFIG_DEBUG_FS,$(@D)/.config)
> diff --git a/package/Config.in b/package/Config.in
> index aac6f02..e37b33c 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -279,6 +279,7 @@ source "package/dmraid/Config.in"
>  source "package/dvb-apps/Config.in"
>  source "package/dvbsnoop/Config.in"
>  source "package/eeprog/Config.in"
> +source "package/eudev/Config.in"
>  source "package/evemu/Config.in"
>  source "package/evtest/Config.in"
>  source "package/fan-ctrl/Config.in"
> diff --git a/package/eudev/Config.in b/package/eudev/Config.in
> new file mode 100644
> index 0000000..b3462d5
> --- /dev/null
> +++ b/package/eudev/Config.in
> @@ -0,0 +1,37 @@
> +config BR2_PACKAGE_EUDEV
> +       bool "eudev"
> +       depends on !BR2_avr32 # no epoll_create1
> +       depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
> +       depends on BR2_LARGEFILE # util-linux
> +       depends on BR2_USE_WCHAR # util-linux
> +       depends on !BR2_PREFER_STATIC_LIB # kmod
> +       select BR2_PACKAGE_UTIL_LINUX
> +       select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
> +       select BR2_PACKAGE_KMOD
> +       help
> +         Userspace device daemon. This is a standalone version,
> +         independent of systemd. It is a fork maintained by Gentoo.
> +
> +         eudev requires a Linux kernel >= 2.6.34: it relies on devtmpfs
> +         and inotify.
> +
> +         http://github.com/gentoo/eudev/
> +
> +if BR2_PACKAGE_EUDEV
> +
> +config BR2_PACKAGE_EUDEV_RULES_GEN
> +       bool "enable rules generator"
> +       help
> +         Enable persistant rules generator

persistent

(in fact: this same problem is present in the current package/udev/Config.in)

> +
> +endif
> +
> +comment "eudev needs /dev management set to eudev"
> +       depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV

This string should be:
"eudev needs eudev /dev management"
in analogy with the udev comment, as specified in:
http://nightly.buildroot.org/manual.html#_literal_config_in_literal_file

> +
> +comment "eudev needs a toolchain w/ largefile, wchar"
> +       depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
> +
> +comment "eudev needs a toolchain w/ dynamic library"
> +       depends on BR2_avr32
> +       depends on BR2_PREFER_STATIC_LIB

These three comments should be merged into one comment. This unified
comment should depend on !BR2_avr32 (common base dependency, see
manual). Have a look at the current package/udev/Config.in file.

> diff --git a/package/udev/S10udev b/package/eudev/S10udev
> similarity index 98%
> copy from package/udev/S10udev
> copy to package/eudev/S10udev
> index 2c7b7e9..e4d28a2 100755
> --- a/package/udev/S10udev
> +++ b/package/eudev/S10udev
> @@ -17,7 +17,7 @@
>  #
>
>  # Check for missing binaries
> -UDEV_BIN=/lib/udev/udevd
> +UDEV_BIN=/sbin/udevd
>  test -x $UDEV_BIN || exit 5
>
>  # Check for config file and read it
> diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
> new file mode 100644
> index 0000000..aac37e7
> --- /dev/null
> +++ b/package/eudev/eudev.mk
> @@ -0,0 +1,48 @@
> +################################################################################
> +#
> +# eudev
> +#
> +################################################################################
> +
> +EUDEV_VERSION         = 1.3
> +EUDEV_SITE            = https://github.com/gentoo/eudev/archive/
> +EUDEV_SOURCE          = v$(EUDEV_VERSION).tar.gz

This should be replaced by the new github helper.

> +EUDEV_LICENSE         = GPLv2+

The eudev package also contains libudev, gudev, that seem to be
LGPLv2.1+, so the above license statement should be expanded with some
more detail (if possible indicating which parts are GPL and which are
LGPL).

> +EUDEV_LICENSE_FILES   = COPYING

Even though eudev has LGPL components, there is no COPYING.LIB (or
equivalent) file. Ideally, this should be discussed with the eudev
maintainers...

> +EUDEV_INSTALL_STAGING = YES
> +EUDEV_AUTORECONF      = YES

Please don't align the = signs in .mk files (it used to be in the
manual but I removed that :) )

> +
> +# mq_getattr is in librt
> +EUDEV_CONF_ENV += LIBS=-lrt
> +
> +EUDEV_CONF_OPT =               \
> +       --sbindir=/sbin         \
> +       --with-rootlibdir=/lib  \
> +       --libexecdir=/lib       \
> +       --with-firmware-path=/lib/firmware      \
> +       --disable-introspection                 \
> +       --enable-split-usr                      \
> +       --enable-libkmod
> +
> +EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux kmod
> +
> +ifeq ($(BR2_PACKAGE_EUDEV_RULES_GEN),y)
> +EUDEV_CONF_OPT += --enable-rule_generator
> +endif
> +
> +ifeq ($(BR2_LARGEFILE),)
> +EUDEV_CONF_OPT += --disable-largefile
> +endif

I don't think this check is needed: it is done by default in the
autotools infrastructure (see package/Makefile.in)

> +
> +ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
> +EUDEV_CONF_OPT += --enable-gudev
> +EUDEV_DEPENDENCIES += libglib2
> +else
> +EUDEV_CONF_OPT += --disable-gudev
> +endif
> +
> +define EUDEV_INSTALL_INIT_SYSV
> +       $(INSTALL) -m 0755 package/eudev/S10udev $(TARGET_DIR)/etc/init.d/S10udev
> +endef
> +
> +$(eval $(autotools-package))
> diff --git a/system/Config.in b/system/Config.in
> index 8288335..7f4d851 100644
> --- a/system/Config.in
> +++ b/system/Config.in
> @@ -136,6 +136,21 @@ comment "udev doesn't work with 'prefer static libraries'"
>         depends on !BR2_avr32 # udev
>         depends on BR2_PREFER_STATIC_LIB
>
> +config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
> +       bool "Dynamic using eudev"
> +       depends on !BR2_avr32 # eudev
> +       depends on BR2_LARGEFILE
> +       depends on BR2_USE_WCHAR
> +       depends on !BR2_PREFER_STATIC_LIB
> +       select BR2_PACKAGE_EUDEV
> +
> +comment "eudev needs a toolchain w/ largefile, wchar"
> +       depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
> +
> +comment "eudev needs a toolchain w/ dynamic library"
> +       depends on BR2_avr32 # eudev
> +       depends on BR2_PREFER_STATIC_LIB

Same comments about the 'comment's here: merge into one, and the avr32
should be negated.

> +
>  endchoice
>
>  config BR2_ROOTFS_DEVICE_TABLE
> --

Best regards,
Thomas


More information about the buildroot mailing list