]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
feat(dracut.sh): allow overriding the systemctl command for sysroot
authorZoltán Böszörményi <zboszor@pr.hu>
Sun, 7 Feb 2021 14:29:56 +0000 (15:29 +0100)
committerJóhann B. Guðmundsson <johannbg@gmail.com>
Tue, 9 Feb 2021 07:09:28 +0000 (07:09 +0000)
Allow overriding the systemctl command for sysroot with $SYSTEMCTL
Modified every modules' module-setup.sh to use the envvar instead
of the hardcoded command name.

Signed-off-by: Zoltán Böszörményi <zboszor@pr.hu>
12 files changed:
dracut.8.asc
dracut.sh
modules.d/00systemd/module-setup.sh
modules.d/01systemd-initrd/module-setup.sh
modules.d/01systemd-sysusers/module-setup.sh
modules.d/02systemd-networkd/module-setup.sh
modules.d/06rngd/module-setup.sh
modules.d/90multipath/module-setup.sh
modules.d/95iscsi/module-setup.sh
modules.d/98dracut-systemd/module-setup.sh
modules.d/99memstrack/module-setup.sh
modules.d/99squash/module-setup.sh

index ab7d40e4d5ca335f8ad3ecf5db543e3b637dc624..9110b4e0d23d1a30315d152710ff9fb1f44c89ec 100644 (file)
@@ -596,6 +596,9 @@ Default:
 _SYSTEMD_VERSION_::
     overrides systemd version. Used for **--sysroot**.
 
+_SYSTEMCTL_::
+    overrides the systemctl binary. Used for **--sysroot**.
+
 _DRACUT_INSTALL_PATH_::
     overrides **PATH** environment for **dracut-install** to look for
     binaries relative to **--sysroot**. In a cross-compiled environment
index c6ff8369ca0358033e7b74f37636c3913d3d19ff..a6cbc3dd9319f1a5a233b2bdabce50dfa744fa50 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -756,6 +756,8 @@ done
 [[ -z "$dracutsysrootdir" ]] && export PATH="${NPATH#:}"
 unset NPATH
 
