From 98aa954bb25f9fef0bde5659dfcb6b5ff994d334 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 16 Feb 2021 02:43:05 -0500 Subject: [PATCH] import dracut-049-95.git20200804.el8_3.4 --- SOURCES/0094.patch | 1 + SOURCES/0095.patch | 31 +++++++++ SOURCES/0096.patch | 167 +++++++++++++++++++++++++++++++++++++++++++++ SOURCES/0097.patch | 104 ++++++++++++++++++++++++++++ SOURCES/0098.patch | 66 ++++++++++++++++++ SOURCES/0099.patch | 43 ++++++++++++ SOURCES/0100.patch | 33 +++++++++ SOURCES/0101.patch | 29 ++++++++ SOURCES/0102.patch | 24 +++++++ SPECS/dracut.spec | 26 ++++++- 10 files changed, 523 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0095.patch create mode 100644 SOURCES/0096.patch create mode 100644 SOURCES/0097.patch create mode 100644 SOURCES/0098.patch create mode 100644 SOURCES/0099.patch create mode 100644 SOURCES/0100.patch create mode 100644 SOURCES/0101.patch create mode 100644 SOURCES/0102.patch diff --git a/SOURCES/0094.patch b/SOURCES/0094.patch index 3dab463..fae2e92 100644 --- a/SOURCES/0094.patch +++ b/SOURCES/0094.patch @@ -25,3 +25,4 @@ index c91ba10c..86852038 100755 "=drivers/pcmcia" if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]; then + diff --git a/SOURCES/0095.patch b/SOURCES/0095.patch new file mode 100644 index 0000000..ccc063b --- /dev/null +++ b/SOURCES/0095.patch @@ -0,0 +1,31 @@ +From 6616132de5ec2991e0b55eca6e9d12e50f7be293 Mon Sep 17 00:00:00 2001 +From: Doan Tran Cong Danh +Date: Fri, 8 Nov 2019 10:53:41 +0700 +Subject: [PATCH] multipath: require kpartx binary + +multipath requires kpartx to activate device mapper. +But kpartx is only a recommend dependency. + +Check for kpartx's existent first. + +Signed-off-by: Doan Tran Cong Danh +(cherry picked from commit cf31ed2ae687d9898cafc11ec6e4f478e806ad38) + +Resolves: #1888779 +--- + modules.d/90multipath/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index f825c00c..2b9a3166 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -29,6 +29,7 @@ check() { + + # if there's no multipath binary, no go. + require_binaries multipath || return 1 ++ require_binaries kpartx || return 1 + + return 0 + } + diff --git a/SOURCES/0096.patch b/SOURCES/0096.patch new file mode 100644 index 0000000..5948403 --- /dev/null +++ b/SOURCES/0096.patch @@ -0,0 +1,167 @@ +From 59d51f92475f1b4dc81b1e6f5537f63876952c39 Mon Sep 17 00:00:00 2001 +From: Jan Macku +Date: Fri, 8 Nov 2019 16:24:13 +0100 +Subject: [PATCH] Replace ln with systemctl + +(cherry picked from commit 70b19acf941c0bf41b2c69c761124425910c0653) + +Cherry-picked from: 70b19acf941c0bf41b2c69c761124425910c0653 +Resolves: #1888779 +--- + modules.d/00systemd/module-setup.sh | 6 ++---- + modules.d/02systemd-networkd/module-setup.sh | 8 ++++---- + modules.d/06rngd/module-setup.sh | 5 ++--- + modules.d/90multipath/module-setup.sh | 3 +-- + modules.d/90stratis/module-setup.sh | 3 +-- + modules.d/95iscsi/module-setup.sh | 8 +++----- + modules.d/98dracut-systemd/module-setup.sh | 3 +-- + modules.d/99squash/module-setup.sh | 3 +-- + 8 files changed, 15 insertions(+), 24 deletions(-) + +diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh +index e4a3f323..4ab2a896 100755 +--- a/modules.d/00systemd/module-setup.sh ++++ b/modules.d/00systemd/module-setup.sh +@@ -225,9 +225,7 @@ install() { + 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" ++ systemctl -q --root "$initdir" add-wants "$i" systemd-vconsole-setup.service + done + + mkdir -p "$initdir/etc/systemd" +@@ -239,6 +237,6 @@ install() { + echo "RateLimitBurst=0" + } >> "$initdir/etc/systemd/journald.conf" + +- ln_r "${systemdsystemunitdir}/multi-user.target" "${systemdsystemunitdir}/default.target" ++ systemctl -q --root "$initdir" set-default multi-user.target + } + +diff --git a/modules.d/02systemd-networkd/module-setup.sh b/modules.d/02systemd-networkd/module-setup.sh +index b86751ea..8b87923f 100755 +--- a/modules.d/02systemd-networkd/module-setup.sh ++++ b/modules.d/02systemd-networkd/module-setup.sh +@@ -61,11 +61,11 @@ install() { + + for i in \ + systemd-networkd-wait-online.service \ +- systemd-networkd.service \ +- systemd-networkd.socket +-# systemd-timesyncd.service ++ systemd-networkd.service \ ++ systemd-networkd.socket ++# systemd-timesyncd.service + do +- systemctl --root "$initdir" enable "$i" ++ systemctl -q --root "$initdir" enable "$i" + done + } + +diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh +index 43d5c2d3..354bd0bb 100644 +--- a/modules.d/06rngd/module-setup.sh ++++ b/modules.d/06rngd/module-setup.sh +@@ -33,7 +33,6 @@ check() { + install() { + inst rngd + inst_simple "${moddir}/rngd.service" "${systemdsystemunitdir}/rngd.service" +- mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants" +- ln -rfs "${initdir}${systemdsystemunitdir}/rngd.service" \ +- "${initdir}${systemdsystemunitdir}/sysinit.target.wants/rngd.service" ++ ++ systemctl -q --root "$initdir" add-wants sysinit.target rngd.service + } +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 2b9a3166..8a032c86 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -110,8 +110,7 @@ install() { + + if dracut_module_included "systemd"; then + inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service" +- mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants" +- ln -rfs "${initdir}${systemdsystemunitdir}/multipathd.service" "${initdir}${systemdsystemunitdir}/sysinit.target.wants/multipathd.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" +diff --git a/modules.d/90stratis/module-setup.sh b/modules.d/90stratis/module-setup.sh +index 29f0765b..943f572e 100755 +--- a/modules.d/90stratis/module-setup.sh ++++ b/modules.d/90stratis/module-setup.sh +@@ -24,8 +24,7 @@ install() { + + if dracut_module_included "systemd"; then + inst_simple "${moddir}/stratisd-init.service" "${systemdsystemunitdir}/stratisd-init.service" +- mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants" +- ln -rfs "${initdir}${systemdsystemunitdir}/stratisd-init.service" "${initdir}${systemdsystemunitdir}/sysinit.target.wants/stratisd-init.service" ++ systemctl -q --root "$initdir" enable stratisd-init.service + else + inst_hook cmdline 25 "$moddir/stratisd-start.sh" + inst_hook cleanup 25 "$moddir/stratisd-stop.sh" +diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh +index f6f3520d..47a92e94 100755 +--- a/modules.d/95iscsi/module-setup.sh ++++ b/modules.d/95iscsi/module-setup.sh +@@ -242,20 +242,18 @@ install() { + $systemdsystemunitdir/iscsiuio.socket \ + iscsiadm iscsid + +- mkdir -p "${initdir}/$systemdsystemunitdir/sockets.target.wants" + for i in \ + iscsid.socket \ + iscsiuio.socket \ + ; do +- ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/sockets.target.wants/${i}" ++ systemctl -q --root "$initdir" enable "$i" + done +- +- mkdir -p "${initdir}/$systemdsystemunitdir/basic.target.wants" ++ + for i in \ + iscsid.service \ + iscsiuio.service \ + ; do +- ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/basic.target.wants/${i}" ++ systemctl -q --root "$initdir" add-wants basic.target "$i" + done + + # Make sure iscsid is started after dracut-cmdline and ready for the initqueue +diff --git a/modules.d/98dracut-systemd/module-setup.sh b/modules.d/98dracut-systemd/module-setup.sh +index 900162c3..1387433a 100755 +--- a/modules.d/98dracut-systemd/module-setup.sh ++++ b/modules.d/98dracut-systemd/module-setup.sh +@@ -43,7 +43,6 @@ install() { + + inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator + +- mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants" + for i in \ + dracut-cmdline.service \ + dracut-cmdline-ask.service \ +@@ -55,7 +54,7 @@ install() { + dracut-pre-udev.service \ + ; do + inst_simple "$moddir/${i}" "$systemdsystemunitdir/${i}" +- ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/initrd.target.wants/${i}" ++ systemctl -q --root "$initdir" add-wants initrd.target "$i" + done + + inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf" +diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh +index e7e9ed8e..7aa0b447 100644 +--- a/modules.d/99squash/module-setup.sh ++++ b/modules.d/99squash/module-setup.sh +@@ -25,6 +25,5 @@ install() { + inst $moddir/init.sh /squash/init.sh + + inst "$moddir/squash-mnt-clear.service" "$systemdsystemunitdir/squash-mnt-clear.service" +- mkdir -p "$initdir$systemdsystemunitdir/initrd-switch-root.target.wants" +- ln_r "$systemdsystemunitdir/squash-mnt-clear.service" "$systemdsystemunitdir/initrd-switch-root.target.wants/squash-mnt-clear.service" ++ systemctl -q --root "$initdir" add-wants initrd-switch-root.target squash-mnt-clear.service + } + diff --git a/SOURCES/0097.patch b/SOURCES/0097.patch new file mode 100644 index 0000000..f3c00ad --- /dev/null +++ b/SOURCES/0097.patch @@ -0,0 +1,104 @@ +From 603f33e28cfad45c4bf9ade8e3ff3b9014b5bd4d Mon Sep 17 00:00:00 2001 +From: Ben Howard +Date: Fri, 3 Apr 2020 13:32:44 -0600 +Subject: [PATCH] multipath: add automatic configuration for multipath + +Add support for 'rd.multipath=default' for using the default +configuration on boot. The intended purpose for this is to help support +ostree-based image boots from multipathed devices (such as Fedora and +Red Hat CoreOS). + +(cherry picked from commit b8a92b715677d52dbc2b27a710b9816fd8b9a63b) + +Resolves: #1888779 +--- + dracut.cmdline.7.asc | 3 +++ + modules.d/90multipath/module-setup.sh | 7 +++++-- + modules.d/90multipath/multipathd-configure.service | 19 +++++++++++++++++++ + modules.d/90multipath/multipathd.sh | 5 +++++ + 4 files changed, 32 insertions(+), 2 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 4a7c2517..19b5cc87 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -406,6 +406,9 @@ MULTIPATH + **rd.multipath=0**:: + disable multipath detection + ++**rd.multipath=default**:: ++ use default multipath settings ++ + FIPS + ~~~~ + **rd.fips**:: +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 8a032c86..a7f250f3 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -83,11 +83,12 @@ install() { + dmsetup \ + kpartx \ + mpath_wait \ ++ mpathconf \ ++ mpathpersist \ + multipath \ + multipathd \ +- mpathpersist \ +- xdrgetuid \ + xdrgetprio \ ++ xdrgetuid \ + /etc/xdrdevices.conf \ + /etc/multipath.conf \ + /etc/multipath/* \ +@@ -109,7 +110,9 @@ install() { + fi + + 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 + else + inst_hook pre-trigger 02 "$moddir/multipathd.sh" +diff --git a/modules.d/90multipath/multipathd-configure.service b/modules.d/90multipath/multipathd-configure.service +new file mode 100644 +index 00000000..de690615 +--- /dev/null ++++ b/modules.d/90multipath/multipathd-configure.service +@@ -0,0 +1,19 @@ ++[Unit] ++Description=Device-Mapper Multipath Default Configuration ++Before=iscsi.service iscsid.service lvm2-activation-early.service ++Wants=systemd-udev-trigger.service systemd-udev-settle.service local-fs-pre.target ++After=systemd-udev-trigger.service systemd-udev-settle.service ++Before=local-fs-pre.target multipathd.service ++DefaultDependencies=no ++Conflicts=shutdown.target ++ ++ConditionKernelCommandLine=rd.multipath=default ++ConditionPathExists=!/etc/multipath.conf ++ ++[Service] ++Type=oneshot ++ExecStartPre=-/usr/bin/mkdir -p /etc/multipath/multipath.conf.d ++ExecStart=/usr/sbin/mpathconf --enable ++ ++[Install] ++WantedBy=sysinit.target +diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh +index 2c2dcc85..936c5dc7 100755 +--- a/modules.d/90multipath/multipathd.sh ++++ b/modules.d/90multipath/multipathd.sh +@@ -1,5 +1,10 @@ + #!/bin/sh + ++if [ "$(getarg rd.multipath)x" == "default" ] && [ ! -e /etc/multipath.conf ]; then ++ mkdir -p /etc/multipath/multipath.conf.d ++ mpathconf --enable ++fi ++ + if getargbool 1 rd.multipath -d -n rd_NO_MULTIPATH && [ -e /etc/multipath.conf ]; then + modprobe dm-multipath + multipathd -B || multipathd + diff --git a/SOURCES/0098.patch b/SOURCES/0098.patch new file mode 100644 index 0000000..fa8c6f2 --- /dev/null +++ b/SOURCES/0098.patch @@ -0,0 +1,66 @@ +From 1e7a27bd5f463409392d34816a10bf108ee896c6 Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Fri, 9 Oct 2020 19:44:35 -0400 +Subject: [PATCH] 98dracut-systemd: don't wait for root device if remote + cryptsetup active + +This is a plain and simple hack around dependency issues between dracut +and systemd. + +When using Tang-pinned LUKS root devices, we want to rely on +`systemd-cryptsetup@.service` to unlock it. However, that service only +runs `After=remote-fs-pre.target`, while `dracut-initqueue.service` has +`Before=remote-fs-pre.target` (which makes sense because we don't want +to attempt networked root devices before networking is up). + +However, the rootfs-generator here wants to make sure that the root +device exists *before* exiting the initqueue via an initqueue/finished +"devexists" hook. This will never work though because by design +`systemd-cryptsetup@.service`, which unlocks the root device, won't run +until after we exit. + +So we have a dependency cycle: + + initqueue -> devexists hook -> root device -> + systemd-cryptsetup@.service -> remote-fs-pre.target -> initqueue + +There's no clean way to break this. The root issue is that there's no +way right now to split sequencing of systemd services across the +initqueue/online and initqueue/finished events because it's all bundled +in a single service. (The deeper root issue of course is that we have +two init systems. :) ). + +Here we do a tactical fix: if there's a `systemd-cryptsetup@.service` +instance, let's assume it's for the root device and skip waiting for it +to show up if it depends on `remote-fs-pre.target`. + +(cherry picked from commit 512c51d2677dd1637cc203e3676fefb50a3d73d0) + +Resolves: #1897384 +--- + modules.d/98dracut-systemd/rootfs-generator.sh | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/rootfs-generator.sh b/modules.d/98dracut-systemd/rootfs-generator.sh +index 4ae693bb..bb376c0f 100755 +--- a/modules.d/98dracut-systemd/rootfs-generator.sh ++++ b/modules.d/98dracut-systemd/rootfs-generator.sh +@@ -13,8 +13,15 @@ generator_wait_for_dev() + + if ! [ -e "$hookdir/initqueue/finished/devexists-${_name}.sh" ]; then + +- printf '[ -e "%s" ]\n' $1 \ +- >> "$hookdir/initqueue/finished/devexists-${_name}.sh" ++ # If a LUKS device needs unlocking via systemd in the initrd, assume ++ # it's for the root device. In that case, don't block on it if it's ++ # after remote-fs-pre.target since the initqueue is ordered before it so ++ # it will never actually show up (think Tang-pinned rootfs). ++ cat > "$hookdir/initqueue/finished/devexists-${_name}.sh" << EOF ++if ! grep -q After=remote-fs-pre.target /run/systemd/generator/systemd-cryptsetup@*.service 2>/dev/null; then ++ [ -e "$1" ] ++fi ++EOF + { + printf '[ -e "%s" ] || ' $1 + printf 'warn "\"%s\" does not exist"\n' $1 + diff --git a/SOURCES/0099.patch b/SOURCES/0099.patch new file mode 100644 index 0000000..317e3a6 --- /dev/null +++ b/SOURCES/0099.patch @@ -0,0 +1,43 @@ +From aa4cf6df94dd3a858144040138d970a57c701a8d Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Thu, 12 Nov 2020 11:27:39 -0500 +Subject: [PATCH] 90crypt: pull in remote-cryptsetup.target enablement + +This should've been part of #964. As mentioned there, the +`initrd-cryptsetup.target` approach was reverted in the end, and we went +back to relying in `remote-cryptsetup.target`: + +https://github.com/systemd/systemd/pull/17467 + +So we do need to ship the enablement symlink for it. + +(cherry picked from commit a23a4680e7d04d1016e9d5e4b53b1e65f1ca98aa) + +Resolves: #1897384 +--- + modules.d/90crypt/module-setup.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh +index 1ec59096..a26b6dff 100755 +--- a/modules.d/90crypt/module-setup.sh ++++ b/modules.d/90crypt/module-setup.sh +@@ -120,6 +120,8 @@ install() { + inst_simple "$moddir/crypt-lib.sh" "/lib/dracut-crypt-lib.sh" + + if dracut_module_included "systemd"; then ++ # the cryptsetup targets are already pulled in by 00systemd, but not ++ # the enablement symlinks + inst_multiple -o \ + $systemdutildir/system-generators/systemd-cryptsetup-generator \ + $systemdutildir/systemd-cryptsetup \ +@@ -127,6 +129,8 @@ install() { + $systemdsystemunitdir/systemd-ask-password-console.service \ + $systemdsystemunitdir/cryptsetup.target \ + $systemdsystemunitdir/sysinit.target.wants/cryptsetup.target \ ++ $systemdsystemunitdir/remote-cryptsetup.target \ ++ $systemdsystemunitdir/initrd-root-device.target.wants/remote-cryptsetup.target \ + systemd-ask-password systemd-tty-ask-password-agent + inst_script "$moddir"/crypt-run-generator.sh /sbin/crypt-run-generator + fi + diff --git a/SOURCES/0100.patch b/SOURCES/0100.patch new file mode 100644 index 0000000..80c2999 --- /dev/null +++ b/SOURCES/0100.patch @@ -0,0 +1,33 @@ +From 045aa82701ecdebf8482b25dc0abf1b3b7cc3ce5 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Mon, 30 Nov 2020 11:04:42 +0100 +Subject: [PATCH] fix backport of 70b19acf + +The patch was missing an important hunk of the original diff which +converted another `ln_r` to `systemctl set-default`. Without it, the +initrd would try to boot `multi-user.target` instead of `initrd.target`. +The reason is that `systemctl set-default` modifies `/etc` while `ln_r` +modifies `/usr`. And so the `set-default multi-user.target` in 00systemd +takes priority over the `ln_r initrd.target` in `01systemd-initrd`. + +Thanks Jonathan Lebon for spotting this. + +Resolves: #1888779 +--- + modules.d/01systemd-initrd/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh +index cb8a8fa6..a42e220a 100755 +--- a/modules.d/01systemd-initrd/module-setup.sh ++++ b/modules.d/01systemd-initrd/module-setup.sh +@@ -36,7 +36,7 @@ install() { + $systemdsystemunitdir/initrd-udevadm-cleanup-db.service \ + $systemdsystemunitdir/initrd-parse-etc.service + +- ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target" ++ systemctl -q --root "$initdir" set-default initrd.target + + local VERSION="" + local PRETTY_NAME="" + diff --git a/SOURCES/0101.patch b/SOURCES/0101.patch new file mode 100644 index 0000000..27ad4a6 --- /dev/null +++ b/SOURCES/0101.patch @@ -0,0 +1,29 @@ +From 08ef5f0da71b84f606c2a75bd0574b206b997fc3 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 27 Nov 2020 09:32:20 +0100 +Subject: [PATCH] multipathd: fix the comparison + +From shellcheck: +/usr/lib/dracut/modules.d/90multipath/multipathd.sh:3:32: warning[SC2039]: In POSIX sh, == in place of = is undefined. +/usr/lib/dracut/modules.d/90multipath/multipathd.sh:3:32: warning[SC2193]: The arguments to this comparison can never be equal. + +(cherry picked from commit 7c2521091f30d7c14caaf96850208afa2fe1d811) + +Resolves: #1888779 +--- + modules.d/90multipath/multipathd.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh +index 936c5dc7..b0183ffe 100755 +--- a/modules.d/90multipath/multipathd.sh ++++ b/modules.d/90multipath/multipathd.sh +@@ -1,6 +1,6 @@ + #!/bin/sh + +-if [ "$(getarg rd.multipath)x" == "default" ] && [ ! -e /etc/multipath.conf ]; then ++if [ "$(getarg rd.multipath)" = "default" ] && [ ! -e /etc/multipath.conf ]; then + mkdir -p /etc/multipath/multipath.conf.d + mpathconf --enable + fi + diff --git a/SOURCES/0102.patch b/SOURCES/0102.patch new file mode 100644 index 0000000..7543729 --- /dev/null +++ b/SOURCES/0102.patch @@ -0,0 +1,24 @@ +From ab6377eebef8e811dd3fd6d43e2af14dbada75d9 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 15 Dec 2020 14:04:24 +0100 +Subject: [PATCH] dracut-systemd: create the initrd.target.wants directory + +kexec-tools depends on the existence of this directory in RHEL8 + +Resolves: #1888779 +--- + modules.d/98dracut-systemd/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/98dracut-systemd/module-setup.sh b/modules.d/98dracut-systemd/module-setup.sh +index 1387433a..9a0f476c 100755 +--- a/modules.d/98dracut-systemd/module-setup.sh ++++ b/modules.d/98dracut-systemd/module-setup.sh +@@ -43,6 +43,7 @@ install() { + + inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator + ++ mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants" + for i in \ + dracut-cmdline.service \ + dracut-cmdline-ask.service \ diff --git a/SPECS/dracut.spec b/SPECS/dracut.spec index 8c5917d..3ad7ae8 100644 --- a/SPECS/dracut.spec +++ b/SPECS/dracut.spec @@ -9,7 +9,7 @@ Name: dracut Version: 049 -Release: %{dist_free_release}%{?dist} +Release: %{dist_free_release}%{?dist}.4 Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} @@ -122,6 +122,14 @@ Patch91: 0091.patch Patch92: 0092.patch Patch93: 0093.patch Patch94: 0094.patch +Patch95: 0095.patch +Patch96: 0096.patch +Patch97: 0097.patch +Patch98: 0098.patch +Patch99: 0099.patch +Patch100: 0100.patch +Patch101: 0101.patch +Patch102: 0102.patch Source1: https://www.gnu.org/licenses/lgpl-2.1.txt @@ -582,6 +590,22 @@ echo '# Since rhel-8.3 dracut moved to use NetworkManager add_dracutmodules+=" network-legacy "' > /etc/dracut.conf.d/50-network-legacy.conf %changelog +* Tue Dec 15 2020 Lukas Nykryn - 049-95.git20200804.4 +- dracut-systemd: create the initrd.target.wants directory + +* Mon Nov 30 2020 Lukas Nykryn - 049-95.git20200804.3 +- multipathd: fix the comparison + +* Mon Nov 30 2020 Lukas Nykryn - 049-95.git20200804.2 +- fix backport of 70b19acf + +* Fri Nov 20 2020 Lukas Nykryn - 049-95.git20200804.1 +- multipath: require kpartx binary +- Replace ln with systemctl +- multipath: add automatic configuration for multipath +- 98dracut-systemd: don't wait for root device if remote +- 90crypt: pull in remote-cryptsetup.target enablement + * Tue Aug 04 2020 Lukas Nykryn - 049-95.git20200804 - 90kernel-modules: add pci_hyperv