Any emerge commands fail with the following output # emerge anything Traceback (most recent call last): File "/usr/bin/emerge", line 40, in <module> retval = emerge_main() File "/usr/lib/portage/pym/_emerge/main.py", line 1049, in emerge_main if portage._global_updates(trees, mtimedb["updates"]): File "/usr/lib/portage/pym/portage/__init__.py", line 8656, in _global_updates moves = vardb.move_ent(update_cmd) File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 885, in move_ent mynewcpv = newcp + "-" + mycpsplit[2] TypeError: unsupported operand type(s) for +: 'Atom' and 'str' That is, any that I've tried, including --pretend and --sync and --info... so I can't post those details unless there's another way to get to them.
Ahhh I missed a key clue. akira portage # emerge -p portage Performing Global Updates: /usr/portage/profiles/updates/3Q-2009 (Could take a couple of minutes if you have a lot of binary packages.) .='update pass' *='binary update' #='/var/db update' @='/var/db move' s='/var/db SLOT move' %='binary move' S='binary SLOT move' p='update /etc/portage/package.*' ................................................ Traceback (most recent call last): File "/usr/bin/emerge", line 40, in <module> retval = emerge_main() <snip> If I move 3Q-2009 aside... all appears well, but that will presumably bork everything later.
Created attachment 205057 [details, diff] fix the TypeError If this is saved as /tmp/typeerror.patch, then it can be applied as follows: cd /usr/lib/portage patch -p0 < /tmp/typeerror.patch
patch applied successfully (with some offsets) emerge --sync completed successfully Global updates from 3Q-2009 applied And all recent updates built successfully From what I can tell, the patch works as planned, but I would have to assume the global updates were applied correctly.
This is fixed in 2.2_rc42.
*** Bug 286957 has been marked as a duplicate of this bug. ***
*** Bug 288146 has been marked as a duplicate of this bug. ***
*** Bug 288308 has been marked as a duplicate of this bug. ***