commit: 6fb3d4afd50ab9a7054258e6bb78ea8364b8801a
Author: Nowa Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 9 14:31:31 2024 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Sat Nov 9 14:31:31 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6fb3d4af
sys-kernel/dracut: backport fix for checking kmods
Signed-off-by: Nowa Ammerlaan <andrewammerlaan <AT> gentoo.org>
.../{dracut-105-r1.ebuild => dracut-105-r2.ebuild} | 2 ++
.../files/dracut-105-fix-check_kernel_module.patch | 28 ++++++++++++++++++++++
2 files changed, 30 insertions(+)
diff --git a/sys-kernel/dracut/dracut-105-r1.ebuild
b/sys-kernel/dracut/dracut-105-r2.ebuild
similarity index 98%
rename from sys-kernel/dracut/dracut-105-r1.ebuild
rename to sys-kernel/dracut/dracut-105-r2.ebuild
index 70692cd367a4..743a246869b9 100644
--- a/sys-kernel/dracut/dracut-105-r1.ebuild
+++ b/sys-kernel/dracut/dracut-105-r2.ebuild
@@ -101,6 +101,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-103-acct-user-group-gentoo.patch
# https://github.com/dracut-ng/dracut-ng/pull/834
"${FILESDIR}"/${PN}-105-ensure-abs-args-for-objcopy.patch
+ # https://github.com/dracut-ng/dracut-ng/pull/904
+ "${FILESDIR}"/${PN}-105-fix-check_kernel_module.patch
)
src_configure() {
diff --git a/sys-kernel/dracut/files/dracut-105-fix-check_kernel_module.patch
b/sys-kernel/dracut/files/dracut-105-fix-check_kernel_module.patch
new file mode 100644
index 000000000000..e1fc7924c303
--- /dev/null
+++ b/sys-kernel/dracut/files/dracut-105-fix-check_kernel_module.patch
@@ -0,0 +1,28 @@
+From b90eda4b431af23d1101f1ea68b656929c6a82b2 Mon Sep 17 00:00:00 2001
+From: Nowa Ammerlaan <[email protected]>
+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