From c1fb1e7b1493e935078c3ea0fd246e8afdfa25db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Niew=C3=B6hner?= Date: Mon, 25 Mar 2019 20:29:12 +0100 Subject: [PATCH] Temporary commit (just for transparence; will be squashed to prior commit later) Changes: - Move dracut systemd service to dracut module as it is only used by dracut itself but never after rootfs got mounted. This seems to be the correct path for such service file, as this is done in multiple upstream modules, too. - Add install to module setup - Make dependency on zfs-env-bootfs dependent on cmdline, just like this is done in the [Mount] section - Revert changes to rpm/generic/zfs.spec.in and configure.ac - Renamed service to zfs-env-bootfs --- configure.ac | 1 - contrib/dracut/90zfs/.gitignore | 1 + contrib/dracut/90zfs/Makefile.am | 10 +++++++--- contrib/dracut/90zfs/module-setup.sh.in | 1 + .../zfs-env-bootfs.service.in} | 0 contrib/dracut/90zfs/zfs-generator.sh.in | 7 +++++-- contrib/dracut/Makefile.am | 3 +-- contrib/dracut/systemd/.gitignore | 1 - contrib/dracut/systemd/Makefile.am | 13 ------------- rpm/generic/zfs.spec.in | 6 +----- 10 files changed, 16 insertions(+), 27 deletions(-) rename contrib/dracut/{systemd/zfs-dracut-bootfs.service.in => 90zfs/zfs-env-bootfs.service.in} (100%) delete mode 100644 contrib/dracut/systemd/.gitignore delete mode 100644 contrib/dracut/systemd/Makefile.am diff --git a/configure.ac b/configure.ac index 55c410985060..3d9fd2848e48 100644 --- a/configure.ac +++ b/configure.ac @@ -127,7 +127,6 @@ AC_CONFIG_FILES([ contrib/dracut/Makefile contrib/dracut/02zfsexpandknowledge/Makefile contrib/dracut/90zfs/Makefile - contrib/dracut/systemd/Makefile contrib/initramfs/Makefile contrib/initramfs/hooks/Makefile contrib/initramfs/scripts/Makefile diff --git a/contrib/dracut/90zfs/.gitignore b/contrib/dracut/90zfs/.gitignore index eb41fce4f00b..85c23f75ec01 100644 --- a/contrib/dracut/90zfs/.gitignore +++ b/contrib/dracut/90zfs/.gitignore @@ -6,3 +6,4 @@ zfs-generator.sh zfs-lib.sh zfs-load-key.sh zfs-needshutdown.sh +zfs-env-bootfs.service diff --git a/contrib/dracut/90zfs/Makefile.am b/contrib/dracut/90zfs/Makefile.am index afcd5102296b..0a557f57f256 100644 --- a/contrib/dracut/90zfs/Makefile.am +++ b/contrib/dracut/90zfs/Makefile.am @@ -9,6 +9,9 @@ pkgdracut_SCRIPTS = \ zfs-needshutdown.sh \ zfs-lib.sh +pkgdracut_DATA = \ + zfs-env-bootfs.service + EXTRA_DIST = \ $(top_srcdir)/contrib/dracut/90zfs/export-zfs.sh.in \ $(top_srcdir)/contrib/dracut/90zfs/module-setup.sh.in \ @@ -17,9 +20,10 @@ EXTRA_DIST = \ $(top_srcdir)/contrib/dracut/90zfs/zfs-generator.sh.in \ $(top_srcdir)/contrib/dracut/90zfs/zfs-load-key.sh.in \ $(top_srcdir)/contrib/dracut/90zfs/zfs-needshutdown.sh.in \ - $(top_srcdir)/contrib/dracut/90zfs/zfs-lib.sh.in + $(top_srcdir)/contrib/dracut/90zfs/zfs-lib.sh.in \ + $(top_srcdir)/contrib/dracut/90zfs/zfs-env-bootfs.service.in -$(pkgdracut_SCRIPTS):%:%.in +$(pkgdracut_SCRIPTS) $(pkgdracut_DATA) :%:%.in -$(SED) -e 's,@bindir\@,$(bindir),g' \ -e 's,@sbindir\@,$(sbindir),g' \ -e 's,@udevdir\@,$(udevdir),g' \ @@ -30,4 +34,4 @@ $(pkgdracut_SCRIPTS):%:%.in $< >'$@' distclean-local:: - -$(RM) $(pkgdracut_SCRIPTS) + -$(RM) $(pkgdracut_SCRIPTS) $(pkgdracut_DATA) diff --git a/contrib/dracut/90zfs/module-setup.sh.in b/contrib/dracut/90zfs/module-setup.sh.in index f595a369cd3e..fc5b67be010f 100755 --- a/contrib/dracut/90zfs/module-setup.sh.in +++ b/contrib/dracut/90zfs/module-setup.sh.in @@ -98,6 +98,7 @@ install() { type mark_hostonly >/dev/null 2>&1 && mark_hostonly @systemdunitdir@/zfs-import-$_item.service fi done + inst "${moddir}/zfs-env-bootfs.service" "${systemdsystemunitdir}/zfs-env-bootfs.service" dracut_install systemd-ask-password dracut_install systemd-tty-ask-password-agent mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants" diff --git a/contrib/dracut/systemd/zfs-dracut-bootfs.service.in b/contrib/dracut/90zfs/zfs-env-bootfs.service.in similarity index 100% rename from contrib/dracut/systemd/zfs-dracut-bootfs.service.in rename to contrib/dracut/90zfs/zfs-env-bootfs.service.in diff --git a/contrib/dracut/90zfs/zfs-generator.sh.in b/contrib/dracut/90zfs/zfs-generator.sh.in index b999de8bc0bf..88e1bf0ce115 100755 --- a/contrib/dracut/90zfs/zfs-generator.sh.in +++ b/contrib/dracut/90zfs/zfs-generator.sh.in @@ -41,8 +41,11 @@ echo "zfs-generator: writing extension for sysroot.mount to $GENERATOR_DIR"/sysr { echo "[Unit]" echo "Before=initrd-root-fs.target" - echo "After=zfs-dracut-bootfs.service zfs-import.target" - echo "Requires=zfs-dracut-bootfs.service" + echo "After=zfs-import.target" + if [ "${root}" = "zfs:AUTO" ] ; then + echo "After=zfs-env-bootfs.service" + echo "Requires=zfs-env-bootfs.service" + fi echo "[Mount]" if [ "${root}" = "zfs:AUTO" ] ; then echo "PassEnvironment=BOOTFS" diff --git a/contrib/dracut/Makefile.am b/contrib/dracut/Makefile.am index 52fec945e8b2..1065e5e94f0e 100644 --- a/contrib/dracut/Makefile.am +++ b/contrib/dracut/Makefile.am @@ -1,4 +1,3 @@ -SUBDIRS = 02zfsexpandknowledge 90zfs $(ZFS_INIT_SYSTEMD) -DIST_SUBDIRS = 02zfsexpandknowledge 90zfs systemd +SUBDIRS = 02zfsexpandknowledge 90zfs EXTRA_DIST = README.dracut.markdown diff --git a/contrib/dracut/systemd/.gitignore b/contrib/dracut/systemd/.gitignore deleted file mode 100644 index 33b6c638861a..000000000000 --- a/contrib/dracut/systemd/.gitignore +++ /dev/null @@ -1 +0,0 @@ -zfs-dracut-bootfs.service diff --git a/contrib/dracut/systemd/Makefile.am b/contrib/dracut/systemd/Makefile.am deleted file mode 100644 index 857d3d25f452..000000000000 --- a/contrib/dracut/systemd/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -systemdunit_DATA = \ - zfs-dracut-bootfs.service - -EXTRA_DIST = \ - $(top_srcdir)/contrib/dracut/systemd/zfs-dracut-bootfs.service.in - -$(systemdunit_DATA):%:%.in - -$(SED) -e 's,@bindir\@,$(bindir),g' \ - -e 's,@sbindir\@,$(sbindir),g' \ - $< >'$@' - -distclean-local:: - -$(RM) $(systemdunit_DATA) diff --git a/rpm/generic/zfs.spec.in b/rpm/generic/zfs.spec.in index 43cb9543b4e9..9faa3ba771a1 100644 --- a/rpm/generic/zfs.spec.in +++ b/rpm/generic/zfs.spec.in @@ -320,7 +320,7 @@ image which is ZFS aware. %if 0%{?_systemd} %define systemd --enable-systemd --with-systemdunitdir=%{_unitdir} --with-systemdpresetdir=%{_presetdir} --with-systemdmodulesloaddir=%{_modulesloaddir} --with-systemdgeneratordir=%{_systemdgeneratordir} --disable-sysvinit - %define systemd_svcs zfs-import-cache.service zfs-import-scan.service zfs-mount.service zfs-share.service zfs-zed.service zfs.target zfs-import.target zfs-dracut-bootfs.service + %define systemd_svcs zfs-import-cache.service zfs-import-scan.service zfs-mount.service zfs-share.service zfs-zed.service zfs.target zfs-import.target %else %define systemd --enable-sysvinit --disable-systemd %endif @@ -435,7 +435,6 @@ systemctl --system daemon-reload >/dev/null || true %{_presetdir}/* %{_modulesloaddir}/* %{_systemdgeneratordir}/* -%exclude %{_unitdir}/zfs-dracut* %else %config(noreplace) %{_sysconfdir}/init.d/* %config(noreplace) %{_initconfdir}/zfs @@ -468,9 +467,6 @@ systemctl --system daemon-reload >/dev/null || true %files dracut %doc contrib/dracut/README.dracut.markdown %{_dracutdir}/modules.d/* -%if 0%{?_systemd} -%{_unitdir}/zfs-dracut* -%endif %if %{with pyzfs} %files -n python%{__python_pkg_version}-pyzfs