[PATCH 1/3] gnu: octave: Update to 4.4.0.

DoneSubmitted by Kei Kebreau.
Details
4 participants
  • Jonathan Brielmaier
  • Kei Kebreau
  • Ludovic Courtès
  • Ricardo Wurmus
Owner
unassigned
Severity
normal
K
K
Kei Kebreau wrote on 17 May 2018 01:10
(address . guix-patches@gnu.org)(name . Kei Kebreau)(address . kkebreau@posteo.net)
20180516231033.1680-1-kkebreau@posteo.net
* gnu/packages/maths.scm (octave): Update to 4.4.0.--- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Toggle diff (24 lines)diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scmindex 2e6f79ad5..e9a6ceaab 100644--- a/gnu/packages/maths.scm+++ b/gnu/packages/maths.scm@@ -1323,7 +1323,7 @@ can solve two kinds of problems: (define-public octave (package (name "octave")- (version "4.2.2")+ (version "4.4.0") (source (origin (method url-fetch)@@ -1331,7 +1331,7 @@ can solve two kinds of problems: version ".tar.lz")) (sha256 (base32- "0pkkz1vazsh7ipffb09q0nc2jgx6q27pkkngygjij6jrpcly5zsp"))))+ "0nm766737gbkq9wqry54a026k3dg7rb1065kngfpwgjz8b544xbp")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack)-- 2.17.0
K
K
Kei Kebreau wrote on 17 May 2018 01:19
[PATCH 2/3] gnu: Add rxcpp.
(address . 31479@debbugs.gnu.org)(name . Kei Kebreau)(address . kkebreau@posteo.net)
20180516231957.1827-1-kkebreau@posteo.net
* gnu/packages/machine-learning.scm (rxcpp): New variable.--- gnu/packages/machine-learning.scm | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)
Toggle diff (62 lines)diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scmindex f0d35484e..6536d861e 100644--- a/gnu/packages/machine-learning.scm+++ b/gnu/packages/machine-learning.scm@@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2018 Mark Meyer <mark@ofosos.org> ;;; Copyright © 2018 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>@@ -501,6 +502,47 @@ tools. This enables both rapid prototyping of data pipelines and extensibility in terms of new algorithms.") (license license:gpl3+))) +(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 for+values-distributed-in-time. ReactiveX is a library for composing asynchronous+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-blocking+I/O.")+ (license license:asl2.0)))+ (define-public r-adaptivesparsity (package (name "r-adaptivesparsity")-- 2.17.0
K
K
Kei Kebreau wrote on 17 May 2018 01:19
[PATCH 3/3] gnu: Update shogun to 6.1.3.
(address . 31479@debbugs.gnu.org)(name . Kei Kebreau)(address . kkebreau@posteo.net)
20180516231957.1827-2-kkebreau@posteo.net
* gnu/packages/machine-learning.scm (shogun): Update to 6.1.3.[arguments]: Rewrite list of symlinks in 'delete-broken-symlinks' phase.Rewrite file lists given to substitute* in 'change-R-target-path' and'fix-octave-modules' phases. Add 'move-rxcpp' phase. Rewrite configure-flagsfor the update.[inputs]: Add eigen.[native-inputs]: Add rxcpp.--- gnu/packages/machine-learning.scm | 60 ++++++++++++++----------------- 1 file changed, 27 insertions(+), 33 deletions(-)
Toggle diff (127 lines)diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scmindex 6536d861e..e79aa6692 100644--- a/gnu/packages/machine-learning.scm+++ b/gnu/packages/machine-learning.scm@@ -37,6 +37,7 @@ #:use-module (guix build-system r) #:use-module (guix git-download) #:use-module (gnu packages)+ #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages check)@@ -367,7 +368,7 @@ sample proximities between pairs of cases.") (define-public shogun (package (name "shogun")- (version "4.0.0")+ (version "6.1.3") (source (origin (method url-fetch)@@ -377,7 +378,7 @@ sample proximities between pairs of cases.") "/sources/shogun-" version ".tar.bz2")) (sha256 (base32- "159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb"))+ "1rn9skm3nw6hr7mr3lgp2gfqhi7ii0lyxck7qmqnf8avq349s5jp")) (modules '((guix build utils) (ice-9 rdelim))) (snippet@@ -423,62 +424,54 @@ sample proximities between pairs of cases.") "applications/easysvm/data" "applications/msplicer/data" "applications/ocr/data"- "examples/documented/data"- "examples/documented/matlab_static"- "examples/documented/octave_static"- "examples/undocumented/data"- "examples/undocumented/matlab_static"- "examples/undocumented/octave_static"- "tests/integration/data"- "tests/integration/matlab_static"- "tests/integration/octave_static"- "tests/integration/python_modular/tests"))+ "examples/meta/data"+ "examples/undocumented/data")) #t)) (add-after 'unpack 'change-R-target-path (lambda* (#:key outputs #:allow-other-keys)- (substitute* '("src/interfaces/r_modular/CMakeLists.txt"- "src/interfaces/r_static/CMakeLists.txt"- "examples/undocumented/r_modular/CMakeLists.txt")+ (substitute* '("src/interfaces/r/CMakeLists.txt"+ "examples/meta/r/CMakeLists.txt") (("\\$\\{R_COMPONENT_LIB_PATH\\}") (string-append (assoc-ref outputs "out") "/lib/R/library/"))) #t)) (add-after 'unpack 'fix-octave-modules (lambda* (#:key outputs #:allow-other-keys)- (substitute* '("src/interfaces/octave_modular/CMakeLists.txt"- "src/interfaces/octave_static/CMakeLists.txt")+ (substitute* "src/interfaces/octave/CMakeLists.txt" (("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}")- "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave"))-- ;; change target directory- (substitute* "src/interfaces/octave_modular/CMakeLists.txt"+ "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave")+ ;; change target directory (("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}") (string-append (assoc-ref outputs "out") "/share/octave/packages"))) #t))+ (add-after 'unpack 'move-rxcpp+ (lambda* (#:key inputs #:allow-other-keys)+ (let ((rxcpp-dir "shogun/third-party/rxcpp"))+ (mkdir-p rxcpp-dir)+ (install-file (assoc-ref inputs "rxcpp") rxcpp-dir)+ #t))) (add-before 'build 'set-HOME ;; $HOME needs to be set at some point during the build phase (lambda _ (setenv "HOME" "/tmp") #t))) #:configure-flags (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE" "-DUSE_SVMLIGHT=OFF" ;disable proprietary SVMLIGHT- ;;"-DJavaModular=ON" ;requires unpackaged jblas- ;;"-DRubyModular=ON" ;requires unpackaged ruby-narray- ;;"-DPerlModular=ON" ;"FindPerlLibs" does not exist- ;;"-DLuaModular=ON" ;fails because lua doesn't build pkgconfig file- "-DOctaveModular=ON"- "-DOctaveStatic=ON"- "-DPythonModular=ON"- "-DPythonStatic=ON"- "-DRModular=ON"- "-DRStatic=ON"- "-DCmdLineStatic=ON")))+ "-DBUILD_META_EXAMPLES=OFF" ;requires unpackaged ctags+ ;;"-DINTERFACE_JAVA=ON" ;requires unpackaged jblas+ ;;"-DINTERFACE_RUBY=ON" ;requires unpackaged ruby-narray+ ;;"-DINTERFACE_PERL=ON" ;"FindPerlLibs" does not exist+ ;;"-DINTERFACE_LUA=ON" ;fails because lua doesn't build pkgconfig file+ "-DINTERFACE_OCTAVE=ON"+ "-DINTERFACE_PYTHON=ON"+ "-DINTERFACE_R=ON"))) (inputs `(("python" ,python) ("numpy" ,python-numpy) ("r-minimal" ,r-minimal) ("octave" ,octave) ("swig" ,swig)+ ("eigen" ,eigen) ("hdf5" ,hdf5) ("atlas" ,atlas) ("arpack" ,arpack-ng)@@ -488,7 +481,8 @@ sample proximities between pairs of cases.") ("lzo" ,lzo) ("zlib" ,zlib))) (native-inputs- `(("pkg-config" ,pkg-config)))+ `(("pkg-config" ,pkg-config)+ ("rxcpp" ,rxcpp))) ;; Non-portable SSE instructions are used so building fails on platforms ;; other than x86_64. (supported-systems '("x86_64-linux"))-- 2.17.0
K
K
Kei Kebreau wrote on 17 May 2018 01:24
(address . 31479@debbugs.gnu.org)
874lj7w5f2.fsf@posteo.net
Kei Kebreau <kkebreau@posteo.net> writes:
Toggle quote (137 lines)> * gnu/packages/machine-learning.scm (shogun): Update to 6.1.3.> [arguments]: Rewrite list of symlinks in 'delete-broken-symlinks' phase.> Rewrite file lists given to substitute* in 'change-R-target-path' and> 'fix-octave-modules' phases. Add 'move-rxcpp' phase. Rewrite configure-flags> for the update.> [inputs]: Add eigen.> [native-inputs]: Add rxcpp.> ---> gnu/packages/machine-learning.scm | 60 ++++++++++++++-----------------> 1 file changed, 27 insertions(+), 33 deletions(-)>> diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm> index 6536d861e..e79aa6692 100644> --- a/gnu/packages/machine-learning.scm> +++ b/gnu/packages/machine-learning.scm> @@ -37,6 +37,7 @@> #:use-module (guix build-system r)> #:use-module (guix git-download)> #:use-module (gnu packages)> + #:use-module (gnu packages algebra)> #:use-module (gnu packages autotools)> #:use-module (gnu packages boost)> #:use-module (gnu packages check)> @@ -367,7 +368,7 @@ sample proximities between pairs of cases.")> (define-public shogun> (package> (name "shogun")> - (version "4.0.0")> + (version "6.1.3")> (source> (origin> (method url-fetch)> @@ -377,7 +378,7 @@ sample proximities between pairs of cases.")> "/sources/shogun-" version ".tar.bz2"))> (sha256> (base32> - "159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb"))> + "1rn9skm3nw6hr7mr3lgp2gfqhi7ii0lyxck7qmqnf8avq349s5jp"))> (modules '((guix build utils)> (ice-9 rdelim)))> (snippet> @@ -423,62 +424,54 @@ sample proximities between pairs of cases.")> "applications/easysvm/data"> "applications/msplicer/data"> "applications/ocr/data"> - "examples/documented/data"> - "examples/documented/matlab_static"> - "examples/documented/octave_static"> - "examples/undocumented/data"> - "examples/undocumented/matlab_static"> - "examples/undocumented/octave_static"> - "tests/integration/data"> - "tests/integration/matlab_static"> - "tests/integration/octave_static"> - "tests/integration/python_modular/tests"))> + "examples/meta/data"> + "examples/undocumented/data"))> #t))> (add-after 'unpack 'change-R-target-path> (lambda* (#:key outputs #:allow-other-keys)> - (substitute* '("src/interfaces/r_modular/CMakeLists.txt"> - "src/interfaces/r_static/CMakeLists.txt"> - "examples/undocumented/r_modular/CMakeLists.txt")> + (substitute* '("src/interfaces/r/CMakeLists.txt"> + "examples/meta/r/CMakeLists.txt")> (("\\$\\{R_COMPONENT_LIB_PATH\\}")> (string-append (assoc-ref outputs "out")> "/lib/R/library/")))> #t))> (add-after 'unpack 'fix-octave-modules> (lambda* (#:key outputs #:allow-other-keys)> - (substitute* '("src/interfaces/octave_modular/CMakeLists.txt"> - "src/interfaces/octave_static/CMakeLists.txt")> + (substitute* "src/interfaces/octave/CMakeLists.txt"> (("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}")> - "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave"))> -> - ;; change target directory> - (substitute* "src/interfaces/octave_modular/CMakeLists.txt"> + "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave")> + ;; change target directory> (("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}")> (string-append (assoc-ref outputs "out")> "/share/octave/packages")))> #t))> + (add-after 'unpack 'move-rxcpp> + (lambda* (#:key inputs #:allow-other-keys)> + (let ((rxcpp-dir "shogun/third-party/rxcpp"))> + (mkdir-p rxcpp-dir)> + (install-file (assoc-ref inputs "rxcpp") rxcpp-dir)> + #t)))> (add-before 'build 'set-HOME> ;; $HOME needs to be set at some point during the build phase> (lambda _ (setenv "HOME" "/tmp") #t)))> #:configure-flags> (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"> "-DUSE_SVMLIGHT=OFF" ;disable proprietary SVMLIGHT> - ;;"-DJavaModular=ON" ;requires unpackaged jblas> - ;;"-DRubyModular=ON" ;requires unpackaged ruby-narray> - ;;"-DPerlModular=ON" ;"FindPerlLibs" does not exist> - ;;"-DLuaModular=ON" ;fails because lua doesn't build pkgconfig file> - "-DOctaveModular=ON"> - "-DOctaveStatic=ON"> - "-DPythonModular=ON"> - "-DPythonStatic=ON"> - "-DRModular=ON"> - "-DRStatic=ON"> - "-DCmdLineStatic=ON")))> + "-DBUILD_META_EXAMPLES=OFF" ;requires unpackaged ctags> + ;;"-DINTERFACE_JAVA=ON" ;requires unpackaged jblas> + ;;"-DINTERFACE_RUBY=ON" ;requires unpackaged ruby-narray> + ;;"-DINTERFACE_PERL=ON" ;"FindPerlLibs" does not exist> + ;;"-DINTERFACE_LUA=ON" ;fails because lua doesn't build pkgconfig file> + "-DINTERFACE_OCTAVE=ON"> + "-DINTERFACE_PYTHON=ON"> + "-DINTERFACE_R=ON")))> (inputs> `(("python" ,python)> ("numpy" ,python-numpy)> ("r-minimal" ,r-minimal)> ("octave" ,octave)> ("swig" ,swig)> + ("eigen" ,eigen)> ("hdf5" ,hdf5)> ("atlas" ,atlas)> ("arpack" ,arpack-ng)> @@ -488,7 +481,8 @@ sample proximities between pairs of cases.")> ("lzo" ,lzo)> ("zlib" ,zlib)))> (native-inputs> - `(("pkg-config" ,pkg-config)))> + `(("pkg-config" ,pkg-config)> + ("rxcpp" ,rxcpp)))> ;; Non-portable SSE instructions are used so building fails on platforms> ;; other than x86_64.> (supported-systems '("x86_64-linux"))
These patches are really just to upgrade Octave, but the old Shoguncouldn't find the new version of Octave. The shogun update patch is aWIP, but I don't have enough RAM (only 3.8GB) to make it through Shogun'sbuild process reliably. Could someone else help out with this patch?
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAlr8vZEACgkQ5qXuPBlGeg1QyQ//fLGrQuyCXRtG7w7kWz/Lc8J5bWNPbwR6X4uUCK6DlwxdiBe4sgZlzbgfe7a5MBmazE5FSRV3YGnQiZOykHPBU3DzuZ45YgMIQO/2MBU7tgja52GZLUPtHEYcuYUeoNs2OIF7PEV0iBaMNEQUElJUSlFWW/Jju8VJPKniSVy/FC53Jm6ZG0e9+oSXPqbo0fqfpSTlJQvSh3oG0f5it1JjC0Pmxd2J7B2/OE2rbU0tKbburPJkVXoTuvya0SN1E/9rCBQGTisppyu/lklJ5DoC2R0l/+2sDSXHsAXP3MHw3XBLisJNQuimKYxLz1EZtVvwL5UrVp1QtmyaAxESEWBcR/tsvtO4kg55354Ri3YaY63ZFvz/4WYMGT/tVIXPDC4IvTq16zdi48rZcH5VMB9XtwLsuM2OaLGYdqVfbzxDHzlY2iieYAr/y6icqiLhyfsPB+Y0NhdkpV4jh8xkoQGcnnVh8mMK4M91Pgoedu8uYxpNhiPl9Lbkp8LCv6wyT2lzHxfw/5Yy9NcZqMnrxdDJRvckFyPmoF6He37Sia0Kcylziw8ymcDrf1d0CvUnu5t2f2TMdAIG4ihUGrw36W6QOMUx//io2NHJuegyZVixDzasFO0DjcLwF8dw36P5FSZgU2oN03nW2ve1G4MPSC26zuBxvJq0wbJWHAYCIGb+ABg==NR03-----END PGP SIGNATURE-----
L
L
Ludovic Courtès wrote on 17 May 2018 13:24
Re: [bug#31479] [PATCH 1/3] gnu: octave: Update to 4.4.0.
(name . Kei Kebreau)(address . kkebreau@posteo.net)(address . 31479@debbugs.gnu.org)
87h8n634pk.fsf@gnu.org
Kei Kebreau <kkebreau@posteo.net> skribis:
Toggle quote (2 lines)> * gnu/packages/maths.scm (octave): Update to 4.4.0.
LGTM, thanks!
Ludo'.
L
L
Ludovic Courtès wrote on 17 May 2018 13:26
Re: [bug#31479] [PATCH 2/3] gnu: Add rxcpp.
(name . Kei Kebreau)(address . kkebreau@posteo.net)(address . 31479@debbugs.gnu.org)
87d0xu34mu.fsf@gnu.org
Kei Kebreau <kkebreau@posteo.net> skribis:
Toggle quote (2 lines)> * gnu/packages/machine-learning.scm (rxcpp): New variable.
[...]
Toggle quote (7 lines)> + (home-page "http://reactivex.io/")> + (synopsis "Reactive Extensions for C++")> + (description> + "The Reactive Extensions for C++ (RxCpp) is a library of algorithms for> +values-distributed-in-time. ReactiveX is a library for composing asynchronous> +and event-based programs by using observable sequences.
LGTM!
Probably machine-learning.scm is not the best place for it, but I can’tthink of a better place.
Thanks,Ludo’.
J
J
Jonathan Brielmaier wrote on 17 May 2018 13:39
Re: [bug#31479] [PATCH 3/3] gnu: Update shogun to 6.1.3.
(address . guix-patches@gnu.org)
0ccd42b9-0856-0b45-c85b-a792d3b38ab4@web.de
On 17/05/2018 01:24, Kei Kebreau wrote:
Toggle quote (7 lines)> > These patches are really just to upgrade Octave, but the old Shogun> couldn't find the new version of Octave. The shogun update patch is a> WIP, but I don't have enough RAM (only 3.8GB) to make it through Shogun's> build process reliably. Could someone else help out with this patch?>
I build shogun now, lets see how it goes :)
J
J
Jonathan Brielmaier wrote on 18 May 2018 07:58
(address . guix-patches@gnu.org)
0e99a56a-bfb8-5c53-2408-9f202a116eb1@web.de
On 17/05/2018 13:39, Jonathan Brielmaier wrote:
Toggle quote (10 lines)> On 17/05/2018 01:24, Kei Kebreau wrote:>>>> These patches are really just to upgrade Octave, but the old Shogun>> couldn't find the new version of Octave. The shogun update patch is a>> WIP, but I don't have enough RAM (only 3.8GB) to make it through Shogun's>> build process reliably. Could someone else help out with this patch?>>> > I build shogun now, lets see how it goes :)
Unfortunately there was a build error for shogun. I attached the buildlog where it fails. It has something to do with the eigen library...
$ /pre-inst-env guix build shogun[...][ 50%] Building CXX object src/shogun/CMakeFiles/libshogun.dir/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp.ocd /tmp/guix-build-shogun-6.1.3.drv-0/build/src/shogun && /gnu/store/cfdn69spjc44x4sd0acrwhxq6yay3rbc-gcc-5.5.0/bin/c++ -I/tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src -I/tmp/guix-build-shogun-6.1.3.drv-0/build/src -I/tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src/gpl -isystem /gnu/store/iwzn3vhwmzkvhq7sqs6c4bjp2xld17kc-eigen-3.3.4/include/eigen3 -isystem /gnu/store/5s9am1dgn83wj5q5kwfcasqws8zd85zz-rxcpp-4.0.0 -I/gnu/store/mllyvfy39npzra984jsmcm8ksn3x8094-glpk-4.65/include -I/gnu/store/wnw0gv5hgmhlw3jz1pgw4n017bhj9f2z-arpack-ng-3.5.0/lib/../include -I/gnu/store/mv9m6bxdhijhlfvxpja3km6v599b4pv5-libxml2-2.9.7/include/libxml2 -I/gnu/store/27jrvwbg5xa9la6jwnqz6ys4k7pfyykl-hdf5-1.8.19/include -I/gnu/store/9hd38bkw8bq8gq6lcv6vd8xjpcsbyzlm-zlib-1.2.11/include -I/gnu/store/77l8sxh9py133cy1p9kypshji4q9wv0w-bzip2-1.0.6/include -I/gnu/store/kgaf671a9a76k0ql1pwwjxjbj80x22mj-xz-5.2.3/include -I/gnu/store/33m86ycak50vh2p0q7qb0byh990hrkjn-lzo-2.10/include -Wall -Wno-unused-parameter -Wformat -Wformat-security -Wparentheses -Wshadow -Wno-unknown-pragmas -Wno-deprecated -O2 -g -DNDEBUG -fPIC -fopenmp -std=c++11 -o CMakeFiles/libshogun.dir/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp.o -c /tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src/shogun/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp/tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src/shogun/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp:15:45: fatal error: unsupported/Eigen/MatrixFunctions: No such file or directorycompilation terminated.make[2]: *** [src/shogun/CMakeFiles/libshogun.dir/build.make:11456: src/shogun/CMakeFiles/libshogun.dir/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp.o] Error 1make[2]: *** Waiting for unfinished jobs....make[2]: Leaving directory '/tmp/guix-build-shogun-6.1.3.drv-0/build'make[1]: *** [CMakeFiles/Makefile2:126: src/shogun/CMakeFiles/libshogun.dir/all] Error 2make[1]: Leaving directory '/tmp/guix-build-shogun-6.1.3.drv-0/build'make: *** [Makefile:153: all] Error 2phase `build' failed after 493.7 secondsbuilder for `/gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv' failed with exit code 1@ build-failed /gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv - 1 builder for `/gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv' failed with exit code 1guix build: error: build failed: build of `/gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv' failed
K
K
Kei Kebreau wrote on 18 May 2018 19:08
(name . Jonathan Brielmaier)(address . jonathan.brielmaier@web.de)(address . 31479@debbugs.gnu.org)
87muww6gd2.fsf@posteo.net
Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:
Toggle quote (33 lines)> On 17/05/2018 13:39, Jonathan Brielmaier wrote:>> On 17/05/2018 01:24, Kei Kebreau wrote:>>>>>> These patches are really just to upgrade Octave, but the old Shogun>>> couldn't find the new version of Octave. The shogun update patch is a>>> WIP, but I don't have enough RAM (only 3.8GB) to make it through Shogun's>>> build process reliably. Could someone else help out with this patch?>>>>> >> I build shogun now, lets see how it goes :)>> Unfortunately there was a build error for shogun. I attached the build> log where it fails. It has something to do with the eigen library...>>>> $ /pre-inst-env guix build shogun> [...]> [ 50%] Building CXX object src/shogun/CMakeFiles/libshogun.dir/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp.o> cd /tmp/guix-build-shogun-6.1.3.drv-0/build/src/shogun && /gnu/store/cfdn69spjc44x4sd0acrwhxq6yay3rbc-gcc-5.5.0/bin/c++ -I/tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src -I/tmp/guix-build-shogun-6.1.3.drv-0/build/src -I/tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src/gpl -isystem /gnu/store/iwzn3vhwmzkvhq7sqs6c4bjp2xld17kc-eigen-3.3.4/include/eigen3 -isystem /gnu/store/5s9am1dgn83wj5q5kwfcasqws8zd85zz-rxcpp-4.0.0 -I/gnu/store/mllyvfy39npzra984jsmcm8ksn3x8094-glpk-4.65/include -I/gnu/store/wnw0gv5hgmhlw3jz1pgw4n017bhj9f2z-arpack-ng-3.5.0/lib/../include -I/gnu/store/mv9m6bxdhijhlfvxpja3km6v599b4pv5-libxml2-2.9.7/include/libxml2 -I/gnu/store/27jrvwbg5xa9la6jwnqz6ys4k7pfyykl-hdf5-1.8.19/include -I/gnu/store/9hd38bkw8bq8gq6lcv6vd8xjpcsbyzlm-zlib-1.2.11/include -I/gnu/store/77l8sxh9py133cy1p9kypshji4q9wv0w-bzip2-1.0.6/include -I/gnu/store/kgaf671a9a76k0ql1pwwjxjbj80x22mj-xz-5.2.3/include -I/gnu/store/33m86ycak50vh2p0q7qb0byh990hrkjn-lzo-2.10/include -Wall -Wno-unused-parameter -Wformat -Wformat-security -Wparentheses -Wshadow -Wno-unknown-pragmas -Wno-deprecated -O2 -g -DNDEBUG -fPIC -fopenmp -std=c++11 -o CMakeFiles/libshogun.dir/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp.o -c /tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src/shogun/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp> /tmp/guix-build-shogun-6.1.3.drv-0/shogun-6.1.3/src/shogun/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp:15:45: fatal error: unsupported/Eigen/MatrixFunctions: No such file or directory> compilation terminated.> make[2]: *** [src/shogun/CMakeFiles/libshogun.dir/build.make:11456: src/shogun/CMakeFiles/libshogun.dir/mathematics/linalg/ratapprox/logdet/opfunc/DenseMatrixExactLog.cpp.o] Error 1> make[2]: *** Waiting for unfinished jobs....> make[2]: Leaving directory '/tmp/guix-build-shogun-6.1.3.drv-0/build'> make[1]: *** [CMakeFiles/Makefile2:126: src/shogun/CMakeFiles/libshogun.dir/all] Error 2> make[1]: Leaving directory '/tmp/guix-build-shogun-6.1.3.drv-0/build'> make: *** [Makefile:153: all] Error 2> phase `build' failed after 493.7 seconds> builder for `/gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv' failed with exit code 1> @ build-failed /gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv - 1 builder for `/gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv' failed with exit code 1> guix build: error: build failed: build of `/gnu/store/mjnmhzdx6zmwcvspmljsrjw2aazfvnv7-shogun-6.1.3.drv' failed
So it turns out that Eigen's source code comes with some functions thatare officially unsupported by the developers but still available foruse. Guix just doesn't install them. I've attached a patch that *should*properly install the unsupported files to Eigen's include path.
Also, thanks for helping with this shogun patch!
From eed3dcce3714bc16ccb378d261d9e1bd8db3c249 Mon Sep 17 00:00:00 2001From: Kei Kebreau <kkebreau@posteo.net>Date: Fri, 18 May 2018 12:46:57 -0400Subject: [PATCH 3/4] gnu: eigen: Install unsupported header files.
* gnu/packages/algebra.scm (eigen)[arguments]: Add 'install-unsupported' phase.Use invoke instead of system*.--- gnu/packages/algebra.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
Toggle diff (35 lines)diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scmindex 03a61be47..51be58ee2 100644--- a/gnu/packages/algebra.scm+++ b/gnu/packages/algebra.scm@@ -750,6 +750,14 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).") #:build-type "Release" #:phases (modify-phases %standard-phases+ (add-after 'install 'install-unsupported+ (lambda* (#:key outputs #:allow-other-keys)+ (let* ((out (assoc-ref outputs "out"))+ (include (string-append out "/include/eigen3")))+ (copy-recursively "unsupported"+ (string-append include+ "/unsupported"))+ #t))) (replace 'check (lambda _ (let* ((cores (parallel-job-count))@@ -757,11 +765,11 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).") (setenv "EIGEN_SEED" "1") ;for reproducibility ;; First build the tests, in parallel. See ;; <http://eigen.tuxfamily.org/index.php?title=Tests>.- (and (zero? (system* "make" "buildtests" dash-j))+ (and (invoke "make" "buildtests" dash-j) ;; Then run 'CTest' with -V so we get more ;; details upon failure.- (zero? (system* "ctest" "-V" dash-j)))))))))+ (invoke "ctest" "-V" dash-j)))))))) (home-page "http://eigen.tuxfamily.org") (synopsis "C++ template library for linear algebra") (description-- 2.17.0
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAlr/CKoACgkQ5qXuPBlGeg2V7RAAmVC+dENQkqavr41b3GDjdkFiA2hqaphm8st2mG6KphgnlXbTHM8x7MIBvnvo+PIKoRRZu9pieGY9pYVQxkaByRM+SaLw9ip4dc8aJ8bCmYJbYCUzsmdFM9QxMdOXc7wGm/jnbsxMmiiWicfEXm2ZCm7pAYIBgjJomy2YPFJoId3F64YhBYmLNyzgU1S3JGMjtaZzVDK1Oyl88OscQJwKgM0RPLFwvXHP8WzVvSPLM7OoKRGAtR8nK6fBhVc7LwAMVqYCtN1VPaeEbeAWnVMMjinFwlETsXRfWrHbUkrWjP0er3VyEK+oQWefrc1Z3RbElhgakSt8g3gFq//JH4Sfl0WiKvf7szk9XGcqAp7fsLGQ6Ny6NxAu8Z4DvFfO6XPrPkkStL2yAN83vqFQrzoLho79VxfZ2KAUJePjXXYmqnJR1k2KJ9ZRfP2/oLqrHfkw1EIdZydRlUzf3qGpJ2EW6tS0BLOj6tHqxNQHr1i8cWoCXee4WVlgTtnoOCmgIy/ro4KNv8ftYH13Tp99RiR78i6LJNuXyJldt5C1M/ri6V+mUzHPl9p5NSbdMF+Hmf7YNXjB1K2jcP8Tx49ghUnOUcL/vNx4XDEn8rYOkvZWVdkV4Pgjoo8Kp2KsOv+msIBtLaCqjSZJnsmK9avmTxau4xr+tmgK2WLOSCXImsVruPI==D7iJ-----END PGP SIGNATURE-----
L
L
Ludovic Courtès wrote on 19 May 2018 22:18
(name . Kei Kebreau)(address . kkebreau@posteo.net)
87fu2npfgl.fsf@gnu.org
Hello,
Kei Kebreau <kkebreau@posteo.net> skribis:
Toggle quote (5 lines)> So it turns out that Eigen's source code comes with some functions that> are officially unsupported by the developers but still available for> use. Guix just doesn't install them. I've attached a patch that *should*> properly install the unsupported files to Eigen's include path.
Ricardo has a similar patch in the Tensorflow series:
https://bugs.gnu.org/31386
Could the two of you see how the two patches should be merged? :-)
Thanks,Ludo’.
K
K
Kei Kebreau wrote on 20 May 2018 20:31
(name . Ludovic Courtès)(address . ludo@gnu.org)
87h8n25gbv.fsf@posteo.net
ludo@gnu.org (Ludovic Courtès) writes:
Toggle quote (18 lines)> Hello,>> Kei Kebreau <kkebreau@posteo.net> skribis:>>> So it turns out that Eigen's source code comes with some functions that>> are officially unsupported by the developers but still available for>> use. Guix just doesn't install them. I've attached a patch that *should*>> properly install the unsupported files to Eigen's include path.>> Ricardo has a similar patch in the Tensorflow series:>> https://bugs.gnu.org/31386>> Could the two of you see how the two patches should be merged? :-)>> Thanks,> Ludo’.
Hi,
Thanks for the heads up! Looking at Ricardo's patch, it looks like thesame goal is accomplished in a cleaner fashion. I'll test it today andreport back results. I've been working on shogun during the past fewdays and it may soon be finished.
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAlsBvxUACgkQ5qXuPBlGeg29kQ//fTcqbia8NUMLQiEM2Qz8LxwFQotOdpDTsFWGRXnDr5ErL/VSaTrYLgqtmW4vuFOYLrcKqpHoPOLEz5TrTnBVgX0yptd2AnfwuLoHRXU+Owf9zvcdrRi275tKCGFSPM43v2AZHspCkODZPUk25tSHAFuSEMOQi3XnVRGs9S3S0xFqo+9+Ej3rQaxu5tKwDo84K8YE5aCJln/KzvV9i0AtJQLDmNbGaZ/Xz+B6ni7T1EpnDjW8r1VKMdwUEyPZEaF6fBeFiEKittDH8akT5p4YmitXyZLQQuqfXk3acSypSdhXfEDeBLyXp07s15E4yFBEAq4exFMxvhQdrtqi2m2MrLXVjRWYNG/0RYmIxylMTeaW9HRHLWsKUJz55JareUfcbzdEfyy4Cv9XkVclUGe9wEwGc07jBevafq5oEx7OiqkEwe8sWLzNFDupOx+l3Abt1Scxl3GaR+RzebKNgwl/JLjKvHZks9r1Hm0iHDKxF2fh0mfKd9avyvP184Z6btBp/8sil0yxm8Pq/DF4LYaKriErMXfgmPw/5l/1G4emwkFrQFEo+9woSwga5tGfjWy6vcVW9fRfpG0g5WMXqDGK0bnfKJD+Vprg8d4aLrcShNrVQrn1GFr8Liyno3makzJSu1WFMU4JR7flzVEY/QBWy7uHTNTklJF6bB0DtVOUQ7s==p2Pj-----END PGP SIGNATURE-----
R
R
Ricardo Wurmus wrote on 24 May 2018 11:09
(name . Kei Kebreau)(address . kkebreau@posteo.net)(address . 31479@debbugs.gnu.org)
87a7spcte2.fsf@mdc-berlin.de
Hi Kei,
please also note that Shogun contains references to proprietarysoftware. It has support for SVMLight, which is non-free software. Itincludes a script to remove all references to and adapters for SVMLight,but unfortunately we cannot run shell scripts in a snippet. Changingthis requires changing the “package” syntax to delay evaluation more.
Until then we need to remove the non-free bits in code, which is whatthe current snippet does, but the code would need to be adjusted forversion 6.1.3.
Thanks for taking this on!
--Ricardo
K
K
Kei Kebreau wrote on 27 May 2018 03:21
(name . Ricardo Wurmus)(address . ricardo.wurmus@mdc-berlin.de)
87po1hnba0.fsf@posteo.net
Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> writes:
Toggle quote (17 lines)> 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 “package” syntax to delay evaluation 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 Shogun6.1.3 successfully, and I'm just looking through the source code toremove the proprietary bits.
P.S. Ricardo, you'll notice the eigen patch is actually yours fromanother patchset! I verified that it works as expected.
From 0243faa33cc2c33ed7160ab754ad45ceff626eb2 Mon Sep 17 00:00:00 2001From: Kei Kebreau <kkebreau@posteo.net>Date: Sat, 5 May 2018 10:21:38 -0400Subject: [PATCH 1/5] gnu: octave: Update to 4.4.0.
* gnu/packages/maths.scm (octave): Update to 4.4.0.--- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Toggle diff (24 lines)diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scmindex a36d2333e..97f847665 100644--- 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")- (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- "0pkkz1vazsh7ipffb09q0nc2jgx6q27pkkngygjij6jrpcly5zsp"))))+ "0nm766737gbkq9wqry54a026k3dg7rb1065kngfpwgjz8b544xbp")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack)-- 2.17.0
From 50b6630e06f434237c1014765444d01a38f40e61 Mon Sep 17 00:00:00 2001From: Kei Kebreau <kkebreau@posteo.net>Date: Wed, 9 May 2018 10:01:40 -0400Subject: [PATCH 2/5] gnu: Add rxcpp.
* gnu/packages/machine-learning.scm (rxcpp): New variable.--- gnu/packages/machine-learning.scm | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)
Toggle diff (62 lines)diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scmindex f0d35484e..6536d861e 100644--- a/gnu/packages/machine-learning.scm+++ b/gnu/packages/machine-learning.scm@@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2018 Mark Meyer <mark@ofosos.org> ;;; Copyright © 2018 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>@@ -501,6 +502,47 @@ tools. This enables both rapid prototyping of data pipelines and extensibility in terms of new algorithms.") (license license:gpl3+))) +(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 for+values-distributed-in-time. ReactiveX is a library for composing asynchronous+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-blocking+I/O.")+ (license license:asl2.0)))+ (define-public r-adaptivesparsity (package (name "r-adaptivesparsity")-- 2.17.0
From 593edb81de8b6ad064d388aa39896ef8667e06bd Mon Sep 17 00:00:00 2001From: Ricardo Wurmus <ricardo.wurmus at>Date: Tue, 8 May 2018 16:59:07 +0200Subject: [PATCH 3/5] gnu: eigen: Include unsupported features.
* gnu/packages/algebra.scm (eigen)[source]: Do not build the tests forunsupported features, but include the files.
Signed-off-by: Kei Kebreau <kkebreau@posteo.net>--- gnu/packages/algebra.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Toggle diff (19 lines)diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scmindex 210b734b9..ff8478c50 100644--- a/gnu/packages/algebra.scm+++ b/gnu/packages/algebra.scm@@ -732,9 +732,10 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).") ;; but maintainers say it's a known issue and it's unsupported ;; 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"- (("add_subdirectory\\(unsupported\\)")- "# Do not build the tests for unsupported features.\n") ;; Work around ;; <http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1114>. (("\"include/eigen3\"")-- 2.17.0
From 1d714096fd7f37eddfb87dfe3a933588e55ab77f Mon Sep 17 00:00:00 2001From: Kei Kebreau <kkebreau@posteo.net>Date: Fri, 25 May 2018 22:25:21 -0400Subject: [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.--- 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
Toggle diff (1162 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 4cdbaec1d..6ae25c1f3 100644--- a/gnu/local.mk+++ b/gnu/local.mk@@ -1102,6 +1102,7 @@ dist_patch_DATA = \ %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.patchnew file mode 100644index 000000000..9fb64a7b1--- /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 found+here:++https://github.com/swig/swig/commit/12c66f9b7d884020e896ce92b9783bc3bac95d2d++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/issues/+ ++Version 4.0.0 (in progress)++===========================++++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)+ ============================+ +diff -urN swig-3.0.12.old/Examples/Makefile.in swig-3.0.12.new/Examples/Makefile.in+--- swig-3.0.12.old/Examples/Makefile.in 2017-01-27 18:52:02.000000000 -0500++++ swig-3.0.12.new/Examples/Makefile.in 2018-05-26 08:39:16.510124553 -0400+@@ -463,7 +463,7 @@+ # -----------------------------------------------------------------+ + octave_run:+- OCTAVE_HISTFILE=/dev/null $(RUNTOOL) $(OCTAVE) $(OCTAVE_SCRIPT) $(RUNPIPE)++ env OCTAVE_PATH= OCTAVE_HISTFILE=/dev/null $(RUNTOOL) $(OCTAVE) $(OCTAVE_SCRIPT) $(RUNPIPE)+ + # -----------------------------------------------------------------+ # 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:02.000000000 -0500++++ swig-3.0.12.new/Examples/octave/module_load/runme.m 2018-05-26 08:39:16.518124669 -0400+@@ -5,63 +5,73 @@+ + # load module+ clear all;++assert(exist("swigexample") == 3);+ swigexample;++assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+-assert(exist("swigexample","var"));+ clear all++assert(exist("swigexample") == 3);+ swigexample;++assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+-assert(exist("swigexample","var"));+ clear all+ + # load module in a function globally before base context+ clear all;+-function testme++function testme_1++ assert(exist("swigexample") == 3);+ swigexample;++ assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+- assert(exist("swigexample","var"));+ endfunction+-testme+-testme++testme_1++testme_1++assert(exist("swigexample") == 3);+ swigexample;++assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+-assert(exist("swigexample","var"));+ clear all+-function testme++function testme_2++ assert(exist("swigexample") == 3);+ swigexample;++ assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+- assert(exist("swigexample","var"));+ endfunction+-testme+-testme++testme_2++testme_2++assert(exist("swigexample") == 3);+ swigexample;++assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+-assert(exist("swigexample","var"));+ clear all+ + # load module in a function globally after base context+ clear all;++assert(exist("swigexample") == 3);+ swigexample;++assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+-assert(exist("swigexample","var"));+-function testme++function testme_3++ assert(exist("swigexample") == 3);+ swigexample;++ assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+- assert(exist("swigexample","var"));+ endfunction+-testme+-testme++testme_3++testme_3+ clear all++assert(exist("swigexample") == 3);+ swigexample;++assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+-assert(exist("swigexample","var"));+-function testme++function testme_4++ assert(exist("swigexample") == 3);+ swigexample;++ assert(isglobal("swigexample"));+ assert(cvar.ivar == ifunc);+- assert(exist("swigexample","var"));+ endfunction+-testme+-testme++testme_4++testme_4+ clear all+ + # octave 3.0.5 randomly crashes on the remaining tests+@@ -71,13 +81,16 @@+ + # load module with no cvar+ clear all;++who;++assert(exist("swigexample2") == 3);+ swigexample2;++assert(isglobal("swigexample2"));+ assert(swigexample2.ivar == ifunc);+-assert(exist("swigexample2","var"));+-assert(!isglobal("cvar"))++assert(!exist("cvar", "var"));+ clear all++assert(exist("swigexample2") == 3);+ swigexample2;++assert(isglobal("swigexample2"));+ assert(swigexample2.ivar == 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:52:02.000000000 -0500++++ swig-3.0.12.new/Examples/test-suite/octave/Makefile.in 2018-05-26 08:39:16.511124567 -0400+@@ -59,7 +59,7 @@+ # a file is found which has _runme.m appended after the testcase name.+ run_testcase = \+ if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \+- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH OCTAVE_PATH=$(srcdir):$$OCTAVE_PATH $(RUNTOOL) $(OCTAVE) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \++ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH OCTAVE_PATH=$(srcdir) OCTAVE_HISTFILE=/dev/null $(RUNTOOL) $(OCTAVE) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \+ fi+ + # 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 = octave++OCTAVE = @OCTAVE@++SCRIPTSUFFIX = _runme.m++++srcdir = @srcdir@++top_srcdir = @top_srcdir@++top_builddir = @top_builddir@++++CPP_TEST_CASES += \++ li_std_pair_extra \++ li_std_string_extra \++ octave_cell_deref\++ octave_dim++++CPP_TEST_BROKEN += \++ implicittest \++ li_implicit \++ li_std_set \++ li_std_stream++++#C_TEST_CASES +=++++#++# This test only works with modern C compilers++#++#C_TEST_CASES += \++# complextest++++include $(srcdir)/../common.mk++++# Overridden variables here++LIBS = -L.++CSRCS = 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 = \++ if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \++ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH OCTAVE_PATH=$(srcdir):$$OCTAVE_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='$(SRCDIR)' octave_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.new/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 @@+ + // 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:00:00.000000000 -0500++++ swig-3.0.12.new/Examples/test-suite/register_par.i.rej 2018-05-26 08:39: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++ ++ %{++-struct tree;+++struct swig_tree;++ %}++ ++ // 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.000000000 -0500++++ swig-3.0.12.new/Lib/octave/octcontainer.swg 2018-05-26 08:39:16.488124234 -0400+@@ -567,7 +567,11 @@+ if (seq) *seq = 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<value_type> 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.000000000 -0500++++ swig-3.0.12.new/Lib/octave/octprimtypes.swg 2018-05-26 08:39:16.492124292 -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 = ov.bool_value();+@@ -214,7 +218,13 @@+ SWIGINTERN int+ SWIG_AsCharPtrAndSize(octave_value ov, char** cptr, size_t* psize, int *alloc)+ {+- if (ov.is_cell() && ov.rows() == 1 && ov.columns() == 1)++ if (++%#if SWIG_OCTAVE_PREREQ(4,4,0)++ ov.iscell()++%#else++ ov.is_cell()++%#endif++ && ov.rows() == 1 && ov.columns() == 1)+ ov = 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 -0500++++ swig-3.0.12.new/Lib/octave/octrun.swg 2018-05-26 08:39:16.509124538 -0400+@@ -151,6 +151,67 @@+ const swig_type_info **base;+ };+ ++#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 create our own octave_function subclass++#define SWIG_OCTAVE_BOUND_FUNC(func, args) octave_value(new octave_swig_bound_func(func, args))++ class octave_swig_bound_func : public octave_function {++ public:++++ octave_swig_bound_func(void) : octave_function(), method(0), first_args()++ { }++++ octave_swig_bound_func(octave_function* _method, octave_value_list _first_args)++ : octave_function("", ""), method(_method), first_args(_first_args)++ { }++++ octave_swig_bound_func(const octave_swig_bound_func& f) = delete;++++ octave_swig_bound_func& operator= (const octave_swig_bound_func& f) = delete;++++ ~octave_swig_bound_func(void) = default;++++ bool is_function(void) const { return true; }++++ octave_function* function_value(bool = false) { return this; }++++ octave_value_list call(octave::tree_evaluator& tw, int nargout = 0, const octave_value_list& args = 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 = subsref(ops, idx, 1);++ return ovl.length() ? ovl(0) : octave_value();++ }++++ octave_value_list subsref(const std::string &ops, const std::list < octave_value_list > &idx, int nargout) {++ assert(ops.size() > 0);++ assert(ops.size() == idx.size());++ if (ops != "(")++ error("invalid function call");++ octave::tree_evaluator& tw = octave::interpreter::the_interpreter()->get_evaluator();++ return call(tw, nargout, *idx.begin());++ }++++ protected:++++ octave_function* method;++ octave_value_list first_args;++++ std::set<std::string> dispatch_classes;++++ private:++++ DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA++ };++ DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(octave_swig_bound_func, "octave_swig_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 class + // representation within Octave, since there is no support for classes.+ //+@@ -323,13 +384,17 @@+ }+ + octave_value_list member_deref(member_value_pair *m, const octave_value_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->method), args);+ }+ error("undefined member");+ return octave_value_list();+@@ -383,7 +448,11 @@+ return dim_vector(1,1);+ + // 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=out.cell_value();+ int ndim = c.rows();+ if (ndim==1 && c.columns()!=1) ndim = 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()==1 || out.columns()==1) {+ Array<int> a = 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+ }+ + typedef member_map::const_iterator swig_member_const_iterator;+@@ -848,7 +925,14 @@+ octave_function *fcn = is_valid_function(symbol, std::string(), false);+ if (!fcn)+ return false;++#if SWIG_OCTAVE_PREREQ(4,4,0)++ octave::tree_evaluator& tw = octave::interpreter::the_interpreter()->get_evaluator();++ octave_value_list retval = fcn->call(tw, 1, args);++ if (retval.length() == 1)++ ret = retval(0);++#else+ ret = fcn->do_multi_index_op(1, args)(0);++#endif+ return true;+ }+ +@@ -1238,7 +1322,13 @@+ }+ + SWIGRUNTIME octave_swig_type *swig_value_deref(octave_value ov) {+- if (ov.is_cell() && ov.rows() == 1 && ov.columns() == 1)++ if (++#if SWIG_OCTAVE_PREREQ(4,4,0)++ ov.iscell()++#else++ ov.is_cell()++#endif++ && ov.rows() == 1 && ov.columns() == 1)+ ov = 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&lhs,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_##name);++#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,tid2,swig_binary_op_##name);++#endif+ + swig_unary_op(not);+ swig_unary_op(uplus);+@@ -1300,6 +1402,9 @@+ swig_binary_op(el_or);+ + SWIGRUNTIME void SWIG_InstallUnaryOps(int tid) {++#if SWIG_OCTAVE_PREREQ(4,4,0)++ octave::type_info& typeinfo = 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 = octave::interpreter::the_interpreter()->get_type_info();++#endif+ swigreg_binary_op(add);+ swigreg_binary_op(sub);+ swigreg_binary_op(mul);+@@ -1357,7 +1465,13 @@+ }+ + SWIGRUNTIME int SWIG_Octave_ConvertPtrAndOwn(octave_value ov, void **ptr, swig_type_info *type, int flags, int *own) {+- if (ov.is_cell() && ov.rows() == 1 && ov.columns() == 1)++ if (++#if SWIG_OCTAVE_PREREQ(4,4,0)++ ov.iscell()++#else++ ov.is_cell()++#endif++ && ov.rows() == 1 && ov.columns() == 1)+ ov = ov.cell_value()(0);+ if (!ov.is_defined() ||+ (ov.is_matrix_type() && ov.rows() == 0 && ov.columns() == 0) ) {+@@ -1390,14 +1504,30 @@+ }+ + SWIGRUNTIMEINLINE octave_value SWIG_Octave_GetGlobalValue(std::string name) {++#if SWIG_OCTAVE_PREREQ(4,4,0)++ octave::symbol_table& symtab = octave::interpreter::the_interpreter()->get_symbol_table();++ return symtab.global_varval(name);++#else+ return get_global_value(name, true);++#endif+ }+ + SWIGRUNTIME void SWIG_Octave_SetGlobalValue(std::string name, const octave_value& value) {++#if SWIG_OCTAVE_PREREQ(4,4,0)++ octave::symbol_table& symtab = octave::interpreter::the_interpreter()->get_symbol_table();++ symtab.global_assign(name, value);++#else+ set_global_value(name, value);++#endif+ }+ + SWIGRUNTIME void SWIG_Octave_LinkGlobalValue(std::string name) {++#if SWIG_OCTAVE_PREREQ(4,4,0)++ octave::symbol_table& symtab = octave::interpreter::the_interpreter()->get_symbol_table();++ octave::symbol_scope symscope = 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+ }+ + 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/octave/octruntime.swg+--- swig-3.0.12.old/Lib/octave/octruntime.swg 2017-01-27 18:52:02.000000000 -0500++++ swig-3.0.12.new/Lib/octave/octruntime.swg 2018-05-26 08:39:16.507124509 -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 = true;+ } catch (octave::execution_exception&) { }+ #else+@@ -170,7 +174,7 @@+ frame.protect_var(discard_error_messages); discard_error_messages = true;+ frame.protect_var(discard_warning_messages); discard_warning_messages = true;+ #else+- unwind_protect::begin_frame("SWIG_Octave_LoadModule");++ unwind_protect::begin_frame("SWIG_Octave_InstallFunction");+ unwind_protect_int(error_state); error_state = 0;+ unwind_protect_int(warning_state); warning_state = 0;+ unwind_protect_bool(discard_error_messages); discard_error_messages = 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 = true;+ } catch (octave::execution_exception&) { }+ #else+@@ -312,6 +320,8 @@+ Loads the SWIG-generated module `" SWIG_name_d "'.\n\+ @end deftypefn";+ ++void __swig_atexit__(void) { ::_Exit(0); }+++ DEFUN_DLD( SWIG_name, args, nargout, SWIG_name_usage ) {+ + static octave_swig_type* module_ns = 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 = ::_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+ ++#if SWIG_OCTAVE_PREREQ(4,4,0)++ {++ octave::type_info& typeinfo = octave::interpreter::the_interpreter()->get_type_info();++ string_vector types = typeinfo.installed_type_names();++ bool register_octave_swig_ref = true;++ bool register_octave_swig_packed = true;++ bool register_octave_swig_bound_func = true;++ for (int i = 0; i < types.numel(); ++i) {++ if (types(i) == octave_swig_ref::static_type_name()) {++ register_octave_swig_ref = false;++ }++ if (types(i) == octave_swig_packed::static_type_name()) {++ register_octave_swig_packed = false;++ }++ if (types(i) == octave_swig_bound_func::static_type_name()) {++ register_octave_swig_bound_func = 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();+ ++#if SWIG_OCTAVE_PREREQ(4,4,0)++ octave::call_stack& stack = octave::interpreter::the_interpreter()->get_call_stack();++ octave_function *me = stack.current();++#else+ octave_function *me = octave_call_stack::current();++#endif+ + if (!SWIG_Octave_InstallFunction(me, "subclass")) {+ return octave_value_list();+@@ -426,10 +477,12 @@+ }+ }+ +-#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+ + }+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 -0500++++ swig-3.0.12.new/Lib/octave/std_pair.i 2018-05-26 08:39:16.489124248 -0400+@@ -38,7 +38,13 @@+ }+ + static int asval(const octave_value& obj, std::pair<T,U> *val) {+- if (obj.is_cell()) {++ if (++%#if SWIG_OCTAVE_PREREQ(4,4,0)++ obj.iscell()++%#else++ obj.is_cell()++%#endif++ ) {+ Cell c=obj.cell_value();+ if (c.numel()<2) {+ error("pair from Cell array requires at least two elements");+@@ -96,7 +102,13 @@+ }+ + static int asptr(const octave_value& obj, std::pair<T,U> **val) {+- if (obj.is_cell()) {++ if (++%#if SWIG_OCTAVE_PREREQ(4,4,0)++ obj.iscell()++%#else++ obj.is_cell()++%#endif++ ) {+ Cell c=obj.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=octave SWIGJOBS=-j2 VER=4.4 CPP11=1++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux+ env: SWIGLANG=perl5+ 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=++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=++ - compiler: gcc++ os: linux++ env: SWIGLANG=++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG= SWIG_CC=gcc-5 SWIG_CXX=g++-5 CPP11=1++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG= SWIG_CC=gcc-6 SWIG_CXX=g++-6++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=csharp++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=d++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=go++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=go VER=1.5++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=guile++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=java++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=javascript ENGINE=node++ - compiler: gcc++ os: linux++ env: SWIGLANG=javascript ENGINE=jsc++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=javascript ENGINE=v8++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=lua++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=lua VER=5.3++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=octave SWIGJOBS=-j2 # 3.8++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=octave SWIGJOBS=-j2 VER=4.0++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=octave SWIGJOBS=-j2 VER=4.2 CPP11=1++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=perl5++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=php5++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=php VER=7.0++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=php VER=7.1++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python VER=2.4++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python VER=2.5++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python VER=2.6++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python # 2.7++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python PY3=3 VER=3.2++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python PY3=3 VER=3.3++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python PY3=3 VER=3.4++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python PY3=3 VER=3.5++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-builtin VER=2.6++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-builtin++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.4++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.5++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.5 SWIGOPTPY3=++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-O++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-classic++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=r++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=ruby VER=1.9.3++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=ruby VER=2.0.0++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=ruby VER=2.3.0++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=scilab++ sudo: required++ dist: trusty++ - compiler: gcc++ os: linux++ env: SWIGLANG=tcl++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG=csharp SWIG_CC=gcc-5 SWIG_CXX=g++-5 CPP11=1++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG=java SWIG_CC=gcc-5 SWIG_CXX=g++-5 CPP11=1++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG=python SWIG_CC=gcc-5 SWIG_CXX=g++-5 CPP11=1++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG=csharp SWIG_CC=gcc-6 SWIG_CXX=g++-6 CPP14=1++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG=java SWIG_CC=gcc-6 SWIG_CXX=g++-6 CPP14=1++ sudo: required++ dist: trusty++ - os: linux++ env: SWIGLANG=python SWIG_CC=gcc-6 SWIG_CXX=g++-6 CPP14=1++ sudo: required++ dist: trusty++ - compiler: gcc++ os: osx++ env: SWIGLANG=++ - compiler: clang++ os: osx++ env: SWIGLANG=++ - compiler: clang++ os: osx++ env: SWIGLANG=csharp++ - compiler: clang++ os: osx++ env: SWIGLANG=go++ - compiler: clang++ os: osx++ env: SWIGLANG=guile++ - compiler: clang++ os: osx++ env: SWIGLANG=java++ - compiler: clang++ os: osx++ env: SWIGLANG=lua++ - compiler: clang++ os: osx++ env: SWIGLANG=perl5++ - compiler: clang++ os: osx++ env: SWIGLANG=php5++ - compiler: clang++ os: osx++ env: SWIGLANG=python++ - compiler: clang++ os: osx++ env: SWIGLANG=python PY3=3++ - compiler: clang++ os: osx++ env: SWIGLANG=ruby++ - compiler: clang++ os: osx++ env: SWIGLANG=tcl++++ allow_failures:++ # Lots of failing tests currently++ - compiler: gcc++ os: linux++ env: SWIGLANG=ocaml++ sudo: required++ dist: trusty++ # Not quite working yet++ - compiler: gcc++ os: linux++ env: SWIGLANG=python SWIG_FEATURES=-O++ sudo: required++ dist: trusty++before_install:++ - date -u++ - uname -a++ - if test "$TRAVIS_OS_NAME" = "linux"; then lscpu && cat /proc/cpuinfo | grep "model name" && cat /proc/meminfo | grep MemTotal; fi++ - if test "$TRAVIS_OS_NAME" = "osx"; then sysctl -a | grep brand_string; fi++ # Travis overrides CC environment with compiler predefined values++ - if test -n "$SWIG_CC"; then export CC="$SWIG_CC"; fi++ - if test -n "$SWIG_CXX"; then export CXX="$SWIG_CXX"; fi++install:++ - if test "$TRAVIS_OS_NAME" = "linux"; then source Tools/travis-linux-install.sh; fi++ - if test "$TRAVIS_OS_NAME" = "osx"; then source Tools/travis-osx-install.sh; fi++ - if test -n "$CPP11"; then CONFIGOPTS+=(--enable-cpp11-testing --without-maximum-compile-warnings "CXXFLAGS=-std=c++11 -Wall -Wextra" "CFLAGS=-std=c11 -Wall -Wextra") && export CSTD=c11 && export CPPSTD=c++11; fi++ - if test -n "$CPP14"; then CONFIGOPTS+=(--enable-cpp11-testing --without-maximum-compile-warnings "CXXFLAGS=-std=c++14 -Wall -Wextra" "CFLAGS=-std=c11 -Wall -Wextra") && export CSTD=c11 && export CPPSTD=c++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+=(--without-alllang --with-$WITHLANG); fi++ - echo "${CONFIGOPTS[@]}"++ - ./autogen.sh && mkdir -p build/build && cd build/build && ../../configure "${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-suite; 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 generated code prevents full use of -pedantic.++ - if test -n "$SWIGLANG"; then cflags=$($TRAVIS_BUILD_DIR/Tools/testflags.py --language $SWIGLANG --cflags --std=$CSTD --compiler=$CC) && echo $cflags; fi++ - if test -n "$SWIGLANG"; then cxxflags=$($TRAVIS_BUILD_DIR/Tools/testflags.py --language $SWIGLANG --cxxflags --std=$CPPSTD --compiler=$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="$cflags" CXXFLAGS="$cxxflags"; fi++ - if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-test-suite CFLAGS="$cflags" CXXFLAGS="$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.scmindex b931db412..34163aa9e 100644--- 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- "0kf99ygrjs5616gsqhz1l7bib3a12izmxi7g48bwblbymr3z9ybw"))))+ "0kf99ygrjs5616gsqhz1l7bib3a12izmxi7g48bwblbymr3z9ybw"))+ (patches+ (search-patches "swig-octave-patches.patch")))) (build-system gnu-build-system) (arguments '(#:phases-- 2.17.0
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAlsKCCcACgkQ5qXuPBlGeg3OeA//f+i6/J61ZaI2Me3kRqRp973nnM5hUkSLitdNinqA/pLUEWqB2+NeSysmh+32d32eZInx+KIEtg2x+isxSGln8I0l2N+CbhHKhWQyXtC7deaXjqlCP9gMhxUTBUSWVe325M+3AS7nlw2Q0S8yo/zXGu86o7cbYd6I0uqSsU+KfuACIuVEmvPlFP1g8mKEolhLyEsULp+Ag0cXxTYEKihCfXtlBEH1TbtikB3UmfZylouFerYk4TcfFfZE2DLTH1GH6rWKwuG/BXBV0Za5cICL81tes7EsiV0WvKQj5vgP7gIBoG7L2nv4hCaGwUsHeZAbDMqfS2gs0wh8F+qiXz8cDjABJGQJG6lDPgTZSs11Rp0JCU88y94/R9uL8RwKM0wPIBWUMqkl8HHfmSp3yjq8vdnR0OH4EgVyI2DYEtoDcJOiTvLm+CEyx/zUoULp59qnkIz+8sZCEFWmzjh8knyRvGK3Dr4p4tImihsz//dN6WCi9nIPXF54Rl3mfC9cQV39iVKgviI+wBtyMD6x2B4+HyeOdy+DE/ruonswYfJ/ZqMPFSEzk6vhuhMZ3yJQhNhFRrBzuy4n/g/WFYZ9aqNF0FfGvp8mJF7iJQd//76jvIb1IqjxDnFWMZ/rwKgw8rsTNCjG/OqkvCdUlAy1ZU5ApukPOn0cpUhPfIIVDUsEsxQ==YbBO-----END PGP SIGNATURE-----
K
K
Kei Kebreau wrote on 29 May 2018 22:55
(name . Ricardo Wurmus)(address . ricardo.wurmus@mdc-berlin.de)
87h8mqkwq0.fsf@posteo.net
Kei Kebreau <kkebreau@posteo.net> writes:
Toggle quote (28 lines)> Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> 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 “package” syntax to delay evaluation 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.
The shogun patch below builds successfully for me! If no correctionsneed to be made, I'll push this patch series to master!
From 2c41c81ad77ee20c89c3056908c13635ee3f5e10 Mon Sep 17 00:00:00 2001From: Kei Kebreau <kkebreau@posteo.net>Date: Wed, 16 May 2018 11:56:18 -0400Subject: [PATCH 5/5] gnu: Update shogun to 6.1.3.
* gnu/packages/machine-learning.scm (shogun): Update to 6.1.3.[source]: Update snippet to remove proprietary software.[arguments]: Rewrite list of symlinks in 'delete-broken-symlinks' phase.Rewrite file lists given to substitute* in 'change-R-target-path' and'fix-octave-modules' phases. Adjust 'fix-octave-modules' for the update.Add 'move-rxcpp' phase. Rewrite configure-flags for the update.[inputs]: Add eigen.[native-inputs]: Add rxcpp.--- gnu/packages/machine-learning.scm | 81 ++++++++++++++++++------------- 1 file changed, 46 insertions(+), 35 deletions(-)
Toggle diff (155 lines)diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scmindex 6536d861e..e135ee0ee 100644--- a/gnu/packages/machine-learning.scm+++ b/gnu/packages/machine-learning.scm@@ -37,6 +37,7 @@ #:use-module (guix build-system r) #:use-module (guix git-download) #:use-module (gnu packages)+ #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages check)@@ -367,7 +368,7 @@ sample proximities between pairs of cases.") (define-public shogun (package (name "shogun")- (version "4.0.0")+ (version "6.1.3") (source (origin (method url-fetch)@@ -377,7 +378,7 @@ sample proximities between pairs of cases.") "/sources/shogun-" version ".tar.bz2")) (sha256 (base32- "159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb"))+ "1rn9skm3nw6hr7mr3lgp2gfqhi7ii0lyxck7qmqnf8avq349s5jp")) (modules '((guix build utils) (ice-9 rdelim))) (snippet@@ -409,8 +410,20 @@ sample proximities between pairs of cases.") (and skipping? (not skip-next?))) (display line out)) (loop (read-line in 'concat) skip-next?)))))))- (for-each delete-ifdefs (find-files "src/shogun/kernel/"- "^Kernel\\.(cpp|h)"))))))+ (for-each delete-ifdefs+ (append+ (find-files "src/shogun/classifier/mkl"+ "^MKLClassification\\.cpp")+ (find-files "src/shogun/classifier/svm"+ "^SVMLightOneClass\\.(cpp|h)")+ (find-files "src/shogun/multiclass"+ "^ScatterSVM\\.(cpp|h)")+ (find-files "src/shogun/kernel/"+ "^(Kernel|CombinedKernel|ProductKernel)\\.(cpp|h)")+ (find-files "src/shogun/regression/svr"+ "^(MKLRegression|SVRLight)\\.(cpp|h)")+ (find-files "src/shogun/transfer/domain_adaptation"+ "^DomainAdaptationSVM\\.(cpp|h)"))))))) (build-system cmake-build-system) (arguments '(#:tests? #f ;no check target@@ -423,62 +436,59 @@ sample proximities between pairs of cases.") "applications/easysvm/data" "applications/msplicer/data" "applications/ocr/data"- "examples/documented/data"- "examples/documented/matlab_static"- "examples/documented/octave_static"- "examples/undocumented/data"- "examples/undocumented/matlab_static"- "examples/undocumented/octave_static"- "tests/integration/data"- "tests/integration/matlab_static"- "tests/integration/octave_static"- "tests/integration/python_modular/tests"))+ "examples/meta/data"+ "examples/undocumented/data")) #t)) (add-after 'unpack 'change-R-target-path (lambda* (#:key outputs #:allow-other-keys)- (substitute* '("src/interfaces/r_modular/CMakeLists.txt"- "src/interfaces/r_static/CMakeLists.txt"- "examples/undocumented/r_modular/CMakeLists.txt")+ (substitute* '("src/interfaces/r/CMakeLists.txt"+ "examples/meta/r/CMakeLists.txt") (("\\$\\{R_COMPONENT_LIB_PATH\\}") (string-append (assoc-ref outputs "out") "/lib/R/library/"))) #t)) (add-after 'unpack 'fix-octave-modules (lambda* (#:key outputs #:allow-other-keys)- (substitute* '("src/interfaces/octave_modular/CMakeLists.txt"- "src/interfaces/octave_static/CMakeLists.txt")+ (substitute* "src/interfaces/octave/CMakeLists.txt" (("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}")- "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave"))-- ;; change target directory- (substitute* "src/interfaces/octave_modular/CMakeLists.txt"+ "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave")+ ;; change target directory (("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}") (string-append (assoc-ref outputs "out") "/share/octave/packages")))+ (substitute* '("src/interfaces/octave/swig_typemaps.i"+ "src/interfaces/octave/sg_print_functions.cpp")+ ;; "octave/config.h" and "octave/oct-obj.h" deprecated in Octave.+ (("octave/config\\.h") "octave/octave-config.h")+ (("octave/oct-obj.h") "octave/ovl.h")) #t))+ (add-after 'unpack 'move-rxcpp+ (lambda* (#:key inputs #:allow-other-keys)+ (let ((rxcpp-dir "shogun/third-party/rxcpp"))+ (mkdir-p rxcpp-dir)+ (install-file (assoc-ref inputs "rxcpp") rxcpp-dir)+ #t))) (add-before 'build 'set-HOME ;; $HOME needs to be set at some point during the build phase (lambda _ (setenv "HOME" "/tmp") #t))) #:configure-flags (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE" "-DUSE_SVMLIGHT=OFF" ;disable proprietary SVMLIGHT- ;;"-DJavaModular=ON" ;requires unpackaged jblas- ;;"-DRubyModular=ON" ;requires unpackaged ruby-narray- ;;"-DPerlModular=ON" ;"FindPerlLibs" does not exist- ;;"-DLuaModular=ON" ;fails because lua doesn't build pkgconfig file- "-DOctaveModular=ON"- "-DOctaveStatic=ON"- "-DPythonModular=ON"- "-DPythonStatic=ON"- "-DRModular=ON"- "-DRStatic=ON"- "-DCmdLineStatic=ON")))+ "-DBUILD_META_EXAMPLES=OFF" ;requires unpackaged ctags+ ;;"-DINTERFACE_JAVA=ON" ;requires unpackaged jblas+ ;;"-DINTERFACE_RUBY=ON" ;requires unpackaged ruby-narray+ ;;"-DINTERFACE_PERL=ON" ;"FindPerlLibs" does not exist+ ;;"-DINTERFACE_LUA=ON" ;fails because lua doesn't build pkgconfig file+ "-DINTERFACE_OCTAVE=ON"+ "-DINTERFACE_PYTHON=ON"+ "-DINTERFACE_R=ON"))) (inputs `(("python" ,python) ("numpy" ,python-numpy) ("r-minimal" ,r-minimal) ("octave" ,octave) ("swig" ,swig)+ ("eigen" ,eigen) ("hdf5" ,hdf5) ("atlas" ,atlas) ("arpack" ,arpack-ng)@@ -488,7 +498,8 @@ sample proximities between pairs of cases.") ("lzo" ,lzo) ("zlib" ,zlib))) (native-inputs- `(("pkg-config" ,pkg-config)))+ `(("pkg-config" ,pkg-config)+ ("rxcpp" ,rxcpp))) ;; Non-portable SSE instructions are used so building fails on platforms ;; other than x86_64. (supported-systems '("x86_64-linux"))-- 2.17.0
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAlsNvlcACgkQ5qXuPBlGeg1rZw//bm2jCNudExPJf4j72lym63blW+GCX7HapP/AyaNxqYjTi3JEtrHulYWvy45nTFFLJb9NtQ1BJTIrTxYTDn8/9GEqseSrrQ6ucqpdcCsxrACKOA95HNv/tSAdKr4zOouBXsJtYt+VpCsdKl4vhKeTZREZIjpdvbTmuujY+v2GKgJ/UWYr0mwZK8Ly70SrA5IRpzMbqb4Frx5ccpKGLERBakt7Cgjc2xLeDIpmRFJw82i6rv7+4NgWO6QTstEyCd5d30fZ+X4Ew/DxphBIHlgEtBO6IcFsN+eKQMYKLTVV1vo/QF0YCyUrr+CoU61Z9g4KRB4sarMGOMOg60lwPdLGl8MR6SFA3yPKuoTabaWgC5/y9nu0/vw66Ikegujm9dxftRMZ8jZzLUbICt0KS3NN5W3ZxwVxeZFGs4pGfGGALU06uB9aSmSSYCQRVeEy0/QNpi1dwbtPTOFcwEkuZ8sFGKznC3WqobEsTsSR/LpWavtpojE8zOd09JlyDCgaSWo1mVjQY62I4UTiGNaBLGddkwWpK0b55XAnlFY9Hs4fX5uzpGCTOUd/saaIf6XClyn96PybbO2INSm6ym6cpYKbokvZUErYzvA8FBhwG1+x4Vz6c+EgtBMA6lMyTBttoZZpjDf84ge3KZpNk5cdy8i++zNOfiQ5QpejRDRWe0G8/Zs==gd9t-----END PGP SIGNATURE-----
R
R
Ricardo Wurmus wrote on 29 May 2018 23:32
(name . Kei Kebreau)(address . kkebreau@posteo.net)
878t82qhai.fsf@mdc-berlin.de
Kei Kebreau <kkebreau@posteo.net> writes:
Toggle quote (3 lines)> The shogun patch below builds successfully for me! If no corrections> need to be made, I'll push this patch series to master!
Beautiful! This looks good to me.
Thank you for making the extra effort even though you just wanted toupdate Octave!
-- Ricardo
K
K
Kei Kebreau wrote on 30 May 2018 00:34
(name . Ricardo Wurmus)(address . ricardo.wurmus@mdc-berlin.de)
87d0xeks4x.fsf@posteo.net
Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> writes:
Toggle quote (9 lines)> Kei Kebreau <kkebreau@posteo.net> writes:>> The shogun patch below builds successfully for me! If no corrections>> need to be made, I'll push this patch series to master!>> Beautiful! This looks good to me.>> Thank you for making the extra effort even though you just wanted to> update Octave!
Packaging things like this makes for a great puzzle, and I love puzzles.
Pushed to master! Thanks to everyone involved in the review!
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAlsN1Y4ACgkQ5qXuPBlGeg3L7xAAszaV7MY10bENzYWccoqdRiscIAdp+iELRuyEZaN/GSnEnfGMXYlaZDp5eL7e7u0K727Ntm8fevfMoER68X20dgWo4LcckVz5S56kb8G4AY2K6Njk78Ar3h5Qqp4MNNaSjMt/9V+7+0BUFpY8oKLpnJrOJI0yF8aGKBZMV+6cVMqs2Yg8Mxh7UvWsuW3RrJr03vdUkFr8/jlF17ryhAS/4KylSFFW3mFcrukfnctotpSrVoBzDhHKcaJiylXAtkLlA2BExbNrAreVQ4A1ZhBOmwGcEsSBgvGuyAwphtOXvfjK6j9e5aum+J3k7aPXrshuq5DIMvnnZvsVXudgd/kFVuHjQZOfHo80A4nyuirMhYD05CB5uRy8Of7rLfAL402kouuhwH8s85l8iokyCHMaNru85oVTRP4aK/FhoQ3knFLdkYyYplUgFr0ClDAFb7r0WiDwUtBaGoPAhqcZpDc3kHYH1iYuFWzfcqWNRX2+F1Iv5i3xdaM8pZmHP/hp7nQs7jDUB07cWEFNog+sNiZtxsrBa7q4deht9NmPGudAR35svbhHTIegt/KteqV/kpkaLjV2b4aUtcp+cgB0YGZEduVEJ6plYHuGUkL3bvCT0/ezMijeU67RnJ1Z0tmteqd+AJ2oEdCMSnQXxY93zAjITERdBkDRb+0iWi+O0rrVxAI==ptLd-----END PGP SIGNATURE-----
L
L
Ludovic Courtès wrote on 31 May 2018 17:41
control message for bug #31479
(address . control@debbugs.gnu.org)
876033omru.fsf@gnu.org
tags 31479 fixedclose 31479
?
Your comment

This issue is archived.

To comment on this conversation send email to 31479@debbugs.gnu.org