commit:     56c89013f80111143170e62c91dddd55184d6cdb
Author:     Dmitriy Baranov <reagentoo <AT> gmail <DOT> com>
AuthorDate: Tue Mar  5 14:24:09 2024 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Mon May 20 12:58:59 2024 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=56c89013

gen_moddeps.sh: use KEXT along with default '.ko' extension to prevent modinfo 
error

Also improved gen_dep_list() and get rid xbasename()

Bug: https://bugs.gentoo.org/922663
Closes: #57
Signed-off-by: Dmitriy Baranov <reagentoo <AT> gmail.com>
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 gen_moddeps.sh | 33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/gen_moddeps.sh b/gen_moddeps.sh
index 7e2e070..ff264f4 100755
--- a/gen_moddeps.sh
+++ b/gen_moddeps.sh
@@ -10,27 +10,17 @@ mod_dep_list() {
        cat "${TEMP}/moddeps"
 }
 
-xbasename() {
-       local -a moddeplist=( $( </dev/stdin ) )
-
-       if (( ${#moddeplist[@]} > 0 ))
-       then
-               # prepend slash to each moddeplist element
-               # to avoid passing elements as basename options
-               basename -s "${KEXT}" "${moddeplist[@]/#/\/}"
-       fi
-}
-
 gen_dep_list() {
+       local -a modlist=() moddeplist=()
        local moddir="${KERNEL_MODULES_PREFIX%/}/lib/modules/${KV}"
 
+       # Always include firmware for built-in modules
+       moddeplist=( $(cat "${moddir}/modules.builtin") )
+
        if isTrue "${ALLRAMDISKMODULES}"
        then
-               cat "${moddir}/modules.builtin"
-               cat "${moddir}/modules.dep" | cut -d':' -f1
+               moddeplist+=( $(cat "${moddir}/modules.dep" | cut -d':' -f1) )
        else
-               local -a modlist=() moddeplist=()
-
                local mygroups
                for mygroups in ${!MODULES_*} GK_INITRAMFS_ADDITIONAL_KMODULES
                do
@@ -60,15 +50,18 @@ gen_dep_list() {
                        local -a rxargs=( "${modlist[@]}" )
 
                        rxargs=( "${rxargs[@]/#/-e\/}" )
-                       rxargs=( "${rxargs[@]/%/${KEXT}:}" )
+                       rxargs=(
+                               "${rxargs[@]/%/.ko:}"
+                               "${rxargs[@]/%/${KEXT}:}"
+                       )
 
                        cat "${moddir}/modules.dep" \
                                | grep -F "${rxargs[@]}"
                )
+       fi
 
-               # Always include firmware for built-in modules
-               cat "${moddir}/modules.builtin"
+       moddeplist=( ${moddeplist[@]##*/} )
+       moddeplist=( ${moddeplist[@]%%.*} )
 
-               printf '%s\n' "${moddeplist[@]}"
-       fi | xbasename | sort | uniq
+       printf '%s\n' "${moddeplist[@]}" | sort | uniq
 }

Reply via email to