mirror of
https://github.com/flatcar/scripts.git
synced 2026-05-04 19:56:32 +02:00
sys-kernel/dracut: Sync with Gentoo
It's from Gentoo commit 2a8935633fb95090823004d7c924525b6da2022b.
This commit is contained in:
parent
0383d8d62c
commit
4635647223
@ -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"
|
||||
|
||||
@ -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
|
||||
@ -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"
|
||||
Loading…
x
Reference in New Issue
Block a user