# Copyright 2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ # - /etc/portage/bashrc.verify-needed # - echo source /etc/portage/bashrc.verify-needed >> /etc/portage/bashrc # # - Or standalone # - sh bashrc.verify-needed $(qlist -ICv) verify_needed() { local x files orphans needed for x in scanelf q; do if ! type -p ${x} 2>&1 > /dev/null; then return 0 fi done # make sure we have app-portage/portage-utils-0.1.20 or later. q file -Ch | grep -q -- --orphans [[ $? != 0 ]] && return 0 files="$(q list -Co $1 | scanelf -BF%F)" needed=$(echo "${files}" | scanelf -Bqn -f - -F '%n#F' | tr , '\n' | sort -u | tr '\n' ' ') [[ $needed == "" ]] && return 0 orphans=$(q file -Co ${needed} | tr '\n' ' ') [[ $orphans == "" ]] && return 0 echo '!!! '"ELF DT_NEEDED orphans: $1" for x in ${orphans}; do echo "!!! $x : "$(echo "${files}" | scanelf -Bq -f - -F '%F#N' -N ${x} | tr '\n' ' ') done } if [[ $EBUILD_PHASE == postinst ]]; then verify_needed "${CATEGORY}/${PF}" fi if [[ $EBUILD_PHASE == "" ]]; then for x in $*; do verify_needed $x done fi