pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/textproc/py-libxml2 Enable Python 3



details:   https://anonhg.NetBSD.org/pkgsrc/rev/5c6c0baaa686
branches:  trunk
changeset: 624913:5c6c0baaa686
user:      prlw1 <prlw1%pkgsrc.org@localhost>
date:      Thu Oct 03 07:52:32 2013 +0000

description:
Enable Python 3

diffstat:

 textproc/py-libxml2/Makefile                     |    4 +-
 textproc/py-libxml2/distinfo                     |    5 +-
 textproc/py-libxml2/patches/patch-ab             |  182 ++++++++++++++++++++++-
 textproc/py-libxml2/patches/patch-drv_libxml2.py |   40 +++++
 4 files changed, 224 insertions(+), 7 deletions(-)

diffs (272 lines):

diff -r 04c2c9b8afea -r 5c6c0baaa686 textproc/py-libxml2/Makefile
--- a/textproc/py-libxml2/Makefile      Thu Oct 03 01:25:51 2013 +0000
+++ b/textproc/py-libxml2/Makefile      Thu Oct 03 07:52:32 2013 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.46 2013/05/26 09:33:16 adam Exp $
+# $NetBSD: Makefile,v 1.47 2013/10/03 07:52:32 prlw1 Exp $
 
 DISTNAME=      libxml2-2.9.1
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
@@ -14,6 +14,8 @@
 WRKSRC=                ${WRKDIR}/${DISTNAME}/python
 NO_CONFIGURE=  YES
 
+PYTHON_VERSIONS_INCLUDE_3X=    yes
+
 SUBST_CLASSES+=                setup
 SUBST_MESSAGE.setup=   Fixing hardcoded paths.
 SUBST_STAGE.setup=     pre-build
diff -r 04c2c9b8afea -r 5c6c0baaa686 textproc/py-libxml2/distinfo
--- a/textproc/py-libxml2/distinfo      Thu Oct 03 01:25:51 2013 +0000
+++ b/textproc/py-libxml2/distinfo      Thu Oct 03 07:52:32 2013 +0000
@@ -1,8 +1,9 @@
-$NetBSD: distinfo,v 1.29 2013/05/28 22:26:13 drochner Exp $
+$NetBSD: distinfo,v 1.30 2013/10/03 07:52:32 prlw1 Exp $
 
 SHA1 (libxml2-2.9.1.tar.gz) = eb3e2146c6d68aea5c2a4422ed76fe196f933c21
 RMD160 (libxml2-2.9.1.tar.gz) = 257285d9ac070ed9f58666b7bd7c4653651c871b
 Size (libxml2-2.9.1.tar.gz) = 5172503 bytes
 SHA1 (patch-aa) = 54ce6f91dd29144f22247d15093d6d273f5f433b
-SHA1 (patch-ab) = 1ae347ac9e8ad8fd6f4f2cfb1017488d8a52ed1f
+SHA1 (patch-ab) = 793db9f20df8bba2fbee61abf4239a879c182aa7
 SHA1 (patch-ac) = b2e8fac8221ae9fb00b3de33441dd83cd7422204
+SHA1 (patch-drv_libxml2.py) = 95b8b71bb619c25f092019a0f950b4416cd80738
diff -r 04c2c9b8afea -r 5c6c0baaa686 textproc/py-libxml2/patches/patch-ab
--- a/textproc/py-libxml2/patches/patch-ab      Thu Oct 03 01:25:51 2013 +0000
+++ b/textproc/py-libxml2/patches/patch-ab      Thu Oct 03 07:52:32 2013 +0000
@@ -1,9 +1,37 @@
-$NetBSD: patch-ab,v 1.1 2007/07/16 13:24:32 jmmv Exp $
+$NetBSD: patch-ab,v 1.2 2013/10/03 07:52:32 prlw1 Exp $
+
+- Fix build under Mac OS X (reorder os.path.join(ROOT,'include') )
+- White space changes for python 3 indentation (commit 4b61cf61)
 
---- setup.py.orig      2007-06-12 18:20:40.000000000 +0200
+--- setup.py.orig      2013-10-02 21:20:43.000000000 +0000
 +++ setup.py
