From: Michael Tremer Date: Tue, 23 Mar 2010 13:03:08 +0000 (+0100) Subject: QA: Check dependency libs only if interpreter is available. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69cdd37506d41b4ce92e32277c09c864ff20402b;p=ipfire-3.x.git QA: Check dependency libs only if interpreter is available. --- diff --git a/tools/quality-agent.d/050-root-links-to-usr b/tools/quality-agent.d/050-root-links-to-usr index c514136cc..0027ff3ae 100755 --- a/tools/quality-agent.d/050-root-links-to-usr +++ b/tools/quality-agent.d/050-root-links-to-usr @@ -7,6 +7,13 @@ log "Check for binaries in /bin or /sbin that link to /usr/..." for file in ${BUILDROOT}/{bin,lib,sbin}/*; do [ -f "${file}" ] || continue log " ${file}" + + interpreter=$(get_interpreter ${file}) + if [ ! -e "${BUILDROOT}${interpreter}" ]; then + log " SKIPPED because interpreter is not available" + continue + fi + libs=$(ldd ${file}) if grep -q /usr/lib <<<${libs}; then log "ERROR: ${file} links to libs in /usr/lib..." diff --git a/tools/quality-agent.d/qa-include b/tools/quality-agent.d/qa-include index 43e0e5bde..45046237d 100644 --- a/tools/quality-agent.d/qa-include +++ b/tools/quality-agent.d/qa-include @@ -8,3 +8,10 @@ if [ -z "${BUILDROOT}" ]; then echo "${0##*/}: ERROR: BUILDROOT is not set." >&2 exit 1 fi + +get_interpreter() { + local file=${1} + + readelf -l ${file} | grep "program interpreter" | \ + tr -d "]" | awk '{ print $NF }' +}