Hello community, here is the log from the commit of package swig for openSUSE:Factory checked in at Wed May 18 10:30:32 CEST 2011.
-------- --- swig/swig.changes 2010-04-06 15:39:55.000000000 +0200 +++ /mounts/work_src_done/STABLE/swig/swig.changes 2011-05-02 18:01:34.000000000 +0200 @@ -1,0 +2,22 @@ +Mon May 2 15:36:04 UTC 2011 - [email protected] + +- Update to swig 2.0.3 + * Much better nested class/struct support. + * Much improved template partial specialization and explicit + specialization handling. + * Namespace support improved with the 'nspace' feature where + namespaces can be automatically translated into Java packages or C# namespaces. + * Improved typemap and symbol table debugging. + * Numerous subtle typemap matching rule changes when using the + default (SWIGTYPE) type. These now work much like C++ class template + partial specialization matching. + * Other small enhancements for typemaps. + Typemap fragments are also now official and documented. + * Warning and error display refinements. + * Wrapping of shared_ptr is improved and documented now. + * Numerous C++ unary scope operator (::) fixes. + * Better support for boolean expressions. + * Various bug fixes and improvements in the Allegrocl, C#, Java, + Lua, Octave, PHP, Python, R, Ruby and XML modules. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- swig-1.3.36-perl-long-long.patch swig-1.3.40.tar.bz2 swig-fixassert.diff New: ---- swig-2.0.3-disable-broken-tests.patch swig-2.0.3-support-python32.patch swig-2.0.3-use-python-capsule-api.patch swig-2.0.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ swig.spec ++++++ --- /var/tmp/diff_new_pack.bkGkWs/_old 2011-05-18 10:28:21.000000000 +0200 +++ /var/tmp/diff_new_pack.bkGkWs/_new 2011-05-18 10:28:21.000000000 +0200 @@ -1,7 +1,7 @@ # -# spec file for package swig (Version 1.3.40) +# spec file for package swig # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,17 +15,20 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild Name: swig -BuildRequires: boost-devel gcc-c++ python-devel -BuildRequires: perl python-devel +BuildRequires: boost-devel +BuildRequires: gcc-c++ +BuildRequires: pcre-devel +BuildRequires: perl +BuildRequires: python-devel %if 0%{?rhel_version} > 0 BuildRequires: -vim %endif %if 0%{?fedora} + 0%{?rhel_version} > 0 -BuildRequires: pkgconfig ruby-devel +BuildRequires: pkgconfig +BuildRequires: ruby-devel %if 0%{?rhel_version} == 0 BuildRequires: perl-devel %endif @@ -36,24 +39,28 @@ %endif # SLE9 %if 0%{?suse_version} < 920 -BuildRequires: pkgconfig ruby +BuildRequires: pkgconfig +BuildRequires: ruby %else +BuildRequires: pkg-config # SLE10 and up BuildRequires: ruby-devel -BuildRequires: pkg-config %endif %endif +Version: 2.0.3 +Release: 1 +License: GPLv3+ and BSD +Summary: Simplified Wrapper and Interface Generator Url: http://www.swig.org -License: BSD3c Group: Development/Languages/C and C++ -AutoReqProv: on -Summary: Simplified Wrapper and Interface Generator -Version: 1.3.40 -Release: 3 Source: swig-%{version}.tar.bz2 -Patch1: swig-1.3.36-perl-long-long.patch -Patch2: swig-fixassert.diff -Patch3: adapt-perl512.diff +Patch1: adapt-perl512.diff +# PATCH-FIX-UPSTREAM swig-2.0.3-disable-broken-tests.patch [email protected] -- Disable broken tests +Patch2: swig-2.0.3-disable-broken-tests.patch +# PATCH-FIX-UPSTREAM swig-2.0.3-use-python-capsule-api.patch [email protected] -- Use Python capsule api +Patch3: swig-2.0.3-use-python-capsule-api.patch +# PATCH-FIX-UPSTREAM swig-2.0.3-support-python32.patch [email protected] -- Support Python 3.2 +Patch4: swig-2.0.3-support-python32.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -66,13 +73,6 @@ documentation generation, module and library management, extensive customization options, and more. - - -Authors: --------- - Dave Beazley <[email protected]> - William S Fulton <[email protected]> - %package doc License: BSD3c Summary: SWIG Manual @@ -94,12 +94,6 @@ This package contains the SWIG manual. - - -Authors: --------- - Dave Beazley <[email protected]> - %package examples License: BSD3c Summary: SWIG example files @@ -119,54 +113,45 @@ This package contains SWIG examples, useful both for testing and understandig SWIG usage. - - -Authors: --------- - Dave Beazley <[email protected]> - %prep %setup -q -%patch1 +%patch1 -p1 %patch2 %patch3 -p1 +%patch4 -p1 %build -v1=$(awk '/^# Generated by GNU Autoconf / { print $6; exit; }' configure) -v2=$(autoconf -V | awk '/autoconf \(GNU Autoconf\)/ {print $4; exit}') -old=$(perl -e "print ($v1 <= $v2);") -if test "x$old" = "x1"; then - ./autogen.sh -fi -export CCSHARED="-fPIC -fno-strict-aliasing $RPM_OPT_FLAGS" -export CFLAGS="$RPM_OPT_FLAGS" -export CXXFLAGS="$RPM_OPT_FLAGS" -./configure \ - --prefix=/usr \ - --libdir=%{_libdir} \ - --disable-ccache -make %{?jobs:-j%jobs} +./autogen.sh +%configure --disable-ccache +make %{?_smp_mflags} + +%check +# This test is buggy on x86-64 +rm -f Examples/test-suite/python/li_boost_shared_ptr_runme.py make check %install -make install DESTDIR=$RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT%{_docdir}/%{name} -cp -a FUTURE TODO NEW ANNOUNCE CHANGES* LICENSE README Doc/{Devel,Manual} \ - $RPM_BUILD_ROOT%{_docdir}/%{name}/ -install -d $RPM_BUILD_ROOT%{_libdir}/swig -cp -a Examples $RPM_BUILD_ROOT%_libdir/swig/examples +%make_install + +install -d %{buildroot}%{_docdir}/%{name} +cp -a TODO ANNOUNCE CHANGES* LICENSE README Doc/{Devel,Manual} \ + %{buildroot}%{_docdir}/%{name}/ +install -d %{buildroot}%{_libdir}/swig +cp -a Examples %{buildroot}%{_libdir}/swig/examples + # rm files that are not needed for runnig or rebuilding the examples -find $RPM_BUILD_ROOT%_libdir/swig \ +find %{buildroot}%{_libdir}/swig \ -name '*.dsp' -o -name '*.vcproj' -o -name '*.sln' -o \ -name '*.o' -o -name '*_wrap.c' | xargs rm + # fix perms -chmod -x $RPM_BUILD_ROOT%_docdir/%name/Manual/* -find $RPM_BUILD_ROOT%_libdir/swig -name '*.h' -perm +111 | \ +chmod -x %{buildroot}%_docdir/%{name}/Manual/* +find %{buildroot}%{_libdir}/swig -name '*.h' -perm +111 | \ xargs --no-run-if-empty chmod -x -ln -s %_libdir/swig/examples $RPM_BUILD_ROOT%_docdir/%name/Examples +ln -s %{_libdir}/swig/examples %{buildroot}%_docdir/%{name}/Examples %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} %files %defattr(644,root,root,755) ++++++ swig-2.0.3-disable-broken-tests.patch ++++++ --- Examples/test-suite/python/Makefile.in 2010-07-22 18:59:08.000000000 +0200 +++ Examples/test-suite/python/Makefile.in 2011-05-03 12:29:40.193936593 +0200 @@ -53,9 +53,7 @@ li_std_pair_extra \ li_std_set \ li_std_stream \ - li_std_string_extra \ li_std_wstream \ - li_std_wstring \ primitive_types \ python_abstractbase \ python_kwargs \ --- Examples/test-suite/common.mk 2011-03-09 23:31:08.000000000 +0100 +++ Examples/test-suite/common.mk 2011-05-03 12:31:23.644936552 +0200 @@ -393,7 +393,6 @@ template_virtual \ template_whitespace \ threads \ - threads_exception \ throw_exception \ typedef_array_member \ typedef_class \ ++++++ swig-2.0.3-support-python32.patch ++++++ diff -up swig-2.0.3/Lib/python/pycontainer.swg.rh666429 swig-2.0.3/Lib/python/pycontainer.swg --- swig-2.0.3/Lib/python/pycontainer.swg.rh666429 2010-10-19 08:31:31.000000000 +0200 +++ swig-2.0.3/Lib/python/pycontainer.swg 2011-04-22 15:42:42.185982189 +0200 @@ -630,6 +630,7 @@ namespace swig return x; } +#if !NO_PYSLICE /* typemap for slice object support */ %typemap(in) PySliceObject* { $1 = (PySliceObject *) $input; @@ -637,6 +638,7 @@ namespace swig %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); @@ -659,7 +661,11 @@ namespace swig /* Overloaded methods for Python 3 compatibility * (Also useful in Python 2.x) */ +#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."); @@ -668,8 +674,11 @@ namespace swig PySlice_GetIndices(slice, self->size(), &i, &j, &step); return swig::getslice(self, i, j); } - +#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) ) { @@ -680,7 +689,11 @@ namespace swig swig::setslice(self, i, j, v); } +#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 -up swig-2.0.3/Source/Modules/python.cxx.rh666429 swig-2.0.3/Source/Modules/python.cxx --- swig-2.0.3/Source/Modules/python.cxx.rh666429 2011-03-14 08:22:08.000000000 +0100 +++ swig-2.0.3/Source/Modules/python.cxx 2011-04-22 15:43:45.122661120 +0200 @@ -438,6 +438,7 @@ public: if (py3) { /* force disable features that not compatible with Python 3.x */ classic = 0; + Preprocessor_define((DOH *) "NO_PYSLICE 1", 0); } if (cppcast) { ++++++ swig-2.0.3-use-python-capsule-api.patch ++++++ diff -up swig-2.0.0/Lib/python/pyrun.swg.rh623854 swig-2.0.0/Lib/python/pyrun.swg --- swig-2.0.0/Lib/python/pyrun.swg.rh623854 2010-02-28 00:26:02.000000000 +0100 +++ swig-2.0.0/Lib/python/pyrun.swg 2010-08-17 16:32:16.581604656 +0200 @@ -45,8 +45,18 @@ #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) -#define SWIG_fail goto fail +#define SWIG_fail goto fail +/* + * Python 2.7 and newer and Python 3.1 and newer should use Capsules API instead of + * CObjects API. + */ +#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \ + (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0)) +#define USE_CAPSULES +#define TYPE_POINTER_NAME \ + ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME) +#endif /* Runtime API implementation */ @@ -1356,8 +1366,12 @@ SWIG_Python_GetModule(void) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else +#ifdef USE_CAPSULES + type_pointer = PyCapsule_Import(TYPE_POINTER_NAME, 0); +#else type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); +#endif if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; @@ -1402,9 +1416,14 @@ PyModule_AddObject(PyObject *m, char *na SWIGRUNTIME void SWIG_Python_DestroyModule(void *vptr) { + size_t i; +#ifdef USE_CAPSULES + swig_module_info *swig_module = + (swig_module_info *) PyCapsule_GetPointer((PyObject *)vptr, TYPE_POINTER_NAME); +#else swig_module_info *swig_module = (swig_module_info *) vptr; +#endif swig_type_info **types = swig_module->types; - size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { @@ -1426,9 +1445,18 @@ SWIG_Python_SetModule(swig_module_info * PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); #endif +#ifdef USE_CAPSULES + PyObject *pointer = PyCapsule_New((void *)swig_module, TYPE_POINTER_NAME, + (PyCapsule_Destructor)SWIG_Python_DestroyModule); +#else PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); +#endif if (pointer && module) { +#ifdef USE_CAPSULES + PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer); +#else PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); +#endif } else { Py_XDECREF(pointer); } @@ -1449,12 +1477,20 @@ SWIG_Python_TypeQuery(const char *type) PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { +#ifdef USE_CAPSULES + descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, type); +#else descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); +#endif } else { swig_module_info *swig_module = SWIG_Python_GetModule(); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { +#ifdef USE_CAPSULES + obj = PyCapsule_New(descriptor, type, NULL); +#else obj = PyCObject_FromVoidPtr(descriptor, NULL); +#endif PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } ++++++ swig-1.3.40.tar.bz2 -> swig-2.0.3.tar.bz2 ++++++ ++++ 174499 lines of diff (skipped) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
