sys-kernel/dracut: Sync with Gentoo

It's from Gentoo commit 2a8935633fb95090823004d7c924525b6da2022b.
This commit is contained in:
Flatcar Buildbot 2025-05-05 07:13:05 +00:00 committed by Krzesimir Nowak
parent 0383d8d62c
commit 4635647223
3 changed files with 0 additions and 105 deletions

View File

@ -1,48 +0,0 @@
From 1579bb0c77d9e1e4599623a165c54a0dccdaf875 Mon Sep 17 00:00:00 2001
From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Date: Thu, 31 Oct 2024 11:28:37 +0100
Subject: [PATCH] fix(dracut.sh): ensure abs path for objcopy args
Closes: https://github.com/dracut-ng/dracut-ng/issues/833
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
---
dracut.sh | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 90927136e..8b666a1ac 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -35,6 +35,19 @@ readonly dracut_cmd=$(readlink -f "$0")
set -o pipefail
+# below we sometimes cd, which causes problems if we're building an UKI
+# and relative paths are passed on to us. Store the pwd before we do anything.
+pwd=$(pwd)
+path_rel_to_abs() {
+ for var in "$@"; do
+ if [[ $var == /* ]]; then
+ echo "$var"
+ else
+ echo "$pwd/$var"
+ fi
+ done
+}
+
usage() {
[[ $sysroot_l ]] && dracutsysrootdir="$sysroot_l"
[[ $dracutbasedir ]] || dracutbasedir="$dracutsysrootdir"/usr/lib/dracut
@@ -1095,9 +1108,9 @@ drivers_dir="${drivers_dir%"${drivers_dir##*[!/]}"}"
[[ $reproducible_l ]] && reproducible="$reproducible_l"
[[ $loginstall_l ]] && loginstall="$loginstall_l"
[[ $uefi_l ]] && uefi=$uefi_l
-[[ $uefi_stub_l ]] && uefi_stub="$uefi_stub_l"
-[[ $uefi_splash_image_l ]] && uefi_splash_image="$uefi_splash_image_l"
-[[ $kernel_image_l ]] && kernel_image="$kernel_image_l"
+[[ $uefi_stub_l ]] && uefi_stub=$(path_rel_to_abs "$uefi_stub_l")
+[[ $uefi_splash_image_l ]] && uefi_splash_image=$(path_rel_to_abs "$uefi_splash_image_l")
+[[ $kernel_image_l ]] && kernel_image=$(path_rel_to_abs "$kernel_image_l")
[[ $sbat_l ]] && sbat="$sbat_l"
[[ $machine_id_l ]] && machine_id="$machine_id_l"

View File

@ -1,28 +0,0 @@
From b90eda4b431af23d1101f1ea68b656929c6a82b2 Mon Sep 17 00:00:00 2001
From: Nowa Ammerlaan <andrewammerlaan@gentoo.org>
Date: Fri, 8 Nov 2024 20:01:54 +0100
Subject: [PATCH] fix(dracut-functions.sh): check for modules in --kmoddir, not
in --sysroot
Modules are installed from the directory specified by --kmoddir, but currently
the check_kernel_module() function is checking for the module in
--sysroot/lib/modules. This is notably not the same when kernels packages are
being built inside some docker container. We should check for the modules
existence in the directory we are actually going to install it from.
---
dracut-functions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 865c31290..245c69cb6 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -761,7 +761,7 @@ check_kernel_config() {
# 0 if the kernel module is either built-in or available
# 1 if the kernel module is not enabled
check_kernel_module() {
- modprobe -d "$dracutsysrootdir" -S "$kernel" --dry-run "$1" &> /dev/null || return 1
+ modprobe -d "$drivers_dir/../../../" -S "$kernel" --dry-run "$1" &> /dev/null || return 1
}
# get_cpu_vendor

View File

@ -1,29 +0,0 @@
https://github.com/dracut-ng/dracut-ng/pull/921
https://bugs.gentoo.org/943035
From 2d4b550c71cc79ac7a3f18afc09d8263963d5de2 Mon Sep 17 00:00:00 2001
From: Jo Zzsi <jozzsicsataban@gmail.com>
Date: Sat, 9 Nov 2024 14:06:57 -0500
Subject: [PATCH] fix(dracut-systemd): check systemd-cryptsetup before
including
---
modules.d/98dracut-systemd/module-setup.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules.d/98dracut-systemd/module-setup.sh b/modules.d/98dracut-systemd/module-setup.sh
index 0438e40f0..f2502cd78 100755
--- a/modules.d/98dracut-systemd/module-setup.sh
+++ b/modules.d/98dracut-systemd/module-setup.sh
@@ -19,7 +19,10 @@ depends() {
# systemd-cryptsetup is mandatory dependency
# see https://github.com/dracut-ng/dracut-ng/issues/563
if dracut_module_included "crypt"; then
- deps+=" systemd-cryptsetup"
+ module_check systemd-cryptsetup > /dev/null 2>&1
+ if [[ $? == 255 ]]; then
+ deps+=" systemd-cryptsetup"
+ fi
fi
echo "$deps"