Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 630488 - Conflicts between dependency and actual USE flags should indicate what is conflicting
Summary: Conflicts between dependency and actual USE flags should indicate what is con...
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 300071
  Show dependency tree
 
Reported: 2017-09-09 15:13 UTC by Cedric Sodhi
Modified: 2023-04-12 20:43 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cedric Sodhi 2017-09-09 15:13:20 UTC
IIRC, when two packages A and B depend on the same package C in two different USE variants of flag F, portage will emit an error of the kind

C[F] required by A conflicts with C[-F] required b B

I think a similar information should be displayed when a package A requires C[F] but current USE flags disagree. Instead, emerge currently displays a message of the sort

C conflicts with C[F,G,H] required by A

which doesn't readily reveal the conflict and someone with no prior knowledge can't make sense of the error. Instead, it should indicate where the actual conflict occurs (in this case, in the USE flag) like

C[-F,G,H] conflicts with C[F,G,H] required by A

or even just

C[-F] conflicts with C[F] required by A
Comment 1 Cedric Sodhi 2017-09-09 15:17:07 UTC
As an example, the problem that motivated this bug from IRC:

> x11-libs/libXdmcp:0
>
>  (x11-libs/libXdmcp-1.1.2-r1:0/0::gentoo, ebuild scheduled for merge) conflicts  with
>    >=x11-libs/libXdmcp-1.1.1-r1[abi_x86_32(-),abi_x86_64(-)] required by (x11-libs/libxcb-1.12-r2:0/1.12::gentoo, installed)
Comment 2 Cedric Sodhi 2017-09-09 15:33:07 UTC
It was pointed out to me, that the error message must necessarily state

C conflicts with C[F(-)]

if, indeed, C does not have any USE flag F in it's current version, where latter is thus assumed unset as by the (-). I'd therefore say that if such is the case, the error message is correct. If, however, C does have a USE flag F (as it is the case in the above example), it (and thus the precise conflict) should be mentioned.