summaryrefslogtreecommitdiff
path: root/package/systemd
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-11-20 17:42:34 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2016-11-25 01:49:36 +0100
commitb0f23d1e562e753cb78a473fdade956a25cc337b (patch)
treefe4a5908d1e39e24ec6df66052e866ed72421a79 /package/systemd
parent49a817b44be5695a87f6b4c8eadef3bb0f9419f9 (diff)
finalize systemd as alternative init system
Most important is the fix in patch-src_journal_journald-server_c, which breaks startup of systemd-journald when code is compiled with -DNDEBUG. A lot of base-files reorganizing to only install required files on sysv systems.
Diffstat (limited to 'package/systemd')
-rw-r--r--package/systemd/Makefile40
-rw-r--r--package/systemd/files/systemd.postinst27
-rw-r--r--package/systemd/files/wired.network5
-rw-r--r--package/systemd/patches/patch-Makefile_am30
-rw-r--r--package/systemd/patches/patch-configure_ac11
-rw-r--r--package/systemd/patches/patch-src_journal_journald-server_c11
-rw-r--r--package/systemd/patches/patch-units_console-getty_service_m4_in11
-rw-r--r--package/systemd/patches/patch-units_serial-getty@_service_m411
8 files changed, 139 insertions, 7 deletions
diff --git a/package/systemd/Makefile b/package/systemd/Makefile
index 5bb456221..458ba5e88 100644
--- a/package/systemd/Makefile
+++ b/package/systemd/Makefile
@@ -9,11 +9,14 @@ PKG_RELEASE:= 1
PKG_HASH:= 1172c7c7d5d72fbded53186e7599d5272231f04cc8b72f9a0fb2c5c20dfc4880
PKG_DESCR:= system and service manager
PKG_SECTION:= base/apps
-PKG_DEPENDS:= libcap libmount
-PKG_BUILDDEP:= intltool-host gperf-host libcap util-linux gettext-host
+PKG_DEPENDS:= libcap libmount libuuid libblkid libncurses kmod
+PKG_BUILDDEP:= intltool-host gperf-host libcap util-linux gettext-host kmod
+PKG_KDEPENDS:= cgroups namespaces fhandle tmpfs-posix-acl tmpfs-xattr
PKG_URL:= https://wiki.freedesktop.org/www/Software/systemd/
PKG_SITES:= https://github.com/systemd/systemd/archive/
+PKG_CFLINE_SYSTEMD:= select BUSYBOX_SULOGIN
+
PKG_LIBC_DEPENDS:= glibc
DISTFILES:= v$(PKG_VERSION).tar.gz
@@ -22,13 +25,17 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,SYSTEMD,systemd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+XAKE_FLAGS+= V=1
+
AUTOTOOL_STYLE:= autogen
+CONFIGURE_ENV+= ac_cv_path_SULOGIN=/sbin/sulogin \
+ ac_cv_path_MOUNT_PATH=/bin/mount
CONFIGURE_ARGS+= --disable-static \
--disable-manpages \
--disable-selinux \
+ --enable-split-usr \
--disable-pam \
--disable-ima \
- --disable-libcryptsetup \
--disable-efi \
--disable-gnuefi \
--disable-ldconfig \
@@ -37,12 +44,12 @@ CONFIGURE_ARGS+= --disable-static \
--with-default-dnssec=no \
--without-python \
--disable-acl \
- --disable-audit \
--disable-libidn \
+ --disable-libcryptsetup \
--disable-seccomp \
--disable-xkbcommon \
- --disable-kdbus \
--disable-localed \
+ --disable-coredump \
--disable-polkit \
--disable-bzip2 \
--disable-lz4 \
@@ -53,16 +60,33 @@ CONFIGURE_ARGS+= --disable-static \
--disable-microhttpd \
--disable-qrencode \
--disable-quotacheck \
+ --disable-utmp \
--disable-rfkill \
--disable-smack \
- --disable-hibernate
+ --disable-backlight \
+ --disable-binfmt \
+ --disable-vconsole \
+ --disable-hibernate \
+ --disable-audit \
+ --disable-hwdb \
+ --disable-machined \
+ --disable-importd \
+ --enable-randomseed \
+ --enable-timedated \
+ --enable-timesyncd \
+ --enable-sysusers \
+ --enable-tmpfiles \
+ --enable-firstboot
systemd-install:
$(INSTALL_DIR) $(IDIR_SYSTEMD)/etc
+ touch $(IDIR_SYSTEMD)/etc/machine-id
$(CP) $(WRKINST)/etc/* \
$(IDIR_SYSTEMD)/etc
$(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/lib
- $(CP) $(WRKINST)/usr/lib/* \
+ $(CP) $(WRKINST)/usr/lib/*.so* \
+ $(IDIR_SYSTEMD)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/{systemd,sysusers.d,kernel,udev,sysctl.d,tmpfiles.d} \
$(IDIR_SYSTEMD)/usr/lib
$(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/bin
$(CP) $(WRKINST)/usr/bin/* \
@@ -70,5 +94,7 @@ systemd-install:
$(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/share
$(CP) $(WRKINST)/usr/share/* \
$(IDIR_SYSTEMD)/usr/share
+ $(CP) ./files/*.network \
+ $(IDIR_SYSTEMD)/etc/systemd/network
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/systemd/files/systemd.postinst b/package/systemd/files/systemd.postinst
new file mode 100644
index 000000000..76e213117
--- /dev/null
+++ b/package/systemd/files/systemd.postinst
@@ -0,0 +1,27 @@
+#!/bin/sh
+. $IPKG_INSTROOT/etc/functions.sh
+gid=$(get_next_gid)
+add_group utmp $gid
+gid=$(get_next_gid)
+add_group systemd-journal $gid
+gid=$(get_next_gid)
+add_group systemd-bus-proxy $gid
+add_user systemd-bus-proxy $(get_next_uid) $gid /
+gid=$(get_next_gid)
+add_group systemd-journal-gateway $gid
+add_user systemd-journal-gateway $(get_next_uid) $gid /
+gid=$(get_next_gid)
+add_group systemd-journal-remote $gid
+add_user systemd-journal-remote $(get_next_uid) $gid /
+gid=$(get_next_gid)
+add_group systemd-journal-upload $gid
+add_user systemd-journal-upload $(get_next_uid) $gid /
+gid=$(get_next_gid)
+add_group systemd-network $gid
+add_user systemd-network $(get_next_uid) $gid /
+gid=$(get_next_gid)
+add_group systemd-resolve $gid
+add_user systemd-resolve $(get_next_uid) $gid /
+gid=$(get_next_gid)
+add_group systemd-timesync $gid
+add_user systemd-timesync $(get_next_uid) $gid /
diff --git a/package/systemd/files/wired.network b/package/systemd/files/wired.network
new file mode 100644
index 000000000..9613cc040
--- /dev/null
+++ b/package/systemd/files/wired.network
@@ -0,0 +1,5 @@
+[Match]
+Name=en*
+
+[Network]
+DHCP=ipv4
diff --git a/package/systemd/patches/patch-Makefile_am b/package/systemd/patches/patch-Makefile_am
new file mode 100644
index 000000000..a41947910
--- /dev/null
+++ b/package/systemd/patches/patch-Makefile_am
@@ -0,0 +1,30 @@
+--- systemd-231.orig/Makefile.am 2016-07-25 21:49:47.000000000 +0200
++++ systemd-231/Makefile.am 2016-11-24 02:37:14.165088827 +0100
+@@ -312,9 +312,9 @@ install-aliases-hook:
+ set -- $(SYSTEM_UNIT_ALIASES) && \
+ dir=$(systemunitdir) && $(install-aliases)
+ set -- $(USER_UNIT_ALIASES) && \
+- dir=$(userunitdir) && $(install-relative-aliases)
++ dir=$(userunitdir) && $(install-aliases)
+ set -- $(GENERAL_ALIASES) && \
+- dir= && $(install-relative-aliases)
++ dir= && $(install-aliases)
+
+ define install-aliases
+ while [ -n "$$1" ]; do \
+@@ -324,15 +324,6 @@ define install-aliases
+ shift 2 || exit $$?; \
+ done
+ endef
+-
+-define install-relative-aliases
+- while [ -n "$$1" ]; do \
+- $(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \
+- rm -f $(DESTDIR)$$dir/$$2 && \
+- $(LN_S) --relative $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
+- shift 2 || exit $$?; \
+- done
+-endef
+
+ install-touch-usr-hook:
+ touch -c $(DESTDIR)/$(prefix)
diff --git a/package/systemd/patches/patch-configure_ac b/package/systemd/patches/patch-configure_ac
new file mode 100644
index 000000000..8cfc64fa5
--- /dev/null
+++ b/package/systemd/patches/patch-configure_ac
@@ -0,0 +1,11 @@
+--- systemd-231.orig/configure.ac 2016-07-25 21:49:47.000000000 +0200
++++ systemd-231/configure.ac 2016-11-24 02:37:14.165088827 +0100
+@@ -110,8 +110,6 @@ AC_PATH_PROG([SULOGIN], [sulogin], [/usr
+ AC_PATH_PROG([MOUNT_PATH], [mount], [/usr/bin/mount], [$PATH:/usr/sbin:/sbin])
+ AC_PATH_PROG([UMOUNT_PATH], [umount], [/usr/bin/umount], [$PATH:/usr/sbin:/sbin])
+
+-AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])])
+-
+ M4_DEFINES=
+
+ AC_CHECK_TOOL(OBJCOPY, objcopy)
diff --git a/package/systemd/patches/patch-src_journal_journald-server_c b/package/systemd/patches/patch-src_journal_journald-server_c
new file mode 100644
index 000000000..704de9126
--- /dev/null
+++ b/package/systemd/patches/patch-src_journal_journald-server_c
@@ -0,0 +1,11 @@
+--- systemd-231.orig/src/journal/journald-server.c 2016-07-25 21:49:47.000000000 +0200
++++ systemd-231/src/journal/journald-server.c 2016-11-25 00:47:51.392883508 +0100
+@@ -1347,7 +1347,7 @@ static int setup_signals(Server *s) {
+
+ assert(s);
+
+- assert(sigprocmask_many(SIG_SETMASK, NULL, SIGINT, SIGTERM, SIGUSR1, SIGUSR2, SIGRTMIN+1, -1) >= 0);
++ assert_se(sigprocmask_many(SIG_SETMASK, NULL, SIGINT, SIGTERM, SIGUSR1, SIGUSR2, SIGRTMIN+1, -1) >= 0);
+
+ r = sd_event_add_signal(s->event, &s->sigusr1_event_source, SIGUSR1, dispatch_sigusr1, s);
+ if (r < 0)
diff --git a/package/systemd/patches/patch-units_console-getty_service_m4_in b/package/systemd/patches/patch-units_console-getty_service_m4_in
new file mode 100644
index 000000000..3ffd541c6
--- /dev/null
+++ b/package/systemd/patches/patch-units_console-getty_service_m4_in
@@ -0,0 +1,11 @@
+--- systemd-232.orig/units/console-getty.service.m4.in 2016-11-03 18:16:42.000000000 +0100
++++ systemd-232/units/console-getty.service.m4.in 2016-11-19 08:53:54.070304206 +0100
+@@ -16,7 +16,7 @@ After=rc-local.service
+ Before=getty.target
+
+ [Service]
+-ExecStart=-/sbin/agetty --noclear --keep-baud console 115200,38400,9600 $TERM
++ExecStart=-/sbin/getty -L %I 115200 vt100
+ Type=idle
+ Restart=always
+ RestartSec=0
diff --git a/package/systemd/patches/patch-units_serial-getty@_service_m4 b/package/systemd/patches/patch-units_serial-getty@_service_m4
new file mode 100644
index 000000000..3767b53c2
--- /dev/null
+++ b/package/systemd/patches/patch-units_serial-getty@_service_m4
@@ -0,0 +1,11 @@
+--- systemd-232.orig/units/serial-getty@.service.m4 2016-11-03 18:16:42.000000000 +0100
++++ systemd-232/units/serial-getty@.service.m4 2016-11-19 08:53:35.509582664 +0100
+@@ -22,7 +22,7 @@ Before=getty.target
+ IgnoreOnIsolate=yes
+
+ [Service]
+-ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
++ExecStart=-/sbin/getty -L %I 115200 vt100
+ Type=idle
+ Restart=always
+ UtmpIdentifier=%I