Summary: | PMS is unclear on the meaning of subslots | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | Alexis Ballier <aballier> |
Component: | PMS/EAPI | Assignee: | Package Manager Specification <pms> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | arne_bab, kripton, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Alexis Ballier
![]() PMS specifies invariants. It's up to you how you make use of those invariants. The specification of subslots has *nothing* to do with ABIs, whatever an ABI is. You can use subslots for dealing with ABIs if you like, but PMS doesn't care. The valid use cases are precisely those where the mechanism specified for subslots is what you want. If you want more guidance on how to use subslots in practice, that's a devmanual thing. (In reply to comment #1) > PMS specifies invariants. It's up to you how you make use of those > invariants. The specification of subslots has *nothing* to do with ABIs, > whatever an ABI is. You can use subslots for dealing with ABIs if you like, > but PMS doesn't care. Agreed, but the wording is vague so it should be made clear it is done on purpose. > The valid use cases are precisely those where the > mechanism specified for subslots is what you want. What's wrong with adding such a comment after the sentence I quoted ? Otherwise you could also simply remove that sentence, it's not an invariant either, only a temptative vague and confusing interpretation of subslots, and could also go to devmanual being much more precise. (In reply to Alexis Ballier from comment #2) > What's wrong with adding such a comment after the sentence I quoted ? Can you provide a patch please, so that we have a concrete wording for discussion? (manual patch) - The sub-slot is used to represent cases in which an upgrade to a new version of a package with a different sub-slot may require dependent packages to be rebuilt. + An upgrade to a new version of a package with a different sub-slot requires the package manager to rebuild dependent packages. (maybe change the upgrade wording too since its the case for downgrades also...) It's an invariant; usage can go to devmanual. But that's wrong: the package mangler may take other actions instead of rebuilding dependent packages, such as uninstalling them or installing a different version. (In reply to Ciaran McCreesh from comment #5) > But that's wrong: the package mangler may take other actions instead of > rebuilding dependent packages, such as uninstalling them or installing a > different version. not more than the current wording then... + Installing a package in the same SLOT but with a different sub-slot breaks the dependent packages. (In reply to Alexis Ballier from comment #6) > (In reply to Ciaran McCreesh from comment #5) > > But that's wrong: the package mangler may take other actions instead of > > rebuilding dependent packages, such as uninstalling them or installing a > > different version. > > not more than the current wording then... > > + Installing a package in the same SLOT but with a different sub-slot breaks > the dependent packages. Maybe with a "might": + Installing a package in the same SLOT but with a different sub-slot might break dependent packages. (I’m stumbling over subslot dependencies right now, with conflicts I cannot resolve easily, which is what got me here) The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=ee127db438307c133fcf650c148ed594ceb68591 commit ee127db438307c133fcf650c148ed594ceb68591 Author: Sam James <sam@gentoo.org> AuthorDate: 2023-09-04 17:40:06 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-12-10 22:01:48 +0000 dep: add comment to _eval_deps wrt binding slot deps in any-of || ( ... ) Bug: https://bugs.gentoo.org/455904 Bug: https://bugs.gentoo.org/489458 Bug: https://bugs.gentoo.org/586238 Signed-off-by: Sam James <sam@gentoo.org> lib/portage/dep/_slot_operator.py | 1 + 1 file changed, 1 insertion(+) |