Update to 3.0.5

This commit is contained in:
Björn Esser 2015-04-03 22:32:44 +02:00
commit d6e48d2670
7 changed files with 199 additions and 390 deletions

4
.gitignore vendored
View File

@ -11,3 +11,7 @@ swig-2.0.0.tar.gz
/swig-2.0.10.tar.gz
/swig-2.0.11.tar.gz
/swig-2.0.12.tar.gz
/swig-3.0.0.tar.gz
/swig-3.0.1.tar.gz
/swig-3.0.2.tar.gz
/swig-3.0.5.tar.gz

24
description.h2m Normal file
View File

@ -0,0 +1,24 @@
[name]
swig - Simplified Wrapper and Interface Generator
[synopsis]
swig [ options ] " file"
[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/Doc/Manual/index.html from the swig-doc
package.
This manpage concentrates on explaining the invocation of the swig command.
[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 <torsten@debian.org> and
updated by Jitka Plesnikova <jplesnik@redhat.com> (but may be used by
others).

View File

@ -1 +1 @@
c3fb0b2d710cc82ed0154b91e43085a4 swig-2.0.12.tar.gz
dcb9638324461b9baba8e044fe59031d swig-3.0.5.tar.gz

View File

@ -0,0 +1,23 @@
From e06906bda0ea06f6b5fc15dfa8f55a2251a1bbef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <bjoern.esser@gmail.com>
Date: Fri, 3 Apr 2015 18:48:08 +0200
Subject: [PATCH] Python: fix using `-builtin -modern -modernargs` results in
segfaulting code (#256)
---
Source/Modules/python.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
index 0e4a402..b2c429d 100644
--- a/Source/Modules/python.cxx
+++ b/Source/Modules/python.cxx
@@ -2718,7 +2718,7 @@ class PYTHON:public Language {
Printf(parse_args, "if (!SWIG_Python_UnpackTuple(args,\"%s\",%d,%d,0)) SWIG_fail;\n", iname, num_fixed_arguments, tuple_arguments);
}
}
- } else {
+ } else if (tuple_arguments > 0) {
Printf(parse_args, "if(!PyArg_UnpackTuple(args,(char *)\"%s\",%d,%d", iname, num_fixed_arguments, tuple_arguments);
Printv(parse_args, arglist, ")) SWIG_fail;\n", NIL);
}

View File

@ -1,10 +0,0 @@
diff -up swig-2.0.12/Examples/test-suite/guile/li_std_string_runme.scm.guile swig-2.0.12/Examples/test-suite/guile/li_std_string_runme.scm
--- swig-2.0.12/Examples/test-suite/guile/li_std_string_runme.scm.guile 2014-02-09 15:09:05.000000000 -0700
+++ swig-2.0.12/Examples/test-suite/guile/li_std_string_runme.scm 2014-03-01 08:33:41.343216202 -0700
@@ -5,5 +5,5 @@
; Note: when working with non-ascii strings in guile 2
; locale must be set explicitly
; The setlocale call below takes care of that
-(setlocale LC_ALL "")
+(setlocale LC_ALL "en_US.utf-8")
(load "../schemerunme/li_std_string.scm")

353
swig.1
View File

@ -1,353 +0,0 @@
.\" 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 <torsten@debian.org> and
updated by Jitka Plesnikova <jplesnik@redhat.com> (but may be used by others).

173
swig.spec
View File

@ -1,46 +1,80 @@
# We can skip tests
%bcond_without testsuite
%{!?tcl:%define tcl 1}
%{!?guile:%define guile 1}
%{!?tcl:%global tcl 1}
%{!?guile:%global guile 1}
%{!?lualang:%global lualang 1}
%{!?rubylang:%global rubylang 1}
%ifarch aarch64 %{arm} ppc64le ppc %{power64} s390 s390x
%{!?golang:%global golang 0}
%{!?Rlang:%global Rlang 0}
%{!?javalang:%global javalang 0}
%else
%if 0%{?rhel}
%{!?golang:%global golang 0}
%{!?Rlang:%global Rlang 0}
%else
%{!?golang:%global golang 1}
# R tests failed (since 3.0.4)
%{!?Rlang:%global Rlang 0}
%endif
%{!?javalang:%global javalang 1}
%endif
%if 0%{?rhel}
%{!?octave:%define octave 0}
%{!?octave:%global octave 0}
%else
%{!?octave:%define octave 1}
%{!?octave:%global octave 1}
%endif
Summary: Connects C/C++/Objective C to some high-level programming languages
Name: swig
Version: 2.0.12
Release: 1%{?dist}
Version: 3.0.5
Release: 4%{?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
# Upstream patch to fix guile locale
# https://github.com/swig/swig/pull/139/files
Patch0: swig-guile.patch
# Define the part of man page sections
Source1: description.h2m
Patch1: swig207-setools.patch
# Fix the failure on arch x390 during testing
Patch2: swig-2.0.10-Fix-x390-build.patch
# Fix segfaults of Python-wrappers when generating code with
# `-buildin -modern -modernargs`. Patch is upstreamed, see patch-url.
Patch3: https://github.com/swig/swig/pull/372.patch#/swig-3.0.5_fix-python-modern-buildin.patch
BuildRequires: perl, python-devel, pcre-devel
BuildRequires: perl, python2-devel, pcre-devel
BuildRequires: autoconf, automake, gawk, dos2unix
BuildRequires: help2man
BuildRequires: perl-devel
BuildRequires: perl(Test::More)
BuildRequires: boost-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
%if %{golang}
BuildRequires: golang
%endif
%if %{lualang}
BuildRequires: lua-devel
%endif
%if %{rubylang}
BuildRequires: ruby-devel
%endif
%if %{Rlang}
BuildRequires: R-devel
%endif
%if %{javalang}
BuildRequires: java, java-devel
%endif
%description
Simplified Wrapper and Interface Generator (SWIG) is a software
@ -63,9 +97,9 @@ This package contains documentation for SWIG and useful examples
%prep
%setup -q -n swig-%{version}
%patch0 -p1 -b .guile
%patch1 -p1 -b .setools
%patch2 -p1 -b .x390
%patch3 -p1 -b .python
for all in CHANGES README; do
iconv -f ISO88591 -t UTF8 < $all > $all.new
@ -77,9 +111,19 @@ done
./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++.
# code produces lots of the warnings demanded by strict ISO C and ISO C++.
# It causes that log had more then 600M.
%configure \
--without-ocaml \
%if ! %{javalang}
--without-java \
%endif
%if ! %{Rlang}
--without-r \
%endif
%if ! %{golang}
--without-go \
%endif
%if %{octave}
--with-octave=/usr/bin/octave \
--without-maximum-compile-warnings \
@ -98,12 +142,12 @@ make clean-examples
pushd Examples/
# Remove all arch dependent files in Examples/
find -type f -name 'Makefile.in' | xargs rm -f --
find -type f -name 'Makefile.in' -delete -print
# 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 --
find -type f -name '*.dsp' -delete -print
find -type f -name '*.dsw' -delete -print
# Convert files to UNIX format
for all in `find -type f`; do
@ -114,23 +158,100 @@ popd
make DESTDIR=%{buildroot} install
# Add man page for swig
# Use help output for generating of man page
echo "Options:" >help_output
%{buildroot}%{_bindir}/swig --help >>help_output
# Update the output to be correctly formatted be help2man
sed -i -e 's/^\(\s\+-[^-]\+\)- \(.*\)$/\1 \2/' help_output
sed -i -e 's/^\(\s\+-\w\+-[^-]*\)- \(.*\)$/\1 \2/' help_output
# Generate a helper script that will be used by help2man
cat >h2m_helper <<'EOF'
#!/bin/bash
[ "$1" == "--version" ] && echo "" || cat help_output
EOF
chmod a+x h2m_helper
# Generate man page
help2man -N --section 1 ./h2m_helper --include %{SOURCE1} -o %{name}.1
# Add man page for swig to repository
mkdir -p %{buildroot}%{_mandir}/man1/
install -p -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/
gzip %{buildroot}%{_mandir}/man1/$(basename %{SOURCE1})
install -p -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1/
# Enable ccache-swig by default, if ccache is installed.
mkdir -p %{buildroot}%{_libdir}/ccache
ln -fs ../../bin/ccache-swig %{buildroot}%{_libdir}/ccache/swig
%files
%{_bindir}/*
%{_datadir}/swig
%{_libdir}/ccache
%{_mandir}/man1/ccache-swig.1*
%{_mandir}/man1/swig.1*
%doc ANNOUNCE CHANGES CHANGES.current INSTALL LICENSE LICENSE-GPL
%doc ANNOUNCE CHANGES CHANGES.current LICENSE LICENSE-GPL
%doc LICENSE-UNIVERSITIES COPYRIGHT README TODO
%files doc
%doc Doc Examples LICENSE LICENSE-GPL LICENSE-UNIVERSITIES COPYRIGHT
%changelog
* Fri Apr 03 2015 Björn Esser <bjoern.esser@gmail.com> - 3.0.5-4
- Add Patch3 to fix segfaults of Python-wrappers when generating
code with `-buildin -modern -modernargs`-flags
* Thu Feb 19 2015 Orion Poplawski <orion@cora.nwra.com> - 3.0.5-3
- Rebuild for gcc 5 C++11 ABI
* Tue Feb 10 2015 Björn Esser <bjoern.esser@gmail.com> - 3.0.5-2
- Enable ccache-swig by default, if ccache is installed (#1176861)
* Tue Feb 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.5-1
- Update to 3.0.5 (#1178440)
* Tue Jan 27 2015 Petr Machata <pmachata@redhat.com> - 3.0.2-3
- Rebuild for boost 1.57.0
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Mon Jun 09 2014 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.2-1
- Update to 3.0.2
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu May 29 2014 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.1-1
- Update to 3.0.1
- Updated parameters for configure and conditions for BRs
* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 3.0.0-7
- Rebuild for boost 1.55.0
* Thu May 22 2014 Dan Horák <dan[at]danny.cz> 3.0.0-6
- java unit tests fail on s390(x), too. disable for now
* Mon May 12 2014 Peter Robinson <pbrobinson@fedoraproject.org> 3.0.0-5
- unit tests fail on aarch64, too. disable for now
* Fri Apr 25 2014 Peter Robinson <pbrobinson@fedoraproject.org> 3.0.0-4
- No golang or R on aarch64 (currently)
* Tue Apr 22 2014 Karsten Hopp <karsten@redhat.com> 3.0.0-3
- golang is exclusivearch %{ix86} x86_64 %{arm}, don't BR it on ppc*, s390*
- unit tests fail on other ppc archs, too. disable for now
* Fri Mar 28 2014 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.0-2
- Small changes to enable ppc64le (BZ#1081724)
* Thu Mar 20 2014 Jitka Plesnikova <jplesnik@redhat.com> - 3.0.0-1
- Update to 3.0.0
- Update BRs to run tests for Java, Ruby, Lua, R, Go
- Replace %%define by %%global (BZ#1063589)
- Remove Group tag (BZ#1063589)
- Generate man page from help to have the correct list of options
* Fri Feb 28 2014 Orion Poplawski <orion@cora.nwra.com> - 2.0.12-1
- Update to 2.0.12
- A patch to fix guile locale