1
0
Fork 0

rebase crypt-ssh patch and version bump dracut

This commit is contained in:
Stefan Reimer 2021-08-31 11:18:35 +00:00
parent 1fb0af5b8d
commit 9e8a70816c
18 changed files with 188 additions and 852 deletions

View File

@ -1,14 +1,9 @@
AUX 050-Makefile-fix-VERSION-again.patch 1057 BLAKE2B 8373a43030c02bc0273aacb3f0f286d4f98812039c459ec16607e3e5b9bd83c367420c6b67d7cc8d2f6d9469bca2e5e5770f20390348e50abdbec7f12c4f36a3 SHA512 89e5ae4cf88d65ec5f31384c334b46f8e6e74a31e0225a62523524f87f35ead8cae221d3a0f8e5f837a1e22b51833db75b2d3f3b07fa3ac4ded5dac9012a8027
AUX 050-Makefile-merge-main-version-and-git-version-earlier.patch 3071 BLAKE2B 0d20b6ca7bb92aca21b3afaaee6fffb94c23de806ebe46383074979e0afedc893aec478122391d7c6015882b7882dd3f6e4124fa1f6fa1dc0bb48beae50d4d9d SHA512 ad9219c66b0a921b2fcb9dc325d1afd4c17d447228ee3b95b7a7e799acdc9d48d1d963842643d6ee6e90f8891d5c924c707331041cde53701261cb670adbcd33
AUX 050-btrfs-force-preload-btrfs-module.patch 960 BLAKE2B 9837361b8f3559d87dc39374ca9cd8e2717f257dbb428d542e356672623c6b02d2a8aea5c0cbd2c64b01564a1ec08fc7288b993f46c7043327300ca684469168 SHA512 8fcd5579486ce2afc3164970bcd2eb23306d00bef3ce1458fd6f41664299a16c5772ed3f0d823861b698b01cf7a495412afb7f3a200e4c07e96ca3b617d8d6bf
AUX 050-busybox-module-fix.patch 3468 BLAKE2B a5292669c358f46ededf184e654213298e1e2a193e27b90cdb3913149cae40c2bfb70a8a211515ea7d3109fe87676ad71f93166dce793b7033ecfc05691e822c SHA512 a85d8f157d466e642c53436276777e6caf42aa3280cfa2d635c1541919484c50cccc232802131ce6776b1059151bdcfabdd3e4f69d697012d2e4d24a4793794b
AUX 050-dracut-lib.sh-quote-variables-in-parameter-expansion.patch 3655 BLAKE2B dc48d86fa1d78622bf0a7e5714de23d046515d3ad866f321769b0c56c243bdc6d6b45c69eb09e02477a79d90a546bdfcd767551b838f647f07179c9174ff46f7 SHA512 774602605b552343b0f26bcc7311c118bbb816bae9a1d798e650b72105c7a44ada8bfe238a66619ef6ee345534ef6a6d3c6449eaad51ba0ecf483fcc4aac1fb8
AUX 050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch 2779 BLAKE2B edb10ef79fd22863aef5184ca0d7abc88602cf3e8a3cfd198047e0970d10e9aa56e1222dc44a089afb3a0f15caa87e4e3233b32980b5fd56e9975196350000f4 SHA512 a31cfceb9ab53e53ce3f69ed6388bf7cfcf40ad7b036197194f34cd973a74e28ac8bfb7bf7d79068b48fc8c5feaf26540948b8008c1fdab997587bf4b31f8b71
AUX 050-lvm-fix-removal-of-pvscan-from-udev-rules.patch 1270 BLAKE2B ac4b93d0ed469ca9d2ba2ad9ca83b1f0efce590758bdd824278e9409fd4706e975d3fa9a10733775cc5b0a3a4665260d8869291de5a1f89c810c01a7cf0889e4 SHA512 7466c66f570c9a097b701a91d2735469187e879d2dec2ff2d10322ad39c86f3a5c70fc778d13b42014ba9754a6d1bea6d37f3ee456cbe4ec075dd676cf09093d
AUX 050-network-manager-ensure-that-nm-run.sh-is-executed-wh.patch 1627 BLAKE2B c45b8efef1612ede5021be1bfe2135586286b4ac8d501ce6cde518eefb699c143fec1ec858e4320ba473feb06e88896ab0f4b2f738c6a5a98c20a161d11f508a SHA512 e070f24f0d0e95a14ee503e0cbc62d87b32ad678c12a8054c1a0c505d9ae833cd37052d51fe8d1a2a608fd06a8894d06ea4da626aadf5e9e4dd39b2ea883aaae
AUX 050-systemd-remove-obsolete-syslog-parameter.patch 8176 BLAKE2B abf1619f4010cd38d98814f8827d592394a7ed7acc4c19392751adea4a98ce4acfce12bae1c2d264c392c73081ae04a205cfccd3591de651b87301352bbbe68c SHA512 3609ea93b85f79d3451fc810164c1be61def3f8e016a1fc0963088f2a690c56680d0c49bad5f8398af80150bd07bf953de50fe8832a5b88da5c01eead5fdbe7f
AUX 051-dracut.sh-move-ldconfig.patch 2064 BLAKE2B 91d60d66cc3dd788f97900e4765761b918425abb603ce09b3101ec242222f17e6e7166af7faaa8ad47cff7aa1a9259af90832066ee67f7bee25c400bdfd302cb SHA512 060f968f39bd11822b1154baa7d28a1190ead371f57e43d4a997e8013f39d48e1509908b2fe3859b9315de57dc4ed03b8e4beab1ec743dc56186c9e6a1d9c116
AUX crypt-ssh-luks.patch 4691 BLAKE2B 6b73b9e399e089e081e98d44af971c1afcc371c62c89c145ccde496e8007c8493ef3156a4acc312d4cde1d17fcd80d8395cbdb7f78785c9957b4afb6f3a0c6bf SHA512 74768f06daf9f02344064065613d4ca202906579ba9dce1f0ffaa618698fa6d6efe6af712c735ef13316415e6f8c63c0ea37cac3612130d60bbd1e25a9025295
AUX 053-network-manager.patch 840 BLAKE2B d9dca01ad97015d636dfda3eb2b99a9289dabbc2554ea79159f6e971ab0baa912d21866204d91b4e6cdf9f8f5d953f2ca045aa7979396237e8af053f09e9e173 SHA512 63babf06fc3ad151c2026267cb766817a7902858ddab0cb625551c95a1c83d44b8cafa1bf22ce4e124aa5968b258c6946dadfdd5375f2c532b19173b84623008
AUX 055-fix-base-do-not-quote-initargs-for-switch_root.patch 1095 BLAKE2B 35e2fbc027db3c6e642939d2139a2ef22b7273d4a11e957fb9e6376b14b8ba26daf39281bb8494251b9940a54cd78b42c357f88bc7469a64307a936b62fc1ca1 SHA512 f59624deb66644e8488e15079d8dbfa1e428bdd325ecd3f879fd1f07869ca7aae001109dabd1816875aeeb5962c05496ce0e2261ee3562fa1800a5e4b61d446a
AUX 055-fix-crypt-remove-quotes-from-cryptsetupopts.patch 1404 BLAKE2B 4956f8df0b76c204279032fdf545f230f063fd7ea5393e3ade80587e10eb50dfba2e0677da04e641da17d1ce79564b3084274c739b3af59dab2226852b0835b2 SHA512 11243e311aeae6b9f1b6481521a92e4fd962e5fd24b1bd279e04f1f1618ba4ae0c4243d94274dda8e16d0311c377e0fbf2bae5c64c508e29caaf64d123c365a3
AUX 055-fix-usrmount-do-not-empty-_dev-variable.patch 1358 BLAKE2B 9a0b5e698884eb4e333ff3d519245bbe7bb909247ff999edac7bfce4b37a384f7b6ab7d0a4ffc14d638c46b137430d44d50de41193f46ba799b070bd2031e138 SHA512 1d9d01a6df6c0d9e77e2b0e4ca0881e33abbf3430817416660122960575d428f832a64c6925a2588d56bd042a32a2a68da7cf173f62b4cd23e12ea2e1b49d588
AUX crypt-ssh-luks.patch 4280 BLAKE2B 28d9e5ff0ae5c75a959b16aa40af6dacdd2645b6336ced98318095f483af6d6d86ffe3781f1870d4b493e7590193a80bf4c2142b51dce986822669c62d9739b6 SHA512 7a12fe767950c77ca76e895fecfd7f6d29df9da9646a5f8d6f6e7112391cd6e11e8f081783a0a535a7c8d49842a7edc42b173c924f43ace457a66c721f1d377d
AUX gentoo-ldconfig-paths-r1.patch 1423 BLAKE2B e8bce9ee4b1b2546d4dbaa22a6167f9e3520df4f5f3b67509e430e4a6dd89d9fd18e53328c4bd6ee817e6b27ffcccf29fbdd922707c98f4fe67f6d44d76de2ff SHA512 fd44643e671d59ca51822d0f68b7ce7756035faca780ec784e64950770944f0aefd00a1dd2424f07568d5d97d46c0080c8e740856e0bff79bcf6a7e14b08ab8f
AUX gentoo-ldconfig-paths.patch 1420 BLAKE2B 3ff093e1d244288585c369f0e3c1bc346abe1ee2ce8ee399098559765fa4e3a96611269de5f4edebe435e5a71fa1bb99eb650fcb221fad188e019837261645f4 SHA512 aa99bb08dbc8e38ee1794b7d77e5e6656afa7f6c67684d1b3fb6368861630ea7c7711d84cc48c2c5cf3b1fd98aa2673f816e4f5ebf651b63a07ded93b00d371a
DIST dracut-050.tar.xz 333592 BLAKE2B cb0bfa5a8e7547260b8a80a3606eb284182c062926269c85b09e07d26ad177df0eeaa64b17005bff9290611f1c83fc8cd8e2216cfe14b5e66ec7f659d4c2fa7b SHA512 eba046cf1c8013369a398e585e0bff233daa8595d469ce9acc8bbc6a32d55c6a5429d4219db19abbf6001104be05b357f0961f9e66b7f926039a5d3ee7c2b850
EBUILD dracut-050-r2.ebuild 5340 BLAKE2B d4ec5701f82859ab58c81619a737a88a0edf14b0ead3cedd6461c734f5acd8efc90d91148170db6d2604f95ff4d608e2c96fcee0f90d75e4a963f3eededd5f38 SHA512 4b1b6ee247a3efdc4a35a83b87ccb39d2f12abc329bbc767e2d8c2ce1d767c2f159a3aee02cbff290effe6fa17031962e3a6efadf6ac5f5335116d208a0d0b76
DIST dracut-053.tar.xz 354668 BLAKE2B d20d0f1675e18cf44615a98255c8b1a73f23e9c665a771a1fe99716d3bf0b6082961ab20fe058bf31c106c4f521d9e8708e2ae98cff00f613197bbf9dd3abda3 SHA512 4736f84442bda208a38d3285ffeb8b845f06e52e3bf60d2aaea121240cf695e1369208c2d2cee1137a6c1d3f8f7794385675006beaf5cd86ade259d5f42d039a
EBUILD dracut-053-r2.ebuild 4557 BLAKE2B 3a4104349cdece36650f6265e1926fa3f0944f9a8415aa7183bdf74005c6962dd9a88da7705e12b6a92414b179d7d09c18390c39e696336ba52774d1f5b7707e SHA512 ad4f5289cc84e58690215e9125a82e9138581831d8d3048bf58d6ca4cc038511a6efbb375dde0a2b986681ad0d63931933ecef97b36d4a4528938fea9f82a3d7

