Assume utf_8 encoding when reading raw ebuild metadata.
authorZac Medico <zmedico@gentoo.org>
Sat, 4 Jul 2009 20:20:43 +0000 (20:20 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 4 Jul 2009 20:20:43 +0000 (20:20 -0000)
svn path=/main/trunk/; revision=13785

pym/_emerge/EbuildMetadataPhase.py
pym/portage/__init__.py

index 64f54d49e83f924543cde99b802ca62f442ba04d..8e488d306d3f00beb0efefb3169a16d01c34b75b 100644 (file)
@@ -123,7 +123,9 @@ class EbuildMetadataPhase(SubProcess):
        def _set_returncode(self, wait_retval):
                SubProcess._set_returncode(self, wait_retval)
                if self.returncode == os.EX_OK:
-                       metadata_lines = "".join(self._raw_metadata).splitlines()
+                       metadata_lines = u''.join(unicode(chunk,
+                               encoding='utf_8', errors='replace')
+                               for chunk in self._raw_metadata).splitlines()
                        if len(portage.auxdbkeys) != len(metadata_lines):
                                # Don't trust bash's returncode if the
                                # number of lines is incorrect.
index e601180ac1c63c102d8d507961349c4fd6141de8..1d5a2dc024a9dfe16b5d6c7f189a4023ccdd9907 100644 (file)
@@ -6070,7 +6070,8 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
                                        if not mybytes[-1]:
                                                break
                                os.close(pr)
-                               mybytes = "".join(mybytes)
+                               mybytes = u''.join(unicode(chunk,
+                                       encoding='utf_8', errors='replace') for chunk in mybytes)
                                global auxdbkeys
                                for k, v in izip(auxdbkeys, mybytes.splitlines()):
                                        dbkey[k] = v