diff --git a/.gitignore b/.gitignore index 2cb3ffe..069d38e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ swig-2.0.0.tar.gz /swig-2.0.1.tar.gz /swig-2.0.2.tar.gz +/swig-2.0.3.tar.gz diff --git a/sources b/sources index 319fa8d..444aca8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -eaf619a4169886923e5f828349504a29 swig-2.0.2.tar.gz +e548ea3882b994c4907d6be86bef90f2 swig-2.0.3.tar.gz diff --git a/swig.spec b/swig.spec index 11d55d1..462233b 100644 --- a/swig.spec +++ b/swig.spec @@ -3,8 +3,8 @@ Summary: Connects C/C++/Objective C to some high-level programming languages Name: swig -Version: 2.0.2 -Release: 2%{?dist} +Version: 2.0.3 +Release: 1%{?dist} License: GPLv3+ and BSD Group: Development/Tools URL: http://swig.sourceforge.net/ @@ -12,7 +12,6 @@ Source: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig- Patch1: swig-1.3.23-pylib.patch Patch2: swig200-rh623854.patch Patch3: swig200-rh666429.patch -Patch4: swig202-rh691513.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl, python-devel, pcre-devel @@ -47,7 +46,6 @@ This package contains documentation for SWIG and useful examples %patch1 -p1 -b .pylib %patch2 -p1 -b .rh623854 %patch3 -p1 -b .rh666429 -%patch4 -p1 -b .rh691513 # as written on https://fedoraproject.org/wiki/Packaging_talk:Perl, section 2 # (specific req/prov filtering). Before you remove this hack make sure you don't @@ -119,6 +117,10 @@ rm -rf %{buildroot} %doc Doc Examples LICENSE LICENSE-GPL LICENSE-UNIVERSITIES COPYRIGHT %changelog +* Fri Apr 22 2011 Adam Tkac 2.0.3-1 +- update to 2.0.3 +- swig202-rh691513.patch merged + * Tue Mar 29 2011 Adam Tkac 2.0.2-2 - bacport fix for preprocessor regression (#691513) diff --git a/swig200-rh666429.patch b/swig200-rh666429.patch index 31dbe7f..c4ca3f1 100644 --- a/swig200-rh666429.patch +++ b/swig200-rh666429.patch @@ -1,7 +1,7 @@ -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 2011-02-16 12:25:19.277091696 +0100 -+++ swig-2.0.1/Lib/python/pycontainer.swg 2011-02-16 12:48:43.273926091 +0100 -@@ -631,6 +631,7 @@ namespace swig +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; } @@ -9,7 +9,7 @@ diff -up swig-2.0.1/Lib/python/pycontainer.swg.rh666429 swig-2.0.1/Lib/python/py /* typemap for slice object support */ %typemap(in) PySliceObject* { $1 = (PySliceObject *) $input; -@@ -638,6 +639,7 @@ namespace swig +@@ -637,6 +638,7 @@ namespace swig %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) PySliceObject* { $1 = PySlice_Check($input); } @@ -17,7 +17,7 @@ diff -up swig-2.0.1/Lib/python/pycontainer.swg.rh666429 swig-2.0.1/Lib/python/py Sequence* __getslice__(difference_type i, difference_type j) throw (std::out_of_range) { return swig::getslice(self, i, j); -@@ -660,7 +662,11 @@ namespace swig +@@ -659,7 +661,11 @@ namespace swig /* Overloaded methods for Python 3 compatibility * (Also useful in Python 2.x) */ @@ -29,7 +29,7 @@ diff -up swig-2.0.1/Lib/python/pycontainer.swg.rh666429 swig-2.0.1/Lib/python/py Py_ssize_t i, j, step; if( !PySlice_Check(slice) ) { SWIG_Error(SWIG_TypeError, "Slice object expected."); -@@ -669,8 +675,11 @@ namespace swig +@@ -668,8 +674,11 @@ namespace swig PySlice_GetIndices(slice, self->size(), &i, &j, &step); return swig::getslice(self, i, j); } @@ -42,7 +42,7 @@ diff -up swig-2.0.1/Lib/python/pycontainer.swg.rh666429 swig-2.0.1/Lib/python/py throw (std::out_of_range, std::invalid_argument) { Py_ssize_t i, j, step; if( !PySlice_Check(slice) ) { -@@ -681,7 +690,11 @@ namespace swig +@@ -680,7 +689,11 @@ namespace swig swig::setslice(self, i, j, v); } @@ -54,14 +54,14 @@ diff -up swig-2.0.1/Lib/python/pycontainer.swg.rh666429 swig-2.0.1/Lib/python/py throw (std::out_of_range) { Py_ssize_t i, j, step; if( !PySlice_Check(slice) ) { -diff -up swig-2.0.1/Source/Modules/python.cxx.rh666429 swig-2.0.1/Source/Modules/python.cxx ---- swig-2.0.1/Source/Modules/python.cxx.rh666429 2011-02-16 12:20:37.557740471 +0100 -+++ swig-2.0.1/Source/Modules/python.cxx 2011-02-16 12:46:29.034224445 +0100 -@@ -440,6 +440,7 @@ public: +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); + /* force disable features that not compatible with Python 3.x */ + classic = 0; ++ Preprocessor_define((DOH *) "NO_PYSLICE 1", 0); } if (cppcast) { diff --git a/swig202-rh691513.patch b/swig202-rh691513.patch deleted file mode 100644 index 4b97f21..0000000 --- a/swig202-rh691513.patch +++ /dev/null @@ -1,212 +0,0 @@ -From 8f0beedbee985a73dc01e2f430311a69c8cebbd0 Mon Sep 17 00:00:00 2001 -From: wsfulton -Date: Thu, 17 Mar 2011 07:33:05 +0000 -Subject: [PATCH] Fix regression introduced in swig-2.0.2 where filenames with spaces were not found when used with %include and %import - -git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12546 626c5289-ae23-0410-ae9c-e8d60b6d4f22 - -Signed-off-by: Adam Tkac ---- - CHANGES.current | 4 ++ - Examples/test-suite/preproc_include.i | 19 +++++++++ - Examples/test-suite/preproc_include_d withspace.h | 3 + - Examples/test-suite/preproc_include_e withspace.h | 3 + - Examples/test-suite/preproc_include_f withspace.h | 3 + - Examples/test-suite/preproc_include_g.h | 3 + - .../test-suite/python/preproc_include_runme.py | 12 ++++++ - Source/Preprocessor/cpp.c | 41 ++++++++++--------- - 8 files changed, 69 insertions(+), 19 deletions(-) - create mode 100644 Examples/test-suite/preproc_include_d withspace.h - create mode 100644 Examples/test-suite/preproc_include_e withspace.h - create mode 100644 Examples/test-suite/preproc_include_f withspace.h - create mode 100644 Examples/test-suite/preproc_include_g.h - -diff --git a/Examples/test-suite/preproc_include.i b/Examples/test-suite/preproc_include.i -index c6b08b5..86c5f71 100644 ---- a/Examples/test-suite/preproc_include.i -+++ b/Examples/test-suite/preproc_include.i -@@ -6,6 +6,8 @@ - int multiply10(int a) { return a*10; } - int multiply20(int a) { return a*20; } - int multiply30(int a) { return a*30; } -+int multiply40(int a) { return a*40; } -+int multiply50(int a) { return a*50; } - %} - - #define INCLUDE_B preproc_include_b.h -@@ -16,3 +18,20 @@ int multiply30(int a) { return a*30; } - // Note that this test uses -includeall, so including preproc_include_b.h also includes preproc_include_c.h - %include INCLUDE_B - -+%include"preproc_include_d withspace.h" -+ -+#define INCLUDE_E "preproc_include_e withspace.h" -+ -+%include INCLUDE_E -+ -+%inline %{ -+#define INCLUDE_F /*comments*/ "preproc_include_f withspace.h"/*testing*/ -+#include INCLUDE_F -+#include /*oooo*/"preproc_include_g.h"/*ahhh*/ -+%} -+ -+%{ -+int multiply60(int a) { return a*60; } -+int multiply70(int a) { return a*70; } -+%} -+ -diff --git a/Examples/test-suite/preproc_include_d withspace.h b/Examples/test-suite/preproc_include_d withspace.h -new file mode 100644 -index 0000000..142ddd5 ---- /dev/null -+++ b/Examples/test-suite/preproc_include_d withspace.h -@@ -0,0 +1,3 @@ -+ -+int multiply40(int a); -+ -diff --git a/Examples/test-suite/preproc_include_e withspace.h b/Examples/test-suite/preproc_include_e withspace.h -new file mode 100644 -index 0000000..d749765 ---- /dev/null -+++ b/Examples/test-suite/preproc_include_e withspace.h -@@ -0,0 +1,3 @@ -+ -+int multiply50(int a); -+ -diff --git a/Examples/test-suite/preproc_include_f withspace.h b/Examples/test-suite/preproc_include_f withspace.h -new file mode 100644 -index 0000000..8a39a34 ---- /dev/null -+++ b/Examples/test-suite/preproc_include_f withspace.h -@@ -0,0 +1,3 @@ -+ -+int multiply60(int a); -+ -diff --git a/Examples/test-suite/preproc_include_g.h b/Examples/test-suite/preproc_include_g.h -new file mode 100644 -index 0000000..db4f914 ---- /dev/null -+++ b/Examples/test-suite/preproc_include_g.h -@@ -0,0 +1,3 @@ -+ -+int multiply70(int a); -+ -diff --git a/Examples/test-suite/python/preproc_include_runme.py b/Examples/test-suite/python/preproc_include_runme.py -index e156065..778de3c 100644 ---- a/Examples/test-suite/python/preproc_include_runme.py -+++ b/Examples/test-suite/python/preproc_include_runme.py -@@ -9,3 +9,15 @@ if preproc_include.multiply20(10) != 200: - if preproc_include.multiply30(10) != 300: - raise RuntimeError - -+if preproc_include.multiply40(10) != 400: -+ raise RuntimeError -+ -+if preproc_include.multiply50(10) != 500: -+ raise RuntimeError -+ -+if preproc_include.multiply60(10) != 600: -+ raise RuntimeError -+ -+if preproc_include.multiply70(10) != 700: -+ raise RuntimeError -+ -diff --git a/Source/Preprocessor/cpp.c b/Source/Preprocessor/cpp.c -index 752c95e..8d2346c 100644 ---- a/Source/Preprocessor/cpp.c -+++ b/Source/Preprocessor/cpp.c -@@ -93,8 +93,6 @@ static String *cpp_include(const_String_or_char_ptr fn, int sysfile) { - Setattr(included_files, file, file); - } - if (!s) { -- /* XXX(bhy) may not need the seek */ -- /* Seek(fn, 0, SEEK_SET); */ - if (ignore_missing) { - Swig_warning(WARN_PP_MISSING_FILE, Getfile(fn), Getline(fn), "Unable to find '%s'\n", fn); - } else { -@@ -665,11 +663,30 @@ static String *get_filename(String *str, int *sysfile) { - while (((c = Getc(str)) != EOF) && (c != '>')) - Putc(c, fn); - } else { -+ String *preprocessed_str; - Putc(c, fn); - while (((c = Getc(str)) != EOF) && (!isspace(c))) - Putc(c, fn); - if (isspace(c)) - Ungetc(c, str); -+ preprocessed_str = Preprocessor_replace(fn); -+ Seek(preprocessed_str, 0, SEEK_SET); -+ Delete(fn); -+ -+ fn = NewStringEmpty(); -+ copy_location(preprocessed_str, fn); -+ c = Getc(preprocessed_str); -+ if (c == '\"') { -+ while (((c = Getc(preprocessed_str)) != EOF) && (c != '\"')) -+ Putc(c, fn); -+ } else if (c == '<') { -+ *sysfile = 1; -+ while (((c = Getc(preprocessed_str)) != EOF) && (c != '>')) -+ Putc(c, fn); -+ } else { -+ fn = Copy(preprocessed_str); -+ } -+ Delete(preprocessed_str); - } - Swig_filename_unescape(fn); - Swig_filename_correct(fn); -@@ -1689,14 +1706,12 @@ String *Preprocessor_parse(String *s) { - String *s1, *s2, *fn; - char *dirname; - int sysfile = 0; -- String *filename_processed; - if (include_all && import_all) { - Swig_warning(WARN_PP_INCLUDEALL_IMPORTALL, Getfile(s), Getline(id), "Both includeall and importall are defined: using includeall.\n"); - import_all = 0; - } -- filename_processed = Preprocessor_replace(value); -- Seek(filename_processed, 0, SEEK_SET); -- fn = get_filename(filename_processed, &sysfile); -+ Seek(value, 0, SEEK_SET); -+ fn = get_filename(value, &sysfile); - s1 = cpp_include(fn, sysfile); - if (s1) { - if (include_all) -@@ -1827,8 +1842,6 @@ String *Preprocessor_parse(String *s) { - DOH *s1, *s2, *fn, *opt; - String *options_whitespace = NewStringEmpty(); - String *filename_whitespace = NewStringEmpty(); -- String *filename_unprocessed = NewStringEmpty(); -- String *filename_processed; - int sysfile = 0; - - if (Equal(decl, kpp_dextern)) { -@@ -1840,15 +1853,7 @@ String *Preprocessor_parse(String *s) { - opt = get_options(s); - - skip_whitespace(s, filename_whitespace); -- copy_location(s, filename_unprocessed); -- while (((c = Getc(s)) != EOF) && (!isspace(c))) -- Putc(c, filename_unprocessed); -- if (isspace(c)) -- Ungetc(c, s); -- filename_processed = Preprocessor_replace(filename_unprocessed); -- Seek(filename_processed, 0, SEEK_SET); -- -- fn = get_filename(filename_processed, &sysfile); -+ fn = get_filename(s, &sysfile); - s1 = cpp_include(fn, sysfile); - if (s1) { - char *dirname; -@@ -1878,8 +1883,6 @@ String *Preprocessor_parse(String *s) { - Delete(s1); - } - Delete(fn); -- Delete(filename_processed); -- Delete(filename_unprocessed); - Delete(filename_whitespace); - Delete(options_whitespace); - } --- -1.7.4.2 -