Created attachment 461470 [details] emerge --info Currently emerge --update --deep --newuse --fetchonly world behaves different from emerge --update --deep --newuse --pretend world emerge with --pretend does not show any conflicts, emerge with --fetchonly shows a different package list to merge with a slot conflict: >=dev-lang/ocaml-4.04_beta:=[ocamlopt?] required by (dev-ml/camlp4-4.04_p1:0/4.04_p1::gentoo, ebuild scheduled for merge) <dev-lang/ocaml-4.02.3-r1 required by (dev-ml/camlp4-4.04_p1:0/4.04_p1::gentoo, ebuild scheduled for merge) See full emerge output as attachment.
Created attachment 461472 [details] emerge --update --deep --newuse --fetchonly world
Created attachment 461474 [details] emerge --update --deep --newuse --pretend world
No conflict shown with emerge --update --deep --newuse --ask world so probably the emerge would work. Didn't try yet.
And please note that the slot conflict is shown to be provoked by conflicting dependencies of the _same_ package! dev-ml/camlp4-4.04_p1:0/4.04_p1::gentoo in both cases.
Conflict backtracking logic is different with --fetchonly, since bug 161422. It's the depgraph _accept_blocker_conflicts method that modifies behavior when some options are enabled. I think what we should do is make the backtracking logic independent of --fetchonly. We could still allow fetch to proceed despite conflicts, as requested in bug 161422, but it's a questionable case that perhaps is not worth supporting.
(In reply to Zac Medico from comment #5) > Conflict backtracking logic is different with --fetchonly, since bug 161422. > It's the depgraph _accept_blocker_conflicts method that modifies behavior > when some options are enabled. > > I think what we should do is make the backtracking logic independent of > --fetchonly. We could still allow fetch to proceed despite conflicts, as > requested in bug 161422, but it's a questionable case that perhaps is not > worth supporting. Since I filed bug 161422, it was filed mainly because it was a regression from previous versions of portage at the time. That specific use case is more for convenience than anything. So I'm actually thinking that if emerge --nodeps --fetchonly <multiple conflicting packages> would work that would fit the use case. If you want the dependencies fetched, then you would have to run it with the packages individually. If that is more trouble than it's worth. I would go ahead and drop support for that bug.