Summary: | sys-apps/portage: autounmask should solve SLOT conflicts involving USE deps solvable by USE adjustments | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Hendrik v. Raven <hendrik> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | boxcars, esigra, hendrik, leho |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=916462 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 300071, 376695 | ||
Attachments: |
output with portage-9999
output with portage 2.2.0 output with portage 2.1.12.2 (stable) |
Description
Hendrik v. Raven
2013-08-19 11:51:37 UTC
Created attachment 356414 [details]
output with portage 2.2.0
Created attachment 356416 [details]
output with portage 2.1.12.2 (stable)
Can you do a git-bisect to determine which change triggers this behavior? You can run portage from a git checkout if you set PATH and PYTHONPATH as described here: http://www.gentoo.org/proj/en/portage/doc/testing.xml#doc_chap3 I will run the bisect, and post the result f74f301e869b3cac9060a1f35b89df673805c08a is the first bad commit commit f74f301e869b3cac9060a1f35b89df673805c08a Author: Zac Medico <zmedico@gentoo.org> Date: Wed Jun 19 14:07:17 2013 -0700 depgraph: fix installed/newuse logic more The matched_pkgs_ignore_use logic, introduced in commit dc8d70479dfb54a1f2561ba3fe82d7a62d97964f, is questionable because we need to ensure that an installed package can be selected if there are no other available packages that match a given USE-dep. :040000 040000 872f154f02fc02a64cc921d949c011656506af98 78064c87c7864c4faeebb3c84c42afd5462e518e M pym Okay, thanks for that. I'll see about creating a test case to reproduce the issue, and a patch to fix it. I made this test case that produces a similar conflict to the one that you've reported: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=fedb39bc9a2a9fd3ab37a08096cda6824c93b02a Unfortunately, the conflict is not solved even when using a checkout of the code prior to commit f74f301e869b3cac9060a1f35b89df673805c08a. It looks like we need to add code to make the SLOT-conflict handling interact with autounmask. I tried to solve all the conflicts by downgrading to stable portage (2.1.12.2) and let it create the USE changes via autounmask. It took me several runs (like 5, didn't count exactly) of emerge -avuND world && dispatch-conf, because there were always new use changes. However the list is still not complete, it seems to ignore some packages, which should be catched by --newuse, but are not. Example is texlive-core. I have texlive[xetex], but removed the required texlive-core[xetex] USE change. In my oppinion that should get triggered by --newuse, but it doesn't apear in the rebuild list. If i run emerge -av1 texlive-core it results in the same stack trace like in 2.2.0. I'm not completly sure, why it's triggered with 2.2.0, but may it be, that that's a bug in the dependency caculation in 2.1.12.0, which covers the unmask bug in the old version? (In reply to Hendrik v. Raven from comment #8) > However the list is still not complete, it seems to ignore some packages, > which should be catched by --newuse, but are not. Example is texlive-core. I > have texlive[xetex], but removed the required texlive-core[xetex] USE > change. In my oppinion that should get triggered by --newuse, but it doesn't > apear in the rebuild list. If i run emerge -av1 texlive-core it results in > the same stack trace like in 2.2.0. That sounds like essentially the same issue as bug #350230. If rebuilding the package with new USE settings will trigger a conflict, then it tends to use the installed package instead. We may be able to handle this better by coupling the conflict handler with autounmask. > I'm not completly sure, why it's triggered with 2.2.0, but may it be, that > that's a bug in the dependency caculation in 2.1.12.0, which covers the > unmask bug in the old version? The code changed in this commit causes the depgraph to choose the installed package more often, which can affect the success/failure of backtracking: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=f74f301e869b3cac9060a1f35b89df673805c08a |