--- /usr/bin/revdep-rebuild 2006-07-03 15:26:31.000000000 -0500 +++ revdep-rebuild 2006-07-07 16:16:53.000000000 -0500 @@ -421,7 +421,7 @@ done if [ "$MISSING_LIBS" != "" ] then - echo "$FILE" >>$LLIST.3_rebuild + echo "obj $FILE" >>$LLIST.3_rebuild echo_v " broken $FILE (requires ${MISSING_LIBS})" fi fi @@ -440,7 +440,7 @@ done if [ "$MISSING_LIBS" != "" ] then - echo "$FILE" >>$LLIST.3_rebuild + echo "obj $FILE" >>$LLIST.3_rebuild echo_v " found $FILE" fi fi @@ -451,7 +451,7 @@ for depend in $(grep '^dependency_libs' $FILE | awk -F'=' '{print $2}' | sed "s/'//g") ; do [ ${depend:0:1} != '/' ] && continue if [ ! -e $depend ] ; then - echo "$FILE" >>$LLIST.3_rebuild + echo "obj $FILE" >>$LLIST.3_rebuild echo_v " broken $FILE (requires ${depend})" fi done @@ -471,11 +471,11 @@ set_trap "$LLIST.4_packages*" echo -n >$LLIST.4_packages_raw echo -n >$LLIST.4_package_owners - cat $LLIST.3_rebuild | while read FILE ; do + cat $LLIST.3_rebuild | while read obj FILE ; do if $PORTAGE_UTILS ; then EXACT_PKG="$(qfile -qvC ${FILE} )" else - EXACT_PKG="$(echo "$FILE " | sed 's/^/obj /' | (cd /var/db/pkg; grep -l -f - */*/CONTENTS) | sed s:/CONTENTS:: )" + EXACT_PKG=$(find /var/db/pkg -name CONTENTS | xargs fgrep -l "obj $FILE " | sed -e 's:/var/db/pkg/\(.*\)/CONTENTS:\1:g') fi # Ugly sed hack to strip version information PKG="$(echo $EXACT_PKG | sed 's/-r[0-9].*$//;s/\(^.*\/*\)-.*$/\1/')" @@ -561,11 +561,8 @@ else if [ -s "$LLIST.3_rebuild" ] ; then set_trap "$LLIST.4_ebuilds" - cat $LLIST.3_rebuild | sed 's/^/obj /;s/$/ /' | - ( - cd /var/db/pkg - fgrep -l -f - */*/CONTENTS - ) | sed s:/CONTENTS:: > $LLIST.4_ebuilds + find /var/db/pkg -name CONTENTS | xargs fgrep -l -f $LLIST.3_rebuild | + sed 's:/var/db/pkg/\(.*\)/CONTENTS:\1:' > $LLIST.4_ebuilds echo -e " done.\n ($LLIST.4_ebuilds)" else echo " Nothing to rebuild"