X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/9b3c231e3c144de11d670dff362be3afdd0f4d27..174f5076bf8cefe00185d6f84c1a28b47f76489c:/gnu/packages/maths.scm diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7db2b31012..9df547f1b4 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5,14 +5,14 @@ ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier ;;; Copyright © 2014 Federico Beffa ;;; Copyright © 2014 Mathieu Lirzin -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015, 2018 Mark H Weaver ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2015 Fabian Harfert ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016, 2018, 2020 Kei Kebreau -;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017, 2018, 2019, 2020 Paul Garlick @@ -26,7 +26,7 @@ ;;; Copyright © 2018 Joshua Sierles, Nextjournal ;;; Copyright © 2018 Nadya Voronova ;;; Copyright © 2018 Adam Massmann -;;; Copyright © 2018 Marius Bakke +;;; Copyright © 2018, 2020 Marius Bakke ;;; Copyright © 2018 Eric Brown ;;; Copyright © 2018 Julien Lepiller ;;; Copyright © 2018 Amin Bandali @@ -460,23 +460,45 @@ precision floating point numbers.") (define-public gsl (package (name "gsl") - (version "2.5") + (version "2.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gsl/gsl-" version ".tar.gz")) (sha256 (base32 - "1395y9hlhqadn5g9j8q22224fds5sd92jxi9czfavjj24myasq04")) - (patches (search-patches "gsl-test-i686.patch")))) + "1a460zj9xmbgvcymkdhqh313c4l29mn9cffbi5vf33x3qygk70mp")))) (build-system gnu-build-system) (arguments - `(;; Currently there are numerous tests that fail on "exotic" - ;; architectures such as aarch64 and ppc64le. - ,@(if (string-prefix? "aarch64-linux" - (or (%current-target-system) (%current-system))) - '(#:tests? #f) - '()))) + (let ((system (%current-system))) + (cond + ((string-prefix? "aarch64" system) + ;; Some sparse matrix tests are failing on AArch64: + ;; https://lists.gnu.org/archive/html/bug-gsl/2020-04/msg00001.html + '(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-failing-tests + (lambda _ + (substitute* "spmatrix/test.c" + ((".*test_complex.*") "\n")) + #t))))) + ((string-prefix? "i686" system) + ;; There are rounding issues with these tests on i686: + ;; https://lists.gnu.org/archive/html/bug-gsl/2016-10/msg00000.html + ;; https://lists.gnu.org/archive/html/bug-gsl/2020-04/msg00000.html + '(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-failing-tests + (lambda _ + (substitute* "linalg/test.c" + ((".*gsl_test\\(test_LU_decomp.*") "\n") + ((".*gsl_test\\(test_LUc_decomp.*") "\n") + ((".*gsl_test\\(test_cholesky_decomp.*") "\n") + ((".*gsl_test\\(test_COD_lssolve2.*") "\n")) + (substitute* "spmatrix/test.c" + ((".*test_all.*") "\n") + ((".*test_float.*") "\n") + ((".*test_complex.*") "\n")) + #t))))) + (else '())))) (home-page "https://www.gnu.org/software/gsl/") (synopsis "Numerical library for C and C++") (description @@ -856,7 +878,7 @@ computations.") ("flex" ,flex))) (inputs `(("zlib" ,zlib) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("libtirpc" ,libtirpc))) (arguments `(#:parallel-tests? #f @@ -1096,7 +1118,7 @@ extremely large and complex data collections.") `(("hdf4" ,hdf4) ("hdf5" ,hdf5) ("zlib" ,zlib) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("slf4j-api" ,java-slf4j-api))) (arguments `(#:configure-flags @@ -1213,7 +1235,7 @@ implemented in C.") `(("hdf4" ,hdf4-alt) ; assume most HDF-EOS2 users won't use the HDF4 netCDF API ;; XXX: These inputs are really dependencies of hdf4. ("zlib" ,zlib) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("libtirpc" ,libtirpc) ("gctp" ,gctp))) @@ -1298,6 +1320,45 @@ Swath).") #t)))))) (synopsis "Management suite for data with parallel IO support"))) +(define-public hdf5-blosc + (package + (name "hdf5-blosc") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Blosc/hdf5-blosc.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nj2bm1v6ymm3fmyvhbn6ih5fgdiapavlfghh1pvbmhw71cysyqs")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list (string-append "-DBLOSC_INSTALL_DIR=" + (assoc-ref %build-inputs "c-blosc")) + (string-append "-DPLUGIN_INSTALL_PATH=" + (assoc-ref %outputs "out") + "/hdf5/lib/plugin")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'do-not-build-blosc + (lambda _ + (substitute* "CMakeLists.txt" + (("set\\(BLOSC_INSTALL_DIR.*") "") + (("ExternalProject_Add\\(project_blosc") "message(")) + #t))))) + (inputs + `(("c-blosc" ,c-blosc) + ("hdf5" ,hdf5-1.10))) + (home-page "https://github.com/Blosc/hdf5-blosc") + (synopsis "Filter for HDF5 using the Blosc compressor") + (description "This is a filter for HDF5 that uses the Blosc compressor; by +installing this filter, you can read and write HDF5 files with +Blosc-compressed datasets.") + (license license:expat))) + (define-public h5check (package (name "h5check") @@ -1373,7 +1434,7 @@ similar to MATLAB, GNU Octave or SciPy.") `(("hdf4" ,hdf4-alt) ("hdf5" ,hdf5) ("zlib" ,zlib) - ("libjpeg" ,libjpeg))) + ("libjpeg" ,libjpeg-turbo))) (arguments `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4") @@ -1646,6 +1707,12 @@ can solve two kinds of problems: ("glpk" ,glpk) ("glu" ,glu) ("graphicsmagick" ,graphicsmagick) + + ;; TODO: libjpeg-turbo is indirectly required through libtiff. In + ;; the next rebuild cycle, add an absolute reference for -ljpeg in + ;; libtiff.la instead of having to provide it here. + ("libjpeg" ,libjpeg-turbo) + ("hdf5" ,hdf5) ("lapack" ,lapack) ("libsndfile" ,libsndfile) @@ -1684,7 +1751,12 @@ can solve two kinds of problems: `(#:configure-flags (list (string-append "--with-shell=" (assoc-ref %build-inputs "bash") - "/bin/sh")) + "/bin/sh") + + ;; XXX: Without this flag, linking octave-cli fails with + ;; undefined references to 'logf@GLIBCXX_3.4' et.al. due to + ;; not pulling in liboctinterp.la for -lstdc++. + "--enable-link-all-dependencies") #:phases (modify-phases %standard-phases (add-after 'configure 'configure-makeinfo @@ -3243,7 +3315,7 @@ parts of it.") (define-public openblas (package (name "openblas") - (version "0.3.7") + (version "0.3.9") (source (origin (method url-fetch) @@ -3252,7 +3324,7 @@ parts of it.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0jbdjsi0qsxahdcm42agnn1y7xpmg0hrhwjsxg0zbhs9wwy3p568")))) + "14iz9xnrb9xiwgj84j94mc74gg0zn2vsy9fmsijxxma1n7dck4w3")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -3854,26 +3926,28 @@ in finite element programs.") (define-public flann (package (name "flann") - (version "1.8.4") + (version "1.9.1") + (home-page "https://github.com/mariusmuja/flann/") (source (origin - (method url-fetch) - (uri - (string-append - "http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-" - version "-src.zip")) + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz")) + "0p56fl2yx1r86ds1mgjq40926jdcgq3hka7p3l1hv2acv9jxp15x")) (patches (search-patches "flann-cmake-3.11.patch")))) (build-system cmake-build-system) - (outputs '("out" - "octave")) ;46 MiB .mex file that pulls Octave + (outputs '("out")) (native-inputs `(("unzip" ,unzip))) (inputs `(("hdf5" ,hdf5) - ("octave" ,octave-cli) + ;; FIXME: 'mkoctfile' fails with a linker error: + ;; ld: cannot find -loctinterp + ;; ld: cannot find -loctave + ;; Disable it for now. + ;;("octave" ,octave-cli) ("python" ,python-2) ; print syntax ;; ("python2-numpy" ,python2-numpy) ; only required for the tests ("zlib" ,zlib))) @@ -3886,14 +3960,6 @@ in finite element programs.") ;; Save 12 MiB by not installing .a files. Passing ;; '-DBUILD_STATIC_LIBS=OFF' has no effect. #:phases (modify-phases %standard-phases - (add-before 'configure 'set-octave-directory - (lambda* (#:key outputs #:allow-other-keys) - ;; Install the .mex file in the "octave" output. - (let ((out (assoc-ref outputs "octave"))) - (substitute* "src/matlab/CMakeLists.txt" - (("share/flann/octave") - (string-append out "/share/flann/octave"))) - #t))) (add-after 'install 'remove-static-libraries (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3903,7 +3969,6 @@ in finite element programs.") #t)))) #:tests? #f)) ; The test data are downloaded from the Internet. - (home-page "http://www.cs.ubc.ca/research/flann/") (synopsis "Library for approximate nearest neighbors computation") (description "FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. It implements a @@ -4661,7 +4726,7 @@ linear algebra primitives specifically targeting graph analytics.") (define-public dune-common (package (name "dune-common") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) @@ -4669,7 +4734,7 @@ linear algebra primitives specifically targeting graph analytics.") version "/dune-common-" version ".tar.gz")) (sha256 (base32 - "019wcr1qf7jwyxx1y5y290wdlglylskvbb2m01ljkzcza2xnlmhw")))) + "140q1zh44cr5yrjwg4b5ga803rkqv55vk30l2cqm29aklj1wb0rw")))) (build-system cmake-build-system) (arguments `(#:phases @@ -4699,7 +4764,7 @@ Differences} (FD).") (define-public dune-geometry (package (name "dune-geometry") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) @@ -4707,7 +4772,7 @@ Differences} (FD).") version "/dune-geometry-" version ".tar.gz")) (sha256 (base32 - "0hlaaxjyv9j05blasvb67sy02hd0w4g9znf68gdh3l731dd1aqbn")))) + "1cicvlwbyyw76npicnblxckyvhbfn3ip8isydiv3hlrlz8zcg5nr")))) (build-system cmake-build-system) (arguments `(#:phases @@ -4739,15 +4804,17 @@ This package contains the basic DUNE geometry classes.") (define-public dune-uggrid (package (name "dune-uggrid") - (version "2.6.0") + (version "2.7.0") (source (origin - (method url-fetch) - (uri (string-append "https://dune-project.org/download/" - version "/dune-uggrid-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.dune-project.org/staging/dune-uggrid.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "05l7a1gb78mny49anyxk6rjvn66rhgm30y72v5cjg0m5kfgr1a1f")))) + "192miqgmfj6jwk969gydzpbv9ki7jg5nky3ydnrwa2nq29b5xkh0")))) (build-system cmake-build-system) (arguments `(#:phases @@ -4774,7 +4841,7 @@ This package contains the DUNE UG grid classes.") (define-public dune-grid (package (name "dune-grid") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) @@ -4782,7 +4849,7 @@ This package contains the DUNE UG grid classes.") version "/dune-grid-" version ".tar.gz")) (sha256 (base32 - "1jp4vscm9yb9xg0lh7apzccfkhvgbnk652yahigmh3cvzpl4acd0")))) + "17fjz30qazjgl11sryyxnw9klai4yz1ji4bs68013xcxc5hdv27s")))) (build-system cmake-build-system) (arguments `(#:phases @@ -4817,7 +4884,7 @@ This package contains the basic DUNE grid classes.") (define-public dune-istl (package (name "dune-istl") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) @@ -4825,11 +4892,24 @@ This package contains the basic DUNE grid classes.") version "/dune-istl-" version ".tar.gz")) (sha256 (base32 - "0l2gyrvys5w6wsmk0ckbb7295s80b7yk7qrl7x66akv2jv1nzq2w")))) + "0gl3wgz5rs6sb4m83440ny45sbx7z7lnbi3gx6r9nm3rvy5j33f9")) + (patches (search-patches "dune-istl-2.7-fix-non-mpi-tests.patch")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases + ;; XXX: istl/test/matrixtest.cc includes and fails to find + ;; the stdlib types when the gfortran header is used. Remove gfortran + ;; from CPLUS_INCLUDE_PATH as a workaround. + (add-after 'set-paths 'hide-gfortran + (lambda* (#:key inputs #:allow-other-keys) + (let ((gfortran (assoc-ref inputs "gfortran"))) + (setenv "CPLUS_INCLUDE_PATH" + (string-join + (delete (string-append gfortran "/include/c++") + (string-split (getenv "CPLUS_INCLUDE_PATH") #\:)) + ":")) + #t))) (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) @@ -4863,7 +4943,7 @@ aggregation-based algebraic multigrid.") (define-public dune-localfunctions (package (name "dune-localfunctions") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) @@ -4871,11 +4951,23 @@ aggregation-based algebraic multigrid.") version "/dune-localfunctions-" version ".tar.gz")) (sha256 (base32 - "19c6zjinwwpy8jh4v4prhphyd438rapd4x80fj93apmwgw04nrhl")))) + "1yih59h6vngii696bx1c2vil02lriij4kz0nc583mjn9kiaqxfqd")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases + ;; XXX: localfunctions/test/lagrangeshapefunctiontest.cc includes + ;; and fails to find the stdlib types when the gfortran header is used. + ;; Hide gfortran from CPLUS_INCLUDE_PATH to ensure we get the GCC header. + (add-after 'set-paths 'hide-gfortran + (lambda* (#:key inputs #:allow-other-keys) + (let ((gfortran (assoc-ref inputs "gfortran"))) + (setenv "CPLUS_INCLUDE_PATH" + (string-join + (delete (string-append gfortran "/include/c++") + (string-split (getenv "CPLUS_INCLUDE_PATH") #\:)) + ":")) + #t))) (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) @@ -4906,15 +4998,17 @@ assemble global function spaces on finite-element grids.") (define-public dune-alugrid (package (name "dune-alugrid") - (version "2.6.0") + (version "2.7.0-git-81d35682") (source (origin - (method url-fetch) - (uri (string-append "https://dune-project.org/download/" - version "/dune-alugrid-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.dune-project.org/extensions/dune-alugrid.git") + (commit "81d356827c84454b971937db02c02b90bbcd7fe5"))) + (file-name (git-file-name name version)) (sha256 (base32 - "1l9adgyjpra8mvwm445s0lpjshnb63jag85fb2hisbjn6bm320yj")))) + "0z54lwfp53prcrs94k8gwh047l9z642jll3l56xlyfr69z0b2zz1")))) (build-system cmake-build-system) (arguments `(#:phases @@ -4954,17 +5048,17 @@ cubes.") (define-public dune-subgrid (package (name "dune-subgrid") - (version "2.6.0") + (version "2.7.0-git-2103a363") (source (origin (method git-fetch) (uri (git-reference (url "https://git.imp.fu-berlin.de/agnumpde/dune-subgrid") - (commit "releases/2.6-1"))) + (commit "2103a363f32e8d7b60e66eee7ddecf969f6cf762"))) (file-name (git-file-name name version)) (sha256 (base32 - "1gcv35rx3knqd54r4pp9rzd639db4j8w2r2ibq43w1mgwdcqhs64")))) + "1wsjlypd3835c3arqjkw836cxx5q67zy447wa65q634lf6f6v9ia")))) (build-system cmake-build-system) (arguments `(#:phases @@ -4994,7 +5088,7 @@ provides the full grid interface including adaptive mesh refinement.") (define-public dune-typetree (package (name "dune-typetree") - (version "2.6.0") + (version "2.7.0") (source (origin (method git-fetch) @@ -5004,7 +5098,7 @@ provides the full grid interface including adaptive mesh refinement.") (file-name (git-file-name name version)) (sha256 (base32 - "0mnv6w2f22lz3j4bdpdjq55vjm8xxfx9v4vvhg9bd36xpsbjpjp9")))) + "1rhv25yg0q1hw50c8wlfqhgwrjl4mh62zq9v14ilwgzbfgxmpiy7")))) (build-system cmake-build-system) (arguments `(#:phases @@ -5033,7 +5127,7 @@ operating on statically typed trees of objects.") (define-public dune-functions (package (name "dune-functions") - (version "2.6.0") + (version "2.7.0") (source (origin (method git-fetch) @@ -5043,7 +5137,7 @@ operating on statically typed trees of objects.") (file-name (git-file-name name version)) (sha256 (base32 - "1an8gb477n8j0kzpbrv7nr1snh8pxip0gsxq6w63jc83gg3dj200")))) + "1na4gcih0kin37ksj2xj07ds04v7zx53pjdhm1hzy55jjfqdjk8h")))) (build-system cmake-build-system) (arguments `(#:phases @@ -5083,17 +5177,17 @@ implemented as callable objects, and bases of finite element spaces.") (define-public dune-pdelab (package (name "dune-pdelab") - (version "2.6.0-rc1") + (version "2.7.0-git-476fe437") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.dune-project.org/pdelab/dune-pdelab") - (commit (string-append "v" version)))) + (commit "476fe43763fa6f459c5e4658e2a2b4b5582db834"))) (file-name (git-file-name name version)) (sha256 (base32 - "07g0s9448z65vjrq88g5rv3340iifil85k170n8kbqchsvi4ny5v")))) + "0cs36piqzn6rq0j2ih3ab3q3q9yg199wk72k5qi86pkzh7i7fdn1")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled (inputs