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. Reproducible: Always
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: sys-apps/portage ~*
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. Thanks.
(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: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1a540597eecef10c2346b32fa9ceb8e688cc9f92
Thanks for additional explanation!