Summary: | [Future EAPI] Add a dependency restriction operator that only applies to installed packages | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | Michał Górny <mgorny> |
Component: | PMS/EAPI | Assignee: | PMS/EAPI <pms> |
Status: | CONFIRMED --- | ||
Severity: | enhancement | CC: | esigra |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 174380 |
Description
Michał Górny
2016-05-20 06:42:20 UTC
(In reply to Michał Górny from comment #0) > My simplest idea would be to have a new pre-operator that would cause the > dependency to apply only if the package of the same slot is installed (or if > the blocker made of its negation would block?). > > i.e. > > ?>=sys-apps/openrc-X.Y > > would mean that if any version of sys-apps/openrc is installed, then >=X.Y > is required. So, for example, if a package depends on ?>=sys-apps/openrc-0.13 then openrc-0.12 would not satisfy the dependency, but no openrc at all would satisfy it? Is this only a different syntax for the blocker !<sys-apps/openrc-0.13 then, or what am I missing here? Yes and no. The major difference is that with blocker, Portage will often tell you to unmerge openrc (unless openrc upgrade is independently pulled into dependency graph). The main point in this is to avoid this confusion. Additionally, the negative logic of blockers is often found confusing. Developers are more likely to do the right thing provided an explicit tool for it, than expected to use blockers which were designed to force uninstalls. I think there's still debate if weak blockers are appropriate there since they are meant to handle file collisions. |