[Buildroot] [PATCH v7 3/4] systemd: bump to v207.

Samuel Martin s.martin49 at gmail.com
Fri Feb 7 22:00:00 UTC 2014


Hi Eric,

On Fri, Feb 7, 2014 at 2:21 PM, Eric Le Bihan <eric.le.bihan.dev at free.fr> wrote:

[...]

> diff --git a/package/systemd/Config.in b/package/systemd/Config.in
> index 500e623..e3ea433 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,36 @@ 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 >= 3.0, with inotify, devtmpfs,
> +         tmpfs vfs and tmpfs POSIX ACL enabled.

Linux >= 3.0, really? IIRC systemd requires devtmpfs (available for a long
time), and cgroup which has been available since linux-2.6.36 (though the
patch to make them available on older kernel is easy to backport on older
kernel).

> +
> +         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"
> -       depends on BR2_USE_MMU
> -       depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV || !BR2_INET_IPV6 || \\
> -               !BR2_TOOLCHAIN_HAS_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

[...]

> diff --git a/system/Config.in b/system/Config.in
> index 34726b0..30d8efe 100644
> --- a/system/Config.in
> +++ b/system/Config.in
> @@ -87,20 +87,19 @@ 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

How does this play with kconfig?
Does not kconfig complain about some circular dependencies here, because
you have BR2_INIT_SYSTEMD selecting BR2_PACAKGE_SYSTEMD, while
BR2_PACKAGE_SYSTEMD depends on BR2_INIT_SYSTEMD?

>
> -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_EUDEV)
> +comment 'systemd needs an (e)glibc toolchain'
> +       depends on !BR2_TOOLCHAIN_USES_GLIBC
>
>  config BR2_INIT_NONE
>         bool "None"
> @@ -108,7 +107,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
> @@ -135,6 +134,9 @@ comment "eudev needs a toolchain w/ largefile, wchar, 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
>

Regards,

-- 
Samuel


More information about the buildroot mailing list