[90894] trunk/dports/python
afb at macports.org
afb at macports.org
Sat Mar 17 09:48:18 PDT 2012
Revision: 90894
https://trac.macports.org/changeset/90894
Author: afb at macports.org
Date: 2012-03-17 09:48:16 -0700 (Sat, 17 Mar 2012)
Log Message:
-----------
py-liblzma: add license, unified port (#33637)
Modified Paths:
--------------
trunk/dports/python/py-liblzma/Portfile
Added Paths:
-----------
trunk/dports/python/py-liblzma/
trunk/dports/python/py-liblzma/files/
trunk/dports/python/py-liblzma/files/pyliblzma-python23.diff
Removed Paths:
-------------
trunk/dports/python/py25-liblzma/
trunk/dports/python/py26-liblzma/
Modified: trunk/dports/python/py-liblzma/Portfile
===================================================================
--- trunk/dports/python/py26-liblzma/Portfile 2012-03-17 09:58:50 UTC (rev 90891)
+++ trunk/dports/python/py-liblzma/Portfile 2012-03-17 16:48:16 UTC (rev 90894)
@@ -1,13 +1,16 @@
# $Id$
PortSystem 1.0
-PortGroup python26 1.0
+PortGroup python 1.0
-name py26-liblzma
+name py-liblzma
version 0.5.3
-categories python archivers
+revision 1
+python.versions 24 25 26 27
+categories-append archivers
platforms darwin
maintainers afb openmaintainer
+license LGPL-3
description Python bindings for the XZ Utils compression library.
long_description ${description}
@@ -19,4 +22,8 @@
sha1 6240ec6f830f35f4087b8926a95c2074320b7ed5 \
md160 b9062beec2bc745ea4fa64aef04f081a33b3d79c
-depends_build port:py26-distribute port:liblzma
+if {$name != $subport} {
+depends_lib port:py${python.version}-distribute
+}
+depends_lib-append port:liblzma
+patchfiles pyliblzma-python23.diff
Added: trunk/dports/python/py-liblzma/files/pyliblzma-python23.diff
===================================================================
--- trunk/dports/python/py-liblzma/files/pyliblzma-python23.diff (rev 0)
+++ trunk/dports/python/py-liblzma/files/pyliblzma-python23.diff 2012-03-17 16:48:16 UTC (rev 90894)
@@ -0,0 +1,507 @@
+--- setup.py.py23 2009-02-26 19:49:41.000000000 +0100
++++ setup.py 2009-03-03 12:28:11.000000000 +0100
+@@ -21,7 +21,7 @@
+ # License along with this library; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ #
+-import sys, os, subprocess
++import sys, os
+ from warnings import warn
+ from setuptools import setup, Extension
+
+@@ -44,16 +44,17 @@ compile_args = []
+ warnflags = ['-Wall', '-Wextra', '-pedantic', '-Wswitch-enum', '-Wswitch-default']
+ compile_args.extend(warnflags)
+ link_args = []
+-if not subprocess.Popen('touch gnu99-test.c; gcc -std=gnu99 -E gnu99-test.c > /dev/null; rm -f gnu99-test.c',
+- shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True).stdout.read():
++if not os.popen('touch gnu99-test.c; gcc -std=gnu99 -E gnu99-test.c > /dev/null; rm -f gnu99-test.c').read():
+ compile_args.append('-std=gnu99')
+
+-pc_cflags = subprocess.Popen("pkg-config --cflags liblzma", shell=True, stdout=subprocess.PIPE, close_fds=True).stdout.readline().strip()
++pc_cflags = os.popen("pkg-config --cflags liblzma").readline().strip()
+ if(pc_cflags):
+ compile_args.extend(pc_cflags.split(' '))
+-pc_libs = subprocess.Popen("pkg-config --libs liblzma", shell=True, stdout=subprocess.PIPE, close_fds=True).stdout.readline().strip()
++pc_libs = os.popen("pkg-config --libs liblzma").readline().strip()
+ if(pc_libs):
+ link_args.extend(pc_libs.split(' '))
++else:
++ link_args.append('-llzma')
+
+ extens=[Extension('lzma', c_files, extra_compile_args=compile_args, extra_link_args=link_args, define_macros=version_define)]
+
+=== modified file 'src/liblzma.c'
+--- src/liblzma.c 2010-04-13 21:05:20 +0000
++++ src/liblzma.c 2010-08-05 12:40:10 +0000
+@@ -20,7 +20,9 @@
+ LZMA_compress(__attribute__((unused)) PyObject *self, PyObject *args, PyObject *kwargs)
+ {
+ PyObject *ret = NULL, *options_dict = NULL;
++#if USE_PYBUFFER
+ Py_buffer pdata;
++#endif
+ uint8_t *data;
+ Py_ssize_t datasize, bufsize;
+ lzma_ret lzuerror;
+@@ -31,16 +33,24 @@
+
+ static char *kwlist[] = {"input", "options", NULL};
+
++#if USE_PYBUFFER
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s*|O:compress", kwlist,
+ &pdata, &options_dict))
+ return NULL;
++#else
++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#|O:compress", kwlist,
++ (char **) &data, &datasize, &options_dict))
++ return NULL;
++#endif
+
+ filters[0].options = &options;
+ if(!init_lzma_options("compress", options_dict, filters))
+ return NULL;
+
++#if USE_PYBUFFER
+ data = pdata.buf;
+ datasize = pdata.len;
++#endif
+
+ lzma_stream tmp = LZMA_STREAM_INIT;
+ *lzus = tmp;
+@@ -95,14 +105,18 @@
+ _PyString_Resize(&ret, (Py_ssize_t)lzus->total_out);
+ }
+
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ return ret;
+
+ error:
+ if(lzuerror != LZMA_MEM_ERROR && lzuerror != LZMA_PROG_ERROR)
+ lzma_end(lzus);
+ Py_XDECREF(ret);
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ return NULL;
+ }
+
+@@ -120,7 +134,9 @@
+ LZMA_decompress(__attribute__((unused)) PyObject *self, PyObject *args, PyObject *kwargs)
+ {
+ PyObject *ret = NULL;
++#if USE_PYBUFFER
+ Py_buffer pdata;
++#endif
+ uint8_t *data;
+ Py_ssize_t datasize, bufsize = SMALLCHUNK;
+ uint64_t memlimit = -1;
+@@ -130,20 +146,30 @@
+
+ static char *kwlist[] = {"input", "bufsize", "memlimit", NULL};
+
++#if USE_PYBUFFER
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s*|lK:decompress", kwlist,
+ &pdata, &bufsize, &memlimit))
+ return NULL;
+ data = pdata.buf;
+ datasize = pdata.len;
++#else
++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#|lK:decompress", kwlist,
++ (char **) &data, &datasize, &memlimit))
++ return NULL;
++#endif
+
+ if (datasize == 0) {
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ return PyString_FromString("");
+ }
+
+ ret = PyString_FromStringAndSize(NULL, bufsize);
+ if (!ret) {
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ return NULL;
+ }
+
+@@ -180,7 +206,9 @@
+
+ _PyString_Resize(&ret, (Py_ssize_t)lzus->total_out);
+ lzma_end(lzus);
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+
+ return ret;
+
+@@ -188,7 +216,9 @@
+ if(lzuerror != LZMA_MEM_ERROR && lzuerror != LZMA_PROG_ERROR)
+ lzma_end(lzus);
+ Py_XDECREF(ret);
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ return NULL;
+ }
+
+
+=== modified file 'src/liblzma.h'
+--- src/liblzma.h 2010-02-20 23:08:09 +0000
++++ src/liblzma.h 2010-08-05 12:59:26 +0000
+@@ -6,6 +6,24 @@
+ */
+ #define PY_SSIZE_T_CLEAN 1
+ #include <Python.h>
++#if PY_VERSION_HEX >= 0x020600F0
++#define USE_PYBUFFER 1
++#define USE_USECOUNT 1
++#else
++#define Py_TYPE(op) (op)->ob_type
++#define PyOS_stricmp strcasecmp
++#define USE_PYBUFFER 0
++#define USE_USECOUNT 0
++#endif
++#if PY_VERSION_HEX < 0x020500F0
++typedef int Py_ssize_t;
++#endif
++#if PY_VERSION_HEX < 0x020400F0
++#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
++#define Py_CLEAR(op) do { if (op) { PyObject *tmp = (PyObject *)(op); \
++ (op) = NULL; Py_DECREF(tmp); } } while(0)
++#define PyDict_Contains(p, key) (PyDict_GetItem(p, key) != NULL)
++#endif
+ #include <stdio.h>
+ #include <stdlib.h>
+ #if defined (__APPLE__) || defined(__FreeBSD__) || \
+
+=== modified file 'src/liblzma_compressobj.c'
+--- src/liblzma_compressobj.c 2010-04-13 20:26:35 +0000
++++ src/liblzma_compressobj.c 2010-08-05 12:40:10 +0000
+@@ -14,7 +14,9 @@
+ static PyObject *
+ LZMAComp_compress(LZMACompObject *self, PyObject *args)
+ {
++#if USE_PYBUFFER
+ Py_buffer pdata;
++#endif
+ Py_ssize_t datasize, bufsize = SMALLCHUNK;
+ uint8_t *data;
+ uint64_t totalout;
+@@ -23,10 +25,15 @@
+ lzma_ret lzuerror;
+
+ INITCHECK
++#if USE_PYBUFFER
+ if (!PyArg_ParseTuple(args, "s*:compress", &pdata))
+ return NULL;
+ data = pdata.buf;
+ datasize = pdata.len;
++#else
++ if (!PyArg_ParseTuple(args, "s#:compress", (char **) &data, &datasize))
++ return NULL;
++#endif
+
+ ACQUIRE_LOCK(self);
+ if (!self->running) {
+@@ -65,12 +72,16 @@
+ _PyString_Resize(&ret, (Py_ssize_t)lzus->total_out - (Py_ssize_t)totalout);
+
+ RELEASE_LOCK(self);
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ return ret;
+
+ error:
+ RELEASE_LOCK(self);
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ Py_XDECREF(ret);
+ return NULL;
+ }
+@@ -364,5 +375,7 @@
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+ 0, /*tp_del*/
++#if PY_VERSION_HEX >= 0x020600F0 /* Added in version 2.6 */
+ 0 /*tp_version_tag*/
++#endif
+ };
+
+=== modified file 'src/liblzma_decompressobj.c'
+--- src/liblzma_decompressobj.c 2010-01-13 08:28:17 +0000
++++ src/liblzma_decompressobj.c 2010-08-05 12:40:10 +0000
+@@ -16,7 +16,9 @@
+ static PyObject *
+ LZMADecomp_decompress(LZMADecompObject *self, PyObject *args, PyObject *kwargs)
+ {
++#if USE_PYBUFFER
+ Py_buffer pdata;
++#endif
+ Py_ssize_t datasize, oldbufsize, bufsize = SMALLCHUNK;
+ uint8_t *data;
+ uint64_t start_total_out;
+@@ -26,11 +28,17 @@
+ static char *kwlist[] = {"data", "max_length", NULL};
+
+ INITCHECK
++#if USE_PYBUFFER
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s*|l:decompress", kwlist,
+ &pdata, &self->max_length))
+ return NULL;
+ data = pdata.buf;
+ datasize = pdata.len;
++#else
++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#|l:decompress", kwlist,
++ (char **) &data, &datasize, &self->max_length))
++ return NULL;
++#endif
+
+ ACQUIRE_LOCK(self);
+ if (!self->running) {
+@@ -121,12 +129,16 @@
+ _PyString_Resize(&ret, (Py_ssize_t)lzus->total_out - (Py_ssize_t)start_total_out);
+
+ RELEASE_LOCK(self);
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ return ret;
+
+ error:
+ RELEASE_LOCK(self);
++#if USE_PYBUFFER
+ PyBuffer_Release(&pdata);
++#endif
+ Py_XDECREF(ret);
+ return NULL;
+ }
+@@ -339,7 +351,7 @@
+ lzma_stream *lzus = &self->lzus;
+ lzma_ret lzuerror;
+
+- static char *kwlist[] = {"input", "max_length", "memlimit", NULL};
++ static char *kwlist[] = {"max_length", "memlimit", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|lK:LZMADecompressor", kwlist,
+ &self->max_length, &self->memlimit))
+@@ -434,5 +446,7 @@
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+ 0, /*tp_del*/
++#if PY_VERSION_HEX >= 0x020600F0 /* Added in version 2.6 */
+ 0 /*tp_version_tag*/
++#endif
+ };
+
+=== modified file 'src/liblzma_fileobj.c'
+--- src/liblzma_fileobj.c 2010-01-13 08:28:17 +0000
++++ src/liblzma_fileobj.c 2010-08-05 12:40:10 +0000
+@@ -314,15 +314,22 @@
+ LZMAFile_write(LZMAFileObject *self, PyObject *args)
+ {
+ PyObject *ret = NULL;
++#if USE_PYBUFFER
+ Py_buffer pbuf;
++#endif
+ char *buf;
+ Py_ssize_t len;
+ lzma_ret lzuerror;
+
++#if USE_PYBUFFER
+ if (!PyArg_ParseTuple(args, "s*:write", &pbuf))
+ return NULL;
+ buf = pbuf.buf;
+ len = pbuf.len;
++#else
++ if (!PyArg_ParseTuple(args, "s#:write", &buf, &len))
++ return NULL;
++#endif
+
+ ACQUIRE_LOCK(self);
+ switch (self->mode) {
+@@ -358,7 +365,9 @@
+ ret = Py_None;
+
+ cleanup:
++#if USE_PYBUFFER
+ PyBuffer_Release(&pbuf);
++#endif
+ RELEASE_LOCK(self);
+ return ret;
+ }
+@@ -596,7 +605,9 @@
+ /* we cannot move back, so rewind the stream */
+ lzma_close_real(&lzuerror, self->fp);
+ if (self->fp) {
++#if USE_USECOUNT
+ PyFile_DecUseCount((PyFileObject *)self->file);
++#endif
+ self->fp = NULL;
+ }
+ if (lzuerror != LZMA_OK) {
+@@ -611,8 +622,10 @@
+ self->pos = 0;
+ self->fp = lzma_open_real(&lzuerror, self->filters, PyFile_AsFile(self->file), self->memlimit);
+
++#if USE_USECOUNT
+ if (self->fp)
+ PyFile_IncUseCount((PyFileObject *)self->file);
++#endif
+ if (lzuerror != LZMA_OK) {
+ Util_CatchLZMAError(lzuerror, &self->fp->strm, self->fp->encoding);
+ goto cleanup;
+@@ -704,7 +717,9 @@
+ ACQUIRE_LOCK(self);
+ lzma_close_real(&lzuerror, self->fp);
+ if (self->fp) {
++#if USE_USECOUNT
+ PyFile_DecUseCount((PyFileObject *)self->file);
++#endif
+ self->fp = NULL;
+ }
+ self->mode = MODE_CLOSED;
+@@ -931,7 +946,9 @@
+ Util_CatchLZMAError(lzuerror, &self->fp->strm, self->fp->encoding);
+ goto error;
+ }
++#if USE_USECOUNT
+ PyFile_IncUseCount((PyFileObject *)self->file);
++#endif
+
+ self->mode = self->filters[0].options ? MODE_WRITE : MODE_READ;
+
+@@ -958,7 +975,9 @@
+ #endif
+ lzma_close_real(&lzuerror, self->fp);
+ if (self->fp) {
++#if USE_USECOUNT
+ PyFile_DecUseCount((PyFileObject *)self->file);
++#endif
+ self->fp = NULL;
+ }
+ Util_DropReadAhead(self);
+@@ -1073,5 +1092,7 @@
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+ 0, /*tp_del*/
++#if PY_VERSION_HEX >= 0x020600F0 /* Added in version 2.6 */
+ 0 /*tp_version_tag*/
++#endif
+ };
+
+=== modified file 'src/liblzma_options.c'
+--- src/liblzma_options.c 2010-05-28 20:13:21 +0000
++++ src/liblzma_options.c 2010-08-05 12:59:26 +0000
+@@ -246,6 +246,7 @@
+ LZMAOptionsObject *self = (LZMAOptionsObject*)PyType_GenericAlloc(type, nitems);
+ PyObject *levelopts, *levelString, *mf_list;
+
++#if PY_VERSION_HEX >= 0x020400F0
+ self->format = PyTuple_Pack(2, PyString_FromString("xz"), PyString_FromString("alone"));
+ format = self->format;
+ self->check = PyTuple_Pack(3, PyString_FromString("crc32"), PyString_FromString("crc64"),
+@@ -264,6 +265,26 @@
+ self->mode_dict = PyDict_New();
+ self->nice_len = PyTuple_Pack(2, PyInt_FromLong((ulong)LZMA_NICE_LEN_MIN),
+ PyInt_FromLong((ulong)LZMA_NICE_LEN_MAX));
++#else
++ self->format = Py_BuildValue("(OO)", PyString_FromString("xz"), PyString_FromString("alone"));
++ format = self->format;
++ self->check = Py_BuildValue("(OOO)", PyString_FromString("crc32"), PyString_FromString("crc64"),
++ PyString_FromString("sha256"));
++ check = self->check;
++ self->level = Py_BuildValue("(OO)", PyInt_FromLong((ulong)LZMA_BEST_SPEED),
++ PyInt_FromLong((ulong)LZMA_BEST_COMPRESSION));
++ self->dict_size = Py_BuildValue("(OO)", PyInt_FromLong((ulong)LZMA_DICT_SIZE_MIN),
++ PyInt_FromLong((ulong)LZMA_DICT_SIZE_MAX));
++ self->lc = Py_BuildValue("(OO)", PyInt_FromLong((ulong)LZMA_LCLP_MIN),
++ PyInt_FromLong((ulong)LZMA_LCLP_MAX));
++ self->lp = Py_BuildValue("(OO)", PyInt_FromLong((ulong)LZMA_LCLP_MIN),
++ PyInt_FromLong((ulong)LZMA_LCLP_MAX));
++ self->pb = Py_BuildValue("(OO)", PyInt_FromLong((ulong)LZMA_PB_MIN),
++ PyInt_FromLong((ulong)LZMA_PB_MAX));
++ self->mode_dict = PyDict_New();
++ self->nice_len = Py_BuildValue("(OO)", PyInt_FromLong((ulong)LZMA_NICE_LEN_MIN),
++ PyInt_FromLong((ulong)LZMA_NICE_LEN_MAX));
++#endif
+ self->mf_dict = PyDict_New();
+ self->depth = PyInt_FromLong(0);
+
+@@ -307,7 +328,11 @@
+ lzma_lzma_preset(&options, levelNum);
+ lzma_filter filter = { LZMA_FILTER_LZMA2, &options };
+ PyObject *options_dict = LZMA_options_get(filter);
++#if PY_VERSION_HEX >= 0x020400F0
+ PyObject *settingsString = PyString_Format(levelopts, PyTuple_Pack(9,
++#else
++ PyObject *settingsString = PyString_Format(levelopts, Py_BuildValue("(OOOOOOOOO)",
++#endif
+ PyInt_FromLong(levelNum),
+ PyDict_GetItem(options_dict, PyString_FromString("lc")),
+ PyDict_GetItem(options_dict, PyString_FromString("lp")),
+@@ -460,5 +485,7 @@
+ 0, /*tp_subclasses*/
+ 0, /*tp_weaklist*/
+ 0, /*tp_del*/
++#if PY_VERSION_HEX >= 0x020600F0 /* Added in version 2.6 */
+ 0 /*tp_version_tag*/
++#endif
+ };
+
+=== modified file 'src/liblzma_util.c'
+--- src/liblzma_util.c 2010-01-13 08:28:17 +0000
++++ src/liblzma_util.c 2010-08-05 12:59:26 +0000
+@@ -13,7 +13,11 @@
+ break;
+
+ case LZMA_NO_CHECK:
++#if PY_VERSION_HEX >= 0x020500F0
+ PyErr_WarnEx(LZMAError, "stream has no integrity check", 1);
++#else
++ PyErr_Warn(LZMAError, "stream has no integrity check");
++#endif
+ break;
+
+ case LZMA_UNSUPPORTED_CHECK:
+
+=== modified file 'tests/test_liblzma.py'
+--- tests/test_liblzma.py 2010-04-13 20:29:41 +0000
++++ tests/test_liblzma.py 2010-08-05 12:59:26 +0000
+@@ -29,7 +29,10 @@
+ import os
+ from test.test_support import TESTFN
+
+-from hashlib import md5
++try:
++ from hashlib import md5
++except ImportError:
++ from md5 import md5
+ from binascii import unhexlify, hexlify
+ from cStringIO import StringIO
+ from StringIO import StringIO as PyStringIO
+@@ -606,7 +609,7 @@
+ # checksum test cases
+ def test_crc32start(self):
+ self.assertEqual(lzma.crc32(""), lzma.crc32("", 0))
+- self.assert_(lzma.crc32("abc", 0xffffffff))
++ self.assert_(lzma.crc32("abc", 0xffffffffL))
+
+ def test_crc32empty(self):
+ self.assertEqual(lzma.crc32("", 0), 0)
+@@ -627,7 +630,7 @@
+ # These crc64 tests needs to be reviewed..
+ def test_crc64start(self):
+ self.assertEqual(lzma.crc64(""), lzma.crc64("", 0))
+- self.assert_(lzma.crc64("abc", 0xffffffff))
++ self.assert_(lzma.crc64("abc", 0xffffffffL))
+
+ def test_crc64empty(self):
+ self.assertEqual(lzma.crc64("", 0), 0)
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120317/30a63088/attachment.html>
More information about the macports-changes
mailing list