diff --git a/dev-lang/swig/Manifest b/dev-lang/swig/Manifest new file mode 100644 index 0000000..15d7338 --- /dev/null +++ b/dev-lang/swig/Manifest @@ -0,0 +1 @@ +DIST swig-2.0.7.tar.gz 5281076 SHA256 ac1f29be405d78b3848c8ba76add2deffc2cdc166c9a1773eda7972ba3898967 SHA512 cfb36dcd16f144d32782806f303979ef69ed0ad6a16ec9bcfdf9513a048f928e8509268a0cb39a80e9b602f74f0c404ba9fe448d57e21eb8871f9756fd278250 WHIRLPOOL e5d7783e1500e55078b52782556353b477edf45702f32ce1da978c70daa499d25cb5aa7ac19fd1c954094280439845836fb3bf85b8b91c7564834bd2b1106946 diff --git a/dev-lang/swig/files/swig-2.0.7-illegal-destructors-warning.patch b/dev-lang/swig/files/swig-2.0.7-illegal-destructors-warning.patch new file mode 100644 index 0000000..c4fc0e2 --- /dev/null +++ b/dev-lang/swig/files/swig-2.0.7-illegal-destructors-warning.patch @@ -0,0 +1,66 @@ +Index: Source/Modules/lang.cxx +=================================================================== +--- Source/Modules/lang.cxx (revision 13127) ++++ Source/Modules/lang.cxx (revision 13128) +@@ -2623,7 +2623,7 @@ + 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 @@ + } + + 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; +Index: Examples/test-suite/errors/expected.log +=================================================================== +--- Examples/test-suite/errors/expected.log (revision 13127) ++++ Examples/test-suite/errors/expected.log (revision 13128) +@@ -227,17 +227,17 @@ + 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_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. diff --git a/dev-lang/swig/files/swig-2.0.7-python-znc.patch b/dev-lang/swig/files/swig-2.0.7-python-znc.patch new file mode 100644 index 0000000..f5e3c19 --- /dev/null +++ b/dev-lang/swig/files/swig-2.0.7-python-znc.patch @@ -0,0 +1,34 @@ +Index: Lib/python/std_set.i +=================================================================== +--- Lib/python/std_set.i (revision 13476) ++++ Lib/python/std_set.i (working copy) +@@ -49,6 +49,14 @@ + return *(swig::cgetpos(self, i)); + } + ++ void add(value_type x) { ++ self->insert(x); ++ } ++ ++ void discard(value_type x) { ++ self->erase(x); ++ } ++ + }; + %enddef + +Index: Lib/python/pyrun.swg +=================================================================== +--- Lib/python/pyrun.swg (revision 13476) ++++ Lib/python/pyrun.swg (working copy) +@@ -1331,6 +1331,9 @@ + } else { + #if PY_VERSION_HEX >= 0x03000000 + inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); ++ if (PyErr_Occurred()) { ++ PyErr_Print(); ++ } + PyObject_SetAttr(inst, SWIG_This(), swig_this); + Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; + #else + diff --git a/dev-lang/swig/files/swig-2.0.7-python3.patch b/dev-lang/swig/files/swig-2.0.7-python3.patch new file mode 100644 index 0000000..1c7727a --- /dev/null +++ b/dev-lang/swig/files/swig-2.0.7-python3.patch @@ -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 + + +--- 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/dev-lang/swig/swig-2.0.7-r3.ebuild b/dev-lang/swig/swig-2.0.7-r3.ebuild new file mode 100644 index 0000000..45566a4 --- /dev/null +++ b/dev-lang/swig/swig-2.0.7-r3.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=4 + +inherit eutils + +DESCRIPTION="Simplified Wrapper and Interface Generator" +HOMEPAGE="http://www.swig.org/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="GPL-3 as-is" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="ccache doc pcre" +RESTRICT="test" + +DEPEND="pcre? ( dev-libs/libpcre ) + ccache? ( sys-libs/zlib )" +RDEPEND="${DEPEND}" + +DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO ) + +src_prepare() { + # bug 417823 + epatch "${FILESDIR}"/${PN}-2.0.7-illegal-destructors-warning.patch + # bug 426428 + epatch "${FILESDIR}"/${P}-python3.patch + # znc + epatch "${FILESDIR}"/${PN}-2.0.7-python-znc.patch +} + +src_configure() { + econf \ + $(use_enable ccache) \ + $(use_with pcre) +} + +src_install() { + default + if use doc; then + dohtml -r Doc/{Devel,Manual} + fi +}