From 68988b0cc1a1b3e8d412f9a1b020732f7abf49f0 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 7 Aug 2012 15:50:31 -0500
Subject: swig 2.0.7

---
 abs/extra/swig/PKGBUILD              | 35 ++++++++++-------
 abs/extra/swig/pyint_fromsize_t.diff | 18 +++++++++
 abs/extra/swig/upstream_r13128.diff  | 73 ++++++++++++++++++++++++++++++++++++
 3 files changed, 113 insertions(+), 13 deletions(-)
 create mode 100644 abs/extra/swig/pyint_fromsize_t.diff
 create mode 100644 abs/extra/swig/upstream_r13128.diff

diff --git a/abs/extra/swig/PKGBUILD b/abs/extra/swig/PKGBUILD
index bfe0512..e7f9994 100644
--- a/abs/extra/swig/PKGBUILD
+++ b/abs/extra/swig/PKGBUILD
@@ -1,29 +1,38 @@
-# $Id: PKGBUILD 94475 2010-10-07 11:10:49Z stephane $
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# $Id: PKGBUILD 163234 2012-07-11 16:22:59Z stephane $
 # Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 
 pkgname=swig
-pkgver=2.0.1
-pkgrel=1
+pkgver=2.0.7
+pkgrel=2
 pkgdesc="Generate scripting interfaces to C/C++ code"
 arch=('i686' 'x86_64')
 url="http://www.swig.org/"
 license=('custom')
-depends=('gcc-libs' 'zlib')
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-sha1sums=('da5a1e396597be683a62d349d71802c33fb0f644')
+depends=('zlib' 'pcre')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+        pyint_fromsize_t.diff
+        upstream_r13128.diff)
+sha1sums=('307020fb6437092e32c9c1bd9af8bccb1645b529'
+          '59ee179b57920d255c58afe45632b896e40b5b7d'
+          '8f0c5ae6a46c22606cc88c649bfd0a31f061a963')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
+
+  # FS#30624
+  patch -Np1 -i ../pyint_fromsize_t.diff
+
+  # Fix call to Swig_name_decl
+  patch -Np1 -i ../upstream_r13128.diff
+
   ./configure --prefix=/usr
-  make || return 1
+  make
 }
 
 package() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  make DESTDIR="${pkgdir}" install || return 1
-  install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-  install -D -m644 LICENSE-UNIVERSITIES "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-UNIVERSITIES"
+  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
 }
