From aad7f5c34072b0c47524a97397048238d7a79ceb57a7868af93c990190f70326 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Mon, 29 Oct 2012 15:35:43 +0000 Subject: [PATCH] Accepting request 139388 from home:HighwayStar:branches:devel:languages:python patch for python 3.3 (Factory) added this resolves build failure for python3-Sphinx OBS-URL: https://build.opensuse.org/request/show/139388 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-docutils?expand=0&rev=14 --- python-docutils.changes | 6 ++ python-docutils.spec | 1 + python3-docutils.changes | 6 ++ python3-docutils.spec | 7 +- r7486-python33-compat.patch | 179 ++++++++++++++++++++++++++++++++++++ 5 files changed, 197 insertions(+), 2 deletions(-) create mode 100644 r7486-python33-compat.patch diff --git a/python-docutils.changes b/python-docutils.changes index 9393a74..ebaa701 100644 --- a/python-docutils.changes +++ b/python-docutils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Oct 26 08:26:29 UTC 2012 - highwaystar.ru@gmail.com + +- patch from upstream for python3.3 support + * Fix [3541369] Relative __import__ also with Python 3.3 + ------------------------------------------------------------------- Thu May 3 14:28:17 UTC 2012 - toddrme2178@gmail.com diff --git a/python-docutils.spec b/python-docutils.spec index 836ab28..ea5172d 100644 --- a/python-docutils.spec +++ b/python-docutils.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + %define modname docutils Name: python-%{modname} Version: 0.9 diff --git a/python3-docutils.changes b/python3-docutils.changes index 09fabad..3714791 100644 --- a/python3-docutils.changes +++ b/python3-docutils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Oct 26 08:25:52 UTC 2012 - highwaystar.ru@gmail.com + +- patch from upstream for python3.3 support + * Fix [3541369] Relative __import__ also with Python 3.3 + ------------------------------------------------------------------- Thu May 3 14:28:17 UTC 2012 - toddrme2178@gmail.com diff --git a/python3-docutils.spec b/python3-docutils.spec index 98d177c..096745e 100644 --- a/python3-docutils.spec +++ b/python3-docutils.spec @@ -11,10 +11,11 @@ # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + %define modname docutils Name: python3-%{modname} Version: 0.9 @@ -24,6 +25,8 @@ License: Python-2.0 and BSD-2-Clause and GPL-2.0+ and GPL-3.0+ and SUSE-P Group: Development/Languages/Python Url: http://docutils.sourceforge.net/ Source: http://downloads.sourceforge.net/project/%{modname}/%{modname}/%{version}/%{modname}-%{version}.tar.gz +# patch from upstream: r7486 Fix [3541369] Relative __import__ also with Python 3.3 +Patch0: r7486-python33-compat.patch BuildRequires: python3 BuildRequires: python3-2to3 BuildRequires: python3-devel @@ -44,7 +47,7 @@ easy-to-read, what-you-see-is-what-you-get plaintext markup syntax. %prep %setup -n %{modname}-%{version} - +%patch0 -p2 %build python3 setup.py build sed -i "s|#!\s*\/usr\/bin\/env python3||g" docutils/{math/math2html,_string_template_compat,error_reporting,writers/xetex/__init__,math/latex2mathml}.py # Fix non-executable scripts diff --git a/r7486-python33-compat.patch b/r7486-python33-compat.patch new file mode 100644 index 0000000..f138e93 --- /dev/null +++ b/r7486-python33-compat.patch @@ -0,0 +1,179 @@ +Index: trunk/docutils/docutils/parsers/__init__.py +=================================================================== +--- trunk/docutils/docutils/parsers/__init__.py (revision 7485) ++++ trunk/docutils/docutils/parsers/__init__.py (revision 7486) +@@ -8,7 +8,10 @@ + + __docformat__ = 'reStructuredText' + ++import sys + from docutils import Component ++if sys.version_info < (2,5): ++ from docutils._compat import __import__ + + + class Parser(Component): +@@ -43,5 +46,5 @@ + parser_name = parser_name.lower() + if parser_name in _parser_aliases: + parser_name = _parser_aliases[parser_name] +- module = __import__(parser_name, globals(), locals()) ++ module = __import__(parser_name, globals(), locals(), level=1) + return module.Parser +Index: trunk/docutils/docutils/parsers/rst/directives/__init__.py +=================================================================== +--- trunk/docutils/docutils/parsers/rst/directives/__init__.py (revision 7485) ++++ trunk/docutils/docutils/parsers/rst/directives/__init__.py (revision 7486) +@@ -10,8 +10,12 @@ + + import re + import codecs ++import sys ++ + from docutils import nodes + from docutils.parsers.rst.languages import en as _fallback_language_module ++if sys.version_info < (2,5): ++ from docutils._compat import __import__ + + + _directive_registry = { +@@ -109,7 +113,7 @@ + # Error handling done by caller. + return None, messages + try: +- module = __import__(modulename, globals(), locals()) ++ module = __import__(modulename, globals(), locals(), level=1) + except ImportError, detail: + messages.append(document.reporter.error( + 'Error importing directive module "%s" (directive "%s"):\n%s' +Index: trunk/docutils/docutils/parsers/rst/languages/__init__.py +=================================================================== +--- trunk/docutils/docutils/parsers/rst/languages/__init__.py (revision 7485) ++++ trunk/docutils/docutils/parsers/rst/languages/__init__.py (revision 7486) +@@ -12,7 +12,11 @@ + + __docformat__ = 'reStructuredText' + ++import sys ++ + from docutils.utils import normalize_language_tag ++if sys.version_info < (2,5): ++ from docutils._compat import __import__ + + _languages = {} + +@@ -21,7 +25,7 @@ + if tag in _languages: + return _languages[tag] + try: +- module = __import__(tag, globals(), locals()) ++ module = __import__(tag, globals(), locals(), level=1) + except ImportError: + continue + _languages[tag] = module +Index: trunk/docutils/docutils/writers/__init__.py +=================================================================== +--- trunk/docutils/docutils/writers/__init__.py (revision 7485) ++++ trunk/docutils/docutils/writers/__init__.py (revision 7486) +@@ -8,11 +8,14 @@ + + __docformat__ = 'reStructuredText' + ++import os.path ++import sys + +-import os.path + import docutils + from docutils import languages, Component + from docutils.transforms import universal ++if sys.version_info < (2,5): ++ from docutils._compat import __import__ + + + class Writer(Component): +@@ -130,5 +133,5 @@ + writer_name = writer_name.lower() + if writer_name in _writer_aliases: + writer_name = _writer_aliases[writer_name] +- module = __import__(writer_name, globals(), locals()) ++ module = __import__(writer_name, globals(), locals(), level=1) + return module.Writer +Index: trunk/docutils/docutils/readers/__init__.py +=================================================================== +--- trunk/docutils/docutils/readers/__init__.py (revision 7485) ++++ trunk/docutils/docutils/readers/__init__.py (revision 7486) +@@ -8,9 +8,12 @@ + + __docformat__ = 'reStructuredText' + ++import sys + + from docutils import utils, parsers, Component + from docutils.transforms import universal ++if sys.version_info < (2,5): ++ from docutils._compat import __import__ + + + class Reader(Component): +@@ -103,5 +106,5 @@ + reader_name = reader_name.lower() + if reader_name in _reader_aliases: + reader_name = _reader_aliases[reader_name] +- module = __import__(reader_name, globals(), locals()) ++ module = __import__(reader_name, globals(), locals(), level=1) + return module.Reader +Index: trunk/docutils/docutils/languages/__init__.py +=================================================================== +--- trunk/docutils/docutils/languages/__init__.py (revision 7485) ++++ trunk/docutils/docutils/languages/__init__.py (revision 7486) +@@ -11,7 +11,11 @@ + + __docformat__ = 'reStructuredText' + ++import sys ++ + from docutils.utils import normalize_language_tag ++if sys.version_info < (2,5): ++ from docutils._compat import __import__ + + _languages = {} + +@@ -26,7 +30,7 @@ + if tag in _languages: + return _languages[tag] + try: +- module = __import__(tag, globals(), locals()) ++ module = __import__(tag, globals(), locals(), level=1) + except ImportError: + continue + _languages[tag] = module +@@ -35,6 +39,6 @@ + reporter.warning( + 'language "%s" not supported: ' % language_code + + 'Docutils-generated text will be in English.') +- module = __import__('en', globals(), locals()) ++ module = __import__('en', globals(), locals(), level=1) + _languages[tag] = module # warn only one time! + return module +Index: trunk/docutils/docutils/_compat.py +=================================================================== +--- trunk/docutils/docutils/_compat.py (revision 7485) ++++ trunk/docutils/docutils/_compat.py (revision 7486) +@@ -35,3 +35,14 @@ + # using this hack since 2to3 "fixes" the relative import + # when using ``from io import BytesIO`` + BytesIO = __import__('io').BytesIO ++ ++if sys.version_info < (2,5): ++ import __builtin__ ++ ++ def __import__(name, globals={}, locals={}, fromlist=[], level=-1): ++ """Compatibility definition for Python 2.4. ++ ++ Silently ignore the `level` argument missing in Python < 2.5. ++ """ ++ # we need the level arg because the default changed in Python 3.3 ++ return __builtin__.__import__(name, globals, locals, fromlist) + +------------------------------------------------------------------------ +