I ran check-swig-{py|pl|rb} with some SWIG versions on swig-py3 branch.
Environment:
OS: FreeBSD 11.2
Python 2: 2.7.16
Python 3: 3.7.3
Perl: 5.28.2
Ruby: 2.5.5p157
Results are below.
SWIG 1.3.24:
I couldn't build swig itself.
SWIG 2.0.0:
Python 2 ... OK (skipped=1)
Python 3 ... can't build modules
Perl ... can't build modules (Perhaps due to issue on build
with Perl >= 5.16, fixed in SWIG 2.0.8)[1]
Ruby ... 100% passed
SWIG 2.0.12:
Python 2 ... OK (skipped=1)
Python 3 ... FAILED (failures=16, errors=22)
Perl ... PASS
Ruby ... 100% passed
SWIG 3.0.0:
Python 2 ... OK (skipped=1)
Python 3 ... FAILED (failures=16, errors=22)
Perl ... PASS
Ruby ... 100% passed
SWIG 3.0.9:
Python 2 ... can't import modules
(regression, fixed in SWIG 3.0.10)[2]
Python 3 ... can't import modules
(regression, fixed in SWIG 3.0.10)[2]
Perl ... PASS
Ruby ... 100% passed
SWIG 3.0.10:
Python 2 ... OK (skipped=1)
Python 3 ... OK
Perl ... PASS
Ruby ... 100% passed
SWIG 3.0.12:
Python 2 ... OK (skipped=1)
Python 3 ... OK
Perl ... PASS
Ruby ... 100% passed
SWIG 4.0.1:
Python 2 ... can't build modules correctly (SVN-4818)
Python 3 ... can't build modules correctly (SVN-4818)
Perl ... PASS
Ruby ... 100% passed
[1] https://github.com/swig/swig/blob/rel-2.0.8/CHANGES.current#L30
[2] https://github.com/swig/swig/blob/rel-3.0.10/RELEASENOTES#L11
I also make a patch to update subversion/binding/swig/INSTALL,
however I don't touch build/ac-macros/swig.m4.
Cheers,
--
Yasuhito FUTATSUKI <[email protected]>
Index: subversion/bindings/swig/INSTALL
===================================================================
--- subversion/bindings/swig/INSTALL (revision 1868723)
+++ subversion/bindings/swig/INSTALL (working copy)
@@ -64,15 +64,24 @@
BUILDING SWIG BINDINGS FOR SVN ON UNIX
-Step 1: Install a suitable version of SWIG (which is
- currently SWIG version 1.3.24 or later).
+Step 1: Install a suitable version of SWIG
+ * Currently supported SWIG version is 1.3.24 and later, however,
+ - Python bindings doesn't support SWIG 4.0.0 and later (yet).
+ - Python 3 support for Python bindings requires SWIG 3.0.10 and later,
+ in 3.0.x.
+ - Python bindings doesn't support SWIG 3.0.9
+ - Ruby bindings doesn't support SWIG 3.0.8.
+ - Make sure language specific supported version of SWIG itself, e.g.
+ - Perl 5.16 and later requires SWIG 2.0.8 and later.
+
* Perhaps your distribution packages a suitable version - if it does
install it, and skip to the last bullet point in this section.
* Go to http://www.swig.org/, download the source tarball, and unpack.
- * In the SWIG-1.3.xx directory, run ./configure.
+ * In the swig-x.y.z, directory, run ./configure (where x.y.z is
+ SWIG version, e.g. 3.0.12).
If you plan to build the Python bindings, and have a system
with more than one version of Python installed, you may need
@@ -95,13 +104,13 @@
Run 'make && make install'
* To verify you have SWIG installed correctly, run "swig -version"
- from the command line. SWIG should report that it is version 1.3.24
- or newer.
+ from the command line. SWIG should report that it is suitable version
+ mentioned above.
Step 1a: Install py3c library if building Python SWIG bindings.
- * Check your distribution packages first for a suitable version, and if
found
- install from there.
+ * Check your distribution packages first for a suitable version, and
+ if found install from there.
* To install from source, download the latest release from
https://github.com/encukou/py3c.