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"))