Summary: | Portage should undefine FEATURES inside ebuilds | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Ciaran McCreesh <ciaran.mccreesh> |
Component: | Core - Ebuild Support | Assignee: | Portage team <dev-portage> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | esigra, floppym |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=540146 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 415045 | ||
Bug Blocks: | 240323 |
Description
Ciaran McCreesh
2012-05-06 22:15:10 UTC
Yeah, we can migrate internal code to use the existing PORTAGE_FEATURES variable: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=c32aee053541993a3b7be732798976ed20faba69 Would it also be unset for eclass code? Just thinking of the preserve_old_lib function from eutils.eclass. (In reply to comment #2) > Would it also be unset for eclass code? Yes, of course. > Just thinking of the preserve_old_lib function from eutils.eclass. It could use PORTAGE_FEATURES instead. :-) So you'll need to make sure you don't export PORTAGE_FEATURES to ebuilds too then. Maybe we should add a function like preserve_old_lib in the package manager for EAPI 5. Maybe we should put slot operator deps in EAPI 5 so you don't need any of that flaky mess. Slot operator deps are nice, but you also have to make people promise to stop using preserve_old_lib then. soname changes can occur inside the same slot. (In reply to comment #7) > Slot operator deps are nice, but you also have to make people promise to > stop using preserve_old_lib then. That's easy. Deprecate it, ban it in newer EAPIs, and then later remove it. (In reply to comment #8) > soname changes can occur inside the same slot. Which is why you use another slot when that happens, and use slot operator deps to handle the dependency. There is absolutely no need to match slots to versions in any way. I really hate preserve_libs, but what is the proper solution for packages like mpfr which change the soname but upstream does not version the headers? I see four possibilities: 1) patch them to version the headers as well and slot them (together with slot operator deps) 2) ask upstream to properly version the headers alongside with the lib and slot them (together with slot operator deps) 3) slot them and block old slots in newer versions (together with slot operator deps) 4) introduce a new EAPI variable which can be incremented whenever an soname changes (needs some more thinking and proper specification, somehow duplicates SLOT) Those are all possibilities. You can also subdivide packages (possibly using use flags) into "the bits that need to be kept around for a while" and "the rest". (In reply to comment #10) > 4) introduce a new EAPI variable which can be incremented whenever an soname > changes (needs some more thinking and proper specification, somehow > duplicates SLOT) That's the ABI_SLOT variable mentioned in bug 192319, comment #18. It would make slot operator deps much more flexible. Let's do it in EAPI 5! |