summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorMike Pagano <mpagano@gentoo.org>2023-05-17 18:25:22 -0400
committerMike Pagano <mpagano@gentoo.org>2023-05-17 18:25:22 -0400
commit9f6898bdcc89290841e081b62987c764f97a506b (patch)
tree0e614600b63487c51b60323c696a1b79fc040e09 /eclass
parentdev-util/idea-community: drop 2023.1.1 (diff)
downloadgentoo-9f6898bdcc89290841e081b62987c764f97a506b.tar.gz
gentoo-9f6898bdcc89290841e081b62987c764f97a506b.tar.bz2
gentoo-9f6898bdcc89290841e081b62987c764f97a506b.zip
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@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/linux-mod.eclass11
1 files changed, 10 insertions, 1 deletions
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