diff --git a/scripts/build/internals.sh b/scripts/build/internals.sh index e407de8b..f7107b49 100644 --- a/scripts/build/internals.sh +++ b/scripts/build/internals.sh @@ -144,5 +144,7 @@ do_finish() { CT_DoForceRmdir "${CT_DEBUGROOT_DIR}/"{,usr/}{,share/}{man,info} fi + CT_InstallCopyingInformation + CT_EndStep } diff --git a/scripts/functions b/scripts/functions index ab235d89..81406c39 100644 --- a/scripts/functions +++ b/scripts/functions @@ -2396,3 +2396,34 @@ else CT_Error "Not found: paths.sh" fi . "${paths_sh_location}" + +CT_InstallCopyingInformation() +{ + local pkgname + local pkgdir + local licfile + local dstdir + + CT_DoLog EXTRA "Collect license information from: ${CT_SRC_DIR}" + CT_DoLog EXTRA "Put the license information to: ${CT_PREFIX_DIR}/share/licenses" + + shopt -s nullglob + + for pkgdir in ${CT_SRC_DIR}/*; do + pkgname=$(basename "${pkgdir}") + for licfile in ${pkgdir}/{COPYING*,LICENSE*}; do + dstdir="${CT_PREFIX_DIR}/share/licenses/${pkgname}" + mkdir -p "${dstdir}" + CT_DoExecLog ALL cp -av "${licfile}" "${dstdir}/" + done + done + + # Also add crosstool's information + for licfile in ${CT_TOP_DIR}/{COPYING*,LICENSE*,licenses.d}; do + dstdir="${CT_PREFIX_DIR}/share/licenses/crosstool-ng" + mkdir -p "${dstdir}" + CT_DoExecLog ALL cp -av "${licfile}" "${dstdir}/" + done + + shopt -u nullglob +}