diff options
Diffstat (limited to 'sys-kernel/dracut/files')
13 files changed, 226 insertions, 393 deletions
diff --git a/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch b/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch deleted file mode 100644 index fd6f11859457..000000000000 --- a/sys-kernel/dracut/files/044-0001-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch +++ /dev/null @@ -1,32 +0,0 @@ -From c41df7e1db1adc51399ab2c22f251b15eb2065b1 Mon Sep 17 00:00:00 2001 -From: Alexander Tsoy <alexander@tsoy.me> -Date: Tue, 5 Jan 2016 22:11:57 +0300 -Subject: [PATCH] base/dracut-lib.sh:dev_unit_name() guard against $dev - beginning with "-" - -crypt/parse-crypt.sh generate initqueue job which always call -dev_unit_name() with an argument beginning with "-". This results -in the following error: - -dracut-initqueue[307]: + systemd-escape -p -cfb4aa43-2f02-4c6b-a313-60ea99288087 -dracut-initqueue[307]: systemd-escape: invalid option -- 'c' ---- - modules.d/99base/dracut-lib.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh -index ad03394..0a0b1b9 100755 ---- a/modules.d/99base/dracut-lib.sh -+++ b/modules.d/99base/dracut-lib.sh -@@ -874,7 +874,7 @@ dev_unit_name() - local dev="$1" - - if command -v systemd-escape >/dev/null; then -- systemd-escape -p "$dev" -+ systemd-escape -p -- "$dev" - return - fi - --- -2.10.2 - diff --git a/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch b/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch deleted file mode 100644 index 21cb6792acd2..000000000000 --- a/sys-kernel/dracut/files/044-0002-systemd-initrd-add-initrd-root-device.target.patch +++ /dev/null @@ -1,24 +0,0 @@ -From d4efc0aeeecc470d9a267b7f3c130f472488905c Mon Sep 17 00:00:00 2001 -From: Harald Hoyer <harald@redhat.com> -Date: Wed, 25 May 2016 15:06:29 +0200 -Subject: [PATCH] systemd-initrd: add initrd-root-device.target - ---- - modules.d/01systemd-initrd/module-setup.sh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh -index fb6a9ea..c1ccd2a 100755 ---- a/modules.d/01systemd-initrd/module-setup.sh -+++ b/modules.d/01systemd-initrd/module-setup.sh -@@ -28,6 +28,7 @@ install() { - inst_multiple -o \ - $systemdsystemunitdir/initrd.target \ - $systemdsystemunitdir/initrd-fs.target \ -+ $systemdsystemunitdir/initrd-root-device.target \ - $systemdsystemunitdir/initrd-root-fs.target \ - $systemdsystemunitdir/initrd-switch-root.target \ - $systemdsystemunitdir/initrd-switch-root.service \ --- -2.10.2 - diff --git a/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch b/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch deleted file mode 100644 index 85ebc7e638f2..000000000000 --- a/sys-kernel/dracut/files/044-0003-50-dracut.install-use-bin-bash-shebang.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 69395a528aed99ec04b16c14ebacf4c2e10afd26 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <floppym@gentoo.org> -Date: Fri, 4 Nov 2016 13:09:28 -0400 -Subject: [PATCH] 50-dracut.install: use /bin/bash shebang - -This script utilizes several bash-specific constructs. ---- - 50-dracut.install | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/50-dracut.install b/50-dracut.install -index 7d081d5..54c71d4 100755 ---- a/50-dracut.install -+++ b/50-dracut.install -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/bin/bash - - COMMAND="$1" - KERNEL_VERSION="$2" --- -2.10.2 - diff --git a/sys-kernel/dracut/files/045-systemdutildir.patch b/sys-kernel/dracut/files/045-systemdutildir.patch deleted file mode 100644 index e56abba35470..000000000000 --- a/sys-kernel/dracut/files/045-systemdutildir.patch +++ /dev/null @@ -1,45 +0,0 @@ -From ed5cc98864c28eab2c4cb45ec0f67450699aaaa8 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <floppym@gentoo.org> -Date: Mon, 3 Jul 2017 22:39:42 -0400 -Subject: [PATCH] dracut.sh: improve udevdir and systemdutildir fallback logic - -Check for a common binary in systemdutildir. This resolves an issue on -split-usr systems, where it is common to have both /lib/systemd[/system] -and /usr/lib/systemd[/user] present. - -Check for systemd-udevd specifically, since some distros (Gentoo) allow -udev to be installed without the rest of the systemd stack. - -Similar logic is applied to udevdir simply for consistency. ---- - dracut.sh | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/dracut.sh b/dracut.sh -index 64d94201..67c12a72 100755 ---- a/dracut.sh -+++ b/dracut.sh -@@ -1266,16 +1266,16 @@ done - [[ -d $udevdir ]] \ - || udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)" - if ! [[ -d "$udevdir" ]]; then -- [[ ! -h /lib ]] && [[ -d /lib/udev ]] && udevdir=/lib/udev -- [[ -d /usr/lib/udev ]] && udevdir=/usr/lib/udev -+ [[ -e /lib/udev/collect ]] && udevdir=/lib/udev -+ [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev - fi - - [[ -d $systemdutildir ]] \ - || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null) - - if ! [[ -d "$systemdutildir" ]]; then -- [[ ! -h /lib ]] && [[ -d /lib/systemd ]] && systemdutildir=/lib/systemd -- [[ -d /usr/lib/systemd ]] && systemdutildir=/usr/lib/systemd -+ [[ -e /lib/systemd/systemd-udevd ]] && systemdutildir=/lib/systemd -+ [[ -e /usr/lib/systemd/systemd-udevd ]] && systemdutildir=/usr/lib/systemd - fi - - [[ -d $systemdsystemunitdir ]] \ --- -2.13.2 - diff --git a/sys-kernel/dracut/files/046-amd-microcode.patch b/sys-kernel/dracut/files/046-amd-microcode.patch deleted file mode 100644 index c351275dbebc..000000000000 --- a/sys-kernel/dracut/files/046-amd-microcode.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a1250a704e33c59f2395aaad054db1c745a5c98a Mon Sep 17 00:00:00 2001 -From: Daniel Molkentin <dmolkentin@suse.com> -Date: Tue, 12 Dec 2017 17:48:36 +0100 -Subject: [PATCH] Simplify microcode lookup for for AMD CPUs - ---- - dracut-functions.sh | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/dracut-functions.sh b/dracut-functions.sh -index 112b2434..d7fc5303 100755 ---- a/dracut-functions.sh -+++ b/dracut-functions.sh -@@ -661,11 +661,8 @@ get_ucode_file () - local stepping=`grep -E "stepping" /proc/cpuinfo | head -1 | sed s/.*:\ //` - - if [[ "$(get_cpu_vendor)" == "AMD" ]]; then -- # If family greater than or equal to 0x16 -- if [[ $family -ge 22 ]]; then -- printf "microcode_amd_fam16h.bin" -- elif [[ $family -eq 21 ]]; then -- printf "microcode_amd_fam15h.bin" -+ if [[ $family -ge 21 ]]; then -+ printf "microcode_amd_fam%xh.bin" $family - else - printf "microcode_amd.bin" - fi --- -2.16.0.rc0 - diff --git a/sys-kernel/dracut/files/047-all-fix-issues-found-by-shellcheck.patch b/sys-kernel/dracut/files/047-all-fix-issues-found-by-shellcheck.patch deleted file mode 100644 index d5cbe042b639..000000000000 --- a/sys-kernel/dracut/files/047-all-fix-issues-found-by-shellcheck.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 3aa37cafde734719f2377600a17459fad30edfbc Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn <lnykryn@redhat.com> -Date: Fri, 2 Mar 2018 12:29:46 +0100 -Subject: [PATCH 06/14] all: fix issues found by shellcheck -To: <initramfs@vger.kernel.org> - -Error: SHELLCHECK_WARNING: -/usr/lib/dracut/dracut-init.sh:939:20: error: Argument to implicit -n is always true due to literal strings. [SC2157] - 937| dracut_kernel_post() { - 938| for _f in modules.builtin.bin modules.builtin modules.order; do - 939|-> [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f" - 940| done - 941| - -Error: SHELLCHECK_WARNING: -/usr/lib/dracut/modules.d/98syslog/parse-syslog-opts.sh:18:12: error: This expression is constant. Did you forget a $ somewhere? [SC2078] - 16| elif [ -e /sbin/syslogd ]; then - 17| syslogtype="syslogd" - 18|-> elif [ /sbin/syslog-ng ]; then - 19| syslogtype="syslog-ng" - 20| else - -Error: SHELLCHECK_WARNING: -/usr/lib/dracut/modules.d/90crypt/crypt-lib.sh:15:29: error: Since you double quoted this, it will not word split, and the loop will only run once. [SC2066] - 13| strstr "$d" "${luks##luks-}" && return 0 - 14| if [ -n "$dev" ]; then - 15|-> for _dev in "$(devnames $d)"; do - 16| [ "$dev" -ef "$_dev" ] && return 0 - 17| done ---- - dracut-init.sh | 2 +- - modules.d/90crypt/crypt-lib.sh | 2 +- - modules.d/98syslog/parse-syslog-opts.sh | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/dracut-init.sh b/dracut-init.sh -index 53e6f13a..1278c638 100644 ---- a/dracut-init.sh -+++ b/dracut-init.sh -@@ -942,7 +942,7 @@ for_each_kmod_dep() { - - dracut_kernel_post() { - for _f in modules.builtin.bin modules.builtin modules.order; do -- [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f" -+ [[ -e $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f" - done - - # generate module dependencies for the initrd -diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh -index 532b9a71..bbf485e0 100755 ---- a/modules.d/90crypt/crypt-lib.sh -+++ b/modules.d/90crypt/crypt-lib.sh -@@ -12,7 +12,7 @@ crypttab_contains() { - strstr "${l##luks-}" "${luks##luks-}" && return 0 - strstr "$d" "${luks##luks-}" && return 0 - if [ -n "$dev" ]; then -- for _dev in "$(devnames $d)"; do -+ for _dev in $(devnames $d); do - [ "$dev" -ef "$_dev" ] && return 0 - done - fi -diff --git a/modules.d/98syslog/parse-syslog-opts.sh b/modules.d/98syslog/parse-syslog-opts.sh -index 50ec2759..9ec6ad47 100755 ---- a/modules.d/98syslog/parse-syslog-opts.sh -+++ b/modules.d/98syslog/parse-syslog-opts.sh -@@ -15,7 +15,7 @@ detect_syslog() { - syslogtype="rsyslogd" - elif [ -e /sbin/syslogd ]; then - syslogtype="syslogd" -- elif [ /sbin/syslog-ng ]; then -+ elif [ -e /sbin/syslog-ng ]; then - syslogtype="syslog-ng" - else - warn "Could not find any syslog binary although the syslogmodule is selected to be installed. Please check." --- -2.16.1 - diff --git a/sys-kernel/dracut/files/047-plymouth-fix-detection-of-plymouth-directory.patch b/sys-kernel/dracut/files/047-plymouth-fix-detection-of-plymouth-directory.patch deleted file mode 100644 index 42f877292a79..000000000000 --- a/sys-kernel/dracut/files/047-plymouth-fix-detection-of-plymouth-directory.patch +++ /dev/null @@ -1,31 +0,0 @@ -From fe6c7e0f06cde65effb3503a47c31ac39aceefb6 Mon Sep 17 00:00:00 2001 -From: Alexander Tsoy <alexander@tsoy.me> -Date: Fri, 23 Mar 2018 11:52:27 +0300 -Subject: [PATCH 14/14] plymouth: fix detection of plymouth directory -To: <initramfs@vger.kernel.org> - -Some distros have both /usr/lib/plymouth and /usr/libexec/plymouth -directorirs, so we should check the existance of plymouth-populate-initrd -script. - -Fixes: 421b46f8ae89cfe2b62e880a8a5079ee8c1b3aae ---- - modules.d/50plymouth/module-setup.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh -index 5fbca8b0..b51913e8 100755 ---- a/modules.d/50plymouth/module-setup.sh -+++ b/modules.d/50plymouth/module-setup.sh -@@ -6,7 +6,7 @@ pkglib_dir() { - _dirs+=" /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/plymouth" - fi - for _dir in $_dirs; do -- if [ -d $_dir ]; then -+ if [ -x $_dir/plymouth-populate-initrd ]; then - echo $_dir - return - fi --- -2.16.1 - diff --git a/sys-kernel/dracut/files/050-Makefile-fix-VERSION-again.patch b/sys-kernel/dracut/files/050-Makefile-fix-VERSION-again.patch new file mode 100644 index 000000000000..a091e4c9facc --- /dev/null +++ b/sys-kernel/dracut/files/050-Makefile-fix-VERSION-again.patch @@ -0,0 +1,34 @@ +From a76aa8e39016a8564adb0f18f93bbf2e15d3243f Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy <alexander@tsoy.me> +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 + +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/050-Makefile-merge-main-version-and-git-version-earlier.patch b/sys-kernel/dracut/files/050-Makefile-merge-main-version-and-git-version-earlier.patch new file mode 100644 index 000000000000..49c532b92995 --- /dev/null +++ b/sys-kernel/dracut/files/050-Makefile-merge-main-version-and-git-version-earlier.patch @@ -0,0 +1,78 @@ +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?= + <congdanhqx@gmail.com> +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) *~ +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch b/sys-kernel/dracut/files/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch new file mode 100644 index 000000000000..cf54cabb5eb6 --- /dev/null +++ b/sys-kernel/dracut/files/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch @@ -0,0 +1,75 @@ +From 0386e4627779cb51f4292b3c642d90586d5e71b4 Mon Sep 17 00:00:00 2001 +From: Martin Wilck <mwilck@suse.com> +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 +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/050-gentoo-ldconfig-paths.patch b/sys-kernel/dracut/files/050-gentoo-ldconfig-paths.patch new file mode 100644 index 000000000000..15522ef4fc1e --- /dev/null +++ b/sys-kernel/dracut/files/050-gentoo-ldconfig-paths.patch @@ -0,0 +1,39 @@ +From 0674b9136831b1beb6a7ec91147fd5c280c693a3 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy <alexander@tsoy.me> +Date: Mon, 9 Mar 2020 02:47:07 +0300 +Subject: [PATCH] Remove redundant gcc paths in ldconfig_paths() + +Bug: https://bugs.gentoo.org/705728 +--- + dracut-functions.sh | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 3cb9c7af..5337ff6c 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -76,7 +76,20 @@ find_binary() { + + ldconfig_paths() + { +- $DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq ++ local gccpath ++ ++ if type -P gcc-config &>/dev/null; then ++ gccpath=$(gcc-config -c) ++ gccpath=/usr/lib/gcc/${gccpath%-*}/${gccpath##*-} ++ fi ++ ++ while read -r line; do ++ if [[ ${line} != /usr/lib/gcc/* || -z ${gccpath} ]]; then ++ echo ${line} ++ elif [[ ${line} == ${gccpath} ]]; then ++ echo ${line} ++ fi ++ done < <($DRACUT_LDCONFIG ${dracutsysrootdir:+-r ${dracutsysrootdir} -f /etc/ld.so.conf} -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq) + } + + # Version comparision function. Assumes Linux style version scheme. +-- +2.24.1 + diff --git a/sys-kernel/dracut/files/dracut-044-bash-4.4.patch b/sys-kernel/dracut/files/dracut-044-bash-4.4.patch deleted file mode 100644 index 3144c8e6b759..000000000000 --- a/sys-kernel/dracut/files/dracut-044-bash-4.4.patch +++ /dev/null @@ -1,80 +0,0 @@ -diff -urN dracut-044.orig/modules.d/50drm/module-setup.sh dracut-044/modules.d/50drm/module-setup.sh ---- dracut-044.orig/modules.d/50drm/module-setup.sh 2015-11-25 16:22:28.000000000 +0300 -+++ dracut-044/modules.d/50drm/module-setup.sh 2016-09-28 02:50:08.914967926 +0300 -@@ -24,9 +24,9 @@ - local _fname _fcont - while read _fname || [ -n "$_fname" ]; do - case "$_fname" in -- *.ko) _fcont="$(< $_fname)" ;; -- *.ko.gz) _fcont="$(gzip -dc $_fname)" ;; -- *.ko.xz) _fcont="$(xz -dc $_fname)" ;; -+ *.ko) _fcont="$(< $_fname tr -d \\0)" ;; -+ *.ko.gz) _fcont="$(gzip -dc $_fname | tr -d \\0)" ;; -+ *.ko.xz) _fcont="$(xz -dc $_fname | tr -d \\0)" ;; - esac - [[ $_fcont =~ $_drm_drivers - && ! $_fcont =~ iw_handler_get_spy ]] \ -diff -urN dracut-044.orig/modules.d/90kernel-modules/module-setup.sh dracut-044/modules.d/90kernel-modules/module-setup.sh ---- dracut-044.orig/modules.d/90kernel-modules/module-setup.sh 2015-11-25 16:22:28.000000000 +0300 -+++ dracut-044/modules.d/90kernel-modules/module-setup.sh 2016-09-28 02:49:11.725390294 +0300 -@@ -10,9 +10,9 @@ - function bmf1() { - local _f - while read _f || [ -n "$_f" ]; do case "$_f" in -- *.ko) [[ $(< $_f) =~ $_blockfuncs ]] && echo "$_f" ;; -- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;; -- *.ko.xz) [[ $(xz -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;; -+ *.ko) [[ $(< $_f tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;; -+ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;; -+ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_blockfuncs ]] && echo "$_f" ;; - esac - done - return 0 -diff -urN dracut-044.orig/modules.d/90kernel-network-modules/module-setup.sh dracut-044/modules.d/90kernel-network-modules/module-setup.sh ---- dracut-044.orig/modules.d/90kernel-network-modules/module-setup.sh 2015-11-25 16:22:28.000000000 +0300 -+++ dracut-044/modules.d/90kernel-network-modules/module-setup.sh 2016-09-28 02:51:08.202422231 +0300 -@@ -26,9 +26,9 @@ - while read _fname; do - [[ $_fname =~ $_unwanted_drivers ]] && continue - case "$_fname" in -- *.ko) _fcont="$(< $_fname)" ;; -- *.ko.gz) _fcont="$(gzip -dc $_fname)" ;; -- *.ko.xz) _fcont="$(xz -dc $_fname)" ;; -+ *.ko) _fcont="$(< $_fname tr -d \\0)" ;; -+ *.ko.gz) _fcont="$(gzip -dc $_fname | tr -d \\0)" ;; -+ *.ko.xz) _fcont="$(xz -dc $_fname | tr -d \\0)" ;; - esac - [[ $_fcont =~ $_net_drivers - && ! $_fcont =~ iw_handler_get_spy ]] \ -diff -urN dracut-044.orig/modules.d/90multipath/module-setup.sh dracut-044/modules.d/90multipath/module-setup.sh ---- dracut-044.orig/modules.d/90multipath/module-setup.sh 2015-11-25 16:22:28.000000000 +0300 -+++ dracut-044/modules.d/90multipath/module-setup.sh 2016-09-28 02:49:11.726390235 +0300 -@@ -58,9 +58,9 @@ - local _f - while read _f || [ -n "$_f" ]; do - case "$_f" in -- *.ko) [[ $(< $_f) =~ $_funcs ]] && echo "$_f" ;; -- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_funcs ]] && echo "$_f" ;; -- *.ko.xz) [[ $(xz -dc <$_f) =~ $_funcs ]] && echo "$_f" ;; -+ *.ko) [[ $(< $_f tr -d \\0) =~ $_funcs ]] && echo "$_f" ;; -+ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;; -+ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;; - esac - done - return 0 -diff -urN dracut-044.orig/modules.d/95iscsi/module-setup.sh dracut-044/modules.d/95iscsi/module-setup.sh ---- dracut-044.orig/modules.d/95iscsi/module-setup.sh 2015-11-25 16:22:28.000000000 +0300 -+++ dracut-044/modules.d/95iscsi/module-setup.sh 2016-09-28 02:49:11.726390235 +0300 -@@ -168,9 +168,9 @@ - local _f - while read _f || [ -n "$_f" ]; do - case "$_f" in -- *.ko) [[ $(< $_f) =~ $_funcs ]] && echo "$_f" ;; -- *.ko.gz) [[ $(gzip -dc <$_f) =~ $_funcs ]] && echo "$_f" ;; -- *.ko.xz) [[ $(xz -dc <$_f) =~ $_funcs ]] && echo "$_f" ;; -+ *.ko) [[ $(< $_f tr -d \\0) =~ $_funcs ]] && echo "$_f" ;; -+ *.ko.gz) [[ $(gzip -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;; -+ *.ko.xz) [[ $(xz -dc <$_f | tr -d \\0) =~ $_funcs ]] && echo "$_f" ;; - esac - done - return 0 diff --git a/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch b/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch deleted file mode 100644 index 3146d8485a9c..000000000000 --- a/sys-kernel/dracut/files/dracut-044-preserve-xattrs-when-copying.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 61c761bc2c35fb244d46fbbde97161f5927071dc Mon Sep 17 00:00:00 2001 -From: Stefan Berger <stefanb@us.ibm.com> -Date: Tue, 25 Oct 2016 15:09:49 -0400 -Subject: [PATCH] dracut-install: preserve extended attributes when copying - files - -Preserve extended attributes when copying files using dracut-install. - -The copying of extended attributes avoids file execution denials when -the Linux Integrity Measurement's Appraisal mode is active. In that mode -executables need their file signatures copied. In particular, this patch -solves the problem that dependent libaries are not included in the -initramfs since the copied programs could not be executed due to missing -signatures. The following audit record shows the type of failure that -is now prevented: - -type=INTEGRITY_DATA msg=audit(1477409025.492:30065): pid=922 uid=0 - auid=4294967295 ses=4294967295 - subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 - op="appraise_data" cause="IMA-signature-required" - comm="ld-linux-x86-64" - name="/var/tmp/dracut.R6ySa4/initramfs/usr/bin/journalctl" - dev="dm-0" ino=37136 res=0 - -Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> ---- - install/dracut-install.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/install/dracut-install.c b/install/dracut-install.c -index fe30bba..c0f1c17 100644 ---- a/install/dracut-install.c -+++ b/install/dracut-install.c -@@ -294,7 +294,7 @@ static int cp(const char *src, const char *dst) - normal_copy: - pid = fork(); - if (pid == 0) { -- execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,timestamps", "-fL", src, dst, -+ execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,timestamps,xattr", "-fL", src, dst, - NULL); - _exit(EXIT_FAILURE); - } -@@ -302,7 +302,7 @@ static int cp(const char *src, const char *dst) - while (waitpid(pid, &ret, 0) < 0) { - if (errno != EINTR) { - ret = -1; -- log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps -fL %s %s", src, -+ log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps,xattr -fL %s %s", src, - dst); - break; - } |