Summary: | Dependency graphs mishandle multi constraints / ranges leading to wrong SLOT in binary package DEPENDs | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Allen Webb <allenwebb> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | gentoo, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Allen Webb
2021-09-24 14:14:42 UTC
(In reply to Allen Webb from comment #0) > For ebuilds with DEPEND of the form: > > >=category/package-0.3.5:= <category/package-0.4.0_alpha > > Assume category/package has SLOT="${PV}/${PR}". If there are multiple > versions of category/package installed (e.g. 0.3.5 and 0.4.1), the binary > package will have the following in its DEPEND metadata: > > >=category/package-0.3.5:0.4.1 <category/package-0.4.0_alpha This is correct behavior for such multiple elements in *DEPEND. A single element using version range (not yet implemented feature discussed in aforementioned bug) would probably have different behavior. > The workaround I found This is not workaround, but currently the only proper solution for what you want to achieve. > This appears to be related to the depgraph output assigning matches to both > bounds even though only one match is used during an actual emerge. It is not impossible for one package to use multiple slots of another package. There have been several cases of some packages depending on both Python 2.7 and 3.*. |