commit:     9f6898bdcc89290841e081b62987c764f97a506b
Author:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
AuthorDate: Wed May 17 22:25:22 2023 +0000
Commit:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
CommitDate: Wed May 17 22:25:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f6898bd

linux-mod.eclass: Store compression ext in variable

When the kernel configuration contains the setting
CONFIG_MODULE_COMPRESS_{GZIP,XZ,STD} we need to store
the extension for a subsequent call to modinfo.

Closes: https://bugs.gentoo.org/906303

Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org>

 eclass/linux-mod.eclass | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/eclass/linux-mod.eclass b/eclass/linux-mod.eclass
index 0098dbcfc2ce..0fe8d7da4f99 100644
--- a/eclass/linux-mod.eclass
+++ b/eclass/linux-mod.eclass
@@ -149,6 +149,12 @@
 # @DESCRIPTION:
 # It's a read-only variable. It contains the extension of the kernel modules.
 
+# @ECLASS_VARIABLE: KV_OBJ_COMPRESS_EXT
+# @INTERNAL
+# @DESCRIPTION:
+# Read-only variable. It contains the compression extension of the kernel
+# modules (.xz, .gz, .zst)
+
 case ${EAPI} in
        7|8) ;;
        *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
@@ -385,7 +391,7 @@ generate_modulesd() {
 
                # OK so now if we have got this far, then we know we want to 
continue
                # and generate the modprobe.d file.
-               module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})"
+               module_modinfo="$(modinfo -p 
${currm_path}.${KV_OBJ}${KV_OBJ_COMPRESS_EXT})"
                module_config="${T}/modulesd-${currm}"
 
                ebegin "Preparing file for modprobe.d"
@@ -684,6 +690,7 @@ linux-mod_src_install() {
                if linux_chkconfig_present MODULE_COMPRESS_XZ; then
                        xz -T$(makeopts_jobs) --memlimit-compress=50% -q 
${modulename}.${KV_OBJ} || die "Compressing ${modulename}.${KV_OBJ} with xz 
failed"
                        doins ${modulename}.${KV_OBJ}.xz
+                       KV_OBJ_COMPRESS_EXT=".xz"
                elif linux_chkconfig_present MODULE_COMPRESS_GZIP; then
                        if type -P pigz &>/dev/null ; then
                                pigz -p$(makeopts_jobs) ${modulename}.${KV_OBJ} 
|| die "Compressing ${modulename}.${KV_OBJ} with pigz failed"
@@ -691,9 +698,11 @@ linux-mod_src_install() {
                                gzip ${modulename}.${KV_OBJ} || die 
"Compressing ${modulename}.${KV_OBJ} with gzip failed"
                        fi
                        doins ${modulename}.${KV_OBJ}.gz
+                       KV_OBJ_COMPRESS_EXT=".gz"
                elif linux_chkconfig_present MODULE_COMPRESS_ZSTD; then
                        zstd -T$(makeopts_jobs) ${modulename}.${KV_OBJ} || 
"Compressing ${modulename}.${KV_OBJ} with zstd failed"
                        doins ${modulename}.${KV_OBJ}.zst
+                       KV_OBJ_COMPRESS_EXT=".zst"
                else
                        doins ${modulename}.${KV_OBJ}
                fi

Reply via email to