public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Cc: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Subject: [gentoo-dev] [PATCH] (dist-)kernel-{install,utils}.eclass: fix finding config during cleanup
Date: Thu,  8 Aug 2024 18:44:55 +0200	[thread overview]
Message-ID: <20240808164455.512247-1-andrewammerlaan@gentoo.org> (raw)

The source symlink does not exist on all systems.

If we can't find any config at all then there will be no preferred suffix
which means we fall back to the old '-nt' based cleaning.

Closes: https://bugs.gentoo.org/937569
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
---
 eclass/dist-kernel-utils.eclass | 18 +++++++++++++++---
 eclass/kernel-install.eclass    |  2 +-
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/eclass/dist-kernel-utils.eclass b/eclass/dist-kernel-utils.eclass
index 0b0eb0ec8818..bb058d488a13 100644
--- a/eclass/dist-kernel-utils.eclass
+++ b/eclass/dist-kernel-utils.eclass
@@ -160,7 +160,7 @@ dist-kernel_PV_to_KV() {
 }
 
 # @FUNCTION: dist-kernel_get_module_suffix
-# @USAGE: <kernel_dir>
+# @USAGE: <kernel_config>
 # @DESCRIPTION:
 # Returns the suffix for kernel modules based on the CONFIG_MODULES_COMPESS_*
 # setting in the kernel config and USE=modules-compress.
@@ -169,7 +169,7 @@ dist-kernel_get_module_suffix() {
 
 	[[ ${#} -eq 1 ]] || die "${FUNCNAME}: invalid arguments"
 
-	local config=${1}/.config
+	local config=${1}
 
 	if ! in_iuse modules-compress || ! use modules-compress; then
 		echo .ko
@@ -198,7 +198,19 @@ dist-kernel_compressed_module_cleanup() {
 
 	[[ ${#} -ne 1 ]] && die "${FUNCNAME}: invalid arguments"
 	local path=${1}
-	local preferred=$(dist-kernel_get_module_suffix "${path}/source")
+	local config_path=/usr/src/linux-${KV_FULL}/.config
+
+	local option
+	for option in config source/.config build/.config; do
+		if [[ -f ${path}/${option} ]]; then
+			config_path=${path}/${option}
+			break
+		fi
+	done
+
+	local preferred=
+	[[ -f ${config_path} ]] && preferred=$(dist-kernel_get_module_suffix "${config_path}")
+
 	local basename suffix
 
 	while read -r basename; do
diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index c64dd673084b..496e258815d2 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -769,7 +769,7 @@ kernel-install_compress_modules() {
 		if [[ -z ${KV_FULL} ]]; then
 			KV_FULL=${PV}${KV_LOCALVERSION}
 		fi
-		local suffix=$(dist-kernel_get_module_suffix "${ED}/usr/src/linux-${KV_FULL}")
+		local suffix=$(dist-kernel_get_module_suffix "${ED}/usr/src/linux-${KV_FULL}/.config")
 		local compress=()
 		# Options taken from linux-mod-r1.eclass.
 		# We don't instruct the compressor to parallelize because it applies
-- 
2.45.2



                 reply	other threads:[~2024-08-08 16:45 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240808164455.512247-1-andrewammerlaan@gentoo.org \
    --to=andrewammerlaan@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox