Check for NEEDED and SONAME attribute and raise an
exception if they are lacking.
export CONTROL_PREIN CONTROL_PREUN CONTROL_POSTIN CONTROL_POSTUN
export QUALITY_AGENT_WHITELIST_EXECSTACK QUALITY_AGENT_WHITELIST_RPATH
+export QUALITY_AGENT_WHITELIST_SONAME
--- /dev/null
+#!/bin/bash
+
+. $(dirname ${0})/qa-include
+
+check_files=$(find ${BUILDROOT} -name lib*.so)
+
+log "Searching bad libs that lack the NEEDED attribute"
+
+if [ -n "$check_files" ]; then
+ f=$(scanelf -ByF '%n %p' $check_files | awk '$2 == "" { print }')
+ if [ -n "$f" ]; then
+ log " QA Notice: The following shared libraries lack NEEDED entries"
+ log "${f}"
+ exit 1
+ fi
+fi
+
+exit 0
--- /dev/null
+#!/bin/bash
+
+. $(dirname ${0})/qa-include
+
+log "Searching bad libs that lack a SONAME"
+
+check_files=$(find ${BUILDROOT} -name lib*.so)
+
+command="scanelf -ByF '%S %p' $check_files | awk '$2 == "" { print }'"
+
+for i in $QUALITY_AGENT_WHITELIST_SONAME; do
+ if [ -n "$FILTER" ]; then
+ FILTER="$FILTER|$i"
+ else
+ FILTER="$i"
+ fi
+done
+
+if [ -n "$FILTER" ]; then
+ command="$command | grep -vE \"$FILTER\""
+fi
+
+files=$(${command})
+if [ -n "${files}" ]; then
+ log " QA Notice: The following shared libraries lack a SONAME"
+ log "${files}"
+
+ exit 1
+fi
+
+exit 0