It should be possible to detect packages that have broke due to a library upgrade instead of running revdep-rebuild now and then, here's a thought how to do that.. When a package is merged, portage records where all dynamically linked objects link to along with the shared objects the package provides. This could be to a small database (sqlite?). | PACKAGE | PROVIDES | LINKSTO | | sys-apps/findutils | | /lib/libc.so.6 | | x11-libs/libX11 | /usr/lib/libX11.so.6.2.0 | /usr/lib/libXau.so.6 | Then, portage could compare the provides of before/after a library upgrade and tell whether any shared objects are removed, if so, check in the database if any other packages linked to that library and then have list of packages that broke. However, I don't know how how long that evaluation will take with ~1000 packages installed, so maybe it should be made available if used as a FEATURE="autorevdep"..
Created attachment 93913 [details] bashrc.verify-needed Here is the basic idea hashed out as a bashrc. (requires portage-utils-0.1.20 and pax-utils-current) I tend to use this code standalone at the moment. In an ideal world this basic code would be extended to run in preinst phase.
For 64bit multilib arches in my example it might be better to change the code.. -scanelf -Bqn -f - -F '%n#F' +scanelf -LBqn -f - -F '%n#F'
I think preserve-libs in trunk covers this, also talked with Paul about integrated revdep-rebuild support so people should only have to run one simple command. *** This bug has been marked as a duplicate of bug 62207 ***