From 0dc2f27864cff85ea8d9f18fc122bc8c51284429 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 21 Jan 2020 13:07:07 -0500 Subject: [PATCH] import dracut-049-60.git20191129.el8 --- SOURCES/0012.patch | 1 + SOURCES/0013.patch | 51 ++++ SOURCES/0014.patch | 49 ++++ SOURCES/0015.patch | 24 ++ SOURCES/0016.patch | 86 +++++++ SOURCES/0017.patch | 22 ++ SOURCES/0018.patch | 49 ++++ SOURCES/0019.patch | 71 ++++++ SOURCES/0020.patch | 94 +++++++ SOURCES/0021.patch | 94 +++++++ SOURCES/0022.patch | 36 +++ SOURCES/0023.patch | 34 +++ SOURCES/0024.patch | 36 +++ SOURCES/0025.patch | 26 ++ SOURCES/0026.patch | 38 +++ SOURCES/0027.patch | 25 ++ SOURCES/0028.patch | 98 +++++++ SOURCES/0029.patch | 79 ++++++ SOURCES/0030.patch | 24 ++ SOURCES/0031.patch | 43 ++++ SOURCES/0032.patch | 66 +++++ SOURCES/0033.patch | 346 +++++++++++++++++++++++++ SOURCES/0034.patch | 229 +++++++++++++++++ SOURCES/0035.patch | 27 ++ SOURCES/0036.patch | 27 ++ SOURCES/0037.patch | 53 ++++ SOURCES/0038.patch | 31 +++ SOURCES/0039.patch | 24 ++ SOURCES/0040.patch | 24 ++ SOURCES/0041.patch | 30 +++ SOURCES/0042.patch | 43 ++++ SOURCES/0043.patch | 620 +++++++++++++++++++++++++++++++++++++++++++++ SOURCES/0044.patch | 53 ++++ SOURCES/0045.patch | 83 ++++++ SOURCES/0046.patch | 37 +++ SOURCES/0047.patch | 115 +++++++++ SOURCES/0048.patch | 43 ++++ SOURCES/0049.patch | 23 ++ SOURCES/0050.patch | 23 ++ SOURCES/0051.patch | 19 ++ SOURCES/0052.patch | 33 +++ SOURCES/0053.patch | 32 +++ SOURCES/0054.patch | 33 +++ SOURCES/0055.patch | 26 ++ SOURCES/0056.patch | 34 +++ SOURCES/0057.patch | 25 ++ SOURCES/0058.patch | 44 ++++ SOURCES/0059.patch | 57 +++++ SPECS/dracut.spec | 93 ++++++- 49 files changed, 3272 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0013.patch create mode 100644 SOURCES/0014.patch create mode 100644 SOURCES/0015.patch create mode 100644 SOURCES/0016.patch create mode 100644 SOURCES/0017.patch create mode 100644 SOURCES/0018.patch create mode 100644 SOURCES/0019.patch create mode 100644 SOURCES/0020.patch create mode 100644 SOURCES/0021.patch create mode 100644 SOURCES/0022.patch create mode 100644 SOURCES/0023.patch create mode 100644 SOURCES/0024.patch create mode 100644 SOURCES/0025.patch create mode 100644 SOURCES/0026.patch create mode 100644 SOURCES/0027.patch create mode 100644 SOURCES/0028.patch create mode 100644 SOURCES/0029.patch create mode 100644 SOURCES/0030.patch create mode 100644 SOURCES/0031.patch create mode 100644 SOURCES/0032.patch create mode 100644 SOURCES/0033.patch create mode 100644 SOURCES/0034.patch create mode 100644 SOURCES/0035.patch create mode 100644 SOURCES/0036.patch create mode 100644 SOURCES/0037.patch create mode 100644 SOURCES/0038.patch create mode 100644 SOURCES/0039.patch create mode 100644 SOURCES/0040.patch create mode 100644 SOURCES/0041.patch create mode 100644 SOURCES/0042.patch create mode 100644 SOURCES/0043.patch create mode 100644 SOURCES/0044.patch create mode 100644 SOURCES/0045.patch create mode 100644 SOURCES/0046.patch create mode 100644 SOURCES/0047.patch create mode 100644 SOURCES/0048.patch create mode 100644 SOURCES/0049.patch create mode 100644 SOURCES/0050.patch create mode 100644 SOURCES/0051.patch create mode 100644 SOURCES/0052.patch create mode 100644 SOURCES/0053.patch create mode 100644 SOURCES/0054.patch create mode 100644 SOURCES/0055.patch create mode 100644 SOURCES/0056.patch create mode 100644 SOURCES/0057.patch create mode 100644 SOURCES/0058.patch create mode 100644 SOURCES/0059.patch diff --git a/SOURCES/0012.patch b/SOURCES/0012.patch index 2185182..92e1758 100644 --- a/SOURCES/0012.patch +++ b/SOURCES/0012.patch @@ -83,3 +83,4 @@ index f3af4d90..18186d62 100755 inst_script "$moddir/fips.sh" /sbin/fips.sh inst_multiple sha512hmac rmmod insmod mount uname umount + diff --git a/SOURCES/0013.patch b/SOURCES/0013.patch new file mode 100644 index 0000000..b15e070 --- /dev/null +++ b/SOURCES/0013.patch @@ -0,0 +1,51 @@ +From a1435c3d535707f1d21aaf85e62175ff2bb1ad2b Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Thu, 14 Mar 2019 18:54:10 +0800 +Subject: [PATCH] fips: ensure fs module for /boot is installed + +When using dracut with --hostonly and --no-hostonly-default-device, +/boot will be inaccessible as dracut will most fs modules unless +specified. But FIPS require /boot to be accessible, and it will try +to mount it on boot. It will fail if corresponding fs module is missing. + +For most case /boot will be a simple partition, include the fs module +will be enough for FIPS to mount it. For other cases users have to pass +extra parameters by themselves. + +Suggested-by: Kenneth Dsouza +Signed-off-by: Kairui Song +--- + modules.d/01fips/module-setup.sh | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh +index 18186d62..89734a09 100755 +--- a/modules.d/01fips/module-setup.sh ++++ b/modules.d/01fips/module-setup.sh +@@ -12,7 +12,7 @@ depends() { + + # called by dracut + installkernel() { +- local _fipsmodules _mod ++ local _fipsmodules _mod _bootfstype + if [[ -f "${srcmods}/modules.fips" ]]; then + _fipsmodules="$(cat "${srcmods}/modules.fips")" + else +@@ -47,6 +47,16 @@ installkernel() { + echo "blacklist $_mod" >> "${initdir}/etc/modprobe.d/fips.conf" + fi + done ++ ++ # with hostonly_default_device fs module for /boot is not installed by default ++ if [[ $hostonly ]] && [[ "$hostonly_default_device" == "no" ]]; then ++ _bootfstype=$(find_mp_fstype /boot) ++ if [[ -n "$_bootfstype" ]]; then ++ hostonly='' instmods $_bootfstype ++ else ++ dwarning "Can't determine fs type for /boot, FIPS check may fail." ++ fi ++ fi + } + + # called by dracut + diff --git a/SOURCES/0014.patch b/SOURCES/0014.patch new file mode 100644 index 0000000..4247482 --- /dev/null +++ b/SOURCES/0014.patch @@ -0,0 +1,49 @@ +From 7c35556da4c803bbb08c96e96262e598d5c42274 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 21 Aug 2018 13:14:44 +0200 +Subject: [PATCH] network: skip already enslaved interfaces + +(cherry picked from commit f6e3b59e5ea6f52a25631557badc7f4dfabbd7ee) + +Resolves: #1625042 +--- + modules.d/35network-legacy/ifup.sh | 6 +++++- + modules.d/40network/net-lib.sh | 7 +++++++ + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh +index ea2a67ff..b4f5bf10 100755 +--- a/modules.d/35network-legacy/ifup.sh ++++ b/modules.d/35network-legacy/ifup.sh +@@ -408,7 +408,11 @@ for p in $(getargs ip=); do + esac + + # If this option isn't directed at our interface, skip it +- [ -n "$dev" ] && [ "$dev" != "$netif" ] && continue ++ if [ -n "$dev" ]; then ++ [ "$dev" != "$netif" ] && continue ++ else ++ iface_is_enslaved "$netif" && continue ++ fi + + # Store config for later use + for i in ip srv gw mask hostname macaddr mtu dns1 dns2; do +diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh +index 7b93f25e..f9569573 100755 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -745,6 +745,13 @@ iface_has_link() { + iface_has_carrier "$@" + } + ++iface_is_enslaved() { ++ local _li ++ _li=$(ip -o link show dev $1) ++ strstr "$li" " master " || return 1 ++ return 0 ++} ++ + find_iface_with_link() { + local iface_path="" iface="" + for iface_path in /sys/class/net/*; do + diff --git a/SOURCES/0015.patch b/SOURCES/0015.patch new file mode 100644 index 0000000..f79f1e7 --- /dev/null +++ b/SOURCES/0015.patch @@ -0,0 +1,24 @@ +From 4971a2c4eb4526cb88a5c9aff30c57527a746036 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 16 Jul 2019 08:27:01 +0100 +Subject: [PATCH] 01fips: add cfb cipher + +Required by FIPS standard +--- + modules.d/01fips/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh +index 89734a09..f011f15d 100755 +--- a/modules.d/01fips/module-setup.sh ++++ b/modules.d/01fips/module-setup.sh +@@ -24,7 +24,7 @@ installkernel() { + _fipsmodules+="crc32c crct10dif ghash " + + # Ciphers: +- _fipsmodules+="cipher_null des3_ede aes " ++ _fipsmodules+="cipher_null des3_ede aes cfb " + + # Modes/templates: + _fipsmodules+="ecb cbc ctr xts gcm ccm authenc hmac cmac " + diff --git a/SOURCES/0016.patch b/SOURCES/0016.patch new file mode 100644 index 0000000..57aed12 --- /dev/null +++ b/SOURCES/0016.patch @@ -0,0 +1,86 @@ +From 31116110ff0090324a568ce2aba6519a860d66b3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Thu, 11 Jul 2019 10:50:40 +0200 +Subject: [PATCH] rngd: new module running early during boot to help generating + entropy when system's default entropy sources are poor (e.g. use of SSD disks + or UEFI RNG not available) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On systems with low entropy at boot, the boot can take up to several +hours, specially when NBDE is used (e.g. clevis) which makes use of +the random number generator. + +Enabling rngd service at boot early, because dracut-initqueue runs, +enables to initialize the random number generator in a couple of seconds +instead of minutes or hours. + +Signed-off-by: Renaud Métrich +(cherry picked from commit adee5b97bc5418b6e357342bb3be20568668aa55) + +Resolves: #1726617 +--- + modules.d/06rngd/module-setup.sh | 39 +++++++++++++++++++++++++++++++++++++++ + modules.d/06rngd/rngd.service | 7 +++++++ + 2 files changed, 46 insertions(+) + +diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh +new file mode 100644 +index 00000000..43d5c2d3 +--- /dev/null ++++ b/modules.d/06rngd/module-setup.sh +@@ -0,0 +1,39 @@ ++#!/bin/bash ++# vim: set tabstop=8 shiftwidth=4 softtabstop=4 expandtab smarttab colorcolumn=80: ++# ++# Copyright (c) 2019 Red Hat, Inc. ++# Author: Renaud Métrich ++# ++# This program is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++# ++ ++depends() { ++ echo systemd ++ return 0 ++} ++ ++check() { ++ # if there's no rngd binary, no go. ++ require_binaries rngd || return 1 ++ ++ return 0 ++} ++ ++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" ++} +diff --git a/modules.d/06rngd/rngd.service b/modules.d/06rngd/rngd.service +new file mode 100644 +index 00000000..570fbedb +--- /dev/null ++++ b/modules.d/06rngd/rngd.service +@@ -0,0 +1,7 @@ ++[Unit] ++Description=Hardware RNG Entropy Gatherer Daemon ++DefaultDependencies=no ++Before=systemd-udevd.service ++ ++[Service] ++ExecStart=/usr/sbin/rngd -f + diff --git a/SOURCES/0017.patch b/SOURCES/0017.patch new file mode 100644 index 0000000..899efb3 --- /dev/null +++ b/SOURCES/0017.patch @@ -0,0 +1,22 @@ +From d86dfcd148e5d726f00b8a83eeadb11aa0017fba Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 22 Jul 2019 14:07:26 +0200 +Subject: [PATCH] dracut.spec: add 06rngd + +--- + dracut.spec | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut.spec b/dracut.spec +index de57703c..92c7f7bf 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -346,6 +346,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %{dracutlibdir}/modules.d/03rescue + %{dracutlibdir}/modules.d/04watchdog + %{dracutlibdir}/modules.d/05busybox ++%{dracutlibdir}/modules.d/06rngd + %{dracutlibdir}/modules.d/10i18n + %{dracutlibdir}/modules.d/30convertfs + %{dracutlibdir}/modules.d/45url-lib + diff --git a/SOURCES/0018.patch b/SOURCES/0018.patch new file mode 100644 index 0000000..8e21561 --- /dev/null +++ b/SOURCES/0018.patch @@ -0,0 +1,49 @@ +From 927428e6a5e90b2214ee9edf15d4eb6c0fc5c203 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Mon, 11 Mar 2019 18:44:02 +0800 +Subject: [PATCH] squash: squash systemd binary and udevadm + +systemd binary and udevadm are not needed to be outside the squash +image. Some binaries are kept outside because they are required before +mounting the image, or after umounting the image (when switching root), +or they may block umounting the image. But we are using lazy umounting, +so actually nothing will block the umount. + +Keep more binaries outside the squash image won't hurt but cost extra +memories, the idea of squash image is to save memory usage. + +So, there is no reason to keep udevadm outside, that should be a debug +left over. For systemd binary, it's running when switch root happens, +But we have lazy umounted the image and overlay, once systemd process +exec the new systemd in new root, everything will be cleared by kernel. + +Also tidy up the comment make it less confussing. + +Signed-off-by: Kairui Song +(cherry picked from commit e1e1f6e8e6747d8f32c065e267e0a57587818c9e) + +Resolves: #1691705 +--- + dracut.sh | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index e683a9bc..a0158f22 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1772,9 +1772,11 @@ if dracut_module_included "squash"; then + mv $initdir/$folder $squash_dir/$folder + done + +- # Reinstall required files, because we have moved some important folders to $squash_dir +- inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" \ +- "systemctl" "udevadm" "$systemdutildir/systemd" ++ # Reinstall required files for the squash image setup script. ++ # We have moved them inside the squashed image, but they need to be ++ # accessible before mounting the image. Also install systemctl, ++ # it's requires for switch-root, but we will umount the image before switch-root ++ inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" "systemctl" + hostonly="" instmods "loop" "squashfs" "overlay" + + for folder in "${squash_candidate[@]}"; do + diff --git a/SOURCES/0019.patch b/SOURCES/0019.patch new file mode 100644 index 0000000..6b7cac8 --- /dev/null +++ b/SOURCES/0019.patch @@ -0,0 +1,71 @@ +From b6d52b504fc7eefc3f405f75463d9e818471ee99 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Mon, 11 Mar 2019 19:46:19 +0800 +Subject: [PATCH] squash: fix and simplify required_in_root + +If required target is a symbol link, create the link then following the +link. If it's a directory, create new directory, else just move it. + +Signed-off-by: Kairui Song +(cherry picked from commit 11ce69e4bd9172cf54251ea62bb4a5ead1700fd6) + +Resolves: #1691705 +--- + dracut.sh | 42 +++++++++++++++++++----------------------- + 1 file changed, 19 insertions(+), 23 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index a0158f22..6de88b3e 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1811,30 +1811,26 @@ if dracut_module_included "squash"; then + required_in_root $(dirname $file) + fi + +- if [[ -d $_sqsh_file ]]; then +- if [[ -L $_sqsh_file ]]; then +- cp --preserve=all -P $_sqsh_file $_init_file +- else +- mkdir $_init_file +- fi ++ if [[ -L $_sqsh_file ]]; then ++ cp --preserve=all -P $_sqsh_file $_init_file ++ _sqsh_file=$(realpath $_sqsh_file 2>/dev/null) ++ if [[ -e $_sqsh_file ]] && [[ "$_sqsh_file" == "$squash_dir"* ]]; then ++ # Relative symlink ++ required_in_root ${_sqsh_file#$squash_dir/} ++ return ++ fi ++ if [[ -e $squash_dir$_sqsh_file ]]; then ++ # Absolute symlink ++ required_in_root ${_sqsh_file#/} ++ return ++ fi ++ required_in_root ${module_spec#$squash_dir/} + else +- if [[ -L $_sqsh_file ]]; then +- cp --preserve=all -P $_sqsh_file $_init_file +- _sqsh_file=$(realpath $_sqsh_file 2>/dev/null) +- if [[ -e $_sqsh_file ]] && [[ "$_sqsh_file" == "$squash_dir"* ]]; then +- # Relative symlink +- required_in_root ${_sqsh_file#$squash_dir/} +- return +- fi +- if [[ -e $squash_dir$_sqsh_file ]]; then +- # Absolute symlink +- required_in_root ${_sqsh_file#/} +- return +- fi +- required_in_root ${module_spec#$squash_dir/} +- else +- mv $_sqsh_file $_init_file +- fi ++ if [[ -d $_sqsh_file ]]; then ++ mkdir $_init_file ++ else ++ mv $_sqsh_file $_init_file ++ fi + fi + } + + diff --git a/SOURCES/0020.patch b/SOURCES/0020.patch new file mode 100644 index 0000000..64dfdff --- /dev/null +++ b/SOURCES/0020.patch @@ -0,0 +1,94 @@ +From 829ed8ef5cca250fac475ad6b0265c792c3af015 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 13 Mar 2019 17:36:53 +0800 +Subject: [PATCH] squash: also squash systemctl if switch-root is not needed + +systemctl need to be accessible on switch-root, but we unmount the +squash image on switch-root, so it will fail. systemctl depends on a lot +of libraries, squash them can save more RAM. So allow modules +(eg. kdump) to tell dracut that switch-root will be intercepted, +then we don't need to take care of that. + +Signed-off-by: Kairui Song +(cherry picked from commit 3ee0ca5eb74be5d1fbd0e6d643f6fff06234177f) + +Resolves: #1691705 +--- + dracut-init.sh | 4 ++++ + dracut.sh | 40 ++++++++++++++++++++++------------------ + 2 files changed, 26 insertions(+), 18 deletions(-) + +diff --git a/dracut-init.sh b/dracut-init.sh +index 50d23e2d..b1ac9966 100644 +--- a/dracut-init.sh ++++ b/dracut-init.sh +@@ -150,6 +150,10 @@ dracut_module_included() { + [[ " $mods_to_load $modules_loaded " == *\ $*\ * ]] + } + ++dracut_no_switch_root() { ++ >"$initdir/lib/dracut/no-switch-root" ++} ++ + if ! [[ $DRACUT_INSTALL ]]; then + DRACUT_INSTALL=$(find_binary dracut-install) + fi +diff --git a/dracut.sh b/dracut.sh +index 6de88b3e..8144a16e 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1772,24 +1772,6 @@ if dracut_module_included "squash"; then + mv $initdir/$folder $squash_dir/$folder + done + +- # Reinstall required files for the squash image setup script. +- # We have moved them inside the squashed image, but they need to be +- # accessible before mounting the image. Also install systemctl, +- # it's requires for switch-root, but we will umount the image before switch-root +- inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" "systemctl" +- hostonly="" instmods "loop" "squashfs" "overlay" +- +- for folder in "${squash_candidate[@]}"; do +- # Remove duplicated files in squashfs image, save some more space +- [[ ! -d $initdir/$folder/ ]] && continue +- for file in $(find $initdir/$folder/ -not -type d); +- do +- if [[ -e $squash_dir${file#$initdir} ]]; then +- mv $squash_dir${file#$initdir} $file +- fi +- done +- done +- + # Move some files out side of the squash image, including: + # - Files required to boot and mount the squashfs image + # - Files need to be accessable without mounting the squash image +@@ -1851,6 +1833,28 @@ if dracut_module_included "squash"; then + ln -s squash/init.sh $initdir/init + ln -s squash/shutdown.sh $initdir/shutdown + ++ # Reinstall required files for the squash image setup script. ++ # We have moved them inside the squashed image, but they need to be ++ # accessible before mounting the image. ++ inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" ++ hostonly="" instmods "loop" "squashfs" "overlay" ++ ++ # Only keep systemctl outsite if we need switch root ++ if [[ ! -f "$initdir/lib/dracut/no-switch-root" ]]; then ++ inst "systemctl" ++ fi ++ ++ for folder in "${squash_candidate[@]}"; do ++ # Remove duplicated files in squashfs image, save some more space ++ [[ ! -d $initdir/$folder/ ]] && continue ++ for file in $(find $initdir/$folder/ -not -type d); ++ do ++ if [[ -e $squash_dir${file#$initdir} ]]; then ++ mv $squash_dir${file#$initdir} $file ++ fi ++ done ++ done ++ + mksquashfs $squash_dir $squash_img -comp xz -b 64K -Xdict-size 100% &> /dev/null + + if [[ $? != 0 ]]; then + diff --git a/SOURCES/0021.patch b/SOURCES/0021.patch new file mode 100644 index 0000000..ed54a76 --- /dev/null +++ b/SOURCES/0021.patch @@ -0,0 +1,94 @@ +From 7ee74e539dba61c3765afe34426b085eff0de027 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Thu, 21 Feb 2019 13:18:37 +0800 +Subject: [PATCH] dracut: let module handling function accept optional path + option + +Let the caller pass in the module path instead of try to find the module +path everytime. This helps optimize the overall runtime. + +Test results (3 rounds) on Fedora 30 in KVM VM with 8 CPUs, 2G memory, HDD: + + $ time ./dracut.sh --local --quiet --hostonly --hostonly-cmdline --hostonly-i18n --hostonly-mode 'strict' -o 'plymouth dash resume ifcfg' --mount '/dev/mapper/fedora-root /sysroot xfs defaults' --no-hostonly-default-device -f initramfs.img + Before the commit: + real 0m11.782s | real 0m11.505s | real 0m11.958s + user 0m9.169s | user 0m9.218s | user 0m9.327s + sys 0m10.839s | sys 0m10.829s | sys 0m10.925s + + After this commit: + real 0m9.866s | real 0m9.580s | real 0m9.638s + user 0m9.048s | user 0m9.142s | user 0m9.120s + sys 0m7.411s | sys 0m7.775s | sys 0m7.745s + +Test result of building a ordinary image: + + $ time ./dracut.sh --local --quiet -f initramfs.img + Before the commit: + real 0m34.697s | real 0m34.371s | real 0m35.122s + user 0m27.608s | user 0m27.524s | user 0m27.705s + sys 0m22.341s | sys 0m22.032s | sys 0m22.246s + + After the commit: + real 0m31.914s | real 0m31.006 | real 0m31.289ss + user 0m27.315s | user 0m27.324 | user 0m27.290ss + sys 0m19.051s | sys 0m18.916 | sys 0m19.022ss + +This will have an ~2s speed up. + +Signed-off-by: Kairui Song +(cherry picked from commit 5916d31b24ad9eb21fd376929a96c459813315a1) + +Cherry-picked from: 5916d31b +Resolves: #1734047 +--- + dracut-init.sh | 4 ++++ + dracut.sh | 8 ++++---- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/dracut-init.sh b/dracut-init.sh +index b1ac9966..ab07cabf 100644 +--- a/dracut-init.sh ++++ b/dracut-init.sh +@@ -154,6 +154,10 @@ dracut_no_switch_root() { + >"$initdir/lib/dracut/no-switch-root" + } + ++dracut_module_path() { ++ echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; } ++} ++ + if ! [[ $DRACUT_INSTALL ]]; then + DRACUT_INSTALL=$(find_binary dracut-install) + fi +diff --git a/dracut.sh b/dracut.sh +index 8144a16e..f270af76 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1373,7 +1373,7 @@ do_print_cmdline() + for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do + _d_mod=${moddir##*/}; _d_mod=${_d_mod#[0-9][0-9]} + [[ ${_mods_to_print[$_d_mod]} ]] || continue +- module_cmdline "$_d_mod" ++ module_cmdline "$_d_mod" "$moddir" + done + unset moddir + } +@@ -1454,14 +1454,14 @@ for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do + dinfo "*** Including module: $_d_mod ***" + fi + if [[ $kernel_only == yes ]]; then +- module_installkernel "$_d_mod" || { ++ module_installkernel "$_d_mod" "$moddir" || { + dfatal "installkernel failed in module $_d_mod" + exit 1 + } + else +- module_install "$_d_mod" ++ module_install "$_d_mod" "$moddir" + if [[ $no_kernel != yes ]]; then +- module_installkernel "$_d_mod" || { ++ module_installkernel "$_d_mod" "$moddir" || { + dfatal "installkernel failed in module $_d_mod" + exit 1 + } + diff --git a/SOURCES/0022.patch b/SOURCES/0022.patch new file mode 100644 index 0000000..4bcd5e4 --- /dev/null +++ b/SOURCES/0022.patch @@ -0,0 +1,36 @@ +From 17cd55169c3549d85ba3e4d7e0e81c496d1b2940 Mon Sep 17 00:00:00 2001 +From: Lianbo Jiang +Date: Mon, 13 May 2019 16:09:25 +0800 +Subject: [PATCH] 99base: enable the initqueue in both 'dracut --add-device' + and 'dracut --mount' cases. + +The commit 9f3c31cd8d68 ("99base: enable initqueue if extra devices are added") +only covers 'dracut --add-device' case, but it did not cover 'dracut --mount' +case, which causes the kdump failure in the Amazon virtual machine. + +Lets make sure that the initqueue is enabled in both cases in order to wake up +the device in time. + +Reported-by: Xiao Liang +Signed-off-by: Lianbo Jiang +(cherry picked from commit e0fc62f619ba55a96179382e22f7665e969c3d42) + +Resolves: #1678094 +--- + modules.d/99base/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh +index 21523fc9..c9ead01d 100755 +--- a/modules.d/99base/module-setup.sh ++++ b/modules.d/99base/module-setup.sh +@@ -93,7 +93,7 @@ install() { + + ## save host_devs which we need bring up + if [[ $hostonly_cmdline == "yes" ]]; then +- if [[ -n $add_device ]]; then ++ if [[ -n "${host_devs[@]}" ]]; then + dracut_need_initqueue + fi + if [[ -f "$initdir/lib/dracut/need-initqueue" ]] || ! dracut_module_included "systemd"; then + diff --git a/SOURCES/0023.patch b/SOURCES/0023.patch new file mode 100644 index 0000000..e0d31d5 --- /dev/null +++ b/SOURCES/0023.patch @@ -0,0 +1,34 @@ +From 1851348709df5413a767faecdee908534baf0da1 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 12 Jun 2019 14:27:44 +0800 +Subject: [PATCH] 95fcoe: load 'libfcoe' module as a fallback + +The kernel may only enable 'libfcoe' module. Some modules like bnx2fc +provides FCoE but only depend on 'libfcoe'. Loading 'fcoe' module may +fail but the kernel do support FCoE. + +'libfcoe' will be installed as a dependency when installing block device +drivers if it's required. So no need to install it in installkernel. + +Signed-off-by: Kairui Song +(cherry picked from commit 65fe1af2eca7d0ed340520577ab861fcd695b34a) + +Resolves: #1719645 +--- + modules.d/95fcoe/parse-fcoe.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95fcoe/parse-fcoe.sh b/modules.d/95fcoe/parse-fcoe.sh +index 75cca9a5..12701cdb 100755 +--- a/modules.d/95fcoe/parse-fcoe.sh ++++ b/modules.d/95fcoe/parse-fcoe.sh +@@ -18,7 +18,7 @@ + # If it's not set we don't continue + [ -z "$fcoe" ] && return + +-[ -e /sys/bus/fcoe/ctlr_create ] || modprobe -b -a fcoe || die "FCoE requested but kernel/initrd does not support FCoE" ++[ -e /sys/bus/fcoe/ctlr_create ] || modprobe -b -a fcoe || modprobe -b -a libfcoe || die "FCoE requested but kernel/initrd does not support FCoE" + + initqueue --onetime modprobe -b -q bnx2fc + + diff --git a/SOURCES/0024.patch b/SOURCES/0024.patch new file mode 100644 index 0000000..28b2e15 --- /dev/null +++ b/SOURCES/0024.patch @@ -0,0 +1,36 @@ +From 9b2497dffb8f699ce040cdbafa967f5fe02b57b6 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 2 Aug 2019 14:26:23 +0200 +Subject: [PATCH] 90kernel-modules-extra: don't resolve symlinks before instmod + +When you install a third-party driver, you will probably end in a +situation, where the module will be in a different directory and +in $depmod_module_dir you will only have symlink. If we resolve the +symlink before we pass the module path to instmod, the dracut-install +will only include the module with its original path, but not the +symlink. Hence the module can't be automatically loaded. + +Dracut-install is clever enough to handle symlinks and will include both +the symlink and the module to the initrd. + +(cherry picked from commit d1afff43aea01c8d43817adf3ac4041dd4b9f022) + +Resolves: #1720275 +--- + modules.d/90kernel-modules-extra/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules-extra/module-setup.sh b/modules.d/90kernel-modules-extra/module-setup.sh +index c0a2b7f9..1706c822 100755 +--- a/modules.d/90kernel-modules-extra/module-setup.sh ++++ b/modules.d/90kernel-modules-extra/module-setup.sh +@@ -187,7 +187,7 @@ installkernel() + printf "^%s\.ko(\.gz|\.bz2|\.xz)?:\n" "${pathlist[@]}" \ + | (LANG=C grep -E -o -f - -- "$depmod_modules_dep" || exit 0) \ + | tr -d ':' \ +- | (cd "$depmod_module_dir" || exit; xargs -r realpath -e --) \ ++ | (cd "$depmod_module_dir" || exit; xargs -r realpath -se --) \ + | instmods || return 1 + + return 0 + diff --git a/SOURCES/0025.patch b/SOURCES/0025.patch new file mode 100644 index 0000000..664f9be --- /dev/null +++ b/SOURCES/0025.patch @@ -0,0 +1,26 @@ +From 3464297288b50a062e1094e57d46ad21e51b351b Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 6 Aug 2019 10:54:09 +0200 +Subject: [PATCH] net-lib: fix typo $li -> $_li + +(cherry picked from commit cd97d8d2c0646b95aee47efd5eee39f29d617a67) + +Resolves: #1625042 +--- + modules.d/40network/net-lib.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh +index f9569573..ad78d225 100755 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -748,7 +748,7 @@ iface_has_link() { + iface_is_enslaved() { + local _li + _li=$(ip -o link show dev $1) +- strstr "$li" " master " || return 1 ++ strstr "$_li" " master " || return 1 + return 0 + } + + diff --git a/SOURCES/0026.patch b/SOURCES/0026.patch new file mode 100644 index 0000000..2c2c621 --- /dev/null +++ b/SOURCES/0026.patch @@ -0,0 +1,38 @@ +From 95bbcaa8550534f03b332487ef3a2ed6650424fe Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Wed, 21 Aug 2019 11:16:07 +0200 +Subject: [PATCH] git2spec: avoid malforming of SHA-1 hashes + +When a SHA-1 hash of a specific commit is used as a tag, the regex +shenanigans later in the script can (and will) corrupt it in certain +cases. + +e.g.: +$ perl -e ' +$tag="6e8cd92261577230daa1098f7e05ec198c3c4281"; +$tag=~s/[^0-9]+?([0-9]+)/$1/; +print("$tag\n"); +' +68cd92261577230daa1098f7e05ec198c3c4281 + +(Notice the missing 'e') + +Let's fix this by limiting the regex's scope to a non-SHA-1 tags only. +--- + git2spec.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/git2spec.pl b/git2spec.pl +index 7853791e..9ddc3805 100755 +--- a/git2spec.pl ++++ b/git2spec.pl +@@ -37,7 +37,7 @@ $tag=`git describe --abbrev=0 --tags` if not defined $tag; + chomp($tag); + my @patches=&create_patches($tag, $pdir); + my $num=$#patches + 2; +-$tag=~s/[^0-9]+?([0-9]+)/$1/; ++$tag=~s/[^0-9]+?([0-9]+)/$1/ if $tag !~ /\b[0-9a-f]{5,40}\b/; + my $release="$num.git$datestr"; + $release="1" if $num == 1; + + diff --git a/SOURCES/0027.patch b/SOURCES/0027.patch new file mode 100644 index 0000000..cf5627e --- /dev/null +++ b/SOURCES/0027.patch @@ -0,0 +1,25 @@ +From d3f542cc9d0135a408be7ba995b8adad80bcd606 Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Wed, 21 Aug 2019 14:06:29 +0200 +Subject: [PATCH] travis: fetch only tags + +The original `git pull` would try to pull & merge changes from the +master branch, which breaks CI runs on PRs based on non-master branches +--- + .travis.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.travis.yml b/.travis.yml +index f913db57..efb0df1b 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -29,7 +29,7 @@ before_script: + sudo modprobe kvm-intel nested=1 || : + sudo modprobe kvm-amd nested=1 || : + dmesg | tail || : +- - git pull --depth=100 ++ - git fetch --tags --unshallow + - | + git describe --abbrev=0 --tags || : + git describe --tags || : + diff --git a/SOURCES/0028.patch b/SOURCES/0028.patch new file mode 100644 index 0000000..0203f97 --- /dev/null +++ b/SOURCES/0028.patch @@ -0,0 +1,98 @@ +From e3b2b02c7f5b4e9f1d2a3cfe8749534959e29e3e Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Fri, 21 Jun 2019 18:39:48 +0200 +Subject: [PATCH] fs-lib: drop a bashism + +Bash 5 apparently longer propagates variable assignments to local variables +in front of function calls when in POSIX mode: + + [lkundrak@demiurge ~]$ cat feh.sh + print_VAR () { + echo "$VAR"; + } + + testfunc () { + local VAR="OLD" + VAR=NEW print_VAR + } + + testfunc + [lkundrak@demiurge ~]$ bash4 --posix feh.sh + NEW + [lkundrak@demiurge ~]$ bash5 --posix feh.sh + OLD + [lkundrak@demiurge ~]$ bash5 feh.sh + NEW + [lkundrak@demiurge ~]$ + +It works the way it did in Bash 4 in non-POSIX mode, for external programs, +or for non-local variables. Don't ask me why -- it's probably some +compatibility thing for some sad old people. + +However, this precisely happens when fsck_single() is calling into the +fsck_drv_com(), assigned to _drv by fsck_able(). That ruins the +TEST-70-BONDBRIDGETEAMVLAN test's server and probably more. + +Let's pass the fsck driver binary via the function argument instead. It's +less messy anyway. + +(cherry picked from commit 43c8c4ce0471abbb8c0fc4b8be2515cebc636030) +--- + modules.d/99fs-lib/fs-lib.sh | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh +index d39ca1b7..11e795d9 100755 +--- a/modules.d/99fs-lib/fs-lib.sh ++++ b/modules.d/99fs-lib/fs-lib.sh +@@ -44,22 +44,22 @@ fsck_able() { + ;; + ext?) + type e2fsck >/dev/null 2>&1 && +- _drv="_drv=e2fsck fsck_drv_com" && ++ _drv="fsck_drv_com e2fsck" && + return 0 + ;; + f2fs) + type fsck.f2fs >/dev/null 2>&1 && +- _drv="_drv=fsck.f2fs fsck_drv_com" && ++ _drv="fsck_drv_com fsck.f2fs" && + return 0 + ;; + jfs) + type jfs_fsck >/dev/null 2>&1 && +- _drv="_drv=jfs_fsck fsck_drv_com" && ++ _drv="fsck_drv_com jfs_fsck" && + return 0 + ;; + reiserfs) + type reiserfsck >/dev/null 2>&1 && +- _drv="_drv=reiserfsck fsck_drv_com" && ++ _drv="fsck_drv_com reiserfsck" && + return 0 + ;; + btrfs) +@@ -70,12 +70,12 @@ fsck_able() { + ;; + nfs*) + # nfs can be a nop, returning success +- _drv="_drv=none :" && ++ _drv=":" && + return 0 + ;; + *) + type fsck >/dev/null 2>&1 && +- _drv="_drv=fsck fsck_drv_std" && ++ _drv="fsck_drv_std fsck" && + return 0 + ;; + esac +@@ -97,6 +97,7 @@ fsck_drv_btrfs() { + + # common code for checkers that follow usual subset of options and return codes + fsck_drv_com() { ++ local _drv="$1" + local _ret + local _out + + diff --git a/SOURCES/0029.patch b/SOURCES/0029.patch new file mode 100644 index 0000000..b80d988 --- /dev/null +++ b/SOURCES/0029.patch @@ -0,0 +1,79 @@ +From e671c3a06a7e58461d4e9c9f3546cf6eac809300 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 4 Dec 2018 10:27:17 +0100 +Subject: [PATCH] 95iscsi/module-setup.sh: do not require 'hostname' anymore + +(cherry picked from commit ebe1821635dd99f07c817179ee5358d27aab53c5) + +[lkundrak@v3.sk: fixes TEST-30 that fails with: dracut: dracut module +'iscsi' will not be installed, because command 'hostname' could not be +found!] +--- + modules.d/40network/netroot.sh | 2 +- + modules.d/95iscsi/module-setup.sh | 4 ++-- + modules.d/98dracut-systemd/dracut-cmdline.sh | 2 +- + modules.d/99base/init.sh | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh +index 207364cd..654cfc72 100755 +--- a/modules.d/40network/netroot.sh ++++ b/modules.d/40network/netroot.sh +@@ -66,7 +66,7 @@ if [ -z "$2" ]; then + + # Check: do we really know how to handle (net)root? + [ -z "$root" ] && die "No or empty root= argument" +- [ -z "$rootok" ] && die "Don't know how to handle 'root=$root'" ++ [ -z "$rootok" ] && die "X2 Don't know how to handle 'root=$root'" + + handler=${netroot%%:*} + handler=${handler%%4} +diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh +index 79af4a47..f6f3520d 100755 +--- a/modules.d/95iscsi/module-setup.sh ++++ b/modules.d/95iscsi/module-setup.sh +@@ -4,7 +4,7 @@ + check() { + local _rootdev + # If our prerequisites are not met, fail anyways. +- require_binaries hostname iscsi-iname iscsiadm iscsid || return 1 ++ require_binaries iscsi-iname iscsiadm iscsid || return 1 + + # If hostonly was requested, fail the check if we are not actually + # booting from root. +@@ -206,7 +206,7 @@ cmdline() { + install() { + inst_multiple -o iscsiuio + inst_libdir_file 'libgcc_s.so*' +- inst_multiple umount hostname iscsi-iname iscsiadm iscsid ++ inst_multiple umount iscsi-iname iscsiadm iscsid + + inst_multiple -o \ + $systemdsystemunitdir/iscsid.socket \ +diff --git a/modules.d/98dracut-systemd/dracut-cmdline.sh b/modules.d/98dracut-systemd/dracut-cmdline.sh +index bff9435a..89c52d13 100755 +--- a/modules.d/98dracut-systemd/dracut-cmdline.sh ++++ b/modules.d/98dracut-systemd/dracut-cmdline.sh +@@ -76,7 +76,7 @@ case "${root}${root_unset}" in + esac + + [ -z "${root}${root_unset}" ] && die "Empty root= argument" +-[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'" ++[ -z "$rootok" ] && die "X1 Don't know how to handle 'root=$root'" + + export root rflags fstype netroot NEWROOT + +diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh +index e4f7cff1..3e20069f 100755 +--- a/modules.d/99base/init.sh ++++ b/modules.d/99base/init.sh +@@ -136,7 +136,7 @@ getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Br + source_hook cmdline + + [ -z "$root" ] && die "No or empty root= argument" +-[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'" ++[ -z "$rootok" ] && die "X0 Don't know how to handle 'root=$root'" + + export root rflags fstype netroot NEWROOT + + diff --git a/SOURCES/0030.patch b/SOURCES/0030.patch new file mode 100644 index 0000000..f0a13c5 --- /dev/null +++ b/SOURCES/0030.patch @@ -0,0 +1,24 @@ +From 50192de38d756203a414405e2d7552e89b1c0423 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 4 Dec 2018 10:06:12 +0100 +Subject: [PATCH] test/test-functions: correctly move server.log + +(cherry picked from commit 712f471ebfae70fd71c0c740e9a3e120464ca7e7) +--- + test/test-functions | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/test-functions b/test/test-functions +index a6254ec7..51b3df80 100644 +--- a/test/test-functions ++++ b/test/test-functions +@@ -80,7 +80,7 @@ while (($# > 0)); do + ret=$? + test_cleanup + if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then +- mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log ++ mv "$TESTDIR"/server.log ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log + fi + rm -fr -- "$TESTDIR" + rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID} + diff --git a/SOURCES/0031.patch b/SOURCES/0031.patch new file mode 100644 index 0000000..b0741b9 --- /dev/null +++ b/SOURCES/0031.patch @@ -0,0 +1,43 @@ +From bf69beb6f3824b1ebed221c8255d1f5c9efd136a Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Wed, 26 Jun 2019 16:42:04 +0200 +Subject: [PATCH] test/TEST-17-LVM-THIN: fail setup if we run out of space in + the thin pool + +This condition is rather difficult to detect -- the writes will just remain +queued and get lost on shutdown, resulting in a corrupt filesystem. + +(cherry picked from commit 91c15babdf0215df59325f3086acfdf0ba247bfa) +--- + test/TEST-17-LVM-THIN/create-root.sh | 5 +++-- + test/TEST-17-LVM-THIN/test.sh | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/test/TEST-17-LVM-THIN/create-root.sh b/test/TEST-17-LVM-THIN/create-root.sh +index 117d1341..0e52f879 100755 +--- a/test/TEST-17-LVM-THIN/create-root.sh ++++ b/test/TEST-17-LVM-THIN/create-root.sh +@@ -27,6 +27,7 @@ cp -a -t /sysroot /source/* && \ + umount /sysroot && \ + sleep 1 && \ + lvm lvchange -a n /dev/dracut/root && \ +-sleep 1 && \ +-echo "dracut-root-block-created" >/dev/sda1 ++sleep 1 ++dmsetup status |grep out_of_data_space || \ ++ echo "dracut-root-block-created" >/dev/sda1 + poweroff -f +diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh +index af349246..1b36a216 100755 +--- a/test/TEST-17-LVM-THIN/test.sh ++++ b/test/TEST-17-LVM-THIN/test.sh +@@ -56,7 +56,7 @@ test_setup() { + ( + export initdir=$TESTDIR/overlay + . $basedir/dracut-init.sh +- inst_multiple sfdisk mke2fs poweroff cp umount ++ inst_multiple sfdisk mke2fs poweroff cp umount grep dmsetup + inst_hook initqueue 01 ./create-root.sh + inst_hook initqueue/finished 01 ./finished-false.sh + inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules + diff --git a/SOURCES/0032.patch b/SOURCES/0032.patch new file mode 100644 index 0000000..b849baf --- /dev/null +++ b/SOURCES/0032.patch @@ -0,0 +1,66 @@ +From 0f0b8c8f90cbcd56140e85b9997deda906c71118 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Tue, 25 Jun 2019 17:39:57 +0200 +Subject: [PATCH] test/TEST-14-IMSM: detect failure to compose the test setup + root + +The dracut-root-block-created line should not be created if we fail to copy +in the required files to sysroot. Let's turn on -e to trap failures and +poweroff on them, like some other tests do. + +Also remove the &&. Not only it is unnecessary with -e, but defeats it. +From bash(1): + + The shell does not exit if the command that fails is [...] part of any + command executed in a && or || list except the command following the + final && or || [...] + +(cherry picked from commit c27ed38bb2986d31b08257782ce2b24a80415c6c) +--- + test/TEST-14-IMSM/create-root.sh | 23 +++++++++++++---------- + 1 file changed, 13 insertions(+), 10 deletions(-) + +diff --git a/test/TEST-14-IMSM/create-root.sh b/test/TEST-14-IMSM/create-root.sh +index f637ec88..a0324c6f 100755 +--- a/test/TEST-14-IMSM/create-root.sh ++++ b/test/TEST-14-IMSM/create-root.sh +@@ -1,4 +1,7 @@ + #!/bin/sh ++ ++trap 'poweroff -f' EXIT ++ + # don't let udev and this script step on eachother's toes + for x in 61-dmraid-imsm.rules 64-md-raid.rules 65-md-incremental-imsm.rules 65-md-incremental.rules 64-lvm.rules 70-mdadm.rules 99-mount-rules; do + rm -f -- "/etc/udev/rules.d/$x" +@@ -55,20 +58,20 @@ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 \ + # wait for the array to finish initailizing, otherwise this sometimes fails + # randomly. + mdadm -W /dev/md0 ++set -e + lvm pvcreate -ff -y /dev/md0 +-lvm vgcreate dracut /dev/md0 && \ +-lvm lvcreate -l 100%FREE -n root dracut && \ +-lvm vgchange -ay && \ +-mke2fs -L root /dev/dracut/root && \ +-mkdir -p /sysroot && \ +-mount /dev/dracut/root /sysroot && \ +-cp -a -t /sysroot /source/* && \ +-umount /sysroot && \ +-lvm lvchange -a n /dev/dracut/root && \ ++lvm vgcreate dracut /dev/md0 ++lvm lvcreate -l 100%FREE -n root dracut ++lvm vgchange -ay ++mke2fs -L root /dev/dracut/root ++mkdir -p /sysroot ++mount /dev/dracut/root /sysroot ++cp -a -t /sysroot /source/* ++umount /sysroot ++lvm lvchange -a n /dev/dracut/root + udevadm settle + mdadm --detail --export /dev/md0 |grep -F MD_UUID > /tmp/mduuid + . /tmp/mduuid + echo "MD_UUID=$MD_UUID" + { echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID;} > /dev/sda + mdadm --wait-clean /dev/md0 +-poweroff -f + diff --git a/SOURCES/0033.patch b/SOURCES/0033.patch new file mode 100644 index 0000000..e45f147 --- /dev/null +++ b/SOURCES/0033.patch @@ -0,0 +1,346 @@ +From e35e43c1c28a8935660fe72650614e5dc1defb65 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Wed, 26 Jun 2019 11:47:21 +0200 +Subject: [PATCH] test: tell systemd to reboot on fatal errors + +Otherwise systemd would freeze execution, causing the test to time out +instead of failing fast. + +(cherry picked from commit 7934c6f918de2e82d0df5da557c5792c4fb7b798) +--- + test/TEST-01-BASIC/test.sh | 2 +- + test/TEST-02-SYSTEMD/test.sh | 2 +- + test/TEST-03-USR-MOUNT/test.sh | 2 +- + test/TEST-04-FULL-SYSTEMD/test.sh | 2 +- + test/TEST-10-RAID/test.sh | 2 +- + test/TEST-11-LVM/test.sh | 2 +- + test/TEST-12-RAID-DEG/test.sh | 2 +- + test/TEST-13-ENC-RAID-LVM/test.sh | 6 +++--- + test/TEST-14-IMSM/test.sh | 2 +- + test/TEST-15-BTRFSRAID/test.sh | 2 +- + test/TEST-16-DMSQUASH/test.sh | 2 +- + test/TEST-17-LVM-THIN/test.sh | 2 +- + test/TEST-20-NFS/test.sh | 4 ++-- + test/TEST-30-ISCSI/test.sh | 4 ++-- + test/TEST-31-ISCSI-MULTI/test.sh | 4 ++-- + test/TEST-40-NBD/test.sh | 4 ++-- + test/TEST-50-MULTINIC/test.sh | 4 ++-- + test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 6 +++--- + 18 files changed, 27 insertions(+), 27 deletions(-) + +diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh +index ed2ae5de..ca4a8288 100755 +--- a/test/TEST-01-BASIC/test.sh ++++ b/test/TEST-01-BASIC/test.sh +@@ -15,7 +15,7 @@ test_run() { + -net none \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 root=LABEL=dracut rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=LABEL=dracut rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing || return 1 + grep -F -m 1 -q dracut-root-block-success $TESTDIR/result || return 1 + } +diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh +index 8c5eb168..848021e5 100755 +--- a/test/TEST-02-SYSTEMD/test.sh ++++ b/test/TEST-02-SYSTEMD/test.sh +@@ -11,7 +11,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext3 || return 1 + } +diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh +index 42c0da65..5d5ec8f8 100755 +--- a/test/TEST-03-USR-MOUNT/test.sh ++++ b/test/TEST-03-USR-MOUNT/test.sh +@@ -22,7 +22,7 @@ client_run() { + -net none \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 root=LABEL=dracut $client_opts quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + + if (($? != 0)); then +diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh +index 97528e4f..f65f30f2 100755 +--- a/test/TEST-04-FULL-SYSTEMD/test.sh ++++ b/test/TEST-04-FULL-SYSTEMD/test.sh +@@ -23,7 +23,7 @@ client_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=LABEL=dracut $client_opts rd.retry=3 console=ttyS0,115200n81 selinux=0 $DEBUGOUT rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts rd.retry=3 console=ttyS0,115200n81 selinux=0 $DEBUGOUT rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + + if (($? != 0)); then +diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh +index 444126b2..0beb26c3 100755 +--- a/test/TEST-10-RAID/test.sh ++++ b/test/TEST-10-RAID/test.sh +@@ -13,7 +13,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=/dev/dracut/root rd.auto rw rd.retry=10 console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rd.auto rw rd.retry=10 console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $DISKIMAGE || return 1 + } +diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh +index 5c105e01..a907c4b1 100755 +--- a/test/TEST-11-LVM/test.sh ++++ b/test/TEST-11-LVM/test.sh +@@ -12,7 +12,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1 + } +diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh +index 4e381d84..c82cde1e 100755 +--- a/test/TEST-12-RAID-DEG/test.sh ++++ b/test/TEST-12-RAID-DEG/test.sh +@@ -20,7 +20,7 @@ client_run() { + -drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img.new \ + -net none \ + -no-reboot \ +- -append "panic=1 $* systemd.log_target=kmsg loglevel=7 root=LABEL=root rw rd.retry=20 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.debug rd.shell=0 $DEBUGFAIL " \ ++ -append "panic=1 systemd.crash_reboot $* systemd.log_target=kmsg loglevel=7 root=LABEL=root rw rd.retry=20 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.debug rd.shell=0 $DEBUGFAIL " \ + -initrd $TESTDIR/initramfs.testing + if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then + echo "CLIENT TEST END: $@ [FAIL]" +diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh +index 76ec36b3..99324ce9 100755 +--- a/test/TEST-13-ENC-RAID-LVM/test.sh ++++ b/test/TEST-13-ENC-RAID-LVM/test.sh +@@ -20,7 +20,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=/dev/dracut/root rw rd.auto rd.retry=20 console=ttyS0,115200n81 selinux=0 rd.debug rootwait $LUKSARGS rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto rd.retry=20 console=ttyS0,115200n81 selinux=0 rd.debug rootwait $LUKSARGS rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1 + echo "CLIENT TEST END: [OK]" +@@ -34,7 +34,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=/dev/dracut/root rw quiet rd.auto rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1 + echo "CLIENT TEST END: [OK]" +@@ -48,7 +48,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=/dev/dracut/root rw quiet rd.auto rd.retry=10 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL rd.luks.uuid=failme" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=10 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL rd.luks.uuid=failme" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img && return 1 + echo "CLIENT TEST END: [OK]" +diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh +index 8ebc285a..ed60f052 100755 +--- a/test/TEST-14-IMSM/test.sh ++++ b/test/TEST-14-IMSM/test.sh +@@ -16,7 +16,7 @@ client_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 $* root=LABEL=root rw debug rd.retry=5 rd.debug console=ttyS0,115200n81 selinux=0 rd.info rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot $* root=LABEL=root rw debug rd.retry=5 rd.debug console=ttyS0,115200n81 selinux=0 rd.info rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then + echo "CLIENT TEST END: $@ [FAIL]" +diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh +index 02cb4976..dda76672 100755 +--- a/test/TEST-15-BTRFSRAID/test.sh ++++ b/test/TEST-15-BTRFSRAID/test.sh +@@ -15,7 +15,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $MARKER_DISKIMAGE || return 1 + } +diff --git a/test/TEST-16-DMSQUASH/test.sh b/test/TEST-16-DMSQUASH/test.sh +index 45d8c4c0..65d5bdbb 100755 +--- a/test/TEST-16-DMSQUASH/test.sh ++++ b/test/TEST-16-DMSQUASH/test.sh +@@ -23,7 +23,7 @@ test_run() { + -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=live:CDLABEL=LiveCD live rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=live:CDLABEL=LiveCD live rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \ + -initrd "$TESTDIR"/initramfs.testing + + # mediacheck test with qemu GUI +diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh +index 1b36a216..c13e9063 100755 +--- a/test/TEST-17-LVM-THIN/test.sh ++++ b/test/TEST-17-LVM-THIN/test.sh +@@ -12,7 +12,7 @@ test_run() { + -m 512M -smp 2 -nographic \ + -net none \ + -no-reboot \ +- -append "panic=1 root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1 + } +diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh +index e942745a..4ad7fd77 100755 +--- a/test/TEST-20-NFS/test.sh ++++ b/test/TEST-20-NFS/test.sh +@@ -22,7 +22,7 @@ run_server() { + ${SERIAL:--serial file:"$TESTDIR"/server.log} \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 rd.debug loglevel=77 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \ ++ -append "panic=1 systemd.crash_reboot rd.debug loglevel=77 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \ + -initrd $TESTDIR/initramfs.server \ + -pidfile $TESTDIR/server.pid -daemonize || return 1 + sudo chmod 644 $TESTDIR/server.pid || return 1 +@@ -57,7 +57,7 @@ client_test() { + -net socket,connect=127.0.0.1:12320 \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.debug rd.retry=10 rd.info quiet ro console=ttyS0,115200n81 selinux=0" \ ++ -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.debug rd.retry=10 rd.info quiet ro console=ttyS0,115200n81 selinux=0" \ + -initrd $TESTDIR/initramfs.testing + + if [[ $? -ne 0 ]] || ! grep -F -m 1 -q nfs-OK $TESTDIR/client.img; then +diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh +index f6cc56d5..d5a6ba58 100755 +--- a/test/TEST-30-ISCSI/test.sh ++++ b/test/TEST-30-ISCSI/test.sh +@@ -26,7 +26,7 @@ run_server() { + -net nic,macaddr=52:54:00:12:34:57,model=e1000 \ + -net socket,listen=127.0.0.1:12330 \ + -no-reboot \ +- -append "panic=1 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \ + -initrd $TESTDIR/initramfs.server \ + -pidfile $TESTDIR/server.pid -daemonize || return 1 + sudo chmod 644 $TESTDIR/server.pid || return 1 +@@ -51,7 +51,7 @@ run_client() { + -net nic,macaddr=52:54:00:12:34:01,model=e1000 \ + -net socket,connect=127.0.0.1:12330 \ + -no-reboot \ +- -append "panic=1 rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \ ++ -append "panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \ + -initrd $TESTDIR/initramfs.testing + if ! grep -F -m 1 -q iscsi-OK $TESTDIR/client.img; then + echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]" +diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh +index 5c38249c..20db2451 100755 +--- a/test/TEST-31-ISCSI-MULTI/test.sh ++++ b/test/TEST-31-ISCSI-MULTI/test.sh +@@ -26,7 +26,7 @@ run_server() { + -net nic,macaddr=52:54:00:12:34:57,model=e1000 \ + -net socket,listen=127.0.0.1:12331 \ + -no-reboot \ +- -append "panic=1 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \ + -initrd $TESTDIR/initramfs.server \ + -pidfile $TESTDIR/server.pid -daemonize || return 1 + sudo chmod 644 $TESTDIR/server.pid || return 1 +@@ -51,7 +51,7 @@ run_client() { + -net nic,macaddr=52:54:00:12:34:01,model=e1000 \ + -net socket,connect=127.0.0.1:12331 \ + -no-reboot \ +- -append "panic=1 rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \ ++ -append "panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \ + -initrd $TESTDIR/initramfs.testing + if ! grep -F -m 1 -q iscsi-OK $TESTDIR/client.img; then + echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]" +diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh +index 12736a15..19ec5b0e 100755 +--- a/test/TEST-40-NBD/test.sh ++++ b/test/TEST-40-NBD/test.sh +@@ -28,7 +28,7 @@ run_server() { + ${SERIAL:+-serial "$SERIAL"} \ + ${SERIAL:--serial file:"$TESTDIR"/server.log} \ + -no-reboot \ +- -append "panic=1 root=/dev/sda rootfstype=ext2 rw quiet console=ttyS0,115200n81 selinux=0" \ ++ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext2 rw quiet console=ttyS0,115200n81 selinux=0" \ + -initrd $TESTDIR/initramfs.server -pidfile $TESTDIR/server.pid -daemonize || return 1 + sudo chmod 644 $TESTDIR/server.pid || return 1 + +@@ -65,7 +65,7 @@ client_test() { + -net nic,macaddr=$mac,model=e1000 \ + -net socket,connect=127.0.0.1:12340 \ + -no-reboot \ +- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.auto rd.info rd.retry=10 ro console=ttyS0,115200n81 selinux=0 " \ ++ -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.auto rd.info rd.retry=10 ro console=ttyS0,115200n81 selinux=0 " \ + -initrd $TESTDIR/initramfs.testing + + if [[ $? -ne 0 ]] || ! grep -F -m 1 -q nbd-OK $TESTDIR/flag.img; then +diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh +index 495a66f2..ff2961dc 100755 +--- a/test/TEST-50-MULTINIC/test.sh ++++ b/test/TEST-50-MULTINIC/test.sh +@@ -23,7 +23,7 @@ run_server() { + ${SERIAL:--serial file:"$TESTDIR"/server.log} \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \ ++ -append "panic=1 systemd.crash_reboot loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \ + -initrd "$TESTDIR"/initramfs.server \ + -pidfile "$TESTDIR"/server.pid -daemonize || return 1 + +@@ -63,7 +63,7 @@ client_test() { + -device e1000,netdev=n2,mac=52:54:00:12:34:99 \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \ ++ -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \ + -initrd "$TESTDIR"/initramfs.testing + + { read OK; read IFACES; } < "$TESTDIR"/client.img +diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh +index 8c11a7d3..5618baee 100755 +--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh ++++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh +@@ -31,7 +31,7 @@ run_server() { + ${SERIAL:--serial file:"$TESTDIR"/server.log} \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \ ++ -append "panic=1 systemd.crash_reboot loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \ + -initrd "$TESTDIR"/initramfs.server \ + -pidfile "$TESTDIR"/server.pid -daemonize || return 1 + chmod 644 -- "$TESTDIR"/server.pid || return 1 +@@ -79,7 +79,7 @@ client_test() { + $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \ ++ -append "panic=1 systemd.crash_reboot $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \ + -initrd "$TESTDIR"/initramfs.testing + else + $testdir/run-qemu \ +@@ -95,7 +95,7 @@ client_test() { + -net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \ + -watchdog i6300esb -watchdog-action poweroff \ + -no-reboot \ +- -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \ ++ -append "panic=1 systemd.crash_reboot $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \ + -initrd "$TESTDIR"/initramfs.testing + fi + + diff --git a/SOURCES/0034.patch b/SOURCES/0034.patch new file mode 100644 index 0000000..f9f8d59 --- /dev/null +++ b/SOURCES/0034.patch @@ -0,0 +1,229 @@ +From a34b1baa6ca45b420399ec4cefe3cfe225c14dcf Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Tue, 11 Jun 2019 09:56:13 +0200 +Subject: [PATCH] test/{10,12,13,14,17,30,31}: increase the disk sizes + +On Fedora 30 the paritition sizes turn out to be too small again: + + + mkdir -p /sysroot + + mount /dev/dracut/root /sysroot + + cp -a -t /sysroot /source/bin /source/dev /source/etc /source/lib /source/lib64 /source/proc /source/root /source/sbin /source/sys /source/tmp /source/usr /source/var + cp: error writing '/sysroot/usr/lib64/libkrb5.so.3.3': No space left on device + cp: error writing '/sysroot/usr/lib64/libkrb5support.so.0.1': No space left on device + +It turns out that there has been quite some size increase in some libraries, +notably glibc, though not all -- some even shrunk, ruling out a toolchain +problem. Here's are files over 1M we install on Fedora 30: + + f29 f30 + 2.7M => 6.4M /usr/lib64/{libc-2.28.so => libc-2.29.so} + 3.1M => 6.0M /usr/lib64/libcrypto.so.1.1.1c + 2.0M => 3.5M /usr/lib64/{libm-2.28.so => libm-2.29.so} + 2.9M => 2.8M /usr/lib/systemd/{libsystemd-shared-239.so => libsystemd-shared-241.so} + 1.7M => 2.5M /usr/lib64/libunistring.so.2.1.0 + 2.3M => 2.4M /usr/lib64/bind9-export/libdns-export.so.1105.0.0 + 1.2M => 2.1M /usr/bin/bash + 1.1M => 1.4M /usr/lib64/libkrb5.so.3.3 + 1.2M => 1.4M /usr/lib64/libgcrypt.so.20.2.4 + 612K => 1.1M /usr/lib64/libssl.so.1.1.1c + +This increases the image sizes to accomodate for this. There's probably +little else we can do. + +(cherry picked from commit e318ba30fbd84d510a5bbb071d868e523d965869) +--- + test/TEST-10-RAID/create-root.sh | 6 +++--- + test/TEST-10-RAID/test.sh | 2 +- + test/TEST-12-RAID-DEG/test.sh | 6 +++--- + test/TEST-13-ENC-RAID-LVM/create-root.sh | 6 +++--- + test/TEST-13-ENC-RAID-LVM/test.sh | 2 +- + test/TEST-14-IMSM/create-root.sh | 6 +++--- + test/TEST-14-IMSM/test.sh | 4 ++-- + test/TEST-17-LVM-THIN/create-root.sh | 8 ++++---- + test/TEST-17-LVM-THIN/test.sh | 2 +- + test/TEST-30-ISCSI/test.sh | 6 +++--- + test/TEST-31-ISCSI-MULTI/test.sh | 6 +++--- + 11 files changed, 27 insertions(+), 27 deletions(-) + +diff --git a/test/TEST-10-RAID/create-root.sh b/test/TEST-10-RAID/create-root.sh +index 7b5f2a76..af4cac0d 100755 +--- a/test/TEST-10-RAID/create-root.sh ++++ b/test/TEST-10-RAID/create-root.sh +@@ -8,9 +8,9 @@ udevadm control --reload + # save a partition at the beginning for future flagging purposes + sfdisk /dev/sda <keyfile +diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh +index 99324ce9..9ffe24b1 100755 +--- a/test/TEST-13-ENC-RAID-LVM/test.sh ++++ b/test/TEST-13-ENC-RAID-LVM/test.sh +@@ -59,7 +59,7 @@ test_run() { + test_setup() { + # Create the blank file to use as a root filesystem + rm -f -- $TESTDIR/root.ext2 +- dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=80 ++ dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=134 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-14-IMSM/create-root.sh b/test/TEST-14-IMSM/create-root.sh +index a0324c6f..0d10945b 100755 +--- a/test/TEST-14-IMSM/create-root.sh ++++ b/test/TEST-14-IMSM/create-root.sh +@@ -32,9 +32,9 @@ sfdisk -g /dev/mapper/isw*Test0 + # save a partition at the beginning for future flagging purposes + sfdisk --no-reread /dev/mapper/isw*Test0 < +Date: Thu, 27 Jun 2019 16:20:32 +0200 +Subject: [PATCH] travis: run TEST-14-IMSM on Fedora 29 + +Systemd in Fedora 30 is broken at the moment. +Fix: https://github.com/systemd/systemd/pull/12872/ + +(cherry picked from commit 7a2503ab8cec9473ad6dacf4f48b17344219f3c0) +--- + .travis.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.travis.yml b/.travis.yml +index efb0df1b..de0af438 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -19,7 +19,7 @@ env: + - IMAGE=latest TESTS=10 + - IMAGE=latest TESTS=11 + - IMAGE=latest TESTS=13 +- - IMAGE=latest TESTS=14 ++ - IMAGE=29 TESTS=14 + - IMAGE=latest TESTS=15 + - IMAGE=latest TESTS=17 + + diff --git a/SOURCES/0036.patch b/SOURCES/0036.patch new file mode 100644 index 0000000..4e3f921 --- /dev/null +++ b/SOURCES/0036.patch @@ -0,0 +1,27 @@ +From c60f4fc027272c221a887128070ac89547b6ecc3 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Thu, 27 Jun 2019 16:22:04 +0200 +Subject: [PATCH] travis: run TEST-13-ENC-RAID-LVM on Fedora 29 + +Systemd in Fedora 30 is broken at the moment. +Fix: https://github.com/systemd/systemd/pull/12897 + +(cherry picked from commit 8238f41b34777c3c75b03a9b598d4b9e1c7bf911) +--- + .travis.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.travis.yml b/.travis.yml +index de0af438..364078cf 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -18,7 +18,7 @@ env: + - IMAGE=latest TESTS=04 + - IMAGE=latest TESTS=10 + - IMAGE=latest TESTS=11 +- - IMAGE=latest TESTS=13 ++ - IMAGE=29 TESTS=13 + - IMAGE=29 TESTS=14 + - IMAGE=latest TESTS=15 + - IMAGE=latest TESTS=17 + diff --git a/SOURCES/0037.patch b/SOURCES/0037.patch new file mode 100644 index 0000000..5d067a6 --- /dev/null +++ b/SOURCES/0037.patch @@ -0,0 +1,53 @@ +From d8f0e52ac7d05c364ca24d2058c970e5e03f82ff Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Fri, 30 Aug 2019 16:16:51 +0200 +Subject: [PATCH] all: remove debugging leftovers + +Accidentally folded into commit e671c3a06a7e5 ('95iscsi/module-setup.sh: +do not require 'hostname' anymore'). +--- + modules.d/40network/netroot.sh | 2 +- + modules.d/98dracut-systemd/dracut-cmdline.sh | 2 +- + modules.d/99base/init.sh | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh +index 654cfc72..207364cd 100755 +--- a/modules.d/40network/netroot.sh ++++ b/modules.d/40network/netroot.sh +@@ -66,7 +66,7 @@ if [ -z "$2" ]; then + + # Check: do we really know how to handle (net)root? + [ -z "$root" ] && die "No or empty root= argument" +- [ -z "$rootok" ] && die "X2 Don't know how to handle 'root=$root'" ++ [ -z "$rootok" ] && die "Don't know how to handle 'root=$root'" + + handler=${netroot%%:*} + handler=${handler%%4} +diff --git a/modules.d/98dracut-systemd/dracut-cmdline.sh b/modules.d/98dracut-systemd/dracut-cmdline.sh +index 89c52d13..bff9435a 100755 +--- a/modules.d/98dracut-systemd/dracut-cmdline.sh ++++ b/modules.d/98dracut-systemd/dracut-cmdline.sh +@@ -76,7 +76,7 @@ case "${root}${root_unset}" in + esac + + [ -z "${root}${root_unset}" ] && die "Empty root= argument" +-[ -z "$rootok" ] && die "X1 Don't know how to handle 'root=$root'" ++[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'" + + export root rflags fstype netroot NEWROOT + +diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh +index 3e20069f..e4f7cff1 100755 +--- a/modules.d/99base/init.sh ++++ b/modules.d/99base/init.sh +@@ -136,7 +136,7 @@ getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Br + source_hook cmdline + + [ -z "$root" ] && die "No or empty root= argument" +-[ -z "$rootok" ] && die "X0 Don't know how to handle 'root=$root'" ++[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'" + + export root rflags fstype netroot NEWROOT + + diff --git a/SOURCES/0038.patch b/SOURCES/0038.patch new file mode 100644 index 0000000..43acb72 --- /dev/null +++ b/SOURCES/0038.patch @@ -0,0 +1,31 @@ +From 8eb08e55286e77f005246d1db1bfd2adf4a0e40b Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Tue, 27 Nov 2018 15:30:48 +0100 +Subject: [PATCH] network-manager: call the online hook for connected devices + +Look for "connection-uuid" instead of "managed" to determine the devices +that are actually activated with a connection and call the online hook. + +This fixes the anaconda-net root mount, which utilizes the online hook. + +(cherry picked from commit 79a17b0112995eb60c85c64d15070c52f213b28d) +--- + modules.d/35network-manager/nm-run.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index f6defa99..0f943631 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -9,8 +9,9 @@ fi + for _i in /sys/class/net/*/ + do + state=/run/NetworkManager/devices/$(cat $_i/ifindex) +- grep -q managed=true $state 2>/dev/null || continue ++ grep -q connection-uuid= $state 2>/dev/null || continue + ifname=$(basename $_i) + sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts ++ source_hook initqueue/online $ifname + /sbin/netroot $ifname + done + diff --git a/SOURCES/0039.patch b/SOURCES/0039.patch new file mode 100644 index 0000000..df4625b --- /dev/null +++ b/SOURCES/0039.patch @@ -0,0 +1,24 @@ +From 34011ee53e745f74d70bc5b52dade6d4ef349e90 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 17 Jun 2019 10:07:38 +0200 +Subject: [PATCH] network-manager: remove useless use of basename + +(cherry picked from commit 5e0f8c8a4ced36268d0077acafa1db2402776fa6) +--- + modules.d/35network-manager/nm-run.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index 0f943631..5f4b38ca 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -10,7 +10,7 @@ for _i in /sys/class/net/*/ + do + state=/run/NetworkManager/devices/$(cat $_i/ifindex) + grep -q connection-uuid= $state 2>/dev/null || continue +- ifname=$(basename $_i) ++ ifname=${_i##*/} + sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts + source_hook initqueue/online $ifname + /sbin/netroot $ifname + diff --git a/SOURCES/0040.patch b/SOURCES/0040.patch new file mode 100644 index 0000000..e2fa551 --- /dev/null +++ b/SOURCES/0040.patch @@ -0,0 +1,24 @@ +From 94c75a2a827ff09ffac18454d5c4ba4756d721d6 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 27 May 2019 12:44:17 +0200 +Subject: [PATCH] network-manager: also read out next-server from NM state + +(cherry picked from commit 4be95b67a73e7434f92a7d7c40955eae0b59717e) +--- + modules.d/35network-manager/nm-run.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index 5f4b38ca..a539d5b2 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -11,7 +11,7 @@ do + state=/run/NetworkManager/devices/$(cat $_i/ifindex) + grep -q connection-uuid= $state 2>/dev/null || continue + ifname=${_i##*/} +- sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts ++ sed -n 's/root-path/new_root_path/p;s/next-server/new_next_server/p' <$state >/tmp/dhclient.$ifname.dhcpopts + source_hook initqueue/online $ifname + /sbin/netroot $ifname + done + diff --git a/SOURCES/0041.patch b/SOURCES/0041.patch new file mode 100644 index 0000000..52083c3 --- /dev/null +++ b/SOURCES/0041.patch @@ -0,0 +1,30 @@ +From 68fefe6f9424d3f29e6da9133579c385e7b470b2 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 27 May 2019 12:43:59 +0200 +Subject: [PATCH] network-manager: generate configuration with netroot= + +If the root is on network, let nm-initrd-generator create configuration +even if none was explicitly specified on the command line. + +Also do the same if /tmp/net.ifaces exists, because the anaconda plugin +creates an empty file in that location in hopes that will make us +configure the network. + +(cherry picked from commit 381ab6b7cd2d35bf7f9da63b10c20f5ef6e61a8b) +--- + modules.d/35network-manager/nm-config.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/35network-manager/nm-config.sh b/modules.d/35network-manager/nm-config.sh +index 1339ebe7..1efa737c 100755 +--- a/modules.d/35network-manager/nm-config.sh ++++ b/modules.d/35network-manager/nm-config.sh +@@ -1,3 +1,7 @@ + #!/bin/sh + ++if [ -n "$netroot" ] || [ -e /tmp/net.ifaces ]; then ++ echo rd.neednet >> /etc/cmdline.d/35-neednet.conf ++fi ++ + /usr/libexec/nm-initrd-generator -- $(getcmdline) + diff --git a/SOURCES/0042.patch b/SOURCES/0042.patch new file mode 100644 index 0000000..3bf3074 --- /dev/null +++ b/SOURCES/0042.patch @@ -0,0 +1,43 @@ +From 53cece208a44c53ecc001cb8eb769f6fb9b3d1dc Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 27 May 2019 11:12:22 +0200 +Subject: [PATCH] network: parse root=dhcp also with network-manager module + +Move the logic from network-legacy to common network code. + +(cherry picked from commit 35efada5ecffd139660b4a89f4cc3d627752c91e) +--- + modules.d/35network-legacy/module-setup.sh | 1 - + modules.d/{35network-legacy => 40network}/dhcp-root.sh | 0 + modules.d/40network/module-setup.sh | 1 + + 3 files changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/35network-legacy/module-setup.sh b/modules.d/35network-legacy/module-setup.sh +index 71abda36..5a82e998 100755 +--- a/modules.d/35network-legacy/module-setup.sh ++++ b/modules.d/35network-legacy/module-setup.sh +@@ -36,7 +36,6 @@ install() { + inst_simple -H "/etc/dhclient.conf" + cat "$moddir/dhclient.conf" >> "${initdir}/etc/dhclient.conf" + inst_hook pre-udev 60 "$moddir/net-genrules.sh" +- inst_hook cmdline 91 "$moddir/dhcp-root.sh" + inst_hook cmdline 92 "$moddir/parse-ibft.sh" + inst_hook cmdline 95 "$moddir/parse-vlan.sh" + inst_hook cmdline 96 "$moddir/parse-bond.sh" +diff --git a/modules.d/35network-legacy/dhcp-root.sh b/modules.d/40network/dhcp-root.sh +similarity index 100% +rename from modules.d/35network-legacy/dhcp-root.sh +rename to modules.d/40network/dhcp-root.sh +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index e8541636..8e2a74a3 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh +@@ -28,6 +28,7 @@ install() { + inst_script "$moddir/netroot.sh" "/sbin/netroot" + inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh" + inst_hook pre-udev 50 "$moddir/ifname-genrules.sh" ++ inst_hook cmdline 91 "$moddir/dhcp-root.sh" + + dracut_need_initqueue + } + diff --git a/SOURCES/0043.patch b/SOURCES/0043.patch new file mode 100644 index 0000000..b59dc53 --- /dev/null +++ b/SOURCES/0043.patch @@ -0,0 +1,620 @@ +From 4e10601254bb20891dc2919416d7151583678c3d Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 10 Jun 2019 16:04:18 +0200 +Subject: [PATCH] test: copy BONDBRIDGETEAMVLAN to IFCFG + +The IFCFG test will make sure the network-legacy plugin keeps writing +out correct ifcfg files. + +This is a separate commit so that actual changes are visible in the +following one. + +(cherry picked from commit 70787ab61957741a05e4046bad49758c4e9bc1cc) +--- + test/TEST-60-IFCFG/99-idesymlinks.rules | 8 + + test/TEST-60-IFCFG/Makefile | 10 + + test/TEST-60-IFCFG/client-init.sh | 22 +++ + test/TEST-60-IFCFG/dhcpd.conf | 27 +++ + test/TEST-60-IFCFG/exports | 1 + + test/TEST-60-IFCFG/finished-false.sh | 2 + + test/TEST-60-IFCFG/hard-off.sh | 3 + + test/TEST-60-IFCFG/hosts | 5 + + test/TEST-60-IFCFG/server-init.sh | 120 ++++++++++++ + test/TEST-60-IFCFG/test.sh | 336 ++++++++++++++++++++++++++++++++ + 10 files changed, 534 insertions(+) + +diff --git a/test/TEST-60-IFCFG/99-idesymlinks.rules b/test/TEST-60-IFCFG/99-idesymlinks.rules +new file mode 100644 +index 00000000..d557790a +--- /dev/null ++++ b/test/TEST-60-IFCFG/99-idesymlinks.rules +@@ -0,0 +1,8 @@ ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hda", SYMLINK+="sda" ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hda*", SYMLINK+="sda$env{MINOR}" ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdb", SYMLINK+="sdb" ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdb*", SYMLINK+="sdb$env{MINOR}" ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdc", SYMLINK+="sdc" ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdc*", SYMLINK+="sdc$env{MINOR}" ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="hdd", SYMLINK+="sdd" ++ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", KERNEL=="hdd*", SYMLINK+="sdd$env{MINOR}" +diff --git a/test/TEST-60-IFCFG/Makefile b/test/TEST-60-IFCFG/Makefile +new file mode 100644 +index 00000000..aad27059 +--- /dev/null ++++ b/test/TEST-60-IFCFG/Makefile +@@ -0,0 +1,10 @@ ++all: ++ @$(MAKE) -s --no-print-directory -C ../.. all ++ @V=$(V) basedir=../.. testdir=../ ./test.sh --all ++setup: ++ @$(MAKE) --no-print-directory -C ../.. all ++ @basedir=../.. testdir=../ ./test.sh --setup ++clean: ++ @basedir=../.. testdir=../ ./test.sh --clean ++run: ++ @basedir=../.. testdir=../ ./test.sh --run +diff --git a/test/TEST-60-IFCFG/client-init.sh b/test/TEST-60-IFCFG/client-init.sh +new file mode 100755 +index 00000000..8c33ff0f +--- /dev/null ++++ b/test/TEST-60-IFCFG/client-init.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++exec >/dev/console 2>&1 ++export PATH=/sbin:/bin:/usr/sbin:/usr/bin ++strstr() { [ "${1#*$2*}" != "$1" ]; } ++CMDLINE=$(while read line; do echo $line;done < /proc/cmdline) ++export TERM=linux ++export PS1='initramfs-test:\w\$ ' ++stty sane ++echo "made it to the rootfs! Powering down." ++ ++( ++ echo OK ++ ip -o -4 address show scope global | while read n if rest; do echo $if;done | sort ++ for i in /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-*; do ++ echo $i ++ grep -v 'UUID=' $i ++ done ++ echo EOF ++) > /dev/sda ++ ++strstr "$CMDLINE" "rd.shell" && sh -i ++poweroff -f +diff --git a/test/TEST-60-IFCFG/dhcpd.conf b/test/TEST-60-IFCFG/dhcpd.conf +new file mode 100644 +index 00000000..e26bd60b +--- /dev/null ++++ b/test/TEST-60-IFCFG/dhcpd.conf +@@ -0,0 +1,27 @@ ++ddns-update-style none; ++ ++use-host-decl-names true; ++ ++subnet 192.168.50.0 netmask 255.255.255.0 { ++ option subnet-mask 255.255.255.0; ++ option routers 192.168.50.1; ++ next-server 192.168.50.1; ++ server-identifier 192.168.50.1; ++ option domain-name-servers 192.168.50.1; ++ option domain-search "example.com"; ++ option domain-name "other.com"; ++ option root-path "nfs:192.168.50.1:/nfs/client"; ++ range 192.168.50.10 192.168.50.100; ++} ++ ++subnet 192.168.51.0 netmask 255.255.255.0 { ++ option subnet-mask 255.255.255.0; ++ option routers 192.168.51.1; ++ next-server 192.168.51.1; ++ server-identifier 192.168.51.1; ++ option domain-name-servers 192.168.51.1; ++ option domain-search "example.com"; ++ option domain-name "other.com"; ++ option root-path "nfs:192.168.51.1:/nfs/client"; ++ range 192.168.51.10 192.168.51.100; ++} +diff --git a/test/TEST-60-IFCFG/exports b/test/TEST-60-IFCFG/exports +new file mode 100644 +index 00000000..ff5f29b1 +--- /dev/null ++++ b/test/TEST-60-IFCFG/exports +@@ -0,0 +1 @@ ++/nfs/client 192.168.50.0/24(rw,insecure,no_subtree_check,no_root_squash) +diff --git a/test/TEST-60-IFCFG/finished-false.sh b/test/TEST-60-IFCFG/finished-false.sh +new file mode 100755 +index 00000000..ecdbef95 +--- /dev/null ++++ b/test/TEST-60-IFCFG/finished-false.sh +@@ -0,0 +1,2 @@ ++#!/bin/sh ++exit 1 +diff --git a/test/TEST-60-IFCFG/hard-off.sh b/test/TEST-60-IFCFG/hard-off.sh +new file mode 100755 +index 00000000..12c3d5ac +--- /dev/null ++++ b/test/TEST-60-IFCFG/hard-off.sh +@@ -0,0 +1,3 @@ ++#!/bin/sh ++getarg rd.shell || poweroff -f ++getarg failme && poweroff -f +diff --git a/test/TEST-60-IFCFG/hosts b/test/TEST-60-IFCFG/hosts +new file mode 100644 +index 00000000..d02a4e9b +--- /dev/null ++++ b/test/TEST-60-IFCFG/hosts +@@ -0,0 +1,5 @@ ++127.0.0.1 localhost ++192.168.50.1 server ++192.168.50.100 client-if1 ++192.168.50.101 client-if2 ++192.168.50.102 client-if3 +diff --git a/test/TEST-60-IFCFG/server-init.sh b/test/TEST-60-IFCFG/server-init.sh +new file mode 100755 +index 00000000..b9f01c9b +--- /dev/null ++++ b/test/TEST-60-IFCFG/server-init.sh +@@ -0,0 +1,120 @@ ++#!/bin/sh ++exec /dev/console 2>&1 ++set -x ++export PATH=/sbin:/bin:/usr/sbin:/usr/bin ++export TERM=linux ++export PS1='nfstest-server:\w\$ ' ++stty sane ++echo "made it to the rootfs!" ++echo server > /proc/sys/kernel/hostname ++ ++wait_for_if_link() { ++ local cnt=0 ++ local li ++ while [ $cnt -lt 600 ]; do ++ li=$(ip -o link show dev $1 2>/dev/null) ++ [ -n "$li" ] && return 0 ++ sleep 0.1 ++ cnt=$(($cnt+1)) ++ done ++ return 1 ++} ++ ++wait_for_if_up() { ++ local cnt=0 ++ local li ++ while [ $cnt -lt 200 ]; do ++ li=$(ip -o link show up dev $1) ++ [ -n "$li" ] && return 0 ++ sleep 0.1 ++ cnt=$(($cnt+1)) ++ done ++ return 1 ++} ++ ++wait_for_route_ok() { ++ local cnt=0 ++ while [ $cnt -lt 200 ]; do ++ li=$(ip route show) ++ [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0 ++ sleep 0.1 ++ cnt=$(($cnt+1)) ++ done ++ return 1 ++} ++ ++linkup() { ++ wait_for_if_link $1 2>/dev/null\ ++ && ip link set $1 up 2>/dev/null\ ++ && wait_for_if_up $1 2>/dev/null ++} ++ ++modprobe --all -b -q 8021q ipvlan macvlan ++>/dev/watchdog ++ip addr add 127.0.0.1/8 dev lo ++linkup lo ++ip link set dev eth0 name ens3 ++ip addr add 192.168.50.1/24 dev ens3 ++linkup ens3 ++>/dev/watchdog ++ip link set dev eth1 name ens4 ++ip link add dev ens4.1 link ens4 type vlan id 1 ++ip link add dev ens4.2 link ens4 type vlan id 2 ++ip link add dev ens4.3 link ens4 type vlan id 3 ++ip link add dev ens4.4 link ens4 type vlan id 4 ++ip addr add 192.168.54.1/24 dev ens4.1 ++ip addr add 192.168.55.1/24 dev ens4.2 ++ip addr add 192.168.56.1/24 dev ens4.3 ++ip addr add 192.168.57.1/24 dev ens4.4 ++linkup ens4 ++ip link set dev ens4.1 up ++ip link set dev ens4.2 up ++ip link set dev ens4.3 up ++ip link set dev ens4.4 up ++ip link set dev eth2 name ens5 ++ip addr add 192.168.51.1/24 dev ens5 ++linkup ens5 ++ip link set dev eth3 name ens6 ++linkup ens6 ++>/dev/watchdog ++modprobe af_packet ++> /dev/watchdog ++modprobe sunrpc ++>/dev/watchdog ++mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs ++>/dev/watchdog ++[ -x /sbin/portmap ] && portmap ++>/dev/watchdog ++mkdir -p /run/rpcbind ++[ -x /sbin/rpcbind ] && rpcbind ++>/dev/watchdog ++modprobe nfsd ++>/dev/watchdog ++mount -t nfsd nfsd /proc/fs/nfsd ++>/dev/watchdog ++exportfs -r ++>/dev/watchdog ++rpc.nfsd ++>/dev/watchdog ++rpc.mountd ++>/dev/watchdog ++rpc.idmapd ++>/dev/watchdog ++exportfs -r ++>/dev/watchdog ++>/var/lib/dhcpd/dhcpd.leases ++>/dev/watchdog ++chmod 777 /var/lib/dhcpd/dhcpd.leases ++>/dev/watchdog ++dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases ens3 ens5 ++#echo -n 'V' > /dev/watchdog ++#sh -i ++#tcpdump -i ens3 ++# Wait forever for the VM to die ++echo "Serving NFS mounts" ++while :; do ++ sleep 10 ++ >/dev/watchdog ++done ++mount -n -o remount,ro / ++poweroff -f +diff --git a/test/TEST-60-IFCFG/test.sh b/test/TEST-60-IFCFG/test.sh +new file mode 100755 +index 00000000..8c11a7d3 +--- /dev/null ++++ b/test/TEST-60-IFCFG/test.sh +@@ -0,0 +1,336 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++TEST_DESCRIPTION="root filesystem on NFS with bridging/bonding/vlan" ++KVERSION=${KVERSION-$(uname -r)} ++ ++# Uncomment this to debug failures ++#DEBUGFAIL="rd.shell rd.break" ++#DEBUGFAIL="rd.shell rd.break rd.debug" ++#SERIAL="tcp:127.0.0.1:9999" ++ ++run_server() { ++ # Start server first ++ echo "MULTINIC TEST SETUP: Starting DHCP/NFS server" ++ ++ fsck -a "$TESTDIR"/server.ext3 || return 1 ++ ++ $testdir/run-qemu \ ++ -hda "$TESTDIR"/server.ext3 \ ++ -m 512M -smp 2 \ ++ -display none \ ++ -netdev socket,id=n0,listen=127.0.0.1:12370 \ ++ -netdev socket,id=n1,listen=127.0.0.1:12371 \ ++ -netdev socket,id=n2,listen=127.0.0.1:12372 \ ++ -netdev socket,id=n3,listen=127.0.0.1:12373 \ ++ -device e1000,netdev=n0,mac=52:54:01:12:34:56 \ ++ -device e1000,netdev=n1,mac=52:54:01:12:34:57 \ ++ -device e1000,netdev=n2,mac=52:54:01:12:34:58 \ ++ -device e1000,netdev=n3,mac=52:54:01:12:34:59 \ ++ ${SERIAL:+-serial "$SERIAL"} \ ++ ${SERIAL:--serial file:"$TESTDIR"/server.log} \ ++ -watchdog i6300esb -watchdog-action poweroff \ ++ -no-reboot \ ++ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \ ++ -initrd "$TESTDIR"/initramfs.server \ ++ -pidfile "$TESTDIR"/server.pid -daemonize || return 1 ++ chmod 644 -- "$TESTDIR"/server.pid || return 1 ++ ++ # Cleanup the terminal if we have one ++ tty -s && stty sane ++ ++ echo Sleeping 10 seconds to give the server a head start ++ sleep 10 ++} ++ ++client_test() { ++ local test_name="$1" ++ local do_vlan13="$2" ++ local cmdline="$3" ++ local check="$4" ++ local CONF ++ ++ echo "CLIENT TEST START: $test_name" ++ ++ [ "$do_vlan13" != "yes" ] && unset do_vlan13 ++ ++ # Need this so kvm-qemu will boot (needs non-/dev/zero local disk) ++ if ! dd if=/dev/zero of="$TESTDIR"/client.img bs=1M count=1; then ++ echo "Unable to make client sda image" 1>&2 ++ return 1 ++ fi ++ if [[ $do_vlan13 ]]; then ++ nic1=" -netdev socket,connect=127.0.0.1:12371,id=n1" ++ nic3=" -netdev socket,connect=127.0.0.1:12373,id=n3" ++ else ++ nic1=" -netdev hubport,id=n1,hubid=2" ++ nic3=" -netdev hubport,id=n3,hubid=3" ++ fi ++ ++ if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then ++ $testdir/run-qemu \ ++ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \ ++ -netdev socket,connect=127.0.0.1:12370,id=s1 \ ++ -netdev hubport,hubid=1,id=h1,netdev=s1 \ ++ -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \ ++ -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \ ++ $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \ ++ -netdev socket,connect=127.0.0.1:12372,id=n2 -device e1000,mac=52:54:00:12:34:04,netdev=n2 \ ++ $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \ ++ -watchdog i6300esb -watchdog-action poweroff \ ++ -no-reboot \ ++ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \ ++ -initrd "$TESTDIR"/initramfs.testing ++ else ++ $testdir/run-qemu \ ++ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \ ++ -net socket,vlan=0,connect=127.0.0.1:12370 \ ++ ${do_vlan13:+-net socket,vlan=1,connect=127.0.0.1:12371} \ ++ -net socket,vlan=2,connect=127.0.0.1:12372 \ ++ ${do_vlan13:+-net socket,vlan=3,connect=127.0.0.1:12373} \ ++ -net nic,vlan=0,macaddr=52:54:00:12:34:01,model=e1000 \ ++ -net nic,vlan=0,macaddr=52:54:00:12:34:02,model=e1000 \ ++ -net nic,vlan=1,macaddr=52:54:00:12:34:03,model=e1000 \ ++ -net nic,vlan=2,macaddr=52:54:00:12:34:04,model=e1000 \ ++ -net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \ ++ -watchdog i6300esb -watchdog-action poweroff \ ++ -no-reboot \ ++ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \ ++ -initrd "$TESTDIR"/initramfs.testing ++ fi ++ ++ { ++ read OK ++ if [[ "$OK" != "OK" ]]; then ++ echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]" ++ return 1 ++ fi ++ ++ while read line; do ++ [[ $line == END ]] && break ++ CONF+="$line " ++ done ++ } < "$TESTDIR"/client.img || return 1 ++ ++ if [[ "$check" != "$CONF" ]]; then ++ echo "Expected: '$check'" ++ echo ++ echo ++ echo "Got: '$CONF'" ++ echo "CLIENT TEST END: $test_name [FAILED - BAD CONF]" ++ return 1 ++ fi ++ ++ echo "CLIENT TEST END: $test_name [OK]" ++ return 0 ++} ++ ++ ++test_run() { ++ if ! run_server; then ++ echo "Failed to start server" 1>&2 ++ return 1 ++ fi ++ test_client || { kill_server; return 1; } ++} ++ ++test_client() { ++ client_test "Multiple VLAN" \ ++ "yes" \ ++ " ++vlan=vlan0001:ens5 ++vlan=vlan2:ens5 ++vlan=ens5.3:ens5 ++vlan=ens5.0004:ens5 ++ip=ens3:dhcp ++ip=192.168.54.101::192.168.54.1:24:test:vlan0001:none ++ip=192.168.55.102::192.168.55.1:24:test:vlan2:none ++ip=192.168.56.103::192.168.56.1:24:test:ens5.3:none ++ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none ++rd.neednet=1 ++root=nfs:192.168.50.1:/nfs/client bootdev=ens3 ++" \ ++ 'ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.0004 # Generated by dracut initrd NAME="ens5.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens5.0004" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.3 # Generated by dracut initrd NAME="ens5.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens5.3" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens5" EOF ' \ ++ || return 1 ++ ++ client_test "Multiple Bonds" \ ++ "yes" \ ++ " ++bond=bond0:ens4,ens5 ++bond=bond1:ens6,ens7 ++ip=bond0:dhcp ++ip=bond1:dhcp ++rd.neednet=1 ++root=nfs:192.168.50.1:/nfs/client bootdev=bond0 ++" \ ++ 'bond0 bond1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond0 # Generated by dracut initrd NAME="bond0" DEVICE="bond0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond0" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond1 # Generated by dracut initrd NAME="bond1" DEVICE="bond1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond1" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens7" EOF ' \ ++ || return 1 ++ ++ client_test "Multiple Bridges" \ ++ "no" \ ++ " ++bridge=br0:ens4,ens5 ++bridge=br1:ens6,ens7 ++ip=br0:dhcp ++ip=br1:dhcp ++rd.neednet=1 ++root=nfs:192.168.50.1:/nfs/client bootdev=br0 ++" \ ++ 'br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br0 # Generated by dracut initrd NAME="br0" DEVICE="br0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br0" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br1 # Generated by dracut initrd NAME="br1" DEVICE="br1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens7" EOF ' \ ++ || return 1 ++ ++ kill_server ++ return 0 ++} ++ ++test_setup() { ++ # Make server root ++ dd if=/dev/null of="$TESTDIR"/server.ext3 bs=1M seek=120 ++ mke2fs -j -F -- "$TESTDIR"/server.ext3 ++ mkdir -- "$TESTDIR"/mnt ++ mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt ++ kernel=$KVERSION ++ ( ++ export initdir="$TESTDIR"/mnt ++ . "$basedir"/dracut-init.sh ++ ++ ( ++ cd "$initdir"; ++ mkdir -p -- dev sys proc run etc var/run tmp var/lib/{dhcpd,rpcbind} ++ mkdir -p -- var/lib/nfs/{v4recovery,rpc_pipefs} ++ chmod 777 -- var/lib/rpcbind var/lib/nfs ++ ) ++ ++ for _f in modules.builtin.bin modules.builtin; do ++ [[ $srcmods/$_f ]] && break ++ done || { ++ dfatal "No modules.builtin.bin and modules.builtin found!" ++ return 1 ++ } ++ ++ for _f in modules.builtin.bin modules.builtin modules.order; do ++ [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f" ++ done ++ ++ inst_multiple sh ls shutdown poweroff stty cat ps ln ip \ ++ dmesg mkdir cp ping exportfs \ ++ modprobe rpc.nfsd rpc.mountd showmount tcpdump \ ++ /etc/services sleep mount chmod ++ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do ++ [ -f "${_terminfodir}"/l/linux ] && break ++ done ++ inst_multiple -o "${_terminfodir}"/l/linux ++ type -P portmap >/dev/null && inst_multiple portmap ++ type -P rpcbind >/dev/null && inst_multiple rpcbind ++ [ -f /etc/netconfig ] && inst_multiple /etc/netconfig ++ type -P dhcpd >/dev/null && inst_multiple dhcpd ++ [ -x /usr/sbin/dhcpd3 ] && inst /usr/sbin/dhcpd3 /usr/sbin/dhcpd ++ instmods nfsd sunrpc ipv6 lockd af_packet 8021q ipvlan macvlan ++ inst_simple /etc/os-release ++ inst ./server-init.sh /sbin/init ++ inst ./hosts /etc/hosts ++ inst ./exports /etc/exports ++ inst ./dhcpd.conf /etc/dhcpd.conf ++ inst_multiple /etc/nsswitch.conf /etc/rpc /etc/protocols ++ ++ inst_multiple rpc.idmapd /etc/idmapd.conf ++ ++ inst_libdir_file 'libnfsidmap_nsswitch.so*' ++ inst_libdir_file 'libnfsidmap/*.so*' ++ inst_libdir_file 'libnfsidmap*.so*' ++ ++ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \ ++ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|') ++ _nsslibs=${_nsslibs#|} ++ _nsslibs=${_nsslibs%|} ++ ++ inst_libdir_file -n "$_nsslibs" 'libnss_*.so*' ++ ++ inst /etc/nsswitch.conf /etc/nsswitch.conf ++ inst /etc/passwd /etc/passwd ++ inst /etc/group /etc/group ++ ++ cp -a -- /etc/ld.so.conf* "$initdir"/etc ++ ldconfig -r "$initdir" ++ dracut_kernel_post ++ ) ++ ++ # Make client root inside server root ++ ( ++ export initdir="$TESTDIR"/mnt/nfs/client ++ . "$basedir"/dracut-init.sh ++ inst_multiple sh shutdown poweroff stty cat ps ln ip \ ++ mount dmesg mkdir cp ping grep ls sort ++ for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do ++ [[ -f ${_terminfodir}/l/linux ]] && break ++ done ++ inst_multiple -o "${_terminfodir}"/l/linux ++ inst_simple /etc/os-release ++ inst ./client-init.sh /sbin/init ++ ( ++ cd "$initdir" ++ mkdir -p -- dev sys proc etc run ++ mkdir -p -- var/lib/nfs/rpc_pipefs ++ ) ++ inst /etc/nsswitch.conf /etc/nsswitch.conf ++ inst /etc/passwd /etc/passwd ++ inst /etc/group /etc/group ++ ++ inst_multiple rpc.idmapd /etc/idmapd.conf ++ inst_libdir_file 'libnfsidmap_nsswitch.so*' ++ inst_libdir_file 'libnfsidmap/*.so*' ++ inst_libdir_file 'libnfsidmap*.so*' ++ ++ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' -- /etc/nsswitch.conf \ ++ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|') ++ _nsslibs=${_nsslibs#|} ++ _nsslibs=${_nsslibs%|} ++ ++ inst_libdir_file -n "$_nsslibs" 'libnss_*.so*' ++ ++ cp -a -- /etc/ld.so.conf* "$initdir"/etc ++ ldconfig -r "$initdir" ++ ) ++ ++ umount "$TESTDIR"/mnt ++ rm -fr -- "$TESTDIR"/mnt ++ ++ # Make an overlay with needed tools for the test harness ++ ( ++ export initdir="$TESTDIR"/overlay ++ . "$basedir"/dracut-init.sh ++ inst_multiple poweroff shutdown ++ inst_hook emergency 000 ./hard-off.sh ++ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules ++ ) ++ ++ # Make server's dracut image ++ $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \ ++ --no-early-microcode \ ++ -m "udev-rules base rootfs-block fs-lib debug kernel-modules watchdog" \ ++ -d "ipvlan macvlan af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \ ++ --no-hostonly-cmdline -N \ ++ -f "$TESTDIR"/initramfs.server "$KVERSION" || return 1 ++ ++ # Make client's dracut image ++ $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \ ++ --no-early-microcode \ ++ -o "plymouth" \ ++ -a "debug" \ ++ -d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \ ++ --no-hostonly-cmdline -N \ ++ -f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1 ++} ++ ++kill_server() { ++ if [[ -s "$TESTDIR"/server.pid ]]; then ++ kill -TERM -- $(cat "$TESTDIR"/server.pid) ++ rm -f -- "$TESTDIR"/server.pid ++ fi ++} ++ ++test_cleanup() { ++ kill_server ++} ++ ++. "$testdir"/test-functions + diff --git a/SOURCES/0044.patch b/SOURCES/0044.patch new file mode 100644 index 0000000..b2c4f7f --- /dev/null +++ b/SOURCES/0044.patch @@ -0,0 +1,53 @@ +From 3b89c398895abe5fc62e3c9240718310222925ef Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 10 Jun 2019 16:04:33 +0200 +Subject: [PATCH] test/IFCFG: make sure the network-legacy plugin is being used + +If the network-manager plugin is used instead, it wouldn't write out +ifcfg files and we wouldn't have anything to check. + +While at that, also enable the test. + +(cherry picked from commit 2b1b3bcdcb0ddaa18337f18da515adb6284df0ab) +--- + .travis.yml | 1 + + README.md | 1 + + test/TEST-60-IFCFG/test.sh | 2 +- + 3 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/.travis.yml b/.travis.yml +index 364078cf..37002e9a 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -11,6 +11,7 @@ env: + - IMAGE=latest TESTS=50 + - IMAGE=latest TESTS=30 + - IMAGE=latest TESTS=31 ++ - IMAGE=latest TESTS=60 + - IMAGE=latest TESTS=70 + - IMAGE=latest TESTS=99 + - IMAGE=latest TESTS=02 +diff --git a/README.md b/README.md +index 36ae7e1b..530f1c1b 100644 +--- a/README.md ++++ b/README.md +@@ -27,4 +27,5 @@ dracut is an initramfs infrastructure. + - 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 60: [![Test 60](https://ci.centos.org/job/dracut-matrix-master/TESTS=60,label=dracut-ci-slave01/badge/icon)](https://ci.centos.org/job/dracut-matrix-master/TESTS=60,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/test/TEST-60-IFCFG/test.sh b/test/TEST-60-IFCFG/test.sh +index 8c11a7d3..8e8bd982 100755 +--- a/test/TEST-60-IFCFG/test.sh ++++ b/test/TEST-60-IFCFG/test.sh +@@ -316,7 +316,7 @@ test_setup() { + $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \ + --no-early-microcode \ + -o "plymouth" \ +- -a "debug" \ ++ -a "debug network-legacy" \ + -d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \ + --no-hostonly-cmdline -N \ + -f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1 + diff --git a/SOURCES/0045.patch b/SOURCES/0045.patch new file mode 100644 index 0000000..2c2ccca --- /dev/null +++ b/SOURCES/0045.patch @@ -0,0 +1,83 @@ +From 15ff303dde65e97ba224a9f2cc6275cbaafee52c Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 10 Jun 2019 16:05:23 +0200 +Subject: [PATCH] test/BONDBRIDGETEAMVLAN: don't assert against ifcfg files + +The network-manager module writes keyfiles instead of ifcfg files. Just +check whether the configuration got actually applied correctly. + +(cherry picked from commit 9dfd73bcbd899d8da4bc680fa8b3326c47b939bd) +--- + test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh | 6 +----- + test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 12 ++++++------ + 2 files changed, 7 insertions(+), 11 deletions(-) + +diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh +index 8c33ff0f..083e0f59 100755 +--- a/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh ++++ b/test/TEST-70-BONDBRIDGETEAMVLAN/client-init.sh +@@ -10,11 +10,7 @@ echo "made it to the rootfs! Powering down." + + ( + echo OK +- ip -o -4 address show scope global | while read n if rest; do echo $if;done | sort +- for i in /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-*; do +- echo $i +- grep -v 'UUID=' $i +- done ++ ip -o -4 address show scope global |sed -n 's/^[^:]*: \([^ ]*\) *\(.*\) scope.*/\1 \2/p' |sort + echo EOF + ) > /dev/sda + +diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh +index 5618baee..b6dd080c 100755 +--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh ++++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh +@@ -112,8 +112,8 @@ client_test() { + done + } < "$TESTDIR"/client.img || return 1 + +- if [[ "$check" != "$CONF" ]]; then +- echo "Expected: '$check'" ++ if [[ ! "$CONF" =~ ^$check$ ]]; then ++ echo "Expected: /^$check\$/" + echo + echo + echo "Got: '$CONF'" +@@ -150,7 +150,7 @@ ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none + rd.neednet=1 + root=nfs:192.168.50.1:/nfs/client bootdev=ens3 + " \ +- 'ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.0004 # Generated by dracut initrd NAME="ens5.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens5.0004" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.3 # Generated by dracut initrd NAME="ens5.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens5.3" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens5" EOF ' \ ++ 'ens3 inet 192\.168\.50\.[0-9]*/24 brd 192\.168\.50\.255 ens5\.0004 inet 192\.168\.57\.104/24 brd 192\.168\.57\.255 ens5\.3 inet 192\.168\.56\.103/24 brd 192\.168\.56\.255 vlan0001 inet 192\.168\.54\.101/24 brd 192\.168\.54\.255 vlan2 inet 192\.168\.55\.102/24 brd 192\.168\.55\.255 EOF ' \ + || return 1 + + client_test "Multiple Bonds" \ +@@ -163,7 +163,7 @@ ip=bond1:dhcp + rd.neednet=1 + root=nfs:192.168.50.1:/nfs/client bootdev=bond0 + " \ +- 'bond0 bond1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond0 # Generated by dracut initrd NAME="bond0" DEVICE="bond0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond0" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond1 # Generated by dracut initrd NAME="bond1" DEVICE="bond1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond1" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens7" EOF ' \ ++ 'bond0 inet 192\.168\.50\.[0-9]*/24 brd 192\.168\.50\.255 bond1 inet 192\.168\.51\.[0-9]*/24 brd 192\.168\.51\.255 EOF ' \ + || return 1 + + client_test "Multiple Bridges" \ +@@ -176,7 +176,7 @@ ip=br1:dhcp + rd.neednet=1 + root=nfs:192.168.50.1:/nfs/client bootdev=br0 + " \ +- 'br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br0 # Generated by dracut initrd NAME="br0" DEVICE="br0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br0" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br1 # Generated by dracut initrd NAME="br1" DEVICE="br1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens7" EOF ' \ ++ 'br0 inet 192\.168\.50\.[0-9]*/24 brd 192\.168\.50\.255 br1 inet 192\.168\.51\.[0-9]*/24 brd 192\.168\.51\.255 EOF ' \ + || return 1 + + kill_server +@@ -260,7 +260,7 @@ test_setup() { + export initdir="$TESTDIR"/mnt/nfs/client + . "$basedir"/dracut-init.sh + inst_multiple sh shutdown poweroff stty cat ps ln ip \ +- mount dmesg mkdir cp ping grep ls sort ++ mount dmesg mkdir cp ping grep ls sort sed + for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do + [[ -f ${_terminfodir}/l/linux ]] && break + done + diff --git a/SOURCES/0046.patch b/SOURCES/0046.patch new file mode 100644 index 0000000..0a30c85 --- /dev/null +++ b/SOURCES/0046.patch @@ -0,0 +1,37 @@ +From 96976e84e2c8544ab32026f05da8a35b9c48b2e5 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 10 Jun 2019 16:05:49 +0200 +Subject: [PATCH] test/MULTINIC: correctly note activated devices when using + network-manager + +The .did-setup files are not there. What is there is the NetworkManager +connection files. + +(cherry picked from commit 393fb1ac05ec3386a07d885e99985a647634803e) +--- + test/TEST-50-MULTINIC/client-init.sh | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/test/TEST-50-MULTINIC/client-init.sh b/test/TEST-50-MULTINIC/client-init.sh +index 529379f0..7099dcf3 100755 +--- a/test/TEST-50-MULTINIC/client-init.sh ++++ b/test/TEST-50-MULTINIC/client-init.sh +@@ -105,7 +105,17 @@ export TERM=linux + export PS1='initramfs-test:\w\$ ' + stty sane + echo "made it to the rootfs! Powering down." ++for i in /sys/class/net/*/ ++do ++ # booting with network-manager module ++ state=/run/NetworkManager/devices/$(cat $i/ifindex) ++ grep -q connection-uuid= $state 2>/dev/null || continue ++ i=${i##*/} ++ ip link show $i |grep -q master && continue ++ IFACES+="$i " ++done + for i in /run/initramfs/net.*.did-setup; do ++ # booting with network-legacy module + [ -f "$i" ] || continue + strglobin "$i" ":*:*:*:*:" && continue + i=${i%.did-setup} + diff --git a/SOURCES/0047.patch b/SOURCES/0047.patch new file mode 100644 index 0000000..e30ed6a --- /dev/null +++ b/SOURCES/0047.patch @@ -0,0 +1,115 @@ +From 08961eef2ad09e4ce38ee034baf4e8c2b3934cd1 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 3 Sep 2019 10:44:36 -0500 +Subject: [PATCH] modules.d: fix udev rules detection of multipath devices + +Starting with the 0.7.7 release of the multipath tools, the multipath +udev rules always set a value in ENV{DM_MULTIPATH_DEVICE_PATH} for any +device that multipath scans. A value of 0 means that the device is not +claimed by multipath, and a value of 1 means that it is. Because of +this, udev rules that check ENV{DM_MULTIPATH_DEVICE_PATH}=="?*" will +always return True, and act as if every scanned device is claimed by +multipath. Checking ENV{DM_MULTIPATH_DEVICE_PATH}=="1" will work +correctly for both the old and new versions of the multipath tools. +--- + modules.d/90dm/59-persistent-storage-dm.rules | 2 +- + modules.d/90dmraid/61-dmraid-imsm.rules | 2 +- + modules.d/90lvm/64-lvm.rules | 2 +- + modules.d/90mdraid/59-persistent-storage-md.rules | 2 +- + modules.d/90mdraid/65-md-incremental-imsm.rules | 2 +- + modules.d/95udev-rules/59-persistent-storage.rules | 2 +- + modules.d/95udev-rules/61-persistent-storage.rules | 2 +- + 7 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/modules.d/90dm/59-persistent-storage-dm.rules b/modules.d/90dm/59-persistent-storage-dm.rules +index 73b09376..2be11227 100644 +--- a/modules.d/90dm/59-persistent-storage-dm.rules ++++ b/modules.d/90dm/59-persistent-storage-dm.rules +@@ -1,7 +1,7 @@ + SUBSYSTEM!="block", GOTO="dm_end" + ACTION!="add|change", GOTO="dm_end" + # Also don't process disks that are slated to be a multipath device +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="dm_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="dm_end" + + KERNEL!="dm-[0-9]*", GOTO="dm_end" + ACTION=="add", GOTO="dm_end" +diff --git a/modules.d/90dmraid/61-dmraid-imsm.rules b/modules.d/90dmraid/61-dmraid-imsm.rules +index 72267d3c..8a6b215e 100644 +--- a/modules.d/90dmraid/61-dmraid-imsm.rules ++++ b/modules.d/90dmraid/61-dmraid-imsm.rules +@@ -5,7 +5,7 @@ + SUBSYSTEM!="block", GOTO="dm_end" + ACTION!="add|change", GOTO="dm_end" + # Also don't process disks that are slated to be a multipath device +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="dm_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="dm_end" + + ENV{ID_FS_TYPE}=="linux_raid_member", GOTO="dm_end" + +diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules +index 3ce0c1f6..65f65249 100644 +--- a/modules.d/90lvm/64-lvm.rules ++++ b/modules.d/90lvm/64-lvm.rules +@@ -7,7 +7,7 @@ + SUBSYSTEM!="block", GOTO="lvm_end" + ACTION!="add|change", GOTO="lvm_end" + # Also don't process disks that are slated to be a multipath device +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="lvm_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="lvm_end" + KERNEL=="dm-[0-9]*", ACTION=="add", GOTO="lvm_end" + ENV{ID_FS_TYPE}!="LVM?_member", GOTO="lvm_end" + +diff --git a/modules.d/90mdraid/59-persistent-storage-md.rules b/modules.d/90mdraid/59-persistent-storage-md.rules +index 6ef858aa..96b10108 100644 +--- a/modules.d/90mdraid/59-persistent-storage-md.rules ++++ b/modules.d/90mdraid/59-persistent-storage-md.rules +@@ -1,7 +1,7 @@ + SUBSYSTEM!="block", GOTO="md_end" + ACTION!="add|change", GOTO="md_end" + # Also don't process disks that are slated to be a multipath device +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="md_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="md_end" + + KERNEL!="md[0-9]*|md_d[0-9]*|md/*", KERNEL!="md*", GOTO="md_end" + +diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules +index d66dd012..52f5b195 100644 +--- a/modules.d/90mdraid/65-md-incremental-imsm.rules ++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules +@@ -9,7 +9,7 @@ KERNEL=="md*", ENV{ID_FS_TYPE}!="linux_raid_member", GOTO="md_end" + KERNEL=="md*", ACTION!="change", GOTO="md_end" + + # Also don't process disks that are slated to be a multipath device +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="md_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="md_end" + + ENV{ID_FS_TYPE}=="ddf_raid_member|isw_raid_member|linux_raid_member", GOTO="md_try" + GOTO="md_end" +diff --git a/modules.d/95udev-rules/59-persistent-storage.rules b/modules.d/95udev-rules/59-persistent-storage.rules +index 47ff6edd..8d8650f7 100644 +--- a/modules.d/95udev-rules/59-persistent-storage.rules ++++ b/modules.d/95udev-rules/59-persistent-storage.rules +@@ -1,7 +1,7 @@ + SUBSYSTEM!="block", GOTO="ps_end" + ACTION!="add|change", GOTO="ps_end" + # Also don't process disks that are slated to be a multipath device +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="ps_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="ps_end" + + KERNEL=="cciss[0-9]*", IMPORT BLKID + KERNEL=="nbd[0-9]*", IMPORT BLKID +diff --git a/modules.d/95udev-rules/61-persistent-storage.rules b/modules.d/95udev-rules/61-persistent-storage.rules +index 37148b07..895ecebd 100644 +--- a/modules.d/95udev-rules/61-persistent-storage.rules ++++ b/modules.d/95udev-rules/61-persistent-storage.rules +@@ -1,7 +1,7 @@ + SUBSYSTEM!="block", GOTO="pss_end" + ACTION!="add|change", GOTO="pss_end" + # Also don't process disks that are slated to be a multipath device +-ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="pss_end" ++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="pss_end" + + ACTION=="change", KERNEL=="dm-[0-9]*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}!="1", GOTO="do_pss" + KERNEL=="cciss[0-9]*", GOTO="do_pss" + diff --git a/SOURCES/0048.patch b/SOURCES/0048.patch new file mode 100644 index 0000000..1dd087a --- /dev/null +++ b/SOURCES/0048.patch @@ -0,0 +1,43 @@ +From b59ae228851713f645751742136e34b854b0712a Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 10 Nov 2016 13:57:26 +0100 +Subject: [PATCH] test/test-rpms.txt: add list of rpms to install + +(cherry picked from commit f432d367fc4fa7558761cb9bb4229e6c027bfa31) +--- + test/test-rpms.txt | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/test/test-rpms.txt b/test/test-rpms.txt +new file mode 100644 +index 00000000..1723d8e9 +--- /dev/null ++++ b/test/test-rpms.txt +@@ -0,0 +1,26 @@ ++dash ++bridge-utils ++asciidoc ++mdadm ++lvm2 ++dmraid ++cryptsetup ++nfs-utils ++nbd ++dhcp-server ++scsi-target-utils ++iscsi-initiator-utils ++net-tools ++strace ++syslinux ++python-imgcreate ++genisoimage ++btrfs-progs ++bridge-utils ++kmod-devel ++gcc ++bzip2 ++xz ++tar ++wget ++rpm-build + diff --git a/SOURCES/0049.patch b/SOURCES/0049.patch new file mode 100644 index 0000000..e23f5fd --- /dev/null +++ b/SOURCES/0049.patch @@ -0,0 +1,23 @@ +From 4ef5cdc120bdbb348345c964a19affbb3ca1fa32 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 11 Nov 2016 11:40:58 +0100 +Subject: [PATCH] test/test-rpms.txt: add gzip + +(cherry picked from commit 7b4173d698be5163da1e5b5b52bafd2facba4db5) +--- + test/test-rpms.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/test-rpms.txt b/test/test-rpms.txt +index 1723d8e9..10596da7 100644 +--- a/test/test-rpms.txt ++++ b/test/test-rpms.txt +@@ -19,6 +19,7 @@ btrfs-progs + bridge-utils + kmod-devel + gcc ++gzip + bzip2 + xz + tar + diff --git a/SOURCES/0050.patch b/SOURCES/0050.patch new file mode 100644 index 0000000..413d8b7 --- /dev/null +++ b/SOURCES/0050.patch @@ -0,0 +1,23 @@ +From fe44aa1b14f427245bdfb2026f2211a19b52f5e3 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 11 Nov 2016 12:34:00 +0100 +Subject: [PATCH] test-rpms.txt: add dhcp + +(cherry picked from commit a081e072d894c91fcf037e267cb6793c4b0356c4) +--- + test/test-rpms.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/test-rpms.txt b/test/test-rpms.txt +index 10596da7..95376bd2 100644 +--- a/test/test-rpms.txt ++++ b/test/test-rpms.txt +@@ -8,6 +8,7 @@ cryptsetup + nfs-utils + nbd + dhcp-server ++dhcp + scsi-target-utils + iscsi-initiator-utils + net-tools + diff --git a/SOURCES/0051.patch b/SOURCES/0051.patch new file mode 100644 index 0000000..158b434 --- /dev/null +++ b/SOURCES/0051.patch @@ -0,0 +1,19 @@ +From 81babdedec8c6f7b23bbf0e3418126c4f9e5e15f Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Tue, 10 Sep 2019 16:46:55 +0200 +Subject: [PATCH] test-rpms.txt: add util-linux into the dependency list + +--- + test/test-rpms.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/test-rpms.txt b/test/test-rpms.txt +index 95376bd2..02577c8a 100644 +--- a/test/test-rpms.txt ++++ b/test/test-rpms.txt +@@ -26,3 +26,4 @@ xz + tar + wget + rpm-build ++util-linux + diff --git a/SOURCES/0052.patch b/SOURCES/0052.patch new file mode 100644 index 0000000..5a338e0 --- /dev/null +++ b/SOURCES/0052.patch @@ -0,0 +1,33 @@ +From 7843bc52777683f6a4ef953d8dde7171ff3b911c Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Wed, 24 Jul 2019 16:45:19 +0200 +Subject: [PATCH] [RHEL] network: default to network-legacy even in presence of + nm-initrd-generator + +In RHEL 8.2, NetworkManager will ship with the nm-initrd-generator, but +before the install bits fall into place we want to default to network-legacy. + +This unblocks the enablement of the NetworkManager bits and is intended +to be reverted later on. +--- + modules.d/40network/module-setup.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index 8e2a74a3..bf252eb7 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh +@@ -8,9 +8,9 @@ check() { + # called by dracut + depends() { + echo -n "kernel-network-modules " +- if ! dracut_module_included "network-legacy" && [ -x "/usr/libexec/nm-initrd-generator" ] ; then +- echo "network-manager" +- else ++ # RHEL 8.1: Default to network-legacy unless the user chose ++ # network-manager manually ++ if ! dracut_module_included "network-manager" ; then + echo "network-legacy" + fi + return 0 + diff --git a/SOURCES/0053.patch b/SOURCES/0053.patch new file mode 100644 index 0000000..ef9e265 --- /dev/null +++ b/SOURCES/0053.patch @@ -0,0 +1,32 @@ +From dcbc74b01bfb360eecadb8e59480472b86fe63d0 Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Tue, 29 Oct 2019 09:35:41 -0400 +Subject: [PATCH] 01fips: fix HMAC file path resolution + +There is a small regression in #343: when handling the 'separate boot +partition' case, we're checking for the kernel image in the wrong +location: `BOOT_IMAGE` is the `/boot`-relative path to the kernel image, +so `/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE}` expands to e.g. +`/boot/mysubdir1/mysubdir2/mysubdir1/mysubdir2/vmlinuz...`. + +We should be using `BOOT_IMAGE_NAME` here instead (and in fact, the next +if-statement does this correctly, so it might've just been accidentally +left out of #343). +--- + modules.d/01fips/fips.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index beaa692b..c3dbcf74 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -118,7 +118,7 @@ do_fips() + + if [ -z "$BOOT_IMAGE_NAME" ]; then + BOOT_IMAGE_NAME="vmlinuz-${KERNEL}" +- elif ! [ -e "/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE}" ]; then ++ elif ! [ -e "/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE_NAME}" ]; then + #if /boot is not a separate partition BOOT_IMAGE might start with /boot + BOOT_IMAGE_PATH=${BOOT_IMAGE_PATH#"/boot"} + #on some achitectures BOOT_IMAGE does not contain path to kernel + diff --git a/SOURCES/0054.patch b/SOURCES/0054.patch new file mode 100644 index 0000000..489c715 --- /dev/null +++ b/SOURCES/0054.patch @@ -0,0 +1,33 @@ +From 14310ca42f06c2156ab5cefd05dbaa47ae3b054d Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Tue, 29 Oct 2019 16:47:34 -0400 +Subject: [PATCH] 01fips: run sha512hmac from directory HMAC file directory + +That way, the HMAC file can contain a relative path instead of an +absolute one. The issue is that right now the kernel RPM bakes the +`/boot/vmlinuz-${kver}` path into the HMAC file which poses an issue for +rpm-ostree systems (and any other system where the kernel isn't simply +in the top-level `/boot`. + +For now, we're hacking around this in rpm-ostree: +https://github.com/coreos/rpm-ostree/pull/1934 + +Though I'd like to propose the same change in the kernel spec file. +--- + modules.d/01fips/fips.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index c3dbcf74..893143d0 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -135,7 +135,7 @@ do_fips() + return 1 + fi + +- sha512hmac -c "${BOOT_IMAGE_HMAC}" || return 1 ++ (cd "${BOOT_IMAGE_HMAC%/*}" && sha512hmac -c "${BOOT_IMAGE_HMAC}") || return 1 + fi + + info "All initrd crypto checks done" + diff --git a/SOURCES/0055.patch b/SOURCES/0055.patch new file mode 100644 index 0000000..2d59629 --- /dev/null +++ b/SOURCES/0055.patch @@ -0,0 +1,26 @@ +From 89dcbbe92f008f6c4ebccfedf09d32bab4a575e5 Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Tue, 29 Oct 2019 16:53:00 -0400 +Subject: [PATCH] 01fips: add / in BOOT_IMAGE_HMAC filename for clarity + +It's already the case the `BOOT_IMAGE_PATH` today, in the non-empty +case, includes a trailing `/`, but let's add it to the path we build +here too to make it more obvious. +--- + modules.d/01fips/fips.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index 893143d0..de2755b0 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -129,7 +129,7 @@ do_fips() + fi + fi + +- BOOT_IMAGE_HMAC="/boot/${BOOT_IMAGE_PATH}.${BOOT_IMAGE_NAME}.hmac" ++ BOOT_IMAGE_HMAC="/boot/${BOOT_IMAGE_PATH}/.${BOOT_IMAGE_NAME}.hmac" + if ! [ -e "${BOOT_IMAGE_HMAC}" ]; then + warn "${BOOT_IMAGE_HMAC} does not exist" + return 1 + diff --git a/SOURCES/0056.patch b/SOURCES/0056.patch new file mode 100644 index 0000000..90ac5a9 --- /dev/null +++ b/SOURCES/0056.patch @@ -0,0 +1,34 @@ +From 9e8f172dc01f7e013bb5d302ef6c90e2dc6b30c8 Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Tue, 29 Oct 2019 16:54:10 -0400 +Subject: [PATCH] 01fips: trim off GRUB boot device from BOOT_IMAGE + +E.g. in RHCOS, the `BOOT_IMAGE` from the cmdline is: + +(hd0,gpt1)/ostree/rhcos-e493371e5ee8407889029ec979955a2b86fd7e3cae5a0591b9db1cd248d966e8/vmlinuz-4.18.0-146.el8.x86_64 + +Which of course is a GRUB thing, not an actual pathname we'll be able to +resolve. In fact, we can simply scrap it off from the variable. Our code +is already able to handle both cases: whether the device refers to a +separate boot partition, or just the root filesystem with a regular +`/boot` directory. +--- + modules.d/01fips/fips.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index de2755b0..559952ca 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -113,6 +113,10 @@ do_fips() + do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1 + else + BOOT_IMAGE="$(getarg BOOT_IMAGE)" ++ ++ # Trim off any leading GRUB boot device (e.g. ($root) ) ++ BOOT_IMAGE="$(echo "${BOOT_IMAGE}" | sed 's/^(.*)//')" ++ + BOOT_IMAGE_NAME="${BOOT_IMAGE##*/}" + BOOT_IMAGE_PATH="${BOOT_IMAGE%${BOOT_IMAGE_NAME}}" + + diff --git a/SOURCES/0057.patch b/SOURCES/0057.patch new file mode 100644 index 0000000..0729b82 --- /dev/null +++ b/SOURCES/0057.patch @@ -0,0 +1,25 @@ +From 346e57c1b6af4e2cfdbaae64941f2f3b8454a944 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Fri, 29 Nov 2019 13:29:23 +0100 +Subject: [PATCH] always include sg module + +RHEL-only +Resolves:#1579763 +--- + modules.d/00systemd/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh +index 1ed4b34f..ed177826 100755 +--- a/modules.d/00systemd/module-setup.sh ++++ b/modules.d/00systemd/module-setup.sh +@@ -18,7 +18,7 @@ depends() { + } + + installkernel() { +- hostonly='' instmods autofs4 ipv6 algif_hash hmac sha256 ++ hostonly='' instmods autofs4 ipv6 algif_hash hmac sha256 sg + instmods -s efivarfs + } + + diff --git a/SOURCES/0058.patch b/SOURCES/0058.patch new file mode 100644 index 0000000..728e07b --- /dev/null +++ b/SOURCES/0058.patch @@ -0,0 +1,44 @@ +From 8061a432844d1f780d9b18144def0faef0145c0c Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Mon, 7 Oct 2019 16:48:09 +0200 +Subject: [PATCH] net-lib: check if addr exists before checking for dad state + +Before we check if dad is done we should first make sure, +that there is a link local address where we do the check. + +Due to this issue, on ipv6 only setups sometimes dhclient started +asking for ip address, before the link local address was present +and failed immediately. + +(cherry picked from commit daa49cc2216d6387541ef36e8427081f6b02f224) + +Resolves: #1765014 +--- + modules.d/40network/net-lib.sh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh +index ad78d225..dcb53804 100755 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -653,7 +653,8 @@ wait_for_ipv6_dad_link() { + timeout=$(($timeout*10)) + + while [ $cnt -lt $timeout ]; do +- [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \ ++ [ -n "$(ip -6 addr show dev "$1" scope link)" ] \ ++ && [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \ + && return 0 + [ -n "$(ip -6 addr show dev "$1" scope link dadfailed)" ] \ +@@ -671,7 +672,8 @@ wait_for_ipv6_dad() { + timeout=$(($timeout*10)) + + while [ $cnt -lt $timeout ]; do +- [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ ++ [ -n "$(ip -6 addr show dev "$1")" ] \ ++ && [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \ + && return 0 + [ -n "$(ip -6 addr show dev "$1" dadfailed)" ] \ + diff --git a/SOURCES/0059.patch b/SOURCES/0059.patch new file mode 100644 index 0000000..e4adb3f --- /dev/null +++ b/SOURCES/0059.patch @@ -0,0 +1,57 @@ +From 2caaf8b9ba5b95983154bd641f0f493ff1562cc0 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Tue, 6 Aug 2019 15:39:31 +0800 +Subject: [PATCH] 99squash: Only start the cleaner on switch-root + +Currently it starts the cleaner early and do the clean up job if switch +root is called. It's better to just start the service only on switch +root to avoid any risk of service dependency failure and make is +simpler. + +Signed-off-by: Kairui Song +(cherry picked from commit 5d88809319049eb06e3472dcd11cca9c4557d8c2) + +Resolves: #1678248 +--- + modules.d/99squash/module-setup.sh | 3 ++- + modules.d/99squash/squash-mnt-clear.service | 11 ++++------- + 2 files changed, 6 insertions(+), 8 deletions(-) + +diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh +index 935fd721..e7e9ed8e 100644 +--- a/modules.d/99squash/module-setup.sh ++++ b/modules.d/99squash/module-setup.sh +@@ -25,5 +25,6 @@ install() { + inst $moddir/init.sh /squash/init.sh + + inst "$moddir/squash-mnt-clear.service" "$systemdsystemunitdir/squash-mnt-clear.service" +- ln_r "$systemdsystemunitdir/squash-mnt-clear.service" "$systemdsystemunitdir/initrd.target.wants/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" + } +diff --git a/modules.d/99squash/squash-mnt-clear.service b/modules.d/99squash/squash-mnt-clear.service +index f8d5db46..84441f60 100644 +--- a/modules.d/99squash/squash-mnt-clear.service ++++ b/modules.d/99squash/squash-mnt-clear.service +@@ -4,17 +4,14 @@ + [Unit] + Description=Cleanup squashfs mounts when switch root + DefaultDependencies=no +-After=initrd.target +-After=dracut-initqueue.service dracut-pre-pivot.service +-Before=initrd-cleanup.service ++Before=initrd-switch-root.service ++After=initrd-switch-root.target + ConditionPathExists=/squash/root +-Conflicts=initrd-switch-root.target +-IgnoreOnIsolate=true + + [Service] + Type=oneshot +-RemainAfterExit=yes ++RemainAfterExit=no + StandardInput=null + StandardOutput=syslog+console + StandardError=syslog+console +-ExecStop=/squash/clear-squash.sh ++ExecStart=/squash/clear-squash.sh diff --git a/SPECS/dracut.spec b/SPECS/dracut.spec index cde5a5e..3027e4c 100644 --- a/SPECS/dracut.spec +++ b/SPECS/dracut.spec @@ -5,7 +5,7 @@ # strip the automatically generated dep here and instead co-own the # directory. %global __requires_exclude pkg-config -%define dist_free_release 13.git20190614 +%define dist_free_release 60.git20191129 Name: dracut Version: 049 @@ -40,6 +40,53 @@ Patch9: 0009.patch Patch10: 0010.patch Patch11: 0011.patch Patch12: 0012.patch +Patch13: 0013.patch +Patch14: 0014.patch +Patch15: 0015.patch +Patch16: 0016.patch +Patch17: 0017.patch +Patch18: 0018.patch +Patch19: 0019.patch +Patch20: 0020.patch +Patch21: 0021.patch +Patch22: 0022.patch +Patch23: 0023.patch +Patch24: 0024.patch +Patch25: 0025.patch +Patch26: 0026.patch +Patch27: 0027.patch +Patch28: 0028.patch +Patch29: 0029.patch +Patch30: 0030.patch +Patch31: 0031.patch +Patch32: 0032.patch +Patch33: 0033.patch +Patch34: 0034.patch +Patch35: 0035.patch +Patch36: 0036.patch +Patch37: 0037.patch +Patch38: 0038.patch +Patch39: 0039.patch +Patch40: 0040.patch +Patch41: 0041.patch +Patch42: 0042.patch +Patch43: 0043.patch +Patch44: 0044.patch +Patch45: 0045.patch +Patch46: 0046.patch +Patch47: 0047.patch +Patch48: 0048.patch +Patch49: 0049.patch +Patch50: 0050.patch +Patch51: 0051.patch +Patch52: 0052.patch +Patch53: 0053.patch +Patch54: 0054.patch +Patch55: 0055.patch +Patch56: 0056.patch +Patch57: 0057.patch +Patch58: 0058.patch +Patch59: 0059.patch Source1: https://www.gnu.org/licenses/lgpl-2.1.txt @@ -359,6 +406,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne %{dracutlibdir}/modules.d/03rescue %{dracutlibdir}/modules.d/04watchdog %{dracutlibdir}/modules.d/05busybox +%{dracutlibdir}/modules.d/06rngd %{dracutlibdir}/modules.d/10i18n %{dracutlibdir}/modules.d/30convertfs %{dracutlibdir}/modules.d/45url-lib @@ -492,6 +540,49 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne %endif %changelog +* Fri Nov 29 2019 Lukas Nykryn - 049-60.git20191129 +- 99squash: Only start the cleaner on switch-root +- net-lib: check if addr exists before checking for dad state +- always include sg module + +* Thu Oct 31 2019 Lukas Nykryn - 049-57.git20191031 +- various fixes to adapt to RHCOS and FCOS + +* Tue Oct 01 2019 Lukas Nykryn - 049-53.git20191001 +- apply patches to allow enablement of nm-initrd-generator + +* Fri Sep 06 2019 Lukas Nykryn - 049-27.git20190906 +- modules.d: fix udev rules detection of multipath devices + +* Tue Aug 06 2019 Lukas Nykryn - 049-26.git20190806 +- net-lib: fix typo $li -> $_li + +* Tue Aug 06 2019 Lukas Nykryn - 049-25.git20190806 +- 90kernel-modules-extra: don't resolve symlinks before instmod + +* Fri Aug 02 2019 Lukas Nykryn - 049-24.git20190802 +- 95fcoe: load 'libfcoe' module as a fallback +- 99base: enable the initqueue in both 'dracut --add-device' and 'dracut --mount' cases +- dracut: let module handling function accept optional path option +- squash: also squash systemctl if switch-root is not needed +- squash: fix and simplify required_in_root +- squash: squash systemd binary and udevadm + +* Thu Jul 25 2019 Lukas Nykryn - 049-18.git20190725 +- dracut.spec: add 06rngd + +* Thu Jul 25 2019 Lukas Nykryn - 049-17.git20190725 +- rngd: new module running early during boot to help generating entropy when system's default entropy sources are poor (e.g. use of SSD disks or UEFI RNG not available) + +* Tue Jul 16 2019 Lukas Nykryn - 049-16.git20190716 +- 01fips: add cfb cipher + +* Mon Jul 08 2019 Lukas Nykryn - 049-15.git20190708 +- network: skip already enslaved interfaces + +* Wed Jun 26 2019 Lukas Nykryn - 049-14.git20190626 +- fips: ensure fs module for /boot is installed + * Fri Jun 14 2019 Lukas Nykryn - 049-13.git20190614 - fips: split loading the crypto modules and checking the kernel