diff --git a/.gitignore b/.gitignore index e69de29..0eb275c 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,37 @@ +/dracut-011-9b30d47.tar.bz2 +/dracut-011.tar.bz2 +/dracut-013.tar.bz2 +/dracut-014.tar.bz2 +/dracut-015.tar.bz2 +/dracut-016.tar.bz2 +/dracut-017.tar.bz2 +/dracut-018.tar.bz2 +/dracut-019.tar.bz2 +/dracut-020.tar.bz2 +/dracut-021.tar.bz2 +/dracut-022.tar.bz2 +/dracut-023.tar.bz2 +/dracut-025.tar.bz2 +/dracut-026.tar.bz2 +/dracut-027.tar.bz2 +/dracut-028.tar.bz2 +/dracut-029.tar.bz2 +/dracut-030.tar.bz2 +/dracut-031.tar.bz2 +/dracut-032.tar.bz2 +/dracut-033.tar.bz2 +/dracut-034.tar.bz2 +/dracut-036.tar.xz +/dracut-037.tar.xz +/dracut-038.tar.xz +/dracut-040.tar.xz +/dracut-041.tar.xz +/dracut-042.tar.xz +/dracut-043.tar.xz +/dracut-044.tar.xz +/dracut-045.tar.xz +/dracut-046.tar.xz +/dracut-047.tar.xz +/dracut-048.tar.xz +/dracut-049.tar.xz +/dracut-050.tar.xz diff --git a/0001.patch b/0001.patch new file mode 100644 index 0000000..3ff9a99 --- /dev/null +++ b/0001.patch @@ -0,0 +1,27 @@ +From 3ba12b22491de49853685bec5bb345e624c119ab Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 4 Mar 2020 14:39:22 +0100 +Subject: [PATCH] test/TEST-35-ISCSI-MULTI: bump disk space + +--- + test/TEST-35-ISCSI-MULTI/test.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/test/TEST-35-ISCSI-MULTI/test.sh b/test/TEST-35-ISCSI-MULTI/test.sh +index e96c9c56..740ab918 100755 +--- a/test/TEST-35-ISCSI-MULTI/test.sh ++++ b/test/TEST-35-ISCSI-MULTI/test.sh +@@ -144,9 +144,9 @@ test_setup() { + fi + + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=45 +- dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=45 +- dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=45 ++ dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=90 ++ dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=90 ++ dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=90 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + diff --git a/0002.patch b/0002.patch new file mode 100644 index 0000000..05dd7c1 --- /dev/null +++ b/0002.patch @@ -0,0 +1,33 @@ +From 9e68789d66a6a383e5c46f687350897705c7994f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 4 Mar 2020 14:39:39 +0100 +Subject: [PATCH] dracut.spec: add version check for deprecated files + +--- + dracut.spec | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index e336a25c..03b41471 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -278,8 +278,7 @@ rm -f -- $RPM_BUILD_ROOT%{_mandir}/man1/lsinitrd.1* + echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf + echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf + +-%if 0%{?fedora} || 0%{?rhel} +-# FIXME: remove after F30 ++%if 0%{?fedora} <= 30 || 0%{?rhel} <= 8 + mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d + install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh + %endif +@@ -475,7 +474,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %files config-rescue + %{dracutlibdir}/dracut.conf.d/02-rescue.conf + %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install +-%if 0%{?fedora} || 0%{?rhel} ++%if 0%{?fedora} <= 30 || 0%{?rhel} <= 8 + # FIXME: remove after F30 + %{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh + %endif + diff --git a/0003.patch b/0003.patch new file mode 100644 index 0000000..c9fdebd --- /dev/null +++ b/0003.patch @@ -0,0 +1,76 @@ +From eb8a7a96351b6e1cfd9dc34f1e854333a8f4a4e0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= + +Date: Fri, 6 Mar 2020 08:46:36 +0700 +Subject: [PATCH] Makefile: merge main-version and git-version earlier + +With GNU Make 4.3 on both ArchLinux, and VoidLinux, +GITVERION is always empty because of bad substitution. +Change '\#' to simply '#' can fix it, +but we don't need that complation. + +We can merge DRACUT_MAIN_VERSION and GITVERSION into DRACUT_FULL_VERSION. +Because, GITVERSION will be attached back to DRACUT_MAIN_VERSION in all +situation. + +While we're at it, detect if we're in git worktree by: +limiting GIT_CEILING_DIRECTORIES to parent directory of +dracut's top level directory; instead of checking for .git directory, +in order to support git-worktree, in such case, .git will be a file, see +gitrepository-layout(5) +--- + Makefile | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/Makefile b/Makefile +index 22b584f1..c69e2dfc 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,8 +1,9 @@ + -include dracut-version.sh + +-DRACUT_MAIN_VERSION ?= $(shell [ -d .git ] && git describe --abbrev=0 --tags --always 2>/dev/null || :) ++DRACUT_MAIN_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --abbrev=0 --tags --always 2>/dev/null || :) + DRACUT_MAIN_VERSION ?= $(DRACUT_VERSION) +-GITVERSION ?= $(shell [ -d .git ] && { v=$$(git describe --tags --always 2>/dev/null); [ -n "$$v" ] && [ $${v\#*-} != $$v ] && echo -$${v\#*-}; } ) ++DRACUT_FULL_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --tags --always 2>/dev/null || :) ++DRACUT_FULL_VERSION ?= $(DRACUT_VERSION) + + -include Makefile.inc + +@@ -92,14 +93,14 @@ endif + + %.xml: %.asc + @rm -f -- "$@" +- asciidoc -a "version=$(DRACUT_MAIN_VERSION)$(GITVERSION)" -d manpage -b docbook -o "$@" $< ++ asciidoc -a "version=$(DRACUT_FULL_VERSION)" -d manpage -b docbook -o "$@" $< + + dracut.8: dracut.usage.asc dracut.8.asc + + dracut.html: dracut.asc $(manpages) dracut.css dracut.usage.asc + @rm -f -- dracut.xml + asciidoc -a "mainversion=$(DRACUT_MAIN_VERSION)" \ +- -a "version=$(DRACUT_MAIN_VERSION)$(GITVERSION)" \ ++ -a "version=$(DRACUT_FULL_VERSION)" \ + -a numbered \ + -d book -b docbook -o dracut.xml dracut.asc + @rm -f -- dracut.html +@@ -112,7 +113,7 @@ dracut.html: dracut.asc $(manpages) dracut.css dracut.usage.asc + dracut.pc: Makefile.inc Makefile + @echo "Name: dracut" > dracut.pc + @echo "Description: dracut" >> dracut.pc +- @echo "Version: $(DRACUT_MAIN_VERSION)$(GITVERSION)" >> dracut.pc ++ @echo "Version: $(DRACUT_FULL_VERSION)" >> dracut.pc + @echo "dracutdir=$(pkglibdir)" >> dracut.pc + @echo "dracutmodulesdir=$(pkglibdir)/modules.d" >> dracut.pc + @echo "dracutconfdir=$(pkglibdir)/dracut.conf.d" >> dracut.pc +@@ -182,7 +183,7 @@ endif + + dracut-version.sh: + @rm -f dracut-version.sh +- @echo "DRACUT_VERSION=$(DRACUT_MAIN_VERSION)$(GITVERSION)" > dracut-version.sh ++ @echo "DRACUT_VERSION=$(DRACUT_FULL_VERSION)" > dracut-version.sh + + clean: + $(RM) *~ + diff --git a/0004.patch b/0004.patch new file mode 100644 index 0000000..fe51c52 --- /dev/null +++ b/0004.patch @@ -0,0 +1,54 @@ +From 7ef5ead6f4cf4834b84ea6d9546b77ddc0da394b Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Thu, 30 Jan 2020 13:48:11 +0100 +Subject: [PATCH] Add module "90nvdimm" for NVDIMM support + +Detection of persistent memory devices works mostly out of the box +already. Only the "provider" modules for ndbus devices, which are responsible +to extract information of available NVDIMM devices and their configuration +from system firmware, are only indirectly linked into the module stack. +Examples for such modules are nfit.ko, nd_e820.ko, and virtio-pmem.ko. + +Add a module that resolves these dependencies. +--- + modules.d/90nvdimm/module-setup.sh | 31 +++++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +diff --git a/modules.d/90nvdimm/module-setup.sh b/modules.d/90nvdimm/module-setup.sh +new file mode 100755 +index 00000000..6d58efd7 +--- /dev/null ++++ b/modules.d/90nvdimm/module-setup.sh +@@ -0,0 +1,31 @@ ++#!/bin/bash ++ ++# called by dracut ++check() { ++ if [[ ! $hostonly ]]; then ++ return 0 ++ fi ++ [[ $DRACUT_KERNEL_MODALIASES && -f "$DRACUT_KERNEL_MODALIASES" ]] && \ ++ grep -q libnvdimm "$DRACUT_KERNEL_MODALIASES" && return 0 ++ return 255 ++} ++ ++# called by dracut ++depends() { ++ return 0 ++} ++ ++# called by dracut ++installkernel() { ++ # Directories to search for NVDIMM "providers" (firmware drivers) ++ # These modules call "nvdimm_bus_register()". ++ local _provider_dirs='=drivers/nvdimm =drivers/acpi =arch/powerpc' ++ ++ #instmods() will take care of hostonly ++ dracut_instmods -o -s nvdimm_bus_register $_provider_dirs ++} ++ ++# called by dracut ++install() { ++ inst_multiple -o ndctl ++} + diff --git a/0005.patch b/0005.patch new file mode 100644 index 0000000..81831de --- /dev/null +++ b/0005.patch @@ -0,0 +1,25 @@ +From 18420d9ce5bb738473d127affb96a5c6a44ba2ac Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Thu, 30 Jan 2020 15:44:28 +0100 +Subject: [PATCH] 90kernel-modules: remove nfit from static module list + +The 90nvdimm module now resolves the nfit dependency when it's +necessary, so it's not necessary any more to pack it always. +--- + modules.d/90kernel-modules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 2ca4b719..bc3810cc 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -28,7 +28,7 @@ installkernel() { + hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix + instmods \ + scsi_dh_rdac scsi_dh_emc scsi_dh_alua \ +- =ide nvme vmd nfit \ ++ =ide nvme vmd \ + virtio_blk + + dracut_instmods -o -s "${_blockfuncs}" "=drivers" + diff --git a/0006.patch b/0006.patch new file mode 100644 index 0000000..b3d9df6 --- /dev/null +++ b/0006.patch @@ -0,0 +1,22 @@ +From 5a720ebf6711a119649645de673bcb247e09a1ba Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Fri, 6 Mar 2020 10:26:43 +0100 +Subject: [PATCH] dracut.spec: add 90nvdimm + +--- + dracut.spec | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut.spec b/dracut.spec +index 03b41471..0369dde6 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -364,6 +364,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %{dracutlibdir}/modules.d/90lvm + %{dracutlibdir}/modules.d/90mdraid + %{dracutlibdir}/modules.d/90multipath ++%{dracutlibdir}/modules.d/90nvdimm + %{dracutlibdir}/modules.d/90stratis + %{dracutlibdir}/modules.d/90ppcmac + %{dracutlibdir}/modules.d/90qemu + diff --git a/0007.patch b/0007.patch new file mode 100644 index 0000000..db2e06c --- /dev/null +++ b/0007.patch @@ -0,0 +1,70 @@ +From db9b5851f3bca0844890d529c7560c89ef81b92a Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Wed, 30 Oct 2019 09:30:32 +0100 +Subject: [PATCH] 99base: Remove duplicate nfsroot_to_var from dracut-lib.sh + +It already lives in nfs-lib.sh, which is the more correct library scope. + +Fixes #17 +--- + modules.d/95nfs/parse-nfsroot.sh | 1 + + modules.d/99base/dracut-lib.sh | 33 --------------------------------- + 2 files changed, 1 insertion(+), 33 deletions(-) + +diff --git a/modules.d/95nfs/parse-nfsroot.sh b/modules.d/95nfs/parse-nfsroot.sh +index f715767b..44a69d48 100755 +--- a/modules.d/95nfs/parse-nfsroot.sh ++++ b/modules.d/95nfs/parse-nfsroot.sh +@@ -24,6 +24,7 @@ + # + + type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh ++ . /lib/nfs-lib.sh + + # This script is sourced, so root should be set. But let's be paranoid + [ -z "$root" ] && root=$(getarg root=) +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index 207a2b5c..c53cd13b 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -579,39 +579,6 @@ else + } + fi + +-# root=nfs:[:][:] +-# root=nfs4:[:][:] +-nfsroot_to_var() { +- # strip nfs[4]: +- local arg="$@:" +- nfs="${arg%%:*}" +- arg="${arg##$nfs:}" +- +- # check if we have a server +- if strstr "$arg" ':/' ; then +- server="${arg%%:/*}" +- arg="/${arg##*:/}" +- fi +- +- path="${arg%%:*}" +- +- # rest are options +- options="${arg##$path}" +- # strip leading ":" +- options="${options##:}" +- # strip ":" +- options="${options%%:}" +- +- # Does it really start with '/'? +- [ -n "${path%%/*}" ] && path="error"; +- +- #Fix kernel legacy style separating path and options with ',' +- if [ "$path" != "${path#*,}" ] ; then +- options=${path#*,} +- path=${path%%,*} +- fi +-} +- + # Create udev rule match for a device with its device name, or the udev property + # ID_FS_UUID or ID_FS_LABEL + # + diff --git a/0008.patch b/0008.patch new file mode 100644 index 0000000..f6e89f1 --- /dev/null +++ b/0008.patch @@ -0,0 +1,26 @@ +From 7a04712ad0efa9afa3759656ea1b26db40a8a29e Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Mon, 21 Jan 2019 14:40:06 +0100 +Subject: [PATCH] 95zfcp_rules/parse-zfcp.sh: remove rule existence check + +Reference: bsc#1008352 + +Original-Patch-By: Michal Suchanek +--- + modules.d/95zfcp_rules/parse-zfcp.sh | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh +index 7defb04f..2b62012b 100755 +--- a/modules.d/95zfcp_rules/parse-zfcp.sh ++++ b/modules.d/95zfcp_rules/parse-zfcp.sh +@@ -22,8 +22,6 @@ create_udev_rule() { + return 0; + fi + +- [ -e ${_rule} ] && return 0 +- + if [ ! -f "$_rule" ] ; then + cat > $_rule < +Date: Wed, 29 Jan 2020 23:53:29 +0100 +Subject: [PATCH] dracut.sh: don't call fsfreeze on subvol of root file system + +dracut.sh already doesn't call fsfreeze if the output file is on +the root file system. For btrfs, however, this is not sufficient. +Because fsfreeze is a superblock operation, and all btrfs subvolumes +share the same superblock, fsfreeze may freeze the entire system +if the subvolume on which the output file is written and / are +subvolumes of the same file system. Avoid this by comparing file +system UUIDs for btrfs. + +Fixes: de576db3c225 ("call fsfreeze(8) on /boot to flush initramfs data & metadata to media") +--- + dracut.sh | 36 +++++++++++++++++++++++++++++++++++- + 1 file changed, 35 insertions(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index af346f3a..c14f6c0b 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -2075,6 +2075,40 @@ fi + + command -v restorecon &>/dev/null && restorecon -- "$outfile" + ++btrfs_uuid() { ++ btrfs filesystem show "$1" | sed -n '1s/^.*uuid: //p' ++} ++ ++freeze_ok_for_btrfs() { ++ local mnt uuid1 uuid2 ++ # If the output file is on btrfs, we need to make sure that it's ++ # not on a subvolume of the same file system as the root FS. ++ # Otherwise, fsfreeze() might freeze the entire system. ++ # This is most conveniently checked by comparing the FS uuid. ++ ++ [[ "$(stat -f -c %T -- "/")" == "btrfs" ]] || return 0 ++ mnt=$(stat -c %m -- "$1") ++ uuid1=$(btrfs_uuid "$mnt") ++ uuid2=$(btrfs_uuid "/") ++ [[ "$uuid1" && "$uuid2" && "$uuid1" != "$uuid2" ]] ++} ++ ++freeze_ok_for_fstype() { ++ local outfile=$1 ++ local fstype ++ ++ [[ "$(stat -c %m -- "$outfile")" == "/" ]] && return 1 ++ fstype=$(stat -f -c %T -- "$outfile") ++ case $fstype in ++ msdos) ++ return 1;; ++ btrfs) ++ freeze_ok_for_btrfs "$outfile";; ++ *) ++ return 0;; ++ esac ++} ++ + # We sync/fsfreeze only if we're operating on a live booted system. + # It's possible for e.g. `kernel` to be installed as an RPM BuildRequires or equivalent, + # and there's no reason to sync, and *definitely* no reason to fsfreeze. +@@ -2087,7 +2121,7 @@ if test -d $dracutsysrootdir/run/systemd/system; then + fi + + # use fsfreeze only if we're not writing to / +- if [[ "$(stat -c %m -- "$outfile")" != "/" && "$(stat -f -c %T -- "$outfile")" != "msdos" ]]; then ++ if [[ "$(stat -c %m -- "$outfile")" != "/" ]] && freeze_ok_for_fstype "$outfile"; then + if ! $(fsfreeze -f $(dirname "$outfile") 2>/dev/null && fsfreeze -u $(dirname "$outfile") 2>/dev/null); then + dinfo "dracut: warning: could not fsfreeze $(dirname "$outfile")" + fi + diff --git a/0010.patch b/0010.patch new file mode 100644 index 0000000..4cec891 --- /dev/null +++ b/0010.patch @@ -0,0 +1,38 @@ +From bc1e69b691e6d25722b64e1df58a35e3be977801 Mon Sep 17 00:00:00 2001 +From: Topi Miettinen +Date: Sun, 1 Mar 2020 10:45:16 +0200 +Subject: [PATCH] Use TMPDIR if available + +Use environment variable TMPDIR (typically /run/user/$UID) as default +temporary directory, if available. This should be more private +location than /var/tmp. Path specified with --tmpdir is takes +precedence over TMPDIR and /var/tmp is still used as last resort if +neither TMPDIR is set nor --tmpdir is used. + +Signed-off-by: Topi Miettinen +--- + dracut.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index c14f6c0b..ab82cbc9 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -140,7 +140,7 @@ Creates initial ramdisk images for preloading modules + --confdir [DIR] Specify configuration directory to use *.conf files + from. Default: /etc/dracut.conf.d + --tmpdir [DIR] Temporary directory to be used instead of default +- /var/tmp. ++ ${TMPDIR:-/var/tmp}. + -r, --sysroot [DIR] Specify sysroot directory to collect files from. + -l, --local Local mode. Use modules from the current working + directory instead of the system-wide installed in +@@ -765,6 +765,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l)) + [[ $dracutbasedir ]] || dracutbasedir=$dracutsysrootdir/usr/lib/dracut + [[ $fw_dir ]] || fw_dir="$dracutsysrootdir/lib/firmware/updates:$dracutsysrootdir/lib/firmware:$dracutsysrootdir/lib/firmware/$kernel" + [[ $tmpdir_l ]] && tmpdir="$tmpdir_l" ++[[ $tmpdir ]] && tmpdir="$TMPDIR" + [[ $tmpdir ]] || tmpdir=$dracutsysrootdir/var/tmp + [[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS + [[ $compress_l ]] && compress=$compress_l + diff --git a/0011.patch b/0011.patch new file mode 100644 index 0000000..7753b55 --- /dev/null +++ b/0011.patch @@ -0,0 +1,17 @@ +From 2293609dcba01f5bf256b4245896927d4719a273 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Tue, 24 Jul 2018 19:38:30 +0200 +Subject: [PATCH] 95dcssblk: fix script permissions + +--- + modules.d/95dcssblk/module-setup.sh | 0 + modules.d/95dcssblk/parse-dcssblk.sh | 0 + 2 files changed, 0 insertions(+), 0 deletions(-) + +diff --git a/modules.d/95dcssblk/module-setup.sh b/modules.d/95dcssblk/module-setup.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/95dcssblk/parse-dcssblk.sh b/modules.d/95dcssblk/parse-dcssblk.sh +old mode 100644 +new mode 100755 + diff --git a/0012.patch b/0012.patch new file mode 100644 index 0000000..a956e76 --- /dev/null +++ b/0012.patch @@ -0,0 +1,32 @@ +From a76aa8e39016a8564adb0f18f93bbf2e15d3243f Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Sun, 8 Mar 2020 05:47:50 +0300 +Subject: [PATCH] Makefile: fix VERSION again + +The variable is not undefined anymore after the first assignment, so +we should check if variable is empty instead. +--- + Makefile | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index c69e2dfc..02e2c4b5 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,9 +1,13 @@ + -include dracut-version.sh + + DRACUT_MAIN_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --abbrev=0 --tags --always 2>/dev/null || :) +-DRACUT_MAIN_VERSION ?= $(DRACUT_VERSION) ++ifeq ($(DRACUT_MAIN_VERSION),) ++DRACUT_MAIN_VERSION = $(DRACUT_VERSION) ++endif + DRACUT_FULL_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --tags --always 2>/dev/null || :) +-DRACUT_FULL_VERSION ?= $(DRACUT_VERSION) ++ifeq ($(DRACUT_FULL_VERSION),) ++DRACUT_FULL_VERSION = $(DRACUT_VERSION) ++endif + + -include Makefile.inc + + diff --git a/0013.patch b/0013.patch new file mode 100644 index 0000000..47e7aaf --- /dev/null +++ b/0013.patch @@ -0,0 +1,26 @@ +From 7fb8f939a52a904b1860e303a6a7fe69ba0d2ceb Mon Sep 17 00:00:00 2001 +From: Radek Vykydal +Date: Tue, 10 Mar 2020 10:48:21 +0100 +Subject: [PATCH] Fix pre-trigger stage by replacing exit with return in + lldpad.sh + +Using exit makes the pre-trigger stage finish after running 03-lldpad.sh +pre-trigger hook. +--- + modules.d/95fcoe/lldpad.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95fcoe/lldpad.sh b/modules.d/95fcoe/lldpad.sh +index c32feeed..444c943e 100755 +--- a/modules.d/95fcoe/lldpad.sh ++++ b/modules.d/95fcoe/lldpad.sh +@@ -2,7 +2,7 @@ + + if ! getargbool 0 rd.nofcoe ; then + info "rd.nofcoe=0: skipping lldpad activation" +- exit 0 ++ return 0 + fi + + # Note lldpad will stay running after switchroot, the system initscripts + diff --git a/0014.patch b/0014.patch new file mode 100644 index 0000000..f357af7 --- /dev/null +++ b/0014.patch @@ -0,0 +1,39 @@ +From 8446c8f9deefcc6c47d96a128b1e9b23d8855a96 Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Mon, 24 Feb 2020 12:11:25 +0100 +Subject: [PATCH] 95fcoe: default rd.nofcoe to false + +rd.nofcoe should default to false, e.g. fcoe should be enabled unless +overwritten from the command line. +The same applies for lldapd.sh. +--- + modules.d/95fcoe/lldpad.sh | 2 +- + modules.d/95fcoe/parse-fcoe.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/95fcoe/lldpad.sh b/modules.d/95fcoe/lldpad.sh +index 444c943e..7faa2e19 100755 +--- a/modules.d/95fcoe/lldpad.sh ++++ b/modules.d/95fcoe/lldpad.sh +@@ -1,6 +1,6 @@ + #!/bin/bash + +-if ! getargbool 0 rd.nofcoe ; then ++if getargbool 0 rd.nofcoe ; then + info "rd.nofcoe=0: skipping lldpad activation" + return 0 + fi +diff --git a/modules.d/95fcoe/parse-fcoe.sh b/modules.d/95fcoe/parse-fcoe.sh +index 8bb55c6e..86f4331e 100755 +--- a/modules.d/95fcoe/parse-fcoe.sh ++++ b/modules.d/95fcoe/parse-fcoe.sh +@@ -13,7 +13,7 @@ + # fcoe=eth0:nodcb:vn2vn + # fcoe=4a:3f:4c:04:f8:d7:nodcb:fabric + +-if ! getargbool 0 rd.nofcoe ; then ++if getargbool 0 rd.nofcoe ; then + info "rd.nofcoe=0: skipping fcoe" + return 0 + fi + diff --git a/0015.patch b/0015.patch new file mode 100644 index 0000000..c758eb3 --- /dev/null +++ b/0015.patch @@ -0,0 +1,25 @@ +From 058739bf6941f4e96cc734fe4582abbb55baac38 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 11 Mar 2020 12:38:01 +0100 +Subject: [PATCH] README.md: fix github action badge links + +--- + README.md | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/README.md b/README.md +index c0ee79e2..9948bf97 100644 +--- a/README.md ++++ b/README.md +@@ -4,8 +4,8 @@ dracut + dracut is an event driven initramfs infrastructure. + + [![Build Status](https://travis-ci.org/dracutdevs/dracut.svg?branch=master)](https://travis-ci.org/dracutdevs/dracut) +-![Fedora-30](https://github.com/dracutdevs/dracut/workflows/Fedora-30/badge.svg?branch=master) +-![Fedora-31](https://github.com/dracutdevs/dracut/workflows/Fedora-31/badge.svg?branch=master) ++[![Fedora-30](https://github.com/dracutdevs/dracut/workflows/Fedora-30/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-30) ++[![Fedora-31](https://github.com/dracutdevs/dracut/workflows/Fedora-31/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-31) + + dracut (the tool) is used to create an initramfs image by copying tools + and files from an installed system and combining it with the + diff --git a/0016.patch b/0016.patch new file mode 100644 index 0000000..2f938e2 --- /dev/null +++ b/0016.patch @@ -0,0 +1,28 @@ +From 0402b3777b1c64bd716f588ff7457b905e98489d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 11 Mar 2020 12:56:52 +0100 +Subject: [PATCH] btrfs: force preload btrfs module + +fixes https://github.com/dracutdevs/dracut/issues/658 + +raid6_pq and xor takes time doing benchmarking + +[ 3.983009] request_module fs-btrfs succeeded, but still no fs? +--- + modules.d/90btrfs/module-setup.sh | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh +index b0d0058b..66a254e1 100755 +--- a/modules.d/90btrfs/module-setup.sh ++++ b/modules.d/90btrfs/module-setup.sh +@@ -48,5 +48,7 @@ install() { + + inst_multiple -o btrfsck btrfs-zero-log + inst $(command -v btrfs) /sbin/btrfs ++ # Hack for slow machines ++ # see https://github.com/dracutdevs/dracut/issues/658 ++ echo "rd.driver.pre=btrfs" > ${initdir}/etc/cmdline.d/00-btrfs.conf + } +- + diff --git a/0017.patch b/0017.patch new file mode 100644 index 0000000..51c10e8 --- /dev/null +++ b/0017.patch @@ -0,0 +1,39 @@ +From fc6f458c3becd55277d1ab87d1608f0fe1fccf08 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 11 Mar 2020 13:14:26 +0100 +Subject: [PATCH] TEST-12-RAID-DEG/create-root.sh: more udevadm settle + +--- + test/TEST-12-RAID-DEG/create-root.sh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh +index c210b582..f40d2500 100755 +--- a/test/TEST-12-RAID-DEG/create-root.sh ++++ b/test/TEST-12-RAID-DEG/create-root.sh +@@ -20,7 +20,7 @@ echo "The passphrase is test" + set -e + cryptsetup luksOpen /dev/md0 dracut_crypt_test /tmp/mduuid + . /tmp/mduuid ++udevadm settle + eval $(udevadm info --query=env --name=/dev/md0|while read line || [ -n "$line" ]; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;) + { echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID; echo "ID_FS_UUID=$ID_FS_UUID";} | dd oflag=direct,dsync of=/dev/sda + diff --git a/0018.patch b/0018.patch new file mode 100644 index 0000000..825bae8 --- /dev/null +++ b/0018.patch @@ -0,0 +1,46 @@ +From 3dcaa97ca4dcfa8092252a22df62c60941e59ce3 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Wed, 11 Mar 2020 09:40:50 +0100 +Subject: [PATCH] network-manager: ensure that nm-run.sh is executed when + needed + +The network-manager command line hook must install a +initqueue/finished hook to ensure that nm-run.sh is executed when +there are network connections to activate. + +Fixes: #694 +--- + modules.d/35network-manager/nm-config.sh | 11 +++++++++++ + modules.d/35network-manager/nm-run.sh | 2 ++ + 2 files changed, 13 insertions(+) + +diff --git a/modules.d/35network-manager/nm-config.sh b/modules.d/35network-manager/nm-config.sh +index 1efa737c..39a1c8bd 100755 +--- a/modules.d/35network-manager/nm-config.sh ++++ b/modules.d/35network-manager/nm-config.sh +@@ -5,3 +5,14 @@ if [ -n "$netroot" ] || [ -e /tmp/net.ifaces ]; then + fi + + /usr/libexec/nm-initrd-generator -- $(getcmdline) ++ ++if getargbool 0 rd.neednet; then ++ for i in /usr/lib/NetworkManager/system-connections/* \ ++ /run/NetworkManager/system-connections/* \ ++ /etc/NetworkManager/system-connections/* \ ++ /etc/sysconfig/network-scripts/ifcfg-*; do ++ [ -f "$i" ] || continue ++ echo '[ -f /tmp/nm.done ]' >$hookdir/initqueue/finished/nm.sh ++ break ++ done ++fi +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index 4079b735..fc5280a1 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -22,3 +22,5 @@ do + source_hook initqueue/online $ifname + /sbin/netroot $ifname + done ++ ++> /tmp/nm.done + diff --git a/0019.patch b/0019.patch new file mode 100644 index 0000000..33328e9 --- /dev/null +++ b/0019.patch @@ -0,0 +1,344 @@ +From a22ab24d5371cbd73b18b27e98e980e45e39ff5f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 12 Mar 2020 11:55:37 +0100 +Subject: [PATCH] test: use dd from /dev/zero, instead of creating files with a + hole + +--- + test/TEST-01-BASIC/test.sh | 2 +- + test/TEST-02-SYSTEMD/test.sh | 2 +- + test/TEST-03-USR-MOUNT/test.sh | 4 ++-- + test/TEST-04-FULL-SYSTEMD/test.sh | 4 ++-- + test/TEST-10-RAID/test.sh | 2 +- + test/TEST-11-LVM/test.sh | 2 +- + test/TEST-12-RAID-DEG/test.sh | 10 +++++----- + test/TEST-13-ENC-RAID-LVM/test.sh | 2 +- + test/TEST-14-IMSM/test.sh | 8 ++++---- + test/TEST-15-BTRFSRAID/test.sh | 2 +- + test/TEST-17-LVM-THIN/test.sh | 2 +- + test/TEST-20-NFS/test.sh | 2 +- + test/TEST-30-ISCSI/test.sh | 10 +++++----- + test/TEST-35-ISCSI-MULTI/test.sh | 10 +++++----- + test/TEST-40-NBD/test.sh | 8 ++++---- + test/TEST-50-MULTINIC/test.sh | 2 +- + test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh | 2 +- + 17 files changed, 37 insertions(+), 37 deletions(-) + +diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh +index c47098ea..668a35d8 100755 +--- a/test/TEST-01-BASIC/test.sh ++++ b/test/TEST-01-BASIC/test.sh +@@ -20,7 +20,7 @@ test_run() { + test_setup() { + rm -f -- $TESTDIR/root.ext3 + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=80 ++ dd if=/dev/zero of=$TESTDIR/root.ext3 bs=1M count=80 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh +index cf1fcaa5..5c0a54de 100755 +--- a/test/TEST-02-SYSTEMD/test.sh ++++ b/test/TEST-02-SYSTEMD/test.sh +@@ -16,7 +16,7 @@ test_run() { + test_setup() { + rm -f -- $TESTDIR/root.ext3 + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=80 ++ dd if=/dev/zero of=$TESTDIR/root.ext3 bs=1M count=80 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh +index 5de7f4a1..5190f220 100755 +--- a/test/TEST-03-USR-MOUNT/test.sh ++++ b/test/TEST-03-USR-MOUNT/test.sh +@@ -41,8 +41,8 @@ test_setup() { + rm -f -- $TESTDIR/root.btrfs + rm -f -- $TESTDIR/usr.btrfs + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.btrfs bs=1M seek=160 +- dd if=/dev/null of=$TESTDIR/usr.btrfs bs=1M seek=160 ++ dd if=/dev/zero of=$TESTDIR/root.btrfs bs=1M count=160 ++ dd if=/dev/zero of=$TESTDIR/usr.btrfs bs=1M count=160 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh +index 3a544d7c..e3b23327 100755 +--- a/test/TEST-04-FULL-SYSTEMD/test.sh ++++ b/test/TEST-04-FULL-SYSTEMD/test.sh +@@ -42,8 +42,8 @@ test_setup() { + rm -f -- $TESTDIR/root.btrfs + rm -f -- $TESTDIR/usr.btrfs + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.btrfs bs=1M seek=320 +- dd if=/dev/null of=$TESTDIR/usr.btrfs bs=1M seek=320 ++ dd if=/dev/zero of=$TESTDIR/root.btrfs bs=1M count=320 ++ dd if=/dev/zero of=$TESTDIR/usr.btrfs bs=1M count=320 + + export kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh +index 981c1b9d..4203cfdc 100755 +--- a/test/TEST-10-RAID/test.sh ++++ b/test/TEST-10-RAID/test.sh +@@ -19,7 +19,7 @@ test_setup() { + DISKIMAGE=$TESTDIR/TEST-10-RAID-root.img + # Create the blank file to use as a root filesystem + rm -f -- $DISKIMAGE +- dd if=/dev/null of=$DISKIMAGE bs=1M seek=128 ++ dd if=/dev/zero of=$DISKIMAGE bs=1M count=128 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh +index c718ad57..22643758 100755 +--- a/test/TEST-11-LVM/test.sh ++++ b/test/TEST-11-LVM/test.sh +@@ -16,7 +16,7 @@ test_run() { + + test_setup() { + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=80 ++ dd if=/dev/zero of=$TESTDIR/root.ext2 bs=1M count=80 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh +index f8dc08d9..09eb28bb 100755 +--- a/test/TEST-12-RAID-DEG/test.sh ++++ b/test/TEST-12-RAID-DEG/test.sh +@@ -25,7 +25,7 @@ client_run() { + return 1; + fi + rm -f -- $TESTDIR/marker.img +- dd if=/dev/null of=$TESTDIR/marker.img bs=1M seek=40 ++ dd if=/dev/zero of=$TESTDIR/marker.img bs=1M count=40 + + echo "CLIENT TEST END: $@ [OK]" + return 0 +@@ -56,10 +56,10 @@ test_run() { + test_setup() { + # Create the blank file to use as a root filesystem + rm -f -- $TESTDIR/marker.img +- dd if=/dev/null of=$TESTDIR/marker.img bs=1M seek=40 +- dd if=/dev/null of=$TESTDIR/disk1.img bs=1M seek=35 +- dd if=/dev/null of=$TESTDIR/disk2.img bs=1M seek=35 +- dd if=/dev/null of=$TESTDIR/disk3.img bs=1M seek=35 ++ dd if=/dev/zero of=$TESTDIR/marker.img bs=1M count=40 ++ dd if=/dev/zero of=$TESTDIR/disk1.img bs=1M count=35 ++ dd if=/dev/zero of=$TESTDIR/disk2.img bs=1M count=35 ++ dd if=/dev/zero of=$TESTDIR/disk3.img bs=1M count=35 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh +index 580ade85..16ee8e66 100755 +--- a/test/TEST-13-ENC-RAID-LVM/test.sh ++++ b/test/TEST-13-ENC-RAID-LVM/test.sh +@@ -50,7 +50,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=134 ++ dd if=/dev/zero of=$TESTDIR/root.ext2 bs=1M count=134 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh +index 2f153ba3..1f822e4e 100755 +--- a/test/TEST-14-IMSM/test.sh ++++ b/test/TEST-14-IMSM/test.sh +@@ -11,7 +11,7 @@ client_run() { + echo "CLIENT TEST START: $@" + + rm -f -- $TESTDIR/marker.img +- dd if=/dev/null of=$TESTDIR/marker.img bs=1M seek=1 ++ dd if=/dev/zero of=$TESTDIR/marker.img bs=1M count=1 + + $testdir/run-qemu \ + -drive format=raw,index=0,media=disk,file=$TESTDIR/marker.img \ +@@ -53,9 +53,9 @@ test_setup() { + rm -f -- $TESTDIR/marker.img + rm -f -- $TESTDIR/disk1 + rm -f -- $TESTDIR/disk2 +- dd if=/dev/null of=$TESTDIR/marker.img bs=1M seek=1 +- dd if=/dev/null of=$TESTDIR/disk1 bs=1M seek=104 +- dd if=/dev/null of=$TESTDIR/disk2 bs=1M seek=104 ++ dd if=/dev/zero of=$TESTDIR/marker.img bs=1M count=1 ++ dd if=/dev/zero of=$TESTDIR/disk1 bs=1M count=104 ++ dd if=/dev/zero of=$TESTDIR/disk2 bs=1M count=104 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh +index 435e52be..227daaba 100755 +--- a/test/TEST-15-BTRFSRAID/test.sh ++++ b/test/TEST-15-BTRFSRAID/test.sh +@@ -21,7 +21,7 @@ test_setup() { + # Create the blank file to use as a root filesystem + DISKIMAGE=$TESTDIR/TEST-15-BTRFSRAID-root.img + rm -f -- $DISKIMAGE +- dd if=/dev/null of=$DISKIMAGE bs=1M seek=1024 ++ dd if=/dev/zero of=$DISKIMAGE bs=1M count=1024 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-17-LVM-THIN/test.sh b/test/TEST-17-LVM-THIN/test.sh +index e4755f78..8ab30a45 100755 +--- a/test/TEST-17-LVM-THIN/test.sh ++++ b/test/TEST-17-LVM-THIN/test.sh +@@ -16,7 +16,7 @@ test_run() { + + test_setup() { + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext2 bs=1M seek=92 ++ dd if=/dev/zero of=$TESTDIR/root.ext2 bs=1M count=92 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh +index 9d5493c7..53d1d804 100755 +--- a/test/TEST-20-NFS/test.sh ++++ b/test/TEST-20-NFS/test.sh +@@ -225,7 +225,7 @@ test_run() { + + test_setup() { + # Make server root +- dd if=/dev/null of=$TESTDIR/server.ext3 bs=1M seek=120 ++ dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=120 + mke2fs -j -F $TESTDIR/server.ext3 + mkdir $TESTDIR/mnt + mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt +diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh +index a8aee221..2f37f5c9 100755 +--- a/test/TEST-30-ISCSI/test.sh ++++ b/test/TEST-30-ISCSI/test.sh +@@ -129,9 +129,9 @@ test_setup() { + fi + + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=45 +- dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=45 +- dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=45 ++ dd if=/dev/zero of=$TESTDIR/root.ext3 bs=1M count=45 ++ dd if=/dev/zero of=$TESTDIR/iscsidisk2.img bs=1M count=45 ++ dd if=/dev/zero of=$TESTDIR/iscsidisk3.img bs=1M count=45 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +@@ -182,7 +182,7 @@ test_setup() { + + + # Need this so kvm-qemu will boot (needs non-/dev/zero local disk) +- if ! dd if=/dev/null of=$TESTDIR/client.img bs=1M seek=1; then ++ if ! dd if=/dev/zero of=$TESTDIR/client.img bs=1M count=1; then + echo "Unable to make client sdb image" 1>&2 + return 1 + fi +@@ -198,7 +198,7 @@ test_setup() { + rm -- $TESTDIR/client.img + + # Make server root +- dd if=/dev/null of=$TESTDIR/server.ext3 bs=1M seek=60 ++ dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=60 + mkfs.ext3 -j -F $TESTDIR/server.ext3 + mkdir $TESTDIR/mnt + mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt +diff --git a/test/TEST-35-ISCSI-MULTI/test.sh b/test/TEST-35-ISCSI-MULTI/test.sh +index 740ab918..54700609 100755 +--- a/test/TEST-35-ISCSI-MULTI/test.sh ++++ b/test/TEST-35-ISCSI-MULTI/test.sh +@@ -144,9 +144,9 @@ test_setup() { + fi + + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/root.ext3 bs=1M seek=90 +- dd if=/dev/null of=$TESTDIR/iscsidisk2.img bs=1M seek=90 +- dd if=/dev/null of=$TESTDIR/iscsidisk3.img bs=1M seek=90 ++ dd if=/dev/zero of=$TESTDIR/root.ext3 bs=1M count=90 ++ dd if=/dev/zero of=$TESTDIR/iscsidisk2.img bs=1M count=90 ++ dd if=/dev/zero of=$TESTDIR/iscsidisk3.img bs=1M count=90 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +@@ -197,7 +197,7 @@ test_setup() { + + + # Need this so kvm-qemu will boot (needs non-/dev/zero local disk) +- if ! dd if=/dev/null of=$TESTDIR/client.img bs=1M seek=1; then ++ if ! dd if=/dev/zero of=$TESTDIR/client.img bs=1M count=1; then + echo "Unable to make client sdb image" 1>&2 + return 1 + fi +@@ -213,7 +213,7 @@ test_setup() { + rm -- $TESTDIR/client.img + + # Make server root +- dd if=/dev/null of=$TESTDIR/server.ext3 bs=1M seek=60 ++ dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=60 + mkfs.ext3 -j -F $TESTDIR/server.ext3 + mkdir $TESTDIR/mnt + mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt +diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh +index f06c36c3..b6c45f01 100755 +--- a/test/TEST-40-NBD/test.sh ++++ b/test/TEST-40-NBD/test.sh +@@ -209,8 +209,8 @@ client_run() { + + make_encrypted_root() { + # Create the blank file to use as a root filesystem +- dd if=/dev/null of=$TESTDIR/encrypted.ext2 bs=1M seek=80 +- dd if=/dev/null of=$TESTDIR/flag.img bs=1M seek=1 ++ dd if=/dev/zero of=$TESTDIR/encrypted.ext2 bs=1M count=80 ++ dd if=/dev/zero of=$TESTDIR/flag.img bs=1M count=1 + + kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay +@@ -280,7 +280,7 @@ make_encrypted_root() { + } + + make_client_root() { +- dd if=/dev/null of=$TESTDIR/nbd.ext2 bs=1M seek=120 ++ dd if=/dev/zero of=$TESTDIR/nbd.ext2 bs=1M count=120 + mke2fs -F -j $TESTDIR/nbd.ext2 + mkdir $TESTDIR/mnt + if ! mount -o loop $TESTDIR/nbd.ext2 $TESTDIR/mnt; then +@@ -325,7 +325,7 @@ make_client_root() { + } + + make_server_root() { +- dd if=/dev/null of=$TESTDIR/server.ext2 bs=1M seek=120 ++ dd if=/dev/zero of=$TESTDIR/server.ext2 bs=1M count=120 + mke2fs -F $TESTDIR/server.ext2 + mkdir $TESTDIR/mnt + mount -o loop $TESTDIR/server.ext2 $TESTDIR/mnt +diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh +index b4326d5a..be87caab 100755 +--- a/test/TEST-50-MULTINIC/test.sh ++++ b/test/TEST-50-MULTINIC/test.sh +@@ -173,7 +173,7 @@ test_client() { + + test_setup() { + # Make server root +- dd if=/dev/null of="$TESTDIR"/server.ext3 bs=1M seek=120 ++ dd if=/dev/zero of="$TESTDIR"/server.ext3 bs=1M count=120 + mke2fs -j -F -- "$TESTDIR"/server.ext3 + mkdir -- "$TESTDIR"/mnt + mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt +diff --git a/test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh b/test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh +index 72826a5d..accfa006 100755 +--- a/test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh ++++ b/test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh +@@ -199,7 +199,7 @@ root=nfs:192.168.50.1:/nfs/client bootdev=br0 + + test_setup() { + # Make server root +- dd if=/dev/null of="$TESTDIR"/server.ext3 bs=1M seek=120 ++ dd if=/dev/zero of="$TESTDIR"/server.ext3 bs=1M count=120 + mke2fs -j -F -- "$TESTDIR"/server.ext3 + mkdir -- "$TESTDIR"/mnt + mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt + diff --git a/0020.patch b/0020.patch new file mode 100644 index 0000000..ce54716 --- /dev/null +++ b/0020.patch @@ -0,0 +1,53 @@ +From d5bfaf58ab2098737bad92008916d39a0ec361db Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 12 Mar 2020 12:50:08 +0100 +Subject: [PATCH] github actions: use test container directly + +--- + .github/workflows/fedora-30.yml | 6 ++++-- + .github/workflows/fedora-31.yml | 6 ++++-- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/.github/workflows/fedora-30.yml b/.github/workflows/fedora-30.yml +index 345ed0d4..1a3d3e8d 100644 +--- a/.github/workflows/fedora-30.yml ++++ b/.github/workflows/fedora-30.yml +@@ -13,7 +13,9 @@ on: + jobs: + test: + runs-on: ubuntu-latest +- #container: quay.io/haraldh/dracut-fedora:30 ++ container: ++ image: quay.io/haraldh/dracut-fedora:30 ++ options: "--privileged" + timeout-minutes: 45 + strategy: + matrix: +@@ -45,4 +47,4 @@ jobs: + fetch-depth: 0 + + - name: "TEST-${{ matrix.test }}" +- run: docker run --privileged -v $(pwd)/:/dracut quay.io/haraldh/dracut-fedora:30 /dracut/fedora-test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }} ++ run: ./fedora-test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }} +diff --git a/.github/workflows/fedora-31.yml b/.github/workflows/fedora-31.yml +index 20ad62c2..aa829df2 100644 +--- a/.github/workflows/fedora-31.yml ++++ b/.github/workflows/fedora-31.yml +@@ -13,7 +13,9 @@ on: + jobs: + test: + runs-on: ubuntu-latest +- #container: quay.io/haraldh/dracut-fedora:30 ++ container: ++ image: quay.io/haraldh/dracut-fedora:31 ++ options: "--privileged" + timeout-minutes: 45 + strategy: + matrix: +@@ -51,4 +53,4 @@ jobs: + fetch-depth: 0 + + - name: "TEST-${{ matrix.test }}" +- run: docker run --privileged -v $(pwd)/:/dracut quay.io/haraldh/dracut-fedora:31 /dracut/fedora-test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }} ++ run: ./fedora-test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }} + diff --git a/0021.patch b/0021.patch new file mode 100644 index 0000000..4163d10 --- /dev/null +++ b/0021.patch @@ -0,0 +1,23 @@ +From 3b396a7d5092cec4c7b185bda63906069b8ec320 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 12 Mar 2020 13:22:10 +0100 +Subject: [PATCH] TEST-41-NBD-NM/Makefile: should be based on TEST-40-NBD not + TEST-20-NFS + +--- + test/TEST-41-NBD-NM/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/TEST-41-NBD-NM/Makefile b/test/TEST-41-NBD-NM/Makefile +index b19122a1..47c90c31 100644 +--- a/test/TEST-41-NBD-NM/Makefile ++++ b/test/TEST-41-NBD-NM/Makefile +@@ -1,6 +1,6 @@ + .PHONY: all setup clean run + +-BASETEST=../TEST-20-NFS ++BASETEST=../TEST-40-NBD + + all: + @$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) all + diff --git a/0022.patch b/0022.patch new file mode 100644 index 0000000..c0b5bef --- /dev/null +++ b/0022.patch @@ -0,0 +1,30 @@ +From 7069132ec7e94a3274aa1b3b3b6e339066118a4d Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 10 Mar 2020 15:18:37 +0100 +Subject: [PATCH] network: fix glob matching ipv6 addresses + +In this case we want to cover three cases +1) ip_address:ip_address +2) number:macaddress +3) :macaddress + +We consider something an IPv6 address if it starts with number and +contains ":", but IPv6 addresses are in hexa. +--- + 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 16730e5b..7f185fdd 100755 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -510,7 +510,7 @@ ip_to_var() { + [ -n "$6" ] && dev=$6 + [ -n "$7" ] && autoconf=$7 + case "$8" in +- [0-9]*:*|[0-9]*.[0-9]*.[0-9]*.[0-9]*) ++ [0-9a-fA-F]*:*|[0-9]*.[0-9]*.[0-9]*.[0-9]*) + dns1="$8" + [ -n "$9" ] && dns2="$9" + ;; + diff --git a/0023.patch b/0023.patch new file mode 100644 index 0000000..0badac7 --- /dev/null +++ b/0023.patch @@ -0,0 +1,90 @@ +From ca8ca19091a1822ee813657764263f76ffaa4ebb Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 12 Mar 2020 13:01:46 +0100 +Subject: [PATCH] .travis.yml: reformat + +--- + .travis.yml | 56 ++++++++++++++++++++++++++++---------------------------- + 1 file changed, 28 insertions(+), 28 deletions(-) + +diff --git a/.travis.yml b/.travis.yml +index e9f62a98..a82e1778 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -2,34 +2,34 @@ language: generic + dist: bionic + sudo: required + services: +-- docker ++ - docker + env: + matrix: +- - IMAGE=latest +- - IMAGE=latest TESTS=01 +- - IMAGE=latest TESTS=12 +- - IMAGE=latest TESTS=20 +- - IMAGE=latest TESTS=21 +- - IMAGE=latest TESTS=50 +- - IMAGE=latest TESTS=51 +- - IMAGE=latest TESTS=30 +- - IMAGE=latest TESTS=31 +- - IMAGE=latest TESTS=35 +- - IMAGE=latest TESTS=36 +- - IMAGE=latest TESTS=40 +- - IMAGE=latest TESTS=41 +- - IMAGE=latest TESTS=60 +- - IMAGE=latest TESTS=61 +- - IMAGE=latest TESTS=99 +- - IMAGE=latest TESTS=02 +- - IMAGE=latest TESTS=03 +- - IMAGE=latest TESTS=04 +- - IMAGE=latest TESTS=10 +- - IMAGE=latest TESTS=11 +- - IMAGE=latest TESTS=13 +- - IMAGE=latest TESTS=14 +- - IMAGE=latest TESTS=15 +- - IMAGE=latest TESTS=17 ++ - IMAGE=latest ++ - IMAGE=latest TESTS=01 ++ - IMAGE=latest TESTS=12 ++ - IMAGE=latest TESTS=20 ++ - IMAGE=latest TESTS=21 ++ - IMAGE=latest TESTS=50 ++ - IMAGE=latest TESTS=51 ++ - IMAGE=latest TESTS=30 ++ - IMAGE=latest TESTS=31 ++ - IMAGE=latest TESTS=35 ++ - IMAGE=latest TESTS=36 ++ - IMAGE=latest TESTS=40 ++ - IMAGE=latest TESTS=41 ++ - IMAGE=latest TESTS=60 ++ - IMAGE=latest TESTS=61 ++ - IMAGE=latest TESTS=99 ++ - IMAGE=latest TESTS=02 ++ - IMAGE=latest TESTS=03 ++ - IMAGE=latest TESTS=04 ++ - IMAGE=latest TESTS=10 ++ - IMAGE=latest TESTS=11 ++ - IMAGE=latest TESTS=13 ++ - IMAGE=latest TESTS=14 ++ - IMAGE=latest TESTS=15 ++ - IMAGE=latest TESTS=17 + + before_script: + - docker pull quay.io/haraldh/dracut-fedora:$IMAGE +@@ -44,12 +44,12 @@ before_script: + + script: + ## The test container is created with https://github.com/dracutdevs/fedora-container +-- docker run --privileged -it -v $(pwd)/:/dracut quay.io/haraldh/dracut-fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ "$TESTS" ++ - docker run --privileged -it -v $(pwd)/:/dracut quay.io/haraldh/dracut-fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ "$TESTS" + + notifications: + webhooks: + urls: +- - https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e ++ - https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e + on_success: change # options: [always|never|change] default: always + on_failure: always # options: [always|never|change] default: always + on_start: never # options: [always|never|change] default: always + diff --git a/0024.patch b/0024.patch new file mode 100644 index 0000000..ec3094d --- /dev/null +++ b/0024.patch @@ -0,0 +1,24 @@ +From 91418b13dc679947bb4d22ae6badcbf41b56c645 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 12 Mar 2020 13:44:08 +0100 +Subject: [PATCH] TEST-03-USR-MOUNT/test.sh: increase loglevel + +to debug the spurious fails +--- + test/TEST-03-USR-MOUNT/test.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh +index 5190f220..3bb479e4 100755 +--- a/test/TEST-03-USR-MOUNT/test.sh ++++ b/test/TEST-03-USR-MOUNT/test.sh +@@ -19,7 +19,7 @@ client_run() { + -drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \ + -drive format=raw,index=2,media=disk,file=$TESTDIR/result \ + -watchdog i6300esb -watchdog-action poweroff \ +- -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" \ ++ -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts loglevel=7 rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ + -initrd $TESTDIR/initramfs.testing + + if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/result; then + diff --git a/0025.patch b/0025.patch new file mode 100644 index 0000000..f1a6c78 --- /dev/null +++ b/0025.patch @@ -0,0 +1,27 @@ +From 97a931c7d9f8190115893a932f2e10292704cae4 Mon Sep 17 00:00:00 2001 +From: Dusty Mabe +Date: Fri, 13 Mar 2020 15:40:11 -0400 +Subject: [PATCH] don't prefer $TMPDIR over --tmpdir + +Ability to use `$TMPDIR` was introduced in bc1e69b but +causes the `--tmpdir` option on the command line to be +ignored. Switch to only using `$TMPDIR` if `--tmpdir` +wasn't specified. +--- + dracut.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index ab82cbc9..39fa3692 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -765,7 +765,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l)) + [[ $dracutbasedir ]] || dracutbasedir=$dracutsysrootdir/usr/lib/dracut + [[ $fw_dir ]] || fw_dir="$dracutsysrootdir/lib/firmware/updates:$dracutsysrootdir/lib/firmware:$dracutsysrootdir/lib/firmware/$kernel" + [[ $tmpdir_l ]] && tmpdir="$tmpdir_l" +-[[ $tmpdir ]] && tmpdir="$TMPDIR" ++[[ $tmpdir ]] || tmpdir="$TMPDIR" + [[ $tmpdir ]] || tmpdir=$dracutsysrootdir/var/tmp + [[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS + [[ $compress_l ]] && compress=$compress_l + diff --git a/0026.patch b/0026.patch new file mode 100644 index 0000000..551c1b7 --- /dev/null +++ b/0026.patch @@ -0,0 +1,32 @@ +From 17d62d12065c264d899609cf69e8d913fc84460d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= + +Date: Sat, 14 Mar 2020 11:44:47 +0700 +Subject: [PATCH] cryptroot-ask: no warn if /run/cryptsetup exist + +In either case: +- encrypted device is decrypted, udev will trigger device changes again, +- multiple encrypted device, + +cryptroot-ask will run multiple time, then report: +> mkdir: cannot create directory '/run/cryptsetup': File exists + +Pass `-p` into mkdir to ignore that warning. +--- + modules.d/90crypt/cryptroot-ask.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh +index e1f17975..97047ae9 100755 +--- a/modules.d/90crypt/cryptroot-ask.sh ++++ b/modules.d/90crypt/cryptroot-ask.sh +@@ -8,7 +8,7 @@ NEWROOT=${NEWROOT:-"/sysroot"} + + . /lib/dracut-lib.sh + +-mkdir -m 0700 /run/cryptsetup ++mkdir -p -m 0700 /run/cryptsetup + + # if device name is /dev/dm-X, convert to /dev/mapper/name + if [ "${1##/dev/dm-}" != "$1" ]; then + diff --git a/0027.patch b/0027.patch new file mode 100644 index 0000000..cedc590 --- /dev/null +++ b/0027.patch @@ -0,0 +1,50 @@ +From dfe2247a43d6a216d9af533825c9a103e3b056cd Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 23 Oct 2019 14:16:56 +0200 +Subject: [PATCH] dracut.sh: add check for invalid configuration files + +Emit a warning about possible misconfigured configuration files, where +the spaces around values are missing for +="" + +Better report a possible source of problems. We can fix annoying false +positives later. +--- + dracut.sh | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index 39fa3692..81c6d654 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -279,6 +279,14 @@ read_arg() { + fi + } + ++check_conf_file() ++{ ++ if grep -H -e '^[^#]*[+]=\("[^ ]\|.*[^ ]"\)' "$@"; then ++ printf '\ndracut: WARNING: +=" ": should have surrounding white spaces!\n' >&2 ++ printf 'dracut: WARNING: This will lead to unwanted side effects! Please fix the configuration file.\n\n' >&2 ++ fi ++} ++ + dropindirs_sort() + { + local suffix=$1; shift +@@ -703,10 +711,14 @@ if [[ ! -d $confdir ]]; then + fi + + # source our config file +-[[ -f $conffile ]] && . "$conffile" ++if [[ -f $conffile ]]; then ++ check_conf_file "$conffile" ++ . "$conffile" ++fi + + # source our config dir + for f in $(dropindirs_sort ".conf" "$confdir" "$dracutbasedir/dracut.conf.d"); do ++ check_conf_file "$f" + [[ -e $f ]] && . "$f" + done + + diff --git a/0028.patch b/0028.patch new file mode 100644 index 0000000..0b0a2f8 --- /dev/null +++ b/0028.patch @@ -0,0 +1,25 @@ +From c490ea8b2be52910c8ce70d08717cf1996c0d732 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Sat, 21 Apr 2018 00:11:17 +0200 +Subject: [PATCH] Make externally defined CFLAGS work + +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 02e2c4b5..0cc8b390 100644 +--- a/Makefile ++++ b/Makefile +@@ -18,8 +18,8 @@ pkglibdir ?= ${libdir}/dracut + sysconfdir ?= ${prefix}/etc + bindir ?= ${prefix}/bin + mandir ?= ${prefix}/share/man +-CFLAGS ?= -O2 -g -Wall +-CFLAGS += -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 $(KMOD_CFLAGS) ++CFLAGS ?= -O2 -g -Wall -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 ++CFLAGS += $(KMOD_CFLAGS) + bashcompletiondir ?= ${datadir}/bash-completion/completions + pkgconfigdatadir ?= $(datadir)/pkgconfig + + diff --git a/0029.patch b/0029.patch new file mode 100644 index 0000000..a88bb4a --- /dev/null +++ b/0029.patch @@ -0,0 +1,35 @@ +From db44331dc4513886e83e387604887033868c5214 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Fri, 13 Mar 2020 11:39:46 +0100 +Subject: [PATCH] Makefile: really make externally defined CFLAGS work + +The fix in aed52a6cfb43ebea372328fd5837c1f341c3f0df does not +work (second line will be ignored on override), so expand the implicitly +defined rule and add them there. +--- + Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 0cc8b390..7eb31847 100644 +--- a/Makefile ++++ b/Makefile +@@ -19,7 +19,6 @@ sysconfdir ?= ${prefix}/etc + bindir ?= ${prefix}/bin + mandir ?= ${prefix}/share/man + CFLAGS ?= -O2 -g -Wall -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 +-CFLAGS += $(KMOD_CFLAGS) + bashcompletiondir ?= ${datadir}/bash-completion/completions + pkgconfigdatadir ?= $(datadir)/pkgconfig + +@@ -50,6 +49,9 @@ manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages) + + all: dracut-version.sh dracut.pc dracut-install skipcpio/skipcpio + ++%.o : %.c ++ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(KMOD_CFLAGS) $< -o $@ ++ + DRACUT_INSTALL_OBJECTS = \ + install/dracut-install.o \ + install/hashmap.o\ + diff --git a/0030.patch b/0030.patch new file mode 100644 index 0000000..61a0353 --- /dev/null +++ b/0030.patch @@ -0,0 +1,33 @@ +From defb1611c771d9f05780aebb101baefde2f66874 Mon Sep 17 00:00:00 2001 +From: Sebastian Mitterle +Date: Thu, 19 Mar 2020 12:12:50 +0100 +Subject: [PATCH] dasd: only install /etc/dasd.conf if present + +`dasd.conf` needn't be present on system even if modules have been loaded. + +Check if file exists to avoid error message during kernel update +```bash +dracut-install: ERROR: installing '/etc/dasd.conf' +dracut: FAILED: /usr/lib/dracut/dracut-install -D /var/tmp/dracut.YvVRx5/initramfs -H /etc/dasd.conf +``` +--- + modules.d/95dasd/module-setup.sh | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh +index 2c49cd26..c71c8a08 100755 +--- a/modules.d/95dasd/module-setup.sh ++++ b/modules.d/95dasd/module-setup.sh +@@ -18,8 +18,9 @@ depends() { + install() { + inst_hook cmdline 30 "$moddir/parse-dasd.sh" + inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg +- if [[ $hostonly ]]; then +- inst -H /etc/dasd.conf ++ conf=/etc/dasd.conf ++ if [[ $hostonly && -f $conf ]] ; then ++ inst -H $conf + fi + inst_rules 56-dasd.rules + inst_rules 59-dasd.rules + diff --git a/0031.patch b/0031.patch new file mode 100644 index 0000000..08f52ff --- /dev/null +++ b/0031.patch @@ -0,0 +1,35 @@ +From b68930ed3dd29184f3e6c87582377e7501b3b276 Mon Sep 17 00:00:00 2001 +From: Patrick Talbert +Date: Wed, 18 Mar 2020 15:58:48 +0100 +Subject: [PATCH] dhclient-script: Fix typo in output of BOUND & BOUND6 cases + +No bonding going on here. + +Signed-off-by: Patrick Talbert +--- + modules.d/35network-legacy/dhclient-script.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/35network-legacy/dhclient-script.sh b/modules.d/35network-legacy/dhclient-script.sh +index 84b65e89..fd92752b 100755 +--- a/modules.d/35network-legacy/dhclient-script.sh ++++ b/modules.d/35network-legacy/dhclient-script.sh +@@ -164,7 +164,7 @@ case $reason in + ;; + + BOUND) +- echo "dhcp: BOND setting $netif" ++ echo "dhcp: BOUND setting up $netif" + unset layer2 + if [ -f /sys/class/net/$netif/device/layer2 ]; then + read layer2 < /sys/class/net/$netif/device/layer2 +@@ -223,7 +223,7 @@ case $reason in + ;; + + BOUND6) +- echo "dhcp: BOND6 setting $netif" ++ echo "dhcp: BOUND6 setting up $netif" + setup_interface6 + + set | while read line || [ -n "$line" ]; do + diff --git a/0032.patch b/0032.patch new file mode 100644 index 0000000..ba82eb4 --- /dev/null +++ b/0032.patch @@ -0,0 +1,33 @@ +From 3a043feea1d1d1d1d01762d95b725b9adef61562 Mon Sep 17 00:00:00 2001 +From: Alexander Sosedkin +Date: Thu, 26 Mar 2020 15:11:15 +0100 +Subject: [PATCH] url-lib: drop NSS if it's not in curl --version + +--- + modules.d/45url-lib/module-setup.sh | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/modules.d/45url-lib/module-setup.sh b/modules.d/45url-lib/module-setup.sh +index a99e0c56..258a9e16 100755 +--- a/modules.d/45url-lib/module-setup.sh ++++ b/modules.d/45url-lib/module-setup.sh +@@ -19,11 +19,13 @@ install() { + inst_simple "$moddir/url-lib.sh" "/lib/url-lib.sh" + inst_multiple -o ctorrent + inst_multiple curl +- # also install libs for curl https +- inst_libdir_file "libnsspem.so*" +- inst_libdir_file "libnsssysinit.so*" +- inst_libdir_file "libsoftokn3.so*" +- inst_libdir_file "libsqlite3.so*" ++ if curl --version | grep -qi '\bNSS\b'; then ++ # also install libs for curl https ++ inst_libdir_file "libnsspem.so*" ++ inst_libdir_file "libnsssysinit.so*" ++ inst_libdir_file "libsoftokn3.so*" ++ inst_libdir_file "libsqlite3.so*" ++ fi + + for _dir in $libdirs; do + [[ -d $dracutsysrootdir$_dir ]] || continue + diff --git a/0033.patch b/0033.patch new file mode 100644 index 0000000..411d7c1 --- /dev/null +++ b/0033.patch @@ -0,0 +1,100 @@ +From b8a92b715677d52dbc2b27a710b9816fd8b9a63b Mon Sep 17 00:00:00 2001 +From: Ben Howard +Date: Fri, 3 Apr 2020 13:32:44 -0600 +Subject: [PATCH] multipath: add automatic configuration for multipath + +Add support for 'rd.multipath=default' for using the default +configuration on boot. The intended purpose for this is to help support +ostree-based image boots from multipathed devices (such as Fedora and +Red Hat CoreOS). +--- + dracut.cmdline.7.asc | 3 +++ + modules.d/90multipath/module-setup.sh | 7 +++++-- + modules.d/90multipath/multipathd-configure.service | 19 +++++++++++++++++++ + modules.d/90multipath/multipathd.sh | 5 +++++ + 4 files changed, 32 insertions(+), 2 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 646f1f03..63074353 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -431,6 +431,9 @@ MULTIPATH + **rd.multipath=0**:: + disable multipath detection + ++**rd.multipath=default**:: ++ use default multipath settings ++ + FIPS + ~~~~ + **rd.fips**:: +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 48a9d09a..2bb7444b 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -83,11 +83,12 @@ install() { + dmsetup \ + kpartx \ + mpath_wait \ ++ mpathconf \ ++ mpathpersist \ + multipath \ + multipathd \ +- mpathpersist \ +- xdrgetuid \ + xdrgetprio \ ++ xdrgetuid \ + /etc/xdrdevices.conf \ + /etc/multipath.conf \ + /etc/multipath/* \ +@@ -109,7 +110,9 @@ install() { + fi + + if dracut_module_included "systemd"; then ++ inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service" + inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service" ++ systemctl -q --root "$initdir" enable multipathd-configure.service + systemctl -q --root "$initdir" enable multipathd.service + else + inst_hook pre-trigger 02 "$moddir/multipathd.sh" +diff --git a/modules.d/90multipath/multipathd-configure.service b/modules.d/90multipath/multipathd-configure.service +new file mode 100644 +index 00000000..de690615 +--- /dev/null ++++ b/modules.d/90multipath/multipathd-configure.service +@@ -0,0 +1,19 @@ ++[Unit] ++Description=Device-Mapper Multipath Default Configuration ++Before=iscsi.service iscsid.service lvm2-activation-early.service ++Wants=systemd-udev-trigger.service systemd-udev-settle.service local-fs-pre.target ++After=systemd-udev-trigger.service systemd-udev-settle.service ++Before=local-fs-pre.target multipathd.service ++DefaultDependencies=no ++Conflicts=shutdown.target ++ ++ConditionKernelCommandLine=rd.multipath=default ++ConditionPathExists=!/etc/multipath.conf ++ ++[Service] ++Type=oneshot ++ExecStartPre=-/usr/bin/mkdir -p /etc/multipath/multipath.conf.d ++ExecStart=/usr/sbin/mpathconf --enable ++ ++[Install] ++WantedBy=sysinit.target +diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh +index 2c2dcc85..936c5dc7 100755 +--- a/modules.d/90multipath/multipathd.sh ++++ b/modules.d/90multipath/multipathd.sh +@@ -1,5 +1,10 @@ + #!/bin/sh + ++if [ "$(getarg rd.multipath)x" == "default" ] && [ ! -e /etc/multipath.conf ]; then ++ mkdir -p /etc/multipath/multipath.conf.d ++ mpathconf --enable ++fi ++ + if getargbool 1 rd.multipath -d -n rd_NO_MULTIPATH && [ -e /etc/multipath.conf ]; then + modprobe dm-multipath + multipathd -B || multipathd + diff --git a/0034.patch b/0034.patch new file mode 100644 index 0000000..6d15d86 --- /dev/null +++ b/0034.patch @@ -0,0 +1,24 @@ +From 3b626094bd5f017dee26968ce1531a301bb6218a Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Tue, 7 Apr 2020 12:27:30 +0200 +Subject: [PATCH] mkinitrd-suse.sh: Fix i586 platform detection + +Reference: boo#1168341 +--- + mkinitrd-suse.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh +index db2eb188..708c4e67 100755 +--- a/mkinitrd-suse.sh ++++ b/mkinitrd-suse.sh +@@ -171,7 +171,7 @@ default_kernel_images() { + ppc|ppc64) + regex='vmlinux' + ;; +- i386|x86_64) ++ i?86|x86_64) + regex='vmlinuz' + ;; + arm*) + diff --git a/0035.patch b/0035.patch new file mode 100644 index 0000000..86e9db4 --- /dev/null +++ b/0035.patch @@ -0,0 +1,23 @@ +From 11474b808b6fbd373b2ca6ce3350a024e6a8ea15 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 9 Apr 2020 22:05:41 +0200 +Subject: [PATCH] TEST-99: exclude /etc/dnf/* from check + +file /etc/dnf/modules.d/eclipse.module.rpmmoved is not owned by any package +--- + test/TEST-99-RPM/test.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh +index af64c24a..504fd77f 100755 +--- a/test/TEST-99-RPM/test.sh ++++ b/test/TEST-99-RPM/test.sh +@@ -84,6 +84,7 @@ find / -xdev -type f -not -path '/var/*' \ + -not -path "/boot/loader/entries/\$(cat /etc/machine-id)-*" \ + -not -path "/boot/\$(cat /etc/machine-id)/*" \ + -not -path '/etc/openldap/certs/*' \ ++ -not -path '/etc/dnf/*' \ + -print0 | xargs -0 rpm -qf | \ + grep -F 'not owned' &>> /test.output || : + exit 0 + diff --git a/0036.patch b/0036.patch new file mode 100644 index 0000000..f53da76 --- /dev/null +++ b/0036.patch @@ -0,0 +1,60 @@ +From 872eb69936bd849eec6d1974dd6569f23a7ad3db Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Thu, 5 Mar 2020 18:44:45 +0800 +Subject: [PATCH] 95znet: Add a rd.znet_ifname= option + +qeth device may have a different IP for each boot, so the rd.ifname= +option will no longer work. So for znet device, introduce a +rd.znet_ifname= options, to subchannel id instead of MAC address as the +identifier and rename the interface. + +Signed-off-by: Kairui Song +--- + dracut.cmdline.7.asc | 5 +++++ + modules.d/95znet/parse-ccw.sh | 18 ++++++++++++++++++ + 2 files changed, 23 insertions(+) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 63074353..2b38aa33 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -863,6 +863,11 @@ ZNET + RHEL/Fedora with ccw_init, which is called from udev for certain + devices on z-series. + rd.znet can be specified multiple times on the kernel command line. ++ ++**rd.znet_ifname=**____:____:: ++ Assign network device name (i.e. "bootnet") to the NIC ++ corresponds to the subchannels. This is useful when dracut's default ++ "ifname=" doesn't work due to device having a changing MAC address. + + + [listing] + .Example +diff --git a/modules.d/95znet/parse-ccw.sh b/modules.d/95znet/parse-ccw.sh +index 7d40a1aa..59b588f3 100755 +--- a/modules.d/95znet/parse-ccw.sh ++++ b/modules.d/95znet/parse-ccw.sh +@@ -4,4 +4,22 @@ for ccw_arg in $(getargs rd.ccw -d 'rd_CCW=') $(getargs rd.znet -d 'rd_ZNET='); + echo $ccw_arg >> /etc/ccw.conf + done + ++for ifname in $(getargs rd.znet_ifname); do ++ IFS=: read ifname_if ifname_subchannels _rest <<< "$ifname" ++ if [ -z "$ifname_if" ] || [ -z "$ifname_subchannels" ] || [ -n "$_rest" ]; then ++ warn "Invalid arguments for rd.znet_ifname=" ++ else ++ { ++ ifname_subchannels=${ifname_subchannels//,/|} ++ ++ echo 'ACTION!="add|change", GOTO="ccw_ifname_end"' ++ echo 'ATTR{type}!="1", GOTO="ccw_ifname_end"' ++ echo 'SUBSYSTEM!="net", GOTO="ccw_ifname_end"' ++ echo "SUBSYSTEMS==\"ccwgroup\", KERNELS==\"$ifname_subchannels\", DRIVERS==\"?*\" NAME=\"$ifname_if\"" ++ echo 'LABEL="ccw_ifname_end"' ++ ++ } > /etc/udev/rules.d/81-ccw-ifname.rules ++ fi ++done ++ + znet_cio_free + diff --git a/0037.patch b/0037.patch new file mode 100644 index 0000000..c6b542a --- /dev/null +++ b/0037.patch @@ -0,0 +1,22 @@ +From 25c7a13985473ff9714245eaa602225b1a0f9ecb Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Wed, 25 Mar 2020 12:23:11 +0100 +Subject: [PATCH] 90nvdimm: include nvdimm keys in initrd + +This is necessary to actually unlock NVDIMM keys during boot. +--- + modules.d/90nvdimm/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90nvdimm/module-setup.sh b/modules.d/90nvdimm/module-setup.sh +index 6d58efd7..6d73d215 100755 +--- a/modules.d/90nvdimm/module-setup.sh ++++ b/modules.d/90nvdimm/module-setup.sh +@@ -27,5 +27,5 @@ installkernel() { + + # called by dracut + install() { +- inst_multiple -o ndctl ++ inst_multiple -o ndctl /etc/ndctl/keys/tpm.handle /etc/ndctl/keys/*.blob + } + diff --git a/0038.patch b/0038.patch new file mode 100644 index 0000000..5654024 --- /dev/null +++ b/0038.patch @@ -0,0 +1,109 @@ +From 8e1a4dc5f8a777fc718db490414ffdc9dc755f66 Mon Sep 17 00:00:00 2001 +From: Jonas Witschel +Date: Sat, 18 Apr 2020 14:55:41 +0200 +Subject: [PATCH] dracut-lib.sh: quote variables in parameter expansion + patterns + +According to POSIX.1-2017, 2.6.2 Parameter Expansion: + +${parameter%[word]} [...] The word shall be expanded to produce a +pattern. + +This means if word contains variables that itself contain special +characters like asterisks or backslashes, these are treated as pattern +characters unless the variable is quoted. Try e.g. the following example +in bash, dash or (busybox) ash: + +i='a\c'; j='\'; echo "${i%$j*}" + +This prints "a\c" because "$j*" is expanded to "\*", escaping the +asterisk. In contrast, + +i='a\c'; j='\'; echo "${i%"$j"*}" + +produces the expected result "a" because the backslash is not specially +treated any more after quoting. + +The quotes that this commit adds have been previously removed in commit +f9c96cf56fed390841eac05c43826e62014c9188, citing issues with busybox +hush without further specifying the actual error. I tested a recent +busybox build (upstream commit 9aa751b08ab03d6396f86c3df77937a19687981b) +and couldn't find any problems. Note that the above example always +produces "a\c" in hush regardless of quoting $j, making hush unsuitable +for use with dracut, but using quotes in parameter expansions generally +works. + +The unquoted variables break the "rd.luks.uuid/name" kernel command line +options in dracut 050 because + +str_replace "$luksname" '\' '\\' + +in modules.d/90crypt/parse-crypt.sh is not able to escape the +backslashes any more, see GH-723, GH-727: backslashes in the +systemd-cryptsetup@.service unit name stay unescaped for use in udev +(cf. commit 0f6d93eb9d63695a64002ec8b0421fbc9fc8a7a3), leading to +failures in starting the unit. + +This partially reverts commit f9c96cf56fed390841eac05c43826e62014c9188. +--- + modules.d/99base/dracut-lib.sh | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index c53cd13b..c57523d3 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -24,7 +24,7 @@ debug_on() { + + # returns OK if $1 contains literal string $2 (and isn't empty) + strstr() { +- [ "${1##*$2*}" != "$1" ] ++ [ "${1##*"$2"*}" != "$1" ] + } + + # returns OK if $1 matches (completely) glob pattern $2 +@@ -43,18 +43,18 @@ strglobin() { + + # returns OK if $1 contains literal string $2 at the beginning, and isn't empty + str_starts() { +- [ "${1#$2*}" != "$1" ] ++ [ "${1#"$2"*}" != "$1" ] + } + + # returns OK if $1 contains literal string $2 at the end, and isn't empty + str_ends() { +- [ "${1%*$2}" != "$1" ] ++ [ "${1%*"$2"}" != "$1" ] + } + + trim() { + local var="$*" +- var="${var#${var%%[![:space:]]*}}" # remove leading whitespace characters +- var="${var%${var##*[![:space:]]}}" # remove trailing whitespace characters ++ var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters ++ var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters + printf "%s" "$var" + } + +@@ -108,9 +108,9 @@ str_replace() { + local out='' + + while strstr "${in}" "$s"; do +- chop="${in%%$s*}" ++ chop="${in%%"$s"*}" + out="${out}${chop}$r" +- in="${in#*$s}" ++ in="${in#*"$s"}" + done + echo "${out}${in}" + } +@@ -396,7 +396,7 @@ splitsep() { + while [ -n "$str" -a "$#" -gt 1 ]; do + tmp="${str%%$sep*}" + eval "$1='${tmp}'" +- str="${str#$tmp}" ++ str="${str#"$tmp"}" + str="${str#$sep}" + shift + done + diff --git a/0039.patch b/0039.patch new file mode 100644 index 0000000..5553d31 --- /dev/null +++ b/0039.patch @@ -0,0 +1,50 @@ +From de34ba76e579dd11202f632ecf8c625f841646e1 Mon Sep 17 00:00:00 2001 +From: Mikhail Novosyolov +Date: Sun, 19 Apr 2020 16:32:41 +0300 +Subject: [PATCH] i18n: Always install /etc/vconsole.conf + +/etc/vconsole.conf must be installed always, even in generic initrds, not only host-only ones. +systemd-vconsole-setup is run at initrd stage and expects either /etc/vconsole.conf or kernel cmdline options to exist. + +I have also proposed a change in systemd-vconsole-setup that makes it behave better if /etc/vconsole.conf does not exist: +https://github.com/systemd/systemd/pull/15479 +But it is just a fallback. If /etc/vconsole.conf does not exist in initrd and if that patch is applied on systemd, +then the default consoel font is set despite the one being set in /etc/vconsole.conf and this setting is inherited +when new TTYs are opened. This leads to full ignorance of settings in /etc/vconsole.conf. +It is incorrect, and that is why this file must be copied to initrds always, but not only on host-only initrds. + +Fixes: https://github.com/dracutdevs/dracut/issues/796 + +Signed-off-by: Mikhail Novosyolov +--- + modules.d/10i18n/module-setup.sh | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh +index ba17e477..dd45b666 100755 +--- a/modules.d/10i18n/module-setup.sh ++++ b/modules.d/10i18n/module-setup.sh +@@ -230,9 +230,7 @@ install() { + print_vars LC_ALL LANG >> ${initdir}${I18N_CONF} + fi + +- if dracut_module_included "systemd" && [[ -f $dracutsysrootdir${VCONFIG_CONF} ]]; then +- inst_simple ${VCONFIG_CONF} +- else ++ if ! dracut_module_included "systemd"; then + mksubdirs ${initdir}${VCONFIG_CONF} + print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF} + fi +@@ -263,6 +261,11 @@ install() { + if checks; then + install_base + ++ # https://github.com/dracutdevs/dracut/issues/796 ++ if dracut_module_included "systemd" && [[ -f $dracutsysrootdir${VCONFIG_CONF} ]]; then ++ inst_simple ${VCONFIG_CONF} ++ fi ++ + if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} == "yes" ]]; then + install_local_i18n || install_all_kbd + else + diff --git a/0040.patch b/0040.patch new file mode 100644 index 0000000..b7d8aeb --- /dev/null +++ b/0040.patch @@ -0,0 +1,23 @@ +From 3a4a212649bd89f5a07ccf87a53b3103094748a3 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 20 Apr 2020 15:07:02 +0200 +Subject: [PATCH] systemd: skip dependency add for non-existent units + +Fixes: https://github.com/dracutdevs/dracut/issues/795 +--- + modules.d/00systemd/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh +index 5ebdfc30..17be74fd 100755 +--- a/modules.d/00systemd/module-setup.sh ++++ b/modules.d/00systemd/module-setup.sh +@@ -241,6 +241,7 @@ install() { + systemd-ask-password-console.service \ + systemd-ask-password-plymouth.service \ + ; do ++ [[ -f $systemdsystemunitdir/$i ]] || continue + systemctl -q --root "$initdir" add-wants "$i" systemd-vconsole-setup.service + done + + diff --git a/0041.patch b/0041.patch new file mode 100644 index 0000000..2f9d7d4 --- /dev/null +++ b/0041.patch @@ -0,0 +1,29 @@ +From 87bffc36e72c121024df033e1a78799456c73523 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Mon, 23 Mar 2020 22:57:35 +0100 +Subject: [PATCH] network-manager: install libnss DNS and mDNS plugins + +Install libnss_dns.so and libnss_mdns4_minimal.so plugins for the Name +Service Switch (NSS) functionality of glibc so that name resolution +through /etc/resolv.conf and mDNS works in the initrd. + +Fixes: #772 +--- + modules.d/35network-manager/module-setup.sh | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/modules.d/35network-manager/module-setup.sh b/modules.d/35network-manager/module-setup.sh +index d6d0f9ce..8fc3114d 100755 +--- a/modules.d/35network-manager/module-setup.sh ++++ b/modules.d/35network-manager/module-setup.sh +@@ -51,4 +51,9 @@ install() { + if ! [[ -d "$initdir/etc/sysconfig/network-scripts" ]]; then + inst_libdir_file "NetworkManager/$_nm_version/libnm-settings-plugin-ifcfg-rh.so" + fi ++ ++ _arch=${DRACUT_ARCH:-$(uname -m)} ++ ++ inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \ ++ {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*" + } + diff --git a/0042.patch b/0042.patch new file mode 100644 index 0000000..bb3f886 --- /dev/null +++ b/0042.patch @@ -0,0 +1,422 @@ +From 49c4172f4eef6e2015615e132b199a7ec0699ffc Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 8 Apr 2020 16:39:52 +0800 +Subject: [PATCH] Remove memtrace-ko and rd.memdebug=4 support in dracut + +This feature could be off loaded to memstrack, which have better +accurecy, better performance, and have more detailed tracing features. + +Also simplify make_trace_mem a bit. + +And currently rd.memdebug=4 is unstable, fails from time to time. +--- + dracut.cmdline.7.asc | 4 +- + modules.d/98dracut-systemd/dracut-cmdline.sh | 2 +- + modules.d/98dracut-systemd/dracut-pre-mount.sh | 2 +- + modules.d/98dracut-systemd/dracut-pre-pivot.sh | 2 +- + modules.d/98dracut-systemd/dracut-pre-trigger.sh | 2 +- + modules.d/99base/dracut-lib.sh | 44 +----- + modules.d/99base/init.sh | 8 +- + modules.d/99base/memtrace-ko.sh | 191 ----------------------- + modules.d/99base/module-setup.sh | 1 - + 9 files changed, 18 insertions(+), 238 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 2b38aa33..c53601ea 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -188,9 +188,9 @@ It should be attached to any report about dracut problems. + _/run/initramfs/init.log_. + If "quiet" is set, it also logs to the console. + +-**rd.memdebug=[0-4]**:: ++**rd.memdebug=[0-3]**:: + Print memory usage info at various points, set the verbose level from 0 to 4. +-+ +++ + Higher level means more debugging output: + + + ---- +diff --git a/modules.d/98dracut-systemd/dracut-cmdline.sh b/modules.d/98dracut-systemd/dracut-cmdline.sh +index bff9435a..6c6ee026 100755 +--- a/modules.d/98dracut-systemd/dracut-cmdline.sh ++++ b/modules.d/98dracut-systemd/dracut-cmdline.sh +@@ -42,7 +42,7 @@ export root + export rflags + export fstype + +-make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab' '4+:komem' ++make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab' + # run scriptlets to parse the command line + getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline" + source_hook cmdline +diff --git a/modules.d/98dracut-systemd/dracut-pre-mount.sh b/modules.d/98dracut-systemd/dracut-pre-mount.sh +index a3b9d291..ae511286 100755 +--- a/modules.d/98dracut-systemd/dracut-pre-mount.sh ++++ b/modules.d/98dracut-systemd/dracut-pre-mount.sh +@@ -8,7 +8,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + + source_conf /etc/conf.d + +-make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab' '4+:komem' ++make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab' + # pre pivot scripts are sourced just before we doing cleanup and switch over + # to the new root. + getarg 'rd.break=pre-mount' 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount" +diff --git a/modules.d/98dracut-systemd/dracut-pre-pivot.sh b/modules.d/98dracut-systemd/dracut-pre-pivot.sh +index dc9a2504..96e6f8ca 100755 +--- a/modules.d/98dracut-systemd/dracut-pre-pivot.sh ++++ b/modules.d/98dracut-systemd/dracut-pre-pivot.sh +@@ -8,7 +8,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + + source_conf /etc/conf.d + +-make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab' '4+:komem' ++make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab' + # pre pivot scripts are sourced just before we doing cleanup and switch over + # to the new root. + getarg 'rd.break=pre-pivot' 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot" +diff --git a/modules.d/98dracut-systemd/dracut-pre-trigger.sh b/modules.d/98dracut-systemd/dracut-pre-trigger.sh +index 7cd821ed..a1a33960 100755 +--- a/modules.d/98dracut-systemd/dracut-pre-trigger.sh ++++ b/modules.d/98dracut-systemd/dracut-pre-trigger.sh +@@ -8,7 +8,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + + source_conf /etc/conf.d + +-make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab' '4+:komem' ++make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab' + + source_hook pre-trigger + +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index c57523d3..b7020892 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -1187,50 +1187,25 @@ are_lists_eq() { + + setmemdebug() { + if [ -z "$DEBUG_MEM_LEVEL" ]; then +- export DEBUG_MEM_LEVEL=$(getargnum 0 0 4 rd.memdebug) ++ export DEBUG_MEM_LEVEL=$(getargnum 0 0 3 rd.memdebug) + fi + } + + setmemdebug + +-cleanup_trace_mem() +-{ +- # tracekomem based on kernel trace needs cleanup after use. +- if [ "$DEBUG_MEM_LEVEL" -eq 4 ]; then +- tracekomem --cleanup +- fi +-} +- +-# parameters: msg [trace_level:trace]... +-make_trace_mem() +-{ +- local msg +- msg="$1" +- shift +- if [ -n "$DEBUG_MEM_LEVEL" ] && [ "$DEBUG_MEM_LEVEL" -gt 0 ]; then +- make_trace show_memstats $DEBUG_MEM_LEVEL "[debug_mem]" "$msg" "$@" >&2 +- fi +-} +- + # parameters: func log_level prefix msg [trace_level:trace]... +-make_trace() ++make_trace_mem() + { +- local func log_level prefix msg msg_printed ++ local log_level prefix msg msg_printed + local trace trace_level trace_in_higher_levels insert_trace + +- func=$1 +- shift +- +- log_level=$1 +- shift +- +- prefix=$1 +- shift +- + msg=$1 + shift + +- if [ -z "$log_level" ]; then ++ prefix='[debug_mem]' ++ log_level=$DEBUG_MEM_LEVEL ++ ++ if [ -z "$log_level" ] || [ "$log_level" -le 0 ]; then + return + fi + +@@ -1263,7 +1238,7 @@ make_trace() + echo "$prefix $msg" + msg_printed=1 + fi +- $func $trace ++ show_memstats $trace + fi + shift + done +@@ -1285,9 +1260,6 @@ show_memstats() + iomem) + cat /proc/iomem + ;; +- komem) +- tracekomem +- ;; + esac + } + +diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh +index 1111d09b..148ce831 100755 +--- a/modules.d/99base/init.sh ++++ b/modules.d/99base/init.sh +@@ -131,7 +131,7 @@ if ! getargbool 1 'rd.hostonly'; then + fi + + # run scriptlets to parse the command line +-make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab' '4+:komem' ++make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab' + getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline" + source_hook cmdline + +@@ -160,7 +160,7 @@ fi + + udevproperty "hookdir=$hookdir" + +-make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab' '4+:komem' ++make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab' + getarg 'rd.break=pre-trigger' -d 'rdbreak=pre-trigger' && emergency_shell -n pre-trigger "Break before pre-trigger" + source_hook pre-trigger + +@@ -230,7 +230,7 @@ unset RDRETRY + + # pre-mount happens before we try to mount the root filesystem, + # and happens once. +-make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab' '4+:komem' ++make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab' + getarg 'rd.break=pre-mount' -d 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount" + source_hook pre-mount + +@@ -266,7 +266,7 @@ done + + # pre pivot scripts are sourced just before we doing cleanup and switch over + # to the new root. +-make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab' '4+:komem' ++make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab' + getarg 'rd.break=pre-pivot' -d 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot" + source_hook pre-pivot + +diff --git a/modules.d/99base/memtrace-ko.sh b/modules.d/99base/memtrace-ko.sh +deleted file mode 100755 +index ee035e15..00000000 +--- a/modules.d/99base/memtrace-ko.sh ++++ /dev/null +@@ -1,191 +0,0 @@ +-#!/bin/sh +- +-# Try to find out kernel modules with large total memory allocation during loading. +-# For large slab allocation, it will fall into buddy, also not trace "mm_page_free" +-# considering large free is quite rare for module_init, thus saving tons of events +-# to avoid trace data overwritten. +-# +-# Therefore, tracing "mm_page_alloc"alone should be enough for the purpose. +- +-# "sys/kernel/tracing" has the priority if exists. +-get_trace_base() { +- # trace access through debugfs would be obsolete if "/sys/kernel/tracing" is available. +- if [ -d "/sys/kernel/tracing" ]; then +- echo "/sys/kernel" +- else +- echo "/sys/kernel/debug" +- fi +-} +- +-# We want to enable these trace events. +-get_want_events() { +- echo "module:module_put module:module_load kmem:mm_page_alloc" +-} +- +-get_event_filter() { +- echo "comm == systemd-udevd || comm == modprobe || comm == insmod" +-} +- +-is_trace_ready() { +- local trace_base want_events current_events +- +- trace_base=$(get_trace_base) +- ! [ -f "$trace_base/tracing/trace" ] && return 1 +- +- [ "$(cat $trace_base/tracing/tracing_on)" -eq 0 ] && return 1 +- +- # Also check if trace events were properly setup. +- want_events=$(get_want_events) +- current_events=$(echo $(cat $trace_base/tracing/set_event)) +- [ "$current_events" != "$want_events" ] && return 1 +- +- return 0 +-} +- +-prepare_trace() { +- local trace_base +- +- trace_base=$(get_trace_base) +- # old debugfs interface case. +- if ! [ -d "$trace_base/tracing" ]; then +- mount none -t debugfs $trace_base +- # new tracefs interface case. +- elif ! [ -f "$trace_base/tracing/trace" ]; then +- mount none -t tracefs "$trace_base/tracing" +- fi +- +- if ! [ -f "$trace_base/tracing/trace" ]; then +- echo "WARN: Mount trace failed for kernel module memory analyzing." +- return 1 +- fi +- +- # Active all the wanted trace events. +- echo "$(get_want_events)" > $trace_base/tracing/set_event +- +- # There are three kinds of known applications for module loading: +- # "systemd-udevd", "modprobe" and "insmod". +- # Set them as the global events filter. +- # NOTE: Some kernel may not support this format of filter, anyway +- # the operation will fail and it doesn't matter. +- echo "$(get_event_filter)" > $trace_base/tracing/events/kmem/filter 2>&1 +- echo "$(get_event_filter)" > $trace_base/tracing/events/module/filter 2>&1 +- +- # Set the number of comm-pid if supported. +- if [ -f "$trace_base/tracing/saved_cmdlines_size" ]; then +- # Thanks to filters, 4096 is big enough(also well supported). +- echo 4096 > $trace_base/tracing/saved_cmdlines_size +- fi +- +- # Enable and clear trace data for the first time. +- echo 1 > $trace_base/tracing/tracing_on +- echo > $trace_base/tracing/trace +- echo "Prepare trace success." +- return 0 +-} +- +-order_to_pages() +-{ +- local pages=1 +- local order=$1 +- +- while [ "$order" != 0 ]; do +- order=$((order-1)) +- pages=$(($pages*2)) +- done +- +- echo $pages +-} +- +-parse_trace_data() { +- local module_name tmp_eval pages +- +- cat "$(get_trace_base)/tracing/trace" | while read pid cpu flags ts function args +- do +- # Skip comment lines +- if [ "$pid" = "#" ]; then +- continue +- fi +- +- pid=${pid##*-} +- function=${function%:} +- if [ "$function" = "module_load" ]; then +- # One module is being loaded, save the task pid for tracking. +- # Remove the trailing after whitespace, there may be the module flags. +- module_name=${args%% *} +- # Mark current_module to track the task. +- eval current_module_$pid="$module_name" +- tmp_eval=$(eval echo '${module_loaded_'${module_name}'}') +- if [ -n "$tmp_eval" ]; then +- echo "WARN: \"$module_name\" was loaded multiple times!" +- fi +- eval unset module_loaded_$module_name +- eval nr_alloc_pages_$module_name=0 +- continue +- fi +- +- module_name=$(eval echo '${current_module_'${pid}'}') +- if [ -z "$module_name" ]; then +- continue +- fi +- +- # Once we get here, the task is being tracked(is loading a module). +- if [ "$function" = "module_put" ]; then +- # Mark the module as loaded when the first module_put event happens after module_load. +- tmp_eval=$(eval echo '${nr_alloc_pages_'${module_name}'}') +- echo "$tmp_eval pages consumed by \"$module_name\"" +- eval module_loaded_$module_name=1 +- # Module loading finished, so untrack the task. +- eval unset current_module_$pid +- eval unset nr_alloc_pages_$module_name +- continue +- fi +- +- if [ "$function" = "mm_page_alloc" ]; then +- # Get order first, then convert to actual pages. +- pages=$(echo $args | sed -e 's/.*order=\([0-9]*\) .*/\1/') +- pages=$(order_to_pages "$pages") +- tmp_eval=$(eval echo '${nr_alloc_pages_'${module_name}'}') +- eval nr_alloc_pages_$module_name="$(($tmp_eval+$pages))" +- fi +- done +-} +- +-cleanup_trace() { +- local trace_base +- +- if is_trace_ready; then +- trace_base=$(get_trace_base) +- echo 0 > $trace_base/tracing/tracing_on +- echo > $trace_base/tracing/trace +- echo > $trace_base/tracing/set_event +- echo 0 > $trace_base/tracing/events/kmem/filter +- echo 0 > $trace_base/tracing/events/module/filter +- fi +-} +- +-show_usage() { +- echo "Find out kernel modules with large memory consumption during loading based on trace." +- echo "Usage:" +- echo "1) run it first to setup trace." +- echo "2) run again to parse the trace data if any." +- echo "3) run with \"--cleanup\" option to cleanup trace after use." +-} +- +-if [ "$1" = "--help" ]; then +- show_usage +- exit 0 +-fi +- +-if [ "$1" = "--cleanup" ]; then +- cleanup_trace +- exit 0 +-fi +- +-if is_trace_ready ; then +- echo "tracekomem - Rough memory consumption by loading kernel modules (larger value with better accuracy)" +- parse_trace_data +-else +- prepare_trace +-fi +- +-exit $? +diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh +index 3a2246b4..c9e3ebcb 100755 +--- a/modules.d/99base/module-setup.sh ++++ b/modules.d/99base/module-setup.sh +@@ -39,7 +39,6 @@ install() { + inst_script "$moddir/initqueue.sh" "/sbin/initqueue" + inst_script "$moddir/loginit.sh" "/sbin/loginit" + inst_script "$moddir/rdsosreport.sh" "/sbin/rdsosreport" +- inst_script "$moddir/memtrace-ko.sh" "/sbin/tracekomem" + + [ -e "${initdir}/lib" ] || mkdir -m 0755 -p ${initdir}/lib + mkdir -m 0755 -p ${initdir}/lib/dracut + diff --git a/0043.patch b/0043.patch new file mode 100644 index 0000000..fd58f1c --- /dev/null +++ b/0043.patch @@ -0,0 +1,316 @@ +From 7dd8a2f4d351ce8975c0af122732a2a12697c8cc Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 8 Apr 2020 20:09:38 +0800 +Subject: [PATCH] Add 99memstrack module + +memstrack is a new tool to track the overall memory usage and +allocation, which can help off load the improve the builtin module +memory tracing function in dracut. + +With this change, the rd.memdebug=4 behavior is similiar with before, +but the report is defered to pre-pivot, so the memory usage info +during the whole initramfs run is traced. And the ourput format is +changed a bit: + + dracut-pre-pivot[519]: ======== Report format module_summary: ======== + dracut-pre-pivot[519]: Module squashfs using 10.4MB (2658 pages), peak allocation 10.4MB (2671 pages) + dracut-pre-pivot[519]: Module qxl using 3.4MB (865 pages), peak allocation 3.4MB (880 pages) + dracut-pre-pivot[519]: Module crc32c_intel using 2.0MB (519 pages), peak allocation 3.0MB (769 pages) + dracut-pre-pivot[519]: Module serio_raw using 2.0MB (505 pages), peak allocation 3.6MB (918 pages) + dracut-pre-pivot[519]: Module virtio_console using 1.6MB (416 pages), peak allocation 1.6MB (419 pages) + ... snip ... + dracut-pre-pivot[519]: ======== Report format module_summary END ======== + +It now contains more detail and also includes the peak usage which could +be more helpful. + +And now it have a rd.memdebug=5, which will print more detail about +the stack trace of the top memory user, also printed on pri-pivot: + + dracut-pre-pivot[519]: ======== Report format module_top: ======== + dracut-pre-pivot[519]: Top stack usage of module squashfs: + dracut-pre-pivot[519]: (null) Pages: 2658 (peak: 2671) + dracut-pre-pivot[519]: (null) Pages: 2658 (peak: 2671) + dracut-pre-pivot[519]: async_page_fault (0xffffffff81a01149) Pages: 1448 (peak: 1461) + dracut-pre-pivot[519]: do_async_page_fault (0xffffffff8105c509) Pages: 1448 (peak: 1461) + dracut-pre-pivot[519]: do_page_fault (0xffffffff8106296a) Pages: 1448 (peak: 1461) + dracut-pre-pivot[519]: do_user_addr_fault (0xffffffff810626bd) Pages: 1448 (peak: 1461) + dracut-pre-pivot[519]: handle_mm_fault (0xffffffff812940c4) Pages: 1448 (peak: 1461) + dracut-pre-pivot[519]: __handle_mm_fault (0xffffffff81293627) Pages: 1195 (peak: 1208) + dracut-pre-pivot[519]: __do_fault (0xffffffff8128b07e) Pages: 1195 (peak: 1208) + dracut-pre-pivot[519]: filemap_fault (0xffffffff8124c0b9) Pages: 1195 (peak: 1208) + dracut-pre-pivot[519]: __do_page_cache_readahead (0xffffffff812585da) Pages: 1063 (peak: 1076) + dracut-pre-pivot[519]: read_pages (0xffffffff812583c2) Pages: 1063 (peak: 1076) + dracut-pre-pivot[519]: squashfs_readpage squashfs (0xffffffffc0022073) Pages: 1039 (peak: 1052) + dracut-pre-pivot[519]: squashfs_readpage_block squashfs (0xffffffffc0024334) Pages: 744 (peak: 744) + dracut-pre-pivot[519]: squashfs_copy_cache squashfs (0xffffffffc0021a3f) Pages: 744 (peak: 744) + dracut-pre-pivot[519]: pagecache_get_page (0xffffffff8124abf7) Pages: 744 (peak: 744) + dracut-pre-pivot[519]: __page_cache_alloc (0xffffffff81247df6) Pages: 744 (peak: 744) + dracut-pre-pivot[519]: alloc_pages_current (0xffffffff812cdca7) Pages: 744 (peak: 744) + dracut-pre-pivot[519]: __alloc_pages_nodemask (0xffffffff812b3107) Pages: 744 (peak: 744) + dracut-pre-pivot[519]: __alloc_pages_nodemask (0xffffffff812b3107) Pages: 1488 (peak: 1488) + dracut-pre-pivot[519]: Top stack usage of module qxl: + dracut-pre-pivot[519]: (null) Pages: 865 (peak: 880) + dracut-pre-pivot[519]: entry_SYSCALL_64_after_hwframe (0xffffffff81a0008c) Pages: 855 (peak: 858) + dracut-pre-pivot[519]: do_syscall_64 (0xffffffff81002a5a) Pages: 855 (peak: 858) + dracut-pre-pivot[519]: __x64_sys_finit_module (0xffffffff8117ccea) Pages: 811 (peak: 811) + dracut-pre-pivot[519]: __do_sys_finit_module (0xffffffff8117cc6e) Pages: 811 (peak: 811) + dracut-pre-pivot[519]: load_module (0xffffffff8117c6be) Pages: 802 (peak: 802) + dracut-pre-pivot[519]: do_init_module (0xffffffff81179e72) Pages: 802 (peak: 802) + dracut-pre-pivot[519]: do_one_initcall (0xffffffff81000d5a) Pages: 802 (peak: 802) + dracut-pre-pivot[519]: serio_raw_poll serio_raw (0xffffffffc0200054) Pages: 802 (peak: 802) + dracut-pre-pivot[519]: __pci_register_driver (0xffffffff81557804) Pages: 802 (peak: 802) + dracut-pre-pivot[519]: driver_register (0xffffffff8167ed24) Pages: 802 (peak: 802) + dracut-pre-pivot[519]: bus_add_driver (0xffffffff8167cbb2) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: driver_attach (0xffffffff8167d28e) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: bus_for_each_dev (0xffffffff8167b62c) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: __driver_attach (0xffffffff8167e18f) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: device_driver_attach (0xffffffff8167e0ed) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: driver_probe_device (0xffffffff8167de6c) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: really_probe (0xffffffff8167d9c9) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: pci_device_probe (0xffffffff81559627) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: local_pci_probe (0xffffffff81557f98) Pages: 801 (peak: 801) + dracut-pre-pivot[519]: qxl_pci_probe qxl (0xffffffffc01f0387) Pages: 773 (peak: 773) + dracut-pre-pivot[519]: drm_fbdev_generic_setup drm_kms_helper (0xffffffffc01b30c5) Pages: 773 (peak: 773) + dracut-pre-pivot[519]: drm_fbdev_client_hotplug drm_kms_helper (0xffffffffc01b2656) Pages: 773 (peak: 773) + dracut-pre-pivot[519]: __drm_fb_helper_initial_config_and_unlock drm_kms_helper (0xffffffffc01b1a28) Pages: 770 (peak: 770) + dracut-pre-pivot[519]: drm_fb_helper_generic_probe drm_kms_helper (0xffffffffc01b2fa5) Pages: 770 (peak: 770) + dracut-pre-pivot[519]: vzalloc (0xffffffff812aa39c) Pages: 770 (peak: 770) + dracut-pre-pivot[519]: __vmalloc_node_range (0xffffffff812aa200) Pages: 768 (peak: 768) + ... snip ... + ======== Report format module_top END ======== + +This could be very helpful for debuging memory usage issues. +--- + dracut.cmdline.7.asc | 16 +++++--- + dracut.spec | 2 + + modules.d/99base/dracut-lib.sh | 2 +- + modules.d/99memstrack/memstrack-report.sh | 23 +++++++++++ + modules.d/99memstrack/memstrack-start.sh | 68 +++++++++++++++++++++++++++++++ + modules.d/99memstrack/memstrack.service | 13 ++++++ + modules.d/99memstrack/module-setup.sh | 27 ++++++++++++ + 7 files changed, 144 insertions(+), 7 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index c53601ea..4d4970c8 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -188,8 +188,8 @@ It should be attached to any report about dracut problems. + _/run/initramfs/init.log_. + If "quiet" is set, it also logs to the console. + +-**rd.memdebug=[0-3]**:: +- Print memory usage info at various points, set the verbose level from 0 to 4. ++**rd.memdebug=[0-5]**:: ++ Print memory usage info at various points, set the verbose level from 0 to 5. + + + Higher level means more debugging output: + + +@@ -198,10 +198,14 @@ It should be attached to any report about dracut problems. + 1 - partial /proc/meminfo + 2 - /proc/meminfo + 3 - /proc/meminfo + /proc/slabinfo +- 4 - /proc/meminfo + /proc/slabinfo + tracekomem +- NOTE: tracekomem is a shell script utilizing kernel trace to track +- the rough total memory consumption of kernel modules during +- loading. It may override other trace configurations. ++ 4 - /proc/meminfo + /proc/slabinfo + memstrack summary ++ NOTE: memstrack is a memory tracing tool that tracks the total memory ++ consumption, and peak memory consumption of each kernel modules ++ and userspace progress during the whole initramfs runtime, report ++ is genereted and the end of initramsfs run. ++ 5 - /proc/meminfo + /proc/slabinfo + memstrack (with top memory stacktrace) ++ NOTE: memstrack (with top memory stacktrace) will print top memory ++ allocation stack traces during the whole initramfs runtime. + ---- + + **rd.break**:: +diff --git a/dracut.spec b/dracut.spec +index 0369dde6..1eb47402 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -77,6 +77,7 @@ Requires: xz + Requires: gzip + + %if 0%{?fedora} || 0%{?rhel} ++Recommends: memstrack + Recommends: hardlink + Recommends: pigz + Recommends: kpartx +@@ -403,6 +404,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %{dracutlibdir}/modules.d/98syslog + %{dracutlibdir}/modules.d/98usrmount + %{dracutlibdir}/modules.d/99base ++%{dracutlibdir}/modules.d/99memstrack + %{dracutlibdir}/modules.d/99fs-lib + %{dracutlibdir}/modules.d/99shutdown + %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index b7020892..e602bacb 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -1187,7 +1187,7 @@ are_lists_eq() { + + setmemdebug() { + if [ -z "$DEBUG_MEM_LEVEL" ]; then +- export DEBUG_MEM_LEVEL=$(getargnum 0 0 3 rd.memdebug) ++ export DEBUG_MEM_LEVEL=$(getargnum 0 0 5 rd.memdebug) + fi + } + +diff --git a/modules.d/99memstrack/memstrack-report.sh b/modules.d/99memstrack/memstrack-report.sh +new file mode 100755 +index 00000000..241e8621 +--- /dev/null ++++ b/modules.d/99memstrack/memstrack-report.sh +@@ -0,0 +1,23 @@ ++#!/usr/bin/env bash ++. /lib/dracut-lib.sh ++ ++if ! [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then ++ exit 0 ++fi ++ ++if type -P systemctl >/dev/null; then ++ systemctl stop memstrack.service ++else ++ get_pid_of_tracer () { ++ local _user _pid _rest ++ read _user _pid _rest <<< $(ps aux | grep [m]emstrack | head -1) ++ echo $_pid ++ } ++ ++ kill -s INT $(get_pid_of_tracer) ++ while [[ -n $(get_pid_of_tracer) ]]; do ++ sleep 1 ++ done ++fi ++ ++cat /.memstrack +diff --git a/modules.d/99memstrack/memstrack-start.sh b/modules.d/99memstrack/memstrack-start.sh +new file mode 100755 +index 00000000..5aa73efe +--- /dev/null ++++ b/modules.d/99memstrack/memstrack-start.sh +@@ -0,0 +1,68 @@ ++#!/bin/sh ++# Mount kernel debug fs so debug tools can work. ++# memdebug=4 and memdebug=5 requires debug fs to be mounted. ++# And there is no need to umount it. ++ ++type getargnum >/dev/null 2>&1 || . /lib/dracut-lib.sh ++ ++# "sys/kernel/tracing" has the priority if exists. ++get_trace_base() { ++ # trace access through debugfs would be obsolete if "/sys/kernel/tracing" is available. ++ if [ -d "/sys/kernel/tracing" ]; then ++ echo "/sys/kernel" ++ else ++ echo "/sys/kernel/debug" ++ fi ++} ++ ++is_debugfs_ready() { ++ [ -f "$(get_trace_base)/tracing/trace" ] ++} ++ ++prepare_debugfs() { ++ local trace_base ++ ++ trace_base=$(get_trace_base) ++ # old debugfs interface case. ++ if ! [ -d "$trace_base/tracing" ]; then ++ mount none -t debugfs $trace_base ++ # new tracefs interface case. ++ elif ! [ -f "$trace_base/tracing/trace" ]; then ++ mount none -t tracefs "$trace_base/tracing" ++ fi ++ ++ if ! [ -f "$trace_base/tracing/trace" ]; then ++ echo "WARN: failed to mount debugfs" ++ return 1 ++ fi ++} ++ ++if ! is_debugfs_ready ; then ++ prepare_debugfs ++fi ++ ++if [ -n "$DEBUG_MEM_LEVEL" ]; then ++ if [ "$DEBUG_MEM_LEVEL" -ge 5 ]; then ++ echo "memstrack - will report kernel module memory usage summary and top allocation stack" ++ memstrack --report module_summary,module_top --notui --throttle 80 -o /.memstrack & ++ elif [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then ++ echo "memstrack - will report memory usage summary" ++ memstrack --report module_summary --notui --throttle 80 -o /.memstrack & ++ else ++ exit 0; ++ fi ++fi ++ ++PID=$! ++RET=$? ++ ++if [ $RET -ne 0 ]; then ++ echo "Failed to start memstrack, exit status: $RET" ++ exit $RET ++fi ++ ++# Wait a second for memstrack to setup everything, avoid missing any event ++sleep 1 ++ ++echo $PID > /run/memstrack.pid ++disown +diff --git a/modules.d/99memstrack/memstrack.service b/modules.d/99memstrack/memstrack.service +new file mode 100644 +index 00000000..6b47adef +--- /dev/null ++++ b/modules.d/99memstrack/memstrack.service +@@ -0,0 +1,13 @@ ++[Unit] ++Description=Memstrack Anylazing Service ++DefaultDependencies=no ++Before=dracut-cmdline.service systemd-udevd.service local-fs-pre.target ++IgnoreOnIsolate=true ++ ++[Service] ++Type=simple ++ExecStart=/bin/memstrack-start ++PIDFile=/run/memstrack.pid ++StandardInput=null ++StandardOutput=syslog+console ++StandardError=syslog+console +diff --git a/modules.d/99memstrack/module-setup.sh b/modules.d/99memstrack/module-setup.sh +new file mode 100755 +index 00000000..d5bacb4d +--- /dev/null ++++ b/modules.d/99memstrack/module-setup.sh +@@ -0,0 +1,27 @@ ++#!/usr/bin/bash ++ ++check() { ++ if type -P memstrack >/dev/null; then ++ dinfo "memstrack is available" ++ return 0 ++ fi ++ ++ dinfo "memstrack is not available" ++ dinfo "If you need to use rd.memdebug>=4, please install memstrack" ++ ++ return 1 ++} ++ ++depends() { ++ return 0 ++} ++ ++install() { ++ inst "/bin/memstrack" "/bin/memstrack" ++ ++ inst "$moddir/memstrack-start.sh" "/bin/memstrack-start" ++ inst_hook cleanup 99 "$moddir/memstrack-report.sh" ++ ++ inst "$moddir/memstrack.service" "$systemdsystemunitdir/memstrack.service" ++ systemctl -q --root "$initdir" add-wants initrd.target memstrack.service ++} + diff --git a/0044.patch b/0044.patch new file mode 100644 index 0000000..e432e1e --- /dev/null +++ b/0044.patch @@ -0,0 +1,29 @@ +From faea4e4ddb10f697590b80f8f17181341c537262 Mon Sep 17 00:00:00 2001 +From: Peter Georg +Date: Tue, 21 Apr 2020 21:34:38 +0200 +Subject: [PATCH] Always pull in machinery to read ifcfg files + +So far machinery is only pulled in if the user has not yet included any +ifcfg files. +--- + modules.d/35network-manager/module-setup.sh | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/modules.d/35network-manager/module-setup.sh b/modules.d/35network-manager/module-setup.sh +index 8fc3114d..ad2a1534 100755 +--- a/modules.d/35network-manager/module-setup.sh ++++ b/modules.d/35network-manager/module-setup.sh +@@ -47,10 +47,8 @@ install() { + fi + + # We don't install the ifcfg files from the host automatically. +- # But if the user chooses to include them, we pull in the machinery to read them. +- if ! [[ -d "$initdir/etc/sysconfig/network-scripts" ]]; then +- inst_libdir_file "NetworkManager/$_nm_version/libnm-settings-plugin-ifcfg-rh.so" +- fi ++ # But the user might choose to include them, so we pull in the machinery to read them. ++ inst_libdir_file "NetworkManager/$_nm_version/libnm-settings-plugin-ifcfg-rh.so" + + _arch=${DRACUT_ARCH:-$(uname -m)} + + diff --git a/0045.patch b/0045.patch new file mode 100644 index 0000000..f90912d --- /dev/null +++ b/0045.patch @@ -0,0 +1,66 @@ +From 586a56c2877ae8c0b365c3a6c69cd4ff8b27bf0c Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 24 Apr 2020 11:05:49 +0200 +Subject: [PATCH] Install crypto modules in 90kernel-modules + +We don't want to play catch up with hash and encryption algorithms. +To be safe, just use the hammer and include all crypto. + +Fixes https://github.com/dracutdevs/dracut/issues/802 +--- + modules.d/90btrfs/module-setup.sh | 2 -- + modules.d/90crypt/module-setup.sh | 6 +----- + modules.d/90kernel-modules/module-setup.sh | 9 +++++++++ + 3 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh +index 66a254e1..79f89a50 100755 +--- a/modules.d/90btrfs/module-setup.sh ++++ b/modules.d/90btrfs/module-setup.sh +@@ -26,8 +26,6 @@ depends() { + # called by dracut + installkernel() { + instmods btrfs +- # Make sure btfs can use fast crc32c implementations where available (bsc#1011554) +- instmods crc32c-intel + } + + # called by dracut +diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh +index 3ee4c545..a9dda734 100755 +--- a/modules.d/90crypt/module-setup.sh ++++ b/modules.d/90crypt/module-setup.sh +@@ -25,11 +25,7 @@ depends() { + # called by dracut + installkernel() { + hostonly="" instmods drbg +- arch=$(uname -m) +- [[ $arch == x86_64 ]] && arch=x86 +- [[ $arch == s390x ]] && arch=s390 +- [[ $arch == aarch64 ]] && arch=arm64 +- instmods dm_crypt =crypto =drivers/crypto =arch/$arch/crypto ++ instmods dm_crypt + } + + # called by dracut +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index bc3810cc..28d291eb 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -104,6 +104,15 @@ installkernel() { + elif [[ "${host_fs_types[*]}" ]]; then + hostonly='' instmods "${host_fs_types[@]}" + fi ++ ++ arch=${DRACUT_ARCH:-$(uname -m)} ++ ++ # We don't want to play catch up with hash and encryption algorithms. ++ # To be safe, just use the hammer and include all crypto. ++ [[ $arch == x86_64 ]] && arch=x86 ++ [[ $arch == s390x ]] && arch=s390 ++ [[ $arch == aarch64 ]] && arch=arm64 ++ instmods "=crypto" "=arch/$arch/crypto" "=drivers/crypto" + fi + : + } + diff --git a/0046.patch b/0046.patch new file mode 100644 index 0000000..8cd3b0f --- /dev/null +++ b/0046.patch @@ -0,0 +1,53 @@ +From 5bfebf0f04c8e88a0447d5f75c7ec13951fa610d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 7 Apr 2020 22:26:25 +0200 +Subject: [PATCH] 90crypt/module-setup.sh: try to catch kernel config changes + +If a crypto kernel module changes from compiled in to module, the +encrypted disk might fail to open, because the kernel module was +not included in the initramfs. + +This patch tries heuristically to catch such modules. + +Fixes https://github.com/dracutdevs/dracut/issues/706 +--- + modules.d/90crypt/module-setup.sh | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh +index a9dda734..3bce2411 100755 +--- a/modules.d/90crypt/module-setup.sh ++++ b/modules.d/90crypt/module-setup.sh +@@ -26,6 +26,31 @@ depends() { + installkernel() { + hostonly="" instmods drbg + instmods dm_crypt ++ ++ # in case some of the crypto modules moved from compiled in ++ # to module based, try to install those modules ++ # best guess ++ [[ $hostonly ]] || [[ $mount_needs ]] && { ++ # dmsetup returns s.th. like ++ # cryptvol: 0 2064384 crypt aes-xts-plain64 :64:logon:cryptsetup:.... ++ dmsetup table | while read name _ _ is_crypt cipher _; do ++ [[ $is_crypt != "crypt" ]] && continue ++ # get the device name ++ name=/dev/$(dmsetup info -c --noheadings -o blkdevname ${name%:}) ++ # check if the device exists as a key in our host_fs_types ++ if [[ ${host_fs_types[$name]+_} ]]; then ++ # split the cipher aes-xts-plain64 in pieces ++ _OLD_IFS=$IFS ++ IFS='-:' ++ set -- $cipher ++ IFS=$_OLD_IFS ++ # try to load the cipher part with "crypto-" prepended ++ # in non-hostonly mode ++ hostonly= instmods $(for k in "$@"; do echo "crypto-$k";done) ++ fi ++ done ++ } ++ return 0 + } + + # called by dracut + diff --git a/0047.patch b/0047.patch new file mode 100644 index 0000000..f12f1d6 --- /dev/null +++ b/0047.patch @@ -0,0 +1,24 @@ +From c6a2ebffe5812bf45a17d90208d9bb1044b6dba0 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 Apr 2020 20:42:27 +0200 +Subject: [PATCH] 90kernel-modules/module-setup.sh: add sg kernel module + +Fixes udevd messages about failure of `modprobe -bv sg`. +--- + modules.d/90kernel-modules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 28d291eb..b3aa75f3 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -25,7 +25,7 @@ installkernel() { + } + + install_block_modules () { +- hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix ++ hostonly='' instmods sg sr_mod sd_mod scsi_dh ata_piix + instmods \ + scsi_dh_rdac scsi_dh_emc scsi_dh_alua \ + =ide nvme vmd \ + diff --git a/0048.patch b/0048.patch new file mode 100644 index 0000000..3584031 --- /dev/null +++ b/0048.patch @@ -0,0 +1,26 @@ +From cb9e6881dde7ec34e11f6f38727602d6d841a04f Mon Sep 17 00:00:00 2001 +From: Derek Hageman +Date: Thu, 30 Apr 2020 18:40:13 -0600 +Subject: [PATCH] 90crypt/module-setup.sh: fix force on multiple lines + +The first line in crypttab with a "force" option causes all subsequent +lines to be included as if they also had it set because the variable +used to track it is not reset between loop iterations. So fix that by +just setting it to empty before the check for the force option. +--- + modules.d/90crypt/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh +index 3bce2411..e3d6338f 100755 +--- a/modules.d/90crypt/module-setup.sh ++++ b/modules.d/90crypt/module-setup.sh +@@ -113,6 +113,7 @@ install() { + set -- ${luksoptions} + IFS="${OLD_IFS}" + ++ forceentry="" + while [ $# -gt 0 ]; do + case $1 in + force) + diff --git a/0049.patch b/0049.patch new file mode 100644 index 0000000..a7349c6 --- /dev/null +++ b/0049.patch @@ -0,0 +1,25 @@ +From 32dfd41688a0a2aee59a62dd661c808a935d91a4 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Mon, 4 May 2020 10:09:07 +0200 +Subject: [PATCH] Fix test in lsinitrd + +If $uefi is empty, this evaluated to true previously, +resulting in "initrd in UEFI: : 13M". +--- + lsinitrd.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lsinitrd.sh b/lsinitrd.sh +index b5c73f62..ea0c7f62 100755 +--- a/lsinitrd.sh ++++ b/lsinitrd.sh +@@ -206,7 +206,7 @@ if [ "$bin" = "MZ" ]; then + fi + + if (( ${#filenames[@]} <= 0 )) && [[ -z "$unpack" ]] && [[ -z "$unpackearly" ]]; then +- if [ -n $uefi ]; then ++ if [ -n "$uefi" ]; then + echo -n "initrd in UEFI: $uefi: " + du -h $image | while read a b || [ -n "$a" ]; do echo $a;done + if [ -f "$TMPDIR/osrel.txt" ]; then + diff --git a/0050.patch b/0050.patch new file mode 100644 index 0000000..71390b6 --- /dev/null +++ b/0050.patch @@ -0,0 +1,43 @@ +From ff366790a6e30175f243d54c2922a8c781030ede Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 5 May 2020 19:11:18 +0200 +Subject: [PATCH] 51-dracut-rescue.install: Don't use BLS fragment shipped by + kernel package + +For the GRUB and zipl bootloaders the BLS fragment that is shipped by the +kernel package is used, so the same fragment is used for the rescue entry. + +But there are cases where this BLS fragment is not suitable. For example, +if the boot directory is on a btrfs subvolume the path in the linux and +initrd fiels need to be adjusted with the real path. Otherwise GRUB won't +be able to read them. + +The GRUB and zipl kernel-install plugins already take care of this before +installing the BLS fragments, so just copy the installed fragment that has +the updated paths instead of using the BLS shipped by the kernel package. + +Resolves: rhbz#1827882 + +Signed-off-by: Javier Martinez Canillas +--- + 51-dracut-rescue.install | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/51-dracut-rescue.install b/51-dracut-rescue.install +index b4ed1783..b2b3b9ef 100755 +--- a/51-dracut-rescue.install ++++ b/51-dracut-rescue.install +@@ -106,7 +106,11 @@ case "$COMMAND" in + echo "initrd $BOOT_DIR/initrd" + } > $LOADER_ENTRY + else +- cp -aT "${KERNEL_IMAGE%/*}/bls.conf" $LOADER_ENTRY ++ if [[ -e "${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" ]]; then ++ cp -aT "${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" $LOADER_ENTRY ++ else ++ cp -aT "${KERNEL_IMAGE%/*}/bls.conf" $LOADER_ENTRY ++ fi + sed -i 's/'$KERNEL_VERSION'/0-rescue-'${MACHINE_ID}'/' $LOADER_ENTRY + fi + + diff --git a/0051.patch b/0051.patch new file mode 100644 index 0000000..54cd1c5 --- /dev/null +++ b/0051.patch @@ -0,0 +1,25 @@ +From 1ec7b694b55c70d06f262a96c320709b70d20bcb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tomasz=20Pawe=C5=82=20Gajc?= +Date: Mon, 11 May 2020 14:49:06 +0200 +Subject: [PATCH] install dependant libs too + +By default rng-tools are compiled with pkcs11 support. +Make sure opensc-pkcs11.so library is installed inside initramfs to prevent error on boot +--- + modules.d/06rngd/module-setup.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh +index 354bd0bb..f07a0cb9 100644 +--- a/modules.d/06rngd/module-setup.sh ++++ b/modules.d/06rngd/module-setup.sh +@@ -33,6 +33,8 @@ check() { + install() { + inst rngd + inst_simple "${moddir}/rngd.service" "${systemdsystemunitdir}/rngd.service" ++ # make sure dependant libs are installed too ++ inst_libdir_file opensc-pkcs11.so + + systemctl -q --root "$initdir" add-wants sysinit.target rngd.service + } + diff --git a/0052.patch b/0052.patch new file mode 100644 index 0000000..1a7d9a6 --- /dev/null +++ b/0052.patch @@ -0,0 +1,34 @@ +From 424f01e2a0ac0b329e68eb63048cf0d6d9c74d37 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 27 May 2020 22:07:37 +0800 +Subject: [PATCH] 99memstrack: hook script should not call exit + +With memstrack module, rd.break may not work because the hook scripts +are sourced, not executed, so the exit call will make pre-pivot queue +exit early. See 98dracut-systemd/dracut-pre-pivot.sh, everything after +"source_hook cleanup" will be ignored. + +Replace with return instead. + +Credits go to Lukas Nykryn who helped discover and +debug this issue. + +Signed-off-by: Kairui Song +--- + modules.d/99memstrack/memstrack-report.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/99memstrack/memstrack-report.sh b/modules.d/99memstrack/memstrack-report.sh +index 241e8621..3de55bd1 100755 +--- a/modules.d/99memstrack/memstrack-report.sh ++++ b/modules.d/99memstrack/memstrack-report.sh +@@ -2,7 +2,7 @@ + . /lib/dracut-lib.sh + + if ! [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then +- exit 0 ++ return 0 + fi + + if type -P systemctl >/dev/null; then + diff --git a/0053.patch b/0053.patch new file mode 100644 index 0000000..fb4ce84 --- /dev/null +++ b/0053.patch @@ -0,0 +1,39 @@ +From 2a611328652388b809a379403ceec126cb55819f Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 27 May 2020 21:59:55 +0800 +Subject: [PATCH] Remove cleanup_trace_mem calls + +In commit 49c4172 all shell based memory tracing functions are removed, +there are some left over. Remove them as well. + +Signed-off-by: Kairui Song +--- + modules.d/98dracut-systemd/dracut-pre-pivot.sh | 1 - + modules.d/99base/init.sh | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-pre-pivot.sh b/modules.d/98dracut-systemd/dracut-pre-pivot.sh +index 96e6f8ca..cc70e3c3 100755 +--- a/modules.d/98dracut-systemd/dracut-pre-pivot.sh ++++ b/modules.d/98dracut-systemd/dracut-pre-pivot.sh +@@ -14,7 +14,6 @@ make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab' + getarg 'rd.break=pre-pivot' 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot" + source_hook pre-pivot + +-cleanup_trace_mem + # pre pivot cleanup scripts are sourced just before we switch over to the new root. + getarg 'rd.break=cleanup' 'rdbreak=cleanup' && emergency_shell -n cleanup "Break cleanup" + source_hook cleanup +diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh +index 148ce831..f70a811e 100755 +--- a/modules.d/99base/init.sh ++++ b/modules.d/99base/init.sh +@@ -271,7 +271,6 @@ getarg 'rd.break=pre-pivot' -d 'rdbreak=pre-pivot' && emergency_shell -n pre-piv + source_hook pre-pivot + + make_trace_mem "hook cleanup" '1:shortmem' '2+:mem' '3+:slab' +-cleanup_trace_mem + # pre pivot cleanup scripts are sourced just before we switch over to the new root. + getarg 'rd.break=cleanup' -d 'rdbreak=cleanup' && emergency_shell -n cleanup "Break cleanup" + source_hook cleanup + diff --git a/0054.patch b/0054.patch new file mode 100644 index 0000000..8ca33a3 --- /dev/null +++ b/0054.patch @@ -0,0 +1,60 @@ +From f769154bccf22d2b5caf5e4888f88bf7edde2662 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Mon, 25 May 2020 19:02:05 +0300 +Subject: [PATCH] dracut-functions: fix find_binary() to return full path + +Fixes: a01204202b30 (Allow running on a cross-compiled rootfs) +--- + dracut-functions.sh | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 3cb9c7af..b5c28248 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -41,31 +41,36 @@ str_ends() { [ "${1%*"$2"}" != "$1" ]; } + # search in the usual places to find the binary. + find_binary() { + local _delim ++ local _path + local l + local p + [[ -z ${1##/*} ]] || _delim="/" + + if [[ "$1" == *.so* ]]; then + for l in libdirs ; do +- if { $DRACUT_LDD "$dracutsysrootdir$l$_delim$1" &>/dev/null; }; then +- printf "%s\n" "$1" ++ _path="${l}${_delim}${1}" ++ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then ++ printf "%s\n" "${_path}" + return 0 + fi + done +- if { $DRACUT_LDD "$dracutsysrootdir$_delim$1" &>/dev/null; }; then +- printf "%s\n" "$1" ++ _path="${_delim}${1}" ++ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then ++ printf "%s\n" "${_path}" + return 0 + fi + fi + if [[ "$1" == */* ]]; then +- if [[ -L $dracutsysrootdir$_delim$1 ]] || [[ -x $dracutsysrootdir$_delim$1 ]]; then +- printf "%s\n" "$1" ++ _path="${_delim}${1}" ++ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then ++ printf "%s\n" "${_path}" + return 0 + fi + fi + for p in $DRACUT_PATH ; do +- if [[ -L $dracutsysrootdir$p$_delim$1 ]] || [[ -x $dracutsysrootdir$p$_delim$1 ]]; then +- printf "%s\n" "$1" ++ _path="${p}${_delim}${1}" ++ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then ++ printf "%s\n" "${_path}" + return 0 + fi + done + diff --git a/0055.patch b/0055.patch new file mode 100644 index 0000000..33482a9 --- /dev/null +++ b/0055.patch @@ -0,0 +1,38 @@ +From 50cc23ba32b0fda63eff7623b529dbeb4e6a38c6 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Mon, 25 May 2020 17:49:20 +0300 +Subject: [PATCH] busybox: simplify listing of supported utilities + +'--list' option is supported since busybox-1.20.0, which was released +in 2010. +--- + modules.d/05busybox/module-setup.sh | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/modules.d/05busybox/module-setup.sh b/modules.d/05busybox/module-setup.sh +index ecbd6a13..5d88c5d1 100755 +--- a/modules.d/05busybox/module-setup.sh ++++ b/modules.d/05busybox/module-setup.sh +@@ -14,15 +14,16 @@ depends() { + + # called by dracut + install() { +- local _i _progs _path _busybox ++ local _i _path _busybox ++ local _progs=() + _busybox=$(type -P busybox) + inst $_busybox /usr/bin/busybox +- for _i in $($_busybox | sed -ne '1,/Currently/!{s/,//g; s/busybox//g; p}') +- do +- _progs="$_progs $_i" ++ for _i in $($_busybox --list); do ++ [[ ${_i} == busybox ]] && continue ++ _progs+=("${_i}") + done + +- for _i in $_progs; do ++ for _i in "${_progs[@]}"; do + _path=$(find_binary "$_i") + [ -z "$_path" ] && continue + ln_r /usr/bin/busybox $_path + diff --git a/0056.patch b/0056.patch new file mode 100644 index 0000000..91caf58 --- /dev/null +++ b/0056.patch @@ -0,0 +1,52 @@ +From b448655ba7cf46d25cbc2845e30ec559a487fc1e Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 29 May 2020 10:30:26 +0200 +Subject: [PATCH] CI: remove Fedora 30, add Fedora 32 + +--- + .github/workflows/{fedora-30.yml => fedora-32.yml} | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/.github/workflows/fedora-30.yml b/.github/workflows/fedora-32.yml +similarity index 84% +rename from .github/workflows/fedora-30.yml +rename to .github/workflows/fedora-32.yml +index 1a3d3e8d..589bf176 100644 +--- a/.github/workflows/fedora-30.yml ++++ b/.github/workflows/fedora-32.yml +@@ -1,6 +1,6 @@ + ## The test container is created with https://github.com/dracutdevs/fedora-container + +-name: Fedora-30 ++name: Fedora-32 + + on: + push: +@@ -14,7 +14,7 @@ jobs: + test: + runs-on: ubuntu-latest + container: +- image: quay.io/haraldh/dracut-fedora:30 ++ image: quay.io/haraldh/dracut-fedora:32 + options: "--privileged" + timeout-minutes: 45 + strategy: +@@ -32,11 +32,17 @@ jobs: + "15", + "17", + "20", ++ "21", + "30", ++ "31", + "35", ++ "36", + "40", ++ "41", + "50", ++ "51", + "60", ++ "61", + "99", + ] + fail-fast: false + diff --git a/0057.patch b/0057.patch new file mode 100644 index 0000000..c040284 --- /dev/null +++ b/0057.patch @@ -0,0 +1,34 @@ +From c800d1a7b943f8ca86b9756fbaa4cd2a5644ad44 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 29 May 2020 10:49:47 +0200 +Subject: [PATCH] dracut.cmdline.7.asc: clarify usage of `rd.lvm.vg` and + `rd.lvm.lv` + +Fixes: https://github.com/dracutdevs/dracut/issues/816 +--- + dracut.cmdline.7.asc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 4d4970c8..751f5276 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -281,12 +281,12 @@ LVM + disable LVM detection + + **rd.lvm.vg=**____:: +- only activate the volume groups with the given name. rd.lvm.vg can be +- specified multiple times on the kernel command line. ++ only activate all logical volumes in the the volume groups with the given name. ++ rd.lvm.vg can be specified multiple times on the kernel command line. + +-**rd.lvm.lv=**____:: +- only activate the logical volumes with the given name. rd.lvm.lv can be +- specified multiple times on the kernel command line. ++**rd.lvm.lv=**__/__:: ++ only activate the logical volumes with the given name. ++ rd.lvm.lv can be specified multiple times on the kernel command line. + + **rd.lvm.conf=0**:: + remove any _/etc/lvm/lvm.conf_, which may exist in the initramfs + diff --git a/0058.patch b/0058.patch new file mode 100644 index 0000000..52e8c61 --- /dev/null +++ b/0058.patch @@ -0,0 +1,31 @@ +From 7169e5f0e43cdc9a0bdc93de33f3404d8c461acd Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 29 May 2020 11:03:19 +0200 +Subject: [PATCH] dracut.conf.5.asc: document how to config --no-compress in + the config + +Fixes: https://github.com/dracutdevs/dracut/issues/824 +--- + dracut.conf.5.asc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc +index 937f5423..f206f2f7 100644 +--- a/dracut.conf.5.asc ++++ b/dracut.conf.5.asc +@@ -80,12 +80,13 @@ Configuration files must have the extension .conf; other extensions are ignored. + Specify additional files to include in the initramfs, separated by spaces, + if they exist. + +-*compress=*"__{bzip2|lzma|xz|gzip|lzo|lz4|zstd|}__":: ++*compress=*"__{cat|bzip2|lzma|xz|gzip|lzo|lz4|zstd|}__":: + Compress the generated initramfs using the passed compression program. If + you pass it just the name of a compression program, it will call that + program with known-working arguments. If you pass arguments, it will be called + with exactly those arguments. Depending on what you pass, this may result in + an initramfs that the kernel cannot decompress. ++ To disable compression, use "cat". + + *do_strip=*"__{yes|no}__":: + Strip binaries in the initramfs (default=yes) + diff --git a/0059.patch b/0059.patch new file mode 100644 index 0000000..e0f3111 --- /dev/null +++ b/0059.patch @@ -0,0 +1,38 @@ +From eb770a4a207b2e9e3080068c1df22b69ed44d4b5 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Thu, 7 May 2020 07:48:12 +0200 +Subject: [PATCH] network-manager: set kernel hostname from the command line + +Since commit ff70adf873ef ("initrd: save hostname to a file in /run"), +the initrd generator of NetworkManager parses the hostname from 'ip=' +options of the kernel command line and writes it to +/run/NetworkManager/initrd/hostname. + +When that file exists, set the kernel hostname. + +In presence of multiple hostnames in the command line, the last one +wins. Hostnames from command line always have precedence over ones +received through DHCP. This is a bit different from the legacy network +module that gives higher precedence to the hostname (from DHCP or +command line) of the last interface that is brought up, which depends +on the udev order. +--- + modules.d/35network-manager/nm-run.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh +index fc5280a1..61752384 100755 +--- a/modules.d/35network-manager/nm-run.sh ++++ b/modules.d/35network-manager/nm-run.sh +@@ -10,6 +10,10 @@ for i in /usr/lib/NetworkManager/system-connections/* \ + else + /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon + fi ++ ++ if [ -s /run/NetworkManager/initrd/hostname ]; then ++ cat /run/NetworkManager/initrd/hostname > /proc/sys/kernel/hostname ++ fi + break + done + + diff --git a/0060.patch b/0060.patch new file mode 100644 index 0000000..c1efca6 --- /dev/null +++ b/0060.patch @@ -0,0 +1,60 @@ +From 871d63c3be529cee2c2bd868750eda121ece46dc Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 29 May 2020 14:43:57 +0200 +Subject: [PATCH] Fix CI badges in README.md and fix dracut description + +While fixing the CI badges, I removed some old crufty README text. +--- + README.md | 11 ++++------- + dracut.spec | 2 +- + 2 files changed, 5 insertions(+), 8 deletions(-) + +diff --git a/README.md b/README.md +index 9948bf97..0ab54ea6 100644 +--- a/README.md ++++ b/README.md +@@ -4,15 +4,15 @@ dracut + dracut is an event driven initramfs infrastructure. + + [![Build Status](https://travis-ci.org/dracutdevs/dracut.svg?branch=master)](https://travis-ci.org/dracutdevs/dracut) +-[![Fedora-30](https://github.com/dracutdevs/dracut/workflows/Fedora-30/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-30) + [![Fedora-31](https://github.com/dracutdevs/dracut/workflows/Fedora-31/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-31) ++[![Fedora-32](https://github.com/dracutdevs/dracut/workflows/Fedora-32/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-32) + + dracut (the tool) is used to create an initramfs image by copying tools + and files from an installed system and combining it with the + dracut framework, usually found in /usr/lib/dracut/modules.d. + +-Unlike existing initramfs's, this is an attempt at having as little as +-possible hard-coded into the initramfs as possible. The initramfs has ++Unlike other implementations, dracut hard-codes as little ++as possible into the initramfs. The initramfs has + (basically) one purpose in life -- getting the rootfs mounted so that + we can transition to the real rootfs. This is all driven off of + device availability. Therefore, instead of scripts hard-coded to do +@@ -20,10 +20,7 @@ various things, we depend on udev to create device nodes for us and + then when we have the rootfs's device node, we mount and carry on. + This helps to keep the time required in the initramfs as little as + possible so that things like a 5 second boot aren't made impossible as +-a result of the very existence of an initramfs. It's likely that +-we'll grow some hooks for running arbitrary commands in the flow of +-the script, but it's worth trying to resist the urge as much as we can +-as hooks are guaranteed to be the path to slow-down. ++a result of the very existence of an initramfs. + + Most of the initramfs generation functionality in dracut is provided by a bunch + of generator modules that are sourced by the main dracut script to install +diff --git a/dracut.spec b/dracut.spec +index 1eb47402..4d1cb7a4 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -99,7 +99,7 @@ Requires: libkcapi-hmaccalc + + %description + dracut contains tools to create bootable initramfses for the Linux +-kernel. Unlike previous implementations, dracut hard-codes as little ++kernel. Unlike other implementations, dracut hard-codes as little + as possible into the initramfs. dracut contains various modules which + are driven by the event-based udev. Having root on MD, DM, LVM2, LUKS + is supported as well as NFS, iSCSI, NBD, FCoE with the dracut-network + diff --git a/0061.patch b/0061.patch new file mode 100644 index 0000000..a27a911 --- /dev/null +++ b/0061.patch @@ -0,0 +1,109 @@ +From 5f8063c6f2944fc93af5d6d800197e8c966ba70f Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Fri, 10 Apr 2020 20:50:49 +0800 +Subject: [PATCH] 95nfs: only install rpc services for NFS < 4 when hostonly is + strict + +Most rpc services are not needed for NFSv4, so skip these components +to save space. rpc.idmapd is still needed in case of +nfs4_disable_idmapping is set to 0. +--- + modules.d/95nfs/module-setup.sh | 33 ++++++++++++++++++++++++++------- + modules.d/95nfs/nfs-start-rpc.sh | 6 ++---- + 2 files changed, 28 insertions(+), 11 deletions(-) + +diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh +index f9bcedd1..d9a91fdf 100755 +--- a/modules.d/95nfs/module-setup.sh ++++ b/modules.d/95nfs/module-setup.sh +@@ -1,5 +1,22 @@ + #!/bin/bash + ++# return value: ++# 'nfs4': Only nfs4 founded ++# 'nfs': nfs with version < 4 founded ++# '': No nfs founded ++get_nfs_type() { ++ local _nfs _nfs4 ++ ++ for fs in "${host_fs_types[@]}"; do ++ [[ "$fs" == "nfs" ]] && _nfs=1 ++ [[ "$fs" == "nfs3" ]] && _nfs=1 ++ [[ "$fs" == "nfs4" ]] && _nfs4=1 ++ done ++ ++ [[ "$_nfs" ]] && echo "nfs" && return ++ [[ "$_nfs4" ]] && echo "nfs4" && return ++} ++ + # called by dracut + check() { + # If our prerequisites are not met, fail anyways. +@@ -7,11 +24,7 @@ check() { + require_binaries rpc.statd mount.nfs mount.nfs4 umount || return 1 + + [[ $hostonly ]] || [[ $mount_needs ]] && { +- for fs in "${host_fs_types[@]}"; do +- [[ "$fs" == "nfs" ]] && return 0 +- [[ "$fs" == "nfs3" ]] && return 0 +- [[ "$fs" == "nfs4" ]] && return 0 +- done ++ [[ "$(get_nfs_type)" ]] && return 0 + return 255 + } + return 0 +@@ -77,8 +90,7 @@ cmdline() { + install() { + local _i + local _nsslibs +- inst_multiple -o portmap rpcbind rpc.statd mount.nfs \ +- mount.nfs4 umount rpc.idmapd sed /etc/netconfig chmod "$tmpfilesdir/rpcbind.conf" ++ inst_multiple -o rpc.idmapd mount.nfs mount.nfs4 umount sed /etc/netconfig chmod "$tmpfilesdir/rpcbind.conf" + inst_multiple /etc/services /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/idmapd.conf + + if [[ $hostonly_cmdline == "yes" ]]; then +@@ -106,6 +118,12 @@ install() { + inst_hook pre-udev 99 "$moddir/nfs-start-rpc.sh" + inst_hook cleanup 99 "$moddir/nfsroot-cleanup.sh" + inst "$moddir/nfsroot.sh" "/sbin/nfsroot" ++ ++ # For strict hostonly, only install rpcbind for NFS < 4 ++ if [[ $hostonly_mode != "strict" ]] || [[ "$(get_nfs_type)" != "nfs4" ]]; then ++ inst_multiple -o portmap rpcbind rpc.statd ++ fi ++ + inst "$moddir/nfs-lib.sh" "/lib/nfs-lib.sh" + mkdir -m 0755 -p "$initdir/var/lib/nfs/rpc_pipefs" + mkdir -m 0770 -p "$initdir/var/lib/rpcbind" +@@ -121,5 +139,6 @@ install() { + chmod 770 "$initdir/var/lib/rpcbind" + grep -q '^rpc:' $dracutsysrootdir/etc/passwd \ + && grep -q '^rpc:' $dracutsysrootdir/etc/group ++ + dracut_need_initqueue + } +diff --git a/modules.d/95nfs/nfs-start-rpc.sh b/modules.d/95nfs/nfs-start-rpc.sh +index 694e05e2..dadfd90a 100755 +--- a/modules.d/95nfs/nfs-start-rpc.sh ++++ b/modules.d/95nfs/nfs-start-rpc.sh +@@ -1,8 +1,6 @@ + #!/bin/sh + +- + if modprobe sunrpc || strstr "$(cat /proc/filesystems)" rpc_pipefs; then +- + [ ! -d /var/lib/nfs/rpc_pipefs/nfs ] && \ + mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs + +@@ -17,8 +15,8 @@ if modprobe sunrpc || strstr "$(cat /proc/filesystems)" rpc_pipefs; then + # Start rpc.statd as mount won't let us use locks on a NFSv4 + # filesystem without talking to it. NFSv4 does locks internally, + # rpc.lockd isn't needed +- [ -z "$(pidof rpc.statd)" ] && rpc.statd +- [ -z "$(pidof rpc.idmapd)" ] && rpc.idmapd ++ command -v rpc.statd >/dev/null && [ -z "$(pidof rpc.statd)" ] && rpc.statd ++ command -v rpc.idmapd >/dev/null && [ -z "$(pidof rpc.idmapd)" ] && rpc.idmapd + else + warn 'Kernel module "sunrpc" not in the initramfs, or support for filesystem "rpc_pipefs" missing!' + fi + diff --git a/0062.patch b/0062.patch new file mode 100644 index 0000000..a84284c --- /dev/null +++ b/0062.patch @@ -0,0 +1,222 @@ +From 2f03d69f9dfdc0c905c4d9cb69ee93a5256123cb Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 25 Nov 2019 11:33:42 +0100 +Subject: [PATCH] 95nvmf: add module for NVMe-oF + +Add a module for booting from NVMe-oF devices. + +Signed-off-by: Hannes Reinecke +--- + dracut.spec | 1 + + modules.d/95nvmf/module-setup.sh | 88 +++++++++++++++++++++++ + modules.d/95nvmf/parse-nvmf-boot-connections.sh | 95 +++++++++++++++++++++++++ + 3 files changed, 184 insertions(+) + +diff --git a/dracut.spec b/dracut.spec +index 4d1cb7a4..872c21cf 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -374,6 +374,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %{dracutlibdir}/modules.d/95debug + %{dracutlibdir}/modules.d/95fstab-sys + %{dracutlibdir}/modules.d/95lunmask ++%{dracutlibdir}/modules.d/95nvmf + %{dracutlibdir}/modules.d/95resume + %{dracutlibdir}/modules.d/95rootfs-block + %{dracutlibdir}/modules.d/95terminfo +diff --git a/modules.d/95nvmf/module-setup.sh b/modules.d/95nvmf/module-setup.sh +new file mode 100755 +index 00000000..db43ec01 +--- /dev/null ++++ b/modules.d/95nvmf/module-setup.sh +@@ -0,0 +1,88 @@ ++#!/bin/bash ++ ++# called by dracut ++check() { ++ require_binaries nvme || return 1 ++ [ -f /etc/nvme/hostnqn ] || return 255 ++ [ -f /etc/nvme/hostid ] || return 255 ++ ++ is_nvme_fc() { ++ local _dev=$1 ++ local traddr ++ ++ [[ -L "/sys/dev/block/$_dev" ]] || return 0 ++ cd -P "/sys/dev/block/$_dev" || return 0 ++ if [ -f partition ] ; then ++ cd .. ++ fi ++ for d in device/nvme* ; do ++ [ -L "$d" ] || continue ++ if readlink "$d" | grep -q nvme-fabrics ; then ++ traddr=$(cat "$d"/address) ++ break ++ fi ++ done ++ [[ "${traddr#traddr=nn-}" != "$traddr" ]] ++ } ++ ++ [[ $hostonly ]] || [[ $mount_needs ]] && { ++ pushd . >/dev/null ++ for_each_host_dev_and_slaves is_nvme_fc ++ local _is_nvme_fc=$? ++ popd >/dev/null ++ [[ $_is_nvme_fc == 0 ]] || return 255 ++ if [ ! -f /sys/class/fc/fc_udev_device/nvme_discovery ] ; then ++ if [ ! -f /etc/nvme/discovery.conf ] ; then ++ echo "No discovery arguments present" ++ return 255 ++ fi ++ fi ++ } ++ return 0 ++} ++ ++# called by dracut ++depends() { ++ echo bash rootfs-block ++ return 0 ++} ++ ++# called by dracut ++installkernel() { ++ instmods nvme_fc lpfc qla2xxx ++} ++ ++# called by dracut ++cmdline() { ++ local _hostnqn ++ local _hostid ++ if [ -f /etc/nvme/hostnqn ] ; then ++ _hostnqn=$(cat /etc/nvme/hostnqn) ++ echo -n " nvmf.hostnqn=${_hostnqn}" ++ fi ++ if [ -f /etc/nvme/hostid ] ; then ++ _hostid=$(cat /etc/nvme/hostid) ++ echo -n " nvmf.hostid=${_hostid}" ++ fi ++ echo "" ++} ++ ++# called by dracut ++install() { ++ if [[ $hostonly_cmdline == "yes" ]]; then ++ local _nvmf_args=$(cmdline) ++ [[ "$_nvmf_args" ]] && printf "%s" "$_nvmf_args" >> "${initdir}/etc/cmdline.d/95nvmf-args.conf" ++ fi ++ inst_simple "/etc/nvme/hostnqn" ++ inst_simple "/etc/nvme/hostid" ++ ++ inst_multiple nvme ++ inst_multiple -o \ ++ "$systemdsystemunitdir/nvm*-connect@.service" \ ++ "$systemdsystemunitdir/nvm*-connect.target" ++ inst_hook cmdline 99 "$moddir/parse-nvmf-boot-connections.sh" ++ inst_simple "/etc/nvme/discovery.conf" ++ inst_rules /usr/lib/udev/rules.d/70-nvm*-autoconnect.rules ++ inst_rules /usr/lib/udev/rules.d/71-nvmf-iopolicy-netapp.rules ++ dracut_need_initqueue ++} +diff --git a/modules.d/95nvmf/parse-nvmf-boot-connections.sh b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +new file mode 100755 +index 00000000..0d16b871 +--- /dev/null ++++ b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +@@ -0,0 +1,95 @@ ++#!/bin/sh ++# ++# Supported formats: ++# nvmf.hostnqn= ++# nvmf.hostid= ++# nvmf.discover=::: ++# ++# Examples: ++# nvmf.hostnqn=nqn.2014-08.org.nvmexpress:uuid:37303738-3034-584d-5137-333230423843 ++# nvmf.discover=rdma:192.168.1.3::4420 ++# nvmf.discover=fc:auto ++# ++# Note: FC does autodiscovery, so typically there is no need to ++# specify any discover parameters for FC. ++# ++ ++parse_nvmf_discover() { ++ OLDIFS="$IFS" ++ IFS=: ++ trtype="none" ++ traddr="none" ++ hosttraddr="none" ++ trsvcid=4420 ++ ++ set $1 ++ IFS="$OLDIFS" ++ ++ case $# in ++ 2) ++ trtype=$1 ++ traddr=$2 ++ ;; ++ 3) ++ trtype=$1 ++ traddr=$2 ++ hosttraddr=$3 ++ ;; ++ 4) ++ trtype=$1 ++ traddr=$2 ++ hosttraddr=$3 ++ trsvcid=$4 ++ ;; ++ *) ++ warn "Invalid arguments for nvmf.discover=$1" ++ return 1 ++ ;; ++ esac ++ if [ -z "$traddr" ] ; then ++ warn "traddr is mandatory for $trtype" ++ return 1; ++ fi ++ [ -z "$hosttraddr" ] && hosttraddr="none" ++ [ -z "$trsvcid" ] && trsvcid="none" ++ if [ "$trtype" = "fc" ] ; then ++ if [ -z "$hosttraddr" ] ; then ++ warn "host traddr is mandatory for fc" ++ return 1 ++ fi ++ elif [ "$trtype" != "rdma" ] && [ "$trtype" != "tcp" ] ; then ++ warn "unsupported transport $trtype" ++ return 1 ++ elif [ -z "$trsvcid" ] ; then ++ trsvcid=4420 ++ fi ++ echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr --trsvcid=$trsvcid" >> /etc/nvme/discovery.conf ++} ++ ++if ! getargbool 0 rd.nonvmf ; then ++ info "rd.nonvmf=0: skipping nvmf" ++ return 0 ++fi ++ ++nvmf_hostnqn=$(getarg nvmf.hostnqn=) ++if [ -n "$nvmf_hostnqn" ] ; then ++ echo "$nvmf_hostnqn" > /etc/nvme/hostnqn ++fi ++nvmf_hostid=$(getarg nvmf.hostid=) ++if [ -n "$nvmf_hostid" ] ; then ++ echo "$nvmf_hostid" > /etc/nvme/hostid ++fi ++ ++for d in $(getargs nvmf.discover=); do ++ parse_nvmf_discover "$d" ++done ++ ++# Host NQN and host id are mandatory for NVMe-oF ++[ -f "/etc/nvme/hostnqn" ] || exit 0 ++[ -f "/etc/nvme/hostid" ] || exit 0 ++ ++if [ -f "/etc/nvme/discovery.conf" ] ; then ++ /sbin/initqueue --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all ++else ++ /sbin/initqueue --finished --unique --name nvme-fc-autoconnect echo 1 > /sys/class/fc/fc_udev_device/nvme_discovery ++fi + diff --git a/0063.patch b/0063.patch new file mode 100644 index 0000000..e843626 --- /dev/null +++ b/0063.patch @@ -0,0 +1,24 @@ +From 55b0d2edafdd18c2e85f47063f0ac81652f86956 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Wed, 10 Jun 2020 22:36:56 +0200 +Subject: [PATCH] 95iscsi: fix missing space when compiling cmdline args + +Reference: bsc#1172816 +--- + modules.d/95iscsi/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh +index 19a8bdbd..8b6300d5 100755 +--- a/modules.d/95iscsi/module-setup.sh ++++ b/modules.d/95iscsi/module-setup.sh +@@ -65,7 +65,7 @@ install_ibft() { + if [ ${d##*/} = "ibft" ] && [ "$ibft_mod" != "bnx2i" ] ; then + echo -n "rd.iscsi.ibft=1 " + fi +- echo -n "rd.iscsi.firmware=1" ++ echo -n "rd.iscsi.firmware=1 " + fi + done + } + diff --git a/0064.patch b/0064.patch new file mode 100644 index 0000000..0ef9116 --- /dev/null +++ b/0064.patch @@ -0,0 +1,78 @@ +From 6e1e87cd2567801b10b2b4f716436c48688408bf Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Wed, 24 Jun 2020 13:06:05 +0200 +Subject: [PATCH] network-manager: move connection generation to a lib file + +Move the connection generation code to a library file so that it can +be reused from other places. +--- + modules.d/35network-manager/module-setup.sh | 1 + + modules.d/35network-manager/nm-config.sh | 15 +++------------ + modules.d/35network-manager/nm-lib.sh | 20 ++++++++++++++++++++ + 3 files changed, 24 insertions(+), 12 deletions(-) + +diff --git a/modules.d/35network-manager/module-setup.sh b/modules.d/35network-manager/module-setup.sh +index ad2a1534..ed2f399e 100755 +--- a/modules.d/35network-manager/module-setup.sh ++++ b/modules.d/35network-manager/module-setup.sh +@@ -37,6 +37,7 @@ install() { + inst_hook initqueue/settled 99 "$moddir/nm-run.sh" + inst_rules 85-nm-unmanaged.rules + inst_libdir_file "NetworkManager/$_nm_version/libnm-device-plugin-team.so" ++ inst_simple "$moddir/nm-lib.sh" "/lib/nm-lib.sh" + + if [[ -x "$initdir/usr/sbin/dhclient" ]]; then + inst /usr/libexec/nm-dhcp-helper +diff --git a/modules.d/35network-manager/nm-config.sh b/modules.d/35network-manager/nm-config.sh +index 39a1c8bd..2b9df020 100755 +--- a/modules.d/35network-manager/nm-config.sh ++++ b/modules.d/35network-manager/nm-config.sh +@@ -1,18 +1,9 @@ + #!/bin/sh + ++type nm_generate_connections >/dev/null 2>&1 || . /lib/nm-lib.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) +- +-if getargbool 0 rd.neednet; then +- for i in /usr/lib/NetworkManager/system-connections/* \ +- /run/NetworkManager/system-connections/* \ +- /etc/NetworkManager/system-connections/* \ +- /etc/sysconfig/network-scripts/ifcfg-*; do +- [ -f "$i" ] || continue +- echo '[ -f /tmp/nm.done ]' >$hookdir/initqueue/finished/nm.sh +- break +- done +-fi ++nm_generate_connections +diff --git a/modules.d/35network-manager/nm-lib.sh b/modules.d/35network-manager/nm-lib.sh +new file mode 100644 +index 00000000..fe053cfa +--- /dev/null ++++ b/modules.d/35network-manager/nm-lib.sh +@@ -0,0 +1,20 @@ ++#!/bin/bash ++ ++type getcmdline >/dev/null 2>&1 || . /lib/dracut-lib.sh ++ ++nm_generate_connections() ++{ ++ rm -f /run/NetworkManager/system-connections/* ++ /usr/libexec/nm-initrd-generator -- $(getcmdline) ++ ++ if getargbool 0 rd.neednet; then ++ for i in /usr/lib/NetworkManager/system-connections/* \ ++ /run/NetworkManager/system-connections/* \ ++ /etc/NetworkManager/system-connections/* \ ++ /etc/sysconfig/network-scripts/ifcfg-*; do ++ [ -f "$i" ] || continue ++ echo '[ -f /tmp/nm.done ]' >$hookdir/initqueue/finished/nm.sh ++ break ++ done ++ fi ++} + diff --git a/0065.patch b/0065.patch new file mode 100644 index 0000000..9a3f522 --- /dev/null +++ b/0065.patch @@ -0,0 +1,30 @@ +From 5c3d0a96473ac339fa2d1b25213b8f301c1cfd0d Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Wed, 24 Jun 2020 13:09:04 +0200 +Subject: [PATCH] cms: regenerate NetworkManager connections + +After changing the kernel command line, the cmsifup script calls ifup +to activate the interface. However, ifup is only available in the +network-legacy module; when using the network-manager module, we +should regenerate connections according to the command line; then +later NM will be run and will activate the device. +--- + modules.d/80cms/cmsifup.sh | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/modules.d/80cms/cmsifup.sh b/modules.d/80cms/cmsifup.sh +index 902df8d8..77c18452 100755 +--- a/modules.d/80cms/cmsifup.sh ++++ b/modules.d/80cms/cmsifup.sh +@@ -35,4 +35,9 @@ fi + IFACES="$IFACES $DEVICE" + echo "$IFACES" >> /tmp/net.ifaces + +-exec ifup "$DEVICE" ++if [ -x /usr/libexec/nm-initrd-generator ]; then ++ type nm_generate_connections >/dev/null 2>&1 || . /lib/nm-lib.sh ++ nm_generate_connections ++else ++ exec ifup "$DEVICE" ++fi + diff --git a/0066.patch b/0066.patch new file mode 100644 index 0000000..cc0fa57 --- /dev/null +++ b/0066.patch @@ -0,0 +1,47 @@ +From 6dafdda4a6bdb8721133e4267553c5d86564f9e8 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 2 Jul 2020 09:08:03 +0200 +Subject: [PATCH] install: also install post weak dependencies of kernel + modules + +--- + install/dracut-install.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 3d64ed7a..9fbd72cd 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -1482,9 +1482,13 @@ static int install_dependent_modules(struct kmod_list *modlist) + ret = install_dependent_modules(modlist); + if (ret == 0) { + ret = kmod_module_get_softdeps(mod, &modpre, &modpost); +- if (ret == 0) +- ret = install_dependent_modules(modpre); +- } ++ if (ret == 0) { ++ int r; ++ ret = install_dependent_modules(modpre); ++ r = install_dependent_modules(modpost); ++ ret = ret ? : r; ++ } ++ } + } else { + log_error("dracut_install '%s' '%s' ERROR", path, &path[kerneldirlen]); + } +@@ -1545,8 +1549,12 @@ static int install_module(struct kmod_module *mod) + + if (ret == 0) { + ret = kmod_module_get_softdeps(mod, &modpre, &modpost); +- if (ret == 0) +- ret = install_dependent_modules(modpre); ++ if (ret == 0) { ++ int r; ++ ret = install_dependent_modules(modpre); ++ r = install_dependent_modules(modpost); ++ ret = ret ? : r; ++ } + } + + return ret; + diff --git a/0067.patch b/0067.patch new file mode 100644 index 0000000..c753b5b --- /dev/null +++ b/0067.patch @@ -0,0 +1,51 @@ +From de3cb0e3214c3fbab3a94e705445b4d1c2bf0dff Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Tue, 9 Jun 2020 03:03:18 +0800 +Subject: [PATCH] dracut.sh: Move the library workaround after squash + +Ensure the workaround is also valid when dracut-squash module is used + +Signed-off-by: Kairui Song +--- + dracut.sh | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index 81c6d654..9ee722c9 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1661,15 +1661,6 @@ if [[ $kernel_only != yes ]]; then + # Now we are done with lazy resolving, always install dependencies + unset DRACUT_RESOLVE_LAZY + export DRACUT_RESOLVE_DEPS=1 +- +- # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so +- for _dir in $libdirs; do +- for _f in "$dracutsysrootdir$_dir/libpthread.so"*; do +- [[ -e "$_f" ]] || continue +- inst_libdir_file "libgcc_s.so*" +- break 2 +- done +- done + fi + + for ((i=0; i < ${#include_src[@]}; i++)); do +@@ -1941,6 +1932,17 @@ if dracut_module_included "squash"; then + done + fi + ++if [[ $kernel_only != yes ]]; then ++ # libpthread workaround: pthread_cancel wants to dlopen libgcc_s.so ++ for _dir in $libdirs; do ++ for _f in "$dracutsysrootdir$_dir/libpthread.so"*; do ++ [[ -e "$_f" ]] || continue ++ inst_libdir_file "libgcc_s.so*" ++ break 2 ++ done ++ done ++fi ++ + if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then + dinfo "*** Stripping files ***" + find "$initdir" -type f \ + diff --git a/0068.patch b/0068.patch new file mode 100644 index 0000000..8ff8f1b --- /dev/null +++ b/0068.patch @@ -0,0 +1,40 @@ +From 5a4c3469338410b6aea9452994b4b0af1ba59be7 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 10 Jun 2020 15:57:20 +0800 +Subject: [PATCH] dracut.sh: FIPS workaround for openssl-libs on Fedora/RHEL + +On Fedora/RHEL, libcryto will verify both itself and libssl on start, if +libssl is missing, FIPS self test will fail. However libssl is not a +dependency of libcryto so dracut will not install it, unless some other +binary or library pulls it in. Systemd requires libssl, so in most cases +it just worked, but could fail in some corner cases where systemd is not +used. + +Signed-off-by: Kairui Song +--- + dracut.sh | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/dracut.sh b/dracut.sh +index 9ee722c9..e3195499 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1941,6 +1941,17 @@ if [[ $kernel_only != yes ]]; then + break 2 + done + done ++ ++ # FIPS workaround for Fedora/RHEL: libcrypto needs libssl when FIPS is enabled ++ if [[ $DRACUT_FIPS_MODE ]]; then ++ for _dir in $libdirs; do ++ for _f in "$dracutsysrootdir$_dir/libcrypto.so"*; do ++ [[ -e "$_f" ]] || continue ++ inst_libdir_file -o "libssl.so*" ++ break 2 ++ done ++ done ++ fi + fi + + if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then + diff --git a/0069.patch b/0069.patch new file mode 100644 index 0000000..aae96ff --- /dev/null +++ b/0069.patch @@ -0,0 +1,25 @@ +From 46f3156426e1b770e4876a654738e1c3e01851af Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Fri, 26 Jun 2020 18:50:47 +0200 +Subject: [PATCH] 91zipl: parse-zipl.sh: honor SYSTEMD_READY + +The zipl partition should not be mounted if SYSTEMD_READY=0 is set. +Otherwise booting issues with multipath will result. +--- + modules.d/91zipl/parse-zipl.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/91zipl/parse-zipl.sh b/modules.d/91zipl/parse-zipl.sh +index 308f228b..ddab0ea9 100755 +--- a/modules.d/91zipl/parse-zipl.sh ++++ b/modules.d/91zipl/parse-zipl.sh +@@ -31,7 +31,7 @@ if [ -n "$zipl_arg" ] ; then + esac + if [ "$zipl_env" ] ; then + { +- printf 'ACTION=="add|change", SUBSYSTEM=="block", %s=="%s", RUN+="/sbin/initqueue --settled --onetime --unique --name install_zipl_cmdline /sbin/install_zipl_cmdline.sh %s"\n' \ ++ printf 'ACTION=="add|change", SUBSYSTEM=="block", %s=="%s", ENV{SYSTEMD_READY}!="0", RUN+="/sbin/initqueue --settled --onetime --unique --name install_zipl_cmdline /sbin/install_zipl_cmdline.sh %s"\n' \ + ${zipl_env} ${zipl_val} ${zipl_arg} + echo "[ -f /tmp/install.zipl.cmdline-done ]" >$hookdir/initqueue/finished/wait-zipl-conf.sh + } >> /etc/udev/rules.d/99zipl-conf.rules + diff --git a/0070.patch b/0070.patch new file mode 100644 index 0000000..fc8e683 --- /dev/null +++ b/0070.patch @@ -0,0 +1,26 @@ +From 3b869230a08088a4f51d5bde8d5cfc8497779815 Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Mon, 6 Jul 2020 15:16:35 +0200 +Subject: [PATCH] 95iscsi: fix ipv6 target discovery + +ipv6 addresses need square brackets, otherwise the iscsi discovery and log-in, +which adds the iscsi port after another colon will get confused and fail. +--- + modules.d/95iscsi/iscsiroot.sh | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh +index cc2ed2cc..ac43b487 100755 +--- a/modules.d/95iscsi/iscsiroot.sh ++++ b/modules.d/95iscsi/iscsiroot.sh +@@ -213,6 +213,9 @@ handle_netroot() + echo "iscsi_lun=$iscsi_lun . /bin/mount-lun.sh " > $hookdir/mount/01-$$-iscsi.sh + fi + ++ if strglobin $iscsi_target_ip '*:*:*' && ! strglobin $iscsi_target_ip '['; then ++ iscsi_target_ip="[$iscsi_target_ip]" ++ fi + targets=$(iscsiadm -m discovery -t st -p $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} | sed 's/^.*iqn/iqn/') + [ -z "$targets" ] && echo "Target discovery to $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} failed with status $?" && exit 1 + + diff --git a/0071.patch b/0071.patch new file mode 100644 index 0000000..a3f97e9 --- /dev/null +++ b/0071.patch @@ -0,0 +1,55 @@ +From d8d5cb839cbddff7d73a12450055f14dce4ce1e2 Mon Sep 17 00:00:00 2001 +From: q66 +Date: Sat, 25 Jul 2020 17:28:16 +0200 +Subject: [PATCH] dracut.sh: fix early microcode detection logic + +This fixes two issues: + +1) on non-x86 systems in non-hostonly config this would cause + an annoying warning on every initramfs generation +2) on non-x86 systems in hostonly config this would result in + early microcode not getting disabled +--- + dracut.sh | 23 +++++++++++++++-------- + 1 file changed, 15 insertions(+), 8 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index e3195499..d5dfa77d 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1194,19 +1194,26 @@ fi + + if [[ $early_microcode = yes ]]; then + if [[ $hostonly ]]; then +- [[ $(get_cpu_vendor) == "AMD" ]] \ +- && ! check_kernel_config CONFIG_MICROCODE_AMD \ +- && unset early_microcode +- [[ $(get_cpu_vendor) == "Intel" ]] \ +- && ! check_kernel_config CONFIG_MICROCODE_INTEL \ +- && unset early_microcode ++ if [[ $(get_cpu_vendor) == "AMD" ]]; then ++ check_kernel_config CONFIG_MICROCODE_AMD || unset early_microcode ++ elif [[ $(get_cpu_vendor) == "Intel" ]]; then ++ check_kernel_config CONFIG_MICROCODE_INTEL || unset early_microcode ++ else ++ unset early_microcode ++ fi + else + ! check_kernel_config CONFIG_MICROCODE_AMD \ + && ! check_kernel_config CONFIG_MICROCODE_INTEL \ + && unset early_microcode + fi +- [[ $early_microcode != yes ]] \ +- && dwarn "Disabling early microcode, because kernel does not support it. CONFIG_MICROCODE_[AMD|INTEL]!=y" ++ # Do not complain on non-x86 architectures as it makes no sense ++ case $(uname -m) in ++ x86_64|i?86) ++ [[ $early_microcode != yes ]] \ ++ && dwarn "Disabling early microcode, because kernel does not support it. CONFIG_MICROCODE_[AMD|INTEL]!=y" ++ ;; ++ *) ;; ++ esac + fi + + # Need to be able to have non-root users read stuff (rpcbind etc) + diff --git a/0072.patch b/0072.patch new file mode 100644 index 0000000..ecfd9b2 --- /dev/null +++ b/0072.patch @@ -0,0 +1,24 @@ +From 265f696b532f63f0ac1f9f341e0469a6eafe2fdd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:26:00 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/90stratis/stratisd-init.service | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/modules.d/90stratis/stratisd-init.service b/modules.d/90stratis/stratisd-init.service +index 318e8c27..1be2e33b 100644 +--- a/modules.d/90stratis/stratisd-init.service ++++ b/modules.d/90stratis/stratisd-init.service +@@ -8,8 +8,6 @@ DefaultDependencies=no + Type=simple + ExecStart=/sbin/stratisd-init --debug + KillSignal=SIGINT +-StandardOutput=syslog +-StandardError=syslog + + [Install] + WantedBy=sysinit.target + diff --git a/0073.patch b/0073.patch new file mode 100644 index 0000000..ae21f14 --- /dev/null +++ b/0073.patch @@ -0,0 +1,24 @@ +From 38ba90bf88b38228e128c65be40a2da287c0b1ed Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:29:34 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/99squash/squash-mnt-clear.service | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/99squash/squash-mnt-clear.service b/modules.d/99squash/squash-mnt-clear.service +index 84441f60..9d94c524 100644 +--- a/modules.d/99squash/squash-mnt-clear.service ++++ b/modules.d/99squash/squash-mnt-clear.service +@@ -12,6 +12,6 @@ ConditionPathExists=/squash/root + Type=oneshot + RemainAfterExit=no + StandardInput=null +-StandardOutput=syslog+console +-StandardError=syslog+console ++StandardOutput=journal+console ++StandardError=journal+console + ExecStart=/squash/clear-squash.sh + diff --git a/0074.patch b/0074.patch new file mode 100644 index 0000000..47fec4d --- /dev/null +++ b/0074.patch @@ -0,0 +1,25 @@ +From 5cb2a4004d18e4b96ddc18f221fae922350a9000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:31:17 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/98dracut-systemd/dracut-pre-trigger.service | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-pre-trigger.service b/modules.d/98dracut-systemd/dracut-pre-trigger.service +index 7bf16167..6f1ba521 100644 +--- a/modules.d/98dracut-systemd/dracut-pre-trigger.service ++++ b/modules.d/98dracut-systemd/dracut-pre-trigger.service +@@ -20,8 +20,7 @@ Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-trigger + StandardInput=null +-StandardOutput=syslog +-StandardError=syslog+console ++StandardError=journal+console + KillMode=process + RemainAfterExit=yes + + diff --git a/0075.patch b/0075.patch new file mode 100644 index 0000000..40a5213 --- /dev/null +++ b/0075.patch @@ -0,0 +1,25 @@ +From 317d841c788e841d3533515ceda5597a099eb64e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:31:59 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/98dracut-systemd/dracut-initqueue.service | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-initqueue.service b/modules.d/98dracut-systemd/dracut-initqueue.service +index 207d545d..3a8679a5 100644 +--- a/modules.d/98dracut-systemd/dracut-initqueue.service ++++ b/modules.d/98dracut-systemd/dracut-initqueue.service +@@ -21,8 +21,7 @@ Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-initqueue + StandardInput=null +-StandardOutput=syslog +-StandardError=syslog+console ++StandardError=journal+console + KillMode=process + RemainAfterExit=yes + + diff --git a/0076.patch b/0076.patch new file mode 100644 index 0000000..53f27ce --- /dev/null +++ b/0076.patch @@ -0,0 +1,25 @@ +From 0c1bd016ecfb9c6d194c4356199b509d90db4071 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:32:44 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/98dracut-systemd/dracut-pre-pivot.service | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-pre-pivot.service b/modules.d/98dracut-systemd/dracut-pre-pivot.service +index 9a1f0854..e893d1dd 100644 +--- a/modules.d/98dracut-systemd/dracut-pre-pivot.service ++++ b/modules.d/98dracut-systemd/dracut-pre-pivot.service +@@ -27,8 +27,7 @@ Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-pivot + StandardInput=null +-StandardOutput=syslog +-StandardError=syslog+console ++StandardError=journal+console + KillMode=process + RemainAfterExit=yes + + diff --git a/0077.patch b/0077.patch new file mode 100644 index 0000000..b6b5bd9 --- /dev/null +++ b/0077.patch @@ -0,0 +1,25 @@ +From e1130a83405648777210fdc99f7eee087eebaadc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:33:33 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/98dracut-systemd/dracut-pre-udev.service | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-pre-udev.service b/modules.d/98dracut-systemd/dracut-pre-udev.service +index 570ec02d..e4092e35 100644 +--- a/modules.d/98dracut-systemd/dracut-pre-udev.service ++++ b/modules.d/98dracut-systemd/dracut-pre-udev.service +@@ -24,8 +24,7 @@ Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-udev + StandardInput=null +-StandardOutput=syslog +-StandardError=syslog+console ++StandardError=journal+console + KillMode=process + RemainAfterExit=yes + + diff --git a/0078.patch b/0078.patch new file mode 100644 index 0000000..3b7e9d1 --- /dev/null +++ b/0078.patch @@ -0,0 +1,25 @@ +From c437933cb0490e800e776cb7695d2ea0e95056a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:34:17 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/98dracut-systemd/dracut-pre-mount.service | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-pre-mount.service b/modules.d/98dracut-systemd/dracut-pre-mount.service +index d3909689..18c9730c 100644 +--- a/modules.d/98dracut-systemd/dracut-pre-mount.service ++++ b/modules.d/98dracut-systemd/dracut-pre-mount.service +@@ -19,8 +19,7 @@ Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-mount + StandardInput=null +-StandardOutput=syslog +-StandardError=syslog+console ++StandardError=journal+console + KillMode=process + RemainAfterExit=yes + + diff --git a/0079.patch b/0079.patch new file mode 100644 index 0000000..1ae1043 --- /dev/null +++ b/0079.patch @@ -0,0 +1,25 @@ +From d9149c6ca7c52c204c1b346e9b6a32bbadd0b2ff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:35:02 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/98dracut-systemd/dracut-cmdline.service | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-cmdline.service b/modules.d/98dracut-systemd/dracut-cmdline.service +index e577ec88..a8078bd2 100644 +--- a/modules.d/98dracut-systemd/dracut-cmdline.service ++++ b/modules.d/98dracut-systemd/dracut-cmdline.service +@@ -23,8 +23,7 @@ Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-cmdline + StandardInput=null +-StandardOutput=syslog +-StandardError=syslog+console ++StandardError=journal+console + KillMode=process + RemainAfterExit=yes + + diff --git a/0080.patch b/0080.patch new file mode 100644 index 0000000..0cbb0da --- /dev/null +++ b/0080.patch @@ -0,0 +1,25 @@ +From 8cb5ac1b30be458df9497911ba601d90e68f4d5b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:35:38 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/98dracut-systemd/dracut-mount.service | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-mount.service b/modules.d/98dracut-systemd/dracut-mount.service +index 77d34f62..c88e6d84 100644 +--- a/modules.d/98dracut-systemd/dracut-mount.service ++++ b/modules.d/98dracut-systemd/dracut-mount.service +@@ -19,8 +19,7 @@ Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-mount + StandardInput=null +-StandardOutput=syslog +-StandardError=syslog+console ++StandardError=journal+console + KillMode=process + RemainAfterExit=yes + + diff --git a/0081.patch b/0081.patch new file mode 100644 index 0000000..479fa30 --- /dev/null +++ b/0081.patch @@ -0,0 +1,23 @@ +From 0cf01f125a224efd35bfe6ab736d9e04de715264 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Wed, 15 Jul 2020 14:36:20 +0000 +Subject: [PATCH] As of v246 of systemd "syslog" and "syslog-console" switches + have been deprecated + +--- + modules.d/99memstrack/memstrack.service | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/99memstrack/memstrack.service b/modules.d/99memstrack/memstrack.service +index 6b47adef..c9fcadef 100644 +--- a/modules.d/99memstrack/memstrack.service ++++ b/modules.d/99memstrack/memstrack.service +@@ -9,5 +9,5 @@ Type=simple + ExecStart=/bin/memstrack-start + PIDFile=/run/memstrack.pid + StandardInput=null +-StandardOutput=syslog+console +-StandardError=syslog+console ++StandardOutput=journal+console ++StandardError=journal+console + diff --git a/0082.patch b/0082.patch new file mode 100644 index 0000000..5ca7d6c --- /dev/null +++ b/0082.patch @@ -0,0 +1,24 @@ +From f7ad1479f277ddffcc501bd08919a4a4a6facc26 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Mon, 3 Aug 2020 16:51:54 +0800 +Subject: [PATCH] 90kernel-modules: add pci_hyperv + +Install pci_hyperv for SR-IOV devices on hyperv machines. +--- + modules.d/90kernel-modules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index b3aa75f3..764675eb 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -57,7 +57,7 @@ installkernel() { + instmods \ + yenta_socket \ + atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \ +- virtio virtio_ring virtio_pci virtio_scsi \ ++ virtio virtio_ring virtio_pci virtio_scsi pci_hyperv \ + "=drivers/pcmcia" + + if [[ "${DRACUT_ARCH:-$(uname -m)}" == arm* || "${DRACUT_ARCH:-$(uname -m)}" == aarch64 ]]; then + diff --git a/0083.patch b/0083.patch new file mode 100644 index 0000000..b22bc82 --- /dev/null +++ b/0083.patch @@ -0,0 +1,35 @@ +From 05ce5c41b61f97d41044f2f146de980e38f7991a Mon Sep 17 00:00:00 2001 +From: q66 +Date: Sat, 25 Jul 2020 17:47:00 +0200 +Subject: [PATCH] 90ppcmac: respect DRACUT_ARCH, don't exclude ppcle + +--- + modules.d/90ppcmac/module-setup.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/modules.d/90ppcmac/module-setup.sh b/modules.d/90ppcmac/module-setup.sh +index 59221ec4..d457119f 100644 +--- a/modules.d/90ppcmac/module-setup.sh ++++ b/modules.d/90ppcmac/module-setup.sh +@@ -17,9 +17,9 @@ + + # called by dracut + check() { +- local _arch="$(uname -m)" ++ local _arch=${DRACUT_ARCH:-$(uname -m)} + # only for PowerPC Macs +- [[ "$_arch" == ppc* && "$_arch" != ppc*le ]] || return 1 ++ [[ "$_arch" == ppc* && "$_arch" != ppc64le ]] || return 1 + return 0 + } + +@@ -36,7 +36,7 @@ installkernel() { + } + + # only PowerMac3,6 has a module, special case +- if [[ "$(uname -m)" == ppc ]]; then ++ if [[ "${DRACUT_ARCH:-$(uname -m)}" != ppc64* ]]; then + if ! [[ $hostonly ]] || [[ "$(pmac_model)" == "PowerMac3,6" ]]; then + instmods therm_windtunnel + fi + diff --git a/0084.patch b/0084.patch new file mode 100644 index 0000000..c82cce3 --- /dev/null +++ b/0084.patch @@ -0,0 +1,30 @@ +From fa1b98e4eafbc4e4145328b094388328b83bb647 Mon Sep 17 00:00:00 2001 +From: q66 +Date: Sat, 25 Jul 2020 17:29:23 +0200 +Subject: [PATCH] mkinitrd-dracut.sh: use vmlinux regex for ppc*, vmlinuz for + i686 + +Previously this would not catch ppc64le, now it does; same with +i686. +--- + mkinitrd-dracut.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh +index 82d90684..c2141d68 100755 +--- a/mkinitrd-dracut.sh ++++ b/mkinitrd-dracut.sh +@@ -57,10 +57,10 @@ default_kernel_images() { + s390|s390x) + regex='image' + ;; +- ppc|ppc64) ++ ppc*) + regex='vmlinux' + ;; +- i386|x86_64) ++ i?86|x86_64) + regex='vmlinuz' + ;; + arm*) + diff --git a/0085.patch b/0085.patch new file mode 100644 index 0000000..7d1d927 --- /dev/null +++ b/0085.patch @@ -0,0 +1,23 @@ +From 63b05a8e6787301dce435bd414a37a8f3ae9cdde Mon Sep 17 00:00:00 2001 +From: q66 +Date: Sat, 25 Jul 2020 17:20:40 +0200 +Subject: [PATCH] dracut.sh: fix ia32 detection for uefi executables + +--- + dracut.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index d5dfa77d..8f78da06 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1153,7 +1153,7 @@ if [[ ! $print_cmdline ]]; then + case $(uname -m) in + x86_64) + EFI_MACHINE_TYPE_NAME=x64;; +- ia32) ++ i?86) + EFI_MACHINE_TYPE_NAME=ia32;; + *) + dfatal "Architecture '$(uname -m)' not supported to create a UEFI executable" + diff --git a/0086.patch b/0086.patch new file mode 100644 index 0000000..2f72338 --- /dev/null +++ b/0086.patch @@ -0,0 +1,249 @@ +From 019610af266bcaef711715266bc0ca4be1044150 Mon Sep 17 00:00:00 2001 +From: Enzo Matsumiya +Date: Mon, 3 Aug 2020 11:21:36 -0300 +Subject: [PATCH] 95nvmf: add NVMe over TCP support + +Add support to boot from an NVMe over TCP device. + +Example of supported command line formats: + +nvme.discover=tcp:192.168.1.3::4420 +nvme.discover=tcp:192.168.1.3 # will use 4420 as default svcid + +- Create is_nvmf() function to handle all fabrics types +- Fix parse_nvmf_discover() to correctly use the default values +- Auxiliary function to validate an IP connection +- Fix inverted result for getargbool when reading "rd.nonvmf" command line parameter + +Requires rd.neednet=1 +Requires adding/replacing STARTMODE in /etc/sysconfig/network/ifcfg-ethX to "nfsroot" +to avoid shutdown hanging in initiator + +Signed-off-by: Enzo Matsumiya +--- + modules.d/95nvmf/module-setup.sh | 25 ++++--- + modules.d/95nvmf/parse-nvmf-boot-connections.sh | 97 ++++++++++++++++++------- + 2 files changed, 84 insertions(+), 38 deletions(-) + +diff --git a/modules.d/95nvmf/module-setup.sh b/modules.d/95nvmf/module-setup.sh +index db43ec01..418b5e0c 100755 +--- a/modules.d/95nvmf/module-setup.sh ++++ b/modules.d/95nvmf/module-setup.sh +@@ -6,9 +6,9 @@ check() { + [ -f /etc/nvme/hostnqn ] || return 255 + [ -f /etc/nvme/hostid ] || return 255 + +- is_nvme_fc() { ++ is_nvmf() { + local _dev=$1 +- local traddr ++ local trtype + + [[ -L "/sys/dev/block/$_dev" ]] || return 0 + cd -P "/sys/dev/block/$_dev" || return 0 +@@ -18,19 +18,19 @@ check() { + for d in device/nvme* ; do + [ -L "$d" ] || continue + if readlink "$d" | grep -q nvme-fabrics ; then +- traddr=$(cat "$d"/address) +- break +- fi +- done +- [[ "${traddr#traddr=nn-}" != "$traddr" ]] ++ trtype=$(cat "$d"/transport) ++ break ++ fi ++ done ++ [[ "$trtype" == "fc" ]] || [[ "$trtype" == "tcp" ]] || [[ "$trtype" == "rdma" ]] + } + + [[ $hostonly ]] || [[ $mount_needs ]] && { + pushd . >/dev/null +- for_each_host_dev_and_slaves is_nvme_fc +- local _is_nvme_fc=$? ++ for_each_host_dev_and_slaves is_nvmf ++ local _is_nvmf=$? + popd >/dev/null +- [[ $_is_nvme_fc == 0 ]] || return 255 ++ [[ $_is_nvmf == 0 ]] || return 255 + if [ ! -f /sys/class/fc/fc_udev_device/nvme_discovery ] ; then + if [ ! -f /etc/nvme/discovery.conf ] ; then + echo "No discovery arguments present" +@@ -43,13 +43,14 @@ check() { + + # called by dracut + depends() { +- echo bash rootfs-block ++ echo bash rootfs-block network + return 0 + } + + # called by dracut + installkernel() { + instmods nvme_fc lpfc qla2xxx ++ hostonly="" instmods nvme_tcp nvme_fabrics + } + + # called by dracut +@@ -76,6 +77,8 @@ install() { + inst_simple "/etc/nvme/hostnqn" + inst_simple "/etc/nvme/hostid" + ++ inst_multiple ip sed ++ + inst_multiple nvme + inst_multiple -o \ + "$systemdsystemunitdir/nvm*-connect@.service" \ +diff --git a/modules.d/95nvmf/parse-nvmf-boot-connections.sh b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +index 0d16b871..61c6dec1 100755 +--- a/modules.d/95nvmf/parse-nvmf-boot-connections.sh ++++ b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +@@ -8,69 +8,102 @@ + # Examples: + # nvmf.hostnqn=nqn.2014-08.org.nvmexpress:uuid:37303738-3034-584d-5137-333230423843 + # nvmf.discover=rdma:192.168.1.3::4420 ++# nvme.discover=tcp:192.168.1.3::4420 ++# nvme.discover=tcp:192.168.1.3 + # nvmf.discover=fc:auto + # + # Note: FC does autodiscovery, so typically there is no need to + # specify any discover parameters for FC. + # + ++type is_ip >/dev/null 2>&1 || . /lib/net-lib.sh ++ ++if getargbool 0 rd.nonvmf ; then ++ warn "rd.nonvmf=0: skipping nvmf" ++ return 0 ++fi ++ ++initqueue --onetime modprobe --all -b -q nvme nvme_tcp nvme_core nvme_fabrics ++ ++traddr="none" ++trtype="none" ++hosttraddr="none" ++trsvcid=4420 ++ ++validate_ip_conn() { ++ if ! getargbool 0 rd.neednet ; then ++ warn "$trtype transport requires rd.neednet=1" ++ return 1 ++ fi ++ ++ local_address=$(ip -o route get to $traddr | sed -n 's/.*src \([0-9a-f.:]*\).*/\1/p') ++ ++ # confirm we got a local IP address ++ if ! is_ip "$local_address" ; then ++ warn "$traddr is an invalid address"; ++ return 1 ++ fi ++ ++ ifname=$(ip -o route get to $local_address | sed -n 's/.*dev \([^ ]*\).*/\1/p') ++ ++ if ip l show "$ifname" >/dev/null 2>&1 ; then ++ warn "invalid network interface $ifname" ++ return 1 ++ fi ++ ++ # confirm there's a route to destination ++ if ip route get "$traddr" >/dev/null 2>&1 ; then ++ warn "no route to $traddr" ++ return 1 ++ fi ++} ++ + parse_nvmf_discover() { + OLDIFS="$IFS" + IFS=: +- trtype="none" +- traddr="none" +- hosttraddr="none" +- trsvcid=4420 +- + set $1 + IFS="$OLDIFS" + + case $# in + 2) +- trtype=$1 +- traddr=$2 ++ [ -n "$1" ] && trtype=$1 ++ [ -n "$2" ] && traddr=$2 + ;; + 3) +- trtype=$1 +- traddr=$2 +- hosttraddr=$3 ++ [ -n "$1" ] && trtype=$1 ++ [ -n "$2" ] && traddr=$2 ++ [ -n "$3" ] && hosttraddr=$3 + ;; + 4) +- trtype=$1 +- traddr=$2 +- hosttraddr=$3 +- trsvcid=$4 ++ [ -n "$1" ] && trtype=$1 ++ [ -n "$2" ] && traddr=$2 ++ [ -n "$3" ] && hosttraddr=$3 ++ [ -n "$4" ] && trsvcid=$4 + ;; + *) + warn "Invalid arguments for nvmf.discover=$1" + return 1 + ;; + esac +- if [ -z "$traddr" ] ; then ++ if [ "$traddr" = "none" ] ; then + warn "traddr is mandatory for $trtype" + return 1; + fi +- [ -z "$hosttraddr" ] && hosttraddr="none" +- [ -z "$trsvcid" ] && trsvcid="none" + if [ "$trtype" = "fc" ] ; then +- if [ -z "$hosttraddr" ] ; then ++ if [ "$hosttraddr" = "none" ] ; then + warn "host traddr is mandatory for fc" + return 1 + fi + elif [ "$trtype" != "rdma" ] && [ "$trtype" != "tcp" ] ; then + warn "unsupported transport $trtype" + return 1 +- elif [ -z "$trsvcid" ] ; then +- trsvcid=4420 ++ fi ++ if [ "$trtype" = "tcp" ]; then ++ validate_ip_conn + fi + echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr --trsvcid=$trsvcid" >> /etc/nvme/discovery.conf + } + +-if ! getargbool 0 rd.nonvmf ; then +- info "rd.nonvmf=0: skipping nvmf" +- return 0 +-fi +- + nvmf_hostnqn=$(getarg nvmf.hostnqn=) + if [ -n "$nvmf_hostnqn" ] ; then + echo "$nvmf_hostnqn" > /etc/nvme/hostnqn +@@ -89,7 +122,17 @@ done + [ -f "/etc/nvme/hostid" ] || exit 0 + + if [ -f "/etc/nvme/discovery.conf" ] ; then +- /sbin/initqueue --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all ++ if [ "$trtype" = "tcp" ] ; then ++ /sbin/initqueue --settled --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all ++ > /tmp/net.$ifname.did-setup ++ else ++ /sbin/initqueue --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all ++ fi + else +- /sbin/initqueue --finished --unique --name nvme-fc-autoconnect echo 1 > /sys/class/fc/fc_udev_device/nvme_discovery ++ if [ "$trtype" = "tcp" ] ; then ++ /sbin/initqueue --settled --onetime --unique /usr/sbin/nvme connect-all -t tcp -a $traddr -s $trsvcid ++ > /tmp/net.$ifname.did-setup ++ else ++ /sbin/initqueue --finished --unique --name nvme-fc-autoconnect echo 1 > /sys/class/fc/fc_udev_device/nvme_discovery ++ fi + fi + diff --git a/0087.patch b/0087.patch new file mode 100644 index 0000000..916f3bc --- /dev/null +++ b/0087.patch @@ -0,0 +1,140 @@ +From ceca74ccc397795db68ca6ffbe49d65af2178a50 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Sat, 11 Jul 2020 00:15:34 +0200 +Subject: [PATCH] dracut-functions: add ip_params_for_remote_addr() helper + +This helper function takes a remote IP address, and tries to +determine the dracut command line arguments ip= and ifname= that +will make this remote address reachable during boot. + +Functionality was taken from the module-setup.sh scripts of 95iscsi and 95nfs, +cleaned up and fixed some issues in particular with statically configured +networks, where the old code would print the unsupported string +"$ifname:static". +--- + dracut-functions.sh | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 114 insertions(+) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index b5c28248..07ae88c0 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -728,3 +728,117 @@ btrfs_devs() { + printf -- "%s\n" "$_dev" + done + } ++ ++iface_for_remote_addr() { ++ set -- $(ip -o route get to "$1") ++ echo $3 ++} ++ ++local_addr_for_remote_addr() { ++ set -- $(ip -o route get to "$1") ++ echo $5 ++} ++ ++peer_for_addr() { ++ local addr=$1 ++ local qtd ++ ++ # quote periods in IPv4 address ++ qtd=${addr//./\\.} ++ ip -o addr show | \ ++ sed -n 's%^.* '"$qtd"' peer \([0-9a-f.:]\{1,\}\(/[0-9]*\)\?\).*$%\1%p' ++} ++ ++netmask_for_addr() { ++ local addr=$1 ++ local qtd ++ ++ # quote periods in IPv4 address ++ qtd=${addr//./\\.} ++ ip -o addr show | sed -n 's,^.* '"$qtd"'/\([0-9]*\) .*$,\1,p' ++} ++ ++gateway_for_iface() { ++ local ifname=$1 addr=$2 ++ ++ case $addr in ++ *.*) proto=4;; ++ *:*) proto=6;; ++ *) return;; ++ esac ++ ip -o -$proto route show | \ ++ sed -n "s/^default via \([0-9a-z.:]\{1,\}\) dev $ifname .*\$/\1/p" ++} ++ ++# This works only for ifcfg-style network configuration! ++bootproto_for_iface() { ++ local ifname=$1 ++ local dir ++ ++ # follow ifcfg settings for boot protocol ++ for dir in network-scripts network; do ++ [ -f "/etc/sysconfig/$dir/ifcfg-$ifname" ] && { ++ sed -n "s/BOOTPROTO=[\"']\?\([[:alnum:]]\{1,\}\)[\"']\?.*\$/\1/p" \ ++ "/etc/sysconfig/$dir/ifcfg-$ifname" ++ return ++ } ++ done ++} ++ ++is_unbracketed_ipv6_address() { ++ strglob "$1" '*:*' && ! strglob "$1" '\[*:*\]' ++} ++ ++# Create an ip= string to set up networking such that the given ++# remote address can be reached ++ip_params_for_remote_addr() { ++ local remote_addr=$1 ++ local ifname local_addr peer netmask= gateway ifmac ++ ++ [[ $remote_addr ]] || return 1 ++ ifname=$(iface_for_remote_addr "$remote_addr") ++ [[ $ifname ]] || { ++ berror "failed to determine interface to connect to $remote_addr" ++ return 1 ++ } ++ ++ # ifname clause to bind the interface name to a MAC address ++ if [ -d "/sys/class/net/$ifname/bonding" ]; then ++ dinfo "Found bonded interface '${ifname}'. Make sure to provide an appropriate 'bond=' cmdline." ++ elif [ -e "/sys/class/net/$ifname/address" ] ; then ++ ifmac=$(cat "/sys/class/net/$ifname/address") ++ [[ $ifmac ]] && printf 'ifname=%s:%s ' "${ifname}" "${ifmac}" ++ fi ++ ++ bootproto=$(bootproto_for_iface "$ifname") ++ case $bootproto in ++ dhcp|dhcp6|auto6) ;; ++ dhcp4) ++ bootproto=dhcp;; ++ static*|"") ++ bootproto=;; ++ *) ++ derror "bootproto \"$bootproto\" is unsupported by dracut, trying static configuration" ++ bootproto=;; ++ esac ++ if [[ $bootproto ]]; then ++ printf 'ip=%s:%s ' "${ifname}" "${bootproto}" ++ else ++ local_addr=$(local_addr_for_remote_addr "$remote_addr") ++ [[ $local_addr ]] || { ++ berror "failed to determine local address to connect to $remote_addr" ++ return 1 ++ } ++ peer=$(peer_for_addr "$local_addr") ++ # Set peer or netmask, but not both ++ [[ $peer ]] || netmask=$(netmask_for_addr "$local_addr") ++ gateway=$(gateway_for_iface "$ifname" "$local_addr") ++ # Quote IPv6 addresses with brackets ++ is_unbracketed_ipv6_address "$local_addr" && local_addr="[$local_addr]" ++ is_unbracketed_ipv6_address "$peer" && peer="[$peer]" ++ is_unbracketed_ipv6_address "$gateway" && gateway="[$gateway]" ++ printf 'ip=%s:%s:%s:%s::%s:none ' \ ++ "${local_addr}" "${peer}" "${gateway}" "${netmask}" "${ifname}" ++ fi ++ ++} + diff --git a/0088.patch b/0088.patch new file mode 100644 index 0000000..245ece5 --- /dev/null +++ b/0088.patch @@ -0,0 +1,44 @@ +From 6dbae7e77238dd44bedb0ca2478f985f451c05bf Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Fri, 10 Jul 2020 18:09:05 +0200 +Subject: [PATCH] 95iscsi: use ip_params_for_remote_addr() + +Use the new helper function. +--- + modules.d/95iscsi/module-setup.sh | 22 +--------------------- + 1 file changed, 1 insertion(+), 21 deletions(-) + +diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh +index 8b6300d5..dfacd797 100755 +--- a/modules.d/95iscsi/module-setup.sh ++++ b/modules.d/95iscsi/module-setup.sh +@@ -120,27 +120,7 @@ install_iscsiroot() { + done + + [ -z "$iscsi_address" ] && return +- local_address=$(ip -o route get to $iscsi_address | sed -n 's/.*src \([0-9a-f.:]*\).*/\1/p') +- ifname=$(ip -o route get to $iscsi_address | sed -n 's/.*dev \([^ ]*\).*/\1/p') +- +- # follow ifcfg settings for boot protocol +- for _path in \ +- "/etc/sysconfig/network-scripts/ifcfg-$ifname" \ +- "/etc/sysconfig/network/ifcfg-$ifname" \ +- ; do +- [ -f "$_path" ] && bootproto=$(sed -n "s/BOOTPROTO='\?\([[:alpha:]]*6\?\)4\?/\1/p" "$_path") +- done +- +- if [ $bootproto ]; then +- printf 'ip=%s:%s ' ${ifname} ${bootproto} +- else +- printf 'ip=%s:static ' ${ifname} +- fi +- +- if [ -e /sys/class/net/$ifname/address ] ; then +- ifmac=$(cat /sys/class/net/$ifname/address) +- printf 'ifname=%s:%s ' ${ifname} ${ifmac} +- fi ++ ip_params_for_remote_addr "$iscsi_address" + + if [ -n "$iscsi_address" -a -n "$iscsi_targetname" ] ; then + if [ -n "$iscsi_port" -a "$iscsi_port" -eq 3260 ] ; then + diff --git a/0089.patch b/0089.patch new file mode 100644 index 0000000..b37feca --- /dev/null +++ b/0089.patch @@ -0,0 +1,47 @@ +From 880d155967bb54f61e5960347aa8bbab6da8f86d Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Sat, 11 Jul 2020 00:19:09 +0200 +Subject: [PATCH] 95nfs: use ip_params_for_remote_addr() + +Use the new helper function. +--- + modules.d/95nfs/module-setup.sh | 17 ++--------------- + 1 file changed, 2 insertions(+), 15 deletions(-) + +diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh +index d9a91fdf..4a8e140b 100755 +--- a/modules.d/95nfs/module-setup.sh ++++ b/modules.d/95nfs/module-setup.sh +@@ -47,7 +47,6 @@ cmdline() { + local nfs_root + local nfs_address + local lookup +- local ifname + + ### nfsroot= ### + nfs_device=$(findmnt -t nfs4 -n -o SOURCE /) +@@ -69,21 +68,9 @@ cmdline() { + lookup=$(host "${nfs_device%%:*}"| grep " address " | head -n1) + nfs_address=${lookup##* } + fi +- ifname=$(ip -o route get to $nfs_address | sed -n 's/.*dev \([^ ]*\).*/\1/p') +- if [ -d /sys/class/net/$ifname/bonding ]; then +- dinfo "Found bonded interface '${ifname}'. Make sure to provide an appropriate 'bond=' cmdline." +- return +- elif [ -e /sys/class/net/$ifname/address ] ; then +- ifmac=$(cat /sys/class/net/$ifname/address) +- printf 'ifname=%s:%s ' ${ifname} ${ifmac} +- fi + +- bootproto=$(sed -n "/BOOTPROTO/s/BOOTPROTO='\([[:alpha:]]*6\?\)4\?'/\1/p" /etc/sysconfig/network/ifcfg-$ifname) +- if [ $bootproto ]; then +- printf 'ip=%s:%s ' ${ifname} ${bootproto} +- else +- printf 'ip=%s:static ' ${ifname} +- fi ++ [[ $nfs_address ]] || return ++ ip_params_for_remote_addr "$nfs_address" + } + + # called by dracut + diff --git a/0090.patch b/0090.patch new file mode 100644 index 0000000..734f433 --- /dev/null +++ b/0090.patch @@ -0,0 +1,25 @@ +From fe02bc78accf4aaa39ab33adcdb5aaa71df90b30 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Sat, 23 May 2020 21:42:18 +0300 +Subject: [PATCH] lvm: remove unnecessary ${initdir} from lvm_scan.sh + +lvm_scan.sh runs in the initramfs, so paths should not be prefixed with +${initdir}. +--- + modules.d/90lvm/lvm_scan.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index 61a18b24..ff8e66e2 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -91,7 +91,7 @@ export LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES=1 + if [ -n "$SNAPSHOT" ] ; then + # HACK - this should probably be done elsewhere or turned into a function + # Enable read-write LVM locking +- sed -i -e 's/\(^[[:space:]]*\)locking_type[[:space:]]*=[[:space:]]*[[:digit:]]/\1locking_type = 1/' ${initdir}/etc/lvm/lvm.conf ++ sed -i -e 's/\(^[[:space:]]*\)locking_type[[:space:]]*=[[:space:]]*[[:digit:]]/\1locking_type = 1/' /etc/lvm/lvm.conf + + # Expected SNAPSHOT format ":" + ORIG_LV=${SNAPSHOT%%:*} + diff --git a/0091.patch b/0091.patch new file mode 100644 index 0000000..cbe33d0 --- /dev/null +++ b/0091.patch @@ -0,0 +1,150 @@ +From 480aa9695f8c2e2b30c8f41ae8483140020d23db Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Tue, 4 Aug 2020 10:20:51 +0200 +Subject: [PATCH] 95resume: Do not resume on iSCSI, FCoE or NBD + +The iSCSI configuration is started after dracut checks for resume, +so we run into a timeout here. Additionally it's questionable if +resume on iSCSI makes sense (or is even supported on the platform). + +Same holds true for Network Block Devices and FcOE, cover those as well + +References: bsc#999663 + +Original-patch-by: Hannes Reinecke +Signed-off-by: Daniel Molkentin +--- + dracut-functions.sh | 44 ++++++++++++++++++++++++++++++++++++++ + modules.d/95iscsi/module-setup.sh | 14 ++---------- + modules.d/95nbd/module-setup.sh | 4 +--- + modules.d/95resume/module-setup.sh | 11 +++++++++- + 4 files changed, 57 insertions(+), 16 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 07ae88c0..e0ca7574 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -842,3 +842,47 @@ ip_params_for_remote_addr() { + fi + + } ++ ++# block_is_nbd ++# Check whether $1 is an nbd device ++block_is_nbd() { ++ [[ -b /dev/block/$1 && $1 == 43:* ]] ++} ++ ++# block_is_iscsi ++# Check whether $1 is an nbd device ++block_is_iscsi() { ++ local _dir ++ local _dev=$1 ++ [[ -L "/sys/dev/block/$_dev" ]] || return ++ _dir="$(readlink -f "/sys/dev/block/$_dev")" || return ++ until [[ -d "$_dir/sys" || -d "$_dir/iscsi_session" ]]; do ++ _dir="$_dir/.." ++ done ++ [[ -d "$_dir/iscsi_session" ]] ++} ++ ++# block_is_fcoe ++# Check whether $1 is an FCoE device ++# Will not work for HBAs that hide the ethernet aspect ++# completely and present a pure FC device ++block_is_fcoe() { ++ local _dir ++ local _dev=$1 ++ [[ -L "/sys/dev/block/$_dev" ]] || return ++ _dir="$(readlink -f "/sys/dev/block/$_dev")" ++ until [[ -d "$_dir/sys" ]]; do ++ _dir="$_dir/.." ++ if [[ -d "$_dir/subsystem" ]]; then ++ subsystem=$(basename $(readlink $_dir/subsystem)) ++ [[ $subsystem == "fcoe" ]] && return 0 ++ fi ++ done ++ return 1 ++} ++ ++# block_is_netdevice ++# Check whether $1 is a net device ++block_is_netdevice() { ++ block_is_nbd "$1" || block_is_iscsi "$1" || block_is_fcoe "$1" ++} +diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh +index dfacd797..20922442 100755 +--- a/modules.d/95iscsi/module-setup.sh ++++ b/modules.d/95iscsi/module-setup.sh +@@ -9,20 +9,9 @@ check() { + # If hostonly was requested, fail the check if we are not actually + # booting from root. + +- is_iscsi() { +- local _dev=$1 +- +- [[ -L "/sys/dev/block/$_dev" ]] || return +- cd "$(readlink -f "/sys/dev/block/$_dev")" +- until [[ -d sys || -d iscsi_session ]]; do +- cd .. +- done +- [[ -d iscsi_session ]] +- } +- + [[ $hostonly ]] || [[ $mount_needs ]] && { + pushd . >/dev/null +- for_each_host_dev_and_slaves is_iscsi ++ for_each_host_dev_and_slaves block_is_iscsi + local _is_iscsi=$? + popd >/dev/null + [[ $_is_iscsi == 0 ]] || return 255 +@@ -223,6 +212,7 @@ install() { + inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh" + inst_hook cleanup 90 "$moddir/cleanup-iscsi.sh" + inst "$moddir/iscsiroot.sh" "/sbin/iscsiroot" ++ + if ! dracut_module_included "systemd"; then + inst "$moddir/mount-lun.sh" "/bin/mount-lun.sh" + else +diff --git a/modules.d/95nbd/module-setup.sh b/modules.d/95nbd/module-setup.sh +index 22f6a3bf..9254b49a 100755 +--- a/modules.d/95nbd/module-setup.sh ++++ b/modules.d/95nbd/module-setup.sh +@@ -7,11 +7,9 @@ check() { + # if an nbd device is not somewhere in the chain of devices root is + # mounted on, fail the hostonly check. + [[ $hostonly ]] || [[ $mount_needs ]] && { +- is_nbd() { [[ -b /dev/block/$1 && $1 == 43:* ]] ;} +- + _rootdev=$(find_root_block_device) + [[ -b /dev/block/$_rootdev ]] || return 1 +- check_block_and_slaves is_nbd "$_rootdev" || return 255 ++ check_block_and_slaves block_is_nbd "$_rootdev" || return 255 + } + require_binaries nbd-client || return 1 + +diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh +index cb06b567..96c2573e 100755 +--- a/modules.d/95resume/module-setup.sh ++++ b/modules.d/95resume/module-setup.sh +@@ -2,9 +2,18 @@ + + # called by dracut + check() { ++ swap_on_netdevice() { ++ local _dev ++ for _dev in "${swap_devs[@]}"; do ++ block_is_netdevice $_dev && return 0 ++ done ++ return 1 ++ } ++ + # Only support resume if hibernation is currently on ++ # and no swap is mounted on a net device + [[ $hostonly ]] || [[ $mount_needs ]] && { +- [[ "$(cat /sys/power/resume)" == "0:0" ]] && return 255 ++ swap_on_netdevice || [[ "$(cat /sys/power/resume)" == "0:0" ]] && return 255 + } + + return 0 + diff --git a/0092.patch b/0092.patch new file mode 100644 index 0000000..7c4a143 --- /dev/null +++ b/0092.patch @@ -0,0 +1,23 @@ +From e90220701445dc58c56c3df22276cbc9b1299dc2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= +Date: Tue, 24 Sep 2019 22:39:43 -0400 +Subject: [PATCH] dracut.modules.7.asc: fix another typo + +--- + dracut.modules.7.asc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc +index 67a56bd4..fb30409e 100644 +--- a/dracut.modules.7.asc ++++ b/dracut.modules.7.asc +@@ -159,7 +159,7 @@ check(): + return 0 + ---- + +-The we create the install() function, which installs a cmdline hook with ++Then we create the install() function, which installs a cmdline hook with + priority number 20 called _parse-insmodpost.sh_. It also installs the + _insmodpost.sh_ script in _/sbin_. + + diff --git a/0093.patch b/0093.patch new file mode 100644 index 0000000..67b741d --- /dev/null +++ b/0093.patch @@ -0,0 +1,27 @@ +From 30ea52f88cddd99825b6bb9be79b738702cb1a6a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= +Date: Tue, 24 Sep 2019 23:00:35 -0400 +Subject: [PATCH] dracut.modules.7.asc: fix reference to insmodpost module + +The module 96insmodpost was renamed to 90kernel-modules since commit +5078c98a (move insmodpost and blacklisting to 90kernel-modules) +--- + dracut.modules.7.asc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc +index fb30409e..81135cff 100644 +--- a/dracut.modules.7.asc ++++ b/dracut.modules.7.asc +@@ -146,8 +146,8 @@ FIXME + + == Writing a Module + +-A simple example module is _96insmodpost_, which modprobes a kernel module after +-udev has settled and the basic device drivers have been loaded. ++A simple example module is _90kernel-modules_, which modprobes a kernel module ++after udev has settled and the basic device drivers have been loaded. + + All module installation information is in the file module-setup.sh. + + diff --git a/0094.patch b/0094.patch new file mode 100644 index 0000000..65f7b29 --- /dev/null +++ b/0094.patch @@ -0,0 +1,24 @@ +From 07417b7fc5cb261187519c916e4735189f20f4c6 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Sat, 23 May 2020 18:03:47 +0300 +Subject: [PATCH] lvm: fix removal of pvscan from udev rules + +udev rules provided by lvm 2.02.128 and newer uses '+=' instead of '='. +--- + modules.d/90lvm/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh +index d6d2c185..52c803f7 100755 +--- a/modules.d/90lvm/module-setup.sh ++++ b/modules.d/90lvm/module-setup.sh +@@ -101,7 +101,7 @@ install() { + sed -i -e 's/^ENV{SYSTEMD_ALIAS}=.*/# No LVM pvscan in dracut - lvmetad is not running yet/' \ + ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules + sed -i -e 's/^ENV{ID_MODEL}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules +- sed -i -e 's/^ENV{SYSTEMD_WANTS}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules ++ sed -i -e 's/^ENV{SYSTEMD_WANTS}+\?=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules + else + sed -i -e 's/.*lvm pvscan.*/# No LVM pvscan for in dracut - lvmetad is not running yet/' \ + ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules + diff --git a/0095.patch b/0095.patch new file mode 100644 index 0000000..3d29635 --- /dev/null +++ b/0095.patch @@ -0,0 +1,29 @@ +From 5c025a7d2a53cd63c7a94269aec2887e016ba2d6 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Wed, 10 Jun 2020 18:28:27 +0800 +Subject: [PATCH] 99memstrack: Only start tracking service when rd.memdebug=4|5 + +Currently systemd will always start the tracking service, it will +exit early if rd.memdebug<=3 so there is no issue here, but it +leave a message of: "Started Memstrack Anylazing Service.". +Better to avoid such message if it's not used. + +Signed-off-by: Kairui Song +--- + modules.d/99memstrack/memstrack.service | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules.d/99memstrack/memstrack.service b/modules.d/99memstrack/memstrack.service +index c9fcadef..fce373b5 100644 +--- a/modules.d/99memstrack/memstrack.service ++++ b/modules.d/99memstrack/memstrack.service +@@ -3,6 +3,8 @@ Description=Memstrack Anylazing Service + DefaultDependencies=no + Before=dracut-cmdline.service systemd-udevd.service local-fs-pre.target + IgnoreOnIsolate=true ++ConditionKernelCommandLine=|rd.memdebug=4 ++ConditionKernelCommandLine=|rd.memdebug=5 + + [Service] + Type=simple + diff --git a/0096.patch b/0096.patch new file mode 100644 index 0000000..9b1bc1b --- /dev/null +++ b/0096.patch @@ -0,0 +1,35 @@ +From acc782bad5c77a8e105c9c5a8fc8873bc2ff06ec Mon Sep 17 00:00:00 2001 +From: Norbert Lange +Date: Mon, 6 Jul 2020 18:16:13 +0200 +Subject: [PATCH] mount-root.sh: fix writing fstab file with missing fsck flag + +if the kernel argument rootflags is set, then dracut will +not parse the rootfs fstab and rootfsck wil not be set. + +if the filesystem can be fsck'ed then its unmounted, +and an entry to the local fstab is written, omitting the last +field. + +mounting /sysroot using fstab will then fail. + +This change makes sure that the filed is always written. + +Signed-off-by: Norbert Lange +--- + modules.d/95rootfs-block/mount-root.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh +index 0eddbcd5..6503b517 100755 +--- a/modules.d/95rootfs-block/mount-root.sh ++++ b/modules.d/95rootfs-block/mount-root.sh +@@ -116,7 +116,7 @@ mount_root() { + ran_fsck=1 + fi + +- echo "${root#block:} $NEWROOT $rootfs ${rflags:-defaults} 0 $rootfsck" >> /etc/fstab ++ echo "${root#block:} $NEWROOT $rootfs ${rflags:-defaults} 0 ${rootfsck:-0}" >> /etc/fstab + + if ! ismounted "$NEWROOT"; then + info "Mounting ${root#block:} with -o ${rflags}" + diff --git a/0097.patch b/0097.patch new file mode 100644 index 0000000..ea33e9b --- /dev/null +++ b/0097.patch @@ -0,0 +1,51 @@ +From dc9596155def879c99caa03acc5bd6d7090488ed Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Fri, 2 Aug 2019 17:11:19 +0800 +Subject: [PATCH] dracut-initqueue: Print more useful info in case of timeout + +Currently when initqueue timeout, it span the console with +"dracut-initqueue timeout - starting timeout scripts", which isn't very +helpful as we still don't know what actually happened. Try to improve +this by print what is actually being waited. + +Besides, only print "starting timeout scripts" when there are +actual timeout scripts to use. + +Signed-off-by: Kairui Song +--- + modules.d/98dracut-systemd/dracut-initqueue.sh | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +diff --git a/modules.d/98dracut-systemd/dracut-initqueue.sh b/modules.d/98dracut-systemd/dracut-initqueue.sh +index 3ddc2362..89225995 100755 +--- a/modules.d/98dracut-systemd/dracut-initqueue.sh ++++ b/modules.d/98dracut-systemd/dracut-initqueue.sh +@@ -55,14 +55,20 @@ while :; do + done + + if [ $main_loop -gt $((2*$RDRETRY/3)) ]; then +- warn "dracut-initqueue timeout - starting timeout scripts" +- for job in $hookdir/initqueue/timeout/*.sh; do +- [ -e "$job" ] || break +- job=$job . $job +- udevadm settle --timeout=0 >/dev/null 2>&1 || main_loop=0 +- [ -f $hookdir/initqueue/work ] && main_loop=0 +- [ $main_loop -eq 0 ] && break ++ warn "dracut-initqueue: timeout, still waiting for following initqueue hooks:" ++ for _f in $hookdir/initqueue/finished/*.sh; do ++ warn "$_f: \"$(cat "$_f")\"" + done ++ if [ "$(ls -A $hookdir/initqueue/finished)" ]; then ++ warn "dracut-initqueue: starting timeout scripts" ++ for job in $hookdir/initqueue/timeout/*.sh; do ++ [ -e "$job" ] || break ++ job=$job . $job ++ udevadm settle --timeout=0 >/dev/null 2>&1 || main_loop=0 ++ [ -f $hookdir/initqueue/work ] && main_loop=0 ++ [ $main_loop -eq 0 ] && break ++ done ++ fi + fi + + main_loop=$(($main_loop+1)) + diff --git a/0098.patch b/0098.patch new file mode 100644 index 0000000..f12cce6 --- /dev/null +++ b/0098.patch @@ -0,0 +1,33 @@ +From 3a2beb037c822e1567f86b63ac24194bffeea991 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Mon, 8 Jun 2020 15:31:56 +0800 +Subject: [PATCH] 99squash: Don't hardcode the squash sub directories + +Signed-off-by: Kairui Song +--- + modules.d/99squash/setup-squash.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/99squash/setup-squash.sh b/modules.d/99squash/setup-squash.sh +index d2740e7c..d0000b6f 100755 +--- a/modules.d/99squash/setup-squash.sh ++++ b/modules.d/99squash/setup-squash.sh +@@ -4,7 +4,6 @@ PATH=/bin:/sbin + SQUASH_IMG=/squash/root.img + SQUASH_MNT=/squash/root + SQUASH_MNT_REC=/squash/mounts +-SQUASHED_MNT="usr etc" + + echo $SQUASH_MNT > $SQUASH_MNT_REC + +@@ -45,7 +44,8 @@ if [ $? != 0 ]; then + echo "Unable to mount squashed initramfs image" + fi + +-for file in $SQUASHED_MNT; do ++for file in $SQUASH_MNT/*; do ++ file=${file#$SQUASH_MNT/} + lowerdir=$SQUASH_MNT/$file + workdir=/squash/overlay-work/$file + upperdir=/$file + diff --git a/0099.patch b/0099.patch new file mode 100644 index 0000000..41e97ae --- /dev/null +++ b/0099.patch @@ -0,0 +1,53 @@ +From cfd872392c59c96665c558899880d6b2980065bb Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Mon, 8 Jun 2020 17:00:00 +0800 +Subject: [PATCH] 99squash: improve pre-requirements check + +Check for systemd-initrd and squashfs-tools in check() to fail early if +it won't work. + +Signed-off-by: Kairui Song +--- + modules.d/99squash/module-setup.sh | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh +index 72fa81f0..6307377c 100644 +--- a/modules.d/99squash/module-setup.sh ++++ b/modules.d/99squash/module-setup.sh +@@ -1,11 +1,21 @@ + #!/bin/bash + + check() { ++ if ! dracut_module_included "systemd-initrd"; then ++ derror "dracut-squash only supports systemd bases initramfs" ++ return 1 ++ fi ++ ++ if ! type -P mksquashfs >/dev/null || ! type -P unsquashfs >/dev/null ; then ++ derror "dracut-squash module requires squashfs-tools" ++ return 1 ++ fi ++ + return 255 + } + + depends() { +- echo "bash systemd systemd-initrd" ++ echo "bash systemd-initrd" + return 0 + } + +@@ -14,11 +24,6 @@ installkernel() { + } + + install() { +- if ! type -P mksquashfs >/dev/null || ! type -P unsquashfs >/dev/null ; then +- derror "squash module requires squashfs-tools to be installed." +- return 1 +- fi +- + inst_multiple kmod modprobe mount mkdir ln echo + inst $moddir/setup-squash.sh /squash/setup-squash.sh + inst $moddir/clear-squash.sh /squash/clear-squash.sh + diff --git a/0100.patch b/0100.patch new file mode 100644 index 0000000..86ed9f4 --- /dev/null +++ b/0100.patch @@ -0,0 +1,138 @@ +From 4159819fbb20fca8c0a80ddb17e211f481ec7717 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Tue, 9 Jun 2020 00:41:24 +0800 +Subject: [PATCH] 99squash: simplify the code + +The new dracutsysrootdir could be used to replace the shell function +required_in_root, so drop it and also simplify the code. + +Signed-off-by: Kairui Song +--- + dracut.sh | 89 ++++++++++++++------------------------------------------------- + 1 file changed, 20 insertions(+), 69 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index 8f78da06..12f75670 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1833,23 +1833,19 @@ fi + + if dracut_module_included "squash"; then + dinfo "*** Install squash loader ***" +- if ! check_kernel_config CONFIG_SQUASHFS; then +- dfatal "CONFIG_SQUASHFS have to be enabled for dracut squash module to work" +- exit 1 +- fi +- if ! check_kernel_config CONFIG_OVERLAY_FS; then +- dfatal "CONFIG_OVERLAY_FS have to be enabled for dracut squash module to work" +- exit 1 +- fi +- if ! check_kernel_config CONFIG_DEVTMPFS; then +- dfatal "CONFIG_DEVTMPFS have to be enabled for dracut squash module to work" ++ for config in \ ++ CONFIG_SQUASHFS \ ++ CONFIG_OVERLAY_FS \ ++ CONFIG_DEVTMPFS; ++ do ++ if ! check_kernel_config $config; then ++ dfatal "$config have to be enabled for dracut squash module to work" + exit 1 +- fi ++ fi ++ done + + readonly squash_dir="$initdir/squash/root" +- readonly squash_img=$initdir/squash/root.img +- +- # Currently only move "usr" "etc" to squashdir ++ readonly squash_img="$initdir/squash/root.img" + readonly squash_candidate=( "usr" "etc" ) + + mkdir -m 0755 -p $squash_dir +@@ -1860,57 +1856,15 @@ if dracut_module_included "squash"; then + # Move some files out side of the squash image, including: + # - Files required to boot and mount the squashfs image + # - Files need to be accessible without mounting the squash image +- required_in_root() { +- local file=$1 +- local _sqsh_file=$squash_dir/$file +- local _init_file=$initdir/$file +- +- if [[ -e $_init_file ]]; then +- return +- fi +- +- if [[ ! -e $_sqsh_file ]] && [[ ! -L $_sqsh_file ]]; then +- derror "$file is required to boot a squashed initramfs but it's not installed!" +- return +- fi +- +- if [[ ! -d $(dirname $_init_file) ]]; then +- required_in_root $(dirname $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 [[ -d $_sqsh_file ]]; then +- mkdir $_init_file +- else +- mv $_sqsh_file $_init_file +- fi +- fi +- } +- +- required_in_root etc/initrd-release +- +- for module_spec in $squash_dir/usr/lib/modules/*/modules.*; +- do +- required_in_root ${module_spec#$squash_dir/} +- done +- +- for dracut_spec in $squash_dir/usr/lib/dracut/*; ++ # - Initramfs marker ++ for file in \ ++ $squash_dir/usr/lib/modules/*/modules.* \ ++ $squash_dir/usr/lib/dracut/* \ ++ $squash_dir/etc/initrd-release + do +- required_in_root ${dracut_spec#$squash_dir/} ++ [[ -d $file ]] && continue ++ DRACUT_RESOLVE_DEPS=1 dracutsysrootdir=$squash_dir inst ${file#$squash_dir} ++ rm $file + done + + mv $initdir/init $initdir/init.stock +@@ -1921,17 +1875,14 @@ if dracut_module_included "squash"; then + # 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 + ++ # Remove duplicated files + 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 ++ for file in $(find $initdir/$folder/ -not -type d); do + if [[ -e $squash_dir${file#$initdir} ]]; then + mv $squash_dir${file#$initdir} $file + fi + diff --git a/0101.patch b/0101.patch new file mode 100644 index 0000000..fa0a452 --- /dev/null +++ b/0101.patch @@ -0,0 +1,23 @@ +From ae83919a7a07b5c90cae8ce8b1349efc212a7aee Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Tue, 4 Aug 2020 14:16:19 +0200 +Subject: [PATCH] match the whole string + +--- + modules.d/95zfcp/parse-zfcp.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95zfcp/parse-zfcp.sh b/modules.d/95zfcp/parse-zfcp.sh +index 6e1514fd..fb4d9c9e 100755 +--- a/modules.d/95zfcp/parse-zfcp.sh ++++ b/modules.d/95zfcp/parse-zfcp.sh +@@ -3,7 +3,7 @@ + getargbool 1 rd.zfcp.conf -d -n rd_NO_ZFCPCONF || rm /etc/zfcp.conf + + for zfcp_arg in $(getargs rd.zfcp -d 'rd_ZFCP='); do +- echo $zfcp_arg | grep '0\.[0-9a-fA-F]\.[0-9a-fA-F]\{4\},0x[0-9a-fA-F]\{16\},0x[0-9a-fA-F]\{16\}' >/dev/null ++ echo $zfcp_arg | grep '^0\.[0-9a-fA-F]\.[0-9a-fA-F]\{4\},0x[0-9a-fA-F]\{16\},0x[0-9a-fA-F]\{16\}$' >/dev/null + test $? -ne 0 && die "For argument 'rd.zfcp=$zfcp_arg'\nSorry, invalid format." + ( + IFS="," + diff --git a/0102.patch b/0102.patch new file mode 100644 index 0000000..6784dda --- /dev/null +++ b/0102.patch @@ -0,0 +1,25 @@ +From d9e27b091717a1ce1c58cc911d9d7b5ec3ed901e Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Tue, 4 Aug 2020 14:18:54 +0200 +Subject: [PATCH] match simplified rd.zfcp format too + +The simplified format was introduced by commit +c8aa1d949aecaf146b0a0e1ce269f69e6048dc5a . +--- + modules.d/95zfcp/parse-zfcp.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95zfcp/parse-zfcp.sh b/modules.d/95zfcp/parse-zfcp.sh +index fb4d9c9e..5aa6add8 100755 +--- a/modules.d/95zfcp/parse-zfcp.sh ++++ b/modules.d/95zfcp/parse-zfcp.sh +@@ -3,7 +3,7 @@ + getargbool 1 rd.zfcp.conf -d -n rd_NO_ZFCPCONF || rm /etc/zfcp.conf + + for zfcp_arg in $(getargs rd.zfcp -d 'rd_ZFCP='); do +- echo $zfcp_arg | grep '^0\.[0-9a-fA-F]\.[0-9a-fA-F]\{4\},0x[0-9a-fA-F]\{16\},0x[0-9a-fA-F]\{16\}$' >/dev/null ++ echo $zfcp_arg | grep '^0\.[0-9a-fA-F]\.[0-9a-fA-F]\{4\}\(,0x[0-9a-fA-F]\{16\},0x[0-9a-fA-F]\{16\}\)\?$' >/dev/null + test $? -ne 0 && die "For argument 'rd.zfcp=$zfcp_arg'\nSorry, invalid format." + ( + IFS="," + diff --git a/0103.patch b/0103.patch new file mode 100644 index 0000000..597b15a --- /dev/null +++ b/0103.patch @@ -0,0 +1,26 @@ +From 09a691af3b63543fe58faa02661f785b907a78a6 Mon Sep 17 00:00:00 2001 +From: Denis Volkov +Date: Tue, 4 Aug 2020 19:51:27 +0500 +Subject: [PATCH] Change the order of NFS servers during the boot NFS server + provided by DHCP in next-server option has higher priority than DHCP-server + itself + +--- + modules.d/95nfs/nfs-lib.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95nfs/nfs-lib.sh b/modules.d/95nfs/nfs-lib.sh +index 1ba4f5ff..95844f58 100755 +--- a/modules.d/95nfs/nfs-lib.sh ++++ b/modules.d/95nfs/nfs-lib.sh +@@ -112,8 +112,8 @@ nfsroot_from_dhcp() { + [ -n "$new_root_path" ] && nfsroot_to_var "$nfs:$new_root_path" + [ -z "$path" ] && [ "$(getarg root=)" = "/dev/nfs" ] && path=/tftpboot/%s + [ -z "$server" ] && server=$srv +- [ -z "$server" ] && server=$new_dhcp_server_identifier + [ -z "$server" ] && server=$new_next_server ++ [ -z "$server" ] && server=$new_dhcp_server_identifier + [ -z "$server" ] && server=${new_root_path%%:*} + } + + diff --git a/0104.patch b/0104.patch new file mode 100644 index 0000000..5d16bd4 --- /dev/null +++ b/0104.patch @@ -0,0 +1,89 @@ +From 3f5bf54fbffdc3516a08c9329b4be80b06761c7a Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Wed, 22 Jul 2020 09:34:42 +0200 +Subject: [PATCH] 35network-legacy: simplify fallback dhcp setup + +suppress redundant calls to network setup + +combine code for "no ip option directed at our interface" and +"No ip lines default to dhcp" +correct evaluation of return code for creating did-setup files +fix application of "load_ipv6" call to ipv6 setup only + +Reference: bsc#1173402 +--- + modules.d/35network-legacy/ifup.sh | 41 +++++++++++++++++++------------------- + 1 file changed, 21 insertions(+), 20 deletions(-) + +diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh +index c05ccc1b..b1ae52ea 100755 +--- a/modules.d/35network-legacy/ifup.sh ++++ b/modules.d/35network-legacy/ifup.sh +@@ -376,23 +376,6 @@ else + fi + + +-# No ip lines default to dhcp +-ip=$(getarg ip) +- +-if [ -z "$NO_AUTO_DHCP" ] && [ -z "$ip" ]; then +- if [ "$netroot" = "dhcp6" ]; then +- do_dhcp -6 +- else +- do_dhcp -4 +- fi +- +- for s in $(getargs nameserver); do +- [ -n "$s" ] || continue +- echo nameserver $s >> /tmp/net.$netif.resolv.conf +- done +-fi +- +- + # Specific configuration, spin through the kernel command line + # looking for ip= lines + for p in $(getargs ip=); do +@@ -473,21 +456,39 @@ done + + # no ip option directed at our interface? + if [ -z "$NO_AUTO_DHCP" ] && [ ! -e /tmp/net.${netif}.up ]; then ++ ret=1 + if [ -e /tmp/net.bootdev ]; then + BOOTDEV=$(cat /tmp/net.bootdev) + if [ "$netif" = "$BOOTDEV" ] || [ "$BOOTDEV" = "$(cat /sys/class/net/${netif}/address)" ]; then +- load_ipv6 + do_dhcp ++ ret=$? + fi + else +- if getargs 'ip=dhcp6'; then ++ # No ip lines, no bootdev -> default to dhcp ++ ip=$(getarg ip) ++ ++ if getargs 'ip=dhcp6' || [ -z "$ip" -a "$netroot" = "dhcp6" ]; then + load_ipv6 + do_dhcp -6 ++ ret=$? + fi +- if getargs 'ip=dhcp'; then ++ if getargs 'ip=dhcp' || [ -z "$ip" -a "$netroot" != "dhcp6" ]; then + do_dhcp -4 ++ ret=$? + fi + fi ++ ++ for s in $(getargs nameserver); do ++ [ -n "$s" ] || continue ++ echo nameserver $s >> /tmp/net.$netif.resolv.conf ++ done ++ ++ if [ "$ret" -eq 0 ] && [ -n "$(ls /tmp/leaseinfo.${netif}*)" ]; then ++ > /tmp/net.${netif}.did-setup ++ if [ -e /sys/class/net/${netif}/address ]; then ++ > /tmp/net.$(cat /sys/class/net/${netif}/address).did-setup ++ fi ++ fi + fi + + exit 0 + diff --git a/0105.patch b/0105.patch new file mode 100644 index 0000000..afd4456 --- /dev/null +++ b/0105.patch @@ -0,0 +1,56 @@ +From f84ad9e062519c43264f1a512227621b3bf1853b Mon Sep 17 00:00:00 2001 +From: Mikhail Novosyolov +Date: Fri, 27 Mar 2020 16:16:07 +0300 +Subject: [PATCH] Allow $DRACUT_INSTALL to be not an absolute path + +/usr/sbin/dracut-install is a symlink: +$ file /usr/sbin/dracut-install +/usr/sbin/dracut-install: symbolic link to ../lib/dracut/dracut-install + +It resulted to "dracut-install not found" error: + ++++ for p in $DRACUT_PATH ++++ [[ -L /sbin/dracut-install ]] ++++ [[ -x /sbin/dracut-install ]] ++++ for p in $DRACUT_PATH ++++ [[ -L /bin/dracut-install ]] ++++ [[ -x /bin/dracut-install ]] ++++ for p in $DRACUT_PATH ++++ [[ -L /usr/sbin/dracut-install ]] ++++ printf '%s\n' dracut-install ++++ return 0 +++ DRACUT_INSTALL=dracut-install +++ [[ -n dracut-install ]] +++ [[ -n dracut-install ]] +++ DRINSTALLPARTS=0 +++ for i in $DRACUT_INSTALL +++ DRINSTALLPARTS=1 +++ [[ 1 = 1 ]] +++ [[ -x dracut-install ]] +++ dfatal 'dracut-install not found!' +++ set +x +dracut: dracut-install not found! + +[ -x ] is not correct and will always be false. +But actually it is available. Let's just allow it to be not an absolute path. +Maybe some other places can be improved to avoid DRACUT_INSTALL being not an absolute path. + +Signed-off-by: Mikhail Novosyolov +--- + dracut-init.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut-init.sh b/dracut-init.sh +index a8348b79..837267aa 100644 +--- a/dracut-init.sh ++++ b/dracut-init.sh +@@ -183,7 +183,7 @@ for i in $DRACUT_INSTALL ; do + DRINSTALLPARTS=$(($DRINSTALLPARTS+1)) + done + +-if [[ $DRINSTALLPARTS = 1 ]] && ! [[ -x $DRACUT_INSTALL ]]; then ++if [[ $DRINSTALLPARTS = 1 ]] && ! command -v "$DRACUT_INSTALL" > /dev/null 2>&1 ; then + dfatal "dracut-install not found!" + exit 10 + fi + diff --git a/0106.patch b/0106.patch new file mode 100644 index 0000000..389c2fe --- /dev/null +++ b/0106.patch @@ -0,0 +1,31 @@ +From fea53784adf3748a9f31964272a69b31c152d8cf Mon Sep 17 00:00:00 2001 +From: mwberry +Date: Sat, 30 May 2020 17:55:35 -0700 +Subject: [PATCH] UEFI Mode: only write kernel cmdline to UEFI binary + +The kernel command line was being written both into +/etc/cmdline.d/01-default.conf and the UEFI executable. +During boot, getcmdline would concatenate these two +resulting in all arguments being duplicated. Some +args, such as ip=, are sensitive to the number of +times they are specified. +--- + dracut.sh | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index 12f75670..c439fa02 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1620,7 +1620,9 @@ if [[ $kernel_only != yes ]]; then + (( ${#install_items[@]} > 0 )) && inst_multiple ${install_items[@]} + (( ${#install_optional_items[@]} > 0 )) && inst_multiple -o ${install_optional_items[@]} + +- [[ $kernel_cmdline ]] && printf "%s\n" "$kernel_cmdline" >> "${initdir}/etc/cmdline.d/01-default.conf" ++ if [[ $kernel_cmdline ]] && [[ $uefi != yes ]]; then ++ printf "%s\n" "$kernel_cmdline" >> "${initdir}/etc/cmdline.d/01-default.conf" ++ fi + + for line in "${fstab_lines[@]}"; do + line=($line) + diff --git a/0107.patch b/0107.patch new file mode 100644 index 0000000..bd2f10e --- /dev/null +++ b/0107.patch @@ -0,0 +1,24 @@ +From 01b7163a591c3debec794b5f46b52156a16ee934 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Wed, 5 Aug 2020 19:32:35 +0200 +Subject: [PATCH] 90lvm: do not add newline to cmdline + +Fixes #862 +--- + modules.d/90lvm/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh +index 52c803f7..1eeba79d 100755 +--- a/modules.d/90lvm/module-setup.sh ++++ b/modules.d/90lvm/module-setup.sh +@@ -36,7 +36,7 @@ cmdline() { + eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev" 2>/dev/null) + [[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || return 1 + if ! [[ ${_activated[${DM_VG_NAME}/${DM_LV_NAME}]} ]]; then +- printf " rd.lvm.lv=%s\n" "${DM_VG_NAME}/${DM_LV_NAME} " ++ printf " rd.lvm.lv=%s " "${DM_VG_NAME}/${DM_LV_NAME} " + _activated["${DM_VG_NAME}/${DM_LV_NAME}"]=1 + fi + done + diff --git a/0108.patch b/0108.patch new file mode 100644 index 0000000..48b22e0 --- /dev/null +++ b/0108.patch @@ -0,0 +1,29 @@ +From 376ce85105121936666349aa5a777768d52516f7 Mon Sep 17 00:00:00 2001 +From: Thomas Blume +Date: Fri, 7 Aug 2020 08:39:26 +0200 +Subject: [PATCH] net-lib.sh: support infiniband network mac addresses + +Infiniband MAC addresses have 20 octets. + +Reference: bsc#996146 +--- + modules.d/40network/net-lib.sh | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh +index 7f185fdd..556d86b5 100755 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -570,6 +570,11 @@ parse_ifname_opts() { + # udev requires MAC addresses to be lower case + ifname_mac=$(echo $2:$3:$4:$5:$6:$7 | sed 'y/ABCDEF/abcdef/') + ;; ++ 21) ++ ifname_if=$1 ++ # udev requires MAC addresses to be lower case ++ ifname_mac=$(echo $2:$3:$4:$5:$6:$7:$8:$9:${10}:${11}:${12}:${13}:${14}:${15}:${16}:${17}:${18}:${19}:${20}:${21} | sed 'y/ABCDEF/abcdef/') ++ ;; + *) + die "Invalid arguments for ifname=" + ;; + diff --git a/0109.patch b/0109.patch new file mode 100644 index 0000000..dec89c6 --- /dev/null +++ b/0109.patch @@ -0,0 +1,34 @@ +From 80f1ce6c1388f498a7fb25c0277039cf66665413 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:07:17 +0000 +Subject: [PATCH] Adding the labels file for master + +--- + .github/workflows/master-labels.yml | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/.github/workflows/master-labels.yml b/.github/workflows/master-labels.yml +new file mode 100644 +index 00000000..ad4aaa26 +--- /dev/null ++++ b/.github/workflows/master-labels.yml +@@ -0,0 +1,18 @@ ++# This workflow will triage pull requests for the RHEL-6 branch and ++# apply a label based on the paths that are modified in the pull request. ++ ++name: master-labeler ++on: ++ pull_request: ++ branches: ++ - master ++ ++jobs: ++ label: ++ runs-on: ubuntu-latest ++ ++ steps: ++ - uses: actions/labeler@v2 ++ with: ++ repo-token: "${{ secrets.GITHUB_TOKEN }}" ++ configuration-path: .github/master-label-triggers.yml + diff --git a/0110.patch b/0110.patch new file mode 100644 index 0000000..62b3571 --- /dev/null +++ b/0110.patch @@ -0,0 +1,34 @@ +From 27047bb5c6988eeb7583661656e8674ea702226e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:10:26 +0000 +Subject: [PATCH] Adding the labels file for the RHEL-6 branch + +--- + .github/workflows/rhel6-labeler.yml | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/.github/workflows/rhel6-labeler.yml b/.github/workflows/rhel6-labeler.yml +new file mode 100644 +index 00000000..f342ff2d +--- /dev/null ++++ b/.github/workflows/rhel6-labeler.yml +@@ -0,0 +1,18 @@ ++# This workflow will triage pull requests for the RHEL-6 branch and ++# apply a label based on the paths that are modified in the pull request. ++ ++name: rhel6-labeler ++on: ++ pull_request: ++ branches: ++ - RHEL-6 ++ ++jobs: ++ label: ++ runs-on: ubuntu-latest ++ ++ steps: ++ - uses: actions/labeler@v2 ++ with: ++ repo-token: "${{ secrets.GITHUB_TOKEN }}" ++ configuration-path: .github/rhel6-label-triggers.yml + diff --git a/0111.patch b/0111.patch new file mode 100644 index 0000000..e662b12 --- /dev/null +++ b/0111.patch @@ -0,0 +1,34 @@ +From 3b20f5c72e4217f44cbba8dbaf455c6f85d9f1d7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:10:51 +0000 +Subject: [PATCH] Adding the labels file for the RHEL-7 branch + +--- + .github/workflows/rhel7-labeler.yml | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/.github/workflows/rhel7-labeler.yml b/.github/workflows/rhel7-labeler.yml +new file mode 100644 +index 00000000..63f9e1b6 +--- /dev/null ++++ b/.github/workflows/rhel7-labeler.yml +@@ -0,0 +1,18 @@ ++# This workflow will triage pull requests for the RHEL-7 branch and ++# apply a label based on the paths that are modified in the pull request. ++ ++name: rhel7-labeler ++on: ++ pull_request: ++ branches: ++ - RHEL-7 ++ ++jobs: ++ label: ++ runs-on: ubuntu-latest ++ ++ steps: ++ - uses: actions/labeler@v2 ++ with: ++ repo-token: "${{ secrets.GITHUB_TOKEN }}" ++ configuration-path: .github/rhel7-label-triggers.yml + diff --git a/0112.patch b/0112.patch new file mode 100644 index 0000000..58f1ad0 --- /dev/null +++ b/0112.patch @@ -0,0 +1,34 @@ +From 4cd8f2c90ef8afb3757ec82d55148b15280e0911 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:11:58 +0000 +Subject: [PATCH] Adding the labels file for the RHEL-8 branch + +--- + .github/workflows/rhel8-labeler.yml | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/.github/workflows/rhel8-labeler.yml b/.github/workflows/rhel8-labeler.yml +new file mode 100644 +index 00000000..5b83f914 +--- /dev/null ++++ b/.github/workflows/rhel8-labeler.yml +@@ -0,0 +1,18 @@ ++# This workflow will triage pull requests for the RHEL-9 branch and ++# apply a label based on the paths that are modified in the pull request. ++ ++name: rhel8-labeler ++on: ++ pull_request: ++ branches: ++ - RHEL-8 ++ ++jobs: ++ label: ++ runs-on: ubuntu-latest ++ ++ steps: ++ - uses: actions/labeler@v2 ++ with: ++ repo-token: "${{ secrets.GITHUB_TOKEN }}" ++ configuration-path: .github/rhel8-label-triggers.yml + diff --git a/0113.patch b/0113.patch new file mode 100644 index 0000000..3d7ee46 --- /dev/null +++ b/0113.patch @@ -0,0 +1,329 @@ +From 76d8b30f4e7ba98102c542f8f520ab027d749efc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:13:33 +0000 +Subject: [PATCH] Adding the labels trigger file for the Master branch + +--- + .github/master-label-triggers.yml | 313 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 313 insertions(+) + +diff --git a/.github/master-label-triggers.yml b/.github/master-label-triggers.yml +new file mode 100644 +index 00000000..8c654939 +--- /dev/null ++++ b/.github/master-label-triggers.yml +@@ -0,0 +1,313 @@ ++# Add 'needs review' label to any pull request ++needs review: ++- "*" ++ ++# Add 'repository' label to any root file changes ++repository: ++- ./* ++ ++# Add 'github' label to any .github/ file changes ++github: ++- .github/* ++- .github/**/* ++ ++# Add 'mkosi' label to any .mkosi/ file changes ++mkosi: ++- .mkosi/* ++- .mkosi/**/* ++- .mkosi/**/**/* ++ ++# Add 'dracut install' label to any install/ file changes ++dracut install: ++- install/* ++- install/**/* ++ ++# Add 'example' label to any examples/ file changes ++example: ++- examples/* ++- examples/**/* ++- examples/**/**/* ++ ++# Add a 'modules' label to any modules.d/ file changes ++modules: ++- modules.d/* ++- modules.d/**/* ++ ++# Add a 'bash' label to any bash module changes ++- modules.d/00bash/* ++ ++# Add a 'bootchart' label to any bootchart module changes ++- modules.d/00bootchart/* ++ ++# Add a 'dash' label to any dash module changes ++- modules.d/00dash/* ++ ++# Add a 'mksh' label to any mksh module changes ++- modules.d/00mksh/* ++ ++# Add a 'systemd' label to any systemd module changes ++- modules.d/00systemd/* ++ ++# Add a 'warpclock' label to any warpclock module changes ++- modules.d/00warpclock/* ++ ++# Add a 'fips' label to any fips module changes ++- modules.d/01fips/* ++ ++# Add a 'systemd-initrd' label to any systemd-initrd module changes ++- modules.d/01systemd-initrd/* ++ ++# Add a 'caps' label to any caps module changes ++- modules.d/02caps/* ++ ++# Add a 'systemd-networkd' label to any systemd-networkd module changes ++- modules.d/02systemd-networkd/* ++ ++# Add a 'modsign' label to any modsign module changes ++- modules.d/03modsign/* ++ ++# Add a 'rescue' label to any rescue module changes ++- modules.d/03rescue/* ++ ++# Add a 'watchdog' label to any watchdog module changes ++- modules.d/04watchdog/* ++ ++# Add a 'busybox' label to any busybox module changes ++- modules.d/05busybox/* ++ ++# Add a 'rngd' label to any rngd module changes ++- modules.d/06rngd/* ++ ++# Add a 'i18n' label to any i18n module changes ++- modules.d/10i18n/* ++ ++# Add a 'convertfs' label to any convertfs module changes ++- modules.d/30convertfs/* ++ ++# Add a 'network-legacy' label to any network-legacy module changes ++- modules.d/35network-legacy/* ++ ++# Add a 'network-manager' label to any network-manager module ++- modules.d/35network-manager/* ++ ++# Add a 'network' label to any network module changes ++- modules.d/40network/* ++ ++# Add a 'ifcfg' label to any ifcfg module changes ++- modules.d/45ifcfg/* ++ ++# Add a 'url-lib' label to any url-lib module changes ++- modules.d/45url-lib/* ++ ++# Add a 'drm' label to any drm module changes ++- modules.d/50drm/* ++ ++# Add a 'gensplash' label to any gensplash module changes ++- modules.d/50gensplash/* ++ ++# Add a 'plymouth' label to any plymouth module changes ++- modules.d/50plymouth/* ++ ++# Add a 'cms' label to any cms module changes ++- modules.d/80cms/* ++ ++# Add a 'lvmmerge' label to any lvmmerge module changes ++- modules.d/80lvmmerge/* ++ ++# Add a 'cio_ignore' label to any cio_ignore module changes ++- modules.d/81cio_ignore/* ++ ++# Add a 'btrfs' label to any btrfs module changes ++- modules.d/90btrfs/* ++ ++# Add a 'crypt' label to any crypt module changes ++- modules.d/90crypt/* ++ ++# Add a 'dm' label to any dm module changes ++- modules.d/90dm/* ++ ++# Add a 'dmraid' label to any dmraid module changes ++- modules.d/90dmraid/* ++ ++# Add a 'dmsquash-live' label to any dmsquash-live module changes ++- modules.d/90dmsquash-live/* ++ ++# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes ++- modules.d/90dmsquash-live-ntfs/* ++ ++# Add a 'kernel-modules' label to any kernel-modules module changes ++- modules.d/90kernel-modules/* ++ ++# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes ++- modules.d/90kernel-modules-extra/* ++ ++# Add a 'kernel-network-modules' label to any kernel-network-modules changes ++- modules.d/90kernel-network-modules/* ++ ++# Add a 'livenet' label to any livenet module changes ++- modules.d/90livenet/* ++ ++# Add a 'lvm' label to any lvm module changes ++- modules.d/90lvm/* ++ ++# Add a 'mdraid' label to any mdraid module changes ++- modules.d/90mdraid/* ++ ++# Add a 'multipath' label to any multipath module changes ++- modules.d/90multipath/* ++ ++# Add a 'nvdimm' label to any nvdimm module changes ++- modules.d/90nvdimm/* ++ ++# Add a 'ppcmac' label to any ppcmac module changes ++- modules.d/90ppcmac/* ++ ++# Add a 'qemu' label to any qemu module changes ++- modules.d/90qemu/* ++ ++# Add a 'qemu-net' label to any qemu-net module changes ++- modules.d/90qemu-net/* ++ ++# Add a 'stratis' label to any stratis module changes ++- modules.d/90stratis/* ++ ++# Add a 'crypt-gpg' label to any crypt-gpg module changes ++- modules.d/91crypt-gpg/* ++ ++# Add a 'crypt-loop' label to any crypt-loop module changes ++- modules.d/91crypt-loop/* ++ ++# Add a 'zipl' label to any zipl module changes ++- modules.d/91zipl/* ++ ++# Add a 'cifs' label to any cifs module changes ++- modules.d/95cifs/* ++ ++# Add a 'dasd' label to any dasd module changes ++- modules.d/95dasd/* ++ ++# Add a 'dasd_mod' label to any dasd_mod module changes ++- modules.d/95dasd_mod/* ++ ++# Add a 'dasd_rules' label to any dasd_rules module changes ++- modules.d/95dasd_rules/* ++ ++# Add a 'dcssblk' label to any dcssblk module changes ++- modules.d/95dcssblk/* ++ ++# Add a 'debug' label to any debug module changes ++- modules.d/95debug/* ++ ++# Add a 'fcoe' label to any fcoe module changes ++- modules.d/95fcoe/* ++ ++# Add a 'fcoe-uefi' label to any fcoe-uefi module changes ++- modules.d/95fcoe-uefi/* ++ ++# Add a 'fstab-sys' label to any fstab-sys module changes ++- modules.d/95fstab-sys/* ++ ++# Add a 'iscsi' label to any iscsi module changes ++- modules.d/95iscsi/* ++ ++# Add a 'lunmask' label to any lunmask module changes ++- modules.d/95lunmask/* ++ ++# Add a 'nbd' label to any nbd module changes ++- modules.d/95nbd/* ++ ++# Add a 'nfs' label to any nfs module changes ++- modules.d/95nfs/* ++ ++# Add a 'nvmf' label to any nvmf module changes ++- modules.d/95nvmf/* ++ ++# Add a 'qeth_rules' label to any qeth_rules module changes ++- modules.d/95qeth_rules/* ++ ++# Add a 'resume' label to any resume module changes ++- modules.d/95resume/* ++ ++# Add a 'rootfs-block' label to any rootfs-block module changes ++- modules.d/95rootfs-block/* ++ ++# Add a 'ssh-client' label to any ssh-client module changes ++- modules.d/95ssh-client/* ++ ++# Add a 'terminfo' label to any terminfo module changes ++- modules.d/95terminfo/* ++ ++# Add a 'udev-rules' label to any udev-rules module changes ++- modules.d/95udev-rules/* ++ ++# Add a 'virtfs' label to any virtfs module changes ++- modules.d/95virtfs/* ++ ++# Add a 'zfcp' label to any zfcp module changes ++- modules.d/95zfcp/* ++ ++# Add a 'zfcp_rules' label to any zfcp_rules module changes ++- modules.d/95zfcp_rules/* ++ ++# Add a 'znet' label to any znet module changes ++- modules.d/95znet/* ++ ++# Add a 'securityfs' label to any securityfs module changes ++- modules.d/96securityfs/* ++ ++# Add a 'biosdevname' label to any biosdevname module changes ++- modules.d/97biosdevname/* ++ ++# Add a 'masterkey' label to any masterkey module changes ++- modules.d/97masterkey/* ++ ++# Add a 'dracut-systemd' label to any dracut-systemd module changes ++- modules.d/98dracut-systemd/* ++ ++# Add a 'ecryptfs' label to any ecryptfs module changes ++- modules.d/98ecryptfs/* ++ ++# Add a 'integrity' label to any integrity module changes ++- modules.d/98integrity/* ++ ++# Add a 'pollcdrom' label to any pollcdrom module changes ++- modules.d/98pollcdrom/* ++ ++# Add a 'selinux' label to any selinux module changes ++- modules.d/98selinux/* ++ ++# Add a 'syslog' label to any syslog module changes ++- modules.d/98syslog/* ++ ++# Add a 'usrmount' label to any usrmount module changes ++- modules.d/98usrmount/* ++ ++# Add a 'base' label to any base module changes ++- modules.d/99base/* ++ ++# Add a 'fs-lib' label to any fs-lib module changes ++- modules.d/99fs-lib/* ++ ++# Add a 'img-lib' label to any img-lib module changes ++- modules.d/99img-lib/* ++ ++# Add a 'memstrack' label to any memstrack module changes ++- modules.d/99memstrack/* ++ ++# Add a 'shutdown' label to any shutdown module changes ++- modules.d/99shutdown/* ++ ++# Add a 'squash' label to any squash module changes ++- modules.d/99squash/* ++ ++# Add a 'uefi-lib' label to any uefi-lib module changes ++- modules.d/99uefi-lib/* ++ ++# Add 'test' label to any test/ file changes ++test: ++- test/* ++- test/**/* ++ ++# Add 'dracut' label for anything else ++dracut: ++- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] + diff --git a/0114.patch b/0114.patch new file mode 100644 index 0000000..12a6f8e --- /dev/null +++ b/0114.patch @@ -0,0 +1,337 @@ +From 64748b3383126ef2974a830a714636f752eba330 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:14:48 +0000 +Subject: [PATCH] Adding the labels trigger file for the RHEL-6 branch + +--- + .github/rhel6-label-triggers.yml | 321 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 321 insertions(+) + +diff --git a/.github/rhel6-label-triggers.yml b/.github/rhel6-label-triggers.yml +new file mode 100644 +index 00000000..25783cd0 +--- /dev/null ++++ b/.github/rhel6-label-triggers.yml +@@ -0,0 +1,321 @@ ++# Add 'branches' label to any pull request ++branches: ++- "*" ++ ++# Add 'rhel-6' branch label to any pull request ++rhel-6: ++- "*" ++ ++# Add 'needs review' label to any pull request ++needs review: ++- "*" ++ ++# Add 'repository' label to any root file changes ++repository: ++- ./* ++ ++# Add 'github' label to any .github/ file changes ++github: ++- .github/* ++- .github/**/* ++ ++# Add 'mkosi' label to any .mkosi/ file changes ++mkosi: ++- .mkosi/* ++- .mkosi/**/* ++- .mkosi/**/**/* ++ ++# Add 'dracut install' label to any install/ file changes ++dracut install: ++- install/* ++- install/**/* ++ ++# Add 'example' label to any examples/ file changes ++example: ++- examples/* ++- examples/**/* ++- examples/**/**/* ++ ++# Add a 'modules' label to any modules.d/ file changes ++modules: ++- modules.d/* ++- modules.d/**/* ++ ++# Add a 'bash' label to any bash module changes ++- modules.d/00bash/* ++ ++# Add a 'bootchart' label to any bootchart module changes ++- modules.d/00bootchart/* ++ ++# Add a 'dash' label to any dash module changes ++- modules.d/00dash/* ++ ++# Add a 'mksh' label to any mksh module changes ++- modules.d/00mksh/* ++ ++# Add a 'systemd' label to any systemd module changes ++- modules.d/00systemd/* ++ ++# Add a 'warpclock' label to any warpclock module changes ++- modules.d/00warpclock/* ++ ++# Add a 'fips' label to any fips module changes ++- modules.d/01fips/* ++ ++# Add a 'systemd-initrd' label to any systemd-initrd module changes ++- modules.d/01systemd-initrd/* ++ ++# Add a 'caps' label to any caps module changes ++- modules.d/02caps/* ++ ++# Add a 'systemd-networkd' label to any systemd-networkd module changes ++- modules.d/02systemd-networkd/* ++ ++# Add a 'modsign' label to any modsign module changes ++- modules.d/03modsign/* ++ ++# Add a 'rescue' label to any rescue module changes ++- modules.d/03rescue/* ++ ++# Add a 'watchdog' label to any watchdog module changes ++- modules.d/04watchdog/* ++ ++# Add a 'busybox' label to any busybox module changes ++- modules.d/05busybox/* ++ ++# Add a 'rngd' label to any rngd module changes ++- modules.d/06rngd/* ++ ++# Add a 'i18n' label to any i18n module changes ++- modules.d/10i18n/* ++ ++# Add a 'convertfs' label to any convertfs module changes ++- modules.d/30convertfs/* ++ ++# Add a 'network-legacy' label to any network-legacy module changes ++- modules.d/35network-legacy/* ++ ++# Add a 'network-manager' label to any network-manager module ++- modules.d/35network-manager/* ++ ++# Add a 'network' label to any network module changes ++- modules.d/40network/* ++ ++# Add a 'ifcfg' label to any ifcfg module changes ++- modules.d/45ifcfg/* ++ ++# Add a 'url-lib' label to any url-lib module changes ++- modules.d/45url-lib/* ++ ++# Add a 'drm' label to any drm module changes ++- modules.d/50drm/* ++ ++# Add a 'gensplash' label to any gensplash module changes ++- modules.d/50gensplash/* ++ ++# Add a 'plymouth' label to any plymouth module changes ++- modules.d/50plymouth/* ++ ++# Add a 'cms' label to any cms module changes ++- modules.d/80cms/* ++ ++# Add a 'lvmmerge' label to any lvmmerge module changes ++- modules.d/80lvmmerge/* ++ ++# Add a 'cio_ignore' label to any cio_ignore module changes ++- modules.d/81cio_ignore/* ++ ++# Add a 'btrfs' label to any btrfs module changes ++- modules.d/90btrfs/* ++ ++# Add a 'crypt' label to any crypt module changes ++- modules.d/90crypt/* ++ ++# Add a 'dm' label to any dm module changes ++- modules.d/90dm/* ++ ++# Add a 'dmraid' label to any dmraid module changes ++- modules.d/90dmraid/* ++ ++# Add a 'dmsquash-live' label to any dmsquash-live module changes ++- modules.d/90dmsquash-live/* ++ ++# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes ++- modules.d/90dmsquash-live-ntfs/* ++ ++# Add a 'kernel-modules' label to any kernel-modules module changes ++- modules.d/90kernel-modules/* ++ ++# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes ++- modules.d/90kernel-modules-extra/* ++ ++# Add a 'kernel-network-modules' label to any kernel-network-modules changes ++- modules.d/90kernel-network-modules/* ++ ++# Add a 'livenet' label to any livenet module changes ++- modules.d/90livenet/* ++ ++# Add a 'lvm' label to any lvm module changes ++- modules.d/90lvm/* ++ ++# Add a 'mdraid' label to any mdraid module changes ++- modules.d/90mdraid/* ++ ++# Add a 'multipath' label to any multipath module changes ++- modules.d/90multipath/* ++ ++# Add a 'nvdimm' label to any nvdimm module changes ++- modules.d/90nvdimm/* ++ ++# Add a 'ppcmac' label to any ppcmac module changes ++- modules.d/90ppcmac/* ++ ++# Add a 'qemu' label to any qemu module changes ++- modules.d/90qemu/* ++ ++# Add a 'qemu-net' label to any qemu-net module changes ++- modules.d/90qemu-net/* ++ ++# Add a 'stratis' label to any stratis module changes ++- modules.d/90stratis/* ++ ++# Add a 'crypt-gpg' label to any crypt-gpg module changes ++- modules.d/91crypt-gpg/* ++ ++# Add a 'crypt-loop' label to any crypt-loop module changes ++- modules.d/91crypt-loop/* ++ ++# Add a 'zipl' label to any zipl module changes ++- modules.d/91zipl/* ++ ++# Add a 'cifs' label to any cifs module changes ++- modules.d/95cifs/* ++ ++# Add a 'dasd' label to any dasd module changes ++- modules.d/95dasd/* ++ ++# Add a 'dasd_mod' label to any dasd_mod module changes ++- modules.d/95dasd_mod/* ++ ++# Add a 'dasd_rules' label to any dasd_rules module changes ++- modules.d/95dasd_rules/* ++ ++# Add a 'dcssblk' label to any dcssblk module changes ++- modules.d/95dcssblk/* ++ ++# Add a 'debug' label to any debug module changes ++- modules.d/95debug/* ++ ++# Add a 'fcoe' label to any fcoe module changes ++- modules.d/95fcoe/* ++ ++# Add a 'fcoe-uefi' label to any fcoe-uefi module changes ++- modules.d/95fcoe-uefi/* ++ ++# Add a 'fstab-sys' label to any fstab-sys module changes ++- modules.d/95fstab-sys/* ++ ++# Add a 'iscsi' label to any iscsi module changes ++- modules.d/95iscsi/* ++ ++# Add a 'lunmask' label to any lunmask module changes ++- modules.d/95lunmask/* ++ ++# Add a 'nbd' label to any nbd module changes ++- modules.d/95nbd/* ++ ++# Add a 'nfs' label to any nfs module changes ++- modules.d/95nfs/* ++ ++# Add a 'nvmf' label to any nvmf module changes ++- modules.d/95nvmf/* ++ ++# Add a 'qeth_rules' label to any qeth_rules module changes ++- modules.d/95qeth_rules/* ++ ++# Add a 'resume' label to any resume module changes ++- modules.d/95resume/* ++ ++# Add a 'rootfs-block' label to any rootfs-block module changes ++- modules.d/95rootfs-block/* ++ ++# Add a 'ssh-client' label to any ssh-client module changes ++- modules.d/95ssh-client/* ++ ++# Add a 'terminfo' label to any terminfo module changes ++- modules.d/95terminfo/* ++ ++# Add a 'udev-rules' label to any udev-rules module changes ++- modules.d/95udev-rules/* ++ ++# Add a 'virtfs' label to any virtfs module changes ++- modules.d/95virtfs/* ++ ++# Add a 'zfcp' label to any zfcp module changes ++- modules.d/95zfcp/* ++ ++# Add a 'zfcp_rules' label to any zfcp_rules module changes ++- modules.d/95zfcp_rules/* ++ ++# Add a 'znet' label to any znet module changes ++- modules.d/95znet/* ++ ++# Add a 'securityfs' label to any securityfs module changes ++- modules.d/96securityfs/* ++ ++# Add a 'biosdevname' label to any biosdevname module changes ++- modules.d/97biosdevname/* ++ ++# Add a 'masterkey' label to any masterkey module changes ++- modules.d/97masterkey/* ++ ++# Add a 'dracut-systemd' label to any dracut-systemd module changes ++- modules.d/98dracut-systemd/* ++ ++# Add a 'ecryptfs' label to any ecryptfs module changes ++- modules.d/98ecryptfs/* ++ ++# Add a 'integrity' label to any integrity module changes ++- modules.d/98integrity/* ++ ++# Add a 'pollcdrom' label to any pollcdrom module changes ++- modules.d/98pollcdrom/* ++ ++# Add a 'selinux' label to any selinux module changes ++- modules.d/98selinux/* ++ ++# Add a 'syslog' label to any syslog module changes ++- modules.d/98syslog/* ++ ++# Add a 'usrmount' label to any usrmount module changes ++- modules.d/98usrmount/* ++ ++# Add a 'base' label to any base module changes ++- modules.d/99base/* ++ ++# Add a 'fs-lib' label to any fs-lib module changes ++- modules.d/99fs-lib/* ++ ++# Add a 'img-lib' label to any img-lib module changes ++- modules.d/99img-lib/* ++ ++# Add a 'memstrack' label to any memstrack module changes ++- modules.d/99memstrack/* ++ ++# Add a 'shutdown' label to any shutdown module changes ++- modules.d/99shutdown/* ++ ++# Add a 'squash' label to any squash module changes ++- modules.d/99squash/* ++ ++# Add a 'uefi-lib' label to any uefi-lib module changes ++- modules.d/99uefi-lib/* ++ ++# Add 'test' label to any test/ file changes ++test: ++- test/* ++- test/**/* ++ ++# Add 'dracut' label for anything else ++dracut: ++- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] + diff --git a/0115.patch b/0115.patch new file mode 100644 index 0000000..dd597a3 --- /dev/null +++ b/0115.patch @@ -0,0 +1,337 @@ +From 9521b435d05a59634f6f966db69912c292fd39dc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:15:07 +0000 +Subject: [PATCH] Adding the labels trigger file for the RHEL-7 branch + +--- + .github/rhel7-label-triggers.yml | 321 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 321 insertions(+) + +diff --git a/.github/rhel7-label-triggers.yml b/.github/rhel7-label-triggers.yml +new file mode 100644 +index 00000000..5695c5f8 +--- /dev/null ++++ b/.github/rhel7-label-triggers.yml +@@ -0,0 +1,321 @@ ++# Add 'branches' label to any pull request ++branches: ++- "*" ++ ++# Add 'rhel-7' branch label to any pull request ++rhel-7: ++- "*" ++ ++# Add 'needs review' label to any pull request ++needs review: ++- "*" ++ ++# Add 'repository' label to any root file changes ++repository: ++- ./* ++ ++# Add 'github' label to any .github/ file changes ++github: ++- .github/* ++- .github/**/* ++ ++# Add 'mkosi' label to any .mkosi/ file changes ++mkosi: ++- .mkosi/* ++- .mkosi/**/* ++- .mkosi/**/**/* ++ ++# Add 'dracut install' label to any install/ file changes ++dracut install: ++- install/* ++- install/**/* ++ ++# Add 'example' label to any examples/ file changes ++example: ++- examples/* ++- examples/**/* ++- examples/**/**/* ++ ++# Add a 'modules' label to any modules.d/ file changes ++modules: ++- modules.d/* ++- modules.d/**/* ++ ++# Add a 'bash' label to any bash module changes ++- modules.d/00bash/* ++ ++# Add a 'bootchart' label to any bootchart module changes ++- modules.d/00bootchart/* ++ ++# Add a 'dash' label to any dash module changes ++- modules.d/00dash/* ++ ++# Add a 'mksh' label to any mksh module changes ++- modules.d/00mksh/* ++ ++# Add a 'systemd' label to any systemd module changes ++- modules.d/00systemd/* ++ ++# Add a 'warpclock' label to any warpclock module changes ++- modules.d/00warpclock/* ++ ++# Add a 'fips' label to any fips module changes ++- modules.d/01fips/* ++ ++# Add a 'systemd-initrd' label to any systemd-initrd module changes ++- modules.d/01systemd-initrd/* ++ ++# Add a 'caps' label to any caps module changes ++- modules.d/02caps/* ++ ++# Add a 'systemd-networkd' label to any systemd-networkd module changes ++- modules.d/02systemd-networkd/* ++ ++# Add a 'modsign' label to any modsign module changes ++- modules.d/03modsign/* ++ ++# Add a 'rescue' label to any rescue module changes ++- modules.d/03rescue/* ++ ++# Add a 'watchdog' label to any watchdog module changes ++- modules.d/04watchdog/* ++ ++# Add a 'busybox' label to any busybox module changes ++- modules.d/05busybox/* ++ ++# Add a 'rngd' label to any rngd module changes ++- modules.d/06rngd/* ++ ++# Add a 'i18n' label to any i18n module changes ++- modules.d/10i18n/* ++ ++# Add a 'convertfs' label to any convertfs module changes ++- modules.d/30convertfs/* ++ ++# Add a 'network-legacy' label to any network-legacy module changes ++- modules.d/35network-legacy/* ++ ++# Add a 'network-manager' label to any network-manager module ++- modules.d/35network-manager/* ++ ++# Add a 'network' label to any network module changes ++- modules.d/40network/* ++ ++# Add a 'ifcfg' label to any ifcfg module changes ++- modules.d/45ifcfg/* ++ ++# Add a 'url-lib' label to any url-lib module changes ++- modules.d/45url-lib/* ++ ++# Add a 'drm' label to any drm module changes ++- modules.d/50drm/* ++ ++# Add a 'gensplash' label to any gensplash module changes ++- modules.d/50gensplash/* ++ ++# Add a 'plymouth' label to any plymouth module changes ++- modules.d/50plymouth/* ++ ++# Add a 'cms' label to any cms module changes ++- modules.d/80cms/* ++ ++# Add a 'lvmmerge' label to any lvmmerge module changes ++- modules.d/80lvmmerge/* ++ ++# Add a 'cio_ignore' label to any cio_ignore module changes ++- modules.d/81cio_ignore/* ++ ++# Add a 'btrfs' label to any btrfs module changes ++- modules.d/90btrfs/* ++ ++# Add a 'crypt' label to any crypt module changes ++- modules.d/90crypt/* ++ ++# Add a 'dm' label to any dm module changes ++- modules.d/90dm/* ++ ++# Add a 'dmraid' label to any dmraid module changes ++- modules.d/90dmraid/* ++ ++# Add a 'dmsquash-live' label to any dmsquash-live module changes ++- modules.d/90dmsquash-live/* ++ ++# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes ++- modules.d/90dmsquash-live-ntfs/* ++ ++# Add a 'kernel-modules' label to any kernel-modules module changes ++- modules.d/90kernel-modules/* ++ ++# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes ++- modules.d/90kernel-modules-extra/* ++ ++# Add a 'kernel-network-modules' label to any kernel-network-modules changes ++- modules.d/90kernel-network-modules/* ++ ++# Add a 'livenet' label to any livenet module changes ++- modules.d/90livenet/* ++ ++# Add a 'lvm' label to any lvm module changes ++- modules.d/90lvm/* ++ ++# Add a 'mdraid' label to any mdraid module changes ++- modules.d/90mdraid/* ++ ++# Add a 'multipath' label to any multipath module changes ++- modules.d/90multipath/* ++ ++# Add a 'nvdimm' label to any nvdimm module changes ++- modules.d/90nvdimm/* ++ ++# Add a 'ppcmac' label to any ppcmac module changes ++- modules.d/90ppcmac/* ++ ++# Add a 'qemu' label to any qemu module changes ++- modules.d/90qemu/* ++ ++# Add a 'qemu-net' label to any qemu-net module changes ++- modules.d/90qemu-net/* ++ ++# Add a 'stratis' label to any stratis module changes ++- modules.d/90stratis/* ++ ++# Add a 'crypt-gpg' label to any crypt-gpg module changes ++- modules.d/91crypt-gpg/* ++ ++# Add a 'crypt-loop' label to any crypt-loop module changes ++- modules.d/91crypt-loop/* ++ ++# Add a 'zipl' label to any zipl module changes ++- modules.d/91zipl/* ++ ++# Add a 'cifs' label to any cifs module changes ++- modules.d/95cifs/* ++ ++# Add a 'dasd' label to any dasd module changes ++- modules.d/95dasd/* ++ ++# Add a 'dasd_mod' label to any dasd_mod module changes ++- modules.d/95dasd_mod/* ++ ++# Add a 'dasd_rules' label to any dasd_rules module changes ++- modules.d/95dasd_rules/* ++ ++# Add a 'dcssblk' label to any dcssblk module changes ++- modules.d/95dcssblk/* ++ ++# Add a 'debug' label to any debug module changes ++- modules.d/95debug/* ++ ++# Add a 'fcoe' label to any fcoe module changes ++- modules.d/95fcoe/* ++ ++# Add a 'fcoe-uefi' label to any fcoe-uefi module changes ++- modules.d/95fcoe-uefi/* ++ ++# Add a 'fstab-sys' label to any fstab-sys module changes ++- modules.d/95fstab-sys/* ++ ++# Add a 'iscsi' label to any iscsi module changes ++- modules.d/95iscsi/* ++ ++# Add a 'lunmask' label to any lunmask module changes ++- modules.d/95lunmask/* ++ ++# Add a 'nbd' label to any nbd module changes ++- modules.d/95nbd/* ++ ++# Add a 'nfs' label to any nfs module changes ++- modules.d/95nfs/* ++ ++# Add a 'nvmf' label to any nvmf module changes ++- modules.d/95nvmf/* ++ ++# Add a 'qeth_rules' label to any qeth_rules module changes ++- modules.d/95qeth_rules/* ++ ++# Add a 'resume' label to any resume module changes ++- modules.d/95resume/* ++ ++# Add a 'rootfs-block' label to any rootfs-block module changes ++- modules.d/95rootfs-block/* ++ ++# Add a 'ssh-client' label to any ssh-client module changes ++- modules.d/95ssh-client/* ++ ++# Add a 'terminfo' label to any terminfo module changes ++- modules.d/95terminfo/* ++ ++# Add a 'udev-rules' label to any udev-rules module changes ++- modules.d/95udev-rules/* ++ ++# Add a 'virtfs' label to any virtfs module changes ++- modules.d/95virtfs/* ++ ++# Add a 'zfcp' label to any zfcp module changes ++- modules.d/95zfcp/* ++ ++# Add a 'zfcp_rules' label to any zfcp_rules module changes ++- modules.d/95zfcp_rules/* ++ ++# Add a 'znet' label to any znet module changes ++- modules.d/95znet/* ++ ++# Add a 'securityfs' label to any securityfs module changes ++- modules.d/96securityfs/* ++ ++# Add a 'biosdevname' label to any biosdevname module changes ++- modules.d/97biosdevname/* ++ ++# Add a 'masterkey' label to any masterkey module changes ++- modules.d/97masterkey/* ++ ++# Add a 'dracut-systemd' label to any dracut-systemd module changes ++- modules.d/98dracut-systemd/* ++ ++# Add a 'ecryptfs' label to any ecryptfs module changes ++- modules.d/98ecryptfs/* ++ ++# Add a 'integrity' label to any integrity module changes ++- modules.d/98integrity/* ++ ++# Add a 'pollcdrom' label to any pollcdrom module changes ++- modules.d/98pollcdrom/* ++ ++# Add a 'selinux' label to any selinux module changes ++- modules.d/98selinux/* ++ ++# Add a 'syslog' label to any syslog module changes ++- modules.d/98syslog/* ++ ++# Add a 'usrmount' label to any usrmount module changes ++- modules.d/98usrmount/* ++ ++# Add a 'base' label to any base module changes ++- modules.d/99base/* ++ ++# Add a 'fs-lib' label to any fs-lib module changes ++- modules.d/99fs-lib/* ++ ++# Add a 'img-lib' label to any img-lib module changes ++- modules.d/99img-lib/* ++ ++# Add a 'memstrack' label to any memstrack module changes ++- modules.d/99memstrack/* ++ ++# Add a 'shutdown' label to any shutdown module changes ++- modules.d/99shutdown/* ++ ++# Add a 'squash' label to any squash module changes ++- modules.d/99squash/* ++ ++# Add a 'uefi-lib' label to any uefi-lib module changes ++- modules.d/99uefi-lib/* ++ ++# Add 'test' label to any test/ file changes ++test: ++- test/* ++- test/**/* ++ ++# Add 'dracut' label for anything else ++dracut: ++- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] + diff --git a/0116.patch b/0116.patch new file mode 100644 index 0000000..102b489 --- /dev/null +++ b/0116.patch @@ -0,0 +1,337 @@ +From 2be5e3ac4c6e14b184c17b60f70db4ae7b509b85 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Thu, 6 Aug 2020 19:15:45 +0000 +Subject: [PATCH] Adding the labels trigger file for the RHEL-8 branch + +--- + .github/rhel8-label-triggers.yml | 321 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 321 insertions(+) + +diff --git a/.github/rhel8-label-triggers.yml b/.github/rhel8-label-triggers.yml +new file mode 100644 +index 00000000..1e64c059 +--- /dev/null ++++ b/.github/rhel8-label-triggers.yml +@@ -0,0 +1,321 @@ ++# Add 'branches' label to any pull request ++branches: ++- "*" ++ ++# Add 'rhel-8' branch label to any pull request ++rhel-8: ++- "*" ++ ++# Add 'needs review' label to any pull request ++needs review: ++- "*" ++ ++# Add 'repository' label to any root file changes ++repository: ++- ./* ++ ++# Add 'github' label to any .github/ file changes ++github: ++- .github/* ++- .github/**/* ++ ++# Add 'mkosi' label to any .mkosi/ file changes ++mkosi: ++- .mkosi/* ++- .mkosi/**/* ++- .mkosi/**/**/* ++ ++# Add 'dracut install' label to any install/ file changes ++dracut install: ++- install/* ++- install/**/* ++ ++# Add 'example' label to any examples/ file changes ++example: ++- examples/* ++- examples/**/* ++- examples/**/**/* ++ ++# Add a 'modules' label to any modules.d/ file changes ++modules: ++- modules.d/* ++- modules.d/**/* ++ ++# Add a 'bash' label to any bash module changes ++- modules.d/00bash/* ++ ++# Add a 'bootchart' label to any bootchart module changes ++- modules.d/00bootchart/* ++ ++# Add a 'dash' label to any dash module changes ++- modules.d/00dash/* ++ ++# Add a 'mksh' label to any mksh module changes ++- modules.d/00mksh/* ++ ++# Add a 'systemd' label to any systemd module changes ++- modules.d/00systemd/* ++ ++# Add a 'warpclock' label to any warpclock module changes ++- modules.d/00warpclock/* ++ ++# Add a 'fips' label to any fips module changes ++- modules.d/01fips/* ++ ++# Add a 'systemd-initrd' label to any systemd-initrd module changes ++- modules.d/01systemd-initrd/* ++ ++# Add a 'caps' label to any caps module changes ++- modules.d/02caps/* ++ ++# Add a 'systemd-networkd' label to any systemd-networkd module changes ++- modules.d/02systemd-networkd/* ++ ++# Add a 'modsign' label to any modsign module changes ++- modules.d/03modsign/* ++ ++# Add a 'rescue' label to any rescue module changes ++- modules.d/03rescue/* ++ ++# Add a 'watchdog' label to any watchdog module changes ++- modules.d/04watchdog/* ++ ++# Add a 'busybox' label to any busybox module changes ++- modules.d/05busybox/* ++ ++# Add a 'rngd' label to any rngd module changes ++- modules.d/06rngd/* ++ ++# Add a 'i18n' label to any i18n module changes ++- modules.d/10i18n/* ++ ++# Add a 'convertfs' label to any convertfs module changes ++- modules.d/30convertfs/* ++ ++# Add a 'network-legacy' label to any network-legacy module changes ++- modules.d/35network-legacy/* ++ ++# Add a 'network-manager' label to any network-manager module ++- modules.d/35network-manager/* ++ ++# Add a 'network' label to any network module changes ++- modules.d/40network/* ++ ++# Add a 'ifcfg' label to any ifcfg module changes ++- modules.d/45ifcfg/* ++ ++# Add a 'url-lib' label to any url-lib module changes ++- modules.d/45url-lib/* ++ ++# Add a 'drm' label to any drm module changes ++- modules.d/50drm/* ++ ++# Add a 'gensplash' label to any gensplash module changes ++- modules.d/50gensplash/* ++ ++# Add a 'plymouth' label to any plymouth module changes ++- modules.d/50plymouth/* ++ ++# Add a 'cms' label to any cms module changes ++- modules.d/80cms/* ++ ++# Add a 'lvmmerge' label to any lvmmerge module changes ++- modules.d/80lvmmerge/* ++ ++# Add a 'cio_ignore' label to any cio_ignore module changes ++- modules.d/81cio_ignore/* ++ ++# Add a 'btrfs' label to any btrfs module changes ++- modules.d/90btrfs/* ++ ++# Add a 'crypt' label to any crypt module changes ++- modules.d/90crypt/* ++ ++# Add a 'dm' label to any dm module changes ++- modules.d/90dm/* ++ ++# Add a 'dmraid' label to any dmraid module changes ++- modules.d/90dmraid/* ++ ++# Add a 'dmsquash-live' label to any dmsquash-live module changes ++- modules.d/90dmsquash-live/* ++ ++# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes ++- modules.d/90dmsquash-live-ntfs/* ++ ++# Add a 'kernel-modules' label to any kernel-modules module changes ++- modules.d/90kernel-modules/* ++ ++# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes ++- modules.d/90kernel-modules-extra/* ++ ++# Add a 'kernel-network-modules' label to any kernel-network-modules changes ++- modules.d/90kernel-network-modules/* ++ ++# Add a 'livenet' label to any livenet module changes ++- modules.d/90livenet/* ++ ++# Add a 'lvm' label to any lvm module changes ++- modules.d/90lvm/* ++ ++# Add a 'mdraid' label to any mdraid module changes ++- modules.d/90mdraid/* ++ ++# Add a 'multipath' label to any multipath module changes ++- modules.d/90multipath/* ++ ++# Add a 'nvdimm' label to any nvdimm module changes ++- modules.d/90nvdimm/* ++ ++# Add a 'ppcmac' label to any ppcmac module changes ++- modules.d/90ppcmac/* ++ ++# Add a 'qemu' label to any qemu module changes ++- modules.d/90qemu/* ++ ++# Add a 'qemu-net' label to any qemu-net module changes ++- modules.d/90qemu-net/* ++ ++# Add a 'stratis' label to any stratis module changes ++- modules.d/90stratis/* ++ ++# Add a 'crypt-gpg' label to any crypt-gpg module changes ++- modules.d/91crypt-gpg/* ++ ++# Add a 'crypt-loop' label to any crypt-loop module changes ++- modules.d/91crypt-loop/* ++ ++# Add a 'zipl' label to any zipl module changes ++- modules.d/91zipl/* ++ ++# Add a 'cifs' label to any cifs module changes ++- modules.d/95cifs/* ++ ++# Add a 'dasd' label to any dasd module changes ++- modules.d/95dasd/* ++ ++# Add a 'dasd_mod' label to any dasd_mod module changes ++- modules.d/95dasd_mod/* ++ ++# Add a 'dasd_rules' label to any dasd_rules module changes ++- modules.d/95dasd_rules/* ++ ++# Add a 'dcssblk' label to any dcssblk module changes ++- modules.d/95dcssblk/* ++ ++# Add a 'debug' label to any debug module changes ++- modules.d/95debug/* ++ ++# Add a 'fcoe' label to any fcoe module changes ++- modules.d/95fcoe/* ++ ++# Add a 'fcoe-uefi' label to any fcoe-uefi module changes ++- modules.d/95fcoe-uefi/* ++ ++# Add a 'fstab-sys' label to any fstab-sys module changes ++- modules.d/95fstab-sys/* ++ ++# Add a 'iscsi' label to any iscsi module changes ++- modules.d/95iscsi/* ++ ++# Add a 'lunmask' label to any lunmask module changes ++- modules.d/95lunmask/* ++ ++# Add a 'nbd' label to any nbd module changes ++- modules.d/95nbd/* ++ ++# Add a 'nfs' label to any nfs module changes ++- modules.d/95nfs/* ++ ++# Add a 'nvmf' label to any nvmf module changes ++- modules.d/95nvmf/* ++ ++# Add a 'qeth_rules' label to any qeth_rules module changes ++- modules.d/95qeth_rules/* ++ ++# Add a 'resume' label to any resume module changes ++- modules.d/95resume/* ++ ++# Add a 'rootfs-block' label to any rootfs-block module changes ++- modules.d/95rootfs-block/* ++ ++# Add a 'ssh-client' label to any ssh-client module changes ++- modules.d/95ssh-client/* ++ ++# Add a 'terminfo' label to any terminfo module changes ++- modules.d/95terminfo/* ++ ++# Add a 'udev-rules' label to any udev-rules module changes ++- modules.d/95udev-rules/* ++ ++# Add a 'virtfs' label to any virtfs module changes ++- modules.d/95virtfs/* ++ ++# Add a 'zfcp' label to any zfcp module changes ++- modules.d/95zfcp/* ++ ++# Add a 'zfcp_rules' label to any zfcp_rules module changes ++- modules.d/95zfcp_rules/* ++ ++# Add a 'znet' label to any znet module changes ++- modules.d/95znet/* ++ ++# Add a 'securityfs' label to any securityfs module changes ++- modules.d/96securityfs/* ++ ++# Add a 'biosdevname' label to any biosdevname module changes ++- modules.d/97biosdevname/* ++ ++# Add a 'masterkey' label to any masterkey module changes ++- modules.d/97masterkey/* ++ ++# Add a 'dracut-systemd' label to any dracut-systemd module changes ++- modules.d/98dracut-systemd/* ++ ++# Add a 'ecryptfs' label to any ecryptfs module changes ++- modules.d/98ecryptfs/* ++ ++# Add a 'integrity' label to any integrity module changes ++- modules.d/98integrity/* ++ ++# Add a 'pollcdrom' label to any pollcdrom module changes ++- modules.d/98pollcdrom/* ++ ++# Add a 'selinux' label to any selinux module changes ++- modules.d/98selinux/* ++ ++# Add a 'syslog' label to any syslog module changes ++- modules.d/98syslog/* ++ ++# Add a 'usrmount' label to any usrmount module changes ++- modules.d/98usrmount/* ++ ++# Add a 'base' label to any base module changes ++- modules.d/99base/* ++ ++# Add a 'fs-lib' label to any fs-lib module changes ++- modules.d/99fs-lib/* ++ ++# Add a 'img-lib' label to any img-lib module changes ++- modules.d/99img-lib/* ++ ++# Add a 'memstrack' label to any memstrack module changes ++- modules.d/99memstrack/* ++ ++# Add a 'shutdown' label to any shutdown module changes ++- modules.d/99shutdown/* ++ ++# Add a 'squash' label to any squash module changes ++- modules.d/99squash/* ++ ++# Add a 'uefi-lib' label to any uefi-lib module changes ++- modules.d/99uefi-lib/* ++ ++# Add 'test' label to any test/ file changes ++test: ++- test/* ++- test/**/* ++ ++# Add 'dracut' label for anything else ++dracut: ++- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] + diff --git a/0117.patch b/0117.patch new file mode 100644 index 0000000..815fbc5 --- /dev/null +++ b/0117.patch @@ -0,0 +1,1100 @@ +From ac733934fab0402a6a20bc4d966dab3c9279f2b8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 7 Aug 2020 15:40:40 +0000 +Subject: [PATCH] Switching label triggers from pull requests to cron + +--- + .github/rhel6-label-triggers.yml | 321 ------------------------------------ + .github/rhel7-label-triggers.yml | 321 ------------------------------------ + .github/rhel8-label-triggers.yml | 321 ------------------------------------ + .github/workflows/master-labels.yml | 19 ++- + .github/workflows/rhel6-labeler.yml | 18 -- + .github/workflows/rhel7-labeler.yml | 18 -- + .github/workflows/rhel8-labeler.yml | 18 -- + 7 files changed, 10 insertions(+), 1026 deletions(-) + +diff --git a/.github/rhel6-label-triggers.yml b/.github/rhel6-label-triggers.yml +deleted file mode 100644 +index 25783cd0..00000000 +--- a/.github/rhel6-label-triggers.yml ++++ /dev/null +@@ -1,321 +0,0 @@ +-# Add 'branches' label to any pull request +-branches: +-- "*" +- +-# Add 'rhel-6' branch label to any pull request +-rhel-6: +-- "*" +- +-# Add 'needs review' label to any pull request +-needs review: +-- "*" +- +-# Add 'repository' label to any root file changes +-repository: +-- ./* +- +-# Add 'github' label to any .github/ file changes +-github: +-- .github/* +-- .github/**/* +- +-# Add 'mkosi' label to any .mkosi/ file changes +-mkosi: +-- .mkosi/* +-- .mkosi/**/* +-- .mkosi/**/**/* +- +-# Add 'dracut install' label to any install/ file changes +-dracut install: +-- install/* +-- install/**/* +- +-# Add 'example' label to any examples/ file changes +-example: +-- examples/* +-- examples/**/* +-- examples/**/**/* +- +-# Add a 'modules' label to any modules.d/ file changes +-modules: +-- modules.d/* +-- modules.d/**/* +- +-# Add a 'bash' label to any bash module changes +-- modules.d/00bash/* +- +-# Add a 'bootchart' label to any bootchart module changes +-- modules.d/00bootchart/* +- +-# Add a 'dash' label to any dash module changes +-- modules.d/00dash/* +- +-# Add a 'mksh' label to any mksh module changes +-- modules.d/00mksh/* +- +-# Add a 'systemd' label to any systemd module changes +-- modules.d/00systemd/* +- +-# Add a 'warpclock' label to any warpclock module changes +-- modules.d/00warpclock/* +- +-# Add a 'fips' label to any fips module changes +-- modules.d/01fips/* +- +-# Add a 'systemd-initrd' label to any systemd-initrd module changes +-- modules.d/01systemd-initrd/* +- +-# Add a 'caps' label to any caps module changes +-- modules.d/02caps/* +- +-# Add a 'systemd-networkd' label to any systemd-networkd module changes +-- modules.d/02systemd-networkd/* +- +-# Add a 'modsign' label to any modsign module changes +-- modules.d/03modsign/* +- +-# Add a 'rescue' label to any rescue module changes +-- modules.d/03rescue/* +- +-# Add a 'watchdog' label to any watchdog module changes +-- modules.d/04watchdog/* +- +-# Add a 'busybox' label to any busybox module changes +-- modules.d/05busybox/* +- +-# Add a 'rngd' label to any rngd module changes +-- modules.d/06rngd/* +- +-# Add a 'i18n' label to any i18n module changes +-- modules.d/10i18n/* +- +-# Add a 'convertfs' label to any convertfs module changes +-- modules.d/30convertfs/* +- +-# Add a 'network-legacy' label to any network-legacy module changes +-- modules.d/35network-legacy/* +- +-# Add a 'network-manager' label to any network-manager module +-- modules.d/35network-manager/* +- +-# Add a 'network' label to any network module changes +-- modules.d/40network/* +- +-# Add a 'ifcfg' label to any ifcfg module changes +-- modules.d/45ifcfg/* +- +-# Add a 'url-lib' label to any url-lib module changes +-- modules.d/45url-lib/* +- +-# Add a 'drm' label to any drm module changes +-- modules.d/50drm/* +- +-# Add a 'gensplash' label to any gensplash module changes +-- modules.d/50gensplash/* +- +-# Add a 'plymouth' label to any plymouth module changes +-- modules.d/50plymouth/* +- +-# Add a 'cms' label to any cms module changes +-- modules.d/80cms/* +- +-# Add a 'lvmmerge' label to any lvmmerge module changes +-- modules.d/80lvmmerge/* +- +-# Add a 'cio_ignore' label to any cio_ignore module changes +-- modules.d/81cio_ignore/* +- +-# Add a 'btrfs' label to any btrfs module changes +-- modules.d/90btrfs/* +- +-# Add a 'crypt' label to any crypt module changes +-- modules.d/90crypt/* +- +-# Add a 'dm' label to any dm module changes +-- modules.d/90dm/* +- +-# Add a 'dmraid' label to any dmraid module changes +-- modules.d/90dmraid/* +- +-# Add a 'dmsquash-live' label to any dmsquash-live module changes +-- modules.d/90dmsquash-live/* +- +-# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes +-- modules.d/90dmsquash-live-ntfs/* +- +-# Add a 'kernel-modules' label to any kernel-modules module changes +-- modules.d/90kernel-modules/* +- +-# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes +-- modules.d/90kernel-modules-extra/* +- +-# Add a 'kernel-network-modules' label to any kernel-network-modules changes +-- modules.d/90kernel-network-modules/* +- +-# Add a 'livenet' label to any livenet module changes +-- modules.d/90livenet/* +- +-# Add a 'lvm' label to any lvm module changes +-- modules.d/90lvm/* +- +-# Add a 'mdraid' label to any mdraid module changes +-- modules.d/90mdraid/* +- +-# Add a 'multipath' label to any multipath module changes +-- modules.d/90multipath/* +- +-# Add a 'nvdimm' label to any nvdimm module changes +-- modules.d/90nvdimm/* +- +-# Add a 'ppcmac' label to any ppcmac module changes +-- modules.d/90ppcmac/* +- +-# Add a 'qemu' label to any qemu module changes +-- modules.d/90qemu/* +- +-# Add a 'qemu-net' label to any qemu-net module changes +-- modules.d/90qemu-net/* +- +-# Add a 'stratis' label to any stratis module changes +-- modules.d/90stratis/* +- +-# Add a 'crypt-gpg' label to any crypt-gpg module changes +-- modules.d/91crypt-gpg/* +- +-# Add a 'crypt-loop' label to any crypt-loop module changes +-- modules.d/91crypt-loop/* +- +-# Add a 'zipl' label to any zipl module changes +-- modules.d/91zipl/* +- +-# Add a 'cifs' label to any cifs module changes +-- modules.d/95cifs/* +- +-# Add a 'dasd' label to any dasd module changes +-- modules.d/95dasd/* +- +-# Add a 'dasd_mod' label to any dasd_mod module changes +-- modules.d/95dasd_mod/* +- +-# Add a 'dasd_rules' label to any dasd_rules module changes +-- modules.d/95dasd_rules/* +- +-# Add a 'dcssblk' label to any dcssblk module changes +-- modules.d/95dcssblk/* +- +-# Add a 'debug' label to any debug module changes +-- modules.d/95debug/* +- +-# Add a 'fcoe' label to any fcoe module changes +-- modules.d/95fcoe/* +- +-# Add a 'fcoe-uefi' label to any fcoe-uefi module changes +-- modules.d/95fcoe-uefi/* +- +-# Add a 'fstab-sys' label to any fstab-sys module changes +-- modules.d/95fstab-sys/* +- +-# Add a 'iscsi' label to any iscsi module changes +-- modules.d/95iscsi/* +- +-# Add a 'lunmask' label to any lunmask module changes +-- modules.d/95lunmask/* +- +-# Add a 'nbd' label to any nbd module changes +-- modules.d/95nbd/* +- +-# Add a 'nfs' label to any nfs module changes +-- modules.d/95nfs/* +- +-# Add a 'nvmf' label to any nvmf module changes +-- modules.d/95nvmf/* +- +-# Add a 'qeth_rules' label to any qeth_rules module changes +-- modules.d/95qeth_rules/* +- +-# Add a 'resume' label to any resume module changes +-- modules.d/95resume/* +- +-# Add a 'rootfs-block' label to any rootfs-block module changes +-- modules.d/95rootfs-block/* +- +-# Add a 'ssh-client' label to any ssh-client module changes +-- modules.d/95ssh-client/* +- +-# Add a 'terminfo' label to any terminfo module changes +-- modules.d/95terminfo/* +- +-# Add a 'udev-rules' label to any udev-rules module changes +-- modules.d/95udev-rules/* +- +-# Add a 'virtfs' label to any virtfs module changes +-- modules.d/95virtfs/* +- +-# Add a 'zfcp' label to any zfcp module changes +-- modules.d/95zfcp/* +- +-# Add a 'zfcp_rules' label to any zfcp_rules module changes +-- modules.d/95zfcp_rules/* +- +-# Add a 'znet' label to any znet module changes +-- modules.d/95znet/* +- +-# Add a 'securityfs' label to any securityfs module changes +-- modules.d/96securityfs/* +- +-# Add a 'biosdevname' label to any biosdevname module changes +-- modules.d/97biosdevname/* +- +-# Add a 'masterkey' label to any masterkey module changes +-- modules.d/97masterkey/* +- +-# Add a 'dracut-systemd' label to any dracut-systemd module changes +-- modules.d/98dracut-systemd/* +- +-# Add a 'ecryptfs' label to any ecryptfs module changes +-- modules.d/98ecryptfs/* +- +-# Add a 'integrity' label to any integrity module changes +-- modules.d/98integrity/* +- +-# Add a 'pollcdrom' label to any pollcdrom module changes +-- modules.d/98pollcdrom/* +- +-# Add a 'selinux' label to any selinux module changes +-- modules.d/98selinux/* +- +-# Add a 'syslog' label to any syslog module changes +-- modules.d/98syslog/* +- +-# Add a 'usrmount' label to any usrmount module changes +-- modules.d/98usrmount/* +- +-# Add a 'base' label to any base module changes +-- modules.d/99base/* +- +-# Add a 'fs-lib' label to any fs-lib module changes +-- modules.d/99fs-lib/* +- +-# Add a 'img-lib' label to any img-lib module changes +-- modules.d/99img-lib/* +- +-# Add a 'memstrack' label to any memstrack module changes +-- modules.d/99memstrack/* +- +-# Add a 'shutdown' label to any shutdown module changes +-- modules.d/99shutdown/* +- +-# Add a 'squash' label to any squash module changes +-- modules.d/99squash/* +- +-# Add a 'uefi-lib' label to any uefi-lib module changes +-- modules.d/99uefi-lib/* +- +-# Add 'test' label to any test/ file changes +-test: +-- test/* +-- test/**/* +- +-# Add 'dracut' label for anything else +-dracut: +-- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] +diff --git a/.github/rhel7-label-triggers.yml b/.github/rhel7-label-triggers.yml +deleted file mode 100644 +index 5695c5f8..00000000 +--- a/.github/rhel7-label-triggers.yml ++++ /dev/null +@@ -1,321 +0,0 @@ +-# Add 'branches' label to any pull request +-branches: +-- "*" +- +-# Add 'rhel-7' branch label to any pull request +-rhel-7: +-- "*" +- +-# Add 'needs review' label to any pull request +-needs review: +-- "*" +- +-# Add 'repository' label to any root file changes +-repository: +-- ./* +- +-# Add 'github' label to any .github/ file changes +-github: +-- .github/* +-- .github/**/* +- +-# Add 'mkosi' label to any .mkosi/ file changes +-mkosi: +-- .mkosi/* +-- .mkosi/**/* +-- .mkosi/**/**/* +- +-# Add 'dracut install' label to any install/ file changes +-dracut install: +-- install/* +-- install/**/* +- +-# Add 'example' label to any examples/ file changes +-example: +-- examples/* +-- examples/**/* +-- examples/**/**/* +- +-# Add a 'modules' label to any modules.d/ file changes +-modules: +-- modules.d/* +-- modules.d/**/* +- +-# Add a 'bash' label to any bash module changes +-- modules.d/00bash/* +- +-# Add a 'bootchart' label to any bootchart module changes +-- modules.d/00bootchart/* +- +-# Add a 'dash' label to any dash module changes +-- modules.d/00dash/* +- +-# Add a 'mksh' label to any mksh module changes +-- modules.d/00mksh/* +- +-# Add a 'systemd' label to any systemd module changes +-- modules.d/00systemd/* +- +-# Add a 'warpclock' label to any warpclock module changes +-- modules.d/00warpclock/* +- +-# Add a 'fips' label to any fips module changes +-- modules.d/01fips/* +- +-# Add a 'systemd-initrd' label to any systemd-initrd module changes +-- modules.d/01systemd-initrd/* +- +-# Add a 'caps' label to any caps module changes +-- modules.d/02caps/* +- +-# Add a 'systemd-networkd' label to any systemd-networkd module changes +-- modules.d/02systemd-networkd/* +- +-# Add a 'modsign' label to any modsign module changes +-- modules.d/03modsign/* +- +-# Add a 'rescue' label to any rescue module changes +-- modules.d/03rescue/* +- +-# Add a 'watchdog' label to any watchdog module changes +-- modules.d/04watchdog/* +- +-# Add a 'busybox' label to any busybox module changes +-- modules.d/05busybox/* +- +-# Add a 'rngd' label to any rngd module changes +-- modules.d/06rngd/* +- +-# Add a 'i18n' label to any i18n module changes +-- modules.d/10i18n/* +- +-# Add a 'convertfs' label to any convertfs module changes +-- modules.d/30convertfs/* +- +-# Add a 'network-legacy' label to any network-legacy module changes +-- modules.d/35network-legacy/* +- +-# Add a 'network-manager' label to any network-manager module +-- modules.d/35network-manager/* +- +-# Add a 'network' label to any network module changes +-- modules.d/40network/* +- +-# Add a 'ifcfg' label to any ifcfg module changes +-- modules.d/45ifcfg/* +- +-# Add a 'url-lib' label to any url-lib module changes +-- modules.d/45url-lib/* +- +-# Add a 'drm' label to any drm module changes +-- modules.d/50drm/* +- +-# Add a 'gensplash' label to any gensplash module changes +-- modules.d/50gensplash/* +- +-# Add a 'plymouth' label to any plymouth module changes +-- modules.d/50plymouth/* +- +-# Add a 'cms' label to any cms module changes +-- modules.d/80cms/* +- +-# Add a 'lvmmerge' label to any lvmmerge module changes +-- modules.d/80lvmmerge/* +- +-# Add a 'cio_ignore' label to any cio_ignore module changes +-- modules.d/81cio_ignore/* +- +-# Add a 'btrfs' label to any btrfs module changes +-- modules.d/90btrfs/* +- +-# Add a 'crypt' label to any crypt module changes +-- modules.d/90crypt/* +- +-# Add a 'dm' label to any dm module changes +-- modules.d/90dm/* +- +-# Add a 'dmraid' label to any dmraid module changes +-- modules.d/90dmraid/* +- +-# Add a 'dmsquash-live' label to any dmsquash-live module changes +-- modules.d/90dmsquash-live/* +- +-# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes +-- modules.d/90dmsquash-live-ntfs/* +- +-# Add a 'kernel-modules' label to any kernel-modules module changes +-- modules.d/90kernel-modules/* +- +-# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes +-- modules.d/90kernel-modules-extra/* +- +-# Add a 'kernel-network-modules' label to any kernel-network-modules changes +-- modules.d/90kernel-network-modules/* +- +-# Add a 'livenet' label to any livenet module changes +-- modules.d/90livenet/* +- +-# Add a 'lvm' label to any lvm module changes +-- modules.d/90lvm/* +- +-# Add a 'mdraid' label to any mdraid module changes +-- modules.d/90mdraid/* +- +-# Add a 'multipath' label to any multipath module changes +-- modules.d/90multipath/* +- +-# Add a 'nvdimm' label to any nvdimm module changes +-- modules.d/90nvdimm/* +- +-# Add a 'ppcmac' label to any ppcmac module changes +-- modules.d/90ppcmac/* +- +-# Add a 'qemu' label to any qemu module changes +-- modules.d/90qemu/* +- +-# Add a 'qemu-net' label to any qemu-net module changes +-- modules.d/90qemu-net/* +- +-# Add a 'stratis' label to any stratis module changes +-- modules.d/90stratis/* +- +-# Add a 'crypt-gpg' label to any crypt-gpg module changes +-- modules.d/91crypt-gpg/* +- +-# Add a 'crypt-loop' label to any crypt-loop module changes +-- modules.d/91crypt-loop/* +- +-# Add a 'zipl' label to any zipl module changes +-- modules.d/91zipl/* +- +-# Add a 'cifs' label to any cifs module changes +-- modules.d/95cifs/* +- +-# Add a 'dasd' label to any dasd module changes +-- modules.d/95dasd/* +- +-# Add a 'dasd_mod' label to any dasd_mod module changes +-- modules.d/95dasd_mod/* +- +-# Add a 'dasd_rules' label to any dasd_rules module changes +-- modules.d/95dasd_rules/* +- +-# Add a 'dcssblk' label to any dcssblk module changes +-- modules.d/95dcssblk/* +- +-# Add a 'debug' label to any debug module changes +-- modules.d/95debug/* +- +-# Add a 'fcoe' label to any fcoe module changes +-- modules.d/95fcoe/* +- +-# Add a 'fcoe-uefi' label to any fcoe-uefi module changes +-- modules.d/95fcoe-uefi/* +- +-# Add a 'fstab-sys' label to any fstab-sys module changes +-- modules.d/95fstab-sys/* +- +-# Add a 'iscsi' label to any iscsi module changes +-- modules.d/95iscsi/* +- +-# Add a 'lunmask' label to any lunmask module changes +-- modules.d/95lunmask/* +- +-# Add a 'nbd' label to any nbd module changes +-- modules.d/95nbd/* +- +-# Add a 'nfs' label to any nfs module changes +-- modules.d/95nfs/* +- +-# Add a 'nvmf' label to any nvmf module changes +-- modules.d/95nvmf/* +- +-# Add a 'qeth_rules' label to any qeth_rules module changes +-- modules.d/95qeth_rules/* +- +-# Add a 'resume' label to any resume module changes +-- modules.d/95resume/* +- +-# Add a 'rootfs-block' label to any rootfs-block module changes +-- modules.d/95rootfs-block/* +- +-# Add a 'ssh-client' label to any ssh-client module changes +-- modules.d/95ssh-client/* +- +-# Add a 'terminfo' label to any terminfo module changes +-- modules.d/95terminfo/* +- +-# Add a 'udev-rules' label to any udev-rules module changes +-- modules.d/95udev-rules/* +- +-# Add a 'virtfs' label to any virtfs module changes +-- modules.d/95virtfs/* +- +-# Add a 'zfcp' label to any zfcp module changes +-- modules.d/95zfcp/* +- +-# Add a 'zfcp_rules' label to any zfcp_rules module changes +-- modules.d/95zfcp_rules/* +- +-# Add a 'znet' label to any znet module changes +-- modules.d/95znet/* +- +-# Add a 'securityfs' label to any securityfs module changes +-- modules.d/96securityfs/* +- +-# Add a 'biosdevname' label to any biosdevname module changes +-- modules.d/97biosdevname/* +- +-# Add a 'masterkey' label to any masterkey module changes +-- modules.d/97masterkey/* +- +-# Add a 'dracut-systemd' label to any dracut-systemd module changes +-- modules.d/98dracut-systemd/* +- +-# Add a 'ecryptfs' label to any ecryptfs module changes +-- modules.d/98ecryptfs/* +- +-# Add a 'integrity' label to any integrity module changes +-- modules.d/98integrity/* +- +-# Add a 'pollcdrom' label to any pollcdrom module changes +-- modules.d/98pollcdrom/* +- +-# Add a 'selinux' label to any selinux module changes +-- modules.d/98selinux/* +- +-# Add a 'syslog' label to any syslog module changes +-- modules.d/98syslog/* +- +-# Add a 'usrmount' label to any usrmount module changes +-- modules.d/98usrmount/* +- +-# Add a 'base' label to any base module changes +-- modules.d/99base/* +- +-# Add a 'fs-lib' label to any fs-lib module changes +-- modules.d/99fs-lib/* +- +-# Add a 'img-lib' label to any img-lib module changes +-- modules.d/99img-lib/* +- +-# Add a 'memstrack' label to any memstrack module changes +-- modules.d/99memstrack/* +- +-# Add a 'shutdown' label to any shutdown module changes +-- modules.d/99shutdown/* +- +-# Add a 'squash' label to any squash module changes +-- modules.d/99squash/* +- +-# Add a 'uefi-lib' label to any uefi-lib module changes +-- modules.d/99uefi-lib/* +- +-# Add 'test' label to any test/ file changes +-test: +-- test/* +-- test/**/* +- +-# Add 'dracut' label for anything else +-dracut: +-- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] +diff --git a/.github/rhel8-label-triggers.yml b/.github/rhel8-label-triggers.yml +deleted file mode 100644 +index 1e64c059..00000000 +--- a/.github/rhel8-label-triggers.yml ++++ /dev/null +@@ -1,321 +0,0 @@ +-# Add 'branches' label to any pull request +-branches: +-- "*" +- +-# Add 'rhel-8' branch label to any pull request +-rhel-8: +-- "*" +- +-# Add 'needs review' label to any pull request +-needs review: +-- "*" +- +-# Add 'repository' label to any root file changes +-repository: +-- ./* +- +-# Add 'github' label to any .github/ file changes +-github: +-- .github/* +-- .github/**/* +- +-# Add 'mkosi' label to any .mkosi/ file changes +-mkosi: +-- .mkosi/* +-- .mkosi/**/* +-- .mkosi/**/**/* +- +-# Add 'dracut install' label to any install/ file changes +-dracut install: +-- install/* +-- install/**/* +- +-# Add 'example' label to any examples/ file changes +-example: +-- examples/* +-- examples/**/* +-- examples/**/**/* +- +-# Add a 'modules' label to any modules.d/ file changes +-modules: +-- modules.d/* +-- modules.d/**/* +- +-# Add a 'bash' label to any bash module changes +-- modules.d/00bash/* +- +-# Add a 'bootchart' label to any bootchart module changes +-- modules.d/00bootchart/* +- +-# Add a 'dash' label to any dash module changes +-- modules.d/00dash/* +- +-# Add a 'mksh' label to any mksh module changes +-- modules.d/00mksh/* +- +-# Add a 'systemd' label to any systemd module changes +-- modules.d/00systemd/* +- +-# Add a 'warpclock' label to any warpclock module changes +-- modules.d/00warpclock/* +- +-# Add a 'fips' label to any fips module changes +-- modules.d/01fips/* +- +-# Add a 'systemd-initrd' label to any systemd-initrd module changes +-- modules.d/01systemd-initrd/* +- +-# Add a 'caps' label to any caps module changes +-- modules.d/02caps/* +- +-# Add a 'systemd-networkd' label to any systemd-networkd module changes +-- modules.d/02systemd-networkd/* +- +-# Add a 'modsign' label to any modsign module changes +-- modules.d/03modsign/* +- +-# Add a 'rescue' label to any rescue module changes +-- modules.d/03rescue/* +- +-# Add a 'watchdog' label to any watchdog module changes +-- modules.d/04watchdog/* +- +-# Add a 'busybox' label to any busybox module changes +-- modules.d/05busybox/* +- +-# Add a 'rngd' label to any rngd module changes +-- modules.d/06rngd/* +- +-# Add a 'i18n' label to any i18n module changes +-- modules.d/10i18n/* +- +-# Add a 'convertfs' label to any convertfs module changes +-- modules.d/30convertfs/* +- +-# Add a 'network-legacy' label to any network-legacy module changes +-- modules.d/35network-legacy/* +- +-# Add a 'network-manager' label to any network-manager module +-- modules.d/35network-manager/* +- +-# Add a 'network' label to any network module changes +-- modules.d/40network/* +- +-# Add a 'ifcfg' label to any ifcfg module changes +-- modules.d/45ifcfg/* +- +-# Add a 'url-lib' label to any url-lib module changes +-- modules.d/45url-lib/* +- +-# Add a 'drm' label to any drm module changes +-- modules.d/50drm/* +- +-# Add a 'gensplash' label to any gensplash module changes +-- modules.d/50gensplash/* +- +-# Add a 'plymouth' label to any plymouth module changes +-- modules.d/50plymouth/* +- +-# Add a 'cms' label to any cms module changes +-- modules.d/80cms/* +- +-# Add a 'lvmmerge' label to any lvmmerge module changes +-- modules.d/80lvmmerge/* +- +-# Add a 'cio_ignore' label to any cio_ignore module changes +-- modules.d/81cio_ignore/* +- +-# Add a 'btrfs' label to any btrfs module changes +-- modules.d/90btrfs/* +- +-# Add a 'crypt' label to any crypt module changes +-- modules.d/90crypt/* +- +-# Add a 'dm' label to any dm module changes +-- modules.d/90dm/* +- +-# Add a 'dmraid' label to any dmraid module changes +-- modules.d/90dmraid/* +- +-# Add a 'dmsquash-live' label to any dmsquash-live module changes +-- modules.d/90dmsquash-live/* +- +-# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes +-- modules.d/90dmsquash-live-ntfs/* +- +-# Add a 'kernel-modules' label to any kernel-modules module changes +-- modules.d/90kernel-modules/* +- +-# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes +-- modules.d/90kernel-modules-extra/* +- +-# Add a 'kernel-network-modules' label to any kernel-network-modules changes +-- modules.d/90kernel-network-modules/* +- +-# Add a 'livenet' label to any livenet module changes +-- modules.d/90livenet/* +- +-# Add a 'lvm' label to any lvm module changes +-- modules.d/90lvm/* +- +-# Add a 'mdraid' label to any mdraid module changes +-- modules.d/90mdraid/* +- +-# Add a 'multipath' label to any multipath module changes +-- modules.d/90multipath/* +- +-# Add a 'nvdimm' label to any nvdimm module changes +-- modules.d/90nvdimm/* +- +-# Add a 'ppcmac' label to any ppcmac module changes +-- modules.d/90ppcmac/* +- +-# Add a 'qemu' label to any qemu module changes +-- modules.d/90qemu/* +- +-# Add a 'qemu-net' label to any qemu-net module changes +-- modules.d/90qemu-net/* +- +-# Add a 'stratis' label to any stratis module changes +-- modules.d/90stratis/* +- +-# Add a 'crypt-gpg' label to any crypt-gpg module changes +-- modules.d/91crypt-gpg/* +- +-# Add a 'crypt-loop' label to any crypt-loop module changes +-- modules.d/91crypt-loop/* +- +-# Add a 'zipl' label to any zipl module changes +-- modules.d/91zipl/* +- +-# Add a 'cifs' label to any cifs module changes +-- modules.d/95cifs/* +- +-# Add a 'dasd' label to any dasd module changes +-- modules.d/95dasd/* +- +-# Add a 'dasd_mod' label to any dasd_mod module changes +-- modules.d/95dasd_mod/* +- +-# Add a 'dasd_rules' label to any dasd_rules module changes +-- modules.d/95dasd_rules/* +- +-# Add a 'dcssblk' label to any dcssblk module changes +-- modules.d/95dcssblk/* +- +-# Add a 'debug' label to any debug module changes +-- modules.d/95debug/* +- +-# Add a 'fcoe' label to any fcoe module changes +-- modules.d/95fcoe/* +- +-# Add a 'fcoe-uefi' label to any fcoe-uefi module changes +-- modules.d/95fcoe-uefi/* +- +-# Add a 'fstab-sys' label to any fstab-sys module changes +-- modules.d/95fstab-sys/* +- +-# Add a 'iscsi' label to any iscsi module changes +-- modules.d/95iscsi/* +- +-# Add a 'lunmask' label to any lunmask module changes +-- modules.d/95lunmask/* +- +-# Add a 'nbd' label to any nbd module changes +-- modules.d/95nbd/* +- +-# Add a 'nfs' label to any nfs module changes +-- modules.d/95nfs/* +- +-# Add a 'nvmf' label to any nvmf module changes +-- modules.d/95nvmf/* +- +-# Add a 'qeth_rules' label to any qeth_rules module changes +-- modules.d/95qeth_rules/* +- +-# Add a 'resume' label to any resume module changes +-- modules.d/95resume/* +- +-# Add a 'rootfs-block' label to any rootfs-block module changes +-- modules.d/95rootfs-block/* +- +-# Add a 'ssh-client' label to any ssh-client module changes +-- modules.d/95ssh-client/* +- +-# Add a 'terminfo' label to any terminfo module changes +-- modules.d/95terminfo/* +- +-# Add a 'udev-rules' label to any udev-rules module changes +-- modules.d/95udev-rules/* +- +-# Add a 'virtfs' label to any virtfs module changes +-- modules.d/95virtfs/* +- +-# Add a 'zfcp' label to any zfcp module changes +-- modules.d/95zfcp/* +- +-# Add a 'zfcp_rules' label to any zfcp_rules module changes +-- modules.d/95zfcp_rules/* +- +-# Add a 'znet' label to any znet module changes +-- modules.d/95znet/* +- +-# Add a 'securityfs' label to any securityfs module changes +-- modules.d/96securityfs/* +- +-# Add a 'biosdevname' label to any biosdevname module changes +-- modules.d/97biosdevname/* +- +-# Add a 'masterkey' label to any masterkey module changes +-- modules.d/97masterkey/* +- +-# Add a 'dracut-systemd' label to any dracut-systemd module changes +-- modules.d/98dracut-systemd/* +- +-# Add a 'ecryptfs' label to any ecryptfs module changes +-- modules.d/98ecryptfs/* +- +-# Add a 'integrity' label to any integrity module changes +-- modules.d/98integrity/* +- +-# Add a 'pollcdrom' label to any pollcdrom module changes +-- modules.d/98pollcdrom/* +- +-# Add a 'selinux' label to any selinux module changes +-- modules.d/98selinux/* +- +-# Add a 'syslog' label to any syslog module changes +-- modules.d/98syslog/* +- +-# Add a 'usrmount' label to any usrmount module changes +-- modules.d/98usrmount/* +- +-# Add a 'base' label to any base module changes +-- modules.d/99base/* +- +-# Add a 'fs-lib' label to any fs-lib module changes +-- modules.d/99fs-lib/* +- +-# Add a 'img-lib' label to any img-lib module changes +-- modules.d/99img-lib/* +- +-# Add a 'memstrack' label to any memstrack module changes +-- modules.d/99memstrack/* +- +-# Add a 'shutdown' label to any shutdown module changes +-- modules.d/99shutdown/* +- +-# Add a 'squash' label to any squash module changes +-- modules.d/99squash/* +- +-# Add a 'uefi-lib' label to any uefi-lib module changes +-- modules.d/99uefi-lib/* +- +-# Add 'test' label to any test/ file changes +-test: +-- test/* +-- test/**/* +- +-# Add 'dracut' label for anything else +-dracut: +-- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] +diff --git a/.github/workflows/master-labels.yml b/.github/workflows/master-labels.yml +index ad4aaa26..3202719f 100644 +--- a/.github/workflows/master-labels.yml ++++ b/.github/workflows/master-labels.yml +@@ -3,16 +3,17 @@ + + name: master-labeler + on: +- pull_request: +- branches: +- - master ++ schedule: ++ - cron: '*/15 * * * *' ++ branches: ++ - master + + jobs: + label: + runs-on: ubuntu-latest +- +- steps: +- - uses: actions/labeler@v2 +- with: +- repo-token: "${{ secrets.GITHUB_TOKEN }}" +- configuration-path: .github/master-label-triggers.yml ++ steps: ++ - uses: paulfantom/periodic-labeler@master ++ env: ++ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ++ GITHUB_REPOSITORY: ${{ github.repository }} ++ LABEL_MAPPINGS_FILE: .github/master-label-triggers.yml +diff --git a/.github/workflows/rhel6-labeler.yml b/.github/workflows/rhel6-labeler.yml +deleted file mode 100644 +index f342ff2d..00000000 +--- a/.github/workflows/rhel6-labeler.yml ++++ /dev/null +@@ -1,18 +0,0 @@ +-# This workflow will triage pull requests for the RHEL-6 branch and +-# apply a label based on the paths that are modified in the pull request. +- +-name: rhel6-labeler +-on: +- pull_request: +- branches: +- - RHEL-6 +- +-jobs: +- label: +- runs-on: ubuntu-latest +- +- steps: +- - uses: actions/labeler@v2 +- with: +- repo-token: "${{ secrets.GITHUB_TOKEN }}" +- configuration-path: .github/rhel6-label-triggers.yml +diff --git a/.github/workflows/rhel7-labeler.yml b/.github/workflows/rhel7-labeler.yml +deleted file mode 100644 +index 63f9e1b6..00000000 +--- a/.github/workflows/rhel7-labeler.yml ++++ /dev/null +@@ -1,18 +0,0 @@ +-# This workflow will triage pull requests for the RHEL-7 branch and +-# apply a label based on the paths that are modified in the pull request. +- +-name: rhel7-labeler +-on: +- pull_request: +- branches: +- - RHEL-7 +- +-jobs: +- label: +- runs-on: ubuntu-latest +- +- steps: +- - uses: actions/labeler@v2 +- with: +- repo-token: "${{ secrets.GITHUB_TOKEN }}" +- configuration-path: .github/rhel7-label-triggers.yml +diff --git a/.github/workflows/rhel8-labeler.yml b/.github/workflows/rhel8-labeler.yml +deleted file mode 100644 +index 5b83f914..00000000 +--- a/.github/workflows/rhel8-labeler.yml ++++ /dev/null +@@ -1,18 +0,0 @@ +-# This workflow will triage pull requests for the RHEL-9 branch and +-# apply a label based on the paths that are modified in the pull request. +- +-name: rhel8-labeler +-on: +- pull_request: +- branches: +- - RHEL-8 +- +-jobs: +- label: +- runs-on: ubuntu-latest +- +- steps: +- - uses: actions/labeler@v2 +- with: +- repo-token: "${{ secrets.GITHUB_TOKEN }}" +- configuration-path: .github/rhel8-label-triggers.yml + diff --git a/0118.patch b/0118.patch new file mode 100644 index 0000000..12fceb3 --- /dev/null +++ b/0118.patch @@ -0,0 +1,30 @@ +From cafd314b70cdb70ad48a501a347edd3e6b652252 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 7 Aug 2020 15:57:07 +0000 +Subject: [PATCH] Update master-labels.yml + +Fixing bad intentation +--- + .github/workflows/master-labels.yml | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/.github/workflows/master-labels.yml b/.github/workflows/master-labels.yml +index 3202719f..ad92fd2b 100644 +--- a/.github/workflows/master-labels.yml ++++ b/.github/workflows/master-labels.yml +@@ -2,11 +2,11 @@ + # apply a label based on the paths that are modified in the pull request. + + name: master-labeler +-on: ++ on: + schedule: + - cron: '*/15 * * * *' +- branches: +- - master ++ branches: ++ - master + + jobs: + label: + diff --git a/0119.patch b/0119.patch new file mode 100644 index 0000000..b010132 --- /dev/null +++ b/0119.patch @@ -0,0 +1,47 @@ +From fc1d50b27046985d7882d7b4ff3abde374a39891 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 7 Aug 2020 16:17:45 +0000 +Subject: [PATCH] Update master-labels.yml + +Removing branches not sure if they work with the cron scheduler in workflow actions +--- + .github/workflows/master-labels.yml | 26 ++++++++++++-------------- + 1 file changed, 12 insertions(+), 14 deletions(-) + +diff --git a/.github/workflows/master-labels.yml b/.github/workflows/master-labels.yml +index ad92fd2b..0a46425a 100644 +--- a/.github/workflows/master-labels.yml ++++ b/.github/workflows/master-labels.yml +@@ -1,19 +1,17 @@ +-# This workflow will triage pull requests for the RHEL-6 branch and +-# apply a label based on the paths that are modified in the pull request. ++# This workflow will triage pull request and apply a ++# label based on the paths that are modified in the pull request. + + name: master-labeler +- on: ++on: + schedule: +- - cron: '*/15 * * * *' +- branches: +- - master ++ - cron: '*/15 * * * *' + + jobs: +- label: +- runs-on: ubuntu-latest +- steps: +- - uses: paulfantom/periodic-labeler@master +- env: +- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +- GITHUB_REPOSITORY: ${{ github.repository }} +- LABEL_MAPPINGS_FILE: .github/master-label-triggers.yml ++ label: ++ runs-on: ubuntu-latest ++ steps: ++ - uses: paulfantom/periodic-labeler@master ++ env: ++ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ++ GITHUB_REPOSITORY: ${{ github.repository }} ++ LABEL_MAPPINGS_FILE: .github/labeler.yml + diff --git a/0120.patch b/0120.patch new file mode 100644 index 0000000..56b60e9 --- /dev/null +++ b/0120.patch @@ -0,0 +1,20 @@ +From 3f4771ebf4826192ec95f17e4eb0b9114f319221 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Fri, 7 Aug 2020 18:54:43 +0200 +Subject: [PATCH] .github: fix path to label workflow mapping file + +--- + .github/workflows/master-labels.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.github/workflows/master-labels.yml b/.github/workflows/master-labels.yml +index 0a46425a..249b2148 100644 +--- a/.github/workflows/master-labels.yml ++++ b/.github/workflows/master-labels.yml +@@ -14,4 +14,4 @@ jobs: + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} +- LABEL_MAPPINGS_FILE: .github/labeler.yml ++ LABEL_MAPPINGS_FILE: .github/master-label-triggers.yml + diff --git a/0121.patch b/0121.patch new file mode 100644 index 0000000..d28bf70 --- /dev/null +++ b/0121.patch @@ -0,0 +1,359 @@ +From 0e30f33a32322f9b4510b14d4b835ba9ca20764b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 7 Aug 2020 18:39:46 +0000 +Subject: [PATCH] New labels file + +--- + .github/master-label-triggers.yml | 313 --------------------- + .../workflows/{master-labels.yml => labels.yml} | 10 +- + 2 files changed, 4 insertions(+), 319 deletions(-) + +diff --git a/.github/master-label-triggers.yml b/.github/master-label-triggers.yml +deleted file mode 100644 +index 8c654939..00000000 +--- a/.github/master-label-triggers.yml ++++ /dev/null +@@ -1,313 +0,0 @@ +-# Add 'needs review' label to any pull request +-needs review: +-- "*" +- +-# Add 'repository' label to any root file changes +-repository: +-- ./* +- +-# Add 'github' label to any .github/ file changes +-github: +-- .github/* +-- .github/**/* +- +-# Add 'mkosi' label to any .mkosi/ file changes +-mkosi: +-- .mkosi/* +-- .mkosi/**/* +-- .mkosi/**/**/* +- +-# Add 'dracut install' label to any install/ file changes +-dracut install: +-- install/* +-- install/**/* +- +-# Add 'example' label to any examples/ file changes +-example: +-- examples/* +-- examples/**/* +-- examples/**/**/* +- +-# Add a 'modules' label to any modules.d/ file changes +-modules: +-- modules.d/* +-- modules.d/**/* +- +-# Add a 'bash' label to any bash module changes +-- modules.d/00bash/* +- +-# Add a 'bootchart' label to any bootchart module changes +-- modules.d/00bootchart/* +- +-# Add a 'dash' label to any dash module changes +-- modules.d/00dash/* +- +-# Add a 'mksh' label to any mksh module changes +-- modules.d/00mksh/* +- +-# Add a 'systemd' label to any systemd module changes +-- modules.d/00systemd/* +- +-# Add a 'warpclock' label to any warpclock module changes +-- modules.d/00warpclock/* +- +-# Add a 'fips' label to any fips module changes +-- modules.d/01fips/* +- +-# Add a 'systemd-initrd' label to any systemd-initrd module changes +-- modules.d/01systemd-initrd/* +- +-# Add a 'caps' label to any caps module changes +-- modules.d/02caps/* +- +-# Add a 'systemd-networkd' label to any systemd-networkd module changes +-- modules.d/02systemd-networkd/* +- +-# Add a 'modsign' label to any modsign module changes +-- modules.d/03modsign/* +- +-# Add a 'rescue' label to any rescue module changes +-- modules.d/03rescue/* +- +-# Add a 'watchdog' label to any watchdog module changes +-- modules.d/04watchdog/* +- +-# Add a 'busybox' label to any busybox module changes +-- modules.d/05busybox/* +- +-# Add a 'rngd' label to any rngd module changes +-- modules.d/06rngd/* +- +-# Add a 'i18n' label to any i18n module changes +-- modules.d/10i18n/* +- +-# Add a 'convertfs' label to any convertfs module changes +-- modules.d/30convertfs/* +- +-# Add a 'network-legacy' label to any network-legacy module changes +-- modules.d/35network-legacy/* +- +-# Add a 'network-manager' label to any network-manager module +-- modules.d/35network-manager/* +- +-# Add a 'network' label to any network module changes +-- modules.d/40network/* +- +-# Add a 'ifcfg' label to any ifcfg module changes +-- modules.d/45ifcfg/* +- +-# Add a 'url-lib' label to any url-lib module changes +-- modules.d/45url-lib/* +- +-# Add a 'drm' label to any drm module changes +-- modules.d/50drm/* +- +-# Add a 'gensplash' label to any gensplash module changes +-- modules.d/50gensplash/* +- +-# Add a 'plymouth' label to any plymouth module changes +-- modules.d/50plymouth/* +- +-# Add a 'cms' label to any cms module changes +-- modules.d/80cms/* +- +-# Add a 'lvmmerge' label to any lvmmerge module changes +-- modules.d/80lvmmerge/* +- +-# Add a 'cio_ignore' label to any cio_ignore module changes +-- modules.d/81cio_ignore/* +- +-# Add a 'btrfs' label to any btrfs module changes +-- modules.d/90btrfs/* +- +-# Add a 'crypt' label to any crypt module changes +-- modules.d/90crypt/* +- +-# Add a 'dm' label to any dm module changes +-- modules.d/90dm/* +- +-# Add a 'dmraid' label to any dmraid module changes +-- modules.d/90dmraid/* +- +-# Add a 'dmsquash-live' label to any dmsquash-live module changes +-- modules.d/90dmsquash-live/* +- +-# Add a 'dmsquash-live-ntfs' label to any dmsquash-live-ntfs changes +-- modules.d/90dmsquash-live-ntfs/* +- +-# Add a 'kernel-modules' label to any kernel-modules module changes +-- modules.d/90kernel-modules/* +- +-# Add a 'kernel-modules-extra' label to any kernel-modules-extra changes +-- modules.d/90kernel-modules-extra/* +- +-# Add a 'kernel-network-modules' label to any kernel-network-modules changes +-- modules.d/90kernel-network-modules/* +- +-# Add a 'livenet' label to any livenet module changes +-- modules.d/90livenet/* +- +-# Add a 'lvm' label to any lvm module changes +-- modules.d/90lvm/* +- +-# Add a 'mdraid' label to any mdraid module changes +-- modules.d/90mdraid/* +- +-# Add a 'multipath' label to any multipath module changes +-- modules.d/90multipath/* +- +-# Add a 'nvdimm' label to any nvdimm module changes +-- modules.d/90nvdimm/* +- +-# Add a 'ppcmac' label to any ppcmac module changes +-- modules.d/90ppcmac/* +- +-# Add a 'qemu' label to any qemu module changes +-- modules.d/90qemu/* +- +-# Add a 'qemu-net' label to any qemu-net module changes +-- modules.d/90qemu-net/* +- +-# Add a 'stratis' label to any stratis module changes +-- modules.d/90stratis/* +- +-# Add a 'crypt-gpg' label to any crypt-gpg module changes +-- modules.d/91crypt-gpg/* +- +-# Add a 'crypt-loop' label to any crypt-loop module changes +-- modules.d/91crypt-loop/* +- +-# Add a 'zipl' label to any zipl module changes +-- modules.d/91zipl/* +- +-# Add a 'cifs' label to any cifs module changes +-- modules.d/95cifs/* +- +-# Add a 'dasd' label to any dasd module changes +-- modules.d/95dasd/* +- +-# Add a 'dasd_mod' label to any dasd_mod module changes +-- modules.d/95dasd_mod/* +- +-# Add a 'dasd_rules' label to any dasd_rules module changes +-- modules.d/95dasd_rules/* +- +-# Add a 'dcssblk' label to any dcssblk module changes +-- modules.d/95dcssblk/* +- +-# Add a 'debug' label to any debug module changes +-- modules.d/95debug/* +- +-# Add a 'fcoe' label to any fcoe module changes +-- modules.d/95fcoe/* +- +-# Add a 'fcoe-uefi' label to any fcoe-uefi module changes +-- modules.d/95fcoe-uefi/* +- +-# Add a 'fstab-sys' label to any fstab-sys module changes +-- modules.d/95fstab-sys/* +- +-# Add a 'iscsi' label to any iscsi module changes +-- modules.d/95iscsi/* +- +-# Add a 'lunmask' label to any lunmask module changes +-- modules.d/95lunmask/* +- +-# Add a 'nbd' label to any nbd module changes +-- modules.d/95nbd/* +- +-# Add a 'nfs' label to any nfs module changes +-- modules.d/95nfs/* +- +-# Add a 'nvmf' label to any nvmf module changes +-- modules.d/95nvmf/* +- +-# Add a 'qeth_rules' label to any qeth_rules module changes +-- modules.d/95qeth_rules/* +- +-# Add a 'resume' label to any resume module changes +-- modules.d/95resume/* +- +-# Add a 'rootfs-block' label to any rootfs-block module changes +-- modules.d/95rootfs-block/* +- +-# Add a 'ssh-client' label to any ssh-client module changes +-- modules.d/95ssh-client/* +- +-# Add a 'terminfo' label to any terminfo module changes +-- modules.d/95terminfo/* +- +-# Add a 'udev-rules' label to any udev-rules module changes +-- modules.d/95udev-rules/* +- +-# Add a 'virtfs' label to any virtfs module changes +-- modules.d/95virtfs/* +- +-# Add a 'zfcp' label to any zfcp module changes +-- modules.d/95zfcp/* +- +-# Add a 'zfcp_rules' label to any zfcp_rules module changes +-- modules.d/95zfcp_rules/* +- +-# Add a 'znet' label to any znet module changes +-- modules.d/95znet/* +- +-# Add a 'securityfs' label to any securityfs module changes +-- modules.d/96securityfs/* +- +-# Add a 'biosdevname' label to any biosdevname module changes +-- modules.d/97biosdevname/* +- +-# Add a 'masterkey' label to any masterkey module changes +-- modules.d/97masterkey/* +- +-# Add a 'dracut-systemd' label to any dracut-systemd module changes +-- modules.d/98dracut-systemd/* +- +-# Add a 'ecryptfs' label to any ecryptfs module changes +-- modules.d/98ecryptfs/* +- +-# Add a 'integrity' label to any integrity module changes +-- modules.d/98integrity/* +- +-# Add a 'pollcdrom' label to any pollcdrom module changes +-- modules.d/98pollcdrom/* +- +-# Add a 'selinux' label to any selinux module changes +-- modules.d/98selinux/* +- +-# Add a 'syslog' label to any syslog module changes +-- modules.d/98syslog/* +- +-# Add a 'usrmount' label to any usrmount module changes +-- modules.d/98usrmount/* +- +-# Add a 'base' label to any base module changes +-- modules.d/99base/* +- +-# Add a 'fs-lib' label to any fs-lib module changes +-- modules.d/99fs-lib/* +- +-# Add a 'img-lib' label to any img-lib module changes +-- modules.d/99img-lib/* +- +-# Add a 'memstrack' label to any memstrack module changes +-- modules.d/99memstrack/* +- +-# Add a 'shutdown' label to any shutdown module changes +-- modules.d/99shutdown/* +- +-# Add a 'squash' label to any squash module changes +-- modules.d/99squash/* +- +-# Add a 'uefi-lib' label to any uefi-lib module changes +-- modules.d/99uefi-lib/* +- +-# Add 'test' label to any test/ file changes +-test: +-- test/* +-- test/**/* +- +-# Add 'dracut' label for anything else +-dracut: +-- any: ['!.github/', '!.mkosi/', '!install/', '!examples/', '!modules.d/', '.test/'] +diff --git a/.github/workflows/master-labels.yml b/.github/workflows/labels.yml +similarity index 50% +rename from .github/workflows/master-labels.yml +rename to .github/workflows/labels.yml +index 249b2148..0e8d34d6 100644 +--- a/.github/workflows/master-labels.yml ++++ b/.github/workflows/labels.yml +@@ -1,17 +1,15 @@ +-# This workflow will triage pull request and apply a +-# label based on the paths that are modified in the pull request. ++name: Label the Pull Requests automatically via Cron + +-name: master-labeler + on: +- schedule: ++ schedule: + - cron: '*/15 * * * *' + + jobs: + label: +- runs-on: ubuntu-latest ++ runs-on: ubuntu-18.04 + steps: + - uses: paulfantom/periodic-labeler@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} +- LABEL_MAPPINGS_FILE: .github/master-label-triggers.yml ++ LABEL_MAPPINGS_FILE: .github/labeler.yml + diff --git a/0122.patch b/0122.patch new file mode 100644 index 0000000..5ccff33 --- /dev/null +++ b/0122.patch @@ -0,0 +1,315 @@ +From c4f2b11b89efb5f70f338f4f437fe05aefbbf0b7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 7 Aug 2020 18:40:11 +0000 +Subject: [PATCH] New label trigger file + +--- + .github/labeler.yml | 299 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 299 insertions(+) + +diff --git a/.github/labeler.yml b/.github/labeler.yml +new file mode 100644 +index 00000000..61eb79f6 +--- /dev/null ++++ b/.github/labeler.yml +@@ -0,0 +1,299 @@ ++needs review: ++ - "*" ++ ++repository: ++ - ./* ++ ++github: ++ - .github/* ++ - .github/**/* ++ ++dracut install: ++ - install/* ++ - install/**/* ++ ++example: ++ - examples/* ++ - examples/**/* ++ - examples/**/**/* ++ ++modules: ++ - modules.d/* ++ - modules.d/**/* ++ ++bash: ++ - modules.d/00bash/* ++ ++bootchart: ++ - modules.d/00bootchart/* ++ ++dash: ++ - modules.d/00dash/* ++ ++mksh: ++ - modules.d/00mksh/* ++ ++systemd: ++ - modules.d/00systemd/* ++ ++warpclock: ++ - modules.d/00warpclock/* ++ ++fips: ++ - modules.d/01fips/* ++ ++systemd-initrd: ++ - modules.d/01systemd-initrd/* ++ ++caps: ++ - modules.d/02caps/* ++ ++systemd-networkd: ++ - modules.d/02systemd-networkd/* ++ ++modsign: ++ - modules.d/03modsign/* ++ ++rescue: ++ - modules.d/03rescue/* ++ ++watchdog: ++ - modules.d/04watchdog/* ++ ++busybox: ++ - modules.d/05busybox/* ++ ++rngd: ++ - modules.d/06rngd/* ++ ++i18n: ++ - modules.d/10i18n/* ++ ++convertfs: ++ - modules.d/30convertfs/* ++ ++network-legacy: ++ - modules.d/35network-legacy/* ++ ++network-manager: ++ - modules.d/35network-manager/* ++ ++network: ++ - modules.d/40network/* ++ ++ifcfg: ++ - modules.d/45ifcfg/* ++ ++url-lib: ++ - modules.d/45url-lib/* ++ ++drm: ++ - modules.d/50drm/* ++ ++gensplash: ++ - modules.d/50gensplash/* ++ ++plymouth: ++ - modules.d/50plymouth/* ++ ++cms: ++ - modules.d/80cms/* ++ ++lvmmerge: ++ - modules.d/80lvmmerge/* ++ ++cio_ignore: ++ - modules.d/81cio_ignore/* ++ ++btrfs: ++ - modules.d/90btrfs/* ++ ++crypt: ++ - modules.d/90crypt/* ++ ++dm: ++ - modules.d/90dm/* ++ ++dmraid: ++ - modules.d/90dmraid/* ++ ++dmsquash-live: ++ - modules.d/90dmsquash-live/* ++ ++dmsquash-live-ntfs: ++ - modules.d/90dmsquash-live-ntfs/* ++ ++kernel-modules: ++ - modules.d/90kernel-modules/* ++ ++kernel-modules-extra: ++ - modules.d/90kernel-modules-extra/* ++ ++kernel-network-modules: ++ - modules.d/90kernel-network-modules/* ++ ++livenet: ++ - modules.d/90livenet/* ++ ++lvm: ++ - modules.d/90lvm/* ++ ++mdraid: ++ - modules.d/90mdraid/* ++ ++multipath: ++ - modules.d/90multipath/* ++ ++nvdimm: ++ - modules.d/90nvdimm/* ++ ++ppcmac: ++ - modules.d/90ppcmac/* ++ ++qemu: ++ - modules.d/90qemu/* ++ ++qemu-net: ++ - modules.d/90qemu-net/* ++ ++stratis: ++ - modules.d/90stratis/* ++ ++crypt-gpg: ++ - modules.d/91crypt-gpg/* ++ ++crypt-loop: ++ - modules.d/91crypt-loop/* ++ ++zipl: ++ - modules.d/91zipl/* ++ ++cifs: ++ - modules.d/95cifs/* ++ ++dasd: ++ - modules.d/95dasd/* ++ ++dasd_mod: ++ - modules.d/95dasd_mod/* ++ ++dasd_rules: ++ - modules.d/95dasd_rules/* ++ ++dcssblk: ++ - modules.d/95dcssblk/* ++ ++debug: ++ - modules.d/95debug/* ++ ++fcoe: ++ - modules.d/95fcoe/* ++ ++fcoe-uefi: ++ - modules.d/95fcoe-uefi/* ++ ++fstab-sys: ++ - modules.d/95fstab-sys/* ++ ++iscsi: ++ - modules.d/95iscsi/* ++ ++lunmask: ++ - modules.d/95lunmask/* ++ ++nbd: ++ - modules.d/95nbd/* ++ ++nfs: ++ - modules.d/95nfs/* ++ ++nvmf: ++ - modules.d/95nvmf/* ++ ++qeth_rules: ++ - modules.d/95qeth_rules/* ++ ++resume: ++ - modules.d/95resume/* ++ ++rootfs-block: ++ - modules.d/95rootfs-block/* ++ ++ssh-client: ++ - modules.d/95ssh-client/* ++ ++terminfo: ++ - modules.d/95terminfo/* ++ ++udev-rules: ++ - modules.d/95udev-rules/* ++ ++virtfs: ++ - modules.d/95virtfs/* ++ ++zfcp: ++ - modules.d/95zfcp/* ++ ++zfcp_rules: ++ - modules.d/95zfcp_rules/* ++ ++znet: ++ - modules.d/95znet/* ++ ++securityfs: ++ - modules.d/96securityfs/* ++ ++biosdevname: ++ - modules.d/97biosdevname/* ++ ++masterkey: ++- modules.d/97masterkey/* ++ ++dracut-systemd: ++ - modules.d/98dracut-systemd/* ++ ++ecryptfs: ++ - modules.d/98ecryptfs/* ++ ++integrity: ++ - modules.d/98integrity/* ++ ++pollcdrom: ++ - modules.d/98pollcdrom/* ++ ++selinux: ++ - modules.d/98selinux/* ++ ++syslog: ++ - modules.d/98syslog/* ++ ++usrmount: ++ - modules.d/98usrmount/* ++ ++base: ++ - modules.d/99base/* ++ ++fs-lib: ++ - modules.d/99fs-lib/* ++ ++img-lib: ++ - modules.d/99img-lib/* ++ ++memstrack: ++ - modules.d/99memstrack/* ++ ++shutdown: ++ - modules.d/99shutdown/* ++ ++squash: ++ - modules.d/99squash/* ++ ++uefi-lib: ++ - modules.d/99uefi-lib/* ++ ++test: ++ - test/* ++ - test/**/* ++ ++dracut: ++ - any: ['!.github/*', '!.mkosi/*', '!install/*', '!examples/*', '!modules.d/*', '.test/*'] + diff --git a/0123.patch b/0123.patch new file mode 100644 index 0000000..1c6c2e7 --- /dev/null +++ b/0123.patch @@ -0,0 +1,21 @@ +From 5da70385bcece0655bed4c408214173de51768ee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 7 Aug 2020 19:16:46 +0000 +Subject: [PATCH] Removing dracut entry not compat with new plugin + +--- + .github/labeler.yml | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/.github/labeler.yml b/.github/labeler.yml +index 61eb79f6..6e232f3f 100644 +--- a/.github/labeler.yml ++++ b/.github/labeler.yml +@@ -294,6 +294,3 @@ uefi-lib: + test: + - test/* + - test/**/* +- +-dracut: +- - any: ['!.github/*', '!.mkosi/*', '!install/*', '!examples/*', '!modules.d/*', '.test/*'] + diff --git a/0124.patch b/0124.patch new file mode 100644 index 0000000..488e5ee --- /dev/null +++ b/0124.patch @@ -0,0 +1,25 @@ +From 74f83fb9f355609121940e4a1d9bb5e73206ea3e Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Tue, 11 Aug 2020 19:55:35 +0200 +Subject: [PATCH] 95nvmf: fix typo in the example documentation + +--- + modules.d/95nvmf/parse-nvmf-boot-connections.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/95nvmf/parse-nvmf-boot-connections.sh b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +index 61c6dec1..0ed53a81 100755 +--- a/modules.d/95nvmf/parse-nvmf-boot-connections.sh ++++ b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +@@ -8,8 +8,8 @@ + # Examples: + # nvmf.hostnqn=nqn.2014-08.org.nvmexpress:uuid:37303738-3034-584d-5137-333230423843 + # nvmf.discover=rdma:192.168.1.3::4420 +-# nvme.discover=tcp:192.168.1.3::4420 +-# nvme.discover=tcp:192.168.1.3 ++# nvmf.discover=tcp:192.168.1.3::4420 ++# nvmf.discover=tcp:192.168.1.3 + # nvmf.discover=fc:auto + # + # Note: FC does autodiscovery, so typically there is no need to + diff --git a/0125.patch b/0125.patch new file mode 100644 index 0000000..0590303 --- /dev/null +++ b/0125.patch @@ -0,0 +1,52 @@ +From f7e924c577cf113360798b1a670c584a3308c73f Mon Sep 17 00:00:00 2001 +From: Frederick Grose +Date: Sun, 9 Aug 2020 00:23:54 -0400 +Subject: [PATCH] dmsquash-live-root: Remove obsolete osmin.img processing. + +osmin.img is no longer used by anaconda or generated by +livemedia-creator. livecd-creator will soon drop it as well. +Removing this code will allow OverlayFS boots to proceed when +osmin.img is present in the .iso image. +--- + modules.d/90dmsquash-live/dmsquash-live-root.sh | 20 -------------------- + 1 file changed, 20 deletions(-) + +diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh +index 6324fe83..d686d255 100755 +--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh ++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh +@@ -268,20 +268,6 @@ do_live_overlay() { + } + # end do_live_overlay() + +-# we might have a genMinInstDelta delta file for anaconda to take advantage of +-if [ -e /run/initramfs/live/${live_dir}/osmin.img ]; then +- OSMINSQFS=/run/initramfs/live/${live_dir}/osmin.img +- # decompress the delta data +- dd if=$OSMINSQFS of=/run/initramfs/osmin.img 2> /dev/null +- OSMIN_SQUASHED_LOOPDEV=$( losetup -f ) +- losetup -r $OSMIN_SQUASHED_LOOPDEV /run/initramfs/osmin.img +- mkdir -m 0755 -p /run/initramfs/squashfs.osmin +- mount -n -t squashfs -o ro $OSMIN_SQUASHED_LOOPDEV /run/initramfs/squashfs.osmin +- OSMIN_LOOPDEV=$( losetup -f ) +- losetup -r $OSMIN_LOOPDEV /run/initramfs/squashfs.osmin/osmin +- umount -l /run/initramfs/squashfs.osmin +-fi +- + # we might have an embedded fs image on squashfs (compressed live) + if [ -e /run/initramfs/live/${live_dir}/${squash_image} ]; then + SQUASHED="/run/initramfs/live/${live_dir}/${squash_image}" +@@ -370,12 +356,6 @@ if [ -n "$FSIMG" ]; then + fi + fi + +-if [ -b "$OSMIN_LOOPDEV" ]; then +- # set up the devicemapper snapshot device, which will merge +- # the normal live fs image, and the delta, into a minimzied fs image +- echo "0 $sz snapshot $BASE_LOOPDEV $OSMIN_LOOPDEV P 8" | dmsetup create --readonly live-osimg-min +-fi +- + if [ -n "$reloadsysrootmountunit" ]; then + eval "$reloadsysrootmountunit" + systemctl daemon-reload + diff --git a/0126.patch b/0126.patch new file mode 100644 index 0000000..d279195 --- /dev/null +++ b/0126.patch @@ -0,0 +1,110 @@ +From fe761330e5db60f19f0ab2d937ea71a5b2438656 Mon Sep 17 00:00:00 2001 +From: mulhern +Date: Wed, 19 Aug 2020 11:11:14 -0400 +Subject: [PATCH] Remove stratis module + +It is obsolete. An approach which does not start the daemon is being worked +on. + +Signed-off-by: mulhern +--- + dracut.spec | 1 - + modules.d/90stratis/module-setup.sh | 33 ------------------------------- + modules.d/90stratis/stratisd-init.service | 13 ------------ + modules.d/90stratis/stratisd-start.sh | 3 --- + modules.d/90stratis/stratisd-stop.sh | 6 ------ + 5 files changed, 56 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index 872c21cf..b1891a2f 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -366,7 +366,6 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %{dracutlibdir}/modules.d/90mdraid + %{dracutlibdir}/modules.d/90multipath + %{dracutlibdir}/modules.d/90nvdimm +-%{dracutlibdir}/modules.d/90stratis + %{dracutlibdir}/modules.d/90ppcmac + %{dracutlibdir}/modules.d/90qemu + %{dracutlibdir}/modules.d/91crypt-gpg +diff --git a/modules.d/90stratis/module-setup.sh b/modules.d/90stratis/module-setup.sh +deleted file mode 100755 +index e13000b4..00000000 +--- a/modules.d/90stratis/module-setup.sh ++++ /dev/null +@@ -1,33 +0,0 @@ +-#!/bin/bash +- +-# called by dracut +-check() { +- require_binaries stratisd-init thin_check thin_repair mkfs.xfs xfs_admin xfs_growfs || return 1 +- return 255 +-} +- +-# called by dracut +-depends() { +- echo dm +- return 0 +-} +- +-# called by dracut +-installkernel() { +- instmods xfs +-} +- +-# called by dracut +-install() { +- +- inst_multiple stratisd-init thin_check thin_repair mkfs.xfs xfs_admin xfs_growfs +- +- if dracut_module_included "systemd"; then +- inst_simple "${moddir}/stratisd-init.service" "${systemdsystemunitdir}/stratisd-init.service" +- systemctl -q --root "$initdir" enable stratisd-init.service +- else +- inst_hook pre-mount 25 "$moddir/stratisd-start.sh" +- inst_hook cleanup 25 "$moddir/stratisd-stop.sh" +- fi +-} +- +diff --git a/modules.d/90stratis/stratisd-init.service b/modules.d/90stratis/stratisd-init.service +deleted file mode 100644 +index 1be2e33b..00000000 +--- a/modules.d/90stratis/stratisd-init.service ++++ /dev/null +@@ -1,13 +0,0 @@ +-[Unit] +-Description=A daemon that manages a pool of block devices to create flexible file systems +-Documentation=man:stratisd(8) +-Before=local-fs-pre.target +-DefaultDependencies=no +- +-[Service] +-Type=simple +-ExecStart=/sbin/stratisd-init --debug +-KillSignal=SIGINT +- +-[Install] +-WantedBy=sysinit.target +diff --git a/modules.d/90stratis/stratisd-start.sh b/modules.d/90stratis/stratisd-start.sh +deleted file mode 100755 +index afcd81fd..00000000 +--- a/modules.d/90stratis/stratisd-start.sh ++++ /dev/null +@@ -1,3 +0,0 @@ +-#!/bin/sh +- +-stratisd-init --debug > /dev/kmsg 2>&1 & +\ No newline at end of file +diff --git a/modules.d/90stratis/stratisd-stop.sh b/modules.d/90stratis/stratisd-stop.sh +deleted file mode 100755 +index f394a843..00000000 +--- a/modules.d/90stratis/stratisd-stop.sh ++++ /dev/null +@@ -1,6 +0,0 @@ +-#!/bin/sh +- +-[ -f /lib/dracut-lib.sh ] && . /lib/dracut-lib.sh +- +-pid=$(pidof stratisd-init) +-[ -n "$pid" ] && kill ${pid} + diff --git a/0127.patch b/0127.patch new file mode 100644 index 0000000..5e6ecf2 --- /dev/null +++ b/0127.patch @@ -0,0 +1,29 @@ +From dae2759e61b557ba646b772be81f5c2a52cef115 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= +Date: Wed, 19 Aug 2020 21:24:17 +0200 +Subject: [PATCH] 95cifs: install new softdeps (sha512, gcm, ccm, aead2) + +--- + modules.d/95cifs/module-setup.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/modules.d/95cifs/module-setup.sh b/modules.d/95cifs/module-setup.sh +index b3747dcc..81db541c 100755 +--- a/modules.d/95cifs/module-setup.sh ++++ b/modules.d/95cifs/module-setup.sh +@@ -25,11 +25,11 @@ depends() { + installkernel() { + instmods cifs ipv6 + # hash algos +- instmods md4 md5 sha256 ++ instmods md4 md5 sha256 sha512 + # ciphers +- instmods aes arc4 des ecb ++ instmods aes arc4 des ecb gcm aead2 + # macs +- instmods hmac cmac ++ instmods hmac cmac ccm + } + + # called by dracut + diff --git a/0128.patch b/0128.patch new file mode 100644 index 0000000..650ed10 --- /dev/null +++ b/0128.patch @@ -0,0 +1,35 @@ +From 31d0b55b86e7e2a52511621d1253109c05fda6f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= +Date: Thu, 20 Aug 2020 17:36:30 +0200 +Subject: [PATCH] 95cifs: pass rootflags to mount + +--- + modules.d/95cifs/cifs-lib.sh | 2 +- + modules.d/95cifs/cifsroot.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/95cifs/cifs-lib.sh b/modules.d/95cifs/cifs-lib.sh +index 8e192041..ab51106c 100755 +--- a/modules.d/95cifs/cifs-lib.sh ++++ b/modules.d/95cifs/cifs-lib.sh +@@ -30,5 +30,5 @@ cifs_to_var() { + if [ ! "$cifsuser" -o ! "$cifspass" ]; then + die "For CIFS support you need to specify a cifsuser and cifspass either in the cifsuser and cifspass commandline parameters or in the root= CIFS URL." + fi +- options="user=$cifsuser,pass=$cifspass" ++ options="user=$cifsuser,pass=$cifspass,$(getarg rootflags=)" + } +diff --git a/modules.d/95cifs/cifsroot.sh b/modules.d/95cifs/cifsroot.sh +index 10f4f3bd..11d362e8 100755 +--- a/modules.d/95cifs/cifsroot.sh ++++ b/modules.d/95cifs/cifsroot.sh +@@ -16,7 +16,7 @@ echo server: $server + echo path: $path + echo options: $options + +-mount.cifs //$server/$path $NEWROOT -o $options && { [ -e /dev/root ] || ln -s null /dev/root ; } ++mount.cifs "//$server/$path" "$NEWROOT" -o "$options" && { [ -e /dev/root ] || ln -s null /dev/root ; } + + # inject new exit_if_exists + echo 'settle_exit_if_exists="--exit-if-exists=/dev/root"; rm -f -- "$job"' > $hookdir/initqueue/cifs.sh + diff --git a/0129.patch b/0129.patch new file mode 100644 index 0000000..3e89876 --- /dev/null +++ b/0129.patch @@ -0,0 +1,50 @@ +From da4c9a950f339f2e87a021f7d060bf7ac07f4f00 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Mon, 6 Jul 2020 14:47:28 +0200 +Subject: [PATCH] 01fips: modprobe failures during manual module loading is not + fatal + +Users might see + +"modprobe: FATAL: Module xyz not found in directory" + +The output from modprobe is semantically wrong in this case and +confuses users. Keep the warning for debugging purposes, but reduce +the severeness. + +It now reads "Module xyz not found in directory" + +Reference: bsc#1169997 +--- + modules.d/01fips/fips.sh | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index 8fba135b..37cde0c0 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -69,6 +69,14 @@ do_rhevh_check() + return 0 + } + ++nonfatal_modprobe() ++{ ++ modprobe $1 2>&1 > /dev/stdout | ++ while read -r line || [ -n "$line" ]; do ++ echo "${line#modprobe: FATAL: }" >&2 ++ done ++} ++ + fips_load_crypto() + { + FIPSMODULES=$(cat /etc/fipsmodules) +@@ -77,7 +85,7 @@ fips_load_crypto() + mv /etc/modprobe.d/fips.conf /etc/modprobe.d/fips.conf.bak + for _module in $FIPSMODULES; do + if [ "$_module" != "tcrypt" ]; then +- if ! modprobe "${_module}" 2>/tmp/fips.modprobe_err; then ++ if ! nonfatal_modprobe "${_module}" 2>/tmp/fips.modprobe_err; then + # check if kernel provides generic algo + _found=0 + while read _k _s _v || [ -n "$_k" ]; do + diff --git a/0130.patch b/0130.patch new file mode 100644 index 0000000..b40ed2d --- /dev/null +++ b/0130.patch @@ -0,0 +1,98 @@ +From e096d861ed8d5956152aa0ba48ca17fb2de6efe0 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Mon, 6 Jul 2020 16:36:42 +0200 +Subject: [PATCH] 01fips: turn info calls into fips_info calls + +systemd lets stdout go to journal only. Usually, this is desired +behavior to ensure that plymouth does not get disrupted. + +However in the 01fips case, the system has to halt when the integrity +check fails to satisfy FIPS requirements. So the user will not be able +to inspect the journal. + +As this is special to the fips module, we introduce a fips_info() which +works like info(), but deviates the output to stderr when running with +systemd. + +Reference: bsc#1164076 +--- + modules.d/01fips/fips.sh | 24 ++++++++++++++++++------ + 1 file changed, 18 insertions(+), 6 deletions(-) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index 37cde0c0..f46da5c6 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -1,5 +1,17 @@ + #!/bin/sh + ++# systemd lets stdout go to journal only, but the system ++# has to halt when the integrity check fails to satisfy FIPS. ++if [ -z "$DRACUT_SYSTEMD" ]; then ++ fips_info() { ++ info "$*" ++ } ++else ++ fips_info() { ++ echo "$*" >&2 ++ } ++fi ++ + mount_boot() + { + boot=$(getarg boot=) +@@ -45,7 +57,7 @@ mount_boot() + [ -e "$boot" ] || return 1 + + mkdir /boot +- info "Mounting $boot as /boot" ++ fips_info "Mounting $boot as /boot" + mount -oro "$boot" /boot || return 1 + elif [ -d "$NEWROOT/boot" ]; then + rm -fr -- /boot +@@ -65,7 +77,7 @@ do_rhevh_check() + warn "HMAC sum mismatch" + return 1 + fi +- info "rhevh_check OK" ++ fips_info "rhevh_check OK" + return 0 + } + +@@ -81,7 +93,7 @@ fips_load_crypto() + { + FIPSMODULES=$(cat /etc/fipsmodules) + +- info "Loading and integrity checking all crypto modules" ++ fips_info "Loading and integrity checking all crypto modules" + mv /etc/modprobe.d/fips.conf /etc/modprobe.d/fips.conf.bak + for _module in $FIPSMODULES; do + if [ "$_module" != "tcrypt" ]; then +@@ -100,7 +112,7 @@ fips_load_crypto() + done + mv /etc/modprobe.d/fips.conf.bak /etc/modprobe.d/fips.conf + +- info "Self testing crypto algorithms" ++ fips_info "Self testing crypto algorithms" + modprobe tcrypt || return 1 + rmmod tcrypt + } +@@ -114,7 +126,7 @@ do_fips() + + KERNEL=$(uname -r) + +- info "Checking integrity of kernel" ++ fips_info "Checking integrity of kernel" + if [ -e "/run/initramfs/live/vmlinuz0" ]; then + do_rhevh_check /run/initramfs/live/vmlinuz0 || return 1 + elif [ -e "/run/initramfs/live/isolinux/vmlinuz0" ]; then +@@ -153,7 +165,7 @@ do_fips() + (cd "${BOOT_IMAGE_HMAC%/*}" && sha512hmac -c "${BOOT_IMAGE_HMAC}") || return 1 + fi + +- info "All initrd crypto checks done" ++ fips_info "All initrd crypto checks done" + + > /tmp/fipsdone + + diff --git a/0131.patch b/0131.patch new file mode 100644 index 0000000..095693f --- /dev/null +++ b/0131.patch @@ -0,0 +1,35 @@ +From 1855efb15af9009c1f6db77c1d9ce012129bcb71 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Tue, 26 Nov 2019 12:29:47 +0100 +Subject: [PATCH] Document initqueue/online hook + +--- + dracut.modules.7.asc | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc +index 81135cff..3c056430 100644 +--- a/dracut.modules.7.asc ++++ b/dracut.modules.7.asc +@@ -93,13 +93,18 @@ udev state. + + ==== Initqueue settled + +-This hooks (initqueue/settled) gets executed every time udev has settled. ++This hook (initqueue/settled) gets executed every time udev has settled. + + ==== Initqueue timeout + +-This hooks (initqueue/timeout) gets executed, when the main loop counter becomes ++This hook (initqueue/timeout) gets executed, when the main loop counter becomes + half of the rd.retry counter. + ++==== Initqueue online ++ ++This hook (initqueue/online) gets executed whenever a network interface comes online ++(that is, once it is up and configured by the configured network module). ++ + ==== Initqueue finished + + This hook (initqueue/finished) is called after udev has settled and + diff --git a/0132.patch b/0132.patch new file mode 100644 index 0000000..e26ec38 --- /dev/null +++ b/0132.patch @@ -0,0 +1,85 @@ +From 3b92d8bf84d8dac57ffc1293f6f5c6d621ddd267 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=89rico=20Rolim?= +Date: Sun, 23 Aug 2020 18:15:32 -0300 +Subject: [PATCH] dracut.sh: fix errors pointed out by shellcheck. + +- use [ ] instead of calling test manually, as most of the script is +doing. + +- use quotes in hostonly_cmdline blocks, specially when dealing with the +conf files, whose names are set by users/system administrators + +- uefi_splash_image was being assigned set to `${dracutsysroot}...`, which +is a variable that doesn't exist. + +- we don't want the conditional to run the output of fsfreeze as +commands. Instead, we just need to know if any of the fsfreeze commands +failed. +--- + dracut.sh | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index c439fa02..fa2388fe 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1731,7 +1731,7 @@ fi + if [[ $do_strip = yes ]] ; then + # Prefer strip from elfutils for package size + declare strip_cmd=$(command -v eu-strip) +- test -z "$strip_cmd" && strip_cmd="strip" ++ [ -z "$strip_cmd" ] && strip_cmd="strip" + + for p in $strip_cmd xargs find; do + if ! type -P $p >/dev/null; then +@@ -1824,7 +1824,7 @@ if [[ $hostonly_cmdline == "yes" ]] ; then + dinfo "Stored kernel commandline:" + for conf in $initdir/etc/cmdline.d/*.conf ; do + [ -e "$conf" ] || continue +- dinfo "$(< $conf)" ++ dinfo "$(< "$conf")" + _stored_cmdline=1 + done + fi +@@ -2004,10 +2004,10 @@ umask 077 + if [[ $uefi = yes ]]; then + if [[ $kernel_cmdline ]]; then + echo -n "$kernel_cmdline" > "$uefi_outdir/cmdline.txt" +- elif [[ $hostonly_cmdline = yes ]] && [ -d $initdir/etc/cmdline.d ];then +- for conf in $initdir/etc/cmdline.d/*.conf ; do ++ elif [[ $hostonly_cmdline = yes ]] && [ -d "$initdir/etc/cmdline.d" ];then ++ for conf in "$initdir"/etc/cmdline.d/*.conf ; do + [ -e "$conf" ] || continue +- printf "%s " "$(< $conf)" >> "$uefi_outdir/cmdline.txt" ++ printf "%s " "$(< "$conf")" >> "$uefi_outdir/cmdline.txt" + done + else + do_print_cmdline > "$uefi_outdir/cmdline.txt" +@@ -2020,7 +2020,7 @@ if [[ $uefi = yes ]]; then + [[ -s $dracutsysrootdir/usr/lib/os-release ]] && uefi_osrelease="$dracutsysrootdir/usr/lib/os-release" + [[ -s $dracutsysrootdir/etc/os-release ]] && uefi_osrelease="$dracutsysrootdir/etc/os-release" + [[ -s "${dracutsysrootdir}${uefi_splash_image}" ]] && \ +- uefi_splash_image="${dracutsysroot}${uefi_splash_image}" || unset uefi_splash_image ++ uefi_splash_image="${dracutsysrootdir}${uefi_splash_image}" || unset uefi_splash_image + + if objcopy \ + ${uefi_osrelease:+--add-section .osrel=$uefi_osrelease --change-section-vma .osrel=0x20000} \ +@@ -2100,7 +2100,7 @@ freeze_ok_for_fstype() { + # and there's no reason to sync, and *definitely* no reason to fsfreeze. + # Another case where this happens is rpm-ostree, which performs its own sync/fsfreeze + # globally. See e.g. https://github.com/ostreedev/ostree/commit/8642ef5ab3fec3ac8eb8f193054852f83a8bc4d0 +-if test -d $dracutsysrootdir/run/systemd/system; then ++if [ -d "$dracutsysrootdir/run/systemd/system" ]; then + if ! sync "$outfile" 2> /dev/null; then + dinfo "dracut: sync operation on newly created initramfs $outfile failed" + exit 1 +@@ -2108,7 +2108,7 @@ if test -d $dracutsysrootdir/run/systemd/system; then + + # use fsfreeze only if we're not writing to / + if [[ "$(stat -c %m -- "$outfile")" != "/" ]] && freeze_ok_for_fstype "$outfile"; then +- if ! $(fsfreeze -f $(dirname "$outfile") 2>/dev/null && fsfreeze -u $(dirname "$outfile") 2>/dev/null); then ++ if ! (fsfreeze -f "$(dirname "$outfile")" 2>/dev/null && fsfreeze -u "$(dirname "$outfile")" 2>/dev/null); then + dinfo "dracut: warning: could not fsfreeze $(dirname "$outfile")" + fi + fi + diff --git a/0133.patch b/0133.patch new file mode 100644 index 0000000..47e2825 --- /dev/null +++ b/0133.patch @@ -0,0 +1,87 @@ +From 497916e13b1e7608f1b2278b0222f216fbcd8846 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=89rico=20Rolim?= +Date: Sun, 23 Aug 2020 18:31:11 -0300 +Subject: [PATCH] dracut.sh: fix some indentation. + +Command level inside conditional and tab/space usage. +--- + dracut.sh | 38 +++++++++++++++++++------------------- + 1 file changed, 19 insertions(+), 19 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index fa2388fe..4d83d3ab 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -37,7 +37,7 @@ readonly dracut_cmd="$(readlink -f $0)" + set -o pipefail + + usage() { +- [[ $sysroot_l ]] && dracutsysrootdir="$sysroot_l" ++ [[ $sysroot_l ]] && dracutsysrootdir="$sysroot_l" + [[ $dracutbasedir ]] || dracutbasedir=$dracutsysrootdir/usr/lib/dracut + if [[ -f $dracutbasedir/dracut-version.sh ]]; then + . $dracutbasedir/dracut-version.sh +@@ -436,20 +436,20 @@ unset append_args_l + unset rebuild_file + while : + do +- if [ "$1" == "--" ]; then +- shift; break +- fi +- if [ "$1" == "--rebuild" ]; then +- append_args_l="yes" ++ if [ "$1" == "--" ]; then ++ shift; break ++ fi ++ if [ "$1" == "--rebuild" ]; then ++ append_args_l="yes" + rebuild_file=$2 + if [ ! -e $rebuild_file ]; then + echo "Image file '$rebuild_file', for rebuild, does not exist!" + exit 1 + fi + abs_rebuild_file=$(readlink -f "$rebuild_file") && rebuild_file="$abs_rebuild_file" +- shift; continue +- fi +- shift ++ shift; continue ++ fi ++ shift + done + + # get output file name and kernel version from command line arguments +@@ -944,15 +944,15 @@ case "${drivers_dir}" in + ''|*lib/modules/${kernel}|*lib/modules/${kernel}/) ;; + *) + [[ "$DRACUT_KMODDIR_OVERRIDE" ]] || { +- printf "%s\n" "dracut: -k/--kmoddir path must contain \"lib/modules\" as a parent of your kernel module directory," +- printf "%s\n" "dracut: or modules may not be placed in the correct location inside the initramfs." +- printf "%s\n" "dracut: was given: ${drivers_dir}" +- printf "%s\n" "dracut: expected: $(dirname ${drivers_dir})/lib/modules/${kernel}" +- printf "%s\n" "dracut: Please move your modules into the correct directory structure and pass the new location," +- printf "%s\n" "dracut: or set DRACUT_KMODDIR_OVERRIDE=1 to ignore this check." +- exit 1 +- } +- ;; ++ printf "%s\n" "dracut: -k/--kmoddir path must contain \"lib/modules\" as a parent of your kernel module directory," ++ printf "%s\n" "dracut: or modules may not be placed in the correct location inside the initramfs." ++ printf "%s\n" "dracut: was given: ${drivers_dir}" ++ printf "%s\n" "dracut: expected: $(dirname ${drivers_dir})/lib/modules/${kernel}" ++ printf "%s\n" "dracut: Please move your modules into the correct directory structure and pass the new location," ++ printf "%s\n" "dracut: or set DRACUT_KMODDIR_OVERRIDE=1 to ignore this check." ++ exit 1 ++ } ++ ;; + esac + + readonly TMPDIR="$(realpath -e "$tmpdir")" +@@ -1993,7 +1993,7 @@ fi + + if (( maxloglvl >= 5 )) && (( verbosity_mod_l >= 0 )); then + if [[ $allowlocal ]]; then +- "$dracutbasedir/lsinitrd.sh" "${DRACUT_TMPDIR}/initramfs.img"| ddebug ++ "$dracutbasedir/lsinitrd.sh" "${DRACUT_TMPDIR}/initramfs.img"| ddebug + else + lsinitrd "${DRACUT_TMPDIR}/initramfs.img"| ddebug + fi + diff --git a/0134.patch b/0134.patch new file mode 100644 index 0000000..8a50ad6 --- /dev/null +++ b/0134.patch @@ -0,0 +1,85 @@ +From d795211778faa0a56fea2c0adc4e8a3e67392b18 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 10:33:50 +0000 +Subject: [PATCH] Adding code of conduct + +--- + .github/CODE_OF_CONDUCT.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++ + README.md | 1 + + 2 files changed, 57 insertions(+) + +diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md +new file mode 100644 +index 00000000..50ed1730 +--- /dev/null ++++ b/.github/CODE_OF_CONDUCT.md +@@ -0,0 +1,56 @@ ++# Dracut Code of Conduct ++ ++This code of conduct outlines our expectations for participants within the Dracut community, as well as steps for reporting unacceptable behavior. ++We are committed to providing a welcoming and inspiring community for all and expect our code of conduct to be honored. ++Anyone who violates this code of conduct may be banned from the community. ++ ++## Our Pledge ++ ++We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ++ ++We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ++ ++## Our Standards ++ ++Examples of behavior that contributes to a positive environment for our community include: ++ ++* Demonstrating empathy and kindness toward other people ++* Being respectful of differing opinions, viewpoints, and experiences ++* Giving and gracefully accepting constructive feedback ++* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience ++* Focusing on what is best not just for us as individuals, but for the overall community ++ ++Examples of unacceptable behavior include: ++ ++* The use of sexualized language or imagery, and sexual attention or advances of any kind ++* Trolling, insulting or derogatory comments, and personal or political attacks ++* Public or private harassment ++* Publishing others’ private information, such as a physical or email address, without their explicit permission ++* Other conduct which could reasonably be considered inappropriate in a professional setting ++ ++## Our Responsibilities ++ ++Project maintainers are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. ++ ++Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ++ ++## Scope ++ ++This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ++ ++## Enforcement ++ ++Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainer responsible for enforcement Harald Hoyer . ++All complaints will be reviewed and investigated promptly and fairly and will result in a response that is deemed necessary and appropriate to the circumstances. ++Project maintainers are obligated to respect the privacy and security of the reporter of any incident. ++Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ++ ++## Attribution ++ ++This Code of Conduct is adapted from the [Contributor Covenant][homepage], ++version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html ++ ++[homepage]: https://www.contributor-covenant.org ++ ++For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. ++Translations are available at https://www.contributor-covenant.org/translations. +diff --git a/README.md b/README.md +index 0ab54ea6..1932da4d 100644 +--- a/README.md ++++ b/README.md +@@ -3,6 +3,7 @@ dracut + + dracut is an event driven initramfs infrastructure. + ++[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](code_of_conduct.md) + [![Build Status](https://travis-ci.org/dracutdevs/dracut.svg?branch=master)](https://travis-ci.org/dracutdevs/dracut) + [![Fedora-31](https://github.com/dracutdevs/dracut/workflows/Fedora-31/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-31) + [![Fedora-32](https://github.com/dracutdevs/dracut/workflows/Fedora-32/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-32) + diff --git a/0135.patch b/0135.patch new file mode 100644 index 0000000..5f38e90 --- /dev/null +++ b/0135.patch @@ -0,0 +1,26 @@ +From fece5bfcac527b6695ca04840a1a154c283e4063 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 11:47:06 +0000 +Subject: [PATCH] Adding a pull request template + +--- + .github/pull_request_template.md | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md +new file mode 100644 +index 00000000..ef281c3d +--- /dev/null ++++ b/.github/pull_request_template.md +@@ -0,0 +1,10 @@ ++This pull request changes... ++ ++## Changes ++ ++## Checklist ++- [ ] I have tested it locally ++- [ ] I have reviewed and updated any documentation if relevant ++- [ ] I am providing new code and test(s) for it ++ ++Fixes # + diff --git a/0136.patch b/0136.patch new file mode 100644 index 0000000..112b4e2 --- /dev/null +++ b/0136.patch @@ -0,0 +1,24 @@ +From b7a7735c1d83ade0e748d336c8ab1a569f431107 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tomasz=20Pawe=C5=82=20Gajc?= +Date: Wed, 26 Aug 2020 11:19:24 +0200 +Subject: [PATCH] Do not start inside container + +Host should take care of good entropy pool +#791 +--- + modules.d/06rngd/rngd.service | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/06rngd/rngd.service b/modules.d/06rngd/rngd.service +index 570fbedb..dd5374d7 100644 +--- a/modules.d/06rngd/rngd.service ++++ b/modules.d/06rngd/rngd.service +@@ -2,6 +2,7 @@ + Description=Hardware RNG Entropy Gatherer Daemon + DefaultDependencies=no + Before=systemd-udevd.service ++ConditionVirtualization=!container + + [Service] + ExecStart=/usr/sbin/rngd -f + diff --git a/0137.patch b/0137.patch new file mode 100644 index 0000000..532328f --- /dev/null +++ b/0137.patch @@ -0,0 +1,42 @@ +From cd1a0025120c60be1a1da0a1fe0d566671c667d7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 16:02:20 +0000 +Subject: [PATCH] Adding a bug report template + +--- + .github/ISSUE_TEMPLATE/bug_report.md | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md +new file mode 100644 +index 00000000..c63bc5ba +--- /dev/null ++++ b/.github/ISSUE_TEMPLATE/bug_report.md +@@ -0,0 +1,26 @@ ++--- ++name: \U0001F41B Bug report ++about: A report of an error in a recent Dracut version ++labels: 'bug' ++--- ++ ++**Describe the bug** ++A clear and concise description of what the error is. ++ ++**Distribution used** ++Which distribution was this behaviour seen in? ++ ++**Dracut version** ++Which dracut version was this behaviour seen in? ++ ++**Init system** ++Which init system is being used? ++ ++**To Reproduce** ++Steps or code to reproduce the behavior. ++ ++**Expected behavior** ++A clear and concise description of what you expected to happen. ++ ++**Additional context** ++Add any other context you like about the problem here. + diff --git a/0138.patch b/0138.patch new file mode 100644 index 0000000..d777cc5 --- /dev/null +++ b/0138.patch @@ -0,0 +1,24 @@ +From 455c5dbd35adda783cd34b0377f9cd52eab07d46 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 16:02:40 +0000 +Subject: [PATCH] Adding a feature request template + +--- + .github/ISSUE_TEMPLATE/feature_request.md | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md +new file mode 100644 +index 00000000..84347563 +--- /dev/null ++++ b/.github/ISSUE_TEMPLATE/feature_request.md +@@ -0,0 +1,8 @@ ++--- ++name: \U0002728 Feature Request ++about: A request for enhancement in Dracut ++labels: 'enhancement' ++--- ++ ++**Describe the enhancement** ++A clear and concise description of what the enhancement is that you would like to see. + diff --git a/0139.patch b/0139.patch new file mode 100644 index 0000000..8a0ad83 --- /dev/null +++ b/0139.patch @@ -0,0 +1,24 @@ +From 0132527b8f377795287542d1ddfeee2a690a7782 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 16:03:37 +0000 +Subject: [PATCH] Adding documentation template + +--- + .github/ISSUE_TEMPLATE/documentation.md | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md +new file mode 100644 +index 00000000..7efadfaf +--- /dev/null ++++ b/.github/ISSUE_TEMPLATE/documentation.md +@@ -0,0 +1,8 @@ ++--- ++name: \U0001F4D6 Documentation ++about: Suggest an improvement for documentation in Dracut ++labels: 'documents' ++--- ++ ++**Describe the documentation** ++A clear and concise description of what should be better documented. + diff --git a/0140.patch b/0140.patch new file mode 100644 index 0000000..b0be6cd --- /dev/null +++ b/0140.patch @@ -0,0 +1,19 @@ +From de2712775286faa0f37b245811f905d50632f117 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 16:21:08 +0000 +Subject: [PATCH] Adding security policy + +--- + .github/SECURITY.md | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/.github/SECURITY.md b/.github/SECURITY.md +new file mode 100644 +index 00000000..ea909b51 +--- /dev/null ++++ b/.github/SECURITY.md +@@ -0,0 +1,3 @@ ++Security is very important to us. If you discover any issue regarding security, we'd appreciate a non-public disclosure of ++the information, so please disclose the information responsibly by sending an email to Harald Hoyer harald@redhat.com and not by creating a GitHub issue. ++We will respond swiftly to fix verifiable security issues with the disclosure being coordinated with distributions and relevant security teams. + diff --git a/0141.patch b/0141.patch new file mode 100644 index 0000000..7c0e531 --- /dev/null +++ b/0141.patch @@ -0,0 +1,45 @@ +From d2b3289aa5f047e03ca2c4e103bef844a2f0d0d2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 17:11:41 +0000 +Subject: [PATCH] Fix Unicode + +--- + .github/ISSUE_TEMPLATE/bug_report.md | 2 +- + .github/ISSUE_TEMPLATE/documentation.md | 2 +- + .github/ISSUE_TEMPLATE/feature_request.md | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md +index c63bc5ba..d57b92ab 100644 +--- a/.github/ISSUE_TEMPLATE/bug_report.md ++++ b/.github/ISSUE_TEMPLATE/bug_report.md +@@ -1,5 +1,5 @@ + --- +-name: \U0001F41B Bug report ++name: "\U0001F41B Bug report" + about: A report of an error in a recent Dracut version + labels: 'bug' + --- +diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md +index 7efadfaf..e3501ccb 100644 +--- a/.github/ISSUE_TEMPLATE/documentation.md ++++ b/.github/ISSUE_TEMPLATE/documentation.md +@@ -1,5 +1,5 @@ + --- +-name: \U0001F4D6 Documentation ++name: "\U0001F4D6 Documentation" + about: Suggest an improvement for documentation in Dracut + labels: 'documents' + --- +diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md +index 84347563..987e2f8d 100644 +--- a/.github/ISSUE_TEMPLATE/feature_request.md ++++ b/.github/ISSUE_TEMPLATE/feature_request.md +@@ -1,5 +1,5 @@ + --- +-name: \U0002728 Feature Request ++name: "\U0002728 Feature Request" + about: A request for enhancement in Dracut + labels: 'enhancement' + --- + diff --git a/0142.patch b/0142.patch new file mode 100644 index 0000000..9f37907 --- /dev/null +++ b/0142.patch @@ -0,0 +1,35 @@ +From ff78577d3f405a2066692cc67a8e5b1d30d7d3e0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 17:36:35 +0000 +Subject: [PATCH] Fix Unicode and dracut install labeler + +--- + .github/ISSUE_TEMPLATE/feature_request.md | 2 +- + .github/labeler.yml | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md +index 987e2f8d..1772c237 100644 +--- a/.github/ISSUE_TEMPLATE/feature_request.md ++++ b/.github/ISSUE_TEMPLATE/feature_request.md +@@ -1,5 +1,5 @@ + --- +-name: "\U0002728 Feature Request" ++name: "\U00002728 Feature Request" + about: A request for enhancement in Dracut + labels: 'enhancement' + --- +diff --git a/.github/labeler.yml b/.github/labeler.yml +index 6e232f3f..71d88f01 100644 +--- a/.github/labeler.yml ++++ b/.github/labeler.yml +@@ -8,7 +8,7 @@ github: + - .github/* + - .github/**/* + +-dracut install: ++dracut-install: + - install/* + - install/**/* + + diff --git a/0143.patch b/0143.patch new file mode 100644 index 0000000..66ca5b4 --- /dev/null +++ b/0143.patch @@ -0,0 +1,23 @@ +From d418e292e3f15e4ca88870265229282a631e3df7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= +Date: Fri, 28 Aug 2020 17:57:45 +0000 +Subject: [PATCH] Fix CoC URL + +--- + README.md | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/README.md b/README.md +index 1932da4d..2c08b7b3 100644 +--- a/README.md ++++ b/README.md +@@ -3,7 +3,7 @@ dracut + + dracut is an event driven initramfs infrastructure. + +-[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](code_of_conduct.md) ++[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](.github/CODE_OF_CONDUCT.md) + [![Build Status](https://travis-ci.org/dracutdevs/dracut.svg?branch=master)](https://travis-ci.org/dracutdevs/dracut) + [![Fedora-31](https://github.com/dracutdevs/dracut/workflows/Fedora-31/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-31) + [![Fedora-32](https://github.com/dracutdevs/dracut/workflows/Fedora-32/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-32) + diff --git a/0144.patch b/0144.patch new file mode 100644 index 0000000..b69b697 --- /dev/null +++ b/0144.patch @@ -0,0 +1,53 @@ +From ff2d8bdfb3a56d97bcac9750ff16c3437a96cbe7 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Mon, 17 Aug 2020 15:46:17 +0200 +Subject: [PATCH] dracut.sh: Add --version + +--- + dracut.sh | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/dracut.sh b/dracut.sh +index 4d83d3ab..2f2fadd1 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -242,6 +242,7 @@ Creates initial ramdisk images for preloading modules + --kernel-image [FILE] location of the kernel image + --regenerate-all Regenerate all initramfs images at the default location + for the kernel versions found on the system ++ --version Display version + + If [LIST] has multiple arguments, then you have to put these in quotes. + +@@ -252,6 +253,14 @@ For example: + EOF + } + ++long_version() { ++ [[ $dracutbasedir ]] || dracutbasedir=$dracutsysrootdir/usr/lib/dracut ++ if [[ -f $dracutbasedir/dracut-version.sh ]]; then ++ . $dracutbasedir/dracut-version.sh ++ fi ++ echo "dracut $DRACUT_VERSION" ++} ++ + # Fills up host_devs stack variable and makes sure there are no duplicates + push_host_devs() { + local _dev +@@ -416,6 +425,7 @@ rearrange_params() + --long no-hostonly-i18n \ + --long hostonly-i18n \ + --long no-machineid \ ++ --long version \ + -- "$@") + + if (( $? != 0 )); then +@@ -616,6 +626,7 @@ while :; do + kernel_image_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;; + --no-machineid) + machine_id_l="no";; ++ --version) long_version; exit 1 ;; + --) shift; break;; + + *) # should not even reach this point + diff --git a/0145.patch b/0145.patch new file mode 100644 index 0000000..62f2a82 --- /dev/null +++ b/0145.patch @@ -0,0 +1,24 @@ +From a5372b8ba85bc70c68771feab9504ebd5a336625 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Fri, 28 Aug 2020 17:12:27 +0200 +Subject: [PATCH] Add --version to man page + +--- + dracut.8.asc | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/dracut.8.asc b/dracut.8.asc +index a873611e..b99019e5 100644 +--- a/dracut.8.asc ++++ b/dracut.8.asc +@@ -265,6 +265,9 @@ example: + **-v, --verbose**:: + increase verbosity level (default is info(4)) + ++**--version**:: ++ display version and exit ++ + **-q, --quiet**:: decrease verbosity level (default is info(4)) + + **-c, --conf** __:: + diff --git a/0146.patch b/0146.patch new file mode 100644 index 0000000..c2ed88c --- /dev/null +++ b/0146.patch @@ -0,0 +1,23 @@ +From f87605e3ab2955e7b50d34ba0462332cb1f079d8 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Mon, 13 Jul 2020 08:51:33 +0200 +Subject: [PATCH] dracut.cmdline.7.asc: fix typo + +--- + dracut.cmdline.7.asc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index 751f5276..c37d427e 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -607,7 +607,7 @@ interface name. Better name it "bootnet" or "bluesocket". + boolean, bring up network even without netroot set + + **vlan=**____:____:: +- Setup vlan device named on . ++ Setup vlan device named on . + We support the four styles of vlan names: VLAN_PLUS_VID (vlan0005), + VLAN_PLUS_VID_NO_PAD (vlan5), DEV_PLUS_VID (eth0.0005), + DEV_PLUS_VID_NO_PAD (eth0.5) + diff --git a/0147.patch b/0147.patch new file mode 100644 index 0000000..ec7b3dd --- /dev/null +++ b/0147.patch @@ -0,0 +1,24 @@ +From d76e9ad5d7b16edb3c544ed3888640bea0efbf72 Mon Sep 17 00:00:00 2001 +From: GuoChuang +Date: Mon, 24 Aug 2020 14:03:48 +0800 +Subject: [PATCH] fix graphics startup failure with the rhgb paramter in + CentOS8.2 + +--- + modules.d/50drm/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh +index 08cfa45b..c69b2cfa 100755 +--- a/modules.d/50drm/module-setup.sh ++++ b/modules.d/50drm/module-setup.sh +@@ -33,7 +33,7 @@ installkernel() { + if [[ $hostonly ]]; then + for i in /sys/bus/{pci/devices,virtio/devices,soc/devices/soc?}/*/modalias; do + [[ -e $i ]] || continue +- if hostonly="" dracut_instmods --silent -s "drm_crtc_init" -S "iw_handler_get_spy" $(<$i); then ++ if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register" -S "iw_handler_get_spy" $(<$i); then + if strstr "$(modinfo -F filename $(<$i) 2>/dev/null)" radeon.ko; then + hostonly='' instmods amdkfd + fi + diff --git a/0148.patch b/0148.patch new file mode 100644 index 0000000..f8baa5a --- /dev/null +++ b/0148.patch @@ -0,0 +1,158 @@ +From 39d90012a652fa4d9d2534d0168ddad8cacec248 Mon Sep 17 00:00:00 2001 +From: Kairui Song +Date: Thu, 10 Sep 2020 02:18:02 +0800 +Subject: [PATCH] 04watchdog: split the watchdog module install + +In some cases, user only want to include the watchdog module, not the +wdctl or any other userspace helper. For example, systemd have a +RebootWatchdogSec option that use watchdog to prevent reboot hangs. And +it can help prevent machines hangs when reboot directly within the +initramfs stage. So split the module installation to a standlone module. + +Also when watchdog-module get included, install driver for all loaded +watchdog instaed of only install driver for active watchdog. Both +watchdog and watchdog-module return 255 in check(), so it's enabled only +when manually included, the watchdog may get configured/activated later. + +Signed-off-by: Kairui Song +--- + modules.d/04watchdog-modules/module-setup.sh | 61 ++++++++++++++++++++++++++++ + modules.d/04watchdog/module-setup.sh | 50 +---------------------- + 2 files changed, 63 insertions(+), 48 deletions(-) + +diff --git a/modules.d/04watchdog-modules/module-setup.sh b/modules.d/04watchdog-modules/module-setup.sh +new file mode 100755 +index 00000000..5fbd769b +--- /dev/null ++++ b/modules.d/04watchdog-modules/module-setup.sh +@@ -0,0 +1,61 @@ ++#!/bin/bash ++ ++# called by dracut ++check() { ++ return 255 ++} ++ ++# called by dracut ++depends() { ++ return 0 ++} ++ ++# called by dracut ++install() { ++ return 0 ++} ++ ++installkernel() { ++ local -A _drivers ++ local _alldrivers _wdtdrv _wdtppath _dir ++ [[ -d /sys/class/watchdog/ ]] || return ++ for _dir in /sys/class/watchdog/*; do ++ [[ -d "$_dir" ]] || continue ++ [[ -f "$_dir/state" ]] || continue ++ # device/modalias will return driver of this device ++ _wdtdrv=$(< "$_dir/device/modalias") ++ # There can be more than one module represented by same ++ # modalias. Currently load all of them. ++ # TODO: Need to find a way to avoid any unwanted module ++ # represented by modalias ++ _wdtdrv=$(modprobe --set-version "$kernel" -R $_wdtdrv 2>/dev/null) ++ if [[ $_wdtdrv ]]; then ++ instmods $_wdtdrv ++ for i in $_wdtdrv; do ++ _drivers[$i]=1 ++ done ++ fi ++ # however in some cases, we also need to check that if there is ++ # a specific driver for the parent bus/device. In such cases ++ # we also need to enable driver for parent bus/device. ++ _wdtppath=$(readlink -f "$_dir/device") ++ while [[ -d "$_wdtppath" ]] && [[ "$_wdtppath" != "/sys" ]]; do ++ _wdtppath=$(readlink -f "$_wdtppath/..") ++ [[ -f "$_wdtppath/modalias" ]] || continue ++ ++ _wdtdrv=$(< "$_wdtppath/modalias") ++ _wdtdrv=$(modprobe --set-version "$kernel" -R $_wdtdrv 2>/dev/null) ++ if [[ $_wdtdrv ]]; then ++ instmods $_wdtdrv ++ for i in $_wdtdrv; do ++ _drivers[$i]=1 ++ done ++ fi ++ done ++ done ++ # ensure that watchdog module is loaded as early as possible ++ _alldrivers="${!_drivers[*]}" ++ [[ $_alldrivers ]] && echo "rd.driver.pre=${_alldrivers// /,}" > ${initdir}/etc/cmdline.d/00-watchdog.conf ++ ++ return 0 ++} +diff --git a/modules.d/04watchdog/module-setup.sh b/modules.d/04watchdog/module-setup.sh +index 7566d651..15bcd897 100755 +--- a/modules.d/04watchdog/module-setup.sh ++++ b/modules.d/04watchdog/module-setup.sh +@@ -7,7 +7,7 @@ check() { + + # called by dracut + depends() { +- return 0 ++ return "watchdog-modules" + } + + # called by dracut +@@ -27,53 +27,7 @@ install() { + inst_hook cleanup 00 "$moddir/watchdog.sh" + inst_hook cleanup 99 "$moddir/watchdog.sh" + fi ++ + inst_hook emergency 02 "$moddir/watchdog-stop.sh" + inst_multiple -o wdctl + } +- +-installkernel() { +- local -A _drivers +- local _alldrivers _active _wdtdrv _wdtppath _dir +- [[ -d /sys/class/watchdog/ ]] || return +- for _dir in /sys/class/watchdog/*; do +- [[ -d "$_dir" ]] || continue +- [[ -f "$_dir/state" ]] || continue +- _active=$(< "$_dir/state") +- ! [[ $hostonly ]] || [[ "$_active" = "active" ]] || continue +- # device/modalias will return driver of this device +- _wdtdrv=$(< "$_dir/device/modalias") +- # There can be more than one module represented by same +- # modalias. Currently load all of them. +- # TODO: Need to find a way to avoid any unwanted module +- # represented by modalias +- _wdtdrv=$(modprobe --set-version "$kernel" -R $_wdtdrv 2>/dev/null) +- if [[ $_wdtdrv ]]; then +- instmods $_wdtdrv +- for i in $_wdtdrv; do +- _drivers[$i]=1 +- done +- fi +- # however in some cases, we also need to check that if there is +- # a specific driver for the parent bus/device. In such cases +- # we also need to enable driver for parent bus/device. +- _wdtppath=$(readlink -f "$_dir/device") +- while [[ -d "$_wdtppath" ]] && [[ "$_wdtppath" != "/sys" ]]; do +- _wdtppath=$(readlink -f "$_wdtppath/..") +- [[ -f "$_wdtppath/modalias" ]] || continue +- +- _wdtdrv=$(< "$_wdtppath/modalias") +- _wdtdrv=$(modprobe --set-version "$kernel" -R $_wdtdrv 2>/dev/null) +- if [[ $_wdtdrv ]]; then +- instmods $_wdtdrv +- for i in $_wdtdrv; do +- _drivers[$i]=1 +- done +- fi +- done +- done +- # ensure that watchdog module is loaded as early as possible +- _alldrivers="${!_drivers[*]}" +- [[ $_alldrivers ]] && echo "rd.driver.pre=${_alldrivers// /,}" > ${initdir}/etc/cmdline.d/00-watchdog.conf +- +- return 0 +-} + diff --git a/0149.patch b/0149.patch new file mode 100644 index 0000000..dceb89b --- /dev/null +++ b/0149.patch @@ -0,0 +1,226 @@ +From 37502d4c8974370a38496f44e279d56061fe67c3 Mon Sep 17 00:00:00 2001 +From: Antz +Date: Sat, 29 Aug 2020 14:54:19 +0200 +Subject: [PATCH] 90crypt: make `rd.luks.key` usable with encrypted keydev. + +Introduce prefix `keysource:` for the values of `rd.luks.partuuid`, +`rd.luks.serial` and `rd.luks.uuid`. +If specified, ask for passphrase instead of waiting for keydevs to come +online. +--- + dracut.cmdline.7.asc | 45 ++++++++++++++++++++++++++++++++++++++ + modules.d/90crypt/cryptroot-ask.sh | 18 +++++++++++++-- + modules.d/90crypt/parse-crypt.sh | 43 ++++++++++++++++++++++++++---------- + 3 files changed, 92 insertions(+), 14 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index c37d427e..dbbbfed0 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -302,6 +302,8 @@ crypto LUKS + The comparisons also matches, if __ is only the beginning of the + LUKS UUID, so you don't have to specify the full UUID. + This parameter can be specified multiple times. ++ __ may be prefixed by the keyword `keysource:`, see ++ _rd.luks.key_ below. + + **rd.luks.allow-discards=**____:: + Allow using of discards (TRIM) requests for LUKS partitions with the given +@@ -397,6 +399,49 @@ head -32c /dev/urandom > rootkey.key + cryptsetup --batch-mode --key-file rootkey.key \ + luksFormat /dev/sda47 + -- ++ ++You can also use regular key files on an encrypted _keydev_. ++ ++Compared to using GPG encrypted keyfiles on an unencrypted ++device this provides the following advantages: ++ ++- you can unlock your disk(s) using multiple passphrases ++- better security by not loosing the key stretching mechanism ++ ++To use an encrypted _keydev_ you *must* ensure that it becomes ++available by using the keyword `keysource`, e.g. ++`rd.luks.uuid=keysource:aaaa` ++_aaaa_ being the uuid of the encrypted _keydev_. ++ ++Example: ++ ++Lets assume you have three disks _A_, _B_ and _C_ with the uuids ++_aaaa_, _bbbb_ and _cccc_. + ++You want to unlock _A_ and _B_ using keyfile _keyfile_. + ++The unlocked volumes be _A'_, _B'_ and _C'_ with the uuids ++_AAAA_, _BBBB_ and _CCCC_. + ++_keyfile_ is saved on _C'_ as _/keyfile_. ++ ++One luks keyslot of each _A_, _B_ and _C_ is setup with a ++passphrase. + ++Another luks keyslot of each _A_ and _B_ is setup with _keyfile_. ++ ++To boot this configuration you could use: ++[listing] ++-- ++rd.luks.uuid=aaaa ++rd.luks.uuid=bbbb ++rd.luks.uuid=keysource:cccc ++rd.luks.key=/keyfile:UUID=CCCC ++-- ++Dracut asks for the passphrase for _C_ and uses the ++keyfile to unlock _A_ and _B_. + ++If getting the passphrase for _C_ fails it falls back to ++asking for the passphrases for _A_ and _B_. ++ ++If you want _C'_ to stay unlocked, specify a luks name for ++it, e.g. `rd.luks.name=cccc=mykeys`, otherwise it gets closed ++when not needed anymore. + =============================== + + MD RAID +diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh +index 97047ae9..19d2bcb4 100755 +--- a/modules.d/90crypt/cryptroot-ask.sh ++++ b/modules.d/90crypt/cryptroot-ask.sh +@@ -20,8 +20,11 @@ fi + # default luksname - luks-UUID + luksname=$2 + ++# is_keysource - ask for passphrase even if a rd.luks.key argument is set ++is_keysource=${3:-0} ++ + # number of tries +-numtries=${3:-10} ++numtries=${4:-10} + + # TODO: improve to support what cmdline does + if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -d -n rd_NO_CRYPTTAB; then +@@ -137,6 +140,8 @@ if [ -n "$luksfile" -a "$luksfile" != "none" -a -e "$luksfile" ]; then + if cryptsetup --key-file "$luksfile" $cryptsetupopts luksOpen "$device" "$luksname"; then + ask_passphrase=0 + fi ++elif [ "$is_keysource" -ne 0 ]; then ++ info "Asking for passphrase because $device is a keysource." + else + while [ -n "$(getarg rd.luks.key)" ]; do + if tmp=$(getkey /tmp/luks.keys $device); then +@@ -151,7 +156,7 @@ else + info "No key found for $device. Will try $numtries time(s) more later." + initqueue --unique --onetime --settled \ + --name cryptroot-ask-$luksname \ +- $(command -v cryptroot-ask) "$device" "$luksname" "$(($numtries-1))" ++ $(command -v cryptroot-ask) "$device" "$luksname" "$is_keysource" "$(($numtries-1))" + exit 0 + fi + unset tmp +@@ -178,6 +183,15 @@ if [ $ask_passphrase -ne 0 ]; then + unset _timeout + fi + ++if [ "$is_keysource" -ne 0 -a ${luksname##luks-} != "$luksname" ]; then ++ luks_close="$(command -v cryptsetup) close" ++ { ++ printf -- '[ -e /dev/mapper/%s ] && ' "$luksname" ++ printf -- '%s "%s"\n' "$luks_close" "$luksname" ++ } >> "$hookdir/cleanup/31-crypt-keysource.sh" ++ unset luks_close ++fi ++ + unset device luksname luksfile + + # mark device as asked +diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh +index f6911cc8..4e899fed 100755 +--- a/modules.d/90crypt/parse-crypt.sh ++++ b/modules.d/90crypt/parse-crypt.sh +@@ -49,6 +49,12 @@ else + if [ -n "$PARTUUID" ]; then + for uuid in $PARTUUID; do + ++ is_keysource=0 ++ _uuid=$uuid ++ uuid=${uuid#keysource:} ++ [ $uuid != $_uuid ] && is_keysource=1 ++ unset _uuid ++ + uuid=${uuid##luks-} + if luksname=$(_cryptgetargsname "rd.luks.name=$uuid="); then + luksname="${luksname#$uuid=}" +@@ -61,7 +67,7 @@ else + printf -- 'ENV{ID_PART_ENTRY_UUID}=="*%s*", ' "$uuid" + printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)" + printf -- '--name cryptroot-ask-%%k %s ' "$(command -v cryptroot-ask)" +- printf -- '$env{DEVNAME} %s %s"\n' "$luksname" "$tout" ++ printf -- '$env{DEVNAME} %s %s"\n' "$luksname" "$is_keysource" "$tout" + } >> /etc/udev/rules.d/70-luks.rules.new + else + luksname=$(dev_unit_name "$luksname") +@@ -81,6 +87,12 @@ else + elif [ -n "$SERIAL" ]; then + for serialid in $SERIAL; do + ++ is_keysource=0 ++ _serialid=$serialid ++ serialid=${serialid#keysource:} ++ [ $serialid != $_serialid ] && is_keysource=1 ++ unset _serialid ++ + serialid=${serialid##luks-} + if luksname=$(_cryptgetargsname "rd.luks.name=$serialid="); then + luksname="${luksname#$serialid=}" +@@ -93,7 +105,7 @@ else + printf -- 'ENV{ID_SERIAL_SHORT}=="*%s*", ' "$serialid" + printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)" + printf -- '--name cryptroot-ask-%%k %s ' "$(command -v cryptroot-ask)" +- printf -- '$env{DEVNAME} %s %s"\n' "$luksname" "$tout" ++ printf -- '$env{DEVNAME} %s %s"\n' "$luksname" "$is_keysource" "$tout" + } >> /etc/udev/rules.d/70-luks.rules.new + else + luksname=$(dev_unit_name "$luksname") +@@ -113,6 +125,12 @@ else + elif [ -n "$LUKS" ]; then + for luksid in $LUKS; do + ++ is_keysource=0 ++ _luksid=$luksid ++ luksid=${luksid#keysource:} ++ [ $luksid != $_luksid ] && is_keysource=1 ++ unset _luksid ++ + luksid=${luksid##luks-} + if luksname=$(_cryptgetargsname "rd.luks.name=$luksid="); then + luksname="${luksname#$luksid=}" +@@ -126,7 +144,7 @@ else + printf -- 'ENV{ID_FS_UUID}=="*%s*", ' "$luksid" + printf -- 'RUN+="%s --settled --unique --onetime ' "$(command -v initqueue)" + printf -- '--name cryptroot-ask-%%k %s ' "$(command -v cryptroot-ask)" +- printf -- '$env{DEVNAME} %s %s"\n' "$luksname" "$tout" ++ printf -- '$env{DEVNAME} %s %s %s"\n' "$luksname" "$is_keysource" "$tout" + } >> /etc/udev/rules.d/70-luks.rules.new + else + luksname=$(dev_unit_name "$luksname") +@@ -143,15 +161,16 @@ else + fi + fi + +- uuid=$luksid +- while [ "$uuid" != "${uuid#*-}" ]; do uuid=${uuid%%-*}${uuid#*-}; done +- printf -- '[ -e /dev/disk/by-id/dm-uuid-CRYPT-LUKS?-*%s*-* ] || exit 1\n' $uuid \ +- >> "$hookdir/initqueue/finished/90-crypt.sh" +- +- { +- printf -- '[ -e /dev/disk/by-uuid/*%s* ] || ' $luksid +- printf -- 'warn "crypto LUKS UUID "%s" not found"\n' $luksid +- } >> "$hookdir/emergency/90-crypt.sh" ++ if [ $is_keysource -eq 0 ]; then ++ uuid=$luksid ++ while [ "$uuid" != "${uuid#*-}" ]; do uuid=${uuid%%-*}${uuid#*-}; done ++ printf -- '[ -e /dev/disk/by-id/dm-uuid-CRYPT-LUKS?-*%s*-* ] || exit 1\n' $uuid \ ++ >> "$hookdir/initqueue/finished/90-crypt.sh" ++ { ++ printf -- '[ -e /dev/disk/by-uuid/*%s* ] || ' $luksid ++ printf -- 'warn "crypto LUKS UUID "%s" not found"\n' $luksid ++ } >> "$hookdir/emergency/90-crypt.sh" ++ fi + done + elif getargbool 0 rd.auto; then + if [ -z "$DRACUT_SYSTEMD" ]; then + diff --git a/0150.patch b/0150.patch new file mode 100644 index 0000000..d4dd991 --- /dev/null +++ b/0150.patch @@ -0,0 +1,24 @@ +From f3e328a7fd30c7109a3af188e84e621770bb6b85 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Sun, 20 Sep 2020 09:44:08 +0200 +Subject: [PATCH] dracut.spec: include the 04watchdog-modules module + +Include the 04watchdog-modules module that was added in 39d90012a652 +("04watchdog: split the watchdog module install"). +--- + dracut.spec | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut.spec b/dracut.spec +index b1891a2f..3597c6e5 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -348,6 +348,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %{dracutlibdir}/modules.d/03modsign + %{dracutlibdir}/modules.d/03rescue + %{dracutlibdir}/modules.d/04watchdog ++%{dracutlibdir}/modules.d/04watchdog-modules + %{dracutlibdir}/modules.d/05busybox + %{dracutlibdir}/modules.d/06rngd + %{dracutlibdir}/modules.d/10i18n + diff --git a/0151.patch b/0151.patch new file mode 100644 index 0000000..aedfe6a --- /dev/null +++ b/0151.patch @@ -0,0 +1,26 @@ +From 38ea7e821bce1cbf3c8fe4dc044a809301a77f82 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Tue, 22 Sep 2020 12:01:17 +0100 +Subject: [PATCH] Include devfreq drivers in initrd + +Some SoCs now have drivers that user devfreq in early init and fail +if the drivers are missing so make sure we have them in the initrd. + +Signed-off-by: Peter Robinson +--- + modules.d/90kernel-modules/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 764675eb..3ed749c7 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -65,6 +65,7 @@ installkernel() { + _blockfuncs+='|dw_mc_probe|dw_mci_pltfm_register' + instmods \ + "=drivers/clk" \ ++ "=drivers/devfreq" \ + "=drivers/dma" \ + "=drivers/extcon" \ + "=drivers/gpio" \ + diff --git a/0152.patch b/0152.patch new file mode 100644 index 0000000..beef227 --- /dev/null +++ b/0152.patch @@ -0,0 +1,31 @@ +From 89cd7a46296b34230c21775b24b226cc47ec1527 Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +Date: Sat, 26 Sep 2020 14:50:31 +0200 +Subject: [PATCH] 50drm: fix ambiguous redirects + +If i contains a space, there is a need to protect the variable usage in some cases. + +This will occurs when a next patch will enable platform bus with such case: +'/sys/bus/platform/devices/Fixed MDIO bus.0' + +Signed-off-by: Nicolas Chauvet +--- + modules.d/50drm/module-setup.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh +index c69b2cfa..81d2e662 100755 +--- a/modules.d/50drm/module-setup.sh ++++ b/modules.d/50drm/module-setup.sh +@@ -33,8 +33,8 @@ installkernel() { + if [[ $hostonly ]]; then + for i in /sys/bus/{pci/devices,virtio/devices,soc/devices/soc?}/*/modalias; do + [[ -e $i ]] || continue +- if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register" -S "iw_handler_get_spy" $(<$i); then +- if strstr "$(modinfo -F filename $(<$i) 2>/dev/null)" radeon.ko; then ++ if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register" -S "iw_handler_get_spy" $(<"$i"); then ++ if strstr "$(modinfo -F filename $(<"$i") 2>/dev/null)" radeon.ko; then + hostonly='' instmods amdkfd + fi + fi + diff --git a/0153.patch b/0153.patch new file mode 100644 index 0000000..102b9f5 --- /dev/null +++ b/0153.patch @@ -0,0 +1,29 @@ +From 5afd3cfc96aac425f7de23de60b94ab88dc189ee Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +Date: Sat, 26 Sep 2020 13:15:55 +0200 +Subject: [PATCH] 50drm: Include drm platform drivers in hostonly + +On arm, many drm drivers are located in the plaform bus. + +Adding the platform bus will allow drm drivers to be included in the +initramfs when using hostonly mode. + +Signed-off-by: Nicolas Chauvet +--- + modules.d/50drm/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh +index 81d2e662..ad0e6d80 100755 +--- a/modules.d/50drm/module-setup.sh ++++ b/modules.d/50drm/module-setup.sh +@@ -31,7 +31,7 @@ installkernel() { + # as we could e.g. be in the installer; nokmsboot boot parameter will disable + # loading of the driver if needed + if [[ $hostonly ]]; then +- for i in /sys/bus/{pci/devices,virtio/devices,soc/devices/soc?}/*/modalias; do ++ for i in /sys/bus/{pci/devices,platform/devices,virtio/devices,soc/devices/soc?}/*/modalias; do + [[ -e $i ]] || continue + if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register" -S "iw_handler_get_spy" $(<"$i"); then + if strstr "$(modinfo -F filename $(<"$i") 2>/dev/null)" radeon.ko; then + diff --git a/0154.patch b/0154.patch new file mode 100644 index 0000000..2af33e7 --- /dev/null +++ b/0154.patch @@ -0,0 +1,37 @@ +From dee4f26adcfd9a9a0e4664f0dc22974b60b5eea2 Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +Date: Sat, 26 Sep 2020 15:01:55 +0200 +Subject: [PATCH] 50drm: Check drm_encoder_init along drm_crtc_init + +Some modules are involved in the display output without to rely on +drm_crtc_init. + +This is the case for the meson_dw_hdmi. This module need to be included +into the initramfs in both hostonly and generic modes. + +Signed-off-by: Nicolas Chauvet +--- + modules.d/50drm/module-setup.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh +index ad0e6d80..ddc1223d 100755 +--- a/modules.d/50drm/module-setup.sh ++++ b/modules.d/50drm/module-setup.sh +@@ -33,13 +33,13 @@ installkernel() { + if [[ $hostonly ]]; then + for i in /sys/bus/{pci/devices,platform/devices,virtio/devices,soc/devices/soc?}/*/modalias; do + [[ -e $i ]] || continue +- if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register" -S "iw_handler_get_spy" $(<"$i"); then ++ if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register|drm_encoder_init" -S "iw_handler_get_spy" $(<"$i"); then + if strstr "$(modinfo -F filename $(<"$i") 2>/dev/null)" radeon.ko; then + hostonly='' instmods amdkfd + fi + fi + done + else +- dracut_instmods -o -s "drm_crtc_init|drm_dev_register" "=drivers/gpu/drm" "=drivers/staging" ++ dracut_instmods -o -s "drm_crtc_init|drm_dev_register|drm_encoder_init" "=drivers/gpu/drm" "=drivers/staging" + fi + } + diff --git a/0155.patch b/0155.patch new file mode 100644 index 0000000..ca3431d --- /dev/null +++ b/0155.patch @@ -0,0 +1,33 @@ +From 9eb1d1ed5ed1eb5008e6173c1ae0480132a4bea4 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 2 Oct 2020 13:40:00 +0200 +Subject: [PATCH] dracut.spec: remove fedora pre 30 quirks + +--- + dracut.spec | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index 3597c6e5..fded5f17 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -279,7 +279,7 @@ rm -f -- $RPM_BUILD_ROOT%{_mandir}/man1/lsinitrd.1* + echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf + echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf + +-%if 0%{?fedora} <= 30 || 0%{?rhel} <= 8 ++%if 0%{?rhel} > 0 && 0%{?rhel} <= 8 + mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d + install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh + %endif +@@ -478,8 +478,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne + %files config-rescue + %{dracutlibdir}/dracut.conf.d/02-rescue.conf + %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install +-%if 0%{?fedora} <= 30 || 0%{?rhel} <= 8 +-# FIXME: remove after F30 ++%if 0%{?rhel} > 0 && 0%{?rhel} <= 8 + %{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh + %endif + + diff --git a/0156.patch b/0156.patch new file mode 100644 index 0000000..e2e203d --- /dev/null +++ b/0156.patch @@ -0,0 +1,29 @@ +From ee6ce3100312ed1505ccb6d5b60bf075ea2b1712 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 2 Oct 2020 13:50:40 +0200 +Subject: [PATCH] dracut.spec: Use make macros + +https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro +--- + dracut.spec | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index fded5f17..e20aaa67 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -203,11 +203,10 @@ cp %{SOURCE1} . + %endif + ${NULL} + +-make %{?_smp_mflags} ++%make_build + + %install +-make %{?_smp_mflags} install \ +- DESTDIR=$RPM_BUILD_ROOT \ ++%make_install %{?_smp_mflags} \ + libdir=%{_prefix}/lib + + echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh + diff --git a/0157.patch b/0157.patch new file mode 100644 index 0000000..bcd46b4 --- /dev/null +++ b/0157.patch @@ -0,0 +1,31 @@ +From 4916dfc2b94dca0e84eb7dc58a9266d02c416b4a Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Thu, 1 Oct 2020 14:08:38 +0200 +Subject: [PATCH] dracut-install: ignore bogus preload libs + +If there are any nonexistent libraries listed in /etc/ld.so.preload, ldd +prints error messages like: + +ERROR: ld.so: object '/usr/lib64/libfoo.so.1' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored. + +This causes resolve_deps() to return error, which leads to symlinks +(like usr/bin/awk) not being copied into the initrd. +--- + install/dracut-install.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 9fbd72cd..ea0668b8 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -569,6 +569,9 @@ static int resolve_deps(const char *src) + if (strstr(buf, "cannot read header")) + break; + ++ if (strstr(buf, "cannot be preloaded")) ++ break; ++ + if (strstr(buf, destrootdir)) + break; + + diff --git a/0158.patch b/0158.patch new file mode 100644 index 0000000..b4ca90b --- /dev/null +++ b/0158.patch @@ -0,0 +1,241 @@ +From ee9b9b1241a427732781173caf9db611757c5152 Mon Sep 17 00:00:00 2001 +From: Daniel Molkentin +Date: Thu, 1 Oct 2020 17:12:26 +0200 +Subject: [PATCH] dracut-install: fix edge-case regression with weak modules + +This was introduced with 6dafdda4a6bdb8721133e4267553c5d86564f9e8, but +is actually caused by the fact that modules that have already been +installed cause dracut_install() to return without adding the module +to the hashmap. This can happen if an earlier-run dracut module chose +to install the same module. Now modprobe statements like: + +softdep usb_storage post: uas +softdep uas pre: usb_storage + +(which look weird, but are perfectly valid), cause +dracut_install() to enter an infinite recursion if and only if +at least one of the files has previously been installed by another +module. + +Fix this by also adding already installed modules to the hashmap. +--- + install/dracut-install.c | 176 +++++++++++++++++++++++------------------------ + 1 file changed, 88 insertions(+), 88 deletions(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index ea0668b8..97c75dbd 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -810,123 +810,123 @@ static int dracut_install(const char *orig_src, const char *orig_dst, bool isdir + log_debug("'%s' already exists", fulldstpath); + + /* dst does already exist */ +- return ret; +- } ++ } else { + +- /* check destination directory */ +- fulldstdir = strdup(fulldstpath); +- if (!fulldstdir) { +- log_error("Out of memory!"); +- return 1; +- } +- fulldstdir[dir_len(fulldstdir)] = '\0'; ++ /* check destination directory */ ++ fulldstdir = strdup(fulldstpath); ++ if (!fulldstdir) { ++ log_error("Out of memory!"); ++ return 1; ++ } ++ fulldstdir[dir_len(fulldstdir)] = '\0'; + +- ret = stat(fulldstdir, &db); ++ ret = stat(fulldstdir, &db); + +- if (ret < 0) { +- _cleanup_free_ char *dname = NULL; ++ if (ret < 0) { ++ _cleanup_free_ char *dname = NULL; + +- if (errno != ENOENT) { +- log_error("ERROR: stat '%s': %m", fulldstdir); +- return 1; +- } +- /* create destination directory */ +- log_debug("dest dir '%s' does not exist", fulldstdir); +- dname = strdup(dst); +- if (!dname) +- return 1; ++ if (errno != ENOENT) { ++ log_error("ERROR: stat '%s': %m", fulldstdir); ++ return 1; ++ } ++ /* create destination directory */ ++ log_debug("dest dir '%s' does not exist", fulldstdir); ++ dname = strdup(dst); ++ if (!dname) ++ return 1; + +- dname[dir_len(dname)] = '\0'; +- ret = dracut_install(dname, dname, true, false, true); ++ dname[dir_len(dname)] = '\0'; ++ ret = dracut_install(dname, dname, true, false, true); + +- if (ret != 0) { +- log_error("ERROR: failed to create directory '%s'", fulldstdir); +- return 1; ++ if (ret != 0) { ++ log_error("ERROR: failed to create directory '%s'", fulldstdir); ++ return 1; ++ } + } +- } + +- if (src_isdir) { +- if (dst_exists) { +- if (S_ISDIR(sb.st_mode)) { +- log_debug("dest dir '%s' already exists", fulldstpath); +- return 0; ++ if (src_isdir) { ++ if (dst_exists) { ++ if (S_ISDIR(sb.st_mode)) { ++ log_debug("dest dir '%s' already exists", fulldstpath); ++ return 0; ++ } ++ log_error("dest dir '%s' already exists but is not a directory", fulldstpath); ++ return 1; + } +- log_error("dest dir '%s' already exists but is not a directory", fulldstpath); +- return 1; +- } + +- log_info("mkdir '%s'", fulldstpath); +- ret = dracut_mkdir(fulldstpath); +- if (ret == 0) { +- i = strdup(dst); +- if (!i) +- return -ENOMEM; ++ log_info("mkdir '%s'", fulldstpath); ++ ret = dracut_mkdir(fulldstpath); ++ if (ret == 0) { ++ i = strdup(dst); ++ if (!i) ++ return -ENOMEM; + +- hashmap_put(items, i, i); ++ hashmap_put(items, i, i); ++ } ++ return ret; + } +- return ret; +- } + +- /* ready to install src */ ++ /* ready to install src */ + +- if (src_islink) { +- _cleanup_free_ char *abspath = NULL; ++ if (src_islink) { ++ _cleanup_free_ char *abspath = NULL; + +- abspath = get_real_file(src, false); ++ abspath = get_real_file(src, false); + +- if (abspath == NULL) +- return 1; ++ if (abspath == NULL) ++ return 1; + +- if (dracut_install(abspath, abspath, false, resolvedeps, hashdst)) { +- log_debug("'%s' install error", abspath); +- return 1; +- } ++ if (dracut_install(abspath, abspath, false, resolvedeps, hashdst)) { ++ log_debug("'%s' install error", abspath); ++ return 1; ++ } + +- if (lstat(abspath, &sb) != 0) { +- log_debug("lstat '%s': %m", abspath); +- return 1; +- } ++ if (lstat(abspath, &sb) != 0) { ++ log_debug("lstat '%s': %m", abspath); ++ return 1; ++ } + +- if (lstat(fulldstpath, &sb) != 0) { +- _cleanup_free_ char *absdestpath = NULL; ++ if (lstat(fulldstpath, &sb) != 0) { ++ _cleanup_free_ char *absdestpath = NULL; + +- ret = asprintf(&absdestpath, "%s/%s", destrootdir, (abspath[0]=='/' ? (abspath+1) : abspath) + sysrootdirlen); +- if (ret < 0) { +- log_error("Out of memory!"); +- exit(EXIT_FAILURE); ++ ret = asprintf(&absdestpath, "%s/%s", destrootdir, (abspath[0]=='/' ? (abspath+1) : abspath) + sysrootdirlen); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } ++ ++ ln_r(absdestpath, fulldstpath); + } + +- ln_r(absdestpath, fulldstpath); +- } ++ if (arg_hmac) { ++ /* copy .hmac files also */ ++ hmac_install(src, dst, NULL); ++ } + +- if (arg_hmac) { +- /* copy .hmac files also */ +- hmac_install(src, dst, NULL); ++ return 0; + } + +- return 0; +- } +- +- if (src_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) { +- if (resolvedeps) +- ret += resolve_deps(fullsrcpath + sysrootdirlen); +- if (arg_hmac) { +- /* copy .hmac files also */ +- hmac_install(src, dst, NULL); ++ if (src_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) { ++ if (resolvedeps) ++ ret += resolve_deps(fullsrcpath + sysrootdirlen); ++ if (arg_hmac) { ++ /* copy .hmac files also */ ++ hmac_install(src, dst, NULL); ++ } + } +- } + +- log_debug("dracut_install ret = %d", ret); ++ log_debug("dracut_install ret = %d", ret); + +- if (arg_hostonly && !arg_module) +- mark_hostonly(dst); ++ if (arg_hostonly && !arg_module) ++ mark_hostonly(dst); + +- if (isdir) { +- log_info("mkdir '%s'", fulldstpath); +- ret += dracut_mkdir(fulldstpath); +- } else { +- log_info("cp '%s' '%s'", fullsrcpath, fulldstpath); +- ret += cp(fullsrcpath, fulldstpath); ++ if (isdir) { ++ log_info("mkdir '%s'", fulldstpath); ++ ret += dracut_mkdir(fulldstpath); ++ } else { ++ log_info("cp '%s' '%s'", fullsrcpath, fulldstpath); ++ ret += cp(fullsrcpath, fulldstpath); ++ } + } + + if (ret == 0) { + diff --git a/0159.patch b/0159.patch new file mode 100644 index 0000000..727b282 --- /dev/null +++ b/0159.patch @@ -0,0 +1,153 @@ +From 4087fd4d1a618ece6b2f8bbb1761aeccd59fcc92 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 28 Sep 2020 11:25:53 +0200 +Subject: [PATCH] 95nvmf: rework parameter handling + +Always add the nvmf.discover parameters to /etc/nvme/discovery +when parsing the dracut commandline, and rely on NVMe autodiscovery +when no parameters are given. +And modify the syntax to use a comma ',' as a separator for nvmf.discover +as the semicolon ':' is already used for the FC-NVMe transport address format. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95nvmf/module-setup.sh | 32 +++++++++++++++++++- + modules.d/95nvmf/parse-nvmf-boot-connections.sh | 39 ++++++++++++------------- + 2 files changed, 50 insertions(+), 21 deletions(-) + +diff --git a/modules.d/95nvmf/module-setup.sh b/modules.d/95nvmf/module-setup.sh +index 418b5e0c..92400c21 100755 +--- a/modules.d/95nvmf/module-setup.sh ++++ b/modules.d/95nvmf/module-setup.sh +@@ -57,6 +57,31 @@ installkernel() { + cmdline() { + local _hostnqn + local _hostid ++ ++ gen_nvmf_cmdline() { ++ local _dev=$1 ++ local trtype ++ ++ [[ -L "/sys/dev/block/$_dev" ]] || return 0 ++ cd -P "/sys/dev/block/$_dev" || return 0 ++ if [ -f partition ] ; then ++ cd .. ++ fi ++ for d in device/nvme* ; do ++ [ -L "$d" ] || continue ++ if readlink "$d" | grep -q nvme-fabrics ; then ++ trtype=$(cat "$d"/transport) ++ break ++ fi ++ done ++ ++ [ -z "$trtype" ] && return 0 ++ nvme list-subsys ${PWD##*/} | while read x dev trtype traddr host_traddr state ana; do ++ [ "$trtype" != "${trtype#NQN}" ] && continue ++ echo -n " nvmf.discover=$trtype,${traddr#traddr=},${host_traddr#host_traddr=}" ++ done ++ } ++ + if [ -f /etc/nvme/hostnqn ] ; then + _hostnqn=$(cat /etc/nvme/hostnqn) + echo -n " nvmf.hostnqn=${_hostnqn}" +@@ -65,7 +90,12 @@ cmdline() { + _hostid=$(cat /etc/nvme/hostid) + echo -n " nvmf.hostid=${_hostid}" + fi +- echo "" ++ ++ [[ $hostonly ]] || [[ $mount_needs ]] && { ++ pushd . >/dev/null ++ for_each_host_dev_and_slaves gen_nvmf_cmdline ++ popd >/dev/null ++ } + } + + # called by dracut +diff --git a/modules.d/95nvmf/parse-nvmf-boot-connections.sh b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +index 0ed53a81..3ff731f1 100755 +--- a/modules.d/95nvmf/parse-nvmf-boot-connections.sh ++++ b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +@@ -3,14 +3,14 @@ + # Supported formats: + # nvmf.hostnqn= + # nvmf.hostid= +-# nvmf.discover=::: ++# nvmf.discover=,,, + # + # Examples: + # nvmf.hostnqn=nqn.2014-08.org.nvmexpress:uuid:37303738-3034-584d-5137-333230423843 +-# nvmf.discover=rdma:192.168.1.3::4420 +-# nvmf.discover=tcp:192.168.1.3::4420 +-# nvmf.discover=tcp:192.168.1.3 +-# nvmf.discover=fc:auto ++# nvmf.discover=rdma,192.168.1.3,,4420 ++# nvmf.discover=tcp,192.168.1.3,,4420 ++# nvmf.discover=tcp,192.168.1.3 ++# nvmf.discover=fc,nn-0x200400a098d85236:pn-0x201400a098d85236,nn-0x200000109b7db455:pn-0x100000109b7db455 + # + # Note: FC does autodiscovery, so typically there is no need to + # specify any discover parameters for FC. +@@ -25,11 +25,6 @@ fi + + initqueue --onetime modprobe --all -b -q nvme nvme_tcp nvme_core nvme_fabrics + +-traddr="none" +-trtype="none" +-hosttraddr="none" +-trsvcid=4420 +- + validate_ip_conn() { + if ! getargbool 0 rd.neednet ; then + warn "$trtype transport requires rd.neednet=1" +@@ -59,8 +54,12 @@ validate_ip_conn() { + } + + parse_nvmf_discover() { ++ traddr="none" ++ trtype="none" ++ hosttraddr="none" ++ trsvcid=4420 + OLDIFS="$IFS" +- IFS=: ++ IFS=, + set $1 + IFS="$OLDIFS" + +@@ -101,7 +100,11 @@ parse_nvmf_discover() { + if [ "$trtype" = "tcp" ]; then + validate_ip_conn + fi +- echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr --trsvcid=$trsvcid" >> /etc/nvme/discovery.conf ++ if [ "$trtype" = "fc" ] ; then ++ echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr" >> /etc/nvme/discovery.conf ++ else ++ echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr --trsvcid=$trsvcid" >> /etc/nvme/discovery.conf ++ fi + } + + nvmf_hostnqn=$(getarg nvmf.hostnqn=) +@@ -122,17 +125,13 @@ done + [ -f "/etc/nvme/hostid" ] || exit 0 + + if [ -f "/etc/nvme/discovery.conf" ] ; then ++ /sbin/initqueue --settled --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all + if [ "$trtype" = "tcp" ] ; then +- /sbin/initqueue --settled --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all + > /tmp/net.$ifname.did-setup +- else +- /sbin/initqueue --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all + fi + else +- if [ "$trtype" = "tcp" ] ; then +- /sbin/initqueue --settled --onetime --unique /usr/sbin/nvme connect-all -t tcp -a $traddr -s $trsvcid +- > /tmp/net.$ifname.did-setup +- else +- /sbin/initqueue --finished --unique --name nvme-fc-autoconnect echo 1 > /sys/class/fc/fc_udev_device/nvme_discovery ++ # No nvme command line arguments present, try autodiscovery ++ if [ "$trtype" = "fc" ] ; then ++ /sbin/initqueue --finished --onetime --unique --name nvme-fc-autoconnect echo 1 > /sys/class/fc/fc_udev_device/nvme_discovery + fi + fi + diff --git a/0160.patch b/0160.patch new file mode 100644 index 0000000..1dbe0ad --- /dev/null +++ b/0160.patch @@ -0,0 +1,39 @@ +From e9a614b50c825adba9fde093c09d02a14d7aba05 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 28 Sep 2020 11:38:40 +0200 +Subject: [PATCH] 95nvmf: add documentation + +Add documentation for 95nvmf module to dracut.cmdline + +Signed-off-by: Hannes Reinecke +--- + dracut.cmdline.7.asc | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index dbbbfed0..f7f34d05 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -861,6 +861,21 @@ FCoE + + + NOTE: letters in the MAC-address must be lowercase! + ++NVMf ++~~~~ ++**rd.nvmf.hostnqn=**____:: ++ NVMe host NQN to use ++ ++**rd.nvmf.hostid=**____:: ++ NVMe host id to use ++ ++**rd.nvmf.discover=**__{rdma|fc|tcp}__,____,[____],[____]:: ++ Discover and connect to a NVMe-over-Fabric controller specified by ++ __ and the optionally __ or __. ++ The first argument specifies the transport to use; currently only ++ 'rdma', 'fc', or 'tcp' are supported. ++ This parameter can be specified multiple times. ++ + NBD + ~~~ + **root=**??? **netroot=**nbd:____:____[:____[:____[:____]]]:: + diff --git a/0161.patch b/0161.patch new file mode 100644 index 0000000..ee0acc4 --- /dev/null +++ b/0161.patch @@ -0,0 +1,51 @@ +From f0ac6cb462930010e4756df4ce1ce0f8aa60b08f Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 28 Sep 2020 13:39:07 +0200 +Subject: [PATCH] 95nvmf: Fixup FC connections + +D-Bus doesn't run in the initrd, so our usual trick of activating +custom systemd services from udev doesn't work. +So add a rule to create initqueue entries for each possible +connection. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95nvmf/95-nvmf-initqueue.rules | 10 ++++++++++ + modules.d/95nvmf/module-setup.sh | 5 +---- + 2 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/modules.d/95nvmf/95-nvmf-initqueue.rules b/modules.d/95nvmf/95-nvmf-initqueue.rules +new file mode 100644 +index 00000000..d26d7b09 +--- /dev/null ++++ b/modules.d/95nvmf/95-nvmf-initqueue.rules +@@ -0,0 +1,10 @@ ++# ++# nvmf-initqueue.rules ++# ++# D-Bus doesn't run in the initrd, which means that we cannot use our ++# usual trick of starting custom systemd services. ++# So use a rule to create initqueue entries instead. ++ ++ACTION=="change", SUBSYSTEM=="fc", ENV{FC_EVENT}=="nvmediscovery", \ ++ ENV{NVMEFC_HOST_TRADDR}=="*", ENV{NVMEFC_TRADDR}=="*", \ ++ RUN+="/sbin/initqueue --onetime --unique --name nvmf-connect-$env{NVMEFC_TRADDR}-$env{NVMEFC_HOST_TRADDR} /usr/sbin/nvme connect-all --transport=fc --traddr=$env{NVMEFC_TRADDR} --host-traddr=$env{NVMEFC_HOST_TRADDR}" +diff --git a/modules.d/95nvmf/module-setup.sh b/modules.d/95nvmf/module-setup.sh +index 92400c21..501ba8dd 100755 +--- a/modules.d/95nvmf/module-setup.sh ++++ b/modules.d/95nvmf/module-setup.sh +@@ -110,12 +110,9 @@ install() { + inst_multiple ip sed + + inst_multiple nvme +- inst_multiple -o \ +- "$systemdsystemunitdir/nvm*-connect@.service" \ +- "$systemdsystemunitdir/nvm*-connect.target" + inst_hook cmdline 99 "$moddir/parse-nvmf-boot-connections.sh" + inst_simple "/etc/nvme/discovery.conf" +- inst_rules /usr/lib/udev/rules.d/70-nvm*-autoconnect.rules + inst_rules /usr/lib/udev/rules.d/71-nvmf-iopolicy-netapp.rules ++ inst_rules "$moddir/95-nvmf-initqueue.rules" + dracut_need_initqueue + } + diff --git a/0162.patch b/0162.patch new file mode 100644 index 0000000..813a490 --- /dev/null +++ b/0162.patch @@ -0,0 +1,51 @@ +From 0e2ef80993858992f6219b5162289568937a1fac Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 28 Sep 2020 13:39:07 +0200 +Subject: [PATCH] 95nvmf: add nvmf-autoconnect script + +Add a script to run FC autoconnect. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95nvmf/module-setup.sh | 2 ++ + modules.d/95nvmf/nvmf-autoconnect.sh | 5 +++++ + modules.d/95nvmf/parse-nvmf-boot-connections.sh | 2 +- + 3 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/modules.d/95nvmf/module-setup.sh b/modules.d/95nvmf/module-setup.sh +index 501ba8dd..268f1a2c 100755 +--- a/modules.d/95nvmf/module-setup.sh ++++ b/modules.d/95nvmf/module-setup.sh +@@ -109,6 +109,8 @@ install() { + + inst_multiple ip sed + ++ inst_script "${moddir}/nvmf-autoconnect.sh" /sbin/nvmf-autoconnect.sh ++ + inst_multiple nvme + inst_hook cmdline 99 "$moddir/parse-nvmf-boot-connections.sh" + inst_simple "/etc/nvme/discovery.conf" +diff --git a/modules.d/95nvmf/nvmf-autoconnect.sh b/modules.d/95nvmf/nvmf-autoconnect.sh +new file mode 100644 +index 00000000..c8f676a7 +--- /dev/null ++++ b/modules.d/95nvmf/nvmf-autoconnect.sh +@@ -0,0 +1,5 @@ ++#!/bin/bash ++ ++[ -f /sys/class/fc/fc_udev_device/nvme_discovery ] || exit 1 ++echo add > /sys/class/fc/fc_udev_device/nvme_discovery ++exit 0 +diff --git a/modules.d/95nvmf/parse-nvmf-boot-connections.sh b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +index 3ff731f1..5a19c84e 100755 +--- a/modules.d/95nvmf/parse-nvmf-boot-connections.sh ++++ b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +@@ -132,6 +132,6 @@ if [ -f "/etc/nvme/discovery.conf" ] ; then + else + # No nvme command line arguments present, try autodiscovery + if [ "$trtype" = "fc" ] ; then +- /sbin/initqueue --finished --onetime --unique --name nvme-fc-autoconnect echo 1 > /sys/class/fc/fc_udev_device/nvme_discovery ++ /sbin/initqueue --finished --onetime --unique --name nvme-fc-autoconnect /sbin/nvmf-autoconnect.sh + fi + fi + diff --git a/0163.patch b/0163.patch new file mode 100644 index 0000000..f83c337 --- /dev/null +++ b/0163.patch @@ -0,0 +1,87 @@ +From 251b424727492955041178766ce7e17ae4fc91ff Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 28 Sep 2020 14:02:28 +0200 +Subject: [PATCH] 95nvmf: Implement 'fc,auto' commandline syntax + +Add a 'fc,auto' commandline syntax for nvmf.discover to force +nvmf autodiscovery on FC-NVMe. + +Signed-off-by: Hannes Reinecke +--- + dracut.cmdline.7.asc | 2 ++ + modules.d/95nvmf/parse-nvmf-boot-connections.sh | 16 +++++++++++----- + 2 files changed, 13 insertions(+), 5 deletions(-) + +diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc +index f7f34d05..7ce7df2c 100644 +--- a/dracut.cmdline.7.asc ++++ b/dracut.cmdline.7.asc +@@ -874,6 +874,8 @@ NVMf + __ and the optionally __ or __. + The first argument specifies the transport to use; currently only + 'rdma', 'fc', or 'tcp' are supported. ++ The __ parameter can be set to 'auto' to select ++ autodiscovery; in that case all other parameters are ignored. + This parameter can be specified multiple times. + + NBD +diff --git a/modules.d/95nvmf/parse-nvmf-boot-connections.sh b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +index 5a19c84e..eb10dc97 100755 +--- a/modules.d/95nvmf/parse-nvmf-boot-connections.sh ++++ b/modules.d/95nvmf/parse-nvmf-boot-connections.sh +@@ -11,6 +11,7 @@ + # nvmf.discover=tcp,192.168.1.3,,4420 + # nvmf.discover=tcp,192.168.1.3 + # nvmf.discover=fc,nn-0x200400a098d85236:pn-0x201400a098d85236,nn-0x200000109b7db455:pn-0x100000109b7db455 ++# nvmf.discover=fc,auto + # + # Note: FC does autodiscovery, so typically there is no need to + # specify any discover parameters for FC. +@@ -81,21 +82,25 @@ parse_nvmf_discover() { + ;; + *) + warn "Invalid arguments for nvmf.discover=$1" +- return 1 ++ return 0 + ;; + esac + if [ "$traddr" = "none" ] ; then + warn "traddr is mandatory for $trtype" +- return 1; ++ return 0; + fi + if [ "$trtype" = "fc" ] ; then ++ if [ "$traddr" = "auto" ] ; then ++ rm /etc/nvme/discovery.conf ++ return 1 ++ fi + if [ "$hosttraddr" = "none" ] ; then + warn "host traddr is mandatory for fc" +- return 1 ++ return 0 + fi + elif [ "$trtype" != "rdma" ] && [ "$trtype" != "tcp" ] ; then + warn "unsupported transport $trtype" +- return 1 ++ return 0 + fi + if [ "$trtype" = "tcp" ]; then + validate_ip_conn +@@ -105,6 +110,7 @@ parse_nvmf_discover() { + else + echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr --trsvcid=$trsvcid" >> /etc/nvme/discovery.conf + fi ++ return 0 + } + + nvmf_hostnqn=$(getarg nvmf.hostnqn=) +@@ -117,7 +123,7 @@ if [ -n "$nvmf_hostid" ] ; then + fi + + for d in $(getargs nvmf.discover=); do +- parse_nvmf_discover "$d" ++ parse_nvmf_discover "$d" || break + done + + # Host NQN and host id are mandatory for NVMe-oF + diff --git a/0164.patch b/0164.patch new file mode 100644 index 0000000..a453269 --- /dev/null +++ b/0164.patch @@ -0,0 +1,25 @@ +From 7c923f1de89f80b511338f9b434acfdf2547dbac Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Wed, 23 Sep 2020 16:18:18 -0400 +Subject: [PATCH] 00systemd: add missing cryptsetup-related targets + +We want these in the initramfs. Things related to clevis and systemd's +`cryptsetup-generator` reference these targets. +--- + modules.d/00systemd/module-setup.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh +index 17be74fd..bbce31a2 100755 +--- a/modules.d/00systemd/module-setup.sh ++++ b/modules.d/00systemd/module-setup.sh +@@ -65,6 +65,8 @@ install() { + $systemdutildir/system-generators/systemd-gpt-auto-generator \ + \ + $systemdsystemunitdir/cryptsetup.target \ ++ $systemdsystemunitdir/cryptsetup-pre.target \ ++ $systemdsystemunitdir/remote-cryptsetup.target \ + $systemdsystemunitdir/emergency.target \ + $systemdsystemunitdir/sysinit.target \ + $systemdsystemunitdir/basic.target \ + diff --git a/0165.patch b/0165.patch new file mode 100644 index 0000000..383fa7d --- /dev/null +++ b/0165.patch @@ -0,0 +1,24 @@ +From 7ea391b527eb19c572a750fe00f95d02a50beabf Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Wed, 23 Sep 2020 21:15:52 -0400 +Subject: [PATCH] 90crypt: pull in remote-cryptsetup.target enablement + +This is enabled upstream in +https://github.com/systemd/systemd/pull/17149. +--- + modules.d/90crypt/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh +index e3d6338f..f43b2e5d 100755 +--- a/modules.d/90crypt/module-setup.sh ++++ b/modules.d/90crypt/module-setup.sh +@@ -151,6 +151,7 @@ install() { + $systemdsystemunitdir/systemd-ask-password-console.service \ + $systemdsystemunitdir/cryptsetup.target \ + $systemdsystemunitdir/sysinit.target.wants/cryptsetup.target \ ++ $systemdsystemunitdir/initrd-root-fs.target.wants/remote-cryptsetup.target \ + systemd-ask-password systemd-tty-ask-password-agent + fi + + diff --git a/0166.patch b/0166.patch new file mode 100644 index 0000000..a4630fb --- /dev/null +++ b/0166.patch @@ -0,0 +1,75 @@ +From 811c814677b83874fb631f6c07576765303b615a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= + +Date: Sat, 3 Oct 2020 14:23:26 +0700 +Subject: [PATCH] rootfs-block: only write root argument for block device +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some filesystem (e.g. ZFS, and btrfs subvolumes) don't use block +devices. Should they be mounted as `/`, `find_root_block_device` +yields nothing, hence dracut will append this problematic argument +to kernel cmdline: + + root=/dev/block + +On a machine that employ root ZFS on LUKS, which was setup with +an OpenPGP-encrypted key file, this argument renders that machine +unbootable. Remove that `root=/dev/block` manually could boot the +machine. + +Let check if that device is a block device before write down `root` +argument. This is consistent with the check for block device in +`find_block_device`. + +Signed-off-by: Đoàn Trần Công Danh +--- + modules.d/95rootfs-block/module-setup.sh | 25 +++++++++++++++---------- + 1 file changed, 15 insertions(+), 10 deletions(-) + +diff --git a/modules.d/95rootfs-block/module-setup.sh b/modules.d/95rootfs-block/module-setup.sh +index 987373b4..c3982207 100755 +--- a/modules.d/95rootfs-block/module-setup.sh ++++ b/modules.d/95rootfs-block/module-setup.sh +@@ -30,7 +30,8 @@ cmdline_journal() { + } + + cmdline_rootfs() { +- local _dev=/dev/block/$(find_root_block_device) ++ local _block=$(find_root_block_device) ++ local _dev=/dev/block/$_block + local _fstype _flags _subvol + + # "--no-hostonly-default-device" can result in empty root_devs +@@ -38,17 +39,21 @@ cmdline_rootfs() { + return + fi + +- if [ -e $_dev ]; then ++ if [ -n "$_block" -a -b $_dev ]; then + printf " root=%s" "$(shorten_persistent_dev "$(get_persistent_dev "$_dev")")" +- _fstype="$(find_mp_fstype /)" +- _flags="$(find_mp_fsopts /)" ++ fi ++ _fstype="$(find_mp_fstype /)" ++ _flags="$(find_mp_fsopts /)" ++ if [ -n "$_fstype" ]; then + printf " rootfstype=%s" "$_fstype" +- if [[ $use_fstab != yes ]] && [[ $_fstype = btrfs ]]; then +- _subvol=$(findmnt -e -v -n -o FSROOT --target /) \ +- && _subvol=${_subvol#/} +- _flags="$_flags,${_subvol:+subvol=$_subvol}" +- fi +- printf " rootflags=%s" "${_flags#,}" ++ fi ++ if [[ $use_fstab != yes ]] && [[ $_fstype = btrfs ]]; then ++ _subvol=$(findmnt -e -v -n -o FSROOT --target /) \ ++ && _subvol=${_subvol#/} ++ _flags="$_flags${_subvol:+,subvol=$_subvol}" ++ fi ++ if [ -n "$_flags" ]; then ++ printf " rootflags=%s" "$_flags" + fi + } + diff --git a/dracut.spec b/dracut.spec new file mode 100644 index 0000000..94c7bb0 --- /dev/null +++ b/dracut.spec @@ -0,0 +1,2023 @@ +%define dracutlibdir %{_prefix}/lib/dracut +%bcond_without doc + +# We ship a .pc file but don't want to have a dep on pkg-config. We +# strip the automatically generated dep here and instead co-own the +# directory. +%global __requires_exclude pkg-config +%define dist_free_release 167.git20201006 + +Name: dracut +Version: 050 +Release: %{dist_free_release}%{?dist} + +Summary: Initramfs generator using udev +%if 0%{?fedora} || 0%{?rhel} +Group: System Environment/Base +%endif +%if 0%{?suse_version} +Group: System/Base +%endif + +# The entire source code is GPLv2+ +# except install/* which is LGPLv2+ +License: GPLv2+ and LGPLv2+ + +URL: https://dracut.wiki.kernel.org/ + +# Source can be generated by +# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%%{version};sf=tgz +Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz +Patch1: 0001.patch +Patch2: 0002.patch +Patch3: 0003.patch +Patch4: 0004.patch +Patch5: 0005.patch +Patch6: 0006.patch +Patch7: 0007.patch +Patch8: 0008.patch +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 +Patch60: 0060.patch +Patch61: 0061.patch +Patch62: 0062.patch +Patch63: 0063.patch +Patch64: 0064.patch +Patch65: 0065.patch +Patch66: 0066.patch +Patch67: 0067.patch +Patch68: 0068.patch +Patch69: 0069.patch +Patch70: 0070.patch +Patch71: 0071.patch +Patch72: 0072.patch +Patch73: 0073.patch +Patch74: 0074.patch +Patch75: 0075.patch +Patch76: 0076.patch +Patch77: 0077.patch +Patch78: 0078.patch +Patch79: 0079.patch +Patch80: 0080.patch +Patch81: 0081.patch +Patch82: 0082.patch +Patch83: 0083.patch +Patch84: 0084.patch +Patch85: 0085.patch +Patch86: 0086.patch +Patch87: 0087.patch +Patch88: 0088.patch +Patch89: 0089.patch +Patch90: 0090.patch +Patch91: 0091.patch +Patch92: 0092.patch +Patch93: 0093.patch +Patch94: 0094.patch +Patch95: 0095.patch +Patch96: 0096.patch +Patch97: 0097.patch +Patch98: 0098.patch +Patch99: 0099.patch +Patch100: 0100.patch +Patch101: 0101.patch +Patch102: 0102.patch +Patch103: 0103.patch +Patch104: 0104.patch +Patch105: 0105.patch +Patch106: 0106.patch +Patch107: 0107.patch +Patch108: 0108.patch +Patch109: 0109.patch +Patch110: 0110.patch +Patch111: 0111.patch +Patch112: 0112.patch +Patch113: 0113.patch +Patch114: 0114.patch +Patch115: 0115.patch +Patch116: 0116.patch +Patch117: 0117.patch +Patch118: 0118.patch +Patch119: 0119.patch +Patch120: 0120.patch +Patch121: 0121.patch +Patch122: 0122.patch +Patch123: 0123.patch +Patch124: 0124.patch +Patch125: 0125.patch +Patch126: 0126.patch +Patch127: 0127.patch +Patch128: 0128.patch +Patch129: 0129.patch +Patch130: 0130.patch +Patch131: 0131.patch +Patch132: 0132.patch +Patch133: 0133.patch +Patch134: 0134.patch +Patch135: 0135.patch +Patch136: 0136.patch +Patch137: 0137.patch +Patch138: 0138.patch +Patch139: 0139.patch +Patch140: 0140.patch +Patch141: 0141.patch +Patch142: 0142.patch +Patch143: 0143.patch +Patch144: 0144.patch +Patch145: 0145.patch +Patch146: 0146.patch +Patch147: 0147.patch +Patch148: 0148.patch +Patch149: 0149.patch +Patch150: 0150.patch +Patch151: 0151.patch +Patch152: 0152.patch +Patch153: 0153.patch +Patch154: 0154.patch +Patch155: 0155.patch +Patch156: 0156.patch +Patch157: 0157.patch +Patch158: 0158.patch +Patch159: 0159.patch +Patch160: 0160.patch +Patch161: 0161.patch +Patch162: 0162.patch +Patch163: 0163.patch +Patch164: 0164.patch +Patch165: 0165.patch +Patch166: 0166.patch + +Source1: https://www.gnu.org/licenses/lgpl-2.1.txt + +BuildRequires: bash +BuildRequires: git +BuildRequires: pkgconfig(libkmod) >= 23 +BuildRequires: gcc + +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: pkgconfig +BuildRequires: systemd +%endif +%if 0%{?fedora} +BuildRequires: bash-completion +%endif + +%if %{with doc} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: docbook-style-xsl docbook-dtds libxslt +%endif + +%if 0%{?suse_version} +BuildRequires: docbook-xsl-stylesheets libxslt +%endif + +BuildRequires: asciidoc +%endif + +%if 0%{?suse_version} > 9999 +Obsoletes: mkinitrd < 2.6.1 +Provides: mkinitrd = 2.6.1 +%endif + +Obsoletes: dracut-fips <= 047 +Provides: dracut-fips = %{version}-%{release} +Obsoletes: dracut-fips-aesni <= 047 +Provides: dracut-fips-aesni = %{version}-%{release} + +Requires: bash >= 4 +Requires: coreutils +Requires: cpio +Requires: filesystem >= 2.1.0 +Requires: findutils +Requires: grep +Requires: kmod +Requires: sed +Requires: xz +Requires: gzip + +%if 0%{?fedora} || 0%{?rhel} +Recommends: memstrack +Recommends: hardlink +Recommends: pigz +Recommends: kpartx +Requires: util-linux >= 2.21 +Requires: systemd >= 219 +Requires: systemd-udev >= 219 +Requires: procps-ng +%else +Requires: hardlink +Requires: gzip +Requires: kpartx +Requires: udev > 166 +Requires: util-linux-ng >= 2.21 +%endif + +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} +Requires: libkcapi-hmaccalc +%endif + +%description +dracut contains tools to create bootable initramfses for the Linux +kernel. Unlike other implementations, dracut hard-codes as little +as possible into the initramfs. dracut contains various modules which +are driven by the event-based udev. Having root on MD, DM, LVM2, LUKS +is supported as well as NFS, iSCSI, NBD, FCoE with the dracut-network +package. + +%package network +Summary: dracut modules to build a dracut initramfs with network support +%if 0%{?_module_build} +# In the module-build-service, we have pieces of dracut provided by different +# modules ("base-runtime" provides most functionality, but we need +# dracut-network in "installer". Since these two modules build with separate +# dist-tags, we need to reduce this strict requirement to ignore the dist-tag. +Requires: %{name} >= %{version}-%{dist_free_release} +%else +Requires: %{name} = %{version}-%{release} +%endif +Requires: iputils +Requires: iproute +Requires: (NetworkManager >= 1.20 or dhclient) +Suggests: NetworkManager +Obsoletes: dracut-generic < 008 +Provides: dracut-generic = %{version}-%{release} + +%description network +This package requires everything which is needed to build a generic +all purpose initramfs with network support with dracut. + +%package caps +Summary: dracut modules to build a dracut initramfs which drops capabilities +Requires: %{name} = %{version}-%{release} +Requires: libcap + +%description caps +This package requires everything which is needed to build an +initramfs with dracut, which drops capabilities. + +%package live +Summary: dracut modules to build a dracut initramfs with live image capabilities +%if 0%{?_module_build} +# See the network subpackage comment. +Requires: %{name} >= %{version}-%{dist_free_release} +%else +Requires: %{name} = %{version}-%{release} +%endif +Requires: %{name}-network = %{version}-%{release} +Requires: tar gzip coreutils bash device-mapper curl +%if 0%{?fedora} +Requires: fuse ntfs-3g +%endif + +%description live +This package requires everything which is needed to build an +initramfs with dracut, with live image capabilities, like Live CDs. + +%package config-generic +Summary: dracut configuration to turn off hostonly image generation +Requires: %{name} = %{version}-%{release} +Obsoletes: dracut-nohostonly < 030 +Provides: dracut-nohostonly = %{version}-%{release} + +%description config-generic +This package provides the configuration to turn off the host specific initramfs +generation with dracut and generates a generic image by default. + +%package config-rescue +Summary: dracut configuration to turn on rescue image generation +Requires: %{name} = %{version}-%{release} +Obsoletes: dracut < 030 + +%description config-rescue +This package provides the configuration to turn on the rescue initramfs +generation with dracut. + +%package tools +Summary: dracut tools to build the local initramfs +Requires: %{name} = %{version}-%{release} + +%description tools +This package contains tools to assemble the local initrd and host configuration. + +%package squash +Summary: dracut module to build an initramfs with most files in a squashfs image +Requires: %{name} = %{version}-%{release} +Requires: squashfs-tools + +%description squash +This package provides a dracut module to build an initramfs, but store most files +in a squashfs image, result in a smaller initramfs size and reduce runtime memory +usage. + +%prep +%autosetup -n %{name}-%{version} -S git_am +cp %{SOURCE1} . + +%build +%configure --systemdsystemunitdir=%{_unitdir} \ + --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) \ + --libdir=%{_prefix}/lib \ +%if %{without doc} + --disable-documentation \ +%endif + ${NULL} + +%make_build + +%install +%make_install %{?_smp_mflags} \ + libdir=%{_prefix}/lib + +echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh + +%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0 +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips +%endif + +%if %{defined _unitdir} +# for systemd, better use systemd-bootchart +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00bootchart +%endif + +# we do not support dash in the initramfs +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00dash + +# we do not support mksh in the initramfs +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00mksh + +# remove gentoo specific modules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash + +%if %{defined _unitdir} +# with systemd IMA and selinux modules do not make sense +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity +%endif + +%ifnarch s390 s390x +# remove architecture specific modules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_mod +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dcssblk +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95qeth_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95znet +%else +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock +%endif + +mkdir -p $RPM_BUILD_ROOT/boot/dracut +mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log +touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs + +%if 0%{?fedora} || 0%{?rhel} +install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf +%endif +%if 0%{?suse_version} +install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf +%else +rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse* +%endif + +%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} <= 9999 +rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd +rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd +rm -f -- $RPM_BUILD_ROOT%{_mandir}/man8/mkinitrd.8* +rm -f -- $RPM_BUILD_ROOT%{_mandir}/man1/lsinitrd.1* +%endif + +echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf +echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf + +%if 0%{?rhel} > 0 && 0%{?rhel} <= 8 +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d +install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh +%endif + +%files +%if %{with doc} +%doc README.md HACKING TODO AUTHORS NEWS dracut.html dracut.png dracut.svg +%endif +%{!?_licensedir:%global license %%doc} +%license COPYING lgpl-2.1.txt +%{_bindir}/dracut +%{_datadir}/bash-completion/completions/dracut +%{_datadir}/bash-completion/completions/lsinitrd +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999 +%{_bindir}/mkinitrd +%{_bindir}/lsinitrd +%endif +%dir %{dracutlibdir} +%dir %{dracutlibdir}/modules.d +%{dracutlibdir}/dracut-functions.sh +%{dracutlibdir}/dracut-init.sh +%{dracutlibdir}/dracut-functions +%{dracutlibdir}/dracut-version.sh +%{dracutlibdir}/dracut-logger.sh +%{dracutlibdir}/dracut-initramfs-restore +%{dracutlibdir}/dracut-install +%{dracutlibdir}/skipcpio +%config(noreplace) %{_sysconfdir}/dracut.conf +%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} +%{dracutlibdir}/dracut.conf.d/01-dist.conf +%endif +%dir %{_sysconfdir}/dracut.conf.d +%dir %{dracutlibdir}/dracut.conf.d +%dir %{_datadir}/pkgconfig +%{_datadir}/pkgconfig/dracut.pc + +%if %{with doc} +%{_mandir}/man8/dracut.8* +%{_mandir}/man8/*service.8* +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999 +%{_mandir}/man8/mkinitrd.8* +%{_mandir}/man1/lsinitrd.1* +%endif +%if 0%{?suse_version} +%{_mandir}/man8/mkinitrd-suse.8* +%endif +%{_mandir}/man7/dracut.kernel.7* +%{_mandir}/man7/dracut.cmdline.7* +%{_mandir}/man7/dracut.modules.7* +%{_mandir}/man7/dracut.bootup.7* +%{_mandir}/man5/dracut.conf.5* +%endif + +%if %{undefined _unitdir} +%{dracutlibdir}/modules.d/00bootchart +%endif +%{dracutlibdir}/modules.d/00bash +%{dracutlibdir}/modules.d/00systemd +%ifnarch s390 s390x +%{dracutlibdir}/modules.d/00warpclock +%endif +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} +%{dracutlibdir}/modules.d/01fips +%endif +%{dracutlibdir}/modules.d/01systemd-initrd +%{dracutlibdir}/modules.d/03modsign +%{dracutlibdir}/modules.d/03rescue +%{dracutlibdir}/modules.d/04watchdog +%{dracutlibdir}/modules.d/04watchdog-modules +%{dracutlibdir}/modules.d/05busybox +%{dracutlibdir}/modules.d/06rngd +%{dracutlibdir}/modules.d/10i18n +%{dracutlibdir}/modules.d/30convertfs +%{dracutlibdir}/modules.d/45url-lib +%{dracutlibdir}/modules.d/50drm +%{dracutlibdir}/modules.d/50plymouth +%{dracutlibdir}/modules.d/80lvmmerge +%{dracutlibdir}/modules.d/90btrfs +%{dracutlibdir}/modules.d/90crypt +%{dracutlibdir}/modules.d/90dm +%{dracutlibdir}/modules.d/90dmraid +%{dracutlibdir}/modules.d/90kernel-modules +%{dracutlibdir}/modules.d/90kernel-modules-extra +%{dracutlibdir}/modules.d/90lvm +%{dracutlibdir}/modules.d/90mdraid +%{dracutlibdir}/modules.d/90multipath +%{dracutlibdir}/modules.d/90nvdimm +%{dracutlibdir}/modules.d/90ppcmac +%{dracutlibdir}/modules.d/90qemu +%{dracutlibdir}/modules.d/91crypt-gpg +%{dracutlibdir}/modules.d/91crypt-loop +%{dracutlibdir}/modules.d/95debug +%{dracutlibdir}/modules.d/95fstab-sys +%{dracutlibdir}/modules.d/95lunmask +%{dracutlibdir}/modules.d/95nvmf +%{dracutlibdir}/modules.d/95resume +%{dracutlibdir}/modules.d/95rootfs-block +%{dracutlibdir}/modules.d/95terminfo +%{dracutlibdir}/modules.d/95udev-rules +%{dracutlibdir}/modules.d/95virtfs +%ifarch s390 s390x +%{dracutlibdir}/modules.d/80cms +%{dracutlibdir}/modules.d/81cio_ignore +%{dracutlibdir}/modules.d/91zipl +%{dracutlibdir}/modules.d/95dasd +%{dracutlibdir}/modules.d/95dasd_mod +%{dracutlibdir}/modules.d/95dasd_rules +%{dracutlibdir}/modules.d/95dcssblk +%{dracutlibdir}/modules.d/95qeth_rules +%{dracutlibdir}/modules.d/95zfcp +%{dracutlibdir}/modules.d/95zfcp_rules +%endif +%if %{undefined _unitdir} +%{dracutlibdir}/modules.d/96securityfs +%{dracutlibdir}/modules.d/97masterkey +%{dracutlibdir}/modules.d/98integrity +%endif +%{dracutlibdir}/modules.d/97biosdevname +%{dracutlibdir}/modules.d/98dracut-systemd +%{dracutlibdir}/modules.d/98ecryptfs +%{dracutlibdir}/modules.d/98pollcdrom +%{dracutlibdir}/modules.d/98selinux +%{dracutlibdir}/modules.d/98syslog +%{dracutlibdir}/modules.d/98usrmount +%{dracutlibdir}/modules.d/99base +%{dracutlibdir}/modules.d/99memstrack +%{dracutlibdir}/modules.d/99fs-lib +%{dracutlibdir}/modules.d/99shutdown +%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log +%dir %{_sharedstatedir}/initramfs +%if %{defined _unitdir} +%{_unitdir}/dracut-shutdown.service +%{_unitdir}/sysinit.target.wants/dracut-shutdown.service +%{_unitdir}/dracut-cmdline.service +%{_unitdir}/dracut-initqueue.service +%{_unitdir}/dracut-mount.service +%{_unitdir}/dracut-pre-mount.service +%{_unitdir}/dracut-pre-pivot.service +%{_unitdir}/dracut-pre-trigger.service +%{_unitdir}/dracut-pre-udev.service +%{_unitdir}/initrd.target.wants/dracut-cmdline.service +%{_unitdir}/initrd.target.wants/dracut-initqueue.service +%{_unitdir}/initrd.target.wants/dracut-mount.service +%{_unitdir}/initrd.target.wants/dracut-pre-mount.service +%{_unitdir}/initrd.target.wants/dracut-pre-pivot.service +%{_unitdir}/initrd.target.wants/dracut-pre-trigger.service +%{_unitdir}/initrd.target.wants/dracut-pre-udev.service +%endif +%{_prefix}/lib/kernel/install.d/50-dracut.install + +%files network +%{dracutlibdir}/modules.d/02systemd-networkd +%{dracutlibdir}/modules.d/35network-manager +%{dracutlibdir}/modules.d/35network-legacy +%{dracutlibdir}/modules.d/40network +%{dracutlibdir}/modules.d/45ifcfg +%{dracutlibdir}/modules.d/90kernel-network-modules +%{dracutlibdir}/modules.d/90qemu-net +%{dracutlibdir}/modules.d/95cifs +%{dracutlibdir}/modules.d/95fcoe +%{dracutlibdir}/modules.d/95fcoe-uefi +%{dracutlibdir}/modules.d/95iscsi +%{dracutlibdir}/modules.d/95nbd +%{dracutlibdir}/modules.d/95nfs +%{dracutlibdir}/modules.d/95ssh-client +%ifarch s390 s390x +%{dracutlibdir}/modules.d/95znet +%endif +%{dracutlibdir}/modules.d/99uefi-lib + +%files caps +%{dracutlibdir}/modules.d/02caps + +%files live +%{dracutlibdir}/modules.d/99img-lib +%{dracutlibdir}/modules.d/90dmsquash-live +%{dracutlibdir}/modules.d/90dmsquash-live-ntfs +%{dracutlibdir}/modules.d/90livenet + +%files tools +%if %{with doc} +%doc %{_mandir}/man8/dracut-catimages.8* +%endif + +%{_bindir}/dracut-catimages +%dir /boot/dracut +%dir /var/lib/dracut +%dir /var/lib/dracut/overlay + +%files squash +%{dracutlibdir}/modules.d/99squash + +%files config-generic +%{dracutlibdir}/dracut.conf.d/02-generic-image.conf + +%files config-rescue +%{dracutlibdir}/dracut.conf.d/02-rescue.conf +%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install +%if 0%{?rhel} > 0 && 0%{?rhel} <= 8 +%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh +%endif + +%changelog +* Tue Oct 06 2020 Harald Hoyer - 050-167.git20201006 +- git snapshot + +* Fri Oct 02 2020 Harald Hoyer - 050-157.git20201002 +- git snapshot + +* Tue Sep 29 2020 Peter Robinson - 050-63.git20200529 +- Fixes for Arm GPUs in early boot + +* Fri Sep 25 2020 Peter Robinson - 050-62.git20200529 +- Fix for Rockchip devices + +* Wed Aug 19 2020 Merlin Mathesius - 050-61.git20200529.3 +- Correct conditionals to drop 51-dracut-rescue-postinst.sh for Fedora and + recent RHEL releases + +* Mon Jul 27 2020 Fedora Release Engineering - 050-61.git20200529.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 050-61.git20200529.1 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Fri May 29 2020 Harald Hoyer - 050-61.git20200529 +- git snapshot + +* Mon Mar 16 2020 Harald Hoyer - 050-26.git20200316 +- fixed `--tmpdir` mishandling + +* Fri Mar 13 2020 Harald Hoyer - 050-25.git20200313 +- network-manager: ensure that nm-run.sh is executed for rd.neednet + +* Tue Mar 10 2020 Adam Williamson - 050-2 +- Backport fix for pre-trigger stage early exit from upstream (#1811070) + +* Wed Mar 04 2020 Harald Hoyer - 050-1 +- version 050 + +* Tue Jan 28 2020 Fedora Release Engineering - 049-27.git20181204.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 049-27.git20181204.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 12 2019 Adam Williamson - 049-27.git20181204 +- Backport PR #578 to fix RHBZ #1719057 (installer boot bug) + +* Thu Feb 14 2019 Adam Williamson - 049-26.git20181204 +- Backport PR #541 to fix RHBZ #1676357 (crasher bug) + +* Thu Jan 31 2019 Fedora Release Engineering - 049-25.git20181204.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Dec 04 2018 Harald Hoyer - 049-25.git20181204 +- git snapshot + +* Wed Oct 24 2018 Harald Hoyer - 049-11.git20181024 +- git snapshot + +* Wed Oct 10 2018 Harald Hoyer - 049-4.git20181010 +- fixed spec file +- git snapshot + +* Mon Oct 08 2018 Harald Hoyer - 049-1 +- version 049 + +* Fri Sep 21 2018 Harald Hoyer - 048-99.git20180921 +- git snapshot + +* Thu Jul 26 2018 Harald Hoyer - 048-14.git20180726 +- bring back 51-dracut-rescue-postinst.sh + +* Wed Jul 18 2018 Harald Hoyer - 048-6.git20180718 +- git snapshot + +* Thu Jul 12 2018 Fedora Release Engineering - 048-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jul 06 2018 Harald Hoyer - 048-1 +- version 048 + +* Fri Jun 22 2018 Adam Williamson - 047-34.git20180604.1 +- Test build with proposed fix for #1593028 + +* Mon Jun 04 2018 Harald Hoyer - 047-34.git20180604 +- git snapshot + +* Tue May 15 2018 Harald Hoyer - 047-32.git20180515 +- git snapshot + +* Mon Mar 05 2018 Harald Hoyer - 047-8 +- git snapshot + +* Tue Feb 27 2018 Javier Martinez Canillas - 047-2 +- Allow generating initramfs images on the /boot directory + +* Mon Feb 19 2018 Harald Hoyer - 047-1 +- version 047 + +* Wed Feb 07 2018 Fedora Release Engineering - 046-92.git20180118.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 18 2018 Harald Hoyer - 046-92 +- git snapshot + +* Fri Jan 05 2018 Harald Hoyer - 046-64 +- git snapshot + +* Fri Dec 01 2017 Harald Hoyer - 046-36 +- git snapshot + +* Wed Nov 29 2017 Harald Hoyer - 046-33 +- git snapshot + +* Thu Oct 12 2017 Peter Robinson 046-20 +- Add fix for some ARM SBCs + +* Tue Oct 10 2017 Harald Hoyer - 046-19 +- git snapshot + +* Thu Aug 24 2017 Harald Hoyer - 046-7 +- git snapshot + +* Fri Aug 11 2017 Harald Hoyer - 046-2 +- add support for dist-tag less build + +* Fri Aug 11 2017 Harald Hoyer - 046-1 +- version 046 + +* Mon Aug 7 2017 Peter Robinson 045-21.git20170515 +- Add upstream patches to fix a number of ARM devices with generic initrd + +* Wed Aug 02 2017 Fedora Release Engineering - 045-20.git20170515 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 045-19.git20170515 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 15 2017 Harald Hoyer - 045-18.git20170515 +- git snapshot + +* Wed Apr 12 2017 Peter Robinson 044-178 +- Add upstream patches needed for ARMv7/aarch64 fixes + +* Fri Feb 10 2017 Fedora Release Engineering - 044-177 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Dec 08 2016 Harald Hoyer - 044-176 +- git snapshot + +* Fri Aug 19 2016 Harald Hoyer - 044-117 +- git snapshot + +* Thu Aug 18 2016 Harald Hoyer - 044-109 +- git snapshot + +* Fri Aug 05 2016 Adam Williamson - 044-76 +- backport a single commit to fix RHBZ #1358416 (anaconda network init) + +* Tue Jun 07 2016 Harald Hoyer - 044-75 +- fix for systemd >= 230 +- git snapshot + +* Wed Feb 03 2016 Fedora Release Engineering - 044-18.git20160108 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 8 2016 Harald Hoyer - 044-17.git20160108 +- include more HID driver +- include machine info file +- fix network carrier detection +- fix nbd +- do not copy over lldpad state +- restorecon the final initramfs image + +* Tue Dec 1 2015 Harald Hoyer - 044-6.git20151201 +- fix for readonly /run on shutdown +- fix for the dmsquash-live module +Resolves: rhbz#1286866 + +* Wed Nov 25 2015 Harald Hoyer - 044-4.git20151127 +- fixes for the dmsquash-live module +- remove udev watch for raid members +- mode 0755 for the livenet generator +Resolves: rhbz#1285903 + +* Wed Nov 25 2015 Harald Hoyer - 044-1 +- version 044 + +* Mon Nov 16 2015 Harald Hoyer - 043-174.git20151116 +- git snapshot + +* Mon Nov 16 2015 Harald Hoyer - 043-173.git20151116 +- git snapshot + +* Fri Nov 13 2015 Harald Hoyer - 043-172.git20151113 +- git snapshot + +* Tue Aug 11 2015 Harald Hoyer 043-60.git20150811 +- fixed checkiso timeout +- fixed log output although quiet is set +- fixed qemu detection +- cleanup compressor handling + +* Wed Jul 22 2015 Harald Hoyer 043-40.git20150710.2 +- require "xz" to handle the kernel modules + +* Fri Jul 10 2015 Harald Hoyer 043-40.git20150710 +- git snapshot + +* Wed Jun 17 2015 Fedora Release Engineering - 043-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Jun 15 2015 Harald Hoyer 043-1 +- version 043, now with the complete tarball + +* Thu Jun 11 2015 Harald Hoyer 042-1 +- version 042, the answer to life, the universe and everything + +* Thu Feb 19 2015 Harald Hoyer 041-10.git20150219 +- git snapshot + +* Sat Jan 31 2015 Harald Hoyer 041-1 +- version 041 + +* Thu Jan 08 2015 Harald Hoyer 040-83.git20150108 +- git snapshot + +* Fri Dec 19 2014 Harald Hoyer 040-78.git20141219 +- git snapshot + +* Mon Dec 08 2014 Harald Hoyer 040-30.git20141208 +- fixed dracut-shutdown + +* Thu Dec 04 2014 Harald Hoyer 040-29.git20141204 +- git snapshot + +* Tue Sep 30 2014 Zbigniew Jędrzejewski-Szmek - 038-36.git20140815 +- Allow media check to be cancelled (rhbz 1147941) + +* Fri Sep 26 2014 Josh Boyer - 038-35.git20140815 +- Enable early-microcode by default (rhbz 1083716) +- Fix changelog date + +* Tue Aug 19 2014 Harald Hoyer - 038-34.git20140815 +- git snapshot + +* Sat Aug 16 2014 Fedora Release Engineering - 038-31.git20140815 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Aug 15 2014 Harald Hoyer 038-30.git20140815 +- git snapshot + +* Thu Jul 24 2014 Harald Hoyer 038-14.git20140724 +- fixed lvm modules issues +Resolves: rhbz#1118890 +- fixed vlan issues +- fixed prelink for FIPS +- new rd.route parameter +- more ARM modules + +* Fri Jul 11 2014 Tom Callaway - 038-2 +- fix license handling + +* Mon Jun 30 2014 Harald Hoyer 038-1 +- version 038 + +* Sat Jun 28 2014 Zbigniew Jędrzejewski-Szmek - 037-14.git20140628 +- Pull most bugfixy commits from current git +Resolves: rhbz#1112061 + +* Sat Jun 07 2014 Fedora Release Engineering - 037-13.git20140402 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 23 2014 Peter Robinson 037-12.git20140402 +- Fix achi/mmc/sdhci selection for non host based initrd + +* Thu Apr 17 2014 Adam Williamson - 037-11.git20140402 +- revert broken upstream change that causes RHBZ#1084766 + +* Wed Apr 02 2014 Harald Hoyer 037-10.git20140402 +- fixed fstab.sys with systemd +- DHCPv6 fixes +- dm-cache module now included +- FCoE fixes + +* Thu Mar 20 2014 Harald Hoyer 037-3.git20140320 +- fixed dracut-initramfs-restore with microcode + +* Thu Mar 20 2014 Harald Hoyer 037-1 +- version 037 + +* Thu Feb 06 2014 Harald Hoyer 036-16.git20140206 +- version 036 +- parse dns information on "ip=" command line arg +- preserve ownership of files, if root creates the initramfs +- parse ibft nameserver settings +- do not run dhcp twice on an interface +- try to not reload systemd + +* Wed Dec 18 2013 Harald Hoyer 034-74.git20131218 +- do not systemctl daemon-reload +- do iscsistart for iscsi_firmware even without network + +* Mon Dec 16 2013 Harald Hoyer 034-70.git20131216 +- fixed systemd password waiting +- split out fcoe uefi +- fixed lvm thin tools check + +* Thu Dec 05 2013 Harald Hoyer 034-62.git20131205 +- fixed PATH shortener +- also install /etc/system-fips in the initramfs +- nbd, do not fail in hostonly mode +- add ohci-pci to the list of hardcoded modules +- lvm: do not run pvscan for lvmetad +- network fixes +- skip crypt swaps with password files +- fixed i18n + +* Wed Oct 30 2013 Harald Hoyer 034-24.git20131030 +- fixed booting with rd.iscsi.firmware and without root= +- fips: include crct10dif_generic +- fixed missing modules in hostonly, which have no modalias +- moved dracut to /usr/sbin + +* Mon Oct 21 2013 Harald Hoyer 034-19.git20131021 +- Fixed LVM with thin provisioning +Resolves: rhbz#1013767 +Resolves: rhbz#1021083 + +* Fri Oct 18 2013 Harald Hoyer 034-18.git20131018 +- Fixed LVM with thin provisioning +Resolves: rhbz#1013767 +- fixed swap detection in host only mode + +* Fri Oct 11 2013 Kyle McMartin 034-8.git20131008 +- Force mmc_block and usb_storage into ARM initramfs. +Resolves: rhbz#1015234 + +* Tue Oct 08 2013 Harald Hoyer 034-7.git20131008 +- lvm: install thin utils for non-hostonly +- do not bail out, if kernel modules dir is missing +- dmsquash-live: add /dev/mapper/live-base +Resolves: rhbz#1016726 + +* Tue Oct 08 2013 Harald Hoyer 034-1 +- version 034 +- add option to turn on/off prelinking + --prelink, --noprelink + do_prelink=[yes|no] +- add ACPI table overriding +- do not log to syslog/kmsg/journal for UID != 0 +- lvm/mdraid: Fix LVM on MD activation +- bcache module removed (now in bcache-tools upstream) +- mdadm: also install configs from /etc/mdadm.conf.d +- fixes for mdadm-3.2.6+ +- fcoe: add FCoE UEFI boot device support +- rootfs-block: add support for the rootfallback= kernel cmdline option + +* Fri Sep 13 2013 Harald Hoyer 033-3.git20130913 +- do not dhcp members of team, bond, etc. +- harden against weird ppc kernel driver +Resolves: rhbz#1007891 + +* Thu Sep 12 2013 Harald Hoyer 033-1 +- do not cache the kernel cmdline +Resolves: rhbz#989944 +- fixed iso-scan +Resolves: rhbz#1005487 +- support blkid with bcache +Resolves: rhbz#1003207 +- ifup with dhcp, if no ip= params specified +Resolves: rhbz#989944 +- silently try to umount rpc_pipefs +Resolves: rhbz#999996 + +* Wed Sep 04 2013 Harald Hoyer 032-23.git20130904 +- fixed curl error with zero size kickstart file +Resolves: rhbz#989133 +- fixed systemd-cat failure, when systemd is installed + but not actually running +Resolves: rhbz#1002021 +- do not fail on empty dracut module directories +Resolves: rhbz#1003153 + +* Tue Aug 20 2013 Harald Hoyer 032-1 +- fix for kdump in FIPS mode +Resolves: rhbz#920931 +- fixed iBFT booting +Resolves: rhbz#989944 +- fixed FIPS mode initramfs creation +Resolves: rhbz#990250 +- shutdown: fixed killall_proc_mountpoint() +Resolves: rhbz#996549 +- disable lvmetad in the initramfs +Resolves: rhbz#996627 +- require dhclient + +* Mon Aug 12 2013 Harald Hoyer 031-29.git20130812 +- added missing "then" in initqueue + +* Mon Aug 12 2013 Harald Hoyer 031-28.git20130812 +- fixed typo in hostonly device recognition + +* Fri Aug 09 2013 Harald Hoyer 031-24.git20130809 +- fixed logging to journal + +* Fri Aug 09 2013 Harald Hoyer 031-23.git20130809 +- fixed lsinitrd + +* Fri Aug 09 2013 Harald Hoyer 031-22.git20130809 +- lsinitrd.sh: add old cpio signature +- dracut.sh: call find with -print0 and cpio with --null +- dracut.asc: small corrections +- systemd/dracut-initqueue.sh: continue to boot if finished failed +- dracut.sh/dracut-functions.sh: handle root on non-block device +- dracut-functions.sh: removed non dracut-install shell functions +- dracut-functions.sh: inst_multiple == dracut_install +- 51-dracut-rescue.install: fixed rescue image creation +- dracut.sh: do not strip in FIPS mode +Resolves: rhbz#990250 +- dracut.sh: check the value of --kver +- crypt: Fix typo--/etc/crypttab not /etc/cryptab +- network/net-lib.sh: fix ibft interface configuration +- iscsi/module-setup.sh: install some modules regardless of hostonly +- multipath: need_shutdown if multipath devices exist +Resolves: rhbz#994913 +- omit drivers fix + +* Thu Aug 01 2013 Harald Hoyer 031-7.git20130801 +- also install vt102 terminfo + +* Wed Jul 31 2013 Harald Hoyer 031-6.git20130731 +- cmssetup: fixed port for zfcp.conf +- lvm: call lvchange with --yes to boot from snapshots + +* Wed Jul 31 2013 Harald Hoyer 031-4.git20130731 +- remove action_on_fail kernel command line parameter + +* Wed Jul 31 2013 Harald Hoyer 031-3.git20130731 +- do not include adjtime and localtime in the initramfs +- write out vlan configs + +* Wed Jul 31 2013 Harald Hoyer 031-1 +- do not include the resume dracut module in hostonly mode, + if no swap is present +- don't warn twice about omitted modules +- use systemd-cat for logging on systemd systems, if logfile is unset +- fixed PARTUUID parsing +- support kernel module signing keys +- do not install the usrmount dracut module in hostonly mode, + if /sbin/init does not live in /usr +- add debian udev rule files +- add support for bcache +- network: handle bootif style interfaces + e.g. ip=77-77-6f-6f-64-73:dhcp +- add support for kmod static devnodes +- add vlan support for iBFT + +* Wed Jul 24 2013 Kyle McMartin 030-2 +- Add ehci-tegra.ko to initramfs to allow rawhide tegra based platforms + to boot off USB disks. + +* Wed Jul 17 2013 Harald Hoyer 030-1 +- support new persistent network interface names +- fix findmnt calls, prevents hang on stale NFS mounts +- add systemd.slice and slice.target units +- major shell cleanup +- support root=PARTLABEL= and root=PARTUUID= +- terminfo: only install l/linux v/vt100 and v/vt220 +- unset all LC_* and LANG, 10% faster +- fixed dependency loop for dracut-cmdline.service +- do not wait_for_dev for the root devices +- do not wait_for_dev for devices, if dracut-initqueue is not needed +- support early microcode loading with --early-microcode +- dmraid, let dmraid setup its own partitions +- sosreport renamed to rdsosreport + +* Fri Jun 14 2013 Harald Hoyer 029-1 +- wait for IPv6 auto configuration +Resolves: rhbz#973719 +- i18n: make the default font configurable +- systemd/dracut-pre-pivot.service: also execute for cleanup hooks or rd.break +- add dracut-shutdown.service.8 manpage +- lvm: redirect error message of lvs to /dev/null +Resolves: rhbz#921235 + +* Wed Jun 12 2013 Harald Hoyer 028-1 +- lvm: fixed "thin" recognition +Resolves: rhbz#921235 +- install libs also from one dir above + fixes booting power6 generated initramfs on power7 +- setup correct system time and time zone in initrd +- cms fixups +Resolves: rhbz#970982 rhbz#971025 rhbz#825199 +- iso-scan/filename fixes +Resolves: rhbz#972337 +- add udev rules for persistent network naming +Resolves: rhbz#972662 + +* Tue Jun 04 2013 Dennis Gilmore 027-82.git20130531 +- add patch to include panel-tfp410 module on arm systems + +* Fri May 31 2013 Harald Hoyer 027-81.git20130531 +- fix btrfs mount flags for /usr +- degrade message about missing tools for stripping +Resolves: rhbz#958519 +- set environment vars DRACUT_SYSTEMD, NEWROOT in service file +Resolves: rhbz#963159 +- don't add volatile swap partitions to host_devs +- add libssl.so.10 to make kdump work with fips mode +- readd selinux dracut module for kdump +- url-lib/url-lib.sh: turn off curl globbing +Resolves: rhbz#907497 +- include btrfs-zero-log in the initramfs +Resolves: rhbz#963257 +- proper NAME the network interfaces +Resolves: rhbz#965842 +- install default font latarcyrheb-sun16 +Resolves: rhbz#927564 +- optionally install /etc/pcmcia/config.opts +Resolves: rhbz#920076 +- fix ONBOOT for slaves, set TYPE=Bond for bonding +Resolves: rhbz#919001 +- add nvme kernel module +Resolves: rhbz#910734 +- add xfs_metadump +- selinux: load_policy script fix +- add hid-hyperv and hv-vmbus kernel modules +- add parameter rd.live.squashimg +Resolves: rhbz#789036 rhbz#782108 +- wait for all required interfaces if "rd.neednet=1" +Resolves: rhbz#801829 +- lvm: add tools for thin provisioning +Resolves: rhbz#921235 +- ifcfg/write-ifcfg.sh: fixed ifcfg file generation +- do not wait for mpath* devices +Resolves: rhbz#969068 + +* Wed May 22 2013 Adam Williamson 027-46.git20130430 +- don't specify "p" as a separator for dmraid +Resolves: rhbz#966162 + +* Tue Apr 30 2013 Harald Hoyer 027-45.git20130430 +- fixed fips mode more +Resolves: rhbz#956521 + +* Thu Apr 25 2013 Harald Hoyer 027-39.git20130425 +- fix shutdown, if /dev/console is not writeable +- fixed fips mode +Resolves: rhbz#956521 + +* Thu Apr 18 2013 Harald Hoyer 027-36.git20130418 +- fix initramfs creation on noexec tmpdir +Resolves: rhbz#953426 +- more options for lsinitrd +- bash completion for lsinitrd +- do not output debug information on initramfs creation, if rd.debug is + on the kernel command line +- drop requirement on 'file', lsinitrd can find the magic on its own + +* Mon Apr 15 2013 Harald Hoyer 027-26.git20130415 +- do not call plymouth with full path +- include systemd-random-seed-load.service +- fix ca-bundle.crt for ssl curl +Resolves: rhbz#950770 +- add support for "iso-scan/filename" kernel parameter + +* Wed Apr 10 2013 Harald Hoyer 027-19.git20130410 +- also handle UUID= entries in crypttab in host-only mode +Resolves:rhbz#919752 + +* Tue Apr 09 2013 Harald Hoyer 027-17.git20130409 +- only include needed /etc/crypttab entries +Resolves:rhbz#919752 +- add support for bridge over team and vlan +- support multiple bonding interfaces +- add "action_on_fail=" kernel command line parameter +- add support for bridge over a vlan tagged interface + +* Fri Apr 05 2013 Harald Hoyer 027-10.git20130405 +- fix crypto password timeout on the dracut side + +* Tue Mar 26 2013 Harald Hoyer 027-1 +- version 027 + +* Wed Mar 20 2013 Harald Hoyer 026-72.git20130320 +- fix rescue image naming +Resolves: rhbz#923439 +- turn off host-only mode if essential system filesystems not mounted +- turn off host-only mode if udev database is not accessible + +* Tue Mar 19 2013 Harald Hoyer 026-62.git20130319 +- fix dracut service ordering +Resolves: rhbz#922991 + +* Mon Mar 18 2013 Harald Hoyer 026-56.git20130318 +- don't fail hard on kernel modules install +Resolves: rhbz#922565 + +* Mon Mar 18 2013 Harald Hoyer 026-55.git20130318 +- install all host filesystem drivers +Resolves: rhbz#922565 + +* Sat Mar 16 2013 Harald Hoyer 026-54.git20130316 +- fix for squashfs +Resolves: rhbz#922248 +- documentation fixes +- sosreport, mkdir /run/initramfs + +* Fri Mar 15 2013 Harald Hoyer 026-48.git20130315 +- use new initrd.target from systemd +- fixed rescue generation + +* Wed Mar 13 2013 Harald Hoyer 026-33.git20130313 +- add module-load.d modules to the initramfs +- add sysctl.d to the initramfs +- optimize plymouth module for systemd mode +- add new dracut parameter "--regenerate-all" +- add new dracut parameter "--noimageifnotneeded" +- shutdown: mount move /run /sys /dev /proc out of /oldroot + before pre-shutdown +- add bash completion for dracut + +* Wed Mar 13 2013 Harald Hoyer 026-19.git20130313 +- fix switch-root and local-fs.target problem +- add norescue and nohostonly subpackages + +* Mon Mar 11 2013 Harald Hoyer 026-15.git20130311 +- update to recent git + +* Fri Mar 08 2013 Harald Hoyer 026-1 +- version 026 + +* Mon Feb 11 2013 Harald Hoyer 025-35.git20130211 +- update to recent git + +* Wed Jan 23 2013 Harald Hoyer 025-1 +- version 025 + +* Tue Aug 21 2012 Harald Hoyer 023-13.git20120821 +- reintroduce rd.neednet, which reenables anaconda networking +- fix some dracut-install corner cases +- fix FIPS for /boot not on extra partition + +* Wed Aug 01 2012 Dennis Gilmore - 023-2 +- add patch to include omap_hsmmc for arm + +* Wed Aug 01 2012 Harald Hoyer 023-1 +- version 023 + +* Mon Jul 30 2012 Harald Hoyer 022-99.git20120730 +- removed install of missing finished-ask-password.sh + +* Mon Jul 30 2012 Harald Hoyer 022-97.git20120730 +- moved crypt setup to systemd units + +* Fri Jul 27 2012 Harald Hoyer 022-63.git20120727 +- fixed dracut-install bug if /var/tmp contains a symlink +- fixed some partx issues + +* Mon Jul 23 2012 Harald Hoyer 022-5.git20120723 +- dracut.8: added more documentation about executing dracut + +* Fri Jul 20 2012 Harald Hoyer 022-2.git20120720 +- fixed some race condition for resume from hibernation + +* Fri Jul 20 2012 Harald Hoyer 022-1 +- version 022 +- host-only kernel modules fix + +* Fri Jul 20 2012 Harald Hoyer 021-1 +- version 21 +- systemd in the initramfs reenabled +- new option "--kver" + +* Wed Jul 18 2012 Fedora Release Engineering - 020-97.git20120717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jul 17 2012 Harald Hoyer 020-96.git20120717 +- disabled systemd in the initramfs, until it works correctly + +* Wed Jul 11 2012 Harald Hoyer 020-84.git20120711 +- add back "--force" to switch-root, otherwise systemd umounts /run + +* Wed Jul 11 2012 Harald Hoyer 020-83.git20120711 +- more systemd journal fixes +- nfs module fix +- install also /lib/modprobe.d/* +- fixed dracut-shutdown service +- safeguards for dracut-install +- for --include also copy symlinks + +* Tue Jul 10 2012 Harald Hoyer 020-72.git20120710 +- stop journal rather than restart +- copy over dracut services to /run/systemd/system + +* Tue Jul 10 2012 Harald Hoyer 020-70.git20120710 +- more systemd unit fixups +- restart systemd-journald in switch-root post +- fixed dracut-install loader ldd error message + +* Mon Jul 09 2012 Harald Hoyer 020-64.git20120709 +- fixed plymouth install +- fixed resume +- fixed dhcp +- no dracut systemd services installed in the system + +* Mon Jul 09 2012 Harald Hoyer 020-57.git20120709 +- more fixups for systemd-udevd unit renaming + +* Mon Jul 09 2012 Harald Hoyer 020-55.git20120709 +- require systemd >= 186 +- more fixups for systemd-udevd unit renaming + +* Mon Jul 09 2012 Harald Hoyer 020-52.git20120709 +- fixed prefix in 01-dist.conf + +* Fri Jul 06 2012 Harald Hoyer 020-51.git20120706 +- cope with systemd-udevd unit renaming +- fixed network renaming +- removed dash module + +* Mon Jul 02 2012 Harald Hoyer 020-22.git20120702 +- fixed kernel modules install + +* Mon Jul 02 2012 Harald Hoyer 020-21.git20120702 +- moved /usr/bin/dracut-install to /usr/lib +- more speedups + +* Fri Jun 29 2012 Harald Hoyer 020-1 +- version 020 +- new /usr/bin/dracut-install tool +- major speedup of the image creation + +* Mon Jun 25 2012 Harald Hoyer 019-92.git20120625 +- support vlan tagged binding +- speedup initramfs emergency service +- speedup image creation +- fix installkernel() return codes +Resolves: rhbz#833256 +- add qemu and qemu-net modules to add qemu drivers even in host-only +- speedup btrfs and xfs fsck (nop) +- no more mknod in the initramfs (fixes plymouth on s390) + +* Thu Jun 21 2012 Harald Hoyer 019-62.git20120621 +- do not require pkg-config for systemd +- i18n fixes +- less systemd services in the initramfs + +* Thu Jun 21 2012 Harald Hoyer 019-57.git20120620 +- systemd is now the default init in the initramfs + +* Mon Jun 18 2012 Harald Hoyer 019-40.git20120618 +- new upstream version + +* Mon Jun 11 2012 Harald Hoyer 019-16.git20120611 +- new upstream version + +* Tue Jun 05 2012 Dennis Gilmore 019-2 +- include omapdrm with the arm modules + +* Mon Jun 04 2012 Harald Hoyer 019-1 +- version 019-1 + +* Tue May 22 2012 Harald Hoyer 018-74.git20120522 +- new upstream version + +* Thu May 17 2012 Dennis Gilmore 018-53.git20120509 +- add patch to pull in arm storage modules + +* Wed May 09 2012 Harald Hoyer 018-52.git20120509 +- new upstream version + +* Fri May 04 2012 Harald Hoyer 018-40.git20120504 +- new upstream version + +* Wed Apr 25 2012 Harald Hoyer 018-37.git20120425.1 +- fixup for multipath and iscsi host-only detection + +* Wed Apr 25 2012 Harald Hoyer 018-37.git20120425 +- fixed udevd location + +* Tue Apr 24 2012 Harald Hoyer 018-33.git20120424 +- new upstream version + +* Thu Apr 19 2012 Harald Hoyer 018-25.git20120419 +- fixed network for non-network root (like installer media) + +* Wed Apr 18 2012 Harald Hoyer 018-22.git20120418 +- new upstream version + +* Mon Apr 16 2012 Harald Hoyer 018-12.git20120416 +- new upstream version, which fixes various anaconda loader issues + +* Thu Apr 05 2012 Harald Hoyer 018-1 +- version 018 + +* Thu Mar 22 2012 Harald Hoyer 017-62.git20120322 +- fixed /run prefix copying + +* Wed Mar 21 2012 Harald Hoyer 017-59.git20120321 +- new upstream version, which fixes various anaconda loader issues + +* Mon Mar 12 2012 Harald Hoyer 017-43.git20120312 +- live image: fixed image uncompression +- live updates for livenet + +* Thu Mar 08 2012 Harald Hoyer 017-40.git20120308 +- add s390 ctcm network kernel module + +* Thu Mar 08 2012 Harald Hoyer 017-39.git20120308 +- kill dhclient silently +- cleanup and fix network config writeout to /run/initramfs/state +Resolves: rhbz#799989 +- various cleanups + +* Fri Mar 02 2012 Harald Hoyer 017-22.git20120302 +- nfs path fixes for live image over nfs + root=live:nfs://10.10.10.10:/srv/all/install.img ip=dhcp rd.neednet + +* Thu Mar 01 2012 Harald Hoyer 017-19.git20120301 +- fixed include of some kernel modules + +* Wed Feb 29 2012 Harald Hoyer 017-17.git20120229 +- update to latest git +- fixes for convertfs (/usr-move) + +* Fri Feb 24 2012 Harald Hoyer 017-1 +- version 017 + +* Fri Feb 17 2012 Harald Hoyer 016-9.git20120217 +- update to latest git + +* Wed Feb 15 2012 Harald Hoyer 016-1 +- version 016 + +* Mon Feb 13 2012 Harald Hoyer 015-9.git20120213 +- update to latest git + +* Sun Feb 12 2012 Kay Sievers - 015-9.git20120210 +- fix dependency loop in systemd service files + +* Fri Feb 10 2012 Harald Hoyer 015-8.git20120210 +- update to latest git + +* Thu Feb 09 2012 Harald Hoyer 015-7.git20120209 +- update to latest git + +* Thu Feb 09 2012 Harald Hoyer 015-4.git20120209 +- update to latest git + +* Wed Feb 08 2012 Harald Hoyer 015-3.git20120208 +- update to latest git + +* Tue Feb 07 2012 Harald Hoyer 015-1 +- version 015 + +* Thu Feb 02 2012 Harald Hoyer 014-81.git20120202 +- update to latest git + +* Thu Feb 02 2012 Harald Hoyer 014-80.git20120202 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-77.git20120126.1 +- rebuild for rawhide + +* Thu Jan 26 2012 Harald Hoyer 014-77.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-76.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-75.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-74.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-73.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-72.git20120126 +- update to latest git + +* Mon Jan 23 2012 Harald Hoyer 014-65.git20120123 +- update to latest git + +* Mon Jan 23 2012 Harald Hoyer 014-61.git20120123 +- update to latest git + +* Tue Jan 17 2012 Harald Hoyer 014-38.git20120117 +- update to latest git + +* Fri Jan 13 2012 Fedora Release Engineering - 014-10.git20111215 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Dec 15 2011 Harald Hoyer 014-9.git20111215 +- update to latest git +- lots of patch changes + +* Fri Oct 21 2011 Harald Hoyer 013-100.git20111021 +- update to latest git + +* Thu Oct 20 2011 Harald Hoyer 013-93.git20111020 +- update to latest git + +* Wed Oct 19 2011 Harald Hoyer 013-85.git20111019 +- update to latest git + +* Tue Oct 04 2011 Harald Hoyer 013-15 +- fixed mdraid container handling +Resolves: rhbz#743240 + +* Thu Sep 22 2011 Harald Hoyer 013-13 +- fixed mdraid issues +- fixed btrfsck +Resolves: rhbz#735602 + +* Wed Sep 21 2011 Harald Hoyer 013-12 +- removed patch backup files +- reintroduced /dev/live + +* Tue Sep 20 2011 Harald Hoyer 013-11 +- move mounting of securitfs to a seperate module +Resolves: rhbz#737140 + +* Tue Sep 20 2011 Harald Hoyer 013-10 +- mount securitfs with the correct source +Resolves: rhbz#737140 + +* Tue Sep 20 2011 Harald Hoyer 013-9 +- do not carry over initramfs udev rules +Resolves: rhbz#734096 + +* Fri Sep 02 2011 Harald Hoyer 013-8 +- hopefully fixed one part of a loop/udev and loop/mount race +Resolves: rhbz#735199 + +* Wed Aug 31 2011 Harald Hoyer 013-7 +- add /lib/udev/input_id to the initramfs +- fix hmac install + +* Tue Aug 30 2011 Harald Hoyer 013-6 +- fixed environment passing to real init +Resolves: rhbz#733674 +- fixed lvm on md + +* Mon Aug 29 2011 Harald Hoyer 013-5 +- fixed rhel/fedora version checks + +* Wed Aug 17 2011 Harald Hoyer 013-4 +- fixed crash with livenet installed + +* Wed Aug 17 2011 Harald Hoyer 013-3 +- fixed live iso mounting +Resolves: rhbz#730579 + +* Fri Aug 12 2011 Harald Hoyer 013-1 +- fixed symlink creation for lorax + +* Wed Aug 10 2011 Harald Hoyer 011-41.git20110810 +- fixed getargs() for empty args + +* Wed Aug 10 2011 Harald Hoyer 011-40.git20110810 +- fixed symbolic link creation in the initramfs +Resolves: rhbz#728863 + +* Wed Jul 20 2011 Harald Hoyer 011-15.git20110720 +- "eject" is optional now +- refined shutdown procedure + +* Mon Jul 18 2011 Harald Hoyer 011-1 +- version 011 + +* Fri May 20 2011 Harald Hoyer 011-0.1 +- git snapshot of pre-version 011 + +* Fri Apr 01 2011 Harald Hoyer 010-1 +- version 010 + +* Thu Mar 31 2011 Harald Hoyer 009-5 +- fixed PATH and kmsg logging + +* Thu Mar 31 2011 Harald Hoyer 009-4 +- fixed dmsquash rule generation +- fixed fips boot arg parsing +- fixed plymouth pid generation + +* Wed Mar 30 2011 Harald Hoyer 009-3 +- fixed dhcp +- added /lib/firmware/updates to firmware directories +- fixed LiveCD /dev/.initramfs fallback +- fixed cdrom polling +- dropped net-tools dependency + +* Tue Mar 29 2011 Harald Hoyer 009-2 +- fixed empty output file argument handling: + "dracut '' " + +* Mon Mar 28 2011 Harald Hoyer 009-1 +- version 009 + +* Thu Mar 17 2011 Harald Hoyer 009-0.1 +- version 009 prerelease + +* Tue Feb 22 2011 Harald Hoyer 008-7 +- fixed lvm version parsing + +* Tue Feb 22 2011 Harald Hoyer 008-6 +- fixed lvm version parsing + +* Mon Feb 21 2011 Harald Hoyer 008-5 +- fixed i18n unicode setting +- set cdrom in kernel polling + +* Fri Feb 18 2011 Harald Hoyer 008-4 +- readded dist tag + +* Fri Feb 18 2011 Harald Hoyer 008-3 +- fixed i18n +- turned off selinux by default + +* Wed Feb 09 2011 Harald Hoyer 008-2 +- do not write dracut.log to /tmp under any circumstances +- touch /dev/.systemd/plymouth after plymouth started + +* Tue Feb 08 2011 Fedora Release Engineering - 008-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Feb 02 2011 Harald Hoyer 008-1 +- version 008-1 + +* Mon Jan 17 2011 Harald Hoyer 008-0.11 +- removed "mount" requirement + +* Thu Nov 18 2010 Harald Hoyer - 008-0.10 +- dracut-008 pre git snapshot +- fixes /dev/dri permissions +Resolves: rhbz#626559 + +* Fri Nov 12 2010 Harald Hoyer 008-0.9 +- dracut-008 pre git snapshot +- fixes /dev/.udev permissions +Resolves: rhbz#651594 + +* Wed Nov 3 2010 Harald Hoyer - 008-0.8 +- fixed fsck -a option + +* Fri Oct 29 2010 Harald Hoyer 008-0.7 +- added fsck to initramfs + +* Fri Oct 29 2010 Harald Hoyer 008-0.6 +- fixed rpm macros + +* Fri Oct 29 2010 Harald Hoyer 008-0.5 +- dracut-008 pre git snapshot + +* Mon Aug 09 2010 Harald Hoyer 007-1 +- version 007 + +* Thu Jun 17 2010 Harald Hoyer 006-1 +- version 006 + +* Fri Jun 11 2010 Harald Hoyer +- Remove requirements, which are not really needed +Resolves: rhbz#598509 +- fixed copy of network config to /dev/.initramfs/ (patch 146) +Resolves: rhbz#594649 +- more password beauty (patch 142) +Resolves: rhbz#561092 +- support multiple iSCSI disks (patch 143) +Resolves: rbhz#580190 +- fixed selinux=0 (patch 130) +Resolves: rhbz#593080 +- add support for booting LVM snapshot root volume (patch 145) +Resolves: rbhz#602723 +- remove hardware field from BOOTIF= (patch 148) +Resolves: rhbz#599593 +- add aes kernel modules and fix crypt handling (patch 137, patch 140 and patch 147) +Resolves: rhbz#600170 + +* Thu May 27 2010 Harald Hoyer +- fixed Requirements +- fixed autoip6 +Resolves: rhbz#538388 +- fixed multipath +Resolves: rhbz#595719 + +* Thu May 06 2010 Harald Hoyer +- only display short password messages +Resolves: rhbz#561092 + +* Thu May 06 2010 Harald Hoyer +- fixed dracut manpages +Resolves: rhbz#589109 +- use ccw-init and ccw rules from s390utils +Resolves: rhbz#533494 +- fixed fcoe +Resolves: rhbz#486244 +- various other bugfixes seen in Fedora + +* Tue Apr 20 2010 Harald Hoyer +- fixed network with multiple nics +- fixed nfsidmap paths +- do not run blkid on non active container raids +- fixed cdrom polling mechanism +- update to latest git + +* Thu Apr 15 2010 Harald Hoyer +- fixed dracut manpages +- dmraid parse different error messages +- add cdrom polling mechanism for slow cdroms +- add module btrfs +- teach dmsquash live-root to use rootflags +- trigger udev with action=add +- fixed add_drivers handling +- add sr_mod +- use pigz instead of gzip, if available + +* Thu Mar 25 2010 Harald Hoyer +- removed firmware requirements (rhbz#572634) +- add /etc/dracut.conf.d +- Resolves: rhbz#572634 + +* Fri Mar 19 2010 Harald Hoyer +- version 005 + +* Fri Mar 19 2010 Harald Hoyer +- fixed rpmlint errors (rhbz#570547) +- removed firmware package from dracut-kernel (rhbz#572634) +- add dcb support to dracut's FCoE support (rhbz#563794) +- force install some modules in hostonly mode (rhbz#573094) +- various other bugfixes +- Resolves: rhbz#570547, rhbz#572634, rhbz#563794, rhbz#573094 + +* Thu Feb 18 2010 Harald Hoyer 004-15 +- fixed "selinux=0" booting (rhbz#566376) +- fixed internal IFS handling +- Resolves: rhbz#566376 + +* Fri Jan 29 2010 Harald Hoyer 004-5 +- fixed firmware.sh bug (#559975 #559597) + +* Tue Jan 26 2010 Harald Hoyer 004-4 +- add multipath check + +* Tue Jan 26 2010 Harald Hoyer 004-3 +- fix selinux handling if .autorelabel is present +- Resolves: rhbz#557744 + +* Wed Jan 20 2010 Harald Hoyer 004-2 +- fix emergency_shell argument parsing +- Related: rhbz#543948 + +* Fri Jan 15 2010 Harald Hoyer 004-1 +- version 004 +- Resolves: rhbz#529339 rhbz#533494 rhbz#548550 +- Resolves: rhbz#548555 rhbz#553195 + +* Wed Jan 13 2010 Harald Hoyer 003-3 +- add Obsoletes of mkinitrd/nash/libbdevid-python +- Related: rhbz#543948 + +* Wed Jan 13 2010 Warren Togami 003-2 +- nbd is Fedora only + +* Fri Nov 27 2009 Harald Hoyer 003-1 +- version 003 + +* Mon Nov 23 2009 Harald Hoyer 002-26 +- add WITH_SWITCH_ROOT make flag +- add fips requirement conditional +- add more device mapper modules (bug #539656) + +* Fri Nov 20 2009 Dennis Gregorovic - 002-25.1 +- nss changes for Alpha 3 + +* Thu Nov 19 2009 Harald Hoyer 002-25 +- add more requirements for dracut-fips (bug #539257) + +* Tue Nov 17 2009 Harald Hoyer 002-24 +- put fips module in a subpackage (bug #537619) + +* Tue Nov 17 2009 Harald Hoyer 002-23 +- install xdr utils for multipath (bug #463458) + +* Thu Nov 12 2009 Harald Hoyer 002-22 +- add module 90multipath +- add module 01fips +- renamed module 95ccw to 95znet (bug #533833) +- crypt: ignore devices in /etc/crypttab (root is not in there) +- dasd: only install /etc/dasd.conf in hostonly mode (bug #533833) +- zfcp: only install /etc/zfcp.conf in hostonly mode (bug #533833) +- kernel-modules: add scsi_dh scsi_dh_rdac scsi_dh_emc (bug #527750) +- dasd: use dasdconf.sh from s390utils (bug #533833) + +* Fri Nov 06 2009 Harald Hoyer 002-21 +- fix rd_DASD argument handling (bug #531720) +- Resolves: rhbz#531720 + +* Wed Nov 04 2009 Harald Hoyer 002-20 +- fix rd_DASD argument handling (bug #531720) +- Resolves: rhbz#531720 + +* Tue Nov 03 2009 Harald Hoyer 002-19 +- changed rd_DASD to rd_DASD_MOD (bug #531720) +- Resolves: rhbz#531720 + +* Tue Oct 27 2009 Harald Hoyer 002-18 +- renamed lvm/device-mapper udev rules according to upstream changes +- fixed dracut search path issue + +* Mon Oct 26 2009 Harald Hoyer 002-17 +- load dm_mod module (bug #530540) + +* Fri Oct 09 2009 Jesse Keating - 002-16 +- Upgrade plymouth to Requires(pre) to make it show up before kernel + +* Thu Oct 08 2009 Harald Hoyer 002-15 +- s390 ccw: s/layer1/layer2/g + +* Thu Oct 08 2009 Harald Hoyer 002-14 +- add multinic support +- add s390 zfcp support +- add s390 network support + +* Wed Oct 07 2009 Harald Hoyer 002-13 +- fixed init= handling +- kill loginit if "rdinitdebug" specified +- run dmsquash-live-root after udev has settled (bug #527514) + +* Tue Oct 06 2009 Harald Hoyer 002-12 +- add missing loginit helper +- corrected dracut manpage + +* Thu Oct 01 2009 Harald Hoyer 002-11 +- fixed dracut-gencmdline for root=UUID or LABEL + +* Thu Oct 01 2009 Harald Hoyer 002-10 +- do not destroy assembled raid arrays if mdadm.conf present +- mount /dev/shm +- let udevd not resolve group and user names +- preserve timestamps of tools on initramfs generation +- generate symlinks for binaries correctly +- moved network from udev to initqueue +- mount nfs3 with nfsvers=3 option and retry with nfsvers=2 +- fixed nbd initqueue-finished +- improved debug output: specifying "rdinitdebug" now logs + to dmesg, console and /init.log +- stop udev before killing it +- add ghost /var/log/dracut.log +- dmsquash: use info() and die() rather than echo +- strip kernel modules which have no x bit set +- redirect stdin, stdout, stderr all RW to /dev/console + so the user can use "less" to view /init.log and dmesg + +* Tue Sep 29 2009 Harald Hoyer 002-9 +- make install of new dm/lvm udev rules optionally +- correct dasd module typo + +* Fri Sep 25 2009 Warren Togami 002-8 +- revert back to dracut-002-5 tarball 845dd502 + lvm2 was reverted to pre-udev + +* Wed Sep 23 2009 Harald Hoyer 002-7 +- build with the correct tarball + +* Wed Sep 23 2009 Harald Hoyer 002-6 +- add new device mapper udev rules and dmeventd + bug 525319, 525015 + +* Wed Sep 23 2009 Warren Togami 002-5 +- Revert back to -3, Add umount back to initrd + This makes no functional difference to LiveCD. See Bug #525319 + +* Mon Sep 21 2009 Warren Togami 002-4 +- Fix LiveCD boot regression + +* Mon Sep 21 2009 Harald Hoyer 002-3 +- bail out if selinux policy could not be loaded and + selinux=0 not specified on kernel command line + (bug #524113) +- set finished criteria for dmsquash live images + +* Fri Sep 18 2009 Harald Hoyer 002-2 +- do not cleanup dmraids +- copy over lvm.conf + +* Thu Sep 17 2009 Harald Hoyer 002-1 +- version 002 +- set correct PATH +- workaround for broken mdmon implementation + +* Wed Sep 16 2009 Harald Hoyer 001-12 +- removed lvm/mdraid/dmraid lock files +- add missing ifname= files + +* Wed Sep 16 2009 Harald Hoyer 001-11 +- generate dracut-version during rpm build time + +* Tue Sep 15 2009 Harald Hoyer 001-10 +- add ifname= argument for persistent netdev names +- new /initqueue-finished to check if the main loop can be left +- copy mdadm.conf if --mdadmconf set or mdadmconf in dracut.conf + +* Wed Sep 09 2009 Harald Hoyer 001-9 +- added Requires: plymouth-scripts + +* Wed Sep 09 2009 Harald Hoyer 001-8 +- plymouth: use plymouth-populate-initrd +- add add_drivers for dracut and dracut.conf +- do not mount /proc and /selinux manually in selinux-load-policy + +* Wed Sep 09 2009 Harald Hoyer 001-7 +- add scsi_wait_scan to be sure everything was scanned + +* Tue Sep 08 2009 Harald Hoyer 001-6 +- fixed several problems with md raid containers +- fixed selinux policy loading + +* Tue Sep 08 2009 Harald Hoyer 001-5 +- patch does not honor file modes, fixed them manually + +* Mon Sep 07 2009 Harald Hoyer 001-4 +- fixed mdraid for IMSM + +* Mon Sep 07 2009 Harald Hoyer 001-3 +- fixed bug, which prevents installing 61-persistent-storage.rules (bug #520109) + +* Thu Sep 03 2009 Harald Hoyer 001-2 +- fixed missing grep for md +- reorder cleanup + +* Wed Sep 02 2009 Harald Hoyer 001-1 +- version 001 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Fri Aug 14 2009 Harald Hoyer 0.9-1 +- version 0.9 + +* Thu Aug 06 2009 Harald Hoyer 0.8-1 +- version 0.8 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Fri Jul 24 2009 Harald Hoyer 0.7-1 +- version 0.7 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Wed Jul 22 2009 Harald Hoyer 0.6-1 +- version 0.6 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Fri Jul 17 2009 Harald Hoyer 0.5-1 +- version 0.5 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Sat Jul 04 2009 Harald Hoyer 0.4-1 +- version 0.4 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Thu Jul 02 2009 Harald Hoyer 0.3-1 +- version 0.3 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Wed Jul 01 2009 Harald Hoyer 0.2-1 +- version 0.2 + +* Fri Jun 19 2009 Harald Hoyer 0.1-1 +- first release + +* Thu Dec 18 2008 Jeremy Katz - 0.0-1 +- Initial build diff --git a/lgpl-2.1.txt b/lgpl-2.1.txt new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/lgpl-2.1.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/newdracut.sh b/newdracut.sh new file mode 100644 index 0000000..c53481d --- /dev/null +++ b/newdracut.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [[ -f "$HOME/git/dracut/$1" ]]; then + srcrpm="$HOME/git/dracut/$1" +else + srcrpm="$1" +fi + +[[ -f $srcrpm ]] || exit 0 + +cp dracut.spec dracut.spec.old +for i in *.patch; do git rm -f $i;done + +if rpm -ivh --define "_srcrpmdir $PWD" --define "_specdir $PWD" --define "_sourcedir $PWD" "$srcrpm"; then + ls *.patch &>/dev/null && git add *.patch + perl -n -e 'if ($do_print) {print "$_" ;}; if (/^%changelog/) { $do_print=1; }' < dracut.spec.old >> dracut.spec +fi diff --git a/sources b/sources new file mode 100644 index 0000000..79b077e --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (dracut-050.tar.xz) = 9d9a66acfd6b9d2fd50855a59a2393e0602c2ef97119db046f68d6167ea84d1423fa465b8b4d96339febb38d5a96df26dec7862c4b3397c3d726db18d280eee4 diff --git a/tests/add-luks-keys/Makefile b/tests/add-luks-keys/Makefile new file mode 100644 index 0000000..17a923a --- /dev/null +++ b/tests/add-luks-keys/Makefile @@ -0,0 +1,52 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /dracut/add-luks-keys +# Description: Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase +# Author: Jan Stodola +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2016 Red Hat, Inc. All rights reserved. +# Red Hat Internal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/dracut/add-luks-keys +export TESTVERSION=1.0 +export DESCRIPTION="Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase" + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Jan Stodola " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: $(DESCRIPTION)" >> $(METADATA) + @echo "Type: Install" >> $(METADATA) + @echo "TestTime: 10m" >> $(METADATA) + @echo "RunFor: dracut" >> $(METADATA) + @echo "Requires: dracut" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: Red Hat Internal" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/add-luks-keys/PURPOSE b/tests/add-luks-keys/PURPOSE new file mode 100644 index 0000000..a7c6063 --- /dev/null +++ b/tests/add-luks-keys/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /dracut/add-luks-keys +Description: Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase. +Author: Jan Stodola diff --git a/tests/add-luks-keys/runtest.sh b/tests/add-luks-keys/runtest.sh new file mode 100644 index 0000000..7ef652b --- /dev/null +++ b/tests/add-luks-keys/runtest.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /dracut/add-luks-keys +# Description: Create and add a luks key to all luks devices to allow booting of a system without entering a passphrase +# Author: Jan Stodola +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2016 Red Hat, Inc. All rights reserved. +# Red Hat Internal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/bin/rhts-environment.sh || exit 1 +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="dracut" + +keyfile="/root/keyfile" +kernel_file=`grubby --default-kernel` +initrd_file=`grubby --info=$kernel_file | grep ^initrd= | sed 's/^initrd=//' | head -n1` +kernel_version=`rpm -qf $kernel_file --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n'` + +rlJournalStart + rlPhaseStartTest "Add luks keys to initramfs" + + if [ ! -e "$keyfile" ]; then + rlLog "Creating new key file: $keyfile" + rlRun "dd if=/dev/urandom bs=1 count=32 of=$keyfile" + rlRun "chmod 0400 $keyfile" + else + rlLog "Using existing key file: $keyfile" + fi + + rlAssertExists "/etc/crypttab" + rlFileSubmit "/etc/crypttab" + UUIDS=`cat /etc/crypttab | cut -d' ' -f2 | cut -d'=' -f2` + for UUID in $UUIDS; do + rlRun "echo 'redhat' | /sbin/cryptsetup luksAddKey /dev/disk/by-uuid/$UUID $keyfile" + done; + + # modify /etc/crypttab, set key file in the thirth column of the file + rlRun "awk -v \"KEY_FILE=$keyfile\" '{\$3=KEY_FILE; print \$0}' /etc/crypttab > crypttab_mod" + rlRun "mv -Z crypttab_mod /etc/crypttab" + rlRun "chmod 0600 /etc/crypttab" + + rlRun "dracut -f -I $keyfile $initrd_file $kernel_version" + + # zipl has to be executed on s390x + if [ -x /sbin/zipl ]; then + rlRun "/sbin/zipl" + fi + + rlPhaseEnd +rlJournalEnd + diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..60a098d --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,11 @@ +--- +# This first play always runs on the local staging system +- hosts: localhost + roles: + - role: standard-test-beakerlib + tags: + - classic + tests: + - add-luks-keys + required_packages: + - dracut # Required for add-luks-keys