* [Buildroot] [PATCH v5 1/5] sysvinit: depend on SysV selected as init system.
2014-01-03 12:44 [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Eric Le Bihan
@ 2014-01-03 12:44 ` Eric Le Bihan
2014-01-03 12:44 ` [Buildroot] [PATCH v5 2/5] eudev: new package Eric Le Bihan
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Eric Le Bihan @ 2014-01-03 12:44 UTC (permalink / raw)
To: buildroot
In order to prevent sysvinit and systemd to be selected at the same
time, sysvinit can now only be selected if SysV is chosen as init
system.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
package/sysvinit/Config.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/sysvinit/Config.in b/package/sysvinit/Config.in
index 34ec391..d91c643 100644
--- a/package/sysvinit/Config.in
+++ b/package/sysvinit/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_SYSVINIT
bool "sysvinit"
+ depends on BR2_INIT_SYSV
help
/sbin/init - parent of all processes
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Buildroot] [PATCH v5 2/5] eudev: new package.
2014-01-03 12:44 [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Eric Le Bihan
2014-01-03 12:44 ` [Buildroot] [PATCH v5 1/5] sysvinit: depend on SysV selected as init system Eric Le Bihan
@ 2014-01-03 12:44 ` Eric Le Bihan
2014-01-03 12:44 ` [Buildroot] [PATCH v5 3/5] udev: convert to virtual package Eric Le Bihan
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Eric Le Bihan @ 2014-01-03 12:44 UTC (permalink / raw)
To: buildroot
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@free.fr>
---
package/Config.in | 1 +
package/eudev/Config.in | 36 +++++++++++++++++++++++++++++
package/{udev => eudev}/S10udev | 2 +-
package/eudev/eudev.mk | 48 +++++++++++++++++++++++++++++++++++++++
system/Config.in | 15 ++++++++++++
5 files changed, 101 insertions(+), 1 deletion(-)
create mode 100644 package/eudev/Config.in
copy package/{udev => eudev}/S10udev (98%)
create mode 100644 package/eudev/eudev.mk
diff --git a/package/Config.in b/package/Config.in
index 429b519..58a2381 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -274,6 +274,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/evtest/Config.in"
source "package/fan-ctrl/Config.in"
source "package/fconfig/Config.in"
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
new file mode 100644
index 0000000..4406810
--- /dev/null
+++ b/package/eudev/Config.in
@@ -0,0 +1,36 @@
+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.32: it relies on devtmpfs.
+
+ http://github.com/gentoo/eudev/
+
+if BR2_PACKAGE_EUDEV
+
+config BR2_PACKAGE_EUDEV_RULES_GEN
+ bool "enable rules generator"
+ help
+ Enable persistant rules generator
+
+endif
+
+comment "eudev needs /dev management set to eudev"
+ depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_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
+ depends on BR2_PREFER_STATIC_LIB
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
+EUDEV_LICENSE = GPLv2+
+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_LARGEFILE),)
+EUDEV_CONF_OPT += --disable-largefile
+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))
diff --git a/system/Config.in b/system/Config.in
index 54c196c..969bf42 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -130,6 +130,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
+
endchoice
config BR2_ROOTFS_DEVICE_TABLE
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Buildroot] [PATCH v5 3/5] udev: convert to virtual package.
2014-01-03 12:44 [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Eric Le Bihan
2014-01-03 12:44 ` [Buildroot] [PATCH v5 1/5] sysvinit: depend on SysV selected as init system Eric Le Bihan
2014-01-03 12:44 ` [Buildroot] [PATCH v5 2/5] eudev: new package Eric Le Bihan
@ 2014-01-03 12:44 ` Eric Le Bihan
2014-01-03 12:44 ` [Buildroot] [PATCH v5 4/5] systemd: bump to v207 Eric Le Bihan
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Eric Le Bihan @ 2014-01-03 12:44 UTC (permalink / raw)
To: buildroot
This patch converts udev to a virtual package. For the moment, there is only
one provider for the udev features: eudev.
Packages meant to provide udev-like features must select the symbol
BR2_PACKAGE_HAS_UDEV.
Packages depending on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV or
BR2_PACKAGE_UDEV have been converted to use the new symbol.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
Config.in.legacy | 8 ++++
package/ccid/ccid.mk | 2 +-
package/eudev/Config.in | 1 +
package/gpsd/gpsd.mk | 2 +-
package/libatasmart/Config.in | 4 +-
package/network-manager/Config.in | 6 +--
package/pcsc-lite/Config.in | 2 +-
package/systemd/Config.in | 6 +--
package/udev/Config.in | 48 +--------------------
package/udev/udev.mk | 49 ++++------------------
package/udisks/Config.in | 8 ++--
package/usbmount/Config.in | 4 +-
package/x11r7/xdriver_xf86-input-evdev/Config.in | 4 +-
package/xenomai/xenomai.mk | 2 +-
system/Config.in | 22 ++--------
15 files changed, 41 insertions(+), 127 deletions(-)
diff --git a/Config.in.legacy b/Config.in.legacy
index c75e25e..80161db 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -218,6 +218,14 @@ config BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION_WRAP
# Note: BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION is still referenced from
# linux/Config.in
+config BR2_PACKAGE_UDEV
+ bool "udev is now a virtual package"
+ select BR2_PACKAGE_HAS_UDEV
+ help
+ The 'udev' package is now a virtual package. It is
+ currently only provided by 'eudev'.
+
+
###############################################################################
comment "Legacy options removed in 2013.08"
diff --git a/package/ccid/ccid.mk b/package/ccid/ccid.mk
index f39edce..b635aa1 100644
--- a/package/ccid/ccid.mk
+++ b/package/ccid/ccid.mk
@@ -12,7 +12,7 @@ CCID_LICENSE_FILES = COPYING
CCID_INSTALL_STAGING = YES
CCID_DEPENDENCIES = pcsc-lite host-pkgconf libusb
-ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV),y)
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
define CCID_INSTALL_UDEV_RULES
if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \
cp $(@D)/src/92_pcscd_ccid.rules $(TARGET_DIR)/etc/udev/rules.d/ ; \
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index 4406810..66e14b4 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -5,6 +5,7 @@ config BR2_PACKAGE_EUDEV
depends on BR2_LARGEFILE # util-linux
depends on BR2_USE_WCHAR # util-linux
depends on !BR2_PREFER_STATIC_LIB # kmod
+ select BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
select BR2_PACKAGE_KMOD
diff --git a/package/gpsd/gpsd.mk b/package/gpsd/gpsd.mk
index 24b0146..08f6925 100644
--- a/package/gpsd/gpsd.mk
+++ b/package/gpsd/gpsd.mk
@@ -222,7 +222,7 @@ define GPSD_INSTALL_STAGING_CMDS
install)
endef
-ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV),y)
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
define GPSD_INSTALL_UDEV_RULES
(cd $(@D); \
$(GPSD_SCONS_ENV) \
diff --git a/package/libatasmart/Config.in b/package/libatasmart/Config.in
index a3e44f8..534e7c1 100644
--- a/package/libatasmart/Config.in
+++ b/package/libatasmart/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_LIBATASMART
bool "libatasmart"
- depends on BR2_PACKAGE_UDEV # libudev is configure dependency
+ depends on BR2_PACKAGE_HAS_UDEV # libudev is configure dependency
help
The libatasmart package is a disk reporting library.
It only supports a subset of the ATA S.M.A.R.T. functionality.
@@ -8,4 +8,4 @@ config BR2_PACKAGE_LIBATASMART
http://www.linuxfromscratch.org/blfs/view/svn/general/libatasmart.html
comment "libatasmart requires udev to be enabled"
- depends on !BR2_PACKAGE_UDEV
+ depends on !BR2_PACKAGE_HAS_UDEV
diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in
index a194433..311e5fd 100644
--- a/package/network-manager/Config.in
+++ b/package/network-manager/Config.in
@@ -1,16 +1,14 @@
config BR2_PACKAGE_NETWORK_MANAGER
bool "NetworkManager"
depends on !BR2_avr32 # udev
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
- select BR2_PACKAGE_DBUS
depends on BR2_INET_IPV6
depends on BR2_LARGEFILE # acl
depends on BR2_USE_WCHAR # libglib2 and gnutls
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
depends on BR2_USE_MMU # dbus
+ depends on BR2_PACKAGE_HAS_UDEV
+ select BR2_PACKAGE_DBUS
select BR2_PACKAGE_DBUS_GLIB
- select BR2_PACKAGE_UDEV
- select BR2_PACKAGE_UDEV_ALL_EXTRAS
select BR2_PACKAGE_GNUTLS
select BR2_PACKAGE_LIBGCRYPT
select BR2_PACKAGE_LIBNL
diff --git a/package/pcsc-lite/Config.in b/package/pcsc-lite/Config.in
index 4cd89e9..aab42e8 100644
--- a/package/pcsc-lite/Config.in
+++ b/package/pcsc-lite/Config.in
@@ -11,7 +11,7 @@ if BR2_PACKAGE_PCSC_LITE
config BR2_PACKAGE_PCSC_LITE_FORCE_LIBUSB
bool "use libusb"
- depends on !BR2_PACKAGE_UDEV
+ depends on !BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_LIBUSB
help
Select Y if you want to support usb smart card readers.
diff --git a/package/systemd/Config.in b/package/systemd/Config.in
index fe81900..500e623 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_SYSTEMD
bool "systemd"
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
+ depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on BR2_INET_IPV6
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
depends on BR2_USE_MMU # dbus
@@ -18,7 +18,7 @@ config BR2_PACKAGE_SYSTEMD
http://freedesktop.org/wiki/Software/systemd
-comment "systemd needs udev /dev management and a toolchain w/ IPv6, threads"
+comment "systemd needs eudev /dev management and a toolchain w/ IPv6, threads"
depends on BR2_USE_MMU
- depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || !BR2_INET_IPV6 || \
+ depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV || !BR2_INET_IPV6 || \\
!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/udev/Config.in b/package/udev/Config.in
index 91dc7cf..1c9251b 100644
--- a/package/udev/Config.in
+++ b/package/udev/Config.in
@@ -1,46 +1,2 @@
-config BR2_PACKAGE_UDEV
- bool "udev"
- depends on !BR2_avr32 # no epoll_create1
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
- 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.
-
- udev requires a Linux kernel >= 2.6.34: it relies on devtmpfs.
-
- ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/
-
-if BR2_PACKAGE_UDEV
-
-config BR2_PACKAGE_UDEV_RULES_GEN
- bool "enable rules generator"
- help
- Enable persistant rules generator
-
-config BR2_PACKAGE_UDEV_ALL_EXTRAS
- bool "enable all extras"
- select BR2_PACKAGE_ACL
- select BR2_PACKAGE_HWDATA
- select BR2_PACKAGE_LIBGLIB2
- depends on BR2_USE_WCHAR # libglib2
- depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
- depends on BR2_USE_MMU # libglib2
- help
- Enable all extras with external dependencies like
- libacl, hwdata and libglib2
-
-comment "enabling all extras needs a toolchain w/ wchar, threads"
- depends on BR2_USE_MMU
- depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
-
-endif
-
-comment "udev needs udev /dev management and a toolchain w/ largefile, wchar, dynamic library"
- depends on !BR2_avr32
- depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || \
- !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
+config BR2_PACKAGE_HAS_UDEV
+ bool
diff --git a/package/udev/udev.mk b/package/udev/udev.mk
index db86850..d274246 100644
--- a/package/udev/udev.mk
+++ b/package/udev/udev.mk
@@ -4,48 +4,17 @@
#
################################################################################
-UDEV_VERSION = 182
-UDEV_SOURCE = udev-$(UDEV_VERSION).tar.xz
-UDEV_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/hotplug/
-UDEV_LICENSE = GPLv2+
-UDEV_LICENSE_FILES = COPYING
-UDEV_INSTALL_STAGING = YES
+UDEV_SOURCE =
-# mq_getattr is in librt
-UDEV_CONF_ENV += LIBS=-lrt
-
-UDEV_CONF_OPT = \
- --sbindir=/sbin \
- --with-rootlibdir=/lib \
- --libexecdir=/lib \
- --with-usb-ids-path=/usr/share/hwdata/usb.ids \
- --with-pci-ids-path=/usr/share/hwdata/pci.ids \
- --with-firmware-path=/lib/firmware \
- --disable-introspection
-
-UDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux kmod
-
-ifeq ($(BR2_PACKAGE_UDEV_RULES_GEN),y)
-UDEV_CONF_OPT += --enable-rule_generator
-endif
-
-ifeq ($(BR2_PACKAGE_UDEV_ALL_EXTRAS),y)
-UDEV_DEPENDENCIES += acl hwdata libglib2
-UDEV_CONF_OPT += \
- --enable-udev_acl
-else
-UDEV_CONF_OPT += \
- --disable-gudev
+ifeq ($(BR2_PACKAGE_EUDEV),y)
+UDEV_DEPENDENCIES += eudev
endif
-ifeq ($(BR2_PACKAGE_SYSTEMD),y)
- UDEV_CONF_OPT += --with-systemdsystemunitdir=/lib/systemd/system/
-endif
-
-define UDEV_INSTALL_INITSCRIPT
- $(INSTALL) -m 0755 package/udev/S10udev $(TARGET_DIR)/etc/init.d/S10udev
+ifeq ($(UDEV_DEPENDENCIES),)
+define UDEV_CONFIGURE_CMDS
+ echo "No Udev implementation selected. Configuration error."
+ exit 1
endef
+endif
-UDEV_POST_INSTALL_TARGET_HOOKS += UDEV_INSTALL_INITSCRIPT
-
-$(eval $(autotools-package))
+$(eval $(generic-package))
diff --git a/package/udisks/Config.in b/package/udisks/Config.in
index e9539a3..62d5598 100644
--- a/package/udisks/Config.in
+++ b/package/udisks/Config.in
@@ -1,11 +1,9 @@
config BR2_PACKAGE_UDISKS
bool "udisks"
depends on !BR2_avr32 # udev
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
+ depends on BR2_PACKAGE_HAS_UDEV
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus-glib -> glib2
depends on BR2_USE_MMU # lvm2
- select BR2_PACKAGE_UDEV
- select BR2_PACKAGE_UDEV_ALL_EXTRAS
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_DBUS_GLIB
depends on BR2_USE_WCHAR # dbus-glib -> glib2
@@ -36,8 +34,8 @@ config BR2_PACKAGE_UDISKS_LVM2
endif
-comment "udisks needs udev /dev management and a toolchain w/ wchar, threads"
+comment "udisks needs udev /dev mgmnt, toolchain w/ wchar, threads"
depends on !BR2_avr32
depends on BR2_USE_MMU
- depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || \
+ depends on !BR2_PACKAGE_HAS_UDEV || \
!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/usbmount/Config.in b/package/usbmount/Config.in
index 2583e7c..0bb8883 100644
--- a/package/usbmount/Config.in
+++ b/package/usbmount/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_USBMOUNT
bool "usbmount"
- depends on BR2_PACKAGE_UDEV
+ depends on BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_LOCKFILE_PROGS
help
The usbmount package automatically mounts USB mass storage devices
@@ -9,4 +9,4 @@ config BR2_PACKAGE_USBMOUNT
http://usbmount.alioth.debian.org/
comment "usbmount requires udev to be enabled"
- depends on !BR2_PACKAGE_UDEV
+ depends on !BR2_PACKAGE_HAS_UDEV
diff --git a/package/x11r7/xdriver_xf86-input-evdev/Config.in b/package/x11r7/xdriver_xf86-input-evdev/Config.in
index 88d3e6e..6ec14bf 100644
--- a/package/x11r7/xdriver_xf86-input-evdev/Config.in
+++ b/package/x11r7/xdriver_xf86-input-evdev/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV
bool "xf86-input-evdev"
- depends on BR2_PACKAGE_UDEV # libudev is configure dependency
+ depends on BR2_PACKAGE_HAS_UDEV # libudev is configure dependency
select BR2_PACKAGE_XPROTO_INPUTPROTO
select BR2_PACKAGE_XPROTO_RANDRPROTO
select BR2_PACKAGE_XPROTO_XPROTO
@@ -8,4 +8,4 @@ config BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV
Generic Linux input driver
comment "xf86-input-evdev requires udev to be enabled"
- depends on !BR2_PACKAGE_UDEV
+ depends on !BR2_PACKAGE_HAS_UDEV
diff --git a/package/xenomai/xenomai.mk b/package/xenomai/xenomai.mk
index 2dd1bf6..4e9025d 100644
--- a/package/xenomai/xenomai.mk
+++ b/package/xenomai/xenomai.mk
@@ -93,7 +93,7 @@ define XENOMAI_DEVICES
/dev/rtp c 666 0 0 150 0 0 1 32
endef
-ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV),y)
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
XENOMAI_DEPENDENCIES += udev
define XENOMAI_INSTALL_UDEV_RULES
diff --git a/system/Config.in b/system/Config.in
index 969bf42..0559a6e 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -83,17 +83,17 @@ config BR2_INIT_SYSTEMD
depends on BR2_LARGEFILE
depends on BR2_USE_WCHAR
depends on BR2_INET_IPV6
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
+ depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_SYSTEMD
-comment 'systemd needs udev /dev management and a toolchain w/ largefile, wchar, IPv6, threads'
+comment 'systemd needs eudev /dev management and a toolchain w/ largefile, wchar, IPv6, threads'
depends on BR2_USE_MMU
depends on !(BR2_LARGEFILE && BR2_USE_WCHAR && \
BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS && \
- BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV)
+ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV)
config BR2_INIT_NONE
bool "None"
@@ -114,22 +114,6 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
bool "Dynamic using mdev"
select BR2_PACKAGE_BUSYBOX
-config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
- bool "Dynamic using udev"
- depends on !BR2_avr32 # udev
- depends on BR2_LARGEFILE # udev
- depends on BR2_USE_WCHAR # udev
- depends on !BR2_PREFER_STATIC_LIB # udev -> kmod
- select BR2_PACKAGE_UDEV
-
-comment "udev needs a toolchain w/ largefile, wchar"
- depends on !BR2_avr32 # udev
- depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
-
-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
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Buildroot] [PATCH v5 4/5] systemd: bump to v207.
2014-01-03 12:44 [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Eric Le Bihan
` (2 preceding siblings ...)
2014-01-03 12:44 ` [Buildroot] [PATCH v5 3/5] udev: convert to virtual package Eric Le Bihan
@ 2014-01-03 12:44 ` Eric Le Bihan
2014-01-03 12:44 ` [Buildroot] [PATCH v5 5/5] manual: update /dev management section Eric Le Bihan
2014-01-03 13:49 ` [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Samuel Martin
5 siblings, 0 replies; 8+ messages in thread
From: Eric Le Bihan @ 2014-01-03 12:44 UTC (permalink / raw)
To: buildroot
This patch bumps systemd to v207 but also declares it as a provider for the
udev virtual package.
Starting with systemd 183, udev has been merged into
systemd. The udev daemon is now installed as /lib/systemd/systemd-udevd.
This means that /dev management using udev is only available if systemd
is chosen as init system.
When configuring systemd, the following options are available:
- activation of systemd-journal-gatewayd, to access the journal via
HTTP.
- activation of extra features like journal compression and sealing.
Support for uClibc has also been removed because:
- upstream has no interest in supporting uClibc.
- using a shrinked libc brings no advantage, given the size of all the
programs included in Systemd. So using glibc does not matter.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
Config.in.legacy | 2 +-
package/systemd/Config.in | 57 +++++++++++++--
package/systemd/systemd-fix-getty-unit.patch | 36 +++++-----
package/systemd/systemd-fix-page-size.patch | 43 -----------
package/systemd/systemd-uclibc-fix.patch | 59 ----------------
package/systemd/systemd.mk | 98 ++++++++++++++++++--------
package/udev/udev.mk | 4 ++
system/Config.in | 26 +++++--
8 files changed, 165 insertions(+), 160 deletions(-)
delete mode 100644 package/systemd/systemd-fix-page-size.patch
delete mode 100644 package/systemd/systemd-uclibc-fix.patch
diff --git a/Config.in.legacy b/Config.in.legacy
index 80161db..8614958 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -223,7 +223,7 @@ config BR2_PACKAGE_UDEV
select BR2_PACKAGE_HAS_UDEV
help
The 'udev' package is now a virtual package. It is
- currently only provided by 'eudev'.
+ currently provided by 'eudev' or 'systemd'.
###############################################################################
diff --git a/package/systemd/Config.in b/package/systemd/Config.in
index 500e623..ecf7538 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -1,11 +1,21 @@
config BR2_PACKAGE_SYSTEMD
bool "systemd"
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
+ depends on BR2_INIT_SYSTEMD
+ depends on !BR2_avr32 # no epoll_create1
+ depends on BR2_LARGEFILE # util-linux
+ depends on BR2_USE_WCHAR # util-linux
depends on BR2_INET_IPV6
+ depends on !BR2_PREFER_STATIC_LIB # kmod
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
depends on BR2_USE_MMU # dbus
+ select BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_LIBCAP
+ select BR2_PACKAGE_UTIL_LINUX
+ select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
+ select BR2_PACKAGE_KMOD
+ select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod-tools
+ select BR2_PACKAGE_KMOD_TOOLS
help
systemd is a system and service manager for Linux, compatible with
SysV and LSB init scripts. systemd provides aggressive parallelization
@@ -16,9 +26,48 @@ config BR2_PACKAGE_SYSTEMD
elaborate transactional dependency-based service control logic.
It can work as a drop-in replacement for sysvinit.
+ Systemd requires a Linux kernel >= 2.6.32: it relies on devtmpfs.
+ It also requires a Linux kernel with tmpfs vfs and tmpfs POSIX ACL
+ enabled.
+
+ Systemd also provides udev, the userspace device daemon.
+
+ The selection of other packages will enable some features:
+
+ - libglib2 package will add support for gudev.
+ - acl package will add support for multi-seat.
+
http://freedesktop.org/wiki/Software/systemd
-comment "systemd needs eudev /dev management and a toolchain w/ IPv6, threads"
+if BR2_PACKAGE_SYSTEMD
+
+config BR2_PACKAGE_SYSTEMD_ALL_EXTRAS
+ bool "enable all extras"
+ select BR2_PACKAGE_XZ
+ select BR2_PACKAGE_LIBGCRYPT
+ help
+ Enable extra features for Systemd: journal compression and
+ signing.
+
+config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
+ bool "HTTP server for journal events"
+ select BR2_PACKAGE_LIBMICROHTTPD
+ help
+ systemd-journal-gatewayd serves journal events over the
+ network. Clients must connect using HTTP. The server
+ listens on port 19531 by default.
+
+ http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
+
+endif
+
+if BR2_INIT_SYSTEMD
+comment "systemd needs a toolchain w/ largefile, wchar, IPv6, threads"
+ depends on BR2_avr32
depends on BR2_USE_MMU
- depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV || !BR2_INET_IPV6 || \\
- !BR2_TOOLCHAIN_HAS_THREADS
+ depends on !(BR2_LARGEFILE && BR2_USE_WCHAR && \
+ BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS)
+
+comment "systemd needs a toolchain w/ dynamic library"
+ depends on BR2_PREFER_STATIC_LIB
+endif
diff --git a/package/systemd/systemd-fix-getty-unit.patch b/package/systemd/systemd-fix-getty-unit.patch
index 6df54b1..166a2e5 100644
--- a/package/systemd/systemd-fix-getty-unit.patch
+++ b/package/systemd/systemd-fix-getty-unit.patch
@@ -1,34 +1,32 @@
Prefer getty to agetty in console setup systemd units
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
- units/getty at .service.m4 | 2 +-
- units/serial-getty at .service.m4 | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-Index: systemd-37/units/getty at .service.m4
+Index: systemd-206/units/getty at .service.m4
===================================================================
---- systemd-37.orig/units/getty at .service.m4
-+++ systemd-37/units/getty at .service.m4
-@@ -32,7 +32,7 @@
-
+--- systemd-206.orig/units/getty at .service.m4 2013-07-22 00:43:28.000000000 +0200
++++ systemd-206/units/getty at .service.m4 2013-09-18 10:20:17.000000000 +0200
+@@ -27,7 +27,7 @@
+
[Service]
- Environment=TERM=linux
--ExecStart=-/sbin/agetty %I 38400
+ # the VT is cleared by TTYVTDisallocate
+-ExecStart=-/sbin/agetty --noclear %I
+ExecStart=-/sbin/getty -L %I 115200 vt100
+ Type=idle
Restart=always
RestartSec=0
- UtmpIdentifier=%I
-Index: systemd-37/units/serial-getty at .service.m4
+Index: systemd-206/units/serial-getty at .service.m4
===================================================================
---- systemd-37.orig/units/serial-getty at .service.m4
-+++ systemd-37/units/serial-getty at .service.m4
-@@ -32,7 +32,7 @@
-
+--- systemd-206.orig/units/serial-getty at .service.m4 2013-07-22 00:43:28.000000000 +0200
++++ systemd-206/units/serial-getty at .service.m4 2013-09-18 10:21:31.000000000 +0200
+@@ -22,7 +22,7 @@
+ IgnoreOnIsolate=yes
+
[Service]
- Environment=TERM=vt100
--ExecStart=-/sbin/agetty -s %I 115200,38400,9600
+-ExecStart=-/sbin/agetty --keep-baud %I 115200,38400,9600
+ExecStart=-/sbin/getty -L %I 115200 vt100
+ Type=idle
Restart=always
RestartSec=0
- UtmpIdentifier=%I
diff --git a/package/systemd/systemd-fix-page-size.patch b/package/systemd/systemd-fix-page-size.patch
deleted file mode 100644
index 241ceb8..0000000
--- a/package/systemd/systemd-fix-page-size.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit 7264278fbbdc1dc6c30fedc902d1337594aa6ff6
-Author: Lennart Poettering <lennart@poettering.net>
-Date: Wed Mar 21 23:47:44 2012 +0100
-
- journal: PAGE_SIZE is not known on ppc and other archs
-
- Let's use NAME_MAX, as suggested by Dan Walsh
-
-diff --git a/src/journal/journald.c b/src/journal/journald.c
-index d27cb60..87390bd 100644
---- a/src/journal/journald.c
-+++ b/src/journal/journald.c
-@@ -29,7 +29,6 @@
- #include <sys/ioctl.h>
- #include <linux/sockios.h>
- #include <sys/statvfs.h>
--#include <sys/user.h>
-
- #include <systemd/sd-journal.h>
- #include <systemd/sd-login.h>
-@@ -2149,10 +2148,20 @@ static int process_event(Server *s, struct epoll_event *ev) {
- size_t label_len = 0;
- union {
- struct cmsghdr cmsghdr;
-+
-+ /* We use NAME_MAX space for the
-+ * SELinux label here. The kernel
-+ * currently enforces no limit, but
-+ * according to suggestions from the
-+ * SELinux people this will change and
-+ * it will probably be identical to
-+ * NAME_MAX. For now we use that, but
-+ * this should be updated one day when
-+ * the final limit is known.*/
- uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) +
- CMSG_SPACE(sizeof(struct timeval)) +
-- CMSG_SPACE(sizeof(int)) +
-- CMSG_SPACE(PAGE_SIZE)]; /* selinux label */
-+ CMSG_SPACE(sizeof(int)) + /* fd */
-+ CMSG_SPACE(NAME_MAX)]; /* selinux label */
- } control;
- ssize_t n;
- int v;
diff --git a/package/systemd/systemd-uclibc-fix.patch b/package/systemd/systemd-uclibc-fix.patch
deleted file mode 100644
index 9a20845..0000000
--- a/package/systemd/systemd-uclibc-fix.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-[PATCH] fix build with uClibc
-
-Based on OE patch from Khem Raj:
-
-http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-core/systemd/systemd/paper-over-mkostemp.patch
-
-But extended to also cover execvpe (OE carries a patch adding execvpe
-support to uClibc).
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/journal/journal-file.c | 2 ++
- src/macro.h | 15 +++++++++++++++
- 2 files changed, 17 insertions(+)
-
-Index: systemd-44/src/macro.h
-===================================================================
---- systemd-44.orig/src/macro.h
-+++ systemd-44/src/macro.h
-@@ -28,6 +28,21 @@
- #include <sys/uio.h>
- #include <inttypes.h>
-
-+#ifdef __UCLIBC__
-+/* uclibc does not implement mkostemp GNU extension */
-+#define mkostemp(x,y) mkstemp(x)
-+/* uclibc does not implement execvpe GNU extension */
-+#ifndef _GNU_SOURCE
-+#define _GNU_SOURCE
-+#endif
-+#include <unistd.h>
-+static inline int execvpe(const char *file, char *const argv[],
-+ char *const envp[])
-+{
-+ environ = (char **)envp;
-+ return execvp(file, argv);
-+}
-+#endif
- #define _printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
- #define _sentinel_ __attribute__ ((sentinel))
- #define _noreturn_ __attribute__((noreturn))
-Index: systemd-44/src/journal/journal-file.c
-===================================================================
---- systemd-44.orig/src/journal/journal-file.c
-+++ systemd-44/src/journal/journal-file.c
-@@ -229,11 +229,13 @@
- }
- }
-
-+#ifndef __UCLIBC__
- /* Note that the glibc fallocate() fallback is very
- inefficient, hence we try to minimize the allocation area
- as we can. */
- if (posix_fallocate(f->fd, old_size, new_size - old_size) < 0)
- return -errno;
-+#endif
-
- if (fstat(f->fd, &f->last_stat) < 0)
- return -errno;
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index a5dc8e5..bca3058 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -4,75 +4,117 @@
#
################################################################################
-SYSTEMD_VERSION = 44
+SYSTEMD_VERSION = 207
SYSTEMD_SITE = http://www.freedesktop.org/software/systemd/
SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
SYSTEMD_LICENSE = GPLv2+
-SYSTEMD_LICENSE_FILES = LICENSE
+SYSTEMD_LICENSE_FILES = LICENSE.GPLV2 LICENSE.LGPL2.1 LICENSE.MIT
SYSTEMD_INSTALL_STAGING = YES
SYSTEMD_DEPENDENCIES = \
host-intltool \
libcap \
- udev \
- dbus
+ dbus \
+ util-linux \
+ kmod
# Make sure that systemd will always be built after busybox so that we have
# a consistent init setup between two builds
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
- SYSTEMD_DEPENDENCIES += busybox
+SYSTEMD_DEPENDENCIES += busybox
endif
SYSTEMD_CONF_OPT += \
- --with-distro=other \
+ --with-rootprefix= \
+ --with-rootlibdir=/lib \
+ --localstatedir=/var \
+ --enable-static=no \
+ --disable-manpages \
--disable-selinux \
--disable-pam \
--disable-libcryptsetup \
- --disable-gtk \
- --disable-plymouth \
- --with-rootdir=/ \
--with-dbuspolicydir=/etc/dbus-1/system.d \
--with-dbussessionservicedir=/usr/share/dbus-1/services \
--with-dbussystemservicedir=/usr/share/dbus-1/system-services \
--with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
- --with-udevrulesdir=/etc/udev/rules.d \
- --with-sysvinit-path=/etc/init.d/ \
- --without-sysvrcd-path \
- --enable-split-usr
+ --with-firmware-path=/lib/firmware \
+ --enable-split-usr \
+ --enable-introspection=no \
+ --disable-efi \
+ --disable-myhostname \
+ --disable-tcpwrap \
+ --disable-tests \
+ --without-python
ifeq ($(BR2_PACKAGE_ACL),y)
- SYSTEMD_CONF_OPT += --enable-acl
- SYSTEMD_DEPENDENCIES += acl
+SYSTEMD_CONF_OPT += --enable-acl
+SYSTEMD_DEPENDENCIES += acl
else
- SYSTEMD_CONF_OPT += --disable-acl
+SYSTEMD_CONF_OPT += --disable-acl
endif
-ifneq ($(BR2_LARGEFILE),y)
- SYSTEMD_CONF_OPT += --disable-largefile
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+SYSTEMD_CONF_OPT += --enable-gudev
+SYSTEMD_DEPENDENCIES += libglib2
+else
+SYSTEMD_CONF_OPT += --disable-gudev
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_ALL_EXTRAS),y)
+SYSTEMD_DEPENDENCIES += \
+ xz \
+ libgcrypt
+SYSTEMD_CONF_OPT += \
+ --enable-xz \
+ --enable-gcrypt \
+ --with-libgcrypt-prefix=$(STAGING_DIR)/usr
+else
+SYSTEMD_CONF_OPT += \
+ --disable-xz \
+ --disable-gcrypt
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
+SYSTEMD_DEPENDENCIES += libmicrohttpd
+else
+SYSTEMD_CONF_OPT += --disable-microhttpd
endif
# mq_getattr needs -lrt
SYSTEMD_MAKE_OPT += LIBS=-lrt
SYSTEMD_MAKE_OPT += LDFLAGS+=-ldl
-ifeq ($(BR2_INIT_SYSTEMD),y)
define SYSTEMD_INSTALL_INIT_HOOK
- ln -fs ../usr/lib/systemd/systemd $(TARGET_DIR)/sbin/init
- ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/halt
- ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/poweroff
- ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/reboot
+ ln -fs ../lib/systemd/systemd $(TARGET_DIR)/sbin/init
+ ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/halt
+ ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/poweroff
+ ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/reboot
- ln -fs ../../../usr/lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
+ ln -fs ../../../lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
endef
-SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
- SYSTEMD_INSTALL_INIT_HOOK
-endif
define SYSTEMD_INSTALL_TTY_HOOK
rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty at tty1.service
- ln -fs ../../../../usr/lib/systemd/system/serial-getty at .service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
+ ln -fs ../../../../lib/systemd/system/serial-getty@.service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
+endef
+
+define SYSTEMD_INSTALL_MACHINEID_HOOK
+ touch $(TARGET_DIR)/etc/machine-id
+endef
+
+define SYSTEMD_SANITIZE_PATH_IN_UNITS
+ find $(TARGET_DIR)/lib/systemd/system -name '*.service' \
+ -exec sed -i -e 's,$(HOST_DIR),,g' {} \;
endef
SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
+ SYSTEMD_INSTALL_INIT_HOOK \
SYSTEMD_INSTALL_TTY_HOOK \
+ SYSTEMD_INSTALL_MACHINEID_HOOK \
+ SYSTEMD_SANITIZE_PATH_IN_UNITS
+
+define SYSTEMD_USERS
+ systemd-journal -1 systemd-journal -1 * /var/log/journal - - Journal
+ systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
+endef
$(eval $(autotools-package))
diff --git a/package/udev/udev.mk b/package/udev/udev.mk
index d274246..a5d0f80 100644
--- a/package/udev/udev.mk
+++ b/package/udev/udev.mk
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_EUDEV),y)
UDEV_DEPENDENCIES += eudev
endif
+ifeq ($(BR2_PACKAGE_SYSTEMD),y)
+UDEV_DEPENDENCIES += systemd
+endif
+
ifeq ($(UDEV_DEPENDENCIES),)
define UDEV_CONFIGURE_CMDS
echo "No Udev implementation selected. Configuration error."
diff --git a/system/Config.in b/system/Config.in
index 0559a6e..da6e67a 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -80,20 +80,31 @@ config BR2_INIT_SYSV
config BR2_INIT_SYSTEMD
bool "systemd"
+ depends on !BR2_avr32 # no epoll_create1
+ depends on BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_LARGEFILE
depends on BR2_USE_WCHAR
depends on BR2_INET_IPV6
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_TOOLCHAIN_HAS_SSP
depends on BR2_USE_MMU
- select BR2_PACKAGE_DBUS
+ depends on !BR2_PREFER_STATIC_LIB
select BR2_PACKAGE_SYSTEMD
-comment 'systemd needs eudev /dev management and a toolchain w/ largefile, wchar, IPv6, threads'
+comment 'systemd needs a (e)glibc toolchain'
+ depends on !BR2_TOOLCHAIN_USES_GLIBC
+
+comment 'systemd needs a toolchain w/ largefile, wchar, IPv6, threads'
+ depends on BR2_avr32
depends on BR2_USE_MMU
depends on !(BR2_LARGEFILE && BR2_USE_WCHAR && \
- BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS && \
- BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV)
+ BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS)
+
+comment 'systemd needs a toolchain w/ SSP'
+ depends on !BR2_TOOLCHAIN_HAS_SSP
+
+comment "systemd needs a toolchain w/ dynamic library"
+ depends on BR2_PREFER_STATIC_LIB
config BR2_INIT_NONE
bool "None"
@@ -101,7 +112,7 @@ config BR2_INIT_NONE
endchoice
choice
- prompt "/dev management"
+ prompt "/dev management" if !BR2_INIT_SYSTEMD
default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
config BR2_ROOTFS_DEVICE_CREATION_STATIC
@@ -131,6 +142,9 @@ comment "eudev needs a toolchain w/ dynamic library"
endchoice
+comment "/dev management using udev (from systemd)"
+ depends on BR2_INIT_SYSTEMD
+
config BR2_ROOTFS_DEVICE_TABLE
string "Path to the permission tables"
default "system/device_table.txt"
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Buildroot] [PATCH v5 5/5] manual: update /dev management section.
2014-01-03 12:44 [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Eric Le Bihan
` (3 preceding siblings ...)
2014-01-03 12:44 ` [Buildroot] [PATCH v5 4/5] systemd: bump to v207 Eric Le Bihan
@ 2014-01-03 12:44 ` Eric Le Bihan
2014-01-03 13:49 ` [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Samuel Martin
5 siblings, 0 replies; 8+ messages in thread
From: Eric Le Bihan @ 2014-01-03 12:44 UTC (permalink / raw)
To: buildroot
This patch updates the /dev management section in the manual with information
about eudev, which replaces udev.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
docs/manual/configure.txt | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/docs/manual/configure.txt b/docs/manual/configure.txt
index 89df3d9..32a12ce 100644
--- a/docs/manual/configure.txt
+++ b/docs/manual/configure.txt
@@ -310,22 +310,24 @@ different solutions to handle the +/dev+ directory :
about +mdev+ and the syntax of its configuration file, see
http://git.busybox.net/busybox/tree/docs/mdev.txt.
- * The fourth solution is *Dynamic using udev*. This method also
+ * The fourth solution is *Dynamic using eudev*. This method also
relies on the _devtmpfs_ virtual filesystem detailed above, but
- adds the +udev+ userspace daemon on top of it. +udev+ is a daemon
+ adds the +eudev+ userspace daemon on top of it. +eudev+ is a daemon
that runs in the background, and gets called by the kernel when a
device gets added or removed from the system. It is a more
- heavyweight solution than +mdev+, but provides higher flexibility
- and is sometimes mandatory for some system components (systemd for
- example). +udev+ is the mechanism used in most desktop Linux
- distributions. For more details about +udev+, see
- http://en.wikipedia.org/wiki/Udev.
+ heavyweight solution than +mdev+, but provides higher flexibility.
+ +eudev+ is a standalone version of +udev+, the original userspace
+ daemon used in most desktop Linux distributions, which is now part
+ of Systemd. For more details, see http://en.wikipedia.org/wiki/Udev.
The Buildroot developers recommandation is to start with the *Dynamic
using devtmpfs only* solution, until you have the need for userspace
to be notified when devices are added/removed, or if firmwares are
needed, in which case *Dynamic using mdev* is usually a good solution.
+Note that if +systemd+ is chosen as init system, /dev management will
+be performed by the +udev+ program provided by +systemd+.
+
init system
~~~~~~~~~~~
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev
2014-01-03 12:44 [Buildroot] [PATCH v5 0/5] udev is now provided by systemd or eudev Eric Le Bihan
` (4 preceding siblings ...)
2014-01-03 12:44 ` [Buildroot] [PATCH v5 5/5] manual: update /dev management section Eric Le Bihan
@ 2014-01-03 13:49 ` Samuel Martin
2014-01-03 16:11 ` Eric Le Bihan
5 siblings, 1 reply; 8+ messages in thread
From: Samuel Martin @ 2014-01-03 13:49 UTC (permalink / raw)
To: buildroot
Hi Eric,
2014/1/3 Eric Le Bihan <eric.le.bihan.dev@free.fr>
> This series converts udev to a virtual package, either provided by systemd
> or
> eudev.
>
> Starting with version 183, udev has been merged into systemd. This forces
> the
> use of systemd as the init system if /dev is to be dynamically managed by
> udev. eudev is a fork of udev, maintained by Gentoo, but isolated from
> systemd, so it can be used with any init system.
>
> Systemd has been bumped to v207 and a new eudev package has been added.
> Version 1.3 of eudev is in sync with systemd v207.
>
> The bump of systemd to v207 also introduces new options, like the
> activation
> of the journal gateway.
>
> In the end:
>
> - if systemd is selected as init system, the /dev management will
> handled by
> udev. No other choice possible.
> - if busybox or SysV is chosen, the user can choose to manage /dev
> statically, or dynamically using mdev or eudev.
>
> Changes v4 -> v5:
> - disabled systemd and eudev on avr32.
> - reverted Busybox binaries overwrite fix.
>
> Changes v3 -> v4:
> - updated /dev management section in user manual.
> - fixed indentation of conditionals in Makefiles (suggested by Thomas P).
> - added missing comments on dependencies (suggested by Thomas P, Thomas
> DS).
> - fixed some packages not being converted to BR2_PACKAGE_HAS_UDEV.
>
> Changes v2 -> v3:
> - reordered patches for better bisectability (suggested by Thomas).
> - removed uClibc support for Systemd (suggested by Arnout).
> - bumped systemd to v207 (no more backport patches).
> - bumped eudev to 1.3.
>
> Changes v1 -> v2:
> - split patch for better readability.
> - promoted init system selection above /dev management in "System
> Configuration" menu.
> - /dev management selection is not displayed if systemd is chosen as init
> system, as udev is the only possible choice (suggested by Arnout).
> - added "Dynamic with eudev" choice in /dev management selection.
> - less patches for systemd/uclibc compatibility, thanks to recent update
> of
> uclibc 0.9.33.2.
> - autoreconf not needed anymore for systemd (thanks to removal of
> configure.ac patch).
> - ACL/Gudev support in systemd activated only if acl/libglib2 are
> selected (suggested by Arnout).
> - udev package provides BR2_PACKAGE_HAS_UDEV (suggested by Thomas).
> - converted packages depending on
> BR2_PACKAGE_UDEV/BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV to
> BR2_PACKAGE_HAS_UDEV.
> - eudev source code fetched as a tarball, not from Git tree (suggested by
> Arnout).
> - removed "enable all extras" option from eudev configuration: Gudev
> support
> is activated if libglib2 is selected (suggested by Arnout).
> - added option to build udev rule generator in eudev, as it was in
> previous
> version of udev.
> - removed dependency on hwdata for systemd and eudev, as both embed their
> own hardware database.
>
> Thanks for this new series :-)
I played a bit with the previous series some months ago, and I had to do a
couple of fixes to get it works properly.
Apologies for not reporting them that time. :-s
The problems were:
- Some packages still use BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV after
applying the patchs:
$ git grep -l BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
docs/manual/adding-packages-directory.txt
package/libmbim/Config.in
package/modem-manager/Config.in
package/network-manager/Config.in
- Kconfig circular dependencies between some packages selecting
BR2_PACKAGE_UDEV
and depending on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV or
BR2_PACKAGE_HAS_UDEV
at the same time.
(I may have introduced this circular dependency after fixing the previous
issue)
- What does BR2_PACKAGE_UDEV_ALL_EXTRAS become?
The symbol does not exists after applying the patchs, but few packages
still select it.
I also bump systemd to version 208, but this can wait after this series get
merged ;-)
Regards,
--
Samuel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140103/e183c8ac/attachment-0001.html>
^ permalink raw reply [flat|nested] 8+ messages in thread