Seems as though this line has crept into portage usr/lib/portage/pym/portage/__init__.py.... id(_os.statvfs) : _os.statvfs, Yet, later in that file the presence of statvfs is detected with hasattr().... if size is not None and hasattr(os, "statvfs"): and so portage blows up with the initial id() line above because it's never checked on hosts that don't have statvfs. Removing the id() line makes things work here.
@zmedico: how best to solve this? I started a patch, but it feels like statvfs needs to be in the _os_overrides thing for platforms that do have it. If I understand the code correctly, the hasattr works on the _unicode_module_wrapper object.
I added a hasattr() call in svn r14553.
Ok, thanks zmedico. I merged this and released it as portage-2.2.00.14555.