;;; Copyright © 2013, 2014, 2015, 2016, 2019, 2020 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2016, 2017 John Darrington <jmd@gnu.org>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2014-2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
-;;; Copyright © 2015–2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015–2022 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>
+;;; Copyright © 2015-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2018, 2020, 2021 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2017, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017, 2019, 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Dave Love <me@fx@gnu.org>
-;;; Copyright © 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2018, 2019, 2020, 2021, 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Nadya Voronova <voronovank@gmail.com>
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
;;; Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Amin Bandali <bandali@gnu.org>
-;;; Copyright © 2019, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
-;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2021, 2022 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>
+;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
+;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2022 Marek Felšöci <marek@felsoci.sk>
+;;; Copyright © 2022 vicvbcun <guix@ikherbers.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (ice-9 match)
#:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
+ #:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tex)
#:phases
(modify-phases %standard-phases
,@(cond
+ ((and (target-riscv64?)
+ (%current-target-system))
+ '((add-after 'unpack 'force-bootstrap
+ (lambda _
+ ;; gsl ships with an old configure script that does not
+ ;; support riscv64. Regenerate it.
+ (delete-file "configure")))))
+
((or (string-prefix? "aarch64" system)
(string-prefix? "powerpc" system))
;; Some sparse matrix tests are failing on AArch64 and PowerPC:
(string-append "exit (77);\n" all)))))))
(else '()))))))
+ (native-inputs
+ (if (and (target-riscv64?)
+ (%current-target-system))
+ (list autoconf automake libtool)
+ '()))
(home-page "https://www.gnu.org/software/gsl/")
(synopsis "Numerical library for C and C++")
(description
(define-public cddlib
(package
(name "cddlib")
- (version "0.94i")
+ (version "0.94m")
(source
(origin
- (method url-fetch)
- (uri (string-append "ftp://ftp.math.ethz.ch/users/fukudak/cdd/cddlib-"
- (string-delete #\. version) ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cddlib/cddlib")
+ (commit version)))
(sha256
(base32
- "00zdgiqb91vx6gd2103h3ijij0llspsxc6zz3iw2bll39fvkl4xq"))))
+ "09s8323h5w9j6mpl1yc6lm770dkskfxd2ayyafkcjllmnncxzfa0"))))
(build-system gnu-build-system)
(inputs
(list gmp))
+ (native-inputs (list autoconf
+ automake
+ libtool
+ texlive-amsfonts
+ texlive-dvips-l3backend
+ texlive-latex-graphics
+ texlive-latex-l3backend
+ texlive-tiny))
+ (arguments
+ (list #:configure-flags
+ #~(list (string-append "--docdir=" #$output
+ "/share/doc/" #$name "-" #$version))))
(home-page "https://www.inf.ethz.ch/personal/fukudak/cdd_home/index.html")
(synopsis "Library for convex hulls and extreme rays of polyhedra")
(description
(define-public lrslib
(package
(name "lrslib")
- (version "7.1")
+ (version "7.2")
(source
(origin
(method url-fetch)
(string-delete #\. version) ".tar.gz"))
(sha256
(base32
- "05kq3hzam31dlmkccv3v358r478kpvx76mw37ka12c6ypwv5dsnk"))))
+ "1w1jsnfgny8cihndr5gfm99pvwp48qsvxkqfsi2q87gd3m57aj7w"))))
(build-system gnu-build-system)
(inputs
(list gmp))
in the terminal or with an external viewer.")
(license license:gpl1+))) ;any version
+(define-public giza
+ (package
+ (name "giza")
+ (version "1.3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/danieljprice/giza")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1clklh3nzgwrwg80h3k5x65gdymbvcc84c44nql7m4bv9b8rqfsq"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list perl pkg-config))
+ (inputs
+ (list cairo freetype gfortran))
+ (home-page "https://danieljprice.github.io/giza/")
+ (synopsis "Scientific plotting library for C/Fortran")
+ (description
+ "Giza is a lightweight scientific plotting library built on top of
+@code{cairo} that provides uniform output to multiple devices.")
+ (license license:gpl2+)))
+
(define-public gnuplot
(package
(name "gnuplot")
- (version "5.4.2")
+ (version "5.4.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
version "/gnuplot-"
version ".tar.gz"))
(sha256
- (base32 "1fp7rbhjmz2w63r72kicf8lfszzimz2csfx868fracw167hpaz75"))))
+ (base32 "00h97y8njhvfjbdvc0njw0znxbrlfynd1iazn8w3anvzhsvh08rp"))))
(build-system gnu-build-system)
- (inputs (list readline cairo pango gd lua))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("texlive" ,texlive-tiny)))
- (arguments `(#:configure-flags (list (string-append
- "--with-texdir=" %output
- "/texmf-local/tex/latex/gnuplot"))
- ;; Plot on a dumb terminal during tests.
- #:make-flags '("GNUTERM=dumb")))
+ (list pkg-config texlive-tiny))
+ (inputs
+ (list cairo gd lua pango readline))
+ (arguments
+ (list #:configure-flags
+ #~(list (string-append "--with-texdir=" #$output
+ "/texmf-local/tex/latex/gnuplot"))
+ ;; Plot on a dumb terminal during tests.
+ #:make-flags #~'("GNUTERM=dumb")))
(home-page "http://www.gnuplot.info")
(synopsis "Command-line driven graphing utility")
(description "Gnuplot is a portable command-line driven graphing
(("/bin/mv") "mv"))
(substitute* "fortran/src/Makefile.in"
(("libhdf5_fortran_la_LDFLAGS =")
- (string-append "libhdf5_fortran_la_LDFLAGS = -Wl-rpath="
+ (string-append "libhdf5_fortran_la_LDFLAGS = -Wl,-rpath="
(assoc-ref outputs "fortran") "/lib")))
(substitute* "hl/fortran/src/Makefile.in"
(("libhdf5hl_fortran_la_LDFLAGS =")
HDF5 file is encoded according to the HDF File Format Specification.")
(license (license:x11-style "file://COPYING"))))
+(define-public itex2mml
+ (package
+ (name "itex2mml")
+ (version "1.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://golem.ph.utexas.edu"
+ "/~distler/blog/files/itexToMML-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0pz51c0hfh2mg8xli0wj7hf92s3b7yf5r4114g8z8722lcm5gwiy"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ (delete-file-recursively "itex-binaries")))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list bison
+ flex))
+ (arguments
+ (list
+ #:make-flags #~(list (string-append "BINDIR=" #$output "/bin/")
+ (string-append "CC=" #$(cc-for-target)))
+ #:tests? #f ;; there are none
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'chdir
+ (lambda args
+ (chdir "itex-src")))
+ (add-before 'install 'make-bindir
+ (lambda args
+ (mkdir-p (string-append #$output "/bin"))))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((doc-prefix (or (assoc-ref outputs "doc")
+ #$output))
+ (itex2mml+version (strip-store-file-name #$output))
+ (doc-dir (string-append doc-prefix
+ "/share/doc/"
+ itex2mml+version)))
+ (install-file "../README" doc-dir)))))))
+ (home-page "https://golem.ph.utexas.edu/~distler/blog/itex2MML.html")
+ (synopsis "LaTeX to XHTML/MathML converter")
+ (description
+ "The @command{itex2MML} utility is a stream filter. It takes text with
+embedded itex equations, converts the itex equations to MathML, and outputs
+the resulting text.")
+ (license (list license:lgpl2.0+ license:gpl2+ license:mpl1.1))))
+
(define-public itpp
(package
(name "itpp")
(base32
"14ddy2xnb6sgp4hiax9v5sv4pr4l4dd4ps76nfha3nrpr1ikhcqm"))))
(build-system cmake-build-system)
- (arguments `(#:tests? #f)) ; Tests require googletest *sources*
+ (arguments `(#:tests? #f ; Tests require googletest *sources*
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-man-page-date
+ (lambda _
+ (substitute* "itpp-config.1.cmake.in"
+ ((".PACKAGE_DATE.") "2012-04-18"))))
+ (add-before 'build 'set-force-source-date
+ ;; for reproducible dates, texlive needs this to respect respect
+ ;; SOURCE_DATE_EPOCH
+ (lambda _
+ (setenv "FORCE_SOURCE_DATE" "1"))))))
(inputs (list lapack fftw))
;; FIXME: Even though the fonts are available dvips complains:
;; "Font cmmi10 not found; characters will be left blank."
(home-page (package-home-page netcdf))
(license (package-license netcdf))))
-(define-public nlopt
+(define-public n2p2
(package
- (name "nlopt")
- (version "2.4.2")
+ (name "n2p2")
+ (version "2.1.4")
(source (origin
- (method url-fetch)
- (uri (string-append "http://ab-initio.mit.edu/nlopt/nlopt-"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CompPhysVienna/n2p2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "12cfkkhcdf4zmb6h7y6qvvdvqjs2xf9sjpa3rl3bq76px4yn76c0"))))
+ (base32
+ "1lw195ihpxwh08387i4gamk1glhalpq888q6nj8l5vswbgnrv1pq"))))
(build-system gnu-build-system)
(arguments
- `(;; Shared libraries are not built by default. They are required to
- ;; build the Guile, Octave, and Python bindings.
- #:configure-flags '("--enable-shared")
-
+ `(#:make-flags '("MODE=shared" "-C" "src")
#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'post-unpack
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/makefile.gnu"
+ (("PROJECT_EIGEN=/usr/include/eigen3")
+ (string-append "PROJECT_EIGEN="
+ (assoc-ref inputs "eigen") "/include/eigen3")))
+ (substitute* "src/makefile.gnu"
+ (("-lblas")
+ (string-append "-L" (assoc-ref inputs "openblas")
+ "/lib -lopenblas"))
+ (("-march=native")
+ ""))
+ (substitute* "src/application/makefile"
+ (("LDFLAGS=")
+ "LDFLAGS=-Wl,-rpath='$$ORIGIN/../lib' "))))
+ (delete 'configure)
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bindir (string-append out "/bin"))
+ (libdir (string-append out "/lib"))
+ (incdir (string-append out "/include")))
+ (for-each (lambda (f) (install-file f bindir))
+ (find-files "bin" "^nnp-"))
+ (for-each (lambda (f) (install-file f libdir))
+ (find-files "lib" "\\.so$"))
+ (for-each (lambda (f) (install-file f incdir))
+ (find-files "include" "\\.h$"))))))))
+ (inputs
+ (list openmpi gsl openblas eigen))
+ (synopsis "Neural network potentials for chemistry and physics")
+ (description "This package contains software that will allow you to use
+existing neural network potential parameterizations to predict energies and
+forces (with standalone tools but also in conjunction with the MD software
+LAMMPS). In addition it is possible to train new neural network potentials
+with the provided training tools.")
+ (home-page "https://compphysvienna.github.io/n2p2/")
+ (properties '((tunable? . #t))) ;to benefit from SIMD code in Eigen
+ (license license:gpl3+)))
+
+(define-public nlopt
+ (package
+ (name "nlopt")
+ (version "2.7.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stevengj/nlopt/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1xpdza28i8w441fwv6a5f3qk4zi7ys6ws9fx6kr5ny27dfdz6rr1"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-libnlopt-file-name
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure the Scheme module refers to the library by its
- ;; absolute file name (we cannot do that from a snippet
- ;; because the expansion of @libdir@ contains
- ;; ${exec_prefix}.)
+ ;; absolute file name.
(let ((out (assoc-ref outputs "out")))
- (substitute* "swig/nlopt.scm.in"
- (("libnlopt")
- (string-append out "/lib/libnlopt")))
- #t))))))
- (inputs (list guile-2.0))
- (native-inputs (list pkg-config))
+ (substitute* "src/swig/nlopt-guile.i"
+ (("\"nlopt_guile\"")
+ (format #f "~s"
+ `(format #f "~anlopt_guile"
+ (if (getenv "NLOPT_UNINSTALLED")
+ ""
+ ,(format #f "~a/lib/guile/3.0/extensions/" out))))))
+ (setenv "NLOPT_UNINSTALLED" "1")))))))
+ (inputs (list guile-3.0 octave python))
+ (native-inputs (list pkg-config swig))
(home-page "http://ab-initio.mit.edu/wiki/")
(synopsis "Library for nonlinear optimization")
(description "NLopt is a library for nonlinear optimization, providing a
(define-public nomad-optimizer
(package
(name "nomad-optimizer")
- (version "4.1.0")
+ (version "4.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bbopt/nomad/")
- (commit (string-append "v" version))))
+ (commit (string-append "v." version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0w386d8r5ldbvnv0c0g7vz95pfpvwdxis26vaalk2amsa5akl775"))))
+ "1r4ygy3xn83dnppsw1451ynklsxpb238g5gk57inn84ghmdk08mj"))))
(build-system cmake-build-system)
(native-inputs
- `(("python" ,python-wrapper)
- ("python-cython" ,python-cython)))
+ (list python-wrapper python-cython))
(arguments
`(#:imported-modules ((guix build python-build-system)
,@%cmake-build-system-modules)
(guix build cmake-build-system)
(guix build utils))
#:configure-flags
- '("-DBUILD_INTERFACES=ON"
+ '("-DBUILD_INTERFACE_C=ON"
+ "-DBUILD_INTERFACE_PYTHON=ON"
"-DBUILD_TESTS=ON")
#:phases
(modify-phases %standard-phases
(substitute* "interfaces/PyNomad/setup_PyNomad.py"
(("^( +os_include_dirs = ).*" _ prefix)
(string-append prefix "[\"../../src\"]\n"))
- (("^(installed_lib_dir = ).*" _ prefix)
- (string-append prefix "\"" out "/lib\"\n"))))
- #t))
+ (("^(installed_lib_dir1 = ).*" _ prefix)
+ (string-append prefix "\"" out "/lib\"\n"))
+ (("^installed_lib_dir2 = .*") "")
+ (("^ +link_args\\.append\\(\"-Wl,-rpath,\" \\+ installed_lib_dir2\\)\n")
+ "")))))
;; Fix the tests so they run in out-of-source builds.
+ ;;
+ ;; TODO: Add support for examples/basic/batch/single_obj_MPIparallel,
+ ;; by adding openmpi to native-inputs and adjusting the example's
+ ;; BB_EXE parameter.
(add-after 'fix-sources-for-build 'fix-sources-for-tests
(lambda _
+ (substitute* "examples/CMakeLists.txt"
+ ;; This test passes only sometimes.
+ ;; See https://github.com/bbopt/nomad/issues/72.
+ (("^ +add_subdirectory\\(\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/advanced/library/PSDMads\\)\n")
+ "")
+ ;; examples/basic/batch/example3 is accidentally omitted.
+ (("^(add_subdirectory\\(\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/basic/batch/example)2(\\)\n)"
+ _ prefix suffix)
+ (string-append prefix "2" suffix
+ prefix "3" suffix))
+
+ ;; The generated runExampleTest.sh script runs the test as part
+ ;; of a pipeline and incorrectly (because pipefail is unset)
+ ;; relies on the value of the exit status immediately after the
+ ;; pipeline.
+ ;; (The patch-shebangs phase runs later than this one, so no
+ ;; need to update the path to bash here.)
+ (("#!/bin/bash") "#!/bin/bash\nset -o pipefail"))
+
(substitute*
(map (lambda (d) (string-append "examples/" d "/CMakeLists.txt"))
(append
'("FixedVariable" "NMonly" "PSDMads" "Restart"
"c_api/example1" "c_api/example2"
"exampleSuggestAndObserve"))))
- ;; The built examples are assumed to be in the source tree
- ;; (which isn't the case here).
+ ;; The runExampleTest.sh script is run with WORKING_DIRECTORY
+ ;; set to CMAKE_CURRENT_SOURCE_DIR.
+ ;; Other scripts invoked by that script (for example
+ ;; examples/advanced/batch/SuggestAndObserve/loopSuggestAndObserve.sh)
+ ;; are in that same directory, but compiled examples are
+ ;; located in CMAKE_CURRENT_BINARY_DIR.
(("(COMMAND \\$\\{CMAKE_BINARY_DIR\\}/examples/runExampleTest\\.sh )\\.(/.*)"
_ command test)
(string-append command "${CMAKE_CURRENT_BINARY_DIR}" test)))
+
+ ;; The examples/basic/batch/example3 executable is already named
+ ;; bb3.exe.
+ (substitute* "examples/basic/batch/single_obj_parallel/CMakeLists.txt"
+ (("bb3.exe") "bb_parallel.exe"))
+
;; (Unrelated to support for out-of-source testing.)
(make-file-writable
"examples/advanced/library/exampleSuggestAndObserve/cache0.txt")
- (let* ((builddir (string-append (getcwd) "/../build"))
- ;; The BB_EXE and SURROGATE_EXE paths are interpreted
- ;; relative to the configuration file provided to NOMAD.
- ;; However, the configuration files are all in the source
- ;; tree rather than in the build tree (unlike the compiled
- ;; executables).
- (fix-exe-path (lambda* (dir #:optional
- (file "param.txt")
- (exe-opt "BB_EXE"))
- (substitute* (string-append dir "/" file)
- (((string-append "^" exe-opt " +"))
- ;; The $ prevents NOMAD from prefixing
- ;; the executable with the path of the
- ;; parent directory of the configuration
- ;; file NOMAD was provided with as
- ;; argument (param.txt or some such).
- (string-append exe-opt " $"
- builddir "/" dir "/"))))))
- (for-each
- (lambda (dir)
- (let ((dir (string-append "examples/" dir)))
- (substitute* (string-append dir "/CMakeLists.txt")
- ;; The install phase has not yet run.
- (("COMMAND \\$\\{CMAKE_INSTALL_PREFIX\\}/bin/nomad ")
- "COMMAND ${CMAKE_BINARY_DIR}/src/nomad "))
- (fix-exe-path dir)
- (when (equal? dir "examples/basic/batch/surrogate_sort")
- (fix-exe-path dir "param.txt" "SURROGATE_EXE"))))
- (append (map (lambda (d) (string-append "basic/batch/" d))
- '("example1" "example2"
- "single_obj" "single_obj_parallel"
- "surrogate_sort"))
- '("advanced/batch/LHonly")))
-
- (let ((dir "examples/advanced/batch/FixedVariable"))
- (substitute* (string-append dir "/runFixed.sh")
- ;; Hardcoded path to NOMAD executable.
- (("^\\.\\./\\.\\./\\.\\./\\.\\./bin/nomad ")
- (string-append builddir "/src/nomad ")))
+ (let ((builddir (string-append (getcwd) "/../build")))
+ (let ((dir "examples/advanced/library/FixedVariable"))
+ (substitute* (string-append dir "/fixedVariable.cpp")
+ (("^( +std::string sExe = ).*" _ prefix)
+ (string-append prefix "\"" builddir "/" dir "/ufl.exe" "\";\n"))))
+
+ ;; The BB_EXE and SURROGATE_EXE paths are interpreted relative
+ ;; to the configuration file provided to NOMAD.
+ ;; However, the configuration files are all in the source tree
+ ;; rather than in the build tree (unlike the compiled
+ ;; executables).
+ (let ((fix-exe-path (lambda* (dir #:optional
+ (file "param.txt")
+ (exe-opt "BB_EXE"))
+ (substitute* (string-append dir "/" file)
+ (((string-append "^" exe-opt " +"))
+ ;; The $ prevents NOMAD from prefixing
+ ;; the executable with the path of the
+ ;; parent directory of the configuration
+ ;; file NOMAD was provided with as
+ ;; argument (param.txt or some such).
+ (string-append exe-opt " $"
+ builddir "/" dir "/"))))))
(for-each
- (lambda (f) (fix-exe-path dir f))
- '("param1.txt" "param2.txt" "param3.txt" "param10.txt"))))
- #t))
+ (lambda (dir)
+ (let ((dir (string-append "examples/" dir)))
+ (substitute* (string-append dir "/CMakeLists.txt")
+ ;; The install phase has not yet run.
+ (("COMMAND \\$\\{CMAKE_INSTALL_PREFIX\\}/bin/nomad ")
+ "COMMAND ${CMAKE_BINARY_DIR}/src/nomad "))
+ (fix-exe-path dir)
+ (when (equal? dir "examples/basic/batch/surrogate_sort")
+ (fix-exe-path dir "param.txt" "SURROGATE_EXE"))))
+ (append (map (lambda (d) (string-append "basic/batch/" d))
+ '("example1" "example2" "example3"
+ "single_obj"
+ "single_obj_parallel"
+ ;; "single_obj_MPIparallel"
+ "surrogate_sort"))
+ '("advanced/batch/LHonly")))
+
+ (let ((dir "examples/advanced/batch/FixedVariable"))
+ (substitute* (string-append dir "/runFixed.sh")
+ ;; Hardcoded path to NOMAD executable.
+ (("^\\.\\./\\.\\./\\.\\./\\.\\./bin/nomad ")
+ (string-append builddir "/src/nomad ")))
+ (for-each
+ (lambda (f) (fix-exe-path dir f))
+ '("param1.txt" "param2.txt" "param3.txt" "param10.txt")))))))
;; The information in the .egg-info file is not kept up to date.
(add-after 'install 'delete-superfluous-egg-info
(site-packages inputs outputs)
"/PyNomad-0.0.0-py"
(python-version (assoc-ref inputs "python"))
- ".egg-info"))
- #t)))))
+ ".egg-info")))))))
(home-page "https://www.gerad.ca/nomad/")
(synopsis "Nonlinear optimization by mesh-adaptive direct search")
(description
(define-public octave-cli
(package
(name "octave-cli")
- (version "6.2.0")
+ (version "7.1.0")
(source
(origin
(method url-fetch)
version ".tar.xz"))
(sha256
(base32
- "06id09zspya24gshcwgp039cp35c06150mdlxysawgnbrhj16wkv"))))
+ "0wv26nsfi6cq80np6p4av4wfrvbaflca6szajf6c60mbpdg63m1z"))))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
("qt" ,qtbase-5)
,@(package-inputs octave-cli)))
(native-inputs
- `(("qttools" , qttools) ;for lrelease
+ `(("qttools-5" , qttools-5) ;for lrelease
("texlive" ,(texlive-updmap.cfg (list texlive-epsf))) ; for texi2dvi
,@(package-native-inputs octave-cli)))
(arguments
(define-public opencascade-occt
(package
(name "opencascade-occt")
- (version "7.3.0p3")
+ (version "7.6.0")
(source
(origin
(method git-fetch)
version)))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bdywwxb6mk0ykbiajlvsb37295akqjp0a60y672qjfa67k0ljv4"))
+ (base32 "1rcwm9fkx0j4wrsyikb6g7qd611kpry7dand5dzdjvs5vzd13zvd"))
(modules '((guix build utils)))
(snippet
'(begin
"-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
"-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON"
"-UCMAKE_INSTALL_LIBDIR")))
+ (native-inputs (list fontconfig))
(inputs
(list doxygen
;("freeimage" ,freeimage)
(define-public gmsh
(package
(name "gmsh")
- (version "4.8.4")
+ (version "4.10.5")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.onelab.info/gmsh/gmsh.git")
- (commit
- (string-append "gmsh_"
- (string-replace-substring version "." "_")))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "07mi6ja3b9libgcdp2b4dwnkap1b9ha2wi2zdn9mhmwvp3g1pxhp"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (delete-file-recursively "contrib/metis")
- #t))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.onelab.info/gmsh/gmsh.git")
+ (commit
+ (string-append "gmsh_"
+ (string-replace-substring version "." "_")))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "08p39yjgf3lbnjg90skpmsq9n1a9pmwppdmy5s94dc6sq2nfr7xl"))
+ (modules '((guix build utils)))
+ (snippet
+ '(delete-file-recursively "contrib/metis"))))
(build-system cmake-build-system)
(propagated-inputs
(list fltk
metis
opencascade-occt))
(inputs
- `(("fontconfig" ,fontconfig)
- ("libxft" ,libxft)
- ("python" ,python)))
+ (list fontconfig
+ libxft
+ python))
(arguments
`(#:configure-flags `("-DENABLE_SYSTEM_CONTRIB:BOOL=ON"
"-DENABLE_BUILD_SHARED:BOOL=ON"
"/lib/libgmsh.so")))
(substitute* "api/gmsh.py"
(("find_library\\(\"gmsh\"\\)")
- (simple-format #f "\"~a\"" libgmsh))))
- #t)))))
+ (simple-format #f "\"~a\"" libgmsh)))))))))
(home-page "http://gmsh.info/")
(synopsis "3D finite element grid generator")
(description "Gmsh is a 3D finite element grid generator with a built-in
(native-inputs
(list pkg-config
;;("python-astropy" ,python-astropy) ;; FIXME: Package this.
- qttools python-sip-4))
+ qttools-5 python-sip-4))
(inputs
(list ghostscript ;optional, for EPS/PS output
python-dbus
python-h5py ;optional, for HDF5 data
python-pyqt
qtbase-5
- qtsvg))
+ qtsvg-5))
(propagated-inputs
(list python-numpy))
(home-page "https://veusz.github.io/")
(inherit petsc)
(name "petsc-openmpi")
(inputs
- `(("hdf5" ,hdf5-parallel-openmpi)
- ("hypre" ,hypre-openmpi)
- ("metis" ,metis)
- ("mumps" ,mumps-openmpi)
- ("openmpi" ,openmpi)
- ("scalapack" ,scalapack)
- ("scotch" ,pt-scotch32)
- ,@(package-inputs petsc)))
+ (modify-inputs (package-inputs petsc)
+ (prepend hdf5-parallel-openmpi
+ hypre-openmpi
+ metis
+ mumps-openmpi
+ openmpi
+ scalapack
+ pt-scotch32
+ `(,pt-scotch32 "metis"))))
(arguments
(substitute-keyword-arguments (package-arguments petsc)
((#:configure-flags cf)
,(string-append "--with-mpi-dir="
#$(this-package-input "openmpi"))
,(string-append "--with-hdf5-include="
- #$(this-package-input "hdf5") "/include")
+ #$(this-package-input "hdf5-parallel-openmpi")
+ "/include")
,(string-append "--with-hdf5-lib="
- #$(this-package-input "hdf5") "/lib/libhdf5.a")
+ #$(this-package-input "hdf5-parallel-openmpi")
+ "/lib/libhdf5.a")
,@(delete "--with-mpi=0" #$cf)))
((#:phases phases)
#~(modify-phases #$phases
+ (add-before 'configure 'adjust-pt-scotch-library-names
+ (lambda _
+ ;; Adjust to the library name changes in Scotch 7.0.
+ (substitute* "config/BuildSystem/config/packages/PTScotch.py"
+ (("libptesmumps") "libesmumps")
+ (("libptscotchparmetis") "libptscotchparmetisv3"))))
(add-before 'configure 'mpi-setup
- #$%openmpi-setup)))))
+ #$%openmpi-setup)
+ (add-after 'install 'patch-header-inclusions
+ ;; TODO: Replace with ‘patch-header-inclusions’ when (some form
+ ;; of) https://issues.guix.gnu.org/54780#19 is merged.
+ (lambda _
+ (substitute* (string-append #$output "/include/petsclayouthdf5.h")
+ (("<(H5Ipublic.h)>" _ header)
+ (format #f "<~a/include/~a>"
+ #$(this-package-input "hdf5-parallel-openmpi")
+ header)))))))))
(synopsis "Library to solve PDEs (with MUMPS and MPI support)")))
(define-public petsc-complex-openmpi
savings are consistently > 5x.")
(license license:bsd-3)))
-(define-public python2-kiwisolver
- (package-with-python2 python-kiwisolver))
-
(define-public slepc
(package
(name "slepc")
(define-public mumps
(package
(name "mumps")
- (version "5.2.1")
+ (version "5.5.1")
(source
(origin
(method url-fetch)
- (uri (string-append "http://mumps.enseeiht.fr/MUMPS_"
- version ".tar.gz"))
+ (uri (list (string-append "http://mumps.enseeiht.fr/MUMPS_"
+ version ".tar.gz")
+ (string-append
+ "https://ftp.mcs.anl.gov/pub/petsc/externalpackages"
+ "/MUMPS_" version ".tar.gz")))
(sha256
(base32
- "0jklh54x4y3ik1zkw6db7766kakjm5910diyaghfxxf8vwsgr26r"))
- (patches (search-patches "mumps-build-parallelism.patch"
- "mumps-shared-libseq.patch"
- "mumps-shared-mumps.patch"
- "mumps-shared-pord.patch"))))
+ "05gs2i8b76m9flm1826fxpyfnwibjjawbmfza3ylrvj7zaag5gqs"))))
(build-system gnu-build-system)
(inputs
- `(("fortran" ,gfortran)
- ;; These are required for linking against mumps, but we let the user
- ;; declare the dependency.
- ("blas" ,openblas)
- ("metis" ,metis)
- ("scotch" ,scotch)))
+ (list gfortran
+ ;; These are required for linking against mumps, but we let the user
+ ;; declare the dependency.
+ openblas
+ metis
+ scotch))
(arguments
`(#:modules ((ice-9 match)
(ice-9 popen)
#:phases
(modify-phases %standard-phases
(replace 'configure
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs #:allow-other-keys)
(call-with-output-file "Makefile.inc"
(lambda (port)
(format port "
-PLAT =
-LIBEXT = .a
-OUTC = -o
-OUTF = -o
-RM = rm -f~:[
-CC = gcc
-FC = gfortran
-FL = gfortran
-INCSEQ = -I$(topdir)/libseq
-LIBSEQ = $(topdir)/libseq/libmpiseq.a
-LIBSEQNEEDED = libseqneeded~;
-CC = mpicc
-FC = mpifort
-FL = mpifort~]
-AR = ar vr # rules require trailing space, ugh...
-RANLIB = ranlib
-BLASDIR = ~a
-LIBBLAS = -Wl,-rpath=$(BLASDIR) -Wl,-rpath='$$ORIGIN' -L$(BLASDIR) -lopenblas~@[
-SCALAPDIR = ~a
-SCALAP = -Wl,-rpath=$(SCALAPDIR) -Wl,-rpath='$$ORIGIN' -L$(SCALAPDIR) -lscalapack~]
-LIBOTHERS = -pthread
-CDEFS = -DAdd_
-PIC = -fPIC
-OPTF = -O2 -DALLOW_NON_INIT -fallow-argument-mismatch $(PIC)
-OPTL = -O2 $(PIC)
-OPTC = -O2 $(PIC)
-INCS = $(INCSEQ)
-LIBS = $(SCALAP) $(LIBSEQ)
-LPORDDIR = $(topdir)/PORD/lib
-IPORD = -I$(topdir)/PORD/include
-LPORD = $(LPORDDIR)/libpord.a
-ORDERINGSF = -Dpord~@[
-METISDIR = ~a
-IMETIS = -I$(METISDIR)/include
-LMETIS = -Wl,-rpath $(METISDIR)/lib -L$(METISDIR)/lib -lmetis
-ORDERINGSF += -Dmetis~]~@[~:{
-SCOTCHDIR = ~a
-ISCOTCH = -I$(SCOTCHDIR)/include
-LSCOTCH = -Wl,-rpath $(SCOTCHDIR)/lib -L$(SCOTCHDIR)/lib ~a-lesmumps -lscotch -lscotcherr
-ORDERINGSF += ~a~}~]
-ORDERINGSC = $(ORDERINGSF)
-LORDERINGS = $(LPORD) $(LMETIS) $(LSCOTCH) $(LIBSEQ)
-IORDERINGSF = $(ISCOTCH)
-IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)"
- (assoc-ref inputs "mpi")
- (assoc-ref inputs "blas")
+PLAT =
+LIBEXT = .a
+LIBEXT_SHARED = .so
+OUTC = -o
+OUTF = -o
+BLASDIR = ~a
+LIBBLAS = -Wl,-rpath=$(BLASDIR)/lib -Wl,-rpath='$$ORIGIN'
+LIBBLAS += -L$(BLASDIR)/lib
+LIBBLAS += -lopenblas~@[
+SCALAPDIR = ~a
+SCALAP = -Wl,-rpath=$(SCALAPDIR)/lib -Wl,-rpath='$$ORIGIN'
+SCALAP += -L$(SCALAPDIR)/lib -lscalapack~]
+RM = rm -f~:[
+CC = gcc
+FC = gfortran
+FL = gfortran
+INCSEQ = -I$(topdir)/libseq
+LIBSEQ = $(LAPACK) -L$(topdir)/libseq -lmpiseq
+LIBSEQNEEDED = libseqneeded
+INCS = $(INCSEQ)
+LIBS = $(LIBSEQ)~;
+CC = mpicc
+FC = mpifort
+FL = mpifort
+INCPAR =
+LIBPAR = $(SCALAP) $(LAPACK)
+LIBSEQNEEDED =
+INCS = $(INCPAR)
+LIBS = $(LIBPAR)~]
+AR = ar vr # rules require trailing space, ugh...
+RANLIB = ranlib
+LIBOTHERS = -pthread
+CDEFS = -DAdd_
+PIC = -fPIC
+FPIC_OPT = $(PIC)
+RPATH_OPT = -Wl,-rpath,~a/lib
+OPTF = -O2 -fopenmp -DALLOW_NON_INIT -DBLR_MT
+OPTF += -fallow-argument-mismatch $(PIC)
+OPTL = -O2 -fopenmp $(PIC)
+OPTC = -O2 -fopenmp $(PIC)
+LPORDDIR = $(topdir)/PORD/lib
+IPORD = -I$(topdir)/PORD/include
+LPORD = $(LPORDDIR)/libpord.a
+ORDERINGSF = -Dpord~@[
+METISDIR = ~a
+IMETIS = -I$(METISDIR)/include
+LMETIS = -Wl,-rpath $(METISDIR)/lib -L$(METISDIR)/lib -lmetis
+ORDERINGSF += -Dmetis~]~@[~:{
+SCOTCHDIR = ~a
+ISCOTCH = -I$(SCOTCHDIR)/include
+LSCOTCH = -Wl,-rpath $(SCOTCHDIR)/lib -L$(SCOTCHDIR)/lib ~a -lesmumps
+LSCOTCH += -lscotch -lscotcherr
+ORDERINGSF += ~a~}~]
+ORDERINGSC = $(ORDERINGSF)
+LORDERINGS = $(LPORD) $(LMETIS) $(LSCOTCH)
+IORDERINGSF = $(ISCOTCH)
+IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)"
+ (assoc-ref inputs "openblas")
(assoc-ref inputs "scalapack")
+ (->bool (which "mpicc")) ;; MPI support enabled?
+ (assoc-ref outputs "out")
(assoc-ref inputs "metis")
(match (list (assoc-ref inputs "pt-scotch")
(assoc-ref inputs "scotch"))
`((,scotch "" "-Dscotch")))
((ptscotch _)
`((,ptscotch
- "-lptesmumps -lptscotch -lptscotcherr "
+ "-lesmumps -lptscotch -lptscotcherr "
"-Dptscotch")))))))))
(replace 'build
- ;; By default only the d-precision library is built. Make with "all"
- ;; target so that all precision libraries and examples are built.
- (lambda _
- (invoke "make" "all"
- (format #f "-j~a" (parallel-job-count)))))
+ ;; By default only the d-precision library is built. Make with "all"
+ ;; target so that all precision libraries and examples are built.
+ ;; Then, "make allshared" builts equivalent shared libraries as well.
+ (lambda _
+ (invoke "make" "all"
+ (format #f "-j~a" (parallel-job-count)))
+ (invoke "make" "allshared"
+ (format #f "-j~a" (parallel-job-count)))))
(replace 'check
;; Run the simple test drivers, which read test input from stdin:
;; from the "real" input for the single- and double-precision
(license license:cecill-c)))
(define-public mumps-metis
- (package (inherit mumps)
+ (package
+ (inherit mumps)
(name "mumps-metis")
- (inputs
- (alist-delete "scotch" (package-inputs mumps)))))
+ (inputs (modify-inputs (package-inputs mumps)
+ (delete "scotch")))))
(define-public mumps-openmpi
- (package (inherit mumps)
+ (package
+ (inherit mumps)
(name "mumps-openmpi")
(inputs
- `(("mpi" ,openmpi)
- ("scalapack" ,scalapack)
- ("pt-scotch" ,pt-scotch)
- ,@(alist-delete "scotch" (package-inputs mumps))))
+ (modify-inputs (package-inputs mumps)
+ (delete "scotch")
+ (prepend openmpi scalapack pt-scotch)))
(arguments
(substitute-keyword-arguments (package-arguments mumps)
((#:phases phases)
(synopsis "Multifrontal sparse direct solver (with MPI)")))
(define-public mumps-metis-openmpi
- (package (inherit mumps-openmpi)
+ (package
+ (inherit mumps-openmpi)
(name "mumps-metis-openmpi")
- (inputs
- (alist-delete "pt-scotch" (package-inputs mumps-openmpi)))))
+ (inputs (modify-inputs (package-inputs mumps-openmpi)
+ (delete "pt-scotch")))))
(define-public ruby-asciimath
(package
(name "ruby-asciimath")
- (version "2.0.1")
+ (version "2.0.4")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "asciimath" version))
(sha256
(base32
- "1aapydwwkydbwgz07n7ma3a5jy9n3v0shy6q6j8mi4wr3crhx45a"))))
+ "1fy2jrn3gr7cl33qydp3pwyfilcmb4m4z6hfhnvydzg8r3srp36j"))))
(build-system ruby-build-system)
(native-inputs
(list ruby-nokogiri ruby-rspec))
(define-public superlu
(package
(name "superlu")
- (version "5.2.2")
+ (version "5.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://portal.nersc.gov/project/sparse/superlu/"
- "superlu_" version ".tar.gz"))
+ "superlu-" version ".tar.gz"))
(sha256
- (base32 "13520vk6fqspyl22cq4ak2jh3rlmhja4czq56j75fdx65fkk80s7"))
+ (base32 "0xvib7nk2rlbsiv1iwkwl9kxppkalkciv628bsyiiv0pv754n48q"))
(modules '((guix build utils)))
(snippet
;; Replace the non-free implementation of MC64 with a stub adapted
(define-public scotch
(package
(name "scotch")
- (version "6.1.1")
+ (version "7.0.1")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://gforge.inria.fr/frs/download.php/"
- "latestfile/298/scotch_" version ".tar.gz"))
- (sha256
- (base32 "04dkz24a2g20wq703fnyi4440ac4mwycy9gwrrllljj7zxcjy19r"))
- (patches (search-patches "scotch-build-parallelism.patch"
- "scotch-integer-declarations.patch"))))
- (build-system gnu-build-system)
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.inria.fr/scotch/scotch")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fvgxd3ipl5xswswyadvxvlcgv6an8c229ispnlksgnlwphg10ig"))))
+ (build-system cmake-build-system)
(inputs
(list zlib))
(native-inputs
(list flex bison gfortran))
(outputs '("out" "metis"))
(arguments
- `(#:make-flags (list (string-append "prefix=" %output))
+ `(#:configure-flags '("-DBUILD_SHARED_LIBS=YES" "-DINTSIZE=64"
+ "-DBUILD_PTSCOTCH=OFF")
#:phases
(modify-phases %standard-phases
- (add-after
- 'unpack 'chdir-to-src
- (lambda _ (chdir "src") #t))
- (replace
- 'configure
- (lambda _
- (call-with-output-file "Makefile.inc"
- (lambda (port)
- (format port "
-EXE =
-LIB = .a
-OBJ = .o
-MAKE = make
-AR = ar
-ARFLAGS = -ruv
-CAT = cat
-CCS = gcc
-CCP = mpicc
-CCD = gcc
-FC = gfortran
-CPPFLAGS =~{ -D~a~}
-CFLAGS = -O2 -g -fPIC $(CPPFLAGS)
-LDFLAGS = -lz -lm -lrt -lpthread
-CP = cp
-LEX = flex -Pscotchyy -olex.yy.c
-LN = ln
-MKDIR = mkdir
-MV = mv
-RANLIB = ranlib
-YACC = bison -pscotchyy -y -b y
-"
- '("COMMON_FILE_COMPRESS_GZ"
- "COMMON_PTHREAD"
- "COMMON_RANDOM_FIXED_SEED"
- "INTSIZE64" ;use 'int64_t'
- ;; Prevents symbol clashes with libesmumps
- "SCOTCH_RENAME"
- ;; XXX: Causes invalid frees in superlu-dist tests
- ;; "SCOTCH_PTHREAD"
- ;; "SCOTCH_PTHREAD_NUMBER=2"
- "restrict=__restrict"))))
- #t))
- (add-after 'build 'build-esmumps
- (lambda _
- (invoke "make"
- (format #f "-j~a" (parallel-job-count))
- "esmumps")))
- (add-before 'install 'make-install-dirs
- (lambda* (#:key outputs #:allow-other-keys)
- (mkdir (assoc-ref outputs "out"))))
(add-after 'install 'install-metis
(lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "metis")))
- (mkdir out)
- ;; metis files are not installed with 'make install'
- (for-each (lambda (f)
- (install-file f (string-append out "/include")))
- (find-files "../include/" ".*metis\\.h"))
- (for-each (lambda (f)
- (install-file f (string-append out "/lib")))
- (find-files "../lib/" ".*metis\\..*"))
- #t))))))
+ (let* ((out (assoc-ref outputs "out"))
+ (metis (assoc-ref outputs "metis"))
+ (prefix (string-length out)))
+ (for-each (lambda (file)
+ (let ((target (string-append
+ metis
+ (string-drop file prefix))))
+ (mkdir-p (dirname target))
+ (rename-file file target)))
+ (find-files out "metis"))))))))
(home-page "https://www.labri.fr/perso/pelegrin/scotch/")
(properties
- `((release-monitoring-url . "https://gforge.inria.fr/frs/?group_id=248")))
+ `((release-monitoring-url
+ . "https://gitlab.inria.fr/scotch/scotch/-/releases")))
(synopsis "Programs and libraries for graph algorithms")
(description "SCOTCH is a set of programs and libraries which implement
the static mapping and sparse matrix reordering algorithms developed within
(define-public scotch32
;; This is the 'INTSIZE32' variant, which uses 32-bit integers, as needed by
;; some applications.
- (package (inherit scotch)
+ (package
+ (inherit scotch)
(name "scotch32")
(arguments
(substitute-keyword-arguments (package-arguments scotch)
- ((#:phases scotch-phases)
- `(modify-phases ,scotch-phases
- (replace
- 'configure
- (lambda _
- (call-with-output-file "Makefile.inc"
- (lambda (port)
- (format port "
-EXE =
-LIB = .a
-OBJ = .o
-MAKE = make
-AR = ar
-ARFLAGS = -ruv
-CAT = cat
-CCS = gcc
-CCP = mpicc
-CCD = gcc
-FC = gfortran
-CPPFLAGS =~{ -D~a~}
-CFLAGS = -O2 -g -fPIC $(CPPFLAGS)
-LDFLAGS = -lz -lm -lrt -lpthread
-CP = cp
-LEX = flex -Pscotchyy -olex.yy.c
-LN = ln
-MKDIR = mkdir
-MV = mv
-RANLIB = ranlib
-YACC = bison -pscotchyy -y -b y
-"
- '("COMMON_FILE_COMPRESS_GZ"
- "COMMON_PTHREAD"
- "COMMON_RANDOM_FIXED_SEED"
- "INTSIZE32" ;use 32-bit integers. See INSTALL.txt
- ;; Prevents symbolc clashes with libesmumps
- "SCOTCH_RENAME"
- ;; XXX: Causes invalid frees in superlu-dist tests
- ;; "SCOTCH_PTHREAD"
- ;; "SCOTCH_PTHREAD_NUMBER=2"
- "restrict=__restrict"))))))))))
+ ((#:configure-flags flags ''())
+ ''("-DBUILD_SHARED_LIBS=YES" "-DBUILD_PTSCOTCH=OFF"
+ "-DINTSIZE=32"))))
(synopsis
"Programs and libraries for graph algorithms (32-bit integers)")))
-(define-public scotch-shared
- (package (inherit scotch)
- (name "scotch-shared")
- (native-inputs
- (list gcc flex bison))
- (arguments
- (substitute-keyword-arguments (package-arguments scotch)
- ((#:phases scotch-shared-phases)
- `(modify-phases ,scotch-shared-phases
- (replace
- 'configure
- (lambda _
- ;; Otherwise, the RUNPATH will lack the final path component.
- (setenv "RPATHFLAGS" (string-append "-Wl,-rpath="
- (assoc-ref %outputs "out") "/lib"))
- (call-with-output-file "Makefile.inc"
- (lambda (port)
- (format port "
-EXE =
-LIB = .so
-OBJ = .o
-MAKE = make
-AR = gcc
-ARFLAGS = -shared -o
-CAT = cat
-CCS = gcc
-CCP = mpicc
-CCD = gcc
-FC = gfortran
-CPPFLAGS =~{ -D~a~}
-CFLAGS = -O2 -g -fPIC $(CPPFLAGS) $(RPATHFLAGS)
-CLIBFLAGS = -shared -fPIC
-LDFLAGS = -lz -lm -lrt -lpthread -Xlinker --no-as-needed
-CP = cp
-LEX = flex -Pscotchyy -olex.yy.c
-LN = ln
-MKDIR = mkdir
-MV = mv
-RANLIB = echo
-YACC = bison -pscotchyy -y -b y
-"
- '("COMMON_FILE_COMPRESS_GZ"
- "COMMON_PTHREAD"
- "COMMON_RANDOM_FIXED_SEED"
- "INTSIZE64" ;use 'int64_t'
- ;; Prevents symbolc clashes with libesmumps
- "SCOTCH_RENAME"
- ;; XXX: Causes invalid frees in superlu-dist tests
- ;; "SCOTCH_PTHREAD"
- ;; "SCOTCH_PTHREAD_NUMBER=2"
- "restrict=__restrict"
- ))))#t))
- (delete 'check)))))
- (synopsis
- "Programs and libraries for graph algorithms (shared libraries version)")))
-
(define-public pt-scotch
- (package (inherit scotch)
+ (package
+ (inherit scotch)
(name "pt-scotch")
(propagated-inputs
- (list openmpi)) ;Headers include MPI headers
+ (list openmpi)) ;headers include MPI headers
(arguments
(substitute-keyword-arguments (package-arguments scotch)
- ((#:phases scotch-phases)
- `(modify-phases ,scotch-phases
- (replace
- 'build
- (lambda _
- (invoke "make" (format #f "-j~a" (parallel-job-count))
- "ptscotch" "ptesmumps")
-
- ;; Install the serial metis compatibility library
- (invoke "make" "-C" "libscotchmetis" "install")))
+ ((#:configure-flags flags ''())
+ ''("-DBUILD_SHARED_LIBS=YES" "-DBUILD_PTSCOTCH=ON"
+ "-DINTSIZE=64"))
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
(add-before 'check 'mpi-setup
- ,%openmpi-setup)
- (replace 'check
- (lambda _
- (invoke "make" "ptcheck")))))))
+ ,%openmpi-setup)))))
(synopsis "Programs and libraries for graph algorithms (with MPI)")))
(define-public pt-scotch32
- (package (inherit scotch32)
+ (package
+ (inherit pt-scotch)
(name "pt-scotch32")
(propagated-inputs
(list openmpi)) ;headers include MPI headers
(arguments
- (substitute-keyword-arguments (package-arguments scotch32)
- ((#:phases scotch32-phases)
- `(modify-phases ,scotch32-phases
- (replace 'build
- (lambda _
- (invoke "make" (format #f "-j~a" (parallel-job-count))
- "ptscotch" "ptesmumps")
- ;; Install the serial metis compatibility library
- (invoke "make" "-C" "libscotchmetis" "install")))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup)
- (replace 'check
- (lambda _
- (invoke "make" "ptcheck")))))))
+ (substitute-keyword-arguments (package-arguments pt-scotch)
+ ((#:configure-flags flags ''())
+ ''("-DBUILD_SHARED_LIBS=YES" "-DBUILD_PTSCOTCH=ON"
+ "-DINTSIZE=32"))))
(synopsis
"Programs and libraries for graph algorithms (with MPI and 32-bit integers)")))
-(define-public pt-scotch-shared
- (package (inherit scotch-shared)
- (name "pt-scotch-shared")
- (propagated-inputs
- (list openmpi)) ;Headers include MPI headers
- (arguments
- (substitute-keyword-arguments (package-arguments scotch-shared)
- ((#:phases scotch-shared-phases)
- `(modify-phases ,scotch-shared-phases
- (replace
- 'build
- (lambda _
- (invoke "make" (format #f "-j~a" (parallel-job-count))
- "ptscotch" "ptesmumps")
+(define-public scotch-shared
+ ;; There used to be separate shared library variants while the default would
+ ;; provide .a files including PIC objects. With the switch to CMake, .a
+ ;; files contain non-PIC objects, which breaks some users, and switching to
+ ;; shared libraries by default seems to make more sense, as discussed here:
+ ;; <https://issues.guix.gnu.org/47619#2>.
+ (deprecated-package "scotch-shared" scotch))
- ;; Install the serial metis compatibility library
- (invoke "make" "-C" "libscotchmetis" "install")))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup)))))
- (synopsis "Graph algorithms (shared libraries version, with MPI)")))
+(define-public pt-scotch-shared
+ (deprecated-package "pt-scotch-shared" pt-scotch))
(define-public metis
(define-public maxima
(package
(name "maxima")
- (version "5.45.1")
+ (version "5.46.0")
(source
(origin
(method url-fetch)
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
- "1p77nk5sz1qfkn5zr97szpbi8ib4b22k8i52l4ag5gkhd4kid47y"))
+ "01wbm8jj43p7gpdj4h55aij0b44bjydn4bwb7q1wjrfs91mz143k"))
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system)
(inputs
;; components at runtime.
(wrap-program (string-append out "/bin/maxima")
`("PATH" prefix (,binutils))))
- #t)))))
+ #t))
+ ;; The Maxima command ‘describe’ allows to pick the relevant portions
+ ;; from Maxima’s Texinfo docs. However it does not support reading
+ ;; gzipped info files.
+ (delete 'compress-documentation))))
(home-page "https://maxima.sourceforge.io")
(synopsis "Numeric and symbolic expression manipulation")
(description "Maxima is a system for the manipulation of symbolic and
(define-public wxmaxima
(package
(name "wxmaxima")
- (version "21.05.2")
+ (version "22.05.0")
(source
(origin
(method git-fetch)
(commit (string-append "Version-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0h7ryykh2dapcyvpp4f1j1b3vrrz80x9k8nkci2yxifgdb29vyhw"))))
+ (base32 "1va56v9dys97yln4m1z3fz3k90lpy8i3kvcq0v1cbg36689aghm5"))))
(build-system cmake-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)))
(define-public openblas
(package
(name "openblas")
- (version "0.3.18")
+ (version "0.3.20")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "17zdd8asylz2w71hczrz5y344p6d5ds1jn4901maw7zcp3dbk63g"))))
+ "0r4sz3rn68fyc2paq0a04pgfi7iszpm95f6ggbzxpvjzx9qxbcql"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
;; Failed to detect CPU.
((string-prefix? "armhf" system)
'("TARGET=ARMV7"))
+ ((string-prefix? "riscv64" system)
+ '("TARGET=RISCV64_GENERIC"))
(else '()))))
;; no configure script
#:phases
(lambda* (#:key inputs #:allow-other-keys)
;; Get libgfortran found when building in utest.
(setenv "FEXTRALIB"
- (string-append "-L" (assoc-ref inputs "fortran-lib")
- "/lib")))))))
+ (string-append
+ "-L"
+ (dirname
+ (search-input-file inputs "/lib/libgfortran.so")))))))))
(inputs
- `(("fortran-lib" ,gfortran "lib")))
+ (list `(,gfortran "lib")))
(native-inputs
- `(("cunit" ,cunit)
- ("fortran" ,gfortran)
- ("perl" ,perl)))
+ (list cunit gfortran perl))
(home-page "https://www.openblas.net/")
(synopsis "Optimized BLAS library based on GotoBLAS")
(description
(define-public suitesparse
(package
(name "suitesparse")
- (version "5.10.1")
+ (version "5.12.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "19gx5wlgqnqpgz6mvam9lalyzpbfwgqhppps8z3np9sh0mgaiyw9"))
+ "0zpl51pfpv7ap7z97jlryba2la1qdmzm11bhzkn55wlb03xzi6k6"))
(patches (search-patches "suitesparse-mongoose-cmake.patch"))
(modules '((guix build utils)))
(snippet
(base32 "0fnwlhzsh85qj38cq3igbs8nm1b2jdgr2z734sapmyyzsy21mkgp"))))
(build-system cmake-build-system)
(native-inputs
- `(("gfortran" ,gfortran)
- ;; Trilinos's repository contains several C-shell scripts, but adding
- ;; tcsh to the native inputs does not result in the check phase running
- ;; any more tests than without it (nor is tcsh required to build
- ;; Trilinos).
- ;; It seems that Trilinos has replaced its use of C-shell test scripts
- ;; with CMake's testing facilities.
- ;; For example,
- ;; packages/zoltan/doc/Zoltan_html/dev_html/dev_test_script.html [1]
- ;; states that Zoltan's C-shell test script
- ;; packages/zoltan/test/test_zoltan has been obsoleted by the tests now
- ;; performed through CMake.
- ;;
- ;; Perl is required for some Zoltan tests and Python 2 for one ML test.
- ;;
- ;; [1]: https://cs.sandia.gov/zoltan/dev_html/dev_test_script.html
- ("perl" ,perl)
- ("python" ,python-2)))
+ (list
+ ;; The build fails with the current gcc.
+ ;; Use the version from when Trilinos was added.
+ gcc-7
+ gfortran
+ ;; Trilinos's repository contains several C-shell scripts, but adding
+ ;; tcsh to the native inputs does not result in the check phase running
+ ;; any more tests than without it (nor is tcsh required to build
+ ;; Trilinos).
+ ;; It seems that Trilinos has replaced its use of C-shell test scripts
+ ;; with CMake's testing facilities.
+ ;; For example,
+ ;; packages/zoltan/doc/Zoltan_html/dev_html/dev_test_script.html [1]
+ ;; states that Zoltan's C-shell test script
+ ;; packages/zoltan/test/test_zoltan has been obsoleted by the tests now
+ ;; performed through CMake.
+ ;;
+ ;; Perl is required for some Zoltan tests and Python 2 for one ML test.
+ ;;
+ ;; [1]: https://cs.sandia.gov/zoltan/dev_html/dev_test_script.html
+ perl
+ python-2))
(inputs
- `(("blas" ,openblas)
- ("lapack" ,lapack)
- ("mumps" ,mumps-openmpi)
- ("scalapack" ,scalapack)))
+ (list openblas
+ lapack
+ mumps-openmpi
+ scalapack))
(propagated-inputs
- `(("mpi" ,openmpi)))
+ (list openmpi))
(arguments
- `(#:build-type "Release"
- #:configure-flags
- `("-DBUILD_SHARED_LIBS=ON"
- ;; Obtain the equivalent of RelWithDebInfo but with -O3 (the Release
- ;; default) rather than -O2 (the RelWithDebInfo default), to conform
- ;; to candi's trilinos.package's compilation flags, which are -g -O3.
- "-DCMAKE_C_FLAGS=-g"
- "-DCMAKE_CXX_FLAGS=-g"
- "-DCMAKE_Fortran_FLAGS=-g"
-
- ;; Trilinos libraries that deal.II can interface with.
- "-DTrilinos_ENABLE_Amesos=ON"
- "-DTrilinos_ENABLE_AztecOO=ON"
- "-DTrilinos_ENABLE_Epetra=ON"
- "-DTrilinos_ENABLE_EpetraExt=ON"
- "-DTrilinos_ENABLE_Ifpack=ON"
- "-DTrilinos_ENABLE_ML=ON"
- "-DTrilinos_ENABLE_MueLu=ON"
- "-DTrilinos_ENABLE_ROL=ON"
- ;; Optional; required for deal.II's GridIn::read_exodusii, but
- ;; depends on netcdf.
- ;; Enable if and when someone needs it.
- ;;"-DTrilinos_ENABLE_SEACAS=ON"
- "-DTrilinos_ENABLE_Sacado=ON"
- "-DTrilinos_ENABLE_Teuchos=ON"
- "-DTrilinos_ENABLE_Tpetra=ON"
- "-DTrilinos_ENABLE_Zoltan=ON"
-
- ;; Third-party libraries (TPLs) that Trilinos can interface with.
- "-DBLAS_LIBRARY_NAMES=openblas"
- "-DTPL_ENABLE_MPI=ON"
- "-DTPL_ENABLE_MUMPS=ON"
- "-DTPL_ENABLE_SCALAPACK=ON"
-
- ;; Enable the tests but not the examples (which are enabled by
- ;; default when enabling tests).
- ;; Although some examples are run as tests, they are otherwise
- ;; unnecessary since this is a private package meant for
- ;; dealii-openmpi.
- ;; Besides, some MueLu and ROL examples require a lot of memory to
- ;; compile.
- ;;
- ;; (For future reference, note that some ROL and SEACAS examples
- ;; require removing gfortran from CPLUS_INCLUDE_PATH as in the
- ;; dune-istl, dune-localfunctions and dune-alugrid packages.)
- "-DTrilinos_ENABLE_TESTS=ON"
- "-DTrilinos_ENABLE_EXAMPLES=OFF"
- ;; MueLu tests require considerably more time and memory to compile
- ;; than the rest of the tests.
- "-DMueLu_ENABLE_TESTS=OFF"
-
- ;; The following options were gleaned from candi's trilinos.package.
- ;; (We do not enable the complex instantiations, which are anyway
- ;; provided only as an option in trilinos.package, because they are
- ;; costly in compilation time and memory usage, and disk space [1].)
- ;;
- ;; [1]: https://www.docs.trilinos.org/files/TrilinosBuildReference.html#enabling-float-and-complex-scalar-types
- "-DTrilinos_ENABLE_Ifpack2=OFF"
- "-DTeuchos_ENABLE_FLOAT=ON"
- "-DTpetra_INST_INT_LONG=ON"
- "-DTPL_ENABLE_Boost=OFF")
- #:phases
- (modify-phases %standard-phases
- (add-after 'configure 'fix-kokkos-config
- (lambda _
- ;; GNU Make 4.3 accidentally leaves the backslash preceding the
- ;; number sign in strings containing a literal backslash–number
- ;; sign (\#) [1, 2].
- ;; This is still an issue in Trilinos 13.0.1, but should be fixed
- ;; in the following version.
- ;; (The latest versions of Kokkos incorporate the fix [2].)
- ;;
- ;; [1]: https://github.com/GEOSX/thirdPartyLibs/issues/136
- ;; [2]: https://github.com/kokkos/kokkos/blob/3.4.00/Makefile.kokkos#L441
- (substitute* "KokkosCore_config.h"
- (("\\\\#") "#"))
- #t))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup))))
+ (list #:build-type "Release"
+ #:configure-flags
+ #~(list "-DBUILD_SHARED_LIBS=ON"
+ ;; Obtain the equivalent of RelWithDebInfo but with -O3
+ ;; (the Release default) rather than -O2 (the
+ ;; RelWithDebInfo default), to conform to candi's
+ ;; trilinos.package's compilation flags, which are -g -O3.
+ "-DCMAKE_C_FLAGS=-g"
+ "-DCMAKE_CXX_FLAGS=-g"
+ "-DCMAKE_Fortran_FLAGS=-g"
+
+ ;; Trilinos libraries that deal.II can interface with.
+ "-DTrilinos_ENABLE_Amesos=ON"
+ "-DTrilinos_ENABLE_AztecOO=ON"
+ "-DTrilinos_ENABLE_Epetra=ON"
+ "-DTrilinos_ENABLE_EpetraExt=ON"
+ "-DTrilinos_ENABLE_Ifpack=ON"
+ "-DTrilinos_ENABLE_ML=ON"
+ "-DTrilinos_ENABLE_MueLu=ON"
+ "-DTrilinos_ENABLE_ROL=ON"
+ ;; Optional; required for deal.II's GridIn::read_exodusii,
+ ;; but depends on netcdf.
+ ;; Enable if and when someone needs it.
+ ;;"-DTrilinos_ENABLE_SEACAS=ON"
+ "-DTrilinos_ENABLE_Sacado=ON"
+ "-DTrilinos_ENABLE_Teuchos=ON"
+ "-DTrilinos_ENABLE_Tpetra=ON"
+ "-DTrilinos_ENABLE_Zoltan=ON"
+
+ ;; Third-party libraries (TPLs) that Trilinos can interface
+ ;; with.
+ "-DBLAS_LIBRARY_NAMES=openblas"
+ "-DTPL_ENABLE_MPI=ON"
+ "-DTPL_ENABLE_MUMPS=ON"
+ "-DTPL_ENABLE_SCALAPACK=ON"
+
+ ;; Enable the tests but not the examples (which are enabled
+ ;; by default when enabling tests).
+ ;; Although some examples are run as tests, they are
+ ;; otherwise unnecessary since this is a private package
+ ;; meant for dealii-openmpi.
+ ;; Besides, some MueLu and ROL examples require a lot of
+ ;; memory to compile.
+ ;;
+ ;; (For future reference, note that some ROL and SEACAS
+ ;; examples require removing gfortran from
+ ;; CPLUS_INCLUDE_PATH as in the dune-istl,
+ ;; dune-localfunctions and dune-alugrid packages.)
+ "-DTrilinos_ENABLE_TESTS=ON"
+ "-DTrilinos_ENABLE_EXAMPLES=OFF"
+ ;; MueLu tests require considerably more time and memory to
+ ;; compile than the rest of the tests.
+ "-DMueLu_ENABLE_TESTS=OFF"
+
+ ;; The following options were gleaned from candi's
+ ;; trilinos.package.
+ ;; (We do not enable the complex instantiations, which are
+ ;; anyway provided only as an option in trilinos.package,
+ ;; because they are costly in compilation time and memory
+ ;; usage, and disk space [1].)
+ ;;
+ ;; [1]: https://www.docs.trilinos.org/files/TrilinosBuildReference.html#enabling-float-and-complex-scalar-types
+ "-DTrilinos_ENABLE_Ifpack2=OFF"
+ "-DTeuchos_ENABLE_FLOAT=ON"
+ "-DTpetra_INST_INT_LONG=ON"
+ "-DTPL_ENABLE_Boost=OFF")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'configure 'fix-kokkos-config
+ (lambda _
+ ;; GNU Make 4.3 accidentally leaves the backslash preceding
+ ;; the number sign in strings containing a literal
+ ;; backslash–number sign (\#) [1, 2].
+ ;; This is still an issue in Trilinos 13.0.1, but should be
+ ;; fixed in the following version.
+ ;; (The latest versions of Kokkos incorporate the fix [2].)
+ ;;
+ ;; [1]: https://github.com/GEOSX/thirdPartyLibs/issues/136
+ ;; [2]: https://github.com/kokkos/kokkos/blob/3.4.00/Makefile.kokkos#L441
+ (substitute* "KokkosCore_config.h"
+ (("\\\\#") "#"))))
+ (add-before 'check 'mpi-setup
+ #$%openmpi-setup))))
(home-page "https://trilinos.github.io/")
(synopsis "Algorithms for engineering and scientific problems")
(description
(define-public dealii
(package
(name "dealii")
- (version "9.3.2")
+ (version "9.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/dealii/dealii/releases/"
"download/v" version "/dealii-" version ".tar.gz"))
(sha256
- (base32 "1s0kawnljg24jj6nibwrif5gxdgg2daqfylhqqpl1lvmzmmxfhak"))
- (patches (search-patches "dealii-fix-compiliation-with-boost-1.78.patch"
- "dealii-fix-sundials.patch"))
+ (base32 "0v73q6f35f2yrjihaq6vh9lma07qc4cdv75nwmc3c5yrdh07g1i3"))
(modules '((guix build utils)))
(snippet
- '(begin
- ;; Remove bundled boost, muparser, TBB and UMFPACK.
- (delete-file-recursively "bundled")
- #t))))
+ ;; Remove bundled boost, muparser, TBB and UMFPACK.
+ #~(delete-file-recursively "bundled"))))
(build-system cmake-build-system)
(outputs '("out" "doc"))
(native-inputs
;; Required to build the documentation.
- (list graphviz doxygen perl))
+ (list graphviz doxygen perl))
(inputs
- (list arpack-ng
- openblas
- gfortran
- lapack
- muparser
- zlib))
+ (list arpack-ng
+ openblas
+ gfortran
+ lapack
+ muparser
+ zlib))
(propagated-inputs
;; Some scripts are installed into share/deal.II/scripts that require
;; perl and python, but they are not executable (and some are missing the
;; 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.
- (list boost hdf5 suitesparse ; For UMFPACK.
+ (list boost
+ hdf5
+ suitesparse ; For UMFPACK.
+ sundials
tbb))
(arguments
- `(#:build-type "DebugRelease" ; Supports only Debug, Release and DebugRelease.
- ;; The tests take too long and must be explicitly enabled with "make
- ;; setup_tests".
- ;; See https://www.dealii.org/developer/developers/testsuite.html.
- ;; (They can also be run for an already installed deal.II.)
- #:tests? #f
- #:configure-flags
- (let ((doc (string-append (assoc-ref %outputs "doc")
- "/share/doc/" ,name "-" ,version)))
- `("-DDEAL_II_COMPONENT_DOCUMENTATION=ON"
- ,(string-append "-DDEAL_II_DOCREADME_RELDIR=" doc)
- ,(string-append "-DDEAL_II_DOCHTML_RELDIR=" doc "/html")
- ;; Don't compile the examples because the source and CMakeLists.txt
- ;; are installed anyway, allowing users to do so for themselves.
- "-DDEAL_II_COMPILE_EXAMPLES=OFF"
- ,(string-append "-DDEAL_II_EXAMPLES_RELDIR=" doc "/examples")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'remove-build-logs
- ;; These build logs leak the name of the build directory by storing
- ;; the values of CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR.
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((doc (string-append (assoc-ref outputs "doc")
- "/share/doc/" ,name "-" ,version)))
- (for-each delete-file (map (lambda (f) (string-append doc "/" f))
- '("detailed.log" "summary.log"))))
- #t)))))
+ (list #:build-type "DebugRelease" ; Only Debug, Release or DebugRelease.
+ ;; The tests take too long and must be explicitly enabled with
+ ;; "make setup_tests".
+ ;; See https://www.dealii.org/developer/developers/testsuite.html.
+ ;; (They can also be run for an already installed deal.II.)
+ #:tests? #f
+ #:configure-flags
+ #~(let ((doc (string-append #$output:doc "/share/doc/"
+ #$name "-" #$version)))
+ (list "-DDEAL_II_COMPONENT_DOCUMENTATION=ON"
+ (string-append "-DDEAL_II_DOCREADME_RELDIR=" doc)
+ (string-append "-DDEAL_II_DOCHTML_RELDIR=" doc "/html")
+ ;; Don't compile the examples because the source and
+ ;; CMakeLists.txt are installed anyway, allowing users to
+ ;; do so for themselves.
+ "-DDEAL_II_COMPILE_EXAMPLES=OFF"
+ (string-append "-DDEAL_II_EXAMPLES_RELDIR=" doc
+ "/examples")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'remove-build-logs
+ ;; These build logs leak the name of the build directory by
+ ;; storing the values of CMAKE_SOURCE_DIR and
+ ;; CMAKE_BINARY_DIR.
+ (lambda _
+ (let ((doc (string-append #$output:doc "/share/doc/"
+ #$name "-" #$version)))
+ (for-each delete-file
+ (map (lambda (f) (string-append doc "/" f))
+ '("detailed.log" "summary.log")))))))))
(home-page "https://www.dealii.org/")
(synopsis "Finite element library")
(description
(package/inherit dealii
(name "dealii-openmpi")
(inputs
- `(("arpack" ,arpack-ng-openmpi)
- ("metis" ,metis)
- ("scalapack" ,scalapack)
- ,@(alist-delete "arpack" (package-inputs dealii))))
+ (modify-inputs (package-inputs dealii)
+ (delete "arpack")
+ (prepend arpack-ng-openmpi
+ metis
+ scalapack)))
(propagated-inputs
- `(("hdf5" ,hdf5-parallel-openmpi)
- ("mpi" ,openmpi)
- ("p4est" ,p4est-openmpi)
- ("petsc" ,petsc-openmpi)
- ("slepc" ,slepc-openmpi)
- ("trilinos" ,trilinos-for-dealii-openmpi)
- ,@(alist-delete "hdf5" (package-propagated-inputs dealii))))
+ (modify-inputs (package-propagated-inputs dealii)
+ (delete "hdf5" "sundials")
+ (prepend hdf5-parallel-openmpi
+ openmpi
+ p4est-openmpi
+ petsc-openmpi
+ slepc-openmpi
+ sundials-openmpi
+ trilinos-for-dealii-openmpi)))
(arguments
(substitute-keyword-arguments (package-arguments dealii)
((#:configure-flags flags)
- `(cons "-DDEAL_II_WITH_MPI=ON" ,flags))))
+ #~(cons "-DDEAL_II_WITH_MPI=ON" #$flags))))
(synopsis "Finite element library (with MPI support)")))
(define-public flann
;; Disable it for now.
;;("octave" ,octave-cli)
("python" ,python-2) ; print syntax
- ;; ("python2-numpy" ,python2-numpy) ; only required for the tests
("zlib" ,zlib)))
(arguments
`(;; The 'share/flann/octave' contains a .mex file, which is an ELF file
(uri (string-append "mirror://sourceforge/w-calc/Wcalc/" version "/"
"wcalc-" version ".tar.bz2"))
(sha256
- (base32
- "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f"))))
+ (base32
+ "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f"))
+ (snippet
+ #~(begin
+ (for-each delete-file
+ (list "src/common/scanner.c"
+ "src/common/parser.c"
+ "src/common/parser.h"))))))
(build-system gnu-build-system)
(inputs
(list mpfr readline))
+ (native-inputs
+ (list bison flex))
(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
(build-system gnu-build-system)
(native-inputs `(("gettext" ,gettext-minimal)
("qtbase" ,qtbase-5)
- ("qttools" ,qttools)))
+ ("qttools-5" ,qttools-5)))
(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.
(outputs '("out" ;5.3 MiB of headers and libraries
"doc")) ;12 MiB of documentation
(native-inputs
- `(("doc++" ,doc++)
- ("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)))))
+ (list doc++
+ doxygen
+ python
+ python-breathe
+ python-sphinx
+ (texlive-updmap.cfg (list texlive-adjustbox
+ texlive-amsfonts
+ texlive-bibtex
+ texlive-capt-of
+ texlive-caption
+ texlive-cm
+ texlive-courier
+ texlive-etoolbox
+ texlive-helvetic
+ texlive-jknappen
+ texlive-sectsty
+ texlive-tex-gyre
+ texlive-wasy
+ texlive-xcolor
+ texlive-xypic
+ texlive-generic-listofitems
+ 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-ulem
+ texlive-wasysym
+ texlive-wrapfig))))
(inputs
- `(("blas" ,openblas)
- ("lapack" ,lapack)))
+ (list openblas lapack))
(arguments
`(#:modules ((srfi srfi-1)
,@%gnu-build-system-modules)
(license license:lgpl2.1)))
(define-public hypre-openmpi
- (package (inherit hypre)
+ (package
+ (inherit hypre)
(name "hypre-openmpi")
- (inputs
- `(("mpi" ,openmpi)
- ,@(package-inputs hypre)))
+ (inputs (modify-inputs (package-inputs hypre)
+ (prepend openmpi)))
(arguments
(substitute-keyword-arguments (package-arguments hypre)
((#:configure-flags flags)
(define-public jacal
(package
(name "jacal")
- (version "1c4")
+ (version "1c7")
(source (origin
(method url-fetch)
(uri (string-append
"http://groups.csail.mit.edu/mac/ftpdir/scm/jacal-"
version ".zip"))
- (sha256 (base32
- "055zrn12a1dmy0dqkwrkq3fklbhg3yir6vn0lacp4mvbg8573a3q"))
- (patches (search-patches "jacal-fix-texinfo.patch"))))
+ (sha256
+ (base32 "06a5sx9ikd62bpnd898g3yk818b020b1a27mk7dbfla2zizib4xz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(chmod wrapper #o555))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
- (invoke "./configure"
+ (invoke "sh" "configure"
(string-append "--prefix="
(assoc-ref outputs "out"))))))))
(inputs (list scm))
(define-public z3
(package
(name "z3")
- (version "4.8.9")
+ (version "4.8.17")
(home-page "https://github.com/Z3Prover/z3")
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1hnbzq10d23drd7ksm3c1n2611c3kd0q0yxgz8y78zaafwczvwxx"))))
- (build-system gnu-build-system)
+ "1vvb09q7w7zd29qc4qjysrrhyylszm1wf6azkff004ixwn026b05"))))
+ (build-system cmake-build-system)
(arguments
- `(#:imported-modules ((guix build python-build-system)
- ,@%gnu-build-system-modules)
- #:modules (((guix build python-build-system) #:select (site-packages))
- (guix build gnu-build-system)
- (guix build utils))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'enable-bytecode-determinism
- (lambda _
- (setenv "PYTHONHASHSEED" "0")
- #t))
- (add-after 'unpack 'fix-compatability
- ;; Versions after 4.8.3 have immintrin.h IFDEFed for Windows only.
- (lambda _
- (substitute* "src/util/mpz.cpp"
- (("#include <immintrin.h>") ""))
- #t))
- (add-before 'configure 'bootstrap
- (lambda _
- (invoke "python" "scripts/mk_make.py")))
- ;; work around gnu-build-system's setting --enable-fast-install
- ;; (z3's `configure' is a wrapper around the above python file,
- ;; which fails when passed --enable-fast-install)
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (invoke "./configure"
- "--python"
- (string-append "--prefix=" (assoc-ref outputs "out"))
- (string-append "--pypkgdir=" (site-packages inputs outputs)))))
- (add-after 'configure 'change-directory
- (lambda _
- (chdir "build")
- #t))
- (add-before 'check 'make-test-z3
- (lambda _
- ;; Build the test suite executable.
- (invoke "make" "test-z3" "-j"
- (number->string (parallel-job-count)))))
- (replace 'check
- (lambda _
- ;; Run all the tests that don't require arguments.
- (invoke "./test-z3" "/a"))))))
+ (list
+ #:imported-modules `((guix build python-build-system)
+ ,@%cmake-build-system-modules)
+ #:modules '((guix build cmake-build-system)
+ (guix build utils)
+ ((guix build python-build-system) #:select (site-packages)))
+ #:configure-flags
+ #~(list "-DZ3_BUILD_PYTHON_BINDINGS=ON"
+ "-DZ3_LINK_TIME_OPTIMIZATION=ON"
+ (string-append
+ "-DCMAKE_INSTALL_PYTHON_PKG_DIR="
+ #$output "/lib/python"
+ #$(version-major+minor (package-version python-wrapper))
+ "/site-packages"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key parallel-build? tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "test-z3"
+ (format #f "-j~a"
+ (if parallel-build?
+ (parallel-job-count)
+ 1)))
+ (invoke "./test-z3" "/a"))))
+ (add-after 'install 'compile-python-modules
+ (lambda _
+ (setenv "PYTHONHASHSEED" "0")
+
+ (invoke "python" "-m" "compileall"
+ "--invalidation-mode=unchecked-hash"
+ #$output)))
+ ;; This step is missing in the CMake build system, do it here.
+ (add-after 'compile-python-modules 'fix-z3-library-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((dest (string-append (site-packages inputs outputs)
+ "/z3/lib/libz3.so"))
+ (z3-lib (string-append #$output "/lib/libz3.so")))
+ (mkdir-p (dirname dest))
+ (symlink z3-lib dest)))))))
(native-inputs
- `(("which" ,which)
- ("python" ,python-wrapper)))
+ (list which python-wrapper))
(synopsis "Theorem prover")
(description "Z3 is a theorem prover and @dfn{satisfiability modulo
theories} (SMT) solver. It provides a C/C++ API, as well as Python bindings.")
(package
(inherit z3)
(name "ocaml-z3")
+ (build-system gnu-build-system)
(arguments
`(#:imported-modules ((guix build python-build-system)
,@%gnu-build-system-modules)
(version "2018.11.001")
(source (origin
(method url-fetch)
- (uri (string-append "http://elpa.mpcdf.mpg.de/html/Releases/"
+ (uri (string-append "https://elpa.mpcdf.mpg.de/software/"
+ "tarball-archive/Releases/"
version "/elpa-" version ".tar.gz"))
(sha256
(base32
(define-public mcrl2
(package
(name "mcrl2")
- (version "202106.0")
+ (version "202206.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.mcrl2.org/download/release/mcrl2-"
version ".tar.gz"))
+ (patches (search-patches "mcrl2-fix-1687.patch"
+ "mcrl2-fix-counterexample.patch"))
(sha256
(base32
- "1xgx3cd57vc7gbjic24j1q2za6j3ybz6nk4afvvpbwsf33xnlf4v"))))
+ "0alpck09pbvwk4axqmrvcjmsabsn20yayq5b3apq284n0hcbf01q"))))
(inputs
(list boost glu mesa qtbase-5))
(build-system cmake-build-system)
(define-public sundials
(package
(name "sundials")
- (version "3.1.1")
+ (version "6.2.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://computation.llnl.gov/projects/sundials/download/"
- "sundials-" version ".tar.gz"))
+ (uri (string-append "https://github.com/LLNL/sundials/releases/download/v"
+ version "/sundials-" version ".tar.gz"))
(sha256
(base32
- "090s8ymhd0g1s1d44fa73r5yi32hb4biwahhbfi327zd64yn8kd2"))))
+ "07gk9060xk3bzfqf8v4fqlp0rcxswiwlsy887zv87i1gfy9map8r"))))
(build-system cmake-build-system)
(native-inputs
- `(("python" ,python-2))) ;for tests; syntax incompatible with python 3
+ (list python-2)) ; For tests; syntax incompatible with Python 3.
(inputs
- `(("fortran" ,gfortran) ;for fcmix
- ("blas" ,openblas)
- ("suitesparse" ,suitesparse))) ;TODO: Add hypre
+ (list openblas suitesparse))
(arguments
- `(#:configure-flags `("-DCMAKE_C_FLAGS=-O2 -g -fcommon"
+ '(#:configure-flags `("-DCMAKE_C_FLAGS=-O2 -g -fcommon"
+
+ "-DSUNDIALS_INDEX_SIZE=32"
+ ;; Incompatible with 32-bit indices.
+ ;;"-DBUILD_FORTRAN_MODULE_INTERFACE:BOOL=ON"
+
"-DEXAMPLES_ENABLE_C:BOOL=ON"
"-DEXAMPLES_ENABLE_CXX:BOOL=ON"
- "-DEXAMPLES_ENABLE_F77:BOOL=ON"
- "-DEXAMPLES_ENABLE_F90:BOOL=ON"
+ ;; Requires -DBUILD_FORTRAN_MODULE_INTERFACE:BOOL=ON.
+ ;;"-DEXAMPLES_ENABLE_F2003:BOOL=ON"
"-DEXAMPLES_INSTALL:BOOL=OFF"
- "-DFCMIX_ENABLE:BOOL=ON"
-
- "-DKLU_ENABLE:BOOL=ON"
+ "-DENABLE_KLU:BOOL=ON"
,(string-append "-DKLU_INCLUDE_DIR="
(assoc-ref %build-inputs "suitesparse")
"/include")
(license license:bsd-3)))
(define-public sundials-openmpi
- (package (inherit sundials)
+ (package/inherit sundials
(name "sundials-openmpi")
- (inputs
- `(("mpi" ,openmpi)
- ("petsc" ,petsc-openmpi) ;support in SUNDIALS requires MPI
- ,@(package-inputs sundials)))
+ (propagated-inputs
+ (list openmpi
+ ;; Support for the below requires MPI.
+ hypre-openmpi
+ petsc-openmpi))
(arguments
(substitute-keyword-arguments (package-arguments sundials)
((#:configure-flags flags '())
- `(cons* "-DMPI_ENABLE:BOOL=ON"
- "-DPETSC_ENABLE:BOOL=ON"
- (string-append "-DPETSC_INCLUDE_DIR="
- (assoc-ref %build-inputs "petsc")
+ `(cons* "-DENABLE_MPI:BOOL=ON"
+ "-DENABLE_HYPRE:BOOL=ON"
+ (string-append "-DHYPRE_INCLUDE_DIR="
+ (assoc-ref %build-inputs "hypre-openmpi")
"/include")
- (string-append "-DPETSC_LIBRARY_DIR="
- (assoc-ref %build-inputs "petsc")
+ (string-append "-DHYPRE_LIBRARY_DIR="
+ (assoc-ref %build-inputs "hypre-openmpi")
"/lib")
+ "-DENABLE_PETSC:BOOL=ON"
+ (string-append "-DPETSC_DIR="
+ (assoc-ref %build-inputs "petsc-openmpi"))
,flags))
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(add-before 'check 'mpi-setup
- ,%openmpi-setup)))))
- (synopsis "SUNDIALS with OpenMPI support")))
+ ,%openmpi-setup)))))
+ (synopsis "SUNDIALS with MPI support")))
+
+(define-public sundials-5
+ (package
+ (inherit sundials)
+ (name "sundials")
+ (version "5.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/LLNL/sundials/releases/download/v"
+ version "/sundials-" version ".tar.gz"))
+ (sha256
+ (base32
+ "04x2x0jchf9kbcw2a1c6f4h4as8sr6k2snfz8z9k897pa4rl1vfl"))))))
+
+(define-public sundials-openmpi-5
+ (package/inherit sundials-5
+ (name "sundials-openmpi")
+ (propagated-inputs
+ (package-propagated-inputs sundials-openmpi))
+ (arguments
+ (package-arguments sundials-openmpi))
+ (synopsis (package-synopsis sundials-openmpi))))
(define-public sundials-julia
(package
"0nx4sqhmi126m14myzm7syv2053harav9snl0a247wnkcgs5rxrv"))))
(inputs
(modify-inputs (package-inputs sundials)
- (prepend lapack)))
+ (prepend gfortran lapack)))
(arguments
- (substitute-keyword-arguments (package-arguments sundials)
- ((#:configure-flags flags '())
- `(cons* "-DLAPACK_ENABLE:BOOL=ON"
- ,flags))))
- (synopsis "SUNDIALS with lapack support as required by julia-sundials-jll")))
+ '(#:configure-flags `("-DCMAKE_C_FLAGS=-O2 -g -fcommon"
+ "-DSUNDIALS_INDEX_SIZE=32"
+ "-DKLU_ENABLE:BOOL=ON"
+ ,(string-append "-DKLU_INCLUDE_DIR="
+ (assoc-ref %build-inputs "suitesparse")
+ "/include")
+ ,(string-append "-DKLU_LIBRARY_DIR="
+ (assoc-ref %build-inputs "suitesparse")
+ "/lib")
+ "-DLAPACK_ENABLE:BOOL=ON")))
+ (synopsis "SUNDIALS with LAPACK support as required by julia-sundials-jll")))
(define-public combinatorial-blas
(package
(define-public dune-typetree
(package
(name "dune-typetree")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1rhv25yg0q1hw50c8wlfqhgwrjl4mh62zq9v14ilwgzbfgxmpiy7"))))
+ "1kx9k8i7pdw6l6ny6nq85v5p1nd6yxldzaj8k3nizaz3q1j407pv"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'build 'build-tests
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "build_tests" make-flags))))))
+ (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+ (apply invoke "make" "build_tests"
+ `(,@(if parallel-build?
+ `("-j" ,(number->string (parallel-job-count)))
+ '())
+ ,@make-flags)))))))
(inputs
(list dune-common
;; Optional
(define-public dune-functions
(package
(name "dune-functions")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1na4gcih0kin37ksj2xj07ds04v7zx53pjdhm1hzy55jjfqdjk8h"))))
+ "04dhr4asnl38bf1gp8hrk31maav33m7q71lhl2n5yk1q1x6i77nw"))))
(build-system cmake-build-system)
(arguments
`(#:phases
"--exclude-regex gridviewfunctionspacebasistest")
#t))
(add-after 'build 'build-tests
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "build_tests" make-flags))))))
+ (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+ (apply invoke "make" "build_tests"
+ `(,@(if parallel-build?
+ `("-j" ,(number->string (parallel-job-count)))
+ '())
+ ,@make-flags)))))))
(inputs
(list dune-common
dune-istl
(license (list license:lgpl3+ license:gpl2))))
(define-public dune-pdelab
- (package
- (name "dune-pdelab")
- (version "2.7.0-git-476fe437")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.dune-project.org/pdelab/dune-pdelab")
- (commit "476fe43763fa6f459c5e4658e2a2b4b5582db834")))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0cs36piqzn6rq0j2ih3ab3q3q9yg199wk72k5qi86pkzh7i7fdn1"))))
- (build-system cmake-build-system)
- (arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled
- (inputs
- (list dune-common
- dune-istl
- dune-localfunctions
- dune-geometry
- dune-grid
- dune-typetree
- dune-functions
- ;; Optional
- openblas
- eigen
- metis
- python
- superlu
- gmp))
- (native-inputs
- (list gfortran pkg-config))
- (home-page "https://dune-project.org/")
- (synopsis "Differential equations solver toolbox")
- (description "PDELab is a partial differential equations solver toolbox
+ ;; This was the last commit on the releases/2.7 branch as of 2021-12-17,
+ ;; unfortunately there was no tag for any 2.7 release.
+ (let ((commit "09aef74d95661d18a7789d2f517ae77797eec738"))
+ (package
+ (name "dune-pdelab")
+ (version (git-version "2.7.1" "0" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.dune-project.org/pdelab/dune-pdelab")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0nv69ayr4gln9m1s94z9zkrxqi8nzar3z6awnvgqz595nmjf82ac"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled
+ (inputs
+ (list dune-common
+ dune-istl
+ dune-localfunctions
+ dune-geometry
+ dune-grid
+ dune-typetree
+ dune-functions
+ ;; Optional
+ openblas
+ eigen
+ metis
+ python
+ superlu
+ gmp))
+ (native-inputs
+ (list gfortran pkg-config))
+ (home-page "https://dune-project.org/")
+ (synopsis "Differential equations solver toolbox")
+ (description "PDELab is a partial differential equations solver toolbox
built on top of DUNE, the Distributed and Unified Numerics Environment.")
- ;; Either GPL version 2 with "runtime exception" or LGPLv3+.
- (license (list license:lgpl3+ license:gpl2))))
+ ;; Either GPL version 2 with "runtime exception" or LGPLv3+.
+ (license (list license:lgpl3+ license:gpl2)))))
(define add-openmpi-to-dune-package
(let ((dune-package?
(define-public nauty
(package
(name "nauty")
- (version "2.7r3")
+ (version "2.7r4")
(source
(origin
(method url-fetch)
"https://pallini.di.uniroma1.it/"
"nauty" (string-join (string-split version #\.) "") ".tar.gz"))
(sha256
- (base32 "1hl81gpf3xjf809w04jczvilq1ixy9ch1qrax8a7lgx52svna1jg"))))
+ (base32 "19j8i10cgnqavphj0p7kq939azxckj9ayjpjr6sg76g2dxdch45q"))))
(build-system gnu-build-system)
(outputs '("out" "lib"))
(arguments
- `(#:test-target "checks"
- #:configure-flags '("--enable-generic") ;prevent -march-native
- #:phases
- (modify-phases %standard-phases
- ;; Default make target does not build all available
- ;; executables. Create them now.
- (add-after 'build 'build-extra-programs
- (lambda _
- (for-each (lambda (target) (invoke "make" target))
- '("blisstog" "bliss2dre" "checks6" "sumlines"))
- #t))
- ;; Upstream does not provide any install target.
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib-output (assoc-ref outputs "lib"))
- (bin (string-append out "/bin"))
- (doc (string-append out "/share/doc/nauty/"))
- (include (string-append lib-output "/include/nauty"))
- (lib (string-append lib-output "/lib/nauty")))
- (for-each (lambda (f) (install-file f bin))
- '("addedgeg" "amtog" "assembleg" "biplabg" "blisstog"
- "bliss2dre" "catg" "checks6" "complg" "converseg"
- "copyg" "countg" "cubhamg" "deledgeg" "delptg"
- "directg" "dreadnaut" "dretodot" "dretog" "genbg"
- "genbgL" "geng" "genquarticg" "genrang" "genspecialg"
- "gentourng" "gentreeg" "hamheuristic" "labelg"
- "linegraphg" "listg" "multig" "newedgeg" "pickg"
- "planarg" "ranlabg" "shortg" "showg" "subdivideg"
- "sumlines" "twohamg" "underlyingg" "vcolg"
- "watercluster2" "NRswitchg"))
- (for-each (lambda (f) (install-file f include))
- (find-files "." "\\.h$"))
- (for-each (lambda (f) (install-file f lib))
- (find-files "." "\\.a$"))
- (for-each (lambda (f) (install-file f doc))
- (append '("formats.txt" "README" "schreier.txt")
- (find-files "." "\\.pdf$")))))))))
+ (list
+ #:test-target "checks"
+ #:configure-flags #~(list "--enable-generic") ;prevent -march-native
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Default make target does not build all available
+ ;; executables. Create them now.
+ (add-after 'build 'build-extra-programs
+ (lambda _
+ (for-each (lambda (target) (invoke "make" target))
+ '("blisstog" "bliss2dre" "checks6" "sumlines"))))
+ ;; Upstream does not provide any install target.
+ (replace 'install
+ (lambda _
+ (let* ((bin (string-append #$output "/bin"))
+ (doc (string-append #$output "/share/doc/nauty/"))
+ (include (string-append #$output:lib "/include/nauty"))
+ (lib (string-append #$output:lib "/lib/nauty")))
+ (for-each (lambda (f) (install-file f bin))
+ '("addedgeg" "amtog" "assembleg" "biplabg" "blisstog"
+ "bliss2dre" "catg" "checks6" "complg" "converseg"
+ "copyg" "countg" "cubhamg" "deledgeg" "delptg"
+ "directg" "dreadnaut" "dretodot" "dretog" "genbg"
+ "genbgL" "geng" "genquarticg" "genrang" "genspecialg"
+ "gentourng" "gentreeg" "hamheuristic" "labelg"
+ "linegraphg" "listg" "multig" "newedgeg" "pickg"
+ "planarg" "ranlabg" "shortg" "showg" "subdivideg"
+ "sumlines" "twohamg" "underlyingg" "vcolg"
+ "watercluster2" "NRswitchg"))
+ (for-each (lambda (f) (install-file f include))
+ (find-files "." "\\.h$"))
+ (for-each (lambda (f) (install-file f lib))
+ (find-files "." "\\.a$"))
+ (for-each (lambda (f) (install-file f doc))
+ (append '("formats.txt" "README" "schreier.txt")
+ (find-files "." "\\.pdf$")))))))))
(inputs
- (list 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
"0vh7cd1915bjqzkdp3sk25ngy8cq624mkh8c53c5bnzk357kb0fk"))))
(build-system cmake-build-system)
(inputs (list qtbase-5))
- (native-inputs (list qttools))
+ (native-inputs (list qttools-5))
(arguments
`(#:phases
(modify-phases %standard-phases
curl
icu4c
gnuplot
- readline
- libiconv))
+ readline))
(arguments
`(#:phases
(modify-phases %standard-phases
(define-public why3
(package
(name "why3")
- (version "1.4.0")
+ (version "1.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0pfsiddnk26f384wbazfpgzh1n1ibf3xq101q74mxvczi7z0a791"))))
+ "1yca6mx8bjm8x0i594ivh31aw45s6fbimmwfj8g2v9zwrgmr1i4s"))))
(build-system ocaml-build-system)
(native-inputs
(list autoconf automake coq ocaml which))
ocaml-graph
ocaml-yojson
ocaml-zarith
+ lablgtk3
why3))
(native-search-paths
(list (search-path-specification