summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-08-23 07:40:57 +0000
committerZac Medico <zmedico@gentoo.org>2009-08-23 07:40:57 +0000
commitfee6105d465c00a303a6dfb713fd5d008d6be79f (patch)
tree61246097b504f46b6d1cb2c0edf76e8a34750dd4
parente62514e472185cfcc764f37b4b0cf757d062b663 (diff)
downloadportage-fee6105d465c00a303a6dfb713fd5d008d6be79f.tar.gz
portage-fee6105d465c00a303a6dfb713fd5d008d6be79f.tar.bz2
portage-fee6105d465c00a303a6dfb713fd5d008d6be79f.zip
Bug #282306 - Inside LinkageMap._ObjectKey._generate_object_key(), fall back
to utf_8 encoding if a path cannot be encoded under the user's chosen encoding. This should complete the fix for the traceback shown in bug #282115, comment #6. svn path=/main/trunk/; revision=14131
-rw-r--r--pym/portage/dbapi/vartree.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index e6ed16498..5a2c3d091 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -249,6 +249,21 @@ class LinkageMap(object):
os = _os_merge
+ try:
+ _unicode_encode(obj,
+ encoding=_encodings['merge'], errors='strict')
+ except UnicodeEncodeError:
+ # The package appears to have been merged with a
+ # different value of sys.getfilesystemencoding(),
+ # so fall back to utf_8 if appropriate.
+ try:
+ _unicode_encode(obj,
+ encoding=_encodings['fs'], errors='strict')
+ except UnicodeEncodeError:
+ pass
+ else:
+ os = portage.os
+
abs_path = os.path.join(root, obj.lstrip(os.sep))
try:
object_stat = os.stat(abs_path)