From b0f23d1e562e753cb78a473fdade956a25cc337b Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 20 Nov 2016 17:42:34 +0100 Subject: 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. --- package/systemd/Makefile | 40 ++++++++++++++++++---- package/systemd/files/systemd.postinst | 27 +++++++++++++++ package/systemd/files/wired.network | 5 +++ package/systemd/patches/patch-Makefile_am | 30 ++++++++++++++++ package/systemd/patches/patch-configure_ac | 11 ++++++ .../patches/patch-src_journal_journald-server_c | 11 ++++++ .../patch-units_console-getty_service_m4_in | 11 ++++++ .../patches/patch-units_serial-getty@_service_m4 | 11 ++++++ 8 files changed, 139 insertions(+), 7 deletions(-) create mode 100644 package/systemd/files/systemd.postinst create mode 100644 package/systemd/files/wired.network create mode 100644 package/systemd/patches/patch-Makefile_am create mode 100644 package/systemd/patches/patch-configure_ac create mode 100644 package/systemd/patches/patch-src_journal_journald-server_c create mode 100644 package/systemd/patches/patch-units_console-getty_service_m4_in create mode 100644 package/systemd/patches/patch-units_serial-getty@_service_m4 (limited to 'package/systemd') 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 -- cgit v1.2.3