-@@ -56,10 +56,10 @@ else:
- # - iconv.h 
+@@ -6,14 +6,14 @@ import sys, os
+ from distutils.core import setup, Extension
+ 
+ # Below ROOT, we expect to find include, include/libxml2, lib and bin.
+-# On *nix, it is not needed (but should not harm), 
++# On *nix, it is not needed (but should not harm),
+ # on Windows, it is set by configure.js.
+-ROOT = r'/usr' 
++ROOT = r'/usr'
+ 
+ # Thread-enabled libxml2
+ with_threads = 1
+ 
+-# If this flag is set (windows only), 
++# If this flag is set (windows only),
+ # a private copy of the dlls are included in the package.
+ # If this flag is not set, the libxml2 and libxslt
+ # dlls must be found somewhere in the PATH at runtime.
+@@ -51,15 +51,15 @@ else:
+     libraryPrefix = ''
+     platformLibs = ["m","z"]
+ 
+-# those are examined to find 
++# those are examined to find
+ # - libxml2/libxml/tree.h
+-# - iconv.h 
++# - iconv.h
  # - libxslt/xsltconfig.h
  includes_dir = [
 +os.path.join(ROOT,'include'),
@@ -14,3 +42,149 @@
  HOME
  ];
  
+@@ -67,7 +67,7 @@ xml_includes=""
+ for dir in includes_dir:
+     if not missing(dir + "/libxml2/libxml/tree.h"):
+         xml_includes=dir + "/libxml2"
+-      break;
++        break;
+ 
+ if xml_includes == "":
+     print("failed to find headers for libxml2: update includes_dir")
+@@ -77,7 +77,7 @@ iconv_includes=""
+ for dir in includes_dir:
+     if not missing(dir + "/iconv.h"):
+         iconv_includes=dir
+-      break;
++        break;
+ 
+ if iconv_includes == "":
+     print("failed to find headers for libiconv: update includes_dir")
+@@ -90,22 +90,22 @@ os.path.join(ROOT,'lib'),
+ 
+ xml_files = ["libxml2-api.xml", "libxml2-python-api.xml",
+              "libxml.c", "libxml.py", "libxml_wrap.h", "types.c",
+-           "xmlgenerator.py", "README", "TODO", "drv_libxml2.py"]
++             "xmlgenerator.py", "README", "TODO", "drv_libxml2.py"]
+ 
+ xslt_files = ["libxslt-api.xml", "libxslt-python-api.xml",
+              "libxslt.c", "libxsl.py", "libxslt_wrap.h",
+-           "xsltgenerator.py"]
++             "xsltgenerator.py"]
+ 
+ if missing("libxml2-py.c") or missing("libxml2.py"):
+     try:
+-      try:
+-          import xmlgenerator
+-      except:
+-          import generator
++        try:
++            import xmlgenerator
++        except:
++            import generator
+     except:
+-      print("failed to find and generate stubs for libxml2, aborting ...")
+-      print(sys.exc_info()[0], sys.exc_info()[1])
+-      sys.exit(1)
++        print("failed to find and generate stubs for libxml2, aborting ...")
++        print(sys.exc_info()[0], sys.exc_info()[1])
++        sys.exit(1)
+ 
+     head = open("libxml.py", "r")
+     generated = open("libxml2class.py", "r")
+@@ -116,7 +116,7 @@ if missing("libxml2-py.c") or missing("l
+         else:
+             result.write(line)
+     for line in generated.readlines():
+-      result.write(line)
++        result.write(line)
+     head.close()
+     generated.close()
+     result.close()
+@@ -126,39 +126,39 @@ if missing("libxslt-py.c") or missing("l
+     if missing("xsltgenerator.py") or missing("libxslt-api.xml"):
+         print("libxslt stub generator not found, libxslt not built")
+     else:
+-      try:
+-          import xsltgenerator
+-      except:
+-          print("failed to generate stubs for libxslt, aborting ...")
+-          print(sys.exc_info()[0], sys.exc_info()[1])
+-      else:
+-          head = open("libxsl.py", "r")
+-          generated = open("libxsltclass.py", "r")
+-          result = open("libxslt.py", "w")
+-          for line in head.readlines():
++        try:
++            import xsltgenerator
++        except:
++            print("failed to generate stubs for libxslt, aborting ...")
++            print(sys.exc_info()[0], sys.exc_info()[1])
++        else:
++            head = open("libxsl.py", "r")
++            generated = open("libxsltclass.py", "r")
++            result = open("libxslt.py", "w")
++            for line in head.readlines():
+                 if WITHDLLS:
+                     result.write(altImport(line))
+                 else:
+                     result.write(line)
+-          for line in generated.readlines():
+-              result.write(line)
+-          head.close()
+-          generated.close()
+-          result.close()
+-          with_xslt=1
++            for line in generated.readlines():
++                result.write(line)
++            head.close()
++            generated.close()
++            result.close()
++            with_xslt=1
+ else:
+     with_xslt=1
+ 
+ if with_xslt == 1:
+     xslt_includes=""
+     for dir in includes_dir:
+-      if not missing(dir + "/libxslt/xsltconfig.h"):
+-          xslt_includes=dir + "/libxslt"
+-          break;
++        if not missing(dir + "/libxslt/xsltconfig.h"):
++            xslt_includes=dir + "/libxslt"
++            break;
+ 
+     if xslt_includes == "":
+-      print("failed to find headers for libxslt: update includes_dir")
+-      with_xslt = 0
++        print("failed to find headers for libxslt: update includes_dir")
++        with_xslt = 0
+ 
+ 
+ descr = "libxml2 package"
+@@ -194,11 +194,11 @@ if with_xslt == 1:
+ 
+ 
+ extens=[Extension('libxml2mod', c_files, include_dirs=includes,
+-                  library_dirs=libdirs, 
+-                  libraries=libs, define_macros=macros)] 
++                  library_dirs=libdirs,
++                  libraries=libs, define_macros=macros)]
+ if with_xslt == 1:
+     extens.append(Extension('libxsltmod', xslt_c_files, include_dirs=includes,
+-                          library_dirs=libdirs, 
++                            library_dirs=libdirs,
+                             libraries=libs, define_macros=macros))
+ 
+ if missing("MANIFEST"):
+@@ -208,8 +208,8 @@ if missing("MANIFEST"):
+     for file in xml_files:
+         manifest.write(file + "\n")
+     if with_xslt == 1:
+-      for file in xslt_files:
+-          manifest.write(file + "\n")
++        for file in xslt_files:
++            manifest.write(file + "\n")
+     manifest.close()
+ 
+ if WITHDLLS:
diff -r 04c2c9b8afea -r 5c6c0baaa686 textproc/py-libxml2/patches/patch-drv_libxml2.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/textproc/py-libxml2/patches/patch-drv_libxml2.py  Thu Oct 03 07:52:32 2013 +0000
@@ -0,0 +1,40 @@
+$NetBSD: patch-drv_libxml2.py,v 1.1 2013/10/03 07:52:32 prlw1 Exp $
+
+Python 3 fix
+commit 6c9c611b
+
+--- drv_libxml2.py.orig        2009-07-30 15:24:34.000000000 +0000
++++ drv_libxml2.py
+@@ -34,12 +34,20 @@ TODO
+ 
+ """
+ 
+-__author__  = u"Stéphane Bidoul <sbi%skynet.be@localhost>"
++__author__  = "Stéphane Bidoul <sbi%skynet.be@localhost>"
+ __version__ = "0.3"
+ 
++import sys
+ import codecs
+-from types import StringType, UnicodeType
+-StringTypes = (StringType,UnicodeType)
++
++if sys.version < "3":
++    __author__  = codecs.unicode_escape_decode(__author__)[0]
++
++    from types import StringType, UnicodeType
++    StringTypes = (StringType,UnicodeType)
++
++else:
++    StringTypes = (str)
+ 
+ from xml.sax._exceptions import *
+ from xml.sax import xmlreader, saxutils
+@@ -65,7 +73,7 @@ def _d(s):
+ 
+ try:
+     import libxml2
+-except ImportError, e:
++except ImportError as e:
+     raise SAXReaderNotAvailable("libxml2 not available: " \
+                                 "import error was: %s" % e)
+ 



Home | Main Index | Thread Index | Old Index