diff options
Diffstat (limited to 'gnu/packages/maths.scm')
-rw-r--r-- | gnu/packages/maths.scm | 1202 |
1 files changed, 591 insertions, 611 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 83f31c1396..3bac086666 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015–2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> @@ -26,7 +26,7 @@ ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Nadya Voronova <voronovank@gmail.com> ;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com> -;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2018, 2020, 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018 Eric Brown <brown@fastmail.com> ;;; Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018 Amin Bandali <bandali@gnu.org> @@ -48,6 +48,7 @@ ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me> +;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,6 +73,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (guix build-system cmake) @@ -84,6 +86,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -144,6 +147,7 @@ #:use-module (gnu packages scheme) #:use-module (gnu packages serialization) #:use-module (gnu packages shells) + #:use-module (gnu packages sphinx) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages tex) @@ -164,9 +168,10 @@ (sha256 (base32 "1q1887ryqdr9sn0522hc7p16kqwlxxyz5dkmma8ar2nxplhgll7q")))) (build-system gnu-build-system) - (inputs `(("gtk+" ,gtk+) - ("libxml2" ,libxml2))) - (native-inputs `(("pkg-config" ,pkg-config))) + (inputs (list gtk+ libxml2)) + (native-inputs (list pkg-config)) + (arguments + `(#:configure-flags '("CFLAGS=-O2 -g -fcommon"))) (synopsis "Natural deduction first-order logic interface") (description "Aris is a program for performing logical proofs. It supports propositional and predicate logic, as well as Boolean algebra and @@ -190,11 +195,9 @@ beginners.") (base32 "1lniw4bsb5qs5ybf018qllf95pzixb1q3lvybzl4k3xz8zpkrm6k")))) (build-system gnu-build-system) (inputs - `(("ncurses" ,ncurses) - ("readline" ,readline))) + (list ncurses readline)) (native-inputs - `(("cunit" ,cunit) - ("pkg-config" ,pkg-config))) + (list cunit pkg-config)) (synopsis "Terminal based bit manipulator in ncurses") (description "Bitwise is a multi base interactive calculator supporting dynamic base conversion and bit manipulation. It's a handy tool for low level @@ -222,7 +225,7 @@ Some of the features include: "092412jzxy6wdvpk96pfj499hpmaww8xllavbvlqspfpr7ips9id")))) (build-system gnu-build-system) (inputs - `(("fortran" ,gfortran))) + (list gfortran)) (synopsis "Visualizing and demonstrating convolution") (description "GNU C-Graph is a tool for demonstrating the theory of convolution. @@ -335,12 +338,12 @@ triangulations.") (setenv "CVXOPT_BUILD_GSL" "1") #t))))) (inputs - `(("fftw" ,fftw) - ("glpk" ,glpk) - ("gsl" ,gsl) - ("lapack" ,lapack) - ("openblas" ,openblas) - ("suitesparse" ,suitesparse))) + (list fftw + glpk + gsl + lapack + openblas + suitesparse)) (home-page "https://www.cvxopt.org") (synopsis "Python library for convex optimization") (description @@ -376,8 +379,8 @@ programming language.") (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (wrap-program (string-append bin "/units_cur") - `("PYTHONPATH" ":" prefix - ,(search-path-as-string->list (getenv "PYTHONPATH")))) + `("GUIX_PYTHONPATH" ":" prefix + ,(search-path-as-string->list (getenv "GUIX_PYTHONPATH")))) #t)))))) (synopsis "Conversion between thousands of scales") (description @@ -426,7 +429,7 @@ routines that have been extracted from the V8 JavaScript engine.") (base32 "194pzs1mlsj4ww6v37qq3961h5hckm5h805cv0r14xj3g9wfx2sk")))) (build-system gnu-build-system) - (inputs `(("tcl" ,tcl))) ;for 'tclsh' + (inputs (list tcl)) ;for 'tclsh' (synopsis "Local search for universal constants and scientific values") (description "GNU Dionysus is a convenient system for quickly retrieving the values of @@ -515,46 +518,56 @@ precision floating point numbers.") (define-public gsl (package (name "gsl") - (version "2.6") + (version "2.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gsl/gsl-" version ".tar.gz")) (sha256 (base32 - "1a460zj9xmbgvcymkdhqh313c4l29mn9cffbi5vf33x3qygk70mp")))) + "0av04cpblphvvs3kl5rwphniarml503501vrpqw31rd0bmwg7fzg")))) (build-system gnu-build-system) (arguments (let ((system (%current-system))) - (cond - ((or (string-prefix? "aarch64" system) - (string-prefix? "powerpc" system)) - ;; Some sparse matrix tests are failing on AArch64 and PowerPC: - ;; 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 '())))) + `(#:configure-flags (list "--disable-static") ;halves package size + #:phases + (modify-phases %standard-phases + ,@(cond + ((or (string-prefix? "aarch64" system) + (string-prefix? "powerpc" system)) + ;; Some sparse matrix tests are failing on AArch64 and PowerPC: + ;; https://lists.gnu.org/archive/html/bug-gsl/2020-04/msg00001.html + '((add-before 'check 'disable-failing-tests + (lambda _ + (substitute* "spmatrix/test.c" + ((".*test_complex.*") "\n")))))) + + ((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 + '((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_QR_decomp_r.*") "\n") + ((".*gsl_test\\(test_cholesky_decomp.*") "\n") + ((".*gsl_test\\(test_pcholesky_solve.*") "\n") + ((".*gsl_test\\(test_COD_lssolve2.*") "\n")) + (substitute* "spmatrix/test.c" + ((".*test_all.*") "\n") + ((".*test_float.*") "\n") + ((".*test_complex.*") "\n")) + + ;; XXX: These tests abort with: + ;; gsl: cholesky.c:645: ERROR: matrix is not positive definite + (substitute* '("multifit_nlinear/test.c" + "multilarge_nlinear/test.c") + (("gsl_ieee_env_setup.*" all) + (string-append "exit (77);\n" all))))))) + + (else '())))))) (home-page "https://www.gnu.org/software/gsl/") (synopsis "Numerical library for C and C++") (description @@ -565,6 +578,15 @@ differential equations, linear algebra, Fast Fourier Transforms and random numbers.") (license license:gpl3+))) +;; TODO: Merge back into the gsl package as a separate output. +(define-public gsl-static + (package/inherit gsl + (name "gsl-static") + (arguments + `(,@(package-arguments gsl) + #:configure-flags (list "--disable-shared") + #:make-flags (list "CFLAGS=-fPIC"))))) + (define-public sleef (package (name "sleef") @@ -596,10 +618,7 @@ numbers.") (for-each make-file-writable (find-files ".")) #t))))) (inputs - `(("fftw" ,fftw) - ("gmp" ,gmp) - ("mpfr" ,mpfr) - ("openssl" ,openssl))) + (list fftw gmp mpfr openssl)) (home-page "https://sleef.org/") (synopsis "SIMD library for evaluating elementary functions and DFT") (description @@ -623,7 +642,7 @@ It can utilize SIMD instructions that are available on modern processors.") "05bgxidxj8d9xdp82niy7cy36w181cxq7p8vc3y2ixshpgp1642a")))) (build-system gnu-build-system) (inputs - `(("gmp" ,gmp))) + (list gmp)) (arguments `(#:configure-flags '("--with-gmp" "--disable-static"))) @@ -667,10 +686,9 @@ LP/MIP solver is included in the package.") (base32 "0rj92x6p9m3la5gasjbj7sa569im527ffmka5y2sv1amgd3fflrh")))) (build-system gnu-build-system) (native-inputs - `(("which" ,(@ (gnu packages base) which)))) ; for the tests + (list (@ (gnu packages base) which))) ; for the tests (inputs - `(("glpk" ,glpk) - ("gmp" ,gmp))) + (list glpk gmp)) (home-page "http://www.4ti2.de/") (synopsis "Mathematical tool suite for problems on linear spaces") (description @@ -694,7 +712,7 @@ integer programming problems and computes Markov bases for statistics.") "00zdgiqb91vx6gd2103h3ijij0llspsxc6zz3iw2bll39fvkl4xq")))) (build-system gnu-build-system) (inputs - `(("gmp" ,gmp))) + (list gmp)) (home-page "https://www.inf.ethz.ch/personal/fukudak/cdd_home/index.html") (synopsis "Library for convex hulls and extreme rays of polyhedra") (description @@ -720,7 +738,7 @@ computing convex hulls.") "05kq3hzam31dlmkccv3v358r478kpvx76mw37ka12c6ypwv5dsnk")))) (build-system gnu-build-system) (inputs - `(("gmp" ,gmp))) + (list gmp)) (arguments `(#:tests? #f ; no check phase #:make-flags `("CC=gcc" @@ -759,7 +777,7 @@ be solved.") (base32 "1ic2q7kvxpqmgxlishygvx8d00i4wn51vkq4fyac44ahhf6c3kwd")))) (build-system cmake-build-system) (native-inputs - `(("perl" ,perl))) + (list perl)) (home-page "https://jugit.fz-juelich.de/mlz/libcerf") (synopsis "Library for complex error functions") (description @@ -782,7 +800,7 @@ Dawson, Faddeeva, and Voigt functions.") "1aq0qc1y27iw9grhgnyji3290wwfznsrk3sg6ynqpxwjdda53h4m")))) (build-system gnu-build-system) (inputs - `(("lrslib" ,lrslib))) + (list lrslib)) (arguments `(#:tests? #f ; no check phase #:phases @@ -827,14 +845,9 @@ halfspaces) or by their double description with both representations.") "0l7as5z6xvbxly8alam9s4kws70952qq35a6vkljzayi4b9gbklx")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) + (list autoconf automake libtool pkg-config)) (inputs - `(("eigen" ,eigen) - ("lapack" ,lapack) - ("fortran" ,gfortran))) + (list eigen lapack gfortran)) (synopsis "Fortran subroutines for solving eigenvalue problems") (description "ARPACK-NG is a collection of Fortran77 subroutines designed to solve @@ -916,15 +929,15 @@ problems in numerical linear algebra.") "0nnap9q1mv14g57dl3vkvxrdr10k5w7zzyxs6rgxhia8q8mphgqb")))) (build-system cmake-build-system) (arguments - `(#:phases + `(#:configure-flags '("-DCMAKE_C_FLAGS=-fcommon -O2") + #:phases (modify-phases %standard-phases ;; These tests use a lot of stack variables and segfault without ;; lifting resource limits. (add-after 'unpack 'disable-broken-tests (lambda _ (substitute* "TESTING/CMakeLists.txt" - (("add_lapack_test.* xeigtstz\\)") "")) - #t)) + (("add_lapack_test.* xeigtstz\\)") "")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -946,8 +959,7 @@ problems in numerical linear algebra.") "\\.h$"))) (copy-recursively (string-append "../clapack-" ,version "-CMAKE/INCLUDE") - (string-append out "/include")) - #t)))))) + (string-append out "/include")))))))) (home-page "https://www.netlib.org/clapack/") (synopsis "Numerical linear algebra library for C") (description @@ -961,7 +973,7 @@ provide LAPACK for someone who does not have access to a Fortran compiler.") (define-public scalapack (package (name "scalapack") - (version "2.0.2") + (version "2.1.0") (source (origin (method url-fetch) @@ -969,8 +981,8 @@ provide LAPACK for someone who does not have access to a Fortran compiler.") version ".tgz")) (sha256 (base32 - "0p1r61ss1fq0bs8ynnx7xq4wwsdvs32ljvwjnx6yxr8gd6pawx0c")) - (patches (search-patches "scalapack-blacs-mpi-deprecations.patch")))) + "19i0h9vdc3zsy58r6fy1vs2kz2l7amifkz0cf926j90xz1n23nb1")) + (patches (search-patches "scalapack-gcc-10-compilation.patch")))) (build-system cmake-build-system) (inputs `(("mpi" ,openmpi) @@ -980,7 +992,15 @@ provide LAPACK for someone who does not have access to a Fortran compiler.") `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES") #:phases (modify-phases %standard-phases (add-before 'check 'mpi-setup - ,%openmpi-setup)))) + ,%openmpi-setup) + (add-after 'unpack 'skip-faulty-test + (lambda _ + ;; FIXME: Skip these two tests that fail to complete for + ;; unknown reasons: + ;; <https://github.com/Reference-ScaLAPACK/scalapack/issues/43>. + (substitute* "TESTING/CMakeLists.txt" + (("^add_test\\(x[sd]hseqr.*" all) + (string-append "# " all "\n")))))))) (home-page "http://www.netlib.org/scalapack/") (synopsis "Library for scalable numerical linear algebra") (description @@ -1003,11 +1023,7 @@ singular value problems.") (sha256 (base32 "1fp7rbhjmz2w63r72kicf8lfszzimz2csfx868fracw167hpaz75")))) (build-system gnu-build-system) - (inputs `(("readline" ,readline) - ("cairo" ,cairo) - ("pango" ,pango) - ("gd" ,gd) - ("lua" ,lua))) + (inputs (list readline cairo pango gd lua)) (native-inputs `(("pkg-config" ,pkg-config) ("texlive" ,texlive-tiny))) @@ -1042,7 +1058,7 @@ plotting engine by third-party applications like Octave.") (sha256 (base32 "11wqmd443b4nksdbzp1msdws3av948nmwq1xz80w6hka3ss2aigd")))) (native-inputs - `(("fortran" ,gfortran))) + (list gfortran)) (build-system gnu-build-system) (synopsis "General Cartographic Transformation Package (GCTP)") (description @@ -1071,9 +1087,7 @@ computations.") "hdf4-tirpc.patch")))) (build-system gnu-build-system) (native-inputs - `(("gfortran" ,gfortran) - ("bison" ,bison) - ("flex" ,flex))) + (list gfortran bison flex)) (inputs `(("zlib" ,zlib) ("libjpeg" ,libjpeg-turbo) @@ -1081,6 +1095,8 @@ computations.") (arguments `(#:parallel-tests? #f #:configure-flags (list "--enable-shared" + "FCFLAGS=-fallow-argument-mismatch" + "FFLAGS=-fallow-argument-mismatch" (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "libtirpc") "/include/tirpc")) @@ -1114,7 +1130,7 @@ computations.") ;; .so-files. We truncate the hashes to avoid ;; unnecessary store references to those compilers: (substitute* "libhdf4.settings" - (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (("(/gnu/store/)([0-9A-Za-z]*)" all prefix hash) (string-append prefix (string-take hash 10) "..."))) #t)) (add-after 'install 'provide-absolute-libjpeg-reference @@ -1170,10 +1186,9 @@ incompatible with HDF5.") (patches (search-patches "hdf5-config-date.patch")))) (build-system gnu-build-system) (inputs - `(("zlib" ,zlib))) + (list zlib)) (native-inputs - `(("gfortran" ,gfortran) - ("perl" ,perl))) ;part of the test machinery needs Perl + (list gfortran perl)) ;part of the test machinery needs Perl (outputs '("out" ; core library "fortran")) ; fortran interface (arguments @@ -1363,9 +1378,9 @@ extremely large and complex data collections.") #:make-flags (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib") (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib") - (string-append "ZLIB=" (assoc-ref %build-inputs "zlib") "/lib/libz.so") + (string-append "ZLIB=" (search-input-file %build-inputs "/lib/libz.so")) (string-append "JPEGLIB=" - (assoc-ref %build-inputs "libjpeg") "/lib/libjpeg.so") + (search-input-file %build-inputs "/lib/libjpeg.so")) "LLEXT=so") #:phases @@ -1382,16 +1397,20 @@ extremely large and complex data collections.") "hdf/hdf5lib/exceptions/Makefile.in" "hdf/hdflib/Makefile.in") (("\\$\\(TOP\\)/lib/slf4j-api-1\\.7\\.5\\.jar") - (string-append (assoc-ref inputs "slf4j-api") - "/share/java/slf4j-api.jar"))) + ;; 'slf4j-api-X.Y.Z.jar' is installed in a Maven-style + ;; directory, so use 'find-files' to find it. + (car (find-files (assoc-ref inputs "slf4j-api") + "^slf4j-api.*\\.jar$")))) ;; Replace outdated config.sub and config.guess: (with-directory-excursion "config" (for-each (lambda (file) (install-file - (string-append (assoc-ref inputs "automake") - "/share/automake-" - ,(version-major+minor (package-version automake)) - "/" file) ".")) + (search-input-file inputs + (string-append + "/share/automake-" + ,(version-major+minor (package-version automake)) + "/" file)) + ".")) '("config.sub" "config.guess"))) ;; Fix embedded version number @@ -1409,8 +1428,9 @@ extremely large and complex data collections.") (testjars (append (map (lambda (i) - (string-append (assoc-ref inputs i) - "/share/java/" i ".jar")) + (car (find-files (assoc-ref inputs i) + (string-append "^" i + ".*\\.jar$")))) '("slf4j-api" "slf4j-simple")) (list (car (find-files (assoc-ref inputs "junit") "jar$")) @@ -1423,11 +1443,9 @@ extremely large and complex data collections.") "test/hdf5lib/junit.sh.in" "examples/runExample.sh.in") (("/usr/bin/test") - (string-append (assoc-ref inputs "coreutils") - "/bin/test")) + (search-input-file inputs "/bin/test")) (("/usr/bin/uname") - (string-append (assoc-ref inputs "coreutils") - "/bin/uname")) + (search-input-file inputs "/bin/uname")) (("CLASSPATH=[^\n]*") (string-append "CLASSPATH=" class-path))) (setenv "CLASSPATH" class-path)) @@ -1467,7 +1485,7 @@ implemented in C.") "hdf-eos2-fortrantests.patch")))) (build-system gnu-build-system) (native-inputs - `(("gfortran" ,gfortran))) + (list gfortran)) (inputs `(("hdf4" ,hdf4-alt) ; assume most HDF-EOS2 users won't use the HDF4 netCDF API ;; XXX: These inputs are really dependencies of hdf4. @@ -1505,12 +1523,10 @@ System (Grid, Point and Swath).") "hdf-eos5-fix-szip.patch" "hdf-eos5-fortrantests.patch")))) (native-inputs - `(("gfortran" ,gfortran))) + (list gfortran)) (build-system gnu-build-system) (inputs - `(("hdf5" ,hdf5-1.8) - ("zlib" ,zlib) - ("gctp" ,gctp))) + (list hdf5-1.8 zlib gctp)) (arguments `(#:configure-flags '("--enable-install-include" "--enable-shared" "CC=h5cc -Df2cFortran" "LIBS=-lgctp") @@ -1587,8 +1603,7 @@ Swath).") (("ExternalProject_Add\\(project_blosc") "message(")) #t))))) (inputs - `(("c-blosc" ,c-blosc) - ("hdf5" ,hdf5-1.10))) + (list c-blosc 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 @@ -1609,7 +1624,7 @@ Blosc-compressed datasets.") (base32 "1gm76jbwhz9adbxgn14zx8cj33dmjdr2g5xcy0m9c2gakp8w59kj")))) (build-system gnu-build-system) - (inputs `(("hdf5" ,hdf5-1.8))) ;h5cc for tests + (inputs (list hdf5-1.8)) ;h5cc for tests (home-page "https://www.hdfgroup.org/products/hdf5_tools/h5check.html") (synopsis "HDF5 format checker") (description "@code{h5check} is a validation tool for verifying that an @@ -1630,8 +1645,7 @@ HDF5 file is encoded according to the HDF File Format Specification.") "14ddy2xnb6sgp4hiax9v5sv4pr4l4dd4ps76nfha3nrpr1ikhcqm")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; Tests require googletest *sources* - (inputs `(("lapack" ,lapack) - ("fftw" ,fftw))) + (inputs (list lapack fftw)) ;; FIXME: Even though the fonts are available dvips complains: ;; "Font cmmi10 not found; characters will be left blank." (native-inputs @@ -1661,12 +1675,17 @@ similar to MATLAB, GNU Octave or SciPy.") (sha256 (base32 "1a2fpp15a2rl1m50gcvvzd9y6bavl6vjf9zzf63sz5gdmq06yiqf")) + (modules '((guix build utils))) + (snippet + ;; Make sure this variable is defined only once. Failing to do so + ;; would break builds of 'netcdf-parallel-openmpi' with a + ;; multiple-definition link error with GCC 10. + '(substitute* "ncdump/ocprint.c" + (("^int ocdebug") "static int ocdebug"))) (patches (search-patches "netcdf-date-time.patch")))) (build-system gnu-build-system) (native-inputs - `(("m4" ,m4) - ("doxygen" ,doxygen) - ("graphviz" ,graphviz))) + (list m4 doxygen graphviz)) (inputs `(("hdf4" ,hdf4-alt) ("hdf5" ,hdf5) @@ -1694,7 +1713,7 @@ similar to MATLAB, GNU Octave or SciPy.") ;; filenames to avoid unnecessary references to the corresponding ;; store items. (substitute* "libnetcdf.settings" - (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (("(/gnu/store/)([0-9A-Za-z]*)" all prefix hash) (string-append prefix (string-take hash 10) "..."))) #t))) @@ -1743,11 +1762,13 @@ sharing of scientific data.") "0x4acvfhbsx1q79dkkwrwbgfhm0w5ngnp4zj5kk92s1khihmqfhj")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f)) + `(#:configure-flags '("FCFLAGS=-fallow-argument-mismatch" + "FFLAGS=-fallow-argument-mismatch") + #:parallel-tests? #f)) (inputs - `(("netcdf" ,netcdf))) + (list netcdf)) (native-inputs - `(("gfortran" ,gfortran))) + (list gfortran)) (synopsis "Fortran interface for the netCDF library") (description (package-description netcdf)) (home-page (package-home-page netcdf)) @@ -1782,8 +1803,8 @@ sharing of scientific data.") (("libnlopt") (string-append out "/lib/libnlopt"))) #t)))))) - (inputs `(("guile" ,guile-2.0))) - (native-inputs `(("pkg-config" ,pkg-config))) + (inputs (list guile-2.0)) + (native-inputs (list pkg-config)) (home-page "http://ab-initio.mit.edu/wiki/") (synopsis "Library for nonlinear optimization") (description "NLopt is a library for nonlinear optimization, providing a @@ -1823,11 +1844,10 @@ online as well as original implementations of various other algorithms.") after "\n"))) #t)))))) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (inputs ;; TODO: Maybe add dependency on COIN-MUMPS, ASL, and HSL. - `(("lapack" ,lapack))) ;for both libblas and liblapack + (list lapack)) ;for both libblas and liblapack (home-page "https://www.coin-or.org") (synopsis "Large-scale nonlinear optimizer") (description @@ -1971,7 +1991,7 @@ interfaces.") (lambda* (#:key inputs outputs #:allow-other-keys) (delete-file (string-append (site-packages inputs outputs) - "PyNomad-0.0.0-py" + "/PyNomad-0.0.0-py" (python-version (assoc-ref inputs "python")) ".egg-info")) #t))))) @@ -2001,10 +2021,9 @@ the result of costly computer simulations.") '(delete-file-recursively "ThirdParty")))) (build-system gnu-build-system) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (inputs - `(("openblas" ,openblas))) + (list openblas)) (home-page "https://www.coin-or.org") (synopsis "Branch-and-cut solver") (description @@ -2032,10 +2051,9 @@ executable.") #t)))) (build-system gnu-build-system) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (inputs - `(("openblas" ,openblas))) + (list openblas)) (home-page "https://www.coin-or.org") (synopsis "Linear programming solver") (description @@ -2107,9 +2125,7 @@ and quadratic objectives using the Simplex algorithm.") (add-after 'fix-rpath 'check (assoc-ref %standard-phases 'check))))) (native-inputs - `(("patchelf" ,patchelf) - ("perl" ,perl) - ("sed" ,sed))) + (list patchelf perl sed)) (home-page "https://www.gecode.org") (synopsis "Toolkit for developing constraint-based systems") (description "Gecode is a C++ toolkit for developing constraint-based @@ -2177,7 +2193,7 @@ systems and applications. It provides a modular and extensible solver.") (string-append static "/include")) #t)))))) (inputs - `(("gfortran" ,gfortran))) + (list gfortran)) (native-inputs `(("lapack" ,lapack) ("openblas" ,openblas) @@ -2277,7 +2293,7 @@ between aspif and smodels format or to a human-readable text format.") (rename-file "cmake/ClaspConfig.cmake.in" "cmake/clasp-config.cmake.in")))))) (inputs - `(("libpotassco" ,libpotassco))) + (list libpotassco)) (home-page "https://potassco.org/") (synopsis "Answer set solver") (description "clasp is an answer set solver for (extended) normal and @@ -2342,8 +2358,7 @@ satisfiability checking (SAT).") "propagator" "propgator-sequence-mining" "symbol" "visitor")))))))))) (inputs - `(("clasp" ,clasp) - ("libpotassco" ,libpotassco))) + (list clasp libpotassco)) (native-inputs `(("clasp-src" ,(package-source clasp)))) (home-page "https://potassco.org/") @@ -2377,9 +2392,9 @@ satisfiability checking (SAT).") (("set\\(LIB_SUFFIX \"64\"\\)") "set(LIB_SUFFIX \"\")"))))))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (propagated-inputs - `(("glog" ,glog))) ;for #include <glog/glog.h> + (list glog)) ;for #include <glog/glog.h> (inputs `(("eigen" ,eigen) ("blas" ,openblas) @@ -2446,19 +2461,19 @@ can solve two kinds of problems: ("texinfo" ,texinfo) ("zlib" ,zlib))) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config) - ("perl" ,perl) - ;; The following inputs are not actually used in the build process. - ;; However, the ./configure gratuitously tests for their existence and - ;; assumes that programs not present at build time are also not, and - ;; can never be, available at run time! If these inputs are therefore - ;; not present, support for them will be built out. However, Octave - ;; will still run without them, albeit without the features they - ;; provide. - ("less" ,less) - ("ghostscript" ,ghostscript) - ("gnuplot" ,gnuplot))) + (list gfortran + pkg-config + perl + ;; The following inputs are not actually used in the build process. + ;; However, the ./configure gratuitously tests for their existence and + ;; assumes that programs not present at build time are also not, and + ;; can never be, available at run time! If these inputs are therefore + ;; not present, support for them will be built out. However, Octave + ;; will still run without them, albeit without the features they + ;; provide. + less + ghostscript + gnuplot)) ;; Octave code uses this variable to detect directories holding multiple CA ;; certificates to verify peers with. This is required for the networking ;; functions that require encryption to work properly. @@ -2503,7 +2518,7 @@ script files.") ,@(package-inputs octave-cli))) (native-inputs `(("qttools" , qttools) ;for lrelease - ("texlive" ,(texlive-union (list texlive-epsf))) ; for texi2dvi + ("texlive" ,(texlive-updmap.cfg (list texlive-epsf))) ; for texi2dvi ,@(package-native-inputs octave-cli))) (arguments (substitute-keyword-arguments (package-arguments octave-cli) @@ -2545,12 +2560,12 @@ script files.") (assoc-ref %outputs "out")) "-UCMAKE_INSTALL_RPATH"))) (inputs - `(("freetype" ,freetype) - ("glu" ,glu) - ("libxmu" ,libxmu) - ("mesa" ,mesa) - ("tcl" ,tcl) - ("tk" ,tk))) + (list freetype + glu + libxmu + mesa + tcl + tk)) (native-inputs `(("python" ,python-wrapper))) (home-page "https://github.com/tpaviot/oce") @@ -2629,17 +2644,17 @@ Open CASCADE library.") "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-UCMAKE_INSTALL_LIBDIR"))) (inputs - `(("doxygen" ,doxygen) - ;("freeimage" ,freeimage) - ("freetype" ,freetype) - ("glu" ,glu) - ("libxext" ,libxext) - ("libxi" ,libxi) - ("libxmu" ,libxmu) - ("mesa" ,mesa) - ("tbb" ,tbb) - ("tcl" ,tcl) - ("tk" ,tk))) + (list doxygen + ;("freeimage" ,freeimage) + freetype + glu + libxext + libxi + libxmu + mesa + tbb-2020 + tcl + tk)) ;; TODO: build Overview documentation and add 'doc' output. (home-page "https://www.opencascade.com") (synopsis "Libraries for 3D modeling and numerical simulation") @@ -2690,17 +2705,17 @@ This is the certified version of the Open Cascade Technology (OCCT) library.") #t)))) (build-system cmake-build-system) (propagated-inputs - `(("fltk" ,fltk) - ("gfortran" ,gfortran) - ("glu" ,glu) - ("gmp" ,gmp) - ("hdf5" ,hdf5) - ("lapack" ,lapack) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("mesa" ,mesa) - ("metis" ,metis) - ("opencascade-occt" ,opencascade-occt))) + (list fltk + gfortran + glu + gmp + hdf5 + lapack + libx11 + libxext + mesa + metis + opencascade-occt)) (inputs `(("fontconfig" ,fontconfig) ("libxft" ,libxft) @@ -2788,19 +2803,18 @@ ASCII text files using Gmsh's own scripting language.") ,(list (string-append (assoc-ref inputs "qtsvg") "/lib/qt5/plugins/")))))))))) (native-inputs - `(("pkg-config" ,pkg-config) - ;;("python-astropy" ,python-astropy) ;; FIXME: Package this. - ("qttools" ,qttools) - ("python-sip" ,python-sip-4))) + (list pkg-config + ;;("python-astropy" ,python-astropy) ;; FIXME: Package this. + qttools python-sip-4)) (inputs - `(("ghostscript" ,ghostscript) ;optional, for EPS/PS output - ("python-dbus" ,python-dbus) - ("python-h5py" ,python-h5py) ;optional, for HDF5 data - ("python-pyqt" ,python-pyqt) - ("qtbase" ,qtbase-5) - ("qtsvg" ,qtsvg))) + (list ghostscript ;optional, for EPS/PS output + python-dbus + python-h5py ;optional, for HDF5 data + python-pyqt + qtbase-5 + qtsvg)) (propagated-inputs - `(("python-numpy" ,python-numpy))) + (list python-numpy)) (home-page "https://veusz.github.io/") (synopsis "Scientific plotting package") (description @@ -2839,7 +2853,7 @@ September 2004}") (define-public petsc (package (name "petsc") - (version "3.11.2") + (version "3.16.1") (source (origin (method url-fetch) @@ -2847,89 +2861,92 @@ September 2004}") (uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/" "petsc-lite-" version ".tar.gz")) (sha256 - (base32 "1645nwwcp9bcnfnxikk480mhbbacdvhsay2c401818hk97dqj5nx")))) + (base32 "0sm03vpg010q9icidiq587n325m0598cj6hab2rdv85nwyygg74h")))) (outputs '("out" ; libraries and headers "examples")) ; ~30MiB of examples (build-system gnu-build-system) (native-inputs - `(("python" ,python-2))) + (list python which)) (inputs - `(("gfortran" ,gfortran) - ("openblas" ,openblas) - ("superlu" ,superlu) - ;; leaving out hdf5 and fftw, as petsc expects them to be built with mpi - ;; leaving out opengl, as configuration seems to only be for mac - )) + (list gfortran openblas superlu + ;; leaving out hdf5 and fftw, as petsc expects them to be built with mpi + ;; leaving out opengl, as configuration seems to only be for mac + )) (arguments - `(#:test-target "test" - #:parallel-build? #f ; build is parallel by default - #:configure-flags - `("--with-mpi=0" - "--with-openmp=1" - "--with-openblas=1" - "--with-superlu=1") - #:make-flags - ;; Honor (parallel-job-count) for build. Do not use --with-make-np, - ;; whose value is dumped to $out/lib/petsc/conf/petscvariables. - (list (format #f "MAKE_NP=~a" (parallel-job-count))) - #:phases - (modify-phases %standard-phases - (replace 'configure - ;; PETSc's configure script is actually a python script, so we can't - ;; run it with bash. - (lambda* (#:key outputs (configure-flags '()) - #:allow-other-keys) - (let* ((prefix (assoc-ref outputs "out")) - (flags `(,(string-append "--prefix=" prefix) - ,@configure-flags))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" flags) - (apply invoke "./configure" flags)))) - (add-after 'configure 'clean-local-references - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (find-files "." "^petsc(conf|machineinfo).h$") - ;; Prevent build directory from leaking into compiled code - (((getcwd)) out) - ;; Scrub timestamp for reproducibility - ((".*Libraries compiled on.*") "")) - (substitute* (find-files "." "petscvariables") - ;; Do not expose build machine characteristics, set to defaults. - (("MAKE_NP = [:digit:]+") "MAKE_NP = 2") - (("NPMAX = [:digit:]+") "NPMAX = 2")) - #t))) - (add-after 'install 'clean-install - ;; Try to keep installed files from leaking build directory names. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (map (lambda (file) - (string-append out "/lib/petsc/conf/" file)) - '("petscvariables")) - (((getcwd)) out)) - ;; Make compiler references point to the store - (substitute* (string-append out "/lib/petsc/conf/petscvariables") - (("= (gcc|g\\+\\+|gfortran)" _ compiler) - (string-append "= " (which compiler)))) - ;; PETSc installs some build logs, which aren't necessary. - (for-each (lambda (file) - (let ((f (string-append out "/lib/petsc/conf/" file))) - (when (file-exists? f) - (delete-file f)))) - '("configure.log" "make.log" "gmake.log" - "test.log" "error.log" "RDict.db" - "PETScBuildInternal.cmake" - ;; Once installed, should uninstall with Guix - "uninstall.py")) - #t))) - (add-after 'install 'move-examples - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (examples (assoc-ref outputs "examples")) - (exdir (string-append out "/share/petsc/examples")) - (exdir' (string-append examples "/share/petsc/examples"))) - (copy-recursively exdir exdir') - (delete-file-recursively exdir) - #t)))))) + (list + #:test-target "test" + #:parallel-build? #f ; build is parallel by default + #:configure-flags + #~(list "--with-mpi=0" + "--with-openmp=1" + "--with-openblas=1" + (string-append "--with-openblas-dir=" + #$(this-package-input "openblas")) + "--with-superlu=1") + #:make-flags + ;; Honor (parallel-job-count) for build. Do not use --with-make-np, + ;; whose value is dumped to $out/lib/petsc/conf/petscvariables. + #~(list (format #f "MAKE_NP=~a" (parallel-job-count))) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + ;; PETSc's configure script is actually a python script, so we can't + ;; run it with bash. + (lambda* (#:key outputs (configure-flags '()) + #:allow-other-keys) + (let* ((prefix (assoc-ref outputs "out")) + (flags `(,(string-append "--prefix=" prefix) + ,@configure-flags))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + (apply invoke "./configure" flags) + + ;; Generate test scripts with the right shebang. + (substitute* "config/example_template.py" + (("#!/usr/bin/env bash") + (string-append "#!" (which "bash"))))))) + (add-after 'configure 'clean-local-references + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (find-files "." "^petsc(conf|machineinfo).h$") + ;; Prevent build directory from leaking into compiled code + (((getcwd)) out) + ;; Scrub timestamp for reproducibility + ((".*Libraries compiled on.*") "")) + (substitute* (find-files "." "petscvariables") + ;; Do not expose build machine characteristics, set to defaults. + (("MAKE_NP = [:digit:]+") "MAKE_NP = 2") + (("NPMAX = [:digit:]+") "NPMAX = 2"))))) + (add-after 'install 'clean-install + ;; Try to keep installed files from leaking build directory names. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (map (lambda (file) + (string-append out "/lib/petsc/conf/" file)) + '("petscvariables")) + (((getcwd)) out)) + ;; Make compiler references point to the store + (substitute* (string-append out "/lib/petsc/conf/petscvariables") + (("= (gcc|g\\+\\+|gfortran)" _ compiler) + (string-append "= " (which compiler)))) + ;; PETSc installs some build logs, which aren't necessary. + (for-each (lambda (file) + (let ((f (string-append out "/lib/petsc/conf/" file))) + (when (file-exists? f) + (delete-file f)))) + '("configure.log" "make.log" "gmake.log" + "test.log" "error.log" "RDict.db" + "PETScBuildInternal.cmake" + ;; Once installed, should uninstall with Guix + "uninstall.py"))))) + (add-after 'install 'move-examples + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (examples (assoc-ref outputs "examples")) + (exdir (string-append out "/share/petsc/examples")) + (exdir' (string-append examples "/share/petsc/examples"))) + (copy-recursively exdir exdir') + (delete-file-recursively exdir))))))) (home-page "https://www.mcs.anl.gov/petsc") (synopsis "Library to solve PDEs") (description "PETSc, pronounced PET-see (the S is silent), is a suite of @@ -2939,16 +2956,18 @@ scientific applications modeled by partial differential equations.") "https://www.mcs.anl.gov/petsc/documentation/copyright.html")))) (define-public petsc-complex - (package (inherit petsc) + (package + (inherit petsc) (name "petsc-complex") (arguments (substitute-keyword-arguments (package-arguments petsc) ((#:configure-flags cf) - `(cons "--with-scalar-type=complex" ,cf)))) + #~(cons "--with-scalar-type=complex" #$cf)))) (synopsis "Library to solve PDEs (with complex scalars)"))) (define-public petsc-openmpi - (package (inherit petsc) + (package + (inherit petsc) (name "petsc-openmpi") (inputs `(("hdf5" ,hdf5-parallel-openmpi) @@ -2962,55 +2981,56 @@ scientific applications modeled by partial differential equations.") (arguments (substitute-keyword-arguments (package-arguments petsc) ((#:configure-flags cf) - ``("--with-hypre=1" - "--with-mpiexec=mpirun" - "--with-metis=1" - "--with-mumps=1" - "--with-scalapack=1" - "--with-ptscotch=1" - ,(string-append "--with-mpi-dir=" - (assoc-ref %build-inputs "openmpi")) - ,(string-append "--with-hdf5-include=" - (assoc-ref %build-inputs "hdf5") "/include") - ,(string-append "--with-hdf5-lib=" - (assoc-ref %build-inputs "hdf5") "/lib/libhdf5.a") - ,@(delete "--with-mpi=0" ,cf))) + #~`("--with-hypre=1" + "--with-mpiexec=mpirun" + "--with-metis=1" + "--with-mumps=1" + "--with-scalapack=1" + "--with-ptscotch=1" + ,(string-append "--with-mpi-dir=" + #$(this-package-input "openmpi")) + ,(string-append "--with-hdf5-include=" + #$(this-package-input "hdf5") "/include") + ,(string-append "--with-hdf5-lib=" + #$(this-package-input "hdf5") "/lib/libhdf5.a") + ,@(delete "--with-mpi=0" #$cf))) ((#:phases phases) - `(modify-phases ,phases - (add-before 'configure 'mpi-setup - ,%openmpi-setup))))) + #~(modify-phases #$phases + (add-before 'configure 'mpi-setup + #$%openmpi-setup))))) (synopsis "Library to solve PDEs (with MUMPS and MPI support)"))) (define-public petsc-complex-openmpi - (package (inherit petsc-complex) + (package + (inherit petsc-complex) (name "petsc-complex-openmpi") (inputs - `(("openmpi" ,openmpi) - ,@(package-inputs petsc-complex))) + (modify-inputs (package-inputs petsc-complex) + (prepend openmpi))) (arguments (substitute-keyword-arguments (package-arguments petsc-complex) ((#:configure-flags cf) - ``("--with-mpiexec=mpirun" - ,(string-append "--with-mpi-dir=" - (assoc-ref %build-inputs "openmpi")) - ,@(delete "--with-mpi=0" ,cf))) + #~`("--with-mpiexec=mpirun" + ,(string-append "--with-mpi-dir=" + #$(this-package-input "openmpi")) + ,@(delete "--with-mpi=0" #$cf))) ((#:phases phases) - `(modify-phases ,phases - (add-before 'configure 'mpi-setup - ,%openmpi-setup))))) + #~(modify-phases #$phases + (add-before 'configure 'mpi-setup + #$%openmpi-setup))))) (synopsis "Library to solve PDEs (with complex scalars and MPI support)"))) (define-public python-petsc4py (package (name "python-petsc4py") - (version "3.11.0") + (version "3.16.1") (source (origin (method url-fetch) (uri (pypi-uri "petsc4py" version)) (sha256 (base32 - "1rm1qj5wlkhxl39by9n78lh3gbmii31wsnb8j1rr5hvfr5xgbx2q")) + "0pxr6qa7p0pmpq0av29lx8lzlrdcfdzj87ynixzr8dn42y13a662")) (modules '((guix build utils))) (snippet '(begin @@ -3034,7 +3054,7 @@ scientific applications modeled by partial differential equations.") (add-before 'check 'mpi-setup ,%openmpi-setup)))) (native-inputs - `(("python-cython" ,python-cython))) + (list python-cython)) (inputs `(("petsc" ,petsc-openmpi) ("python-numpy" ,python-numpy))) @@ -3075,7 +3095,7 @@ savings are consistently > 5x.") (define-public slepc (package (name "slepc") - (version "3.11.1") + (version "3.16.1") (source (origin (method url-fetch) @@ -3083,16 +3103,17 @@ savings are consistently > 5x.") version ".tar.gz")) (sha256 (base32 - "1yq84q9wannc8xwapxpay4ypdd675picwi395hhsdvng9q6hf5j8")))) + "1ysfm77s5fcissv3q0k5d65mlp93zi4anqg62q3cd25dn66sva5i")))) (build-system gnu-build-system) (native-inputs - `(("python" ,python-2) + `(("python" ,python) + ("which" ,which) ("petsc:examples" ,petsc "examples"))) ;for gmakegen.py script (inputs `(("arpack" ,arpack-ng) ("gfortran" ,gfortran))) (propagated-inputs - `(("petsc" ,petsc))) + (list petsc)) (arguments `(#:parallel-build? #f ;build is parallel by default #:configure-flags @@ -3147,7 +3168,9 @@ as well as other related problems such as the singular value decomposition. The emphasis of the software is on methods and techniques appropriate for problems in which the associated matrices are sparse, for example, those arising after the discretization of partial differential equations.") - (license license:bsd-2))) + (license license:bsd-2) + (properties + `((release-monitoring-url . "http://slepc.upv.es/download/"))))) (define-public slepc-complex (package (inherit slepc) @@ -3168,10 +3191,10 @@ arising after the discretization of partial differential equations.") ,%openmpi-setup))))) (inputs `(("mpi" ,openmpi) - ("arpack" ,arpack-ng-openmpi) ,@(alist-delete "arpack" (package-inputs slepc)))) (propagated-inputs `(("petsc" ,petsc-openmpi) + ("arpack" ,arpack-ng-openmpi) ,@(alist-delete "petsc" (package-propagated-inputs slepc)))) (synopsis "Scalable library for eigenproblems (with MPI support)"))) @@ -3186,14 +3209,14 @@ arising after the discretization of partial differential equations.") (define-public python-slepc4py (package (name "python-slepc4py") - (version "3.11.0") + (version "3.16.1") (source (origin (method url-fetch) (uri (pypi-uri "slepc4py" version)) (sha256 (base32 - "1ksp08kxf4wg408b9nn39z3qfhy643j22d4rfbl30vzxk2rxh4lq")))) + "0fq997y73ymvcvdrxycp450pxwdgnqaw62gv9rwncfgsfplkvs9w")))) (build-system python-build-system) (arguments `(#:phases @@ -3235,8 +3258,7 @@ bindings to almost all functions of SLEPc.") (base32 "1s9hyknfvhj86g3giayyf3dxzg23iij0rs7bdvj075v9qbyhqn9b")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake))) + (list autoconf automake)) (home-page "http://us.metamath.org/") (synopsis "Proof verifier based on a minimalistic formalism") (description @@ -3367,12 +3389,9 @@ book.") (string-append gecode "/bin/fzn-gecode")) (newline port))))))))) (native-inputs - `(("bison" ,bison) - ("flex" ,flex))) + (list bison flex)) (inputs - `(("cbc" ,cbc) - ("gecode" ,gecode) - ("zlib" ,zlib))) + (list cbc gecode zlib)) (home-page "https://www.minizinc.org") (synopsis "High-level constraint modeling language") (description "MiniZinc is a high-level modeling language for constraint @@ -3439,7 +3458,7 @@ SCALAP = -Wl,-rpath=$(SCALAPDIR) -Wl,-rpath='$$ORIGIN' -L$(SCALAPDIR) -lsc LIBOTHERS = -pthread CDEFS = -DAdd_ PIC = -fPIC -OPTF = -O2 -DALLOW_NON_INIT $(PIC) +OPTF = -O2 -DALLOW_NON_INIT -fallow-argument-mismatch $(PIC) OPTL = -O2 $(PIC) OPTC = -O2 $(PIC) INCS = $(INCSEQ) @@ -3566,8 +3585,7 @@ sparse system of linear equations A x = b using Gaussian elimination.") "1aapydwwkydbwgz07n7ma3a5jy9n3v0shy6q6j8mi4wr3crhx45a")))) (build-system ruby-build-system) (native-inputs - `(("ruby-nokogiri" ,ruby-nokogiri) - ("ruby-rspec" ,ruby-rspec))) + (list ruby-nokogiri ruby-rspec)) (synopsis "AsciiMath parsing and conversion library") (description "A pure Ruby AsciiMath parsing and conversion library. AsciiMath is an @@ -3620,7 +3638,7 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, #t))))))) (build-system cmake-build-system) (native-inputs - `(("tcsh" ,tcsh))) + (list tcsh)) (inputs `(("blas" ,openblas) ("gfortran" ,gfortran))) @@ -3683,7 +3701,7 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g, "superlu-dist-awpm-grid.patch")))) (build-system cmake-build-system) (native-inputs - `(("tcsh" ,tcsh))) + (list tcsh)) (inputs `(("gfortran" ,gfortran) ("blas" ,openblas) @@ -3748,11 +3766,9 @@ implemented in ANSI C, and MPI for communications.") "scotch-integer-declarations.patch")))) (build-system gnu-build-system) (inputs - `(("zlib" ,zlib))) + (list zlib)) (native-inputs - `(("flex" ,flex) - ("bison" ,bison) - ("gfortran" ,gfortran))) + (list flex bison gfortran)) (outputs '("out" "metis")) (arguments `(#:make-flags (list (string-append "prefix=" %output)) @@ -3888,9 +3904,7 @@ YACC = bison -pscotchyy -y -b y (package (inherit scotch) (name "scotch-shared") (native-inputs - `(("gcc" ,gcc) - ("flex" ,flex) - ("bison" ,bison))) + (list gcc flex bison)) (arguments (substitute-keyword-arguments (package-arguments scotch) ((#:phases scotch-shared-phases) @@ -3946,7 +3960,7 @@ YACC = bison -pscotchyy -y -b y (package (inherit scotch) (name "pt-scotch") (propagated-inputs - `(("openmpi" ,openmpi))) ;Headers include MPI headers + (list openmpi)) ;Headers include MPI headers (arguments (substitute-keyword-arguments (package-arguments scotch) ((#:phases scotch-phases) @@ -3970,7 +3984,7 @@ YACC = bison -pscotchyy -y -b y (package (inherit scotch32) (name "pt-scotch32") (propagated-inputs - `(("openmpi" ,openmpi))) ;headers include MPI headers + (list openmpi)) ;headers include MPI headers (arguments (substitute-keyword-arguments (package-arguments scotch32) ((#:phases scotch32-phases) @@ -3993,7 +4007,7 @@ YACC = bison -pscotchyy -y -b y (package (inherit scotch-shared) (name "pt-scotch-shared") (propagated-inputs - `(("openmpi" ,openmpi))) ;Headers include MPI headers + (list openmpi)) ;Headers include MPI headers (arguments (substitute-keyword-arguments (package-arguments scotch-shared) ((#:phases scotch-shared-phases) @@ -4112,10 +4126,9 @@ processor cores.") `(#:configure-flags (list "--disable-static"))) (inputs - `(("glib" ,glib) - ("gtk+" ,gtk+))) + (list glib gtk+)) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (home-page "https://www.gnu.org/software/gsegrafix/") (synopsis "GNOME application to create scientific and engineering plots") (description @@ -4142,25 +4155,20 @@ to BMP, JPEG or PNG image formats.") (patches (search-patches "maxima-defsystem-mkdir.patch")))) (build-system gnu-build-system) (inputs - `(("gcl" ,gcl) + `(("bash" ,bash-minimal) ("gnuplot" ,gnuplot) ;for plots + ("sbcl" ,sbcl) ("sed" ,sed) ("tk" ,tk))) ;Tcl/Tk is used by 'xmaxima' (native-inputs - `(("texinfo" ,texinfo) - ("perl" ,perl) - ("python" ,python))) + (list texinfo perl python)) (arguments `(#:configure-flags - (list "--enable-gcl" - (string-append "--with-posix-shell=" - (assoc-ref %build-inputs "bash") - "/bin/sh") - (string-append "--with-wish=" - (assoc-ref %build-inputs "tk") - "/bin/wish" - (let ((v ,(package-version tk))) - (string-take v (string-index-right v #\.))))) + ,#~(list "--enable-sbcl" + (string-append "--with-sbcl=" #$sbcl "/bin/sbcl") + (string-append "--with-posix-shell=" #$bash-minimal "/bin/sh") + (string-append "--with-wish=" #$tk "/bin/wish" + #$(version-major+minor (package-version tk)))) ;; By default Maxima attempts to write temporary files to ;; '/tmp/nix-build-maxima-*', which won't exist at run time. ;; Work around that. @@ -4169,13 +4177,12 @@ to BMP, JPEG or PNG image formats.") (modify-phases %standard-phases (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) - (let* ((sed (string-append (assoc-ref inputs "sed") "/bin/sed")) + (let* ((sed (search-input-file inputs "/bin/sed")) (coreutils (assoc-ref inputs "coreutils")) (dirname (string-append coreutils "/bin/dirname")) (head (string-append coreutils "/bin/head")) - (perl (string-append (assoc-ref inputs "perl") "/bin/perl")) - (python (string-append (assoc-ref inputs "python") - "/bin/python3"))) + (perl (search-input-file inputs "/bin/perl")) + (python (search-input-file inputs "/bin/python3"))) (substitute* "src/maxima.in" (("sed ") (string-append sed " ")) (("dirname") dirname) @@ -4198,7 +4205,7 @@ to BMP, JPEG or PNG image formats.") (invoke "sh" "-c" (string-append "./maxima-local " - "--lisp=gcl " + "--lisp=sbcl " "--batch-string=\"run_testsuite();\" " "| grep -q \"No unexpected errors found\"")))) ;; Make sure the doc and emacs files are found in the @@ -4209,8 +4216,7 @@ to BMP, JPEG or PNG image formats.") (let* ((gnuplot (assoc-ref inputs "gnuplot")) (out (assoc-ref outputs "out")) (datadir (string-append out "/share/maxima/" ,version)) - (binutils (string-append (assoc-ref inputs "binutils") - "/bin"))) + (binutils (dirname (search-input-file inputs "/bin/as")))) (with-directory-excursion out (mkdir-p "share/emacs") (mkdir-p "share/doc") @@ -4259,12 +4265,12 @@ point numbers.") (native-inputs `(("gettext" ,gettext-minimal))) (inputs - `(("wxwidgets" ,wxwidgets) - ("maxima" ,maxima) - ;; Runtime support. - ("adwaita-icon-theme" ,adwaita-icon-theme) - ("gtk+" ,gtk+) - ("shared-mime-info" ,shared-mime-info))) + (list wxwidgets + maxima + ;; Runtime support. + adwaita-icon-theme + gtk+ + shared-mime-info)) (arguments `(#:tests? #f ; tests fail non-deterministically #:phases @@ -4376,16 +4382,17 @@ parts of it.") (define-public openblas (package (name "openblas") - (version "0.3.9") + (version "0.3.18") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/openblas/v" version "/OpenBLAS%20" - version "%20version.tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/xianyi/OpenBLAS") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "14iz9xnrb9xiwgj84j94mc74gg0zn2vsy9fmsijxxma1n7dck4w3")))) + "17zdd8asylz2w71hczrz5y344p6d5ds1jn4901maw7zcp3dbk63g")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -4402,6 +4409,7 @@ parts of it.") (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "SHELL=bash" "MAKE_NB_JOBS=0" ;use jobserver for submakes + "NO_STATIC=1" ;avoid a 67 MiB static archive ;; This is the maximum number of threads OpenBLAS will ever use (that ;; is, if $OPENBLAS_NUM_THREADS is greater than that, then NUM_THREADS @@ -4417,20 +4425,18 @@ parts of it.") ,@(let ((system (or (%current-target-system) (%current-system)))) (cond ((or (string-prefix? "x86_64" system) - (string-prefix? "i686" system)) - '("DYNAMIC_ARCH=1")) + (string-prefix? "i686" system) + (string-prefix? "powerpc64le" system) + (string-prefix? "aarch64" system)) + ;; Dynamic older enables a few extra CPU architectures that + ;; were released before 2010. + '("DYNAMIC_ARCH=1" "DYNAMIC_OLDER=1" "TARGET=GENERIC")) ;; On some of these architectures the CPU can't be detected. - ((string-prefix? "powerpc64le" system) - '("DYNAMIC_ARCH=1" - "TARGET=GENERIC")) ;; On MIPS we force the "SICORTEX" TARGET, as for the other ;; two available MIPS targets special extended instructions ;; for Loongson cores are used. ((string-prefix? "mips" system) '("TARGET=SICORTEX")) - ;; On aarch64 force the generic 'armv8-a' target - ((string-prefix? "aarch64" system) - '("TARGET=ARMV8")) ;; Failed to detect CPU. ((string-prefix? "armhf" system) '("TARGET=ARMV7")) @@ -4444,8 +4450,7 @@ parts of it.") ;; Get libgfortran found when building in utest. (setenv "FEXTRALIB" (string-append "-L" (assoc-ref inputs "fortran-lib") - "/lib")) - #t))))) + "/lib"))))))) (inputs `(("fortran-lib" ,gfortran "lib"))) (native-inputs @@ -4483,8 +4488,7 @@ parts of it.") "05ifil6jj9424sr8kmircl8k4bmxnl3y12a79vwj1kxxva5gz50g")) (file-name (git-file-name "blis" version)))) (native-inputs - `(("python" ,python) - ("perl" ,perl))) + (list python perl)) (build-system gnu-build-system) (arguments `(#:modules @@ -4704,11 +4708,7 @@ Fresnel integrals, and similar related functions as well.") (modify-phases %standard-phases (delete 'configure)))) ;no configure script (inputs - `(("tbb" ,tbb) - ("openblas" ,openblas) - ("gmp" ,gmp) - ("mpfr" ,mpfr) - ("metis" ,metis))) + (list tbb openblas gmp mpfr metis)) (native-inputs `(("cmake" ,cmake-minimal) ("m4" ,m4))) @@ -4735,6 +4735,7 @@ packages.") (method url-fetch) (uri (string-append "mirror://sourceforge/math-atlas/Stable/" version "/atlas" version ".tar.bz2")) + (patches (search-patches "atlas-gfortran-compat.patch")) (sha256 (base32 "1dyjlq3fiparvm8ypwk6rsmjzmnwk81l88gkishphpvc79ryp216")))) @@ -4924,7 +4925,7 @@ Version: ~a Cflags: -I${includedir}~%" out ,(version-prefix version 3))))) #t)))))) (native-inputs - `(("unzip" ,unzip))) + (list unzip)) (home-page "https://glm.g-truc.net/") (synopsis "OpenGL Mathematics library") (description "OpenGL Mathematics (GLM) is a header-only C++ mathematics @@ -5190,10 +5191,8 @@ A unique design feature of Trilinos is its focus on packages.") ;; Anyway, they are meant to be used at build time, so rather than adding ;; the interpreters here, any package depending on them should just add ;; the requisite interpreter to its native inputs. - `(("boost" ,boost) - ("hdf5" ,hdf5) - ("suitesparse" ,suitesparse) ; For UMFPACK. - ("tbb" ,tbb))) + (list boost hdf5 suitesparse ; For UMFPACK. + tbb)) (arguments `(#:build-type "DebugRelease" ; Supports only Debug, Release and DebugRelease. ;; The tests take too long and must be explicitly enabled with "make @@ -5271,7 +5270,7 @@ in finite element programs.") (build-system cmake-build-system) (outputs '("out")) (native-inputs - `(("unzip" ,unzip))) + (list unzip)) (inputs `(("hdf5" ,hdf5) ;; FIXME: 'mkoctfile' fails with a linker error: @@ -5324,8 +5323,7 @@ FLANN is written in C++ and contains bindings for C, Octave and Python.") "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f")))) (build-system gnu-build-system) (inputs - `(("mpfr" ,mpfr) - ("readline" ,readline))) + (list mpfr readline)) (home-page "http://w-calc.sourceforge.net/index.php") (synopsis "Flexible command-line scientific calculator") (description "Wcalc is a very capable calculator. It has standard functions @@ -5353,10 +5351,7 @@ evaluates expressions using the standard order of operations.") (native-inputs `(("gettext" ,gettext-minimal) ("qtbase" ,qtbase-5) ("qttools" ,qttools))) - (inputs `(("libx11" ,libx11) - ("zlib" ,zlib) - ("libpng" ,libpng) - ("gsl" ,gsl))) + (inputs (list libx11 zlib libpng gsl)) ;; The upstream project file ("XaoS.pro") and the Makefile it generates are ;; not enough for this package to install properly. These phases fix that. (arguments @@ -5410,7 +5405,7 @@ set.") (define-public hypre (package (name "hypre") - (version "2.15.1") + (version "2.20.0") (source (origin (method git-fetch) @@ -5419,28 +5414,55 @@ set.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1lvh4ybqkriyqfg2zmic6mrg1981qv1i9vry1fdgsabn81hb71g4")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Remove use of __DATE__ and __TIME__ for reproducibility; - ;; substitute the release date. - (substitute* "src/utilities/HYPRE_utilities.h" - (("Date Compiled: .*$") - "Date Compiled: Oct 19 2018 15:23:00 +0000\"\n")) - #t)))) + (base32 "14iqjwg5sv1qjn7c2cfv0xxmn9rwamjrhh9hgs8fjbywcbvrkjdi")))) (build-system gnu-build-system) - (outputs '("out" ; 6.1 MiB of headers and libraries - "doc")) ; 4.8 MiB of documentation + (outputs '("out" ;5.3 MiB of headers and libraries + "doc")) ;12 MiB of documentation (native-inputs `(("doc++" ,doc++) - ("netpbm" ,netpbm) - ("perl" ,perl) ; needed to run 'ppmquant' during tests - ("texlive" ,(texlive-union (list texlive-xypic - texlive-cm - texlive-latex-hyperref - texlive-bibtex))) - ("ghostscript" ,ghostscript))) + ("doxygen" ,doxygen) + ("python" ,python) + ("python-breathe" ,python-breathe) + ("python-sphinx" ,python-sphinx) + ("texlive" ,(texlive-updmap.cfg (list texlive-adjustbox + texlive-amsfonts + texlive-bibtex + texlive-caption + texlive-cm + texlive-etoolbox + texlive-jknappen + texlive-sectsty + texlive-tex-gyre + texlive-wasy + texlive-xcolor + texlive-xypic + texlive-generic-listofitems + texlive-generic-ulem + texlive-latex-capt-of + texlive-latex-cmap + texlive-latex-colortbl + texlive-latex-etoc + texlive-latex-fancyhdr + texlive-latex-fancyvrb + texlive-latex-float + texlive-latex-fncychap + texlive-latex-framed + texlive-latex-geometry + texlive-latex-hanging + texlive-hyperref + texlive-latex-multirow + texlive-latex-natbib + texlive-latex-needspace + texlive-latex-newunicodechar + texlive-latex-parskip + texlive-latex-stackengine + texlive-latex-tabulary + texlive-latex-titlesec + texlive-latex-tocloft + texlive-latex-upquote + texlive-latex-varwidth + texlive-wasysym + texlive-latex-wrapfig))))) (inputs `(("blas" ,openblas) ("lapack" ,lapack))) @@ -5456,12 +5478,6 @@ set.") "--with-blas") #:phases (modify-phases %standard-phases - (add-before 'build 'set-HOME - (lambda _ - ;; FIXME: texlive-union does not find the built - ;; metafonts, so it tries to generate them in HOME. - (setenv "HOME" "/tmp") - #t)) (add-before 'configure 'chdir-src (lambda _ (chdir "src"))) (replace 'configure @@ -5476,7 +5492,7 @@ set.") configure-flags))))))) (add-after 'build 'build-docs (lambda _ - (invoke "make" "-Cdocs" "pdf" "html"))) + (invoke "make" "-C" "docs"))) (replace 'check (lambda _ (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib")) @@ -5487,8 +5503,7 @@ set.") (when (positive? size) (error (format #f "~a size ~d; error indication~%" filename size))))) - (find-files "test" ".*\\.err$")) - #t)) + (find-files "test" ".*\\.err$")))) (add-after 'install 'install-docs (lambda* (#:key outputs #:allow-other-keys) ;; Custom install because docs/Makefile doesn't honor ${docdir}. @@ -5497,10 +5512,9 @@ set.") (with-directory-excursion "docs" (for-each (lambda (base) (install-file (string-append base ".pdf") docdir) - (copy-recursively base docdir)) ; html docs - '("HYPRE_usr_manual" - "HYPRE_ref_manual"))) - #t)))))) + (copy-recursively (string-append base "-html") + (string-append docdir "/" base))) + '("usr-manual" "ref-manual"))))))))) (home-page "https://computing.llnl.gov/projects\ /hypre-scalable-linear-solvers-multigrid-methods") (synopsis "Library of solvers and preconditioners for linear equations") @@ -5547,8 +5561,7 @@ structured and unstructured grid problems."))) "0vr8c1mz1k6mz0sgh6n3scl5c3a71iqmy5fnydrgq504icj4vym4")))) (build-system gnu-build-system) (inputs - `(("zlib" ,zlib) - ("hdf5" ,hdf5-1.8))) + (list zlib hdf5-1.8)) (home-page "http://matio.sourceforge.net/") (synopsis "Library for reading and writing MAT files") (description "Matio is a library for reading and writing MAT files. It @@ -5638,7 +5651,7 @@ instruction sets. Thus, an application written with Vc can be compiled for: "1rllzcfwc042c336mhq262a8ha90x6afq30kvk60r7i4761j4yjm")))) (build-system gnu-build-system) (inputs - `(("openlibm" ,openlibm))) + (list openlibm)) (arguments `(#:tests? #f ; no tests #:phases @@ -5700,9 +5713,8 @@ Longest Commons Subsequence of a set of strings.") (invoke "./configure" (string-append "--prefix=" (assoc-ref outputs "out")))))))) - (inputs `(("scm" ,scm))) - (native-inputs `(("unzip" ,unzip) - ("texinfo" ,texinfo))) + (inputs (list scm)) + (native-inputs (list unzip texinfo)) (synopsis "Symbolic mathematics system") (description "GNU JACAL is an interactive symbolic mathematics program based on Scheme. It manipulate and simplify a range of mathematical expressions such @@ -5830,9 +5842,9 @@ theories} (SMT) solver. It provides a C/C++ API, as well as Python bindings.") ("ocaml" ,ocaml) ("ocaml-findlib" ,ocaml-findlib))) (propagated-inputs - `(("ocaml-zarith" ,ocaml-zarith))) + (list ocaml-zarith)) (inputs - `(("z3" ,z3))))) + (list z3)))) (define-public elpa (package @@ -5940,7 +5952,7 @@ symmetric matrices.") (build-system cmake-build-system) (home-page "https://github.com/elemental/Elemental") (native-inputs - `(("gfortran" ,gfortran))) + (list gfortran)) (inputs `(("blas" ,openblas) ("gfortran:lib" ,gfortran "lib") @@ -5993,10 +6005,7 @@ reduction.") (base32 "1xgx3cd57vc7gbjic24j1q2za6j3ybz6nk4afvvpbwsf33xnlf4v")))) (inputs - `(("boost" ,boost) - ("glu" ,glu) - ("mesa" ,mesa) - ("qtbase" ,qtbase-5))) + (list boost glu mesa qtbase-5)) (build-system cmake-build-system) (synopsis "Toolset for the mCRL2 formal specification language") (description @@ -6014,7 +6023,7 @@ analysed.") (inherit mcrl2) (name "mcrl2-minimal") (inputs - `(("boost" ,boost))) + (list boost)) (arguments '(#:configure-flags '("-DMCRL2_ENABLE_GUI_TOOLS=OFF"))))) @@ -6111,7 +6120,8 @@ and comparisons are supported.") ("blas" ,openblas) ("suitesparse" ,suitesparse))) ;TODO: Add hypre (arguments - `(#:configure-flags `("-DEXAMPLES_ENABLE_C:BOOL=ON" + `(#:configure-flags `("-DCMAKE_C_FLAGS=-O2 -g -fcommon" + "-DEXAMPLES_ENABLE_C:BOOL=ON" "-DEXAMPLES_ENABLE_CXX:BOOL=ON" "-DEXAMPLES_ENABLE_F77:BOOL=ON" "-DEXAMPLES_ENABLE_F90:BOOL=ON" @@ -6131,6 +6141,9 @@ and comparisons are supported.") (description "SUNDIALS is a family of software packages implemented with the goal of providing robust time integrators and nonlinear solvers that can easily be incorporated into existing simulation codes.") + (properties + '((release-monitoring-url + . "https://computing.llnl.gov/projects/sundials/sundials-software"))) (license license:bsd-3))) (define-public sundials-openmpi @@ -6174,8 +6187,8 @@ easily be incorporated into existing simulation codes.") (base32 "0nx4sqhmi126m14myzm7syv2053harav9snl0a247wnkcgs5rxrv")))) (inputs - `(("lapack" ,lapack) - ,@(package-inputs sundials))) + (modify-inputs (package-inputs sundials) + (prepend lapack))) (arguments (substitute-keyword-arguments (package-arguments sundials) ((#:configure-flags flags '()) @@ -6253,14 +6266,9 @@ linear algebra primitives specifically targeting graph analytics.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("gmp" ,gmp) - ("metis" ,metis) - ("openblas" ,openblas) - ("python" ,python) - ("superlu" ,superlu))) + (list gmp metis openblas python superlu)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "DUNE, the Distributed and Unified Numerics Environment is a @@ -6291,14 +6299,11 @@ Differences} (FD).") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ;; Optional - ("openblas" ,openblas) - ("gmp" ,gmp) - ("python" ,python))) + (list dune-common + ;; Optional + openblas gmp python)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "DUNE, the Distributed and Unified Numerics Environment is a @@ -6333,10 +6338,9 @@ This package contains the basic DUNE geometry classes.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common))) + (list dune-common)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "DUNE, the Distributed and Unified Numerics Environment is a @@ -6368,17 +6372,16 @@ This package contains the DUNE UG grid classes.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ("dune-geometry" ,dune-geometry) - ("gmp" ,gmp) - ("metis" ,metis) - ("openblas" ,openblas) - ("python" ,python))) + (list dune-common + dune-geometry + gmp + metis + openblas + python)) (propagated-inputs - `(("dune-uggrid" ,dune-uggrid))) + (list dune-uggrid)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "DUNE, the Distributed and Unified Numerics Environment is a @@ -6424,17 +6427,16 @@ This package contains the basic DUNE grid classes.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ;; Optional - ("metis" ,metis) - ("suitesparse" ,suitesparse) - ("superlu" ,superlu) - ("openblas" ,openblas) - ("gmp" ,gmp) - ("python" ,python))) + (list dune-common + ;; Optional + metis + suitesparse + superlu + openblas + gmp + python)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "DUNE, the Distributed and Unified Numerics Environment is a @@ -6482,15 +6484,14 @@ aggregation-based algebraic multigrid.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ("dune-geometry" ,dune-geometry) - ;; Optional - ("metis" ,metis) - ("superlu" ,superlu) - ("gmp" ,gmp))) + (list dune-common + dune-geometry + ;; Optional + metis + superlu + gmp)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") ; TODO (description "This DUNE module provides interface and implementation for @@ -6535,19 +6536,18 @@ assemble global function spaces on finite-element grids.") (string-append (assoc-ref inputs "dune-grid") "/share")) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ("dune-geometry" ,dune-geometry) - ("dune-grid" ,dune-grid) - ;; Optional - ("metis" ,metis) - ("openblas" ,openblas) - ("python" ,python) - ("superlu" ,superlu) - ("gmp" ,gmp) - ("zlib" ,zlib))) + (list dune-common + dune-geometry + dune-grid + ;; Optional + metis + openblas + python + superlu + gmp + zlib)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "ALUGrid is an adaptive, loadbalancing, unstructured @@ -6577,16 +6577,15 @@ cubes.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ("dune-geometry" ,dune-geometry) - ("dune-grid" ,dune-grid) - ;; Optional - ("metis" ,metis) - ("openblas" ,openblas) - ("gmp" ,gmp))) + (list dune-common + dune-geometry + dune-grid + ;; Optional + metis + openblas + gmp)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "http://numerik.mi.fu-berlin.de/dune-subgrid/index.php") (synopsis "Distributed and Unified Numerics Environment") (description "The dune-subgrid module marks elements of @@ -6617,16 +6616,15 @@ provides the full grid interface including adaptive mesh refinement.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ;; Optional - ("openblas" ,openblas) - ("python" ,python) - ("metis" ,metis) - ("superlu" ,superlu) - ("gmp" ,gmp))) + (list dune-common + ;; Optional + openblas + python + metis + superlu + gmp)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "TypeTree is a template library for constructing and @@ -6662,20 +6660,19 @@ operating on statically typed trees of objects.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ("dune-istl" ,dune-istl) - ("dune-localfunctions" ,dune-localfunctions) - ("dune-grid" ,dune-grid) - ("dune-geometry" ,dune-geometry) - ("dune-typetree" ,dune-typetree) - ("openblas" ,openblas) - ("metis" ,metis) - ("python" ,python) - ("superlu" ,superlu) - ("gmp" ,gmp))) + (list dune-common + dune-istl + dune-localfunctions + dune-grid + dune-geometry + dune-typetree + openblas + metis + python + superlu + gmp)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Distributed and Unified Numerics Environment") (description "The dune-functions module provides an abstraction layer for @@ -6701,23 +6698,22 @@ implemented as callable objects, and bases of finite element spaces.") (build-system cmake-build-system) (arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled (inputs - `(("dune-common" ,dune-common) - ("dune-istl" ,dune-istl) - ("dune-localfunctions" ,dune-localfunctions) - ("dune-geometry" ,dune-geometry) - ("dune-grid" ,dune-grid) - ("dune-typetree" ,dune-typetree) - ("dune-functions" ,dune-functions) - ;; Optional - ("openblas" ,openblas) - ("eigen" ,eigen) - ("metis" ,metis) - ("python" ,python) - ("superlu" ,superlu) - ("gmp" ,gmp))) + (list dune-common + dune-istl + dune-localfunctions + dune-geometry + dune-grid + dune-typetree + dune-functions + ;; Optional + openblas + eigen + metis + python + superlu + gmp)) (native-inputs - `(("gfortran" ,gfortran) - ("pkg-config" ,pkg-config))) + (list gfortran pkg-config)) (home-page "https://dune-project.org/") (synopsis "Differential equations solver toolbox") (description "PDELab is a partial differential equations solver toolbox @@ -6791,7 +6787,7 @@ built on top of DUNE, the Distributed and Unified Numerics Environment.") (base32 "0h4xj6pyyac79ka5ibqjilfa3s9j3yxnzgpwc57b54kfh2bj3447")))) (build-system gnu-build-system) (inputs - `(("python2" ,python-2))) + (list python-2)) (arguments `(#:tests? #f ; no tests #:phases @@ -6882,7 +6878,7 @@ management via the GIMPS project's Primenet server.") (append '("formats.txt" "README" "schreier.txt") (find-files "." "\\.pdf$"))))))))) (inputs - `(("gmp" ,gmp))) ;for sumlines + (list gmp)) ;for sumlines (home-page "https://pallini.di.uniroma1.it/") (synopsis "Library for graph automorphisms") (description "@code{nauty} (No AUTomorphisms, Yes?) is a set of @@ -6913,10 +6909,9 @@ compiled against the nauty library.") "1j5aji1g2vmdvc0gqz45n2ll2l2f6czca04wiyfl5g3sm3a6vhvb")))) (build-system gnu-build-system) (native-inputs - `(("m4" ,m4))) + (list m4)) (inputs - `(("glpk" ,glpk) - ("gmp" ,gmp))) + (list glpk gmp)) (home-page "https://www.bugseng.com/parma-polyhedra-library") (synopsis "Parma Polyhedra Library for computations with polyhedra") @@ -6952,8 +6947,8 @@ functions.") (base32 "0vh7cd1915bjqzkdp3sk25ngy8cq624mkh8c53c5bnzk357kb0fk")))) (build-system cmake-build-system) - (inputs `(("qtbase" ,qtbase-5))) - (native-inputs `(("qttools" ,qttools))) + (inputs (list qtbase-5)) + (native-inputs (list qttools)) (arguments `(#:phases (modify-phases %standard-phases @@ -7035,14 +7030,14 @@ researchers and developers alike to get started on SAT.") ("doxygen" ,doxygen) ("file" ,file))) (inputs - `(("gmp" ,gmp) - ("mpfr" ,mpfr) - ("libxml2" ,libxml2) - ("curl" ,curl) - ("icu4c" ,icu4c) - ("gnuplot" ,gnuplot) - ("readline" ,readline) - ("libiconv" ,libiconv))) + (list gmp + mpfr + libxml2 + curl + icu4c + gnuplot + readline + libiconv)) (arguments `(#:phases (modify-phases %standard-phases @@ -7078,19 +7073,19 @@ cli.") (base32 "1nrx7gp6f1yalbdda1gb97azhbr4xclq2xf08vvbvsk8jfd6fd2v")))) (build-system glib-or-gtk-build-system) (native-inputs - `(("pkg-config" ,pkg-config) - ("intltool" ,intltool) - ("automake" ,automake) - ("autoconf" ,autoconf) - ("libtool" ,libtool) - ("file" ,file))) + (list pkg-config + intltool + automake + autoconf + libtool + file)) (inputs - `(("gmp" ,gmp) - ("mpfr" ,mpfr) - ("libqalculate" ,libqalculate) - ("libxml2" ,libxml2) - ("glib" ,glib) - ("gtk+" ,gtk+))) + (list gmp + mpfr + libqalculate + libxml2 + glib + gtk+)) (arguments `(#:phases (modify-phases %standard-phases @@ -7155,21 +7150,11 @@ numeric differences and differences in numeric formats.") "0pfsiddnk26f384wbazfpgzh1n1ibf3xq101q74mxvczi7z0a791")))) (build-system ocaml-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("coq" ,coq) - ("ocaml" ,ocaml) - ("which" ,which))) + (list autoconf automake coq ocaml which)) (propagated-inputs - `(("camlzip" ,camlzip) - ("ocaml-graph" ,ocaml-graph) - ("ocaml-menhir" ,ocaml-menhir) - ("ocaml-num" ,ocaml-num) - ("ocaml-zarith" ,ocaml-zarith))) + (list camlzip ocaml-graph ocaml-menhir ocaml-num ocaml-zarith)) (inputs - `(("coq-flocq" ,coq-flocq) - ("emacs-minimal" ,emacs-minimal) - ("zlib" ,zlib))) + (list coq-flocq emacs-minimal zlib)) (arguments `(#:phases (modify-phases %standard-phases @@ -7225,18 +7210,17 @@ of C, Java, or Ada programs.") (modify-phases %standard-phases (add-before 'configure 'export-shell (lambda* (#:key inputs #:allow-other-keys) - (setenv "CONFIG_SHELL" (string-append (assoc-ref inputs "bash") - "/bin/sh")) - #t))))) + (setenv "CONFIG_SHELL" + (search-input-file inputs "/bin/sh"))))))) (inputs - `(("gmp" ,gmp))) + (list gmp)) (propagated-inputs - `(("ocaml-biniou" ,ocaml-biniou) - ("ocaml-easy-format" ,ocaml-easy-format) - ("ocaml-graph" ,ocaml-graph) - ("ocaml-yojson" ,ocaml-yojson) - ("ocaml-zarith" ,ocaml-zarith) - ("why3" ,why3))) + (list ocaml-biniou + ocaml-easy-format + ocaml-graph + ocaml-yojson + ocaml-zarith + why3)) (native-search-paths (list (search-path-specification (variable "FRAMAC_SHARE") @@ -7280,8 +7264,7 @@ projects up to the certification of critical software.") (invoke "make" "-j" (number->string (parallel-job-count)) "blitz-doc")))))) (native-inputs - `(("python" ,python) - ("texinfo" ,texinfo))) + (list python texinfo)) (synopsis "C++ template class library for multidimensional arrays") (description "Blitz++ is a C++ template class library that provides high-performance multidimensional array containers for scientific computing.") @@ -7309,8 +7292,7 @@ high-performance multidimensional array containers for scientific computing.") (patches (search-patches "fxdiv-system-libraries.patch")))) (build-system cmake-build-system) (inputs - `(("googletest" ,googletest) - ("googlebenchmark" ,googlebenchmark))) + (list googletest googlebenchmark)) (synopsis "C++ library for division via fixed-point multiplication by inverse") (description @@ -7362,11 +7344,9 @@ when an application performs repeated divisions by the same divisor.") file)))) (find-files include "\\.py$")))))))) (native-inputs - `(("python-wrapper" ,python-wrapper))) + (list python-wrapper)) (inputs - `(("psimd" ,psimd) - ("googletest" ,googletest) - ("googlebenchmark" ,googlebenchmark))) + (list psimd googletest googlebenchmark)) (synopsis "C++ library for half-precision floating point formats") (description "This header-only C++ library implements conversion to and from |