-
-# vim: set noexpandtab tabstop=8 shiftwidth=8 textwidth=132 autoindent
diff --git a/abs/extra/swig/pyint_fromsize_t.diff b/abs/extra/swig/pyint_fromsize_t.diff
new file mode 100644
index 0000000..1c7727a
--- /dev/null
+++ b/abs/extra/swig/pyint_fromsize_t.diff
@@ -0,0 +1,18 @@
+Description: Py3k: Map PyInt_FromSize_t to PyLong_FromSize_t
+ The latest SWIG version introduced a usage of PyInt_FromSize_t, but
+ does not define a compatibility macro for Python 3k as for the other
+ PyInt_... functions. This patch adds that macro.
+
+Author: Torsten Landschoff <torsten@debian.org>
+
+
+--- swig2.0-2.0.7.orig/Lib/python/pyhead.swg
++++ swig2.0-2.0.7/Lib/python/pyhead.swg
+@@ -5,6 +5,7 @@
+ #define PyInt_Check(x) PyLong_Check(x)
+ #define PyInt_AsLong(x) PyLong_AsLong(x)
+ #define PyInt_FromLong(x) PyLong_FromLong(x)
++#define PyInt_FromSize_t(x) PyLong_FromSize_t(x)
+ #define PyString_Check(name) PyBytes_Check(name)
+ #define PyString_FromString(x) PyUnicode_FromString(x)
+ #define PyString_Format(fmt, args)  PyUnicode_Format(fmt, args)
diff --git a/abs/extra/swig/upstream_r13128.diff b/abs/extra/swig/upstream_r13128.diff
new file mode 100644
index 0000000..d7d74d7
--- /dev/null
+++ b/abs/extra/swig/upstream_r13128.diff
@@ -0,0 +1,73 @@
+From: Klaus Kämpf <kkaempf@suse.de>
+Subject: Fix call to Swig_name_decl (upstream ID 3530078)
+
+Origin: upstream, http://swig.svn.sourceforge.net/viewvc/swig?view=revision&revision=13128
+Bug: http://sourceforge.net/tracker/?func=detail&aid=3530078&group_id=1645&atid=101645
+Bug-Debian: http://bugs.debian.org/675196
+---
+ Examples/test-suite/errors/expected.log |   26 +++++++++++++-------------
+ Source/Modules/lang.cxx                 |    4 ++--
+ 2 files changed, 15 insertions(+), 15 deletions(-)
+
+--- a/Source/Modules/lang.cxx
++++ b/Source/Modules/lang.cxx
+@@ -2623,7 +2623,7 @@ int Language::constructorDeclaration(Nod
+ 	  Delete(expected_name_resolved);
+ 	}
+ 	if (illegal_name) {
+-	  Swig_warning(WARN_LANG_RETURN_TYPE, input_file, line_number, "Function %s must have a return type. Ignored.\n", Swig_name_decl(name));
++	  Swig_warning(WARN_LANG_RETURN_TYPE, input_file, line_number, "Function %s must have a return type. Ignored.\n", Swig_name_decl(n));
+ 	  Swig_restore(n);
+ 	  return SWIG_NOWRAP;
+ 	}
+@@ -2760,7 +2760,7 @@ int Language::destructorDeclaration(Node
+     }
+ 
+     if (illegal_name) {
+-      Swig_warning(WARN_LANG_ILLEGAL_DESTRUCTOR, input_file, line_number, "Illegal destructor name %s. Ignored.\n", Swig_name_decl(name));
++      Swig_warning(WARN_LANG_ILLEGAL_DESTRUCTOR, input_file, line_number, "Illegal destructor name %s. Ignored.\n", Swig_name_decl(n));
+       Swig_restore(n);
+       Delete(expected_name);
+       return SWIG_NOWRAP;
+--- a/Examples/test-suite/errors/expected.log
++++ b/Examples/test-suite/errors/expected.log
+@@ -227,17 +227,17 @@ cpp_extend_destructors.i:87: Warning 302
+ cpp_extend_destructors.i:85: Warning 302: previous definition of '~JStruct'.
+ cpp_extend_destructors.i:100: Warning 302: Identifier '~LStruct' redefined (ignored),
+ cpp_extend_destructors.i:98: Warning 302: previous definition of '~LStruct'.
+-cpp_extend_destructors.i:24: Warning 521: Illegal destructor name ~NOT_CStruct. Ignored.
+-cpp_extend_destructors.i:30: Warning 521: Illegal destructor name ~NOT_DStruct. Ignored.
+-cpp_extend_destructors.i:44: Warning 521: Illegal destructor name ~NOT_EStruct. Ignored.
+-cpp_extend_destructors.i:50: Warning 521: Illegal destructor name ~NOT_FStruct. Ignored.
+-cpp_extend_destructors.i:65: Warning 521: Illegal destructor name ~NOT_GStruct. Ignored.
+-cpp_extend_destructors.i:72: Warning 521: Illegal destructor name ~NOT_HStruct. Ignored.
+-cpp_extend_destructors.i:81: Warning 521: Illegal destructor name ~NOT_IStruct. Ignored.
+-cpp_extend_destructors.i:86: Warning 521: Illegal destructor name ~NOT_JStruct. Ignored.
+-cpp_extend_destructors.i:92: Warning 521: Illegal destructor name ~NOT_KStruct. Ignored.
+-cpp_extend_destructors.i:99: Warning 521: Illegal destructor name ~NOT_LStruct< int >. Ignored.
+-cpp_extend_destructors.i:99: Warning 521: Illegal destructor name ~NOT_LStruct< short >. Ignored.
++cpp_extend_destructors.i:24: Warning 521: Illegal destructor name CStruct::~NOT_CStruct(). Ignored.
++cpp_extend_destructors.i:30: Warning 521: Illegal destructor name DStruct::~NOT_DStruct(). Ignored.
++cpp_extend_destructors.i:44: Warning 521: Illegal destructor name EStruct::~NOT_EStruct(). Ignored.
++cpp_extend_destructors.i:50: Warning 521: Illegal destructor name FStruct::~NOT_FStruct(). Ignored.
++cpp_extend_destructors.i:65: Warning 521: Illegal destructor name GStruct::~NOT_GStruct(). Ignored.
++cpp_extend_destructors.i:72: Warning 521: Illegal destructor name HStruct::~NOT_HStruct(). Ignored.
++cpp_extend_destructors.i:81: Warning 521: Illegal destructor name IStruct::~NOT_IStruct(). Ignored.
++cpp_extend_destructors.i:86: Warning 521: Illegal destructor name JStruct::~NOT_JStruct(). Ignored.
++cpp_extend_destructors.i:92: Warning 521: Illegal destructor name KStruct::~NOT_KStruct(). Ignored.
++cpp_extend_destructors.i:99: Warning 521: Illegal destructor name LStruct< int >::~NOT_LStruct(). Ignored.
++cpp_extend_destructors.i:99: Warning 521: Illegal destructor name LStruct< short >::~NOT_LStruct(). Ignored.
+ 
+ :::::::::::::::::::::::::::::::: cpp_extend_redefine.i :::::::::::::::::::::::::::::::::::
+ cpp_extend_redefine.i:9: Warning 302: Identifier 'bar' redefined by %extend (ignored),
+@@ -312,8 +312,8 @@ cpp_nested.i:12: Warning 325: Nested cla
+ cpp_no_access.i:3: Warning 319: No access specifier given for base class 'foo' (ignored).
+ 
+ :::::::::::::::::::::::::::::::: cpp_no_return_type.i :::::::::::::::::::::::::::::::::::
+-cpp_no_return_type.i:6: Warning 504: Function R must have a return type. Ignored.
+-cpp_no_return_type.i:10: Warning 504: Function UU must have a return type. Ignored.
++cpp_no_return_type.i:6: Warning 504: Function S::R() must have a return type. Ignored.
++cpp_no_return_type.i:10: Warning 504: Function U::UU() must have a return type. Ignored.
+ 
+ :::::::::::::::::::::::::::::::: cpp_nobase.i :::::::::::::::::::::::::::::::::::
+ cpp_nobase.i:3: Warning 401: Nothing known about base class 'Bar'. Ignored.
-- 
cgit v0.12