commit:     75fd4f4d05df729511f071b2c1a163f08f522622
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 23 19:00:10 2019 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Jul 23 19:00:10 2019 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=75fd4f4d

gen_initramfs.sh: Refactor append_modules() to not include --module-prefix

Make sure to chdir into ${INSTALL_MOD_PATH%/}/lib/modules/${KV} before
copying modules to avoid inclusion of --module-prefix path.

Bug: https://bugs.gentoo.org/690260
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 gen_initramfs.sh | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index 1fcfdce..eb3aed7 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -1301,29 +1301,32 @@ append_modules() {
                mkdir -p "${TDIR}"/${mydir} || gen_die "Failed to create 
'${TDIR}/${mydir}'!"
        done
 
+       local modules_dstdir="${TDIR}/lib/modules/${KV}"
+       local modules_srcdir="/lib/modules/${KV}"
+
        print_info 2 "$(get_indent 2)modules: >> Copying modules to initramfs 
..."
-       if [ "${INSTALL_MOD_PATH}" != '' ]
+
+       if [ -n "${INSTALL_MOD_PATH}" ]
        then
-               cd "${INSTALL_MOD_PATH}" || gen_die "Failed to chdir to 
'${INSTALL_MOD_PATH}'!"
-       else
-               cd / || gen_die "Failed to chdir to '/'!"
+               modules_srcdir="${INSTALL_MOD_PATH%/}${modules_srcdir}"
        fi
 
-       local _MODULES_DIR="${PWD%/}/lib/modules/${KV}"
-       if [ ! -d "${_MODULES_DIR}" ]
+       if [ ! -d "${modules_srcdir}" ]
        then
-               error_message="'${_MODULES_DIR}' does not exist! Did you forget"
+               error_message="'${modules_srcdir}' does not exist! Did you 
forget"
                error_message+=" to compile kernel before building initramfs?"
                error_message+=" If you know what you are doing please set 
'--no-ramdisk-modules'."
                gen_die "${error_message}"
        fi
 
+       cd "${modules_srcdir}" || gen_die "Failed to chdir to 
'${modules_srcdir}'!"
+
        local i= mymod=
        local MOD_EXT="$(modules_kext)"
        local n_copied_modules=0
        for i in $(gen_dep_list)
        do
-               mymod=$(find "${_MODULES_DIR}" -name "${i}${MOD_EXT}" 
2>/dev/null | head -n 1)
+               mymod=$(find . -name "${i}${MOD_EXT}" 2>/dev/null | head -n 1)
                if [ -z "${mymod}" ]
                then
                        print_warning 3 "$(get_indent 3) - ${i}${MOD_EXT} not 
found; Skipping ..."
@@ -1331,8 +1334,8 @@ append_modules() {
                fi
 
                print_info 3 "$(get_indent 3) - Copying ${i}${MOD_EXT} ..."
-               cp -ax --parents "${mymod}" "${TDIR}"/ 2>/dev/null \
-                       || gen_die "Failed to copy '${mymod}' to '${TDIR}/'!"
+               cp -ax --parents --target-directory "${modules_dstdir}" 
"${mymod}" 2>/dev/null \
+                       || gen_die "Failed to copy '${modules_srcdir}/${mymod}' 
to '${modules_dstdir}'!"
                n_copied_modules=$[$n_copied_modules+1]
        done
 
@@ -1343,11 +1346,12 @@ append_modules() {
                print_info 2 "$(get_indent 2)modules: ${n_copied_modules} 
modules copied!"
        fi
 
-       cp -ax --parents "${_MODULES_DIR}"/modules* "${TDIR}"/ 2>/dev/null \
-               || gen_die "Failed to copy '${_MODULES_DIR}/modules*' to 
'${TDIR}/'!"
+       cp -ax --parents --target-directory "${modules_dstdir}" modules* 
2>/dev/null \
+               || gen_die "Failed to copy '${modules_srcdir}/modules*' to 
'${modules_dstdir}'!"
 
        local group_modules= group=
-       for group_modules in ${!MODULES_*}; do
+       for group_modules in ${!MODULES_*}
+       do
                group="$(echo ${group_modules} | cut -d_ -f2- | tr "[:upper:]" 
"[:lower:]")"
                print_list ${!group_modules} > "${TDIR}"/etc/modules/${group} \
                        || gen_die "Failed to create 
'${TDIR}/etc/modules/${group}'!"

Reply via email to