Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 328343 - emerge should be able to cope with unsatisfied dependencies by pruning off unsolvable parts of the graph
Summary: emerge should be able to cope with unsatisfied dependencies by pruning off un...
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: High normal with 2 votes (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 389203 472298 (view as bug list)
Depends on:
Blocks: 300071 301640 389203
  Show dependency tree
 
Reported: 2010-07-15 05:49 UTC by Ari Entlich
Modified: 2022-02-08 08:07 UTC (History)
7 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 Ari Entlich 2010-07-15 05:49:57 UTC
When an unresolved package dependency is found, portage will "backtrack" to find out if anything the user asked for doesn't have the dependency problem, and can therefore be merged without issue. It does not do this for USE dependencies. This issue manifests itself in two ways that I've seen so far:

1. If any USE flag dependency issues were found during dependency resolution, portage will immediately give up.
2. If some other dependency issue was already encountered (such as a package dependency issue), it will be printed and no message about the USE flag dependency issue be printed.

The specific place I'm encountering this is with packages which depend on udev[extras]. I didn't have the extras USE flag enabled, so I encountered these issues.

Reproducible: Always
Comment 1 Zac Medico gentoo-dev 2010-07-16 18:27:37 UTC

*** This bug has been marked as a duplicate of bug 258371 ***
Comment 2 Ari Entlich 2010-07-16 20:24:24 UTC
This is not a duplicate of that bug. I am not asking that the USE dependency be automatically resolved, I am asking that portage try to do any OTHER resolution it can that does NOT have that same USE dependency.
Comment 3 Zac Medico gentoo-dev 2010-07-16 20:29:56 UTC
(In reply to comment #0)
> The specific place I'm encountering this is with packages which depend on
> udev[extras]. I didn't have the extras USE flag enabled, so I encountered these
> issues.

Was there some other possible solution besides enabling USE=extras? If not, then backtracking would have just been a waste of time. It's hard to imagine cases like this where backtracking would really make sense.
Comment 4 Ari Entlich 2010-07-16 20:31:42 UTC
There were other things to be merged which did not depend on udev[extras].
Comment 5 Zac Medico gentoo-dev 2010-07-16 20:36:00 UTC
So, for every package which pulled in udev[extras], there was some version of the same package that didn't pull in udev[extras]? If that was true, then backracking could have 'helped', but it wouldn't necessarily have produced an optimal solution (usually it would result in missed updates).
Comment 6 Ari Entlich 2010-07-16 20:37:36 UTC
No.

Say we are merging the following three packages: a, b, and c. b depends on udev[extras]. a and c do not. I want portage to be able to merge a and c.
Comment 7 Zac Medico gentoo-dev 2010-07-16 23:02:57 UTC
Okay, so what you're saying is that you want it to prune off unsolvable parts of the dependency graph and just work on the parts that are solvable without any configuration changes. That's feasible, and "suggested" dependencies (bug #327701) can also come into play here when we implement them. Pruning off unsolvable parts of the dependency graph is also useful for emerge --keep-going and --resume (like in bug #263630).
Comment 8 Ari Entlich 2010-07-16 23:55:26 UTC
Yes, I think you understand what I'm talking about now. However, portage seems to already do what I'm asking for package keyword dependencies. If portage finds one (or even multiple) of these unsatisfied dependencies, it will give you the option to install the non-conflicting things and will also print the error messages, "All packages to satisfy this dependency are masked", etc at the bottom.
Comment 9 Cedric Sodhi 2011-11-01 16:57:13 UTC
*** Bug 389203 has been marked as a duplicate of this bug. ***
Comment 10 Zac Medico gentoo-dev 2013-06-04 23:41:50 UTC
*** Bug 472298 has been marked as a duplicate of this bug. ***