+export SYSTEMCTL=${SYSTEMCTL:-systemctl}
+
 # these options add to the stuff in the config file
 (( ${#add_dracutmodules_l[@]} )) && add_dracutmodules+=" ${add_dracutmodules_l[@]} "
 (( ${#force_add_dracutmodules_l[@]} )) && force_add_dracutmodules+=" ${force_add_dracutmodules_l[@]} "
index 15ddd0a16bc0628feb54d18f5ffbfd663f215733..8e6e41d6bd3d8012a2b5c3cb6ec1ecac3816fb36 100755 (executable)
@@ -244,7 +244,7 @@ install() {
         systemd-ask-password-plymouth.service \
         ; do
         [[ -f $systemdsystemunitdir/$i ]] || continue
-        systemctl -q --root "$initdir" add-wants "$i" systemd-vconsole-setup.service
+        $SYSTEMCTL -q --root "$initdir" add-wants "$i" systemd-vconsole-setup.service
     done
 
     mkdir -p "$initdir/etc/systemd"
@@ -256,5 +256,5 @@ install() {
         echo "RateLimitBurst=0"
     } >> "$initdir/etc/systemd/journald.conf"
 
-    systemctl -q --root "$initdir" set-default multi-user.target
+    $SYSTEMCTL -q --root "$initdir" set-default multi-user.target
 }
index c10e6ade57f1a9946438773ea9a6a4e9d2dd02be..1e9f5691365c0d5874aceba53d3ac431d90f1448 100755 (executable)
@@ -36,5 +36,5 @@ install() {
         $systemdsystemunitdir/initrd-udevadm-cleanup-db.service \
         $systemdsystemunitdir/initrd-parse-etc.service
 
-    systemctl -q --root "$initdir" set-default initrd.target
+    $SYSTEMCTL -q --root "$initdir" set-default initrd.target
 }
index 43616d0f1ce7359469adecb0ba9d73c750d4b64a..c0962a9b788e1921db1b5eb75d645572e13d76c9 100644 (file)
@@ -55,6 +55,6 @@ install() {
         fi
 
         # Enable the systemd type service unit for sysusers.
-        systemctl -q --root "$initdir" enable systemd-sysusers.service
+        $SYSTEMCTL -q --root "$initdir" enable systemd-sysusers.service
 
 }
index d3e22f51ae0bd85d1ba3a7d1a5c2f487d8b07b72..03c3a7b56484281ea718d2aa6564b4bd96102ce0 100755 (executable)
@@ -65,7 +65,7 @@ install() {
         systemd-networkd.socket
 #       systemd-timesyncd.service
     do
-        systemctl -q --root "$initdir" enable "$i"
+        $SYSTEMCTL -q --root "$initdir" enable "$i"
     done
 }
 
index f07a0cb99af2bd3fa2725406496ff8667b329f5d..668e39fe4114aad36fc0bd73b671205b19546d34 100644 (file)
@@ -36,5 +36,5 @@ install() {
     # make sure dependant libs are installed too
     inst_libdir_file opensc-pkcs11.so
 
-    systemctl -q --root "$initdir" add-wants sysinit.target rngd.service
+    $SYSTEMCTL -q --root "$initdir" add-wants sysinit.target rngd.service
 }
index d6627426415419ed36d5a80262ae55e5c95d9f8c..8380b0a4d7967a03a7c6c56ec6da300dee9a82aa 100755 (executable)
@@ -112,8 +112,8 @@ install() {
     if dracut_module_included "systemd"; then
         inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service"
         inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service"
-        systemctl -q --root "$initdir" enable multipathd-configure.service
-        systemctl -q --root "$initdir" enable multipathd.service
+        $SYSTEMCTL -q --root "$initdir" enable multipathd-configure.service
+        $SYSTEMCTL -q --root "$initdir" enable multipathd.service
     else
         inst_hook pre-trigger 02 "$moddir/multipathd.sh"
         inst_hook cleanup   02 "$moddir/multipathd-stop.sh"
index 20922442bd7f34e87c9a271ea7d4f729f05e90d3..8bd86d0c7f3c569954fe6c40f0638b4a95422f16 100755 (executable)
@@ -228,14 +228,14 @@ install() {
                 iscsid.socket \
                 iscsiuio.socket \
             ; do
-            systemctl -q --root "$initdir" enable "$i"
+            $SYSTEMCTL -q --root "$initdir" enable "$i"
         done
         
         for i in \
                 iscsid.service \
                 iscsiuio.service \
             ; do
-            systemctl -q --root "$initdir" add-wants basic.target "$i"
+            $SYSTEMCTL -q --root "$initdir" add-wants basic.target "$i"
         done
 
         # Make sure iscsid is started after dracut-cmdline and ready for the initqueue
index 41b008e05f990034b9f6296f9b53aff0fca992d7..9c4e1b3dcef01154032db094a18c4c47baa6d5d2 100755 (executable)
@@ -54,7 +54,7 @@ install() {
         dracut-pre-udev.service \
         ; do
         inst_simple "$moddir/${i}" "$systemdsystemunitdir/${i}"
-        systemctl -q --root "$initdir" add-wants initrd.target "$i"
+        $SYSTEMCTL -q --root "$initdir" add-wants initrd.target "$i"
     done
 
     inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf"
index 7c6b1fbf042f93ac221512b29070245fe3c99911..b69a731323c75b37d9ee4c93ca02675b3d24243c 100755 (executable)
@@ -23,5 +23,5 @@ install() {
     inst_hook cleanup 99 "$moddir/memstrack-report.sh"
 
     inst "$moddir/memstrack.service" "$systemdsystemunitdir/memstrack.service"
-    systemctl -q --root "$initdir" add-wants initrd.target memstrack.service
+    $SYSTEMCTL -q --root "$initdir" add-wants initrd.target memstrack.service
 }
index 12dae379110beb1003c4d1890f82a1710f4f7b43..1bcc5da15f3362c8a94a0d6854307d994935d4c6 100644 (file)
@@ -37,5 +37,5 @@ install() {
     inst $moddir/init.sh /squash/init.sh
 
     inst "$moddir/squash-mnt-clear.service" "$systemdsystemunitdir/squash-mnt-clear.service"
-    systemctl -q --root "$initdir" add-wants initrd-switch-root.target squash-mnt-clear.service
+    $SYSTEMCTL -q --root "$initdir" add-wants initrd-switch-root.target squash-mnt-clear.service
 }