Index: ebuild.sh =================================================================== RCS file: /var/cvsroot/gentoo-src/portage/bin/ebuild.sh,v retrieving revision 1.193 diff -u -b -B -w -p -r1.193 ebuild.sh --- ebuild.sh 26 Aug 2004 09:16:14 -0000 1.193 +++ ebuild.sh 3 Sep 2004 00:54:29 -0000 @@ -898,6 +898,9 @@ dyn_package() { xpak build-info inf.xpak tbz2tool join bin.tar.bz2 inf.xpak "${PF}.tbz2" mv "${PF}.tbz2" "${PKGDIR}/All" || die "Failed to move tbz2 to ${PKGDIR}/All" + if hasq buildipkg $FEATURES; then + tbz2ipkg "${PKGDIR}/All/${PF}.tbz2" + fi rm -f inf.xpak bin.tar.bz2 if [ ! -d "${PKGDIR}/${CATEGORY}" ]; then install -d "${PKGDIR}/${CATEGORY}" @@ -961,6 +964,24 @@ dyn_install() { echo "UNSAFE SetUID: $i" done + if [ -x /usr/bin/readelf -a -x /usr/bin/file ]; then + for x in $(find "${D}/" -type f \( -perm -04000 -o -perm -02000 \) ); do + f=$(file "${x}") + echo $x - $f + + if [ -z "${f/*SB executable*/}" -o -z "${f/*SB shared object*/}" ]; then + /usr/bin/readelf -d "${x}" | egrep "(FLAGS)(.*)BIND_NOW" > /dev/null + if [ $? != 0 ]; then + UNSAFE=$(($UNSAFE + 1)) + echo -ne '\a' + echo "QA Notice: Security risk ${x:${#D}:${#x}}. Please consider relinking with 'append-ldflags -Wl,-z,now' to fix." + echo -ne '\a' + sleep 1s + fi + fi + done + fi + if [[ $UNSAFE > 0 ]]; then die "There are ${UNSAFE} unsafe files. Portage will not install them." fi