Summary: | relinking instead of recompiling | ||
---|---|---|---|
Product: | Portage Development | Reporter: | armin |
Component: | Enhancement/Feature Requests | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED WORKSFORME | ||
Severity: | enhancement | CC: | armin, pchrist, serkan |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
armin
2011-04-29 11:52:02 UTC
If there's no API change there's no change in the .so name expected. If the .so name changes then the API is expected to be different. I don't see how that's supposed to work. you are "officially right" but: there are bugfix revsion .so name changes ... esp. with libjpeg last year. (i just put in links to keep the GUI/KDE up until i could recompile the whole system) - and also libx264 constantly. it's maybe not an out of the box thing, but e.g. if the ebuild owner of libjpeg knows it's not an API change s/he could add a flag in the ebuild file? something like that? in that case he probably better fixes the soname, or forward all cursing to upstream right - i'm not cursing tho ;) the thing is. rebuilding 1/2 the kde for a jpeg bugfix is in the end a gentoo user experience issue. don't get me wrong, the complaint is completely fair, but I believe there is a limit to what Gentoo should try to fix if upstream is stupid (or maybe the ABI did change, but not for a function that happens to be used a lot (or at all by e.g. KDE)) i did not get you wrong - but upstream will always be stupid somehow ;) it's more the user experience here. so an flag in the ebuild like "BUGFIX_JUST_RELINK" which is ignored by emerge, but taken account of in revdep-rebuild might just do the trick. and you are right - this should NOT be used often. but with care and basic libraries a lot of progs link too... about the ABI or API changes: the ebuild maintainer should know and set the flag if it's clearly a bugfix. on a totally other note, maybe such libs should be slot installed by default, so nothing breaks and the next emerge will use the new lib. but with bugfixes this is not what we want in the end... I don't understand how you would "just relink". I could imagine the only thing necessary is a symlink from the old soname to the current version of the lib. sorry for being unclear - yes - that's what i meant and revdep-rebuild should do, with a message to notify the user. In that case you might want to check out portage 2.2's preserve-libs feature, which at least prevents your system from breaking (as it keeps the old lib around) but eventually does require a rebuild of KDE (and all other consumers). You could theoretically delay this until the next KDE update, though. if the SONAME changes and it shouldnt, then it's a bug to report to the respective upstream package maintainer, and have it fixed in the specific ebuild. there's no sane way this can be checked automatically by a PM. |