diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..657b4a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/swig-2.0.10.tar.gz diff --git a/.swig.metadata b/.swig.metadata new file mode 100644 index 0000000..500a15f --- /dev/null +++ b/.swig.metadata @@ -0,0 +1 @@ +ad6f95ce9b9da4a8f5b80ac1848d26c76f518d84 SOURCES/swig-2.0.10.tar.gz diff --git a/SOURCES/swig-2.0.10-Fix-x390-build.patch b/SOURCES/swig-2.0.10-Fix-x390-build.patch new file mode 100644 index 0000000..194c4f6 --- /dev/null +++ b/SOURCES/swig-2.0.10-Fix-x390-build.patch @@ -0,0 +1,12 @@ +diff -up swig-2.0.10/configure.ac.orig swig-2.0.10/configure.ac +--- swig-2.0.10/configure.ac.orig 2013-06-05 14:04:47.707542473 +0200 ++++ swig-2.0.10/configure.ac 2013-06-05 14:07:20.338761781 +0200 +@@ -274,6 +274,8 @@ then + then CCSHARED="-fpic" + else CCSHARED="+z" + fi;; ++ s390x*-*-*) CCSHARED="-fpic" ;; ++ s390*-*-*) CCSHARED="-fPIC" ;; + *-*-linux*) CCSHARED="-fpic";; + *-*-freebsd* | *-*-openbsd*) CCSHARED="-fpic";; + *-*-netbsd*) CCSHARED="-fPIC";; diff --git a/SOURCES/swig-2.0.10-Support-octave-3.8.0.patch b/SOURCES/swig-2.0.10-Support-octave-3.8.0.patch new file mode 100644 index 0000000..df80543 --- /dev/null +++ b/SOURCES/swig-2.0.10-Support-octave-3.8.0.patch @@ -0,0 +1,281 @@ +From 5b167cc12daf9ea275c17fedaefc975450613ab2 Mon Sep 17 00:00:00 2001 +From: Karl Wette +Date: Mon, 13 Jan 2014 18:24:17 +1300 +Subject: [PATCH] octave: update support to Octave version 3.8.0 + +--- + CHANGES.current | 26 ++++++++++++ + Doc/Manual/Octave.html | 7 +--- + Lib/octave/octrun.swg | 104 ++++++++++++++++++++++++++++++++++++++-------- + Lib/octave/octruntime.swg | 14 +++---- + 4 files changed, 122 insertions(+), 29 deletions(-) + +SKIP diff --git a/CHANGES.current b/CHANGES.current +SKIP index a4fc5db..c711536 100644 +SKIP --- a/CHANGES.current +SKIP +++ b/CHANGES.current +SKIP @@ -5,6 +5,32 @@ See the RELEASENOTES file for a summary of changes in each release. +SKIP Version 3.0.0 (in progress) +SKIP ============================ +SKIP +SKIP +2014-01-13: kwwette +SKIP + [Octave] update support to Octave version 3.8.0 +SKIP + +SKIP + - Octave 3.8.0 no longer defines OCTAVE_API_VERSION_NUMBER, but 3.8.1 +SKIP + will define OCTAVE_{MAJOR,MINOR,PATCH}_VERSION instead: see +SKIP + http://hg.savannah.gnu.org/hgweb/octave/rev/b6b6e0dc700e +SKIP + So we now use a new macro SWIG_OCTAVE_PREREQ(major,minor,patch) to +SKIP + enable features requiring Octave version major.minor.patch or later. +SKIP + +SKIP + For Octave versions prior to 3.8.1, we reconstruct values for +SKIP + OCTAVE_{MAJOR,MINOR,PATCH}_VERSION based on OCTAVE_API_VERSION_NUMBER, +SKIP + extracted from Octave's ChangeLogs. An additional hack is needed to +SKIP + distinguish between Octave <= 3.2.x and 3.8.0, neither of which define +SKIP + OCTAVE_API_VERSION_NUMBER. +SKIP + +SKIP + - Octave 3.8.0 deprecates symbol_table::varref(), so remove its use +SKIP + for this and future versions of Octave. +SKIP + +SKIP + - Octave 3.8.0 removes octave_value::is_real_nd_array(), used in +SKIP + octave_swig_type::dims(). Its use is not required here, so remove it. +SKIP + +SKIP + - Retested against Octave versions 3.0.5, 3.2.4, 3.4.3, 3.6.4, and 3.8.0. +SKIP + +SKIP + - Updated Octave documentation with tested Octave versions, and added a +SKIP + warning against using versions <= 3.x.x, which are no longer tested. +SKIP + +SKIP 2014-01-11: wsfulton +SKIP Fix and document the naturalvar feature override behaviour - the naturalvar +SKIP feature attached to a variable name has precedence over the naturalvar +diff --git a/Doc/Manual/Octave.html b/Doc/Manual/Octave.html +index 84c0a0f..3e12ce6 100644 +--- a/Doc/Manual/Octave.html ++++ b/Doc/Manual/Octave.html +@@ -59,11 +59,8 @@ + + +

