Fix shell glob logic that leads to false positives. Thanks to Flameeyes for reporting.
authorZac Medico <zmedico@gentoo.org>
Sat, 6 Jan 2007 00:16:59 +0000 (00:16 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 6 Jan 2007 00:16:59 +0000 (00:16 -0000)
svn path=/main/trunk/; revision=5466

bin/misc-functions.sh

index 75b95ba0931dd95483285162f0e471930fc93d4e..68078714b5e61b2a0ffdf754b096bbaeb26dafd7 100755 (executable)
@@ -244,6 +244,7 @@ install_qa_check() {
        # http://bugs.gentoo.org/4411
        abort="no"
        for a in "${D}"usr/lib*/*.a ; do
+               [[ ! -e ${a} ]] && continue
                s=${a%.a}.so
                if [[ ! -e ${s} ]] ; then
                        s=${s%usr/*}${s##*/usr/}
@@ -257,11 +258,17 @@ install_qa_check() {
        [[ ${abort} == "yes" ]] && die "add those ldscripts"
 
        # Make sure people don't store libtool files or static libs in /lib
-       f=$(ls "${D}"lib*/*.{a,la} 2>/dev/null)
+       f=()
+       for a in "${D}"lib*/*.{a,la} ; do
+               [[ ! -e ${a} ]] && continue
+               f=("${f[@]}" "${a}")
+       done
        if [[ -n ${f} ]] ; then
                vecho -ne '\a\n'
-               vecho "QA Notice: excessive files found in the / partition\a"
-               vecho "${f}"
+               vecho "QA Notice: excessive files found in the / partition"
+               for a in "${f[@]}" ; do
+                       vecho "${a}"
+               done
                vecho -ne '\a\n'
                die "static archives (*.a) and libtool library files (*.la) do not belong in /"
        fi
@@ -269,6 +276,7 @@ install_qa_check() {
        # Verify that the libtool files don't contain bogus $D entries.
        abort="no"
        for a in "${D}"usr/lib*/*.la ; do
+               [[ ! -e ${a} ]] && continue
                s=${a##*/}
                if grep -qs "${D}" "${a}" ; then
                        vecho -ne '\a\n'