]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
Split the systemd dracut module up
authorHarald Hoyer <harald@redhat.com>
Thu, 19 Mar 2015 09:02:05 +0000 (10:02 +0100)
committerHarald Hoyer <harald@redhat.com>
Thu, 19 Mar 2015 09:07:37 +0000 (10:07 +0100)
Basic systemd functionality is in 00systemd now.
Switching root and the initrd.target is in 00systemd-initrd.
Dracut additions to the systemd initrd are in 98dracut-systemd.

36 files changed:
Makefile
modules.d/00systemd/module-setup.sh [moved from modules.d/98systemd/module-setup.sh with 78% similarity]
modules.d/01systemd-initrd/module-setup.sh [new file with mode: 0755]
modules.d/98dracut-systemd/dracut-cmdline-ask.service [moved from modules.d/98systemd/dracut-cmdline-ask.service with 100% similarity]
modules.d/98dracut-systemd/dracut-cmdline-ask.sh [moved from modules.d/98systemd/dracut-cmdline-ask.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-cmdline.service [moved from modules.d/98systemd/dracut-cmdline.service with 100% similarity]
modules.d/98dracut-systemd/dracut-cmdline.service.8.asc [moved from modules.d/98systemd/dracut-cmdline.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-cmdline.sh [moved from modules.d/98systemd/dracut-cmdline.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-emergency.service [moved from modules.d/98systemd/dracut-emergency.service with 100% similarity]
modules.d/98dracut-systemd/dracut-emergency.sh [moved from modules.d/98systemd/dracut-emergency.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-initqueue.service [moved from modules.d/98systemd/dracut-initqueue.service with 100% similarity]
modules.d/98dracut-systemd/dracut-initqueue.service.8.asc [moved from modules.d/98systemd/dracut-initqueue.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-initqueue.sh [moved from modules.d/98systemd/dracut-initqueue.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-mount.service [moved from modules.d/98systemd/dracut-mount.service with 100% similarity]
modules.d/98dracut-systemd/dracut-mount.service.8.asc [moved from modules.d/98systemd/dracut-mount.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-mount.sh [moved from modules.d/98systemd/dracut-mount.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-mount.service [moved from modules.d/98systemd/dracut-pre-mount.service with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-mount.service.8.asc [moved from modules.d/98systemd/dracut-pre-mount.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-mount.sh [moved from modules.d/98systemd/dracut-pre-mount.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-pivot.service [moved from modules.d/98systemd/dracut-pre-pivot.service with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-pivot.service.8.asc [moved from modules.d/98systemd/dracut-pre-pivot.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-pivot.sh [moved from modules.d/98systemd/dracut-pre-pivot.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-trigger.service [moved from modules.d/98systemd/dracut-pre-trigger.service with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-trigger.service.8.asc [moved from modules.d/98systemd/dracut-pre-trigger.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-trigger.sh [moved from modules.d/98systemd/dracut-pre-trigger.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-udev.service [moved from modules.d/98systemd/dracut-pre-udev.service with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-udev.service.8.asc [moved from modules.d/98systemd/dracut-pre-udev.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-pre-udev.sh [moved from modules.d/98systemd/dracut-pre-udev.sh with 100% similarity]
modules.d/98dracut-systemd/dracut-shutdown.service [moved from modules.d/98systemd/dracut-shutdown.service with 100% similarity]
modules.d/98dracut-systemd/dracut-shutdown.service.8.asc [moved from modules.d/98systemd/dracut-shutdown.service.8.asc with 100% similarity]
modules.d/98dracut-systemd/dracut-tmpfiles.conf [moved from modules.d/98systemd/dracut-tmpfiles.conf with 100% similarity]
modules.d/98dracut-systemd/emergency.service [moved from modules.d/98systemd/emergency.service with 100% similarity]
modules.d/98dracut-systemd/module-setup.sh [new file with mode: 0644]
modules.d/98dracut-systemd/rootfs-generator.sh [moved from modules.d/98systemd/rootfs-generator.sh with 100% similarity]
modules.d/98systemd/initrd.target [deleted file]
modules.d/98systemd/rescue.service [deleted file]

index 41ae2740d05292152e2cf3d1923514d4a00d7548..916b50e6fa10ccba50f6c4761c5994de83a9cfda 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -28,14 +28,14 @@ man8pages = dracut.8 \
             dracut-catimages.8 \
             mkinitrd.8 \
             mkinitrd-suse.8 \
-            modules.d/98systemd/dracut-cmdline.service.8 \
-            modules.d/98systemd/dracut-initqueue.service.8 \
-            modules.d/98systemd/dracut-mount.service.8 \
-            modules.d/98systemd/dracut-shutdown.service.8 \
-            modules.d/98systemd/dracut-pre-mount.service.8 \
-            modules.d/98systemd/dracut-pre-pivot.service.8 \
-            modules.d/98systemd/dracut-pre-trigger.service.8 \
-            modules.d/98systemd/dracut-pre-udev.service.8
+            modules.d/98dracut-systemd/dracut-cmdline.service.8 \
+            modules.d/98dracut-systemd/dracut-initqueue.service.8 \
+            modules.d/98dracut-systemd/dracut-mount.service.8 \
+            modules.d/98dracut-systemd/dracut-shutdown.service.8 \
+            modules.d/98dracut-systemd/dracut-pre-mount.service.8 \
+            modules.d/98dracut-systemd/dracut-pre-pivot.service.8 \
+            modules.d/98dracut-systemd/dracut-pre-trigger.service.8 \
+            modules.d/98dracut-systemd/dracut-pre-udev.service.8
 
 manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages)
 
@@ -124,7 +124,7 @@ ifneq ($(enable_documentation),no)
 endif
        if [ -n "$(systemdsystemunitdir)" ]; then \
                mkdir -p $(DESTDIR)$(systemdsystemunitdir); \
-               ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98systemd/dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown.service; \
+               ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown.service; \
                mkdir -p $(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants; \
                ln -s ../dracut-shutdown.service \
                $(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants/dracut-shutdown.service; \
@@ -138,7 +138,7 @@ endif
                    dracut-pre-trigger.service \
                    dracut-pre-udev.service \
                    ; do \
-                       ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98systemd/$$i $(DESTDIR)$(systemdsystemunitdir); \
+                       ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/$$i $(DESTDIR)$(systemdsystemunitdir); \
                        ln -s ../$$i \
                        $(DESTDIR)$(systemdsystemunitdir)/initrd.target.wants/$$i; \
                done \
similarity index 78%
rename from modules.d/98systemd/module-setup.sh
rename to modules.d/00systemd/module-setup.sh
index 761349f6e3f27127c2e5f1f5fef8859873c03899..3852ff7e2d0f131abbb7b26f5efe9bc9f84d1c59 100755 (executable)
@@ -51,9 +51,6 @@ install() {
         $systemdsystemunitdir/basic.target \
         $systemdsystemunitdir/halt.target \
         $systemdsystemunitdir/kexec.target \
-        $systemdsystemunitdir/initrd.target \
-        $systemdsystemunitdir/initrd-fs.target \
-        $systemdsystemunitdir/initrd-root-fs.target \
         $systemdsystemunitdir/local-fs.target \
         $systemdsystemunitdir/local-fs-pre.target \
         $systemdsystemunitdir/remote-fs.target \
@@ -115,12 +112,9 @@ install() {
         $systemdsystemunitdir/sysinit.target.wants/systemd-sysctl.service \
         \
         $systemdsystemunitdir/ctrl-alt-del.target \
+        $systemdsystemunitdir/reboot.target \
+        $systemdsystemunitdir/systemd-reboot.service \
         $systemdsystemunitdir/syslog.socket \
-        $systemdsystemunitdir/initrd-switch-root.target \
-        $systemdsystemunitdir/initrd-switch-root.service \
-        $systemdsystemunitdir/initrd-cleanup.service \
-        $systemdsystemunitdir/initrd-udevadm-cleanup-db.service \
-        $systemdsystemunitdir/initrd-parse-etc.service \
         \
         $systemdsystemunitdir/slices.target \
         $systemdsystemunitdir/system.slice \
@@ -185,24 +179,6 @@ install() {
     ln_r $systemdutildir/systemd "/init"
     ln_r $systemdutildir/systemd "/sbin/init"
 
-    inst_script "$moddir/dracut-emergency.sh" /bin/dracut-emergency
-    inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/emergency.service
-    inst_simple "$moddir/dracut-emergency.service" ${systemdsystemunitdir}/dracut-emergency.service
-    inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/rescue.service
-
-    ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
-
-    inst_script "$moddir/dracut-cmdline.sh" /bin/dracut-cmdline
-    inst_script "$moddir/dracut-cmdline-ask.sh" /bin/dracut-cmdline-ask
-    inst_script "$moddir/dracut-pre-udev.sh" /bin/dracut-pre-udev
-    inst_script "$moddir/dracut-pre-trigger.sh" /bin/dracut-pre-trigger
-    inst_script "$moddir/dracut-initqueue.sh" /bin/dracut-initqueue
-    inst_script "$moddir/dracut-pre-mount.sh" /bin/dracut-pre-mount
-    inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount
-    inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot
-
-    inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator
-
     inst_binary true
     ln_r $(type -P true) "/usr/bin/loginctl"
     ln_r $(type -P true) "/bin/loginctl"
@@ -215,8 +191,7 @@ install() {
 
     for i in \
         emergency.target \
-        dracut-emergency.service \
-        rescue.service \
+        rescue.target \
         systemd-ask-password-console.service \
         systemd-ask-password-plymouth.service \
         ; do
@@ -225,24 +200,6 @@ install() {
             "${systemdsystemunitdir}/${i}.wants/systemd-vconsole-setup.service"
     done
 
-    mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
-    for i in \
-        dracut-cmdline.service \
-        dracut-cmdline-ask.service \
-        dracut-initqueue.service \
-        dracut-mount.service \
-        dracut-pre-mount.service \
-        dracut-pre-pivot.service \
-        dracut-pre-trigger.service \
-        dracut-pre-udev.service \
-        ; do
-        inst_simple "$moddir/${i}" "$systemdsystemunitdir/${i}"
-        ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/initrd.target.wants/${i}"
-    done
-
-    inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf"
-
-
     mkdir -p "$initdir/etc/systemd"
     # turn off RateLimit for journal
     {
diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh
new file mode 100755 (executable)
index 0000000..ca1f456
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+    [[ $mount_needs ]] && return 1
+
+    if ! dracut_module_included "systemd"; then
+        derror "dracut-systemd needs systemd in the initramfs"
+        return 1
+    fi
+
+    return 0
+}
+
+# called by dracut
+depends() {
+    echo "systemd"
+}
+
+installkernel() {
+    return 0
+}
+
+# called by dracut
+install() {
+    local _mods
+
+    inst_multiple -o \
+        $systemdsystemunitdir/initrd.target \
+        $systemdsystemunitdir/initrd-fs.target \
+        $systemdsystemunitdir/initrd-root-fs.target \
+        $systemdsystemunitdir/initrd-switch-root.target \
+        $systemdsystemunitdir/initrd-switch-root.service \
+        $systemdsystemunitdir/initrd-cleanup.service \
+        $systemdsystemunitdir/initrd-udevadm-cleanup-db.service \
+        $systemdsystemunitdir/initrd-parse-etc.service
+
+    ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
+}
+
diff --git a/modules.d/98dracut-systemd/module-setup.sh b/modules.d/98dracut-systemd/module-setup.sh
new file mode 100644 (file)
index 0000000..d917557
--- /dev/null
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+    [[ $mount_needs ]] && return 1
+
+    if ! dracut_module_included "systemd-initrd"; then
+        derror "dracut-systemd needs systemd-initrd in the initramfs"
+        return 1
+    fi
+
+    return 0
+}
+
+# called by dracut
+depends() {
+    echo "systemd-initrd"
+    return 0
+}
+
+installkernel() {
+    return 0
+}
+
+# called by dracut
+install() {
+    local _mods
+    inst_script "$moddir/dracut-emergency.sh" /bin/dracut-emergency
+    inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/emergency.service
+    inst_simple "$moddir/dracut-emergency.service" ${systemdsystemunitdir}/dracut-emergency.service
+    inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/rescue.service
+
+    ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
+
+    inst_script "$moddir/dracut-cmdline.sh" /bin/dracut-cmdline
+    inst_script "$moddir/dracut-cmdline-ask.sh" /bin/dracut-cmdline-ask
+    inst_script "$moddir/dracut-pre-udev.sh" /bin/dracut-pre-udev
+    inst_script "$moddir/dracut-pre-trigger.sh" /bin/dracut-pre-trigger
+    inst_script "$moddir/dracut-initqueue.sh" /bin/dracut-initqueue
+    inst_script "$moddir/dracut-pre-mount.sh" /bin/dracut-pre-mount
+    inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount
+    inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot
+
+    inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator
+
+    for i in \
+        emergency.target \
+        rescue.service \
+        systemd-ask-password-console.service \
+        systemd-ask-password-plymouth.service \
+        ; do
+        mkdir -p "${initdir}${systemdsystemunitdir}/${i}.wants"
+        ln_r "${systemdsystemunitdir}/systemd-vconsole-setup.service" \
+            "${systemdsystemunitdir}/${i}.wants/systemd-vconsole-setup.service"
+    done
+
+    mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
+    for i in \
+        dracut-cmdline.service \
+        dracut-cmdline-ask.service \
+        dracut-initqueue.service \
+        dracut-mount.service \
+        dracut-pre-mount.service \
+        dracut-pre-pivot.service \
+        dracut-pre-trigger.service \
+        dracut-pre-udev.service \
+        ; do
+        inst_simple "$moddir/${i}" "$systemdsystemunitdir/${i}"
+        ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/initrd.target.wants/${i}"
+    done
+
+    inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf"
+}
+
diff --git a/modules.d/98systemd/initrd.target b/modules.d/98systemd/initrd.target
deleted file mode 100644 (file)
index 4b7e7da..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Initrd Target
-Requires=basic.target
-Conflicts=rescue.service rescue.target
-After=basic.target rescue.service rescue.target
-AllowIsolate=yes
-OnFailure=emergency.target
-OnFailureIsolate=yes
-ConditionPathExists=/usr/lib/initrd-release
diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service
deleted file mode 100644 (file)
index edc2461..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU Lesser General Public License as published by
-#  the Free Software Foundation; either version 2.1 of the License, or
-#  (at your option) any later version.
-
-# See systemd.special(7) for details
-
-[Unit]
-Description=Rescue Shell
-DefaultDependencies=no
-
-[Service]
-Environment=HOME=/
-Environment=DRACUT_SYSTEMD=1
-Environment=NEWROOT=/sysroot
-WorkingDirectory=/
-ExecStartPre=-/bin/plymouth quit
-ExecStart=-/bin/sh -i -l
-ExecStopPost=-/bin/rm -f -- /.console_lock
-ExecStopPost=-/usr/bin/systemctl --fail --no-block default
-Type=idle
-StandardInput=tty-force
-StandardOutput=inherit
-StandardError=inherit
-KillMode=process
-IgnoreSIGPIPE=no
-
-# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
-# terminates cleanly.
-KillSignal=SIGHUP