From: Michael Tremer Date: Tue, 21 Feb 2023 13:04:32 +0000 (+0000) Subject: find-requires: Only check for interpreters for executable files X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=83f0fefc9aaa658b2f3d293079ab0b8cc3c9b0fe;p=people%2Fstevee%2Fpakfire.git find-requires: Only check for interpreters for executable files This avoids collecting interpreters from firmware likes like QEMU installs them for instance. Signed-off-by: Michael Tremer --- diff --git a/src/scripts/find-requires b/src/scripts/find-requires index 39c0d156..836b027c 100644 --- a/src/scripts/find-requires +++ b/src/scripts/find-requires @@ -56,6 +56,11 @@ find_elf_interpreter() { local file="${1}" local filelist="${2}" + # Don't find interpreters for non-executable files + if [ ! -x "${file}" ]; then + return 0 + fi + local interpreter="$(readelf -l "${file}" 2>/dev/null | \ grep "program interpreter" | tr -d "]" | awk '{ print $NF }')" @@ -105,6 +110,11 @@ find_weak_symbols() { find_script_interpreter() { local file="${1}" + # Don't find interpreters for non-executable files + if [ ! -x "${file}" ]; then + return 0 + fi + local first_line="$(grep -q "^#!" "${file}" && head -n1 "${file}")" # Skip files that are not scripts