[arch-commits] Commit in docutils/trunk (3 files)

Sébastien Luttringer seblu at nymeria.archlinux.org
Mon Jul 7 00:43:11 UTC 2014


    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 at 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 <michi at 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,' {} \;




More information about the arch-commits mailing list