;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2018, 2020 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 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 Paul Garlick <pgarlick@tourbillion-technology.com>
-;;; Copyright © 2017 ng0 <ng0@n0.is>
+;;; 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, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Dave Love <me@fx@gnu.org>
-;;; Copyright © 2018, 2019 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2018, 2019, 2020 Jan 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 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 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>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix utils)
#:use-module ((guix build utils) #:select (alist-replace))
#: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 python)
#:use-module (guix build-system ruby)
#:use-module (gnu packages dbm)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages file)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages less)
#:use-module (gnu packages version-control)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
- #:use-module (srfi srfi-1))
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26))
(define-public aris
(package
(define-public qhull
(package
(name "qhull")
- (version "2015.2")
+ (version "2019.1")
(source (origin
(method url-fetch)
(uri (string-append "http://www.qhull.org/download/qhull-"
(car (string-split version #\.))
- "-src-7.2.0.tgz"))
+ "-src-7.3.2.tgz"))
(sha256
(base32
- "0dm4b2xr3asy6w74khq2zg4gf26zsy3qf9sq7pf7lmrvbj911c3q"))))
+ "1ys3vh3qq0v9lh452xb932vp63advds1pxk42lk7cc1niiar0y9b"))))
(build-system cmake-build-system)
(synopsis "Calculate convex hulls and related structures")
(description
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cvxopt/cvxopt.git")
+ (url "https://github.com/cvxopt/cvxopt")
(commit version)))
(file-name (git-file-name name version))
(sha256
(license license:gpl3+)
(home-page "https://www.gnu.org/software/dionysus/")))
+(define-public dsfmt
+ (package
+ (name "dsfmt")
+ (version "2.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/"
+ "dSFMT-src-" version ".tar.gz"))
+ (sha256
+ (base32
+ "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42"))
+ (modules '((guix build utils)))
+ ;; Don't distribute html documentation with bundled jquery.
+ (snippet
+ '(begin
+ (delete-file-recursively "html") #t))
+ ;; Add patches borrowed from Julia.
+ (patches
+ (list
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://raw.githubusercontent.com/JuliaLang/julia/"
+ "v1.3.0/deps/patches/dSFMT.c.patch"))
+ (sha256 (base32
+ "09mhv11bms8jsmkmdqvlcgljwhzw3b6n9nncpi2b6dla9798hw2y"))
+ (file-name "dSFMT.c.patch"))
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://raw.githubusercontent.com/JuliaLang/julia/"
+ "v1.3.0/deps/patches/dSFMT.h.patch"))
+ (sha256 (base32
+ "1py5rd0yxic335lzka23f6x2dhncrpizpyrk57gi2f28c0p98y5n"))
+ (file-name "dSFMT.h.patch"))))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'build
+ ;; Upstream Makefile does not build a shared library. Borrow from Julia
+ ;; https://github.com/JuliaLang/julia/blob/v1.3.0/deps/dsfmt.mk
+ (lambda _
+ (invoke
+ "gcc" "-DNDEBUG" "-DDSFMT_MEXP=19937"
+ "-fPIC" "-DDSFMT_DO_NOT_USE_OLD_NAMES"
+ "-O3" "-finline-functions" "-fomit-frame-pointer"
+ "-fno-strict-aliasing" "--param" "max-inline-insns-single=1800"
+ "-Wmissing-prototypes" "-Wall" "-std=c99" "-shared" "dSFMT.c"
+ "-o" "libdSFMT.so")))
+ (replace 'install ; no "install" target
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (inc (string-append out "/include"))
+ (doc (string-append out "/share/doc/" ,name "-" ,version)))
+ (install-file "libdSFMT.so" lib)
+ (install-file "dSFMT.h" inc)
+ (install-file "LICENSE.txt" doc)
+ #t))))))
+ (synopsis "Double precision SIMD-oriented Fast Mersenne Twister")
+ (description
+ "The dSMFT package speeds up Fast Mersenne Twister generation by avoiding
+the expensive conversion of integer to double (floating point). dSFMT directly
+generates double precision floating point pseudorandom numbers which have the
+IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985)
+format. dSFMT is only available on the CPUs which use IEEE 754 format double
+precision floating point numbers.")
+ (home-page "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/")
+ (license license:bsd-3)))
+
(define-public gsl
(package
(name "gsl")
"1a460zj9xmbgvcymkdhqh313c4l29mn9cffbi5vf33x3qygk70mp"))))
(build-system gnu-build-system)
(arguments
- `(;; Currently there are numerous tests that fail on "exotic"
- ;; architectures such as aarch64 and ppc64le.
- ,@(if (string-prefix? "aarch64-linux"
- (or (%current-target-system) (%current-system)))
- '(#:tests? #f)
- '())))
+ (let ((system (%current-system)))
+ (cond
+ ((or (string-prefix? "aarch64" system)
+ (string-prefix? "powerpc" system))
+ ;; Some sparse matrix tests are failing on AArch64 and PowerPC:
+ ;; https://lists.gnu.org/archive/html/bug-gsl/2020-04/msg00001.html
+ '(#:phases (modify-phases %standard-phases
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "spmatrix/test.c"
+ ((".*test_complex.*") "\n"))
+ #t)))))
+ ((string-prefix? "i686" system)
+ ;; There are rounding issues with these tests on i686:
+ ;; https://lists.gnu.org/archive/html/bug-gsl/2016-10/msg00000.html
+ ;; https://lists.gnu.org/archive/html/bug-gsl/2020-04/msg00000.html
+ '(#:phases (modify-phases %standard-phases
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "linalg/test.c"
+ ((".*gsl_test\\(test_LU_decomp.*") "\n")
+ ((".*gsl_test\\(test_LUc_decomp.*") "\n")
+ ((".*gsl_test\\(test_cholesky_decomp.*") "\n")
+ ((".*gsl_test\\(test_COD_lssolve2.*") "\n"))
+ (substitute* "spmatrix/test.c"
+ ((".*test_all.*") "\n")
+ ((".*test_float.*") "\n")
+ ((".*test_complex.*") "\n"))
+ #t)))))
+ (else '()))))
(home-page "https://www.gnu.org/software/gsl/")
(synopsis "Numerical library for C and C++")
(description
numbers.")
(license license:gpl3+)))
+(define-public sleef
+ (package
+ (name "sleef")
+ (version "3.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/shibatch/sleef")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1gvf7cfvszmgjrsqivwmyy1jnp3hy80dmszxx827lhjz8yqq5019"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags (list "-DCMAKE_BUILD_TYPE=Release"
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out")
+ "/lib")
+ (string-append "-DCMAKE_INSTALL_PREFIX="
+ (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ ;; SLEEF generates a header library during the build process and writes
+ ;; to it via shell redirection. Make the checkout writable so the
+ ;; build can succeed.
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))
+ #t)))))
+ (inputs
+ `(("fftw" ,fftw)
+ ("gmp" ,gmp)
+ ("mpfr" ,mpfr)
+ ("openssl" ,openssl)))
+ (home-page "https://sleef.org/")
+ (synopsis "SIMD library for evaluating elementary functions and DFT")
+ (description
+ "SLEEF (SIMD Library for Evaluating Elementary Functions) is a library that
+implements vectorized versions of all C99 real floating point math functions.
+It can utilize SIMD instructions that are available on modern processors.")
+ (license (list license:boost1.0 ;sleef
+ license:cc-by4.0)))) ;simplex algorithm
+
(define-public glpk
(package
(name "glpk")
(define-public lrslib
(package
(name "lrslib")
- (version "7.0a")
+ (version "7.1")
(source
(origin
(method url-fetch)
(string-delete #\. version) ".tar.gz"))
(sha256
(base32
- "034fa45r9hwx6ljmgpxk2872q34nklkalpdkc6s9hqw57rivi36k"))))
+ "05kq3hzam31dlmkccv3v358r478kpvx76mw37ka12c6ypwv5dsnk"))))
(build-system gnu-build-system)
(inputs
`(("gmp" ,gmp)))
(license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))))
+(define-public clapack
+ (package
+ (name "clapack")
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.netlib.org/clapack/clapack-"
+ version "-CMAKE.tgz"))
+ (sha256
+ (base32
+ "0nnap9q1mv14g57dl3vkvxrdr10k5w7zzyxs6rgxhia8q8mphgqb"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; These tests use a lot of stack variables and segfault without
+ ;; lifting resource limits.
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ (substitute* "TESTING/CMakeLists.txt"
+ (("add_lapack_test.* xeigtstz\\)") ""))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libdir (string-append out "/lib"))
+ (f2cinc (string-append out "/include/libf2c")))
+ (mkdir-p f2cinc)
+ (display (getcwd))
+ (for-each (lambda (file)
+ (install-file file libdir))
+ '("SRC/liblapack.a"
+ "F2CLIBS/libf2c/libf2c.a"
+ "TESTING/MATGEN/libtmglib.a"
+ "BLAS/SRC/libblas.a"))
+ (for-each (lambda (file)
+ (install-file file f2cinc))
+ (cons "F2CLIBS/libf2c/arith.h"
+ (find-files (string-append "../clapack-"
+ ,version "-CMAKE/F2CLIBS/libf2c")
+ "\\.h$")))
+ (copy-recursively (string-append "../clapack-"
+ ,version "-CMAKE/INCLUDE")
+ (string-append out "/include"))
+ #t))))))
+ (home-page "https://www.netlib.org/clapack/")
+ (synopsis "Numerical linear algebra library for C")
+ (description
+ "The CLAPACK library was built using a Fortran to C conversion utility
+called f2c. The entire Fortran 77 LAPACK library is run through f2c to obtain
+C code, and then modified to improve readability. CLAPACK's goal is to
+provide LAPACK for someone who does not have access to a Fortran compiler.")
+ (license (license:non-copyleft "file://LICENSE"
+ "See LICENSE in the distribution."))))
+
(define-public scalapack
(package
(name "scalapack")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/OkoSanto/GCTP.git")
+ (url "https://github.com/OkoSanto/GCTP")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(("(/gnu/store/)([a-Z0-9]*)" all prefix hash)
(string-append prefix (string-take hash 10) "...")))
#t))
- )))
+ (add-after 'install 'provide-absolute-libjpeg-reference
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (libjpeg (assoc-ref inputs "libjpeg")))
+ ;; libjpeg-turbo does not provide a .la file, so libtool is
+ ;; unable to add an absolute reference for -ljpeg in the .la
+ ;; files. Fix it manually to avoid having to propagate it.
+ (substitute* (find-files (string-append out "/lib") "\\.la$")
+ (("-ljpeg")
+ (string-append "-L" libjpeg "/lib -ljpeg")))
+ #t))))))
(home-page "https://www.hdfgroup.org/products/hdf4/")
(synopsis
"Library and multi-object file format for storing and managing data")
(synopsis
"HDF4 without netCDF API, can be combined with the regular netCDF library")))
-(define-public hdf5
+(define-public hdf5-1.8
(package
(name "hdf5")
(version "1.8.21")
"https://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
(define-public hdf5-1.10
- (package (inherit hdf5)
- (version "1.10.6")
+ (package/inherit hdf5-1.8
+ (version "1.10.7")
(source
(origin
- (method url-fetch)
- (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/"
- "hdf5-" (version-major+minor version)
- "/hdf5-" version "/src/hdf5-"
- version ".tar.bz2")
- (string-append "https://support.hdfgroup.org/ftp/HDF5/"
- "current"
- (apply string-append
- (take (string-split version #\.) 2))
- "/src/hdf5-" version ".tar.bz2")))
- (sha256
- (base32 "1gf38x51128hn00744358w27xgzjk0ff4wra4yxh2lk804ck1mh9"))
- (patches (search-patches "hdf5-config-date.patch"))))))
+ (method url-fetch)
+ (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/"
+ "hdf5-" (version-major+minor version)
+ "/hdf5-" version "/src/hdf5-"
+ version ".tar.bz2")
+ (string-append "https://support.hdfgroup.org/ftp/HDF5/"
+ "current"
+ (apply string-append
+ (take (string-split version #\.) 2))
+ "/src/hdf5-" version ".tar.bz2")))
+ (sha256
+ (base32 "0pm5xxry55i0h7wmvc7svzdaa90rnk7h78rrjmnlkz2ygsn8y082"))
+ (patches (search-patches "hdf5-config-date.patch"))))))
+
+(define-public hdf5
+ ;; Default version of HDF5.
+ hdf5-1.8)
(define-public hdf-java
(package
(jhdf (string-append lib "/jhdf.jar"))
(jhdf5 (string-append lib "/jhdf5.jar"))
(testjars
- (map (lambda (i)
- (string-append (assoc-ref inputs i)
- "/share/java/" i ".jar"))
- '("junit" "hamcrest-core" "slf4j-api" "slf4j-simple")))
+ (append
+ (map (lambda (i)
+ (string-append (assoc-ref inputs i)
+ "/share/java/" i ".jar"))
+ '("slf4j-api" "slf4j-simple"))
+ (list
+ (car (find-files (assoc-ref inputs "junit") "jar$"))
+ (car (find-files (assoc-ref inputs "hamcrest-core")
+ "jar$")))))
(class-path
(string-join `("." ,build-dir ,jhdf ,jhdf5 ,@testjars) ":")))
(license (license:non-copyleft home-page))))
(define-public hdf5-parallel-openmpi
- (package (inherit hdf5)
+ (package/inherit hdf5-1.10 ;use the latest
(name "hdf5-parallel-openmpi")
(inputs
`(("mpi" ,openmpi)
(substitute* "testpar/Makefile"
(("(^TEST_PROG_PARA.*)t_pflush1(.*)" front back)
(string-append front back "\n")))
- (substitute* "tools/h5diff/testph5diff.sh"
+ (substitute* "tools/test/h5diff/testph5diff.sh"
(("/bin/sh") (which "sh")))
#t))))))
(synopsis "Management suite for data with parallel IO support")))
+(define-public hdf5-blosc
+ (package
+ (name "hdf5-blosc")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Blosc/hdf5-blosc")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nj2bm1v6ymm3fmyvhbn6ih5fgdiapavlfghh1pvbmhw71cysyqs"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DBLOSC_INSTALL_DIR="
+ (assoc-ref %build-inputs "c-blosc"))
+ (string-append "-DPLUGIN_INSTALL_PATH="
+ (assoc-ref %outputs "out")
+ "/hdf5/lib/plugin"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'do-not-build-blosc
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("set\\(BLOSC_INSTALL_DIR.*") "")
+ (("ExternalProject_Add\\(project_blosc") "message("))
+ #t)))))
+ (inputs
+ `(("c-blosc" ,c-blosc)
+ ("hdf5" ,hdf5-1.10)))
+ (home-page "https://github.com/Blosc/hdf5-blosc")
+ (synopsis "Filter for HDF5 using the Blosc compressor")
+ (description "This is a filter for HDF5 that uses the Blosc compressor; by
+installing this filter, you can read and write HDF5 files with
+Blosc-compressed datasets.")
+ (license license:expat)))
+
(define-public h5check
(package
(name "h5check")
"--enable-parallel-tests"
;; Shared libraries not supported with parallel IO.
"--disable-shared" "--with-pic"
- ,flags))))))
+ ,flags))
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-after 'build 'mpi-setup
+ ,%openmpi-setup)))))))
(define-public netcdf-fortran
(package
(source (origin
(method url-fetch)
(uri (string-append
- "http://www.coin-or.org/download/source/Ipopt/Ipopt-"
+ "https://www.coin-or.org/download/source/Ipopt/Ipopt-"
version".tgz"))
(sha256
(base32
(inputs
;; TODO: Maybe add dependency on COIN-MUMPS, ASL, and HSL.
`(("lapack" ,lapack))) ;for both libblas and liblapack
- (home-page "http://www.coin-or.org")
+ (home-page "https://www.coin-or.org")
(synopsis "Large-scale nonlinear optimizer")
(description
"The Interior Point Optimizer (IPOPT) is a software package for
(define-public clp
(package
(name "clp")
- (version "1.17.1")
+ (version "1.17.6")
(source (origin
(method url-fetch)
(uri (string-append "https://www.coin-or.org/download/source/"
"Clp/Clp-" version ".tgz"))
(sha256
(base32
- "1wdg820g3iikf9344ijwsc8sy6c0m6im42bzzizm6rlmkvnmxhk9"))
+ "0ap1f0lxppa6pnbc4bg7ih7a96avwaki482nig8w5fr3vg9wvkzr"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
and quadratic objectives using the Simplex algorithm.")
(license license:epl1.0)))
+(define-public libflame
+ (package
+ (name "libflame")
+ (version "5.2.0")
+ (outputs '("out" "static"))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flame/libflame")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1n6lf0wvpp77lxqlr721h2jbfbzigphdp19wq8ajiccilcksh7ay"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ ;; Sensible defaults: https://github.com/flame/libflame/issues/28
+ (list "--enable-dynamic-build"
+ "--enable-max-arg-list-hack"
+ "--enable-lapack2flame"
+ "--enable-verbose-make-output"
+ "--enable-multithreading=pthreads" ; Openblas isn't built with openmp.
+ ,@(if (any (cute string-prefix? <> (or (%current-target-system)
+ (%current-system)))
+ '("x86_64" "i686"))
+ '("--enable-vector-intrinsics=sse")
+ '())
+ "--enable-supermatrix"
+ "--enable-memory-alignment=16"
+ "--enable-ldim-alignment")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-/usr/bin/env-bash
+ (lambda _
+ (substitute* "build/config.mk.in"
+ (("/usr/bin/env bash") (which "bash")))
+ #t))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (substitute* "test/Makefile"
+ (("LIBBLAS .*") "LIBBLAS = -lblas\n")
+ (("LIBLAPACK .*") "LIBLAPACK = -llapack\n"))
+ (if tests?
+ (with-directory-excursion "test"
+ (mkdir "obj")
+ (invoke "make")
+ (invoke "./test_libflame.x"))
+ #t)))
+ (add-after 'install 'install-static
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (static (assoc-ref outputs "static")))
+ (mkdir-p (string-append static "/lib"))
+ (rename-file (string-append out "/lib/libflame.a")
+ (string-append static "/lib/libflame.a"))
+ (install-file (string-append out "/include/FLAME.h")
+ (string-append static "/include"))
+ #t))))))
+ (inputs
+ `(("gfortran" ,gfortran)))
+ (native-inputs
+ `(("lapack" ,lapack)
+ ("openblas" ,openblas)
+ ("perl" ,perl)
+ ("python" ,python-wrapper)))
+ (home-page "https://github.com/flame/libflame")
+ (synopsis "High-performance object-based library for DLA computations")
+ (description "@code{libflame} is a portable library for dense matrix
+computations, providing much of the functionality present in LAPACK, developed
+by current and former members of the @acronym{SHPC, Science of High-Performance
+Computing} group in the @url{https://www.ices.utexas.edu/, Institute for
+Computational Engineering and Sciences} at The University of Texas at Austin.
+@code{libflame} includes a compatibility layer, @code{lapack2flame}, which
+includes a complete LAPACK implementation.")
+ (license license:bsd-3)))
+
(define-public ceres
(package
(name "ceres-solver")
("glpk" ,glpk)
("glu" ,glu)
("graphicsmagick" ,graphicsmagick)
+
+ ;; TODO: libjpeg-turbo is indirectly required through libtiff. In
+ ;; the next rebuild cycle, add an absolute reference for -ljpeg in
+ ;; libtiff.la instead of having to provide it here.
+ ("libjpeg" ,libjpeg-turbo)
+
("hdf5" ,hdf5)
("lapack" ,lapack)
("libsndfile" ,libsndfile)
`(#:configure-flags
(list (string-append "--with-shell="
(assoc-ref %build-inputs "bash")
- "/bin/sh"))
+ "/bin/sh")
+
+ ;; XXX: Without this flag, linking octave-cli fails with
+ ;; undefined references to 'logf@GLIBCXX_3.4' et.al. due to
+ ;; not pulling in liboctinterp.la for -lstdc++.
+ "--enable-link-all-dependencies")
#:phases
(modify-phases %standard-phases
(add-after 'configure 'configure-makeinfo
(define-public octave
(package (inherit octave-cli)
(name "octave")
- (source (origin
- (inherit (package-source octave-cli))))
(inputs
`(("qscintilla" ,qscintilla)
("qt" ,qtbase)
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/tpaviot/oce.git")
+ (url "https://github.com/tpaviot/oce")
(commit (string-append "OCE-" version))))
(file-name (git-file-name name version))
(patches (search-patches "opencascade-oce-glibc-2.26.patch"))
ASCII text files using Gmsh's own scripting language.")
(license license:gpl2+)))
+(define-public veusz
+ (package
+ (name "veusz")
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "veusz" version))
+ (sha256
+ (base32 "00vmfpvyd6f33l5awlf02qdik3gmbhzyfizfwwbx7qnam2i9bbwy"))))
+ (build-system python-build-system)
+ (arguments
+ `(;; Tests will fail because they depend on optional packages like
+ ;; python-astropy, which is not packaged.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Veusz will append 'PyQt5' to sip_dir by default. That is not how
+ ;; the path is defined in Guix, therefore we have to change it.
+ (add-after 'unpack 'fix-sip-dir
+ (lambda _
+ (substitute* "pyqtdistutils.py"
+ (("os.path.join\\(sip_dir, 'PyQt5'\\)") "sip_dir"))
+ #t))
+ ;; Now we have to pass the correct sip_dir to setup.py.
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; We need to tell setup.py where to locate QtCoremod.sip
+ ((@@ (guix build python-build-system) call-setuppy)
+ "build_ext"
+ (list (string-append "--sip-dir="
+ (assoc-ref inputs "python-pyqt")
+ "/share/sip"))
+ #t)))
+ ;; Ensure that icons are found at runtime.
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/veusz")
+ `("QT_PLUGIN_PATH" prefix
+ ,(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)))
+ (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)
+ ("qtsvg" ,qtsvg)))
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)))
+ (home-page "https://veusz.github.io/")
+ (synopsis "Scientific plotting package")
+ (description
+ "Veusz is a scientific plotting and graphing program with a graphical
+user interface, designed to produce publication-ready 2D and 3D plots. In
+addition it can be used as a module in Python for plotting. It supports
+vector and bitmap output, including PDF, Postscript, SVG and EMF.")
+ (license license:gpl2+)))
+
(define-public maxflow
(package
(name "maxflow")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/gerddie/maxflow.git")
+ (url "https://github.com/gerddie/maxflow")
(commit version)))
(file-name (git-file-name name version))
(sha256
bindings to almost all functions of SLEPc.")
(license license:bsd-3)))
+(define-public metamath
+ (package
+ (name "metamath")
+ (version "0.192")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/metamath/metamath-exe")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k31zw36h2b0w5r6sbn9qc0v4hj42vw53qlhf5l7q2h3p5qlzvic"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (home-page "http://us.metamath.org/")
+ (synopsis "Proof verifier based on a minimalistic formalism")
+ (description
+ "Metamath is a tiny formal language and that can express theorems in
+abstract mathematics, with an accompyaning @command{metamath} executable that
+verifies databases of these proofs. There is a public database,
+@url{https://github.com/metamath/set.mm, set.mm}, implementing first-order
+logic and Zermelo-Frenkel set theory with Choice, along with a large swath of
+associated, high-level theorems, e.g.@: the fundamental theorem of arithmetic,
+the Cauchy-Schwarz inequality, Stirling's formula, etc. See the Metamath
+book.")
+ (license license:gpl2+)))
+
(define-public mumps
(package
(name "mumps")
(define-public ruby-asciimath
(package
(name "ruby-asciimath")
- (version "1.0.4")
+ (version "2.0.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "asciimath" version))
(sha256
(base32
- "1d80kiph5mc78zps7si1hv48kv4k12mzaq8jk5kb3pqpjdr72qmc"))))
+ "1aapydwwkydbwgz07n7ma3a5jy9n3v0shy6q6j8mi4wr3crhx45a"))))
(build-system ruby-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; Apply this patch
- ;; https://github.com/asciidoctor/asciimath/commit/1c06fdc8086077f4785479f78b0823a4a72d7948
- (add-after 'unpack 'patch-remove-spurious-backslashes
- (lambda _
- (substitute* "spec/parser_spec.rb"
- (("\\\\\"")
- "\""))
- #t)))))
(native-inputs
- `(("bundler" ,bundler)
+ `(("ruby-nokogiri" ,ruby-nokogiri)
("ruby-rspec" ,ruby-rspec)))
(synopsis "AsciiMath parsing and conversion library")
(description
"scotch-integer-declarations.patch"))))
(build-system gnu-build-system)
(inputs
- `(("zlib" ,zlib)
- ("flex" ,flex)
+ `(("zlib" ,zlib)))
+ (native-inputs
+ `(("flex" ,flex)
("bison" ,bison)))
(outputs '("out" "metis"))
(arguments
(define-public maxima
(package
(name "maxima")
- (version "5.43.0")
+ (version "5.44.0")
(source
(origin
(method url-fetch)
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
- "0xyahp4c6509haxh4n1swiqm3421gplkdisa0zypclh3252sbzfw"))
+ "1v6jr5s6hhj6r18gfk6hgxk2qd6z1dxkrjq9ss2z1y6sqi45wgyr"))
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system)
(inputs
(define-public wxmaxima
(package
(name "wxmaxima")
- (version "20.03.1")
+ (version "20.06.6")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/wxMaxima-developers/wxmaxima.git")
+ (url "https://github.com/wxMaxima-developers/wxmaxima")
(commit (string-append "Version-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "09ciip0wkahps5jdsqqr72bwjrd15bacw38zp23v3hm71xfk8hky"))))
+ (base32 "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w"))))
(build-system cmake-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
`(#:test-target "test"
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'patch-doc-path
+ (lambda _
+ ;; Don't look in share/doc/wxmaxima-xx.xx.x for the
+ ;; documentation. Only licensing information is placed there by
+ ;; Guix.
+ (substitute* "src/Dirstructure.cpp"
+ (("/doc/wxmaxima-\\%s") "/doc/wxmaxima"))
+ #t))
(add-before 'check 'pre-check
(lambda _
;; Tests require a running X server.
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/beltoforion/muparser.git")
+ (url "https://github.com/beltoforion/muparser")
(commit (string-append "v" upstream-version))))
(file-name (git-file-name name version))
(sha256
(define-public openblas
(package
(name "openblas")
- (version "0.3.9")
+ (version "0.3.10")
(source
(origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/openblas/v" version "/OpenBLAS%20"
- version "%20version.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xianyi/OpenBLAS")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "14iz9xnrb9xiwgj84j94mc74gg0zn2vsy9fmsijxxma1n7dck4w3"))))
+ "174id98ga82bhz2v7sy9yj6pqy0h0088p3mkdikip69p9rh3d17b"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/JuliaLang/openlibm.git")
+ (url "https://github.com/JuliaLang/openlibm")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/JuliaLang/openspecfun.git")
+ (url "https://github.com/JuliaLang/openspecfun")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/DrTimothyAldenDavis/SuiteSparse.git")
+ (url "https://github.com/DrTimothyAldenDavis/SuiteSparse")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public glm
(package
(name "glm")
- (version "0.9.9.6")
+ (version "0.9.9.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/g-truc/glm/releases/download/"
version "/glm-" version ".zip"))
(sha256
- (base32 "1l0pi1qi37mk6s0yrkrw07lspv4gcqnr9ryg3521hrl77ff37dwx"))
- (patches (search-patches "glm-restore-install-target.patch"))))
+ (base32 "0k6yk9v46h690rshdx49x98y5qspkzibld1wb51jwcm35vba7qip"))))
(build-system cmake-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Since version 0.9.9.6, 'make install' is not supported
+ ;; and we have to do it "manually". Upstream discussion:
+ ;; <https://github.com/g-truc/glm/pull/968>.
+ (let* ((source (string-append "../glm"))
+ (out (assoc-ref outputs "out"))
+ (inc (string-append out "/include"))
+ (lib (string-append out "/lib"))
+ (pkgconfig (string-append lib "/pkgconfig")))
+ (with-directory-excursion source
+ (mkdir-p inc)
+ (mkdir-p pkgconfig)
+ (copy-recursively "glm" (string-append inc "/glm"))
+ (copy-recursively "cmake" (string-append lib "/cmake"))
+ (call-with-output-file (string-append pkgconfig "/glm.pc")
+ (lambda (port)
+ (format port
+ "prefix=~a
+includedir=${prefix}/include
+
+Name: GLM
+Description: OpenGL Mathematics
+Version: ~a
+Cflags: -I${includedir}~%" out ,(version-prefix version 3)))))
+ #t))))))
(native-inputs
`(("unzip" ,unzip)))
(home-page "https://glm.g-truc.net/")
(define-public flann
(package
(name "flann")
- (version "1.8.4")
+ (version "1.9.1")
+ (home-page "https://github.com/mariusmuja/flann/")
(source
(origin
- (method url-fetch)
- (uri
- (string-append
- "http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-"
- version "-src.zip"))
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))
+ "0p56fl2yx1r86ds1mgjq40926jdcgq3hka7p3l1hv2acv9jxp15x"))
(patches (search-patches "flann-cmake-3.11.patch"))))
(build-system cmake-build-system)
- (outputs '("out"
- "octave")) ;46 MiB .mex file that pulls Octave
+ (outputs '("out"))
(native-inputs
`(("unzip" ,unzip)))
(inputs
`(("hdf5" ,hdf5)
- ("octave" ,octave-cli)
+ ;; FIXME: 'mkoctfile' fails with a linker error:
+ ;; ld: cannot find -loctinterp
+ ;; ld: cannot find -loctave
+ ;; Disable it for now.
+ ;;("octave" ,octave-cli)
("python" ,python-2) ; print syntax
;; ("python2-numpy" ,python2-numpy) ; only required for the tests
("zlib" ,zlib)))
;; Save 12 MiB by not installing .a files. Passing
;; '-DBUILD_STATIC_LIBS=OFF' has no effect.
#:phases (modify-phases %standard-phases
- (add-before 'configure 'set-octave-directory
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Install the .mex file in the "octave" output.
- (let ((out (assoc-ref outputs "octave")))
- (substitute* "src/matlab/CMakeLists.txt"
- (("share/flann/octave")
- (string-append out "/share/flann/octave")))
- #t)))
(add-after 'install 'remove-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
#t))))
#:tests? #f)) ; The test data are downloaded from the Internet.
- (home-page "http://www.cs.ubc.ca/research/flann/")
(synopsis "Library for approximate nearest neighbors computation")
(description "FLANN is a library for performing fast approximate
nearest neighbor searches in high dimensional spaces. It implements a
(define-public xaos
(package
(name "xaos")
- (version "3.6")
+ (version "4.0")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/xaos/XaoS/" version
- "/xaos-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xaos-project/XaoS")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq"))))
+ "00110p5xscjsmn7avfqgydn656zbmdj3l3y2fpv9b4ihzpid8n7a"))))
(build-system gnu-build-system)
- (native-inputs `(("gettext" ,gettext-minimal)))
+ (native-inputs `(("gettext" ,gettext-minimal)
+ ("qtbase" ,qtbase)
+ ("qttools" ,qttools)))
(inputs `(("libx11" ,libx11)
("zlib" ,zlib)
("libpng" ,libpng)
("gsl" ,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
`(#:tests? #f ;no "check" target
- #:make-flags '("LOCALEDIR=$DATAROOTDIR/locale")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'make-qt-deterministic
+ (lambda _
+ ;; Make Qt deterministic.
+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+ #t))
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; The DESTDIR is originally set to install the xaos binary to
+ ;; the "bin" folder inside the build directory. Setting make
+ ;; flags doesn't seem to change this.
+ (substitute* "XaoS.pro"
+ (("DESTDIR.*$")
+ (string-append "DESTDIR=" out "/bin")))
+ (substitute* "src/include/config.h"
+ (("/usr/share/XaoS")
+ (string-append out "/share/XaoS")))
+ (invoke "qmake"))))
+ (add-after 'install 'install-data
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share")))
+ (mkdir-p share)
+ (for-each
+ (lambda (folder)
+ (copy-recursively folder
+ (string-append share "/XaoS/" folder)))
+ '("catalogs" "examples" "tutorial"))
+ (install-file "xdg/xaos.png"
+ (string-append share "/pixmaps"))
+ (install-file "xdg/xaos.desktop"
+ (string-append share "/applications")))
+ #t)))))
(synopsis "Real-time fractal zoomer")
(description "GNU XaoS is a graphical program that generates fractal
patterns and allows you to zoom in and out of them infinitely in a fluid,
continuous manner. It also includes tutorials that help to explain how fractals
are built. It can generate many different fractal types such as the Mandelbrot
set.")
- (home-page "https://www.gnu.org/software/xaos/")
+ (home-page "https://xaos-project.github.io/")
(license license:gpl2+)))
(define-public hypre
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/LLNL/hypre.git")
+ (url "https://github.com/LLNL/hypre")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public z3
(package
(name "z3")
- (version "4.8.7")
+ (version "4.8.8")
(home-page "https://github.com/Z3Prover/z3")
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "0hprcdwhhyjigmhhk6514m71bnmvqci9r8gglrqilgx424r6ff7q"))))
+ "1rn538ghqwxq0v8i6578j8mflk6fyv0cp4hjfqynzvinjbps56da"))))
(build-system gnu-build-system)
(arguments
`(#:imported-modules ((guix build python-build-system)
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/elemental/Elemental.git")
+ (url "https://github.com/elemental/Elemental")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public mcrl2
(package
(name "mcrl2")
- (version "201908.0")
+ (version "202006.0")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "1i4xgl2d5fgiz1mwi50cyfkrrcpm8nxfayfjgmhq7chs58wlhfsz"))))
+ "167ryrzk1a2j53c2j198jlxa98amcaym070gkcj730619gymv5zl"))))
(inputs
`(("boost" ,boost)
("glu" ,glu)
(define-public dune-common
(package
(name "dune-common")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
version "/dune-common-" version ".tar.gz"))
(sha256
(base32
- "019wcr1qf7jwyxx1y5y290wdlglylskvbb2m01ljkzcza2xnlmhw"))))
+ "140q1zh44cr5yrjwg4b5ga803rkqv55vk30l2cqm29aklj1wb0rw"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public dune-geometry
(package
(name "dune-geometry")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
version "/dune-geometry-" version ".tar.gz"))
(sha256
(base32
- "0hlaaxjyv9j05blasvb67sy02hd0w4g9znf68gdh3l731dd1aqbn"))))
+ "1cicvlwbyyw76npicnblxckyvhbfn3ip8isydiv3hlrlz8zcg5nr"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public dune-uggrid
(package
(name "dune-uggrid")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://dune-project.org/download/"
- version "/dune-uggrid-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.dune-project.org/staging/dune-uggrid.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "05l7a1gb78mny49anyxk6rjvn66rhgm30y72v5cjg0m5kfgr1a1f"))))
+ "192miqgmfj6jwk969gydzpbv9ki7jg5nky3ydnrwa2nq29b5xkh0"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public dune-grid
(package
(name "dune-grid")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
version "/dune-grid-" version ".tar.gz"))
(sha256
(base32
- "1jp4vscm9yb9xg0lh7apzccfkhvgbnk652yahigmh3cvzpl4acd0"))))
+ "17fjz30qazjgl11sryyxnw9klai4yz1ji4bs68013xcxc5hdv27s"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public dune-istl
(package
(name "dune-istl")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
version "/dune-istl-" version ".tar.gz"))
(sha256
(base32
- "0l2gyrvys5w6wsmk0ckbb7295s80b7yk7qrl7x66akv2jv1nzq2w"))))
+ "0gl3wgz5rs6sb4m83440ny45sbx7z7lnbi3gx6r9nm3rvy5j33f9"))
+ (patches (search-patches "dune-istl-2.7-fix-non-mpi-tests.patch"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
+ ;; XXX: istl/test/matrixtest.cc includes <fenv.h> and fails to find
+ ;; the stdlib types when the gfortran header is used. Remove gfortran
+ ;; from CPLUS_INCLUDE_PATH as a workaround.
+ (add-after 'set-paths 'hide-gfortran
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gfortran (assoc-ref inputs "gfortran")))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join
+ (delete (string-append gfortran "/include/c++")
+ (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+ ":"))
+ #t)))
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "build_tests" make-flags))))))
(define-public dune-localfunctions
(package
(name "dune-localfunctions")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
version "/dune-localfunctions-" version ".tar.gz"))
(sha256
(base32
- "19c6zjinwwpy8jh4v4prhphyd438rapd4x80fj93apmwgw04nrhl"))))
+ "1yih59h6vngii696bx1c2vil02lriij4kz0nc583mjn9kiaqxfqd"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
+ ;; XXX: localfunctions/test/lagrangeshapefunctiontest.cc includes <fenv.h>
+ ;; and fails to find the stdlib types when the gfortran header is used.
+ ;; Hide gfortran from CPLUS_INCLUDE_PATH to ensure we get the GCC header.
+ (add-after 'set-paths 'hide-gfortran
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gfortran (assoc-ref inputs "gfortran")))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join
+ (delete (string-append gfortran "/include/c++")
+ (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+ ":"))
+ #t)))
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "build_tests" make-flags))))))
(define-public dune-alugrid
(package
(name "dune-alugrid")
- (version "2.6.0")
+ (version "2.7.0-git-81d35682")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://dune-project.org/download/"
- version "/dune-alugrid-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.dune-project.org/extensions/dune-alugrid.git")
+ (commit "81d356827c84454b971937db02c02b90bbcd7fe5")))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1l9adgyjpra8mvwm445s0lpjshnb63jag85fb2hisbjn6bm320yj"))))
+ "0z54lwfp53prcrs94k8gwh047l9z642jll3l56xlyfr69z0b2zz1"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public dune-subgrid
(package
(name "dune-subgrid")
- (version "2.6.0")
+ (version "2.7.0-git-2103a363")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.imp.fu-berlin.de/agnumpde/dune-subgrid")
- (commit "releases/2.6-1")))
+ (commit "2103a363f32e8d7b60e66eee7ddecf969f6cf762")))
(file-name (git-file-name name version))
(sha256
(base32
- "1gcv35rx3knqd54r4pp9rzd639db4j8w2r2ibq43w1mgwdcqhs64"))))
+ "1wsjlypd3835c3arqjkw836cxx5q67zy447wa65q634lf6f6v9ia"))))
(build-system cmake-build-system)
(arguments
`(#:phases
("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 allows to mark elements of
+ (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.")
(define-public dune-typetree
(package
(name "dune-typetree")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "0mnv6w2f22lz3j4bdpdjq55vjm8xxfx9v4vvhg9bd36xpsbjpjp9"))))
+ "1rhv25yg0q1hw50c8wlfqhgwrjl4mh62zq9v14ilwgzbfgxmpiy7"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public dune-functions
(package
(name "dune-functions")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1an8gb477n8j0kzpbrv7nr1snh8pxip0gsxq6w63jc83gg3dj200"))))
+ "1na4gcih0kin37ksj2xj07ds04v7zx53pjdhm1hzy55jjfqdjk8h"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public dune-pdelab
(package
(name "dune-pdelab")
- (version "2.6.0-rc1")
+ (version "2.7.0-git-476fe437")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.dune-project.org/pdelab/dune-pdelab")
- (commit (string-append "v" version))))
+ (commit "476fe43763fa6f459c5e4658e2a2b4b5582db834")))
(file-name (git-file-name name version))
(sha256
(base32
- "07g0s9448z65vjrq88g5rv3340iifil85k170n8kbqchsvi4ny5v"))))
+ "0cs36piqzn6rq0j2ih3ab3q3q9yg199wk72k5qi86pkzh7i7fdn1"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled
(inputs
(define-public nauty
(package
(name "nauty")
- (version "2.6r12")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://pallini.di.uniroma1.it/"
- "nauty" (string-join (string-split version #\.) "")
- ".tar.gz"))
- (sha256
- (base32
- "1p4mxf8q5wm47nxyskxbqwa5p1vvkycv1zgswvnk9nsn6vff0al6"))))
+ (version "2.7r1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pallini.di.uniroma1.it/"
+ "nauty" (string-join (string-split version #\.) "") ".tar.gz"))
+ (sha256
+ (base32 "0xsfqfcknbd6g6wzpa5l7crmmk3bf3zjh37rhylq6b20dqcmvjkn"))))
(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
(include (string-append lib-output "/include/nauty"))
(lib (string-append lib-output "/lib/nauty")))
(for-each (lambda (f) (install-file f bin))
- '("dreadnaut" "NRswitchg" "addedgeg" "amtog" "biplabg"
- "blisstog" "bliss2dre" "catg" "checks6" "complg"
- "converseg" "copyg" "countg" "cubhamg" "deledgeg"
- "delptg" "directg" "dretodot" "dretog" "genbg"
+ '("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" "vcolg" "watercluster2"))
+ "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))
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/niklasso/minisat.git")
+ (url "https://github.com/niklasso/minisat")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(home-page
"http://minisat.se/MiniSat.html")
(license license:expat))))
+
+(define-public libqalculate
+ (package
+ (name "libqalculate")
+ (version "3.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Qalculate/libqalculate/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df"))
+ (patches
+ (search-patches "libqalculate-3.8.0-libcurl-ssl-fix.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("gettext" ,gettext-minimal)
+ ("intltool" ,intltool)
+ ("automake" ,automake)
+ ("autoconf" ,autoconf)
+ ("libtool" ,libtool)
+ ("doxygen" ,doxygen)
+ ("file" ,file)))
+ (inputs
+ `(("gmp" ,gmp)
+ ("mpfr" ,mpfr)
+ ("libxml2" ,libxml2)
+ ("curl" ,curl)
+ ("icu4c" ,icu4c)
+ ("gnuplot" ,gnuplot)
+ ("readline" ,readline)
+ ("libiconv" ,libiconv)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'setenv
+ ;; Prevent the autogen.sh script to carry out the configure
+ ;; script, which has not yet been patched to replace /bin/sh.
+ (lambda _
+ (setenv "NOCONFIGURE" "TRUE")
+ #t)))))
+ (home-page "https://qalculate.github.io/")
+ (synopsis "Multi-purpose cli desktop calculator and library")
+ (description
+ "Libqalculate is a multi-purpose cli desktop calculator and library.
+It provides basic and advanced functionality. Features include customizable
+functions, unit calculations, and conversions, physical constants, symbolic
+calculations (including integrals and equations), arbitrary precision,
+uncertainty propagation, interval arithmetic, plotting and a user-friendly
+cli.")
+ (license license:gpl2+)))
+
+(define-public qalculate-gtk
+ (package
+ (name "qalculate-gtk")
+ (version "3.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Qalculate/qalculate-gtk/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0nsg6dzg5r7rzqr671nvrf1c50rjwpz7bxv5f20i4s7agizgv840"))))
+ (build-system glib-or-gtk-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)
+ ("automake" ,automake)
+ ("autoconf" ,autoconf)
+ ("libtool" ,libtool)
+ ("file" ,file)))
+ (inputs
+ `(("gmp" ,gmp)
+ ("mpfr" ,mpfr)
+ ("libqalculate" ,libqalculate)
+ ("libxml2" ,libxml2)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'setenv
+ ;; Prevent the autogen.sh script to carry out the configure
+ ;; script, which has not yet been patched to replace /bin/sh.
+ (lambda _
+ (setenv "NOCONFIGURE" "TRUE")
+ #t))
+ (add-before 'check 'add-pot-file
+ ;; the file contains translations and are currently not in use
+ ;; left out on purpose so add it to POTFILES.skip
+ (lambda _
+ (with-output-to-file "po/POTFILES.skip"
+ (lambda _
+ (format #t "data/shortcuts.ui~%")
+ #t))
+ #t)))))
+ (home-page "https://qalculate.github.io/")
+ (synopsis "Multi-purpose graphical desktop calculator")
+ (description
+ "Qalculate-gtk is the GTK frontend for libqalculate. It is a
+multi-purpose GUI desktop calculator. It provides basic and advanced
+functionality. Features include customizable functions, unit calculations,
+and conversions, physical constants, symbolic calculations (including
+integrals and equations), arbitrary precision, uncertainty propagation,
+interval arithmetic, plotting.")
+ (license license:gpl2+)))