besser82 pushed to swig (f20). "Update to 3.0.0; Several updates related to BZ#1063589"

notifications at fedoraproject.org notifications at fedoraproject.org
Fri Apr 3 20:33:55 UTC 2015


>From 058574832ba4fb2da58bbedc83aec376418763df Mon Sep 17 00:00:00 2001
From: Jitka Plesnikova <jplesnik at redhat.com>
Date: Tue, 25 Mar 2014 13:32:24 +0100
Subject: Update to 3.0.0; Several updates related to BZ#1063589


diff --git a/.gitignore b/.gitignore
index 7ed62aa..874de03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ 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
diff --git a/description.h2m b/description.h2m
new file mode 100644
index 0000000..e894cdd
--- /dev/null
+++ b/description.h2m
@@ -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 at debian.org> and
+updated by Jitka Plesnikova <jplesnik at redhat.com> (but may be used by
+others).
+
+
+
diff --git a/sources b/sources
index 3260489..ef9123e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c3fb0b2d710cc82ed0154b91e43085a4  swig-2.0.12.tar.gz
+9c8278fad527dda4bf38edffe5acc394  swig-3.0.0.tar.gz
diff --git a/swig-guile.patch b/swig-guile.patch
deleted file mode 100644
index 3b9cdf4..0000000
--- a/swig-guile.patch
+++ /dev/null
@@ -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")
diff --git a/swig.1 b/swig.1
deleted file mode 100644
index 5b610b3..0000000
--- a/swig.1
+++ /dev/null
@@ -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 at debian.org> and
-updated by Jitka Plesnikova <jplesnik at redhat.com> (but may be used by others).
-
diff --git a/swig.spec b/swig.spec
index 1f54f18..68c153e 100644
--- a/swig.spec
+++ b/swig.spec
@@ -1,46 +1,69 @@
 # 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}
+%{!?javalang:%global javalang 1}
+
+%ifarch %{arm}
+%{!?golang:%global golang 0}
+%else
+%{!?golang:%global golang 1}
+%endif
 
 %if 0%{?rhel}
-%{!?octave:%define octave 0}
+%{!?octave:%global octave 0}
+%{!?Rlang:%global Rlang 0}
 %else
-%{!?octave:%define octave 1}
+%{!?octave:%global octave 1}
+%{!?Rlang:%global Rlang 1}
 %endif
 
 Summary: Connects C/C++/Objective C to some high-level programming languages
 Name:    swig
-Version: 2.0.12
+Version: 3.0.0
 Release: 1%{?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
 
-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,7 +86,6 @@ 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
 
@@ -77,7 +99,7 @@ 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 \
 %if %{octave}
@@ -98,12 +120,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 +136,47 @@ 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/
 
 %files
 %{_bindir}/*
 %{_datadir}/swig
 %{_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
+* Thu Mar 20 2014 Jitka Plesnikova <jplesnik at 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 at cora.nwra.com> - 2.0.12-1
 - Update to 2.0.12
 - A patch to fix guile locale
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/swig.git/commit/?h=f20&id=058574832ba4fb2da58bbedc83aec376418763df


More information about the scm-commits mailing list