Date: Wednesday, March 16, 2011 @ 21:15:24
Author: stephane
Revision: 115117
upgpkg: swig 2.0.2-4
Improve patch for PySlice issue
Modified:
swig/trunk/PKGBUILD
swig/trunk/swig-pyslice.patch
+
PKGBUILD |8 +++---
swig-pyslice.patch | 67 +--
2 files changed, 48 insertions(+), 27 deletions(-)
Modified: PKGBUILD
===
--- PKGBUILD2011-03-17 01:13:28 UTC (rev 115116)
+++ PKGBUILD2011-03-17 01:15:24 UTC (rev 115117)
@@ -4,7 +4,7 @@
pkgname=swig
pkgver=2.0.2
-pkgrel=3
+pkgrel=4
pkgdesc=Generate scripting interfaces to C/C++ code
arch=('i686' 'x86_64')
url=http://www.swig.org/;
@@ -15,7 +15,7 @@
swig-pyslice.patch)
sha1sums=('1fc5a7b42ae41c51772d7268ba0f987e9514d110'
'add71330c5d839d9a27b1ca688e6c5e31f1edb7b'
- 'a12b59f0415d3a48bad97824861ecfd316a07c3e')
+ '7248b34032db7cb84143a6cefae425b222ce43a6')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
@@ -35,6 +35,6 @@
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
- install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
- install -D -m644 LICENSE-UNIVERSITIES
${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-UNIVERSITIES
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ install -D -m644 LICENSE-UNIVERSITIES
${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-UNIVERSITIES
}
Modified: swig-pyslice.patch
===
--- swig-pyslice.patch 2011-03-17 01:13:28 UTC (rev 115116)
+++ swig-pyslice.patch 2011-03-17 01:15:24 UTC (rev 115117)
@@ -1,45 +1,66 @@
-diff -up swig-2.0.1/Lib/python/pycontainer.swg.rh666429
swig-2.0.1/Lib/python/pycontainer.swg
swig-2.0.1/Lib/python/pycontainer.swg.rh666429 2010-02-28
00:26:02.0 +0100
-+++ swig-2.0.1/Lib/python/pycontainer.swg 2011-01-03 13:02:29.303515695
+0100
-@@ -631,14 +631,6 @@ namespace swig
+diff -Naur swig-2.0.2.ori/Lib/python/pycontainer.swg
swig-2.0.2/Lib/python/pycontainer.swg
+--- swig-2.0.2.ori/Lib/python/pycontainer.swg 2010-10-19 02:31:31.0
-0400
swig-2.0.2/Lib/python/pycontainer.swg 2011-03-16 20:41:28.09004
-0400
+@@ -630,6 +630,7 @@
return x;
}
-
--/* typemap for slice object support */
--%typemap(in) PySliceObject* {
-- $1 = (PySliceObject *) $input;
--}
--%typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) PySliceObject* {
-- $1 = PySlice_Check($input);
--}
--
+
++#if !NO_PYSLICE
+ /* typemap for slice object support */
+ %typemap(in) PySliceObject* {
+ $1 = (PySliceObject *) $input;
+@@ -637,6 +638,7 @@
+ %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) PySliceObject* {
+ $1 = PySlice_Check($input);
+ }
++#endif
+
Sequence* __getslice__(difference_type i, difference_type j) throw
(std::out_of_range) {
return swig::getslice(self, i, j);
- }
-@@ -660,7 +652,7 @@ namespace swig
- /* Overloaded methods for Python 3 compatibility
+@@ -659,7 +661,11 @@
+ /* Overloaded methods for Python 3 compatibility
* (Also useful in Python 2.x)
*/
--Sequence* __getitem__(PySliceObject *slice) throw (std::out_of_range) {
++#if NO_PYSLICE
+Sequence* __getitem__(PyObject *slice) throw (std::out_of_range) {
++#else
+ Sequence* __getitem__(PySliceObject *slice) throw (std::out_of_range) {
++#endif
Py_ssize_t i, j, step;
if( !PySlice_Check(slice) ) {
SWIG_Error(SWIG_TypeError, Slice object expected.);
-@@ -670,7 +662,7 @@ namespace swig
+@@ -669,7 +675,11 @@
return swig::getslice(self, i, j);
}
-
--void __setitem__(PySliceObject *slice, const Sequence v)
+
++#if NO_PYSLICE
+void __setitem__(PyObject *slice, const Sequence v)
++#else
+ void __setitem__(PySliceObject *slice, const Sequence v)
++#endif
throw (std::out_of_range, std::invalid_argument) {
Py_ssize_t i, j, step;
if( !PySlice_Check(slice) ) {
-@@ -681,7 +673,7 @@ namespace swig
+@@ -680,7 +690,11 @@
swig::setslice(self, i, j, v);
}
-
--void __delitem__(PySliceObject *slice)
+
++#if NO_PYSLICE
+void __delitem__(PyObject *slice)
++#else
+ void __delitem__(PySliceObject *slice)
++#endif
throw (std::out_of_range) {
Py_ssize_t i, j, step;
if( !PySlice_Check(slice) ) {
+diff -Naur swig-2.0.2.ori/Source/Modules/python.cxx
swig-2.0.2/Source/Modules/python.cxx
+--- swig-2.0.2.ori/Source/Modules/python.cxx 2011-02-20 08:47:14.0
-0500
swig-2.0.2/Source/Modules/python.cxx 2011-03-16 20:40:01.22338
-0400
+@@ -440,6 +440,7 @@
+ if (py3) {
+ /* force disable features that not compatible with Python 3.x */
+ classic = 0;
++Preprocessor_define((DOH *) NO_PYSLICE 1, 0);
+ }
+