From d9da6674aa42ec3aa2a6a6526264be71c63acc6b Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Jan 18 2018 09:07:29 +0000 Subject: dracut - 046-92 - git snapshot --- diff --git a/0066.patch b/0066.patch index f884f16..136ce53 100644 --- a/0066.patch +++ b/0066.patch @@ -19,3 +19,4 @@ index 50d42a31..0b4c2e85 100644 %{dracutlibdir}/modules.d/95zfcp %{dracutlibdir}/modules.d/95zfcp_rules %{dracutlibdir}/modules.d/95terminfo + diff --git a/0067.patch b/0067.patch new file mode 100644 index 0000000..86814f6 --- /dev/null +++ b/0067.patch @@ -0,0 +1,34 @@ +From d300160e70bd2ae038acabb12f18fbf039798b26 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 5 Jan 2018 11:02:12 +0100 +Subject: [PATCH] Revert "mdraid: call mdadm with "--wait-clean" instead of + "-W"" + +This reverts commit bc4ce61efce3e2d8b2be4f4e3e5fdef6ca08409f. + +Read wrong man page section. Got confused by +https://github.com/dracutdevs/dracut/issues/342 +--- + modules.d/90mdraid/mdraid-waitclean.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90mdraid/mdraid-waitclean.sh b/modules.d/90mdraid/mdraid-waitclean.sh +index d7f0ffdb..5c901982 100755 +--- a/modules.d/90mdraid/mdraid-waitclean.sh ++++ b/modules.d/90mdraid/mdraid-waitclean.sh +@@ -13,12 +13,12 @@ if getargbool 0 rd.md.waitclean; then + continue + fi + info "Waiting for $md to become clean" +- mdadm $_offroot --wait-clean "$md" >/dev/null 2>&1 ++ mdadm $_offroot -W "$md" >/dev/null 2>&1 + done + + for md in $containers; do + info "Waiting for $md to become clean" +- mdadm $_offroot --wait-clean "$md" >/dev/null 2>&1 ++ mdadm $_offroot -W "$md" >/dev/null 2>&1 + done + + unset containers udevinfo _offroot + diff --git a/0068.patch b/0068.patch new file mode 100644 index 0000000..20647a8 --- /dev/null +++ b/0068.patch @@ -0,0 +1,36 @@ +From 577f109243bc96cd99c2b8204b7ca4426918f8ae Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 8 Jan 2018 13:31:55 +0100 +Subject: [PATCH] Merge pull request #339 from danimo/fix_include_parsing + +Fix parsing of "-i" and "--include" +--- + dracut.sh | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index f5c8d74c..c857b624 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -286,11 +286,15 @@ dropindirs_sort() + rearrange_params() + { + # Workaround -i, --include taking 2 arguments +- set -- "${@/--include/++include}" +- +- # This prevents any long argument ending with "-i" +- # -i, like --opt-i but I think we can just prevent that +- set -- "${@/%-i/++include}" ++ newat=() ++ for i in "$@"; do ++ if [[ $i == "-i" ]] || [[ $i == "--include" ]]; then ++ newat+=("++include") # Replace --include by ++include ++ else ++ newat+=("$i") ++ fi ++ done ++ set -- "${newat[@]}" # Set new $@ + + TEMP=$(unset POSIXLY_CORRECT; getopt \ + -o "a:m:o:d:I:k:c:L:fvqlHhMN" \ + diff --git a/0069.patch b/0069.patch new file mode 100644 index 0000000..798e453 --- /dev/null +++ b/0069.patch @@ -0,0 +1,49 @@ +From ba2cfcab1e47045690ef6bc6d8f8089066b929a2 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 8 Jan 2018 15:05:28 +0100 +Subject: [PATCH] Merge pull request #338 from danimo/fshelp + +dracut-emergency: optionally print fs help +--- + dracut-init.sh | 6 ++++++ + modules.d/98dracut-systemd/dracut-emergency.sh | 2 ++ + 2 files changed, 8 insertions(+) + +diff --git a/dracut-init.sh b/dracut-init.sh +index e8a705ec..53e6f13a 100644 +--- a/dracut-init.sh ++++ b/dracut-init.sh +@@ -261,6 +261,12 @@ inst_script() { + (($? != 0)) && derror FAILED: $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$@" || : + } + ++inst_fsck_help() { ++ local _helper="/run/dracut/fsck/fsck_help_$1.txt" ++ $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$2" $_helper ++ (($? != 0)) && derror $DRACUT_INSTALL ${initdir:+-D "$initdir"} ${loginstall:+-L "$loginstall"} ${DRACUT_RESOLVE_DEPS:+-l} ${DRACUT_FIPS_MODE:+-f} "$2" $_helper || : ++} ++ + mark_hostonly() { + for i in "$@"; do + echo "$i" >> "$initdir/lib/dracut/hostonly-files" +diff --git a/modules.d/98dracut-systemd/dracut-emergency.sh b/modules.d/98dracut-systemd/dracut-emergency.sh +index 548f64b9..f17460a7 100755 +--- a/modules.d/98dracut-systemd/dracut-emergency.sh ++++ b/modules.d/98dracut-systemd/dracut-emergency.sh +@@ -14,6 +14,7 @@ export _rdshell_name="dracut" action="Boot" hook="emergency" + _emergency_action=$(getarg rd.emergency) + + if getargbool 1 rd.shell -d -y rdshell || getarg rd.break -d rdbreak; then ++ FSTXT="/run/dracut/fsck/fsck_help_$fstype.txt" + source_hook "$hook" + echo + rdsosreport +@@ -25,6 +26,7 @@ if getargbool 1 rd.shell -d -y rdshell || getarg rd.break -d rdbreak; then + echo 'after mounting them and attach it to a bug report.' + echo + echo ++ [ -f "$FSTXT" ] && cat "$FSTXT" + [ -f /etc/profile ] && . /etc/profile + [ -z "$PS1" ] && export PS1="$_name:\${PWD}# " + exec sh -i -l + diff --git a/0070.patch b/0070.patch new file mode 100644 index 0000000..99f4c3a --- /dev/null +++ b/0070.patch @@ -0,0 +1,25 @@ +From 17414dd01bd71bb187fee20c2148ccad3b35a887 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 9 Jan 2018 13:24:46 +0100 +Subject: [PATCH] Merge pull request #344 from yuwata/spec-cleanup + +spec: use if-undefined instead of empty if-defined block +--- + dracut.spec | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index 0b4c2e85..08e5a098 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -370,8 +370,7 @@ rm -rf -- $RPM_BUILD_ROOT + %{_mandir}/man5/dracut.conf.5* + %endif + +-%if %{defined _unitdir} +-%else ++%if %{undefined _unitdir} + %{dracutlibdir}/modules.d/00bootchart + %endif + %{dracutlibdir}/modules.d/00bash + diff --git a/0071.patch b/0071.patch new file mode 100644 index 0000000..93f0c73 --- /dev/null +++ b/0071.patch @@ -0,0 +1,45 @@ +From 5a8efed021af6a3a06b484f9ad363935c1a875e3 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 10 Jan 2018 09:10:19 +0100 +Subject: [PATCH] TEST-3[01]-ISCSI*: increase disk size + +--- + test/TEST-30-ISCSI/test.sh | 6 +++--- + test/TEST-31-ISCSI-MULTI/test.sh | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh +index d5068e0c..e667587a 100755 +--- a/test/TEST-30-ISCSI/test.sh ++++ b/test/TEST-30-ISCSI/test.sh +@@ -102,9 +102,9 @@ test_setup() { + fi + + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=20 +- dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=20 +- dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=20 ++ dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=40 ++ dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=40 ++ dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=40 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh +index 5dde4b68..2b63ff46 100755 +--- a/test/TEST-31-ISCSI-MULTI/test.sh ++++ b/test/TEST-31-ISCSI-MULTI/test.sh +@@ -99,9 +99,9 @@ test_setup() { + fi + + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=20 +- dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=20 +- dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=20 ++ dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=40 ++ dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=40 ++ dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=40 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + diff --git a/0072.patch b/0072.patch new file mode 100644 index 0000000..583b287 --- /dev/null +++ b/0072.patch @@ -0,0 +1,37 @@ +From 0f6d93eb9d63695a64002ec8b0421fbc9fc8a7a3 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 11 Jan 2018 11:39:44 +0100 +Subject: [PATCH] crypt: escape backslashes for systemd unit names b/c + udev/initqueue/bash + +otherwise +luks\x2d25e41d19\x2d1580\x2d4e7c\x2d8875\x2d134045008f33 +turns to +luksx2d25e41d19x2d1580x2d4e7cx2d8875x2d134045008f33 +--- + modules.d/90crypt/parse-crypt.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh +index f0a4fba9..ea6802e8 100755 +--- a/modules.d/90crypt/parse-crypt.sh ++++ b/modules.d/90crypt/parse-crypt.sh +@@ -64,6 +64,8 @@ else + } >> /etc/udev/rules.d/70-luks.rules.new + else + luksname=$(dev_unit_name "$luksname") ++ luksname="$(str_replace "$luksname" '\' '\\')" ++ + if ! crypttab_contains "$serialid"; then + { + printf -- 'ENV{ID_SERIAL_SHORT}=="*%s*", ' "$serialid" +@@ -95,6 +97,8 @@ else + } >> /etc/udev/rules.d/70-luks.rules.new + else + luksname=$(dev_unit_name "$luksname") ++ luksname="$(str_replace "$luksname" '\' '\\')" ++ + if ! crypttab_contains "$luksid"; then + { + printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", ' + diff --git a/0073.patch b/0073.patch new file mode 100644 index 0000000..66b6bac --- /dev/null +++ b/0073.patch @@ -0,0 +1,27 @@ +From cd83391c72aab5ea3732e70f8ebabc32d6440a0b Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 11 Jan 2018 12:30:01 +0100 +Subject: [PATCH] Merge pull request #350 from yuwata/fsfreeze + +dracut.sh: do not invoke fsfreeze on EFI System Partition +--- + dracut.sh | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index c857b624..f6a75996 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1834,8 +1834,10 @@ command -v restorecon &>/dev/null && restorecon -- "$outfile" + if ! sync "$outfile" 2> /dev/null; then + dinfo "dracut: sync operation on newly created initramfs $outfile failed" + exit 1 ++fi ++ + # use fsfreeze only if we're not writing to / +-elif ! [ "$(stat -c %m -- "$outfile")" == "/" ]; then ++if [[ "$(stat -c %m -- "$outfile")" != "/" && "$(stat -f -c %T -- "$outfile")" != "msdos" ]]; then + if ! $(fsfreeze -f $(dirname "$outfile") 2>/dev/null && fsfreeze -u $(dirname "$outfile") 2>/dev/null); then + dinfo "dracut: warning: could not fsfreeze $(dirname "$outfile")" + fi + diff --git a/0074.patch b/0074.patch new file mode 100644 index 0000000..81ef819 --- /dev/null +++ b/0074.patch @@ -0,0 +1,60 @@ +From 3a6a8d5c83af952f66c7786f17e59da6012da0b6 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 11 Jan 2018 12:34:40 +0100 +Subject: [PATCH] Merge pull request #346 from danimo/95dcssblk + +95dcssblk: Add new module for DCSS block devices +--- + modules.d/95dcssblk/module-setup.sh | 28 ++++++++++++++++++++++++++++ + modules.d/95dcssblk/parse-dcssblk.sh | 8 ++++++++ + 2 files changed, 36 insertions(+) + +diff --git a/modules.d/95dcssblk/module-setup.sh b/modules.d/95dcssblk/module-setup.sh +new file mode 100644 +index 00000000..11e38490 +--- /dev/null ++++ b/modules.d/95dcssblk/module-setup.sh +@@ -0,0 +1,28 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++# called by dracut ++check() { ++ local _arch=$(uname -m) ++ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 ++ return 0 ++} ++ ++# called by dracut ++installkernel() { ++ if [ -e /sys/devices/dcssblk/*/block/dcssblk* ];then ++ hostonly='' instmods dcssblk ++ fi ++} ++ ++# called by dracut ++install() { ++ inst_hook cmdline 30 "$moddir/parse-dcssblk.sh" ++ # If there is a config file which contains avail (best only of root device) ++ # disks to activate add it and use it during boot -> then we do not need ++ # a kernel param anymore ++ #if [[ $hostonly ]]; then ++ # inst /etc/dcssblk.conf ++ #fi ++} +diff --git a/modules.d/95dcssblk/parse-dcssblk.sh b/modules.d/95dcssblk/parse-dcssblk.sh +new file mode 100644 +index 00000000..8f174408 +--- /dev/null ++++ b/modules.d/95dcssblk/parse-dcssblk.sh +@@ -0,0 +1,8 @@ ++#!/bin/sh ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++dcssblk_arg=$(getarg rd.dcssblk=) ++if [ $? == 0 ];then ++ info "Loading dcssblk segments=$dcssblk_arg" ++ modprobe dcssblk segments=$dcssblk_arg ++fi + diff --git a/0075.patch b/0075.patch new file mode 100644 index 0000000..713977b --- /dev/null +++ b/0075.patch @@ -0,0 +1,24 @@ +From b8b341a07f755d69e557bfbca92ae54fc3f84dda Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 11 Jan 2018 13:18:14 +0100 +Subject: [PATCH] Merge pull request #352 from lnykryn/ntfs + +90dmsquash-live-ntfs: fix depends() +--- + modules.d/90dmsquash-live-ntfs/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90dmsquash-live-ntfs/module-setup.sh b/modules.d/90dmsquash-live-ntfs/module-setup.sh +index bc77376b..2354b840 100755 +--- a/modules.d/90dmsquash-live-ntfs/module-setup.sh ++++ b/modules.d/90dmsquash-live-ntfs/module-setup.sh +@@ -8,7 +8,7 @@ check() { + } + + depends() { +- echo 90dmsquash-live ++ echo dmsquash-live + return 0 + } + + diff --git a/0076.patch b/0076.patch new file mode 100644 index 0000000..e879b1c --- /dev/null +++ b/0076.patch @@ -0,0 +1,24 @@ +From 47f83419a711d540cf758b56c8ad4fadaa964592 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 11 Jan 2018 15:33:45 +0100 +Subject: [PATCH] Merge pull request #353 from lnykryn/ntfs_3 + +90dmsquash-live: we don't have find_binary inside initramdisk +--- + modules.d/90dmsquash-live/dmsquash-live-root.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh +index 1458329c..8f3b2bf9 100755 +--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh ++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh +@@ -84,7 +84,7 @@ else + # Symlinking /usr/bin/ntfs-3g as /sbin/mount.ntfs seems to boot + # at the first glance, but ends with lots and lots of squashfs + # errors, because systemd attempts to kill the ntfs-3g process?! +- if [ -x "$(find_binary "ntfs-3g")" ]; then ++ if [ -x "/usr/bin/ntfs-3g" ]; then + ( exec -a @ntfs-3g ntfs-3g -o ${liverw:-ro} $livedev /run/initramfs/live ) | vwarn + else + die "Failed to mount block device of live image: Missing NTFS support" + diff --git a/0077.patch b/0077.patch new file mode 100644 index 0000000..4145279 --- /dev/null +++ b/0077.patch @@ -0,0 +1,30 @@ +From 6ccb77e19a80f1be32170d85766f1925fbeb732b Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 09:31:18 +0100 +Subject: [PATCH] dracut-systemd/dracut-pre-udev.service: also run for + /etc/cmdline + +Fixes #117 +--- + modules.d/98dracut-systemd/dracut-pre-udev.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/98dracut-systemd/dracut-pre-udev.service b/modules.d/98dracut-systemd/dracut-pre-udev.service +index dffb8d55..570ec02d 100644 +--- a/modules.d/98dracut-systemd/dracut-pre-udev.service ++++ b/modules.d/98dracut-systemd/dracut-pre-udev.service +@@ -10,12 +10,12 @@ Before=systemd-udevd.service dracut-pre-trigger.service + After=dracut-cmdline.service + Wants=dracut-cmdline.service + ConditionPathExists=/usr/lib/initrd-release +-ConditionPathExists=|/etc/cmdline.d/20-force_drivers.conf + ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-udev + ConditionKernelCommandLine=|rd.break=pre-udev + ConditionKernelCommandLine=|rd.driver.blacklist + ConditionKernelCommandLine=|rd.driver.pre + ConditionKernelCommandLine=|rd.driver.post ++ConditionPathExistsGlob=|/etc/cmdline.d/*.conf + Conflicts=shutdown.target emergency.target + + [Service] + diff --git a/0078.patch b/0078.patch new file mode 100644 index 0000000..dc81d13 --- /dev/null +++ b/0078.patch @@ -0,0 +1,212 @@ +From 8e7d0856d0c94e9cc0e17c2f715aa7bc715fd37d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 09:34:08 +0100 +Subject: [PATCH] Merge pull request #351 from danimo/91zipl + +Add 91zipl, which adds support for indirect booting on s390. +--- + dracut.cmdline.7.asc | 14 ++++++++ + dracut.sh | 1 + + modules.d/91zipl/install_zipl_cmdline.sh | 40 +++++++++++++++++++++ + modules.d/91zipl/module-setup.sh | 61 ++++++++++++++++++++++++++++++++ + modules.d/91zipl/parse-zipl.sh | 41 +++++++++++++++++++++ + 5 files changed, 157 insertions(+) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index b5f6f0f6..f95f4d63 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -1001,6 +1001,20 @@ be mounted read only through a higher level transient overlay directory, has + been implemented through the multiple lower layers feature of OverlayFS. + + ++ZIPL ++~~~~ ++**rd.zipl=**____:: ++ Update the dracut commandline with the values found in the ++ _dracut-cmdline.conf_ file on the given device. ++ The values are merged into the existing commandline values ++ and the udev events are regenerated. +++ ++[listing] ++.Example ++-- ++rd.zipl=UUID=0fb28157-99e3-4395-adef-da3f7d44835a ++-- ++ + Plymouth Boot Splash + ~~~~~~~~~~~~~~~~~~~~ + **plymouth.enable=0**:: +diff --git a/dracut.sh b/dracut.sh +index f6a75996..fb23f117 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1172,6 +1172,7 @@ if [[ $hostonly ]] && [[ "$hostonly_default_device" != "no" ]]; then + "/usr/lib64" \ + "/boot" \ + "/boot/efi" \ ++ "/boot/zipl" \ + ; + do + mp=$(readlink -f "$mp") +diff --git a/modules.d/91zipl/install_zipl_cmdline.sh b/modules.d/91zipl/install_zipl_cmdline.sh +new file mode 100755 +index 00000000..b7546bef +--- /dev/null ++++ b/modules.d/91zipl/install_zipl_cmdline.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++ ++DEV="$1" ++MNT=/boot/zipl ++ ++if [ -z "$DEV" ] ; then ++ echo "No IPL device given" ++ > /tmp/install.zipl.cmdline-done ++ exit 1 ++fi ++ ++[ -d ${MNT} ] || mkdir -p ${MNT} ++ ++mount -o ro ${DEV} ${MNT} ++if [ "$?" != "0" ] ; then ++ echo "Failed to mount ${MNT}" ++ > /tmp/install.zipl.cmdline-done ++ exit 1 ++fi ++ ++if [ -f ${MNT}/dracut-cmdline.conf ] ; then ++ cp ${MNT}/dracut-cmdline.conf /etc/cmdline.d/99zipl.conf ++fi ++ ++if [ -f ${MNT}/active_devices.txt ] ; then ++ while read dev etc ; do ++ [ "$dev" = "#" -o "$dev" = "" ] && continue; ++ cio_ignore -r $dev ++ done < ${MNT}/active_devices.txt ++fi ++ ++umount ${MNT} ++ ++if [ -f /etc/cmdline.d/99zipl.conf ] ; then ++ systemctl restart dracut-cmdline.service ++ systemctl restart systemd-udev-trigger.service ++fi ++> /tmp/install.zipl.cmdline-done ++ ++exit 0 +diff --git a/modules.d/91zipl/module-setup.sh b/modules.d/91zipl/module-setup.sh +new file mode 100755 +index 00000000..d0cd75da +--- /dev/null ++++ b/modules.d/91zipl/module-setup.sh +@@ -0,0 +1,61 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++# called by dracut ++check() { ++ local _arch=$(uname -m) ++ # Only for systems on s390 using indirect booting via userland grub ++ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 ++ # /boot/zipl contains a first stage kernel used to launch grub in initrd ++ [ -d /boot/zipl ] || return 1 ++ return 0 ++} ++ ++# called by dracut ++depends() { ++ echo grub2 ++ return 0 ++} ++ ++# called by dracut ++installkernel() { ++ local _boot_zipl ++ ++ _boot_zipl=$(sed -n 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab) ++ if [ -n "$_boot_zipl" ] ; then ++ eval $(blkid -s TYPE -o udev ${_boot_zipl}) ++ if [ -n "$ID_FS_TYPE" ] ; then ++ case "$ID_FS_TYPE" in ++ ext?) ++ ID_FS_TYPE=ext4 ++ ;; ++ esac ++ instmods ${ID_FS_TYPE} ++ fi ++ fi ++} ++ ++# called by dracut ++cmdline() { ++ local _boot_zipl ++ ++ _boot_zipl=$(sed -n 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab) ++ if [ -n "$_boot_zipl" ] ; then ++ echo "rd.zipl=${_boot_zipl}" ++ fi ++} ++ ++# called by dracut ++install() { ++ inst_multiple mount umount ++ ++ inst_hook cmdline 91 "$moddir/parse-zipl.sh" ++ inst_script "${moddir}/install_zipl_cmdline.sh" /sbin/install_zipl_cmdline.sh ++ if [[ $hostonly_cmdline == "yes" ]] ; then ++ local _zipl=$(cmdline) ++ ++ [[ $_zipl ]] && printf "%s\n" "$_zipl" > "${initdir}/etc/cmdline.d/91zipl.conf" ++ fi ++ dracut_need_initqueue ++} +diff --git a/modules.d/91zipl/parse-zipl.sh b/modules.d/91zipl/parse-zipl.sh +new file mode 100755 +index 00000000..308f228b +--- /dev/null ++++ b/modules.d/91zipl/parse-zipl.sh +@@ -0,0 +1,41 @@ ++#!/bin/sh ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++zipl_arg=$(getarg rd.zipl) ++ ++if [ -n "$zipl_arg" ] ; then ++ case "$zipl_arg" in ++ LABEL=*) \ ++ zipl_env="ENV{ID_FS_LABEL}" ++ zipl_val=${zipl_arg#LABEL=} ++ zipl_arg="/dev/disk/by-label/${zipl_val}" ++ ;; ++ UUID=*) \ ++ zipl_env="ENV{ID_FS_UUID}" ++ zipl_val=${zipl_arg#UUID=} ++ zipl_arg="/dev/disk/by-uuid/${zipl_val}" ++ ;; ++ /dev/mapper/*) \ ++ zipl_env="ENV{DM_NAME}" ++ zipl_val=${zipl_arg#/dev/mapper/} ++ ;; ++ /dev/disk/by-*) \ ++ zipl_env="SYMLINK" ++ zipl_val=${zipl_arg#/dev/} ++ ;; ++ /dev/*) \ ++ zipl_env="KERNEL" ++ zipl_val=${zipl_arg} ++ ;; ++ esac ++ if [ "$zipl_env" ] ; then ++ { ++ printf 'ACTION=="add|change", SUBSYSTEM=="block", %s=="%s", RUN+="/sbin/initqueue --settled --onetime --unique --name install_zipl_cmdline /sbin/install_zipl_cmdline.sh %s"\n' \ ++ ${zipl_env} ${zipl_val} ${zipl_arg} ++ echo "[ -f /tmp/install.zipl.cmdline-done ]" >$hookdir/initqueue/finished/wait-zipl-conf.sh ++ } >> /etc/udev/rules.d/99zipl-conf.rules ++ cat /etc/udev/rules.d/99zipl-conf.rules ++ fi ++ wait_for_dev -n "$zipl_arg" ++fi + diff --git a/0079.patch b/0079.patch new file mode 100644 index 0000000..27b9c9a --- /dev/null +++ b/0079.patch @@ -0,0 +1,108 @@ +From b7a7ab194398ab3519004376d35d834385e2d916 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 10:36:56 +0100 +Subject: [PATCH] Merge pull request #354 from yuwata/spec-s390x + +spec: do not package s390 specific modules +--- + dracut.spec | 41 ++++++++++++++++++++++++++++++----------- + 1 file changed, 30 insertions(+), 11 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index 08e5a098..11c7459a 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -284,6 +284,19 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity + %endif + ++%infarch s390 s390x ++# remove architecture specific modules ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_mod ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_rules ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dcssblk ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp_rules ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95znet ++%endif ++ + mkdir -p $RPM_BUILD_ROOT/boot/dracut + mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay + mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log +@@ -385,7 +398,6 @@ rm -rf -- $RPM_BUILD_ROOT + %{dracutlibdir}/modules.d/45url-lib + %{dracutlibdir}/modules.d/50drm + %{dracutlibdir}/modules.d/50plymouth +-%{dracutlibdir}/modules.d/80cms + %{dracutlibdir}/modules.d/80lvmmerge + %{dracutlibdir}/modules.d/90btrfs + %{dracutlibdir}/modules.d/90crypt +@@ -400,29 +412,34 @@ rm -rf -- $RPM_BUILD_ROOT + %{dracutlibdir}/modules.d/91crypt-gpg + %{dracutlibdir}/modules.d/91crypt-loop + %{dracutlibdir}/modules.d/95debug ++%{dracutlibdir}/modules.d/95fstab-sys ++%{dracutlibdir}/modules.d/95lunmask + %{dracutlibdir}/modules.d/95resume + %{dracutlibdir}/modules.d/95rootfs-block ++%{dracutlibdir}/modules.d/95terminfo ++%{dracutlibdir}/modules.d/95udev-rules ++%{dracutlibdir}/modules.d/95virtfs ++%ifarch s390 s390x ++%{dracutlibdir}/modules.d/80cms ++%{dracutlibdir}/modules.d/91zipl + %{dracutlibdir}/modules.d/95dasd + %{dracutlibdir}/modules.d/95dasd_mod + %{dracutlibdir}/modules.d/95dasd_rules +-%{dracutlibdir}/modules.d/95fstab-sys +-%{dracutlibdir}/modules.d/95lunmask ++%{dracutlibdir}/modules.d/95dcssblk + %{dracutlibdir}/modules.d/95zfcp + %{dracutlibdir}/modules.d/95zfcp_rules +-%{dracutlibdir}/modules.d/95terminfo +-%{dracutlibdir}/modules.d/95udev-rules +-%{dracutlibdir}/modules.d/95virtfs ++%endif + %if %{undefined _unitdir} + %{dracutlibdir}/modules.d/96securityfs + %{dracutlibdir}/modules.d/97masterkey + %{dracutlibdir}/modules.d/98integrity + %endif + %{dracutlibdir}/modules.d/97biosdevname ++%{dracutlibdir}/modules.d/98dracut-systemd + %{dracutlibdir}/modules.d/98ecryptfs + %{dracutlibdir}/modules.d/98pollcdrom + %{dracutlibdir}/modules.d/98selinux + %{dracutlibdir}/modules.d/98syslog +-%{dracutlibdir}/modules.d/98dracut-systemd + %{dracutlibdir}/modules.d/98usrmount + %{dracutlibdir}/modules.d/99base + %{dracutlibdir}/modules.d/99fs-lib +@@ -456,17 +473,19 @@ rm -rf -- $RPM_BUILD_ROOT + %defattr(-,root,root,0755) + %{dracutlibdir}/modules.d/02systemd-networkd + %{dracutlibdir}/modules.d/40network ++%{dracutlibdir}/modules.d/45ifcfg + %{dracutlibdir}/modules.d/90kernel-network-modules +-%{dracutlibdir}/modules.d/95fcoe +-%{dracutlibdir}/modules.d/95iscsi + %{dracutlibdir}/modules.d/90qemu-net + %{dracutlibdir}/modules.d/95cifs ++%{dracutlibdir}/modules.d/95fcoe ++%{dracutlibdir}/modules.d/95fcoe-uefi ++%{dracutlibdir}/modules.d/95iscsi + %{dracutlibdir}/modules.d/95nbd + %{dracutlibdir}/modules.d/95nfs + %{dracutlibdir}/modules.d/95ssh-client +-%{dracutlibdir}/modules.d/45ifcfg ++%ifarch s390 s390x + %{dracutlibdir}/modules.d/95znet +-%{dracutlibdir}/modules.d/95fcoe-uefi ++%endif + %{dracutlibdir}/modules.d/99uefi-lib + + %if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} + diff --git a/0080.patch b/0080.patch new file mode 100644 index 0000000..f7863cf --- /dev/null +++ b/0080.patch @@ -0,0 +1,253 @@ +From 28a68f1f3ce15b40d45e6987ab0997584d4fa901 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 10:24:20 +0100 +Subject: [PATCH] iSCSI: no more iscsid + +According to Cathy Zhou : + +"iscsistart is not designed to be working together with iscsid. When an +interface gets the dhcp offer successfully, the iscsiroot script is run +which starts the iscsistart service to establish the iSCSI session. With +the existence of iscsid, the iscsistart service's attempt to setup its +own mgmt ipc fails. Instead, the request to login to the iscsi target +is handled by the mgmt ipc of iscsid. After iscsistart finishes its +login attempt, it eventually sends a stop_event_loop request to stop +the mgmt process. As the result, it terminates iscsid." + +So, iscsid is kicked out again. + +Additionally iscsistart-flocked is used to make sure iscsistart is not +run in parallel. +--- + modules.d/95iscsi/cleanup-iscsi.sh | 2 +- + modules.d/95iscsi/iscsiroot.sh | 25 +++++-------------------- + modules.d/95iscsi/iscsistart-flocked.sh | 5 +++++ + modules.d/95iscsi/module-setup.sh | 31 +------------------------------ + modules.d/95iscsi/parse-iscsiroot.sh | 10 ---------- + test/TEST-31-ISCSI-MULTI/test.sh | 32 ++++++++++++++++++++++++++++++++ + 6 files changed, 44 insertions(+), 61 deletions(-) + +diff --git a/modules.d/95iscsi/cleanup-iscsi.sh b/modules.d/95iscsi/cleanup-iscsi.sh +index bfc8aefc..e97d65ac 100755 +--- a/modules.d/95iscsi/cleanup-iscsi.sh ++++ b/modules.d/95iscsi/cleanup-iscsi.sh +@@ -1,4 +1,4 @@ + #!/bin/sh + +-[ -z "${DRACUT_SYSTEMD}" ] && [ -e /sys/module/bnx2i ] && killproc iscsiuio ++[ -e /sys/module/bnx2i ] && killproc iscsiuio + +diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh +index aefd263d..d6325f7d 100755 +--- a/modules.d/95iscsi/iscsiroot.sh ++++ b/modules.d/95iscsi/iscsiroot.sh +@@ -36,14 +36,14 @@ iroot=${iroot#:} + # figured out a way how to check whether this is built-in or not + modprobe crc32c 2>/dev/null + +-if [ -z "${DRACUT_SYSTEMD}" ] && [ -e /sys/module/bnx2i ] && ! [ -e /tmp/iscsiuio-started ]; then ++if [ -e /sys/module/bnx2i ] && ! [ -e /tmp/iscsiuio-started ]; then + iscsiuio + > /tmp/iscsiuio-started + fi + + handle_firmware() + { +- if ! iscsistart -f; then ++ if ! iscsistart-flocked -f; then + warn "iscistart: Could not get list of targets from firmware. Skipping." + echo 'skipped' > "/tmp/iscsistarted-firmware" + return 0 +@@ -53,7 +53,7 @@ handle_firmware() + iscsi_param="$iscsi_param --param $p" + done + +- if ! iscsistart -b $iscsi_param; then ++ if ! iscsistart-flocked -b $iscsi_param; then + warn "'iscsistart -b $iscsi_param' failed with return code $?" + fi + +@@ -117,11 +117,6 @@ handle_netroot() + mkdir -p /etc/iscsi + ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi + > /tmp/iscsi_set_initiator +- if [ -n "$DRACUT_SYSTEMD" ]; then +- systemctl try-restart iscsid +- # FIXME: iscsid is not yet ready, when the service is :-/ +- sleep 1 +- fi + fi + + if [ -z "$iscsi_initiator" ]; then +@@ -138,11 +133,6 @@ handle_netroot() + mkdir -p /etc/iscsi + ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi + > /tmp/iscsi_set_initiator +- if [ -n "$DRACUT_SYSTEMD" ]; then +- systemctl try-restart iscsid +- # FIXME: iscsid is not yet ready, when the service is :-/ +- sleep 1 +- fi + fi + + +@@ -163,11 +153,6 @@ handle_netroot() + if ! [ -e /etc/iscsi/initiatorname.iscsi ]; then + mkdir -p /etc/iscsi + ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi +- if [ -n "$DRACUT_SYSTEMD" ]; then +- systemctl try-restart iscsid +- # FIXME: iscsid is not yet ready, when the service is :-/ +- sleep 1 +- fi + fi + # FIXME $iscsi_protocol?? + +@@ -193,7 +178,7 @@ handle_netroot() + --description="Login iSCSI Target $iscsi_target_name" \ + -p 'DefaultDependencies=no' \ + --unit="$netroot_enc" -- \ +- $(command -v iscsistart) \ ++ $(command -v iscsistart-flocked) \ + -i "$iscsi_initiator" -t "$iscsi_target_name" \ + -g "$iscsi_target_group" -a "$iscsi_target_ip" \ + -p "$iscsi_target_port" \ +@@ -211,7 +196,7 @@ handle_netroot() + fi + fi + else +- iscsistart -i "$iscsi_initiator" -t "$iscsi_target_name" \ ++ iscsistart-flocked -i "$iscsi_initiator" -t "$iscsi_target_name" \ + -g "$iscsi_target_group" -a "$iscsi_target_ip" \ + -p "$iscsi_target_port" \ + ${iscsi_username:+-u "$iscsi_username"} \ +diff --git a/modules.d/95iscsi/iscsistart-flocked.sh b/modules.d/95iscsi/iscsistart-flocked.sh +new file mode 100755 +index 00000000..6366335d +--- /dev/null ++++ b/modules.d/95iscsi/iscsistart-flocked.sh +@@ -0,0 +1,5 @@ ++#!/bin/sh ++{ ++ flock -e 9 ++ iscsistart "$@" ++} 9>/tmp/.iscsi_lock +diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh +index 04937b5b..5c47750a 100755 +--- a/modules.d/95iscsi/module-setup.sh ++++ b/modules.d/95iscsi/module-setup.sh +@@ -194,41 +194,12 @@ install() { + [[ $_iscsiconf ]] && printf "%s\n" "$_iscsiconf" >> "${initdir}/etc/cmdline.d/95iscsi.conf" + fi + ++ inst "$moddir/iscsistart-flocked.sh" "/bin/iscsistart-flocked" + inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh" + inst_hook cleanup 90 "$moddir/cleanup-iscsi.sh" + inst "$moddir/iscsiroot.sh" "/sbin/iscsiroot" + if ! dracut_module_included "systemd"; then + inst "$moddir/mount-lun.sh" "/bin/mount-lun.sh" +- else +- inst_multiple -o \ +- $systemdsystemunitdir/iscsi.service \ +- $systemdsystemunitdir/iscsid.service \ +- $systemdsystemunitdir/iscsid.socket \ +- $systemdsystemunitdir/iscsiuio.service \ +- $systemdsystemunitdir/iscsiuio.socket \ +- iscsiadm iscsid +- +- mkdir -p "${initdir}/$systemdsystemunitdir/sockets.target.wants" +- for i in \ +- iscsiuio.socket \ +- ; do +- ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/sockets.target.wants/${i}" +- done +- +- mkdir -p "${initdir}/$systemdsystemunitdir/basic.target.wants" +- for i in \ +- iscsid.service \ +- ; do +- ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/basic.target.wants/${i}" +- done +- +- # Make sure iscsid is started after dracut-cmdline and ready for the initqueue +- mkdir -p "${initdir}/$systemdsystemunitdir/iscsid.service.d" +- ( +- echo "[Unit]" +- echo "After=dracut-cmdline.service" +- echo "Before=dracut-initqueue.service" +- ) > "${initdir}/$systemdsystemunitdir/iscsid.service.d/dracut.conf" + fi + inst_dir /var/lib/iscsi + dracut_need_initqueue +diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh +index 43b2e088..c8c66ccf 100755 +--- a/modules.d/95iscsi/parse-iscsiroot.sh ++++ b/modules.d/95iscsi/parse-iscsiroot.sh +@@ -116,11 +116,6 @@ if arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=) && [ -n "$arg" ] && ! [ + if ! [ -e /etc/iscsi/initiatorname.iscsi ]; then + mkdir -p /etc/iscsi + ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi +- if [ -n "$DRACUT_SYSTEMD" ]; then +- systemctl try-restart iscsid +- # FIXME: iscsid is not yet ready, when the service is :-/ +- sleep 1 +- fi + fi + fi + +@@ -133,11 +128,6 @@ if [ -z $iscsi_initiator ] && [ -f /sys/firmware/ibft/initiator/initiator-name ] + mkdir -p /etc/iscsi + ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi + > /tmp/iscsi_set_initiator +- if [ -n "$DRACUT_SYSTEMD" ]; then +- systemctl try-restart iscsid +- # FIXME: iscsid is not yet ready, when the service is :-/ +- sleep 1 +- fi + fi + fi + +diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh +index 2b63ff46..2f2b6ed5 100755 +--- a/test/TEST-31-ISCSI-MULTI/test.sh ++++ b/test/TEST-31-ISCSI-MULTI/test.sh +@@ -73,6 +73,38 @@ do_test_run() { + "rd.iscsi.initiator=$initiator" \ + || return 1 + ++ run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0" \ ++ "root=LABEL=sysroot" \ ++ "ip=192.168.50.101:::255.255.255.0::ens3:off" \ ++ "ip=192.168.51.101:::255.255.255.0::ens4:off" \ ++ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \ ++ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \ ++ "rd.iscsi.firmware" \ ++ "rd.iscsi.initiator=$initiator" \ ++ "rd.iscsi.waitnet=0" \ ++ || return 1 ++ ++ run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0 rd.iscsi.testroute=0" \ ++ "root=LABEL=sysroot" \ ++ "ip=192.168.50.101:::255.255.255.0::ens3:off" \ ++ "ip=192.168.51.101:::255.255.255.0::ens4:off" \ ++ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \ ++ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \ ++ "rd.iscsi.firmware" \ ++ "rd.iscsi.initiator=$initiator" \ ++ "rd.iscsi.waitnet=0 rd.iscsi.testroute=0" \ ++ || return 1 ++ ++ run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0 rd.iscsi.testroute=0 default GW" \ ++ "root=LABEL=sysroot" \ ++ "ip=192.168.50.101::192.168.50.1:255.255.255.0::ens3:off" \ ++ "ip=192.168.51.101::192.168.51.1:255.255.255.0::ens4:off" \ ++ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \ ++ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \ ++ "rd.iscsi.firmware" \ ++ "rd.iscsi.initiator=$initiator" \ ++ "rd.iscsi.waitnet=0 rd.iscsi.testroute=0" \ ++ || return 1 + + echo "All tests passed [OK]" + return 0 + diff --git a/0081.patch b/0081.patch new file mode 100644 index 0000000..ee83c71 --- /dev/null +++ b/0081.patch @@ -0,0 +1,24 @@ +From 2bb4881b8206cc26d48b31985c4078510bf6c8cd Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 11:33:26 +0100 +Subject: [PATCH] dracut.spec: fixed typo + +introduced with commit 52d19cb161fcdf260f956db32480d1593bd20b52 +--- + dracut.spec | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut.spec b/dracut.spec +index 11c7459a..81a5098c 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -284,7 +284,7 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity + %endif + +-%infarch s390 s390x ++%ifnarch s390 s390x + # remove architecture specific modules + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl + diff --git a/0082.patch b/0082.patch new file mode 100644 index 0000000..e06df49 --- /dev/null +++ b/0082.patch @@ -0,0 +1,39 @@ +From 5cc17c25c2f450e54a67c0de9b5031d4c2fd24cb Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 11:34:45 +0100 +Subject: [PATCH] TEST-14-IMSM: fail early, if setup failed + +--- + test/TEST-14-IMSM/test.sh | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh +index 9f4ed8a8..21172357 100755 +--- a/test/TEST-14-IMSM/test.sh ++++ b/test/TEST-14-IMSM/test.sh +@@ -30,6 +30,11 @@ client_run() { + + test_run() { + read MD_UUID < $TESTDIR/mduuid ++ if [[ -z $MD_UUID ]]; then ++ echo "Setup failed" ++ return 1 ++ fi ++ + client_run rd.auto rd.md.imsm=0 || return 1 + client_run rd.md.uuid=$MD_UUID rd.dm=0 || return 1 + # This test succeeds, because the mirror parts are found without +@@ -109,6 +114,12 @@ test_setup() { + -initrd $TESTDIR/initramfs.makeroot || return 1 + grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 + eval $(grep -F --binary-files=text -m 1 MD_UUID $TESTDIR/root.ext2) ++ ++ if [[ -z $MD_UUID ]]; then ++ echo "Setup failed" ++ return 1 ++ fi ++ + echo $MD_UUID > $TESTDIR/mduuid + ( + export initdir=$TESTDIR/overlay + diff --git a/0083.patch b/0083.patch new file mode 100644 index 0000000..1059bf5 --- /dev/null +++ b/0083.patch @@ -0,0 +1,35 @@ +From d888e21b5d3b830ab2a40fa4194d0ae59cb1b331 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 13:04:34 +0100 +Subject: [PATCH] test/ci-matrix.txt: add file specifying which tests to run + +--- + test/ci-matrix.txt | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/test/ci-matrix.txt b/test/ci-matrix.txt +new file mode 100644 +index 00000000..3d6aca62 +--- /dev/null ++++ b/test/ci-matrix.txt +@@ -0,0 +1,19 @@ ++01 ++02 ++03 ++04 ++10 ++11 ++12 ++13 ++14 ++15 ++16 ++17 ++20 ++30 ++31 ++40 ++50 ++60 ++70 + diff --git a/0084.patch b/0084.patch new file mode 100644 index 0000000..b6d53e2 --- /dev/null +++ b/0084.patch @@ -0,0 +1,22 @@ +From cc3808184c741c6a793e0200bdc7d2abf9f68c08 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 13:34:57 +0100 +Subject: [PATCH] README.md: add test 31 + +--- + README.md | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/README.md b/README.md +index 93449a76..e229641b 100644 +--- a/README.md ++++ b/README.md +@@ -20,6 +20,7 @@ dracut is an initramfs infrastructure. + - Test 17: [![Test 17](https://ci.centos.org/job/dracut-matrix-master/TESTS=17,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=17,label=dracut-ci-slave01/) + - Test 20: [![Test 20](https://ci.centos.org/job/dracut-matrix-master/TESTS=20,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=20,label=dracut-ci-slave01/) + - Test 30: [![Test 30](https://ci.centos.org/job/dracut-matrix-master/TESTS=30,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=30,label=dracut-ci-slave01/) ++- Test 31: [![Test 31](https://ci.centos.org/job/dracut-matrix-master/TESTS=31,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=31,label=dracut-ci-slave01/) + - Test 40: [![Test 40](https://ci.centos.org/job/dracut-matrix-master/TESTS=40,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=40,label=dracut-ci-slave01/) + - Test 50: [![Test 50](https://ci.centos.org/job/dracut-matrix-master/TESTS=50,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=50,label=dracut-ci-slave01/) + - Test 70: [![Test 70](https://ci.centos.org/job/dracut-matrix-master/TESTS=70,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=70,label=dracut-ci-slave01/) + diff --git a/0085.patch b/0085.patch new file mode 100644 index 0000000..060143f --- /dev/null +++ b/0085.patch @@ -0,0 +1,29 @@ +From 8b4b7dc5b2f1477825cf8a52f412af372b4646f8 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Jan 2018 13:45:20 +0100 +Subject: [PATCH] iscsi: remove last iscsid code snippet + +--- + modules.d/95iscsi/iscsiroot.sh | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh +index d6325f7d..f7c99a60 100755 +--- a/modules.d/95iscsi/iscsiroot.sh ++++ b/modules.d/95iscsi/iscsiroot.sh +@@ -219,14 +219,6 @@ if [ "$netif" != "timeout" ] && getargbool 1 rd.iscsi.waitnet; then + all_ifaces_setup || exit 0 + fi + +-if [ "$netif" = "timeout" ] && all_ifaces_setup; then +- # s.th. went wrong and the timeout script hits +- # restart +- systemctl restart iscsid +- # damn iscsid is not ready after unit says it's ready +- sleep 2 +-fi +- + if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then + if [ "$netif" = "timeout" ] || [ "$netif" = "online" ]; then + handle_firmware + diff --git a/0086.patch b/0086.patch new file mode 100644 index 0000000..bd747d4 --- /dev/null +++ b/0086.patch @@ -0,0 +1,113 @@ +From b925f7f5d97259dd81e9d562fd1c6433e4b04f30 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 15 Jan 2018 09:04:12 +0100 +Subject: [PATCH] Merge pull request #347 from danimo/81cio_ignore + +81cio_ignore: handle cio_ignore commandline +--- + dracut.cmdline.7.asc | 15 +++++++++++ + modules.d/81cio_ignore/module-setup.sh | 40 ++++++++++++++++++++++++++++++ + modules.d/81cio_ignore/parse-cio_accept.sh | 22 ++++++++++++++++ + 3 files changed, 77 insertions(+) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index f95f4d63..8f83405e 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -1015,6 +1015,21 @@ ZIPL + rd.zipl=UUID=0fb28157-99e3-4395-adef-da3f7d44835a + -- + ++CIO_IGNORE ++~~~~~~~~~~ ++**rd.cio_accept=**____:: ++ Remove the devices listed in from the default ++ cio_ignore kernel command-line settings. ++ is a list of comma-separated CCW device ids. ++ The default for this value is taken from the ++ _/boot/zipl/active_devices.txt_ file. +++ ++[listing] ++.Example ++-- ++rd.cio_accept=0.0.0180,0.0.0800,0.0.0801,0.0.0802 ++-- ++ + Plymouth Boot Splash + ~~~~~~~~~~~~~~~~~~~~ + **plymouth.enable=0**:: +diff --git a/modules.d/81cio_ignore/module-setup.sh b/modules.d/81cio_ignore/module-setup.sh +new file mode 100755 +index 00000000..37b414bf +--- /dev/null ++++ b/modules.d/81cio_ignore/module-setup.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++# called by dracut ++check() { ++# do not add this module by default ++ local arch=$(uname -m) ++ [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1 ++ return 0 ++} ++ ++cmdline() { ++ local cio_accept ++ ++ if [ -e /boot/zipl/active_devices.txt ] ; then ++ while read dev etc ; do ++ [ "$dev" = "#" -o "$dev" = "" ] && continue; ++ if [ -z "$cio_accept" ] ; then ++ cio_accept="$dev" ++ else ++ cio_accept="${cio_accept},${dev}" ++ fi ++ done < /boot/zipl/active_devices.txt ++ fi ++ if [ -n "$cio_accept" ] ; then ++ echo "rd.cio_accept=${cio_accept}" ++ fi ++} ++ ++# called by dracut ++install() { ++ if [[ $hostonly_cmdline == "yes" ]] ; then ++ local _cio_accept=$(cmdline) ++ [[ $_cio_accept ]] && printf "%s\n" "$_cio_accept" >> "${initdir}/etc/cmdline.d/01cio_accept.conf" ++ fi ++ ++ inst_hook cmdline 20 "$moddir/parse-cio_accept.sh" ++ inst_multiple cio_ignore ++} +diff --git a/modules.d/81cio_ignore/parse-cio_accept.sh b/modules.d/81cio_ignore/parse-cio_accept.sh +new file mode 100755 +index 00000000..4f899d25 +--- /dev/null ++++ b/modules.d/81cio_ignore/parse-cio_accept.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++CIO_IGNORE=$(getarg cio_ignore) ++CIO_ACCEPT=$(getarg rd.cio_accept) ++ ++if [ -z $CIO_IGNORE ] ; then ++ info "cio_ignored disabled on commandline" ++ return ++fi ++if [ -n "$CIO_ACCEPT" ] ; then ++ OLDIFS="$IFS" ++ IFS=, ++ set -- $CIO_ACCEPT ++ while (($# > 0)) ; do ++ info "Enabling device $1" ++ cio_ignore --remove $1 ++ shift ++ done ++ IFS="$OLDIFS" ++fi + diff --git a/0087.patch b/0087.patch new file mode 100644 index 0000000..24c1d2c --- /dev/null +++ b/0087.patch @@ -0,0 +1,94 @@ +From 9ed6eb741f0bc0178167e7063751eb2bb4ac6de5 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 15 Jan 2018 15:44:46 +0100 +Subject: [PATCH] dracut-functions.sh:check_vol_slaves() speedup LV -> VG name + +Instead of trying all /dev/mapper/* devices to match the maj:min, and +get the VG name with "lvm lvs", use the dm/name from /sys and dmsetup +splitname. + +This should speedup execution with lots of LVs. +--- + dracut-functions.sh | 64 ++++++++++++++++++++++++----------------------------- + 1 file changed, 29 insertions(+), 35 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index e99c4533..badd2a22 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -560,45 +560,39 @@ for_each_host_dev_and_slaves() + # but you cannot create the logical volume without the volume group. + # And the volume group might be bigger than the devices the LV needs. + check_vol_slaves() { +- local _lv _vg _pv _dm +- for i in /dev/mapper/*; do +- [[ $i == /dev/mapper/control ]] && continue +- _lv=$(get_maj_min $i) +- _dm=/sys/dev/block/$_lv/dm +- [[ -f $_dm/uuid && $(<$_dm/uuid) =~ LVM-* ]] || continue +- if [[ $_lv = $2 ]]; then +- _vg=$(lvm lvs --noheadings -o vg_name $i 2>/dev/null) +- # strip space +- _vg="${_vg//[[:space:]]/}" +- if [[ $_vg ]]; then +- for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null) +- do +- check_block_and_slaves $1 $(get_maj_min $_pv) && return 0 +- done +- fi +- fi +- done ++ local _lv _vg _pv _dm _majmin ++ _majmin="$2" ++ _lv="/dev/block/$_majmin" ++ _dm=/sys/dev/block/$_majmin/dm ++ [[ -f $_dm/uuid && $(<$_dm/uuid) =~ LVM-* ]] || return 1 ++ _vg=$(dmsetup splitname --noheadings -o vg_name $(<"$_dm/name") ) ++ # strip space ++ _vg="${_vg//[[:space:]]/}" ++ if [[ $_vg ]]; then ++ for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null) ++ do ++ check_block_and_slaves $1 $(get_maj_min $_pv) && return 0 ++ done ++ fi + return 1 + } + + check_vol_slaves_all() { +- local _lv _vg _pv +- for i in /dev/mapper/*; do +- [[ $i == /dev/mapper/control ]] && continue +- _lv=$(get_maj_min $i) +- if [[ $_lv = $2 ]]; then +- _vg=$(lvm lvs --noheadings -o vg_name $i 2>/dev/null) +- # strip space +- _vg="${_vg//[[:space:]]/}" +- if [[ $_vg ]]; then +- for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null) +- do +- check_block_and_slaves_all $1 $(get_maj_min $_pv) +- done +- return 0 +- fi +- fi +- done ++ local _lv _vg _pv _majmin ++ _majmin="$2" ++ _lv="/dev/block/$_majmin" ++ _dm="/sys/dev/block/$_majmin/dm" ++ [[ -f $_dm/uuid && $(<$_dm/uuid) =~ LVM-* ]] || return 1 ++ _vg=$(dmsetup splitname --noheadings -o vg_name $(<"$_dm/name") ) ++ # strip space ++ _vg="${_vg//[[:space:]]/}" ++ if [[ $_vg ]]; then ++ for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null) ++ do ++ check_block_and_slaves_all $1 $(get_maj_min $_pv) ++ done ++ return 0 ++ fi + return 1 + } + + diff --git a/0088.patch b/0088.patch new file mode 100644 index 0000000..316464a --- /dev/null +++ b/0088.patch @@ -0,0 +1,45 @@ +From 33b560fcc2c77cef5a53839b39ac38b4c1ed978c Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 16 Jan 2018 10:15:38 +0100 +Subject: [PATCH] Merge pull request #356 from yuwata/spec-s390-2 + +spec: remove 81cio_ignore module from non-s390 arch +--- + AUTHORS | 2 +- + dracut.spec | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/AUTHORS b/AUTHORS +index 7be1072f..29670e42 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -69,7 +69,7 @@ Silvio Fricke + Stig Telfer + Vasiliy Tolstov + Wim Muskee +-yuwata ++Yu Watanabe + Alan Jenkins + Alan Pevec + Alex Harpin +diff --git a/dracut.spec b/dracut.spec +index 81a5098c..c52364b8 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -287,6 +287,7 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity + %ifnarch s390 s390x + # remove architecture specific modules + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms ++rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd + rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_mod +@@ -421,6 +422,7 @@ rm -rf -- $RPM_BUILD_ROOT + %{dracutlibdir}/modules.d/95virtfs + %ifarch s390 s390x + %{dracutlibdir}/modules.d/80cms ++%{dracutlibdir}/modules.d/81cio_ignore + %{dracutlibdir}/modules.d/91zipl + %{dracutlibdir}/modules.d/95dasd + %{dracutlibdir}/modules.d/95dasd_mod + diff --git a/0089.patch b/0089.patch new file mode 100644 index 0000000..8101f38 --- /dev/null +++ b/0089.patch @@ -0,0 +1,45 @@ +From bce6823a19b3fc0be50ff5c29c5ef90fa58b3430 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 16 Jan 2018 12:14:15 +0100 +Subject: [PATCH] lsinitrd: no more cat: write error: Broken pipe + +silence the cat +--- + lsinitrd.sh | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/lsinitrd.sh b/lsinitrd.sh +index f4088453..4892704a 100755 +--- a/lsinitrd.sh ++++ b/lsinitrd.sh +@@ -130,7 +130,7 @@ extract_files() + for f in "${!filenames[@]}"; do + [[ $nofileinfo ]] || echo "initramfs:/$f" + [[ $nofileinfo ]] || echo "========================================================================" +- $CAT $image | cpio --extract --verbose --quiet --to-stdout $f 2>/dev/null ++ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --to-stdout $f 2>/dev/null + ((ret+=$?)) + [[ $nofileinfo ]] || echo "========================================================================" + [[ $nofileinfo ]] || echo +@@ -149,9 +149,9 @@ list_files() + { + echo "========================================================================" + if [ "$sorted" -eq 1 ]; then +- $CAT "$image" | cpio --extract --verbose --quiet --list | sort -n -k5 ++ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --list | sort -n -k5 + else +- $CAT "$image" | cpio --extract --verbose --quiet --list | sort -k9 ++ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --list | sort -k9 + fi + ((ret+=$?)) + echo "========================================================================" +@@ -159,7 +159,7 @@ list_files() + + unpack_files() + { +- $CAT "$image" | cpio -id --quiet $verbose ++ $CAT "$image" 2>/dev/null | cpio -id --quiet $verbose + ((ret+=$?)) + } + + diff --git a/0090.patch b/0090.patch new file mode 100644 index 0000000..8d3b8a6 --- /dev/null +++ b/0090.patch @@ -0,0 +1,26 @@ +From 2a0da60ed18b33e39fe8e36864800bbaaa0448b4 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 16 Jan 2018 14:16:37 +0100 +Subject: [PATCH] configure: bump kmod version to >= 23 + +for issue #357 +--- + configure | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 23686805..d8985ad4 100755 +--- a/configure ++++ b/configure +@@ -66,8 +66,8 @@ sbindir ?= ${sbindir:-${prefix}/sbin} + mandir ?= ${mandir:-${prefix}/share/man} + enable_documentation ?= ${enable_documentation:-yes} + bindir ?= ${bindir:-${prefix}/bin} +-KMOD_CFLAGS ?= $(${PKG_CONFIG} --cflags " libkmod >= 15 ") +-KMOD_LIBS ?= $(${PKG_CONFIG} --libs " libkmod >= 15 ") ++KMOD_CFLAGS ?= $(${PKG_CONFIG} --cflags " libkmod >= 23 ") ++KMOD_LIBS ?= $(${PKG_CONFIG} --libs " libkmod >= 23 ") + EOF + + { + diff --git a/0091.patch b/0091.patch new file mode 100644 index 0000000..cd0a955 --- /dev/null +++ b/0091.patch @@ -0,0 +1,24 @@ +From bff3ee1936e8444bce3a43c53e7558949e099556 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 17 Jan 2018 09:50:54 +0100 +Subject: [PATCH] Merge pull request #361 from danimo/dm_multipath + +90multipath: load dm_multipath module during startup +--- + modules.d/90multipath/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 983f6f24..446dceb0 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -30,7 +30,7 @@ depends() { + + # called by dracut + cmdline() { +- for m in scsi_dh_alua scsi_dh_emc scsi_dh_rdac ; do ++ for m in scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm_multipath; do + if grep -m 1 -q "$m" /proc/modules ; then + printf 'rd.driver.pre=%s ' "$m" + fi + diff --git a/0092.patch b/0092.patch new file mode 100644 index 0000000..81aebe3 --- /dev/null +++ b/0092.patch @@ -0,0 +1,40 @@ +From 308c4066fee31b08d67413ce7920d63c8d05038e Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 17 Jan 2018 09:51:54 +0100 +Subject: [PATCH] Merge pull request #359 from yuwata/kmod-version + +configure, kmod: bump kmod version to >= 23 +--- + configure | 4 ++-- + dracut.spec | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure b/configure +index d8985ad4..b55fb609 100755 +--- a/configure ++++ b/configure +@@ -52,8 +52,8 @@ while (($# > 0)); do + shift + done + +-if ! ${PKG_CONFIG} --exists --print-errors " libkmod >= 15 "; then +- echo "dracut needs pkg-config and libkmod >= 15." >&2 ++if ! ${PKG_CONFIG} --exists --print-errors " libkmod >= 23 "; then ++ echo "dracut needs pkg-config and libkmod >= 23." >&2 + exit 1 + fi + +diff --git a/dracut.spec b/dracut.spec +index c52364b8..d547e847 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -40,7 +40,7 @@ Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar + Source1: https://www.gnu.org/licenses/lgpl-2.1.txt + + BuildRequires: bash git +-BuildRequires: kmod-devel >= 15 ++BuildRequires: kmod-devel >= 23 + + %if 0%{?fedora} || 0%{?rhel} + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + diff --git a/0093.patch b/0093.patch new file mode 100644 index 0000000..5665e8e --- /dev/null +++ b/0093.patch @@ -0,0 +1,38 @@ +From 83b19de168bf63698c53537bbb662242370fc17a Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 17 Jan 2018 18:32:52 +0100 +Subject: [PATCH] Merge pull request #363 from danimo/dracut_dmraid_use_udev + +0202-dracut_dmraid_use_udev +--- + modules.d/90dmraid/dmraid.sh | 2 -- + modules.d/90dmraid/module-setup.sh | 2 ++ + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90dmraid/dmraid.sh b/modules.d/90dmraid/dmraid.sh +index e7a09b07..edae9784 100755 +--- a/modules.d/90dmraid/dmraid.sh ++++ b/modules.d/90dmraid/dmraid.sh +@@ -33,8 +33,6 @@ if [ -n "$DM_RAIDS" ] || getargbool 0 rd.auto; then + if [ "${s##$r}" != "$s" ]; then + info "Activating $s" + dmraid -ay -i -p --rm_partitions "$s" 2>&1 | vinfo +- [ -e "/dev/mapper/$s" ] && kpartx -a "/dev/mapper/$s" 2>&1 | vinfo +- udevsettle + fi + done + done +diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh +index e8de5f56..797a58e5 100755 +--- a/modules.d/90dmraid/module-setup.sh ++++ b/modules.d/90dmraid/module-setup.sh +@@ -74,6 +74,8 @@ install() { + + inst "$moddir/dmraid.sh" /sbin/dmraid_scan + ++ inst_rules 66-kpartx.rules 67-kpartx-compat.rules ++ + inst_libdir_file "libdmraid-events*.so*" + + inst_rules "$moddir/61-dmraid-imsm.rules" + diff --git a/0094.patch b/0094.patch new file mode 100644 index 0000000..ba494e7 --- /dev/null +++ b/0094.patch @@ -0,0 +1,38 @@ +From a54206722d075b773801f8663bd50b14cb4b56c6 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 18 Jan 2018 08:55:34 +0100 +Subject: [PATCH] dracut.cmdline.7.asc: document rd.ccw and rd.znet + +rd.znet should be used instead of rd.ccw. + +Add more info about rd.znet. + +Fixes github issue 364 +--- + dracut.cmdline.7.asc | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 8f83405e..8f86efe0 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -811,6 +811,9 @@ rd.zfcp=0.0.4000 + ZNET + ~~~~ + **rd.znet=**____,____,____:: ++ The whole parameter is appended to /etc/ccw.conf, which is used on ++ RHEL/Fedora with ccw_init, which is called from udev for certain ++ devices on z-series. + rd.znet can be specified multiple times on the kernel command line. + + + [listing] +@@ -1083,7 +1086,8 @@ their new replacement. + + rdbreak:: rd.break + +-rd_CCW:: rd.ccw ++rd.ccw:: rd.znet ++rd_CCW:: rd.znet + + rd_DASD_MOD:: rd.dasd + diff --git a/dracut.spec b/dracut.spec index 0e57d66..c0f7139 100644 --- a/dracut.spec +++ b/dracut.spec @@ -14,7 +14,7 @@ %define with_nbd 0 %endif -%define dist_free_release 64.git20180105 +%define dist_free_release 92.git20180118 Name: dracut Version: 046 @@ -100,11 +100,39 @@ Patch60: 0063.patch Patch61: 0064.patch Patch62: 0065.patch Patch63: 0066.patch +Patch64: 0067.patch +Patch65: 0068.patch +Patch66: 0069.patch +Patch67: 0070.patch +Patch68: 0071.patch +Patch69: 0072.patch +Patch70: 0073.patch +Patch71: 0074.patch +Patch72: 0075.patch +Patch73: 0076.patch +Patch74: 0077.patch +Patch75: 0078.patch +Patch76: 0079.patch +Patch77: 0080.patch +Patch78: 0081.patch +Patch79: 0082.patch +Patch80: 0083.patch +Patch81: 0084.patch +Patch82: 0085.patch +Patch83: 0086.patch +Patch84: 0087.patch +Patch85: 0088.patch +Patch86: 0089.patch +Patch87: 0090.patch +Patch88: 0091.patch +Patch89: 0092.patch +Patch90: 0093.patch +Patch91: 0094.patch Source1: https://www.gnu.org/licenses/lgpl-2.1.txt BuildRequires: bash git -BuildRequires: kmod-devel >= 15 +BuildRequires: kmod-devel >= 23 %if 0%{?fedora} || 0%{?rhel} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -348,6 +376,20 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity %endif +%ifnarch s390 s390x +# remove architecture specific modules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_mod +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dcssblk +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95znet +%endif + mkdir -p $RPM_BUILD_ROOT/boot/dracut mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log @@ -434,8 +476,7 @@ rm -rf -- $RPM_BUILD_ROOT %{_mandir}/man5/dracut.conf.5* %endif -%if %{defined _unitdir} -%else +%if %{undefined _unitdir} %{dracutlibdir}/modules.d/00bootchart %endif %{dracutlibdir}/modules.d/00bash @@ -450,7 +491,6 @@ rm -rf -- $RPM_BUILD_ROOT %{dracutlibdir}/modules.d/45url-lib %{dracutlibdir}/modules.d/50drm %{dracutlibdir}/modules.d/50plymouth -%{dracutlibdir}/modules.d/80cms %{dracutlibdir}/modules.d/80lvmmerge %{dracutlibdir}/modules.d/90btrfs %{dracutlibdir}/modules.d/90crypt @@ -465,29 +505,35 @@ rm -rf -- $RPM_BUILD_ROOT %{dracutlibdir}/modules.d/91crypt-gpg %{dracutlibdir}/modules.d/91crypt-loop %{dracutlibdir}/modules.d/95debug +%{dracutlibdir}/modules.d/95fstab-sys +%{dracutlibdir}/modules.d/95lunmask %{dracutlibdir}/modules.d/95resume %{dracutlibdir}/modules.d/95rootfs-block +%{dracutlibdir}/modules.d/95terminfo +%{dracutlibdir}/modules.d/95udev-rules +%{dracutlibdir}/modules.d/95virtfs +%ifarch s390 s390x +%{dracutlibdir}/modules.d/80cms +%{dracutlibdir}/modules.d/81cio_ignore +%{dracutlibdir}/modules.d/91zipl %{dracutlibdir}/modules.d/95dasd %{dracutlibdir}/modules.d/95dasd_mod %{dracutlibdir}/modules.d/95dasd_rules -%{dracutlibdir}/modules.d/95fstab-sys -%{dracutlibdir}/modules.d/95lunmask +%{dracutlibdir}/modules.d/95dcssblk %{dracutlibdir}/modules.d/95zfcp %{dracutlibdir}/modules.d/95zfcp_rules -%{dracutlibdir}/modules.d/95terminfo -%{dracutlibdir}/modules.d/95udev-rules -%{dracutlibdir}/modules.d/95virtfs +%endif %if %{undefined _unitdir} %{dracutlibdir}/modules.d/96securityfs %{dracutlibdir}/modules.d/97masterkey %{dracutlibdir}/modules.d/98integrity %endif %{dracutlibdir}/modules.d/97biosdevname +%{dracutlibdir}/modules.d/98dracut-systemd %{dracutlibdir}/modules.d/98ecryptfs %{dracutlibdir}/modules.d/98pollcdrom %{dracutlibdir}/modules.d/98selinux %{dracutlibdir}/modules.d/98syslog -%{dracutlibdir}/modules.d/98dracut-systemd %{dracutlibdir}/modules.d/98usrmount %{dracutlibdir}/modules.d/99base %{dracutlibdir}/modules.d/99fs-lib @@ -521,17 +567,19 @@ rm -rf -- $RPM_BUILD_ROOT %defattr(-,root,root,0755) %{dracutlibdir}/modules.d/02systemd-networkd %{dracutlibdir}/modules.d/40network +%{dracutlibdir}/modules.d/45ifcfg %{dracutlibdir}/modules.d/90kernel-network-modules -%{dracutlibdir}/modules.d/95fcoe -%{dracutlibdir}/modules.d/95iscsi %{dracutlibdir}/modules.d/90qemu-net %{dracutlibdir}/modules.d/95cifs +%{dracutlibdir}/modules.d/95fcoe +%{dracutlibdir}/modules.d/95fcoe-uefi +%{dracutlibdir}/modules.d/95iscsi %{dracutlibdir}/modules.d/95nbd %{dracutlibdir}/modules.d/95nfs %{dracutlibdir}/modules.d/95ssh-client -%{dracutlibdir}/modules.d/45ifcfg +%ifarch s390 s390x %{dracutlibdir}/modules.d/95znet -%{dracutlibdir}/modules.d/95fcoe-uefi +%endif %{dracutlibdir}/modules.d/99uefi-lib %if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} @@ -582,6 +630,9 @@ rm -rf -- $RPM_BUILD_ROOT %endif %changelog +* Thu Jan 18 2018 Harald Hoyer - 046-92 +- git snapshot + * Fri Jan 05 2018 Harald Hoyer - 046-64 - git snapshot