From debbugs-submit-bounces@debbugs.gnu.org Sat May 26 21:22:16 2018 Received: (at 31479) by debbugs.gnu.org; 27 May 2018 01:22:16 +0000 Received: from localhost ([127.0.0.1]:50040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fMkNr-00020R-0y for submit@debbugs.gnu.org; Sat, 26 May 2018 21:22:14 -0400 Received: from mout01.posteo.de ([185.67.36.65]:56977) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fMkNh-0001zp-T4 for 31479@debbugs.gnu.org; Sat, 26 May 2018 21:22:06 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 9BB1D20E2F for <31479@debbugs.gnu.org>; Sun, 27 May 2018 03:21:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1527384111; bh=mhvx0k9hqKS2au3wQAelIyUHzjTQjxdEQSnWjTiCm2M=; h=From:To:Cc:Subject:Date:From; b=cPJjb13JgJBO+8UZZWepSY2zHjtiPwk3oOr2D98YCQHuvOjqmA2I7vz38zN2n4cjR xMEYJGvbgWOs4j+HxcdBYqDzKJcv5i0ao8gmWmwVXTfazNSqJi+Dq3eDpi9OYPQlbG TKR4uDXB2DLBaZIwRcUGkpfIyl9nnm4FC7S5rFVK+rz1RSHZMY6BLzNjyxvgUl8uEz uJMg69O8V83bvtDlUL6Xmk+9B9nBpsY8Ni7KlZf/tRiqkZmQfzAYaxxPyNfGfiKBnP J1U+WqDXgK8DOaFz83a3/cyS5xnuyLfN11/svFL+jURSS/2AiwtimBOKTIFxb2NeE3 WHfnK+CMgXlIA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 40thzK4ktLz9rxG; Sun, 27 May 2018 03:21:49 +0200 (CEST) From: Kei Kebreau To: Ricardo Wurmus Subject: Re: [bug#31479] [PATCH 3/3] gnu: Update shogun to 6.1.3. References: <20180516231033.1680-1-kkebreau@posteo.net> <87a7spcte2.fsf@mdc-berlin.de> Date: Sat, 26 May 2018 21:21:43 -0400 In-Reply-To: <87a7spcte2.fsf@mdc-berlin.de> (Ricardo Wurmus's message of "Thu, 24 May 2018 11:09:09 +0200") Message-ID: <87po1hnba0.fsf@posteo.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 31479 Cc: ludo@gnu.org, 31479@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ricardo Wurmus writes: > Hi Kei, > > please also note that Shogun contains references to proprietary > software. It has support for SVMLight, which is non-free software. It > includes a script to remove all references to and adapters for SVMLight, > but unfortunately we cannot run shell scripts in a snippet. Changing > this requires changing the =E2=80=9Cpackage=E2=80=9D syntax to delay eval= uation more. > > Until then we need to remove the non-free bits in code, which is what > the current snippet does, but the code would need to be adjusted for > version 6.1.3. > > Thanks for taking this on! > > -- > Ricardo Thank you for the tip! I've attached the four patches that make it possible to build Shogun 6.1.3 successfully, and I'm just looking through the source code to remove the proprietary bits. P.S. Ricardo, you'll notice the eigen patch is actually yours from another patchset! I verified that it works as expected. --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=0001-gnu-octave-Update-to-4.4.0.patch Content-Transfer-Encoding: quoted-printable From=200243faa33cc2c33ed7160ab754ad45ceff626eb2 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 5 May 2018 10:21:38 -0400 Subject: [PATCH 1/5] gnu: octave: Update to 4.4.0. * gnu/packages/maths.scm (octave): Update to 4.4.0. =2D-- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a36d2333e..97f847665 100644 =2D-- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1332,7 +1332,7 @@ can solve two kinds of problems: (define-public octave (package (name "octave") =2D (version "4.2.2") + (version "4.4.0") (source (origin (method url-fetch) @@ -1340,7 +1340,7 @@ can solve two kinds of problems: version ".tar.lz")) (sha256 (base32 =2D "0pkkz1vazsh7ipffb09q0nc2jgx6q27pkkngygjij6jrpcly5zsp")))) + "0nm766737gbkq9wqry54a026k3dg7rb1065kngfpwgjz8b544xbp")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) =2D-=20 2.17.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename=0002-gnu-Add-rxcpp.patch Content-Transfer-Encoding: quoted-printable From=2050b6630e06f434237c1014765444d01a38f40e61 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 9 May 2018 10:01:40 -0400 Subject: [PATCH 2/5] gnu: Add rxcpp. * gnu/packages/machine-learning.scm (rxcpp): New variable. =2D-- gnu/packages/machine-learning.scm | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learn= ing.scm index f0d35484e..6536d861e 100644 =2D-- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -4,6 +4,7 @@ ;;; Copyright =C2=A9 2016, 2017 Marius Bakke ;;; Copyright =C2=A9 2016 Hartmut Goebel ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice +;;; Copyright =C2=A9 2018 Kei Kebreau ;;; Copyright =C2=A9 2018 Mark Meyer ;;; Copyright =C2=A9 2018 Ben Woodcroft ;;; Copyright =C2=A9 2018 Fis Trivial @@ -501,6 +502,47 @@ tools. This enables both rapid prototyping of data pi= pelines and extensibility in terms of new algorithms.") (license license:gpl3+))) =20 +(define-public rxcpp + (package + (name "rxcpp") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/ReactiveX/RxCpp/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0y2isr8dy2n1yjr9c5570kpc9lvdlch6jv0jvw000amwn5d3krsh")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-werror + (lambda _ + (substitute* (find-files ".") + (("-Werror") "")) + #t)) + (replace 'check + (lambda _ + (invoke "ctest")))))) + (native-inputs + `(("catch" ,catch-framework))) + (home-page "http://reactivex.io/") + (synopsis "Reactive Extensions for C++") + (description + "The Reactive Extensions for C++ (RxCpp) is a library of algorithms f= or +values-distributed-in-time. ReactiveX is a library for composing asynchro= nous +and event-based programs by using observable sequences. + +It extends the observer pattern to support sequences of data and/or events= and +adds operators that allow you to compose sequences together declaratively = while +abstracting away concerns about things like low-level threading, +synchronization, thread-safety, concurrent data structures, and non-blocki= ng +I/O.") + (license license:asl2.0))) + (define-public r-adaptivesparsity (package (name "r-adaptivesparsity") =2D-=20 2.17.0 --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=0003-gnu-eigen-Include-unsupported-features.patch Content-Transfer-Encoding: quoted-printable From=20593edb81de8b6ad064d388aa39896ef8667e06bd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 8 May 2018 16:59:07 +0200 Subject: [PATCH 3/5] gnu: eigen: Include unsupported features. * gnu/packages/algebra.scm (eigen)[source]: Do not build the tests for unsupported features, but include the files. Signed-off-by: Kei Kebreau =2D-- gnu/packages/algebra.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 210b734b9..ff8478c50 100644 =2D-- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -732,9 +732,10 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transf= orm} (DHT).") ;; but maintainers say it's a known issue and it's unsuppor= ted ;; anyway, so just skip them. '(begin + (substitute* "unsupported/CMakeLists.txt" + (("add_subdirectory\\(test.*") + "# Do not build the tests for unsupported features.\n= ")) (substitute* "CMakeLists.txt" =2D (("add_subdirectory\\(unsupported\\)") =2D "# Do not build the tests for unsupported features.= \n") ;; Work around ;; . (("\"include/eigen3\"") =2D-=20 2.17.0 --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=0004-gnu-swig-Patch-for-Octave-4.4.patch Content-Transfer-Encoding: quoted-printable From=201d714096fd7f37eddfb87dfe3a933588e55ab77f Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 25 May 2018 22:25:21 -0400 Subject: [PATCH 4/5] gnu: swig: Patch for Octave 4.4. * gnu/packages/swig.scm (swig)[source]: Add patch. * gnu/packages/patches/swig-octave-patches.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. =2D-- gnu/local.mk | 1 + .../patches/swig-octave-patches.patch | 1119 +++++++++++++++++ gnu/packages/swig.scm | 5 +- 3 files changed, 1124 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/swig-octave-patches.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4cdbaec1d..6ae25c1f3 100644 =2D-- a/gnu/local.mk +++ b/gnu/local.mk @@ -1102,6 +1102,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/strace-kernel-4.16.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ + %D%/packages/patches/swig-octave-patches.patch \ %D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-format-security.patch \ %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \ diff --git a/gnu/packages/patches/swig-octave-patches.patch b/gnu/packages/= patches/swig-octave-patches.patch new file mode 100644 index 000000000..9fb64a7b1 =2D-- /dev/null +++ b/gnu/packages/patches/swig-octave-patches.patch @@ -0,0 +1,1119 @@ +This patch represents the recently added support for Octave version 4.4 fo= und +here: + +https://github.com/swig/swig/commit/12c66f9b7d884020e896ce92b9783bc3bac95d= 2d + +diff -urN swig-3.0.12.old/CHANGES.current swig-3.0.12.new/CHANGES.current +--- swig-3.0.12.old/CHANGES.current 2017-01-27 18:52:02.000000000 -0500 ++++ swig-3.0.12.new/CHANGES.current 2018-05-26 08:40:06.501850058 -0400 +@@ -4,6 +4,14 @@ + Issue # numbers mentioned below can be found on Github. For more details,= add + the issue number to the end of the URL: https://github.com/swig/swig/issu= es/ +=20 ++Version 4.0.0 (in progress) ++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D ++ ++2018-05-12: kwwette ++ [Octave] add support for version 4.4 ++ - Should not introduce any user-visible incompatibilities ++ ++ + Version 3.0.12 (27 Jan 2017) + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D +=20 +diff -urN swig-3.0.12.old/Examples/Makefile.in swig-3.0.12.new/Examples/Ma= kefile.in +--- swig-3.0.12.old/Examples/Makefile.in 2017-01-27 18:52:02.000000000 -05= 00 ++++ swig-3.0.12.new/Examples/Makefile.in 2018-05-26 08:39:16.510124553 -04= 00 +@@ -463,7 +463,7 @@ + # ----------------------------------------------------------------- +=20 + octave_run: +- OCTAVE_HISTFILE=3D/dev/null $(RUNTOOL) $(OCTAVE) $(OCTAVE_SCRIPT) $(RUNP= IPE) ++ env OCTAVE_PATH=3D OCTAVE_HISTFILE=3D/dev/null $(RUNTOOL) $(OCTAVE) $(OC= TAVE_SCRIPT) $(RUNPIPE) +=20 + # ----------------------------------------------------------------- + # Version display +diff -urN swig-3.0.12.old/Examples/octave/module_load/runme.m swig-3.0.12.= new/Examples/octave/module_load/runme.m +--- swig-3.0.12.old/Examples/octave/module_load/runme.m 2017-01-27 18:52:0= 2.000000000 -0500 ++++ swig-3.0.12.new/Examples/octave/module_load/runme.m 2018-05-26 08:39:1= 6.518124669 -0400 +@@ -5,63 +5,73 @@ +=20 + # load module + clear all; ++assert(exist("swigexample") =3D=3D 3); + swigexample; ++assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +-assert(exist("swigexample","var")); + clear all ++assert(exist("swigexample") =3D=3D 3); + swigexample; ++assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +-assert(exist("swigexample","var")); + clear all +=20 + # load module in a function globally before base context + clear all; +-function testme ++function testme_1 ++ assert(exist("swigexample") =3D=3D 3); + swigexample; ++ assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +- assert(exist("swigexample","var")); + endfunction +-testme +-testme ++testme_1 ++testme_1 ++assert(exist("swigexample") =3D=3D 3); + swigexample; ++assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +-assert(exist("swigexample","var")); + clear all +-function testme ++function testme_2 ++ assert(exist("swigexample") =3D=3D 3); + swigexample; ++ assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +- assert(exist("swigexample","var")); + endfunction +-testme +-testme ++testme_2 ++testme_2 ++assert(exist("swigexample") =3D=3D 3); + swigexample; ++assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +-assert(exist("swigexample","var")); + clear all +=20 + # load module in a function globally after base context + clear all; ++assert(exist("swigexample") =3D=3D 3); + swigexample; ++assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +-assert(exist("swigexample","var")); +-function testme ++function testme_3 ++ assert(exist("swigexample") =3D=3D 3); + swigexample; ++ assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +- assert(exist("swigexample","var")); + endfunction +-testme +-testme ++testme_3 ++testme_3 + clear all ++assert(exist("swigexample") =3D=3D 3); + swigexample; ++assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +-assert(exist("swigexample","var")); +-function testme ++function testme_4 ++ assert(exist("swigexample") =3D=3D 3); + swigexample; ++ assert(isglobal("swigexample")); + assert(cvar.ivar =3D=3D ifunc); +- assert(exist("swigexample","var")); + endfunction +-testme +-testme ++testme_4 ++testme_4 + clear all +=20 + # octave 3.0.5 randomly crashes on the remaining tests +@@ -71,13 +81,16 @@ +=20 + # load module with no cvar + clear all; ++who; ++assert(exist("swigexample2") =3D=3D 3); + swigexample2; ++assert(isglobal("swigexample2")); + assert(swigexample2.ivar =3D=3D ifunc); +-assert(exist("swigexample2","var")); +-assert(!isglobal("cvar")) ++assert(!exist("cvar", "var")); + clear all ++assert(exist("swigexample2") =3D=3D 3); + swigexample2; ++assert(isglobal("swigexample2")); + assert(swigexample2.ivar =3D=3D ifunc); +-assert(exist("swigexample2","var")); +-assert(!isglobal("cvar")) ++assert(!exist("cvar", "var")); + clear all +diff -urN swig-3.0.12.old/Examples/test-suite/octave/Makefile.in swig-3.0.= 12.new/Examples/test-suite/octave/Makefile.in +--- swig-3.0.12.old/Examples/test-suite/octave/Makefile.in 2017-01-27 18:5= 2:02.000000000 -0500 ++++ swig-3.0.12.new/Examples/test-suite/octave/Makefile.in 2018-05-26 08:3= 9:16.511124567 -0400 +@@ -59,7 +59,7 @@ + # a file is found which has _runme.m appended after the testcase name. + run_testcase =3D \ + if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ +- env LD_LIBRARY_PATH=3D.:$$LD_LIBRARY_PATH OCTAVE_PATH=3D$(srcdir):$$OC= TAVE_PATH $(RUNTOOL) $(OCTAVE) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX= ); \ ++ env LD_LIBRARY_PATH=3D.:$$LD_LIBRARY_PATH OCTAVE_PATH=3D$(srcdir) OCTA= VE_HISTFILE=3D/dev/null $(RUNTOOL) $(OCTAVE) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*= $(SCRIPTSUFFIX); \ + fi +=20 + # Clean: remove the generated .m file +diff -urN swig-3.0.12.old/Examples/test-suite/octave/Makefile.in.orig swig= -3.0.12.new/Examples/test-suite/octave/Makefile.in.orig +--- swig-3.0.12.old/Examples/test-suite/octave/Makefile.in.orig 1969-12-31= 19:00:00.000000000 -0500 ++++ swig-3.0.12.new/Examples/test-suite/octave/Makefile.in.orig 2017-01-27= 18:52:02.000000000 -0500 +@@ -0,0 +1,92 @@ ++####################################################################### ++# Makefile for octave test-suite ++####################################################################### ++ ++LANGUAGE =3D octave ++OCTAVE =3D @OCTAVE@ ++SCRIPTSUFFIX =3D _runme.m ++ ++srcdir =3D @srcdir@ ++top_srcdir =3D @top_srcdir@ ++top_builddir =3D @top_builddir@ ++ ++CPP_TEST_CASES +=3D \ ++ li_std_pair_extra \ ++ li_std_string_extra \ ++ octave_cell_deref\ ++ octave_dim ++ ++CPP_TEST_BROKEN +=3D \ ++ implicittest \ ++ li_implicit \ ++ li_std_set \ ++ li_std_stream ++ ++#C_TEST_CASES +=3D ++ ++# ++# This test only works with modern C compilers ++# ++#C_TEST_CASES +=3D \ ++# complextest ++ ++include $(srcdir)/../common.mk ++ ++# Overridden variables here ++LIBS =3D -L. ++CSRCS =3D octave_empty.c ++ ++# Custom tests - tests with additional commandline options ++# none! ++ ++# Rules for the different types of tests ++%.cpptest: ++ $(setup) ++ +$(swig_and_compile_cpp) ++ $(run_testcase) ++ ++%.ctest: ++ $(setup) ++ +$(swig_and_compile_c) ++ $(run_testcase) ++ ++%.multicpptest: ++ $(setup) ++ +$(swig_and_compile_multi_cpp) ++ $(run_testcase) ++ ++# Runs the testcase. A testcase is only run if ++# a file is found which has _runme.m appended after the testcase name. ++run_testcase =3D \ ++ if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ ++ env LD_LIBRARY_PATH=3D.:$$LD_LIBRARY_PATH OCTAVE_PATH=3D$(srcdir):$$OC= TAVE_PATH $(RUNTOOL) $(OCTAVE) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX= ); \ ++ fi ++ ++# Clean: remove the generated .m file ++%.clean: ++ @rm -f hugemod.h hugemod_a.i hugemod_b.i hugemod_a.m hugemod_b.m hugemod= _runme.m ++ @rm -f $*.m; ++ ++clean: ++ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR=3D'$(SRCDIR)' oct= ave_clean ++ ++cvsignore: ++ @echo '*wrap* *.mc *.so *.dll *.exp *.lib' ++ @echo Makefile ++ @for i in ${CPP_TEST_CASES} ${C_TEST_CASES}; do echo $$i.m; done ++ @for i in ${CPP_TEST_CASES} ${C_TEST_CASES}; do if grep -q $${i}_runme.m= CVS/Entries ; then echo $${i}_runme.m; fi; done ++ @echo clientdata_prop_a.m ++ @echo clientdata_prop_b.m ++ @echo imports_a.m ++ @echo imports_b.m ++ @echo mod_a.m mod_b.m ++ @echo hugemod.h hugemod_a.i hugemod_b.i hugemod_a.m hugemod_b.m hugemod_= runme.m ++ @echo template_typedef_import.m ++ ++ ++hugemod: ++ perl hugemod.pl ++ $(MAKE) hugemod_a.cpptest ++ $(MAKE) hugemod_b.cpptest ++ time $(OCTAVE) hugemod_runme.m ++ time $(OCTAVE) hugemod_runme.m +diff -urN swig-3.0.12.old/Examples/test-suite/register_par.i swig-3.0.12.n= ew/Examples/test-suite/register_par.i +--- swig-3.0.12.old/Examples/test-suite/register_par.i 2017-01-27 18:52:02= .000000000 -0500 ++++ swig-3.0.12.new/Examples/test-suite/register_par.i 2018-05-26 08:40:28= .146164544 -0400 +@@ -2,5 +2,5 @@ +=20 + // bug # 924413 + %inline { +- void clear_tree_flags(register struct tree *tp, register int i) {} ++ void clear_tree_flags(register struct swig_tree *tp, register int i) {} + } +diff -urN swig-3.0.12.old/Examples/test-suite/register_par.i.orig swig-3.0= .12.new/Examples/test-suite/register_par.i.orig +--- swig-3.0.12.old/Examples/test-suite/register_par.i.orig 1969-12-31 19:= 00:00.000000000 -0500 ++++ swig-3.0.12.new/Examples/test-suite/register_par.i.orig 2018-05-26 08:= 39:16.518124669 -0400 +@@ -0,0 +1,6 @@ ++%module register_par ++ ++// bug # 924413 ++%inline { ++ void clear_tree_flags(register struct tree *tp, register int i) {} ++} +diff -urN swig-3.0.12.old/Examples/test-suite/register_par.i.rej swig-3.0.= 12.new/Examples/test-suite/register_par.i.rej +--- swig-3.0.12.old/Examples/test-suite/register_par.i.rej 1969-12-31 19:0= 0:00.000000000 -0500 ++++ swig-3.0.12.new/Examples/test-suite/register_par.i.rej 2018-05-26 08:3= 9:16.518124669 -0400 +@@ -0,0 +1,15 @@ ++--- Examples/test-suite/register_par.i +++++ Examples/test-suite/register_par.i ++@@ -1,10 +1,10 @@ ++ %module register_par ++=20 ++ %{ ++-struct tree; +++struct swig_tree; ++ %} ++=20 ++ // bug # 924413 ++ %inline { ++- void clear_tree_flags(register struct tree *tp, register int i) {} +++ void clear_tree_flags(register struct swig_tree *tp, register int i) {} ++ } +diff -urN swig-3.0.12.old/Lib/octave/octcontainer.swg swig-3.0.12.new/Lib/= octave/octcontainer.swg +--- swig-3.0.12.old/Lib/octave/octcontainer.swg 2017-01-27 18:52:02.000000= 000 -0500 ++++ swig-3.0.12.new/Lib/octave/octcontainer.swg 2018-05-26 08:39:16.488124= 234 -0400 +@@ -567,7 +567,11 @@ + if (seq) *seq =3D p; + return SWIG_OLDOBJ; + } ++%#if SWIG_OCTAVE_PREREQ(4,4,0) ++ } else if (obj.iscell()) { ++%#else + } else if (obj.is_cell()) { ++%#endif + try { + OctSequence_Cont octseq(obj); + if (seq) { +diff -urN swig-3.0.12.old/Lib/octave/octprimtypes.swg swig-3.0.12.new/Lib/= octave/octprimtypes.swg +--- swig-3.0.12.old/Lib/octave/octprimtypes.swg 2017-01-27 18:52:02.000000= 000 -0500 ++++ swig-3.0.12.new/Lib/octave/octprimtypes.swg 2018-05-26 08:39:16.492124= 292 -0400 +@@ -18,7 +18,11 @@ + SWIGINTERN int + SWIG_AsVal_dec(bool)(const octave_value& ov, bool *val) + { ++%#if SWIG_OCTAVE_PREREQ(4,4,0) ++ if (!ov.islogical()) ++%#else + if (!ov.is_bool_type()) ++%#endif + return SWIG_ERROR; + if (val) + *val =3D ov.bool_value(); +@@ -214,7 +218,13 @@ + SWIGINTERN int + SWIG_AsCharPtrAndSize(octave_value ov, char** cptr, size_t* psize, int *a= lloc) + { +- if (ov.is_cell() && ov.rows() =3D=3D 1 && ov.columns() =3D=3D 1) ++ if ( ++%#if SWIG_OCTAVE_PREREQ(4,4,0) ++ ov.iscell() ++%#else ++ ov.is_cell() ++%#endif ++ && ov.rows() =3D=3D 1 && ov.columns() =3D=3D 1) + ov =3D ov.cell_value()(0); + if (!ov.is_string()) + return SWIG_TypeError; +diff -urN swig-3.0.12.old/Lib/octave/octrun.swg swig-3.0.12.new/Lib/octave= /octrun.swg +--- swig-3.0.12.old/Lib/octave/octrun.swg 2017-01-27 18:52:02.000000000 -0= 500 ++++ swig-3.0.12.new/Lib/octave/octrun.swg 2018-05-26 08:39:16.509124538 -0= 400 +@@ -151,6 +151,67 @@ + const swig_type_info **base; + }; +=20 ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ // in Octave 4.4 behaviour of octave_builtin() appears to have changed = and 'self' argument is no longer passed ++ // to function (maybe because this is now a 'method'??) so need to crea= te our own octave_function subclass ++#define SWIG_OCTAVE_BOUND_FUNC(func, args) octave_value(new octave_swig_b= ound_func(func, args)) ++ class octave_swig_bound_func : public octave_function { ++ public: ++ ++ octave_swig_bound_func(void) : octave_function(), method(0), first_ar= gs() ++ { } ++ ++ octave_swig_bound_func(octave_function* _method, octave_value_list _f= irst_args) ++ : octave_function("", ""), method(_method), first_args(_first_args) ++ { } ++ ++ octave_swig_bound_func(const octave_swig_bound_func& f) =3D delete; ++ ++ octave_swig_bound_func& operator=3D (const octave_swig_bound_func& f)= =3D delete; ++ ++ ~octave_swig_bound_func(void) =3D default; ++ ++ bool is_function(void) const { return true; } ++ ++ octave_function* function_value(bool =3D false) { return this; } ++ ++ octave_value_list call(octave::tree_evaluator& tw, int nargout =3D 0,= const octave_value_list& args =3D octave_value_list()) { ++ octave_value_list all_args; ++ all_args.append(first_args); ++ all_args.append(args); ++ return method->call(tw, nargout, all_args); ++ } ++ ++ octave_value subsref(const std::string &ops, const std::list < octave= _value_list > &idx) { ++ octave_value_list ovl =3D subsref(ops, idx, 1); ++ return ovl.length() ? ovl(0) : octave_value(); ++ } ++ ++ octave_value_list subsref(const std::string &ops, const std::list < o= ctave_value_list > &idx, int nargout) { ++ assert(ops.size() > 0); ++ assert(ops.size() =3D=3D idx.size()); ++ if (ops !=3D "(") ++ error("invalid function call"); ++ octave::tree_evaluator& tw =3D octave::interpreter::the_interpreter= ()->get_evaluator(); ++ return call(tw, nargout, *idx.begin()); ++ } ++ ++ protected: ++ ++ octave_function* method; ++ octave_value_list first_args; ++ ++ std::set dispatch_classes; ++ ++ private: ++ ++ DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA ++ }; ++ DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(octave_swig_bound_func, "octave_swi= g_bound_func", "octave_swig_bound_func"); ++#else ++#define SWIG_OCTAVE_BOUND_FUNC(func, args) octave_value(func) ++#endif ++ + // octave_swig_type plays the role of both the shadow class and the cla= ss=20 + // representation within Octave, since there is no support for classes. + // +@@ -323,13 +384,17 @@ + } +=20 + octave_value_list member_deref(member_value_pair *m, const octave_val= ue_list &args) { +- if (m->second.is_defined()) +- return m->second; +- else if (m->first) { ++ if (m->second.is_defined()) { ++ if (m->second.is_function() || m->second.is_function_handle()) { ++ return SWIG_OCTAVE_BOUND_FUNC(m->second.function_value(), args); ++ } else { ++ return m->second; ++ } ++ } else if (m->first) { + if (m->first->get_method) + return m->first->get_method(args, 1); + else if (m->first->method) +- return octave_value(new octave_builtin(m->first->method)); ++ return SWIG_OCTAVE_BOUND_FUNC(new octave_builtin(m->first->meth= od), args); + } + error("undefined member"); + return octave_value_list(); +@@ -383,7 +448,11 @@ + return dim_vector(1,1); +=20 + // Return value should be cell or matrix of integers ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ if (out.iscell()) { ++#else + if (out.is_cell()) { ++#endif + const Cell & c=3Dout.cell_value(); + int ndim =3D c.rows(); + if (ndim=3D=3D1 && c.columns()!=3D1) ndim =3D c.columns(); +@@ -401,7 +470,11 @@ + if (error_state) return dim_vector(1,1); + } + return d; ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ } else if (out.is_matrix_type() || out.isnumeric() ) { ++#else + } else if (out.is_matrix_type() || out.is_numeric_type() ) { ++#endif + if (out.rows()=3D=3D1 || out.columns()=3D=3D1) { + Array a =3D out.int_vector_value(); + if (error_state) return dim_vector(1,1); +@@ -476,8 +549,12 @@ + } + types.insert(types.end(), rhs.types.begin(), rhs.types.end()); + members.insert(rhs.members.begin(), rhs.members.end()); ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ assign(rhs.swig_type_name(), rhs.as_value()); ++#else + rhs.types.clear(); + rhs.members.clear(); ++#endif + } +=20 + typedef member_map::const_iterator swig_member_const_iterator; +@@ -848,7 +925,14 @@ + octave_function *fcn =3D is_valid_function(symbol, std::string(), f= alse); + if (!fcn) + return false; ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::tree_evaluator& tw =3D octave::interpreter::the_interpreter= ()->get_evaluator(); ++ octave_value_list retval =3D fcn->call(tw, 1, args); ++ if (retval.length() =3D=3D 1) ++ ret =3D retval(0); ++#else + ret =3D fcn->do_multi_index_op(1, args)(0); ++#endif + return true; + } +=20 +@@ -1238,7 +1322,13 @@ + } +=20 + SWIGRUNTIME octave_swig_type *swig_value_deref(octave_value ov) { +- if (ov.is_cell() && ov.rows() =3D=3D 1 && ov.columns() =3D=3D 1) ++ if ( ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ ov.iscell() ++#else ++ ov.is_cell() ++#endif ++ && ov.rows() =3D=3D 1 && ov.columns() =3D=3D 1) + ov =3D ov.cell_value()(0); + return swig_value_deref(*ov.internal_rep()); + } +@@ -1261,12 +1351,24 @@ + SWIGRUNTIME octave_value swig_binary_op_##name(const octave_base_value&lh= s,const octave_base_value &rhs) { \ + return octave_swig_type::dispatch_binary_op(lhs,rhs,#name); \ + } ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++#define swigreg_unary_op(name) \ ++if (!octave_value_typeinfo::lookup_unary_op(octave_value::op_##name,tid))= \ ++typeinfo.register_unary_op(octave_value::op_##name,tid,swig_unary_op_##na= me); ++#else + #define swigreg_unary_op(name) \ + if (!octave_value_typeinfo::lookup_unary_op(octave_value::op_##name,tid))= \ + octave_value_typeinfo::register_unary_op(octave_value::op_##name,tid,swig= _unary_op_##name); ++#endif ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++#define swigreg_binary_op(name) \ ++if (!octave_value_typeinfo::lookup_binary_op(octave_value::op_##name,tid1= ,tid2)) \ ++typeinfo.register_binary_op(octave_value::op_##name,tid1,tid2,swig_binary= _op_##name); ++#else + #define swigreg_binary_op(name) \ + if (!octave_value_typeinfo::lookup_binary_op(octave_value::op_##name,tid1= ,tid2)) \ + octave_value_typeinfo::register_binary_op(octave_value::op_##name,tid1,ti= d2,swig_binary_op_##name); ++#endif +=20 + swig_unary_op(not); + swig_unary_op(uplus); +@@ -1300,6 +1402,9 @@ + swig_binary_op(el_or); +=20 + SWIGRUNTIME void SWIG_InstallUnaryOps(int tid) { ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::type_info& typeinfo =3D octave::interpreter::the_interpreter(= )->get_type_info(); ++#endif + swigreg_unary_op(not); + swigreg_unary_op(uplus); + swigreg_unary_op(uminus); +@@ -1309,6 +1414,9 @@ + swigreg_unary_op(decr); + } + SWIGRUNTIME void SWIG_InstallBinaryOps(int tid1, int tid2) { ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::type_info& typeinfo =3D octave::interpreter::the_interpreter(= )->get_type_info(); ++#endif + swigreg_binary_op(add); + swigreg_binary_op(sub); + swigreg_binary_op(mul); +@@ -1357,7 +1465,13 @@ + } +=20 + SWIGRUNTIME int SWIG_Octave_ConvertPtrAndOwn(octave_value ov, void **ptr,= swig_type_info *type, int flags, int *own) { +- if (ov.is_cell() && ov.rows() =3D=3D 1 && ov.columns() =3D=3D 1) ++ if ( ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ ov.iscell() ++#else ++ ov.is_cell() ++#endif ++ && ov.rows() =3D=3D 1 && ov.columns() =3D=3D 1) + ov =3D ov.cell_value()(0); + if (!ov.is_defined() || + (ov.is_matrix_type() && ov.rows() =3D=3D 0 && ov.columns() =3D=3D 0= ) ) { +@@ -1390,14 +1504,30 @@ + } +=20 + SWIGRUNTIMEINLINE octave_value SWIG_Octave_GetGlobalValue(std::string nam= e) { ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::symbol_table& symtab =3D octave::interpreter::the_interpreter()= ->get_symbol_table(); ++ return symtab.global_varval(name); ++#else + return get_global_value(name, true); ++#endif + } +=20 + SWIGRUNTIME void SWIG_Octave_SetGlobalValue(std::string name, const octav= e_value& value) { ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::symbol_table& symtab =3D octave::interpreter::the_interpreter()= ->get_symbol_table(); ++ symtab.global_assign(name, value); ++#else + set_global_value(name, value); ++#endif + } +=20 + SWIGRUNTIME void SWIG_Octave_LinkGlobalValue(std::string name) { ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::symbol_table& symtab =3D octave::interpreter::the_interpreter()= ->get_symbol_table(); ++ octave::symbol_scope symscope =3D octave::interpreter::the_interpreter(= )->get_current_scope(); ++ symscope.assign(name, symtab.global_varval(name)); ++ symscope.mark_global(name); ++#else + #if !SWIG_OCTAVE_PREREQ(3,2,0) + link_to_global_variable(curr_sym_tab->lookup(name, true)); + #else +@@ -1406,6 +1536,7 @@ + #endif + symbol_table::mark_global(name); + #endif ++#endif + } +=20 + SWIGRUNTIME swig_module_info *SWIG_Octave_GetModule(void *clientdata) { +diff -urN swig-3.0.12.old/Lib/octave/octruntime.swg swig-3.0.12.new/Lib/oc= tave/octruntime.swg +--- swig-3.0.12.old/Lib/octave/octruntime.swg 2017-01-27 18:52:02.00000000= 0 -0500 ++++ swig-3.0.12.new/Lib/octave/octruntime.swg 2018-05-26 08:39:16.50712450= 9 -0400 +@@ -139,7 +139,11 @@ + #endif + #if SWIG_OCTAVE_PREREQ(4,2,0) + try { ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::feval(name, octave_value_list(), 0); ++#else + feval(name, octave_value_list(), 0); ++#endif + retn =3D true; + } catch (octave::execution_exception&) { } + #else +@@ -170,7 +174,7 @@ + frame.protect_var(discard_error_messages); discard_error_mes= sages =3D true; + frame.protect_var(discard_warning_messages); discard_warning_m= essages =3D true; + #else +- unwind_protect::begin_frame("SWIG_Octave_LoadModule"); ++ unwind_protect::begin_frame("SWIG_Octave_InstallFunction"); + unwind_protect_int(error_state); error_state =3D 0; + unwind_protect_int(warning_state); warning_state =3D= 0; + unwind_protect_bool(discard_error_messages); discard_error_mes= sages =3D true; +@@ -181,7 +185,11 @@ + args.append(octloadfcn->fcn_file_name()); + #if SWIG_OCTAVE_PREREQ(4,2,0) + try { ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::feval("autoload", args, 0); ++#else + feval("autoload", args, 0); ++#endif + retn =3D true; + } catch (octave::execution_exception&) { } + #else +@@ -312,6 +320,8 @@ + Loads the SWIG-generated module `" SWIG_name_d "'.\n\ + @end deftypefn"; +=20 ++void __swig_atexit__(void) { ::_Exit(0); } ++ + DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) { +=20 + static octave_swig_type* module_ns =3D 0; +@@ -322,7 +332,9 @@ + // version 3.4.*, but reappeared in 4.2.*, so turn on for all versions = after 3.2.*. + // can be turned off with macro definition. + #ifndef SWIG_OCTAVE_NO_SEGFAULT_HACK +-#if SWIG_OCTAVE_PREREQ(3,2,0) ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ atexit(__swig_atexit__); ++#elif SWIG_OCTAVE_PREREQ(3,2,0) + octave_exit =3D ::_Exit; + #endif + #endif +@@ -351,15 +363,54 @@ + "__swig_atexit__; " + "atexit(\"__swig_atexit__\", false); " + "atexit(\"__swig_atexit__\")"); ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::feval("evalin", eval_args, 0); ++#else + feval("evalin", eval_args, 0); + #endif ++#endif +=20 ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ { ++ octave::type_info& typeinfo =3D octave::interpreter::the_interprete= r()->get_type_info(); ++ string_vector types =3D typeinfo.installed_type_names(); ++ bool register_octave_swig_ref =3D true; ++ bool register_octave_swig_packed =3D true; ++ bool register_octave_swig_bound_func =3D true; ++ for (int i =3D 0; i < types.numel(); ++i) { ++ if (types(i) =3D=3D octave_swig_ref::static_type_name()) { ++ register_octave_swig_ref =3D false; ++ } ++ if (types(i) =3D=3D octave_swig_packed::static_type_name()) { ++ register_octave_swig_packed =3D false; ++ } ++ if (types(i) =3D=3D octave_swig_bound_func::static_type_name()) { ++ register_octave_swig_bound_func =3D false; ++ } ++ } ++ if (register_octave_swig_ref) { ++ octave_swig_ref::register_type(); ++ } ++ if (register_octave_swig_packed) { ++ octave_swig_packed::register_type(); ++ } ++ if (register_octave_swig_bound_func) { ++ octave_swig_bound_func::register_type(); ++ } ++ } ++#else + octave_swig_ref::register_type(); + octave_swig_packed::register_type(); ++#endif + SWIG_InitializeModule(0); + SWIG_PropagateClientData(); +=20 ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::call_stack& stack =3D octave::interpreter::the_interpreter()-= >get_call_stack(); ++ octave_function *me =3D stack.current(); ++#else + octave_function *me =3D octave_call_stack::current(); ++#endif +=20 + if (!SWIG_Octave_InstallFunction(me, "subclass")) { + return octave_value_list(); +@@ -426,10 +477,12 @@ + } + } +=20 +-#if !SWIG_OCTAVE_PREREQ(3,2,0) +- mlock(me->name()); +-#else ++#if SWIG_OCTAVE_PREREQ(4,4,0) ++ octave::interpreter::the_interpreter()->mlock(); ++#elif SWIG_OCTAVE_PREREQ(3,2,0) + mlock(); ++#else ++ mlock(me->name()); + #endif +=20 + } +diff -urN swig-3.0.12.old/Lib/octave/std_pair.i swig-3.0.12.new/Lib/octave= /std_pair.i +--- swig-3.0.12.old/Lib/octave/std_pair.i 2017-01-27 18:52:02.000000000 -0= 500 ++++ swig-3.0.12.new/Lib/octave/std_pair.i 2018-05-26 08:39:16.489124248 -0= 400 +@@ -38,7 +38,13 @@ + } +=20 + static int asval(const octave_value& obj, std::pair *val) { +- if (obj.is_cell()) { ++ if ( ++%#if SWIG_OCTAVE_PREREQ(4,4,0) ++ obj.iscell() ++%#else ++ obj.is_cell() ++%#endif ++ ) { + Cell c=3Dobj.cell_value(); + if (c.numel()<2) { + error("pair from Cell array requires at least two elements"); +@@ -96,7 +102,13 @@ + } +=20 + static int asptr(const octave_value& obj, std::pair **val) { +- if (obj.is_cell()) { ++ if ( ++%#if SWIG_OCTAVE_PREREQ(4,4,0) ++ obj.iscell() ++%#else ++ obj.is_cell() ++%#endif ++ ) { + Cell c=3Dobj.cell_value(); + if (c.numel()<2) { + error("pair from Cell array requires at least two elements"); +diff -urN swig-3.0.12.old/.travis.yml swig-3.0.12.new/.travis.yml +--- swig-3.0.12.old/.travis.yml 2017-01-27 18:52:02.000000000 -0500 ++++ swig-3.0.12.new/.travis.yml 2018-05-26 08:39:16.520124698 -0400 +@@ -92,6 +92,11 @@ + dist: trusty + - compiler: gcc + os: linux ++ env: SWIGLANG=3Doctave SWIGJOBS=3D-j2 VER=3D4.4 CPP11=3D1 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux + env: SWIGLANG=3Dperl5 + sudo: required + dist: trusty +diff -urN swig-3.0.12.old/.travis.yml.orig swig-3.0.12.new/.travis.yml.orig +--- swig-3.0.12.old/.travis.yml.orig 1969-12-31 19:00:00.000000000 -0500 ++++ swig-3.0.12.new/.travis.yml.orig 2017-01-27 18:52:02.000000000 -0500 +@@ -0,0 +1,334 @@ ++language: cpp ++matrix: ++ include: ++ - compiler: clang ++ os: linux ++ env: SWIGLANG=3D ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3D ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3D ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3D SWIG_CC=3Dgcc-5 SWIG_CXX=3Dg++-5 CPP11=3D1 ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3D SWIG_CC=3Dgcc-6 SWIG_CXX=3Dg++-6 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dcsharp ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dd ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dgo ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dgo VER=3D1.5 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dguile ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Djava ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Djavascript ENGINE=3Dnode ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Djavascript ENGINE=3Djsc ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Djavascript ENGINE=3Dv8 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dlua ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dlua VER=3D5.3 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Doctave SWIGJOBS=3D-j2 # 3.8 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Doctave SWIGJOBS=3D-j2 VER=3D4.0 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Doctave SWIGJOBS=3D-j2 VER=3D4.2 CPP11=3D1 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dperl5 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dphp5 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dphp VER=3D7.0 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dphp VER=3D7.1 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython VER=3D2.4 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython VER=3D2.5 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython VER=3D2.6 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython # 2.7 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython PY3=3D3 VER=3D3.2 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython PY3=3D3 VER=3D3.3 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython PY3=3D3 VER=3D3.4 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython PY3=3D3 VER=3D3.5 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-builtin VER=3D2.6 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-builtin ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-builtin PY3=3D3 VER=3D3.4 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-builtin PY3=3D3 VER=3D3.5 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-builtin PY3=3D3 VER=3D3.5 S= WIGOPTPY3=3D ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-O ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-classic ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dr ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Druby VER=3D1.9.3 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Druby VER=3D2.0.0 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Druby VER=3D2.3.0 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dscilab ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dtcl ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3Dcsharp SWIG_CC=3Dgcc-5 SWIG_CXX=3Dg++-5 CPP11=3D1 ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3Djava SWIG_CC=3Dgcc-5 SWIG_CXX=3Dg++-5 CPP11=3D1 ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3Dpython SWIG_CC=3Dgcc-5 SWIG_CXX=3Dg++-5 CPP11=3D1 ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3Dcsharp SWIG_CC=3Dgcc-6 SWIG_CXX=3Dg++-6 CPP14=3D1 ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3Djava SWIG_CC=3Dgcc-6 SWIG_CXX=3Dg++-6 CPP14=3D1 ++ sudo: required ++ dist: trusty ++ - os: linux ++ env: SWIGLANG=3Dpython SWIG_CC=3Dgcc-6 SWIG_CXX=3Dg++-6 CPP14=3D1 ++ sudo: required ++ dist: trusty ++ - compiler: gcc ++ os: osx ++ env: SWIGLANG=3D ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3D ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dcsharp ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dgo ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dguile ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Djava ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dlua ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dperl5 ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dphp5 ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dpython ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dpython PY3=3D3 ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Druby ++ - compiler: clang ++ os: osx ++ env: SWIGLANG=3Dtcl ++ ++ allow_failures: ++ # Lots of failing tests currently ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Docaml ++ sudo: required ++ dist: trusty ++ # Not quite working yet ++ - compiler: gcc ++ os: linux ++ env: SWIGLANG=3Dpython SWIG_FEATURES=3D-O ++ sudo: required ++ dist: trusty ++before_install: ++ - date -u ++ - uname -a ++ - if test "$TRAVIS_OS_NAME" =3D "linux"; then lscpu && cat /proc/cpuinf= o | grep "model name" && cat /proc/meminfo | grep MemTotal; fi ++ - if test "$TRAVIS_OS_NAME" =3D "osx"; then sysctl -a | grep brand_stri= ng; fi ++ # Travis overrides CC environment with compiler predefined values ++ - if test -n "$SWIG_CC"; then export CC=3D"$SWIG_CC"; fi ++ - if test -n "$SWIG_CXX"; then export CXX=3D"$SWIG_CXX"; fi ++install: ++ - if test "$TRAVIS_OS_NAME" =3D "linux"; then source Tools/travis-linux= -install.sh; fi ++ - if test "$TRAVIS_OS_NAME" =3D "osx"; then source Tools/travis-osx-ins= tall.sh; fi ++ - if test -n "$CPP11"; then CONFIGOPTS+=3D(--enable-cpp11-testing --wit= hout-maximum-compile-warnings "CXXFLAGS=3D-std=3Dc++11 -Wall -Wextra" "CFLA= GS=3D-std=3Dc11 -Wall -Wextra") && export CSTD=3Dc11 && export CPPSTD=3Dc++= 11; fi ++ - if test -n "$CPP14"; then CONFIGOPTS+=3D(--enable-cpp11-testing --wit= hout-maximum-compile-warnings "CXXFLAGS=3D-std=3Dc++14 -Wall -Wextra" "CFLA= GS=3D-std=3Dc11 -Wall -Wextra") && export CSTD=3Dc11 && export CPPSTD=3Dc++= 14; fi ++ - ls -la $(which $CC) ++ - ls -la $(which $CXX) ++ - $CC --version ++ - $CXX --version ++script: ++ - echo 'Configuring...' && echo -en 'travis_fold:start:script.1\\r' ++ - if test -n "$SWIGLANG"; then CONFIGOPTS+=3D(--without-alllang --with-= $WITHLANG); fi ++ - echo "${CONFIGOPTS[@]}" ++ - ./autogen.sh && mkdir -p build/build && cd build/build && ../../confi= gure "${CONFIGOPTS[@]}" ++ - echo -en 'travis_fold:end:script.1\\r' ++ - make -s $SWIGJOBS ++ - ./swig -version && ./swig -pcreversion ++ - if test -z "$SWIGLANG"; then make -s $SWIGJOBS check-ccache; fi ++ - if test -z "$SWIGLANG"; then make -s $SWIGJOBS check-errors-test-suit= e; fi ++ - echo 'Installing...' && echo -en 'travis_fold:start:script.2\\r' ++ - if test -z "$SWIGLANG"; then sudo make -s install && swig -version &&= ccache-swig -V; fi ++ - echo -en 'travis_fold:end:script.2\\r' ++ # Stricter compile flags for examples. Various headers and SWIG generat= ed code prevents full use of -pedantic. ++ - if test -n "$SWIGLANG"; then cflags=3D$($TRAVIS_BUILD_DIR/Tools/testf= lags.py --language $SWIGLANG --cflags --std=3D$CSTD --compiler=3D$CC) && ec= ho $cflags; fi ++ - if test -n "$SWIGLANG"; then cxxflags=3D$($TRAVIS_BUILD_DIR/Tools/tes= tflags.py --language $SWIGLANG --cxxflags --std=3D$CPPSTD --compiler=3D$CC)= && echo $cxxflags; fi ++ - if test -n "$SWIGLANG"; then make -s check-$SWIGLANG-version; fi ++ - if test -n "$SWIGLANG"; then make check-$SWIGLANG-enabled; fi ++ - if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-examples = CFLAGS=3D"$cflags" CXXFLAGS=3D"$cxxflags"; fi ++ - if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-test-suit= e CFLAGS=3D"$cflags" CXXFLAGS=3D"$cxxflags"; fi ++ - echo 'Cleaning...' && echo -en 'travis_fold:start:script.3\\r' ++ - make check-maintainer-clean && ../../configure $CONFIGOPTS ++ - echo -en 'travis_fold:end:script.3\\r' diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm index b931db412..34163aa9e 100644 =2D-- a/gnu/packages/swig.scm +++ b/gnu/packages/swig.scm @@ -22,6 +22,7 @@ #:use-module (guix download) #:use-module (guix licenses) #:use-module (guix build-system gnu) + #:use-module (gnu packages) #:use-module (gnu packages pcre) #:use-module (gnu packages guile) #:use-module (gnu packages boost) @@ -39,7 +40,9 @@ name "-" version ".tar.gz")) (sha256 (base32 =2D "0kf99ygrjs5616gsqhz1l7bib3a12izmxi7g48bwblbymr3z9ybw")))) + "0kf99ygrjs5616gsqhz1l7bib3a12izmxi7g48bwblbymr3z9ybw")) + (patches + (search-patches "swig-octave-patches.patch")))) (build-system gnu-build-system) (arguments '(#:phases =2D-=20 2.17.0 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAlsKCCcACgkQ5qXuPBlG eg3OeA//f+i6/J61ZaI2Me3kRqRp973nnM5hUkSLitdNinqA/pLUEWqB2+NeSysm h+32d32eZInx+KIEtg2x+isxSGln8I0l2N+CbhHKhWQyXtC7deaXjqlCP9gMhxUT BUSWVe325M+3AS7nlw2Q0S8yo/zXGu86o7cbYd6I0uqSsU+KfuACIuVEmvPlFP1g 8mKEolhLyEsULp+Ag0cXxTYEKihCfXtlBEH1TbtikB3UmfZylouFerYk4TcfFfZE 2DLTH1GH6rWKwuG/BXBV0Za5cICL81tes7EsiV0WvKQj5vgP7gIBoG7L2nv4hCaG wUsHeZAbDMqfS2gs0wh8F+qiXz8cDjABJGQJG6lDPgTZSs11Rp0JCU88y94/R9uL 8RwKM0wPIBWUMqkl8HHfmSp3yjq8vdnR0OH4EgVyI2DYEtoDcJOiTvLm+CEyx/zU oULp59qnkIz+8sZCEFWmzjh8knyRvGK3Dr4p4tImihsz//dN6WCi9nIPXF54Rl3m fC9cQV39iVKgviI+wBtyMD6x2B4+HyeOdy+DE/ruonswYfJ/ZqMPFSEzk6vhuhMZ 3yJQhNhFRrBzuy4n/g/WFYZ9aqNF0FfGvp8mJF7iJQd//76jvIb1IqjxDnFWMZ/r wKgw8rsTNCjG/OqkvCdUlAy1ZU5ApukPOn0cpUhPfIIVDUsEsxQ= =YbBO -----END PGP SIGNATURE----- --==-=-=--