Summary: | sys-apps/portage-2.2.15: dev-lang/ocaml-4.02.1 - slot conflict with ocaml-4.01.0 pulled in by dev-ml/lablgl deps: || ( dev-ml/labltk:= <dev-lang/ocaml-4.02[tk] ) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Juergen Rose <rose> |
Component: | Current packages | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | cbatdotcom, esigra, ml |
Priority: | Normal | Keywords: | InVCS |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=554838 https://bugs.gentoo.org/show_bug.cgi?id=692746 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 300071, 484436 |
Description
Juergen Rose
2014-12-04 11:44:50 UTC
sounds like a portage "bug": it should prefer dev-ml/camlp4 (leftmost part of the || ) for lablgl when ocaml-4.02 is pulled in for other reasons BTW., already 'emerge -v1 findlib' fails with: root@caiman:/root(35)# emerge -v1 findlib These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] dev-lang/ocaml-4.02.1:0/4.02.1 [4.01.0:0/4.01.0] USE="X emacs latex ncurses ocamlopt -xemacs (-tk%)" 1,984 KiB [ebuild U ] dev-ml/findlib-1.5.5-r1 [1.5.5] USE="doc ocamlopt -tk" 0 KiB Total: 2 packages (2 upgrades), Size of downloads: 1,984 KiB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-lang/ocaml:0 (dev-lang/ocaml-4.02.1:0/4.02.1::gentoo, ebuild scheduled for merge) pulled in by >=dev-lang/ocaml-4.02.1:=[ocamlopt?] required by (dev-ml/findlib-1.5.5-r1:0/0::gentoo, ebuild scheduled for merge) ^^ ^^^^^^ (dev-lang/ocaml-4.01.0:0/4.01.0::gentoo, installed) pulled in by >=dev-lang/ocaml-3.10.2:0/4.01.0=[ocamlopt] required by (dev-ml/camlidl-1.05-r1:0/1.05::gentoo, installed) ^^^^^^^^^^ <dev-lang/ocaml-4.02.0 required by (dev-ml/lablgl-1.05:0/1.05::gentoo, installed) ^ ^^^^^^ (and 4 more with the same problems) The dep_zapdeps function needs some new heuristics to handle || ( dev-ml/labltk:= <dev-lang/ocaml-4.02[tk] ) deps from dev-ml/lablgl-1.05. The new heuristics can make use of the _want_update_pkg method to detect whether a dev-lang/ocaml upgrade is desired, and avoid the <dev-lang/ocaml-4.02[tk] choice in that case. Now I have this slot conflict only on systems with app-text/kbibtex-0.5.1 (depending on dev-tex/bibtex2html-1.98). 'emerge --update --newuse --deep --with-bdeps=y --backtrack=30 @world' fails with: root@lynx:/root(36)# emerge --update --newuse --deep --with-bdeps=y --backtrack=30 @world * IMPORTANT: 1 news items need reading for repository 'gentoo'. * Use eselect news to read news items. Calculating dependencies... done! [ebuild UD ] dev-lang/ocaml-4.01.0 [4.02.1] USE="-tk%" ... !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-lang/ocaml:0 (dev-lang/ocaml-4.02.1:0/4.02.1::gentoo, installed) pulled in by >=dev-lang/ocaml-3.10:0/4.02.1=[ocamlopt] required by (dev-ml/lablgtk-2.18.3:2/2.18.3::gentoo, installed) ^^^^^^^^^^ >=dev-lang/ocaml-4.02.1:=[ocamlopt?] required by (dev-ml/findlib-1.5.5-r1:0/0::gentoo, installed) ^^ ^^^^^^ (and 7 more with the same problems) (dev-lang/ocaml-4.01.0:0/4.01.0::gentoo, ebuild scheduled for merge) pulled in by >=dev-lang/ocaml-3.10:0/4.01.0=[ocamlopt] required by (dev-tex/bibtex2html-1.98:0/0::gentoo, installed) ^^^^^^^^^^ ... 'emerge -v1 =ocaml-4.01.0' fails with: root@lynx:/root(38)# emerge -v1 =ocaml-4.01.0 * IMPORTANT: 1 news items need reading for repository 'gentoo'. * Use eselect news to read news items. These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild UD ] dev-lang/ocaml-4.01.0:0/4.01.0 [4.02.1:0/4.02.1] USE="X emacs latex ncurses ocamlopt -tk% -xemacs" 0 KiB Total: 1 package (1 downgrade), Size of downloads: 0 KiB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-lang/ocaml:0 (dev-lang/ocaml-4.01.0:0/4.01.0::gentoo, ebuild scheduled for merge) pulled in by =dev-lang/ocaml-4.01.0 (Argument) (dev-lang/ocaml-4.02.1:0/4.02.1::gentoo, installed) pulled in by >=dev-lang/ocaml-4.02:=[ocamlopt?] required by (dev-ml/camlp4-4.02.0_p1-r1:0/4.02.0_p1::gentoo, installed) ^^ ^^^^ >=dev-lang/ocaml-3.10:0/4.02.1=[ocamlopt] required by (dev-ml/lablgtk-2.18.3:2/2.18.3::gentoo, installed) ^^^^^^^^^^ (and 4 more with the same problems) ... (In reply to Juergen Rose from comment #4) > Now I have this slot conflict only on systems with app-text/kbibtex-0.5.1 This appears to be a separate issue, because it does not involve the || ( dev-ml/labltk:= <dev-lang/ocaml-4.02[tk] ) deps from dev-ml/lablgl-1.05. Please file a new bug. (In reply to Zac Medico from comment #3) > The dep_zapdeps function needs some new heuristics to handle || ( > dev-ml/labltk:= <dev-lang/ocaml-4.02[tk] ) deps from dev-ml/lablgl-1.05. The > new heuristics can make use of the _want_update_pkg method to detect whether > a dev-lang/ocaml upgrade is desired, and avoid the <dev-lang/ocaml-4.02[tk] > choice in that case. In the following branch I have a test case to reproduce the problem: https://github.com/zmedico/portage/commits/bug_531656 I also started working on some heuristics to help it converge on the desired solution, but the changes currently break SlotConflictUpdateTestCase. In my bug_531656 branch on github I have a patch which I've posted for review here: http://thread.gmane.org/gmane.linux.gentoo.portage.devel/5040 This is in the master branch now: https://github.com/gentoo/portage/commit/a9064d08ef4c92a5d0d1bfb3dc8a01b7850812b0 There MIGHT still be an issue here in portage-2.2.16. I still had blockers from dev-ml/lablgl and dev-ml/lablgtk for various emerge commands I tried to get these upgrades through. It got resolved for me only after explicitly running emerge -1va camlp4 ocaml findlib lablgl lablgtk BUT! I didn't run emerge --update --newuse --deep --with-bdeps=y @world again until later, and this command might have figured out how to proceed, too late to find out for me now. I'm not 100% clear on what the patch would do, if anything, for my regular emerge commands. (In reply to arve.barsnes@gmail.com from comment #9) > There MIGHT still be an issue here in portage-2.2.16. I still had blockers > from dev-ml/lablgl and dev-ml/lablgtk for various emerge commands I tried to > get these upgrades through. It got resolved for me only after explicitly > running > > emerge -1va camlp4 ocaml findlib lablgl lablgtk > > BUT! I didn't run > > emerge --update --newuse --deep --with-bdeps=y @world This is expected. For best results, you really need to do a full @world update. I suspected as much, thanks. Released in portage-2.2.16. |