View File

@ -1,4 +1,4 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -58,23 +58,14 @@ BDEPEND="
virtual/pkgconfig
"
DOCS=( AUTHORS HACKING NEWS README.md README.generic README.kernel README.modules
README.testsuite TODO )
DOCS=( AUTHORS README.md README.generic README.kernel )
QA_MULTILIB_PATHS="usr/lib/dracut/.*"
PATCHES=(
"${FILESDIR}"/050-Makefile-merge-main-version-and-git-version-earlier.patch
"${FILESDIR}"/050-dracut.sh-don-t-call-fsfreeze-on-subvol-of-root-file.patch
"${FILESDIR}"/050-Makefile-fix-VERSION-again.patch
"${FILESDIR}"/050-btrfs-force-preload-btrfs-module.patch
"${FILESDIR}"/050-network-manager-ensure-that-nm-run.sh-is-executed-wh.patch
"${FILESDIR}"/050-dracut-lib.sh-quote-variables-in-parameter-expansion.patch
"${FILESDIR}"/050-busybox-module-fix.patch
"${FILESDIR}"/050-systemd-remove-obsolete-syslog-parameter.patch
"${FILESDIR}"/050-lvm-fix-removal-of-pvscan-from-udev-rules.patch
"${FILESDIR}"/053-network-manager.patch
"${FILESDIR}"/gentoo-ldconfig-paths.patch
"${FILESDIR}"/crypt-ssh-luks.patch
"${FILESDIR}"/crypt-ssh-luks.patch
)
src_configure() {
@ -99,9 +90,6 @@ src_configure() {
src_install() {
default
insinto /etc/logrotate.d
newins dracut.logrotate dracut
docinto html
dodoc dracut.html
}
@ -134,9 +122,6 @@ pkg_postinst() {
ewarn ""
fi
elog "To get additional features, a number of optional runtime"
elog "dependencies may be installed:"
elog ""
optfeature "Networking support" net-misc/networkmanager
optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \
sys-apps/iproute2 "net-misc/iputils[arping]"

View File

@ -1,34 +0,0 @@
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

View File

@ -1,78 +0,0 @@
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

View File

@ -1,30 +0,0 @@
From 0402b3777b1c64bd716f588ff7457b905e98489d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
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
}
-
--
2.26.2

View File

@ -1,102 +0,0 @@
From f769154bccf22d2b5caf5e4888f88bf7edde2662 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Mon, 25 May 2020 19:02:05 +0300
Subject: [PATCH 1/2] 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
--
2.26.2
From 50cc23ba32b0fda63eff7623b529dbeb4e6a38c6 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Mon, 25 May 2020 17:49:20 +0300
Subject: [PATCH 2/2] 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
--
2.26.2

View File

@ -1,111 +0,0 @@
From 8e1a4dc5f8a777fc718db490414ffdc9dc755f66 Mon Sep 17 00:00:00 2001
From: Jonas Witschel <diabonas@archlinux.org>
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
--
2.26.2

View File

@ -1,75 +0,0 @@
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

View File

@ -1,26 +0,0 @@
From 07417b7fc5cb261187519c916e4735189f20f4c6 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
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
--
2.26.2

View File

@ -1,48 +0,0 @@
From 3dcaa97ca4dcfa8092252a22df62c60941e59ce3 Mon Sep 17 00:00:00 2001
From: Beniamino Galvani <bgalvani@redhat.com>
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
--
2.26.2

View File

@ -1,241 +0,0 @@
From 265f696b532f63f0ac1f9f341e0469a6eafe2fdd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:26:00 +0000
Subject: [PATCH 01/10] 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
--
2.26.2
From 38ba90bf88b38228e128c65be40a2da287c0b1ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:29:34 +0000
Subject: [PATCH 02/10] 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
--
2.26.2
From 5cb2a4004d18e4b96ddc18f221fae922350a9000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:31:17 +0000
Subject: [PATCH 03/10] 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
--
2.26.2
From 317d841c788e841d3533515ceda5597a099eb64e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:31:59 +0000
Subject: [PATCH 04/10] 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
--
2.26.2
From 0c1bd016ecfb9c6d194c4356199b509d90db4071 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:32:44 +0000
Subject: [PATCH 05/10] 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
--
2.26.2
From e1130a83405648777210fdc99f7eee087eebaadc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:33:33 +0000
Subject: [PATCH 06/10] 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
--
2.26.2
From c437933cb0490e800e776cb7695d2ea0e95056a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:34:17 +0000
Subject: [PATCH 07/10] 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
--
2.26.2
From d9149c6ca7c52c204c1b346e9b6a32bbadd0b2ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:35:02 +0000
Subject: [PATCH 08/10] 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
--
2.26.2
From 8cb5ac1b30be458df9497911ba601d90e68f4d5b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
Date: Wed, 15 Jul 2020 14:35:38 +0000
Subject: [PATCH 09/10] 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
--
2.26.2

View File

@ -1,60 +0,0 @@
From 48258fae9fa58046d7d1a246ea3d821530180643 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Fri, 18 Dec 2020 00:01:32 +0300
Subject: [PATCH] dracut.sh: Move ldconfig after library workaround
This fixes boot failures when libgcc_s.so.1 is in a non-standard
directory.
Bug: https://bugs.gentoo.org/760249
Fixes: de3cb0e3214c (dracut.sh: Move the library workaround after squash)
---
dracut.sh | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 0f4648397..c6c361acc 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1724,20 +1724,6 @@ for ((i=0; i < ${#include_src[@]}; i++)); do
fi
done
-if [[ $kernel_only != yes ]]; then
- # make sure that library links are correct and up to date
- for f in $dracutsysrootdir/etc/ld.so.conf $dracutsysrootdir/etc/ld.so.conf.d/*; do
- [[ -f $f ]] && inst_simple "${f#$dracutsysrootdir}"
- done
- if ! $DRACUT_LDCONFIG -r "$initdir" -f /etc/ld.so.conf; then
- if [[ $EUID = 0 ]]; then
- derror "ldconfig exited ungracefully"
- else
- derror "ldconfig might need uid=0 (root) for chroot()"
- fi
- fi
-fi
-
if [[ $do_hardlink = yes ]] && command -v hardlink >/dev/null; then
dinfo "*** Hardlinking files ***"
hardlink "$initdir" 2>&1
@@ -1920,6 +1906,20 @@ if [[ $kernel_only != yes ]]; then
fi
fi
+if [[ $kernel_only != yes ]]; then
+ # make sure that library links are correct and up to date
+ for f in $dracutsysrootdir/etc/ld.so.conf $dracutsysrootdir/etc/ld.so.conf.d/*; do
+ [[ -f $f ]] && inst_simple "${f#$dracutsysrootdir}"
+ done
+ if ! $DRACUT_LDCONFIG -r "$initdir" -f /etc/ld.so.conf; then
+ if [[ $EUID = 0 ]]; then
+ derror "ldconfig exited ungracefully"
+ else
+ derror "ldconfig might need uid=0 (root) for chroot()"
+ fi
+ fi
+fi
+
if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then
dinfo "*** Stripping files ***"
find "$initdir" -type f \

View File

@ -0,0 +1,24 @@
From ba4bcf5f4f11ad624c647ddf4f566997186135e7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 31 Mar 2021 16:11:41 +0200
Subject: [PATCH] fix(network-manager): no default deps for nm-run.service
Otherwise nm-run.service will run only in basic.target, which is too
late in the initramfs.
---
modules.d/35network-manager/nm-run.service | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules.d/35network-manager/nm-run.service b/modules.d/35network-manager/nm-run.service
index 63fe7564d0..f3493c41a3 100644
--- a/modules.d/35network-manager/nm-run.service
+++ b/modules.d/35network-manager/nm-run.service
@@ -2,6 +2,8 @@
# SPDX-License-Identifier: GPL-2.0-or-later
[Unit]
+DefaultDependencies=no
+
#make sure all devices showed up
Wants=systemd-udev-settle.service
After=systemd-udev-settle.service

View File

@ -0,0 +1,32 @@
From 285e2ad01035743ff51005a74e486e09fcbb0a0d Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Fri, 23 Jul 2021 14:35:07 -0400
Subject: [PATCH] fix(base): do not quote $initargs for switch_root
We want word splitting to occur so that the arguments are passed
separately, and we don't end up passing an empty string if no arguments
are specified.
Bug: https://bugs.gentoo.org/803548
Fixes: 2fabaaa62dcfd31e593ca45e1374e55adae29d6b
---
modules.d/99base/init.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index 978adb6f..ab62bb44 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -387,7 +387,8 @@ if [ -f /etc/capsdrop ]; then
}
else
unset RD_DEBUG
- exec "$SWITCH_ROOT" "$NEWROOT" "$INIT" "$initargs" || {
+ # shellcheck disable=SC2086
+ exec "$SWITCH_ROOT" "$NEWROOT" "$INIT" $initargs || {
warn "Something went very badly wrong in the initramfs. Please "
warn "file a bug against dracut."
emergency_shell
--
2.32.0

View File

@ -0,0 +1,39 @@
From e0abf88a15d23fbf793cf872397016ad86aeaaa8 Mon Sep 17 00:00:00 2001
From: lapseofreason <lapseofreason0@gmail.com>
Date: Tue, 8 Jun 2021 16:01:58 +0200
Subject: [PATCH] fix(crypt): remove quotes from cryptsetupopts
Fixes #1528.
---
modules.d/90crypt/cryptroot-ask.sh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
index 37a4deea..b1f8df81 100755
--- a/modules.d/90crypt/cryptroot-ask.sh
+++ b/modules.d/90crypt/cryptroot-ask.sh
@@ -138,8 +138,9 @@ unset allowdiscards
ask_passphrase=1
if [ -n "$luksfile" -a "$luksfile" != "none" -a -e "$luksfile" ]; then
+ # shellcheck disable=SC2086
if readkey "$luksfile" / "$device" \
- | cryptsetup -d - "$cryptsetupopts" luksOpen "$device" "$luksname"; then
+ | cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname"; then
ask_passphrase=0
fi
elif [ "$is_keysource" -ne 0 ]; then
@@ -164,8 +165,9 @@ else
unset tmp
info "Using '$keypath' on '$keydev'"
+ # shellcheck disable=SC2086
readkey "$keypath" "$keydev" "$device" \
- | cryptsetup -d - "$cryptsetupopts" luksOpen "$device" "$luksname" \
+ | cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname" \
&& ask_passphrase=0
unset keypath keydev
break
--
2.32.0

View File

@ -0,0 +1,36 @@
From 4afdcba212793f136aea012b30dd7bdb5b641a5a Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Mon, 16 Aug 2021 18:54:34 +0300
Subject: [PATCH] fix(usrmount): do not empty _dev variable
Currently $_dev is always overridden with the value returned by
label_uuid_to_dev(). This results in an empty value if $_dev is a
device path. Fix this by calling label_uuid_to_dev() conditionally.
Bug: https://bugs.gentoo.org/807971
Fixes: d3532978de04c78f53664dad7b37705a49a7ee54
---
modules.d/98usrmount/mount-usr.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
index 23ed06aa..c8e1893b 100755
--- a/modules.d/98usrmount/mount-usr.sh
+++ b/modules.d/98usrmount/mount-usr.sh
@@ -55,7 +55,12 @@ mount_usr() {
while read -r _dev _mp _fs _opts _freq _passno || [ -n "$_dev" ]; do
[ "${_dev%%#*}" != "$_dev" ] && continue
if [ "$_mp" = "/usr" ]; then
- _dev="$(label_uuid_to_dev "$_dev")"
+ case "$_dev" in
+ LABEL=* | UUID=* | PARTUUID=* | PARTLABEL=*)
+ _dev="$(label_uuid_to_dev "$_dev")"
+ ;;
+ *) ;;
+ esac
if strstr "$_opts" "subvol=" \
&& [ "${root#block:}" -ef "$_dev" ] \
--
2.31.1

View File

@ -1,16 +1,8 @@
commit 2e091e01691ac86f014d52504f13c6e1cc0990c3
Author: Stefan Reimer <it@startux.de>
Date: Fri Feb 19 13:50:45 2021 +0100
crypt-ssh module: This modules allows for unlocking LUKS encrypted root filesystems remotely over SSH.
By setting rd.luks.ssh and having a /root/.ssh/authorized_keys file dracut will wait
until an authorized users logs in and enters a passphrase to open the LUKS device.
diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
index 1ea77ccc..e73743ef 100755
index 37a4deea..320eca82 100755
--- a/modules.d/90crypt/cryptroot-ask.sh
+++ b/modules.d/90crypt/cryptroot-ask.sh
@@ -173,15 +173,26 @@ fi
@@ -174,15 +174,25 @@ fi
if [ $ask_passphrase -ne 0 ]; then
luks_open="$(command -v cryptsetup) $cryptsetupopts luksOpen"
@ -21,11 +13,10 @@ index 1ea77ccc..e73743ef 100755
- --ply-prompt "Password ($device)" \
- --tty-tries 1 \
- --tty-cmd "$luks_open -T5 -t $_timeout $device $luksname"
+
+ if getargbool 0 rd.luks.ssh; then
+ # Setup authorized_key file, inject forced cmd for each entry
+ while read key; do
+ echo "command=\"$luks_open -T5 $device $luksname && rm -f /tmp/crypt-ssh-block\" $key" >> /root/.ssh/authorized_keys
+ echo "command=\"$luks_open -T5 $device $luksname && rm -f /tmp/crypt-ssh-block\" $key" >> /root/.ssh/authorized_keys
+ done < /root/.ssh/key.pub
+ rm -f /root/.ssh/key.pub
+ # Create flock to prevent initqueue from timing out waiting for someone to login
@ -44,9 +35,9 @@ index 1ea77ccc..e73743ef 100755
- unset _timeout
fi
if [ "$is_keysource" -ne 0 -a ${luksname##luks-} != "$luksname" ]; then
if [ "$is_keysource" -ne 0 -a "${luksname##luks-}" != "$luksname" ]; then
diff --git a/modules.d/92crypt-ssh/crypt-ssh-cleanup.sh b/modules.d/92crypt-ssh/crypt-ssh-cleanup.sh
new file mode 100644
new file mode 100755
index 00000000..03b05d84
--- /dev/null
+++ b/modules.d/92crypt-ssh/crypt-ssh-cleanup.sh
@ -98,7 +89,7 @@ index 00000000..4fd2aadf
+ inst_hook cleanup 99 "$moddir/crypt-ssh-cleanup.sh"
+}
diff --git a/modules.d/92crypt-ssh/start-ssh.sh b/modules.d/92crypt-ssh/start-ssh.sh
new file mode 100644
new file mode 100755
index 00000000..ac1c5ec3
--- /dev/null
+++ b/modules.d/92crypt-ssh/start-ssh.sh

View File

@ -0,0 +1,39 @@
From e6a5f02038954ede223cc75901386acf43ec4264 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 5206bd21..a119fb15 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -81,7 +81,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.32.0