diff --git a/.gitignore b/.gitignore index dc1a6a3..116ef5a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ swig-2.0.0.tar.gz /swig-2.0.7.tar.gz /swig-2.0.8.tar.gz /swig-2.0.9.tar.gz +/swig-2.0.10.tar.gz diff --git a/sources b/sources index bdd5bbf..7f6b56f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -54d534b14a70badc226129159412ea85 swig-2.0.9.tar.gz +6d5e7ad05b4a404e5e85db9befb70c9a swig-2.0.10.tar.gz diff --git a/swig-2.0.10-Fix-x390-build.patch b/swig-2.0.10-Fix-x390-build.patch new file mode 100644 index 0000000..194c4f6 --- /dev/null +++ b/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/swig.1 b/swig.1 new file mode 100644 index 0000000..5b610b3 --- /dev/null +++ b/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/swig.spec b/swig.spec index 45a796b..b10aabc 100644 --- a/swig.spec +++ b/swig.spec @@ -8,18 +8,18 @@ %endif Summary: Connects C/C++/Objective C to some high-level programming languages -Name: swig -Version: 2.0.9 -Release: 2%{?dist} +Name: swig +Version: 2.0.10 +Release: 1%{?dist} License: GPLv3+ and BSD -Group: Development/Tools -URL: http://swig.sourceforge.net/ -Source: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz -Patch4: swig203-rh706140.patch -Patch6: swig204-rh752054.patch -Patch9: swig207-setools.patch +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 +Patch1: swig207-setools.patch +# Fix the failure on arch x390 during testing +Patch2: swig-2.0.10-Fix-x390-build.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl, python-devel, pcre-devel %if %{tcl} BuildRequires: tcl-devel @@ -31,20 +31,24 @@ 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 +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 +Summary: Documentation files for SWIG +License: BSD +Group: Development/Tools BuildArch: noarch %description doc @@ -52,51 +56,42 @@ This package contains documentation for SWIG and useful examples %prep %setup -q -n swig-%{version} -%patch4 -p1 -b .rh706140 -# Apply patch 6 when guile2 gets into distro -#%patch6 -p1 -b .rh752054 -%patch9 -p1 -b .setools +%patch1 -p1 -b .setools +%patch2 -p1 -b .x390 # 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 -cat << \EOF > %{name}-prov -#!/bin/sh -%{__perl_provides} `perl -p -e 's|\S+%{_docdir}/%{name}-doc-%{version}\S+||'` -EOF - -%define __perl_provides %{_builddir}/%{name}-%{version}/%{name}-prov -chmod +x %{__perl_provides} - -cat << \EOF > %{name}-req -#!/bin/sh -%{__perl_requires} `perl -p -e 's|\S+%{_docdir}/%{name}-doc-%{version}\S+||'` -EOF - -%define __perl_requires %{_builddir}/%{name}-%{version}/%{name}-req -chmod +x %{__perl_requires} +%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 + 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} -# Test suite is currently broken -#make check +# Test suite +make check %install -rm -rf %{buildroot} +# Remove all arch dependent files in Examples/ created during tests +make clean-examples pushd Examples/ # Remove all arch dependent files in Examples/ @@ -109,29 +104,39 @@ 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 + dos2unix -k $all + chmod -x $all done popd make DESTDIR=%{buildroot} install -%clean -rm -rf %{buildroot} +# 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 -%defattr(-,root,root,-) %{_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 -%defattr(-,root,root,-) %doc Doc Examples LICENSE LICENSE-GPL LICENSE-UNIVERSITIES COPYRIGHT %changelog +* 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 diff --git a/swig203-rh706140.patch b/swig203-rh706140.patch deleted file mode 100644 index 3f79da9..0000000 --- a/swig203-rh706140.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up swig-2.0.3/Lib/guile/guile_gh_run.swg.rh706140 swig-2.0.3/Lib/guile/guile_gh_run.swg ---- swig-2.0.3/Lib/guile/guile_gh_run.swg.rh706140 2011-05-20 15:16:42.300658987 +0200 -+++ swig-2.0.3/Lib/guile/guile_gh_run.swg 2011-05-20 15:17:08.609658991 +0200 -@@ -15,7 +15,11 @@ - extern "C" { - #endif - -+#if SCM_MAJOR_VERSION >= 2 -+typedef scm_t_subr swig_guile_proc; -+#else - typedef SCM (*swig_guile_proc)(); -+#endif - - #define SWIG_malloc(size) \ - SCM_MUST_MALLOC(size) -diff -up swig-2.0.3/Lib/guile/guile_scm_run.swg.rh706140 swig-2.0.3/Lib/guile/guile_scm_run.swg ---- swig-2.0.3/Lib/guile/guile_scm_run.swg.rh706140 2011-05-20 15:17:22.057658991 +0200 -+++ swig-2.0.3/Lib/guile/guile_scm_run.swg 2011-05-20 15:17:46.183658997 +0200 -@@ -12,7 +12,11 @@ - extern "C" { - #endif - -+#if SCM_MAJOR_VERSION >= 2 -+typedef scm_t_subr swig_guile_proc; -+#else - typedef SCM (*swig_guile_proc)(); -+#endif - typedef SCM (*guile_destructor)(SCM); - - typedef struct swig_guile_clientdata { diff --git a/swig204-rh752054.patch b/swig204-rh752054.patch deleted file mode 100644 index 9b9ff43..0000000 --- a/swig204-rh752054.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up swig-2.0.4/Lib/guile/guile_scm_run.swg.rh752054 swig-2.0.4/Lib/guile/guile_scm_run.swg ---- swig-2.0.4/Lib/guile/guile_scm_run.swg.rh752054 2011-11-14 14:44:35.688597584 +0100 -+++ swig-2.0.4/Lib/guile/guile_scm_run.swg 2011-11-14 14:45:15.879594778 +0100 -@@ -64,7 +64,7 @@ static swig_module_info *SWIG_Guile_GetM - SWIGINTERN char * - SWIG_Guile_scm2newstr(SCM str, size_t *len) { - #define FUNC_NAME "SWIG_Guile_scm2newstr" -- char *ret; -+ char *ret, *tmp; - size_t l; - - SCM_ASSERT (SCM_STRINGP(str), str, 1, FUNC_NAME); -@@ -73,7 +73,9 @@ SWIG_Guile_scm2newstr(SCM str, size_t *l - ret = (char *) SWIG_malloc( (l + 1) * sizeof(char)); - if (!ret) return NULL; - -- memcpy(ret, SCM_STRING_CHARS(str), l); -+ tmp = scm_to_utf8_string(str); -+ memcpy(ret, tmp, l); -+ free(tmp); - ret[l] = '\0'; - if (len) *len = l; - return ret;