diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/admin.scm | 4 | ||||
-rw-r--r-- | gnu/packages/algebra.scm | 5 | ||||
-rw-r--r-- | gnu/packages/engineering.scm | 1 | ||||
-rw-r--r-- | gnu/packages/file-systems.scm | 10 | ||||
-rw-r--r-- | gnu/packages/freedesktop.scm | 4 | ||||
-rw-r--r-- | gnu/packages/game-development.scm | 4 | ||||
-rw-r--r-- | gnu/packages/golang.scm | 150 | ||||
-rw-r--r-- | gnu/packages/machine-learning.scm | 123 | ||||
-rw-r--r-- | gnu/packages/mail.scm | 4 | ||||
-rw-r--r-- | gnu/packages/maths.scm | 4 | ||||
-rw-r--r-- | gnu/packages/mpd.scm | 4 | ||||
-rw-r--r-- | gnu/packages/networking.scm | 4 | ||||
-rw-r--r-- | gnu/packages/patches/swig-octave-patches.patch | 1119 | ||||
-rw-r--r-- | gnu/packages/swig.scm | 5 | ||||
-rw-r--r-- | gnu/packages/version-control.scm | 6 |
15 files changed, 1387 insertions, 60 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 437a183f7b..2583cc2018 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1953,7 +1953,7 @@ throughput (in the same interval).") (define-public thefuck (package (name "thefuck") - (version "3.26") + (version "3.27") (source (origin (method url-fetch) (uri (string-append "https://github.com/nvbn/thefuck/archive/" @@ -1961,7 +1961,7 @@ throughput (in the same interval).") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0ddlf25ik97z34bcpc52xyfhlfm6a3hdi43l6cz4ggwcawdwvn1p")) + "0my32n2x8x0f0wr8ql7qgk9qhb6ibv5b1rqs5b2r4nadv0gpiv96")) (patches (search-patches "thefuck-test-environ.patch")))) (build-system python-build-system) (arguments diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 806dc45a24..816f013655 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -714,9 +714,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\"") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 0f137dd035..a28a5db0eb 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 6522662c4e..4fd33ae901 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; @@ -107,17 +107,17 @@ single file can be mounted.") (define-public disorderfs (package (name "disorderfs") - (version "0.5.2") + (version "0.5.3") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ReproducibleBuilds/disorderfs.git") - (commit "0.5.2"))) + (url "https://salsa.debian.org/reproducible-builds/disorderfs.git") + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1j028dq3d4m64mn9xmfamcnnc7i2drmra4pdmxdmqdsi8p7yj4sv")))) + "1nmhfvxpvz3xsfxl9wqnh6r2l5m7hjq6n0vpblsl5xdcvwaqcf50")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 71b35894d9..a6b79f41b0 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -82,7 +82,7 @@ (define-public xdg-utils (package (name "xdg-utils") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) @@ -91,7 +91,7 @@ version ".tar.gz")) (sha256 (base32 - "1k4b4m3aiyqn9k12a0ihcdahzlspl3zhskmm1d7228dvqvi546cm")))) + "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p")))) (build-system gnu-build-system) (native-inputs `(("docbook-xsl" ,docbook-xsl) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index be7b758f91..3d6a038d9d 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -396,7 +396,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -404,7 +404,7 @@ support.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xb3zwcdk7khdrza6spl02g5n2xbij6nbszv8vi27vagjnmz1wxh")))) + "1zrq1nhb50mwqzw3fln6vj49ljddil1v7yby3ahjbcm94s25ll1y")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7b09f56853..d61747a09c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1471,3 +1471,153 @@ Features include: (description "This package is atomic boolean library for Go code, optimized for performance yet simple to use.") (license license:expat)))) + +(define-public go-github-com-urfave-cli + (let ((commit "cfb38830724cc34fedffe9a2a29fb54fa9169cd1") + (revision "0")) + (package + (name "go-github-com-urfave-cli") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/cli.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/urfave/cli")) + (home-page "https://github.com/urfave/cli") + (synopsis "Library for building command-line interfaces in Go") + (description "This package provides a library for building command-line +interfaces in Go.") + (license license:expat)))) + +(define-public go-github-com-blang-semver + (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9") + (revision "0")) + (package + (name "go-github-com-blang-semver") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/blang/semver.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/blang/semver")) + (home-page "https://github.com/blang/semver") + (synopsis "Semantic versioning library written in Go") + (description "Semver is a library for Semantic versioning written in Go.") + (license license:expat)))) + +(define-public go-github-com-emicklei-go-restful + (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22") + (revision "0")) + (package + (name "go-github-com-emicklei-go-restful") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emicklei/go-restful.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/emicklei/go-restful")) + (home-page "https://github.com/emicklei/go-restful") + (synopsis "Build REST-style web services using Go") + (description "This package provides @code{go-restful}, which helps +developers to use @code{http} methods explicitly and in a way that's consistent +with the HTTP protocol definition.") + (license license:expat)))) + +(define-public go-github-com-google-cadvisor + (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd") + (revision "0")) + (package + (name "go-github-com-google-cadvisor") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/cadvisor.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/cadvisor")) + (home-page "https://github.com/google/cadvisor") + (synopsis "Analyze resource usage of running containers") + (description "The package provides @code{cadvisor}, which provides +information about the resource usage and preformance characteristics of running +containers.") + (license license:asl2.0)))) + +(define-public go-github-com-google-gofuzz + (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382") + (revision "0")) + (package + (name "go-github-com-google-gofuzz") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/gofuzz.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/gofuzz")) + (home-page "https://github.com/google/gofuzz") + (synopsis "Fuzz testing library for Go") + (description "Gofuzz is a library for populationg Go objects with random +values for the purpose of fuzz testing.") + (license license:asl2.0)))) + +(define-public go-github-com-gorilla-context + (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42") + (revision "0")) + (package + (name "go-github-com-gorilla-context") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorilla/context.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gorilla/context")) + (home-page "https://github.com/gorilla/context") + (synopsis "Go registry for request variables") + (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.") + (license license:bsd-3)))) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index fb511b4949..e6f7a18346 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> @@ -36,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) @@ -366,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) @@ -376,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 @@ -408,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)"))) #t)))) (build-system cmake-build-system) (arguments @@ -423,62 +437,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 +499,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")) @@ -502,6 +514,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") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index b55d9eb3c5..49663fdf90 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2497,7 +2497,7 @@ killed threads.") (define-public pan (package (name "pan") - (version "0.144") + (version "0.145") (source (origin (method url-fetch) @@ -2505,7 +2505,7 @@ killed threads.") version "/source/" name "-" version ".tar.bz2")) (sha256 (base32 - "0l07y75z8jxhbmfv28slw81gjncs7i89x7fq44zif7xhq5vy7yli")))) + "1b4wamv33hprghcjk903bpvnd233yxyrm18qnh13alc8h1553nk8")))) (arguments `(#:configure-flags '("--with-gtk3" "--with-gtkspell" "--with-gnutls" "--enable-libnotify" "--enable-manual" diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 09d2780ced..fa36431e79 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1337,7 +1337,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) @@ -1345,7 +1345,7 @@ can solve two kinds of problems: version ".tar.lz")) (sha256 (base32 - "0pkkz1vazsh7ipffb09q0nc2jgx6q27pkkngygjij6jrpcly5zsp")))) + "0nm766737gbkq9wqry54a026k3dg7rb1065kngfpwgjz8b544xbp")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 6f2ff5d784..3c06fb0e64 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -88,7 +88,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.20.19") + (version "0.20.20") (source (origin (method url-fetch) (uri @@ -97,7 +97,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "1hsng4mnaz1jr2s3fy3q78vf2f6102lwphjdls7qln0pj8dyzk81")))) + "111m4z7zaz60xfxvz5xkxs1al4vzb8g2wwp7kmj65pvww335ir59")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index bddd4bc857..43aaf33dd0 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -546,7 +546,7 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "2.6.0") + (version "2.6.1") (source (origin (method url-fetch) @@ -554,7 +554,7 @@ of the same name.") version ".tar.xz")) (sha256 (base32 - "0zqip4ai18iar7sgialc3jmpng1yxxy4i9bphbaig23ss80py73i")))) + "126dvd6myjbxjr69dy9vzzdda2lmjy1wwwc6gcs5djb46jy5nvmb")))) (build-system gnu-build-system) (inputs `(("c-ares" ,c-ares) ("glib" ,glib) diff --git a/gnu/packages/patches/swig-octave-patches.patch b/gnu/packages/patches/swig-octave-patches.patch new file mode 100644 index 0000000000..9fb64a7b1f --- /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.scm index b931db412b..34163aa9e5 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 diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 9ad4f3faca..3a2975ee75 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -142,14 +142,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; to be updated as well. - (version "2.17.0") + (version "2.17.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "1ismz7nsz8dgjmk782xr9s0mr2qh06f72pdcgbxfmnw1bvlya5p9")))) + "0pm6bdnrrm165k3krnazxcxadifk2gqi30awlbcf9fism1x6w4vr")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -162,7 +162,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "09rpjj0m97h5lpzpwk47m6xsz9gb8wqf1s3dfqma3mwav2pb3njb")))))) + "0m7grrwsqaihdgcgaicxiy4rlqjpa75n5wl6hi2qhi33xa34gmc3")))))) (inputs `(("curl" ,curl) ("expat" ,expat) |