--- /usr/bin/revdep-rebuild +++ revdep-rebuild @@ -185,11 +185,11 @@ if LD_LIBRARY_PATH="$COMPLETE_LD_LIBRARY_PATH" \ ldd "$FILE" 2>/dev/null | grep -v "$LD_MASK" | $SONAME_GREP -q "$SONAME_SEARCH" ; then - echo "$FILE" >>$LLIST.3_rebuild + echo "obj $FILE " >>$LLIST.3_rebuild echo_v " broken $FILE (requires $(ldd "$FILE" | sed -n 's/ \(.*\) => not found$/\1/p' | tr '\n' ' ' | sed 's/ $//' ))" fi else - echo "$FILE" >>$LLIST.3_rebuild + echo "obj $FILE " >>$LLIST.3_rebuild echo_v " found $FILE" fi fi @@ -208,8 +208,8 @@ set_trap "$LLIST.4_packages_raw" echo -n >$LLIST.4_packages_raw echo -n >$LLIST.4_package_owners - cat $LLIST.3_rebuild | while read FILE ; do - PKG=$(fgrep -l $FILE /var/db/pkg/*/*/CONTENTS|sed -e 's:/var/db/pkg/\(.*\)/CONTENTS:\1:g' -e "s:-r[0-9]\+$::" -e "s:-[0-9][^-]*$::") + cat $LLIST.3_rebuild | while read obj FILE ; do + PKG=$(find /var/db/pkg -name CONTENTS | xargs fgrep -l $FILE | sed -e 's:/var/db/pkg/\(.*\)/CONTENTS:\1:g' -e "s:-r[0-9]\+$::" -e "s:-[0-9][^-]*$::") if [ -z "$PKG" ] ; then echo -n -e "\n ${RD}*** $FILE not owned by any package is broken! ***${NO}" echo "$FILE -> (none)" >> $LLIST.4_package_owners @@ -246,11 +246,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"