Use utf_8 'merge' encoding for all locales. v2.2.0_alpha55
authorZac Medico <zmedico@gentoo.org>
Fri, 9 Sep 2011 20:47:30 +0000 (13:47 -0700)
committerZac Medico <zmedico@gentoo.org>
Fri, 9 Sep 2011 20:47:30 +0000 (13:47 -0700)
commitdb32c3e3ca1e3cc724acacc79a5be2343efc13d1
tree6ada10749492116367f367a50b6e85fb5a2ec725
parent21330075f07248765016e104b3ba8216903f1ecb
Use utf_8 'merge' encoding for all locales.

Previously, we used sys.getfilesystemencoding() for the 'merge'
encoding, but that had various problems:

   1) If the locale is ever changed then it can cause orphan files due
      to changed character set translation.

   2) Ebuilds typically install files with utf_8 encoded file names,
      and then portage would be forced to rename those files to match
      sys.getfilesystemencoding(), possibly breaking things.

   3) Automatic translation between encodings can lead to nonsensical
      file names when the source encoding is unknown by portage.

   4) It's inconvenient for ebuilds to convert the encodings of file
      names themselves, and upstreams typically encode file names with
      utf_8 encoding.

So, instead of relying on sys.getfilesystemencoding(), we avoid the above
problems by using a constant utf_8 'merge' encoding for all locales, as
discussed in bug #382199 and bug #381509.
pym/portage/__init__.py