diff options
author | Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> | 2011-04-20 22:00:57 +0000 |
---|---|---|
committer | Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> | 2011-04-20 22:00:57 +0000 |
commit | 37c96a21d8e2a793f7403b906b0efacf7889f69b (patch) | |
tree | 406866e4abc98e95a98126b4e23ca7bc9d378063 /dev-python | |
parent | This patch has been accepted by upstream. (diff) | |
download | gentoo-2-37c96a21d8e2a793f7403b906b0efacf7889f69b.tar.gz gentoo-2-37c96a21d8e2a793f7403b906b0efacf7889f69b.tar.bz2 gentoo-2-37c96a21d8e2a793f7403b906b0efacf7889f69b.zip |
Fix installation with some locales (bug #349101).
(Portage version: 2.2.0_alpha30/cvs/Linux x86_64)
Diffstat (limited to 'dev-python')
-rw-r--r-- | dev-python/docutils/ChangeLog | 6 | ||||
-rw-r--r-- | dev-python/docutils/docutils-0.7.ebuild | 4 | ||||
-rw-r--r-- | dev-python/docutils/files/docutils-0.7-encoding.patch | 83 |
3 files changed, 91 insertions, 2 deletions
diff --git a/dev-python/docutils/ChangeLog b/dev-python/docutils/ChangeLog index 7f950787bb0c..5bdadd83d86c 100644 --- a/dev-python/docutils/ChangeLog +++ b/dev-python/docutils/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for dev-python/docutils # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/docutils/ChangeLog,v 1.128 2011/04/20 18:37:27 scarabeus Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/docutils/ChangeLog,v 1.129 2011/04/20 22:00:57 arfrever Exp $ + + 20 Apr 2011; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> + docutils-0.7.ebuild, +files/docutils-0.7-encoding.patch: + Fix installation with some locales (bug #349101). 20 Apr 2011; Tomáš Chvátal <scarabeus@gentoo.org> docutils-0.7.ebuild: Workaround bug in docutils that didn't permit installation under various diff --git a/dev-python/docutils/docutils-0.7.ebuild b/dev-python/docutils/docutils-0.7.ebuild index 7957594cdea7..acad8cf5ba37 100644 --- a/dev-python/docutils/docutils-0.7.ebuild +++ b/dev-python/docutils/docutils-0.7.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/docutils/docutils-0.7.ebuild,v 1.17 2011/04/20 21:15:21 arfrever Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/docutils/docutils-0.7.ebuild,v 1.18 2011/04/20 22:00:57 arfrever Exp $ EAPI="3" SUPPORT_PYTHON_ABIS="1" @@ -42,6 +42,8 @@ src_prepare() { epatch "${FILESDIR}/${P}-python-3.2-configparser.patch" epatch "${FILESDIR}/${P}-python-3.2-xml.etree.ElementTree.patch" + epatch "${FILESDIR}/${P}-encoding.patch" + sed -e "s/from distutils.core/from setuptools/" -i setup.py || die "sed setup.py failed" } diff --git a/dev-python/docutils/files/docutils-0.7-encoding.patch b/dev-python/docutils/files/docutils-0.7-encoding.patch new file mode 100644 index 000000000000..9a88f9fedaa6 --- /dev/null +++ b/dev-python/docutils/files/docutils-0.7-encoding.patch @@ -0,0 +1,83 @@ +--- docutils/nodes.py ++++ docutils/nodes.py +@@ -27,6 +27,7 @@ + import warnings + import types + import unicodedata ++import locale + + # ============================== + # Functional Node Base Classes +@@ -328,6 +329,9 @@ + else: + def __new__(cls, data, rawsource=None): + """Prevent the rawsource argument from propagating to str.""" ++ encoding = locale.getdefaultlocale()[1] ++ if isinstance(data, str) and encoding is not None: ++ data = data.decode(encoding) + return reprunicode.__new__(cls, data) + + def __init__(self, data, rawsource=''): +--- docutils/parsers/rst/directives/misc.py ++++ docutils/parsers/rst/directives/misc.py +@@ -10,6 +10,7 @@ + import os.path + import re + import time ++import locale + from docutils import io, nodes, statemachine, utils + from docutils.parsers.rst import Directive, convert_directive_function + from docutils.parsers.rst import directives, roles, states +@@ -66,8 +67,16 @@ + input_encoding_error_handler), + handle_io_errors=None) + except IOError, error: +- raise self.severe('Problems with "%s" directive path:\n%s: %s.' % +- (self.name, error.__class__.__name__, str(error))) ++ if sys.version_info < (3,): ++ error_string = str(error) ++ encoding = locale.getdefaultlocale()[1] ++ if encoding is not None: ++ error_string = error_string.decode(encoding) ++ raise self.severe(u'Problems with "%s" directive path:\n%s: %s.' % ++ (self.name, error.__class__.__name__, error_string)) ++ else: ++ raise self.severe('Problems with "%s" directive path:\n%s: %s.' % ++ (self.name, error.__class__.__name__, str(error))) + # Hack: Since Python 2.6, the string interpolation returns a + # unicode object if one of the supplied %s replacements is a + # unicode object. IOError has no `__unicode__` method and the +--- tools/buildhtml.py ++++ tools/buildhtml.py +@@ -15,8 +15,8 @@ + __docformat__ = 'reStructuredText' + + ++import locale + try: +- import locale + locale.setlocale(locale.LC_ALL, '') + except: + pass +@@ -236,8 +236,19 @@ + writer_name=pub_struct.writer_name, + settings=settings) + except ApplicationError, error: +- print >>sys.stderr, (' Error (%s): %s' +- % (error.__class__.__name__, error)) ++ if sys.version_info < (3,): ++ encoding = locale.getdefaultlocale()[1] ++ if isinstance(error.message, unicode) and encoding is not None: ++ error_message = (u' Error (%s): %s' ++ % (error.__class__.__name__, error)) ++ error_message = error_message.encode(encoding) ++ else: ++ error_message = (' Error (%s): %s' ++ % (error.__class__.__name__, error)) ++ print >>sys.stderr, error_message ++ else: ++ print >>sys.stderr, (' Error (%s): %s' ++ % (error.__class__.__name__, error)) + + + if __name__ == "__main__": |