Hundreds of die messages suck and completely jungle up the terminal, and actually...
authorFabian Groffen <grobian@gentoo.org>
Wed, 2 Jan 2008 11:18:26 +0000 (11:18 -0000)
committerFabian Groffen <grobian@gentoo.org>
Wed, 2 Jan 2008 11:18:26 +0000 (11:18 -0000)
svn path=/main/branches/prefix/; revision=9134

bin/misc-functions.sh

index bc42f8d19ba57395e7a9101b3e3b54c3e043bb88..f1a52e71dd44523b4e6827aa991054a5b13486e1 100644 (file)
@@ -336,6 +336,7 @@ install_qa_check() {
 
        # Check that we don't get kernel traps at runtime because of broken
        # install_names on Darwin
+       rm -f "${T}"/.install_name_check_failed
        [[ ${CHOST} == *-darwin* ]] && find "${ED}" -type f | while read f ; do
                otool -LX "${f}" \
                        | grep -v "Archive : " \
@@ -353,16 +354,19 @@ install_qa_check() {
                                else
                                        eqawarn "QA Notice: invalid reference to ${r} in ${f}"
                                        # remember we are in an implicit subshell, that's
-                                       # why we die here ... ideally we should be able to
-                                       # die correctly/nicely here
-                                       # secret switch "allow_broken_install_names" to get
-                                       # around this and install broken crap (not a good idea)
-                                       hasq allow_broken_install_names ${FEATURES} || \
-                                       die "invalid install_name found, ${f} will crash at runtime -- there may be possibly more affected files"
+                                       # why we touch a file here ... ideally we should be
+                                       # able to die correctly/nicely here
+                                       touch "${T}"/.install_name_check_failed
                                fi
                        fi
                done
        done
+       if [[ -f ${T}/.install_name_check_failed ]] ; then
+               # secret switch "allow_broken_install_names" to get
+               # around this and install broken crap (not a good idea)
+               hasq allow_broken_install_names ${FEATURES} || \
+                       die "invalid install_name found, your application will crash at runtime"
+       fi
 
        # Evaluate misc gcc warnings
        if [[ -n ${PORTAGE_LOG_FILE} && -r ${PORTAGE_LOG_FILE} ]] ; then