+-The SWIG implemention was first based on Octave 2.9.12, so this is the minimum version required. Testing has only been done on Linux. +-

+- +-

+-As of SWIG 2.0.7, the Octave module has been tested with Octave versions 3.0.5, 3.2.4, 3.4.3, and 3.6.1. ++As of SWIG 3.0.0, the Octave module has been tested with Octave versions 3.0.5, 3.2.4, 3.4.3, 3.6.4, and 3.8.0. ++Use of Octave versions older than 3.x.x is not recommended, as these versions are no longer tested with SWIG. +

+ +

30.2 Running SWIG

+diff --git a/Lib/octave/octrun.swg b/Lib/octave/octrun.swg +index 41d1c7a..2174a0f 100644 +--- a/Lib/octave/octrun.swg ++++ b/Lib/octave/octrun.swg +@@ -1,20 +1,88 @@ + + #include +-#ifndef OCTAVE_API_VERSION_NUMBER +- +- // Hack to distinguish between Octave 3.2 and earlier versions before OCTAVE_API_VERSION_NUMBER existed +- #define ComplexLU __ignore +- #include +- #undef ComplexLU +- #ifdef octave_Complex_LU_h +- # define OCTAVE_API_VERSION_NUMBER 36 +- #else +- # define OCTAVE_API_VERSION_NUMBER 37 +- #endif + +-#endif ++// Macro for enabling features which require Octave version >= major.minor.patch ++#define SWIG_OCTAVE_PREREQ(major, minor, patch) \ ++ ( (OCTAVE_MAJOR_VERSION<<16) + (OCTAVE_MINOR_VERSION<<8) + OCTAVE_PATCH_VERSION >= ((major)<<16) + ((minor)<<8) + (patch) ) ++ ++// Reconstruct Octave major, minor, and patch versions for releases prior to 3.8.1 ++#if !defined(OCTAVE_MAJOR_VERSION) ++ ++# if !defined(OCTAVE_API_VERSION_NUMBER) ++ ++// Hack to distinguish between Octave 3.8.0, which removed OCTAVE_API_VERSION_NUMBER but did not yet ++// introduce OCTAVE_MAJOR_VERSION, and Octave <= 3.2, which did not define OCTAVE_API_VERSION_NUMBER ++# include ++# if defined(octave_ov_h) ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 8 ++# define OCTAVE_PATCH_VERSION 0 ++# else ++ ++// Hack to distinguish between Octave 3.2 and earlier versions, before OCTAVE_API_VERSION_NUMBER existed ++# define ComplexLU __ignore ++# include ++# undef ComplexLU ++# if defined(octave_Complex_LU_h) ++ ++// We know only that this version is prior to Octave 3.2, i.e. OCTAVE_API_VERSION_NUMBER < 37 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 1 ++# define OCTAVE_PATCH_VERSION 99 ++ ++# else ++ ++// OCTAVE_API_VERSION_NUMBER == 37 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 2 ++# define OCTAVE_PATCH_VERSION 0 ++ ++# endif // defined(octave_Complex_LU_h) ++ ++# endif // defined(octave_ov_h) + +-#if OCTAVE_API_VERSION_NUMBER < 37 ++// Correlation between Octave API and version numbers extracted from Octave's ++// ChangeLogs; version is the *earliest* released Octave with that API number ++# elif OCTAVE_API_VERSION_NUMBER >= 48 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 6 ++# define OCTAVE_PATCH_VERSION 0 ++ ++# elif OCTAVE_API_VERSION_NUMBER >= 45 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 4 ++# define OCTAVE_PATCH_VERSION 1 ++ ++# elif OCTAVE_API_VERSION_NUMBER >= 42 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 3 ++# define OCTAVE_PATCH_VERSION 54 ++ ++# elif OCTAVE_API_VERSION_NUMBER >= 41 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 3 ++# define OCTAVE_PATCH_VERSION 53 ++ ++# elif OCTAVE_API_VERSION_NUMBER >= 40 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 3 ++# define OCTAVE_PATCH_VERSION 52 ++ ++# elif OCTAVE_API_VERSION_NUMBER >= 39 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 3 ++# define OCTAVE_PATCH_VERSION 51 ++ ++# else // OCTAVE_API_VERSION_NUMBER == 38 ++# define OCTAVE_MAJOR_VERSION 3 ++# define OCTAVE_MINOR_VERSION 3 ++# define OCTAVE_PATCH_VERSION 50 ++ ++# endif // !defined(OCTAVE_API_VERSION_NUMBER) ++ ++#endif // !defined(OCTAVE_MAJOR_VERSION) ++ ++#if !SWIG_OCTAVE_PREREQ(3,2,0) + #define SWIG_DEFUN(cname, wname, doc) DEFUNX_DLD(#cname, wname, FS ## cname, args, nargout, doc) + #else + #define SWIG_DEFUN(cname, wname, doc) DEFUNX_DLD(#cname, wname, G ## cname, args, nargout, doc) +@@ -427,7 +495,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own); + if (error_state) return dim_vector(1,1); + } + return d; +- } else if (out.is_matrix_type() || out.is_real_nd_array() || out.is_numeric_type() ) { ++ } else if (out.is_matrix_type() || out.is_numeric_type() ) { + if (out.rows()==1 || out.columns()==1) { + Array a = out.int_vector_value(); + if (error_state) return dim_vector(1,1); +@@ -746,7 +814,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own); + return outarg(0).string_value(); + } + +-#if OCTAVE_API_VERSION_NUMBER >= 40 ++#if SWIG_OCTAVE_PREREQ(3,3,52) + virtual octave_map map_value() const { + return octave_map(); + } +@@ -982,7 +1050,7 @@ SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own); + virtual std::string string_value(bool force = false) const + { return ptr->string_value(force); } + +-#if OCTAVE_API_VERSION_NUMBER >= 40 ++#if SWIG_OCTAVE_PREREQ(3,3,52) + virtual octave_map map_value() const + { return ptr->map_value(); } + #else +@@ -1293,10 +1361,12 @@ SWIGRUNTIME void SWIG_Octave_SetGlobalValue(std::string name, const octave_value + } + + SWIGRUNTIME void SWIG_Octave_LinkGlobalValue(std::string name) { +-#if OCTAVE_API_VERSION_NUMBER < 37 ++#if !SWIG_OCTAVE_PREREQ(3,2,0) + link_to_global_variable(curr_sym_tab->lookup(name, true)); + #else ++#if !SWIG_OCTAVE_PREREQ(3,8,0) + symbol_table::varref(name); ++#endif + symbol_table::mark_global(name); + #endif + } +diff --git a/Lib/octave/octruntime.swg b/Lib/octave/octruntime.swg +index 43313c3..fbf2007 100644 +--- a/Lib/octave/octruntime.swg ++++ b/Lib/octave/octruntime.swg +@@ -25,7 +25,7 @@ static bool SWIG_init_user(octave_swig_type* module_ns); + SWIGINTERN bool SWIG_Octave_LoadModule(std::string name) { + bool retn; + { +-#if OCTAVE_API_VERSION_NUMBER < 38 ++#if !SWIG_OCTAVE_PREREQ(3,3,50) + unwind_protect::begin_frame("SWIG_Octave_LoadModule"); + unwind_protect_int(error_state); + unwind_protect_int(warning_state); +@@ -44,7 +44,7 @@ SWIGINTERN bool SWIG_Octave_LoadModule(std::string name) { + discard_warning_messages = true; + feval(name, octave_value_list(), 0); + retn = (error_state == 0); +-#if OCTAVE_API_VERSION_NUMBER < 38 ++#if !SWIG_OCTAVE_PREREQ(3,3,50) + unwind_protect::run_frame("SWIG_Octave_LoadModule"); + #endif + } +@@ -57,7 +57,7 @@ SWIGINTERN bool SWIG_Octave_LoadModule(std::string name) { + SWIGINTERN bool SWIG_Octave_InstallFunction(octave_function *octloadfcn, std::string name) { + bool retn; + { +-#if OCTAVE_API_VERSION_NUMBER < 38 ++#if !SWIG_OCTAVE_PREREQ(3,3,50) + unwind_protect::begin_frame("SWIG_Octave_InstallFunction"); + unwind_protect_int(error_state); + unwind_protect_int(warning_state); +@@ -80,7 +80,7 @@ SWIGINTERN bool SWIG_Octave_InstallFunction(octave_function *octloadfcn, std::st + error_state = 0; + feval("autoload", args, 0); + retn = (error_state == 0); +-#if OCTAVE_API_VERSION_NUMBER < 38 ++#if !SWIG_OCTAVE_PREREQ(3,3,50) + unwind_protect::run_frame("SWIG_Octave_InstallFunction"); + #endif + } +@@ -196,7 +196,7 @@ DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) { + // definitely affects version 3.2.*, not sure about 3.3.*, seems to be fixed in + // version 3.4.* and above. can be turned off with macro definition. + #ifndef SWIG_OCTAVE_NO_SEGFAULT_HACK +-#if 36 < OCTAVE_API_VERSION_NUMBER && OCTAVE_API_VERSION_NUMBER < 45 ++#if SWIG_OCTAVE_PREREQ(3,2,0) && !SWIG_OCTAVE_PREREQ(3,4,1) + octave_exit = ::_Exit; + #endif + #endif +@@ -212,7 +212,7 @@ DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) { + + // workaround bug in octave where installing global variable of custom type and then + // exiting without explicitly clearing the variable causes octave to segfault. +-#if OCTAVE_API_VERSION_NUMBER > 36 ++#if SWIG_OCTAVE_PREREQ(3,2,0) + octave_value_list eval_args; + eval_args.append("base"); + eval_args.append("function __swig_atexit__; " +@@ -297,7 +297,7 @@ DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) { + } + } + +-#if OCTAVE_API_VERSION_NUMBER < 37 ++#if !SWIG_OCTAVE_PREREQ(3,2,0) + mlock(me->name()); + #else + mlock(); diff --git a/SOURCES/swig.1 b/SOURCES/swig.1 new file mode 100644 index 0000000..5b610b3 --- /dev/null +++ b/SOURCES/swig.1 @@ -0,0 +1,353 @@ +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.\" Manpage for swig. +.TH SWIG 1 "2013-05-24" +.SH NAME +swig \- Simplified Wrapper and Interface Generator +.SH SYNOPSIS +.B swig +.RI [ options ] " file" + +.SH DESCRIPTION +The swig command is used to create wrapper code to connect C and C++ code +to scripting languages like Perl, Python, Tcl etc. from the definition of +the interface. +For detailed information on writing those interface definitions please +refer to /usr/share/doc/swig-doc-2.0.9/Doc/Manual/index.html from the +swig-doc package. +This manpage concentrates on explaining the invocation of the swig command. + +.SH OPTIONS +.SS Target Language Options: +.TP +.B \-allegrocl +Generate ALLEGROCL wrappers +.TP +.B \-chicken +Generate CHICKEN wrappers +.TP +.B \-clisp +Generate CLISP wrappers +.TP +.B \-cffi +Generate CFFI wrappers +.TP +.B \-csharp +Generate C# wrappers +.TP +.B \-d +Generate D wrappers +.TP +.B \-go +Generate Go wrappers +.TP +.B \-guile +Generate Guile wrappers +.TP +.B \-java +Generate Java wrappers +.TP +.B \-lua +Generate Lua wrappers +.TP +.B \-modula3 +Generate Modula 3 wrappers +.TP +.B \-mzscheme +Generate Mzscheme wrappers +.TP +.B \-ocaml +Generate Ocaml wrappers +.TP +.B \-octave +Generate Octave wrappers +.TP +.B \-perl +Generate Perl wrappers +.TP +.B \-php +Generate PHP wrappers +.TP +.B \-pike +Generate Pike wrappers +.TP +.B \-python +Generate Python wrappers +.TP +.B \-r +Generate R (aka GNU S) wrappers +.TP +.B \-ruby +Generate Ruby wrappers +.TP +.B \-sexp +Generate Lisp S-Expressions wrappers +.TP +.B \-tcl +Generate Tcl wrappers +.TP +.B \-uffi +Generate Common Lisp / UFFI wrappers +.TP +.B \-xml +Generate XML wrappers +i + +.SS General Options: +.TP +.B \-addextern +Add extra extern declarations +.TP +.B \-c++ +Enable C++ processing +.TP +.BI "\-co " file +Check \fIfile\fR out of the SWIG library +.TP +.B \-copyctor +Automatically generate copy constructors wherever possible +.TP +.B \-cpperraswarn +Treat the preprocessor #error statement as #warning (default) +.TP +.B \-copyright +Display copyright notices +.TP +.B \-debug-classes +Display information about the classes found in the interface +.TP +.BI "\-debug-module " n +Display module parse tree at stages 1-4, \fIn\fR is a csv list of stages +.TP +.B \-debug-symtabs +Display symbol tables information +.TP +.B \-debug-symbols +Display target language symbols in the symbol tables +.TP +.B \-debug-csymbols +Display C symbols in the symbol tables +.TP +.B \-debug-lsymbols +Display target language layer symbols +.TP +.B \-debug-tags +Display information about the tags found in the interface +.TP +.B \-debug-template +Display information for debugging templates +.TP +.BI "\-debug-top " n +Display entire parse tree at stages 1-4, \fIn\fR is a csv list of stages +.TP +.B \-debug-typedef +Display information about the types and typedefs in the interface +.TP +.B \-debug-typemap +Display typemap debugging information +.TP +.B \-debug-tmsearch +Display typemap search debugging information +.TP +.B \-debug-tmused +Display typemaps used debugging information +.TP +.B \-directors +Turn on director mode for all the classes, mainly for testing +.TP +.B \-dirprot +Turn on wrapping of protected members for director classes (default) +.TP +.BI \-D symbol +Define a symbol \fIsymbol\fR (for conditional compilation) +.TP +.B \-E +Preprocess only, does not generate wrapper code +.TP +.B \-external-runtime [file] +Export the SWIG runtime stack +.TP +.BI "\-fakeversion " v +Make SWIG fake the program version number to \fIv\fR +.TP +.B \-fcompact +Compile in compact mode +.TP +.BI "\-features " list +Set global features, where \fIlist\fR is a comma separated list of +features, eg -features directors,autodoc=1 +If no explicit value is given to the feature, a default of 1 is used +.TP +.B \-fastdispatch +Enable fast dispatch mode to produce faster overload dispatcher code +.TP +.B \-Fmicrosoft +Display error/warning messages in Microsoft format +.TP +.B \-Fstandard +Display error/warning messages in commonly used format +.TP +.B \-fvirtual +Compile in virtual elimination mode +.TP +.B \-help +This output +.TP +.B \-I- +Don't search the current directory +.TP +.BI \-I dir +Look for SWIG files in directory \fIdir\fR +.TP +.B \-ignoremissing +Ignore missing include files +.TP +.B \-importall +Follow all #include statements as imports +.TP +.B \-includeall +Follow all #include statements +.TP +.BI \-l ifile +Include SWIG library file \fIifile\fR +.TP +.B \-macroerrors +Report errors inside macros +.TP +.B \-makedefault +Create default constructors/destructors (the default) +.TP +.B \-M +List all dependencies +.TP +.B \-MD +Is equivalent to \(cq\&-M -MF \fIfile\fR\(cq\&, except \(cq\&-E\(cq\& is not implied +.TP +.BI "\-MF " file +Generate dependencies into \fIfile\fR and continue generating wrappers +.TP +.B \-MM +List dependencies, but omit files in SWIG library +.TP +.B \-MMD +Like \(cq\&-MD\(cq\&, but omit files in SWIG library +.TP +.BI "\-module " name +Set module name to \fIname\fR +.TP +.B \-MP +Generate phony targets for all dependencies +.TP +.BI "\-MT " target +Set the target of the rule emitted by dependency generation +.TP +.B \-nocontract +Turn off contract checking +.TP +.B \-nocpperraswarn +Do not treat the preprocessor #error statement as #warning +.TP +.B \-nodefault +Do not generate default constructors nor default destructors +.TP +.B \-nodefaultctor +Do not generate implicit default constructors +.TP +.B \-nodefaultdtor +Do not generate implicit default destructors +.TP +.B \-nodirprot +Do not wrap director protected members +.TP +.B \-noexcept +Do not wrap exception specifiers +.TP +.B \-nofastdispatch +Disable fast dispatch mode (default) +.TP +.B \-nopreprocess +Skip the preprocessor step +.TP +.B \-notemplatereduce +Disable reduction of the typedefs in templates +.TP +.B \-O +Enable the optimization options: +-fastdispatch -fvirtual +.TP +.BI "\-o " outfile +Set name of the output file to \fIoutfile\fR +.TP +.B "\-oh " headfile +Set name of the output header file to \fIheadfile\fR +.TP +.B \-outcurrentdir +Set default output dir to current dir instead of input file's path +.TP +.BI "\-outdir " dir +Set language specific files output directory to \fIdir\fR +.TP +.B \-pcreversion +Display PCRE version information +.TP +.B \-small +Compile in virtual elimination & compact mode +.TP +.B \-swiglib +Report location of SWIG library and exit +.TP +.B \-templatereduce +Reduce all the typedefs in templates +.TP +.B \-v +Run in verbose mode +.TP +.B \-version +Display SWIG version number +.TP +.B \-Wall +Remove all warning suppression, also implies -Wextra +.TP +.B \-Wallkw +Enable keyword warnings for all the supported languages +.TP +.B \-Werror +Treat warnings as errors +.TP +.B \-Wextra +Adds the following additional warnings: 202,309,403,512,321,322 +.TP +.BI \-w list +Suppress/add warning messages, eg -w401,+321 +see Warnings.html +.TP +.B "\-xmlout " file +Write XML version of the parse tree to \fIfile\fR after normal processing + +.SS Tcl 8 Options (available with -tcl) +.TP +.B \-itcl +Enable ITcl support +.TP +.B \-nosafe +Leave out SafeInit module function. +.TP +.BI "\-prefix " name +Set a prefix \fIname\fR to be prepended to all names +.TP +.B \-namespace +Build module into a Tcl 8 namespace +.TP +.B \-pkgversion +Set package version + +.PP +Note: 'swig -\fIlang\fR -help' displays options for a specific target language. + +.SH AUTHOR +SWIG was originally created by David Beazley. For up-to-date information +about authors and contributors please check http://www.swig.org/guilty.html. +This manual page was written by Torsten Landschoff and +updated by Jitka Plesnikova (but may be used by others). + diff --git a/SPECS/swig.spec b/SPECS/swig.spec new file mode 100644 index 0000000..f0749e4 --- /dev/null +++ b/SPECS/swig.spec @@ -0,0 +1,494 @@ +# We can skip tests +%bcond_without testsuite + +%{!?tcl:%define tcl 1} +%{!?guile:%define guile 1} + +%if 0%{?rhel} +%{!?octave:%define octave 0} +%else +%{!?octave:%define octave 1} +%endif + +Summary: Connects C/C++/Objective C to some high-level programming languages +Name: swig +Version: 2.0.10 +Release: 5%{?dist} +License: GPLv3+ and BSD +Group: Development/Tools +URL: http://swig.sourceforge.net/ +Source0: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz +Source1: swig.1 +# Fix the failure on arch x390 during testing +Patch1: swig-2.0.10-Fix-x390-build.patch +Patch2: swig-2.0.10-Support-octave-3.8.0.patch + +BuildRequires: perl, python-devel, pcre-devel +%if %{tcl} +BuildRequires: tcl-devel +%endif +%if %{guile} +BuildRequires: guile-devel +%endif +BuildRequires: autoconf, automake, gawk, dos2unix +%if %{octave} +BuildRequires: octave-devel +%endif +# Tests +BuildRequires: perl-devel +BuildRequires: perl(Test::More) +BuildRequires: boost-devel + +%description +Simplified Wrapper and Interface Generator (SWIG) is a software +development tool for connecting C, C++ and Objective C programs with a +variety of high-level programming languages. SWIG is primarily used +with Perl, Python and Tcl/TK, but it has also been extended to Java, +Eiffel and Guile. SWIG is normally used to create high-level +interpreted programming environments, systems integration, and as a +tool for building user interfaces + +%package doc +Summary: Documentation files for SWIG +License: BSD +Group: Development/Tools +BuildArch: noarch + +%description doc +This package contains documentation for SWIG and useful examples + +%prep +%setup -q -n swig-%{version} + +%patch1 -p1 -b .x390 +%patch2 -p1 -b .octave + +# 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 +# reintroduce https://bugzilla.redhat.com/show_bug.cgi?id=489421 +%global __provides_exclude_from %{_docdir}/%{name}-doc-%{version} +%global __requires_exclude_from %{_docdir}/%{name}-doc-%{version} + +for all in CHANGES README; do + iconv -f ISO88591 -t UTF8 < $all > $all.new + touch -r $all $all.new + mv -f $all.new $all +done + +%build +./autogen.sh + +# Disable maximum compile warnings when octave is supported, because Octave +# code produces lots of the warnings demanded by strict ISO C and ISO C++. +# It causes that log had more then 600M. +%configure \ +%if %{octave} + --with-octave=/usr/bin/octave \ + --without-maximum-compile-warnings \ +%endif +; +make %{?_smp_mflags} + +%if %{with testsuite} +# Test suite +make check +%endif + +%install +# Remove all arch dependent files in Examples/ created during tests +make clean-examples + +pushd Examples/ +# Remove all arch dependent files in Examples/ +find -type f -name 'Makefile.in' | xargs rm -f -- + +# We don't want to ship files below. +rm -rf test-suite +find -type f -name '*.dsp' | xargs rm -f -- +find -type f -name '*.dsw' | xargs rm -f -- + +# Convert files to UNIX format +for all in `find -type f`; do + dos2unix -k $all + chmod -x $all +done +popd + +make DESTDIR=%{buildroot} install + +# Add man page for swig +mkdir -p %{buildroot}%{_mandir}/man1/ +install -p -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ +gzip %{buildroot}%{_mandir}/man1/$(basename %{SOURCE1}) + +%files +%{_bindir}/* +%{_datadir}/swig +%{_mandir}/man1/ccache-swig.1* +%{_mandir}/man1/swig.1* +%doc ANNOUNCE CHANGES CHANGES.current INSTALL LICENSE LICENSE-GPL +%doc LICENSE-UNIVERSITIES COPYRIGHT README TODO + +%files doc +%doc Doc Examples LICENSE LICENSE-GPL LICENSE-UNIVERSITIES COPYRIGHT + +%changelog +* Wed Mar 16 2016 Jitka Plesnikova - 2.0.10-5 +- Remove setools patch (bug #1263740) +- Add support for Octave 3.8 (bug #1136487) + +* Fri Jan 24 2014 Daniel Mach - 2.0.10-4 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 2.0.10-3 +- Mass rebuild 2013-12-27 + +* Tue Oct 08 2013 Jitka Plesnikova - 2.0.10-2 +- Use bconds for enabling testsuite +- Resolves: rhbz#1016153 + +* Fri May 31 2013 Jitka Plesnikova - 2.0.10-1 +- Update to 2.0.10 +- swig203-rh706140.patch merged +- swig204-rh752054.patch merged +- Create swig-2.0.10-Fix-x390-build.patch + +* Fri May 24 2013 Jitka Plesnikova - 2.0.9-3 +- Add man page for swig (BZ#948407) + +* Fri Feb 15 2013 Fedora Release Engineering - 2.0.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Jan 07 2013 Adam Tkac 2.0.9-1 +- update to 2.0.9 + +* Wed Sep 12 2012 Adam Tkac 2.0.8-1 +- update to 2.0.8 (#851364) +- swig207-rh830660.patch merged +- swig207-r13128.patch merged +- swig-rh841245.patch merged + +* Thu Jul 19 2012 Adam Tkac 2.0.7-4 +- don't clean "bool" definition in PERL 5 environment (#841245) + +* Wed Jun 27 2012 Adam Tkac 2.0.7-3 +- fix building of setools package + +* Tue Jun 12 2012 Adam Tkac 2.0.7-2 +- fix generating of python3 wrappers (#830660) +- don't crash when attepmting to warn about wrong descructor (#830249) + +* Thu Jun 07 2012 Adam Tkac 2.0.7-1 +- update to 2.0.7 +- swig-1.3.23-pylib.patch is no longer needed + +* Thu May 10 2012 Adam Tkac 2.0.6-1 +- update to 2.0.6 + +* Mon Apr 23 2012 Adam Tkac 2.0.5-1 +- update to 2.0.5 +- patches merged + - swig204-rh753321.patch + - swig204-rh679948.patch + - swig204-rh770696.patch + +* Thu Apr 19 2012 Adam Tkac - 2.0.4-7 +- drop Octave support on RHEL + +* Fri Feb 10 2012 Petr Pisar - 2.0.4-6 +- Rebuild against PCRE 8.30 + +* Thu Jan 05 2012 Adam Tkac 2.0.4-5 +- fix for PHP 5.4 bindings (#770696) + +* Tue Nov 15 2011 Adam Tkac 2.0.4-4 +- don't apply patch for #752054 till guile2 gets into distro + +* Mon Nov 14 2011 Adam Tkac 2.0.4-3 +- backport r12814 from trunk (#753321) +- use scm_to_utf8_string instead of SCM_STRING_CHARS in guile bindings (#752054) +- improve Octave compatibility (#679948) + +* Mon Aug 1 2011 Nick Bebout 2.0.4-2 +- rebuild to fix 2.0.3 being tagged in over 2.0.4-1 + +* Mon Jun 20 2011 Adam Tkac 2.0.4-1 +- update to 2.0.4 +- patches merged + - swig200-rh666429.patch + - swig200-rh623854.patch + +* Mon Jun 20 2011 Marcela Mašláňová 2.0.3-3 +- Perl mass rebuild + +* Fri May 20 2011 Adam Tkac 2.0.3-2 +- make guile generator compatible with guile2 (#706140) + +* 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) + +* Mon Feb 21 2011 Adam Tkac 2.0.2-1 +- update to 2.0.2 + +* Wed Feb 16 2011 Adam Tkac 2.0.1-4 +- improve fix for PySlice issue (#666429) + +* Wed Feb 09 2011 Fedora Release Engineering - 2.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 03 2011 Adam Tkac 2.0.1-2 +- attempt to fix PySlice* API/ABI issues with the Python 3.2 (#666429) + +* Thu Oct 07 2010 Adam Tkac 2.0.1-1 +- update to 2.0.1 (#640354) +- BR pcre-devel + +* Fri Aug 27 2010 Adam Tkac 2.0.0-5 +- make PyCObjects->PyCapsule patch C++ compatible (#627310) + +* Fri Aug 20 2010 Adam Tkac 2.0.0-4 +- improve patch for #623854 (PyCObjects->PyCapsule transition) + +* Tue Aug 17 2010 Adam Tkac 2.0.0-3 +- python: use new PyCapsule API instead of former PyCObjects API + +* Mon Jul 12 2010 Adam Tkac 2.0.0-2 +- add LICENSE-GPL, LICENSE-UNIVERSITIES and COPYRIGHT to %%doc +- include all license files in the -doc subpkg + +* Thu Jun 24 2010 Adam Tkac 2.0.0-1 +- update to 2.0.0 +- license changed to GPLv3+ and BSD + +* Mon Feb 22 2010 Adam Tkac 1.3.40-5 +- s/LGPL/LGPLv2+ + +* Thu Feb 18 2010 Adam Tkac 1.3.40-4 +- correct license field again + +* Thu Feb 18 2010 Adam Tkac 1.3.40-3 +- correct license field + +* Mon Dec 07 2009 Adam Tkac 1.3.40-2 +- package review related fixes (#226442) + +* Wed Sep 02 2009 Adam Tkac 1.3.40-1 +- update to 1.3.40 + +* Tue Aug 11 2009 Adam Tkac 1.3.39-4 +- correct source URL + +* Mon Aug 03 2009 Adam Tkac 1.3.39-3 +- rebuilt + +* Sun Jul 26 2009 Fedora Release Engineering - 1.3.39-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Mar 30 2009 Adam Tkac 1.3.39-1 +- update to 1.3.39 +- swig-1.3.38-rh485540.patch was merged +- add Example/ to -doc again (#489077), filter provides correctly + +* Tue Mar 10 2009 Adam Tkac 1.3.38-5 +- revert #489077 enhancement due #489421 + +* Mon Mar 09 2009 Adam Tkac 1.3.38-4 +- moved documentation to -doc subpackage and build it as noarch +- added Example/ directory to -doc (#489077) +- fixed build root + +* Wed Feb 25 2009 Fedora Release Engineering - 1.3.38-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 16 2009 Adam Tkac 1.3.38-2 +- handle -co option gracefully (#485540) + +* Thu Feb 12 2009 Adam Tkac 1.3.38-1 +- updated to 1.3.38 + +* Thu Dec 04 2008 Adam Tkac 1.3.36-2 +- #470811 is fixed => dropped workaround + +* Mon Nov 10 2008 Adam Tkac 1.3.36-1 +- updated to 1.3.36 +- finally dropped swig-arch.patch +- temporary workaround rpm bug #470811 + +* Fri May 16 2008 Adam Tkac 1.3.35-2 +- readded swig-arch.patch, will be kept downstream + +* Mon May 05 2008 Adam Tkac 1.3.35-1 +- updated to latest upstream release + +* Mon Feb 18 2008 Fedora Release Engineering - 1.3.33-2 +- Autorebuild for GCC 4.3 + +* Thu Nov 29 2007 Adam Tkac 1.3.33-1 +- 1.3.33 +- removed swig-arch.patch because upstream will never accept + it ("swig is not low-level") + +* Wed Aug 22 2007 Adam Tkac 1.31.1-1 +- rebuild (BuildID feature) +- BuildRequires gawk + +* Tue Nov 28 2006 Adam Tkac 1.31.1-0 +- updated to 1.2.31 (#216991) + +* Tue Nov 07 2006 Adam Tkac 1.3.29-2 +- swig can determine architecture now (#211095) + +* Mon Aug 28 2006 Jitka Kudrnacova -1.3.29-1 +-rebuilt + +* Tue Jul 18 2006 Jitka Kudrnacova - 1.3.29-0.3 +- rebuilt + +* Fri Jun 30 2006 Jitka Kudrnacova - 1.3.29-0.2 +- Build requires autoconf, automake (bug #197132) + +* Wed Apr 19 2006 Jitka Kudrnacova - 1.3.29-0.1 +- folder /usr/share/swig should be owned by swig package (bug #189145) + +* Tue Mar 28 2006 Jitka Kudrnacova - 1.3.29-0 +- update to swig-1.2.29-0 + +* Fri Feb 10 2006 Jesse Keating - 1.3.24-2.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 1.3.24-2.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Wed Mar 02 2005 Phil Knirsch 1.3.24-2 +- bump release and rebuild with gcc 4 + +* Thu Feb 03 2005 Karsten Hopp 1.3.24-1 +- update + +* Wed Dec 01 2004 Phil Knirsch 1.3.23-2 +- rebuild + +* Tue Nov 23 2004 Karsten Hopp 1.3.23-1 +- update +- new pylib patch +- remove destdir patch, swig.m4 is no longer included +- remove ldconfig patch, swig now uses *-config to find out linker options + +* Mon Nov 8 2004 Jeremy Katz - 1.3.21-7 +- rebuild against python 2.4 + +* Mon Oct 11 2004 Tim Waugh 1.3.21-6 +- Build requires tcl-devel (bug #134788). + +* Thu Sep 30 2004 Joe Orton 1.3.21-5 +- don't output -L$libdir in -ldflags + +* Wed Sep 22 2004 Florian La Roche +- add ldconfig calls to post/postun + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Wed May 19 2004 Joe Orton 1.3.21-2 +- restore missing runtime libraries + +* Tue May 04 2004 Phil Knirsch +- Update to swig-1.3.21 + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Tue Sep 23 2003 Florian La Roche +- allow compiling without tcl/guile + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Sun May 18 2003 Joe Orton 1.3.19-3 +- patch to pick up python libdir correctly + +* Sun May 18 2003 Joe Orton 1.3.19-2 +- add BuildPrereqs to ensure all bindings are built + +* Wed May 14 2003 Phil Knirsch 1.3.19-1 +- Update to swig-1.3.19 +- Major cleanup in specfile, too. :-) +- New lib64 fix. + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Wed Nov 27 2002 Tim Powers 1.1p5-21 +- lib64'ize + +* Fri Aug 30 2002 Phil Knirsch 1.1p5-20 +- Patch by Lon Hohberger for ia64. + +* Wed Aug 28 2002 Phil Knirsch 1.1p5-19 +- Added multilib safe patch from arjan (#72523) + +* Tue Aug 13 2002 Karsten Hopp +- rebuilt with gcc-3.2 + +* Sat Aug 10 2002 Elliot Lee +- rebuilt with gcc-3.2 (we hope) + +* Mon Jul 22 2002 Tim Powers +- rebuild using gcc-3.2-0.1 + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Fri Feb 8 2002 Bill Nottingham +- rebuild + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Fri Apr 27 2001 Nalin Dahyabhai +- use %%{_tmppath} instead of /var/tmp +- remove the postscript docs (pdftops from the xpdf pkg converts them just fine) + +* Wed Sep 13 2000 Tim Powers +- rebuilt for 7.1 + +* Mon Jul 24 2000 Prospector +- rebuilt + +* Mon Jul 17 2000 Tim Powers +- for some reason defattr wasn't before the docs, fixed + +* Mon Jul 10 2000 Tim Powers +- rebuilt + +* Fri Jun 2 2000 Tim Powers +- spec file cleanups + +* Sat May 20 2000 Tim Powers +- rebuilt for 7.0 +- man pages in /usr/share/man + +* Wed Jan 19 2000 Tim Powers +- bzipped sources to conserve space + +* Thu Jul 22 1999 Tim Powers +- rebuilt for 6.1 + +* Thu Apr 15 1999 Michael Maher +- built package for 6.0 + +* Tue Sep 15 1998 Michael Maher +- built package