eudev: new package

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.

[Peter: add BR2_USE_MMU dependency]
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
eric.le.bihan.dev@free.fr 2014-02-07 14:21:32 +01:00 committed by Peter Korsgaard
parent 9b8ffcd8f2
commit 937a95449e
6 changed files with 144 additions and 0 deletions

View File

@ -188,6 +188,8 @@ define LINUX_CONFIGURE_CMDS
$(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config))
$(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV),
$(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER,$(@D)/.config))
$(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV),
$(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER,$(@D)/.config))
$(if $(BR2_PACKAGE_KTAP),
$(call KCONFIG_ENABLE_OPT,CONFIG_DEBUG_FS,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_EVENT_TRACING,$(@D)/.config)

View File

@ -278,6 +278,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"

38
package/eudev/Config.in Normal file
View File

@ -0,0 +1,38 @@
config BR2_PACKAGE_EUDEV
bool "eudev"
depends on !BR2_avr32 # no epoll_create1
depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on BR2_USE_MMU # uses fork()
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 persistent rules generator
endif
comment "eudev needs eudev /dev management"
depends on !BR2_avr32
depends on BR2_USE_MMU
depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
comment "eudev needs a toolchain w/ largefile, wchar, dynamic library"
depends on !BR2_avr32
depends on BR2_USE_MMU
depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB

48
package/eudev/S10udev Executable file
View File

@ -0,0 +1,48 @@
#!/bin/sh
#
# udev This is a minimal non-LSB version of a UDEV startup script. It
# was derived by stripping down the udev-058 LSB version for use
# with buildroot on embedded hardware using Linux 2.6.34+ kernels.
#
# You may need to customize this for your system's resource limits
# (including startup time!) and administration. For example, if
# your early userspace has a custom initramfs or initrd you might
# need /dev much earlier; or without hotpluggable busses (like USB,
# PCMCIA, MMC/SD, and so on) your /dev might be static after boot.
#
# This script assumes your system boots right into the eventual root
# filesystem, and that init runs this udev script before any programs
# needing more device nodes than the bare-bones set -- /dev/console,
# /dev/zero, /dev/null -- that's needed to boot and run this script.
#
# Check for missing binaries
UDEV_BIN=/sbin/udevd
test -x $UDEV_BIN || exit 5
# Check for config file and read it
UDEV_CONFIG=/etc/udev/udev.conf
test -r $UDEV_CONFIG || exit 6
. $UDEV_CONFIG
case "$1" in
start)
echo -n "Populating ${udev_root:-/dev} using udev: "
echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
$UDEV_BIN -d || (echo "FAIL" && exit 1)
udevadm trigger
echo "done"
;;
stop)
# Stop execution of events
udevadm control --stop-exec-queue
killall udevd
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0

43
package/eudev/eudev.mk Normal file
View File

@ -0,0 +1,43 @@
################################################################################
#
# eudev
#
################################################################################
EUDEV_VERSION = 1.3
EUDEV_SITE = $(call github,gentoo,eudev,v$(EUDEV_VERSION))
EUDEV_LICENSE = GPLv2+ (programs), LGPLv2.1+ (libraries)
EUDEV_LICENSE_FILES = COPYING
EUDEV_INSTALL_STAGING = YES
EUDEV_AUTORECONF = YES
# 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_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))

View File

@ -137,6 +137,18 @@ 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, dynamic library"
depends on !BR2_avr32 # eudev
depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
endchoice
config BR2_ROOTFS_DEVICE_TABLE