;;; 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 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2018, 2020, 2021 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.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 © 2020, 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2020–2022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system ocaml)
+ #:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system ruby)
#:use-module (gnu packages algebra)
#:use-module (gnu packages coq)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages datamash)
#:use-module (gnu packages dbm)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
(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")
(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
"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.
(arguments
'(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python"
"LIBS= -lz -lpcre -lexpat")))
- (synopsis "A common interface to various earth observation data formats")
+ (synopsis "Common interface to various earth observation data formats")
(description
"The Common Data Access toolbox (CODA) provides a set of interfaces for
reading remote sensing data from earth observation data files. It consists of
(define-public python-cvxopt
(package
(name "python-cvxopt")
- (version "1.2.3")
+ (version "1.2.7")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1kiy2m62xgs2d5id6dnnwy4vap85cd70p7pgkb9nh23qf9xnak7b"))))
+ "114z34wwx1bsv4q6xj9p5q99dffgnj9s4i4arx10g191xq9q8i5y"))))
(build-system python-build-system)
(arguments
`(#:phases
(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
programming language.")
(license license:gpl3+)))
-(define-public python2-cvxopt
- (package-with-python2 python-cvxopt))
-
(define-public units
(package
(name "units")
(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
functions in total. Subject areas covered by the library include:
differential equations, linear algebra, Fast Fourier Transforms and random
numbers.")
+
+ ;; Linear algebra routines should benefit from SIMD optimizations.
+ (properties `((tunable? . #t)))
+
(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")
(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
"05bgxidxj8d9xdp82niy7cy36w181cxq7p8vc3y2ixshpgp1642a"))))
(build-system gnu-build-system)
(inputs
- `(("gmp" ,gmp)))
+ (list gmp))
(arguments
`(#:configure-flags '("--with-gmp"
"--disable-static")))
(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
"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
"05kq3hzam31dlmkccv3v358r478kpvx76mw37ka12c6ypwv5dsnk"))))
(build-system gnu-build-system)
(inputs
- `(("gmp" ,gmp)))
+ (list gmp))
(arguments
`(#:tests? #f ; no check phase
#:make-flags `("CC=gcc"
(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
"1aq0qc1y27iw9grhgnyji3290wwfznsrk3sg6ynqpxwjdda53h4m"))))
(build-system gnu-build-system)
(inputs
- `(("lrslib" ,lrslib)))
+ (list lrslib))
(arguments
`(#:tests? #f ; no check phase
#:phases
"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
"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.
(license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))))
+(define-public feedgnuplot
+ (package
+ (name "feedgnuplot")
+ (version "1.60")
+ (home-page "https://github.com/dkogan/feedgnuplot")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0403hwlian2s431m36qdzcczhvfjvh7128m64hmmwbbrgh0n7md7"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'adjust-tests
+ (lambda _
+ (substitute* "t/plots.t"
+ ;; XXX: The vnlog tests uses 'echo' with escaped strings,
+ ;; but does not enable escape interpretation.
+ (("echo -n ")
+ "echo -ne "))))
+ (add-after 'install 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/feedgnuplot")))
+ (mkdir-p doc)
+ (invoke "pod2html" "--title=feedgnuplot" "bin/feedgnuplot"
+ "--outfile" (string-append doc "/feedgnuplot.html")))))
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (gnuplot (search-input-file inputs "/bin/gnuplot"))
+ ;; XXX: We need List::MoreUtils as well as its supporting
+ ;; (propagated) modules; for now just refer to labels.
+ (modules '("perl-list-moreutils" "perl-exporter-tiny"))
+ (PERL5LIB (string-join
+ (map (lambda (input)
+ (string-append (assoc-ref inputs input)
+ "/lib/perl5/site_perl"))
+ modules)
+ ":")))
+ (wrap-program (string-append out "/bin/feedgnuplot")
+ `("PERL5LIB" ":" suffix (,PERL5LIB))
+ `("PATH" ":" suffix (,(dirname gnuplot))))))))))
+ (inputs
+ (list gnuplot perl-list-moreutils vnlog))
+ (native-inputs
+ ;; For tests.
+ (list perl-ipc-run perl-string-shellquote))
+ (synopsis "Pipe-oriented plotting tool")
+ (description
+ "@command{feedgnuplot} is a tool to plot realtime and stored data
+from the command line, using @command{gnuplot}. It can read data from
+a pipe or file, make a variety of transformations, and render the result
+in the terminal or with an external viewer.")
+ (license license:gpl1+))) ;any version
+
(define-public gnuplot
(package
(name "gnuplot")
(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)))
(sha256
(base32 "11wqmd443b4nksdbzp1msdws3av948nmwq1xz80w6hka3ss2aigd"))))
(native-inputs
- `(("fortran" ,gfortran)))
+ (list gfortran))
(build-system gnu-build-system)
(synopsis "General Cartographic Transformation Package (GCTP)")
(description
"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)
(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
"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.
"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")
(("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
(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
"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
(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)
"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))
(("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
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
'(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
#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
(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
(string-append static "/include"))
#t))))))
(inputs
- `(("gfortran" ,gfortran)))
+ (list gfortran))
(native-inputs
`(("lapack" ,lapack)
("openblas" ,openblas)
(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
"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/")
(define-public ceres
(package
(name "ceres-solver")
- (version "1.14.0")
+ (version "2.0.0")
(home-page "http://ceres-solver.org/")
(source (origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "13lfxy8x58w8vprr0nkbzziaijlh0vvqshgahvcgw0mrqdgh0i27"))))
+ "00vng9vnmdb1qga01m0why90m0041w7bn6kxa2h4m26aflfqla8h"))))
(build-system cmake-build-system)
(arguments
;; TODO: Build HTML user documentation and install separately.
(add-before 'configure 'set-library-directory
(lambda _
;; Install libraries to lib/, not lib64/.
- (substitute* "internal/ceres/CMakeLists.txt"
+ (substitute* "CMakeLists.txt"
(("set\\(LIB_SUFFIX \"64\"\\)")
- "set(LIB_SUFFIX \"\")"))
- #t)))))
+ "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)
- ("lapack" ,lapack)
- ("suitesparse" ,suitesparse)
- ("gflags" ,gflags)))
+ (list eigen
+ openblas
+ lapack
+ suitesparse
+ gflags))
(synopsis "C++ library for solving large optimization problems")
(description
"Ceres Solver is a C++ library for modeling and solving large,
@item non-linear least squares problems with bounds constraints;
@item general unconstrained optimization problems.
@end enumerate\n")
- (license license:bsd-3)))
+ (license license:bsd-3)
+
+ ;; Mark as tunable to take advantage of SIMD code in Eigen.
+ (properties `((tunable? . #t)))))
+
+(define-public ceres-solver-benchmarks
+ (package
+ (inherit ceres)
+ (name "ceres-solver-benchmarks")
+ (arguments
+ '(#:modules ((ice-9 popen)
+ (ice-9 rdelim)
+ (guix build utils)
+ (guix build cmake-build-system))
+
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (define flags
+ (string-tokenize
+ (read-line (open-pipe* OPEN_READ
+ "pkg-config" "eigen3"
+ "--cflags"))))
+
+ (define (compile-file top-dir)
+ (lambda (file)
+ (let ((source (string-append file ".cc")))
+ (format #t "building '~a'...~%" file)
+ (apply invoke "c++" "-fopenmp" "-O2" "-g" "-DNDEBUG"
+ source "-lceres" "-lbenchmark" "-lglog"
+ "-pthread"
+ "-o" (string-append bin "/" file)
+ "-I" top-dir flags))))
+
+ (mkdir-p bin)
+ (with-directory-excursion "internal/ceres"
+ (for-each (compile-file "..")
+ '("schur_eliminator_benchmark"
+ "small_blas_gemm_benchmark"
+ "small_blas_gemv_benchmark"))
+ (with-directory-excursion "autodiff_benchmarks"
+ ((compile-file "../..") "autodiff_benchmarks"))))))
+ (delete 'check)
+ (delete 'install))))
+ (inputs (modify-inputs (package-inputs ceres)
+ (prepend googlebenchmark ceres)))
+ (synopsis "Benchmarks of the Ceres optimization problem solver")))
;; For a fully featured Octave, users are strongly recommended also to install
;; the following packages: less, ghostscript, gnuplot.
("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.
(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")
(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
- `(("doxygen" ,doxygen)
- ;("freeimage" ,freeimage)
- ("freetype" ,freetype)
- ("glu" ,glu)
- ("libxext" ,libxext)
- ("libxi" ,libxi)
- ("libxmu" ,libxmu)
- ("mesa" ,mesa)
- ("tbb" ,tbb-2020)
- ("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")
#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)
,(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
"examples")) ; ~30MiB of examples
(build-system gnu-build-system)
(native-inputs
- `(("python" ,python)
- ("which" ,which)))
+ (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
(list
#:test-target "test"
(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)
(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
(add-before 'check 'mpi-setup
,%openmpi-setup))))
(native-inputs
- `(("python-cython" ,python-cython)))
+ (list python-cython))
(inputs
`(("petsc" ,petsc-openmpi)
("python-numpy" ,python-numpy)))
`(("arpack" ,arpack-ng)
("gfortran" ,gfortran)))
(propagated-inputs
- `(("petsc" ,petsc)))
+ (list petsc))
(arguments
`(#:parallel-build? #f ;build is parallel by default
#:configure-flags
,%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)")))
(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
(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
(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
"mumps-shared-pord.patch"))))
(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)
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)
LORDERINGS = $(LPORD) $(LMETIS) $(LSCOTCH) $(LIBSEQ)
IORDERINGSF = $(ISCOTCH)
IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)"
- (assoc-ref inputs "mpi")
- (assoc-ref inputs "blas")
+ (->bool (which "mpicc")) ;MPI support enabled?
+ (dirname
+ (dirname (search-input-file inputs "/include/cblas.h")))
(assoc-ref inputs "scalapack")
(assoc-ref inputs "metis")
(match (list (assoc-ref inputs "pt-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"
(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
"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
(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
#t)))))))
(build-system cmake-build-system)
(native-inputs
- `(("tcsh" ,tcsh)))
+ (list tcsh))
(inputs
`(("blas" ,openblas)
("gfortran" ,gfortran)))
"superlu-dist-awpm-grid.patch"))))
(build-system cmake-build-system)
(native-inputs
- `(("tcsh" ,tcsh)))
+ (list tcsh))
(inputs
`(("gfortran" ,gfortran)
("blas" ,openblas)
(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
- `(("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))
+ `(#:configure-flags '("-DBUILD_SHARED_LIBS=YES"
+ "-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"
+ "-DCMAKE_C_FLAGS=-DINTSIZE32=1"))))
(synopsis
"Programs and libraries for graph algorithms (32-bit integers)")))
-(define-public scotch-shared
- (package (inherit scotch)
- (name "scotch-shared")
- (native-inputs
- `(("gcc" ,gcc)
- ("flex" ,flex)
- ("bison" ,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
- `(("openmpi" ,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"))
+ ((#: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
- `(("openmpi" ,openmpi))) ;headers include MPI headers
+ (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"
+ "-DCMAKE_C_FLAGS=-DINTSIZE32=1"))))
(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
- `(("openmpi" ,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
`(#: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
("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-sbcl"
(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
;; Failed to detect CPU.
((string-prefix? "armhf" system)
'("TARGET=ARMV7"))
+ ((string-prefix? "riscv64" system)
+ '("TARGET=RISCV64_GENERIC"))
(else '()))))
;; no configure script
#:phases
"05ifil6jj9424sr8kmircl8k4bmxnl3y12a79vwj1kxxva5gz50g"))
(file-name (git-file-name "blis" version))))
(native-inputs
- `(("python" ,python)
- ("perl" ,perl)))
+ (list python perl))
(build-system gnu-build-system)
(arguments
`(#:modules
(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)))
(define-public cglm
(package
(name "cglm")
- (version "0.8.2")
+ (version "0.8.4")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1lcfl9ph4bnl3hckpx4hzwh8r4llnw94ik75igc5qy38wk468gmk"))))
- (build-system cmake-build-system)
+ (base32 "0zgckh56vcdar3a4n51r84wrizyd2ssqal4nsvxd4qdjm0rvb4h0"))))
+ (build-system meson-build-system)
(arguments
- `(#:configure-flags
- (list "-DCGLM_USE_TEST=ON")))
+ `(#:configure-flags '("-Dbuild_tests=true")))
(home-page "https://github.com/recp/cglm")
(synopsis "Mathematics C library for graphics programming")
(description
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
(define-public dealii
(package
(name "dealii")
- (version "9.3.1")
+ (version "9.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/dealii/dealii/releases/"
"download/v" version "/dealii-" version ".tar.gz"))
(sha256
- (base32 "1f0sqvlxvl0myqcn0q6xrn1vnp5pgx143lai4a4jkh1dmdv4cbx6"))
+ (base32 "1s0kawnljg24jj6nibwrif5gxdgg2daqfylhqqpl1lvmzmmxfhak"))
+ (patches (search-patches "dealii-fix-compiliation-with-boost-1.78.patch"
+ "dealii-fix-sundials.patch"))
(modules '((guix build utils)))
(snippet
'(begin
(outputs '("out" "doc"))
(native-inputs
;; Required to build the documentation.
- `(("dot" ,graphviz)
- ("doxygen" ,doxygen)
- ("perl" ,perl)))
+ (list graphviz doxygen perl))
(inputs
- `(("arpack" ,arpack-ng)
- ("blas" ,openblas)
- ("gfortran" ,gfortran)
- ("lapack" ,lapack)
- ("muparser" ,muparser)
- ("zlib" ,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.
- `(("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
(build-system cmake-build-system)
(outputs '("out"))
(native-inputs
- `(("unzip" ,unzip)))
+ (list unzip))
(inputs
`(("hdf5" ,hdf5)
;; FIXME: 'mkoctfile' fails with a linker error:
"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
(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
("texlive" ,(texlive-updmap.cfg (list texlive-adjustbox
texlive-amsfonts
texlive-bibtex
+ texlive-capt-of
texlive-caption
texlive-cm
texlive-etoolbox
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-tocloft
texlive-latex-upquote
texlive-latex-varwidth
+ texlive-ulem
texlive-wasysym
texlive-latex-wrapfig)))))
(inputs
"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
"1rllzcfwc042c336mhq262a8ha90x6afq30kvk60r7i4761j4yjm"))))
(build-system gnu-build-system)
(inputs
- `(("openlibm" ,openlibm)))
+ (list openlibm))
(arguments
`(#:tests? #f ; no tests
#:phases
(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 `(("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
("ocaml" ,ocaml)
("ocaml-findlib" ,ocaml-findlib)))
(propagated-inputs
- `(("ocaml-zarith" ,ocaml-zarith)))
+ (list ocaml-zarith))
(inputs
- `(("z3" ,z3)))))
+ (list z3))))
(define-public elpa
(package
(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")
(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
(inherit mcrl2)
(name "mcrl2-minimal")
(inputs
- `(("boost" ,boost)))
+ (list boost))
(arguments
'(#:configure-flags '("-DMCRL2_ENABLE_GUI_TOOLS=OFF")))))
("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"
(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
(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 '())
(define-public dune-common
(package
(name "dune-common")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
version "/dune-common-" version ".tar.gz"))
(sha256
(base32
- "140q1zh44cr5yrjwg4b5ga803rkqv55vk30l2cqm29aklj1wb0rw"))))
+ "0sidwdkyrrqjkqhpvrlc991pzi5xzlvxk91s2n7qk3widwy7fch2"))))
(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
- `(("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
(define-public dune-geometry
(package
(name "dune-geometry")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
version "/dune-geometry-" version ".tar.gz"))
(sha256
(base32
- "1cicvlwbyyw76npicnblxckyvhbfn3ip8isydiv3hlrlz8zcg5nr"))))
+ "068mh3fd110xl27rwxqlqy4d9cpqw2vqm2pzfrripiaqscb3byfy"))))
(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
- `(("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
(define-public dune-uggrid
(package
(name "dune-uggrid")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "192miqgmfj6jwk969gydzpbv9ki7jg5nky3ydnrwa2nq29b5xkh0"))))
+ "11qz52g9d5k96fqik2lyi80xryw174rnny074pj70ardl6zzz83p"))))
(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
- `(("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
(define-public dune-grid
(package
(name "dune-grid")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
version "/dune-grid-" version ".tar.gz"))
(sha256
(base32
- "17fjz30qazjgl11sryyxnw9klai4yz1ji4bs68013xcxc5hdv27s"))))
+ "15iws03hkbmr4a4rqqb0rriz1m8szl96wdr7gw0jmrcnlzbdbbx5"))))
(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
- `(("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
(define-public dune-istl
(package
(name "dune-istl")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
version "/dune-istl-" version ".tar.gz"))
(sha256
(base32
- "0gl3wgz5rs6sb4m83440ny45sbx7z7lnbi3gx6r9nm3rvy5j33f9"))
- (patches (search-patches "dune-istl-2.7-fix-non-mpi-tests.patch"))))
+ "1cy69s1266hvnh8blznlvvkrf8i2g640rc3mf7kp872wgvdz4nb9"))))
(build-system cmake-build-system)
(arguments
`(#:phases
":"))
#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
- `(("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
(define-public dune-localfunctions
(package
(name "dune-localfunctions")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
version "/dune-localfunctions-" version ".tar.gz"))
(sha256
(base32
- "1yih59h6vngii696bx1c2vil02lriij4kz0nc583mjn9kiaqxfqd"))))
+ "031i42anrhi0ngpvp42rdjbkic7v3008fwild9xg7flffwvnpshg"))))
(build-system cmake-build-system)
(arguments
`(#:phases
":"))
#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
- `(("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
(license license:gpl2)))
(define-public dune-alugrid
- (package
- (name "dune-alugrid")
- (version "2.7.0-git-81d35682")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.dune-project.org/extensions/dune-alugrid.git")
- (commit "81d356827c84454b971937db02c02b90bbcd7fe5")))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0z54lwfp53prcrs94k8gwh047l9z642jll3l56xlyfr69z0b2zz1"))))
- (build-system cmake-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-include
- (lambda _
- (substitute* "dune/alugrid/test/test-alugrid.cc"
- (("doc/grids/gridfactory/testgrids")
- "doc/dune-grid/grids/gridfactory/testgrids"))
- #t))
- (add-after 'build 'build-tests
- (lambda* (#:key inputs make-flags #:allow-other-keys)
- (setenv "CPLUS_INCLUDE_PATH"
- (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)))
- (native-inputs
- `(("gfortran" ,gfortran)
- ("pkg-config" ,pkg-config)))
- (home-page "https://dune-project.org/")
- (synopsis "Distributed and Unified Numerics Environment")
- (description "ALUGrid is an adaptive, loadbalancing, unstructured
+ ;; 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 "51bde29a2dfa7cfac4fb73d40ffd42b9c1eb1d3d"))
+ (package
+ (name "dune-alugrid")
+ (version (git-version "2.7.1" "0" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.dune-project.org/extensions/dune-alugrid.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0z16wg6llzxs7vjg2yilg31vwnkz8k050j6bspg3blbym0razy15"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-include
+ (lambda _
+ (substitute* "dune/alugrid/test/test-alugrid.cc"
+ (("doc/grids/gridfactory/testgrids")
+ "doc/dune-grid/grids/gridfactory/testgrids"))
+ #t))
+ (add-after 'build 'build-tests
+ (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append (assoc-ref inputs "dune-grid") "/share"))
+ (apply invoke "make" "build_tests"
+ `(,@(if parallel-build?
+ `("-j" ,(number->string (parallel-job-count)))
+ '())
+ ,@make-flags)))))))
+ (inputs
+ (list dune-common
+ dune-geometry
+ dune-grid
+ ;; Optional
+ metis
+ openblas
+ python
+ superlu
+ gmp
+ zlib))
+ (native-inputs
+ (list gfortran pkg-config))
+ (home-page "https://dune-project.org/")
+ (synopsis "Distributed and Unified Numerics Environment")
+ (description "ALUGrid is an adaptive, loadbalancing, unstructured
implementation of the DUNE grid interface supporting either simplices or
cubes.")
- (license license:gpl2+)))
+ (license license:gpl2+))))
(define-public dune-subgrid
- (package
- (name "dune-subgrid")
- (version "2.7.0-git-2103a363")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.imp.fu-berlin.de/agnumpde/dune-subgrid")
- (commit "2103a363f32e8d7b60e66eee7ddecf969f6cf762")))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1wsjlypd3835c3arqjkw836cxx5q67zy447wa65q634lf6f6v9ia"))))
- (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))))))
- (inputs
- `(("dune-common" ,dune-common)
- ("dune-geometry" ,dune-geometry)
- ("dune-grid" ,dune-grid)
- ;; Optional
- ("metis" ,metis)
- ("openblas" ,openblas)
- ("gmp" ,gmp)))
- (native-inputs
- `(("gfortran" ,gfortran)
- ("pkg-config" ,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
+ ;; This was the last commit on the releases/2.7 branch as of 2021-12-17.
+ ;; Unfortunately the dune-subgrid repository contains no release tags.
+ (let ((commit "45d1ee9f3f711e209695deee97912f4954f7f280"))
+ (package
+ (name "dune-subgrid")
+ (version (git-version "2.7.1" "0" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.imp.fu-berlin.de/agnumpde/dune-subgrid")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xjf7865wil7kzym608kv3nc3ff3m3nlqich4k9wjyvy3lz6panh"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'build-tests
+ (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-geometry
+ dune-grid
+ ;; Optional
+ metis
+ openblas
+ gmp))
+ (native-inputs
+ (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
another hierarchical dune grid. The set of marked elements can then be
accessed as a hierarchical dune grid in its own right. Dune-Subgrid
provides the full grid interface including adaptive mesh refinement.")
- (license license:gpl2+)))
+ (license license:gpl2+))))
(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
- `(("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
(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
- `(("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
(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
- `(("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)))
- (native-inputs
- `(("gfortran" ,gfortran)
- ("pkg-config" ,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?
(if (dune-package? p)
(package (inherit p)
(name (string-append (package-name p) "-openmpi"))
- (inputs `(,@(package-inputs p)
- ("openmpi" ,openmpi)))
+ (inputs (modify-inputs (package-inputs p)
+ (append openmpi)))
(arguments
(substitute-keyword-arguments (package-arguments p)
((#:phases phases '%standard-phases)
(base32 "0h4xj6pyyac79ka5ibqjilfa3s9j3yxnzgpwc57b54kfh2bj3447"))))
(build-system gnu-build-system)
(inputs
- `(("python2" ,python-2)))
+ (list python-2))
(arguments
`(#:tests? #f ; no tests
#:phases
(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
"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")
(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
("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))
(arguments
`(#:phases
(modify-phases %standard-phases
(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
"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
(define-public frama-c
(package
(name "frama-c")
- (version "23.1")
+ (version "24.0")
(source (origin
(method url-fetch)
(uri (string-append "http://frama-c.com/download/frama-c-"
- version "-Vanadium.tar.gz"))
+ version "-Chromium.tar.gz"))
(sha256
(base32
- "1rgkq9sg436smw005ag0j6y3xryhjn18a07m5wjfrfp0s1438nnj"))))
+ "0x1xgip50jdz1phsb9rzwf2ra8lshn1hmd9g967xia402wrg3sjf"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f; no test target in Makefile
(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")
(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.")
(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
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