Part of the output of revdep-rebuild: * Found some broken files that weren't associated with known packages * The broken files are: * /usr/lib64/blas/atlas/libblas.la * /usr/lib64/blas/atlas/libblas.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libpoppler-cairo.la Some of the files are listed more than once. Reproducible: Always Steps to Reproduce: 1. Run revdep-rebuild, with at least one library which is multiply broken: ie, part of the revdep-rebuild output should look like this: [ 66% ] * broken /usr/lib64/libGraphicsMagick++.la (requires /usr/lib64/libGraphicsMagick.la) * broken /usr/lib64/libGraphicsMagick++.la (requires //usr/lib64/libdpstk.la) * broken /usr/lib64/libGraphicsMagick++.la (requires //usr/lib64/libdps.la) * broken /usr/lib64/libGraphicsMagick++.la (requires /-lstdc++) I'm not sure how to create such a file. Actual Results: * Found some broken files that weren't associated with known packages * The broken files are: * /usr/lib64/blas/atlas/libblas.la * /usr/lib64/blas/atlas/libblas.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libpoppler-cairo.la Expected Results: * Found some broken files that weren't associated with known packages * The broken files are: * /usr/lib64/blas/atlas/libblas.la * /usr/lib64/libGraphicsMagick++.la * /usr/lib64/libpoppler-cairo.la
With portage-2.1.3.x you can use portageq owners. This works regardless of symlinked directories too (by comparison of inodes). owners <root> [<filename>]+ Given a list of files, print the packages that own the files and which files belong to each package. Files owned by a package are listed on the lines below it, indented by a single tab character (\t). All file paths must start with <root>. Returns 1 if no owners could be found, and 0 otherwise.
*** This bug has been marked as a duplicate of bug 93574 ***
Not a duplicate
Change this function (around line 785) from show_unowned_files() { if grep -qF '(none)' "$LIST.4_package_owners"; then ewarn "Found some broken files that weren't associated with known packages" ewarn "The broken files are:" while read filename junk; do [[ $junk = *none* ]] && ewarn " $filename" done < "$LIST.4_package_owners" fi } to show_unowned_files() { if grep -qF '(none)' "$LIST.4_package_owners"; then ewarn "Found some broken files that weren't associated with known packages" ewarn "The broken files are:" while read filename junk; do [[ $junk = *none* ]] && ewarn " $filename" done < "$LIST.4_package_owners" | awk '!s[$0]++' # (omit dupes) fi } And that should do it.
$ svn diff revdep-rebuild Index: revdep-rebuild =================================================================== --- revdep-rebuild (revision 464) +++ revdep-rebuild (working copy) @@ -840,7 +840,7 @@ ewarn "The broken files are:" while read filename junk; do [[ $junk = *none* ]] && ewarn " $filename" - done < "$LIST.4_package_owners" + done < "$LIST.4_package_owners" | awk '!s[$0]++' # (omit dupes) fi } $ svn commit -m "Don't duplicate broken file output. (Bug 201319)" Sending revdep-rebuild/revdep-rebuild Transmitting file data . Committed revision 465.
Released in gentoolkit-0.2.4_rc2