I usually run this command: # cat list | xargs emerge -pvef where list contains a very long list of ebuilds. Using version 2.1.2_pre3-r1 it worked, while using higher versions I get this error: Traceback (most recent call last): File "/usr/bin/emerge", line 4382, in ? retval = emerge_main() File "/usr/bin/emerge", line 4377, in emerge_main myopts, myaction, myfiles, spinner) File "/usr/bin/emerge", line 3765, in action_build retval, favorites = mydepgraph.select_files(myfiles) File "/usr/bin/emerge", line 1039, in select_files self.validate_blockers() File "/usr/bin/emerge", line 1362, in validate_blockers new_pkgs.append( IndexError: list index out of range (line numbers are related to version 2.1.2_pre3-r4). I can get latest versions worling only with a shorter list of ebuilds.
I'm not sure what triggers that particular case. Could you post --debug output for a command that triggers it? Do you really feed it the paths of ebuilds, or just the package atoms?
Created attachment 99937 [details, diff] handle unresolvable blockers properly This should fix it. If you save the patch as /tmp/unresolvable.patch, then it can be applied as follows: cd /usr/lib/portage patch -p0 < /tmp/unresolvable.patch
(In reply to comment #2) This patch fix the problem. Checking for differences between 2.1.2_pre3-r4 patched and 2.1.2_pre3-r1 I found out the problem was with dev-lang/php when media-libs/libswf is installed: Considering 2.1.2_pre3-r4 without your patch, runnig # emerge -pv dev-lang/php I get the message [blocks B ] media-libs/libswf (is blocking dev-lang/php-5.1.6-r6) while running # emerge -pev dev-lang/php I get the reported error.
Appling the patch and running # emerge -pev dev-lang/php I still get the message [blocks B ] media-libs/libswf (is blocking dev-lang/php-5.1.6-r6) Using '--emptytree' option shouldn't emerge ignore installed packages?
(In reply to comment #4) > Using '--emptytree' option shouldn't emerge ignore installed packages? Actually, one of the primary uses of --emptytree is to reinstall all of the installed packages (except for those that --depclean would remove). We might make a version that ignores installed packages for bug #127956, but it would still be incorrect to have two mutually blocking packages installed simultaneously.
This has been released in 2.1.2_pre3-r5.