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}'!"