* [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev
@ 2013-09-20 12:24 Eric Le Bihan
2013-09-20 12:24 ` [Buildroot] [PATCH v2 1/6] system: move init system option above /dev management Eric Le Bihan
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: Eric Le Bihan @ 2013-09-20 12:24 UTC (permalink / raw)
To: buildroot
Hello!
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 v206 and a new eudev package has been added.
Version 1.2 of eudev is in sync with systemd v206 (v1.3 will be in sync with
v207).
The bump of systemd to v206 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 either choice possible.
- if busybox or SysV is chosen, the user can choose to manage /dev
statically, or dynamically using mdev or eudev.
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.
Best regards,
ELB
Eric Le Bihan (6):
system: move init system option above /dev management.
sysvinit: depend on SysV selected as init system.
systemd: bump to v206.
systemd: set correct firmware search path
package: update dependency on udev.
eudev: new package.
Config.in.legacy | 7 ++
package/Config.in | 1 +
package/eudev/Config.in | 26 ++++++
package/eudev/S10udev | 48 +++++++++++
package/eudev/eudev.mk | 50 ++++++++++++
package/libatasmart/Config.in | 4 +-
package/network-manager/Config.in | 6 +-
package/pcsc-lite/Config.in | 2 +-
package/systemd/Config.in | 36 +++++++--
package/systemd/systemd-fix-getty-unit.patch | 36 ++++-----
package/systemd/systemd-fix-page-size.patch | 43 ----------
.../systemd/systemd-optional-secure-getenv.patch | 20 +++++
package/systemd/systemd-uclibc-fix.patch | 59 --------------
...systemd-use-cap_mknod-conditioncapability.patch | 26 ++++++
package/systemd/systemd.mk | 83 +++++++++++++++-----
package/sysvinit/Config.in | 1 +
package/udev/Config.in | 43 +---------
package/udev/udev.mk | 49 +++---------
package/udisks/Config.in | 8 +-
package/usbmount/Config.in | 4 +-
package/weston/Config.in | 4 +-
package/x11r7/xdriver_xf86-input-evdev/Config.in | 4 +-
system/Config.in | 68 ++++++++--------
23 files changed, 352 insertions(+), 276 deletions(-)
create mode 100644 package/eudev/Config.in
create mode 100644 package/eudev/S10udev
create mode 100644 package/eudev/eudev.mk
delete mode 100644 package/systemd/systemd-fix-page-size.patch
create mode 100644 package/systemd/systemd-optional-secure-getenv.patch
delete mode 100644 package/systemd/systemd-uclibc-fix.patch
create mode 100644 package/systemd/systemd-use-cap_mknod-conditioncapability.patch
--
1.7.9.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 1/6] system: move init system option above /dev management.
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
@ 2013-09-20 12:24 ` Eric Le Bihan
2013-11-02 18:06 ` Thomas Petazzoni
2013-09-20 12:24 ` [Buildroot] [PATCH v2 2/6] sysvinit: depend on SysV selected as init system Eric Le Bihan
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Eric Le Bihan @ 2013-09-20 12:24 UTC (permalink / raw)
To: buildroot
The option to choose init system was below the one for /dev management.
As Systemd forces the use of udev, it is logical to swap them.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
system/Config.in | 58 +++++++++++++++++++++++++++---------------------------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/system/Config.in b/system/Config.in
index 9d4e837..1fe4127 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -67,35 +67,6 @@ config BR2_TARGET_GENERIC_PASSWD_METHOD
default "sha-512" if BR2_TARGET_GENERIC_PASSWD_SHA512
choice
- prompt "/dev management"
- default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
-
-config BR2_ROOTFS_DEVICE_CREATION_STATIC
- bool "Static using device table"
-
-config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
- bool "Dynamic using devtmpfs only"
-
-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_LARGEFILE # udev
- depends on BR2_USE_WCHAR # udev
- depends on !BR2_PREFER_STATIC_LIB # udev -> kmod
- select BR2_PACKAGE_UDEV
-
-comment "udev requires a toolchain with LARGEFILE + WCHAR support"
- depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
-
-comment "udev doesn't work with 'prefer static libraries'"
- depends on BR2_PREFER_STATIC_LIB
-
-endchoice
-
-choice
prompt "Init system"
default BR2_INIT_BUSYBOX
@@ -128,6 +99,35 @@ config BR2_INIT_NONE
endchoice
+choice
+ prompt "/dev management"
+ default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
+
+config BR2_ROOTFS_DEVICE_CREATION_STATIC
+ bool "Static using device table"
+
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
+ bool "Dynamic using devtmpfs only"
+
+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_LARGEFILE # udev
+ depends on BR2_USE_WCHAR # udev
+ depends on !BR2_PREFER_STATIC_LIB # udev -> kmod
+ select BR2_PACKAGE_UDEV
+
+comment "udev requires a toolchain with LARGEFILE + WCHAR support"
+ depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
+
+comment "udev doesn't work with 'prefer static libraries'"
+ depends on BR2_PREFER_STATIC_LIB
+
+endchoice
+
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] 14+ messages in thread
* [Buildroot] [PATCH v2 2/6] sysvinit: depend on SysV selected as init system.
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
2013-09-20 12:24 ` [Buildroot] [PATCH v2 1/6] system: move init system option above /dev management Eric Le Bihan
@ 2013-09-20 12:24 ` Eric Le Bihan
2013-11-02 18:07 ` Thomas Petazzoni
2013-09-20 12:24 ` [Buildroot] [PATCH v2 3/6] systemd: bump to v206 Eric Le Bihan
` (4 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Eric Le Bihan @ 2013-09-20 12:24 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] 14+ messages in thread
* [Buildroot] [PATCH v2 3/6] systemd: bump to v206.
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
2013-09-20 12:24 ` [Buildroot] [PATCH v2 1/6] system: move init system option above /dev management Eric Le Bihan
2013-09-20 12:24 ` [Buildroot] [PATCH v2 2/6] sysvinit: depend on SysV selected as init system Eric Le Bihan
@ 2013-09-20 12:24 ` Eric Le Bihan
2013-11-02 18:31 ` Thomas Petazzoni
2013-09-20 12:24 ` [Buildroot] [PATCH v2 4/6] systemd: set correct firmware search path Eric Le Bihan
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Eric Le Bihan @ 2013-09-20 12:24 UTC (permalink / raw)
To: buildroot
This patch bumps systemd to v206 but also converts udev to a 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.
The selection of the following packages will also add features:
- libglib2 package will add support for gudev.
- acl package will add support for multi-seat.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
package/systemd/Config.in | 35 +++++++--
package/systemd/systemd-fix-getty-unit.patch | 36 ++++-----
package/systemd/systemd-fix-page-size.patch | 43 ----------
.../systemd/systemd-optional-secure-getenv.patch | 20 +++++
package/systemd/systemd-uclibc-fix.patch | 59 --------------
...systemd-use-cap_mknod-conditioncapability.patch | 26 +++++++
package/systemd/systemd.mk | 82 +++++++++++++++-----
package/udev/Config.in | 41 +---------
package/udev/udev.mk | 46 +----------
system/Config.in | 34 ++++----
10 files changed, 176 insertions(+), 246 deletions(-)
delete mode 100644 package/systemd/systemd-fix-page-size.patch
create mode 100644 package/systemd/systemd-optional-secure-getenv.patch
delete mode 100644 package/systemd/systemd-uclibc-fix.patch
create mode 100644 package/systemd/systemd-use-cap_mknod-conditioncapability.patch
diff --git a/package/systemd/Config.in b/package/systemd/Config.in
index 86ab2cf..ad92b73 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -1,11 +1,14 @@
config BR2_PACKAGE_SYSTEMD
bool "systemd"
- depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
- depends on BR2_INET_IPV6
+ depends on BR2_INIT_SYSTEMD
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
depends on BR2_USE_MMU # dbus
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_KMOD_TOOLS
help
systemd is a system and service manager for Linux, compatible with
SysV and LSB init scripts. systemd provides aggressive parallelization
@@ -18,6 +21,28 @@ config BR2_PACKAGE_SYSTEMD
http://freedesktop.org/wiki/Software/systemd
-comment "systemd not available (depends on /dev management with udev and ipv6 support, and thread support in toolchain)"
- depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || !BR2_INET_IPV6 || \\
- !BR2_TOOLCHAIN_HAS_THREADS
+comment "systemd needs a toolchain w/ threads, MMU"
+ depends on (!BR2_INIT_SYSTEMD || !BR2_TOOLCHAIN_HAS_THREADS || \\
+ !BR2_USE_MMU)
+
+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
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-optional-secure-getenv.patch b/package/systemd/systemd-optional-secure-getenv.patch
new file mode 100644
index 0000000..c163031
--- /dev/null
+++ b/package/systemd/systemd-optional-secure-getenv.patch
@@ -0,0 +1,20 @@
+on uclibc secure_getenv is not available
+therefore default to using getenv instead
+
+Upstream-Status: Denied [no desire for uclibc support]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+
+Index: git/src/shared/missing.h
+===================================================================
+--- git.orig/src/shared/missing.h 2012-09-22 18:46:44.141282145 -0700
++++ git/src/shared/missing.h 2012-09-22 18:48:44.081276570 -0700
+@@ -233,6 +233,8 @@
+ #ifndef HAVE_SECURE_GETENV
+ # ifdef HAVE___SECURE_GETENV
+ # define secure_getenv __secure_getenv
++# elif defined __UCLIBC__
++# define secure_getenv getenv
+ # else
+ # error neither secure_getenv nor __secure_getenv are available
+ # endif
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-use-cap_mknod-conditioncapability.patch b/package/systemd/systemd-use-cap_mknod-conditioncapability.patch
new file mode 100644
index 0000000..e91fea8
--- /dev/null
+++ b/package/systemd/systemd-use-cap_mknod-conditioncapability.patch
@@ -0,0 +1,26 @@
+Fixes errors seen when booting VMs on QEMU like
+
+systemd[1]: kmod-static-nodes.service: main process exited, code=exited, status=203/EXEC
+systemd[1]: Failed to start Create list of required static device nodes for the current kernel.
+systemd[1]: Unit kmod-static-nodes.service entered failed state.
+
+Make sure that mknod capability is available
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+---
+ units/kmod-static-nodes.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: systemd-206/units/kmod-static-nodes.service.in
+===================================================================
+--- systemd-206.orig/units/kmod-static-nodes.service.in 2013-08-21 19:13:02.000000000 -0700
++++ systemd-206/units/kmod-static-nodes.service.in 2013-08-21 20:39:13.310689871 -0700
+@@ -9,6 +9,7 @@
+ Description=Create list of required static device nodes for the current kernel
+ DefaultDependencies=no
+ Before=sysinit.target systemd-tmpfiles-setup-dev.service
++ConditionCapability=CAP_MKNOD
+
+ [Service]
+ Type=oneshot
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 1bb429c..d371711 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -4,15 +4,16 @@
#
################################################################################
-SYSTEMD_VERSION = 44
+SYSTEMD_VERSION = 206
SYSTEMD_SITE = http://www.freedesktop.org/software/systemd/
SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
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
@@ -21,21 +22,25 @@ ifeq ($(BR2_PACKAGE_BUSYBOX),y)
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
+ --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
@@ -44,8 +49,31 @@ else
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
@@ -53,21 +81,37 @@ SYSTEMD_MAKE_OPT += LIBS=-lrt
SYSTEMD_MAKE_OPT += LDFLAGS+=-ldl
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
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 at .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/Config.in b/package/udev/Config.in
index d4d97c1..23c443e 100644
--- a/package/udev/Config.in
+++ b/package/udev/Config.in
@@ -1,41 +1,2 @@
config BR2_PACKAGE_UDEV
- bool "udev"
- 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
- help
- Enable all extras with external dependencies like
- libacl, hwdata and libglib2
-
-comment "enabling all extras requires a toolchain with WCHAR and threading support"
- depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
-
-endif
-
-comment "udev requires /dev mgmnt set to udev under System configuration"
- depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
+ bool
diff --git a/package/udev/udev.mk b/package/udev/udev.mk
index db86850..c6fcdfc 100644
--- a/package/udev/udev.mk
+++ b/package/udev/udev.mk
@@ -4,48 +4,6 @@
#
################################################################################
-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
-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
-endef
-
-UDEV_POST_INSTALL_TARGET_HOOKS += UDEV_INSTALL_INITSCRIPT
-
-$(eval $(autotools-package))
+$(eval $(generic-package))
diff --git a/system/Config.in b/system/Config.in
index 1fe4127..c16e8e7 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -83,16 +83,22 @@ 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_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_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
select BR2_PACKAGE_SYSTEMD
-comment 'systemd requires largefile, wchar, IPv6, threads and udev support'
+comment 'systemd needs toolchain w/ largefile, wchar, IPv6, threads'
depends on !(BR2_LARGEFILE && BR2_USE_WCHAR && \
- BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS && \
- BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV)
+ BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS)
+
+comment 'systemd needs toolchain w/ stack smashing protection'
+ depends on !BR2_TOOLCHAIN_HAS_SSP
+
+comment "systemd doesn't work with 'prefer static libraries'"
+ depends on BR2_PREFER_STATIC_LIB
config BR2_INIT_NONE
bool "None"
@@ -100,7 +106,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
@@ -113,20 +119,14 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
bool "Dynamic using mdev"
select BR2_PACKAGE_BUSYBOX
+endchoice
+
config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
- bool "Dynamic using udev"
- depends on BR2_LARGEFILE # udev
- depends on BR2_USE_WCHAR # udev
- depends on !BR2_PREFER_STATIC_LIB # udev -> kmod
+ bool
select BR2_PACKAGE_UDEV
-comment "udev requires a toolchain with LARGEFILE + WCHAR support"
- depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
-
-comment "udev doesn't work with 'prefer static libraries'"
- depends on BR2_PREFER_STATIC_LIB
-
-endchoice
+comment "/dev management using udev (from systemd)"
+ depends on BR2_INIT_SYSTEMD
config BR2_ROOTFS_DEVICE_TABLE
string "Path to the permission tables"
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 4/6] systemd: set correct firmware search path
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
` (2 preceding siblings ...)
2013-09-20 12:24 ` [Buildroot] [PATCH v2 3/6] systemd: bump to v206 Eric Le Bihan
@ 2013-09-20 12:24 ` Eric Le Bihan
2013-11-02 18:10 ` Thomas Petazzoni
2013-09-20 12:24 ` [Buildroot] [PATCH v2 5/6] package: update dependency on udev Eric Le Bihan
` (2 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Eric Le Bihan @ 2013-09-20 12:24 UTC (permalink / raw)
To: buildroot
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
package/systemd/systemd.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index d371711..1afceed 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -34,6 +34,7 @@ SYSTEMD_CONF_OPT += \
--with-dbussessionservicedir=/usr/share/dbus-1/services \
--with-dbussystemservicedir=/usr/share/dbus-1/system-services \
--with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
+ --with-firmware-path=/lib/firmware \
--enable-split-usr \
--enable-introspection=no \
--disable-efi \
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 5/6] package: update dependency on udev.
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
` (3 preceding siblings ...)
2013-09-20 12:24 ` [Buildroot] [PATCH v2 4/6] systemd: set correct firmware search path Eric Le Bihan
@ 2013-09-20 12:24 ` Eric Le Bihan
2013-09-20 12:24 ` [Buildroot] [PATCH v2 6/6] eudev: new package Eric Le Bihan
2013-11-02 18:34 ` [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Thomas Petazzoni
6 siblings, 0 replies; 14+ messages in thread
From: Eric Le Bihan @ 2013-09-20 12:24 UTC (permalink / raw)
To: buildroot
Some packages were depending on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
and selected BR2_PACKAGE_UDEV.
As udev is now a virtual package (which is provided by systemd and
sooner by eudev) and as these packages were in fact depending on udev
itself and not the type of /dev management, the symbol
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV is now deprecated and replaced
by BR2_PACKAGE_HAS_UDEV.
For the moment, only systemd selects this symbol.
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
Config.in.legacy | 7 +++++++
package/libatasmart/Config.in | 4 ++--
package/network-manager/Config.in | 6 ++----
package/pcsc-lite/Config.in | 2 +-
package/systemd/Config.in | 1 +
package/udev/Config.in | 2 +-
package/udev/udev.mk | 11 +++++++++++
package/udisks/Config.in | 8 +++-----
package/usbmount/Config.in | 4 ++--
package/weston/Config.in | 4 ++--
package/x11r7/xdriver_xf86-input-evdev/Config.in | 4 ++--
11 files changed, 34 insertions(+), 19 deletions(-)
diff --git a/Config.in.legacy b/Config.in.legacy
index 4f30b2b..f797304 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -55,6 +55,13 @@ config BR2_PACKAGE_MODULE_INIT_TOOLS
The 'module-init-tools' package has been removed, since it
has been depracated upstream and replaced by 'kmod'.
+config BR2_PACKAGE_UDEV
+ bool "udev is now provided by systemd or eudev"
+ select BR2_PACKAGE_HAS_UDEV
+ help
+ The 'udev' package is now a virtual package. It can be
+ provided by 'systemd' or 'eudev'.
+
###############################################################################
comment "Legacy options removed in 2013.08"
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 50a3e74..b58de58 100644
--- a/package/network-manager/Config.in
+++ b/package/network-manager/Config.in
@@ -1,15 +1,13 @@
config BR2_PACKAGE_NETWORK_MANAGER
bool "NetworkManager"
- 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 d6629d0..7c4bca9 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 ad92b73..63639b2 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_SYSTEMD
depends on BR2_INIT_SYSTEMD
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
diff --git a/package/udev/Config.in b/package/udev/Config.in
index 23c443e..1c9251b 100644
--- a/package/udev/Config.in
+++ b/package/udev/Config.in
@@ -1,2 +1,2 @@
-config BR2_PACKAGE_UDEV
+config BR2_PACKAGE_HAS_UDEV
bool
diff --git a/package/udev/udev.mk b/package/udev/udev.mk
index c6fcdfc..bbb4049 100644
--- a/package/udev/udev.mk
+++ b/package/udev/udev.mk
@@ -6,4 +6,15 @@
UDEV_SOURCE =
+ifeq ($(BR2_PACKAGE_SYSTEMD),y)
+ UDEV_DEPENDENCIES += systemd
+endif
+
+ifeq ($(UDEV_DEPENDENCIES),)
+define UDEV_CONFIGURE_CMDS
+ echo "No Udev implementation selected. Configuration error."
+ exit 1
+endef
+endif
+
$(eval $(generic-package))
diff --git a/package/udisks/Config.in b/package/udisks/Config.in
index dca23ea..7899155 100644
--- a/package/udisks/Config.in
+++ b/package/udisks/Config.in
@@ -1,10 +1,8 @@
config BR2_PACKAGE_UDISKS
bool "udisks"
- 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
@@ -35,6 +33,6 @@ config BR2_PACKAGE_UDISKS_LVM2
endif
-comment "udisks requires /dev mgmnt set to udev under System configuration and a toolchain with WCHAR and threading support"
- depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV || \
+comment "udisks requires /dev mgmnt set to udev, toolchain w/ wchar, threads"
+ 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/weston/Config.in b/package/weston/Config.in
index 56eb135..8818ab9 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -1,5 +1,5 @@
comment "weston requires udev"
- depends on !BR2_PACKAGE_UDEV
+ depends on !BR2_PACKAGE_HAS_UDEV
config BR2_PACKAGE_WESTON
bool "weston"
@@ -10,7 +10,7 @@ config BR2_PACKAGE_WESTON
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_JPEG
select BR2_PACKAGE_MTDEV
- depends on BR2_PACKAGE_UDEV
+ depends on BR2_PACKAGE_HAS_UDEV
depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
# Runtime dependency
select BR2_PACKAGE_XKEYBOARD_CONFIG
diff --git a/package/x11r7/xdriver_xf86-input-evdev/Config.in b/package/x11r7/xdriver_xf86-input-evdev/Config.in
index cc159c9..05ee314 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
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 6/6] eudev: new package.
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
` (4 preceding siblings ...)
2013-09-20 12:24 ` [Buildroot] [PATCH v2 5/6] package: update dependency on udev Eric Le Bihan
@ 2013-09-20 12:24 ` Eric Le Bihan
2013-11-02 18:34 ` [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Thomas Petazzoni
6 siblings, 0 replies; 14+ messages in thread
From: Eric Le Bihan @ 2013-09-20 12:24 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:
- This package selects the BR2_PACKAGE_HAS_UDEV symbol.
- 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).
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
package/Config.in | 1 +
package/eudev/Config.in | 26 ++++++++++++++++++++++++
package/eudev/S10udev | 48 +++++++++++++++++++++++++++++++++++++++++++++
package/eudev/eudev.mk | 50 +++++++++++++++++++++++++++++++++++++++++++++++
package/udev/udev.mk | 4 ++++
system/Config.in | 8 ++++----
6 files changed, 133 insertions(+), 4 deletions(-)
create mode 100644 package/eudev/Config.in
create mode 100644 package/eudev/S10udev
create mode 100644 package/eudev/eudev.mk
diff --git a/package/Config.in b/package/Config.in
index e187aa3..72eb8bd 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -272,6 +272,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/flashrom/Config.in"
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
new file mode 100644
index 0000000..5a89325
--- /dev/null
+++ b/package/eudev/Config.in
@@ -0,0 +1,26 @@
+config BR2_PACKAGE_EUDEV
+ bool "eudev"
+ depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
+ depends on BR2_LARGEFILE # util-linux
+ depends on BR2_USE_WCHAR # util-linux
+ depends on !BR2_PACKAGE_SYSTEMD
+ select BR2_PACKAGE_HAS_UDEV
+ 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.
+
+ 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
diff --git a/package/eudev/S10udev b/package/eudev/S10udev
new file mode 100644
index 0000000..e4d28a2
--- /dev/null
+++ b/package/eudev/S10udev
@@ -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
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
new file mode 100644
index 0000000..a90ee23
--- /dev/null
+++ b/package/eudev/eudev.mk
@@ -0,0 +1,50 @@
+################################################################################
+#
+# eudev
+#
+################################################################################
+
+EUDEV_VERSION = 1.2
+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
+
+ifneq ($(BR2_LARGEFILE),y)
+ 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
+
+EUDEV_POST_INSTALL_TARGET_HOOKS += EUDEV_INSTALL_INIT_SYSV
+
+$(eval $(autotools-package))
diff --git a/package/udev/udev.mk b/package/udev/udev.mk
index bbb4049..a176262 100644
--- a/package/udev/udev.mk
+++ b/package/udev/udev.mk
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_SYSTEMD),y)
UDEV_DEPENDENCIES += systemd
endif
+ifeq ($(BR2_PACKAGE_EUDEV),y)
+ UDEV_DEPENDENCIES += eudev
+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 c16e8e7..3698be3 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -119,11 +119,11 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
bool "Dynamic using mdev"
select BR2_PACKAGE_BUSYBOX
-endchoice
+config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
+ bool "Dynamic using eudev"
+ select BR2_PACKAGE_EUDEV
-config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
- bool
- select BR2_PACKAGE_UDEV
+endchoice
comment "/dev management using udev (from systemd)"
depends on BR2_INIT_SYSTEMD
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 1/6] system: move init system option above /dev management.
2013-09-20 12:24 ` [Buildroot] [PATCH v2 1/6] system: move init system option above /dev management Eric Le Bihan
@ 2013-11-02 18:06 ` Thomas Petazzoni
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2013-11-02 18:06 UTC (permalink / raw)
To: buildroot
Dear Eric Le Bihan,
On Fri, 20 Sep 2013 14:24:02 +0200, Eric Le Bihan wrote:
> The option to choose init system was below the one for /dev management.
> As Systemd forces the use of udev, it is logical to swap them.
>
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> ---
> system/Config.in | 58 +++++++++++++++++++++++++++---------------------------
> 1 file changed, 29 insertions(+), 29 deletions(-)
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 2/6] sysvinit: depend on SysV selected as init system.
2013-09-20 12:24 ` [Buildroot] [PATCH v2 2/6] sysvinit: depend on SysV selected as init system Eric Le Bihan
@ 2013-11-02 18:07 ` Thomas Petazzoni
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2013-11-02 18:07 UTC (permalink / raw)
To: buildroot
Dear Eric Le Bihan,
On Fri, 20 Sep 2013 14:24:03 +0200, Eric Le Bihan wrote:
> 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
Hum, isn't this causing a circular dependency?
BR2_INIT_SYSV selects BR2_PACKAGE_SYSVINIT
BR2_PACKAGE_SYSVINIT depends on BR2_INIT_SYSV
but apparently, Kconfig doesn't complain, so it looks fine to me:
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 4/6] systemd: set correct firmware search path
2013-09-20 12:24 ` [Buildroot] [PATCH v2 4/6] systemd: set correct firmware search path Eric Le Bihan
@ 2013-11-02 18:10 ` Thomas Petazzoni
0 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2013-11-02 18:10 UTC (permalink / raw)
To: buildroot
Dear Eric Le Bihan,
On Fri, 20 Sep 2013 14:24:05 +0200, Eric Le Bihan wrote:
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> ---
> package/systemd/systemd.mk | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> index d371711..1afceed 100644
> --- a/package/systemd/systemd.mk
> +++ b/package/systemd/systemd.mk
> @@ -34,6 +34,7 @@ SYSTEMD_CONF_OPT += \
> --with-dbussessionservicedir=/usr/share/dbus-1/services \
> --with-dbussystemservicedir=/usr/share/dbus-1/system-services \
> --with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
> + --with-firmware-path=/lib/firmware \
> --enable-split-usr \
> --enable-introspection=no \
> --disable-efi \
This should be squashed into the patch updating systemd, I don't really
a reason to have this separately.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 3/6] systemd: bump to v206.
2013-09-20 12:24 ` [Buildroot] [PATCH v2 3/6] systemd: bump to v206 Eric Le Bihan
@ 2013-11-02 18:31 ` Thomas Petazzoni
2013-11-04 11:45 ` Eric Le Bihan
0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2013-11-02 18:31 UTC (permalink / raw)
To: buildroot
Dear Eric Le Bihan,
On Fri, 20 Sep 2013 14:24:04 +0200, Eric Le Bihan wrote:
> This patch bumps systemd to v206 but also converts udev to a virtual
> package.
I am a little bit concerned about bisectability throughout your patch
set. Have you thought about this? Is there a way of making sure things
will remain bisectable or it's really too complicated?
> The selection of the following packages will also add features:
>
> - libglib2 package will add support for gudev.
> - acl package will add support for multi-seat.
Maybe this text should be mentioned in the help text of the systemd
option.
> 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
Without this patch (or similar patches), systemd does not build with
uClibc, so it should be marked to depend on (e)glibc.
> diff --git a/package/udev/Config.in b/package/udev/Config.in
> index d4d97c1..23c443e 100644
> --- a/package/udev/Config.in
> +++ b/package/udev/Config.in
> @@ -1,41 +1,2 @@
> config BR2_PACKAGE_UDEV
> - bool "udev"
> - 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
> - help
> - Enable all extras with external dependencies like
> - libacl, hwdata and libglib2
> -
> -comment "enabling all extras requires a toolchain with WCHAR and threading support"
> - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> -
> -endif
> -
> -comment "udev requires /dev mgmnt set to udev under System configuration"
> - depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
> + bool
> diff --git a/package/udev/udev.mk b/package/udev/udev.mk
> index db86850..c6fcdfc 100644
> --- a/package/udev/udev.mk
> +++ b/package/udev/udev.mk
> @@ -4,48 +4,6 @@
> #
> ################################################################################
>
> -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
> -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
> -endef
> -
> -UDEV_POST_INSTALL_TARGET_HOOKS += UDEV_INSTALL_INITSCRIPT
> -
> -$(eval $(autotools-package))
> +$(eval $(generic-package))
So for the moment the udev virtual package is completely empty. It only
gets updated to depend on systemd in PATCH 5/6. Is this intentional?
> diff --git a/system/Config.in b/system/Config.in
> index 1fe4127..c16e8e7 100644
> --- a/system/Config.in
> +++ b/system/Config.in
> @@ -83,16 +83,22 @@ 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_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_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
Why do we have this select? I must say I don't really follow what's
going on in system/Config.in in terms of init option vs. /dev
management options.
> select BR2_PACKAGE_SYSTEMD
>
> -comment 'systemd requires largefile, wchar, IPv6, threads and udev support'
> +comment 'systemd needs toolchain w/ largefile, wchar, IPv6, threads'
> depends on !(BR2_LARGEFILE && BR2_USE_WCHAR && \
> - BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS && \
> - BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV)
> + BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS)
> +
> +comment 'systemd needs toolchain w/ stack smashing protection'
> + depends on !BR2_TOOLCHAIN_HAS_SSP
Wow, that's probably the first package that has this requirement. What
happens when the toolchain doesn't have SSP support?
> +comment "systemd doesn't work with 'prefer static libraries'"
> + depends on BR2_PREFER_STATIC_LIB
>
> config BR2_INIT_NONE
> bool "None"
> @@ -100,7 +106,7 @@ config BR2_INIT_NONE
> endchoice
>
> choice
> - prompt "/dev management"
> + prompt "/dev management" if !BR2_INIT_SYSTEMD
Ok, so we show the /dev management only if another init system that
systemd is selected. Makes sense.
> default BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS
>
> config BR2_ROOTFS_DEVICE_CREATION_STATIC
> @@ -113,20 +119,14 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
> bool "Dynamic using mdev"
> select BR2_PACKAGE_BUSYBOX
>
> +endchoice
> +
> config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
> - bool "Dynamic using udev"
> - depends on BR2_LARGEFILE # udev
> - depends on BR2_USE_WCHAR # udev
> - depends on !BR2_PREFER_STATIC_LIB # udev -> kmod
> + bool
> select BR2_PACKAGE_UDEV
>
> -comment "udev requires a toolchain with LARGEFILE + WCHAR support"
> - depends on !(BR2_LARGEFILE && BR2_USE_WCHAR)
> -
> -comment "udev doesn't work with 'prefer static libraries'"
> - depends on BR2_PREFER_STATIC_LIB
> -
> -endchoice
> +comment "/dev management using udev (from systemd)"
> + depends on BR2_INIT_SYSTEMD
I don't think this comment is really needed.
>
> config BR2_ROOTFS_DEVICE_TABLE
> string "Path to the permission tables"
In order to make the patch series bisectable, I think I would suggest
to have the following sequence:
* Introduce the eudev package
* Turn the udev package into a virtual package that uses the only
available udev implementation: eudev
* Bump the systemd package, and register it as a possible udev
implementation.
What do you think?
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
` (5 preceding siblings ...)
2013-09-20 12:24 ` [Buildroot] [PATCH v2 6/6] eudev: new package Eric Le Bihan
@ 2013-11-02 18:34 ` Thomas Petazzoni
6 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2013-11-02 18:34 UTC (permalink / raw)
To: buildroot
Dear Eric Le Bihan,
On Fri, 20 Sep 2013 14:24:01 +0200, Eric Le Bihan wrote:
> 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 v206 and a new eudev package has been added.
> Version 1.2 of eudev is in sync with systemd v206 (v1.3 will be in sync with
> v207).
>
> The bump of systemd to v206 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 either choice possible.
> - if busybox or SysV is chosen, the user can choose to manage /dev
> statically, or dynamically using mdev or eudev.
Thanks! I've made a few comments on PATCH 3/6, mainly around
bisectability and other questions.
However, I wanted to test this patch set, especially to understand
better the impact on the System configuration, but the patches no
longer apply. Would you mind fixing the few comments, and resending an
updated series on top of the latest master?
Thanks a lot!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 3/6] systemd: bump to v206.
2013-11-02 18:31 ` Thomas Petazzoni
@ 2013-11-04 11:45 ` Eric Le Bihan
2013-11-04 12:03 ` Thomas De Schampheleire
0 siblings, 1 reply; 14+ messages in thread
From: Eric Le Bihan @ 2013-11-04 11:45 UTC (permalink / raw)
To: buildroot
On Sat, Nov 02, 2013 at 07:31:39PM +0100, Thomas Petazzoni wrote:
Dear Thomas Petazzoni,
> > The selection of the following packages will also add features:
> >
> > - libglib2 package will add support for gudev.
> > - acl package will add support for multi-seat.
>
> Maybe this text should be mentioned in the help text of the systemd
> option.
Good suggestion. I will add it.
> > 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
>
> Without this patch (or similar patches), systemd does not build with
> uClibc, so it should be marked to depend on (e)glibc.
As there was no advantage in using systemd with a uClibc toolchain, Arnout
Vandecappelle suggested that I add:
depends on !BR2_TOOLCHAIN_USES_UCLIBC
in system/Config.in, but I'd prefer to add:
depends on BR2_TOOLCHAIN_USES_GLIBC+
As I have not tested systemd with the musl libc yet. I will also remove the
uClib patches.
> > + select BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
>
> Why do we have this select? I must say I don't really follow what's
> going on in system/Config.in in terms of init option vs. /dev
> management options.
The line
select BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV
is needed in order to have udisks and friends to show up. The 'depends' became
a 'select' as I swapped the selection of the init system and the /dev
management.
> > +comment 'systemd needs toolchain w/ stack smashing protection'
> > + depends on !BR2_TOOLCHAIN_HAS_SSP
>
> Wow, that's probably the first package that has this requirement. What
> happens when the toolchain doesn't have SSP support?
Without SSP, systemd does not build. It is compiled using lots of error
checking flags (see OUR_CFLAGS in configure.ac), which sounds sensible when
building a program meant to run as PID 1. This requirement made me report the
issue "uClibc fails to build with stack smash protection" back in September,
which was caused by the change in GCC build procedure (two steps instead of
three).
> > +comment "/dev management using udev (from systemd)"
> > + depends on BR2_INIT_SYSTEMD
>
> I don't think this comment is really needed.
I'd prefer to keep it: even if the end user does not have the choice of /dev
management, he is informed of the solution chosen for him.
>
> In order to make the patch series bisectable, I think I would suggest
> to have the following sequence:
>
> * Introduce the eudev package
>
> * Turn the udev package into a virtual package that uses the only
> available udev implementation: eudev
>
> * Bump the systemd package, and register it as a possible udev
> implementation.
>
> What do you think?
You are right. My initial problem was "bumping systemd", so I kept at looking
the udev stuff from this perspective. It seems more logical to see it as a
"bumping udev" problem. So, I will send a new series, with eudev as a starting
point.
Best Regards,
ELB
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH v2 3/6] systemd: bump to v206.
2013-11-04 11:45 ` Eric Le Bihan
@ 2013-11-04 12:03 ` Thomas De Schampheleire
0 siblings, 0 replies; 14+ messages in thread
From: Thomas De Schampheleire @ 2013-11-04 12:03 UTC (permalink / raw)
To: buildroot
Hi,
On Mon, Nov 4, 2013 at 12:45 PM, Eric Le Bihan
<eric.le.bihan.dev@free.fr> wrote:
> On Sat, Nov 02, 2013 at 07:31:39PM +0100, Thomas Petazzoni wrote:
>
[..]
>
>> > +comment 'systemd needs toolchain w/ stack smashing protection'
>> > + depends on !BR2_TOOLCHAIN_HAS_SSP
>>
>> Wow, that's probably the first package that has this requirement. What
>> happens when the toolchain doesn't have SSP support?
>
> Without SSP, systemd does not build. It is compiled using lots of error
> checking flags (see OUR_CFLAGS in configure.ac), which sounds sensible when
> building a program meant to run as PID 1. This requirement made me report the
> issue "uClibc fails to build with stack smash protection" back in September,
> which was caused by the change in GCC build procedure (two steps instead of
> three).
>
Note that the comments should be '...needs a toolchain...' (with 'a')
I wonder what to do here though. We have deliberately chosen the
toolchain keywords to be short so that the entire line can fit within
a 80-char terminal. 'Stack smashing protection' is pretty long in that
respect.
Not sure if there will be other packages that depend on this option,
but what about we name it just 'SSP' (which also is how it's named in
the toolchain menu). We should probably also update the manual with
this new 'toolchain option' that can have a comment.
Best regards,
Thomas
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-11-04 12:03 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-20 12:24 [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Eric Le Bihan
2013-09-20 12:24 ` [Buildroot] [PATCH v2 1/6] system: move init system option above /dev management Eric Le Bihan
2013-11-02 18:06 ` Thomas Petazzoni
2013-09-20 12:24 ` [Buildroot] [PATCH v2 2/6] sysvinit: depend on SysV selected as init system Eric Le Bihan
2013-11-02 18:07 ` Thomas Petazzoni
2013-09-20 12:24 ` [Buildroot] [PATCH v2 3/6] systemd: bump to v206 Eric Le Bihan
2013-11-02 18:31 ` Thomas Petazzoni
2013-11-04 11:45 ` Eric Le Bihan
2013-11-04 12:03 ` Thomas De Schampheleire
2013-09-20 12:24 ` [Buildroot] [PATCH v2 4/6] systemd: set correct firmware search path Eric Le Bihan
2013-11-02 18:10 ` Thomas Petazzoni
2013-09-20 12:24 ` [Buildroot] [PATCH v2 5/6] package: update dependency on udev Eric Le Bihan
2013-09-20 12:24 ` [Buildroot] [PATCH v2 6/6] eudev: new package Eric Le Bihan
2013-11-02 18:34 ` [Buildroot] [PATCH v2 0/6] package: udev is now provided by systemd or eudev Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox