This idea is taken from freebsd.
Short description: when we upgrade library dev-libs/foo and SONAME is changed all binaries(app-foo/bar) linked to them are broken. If they are using e.g. as CGI script our page immediately becomes broken.
I know revdep-rebuild is solution but this tool needs time to find broken binaries and emerge needs time to recompile app-foo/bar.
Maybe it could be worth to keep old libraries in e.g. /usr/backup/lib/ , add this path to LDPATH. app-foo/bar will still work and sysadmin would have time to recompile app-foo/bar agains new version of dev-libs/foo.
Revdep-rebuild should report binaries linked against lib placed in /usr/backup/lib as broken.
Maybe revdep-rebuild should create cache with such information then emerge could check if app-foo/bar was recompiled after upgrade of dev-libs/foo and display warning about it after emerging any package?
Maybe this idea(s) aren't good however it would be great to don't have downtime after upgrade of any libs.
That feature has been around for over an year or so
*** This bug has been marked as a duplicate of bug 240323 ***
Or duplicate of bug 337880, or one of the many others.
In case you are confused Samuli's response: a similar feature to the one you describe (preserve-libs) has been implemented in portage-2.2. To install this version, add the following to package.keywords:
I've found it:) I tried use portage-2.2 and functionality looks ok for me (in context of this bug). (i've have some problem when libs is downgraded @preserved-libs didn't preserve libs, but this i'll report in other bug. If it isn't reported earlier)
I can see portage-2.2 brings many new feature, it's great but portage-2.2 is too long masked. From my point of view it could be better to have lower number of features but more frequently.
(In reply to comment #4)
> I can see portage-2.2 brings many new feature, it's great but portage-2.2 is
> too long masked. From my point of view it could be better to have lower number
> of features but more frequently.
All features that are considered stable are enabled in portage-2.1.10.x. The only difference between the portage-2.1.10 branch and the portage-2.2 branch is a few constants that enable/disable features:
Thanks for additional explanation!