When using emerge in sys-apps/portage I will often encounter situations when emerge will not be able to resolve what to do --but the "fix" I use from emerge's easily resolves it perhaps at the cost of re-building some packages. This "fix" works so long as there is are no (red) blocker situations. The situation is this: !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: when there are no RED blockers (which need to be looked at manually). Below the !!! message(s) is a listing, e.g., app-text/poppler:0 (app-text/poppler-0.42.0:0/59::gentoo, ebuild scheduled for merge) pulled in by =app-text/poppler-0.42.0 (Argument) (app-text/poppler-0.45.0:0/62::gentoo, installed) pulled in by >=app-text/poppler-0.32:0/62=[cxx,jpeg,lcms,tiff,xpdf-headers(+)] required by (net-print/cups-filters-1.5.0:0/0::gentoo, installed) [snip] I noticed that the package names immediately after the left parenthesis are the ones the need to be "emerge -1av" installed. Thus, my "fix" for this situation is as follows: 1) Run the emerge command redirection its output, e.g., emerge -uDNpv @world >e.txt 2>&1 2) Delete what is before the !!! messages. 3) Do an egrep to pull out the package names, e.g., egrep -Eo '\([^-0-9][+A-Za-z0-9_.:/-]+' e.txt | \ cut -c 2- | \ sort -u | \ while read pkg ; do echo '='$pkg ; done NOTE: This egrep is a hack for the package names so it has some false positives. (Replace it with a better regex for no false positives to save having to manually check its output before the next step.) 4) Run: emerge -1av $(output_of_step_3) Virtually all of the time, I find everything is fully resolved, upgraded, etc. It would be very nice if emerge could handle this automatically, or, via a command-line option. This also works very well when downgrading a package from a recent upgrade. In the case with red blockers, it would be nice if emerge could handle everything like this not related to the red blocker packages as well. (Again, likely via a command-line option if it cannot or shouldn't be automatic. Clearly red blockers have to be resolved by a human.) Doing this would make using emerge much easier for all AND reduce the time required to run emerge something like N times manually for the N package messages it outputs after the !!!.
please attach emerge --info