Date: Monday, July 7, 2014 @ 02:43:11 Author: seblu Revision: 115221 upgpkg: docutils 0.12-1
Added: docutils/trunk/01-rst2odt_prepstyles-elementtree.patch Modified: docutils/trunk/PKGBUILD Deleted: docutils/trunk/01-python33-relative-import.patch -----------------------------------------+ 01-python33-relative-import.patch | 196 ------------------------------ 01-rst2odt_prepstyles-elementtree.patch | 68 ++++++++++ PKGBUILD | 20 +-- 3 files changed, 80 insertions(+), 204 deletions(-) Deleted: 01-python33-relative-import.patch =================================================================== --- 01-python33-relative-import.patch 2014-07-07 00:32:53 UTC (rev 115220) +++ 01-python33-relative-import.patch 2014-07-07 00:43:11 UTC (rev 115221) @@ -1,196 +0,0 @@ -From 12e5aa7b94e0a0ec37e754527e06707005d28d1c Mon Sep 17 00:00:00 2001 -From: milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> -Date: Wed, 11 Jul 2012 12:25:14 +0000 -Subject: [PATCH] Fix [3541369] Relative __import__ also with Python 3.3. - -git-svn-id: https://docutils.svn.sourceforge.net/svnroot/docutils/trunk@7486 929543f6-e4f2-0310-98a6-ba3bd3dd1d04 ---- - docutils/HISTORY.txt | 1 + - docutils/docutils/_compat.py | 11 +++++++++++ - docutils/docutils/languages/__init__.py | 8 ++++++-- - docutils/docutils/parsers/__init__.py | 5 ++++- - .../docutils/parsers/rst/directives/__init__.py | 6 +++++- - .../docutils/parsers/rst/languages/__init__.py | 6 +++++- - docutils/docutils/readers/__init__.py | 5 ++++- - docutils/docutils/writers/__init__.py | 7 +++++-- - 8 files changed, 41 insertions(+), 8 deletions(-) - -diff --git a/docutils/docutils/_compat.py b/docutils/docutils/_compat.py -index 1450534..19654a6 100644 ---- a/docutils/docutils/_compat.py -+++ b/docutils/docutils/_compat.py -@@ -35,3 +35,14 @@ else: - # 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) -diff --git a/docutils/docutils/languages/__init__.py b/docutils/docutils/languages/__init__.py -index 675bb0e..57d3ec2 100644 ---- a/docutils/docutils/languages/__init__.py -+++ b/docutils/docutils/languages/__init__.py -@@ -11,7 +11,11 @@ This package contains modules for language-dependent features of Docutils. - - __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 @@ def get_language(language_code, reporter=None): - 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 @@ def get_language(language_code, reporter=None): - 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 -diff --git a/docutils/docutils/parsers/__init__.py b/docutils/docutils/parsers/__init__.py -index 2683376..341e358 100644 ---- a/docutils/docutils/parsers/__init__.py -+++ b/docutils/docutils/parsers/__init__.py -@@ -8,7 +8,10 @@ This package contains Docutils parser modules. - - __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 @@ def get_parser_class(parser_name): - 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 -diff --git a/docutils/docutils/parsers/rst/directives/__init__.py b/docutils/docutils/parsers/rst/directives/__init__.py -index b00a676..fdc70d7 100644 ---- a/docutils/docutils/parsers/rst/directives/__init__.py -+++ b/docutils/docutils/parsers/rst/directives/__init__.py -@@ -10,8 +10,12 @@ __docformat__ = 'reStructuredText' - - 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 @@ def directive(directive_name, language_module, document): - # 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' -diff --git a/docutils/docutils/parsers/rst/languages/__init__.py b/docutils/docutils/parsers/rst/languages/__init__.py -index 53017d7..5a151e4 100644 ---- a/docutils/docutils/parsers/rst/languages/__init__.py -+++ b/docutils/docutils/parsers/rst/languages/__init__.py -@@ -12,7 +12,11 @@ reStructuredText. - - __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 @@ def get_language(language_code): - 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 -diff --git a/docutils/docutils/readers/__init__.py b/docutils/docutils/readers/__init__.py -index a28248f..e3e6fb5 100644 ---- a/docutils/docutils/readers/__init__.py -+++ b/docutils/docutils/readers/__init__.py -@@ -8,9 +8,12 @@ This package contains Docutils Reader modules. - - __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 @@ def get_reader_class(reader_name): - 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 -diff --git a/docutils/docutils/writers/__init__.py b/docutils/docutils/writers/__init__.py -index e30dbf6..8fcee0c 100644 ---- a/docutils/docutils/writers/__init__.py -+++ b/docutils/docutils/writers/__init__.py -@@ -8,11 +8,14 @@ This package contains Docutils Writer modules. - - __docformat__ = 'reStructuredText' - -- - import os.path -+import sys -+ - 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 @@ def get_writer_class(writer_name): - 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 --- -1.6.5.GIT - Added: 01-rst2odt_prepstyles-elementtree.patch =================================================================== --- 01-rst2odt_prepstyles-elementtree.patch (rev 0) +++ 01-rst2odt_prepstyles-elementtree.patch 2014-07-07 00:43:11 UTC (rev 115221) @@ -0,0 +1,68 @@ +--- a/tools/rst2odt_prepstyles.py ++++ b/tools/rst2odt_prepstyles.py +@@ -12,7 +12,15 @@ + # + # Author: Michael Schutte <mi...@uiae.at> + +-from lxml import etree ++try: ++ from xml.etree import ElementTree as etree ++except ImportError: ++ try: ++ from elementtree import ElementTree as etree ++ except ImportError: ++ raise ImportError('Missing an implementation of ElementTree. ' \ ++ 'Please install either Python >= 2.5 or ElementTree.') ++ + import sys + import zipfile + from tempfile import mkstemp +@@ -27,12 +35,22 @@ + def prepstyle(filename): + + zin = zipfile.ZipFile(filename) +- styles = zin.read("styles.xml") +- +- root = etree.fromstring(styles) +- for el in root.xpath("//style:page-layout-properties", +- namespaces=NAMESPACES): +- for attr in el.attrib: ++ styles = zin.open("styles.xml") ++ ++ root = None ++ # some extra effort to preserve namespace prefixes ++ for event, elem in etree.iterparse(styles, events=("start", "start-ns")): ++ if event == "start-ns": ++ etree.register_namespace(elem[0], elem[1]) ++ elif event == "start": ++ if root is None: ++ root = elem ++ ++ styles.close() ++ ++ for el in root.findall(".//style:page-layout-properties", ++ namespaces=NAMESPACES): ++ for attr in el.attrib.keys(): + if attr.startswith("{%s}" % NAMESPACES["fo"]): + del el.attrib[attr] + +@@ -42,7 +60,7 @@ + + for item in zin.infolist(): + if item.filename == "styles.xml": +- zout.writestr(item, etree.tostring(root)) ++ zout.writestr(item, etree.tostring(root, encoding="UTF-8")) + else: + zout.writestr(item, zin.read(item.filename)) + +@@ -54,8 +72,8 @@ + def main(): + args = sys.argv[1:] + if len(args) != 1: +- print >> sys.stderr, __doc__ +- print >> sys.stderr, "Usage: %s STYLE_FILE.odt\n" % sys.argv[0] ++ sys.stderr.write(__doc__) ++ sys.stderr.write("\nUsage: %s STYLE_FILE.odt\n" % sys.argv[0]) + sys.exit(1) + filename = args[0] + prepstyle(filename) Modified: PKGBUILD =================================================================== --- PKGBUILD 2014-07-07 00:32:53 UTC (rev 115220) +++ PKGBUILD 2014-07-07 00:43:11 UTC (rev 115221) @@ -5,25 +5,29 @@ pkgbase=docutils pkgname=('python-docutils' 'python2-docutils') -pkgver=0.11 -pkgrel=2 +pkgver=0.12 +pkgrel=1 pkgdesc='Set of tools for processing plaintext docs into formats such as HTML, XML, or LaTeX' arch=('any') url='http://docutils.sourceforge.net' license=('custom') makedepends=('python' 'python2') -source=("http://downloads.sourceforge.net/$pkgbase/$pkgbase-$pkgver.tar.gz") -md5sums=('20ac380a18b369824276864d98ec0ad6') +source=("http://downloads.sourceforge.net/$pkgbase/$pkgbase-$pkgver.tar.gz" + '01-rst2odt_prepstyles-elementtree.patch') +md5sums=('4622263b62c5c771c03502afa3157768' + '34952e8a50692b628a8aa2dde3072f07') build() { cd $pkgbase-$pkgver -# for _p in "$srcdir"/*.patch; do -# msg2 "${_p##*/}" -# patch -p2 -i "$_p" -# done + for _p in "$srcdir"/*.patch; do + msg2 "${_p##*/}" + patch -p1 -i "$_p" + done + msg2 python3 python3 setup.py build --build-lib=build/python find build/python -type f -exec \ sed -i '1s,^#! \?/usr/bin/\(env \|\)python$,#!/usr/bin/python3,' {} \; + msg2 python2 python2 setup.py build --build-lib=build/python2 find build/python2 -type f -exec \ sed -i '1s,^#! \?/usr/bin/\(env \|\)python$,#!/usr/bin/python2,' {} \;