Created attachment 327496 [details] The build log sys-apps/pkgcore-0.8.5-r1 fails its own tests when Python 3 is used as the default Python implementation. I guess that's because portage sets some random locale (C?) for tests and it fails to handle UTF-8 files properly then.
Traceback (most recent call last): File "/usr/lib64/python3.2/site-packages/snakeoil/test/__init__.py", line 236, in run self.forced_extra_frame(testMethod) File "/usr/lib64/python3.2/site-packages/snakeoil/test/__init__.py", line 201, in forced_extra_frame test() File "/tmp/portage/sys-apps/pkgcore-0.8.5-r1/work/pkgcore-0.8.5/build/lib/pkgcore/test/fs/test_fs.py", line 109, in test_init raw_data = open("/etc/passwd").read() File "/usr/lib64/python3.2/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 795: ordinal not in range(128) I wonder how it is supposed to know what encoding your password file (/etc/passwd) has. Is that standardized anywhere?
(In reply to comment #1) > Traceback (most recent call last): > File "/usr/lib64/python3.2/site-packages/snakeoil/test/__init__.py", line > 236, in run > self.forced_extra_frame(testMethod) > File "/usr/lib64/python3.2/site-packages/snakeoil/test/__init__.py", line > 201, in forced_extra_frame > test() > File > "/tmp/portage/sys-apps/pkgcore-0.8.5-r1/work/pkgcore-0.8.5/build/lib/pkgcore/ > test/fs/test_fs.py", line 109, in test_init > raw_data = open("/etc/passwd").read() > File "/usr/lib64/python3.2/encodings/ascii.py", line 26, in decode > return codecs.ascii_decode(input, self.errors)[0] > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 795: > ordinal not in range(128) > > I wonder how it is supposed to know what encoding your password file > (/etc/passwd) has. Is that standardized anywhere? No. I think only the GECOS field is allowed to have non-ASCII characters but that field can basically hold anything and pkgcore need to make use of its contents.
0.8.6 will resolve it.