;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr>
+;;; 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 Eric Bavier <bavier@member.fsf.org>
+;;; 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 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016, 2018 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2018, 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2017, 2018, 2019 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 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2017, 2018, 2019, 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2018 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2019 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 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>
;;;
;;; 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 r)
#:use-module (guix build-system ruby)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
+ #: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)
(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")
computing convex hulls.")
(license license:gpl2+)))
+(define-public lrslib
+ (package
+ (name "lrslib")
+ (version "7.0a")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/"
+ "lrslib-0"
+ (string-delete #\. version) ".tar.gz"))
+ (sha256
+ (base32
+ "034fa45r9hwx6ljmgpxk2872q34nklkalpdkc6s9hqw57rivi36k"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("gmp" ,gmp)))
+ (arguments
+ `(#:tests? #f ; no check phase
+ #:make-flags `("CC=gcc"
+ ,(string-append "prefix=" (assoc-ref %outputs "out"))
+ "all-shared")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "makefile"
+ (("-L \\.") "-L . -Wl,-rpath='$$ORIGIN/../lib'"))
+ #t)))))
+ (home-page "http://cgm.cs.mcgill.ca/~avis/C/lrs.html")
+ (synopsis "Convex hulls of polyhedra with exact arithmetic")
+ (description
+ "The C code of lrslib implements the reverse search algorithm for
+vertex enumeration and convex hull problems. Its input file format is
+compatible with cddlib. All computations are done exactly in either
+multiple precision or fixed integer arithmetic. Output is not stored
+in memory, so even problems with very large output sizes can sometimes
+be solved.")
+ (license license:gpl2+)))
+
+(define-public vinci
+ (package
+ (name "vinci")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.math.u-bordeaux.fr/~aenge/software/"
+ "vinci/vinci-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1aq0qc1y27iw9grhgnyji3290wwfznsrk3sg6ynqpxwjdda53h4m"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("lrslib" ,lrslib)))
+ (arguments
+ `(#:tests? #f ; no check phase
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ ;; register the lrs location in the config file
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((lrs (assoc-ref inputs "lrslib"))
+ (lrsexec (string-append lrs "/bin/lrs")))
+ (substitute* "vinci.h"
+ (("#define LRS_EXEC \"lrs\"")
+ (string-append "#define LRS_EXEC \"" lrsexec "\""))))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "vinci" bin))
+ #t)))))
+ (home-page
+ "https://www.math.u-bordeaux.fr/~aenge/?category=software&page=vinci")
+ (synopsis "Volume computation for polytopes")
+ (description
+ "Vinci implements a number of volume computation algorithms for convex
+polytopes in arbitrary dimension. The polytopes can be given by their
+V-representation (as the convex hull of a finite number of vertices), by
+their H-representation (as the bounded intersection of a finite number of
+halfspaces) or by their double description with both representations.")
+ (license license:gpl2+)))
+
(define-public arpack-ng
(package
(name "arpack-ng")
(define-public lapack
(package
(name "lapack")
- (version "3.7.1")
+ (version "3.9.0")
(source
(origin
(method url-fetch)
version ".tgz"))
(sha256
(base32
- "1j51r7n5w4k7r3lrvy7710xrpkg40wf4rqnmngfz6ck9ypckzign"))))
+ "1155qixp26c12yrxc76z9mlfw2h3xxymxxv5znpgzh5gaykpndgj"))))
(build-system cmake-build-system)
(home-page "http://www.netlib.org/lapack/")
(inputs `(("fortran" ,gfortran)
- ("python" ,python-2)))
+ ("python" ,python-wrapper)))
(arguments
`(#:configure-flags (list
"-DBUILD_SHARED_LIBS:BOOL=YES"
"-DLAPACKE=ON"
-
;; Build the 'LAPACKE_clatms' functions.
- "-DLAPACKE_WITH_TMG=ON")
- #:phases
- (modify-phases %standard-phases
- (add-before 'check 'patch-python
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((python (assoc-ref inputs "python")))
- (substitute* "lapack_testing.py"
- (("/usr/bin/env python") python)))
- #t)))))
+ "-DLAPACKE_WITH_TMG=ON"
+ "-DBUILD_TESTING=ON")))
(synopsis "Library for numerical linear algebra")
(description
"LAPACK is a Fortran 90 library for solving the most commonly occurring
(find-files ex ".*"))
(delete-file-recursively ex))
#t)))))
- (home-page "http://www.hdfgroup.org")
+ (home-page "https://www.hdfgroup.org")
(synopsis "Management suite for extremely large and complex data")
(description "HDF5 is a suite that makes possible the management of
extremely large and complex data collections.")
(license (license:x11-style
- "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
+ "https://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
(define-public hdf5-1.10
(package (inherit hdf5)
- (version "1.10.4")
+ (version "1.10.6")
(source
(origin
(method url-fetch)
(take (string-split version #\.) 2))
"/src/hdf5-" version ".tar.bz2")))
(sha256
- (base32 "1pr85fa1sh2ky6ai2hs3f21lp252grl2cq3wbyi4rh7dm83gyrqj"))
- (patches (search-patches "hdf5-config-date.patch"
- "hdf5-mpi-deprecations.patch"))))))
+ (base32 "1gf38x51128hn00744358w27xgzjk0ff4wra4yxh2lk804ck1mh9"))
+ (patches (search-patches "hdf5-config-date.patch"))))))
(define-public hdf-java
(package
(origin
(method url-fetch)
(uri (string-append
- "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-"
+ "https://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-"
version "/src/CMake-hdfjava-" version ".tar.gz"))
(sha256
(base32 "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr"))
`( #:configure-flags '("--enable-install-include" "--enable-shared"
"CC=h4cc -Df2cFortran" "LIBS=-lgctp")
#:parallel-tests? #f))
- (home-page "http://hdfeos.org/software/library.php#HDF-EOS2")
+ (home-page "https://hdfeos.org/software/library.php#HDF-EOS2")
(synopsis "HDF4-based data format for NASA's Earth Observing System")
(description "HDF-EOS2 is a software library built on HDF4 which supports
the construction of data structures used in NASA's Earth Observing
(source
(origin
(method url-fetch)
- (uri (string-append "http://www.hdfgroup.org/ftp/HDF5/tools/"
+ (uri (string-append "https://www.hdfgroup.org/ftp/HDF5/tools/"
"h5check/src/h5check-" version ".tar.gz"))
(sha256
(base32
#t)))
#:parallel-tests? #f)) ;various race conditions
- (home-page "http://www.unidata.ucar.edu/software/netcdf/")
+ (home-page "https://www.unidata.ucar.edu/software/netcdf/")
(synopsis "Library for scientific data")
(description "NetCDF is an interface for scientific data access and a
software library that provides an implementation of the interface. The netCDF
(define-public octave-cli
(package
(name "octave-cli")
- (version "5.1.0")
+ (version "5.2.0")
(source
(origin
(method url-fetch)
version ".tar.lz"))
(sha256
(base32
- "11wwxpy2q1bhxs2v41bqn05i2sb0905cj1xil6mg8l4k2kka4cq6"))))
+ "1848dq6nxzal8gwjrcp6xhi5gq96w89nss9d9rz75q408gb3mbl6"))))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
("arpack" ,arpack-ng)
+ ("bdb" ,bdb)
("curl" ,curl)
("fftw" ,fftw)
("fftwf" ,fftwf)
"qscintilla2_qt5"))
#t))))))))
-(define-public qtoctave
- (deprecated-package "qtoctave" octave))
-
(define-public opencascade-oce
(package
(name "opencascade-oce")
(copy-recursively exdir exdir')
(delete-file-recursively exdir)
#t))))))
- (home-page "http://www.mcs.anl.gov/petsc")
+ (home-page "https://www.mcs.anl.gov/petsc")
(synopsis "Library to solve PDEs")
(description "PETSc, pronounced PET-see (the S is silent), is a suite of
data structures and routines for the scalable (parallel) solution of
scientific applications modeled by partial differential equations.")
(license (license:non-copyleft
- "http://www.mcs.anl.gov/petsc/documentation/copyright.html"))))
+ "https://www.mcs.anl.gov/petsc/documentation/copyright.html"))))
(define-public petsc-complex
(package (inherit petsc)
(define-public python-petsc4py
(package
(name "python-petsc4py")
- (version "3.10.1")
+ (version "3.11.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "petsc4py" version))
(sha256
(base32
- "094hcnran0r2z1wlvmjswsz3ski1m9kqrl5l0ax8jjhnk55x0flh"))))
+ "1rm1qj5wlkhxl39by9n78lh3gbmii31wsnb8j1rr5hvfr5xgbx2q"))))
(build-system python-build-system)
(arguments
`(#:phases
(define-public python-slepc4py
(package
(name "python-slepc4py")
- (version "3.10.0")
+ (version "3.11.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "slepc4py" version))
(sha256
(base32
- "0x049dyc8frgh79fvvavf4vlbqp4mgm61nsaivzdav4316vvlv1j"))))
+ "1ksp08kxf4wg408b9nn39z3qfhy643j22d4rfbl30vzxk2rxh4lq"))))
(build-system python-build-system)
(arguments
`(#:phases
(inputs
(alist-delete "pt-scotch" (package-inputs mumps-openmpi)))))
-(define-public r-quadprog
- (package
- (name "r-quadprog")
- (version "1.5-7")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "quadprog" version))
- (sha256
- (base32
- "0vg7i9p241bwvfdspjbydjrsvgipl6nsb8bjigp0hbbgvxbixx0s"))))
- (build-system r-build-system)
- (native-inputs
- `(("gfortran" ,gfortran)))
- (home-page "https://cran.r-project.org/web/packages/quadprog")
- (synopsis "Functions to solve quadratic programming problems")
- (description
- "This package contains routines and documentation for solving quadratic
-programming problems.")
- (license license:gpl3+)))
-
-(define-public r-pracma
- (package
- (name "r-pracma")
- (version "2.2.5")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "pracma" version))
- (sha256
- (base32 "0isd3s0i4mzmva8lkh0j76hwjy1w50q7d1n9lhxsnnkgalx3xs1g"))))
- (build-system r-build-system)
- (home-page "https://cran.r-project.org/web/packages/pracma/")
- (synopsis "Practical numerical math functions")
- (description "This package provides functions for numerical analysis and
-linear algebra, numerical optimization, differential equations, plus some
-special functions. It uses Matlab function names where appropriate to simplify
-porting.")
- (license license:gpl3+)))
-
(define-public ruby-asciimath
(package
(name "ruby-asciimath")
(source
(origin
(method url-fetch)
- (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
+ (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/"
"superlu_" version ".tar.gz"))
(sha256
(base32 "0qzlb7cd608q62kyppd0a8c65l03vrwqql6gsm465rky23b6dyr8"))
`(#:configure-flags '("-Denable_blaslib:BOOL=NO" ;do not use internal cblas
"-DTPL_BLAS_LIBRARIES=openblas"
"-DBUILD_SHARED_LIBS:BOOL=YES")))
- (home-page "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/")
+ (home-page "https://portal.nersc.gov/project/sparse/superlu/")
(synopsis "Supernodal direct solver for sparse linear systems")
(description
"SuperLU is a general purpose library for the direct solution of large,
(define-public superlu-dist
(package
(name "superlu-dist")
- (version "6.1.0")
+ (version "6.2.0")
(source
(origin
(method url-fetch)
- (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
+ (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/"
"superlu_dist_" version ".tar.gz"))
(sha256
- (base32 "0pqgcgh1yxhfzs99fas3mggajzd5wca3nbyp878rziy74gfk03dl"))
+ (base32 "1ynmwqajc9sc3my2hssa5k9s58ggvizqv9rdss0j7w99pbh5mnvw"))
(modules '((guix build utils)))
(snippet
;; Replace the non-free implementation of MC64 with a stub
"RowPerm = NOROWPERM;"))
#t))
(patches (search-patches "superlu-dist-scotchmetis.patch"
- "superlu-dist-awpm-grid.patch"
- "superlu-dist-fix-mpi-deprecations.patch"))))
+ "superlu-dist-awpm-grid.patch"))))
(build-system cmake-build-system)
(native-inputs
`(("tcsh" ,tcsh)))
"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
(install-file f (string-append out "/lib")))
(find-files "../lib/" ".*metis\\..*"))
#t))))))
- (home-page "http://www.labri.fr/perso/pelegrin/scotch/")
+ (home-page "https://www.labri.fr/perso/pelegrin/scotch/")
(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 wxmaxima
(package
(name "wxmaxima")
- (version "19.09.0")
+ (version "20.03.1")
(source
(origin
(method git-fetch)
(commit (string-append "Version-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "195j6j8z0jd6xg3a63ywbrbsc6dany795m3fb95nbx1vq0bqqvvn"))))
+ (base32 "09ciip0wkahps5jdsqqr72bwjrd15bacw38zp23v3hm71xfk8hky"))))
(build-system cmake-build-system)
(native-inputs
- `(("gettext" ,gettext-minimal)))
+ `(("gettext" ,gettext-minimal)
+ ("xorg-server" ,xorg-server-for-tests)))
+ ;; TODO: Add libomp for multithreading support.
+ ;; As of right now, enabling libomp causes the imageCells.wxm test to fail.
(inputs
`(("wxwidgets" ,wxwidgets)
("maxima" ,maxima)
("gtk+" ,gtk+)
("shared-mime-info" ,shared-mime-info)))
(arguments
- `(#:tests? #f ; no check target
+ `(#:test-target "test"
#:phases
(modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Tests require a running X server.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ (setenv "HOME" (getcwd))
+ #t))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "out")
,(string-append
(assoc-ref inputs "adwaita-icon-theme") "/share"))))
#t)))))
- (home-page "https://andrejv.github.io/wxmaxima/")
+ (home-page "https://wxmaxima-developers.github.io/wxmaxima/")
(synopsis "Graphical user interface for the Maxima computer algebra system")
(description
"wxMaxima is a graphical user interface for the Maxima computer algebra
environments. It can be used for machine learning, pattern recognition,
signal processing, bioinformatics, statistics, econometrics, etc. The library
provides efficient classes for vectors, matrices and cubes, as well as 150+
-associated functions (eg. contiguous and non-contiguous submatrix views).")
+associated functions (e.g., contiguous and non-contiguous submatrix views).")
(license license:asl2.0)))
(define-public muparser
`(("cunit" ,cunit)
("fortran" ,gfortran)
("perl" ,perl)))
- (home-page "http://www.openblas.net/")
+ (home-page "https://www.openblas.net/")
(synopsis "Optimized BLAS library based on GotoBLAS")
(description
"OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.")
;; no configure script
(modify-phases %standard-phases (delete 'configure))
#:tests? #f)) ;the tests are part of the default target
- (home-page "http://openlibm.org/")
+ (home-page "https://openlibm.org/")
(synopsis "Portable C mathematical library (libm)")
(description
"OpenLibm is an effort to have a high quality, portable, standalone C
(define-public suitesparse
(package
(name "suitesparse")
- (version "4.5.5")
+ (version "5.7.1")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DrTimothyAldenDavis/SuiteSparse.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1dnr6pmjzc2qmbkmb4shigx1l74ilf6abn7svyd6brxgvph8vadr"))
+ "174p3l78kv9gaa0i5hflyai2ydwnjzh34k9938sl4aa3li0543s8"))
+ (patches (search-patches "suitesparse-mongoose-cmake.patch"))
(modules '((guix build utils)))
(snippet
;; Remove bundled metis source
"BLAS=-lblas"
"TBB=-ltbb"
"MY_METIS_LIB=-lmetis"
+ ;; Flags for cmake (required to build GraphBLAS and Mongoose)
+ (string-append "CMAKE_OPTIONS=-DCMAKE_INSTALL_PREFIX="
+ (assoc-ref %outputs "out")
+ " -DCMAKE_VERBOSE_MAKEFILE=ON"
+ " -DCMAKE_C_FLAGS_RELEASE=\"$(CFLAGS) $(CPPFLAGS)\""
+ " -DCMAKE_CXX_FLAGS_RELEASE=\"$(CXXFLAGS) $(CPPFLAGS)\""
+ " -DCMAKE_SKIP_RPATH=TRUE"
+ " -DCMAKE_BUILD_TYPE=Release")
(string-append "INSTALL_LIB="
(assoc-ref %outputs "out") "/lib")
(string-append "INSTALL_INCLUDE="
`(("tbb" ,tbb)
("lapack" ,lapack)
("metis" ,metis)))
+ (native-inputs
+ `(("cmake" ,cmake-minimal)
+ ("m4" ,m4)))
(home-page "http://faculty.cse.tamu.edu/davis/suitesparse.html")
(synopsis "Suite of sparse matrix software")
(description
(define-public z3
(package
(name "z3")
- (version "4.8.6")
+ (version "4.8.7")
(home-page "https://github.com/Z3Prover/z3")
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1sywcqj5y8yp28m4cdvzsgw74kd6zr1s3y1x17ky8pr9prvpvl6x"))))
+ "0hprcdwhhyjigmhhk6514m71bnmvqci9r8gglrqilgx424r6ff7q"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(#:imported-modules ((guix build python-build-system)
+ ,@%gnu-build-system-modules)
+ #:modules (((guix build python-build-system) #:select (site-packages))
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'enable-bytecode-determinism
+ (lambda _
+ (setenv "PYTHONHASHSEED" "0")
+ #t))
(add-after 'unpack 'fix-compatability
;; Versions after 4.8.3 have immintrin.h IFDEFed for Windows only.
(lambda _
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(invoke "./configure"
- (string-append "--prefix=" (assoc-ref outputs "out")))))
+ "--python"
+ (string-append "--prefix=" (assoc-ref outputs "out"))
+ (string-append "--pypkgdir=" (site-packages inputs outputs)))))
(add-after 'configure 'change-directory
(lambda _
(chdir "build")
(base32
"1687xpjjzig27y2pnqv7hv09smpijyfdpz7qjgmcxf4shfajlfkc"))))
(build-system cmake-build-system)
- (home-page "http://libelemental.org")
+ (home-page "https://github.com/elemental/Elemental")
(native-inputs
`(("gfortran" ,gfortran)))
(inputs
(arguments
'(#:configure-flags '("-DMCRL2_ENABLE_GUI_TOOLS=OFF")))))
-(define-public r-subplex
- (package
- (name "r-subplex")
- (version "1.5-4")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "subplex" version))
- (sha256
- (base32
- "10cbgbx1bgsax5z7gz6716g360xpq4mvq19cf4qqrxv02mmwz57z"))))
- (build-system r-build-system)
- (native-inputs
- `(("gfortran" ,gfortran)))
- (home-page "https://cran.r-project.org/web/packages/subplex")
- (synopsis "Unconstrained optimization using the subplex algorithm")
- (description "This package implements the Subplex optimization algorithm.
-It solves unconstrained optimization problems using a simplex method on
-subspaces. The method is well suited for optimizing objective functions that
-are noisy or are discontinuous at the solution.")
- (license license:gpl3+)))
-
-(define-public r-desolve
- (package
- (name "r-desolve")
- (version "1.24")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "deSolve" version))
- (sha256
- (base32
- "0hkvspq0fp8j64l9zayab2l2nazazhwfgfym0jllh0xv5a12r99s"))))
- (properties `((upstream-name . "deSolve")))
- (build-system r-build-system)
- (native-inputs
- `(("gfortran" ,gfortran)))
- (home-page "https://desolve.r-forge.r-project.org/")
- (synopsis "Solvers for initial value problems of differential equations")
- (description "This package provides functions that solve initial
-value problems of a system of first-order ordinary differential equations (ODE),
-of partial differential equations (PDE), of differential algebraic equations
-(DAE), and of delay differential equations. The functions provide an interface
-to the FORTRAN functions lsoda, lsodar, lsode, lsodes of the ODEPACK collection,
-to the FORTRAN functions dvode and daspk and a C-implementation of solvers of
-the Runge-Kutta family with fixed or variable time steps. The package contains
-routines designed for solving ODEs resulting from 1-D, 2-D and 3-D partial
-differential equations (PDE) that have been converted to ODEs by numerical
-differencing.")
- (license license:gpl2+)))
-
(define-public tcalc
(package
(name "tcalc")
(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
(modify-phases %standard-phases
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "build_tests" make-flags)))
- ;; These tests fail because they require a fully functional MPI
- ;; environment.
- (add-after 'unpack 'disable-failing-tests
- (lambda _
- (setenv "ARGS"
- (string-append "--exclude-regex '("
- (string-join
- (list
- "remoteindicestest"
- "remoteindicestest-mpi-2"
- "syncertest"
- "syncertest-mpi-2"
- "variablesizecommunicatortest"
- "variablesizecommunicatortest-mpi-2"
- "arithmetictestsuitetest"
- "assertandreturntest"
- "assertandreturntest_ndebug"
- "concept"
- "debugaligntest"
- "mpicollectivecommunication"
- "mpicollectivecommunication-mpi-2"
- "mpiguardtest"
- "mpiguardtest-mpi-2"
- "mpihelpertest"
- "mpihelpertest-mpi-2"
- "mpihelpertest2"
- "mpihelpertest2-mpi-2")
- "|")
- ")'"))
- #t)))))
+ (apply invoke "make" "build_tests" make-flags))))))
(inputs
`(("gmp" ,gmp)
("metis" ,metis)
- ("openmpi" ,openmpi)
("openblas" ,openblas)
("python" ,python)
("superlu" ,superlu)))
(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
(apply invoke "make" "build_tests" make-flags))))))
(inputs
`(("dune-common" ,dune-common)
- ("openmpi" ,openmpi)
;; Optional
("openblas" ,openblas)
("gmp" ,gmp)
;; GPL version 2 with "runtime exception"
(license license:gpl2)))
+(define-public dune-uggrid
+ (package
+ (name "dune-uggrid")
+ (version "2.7.0")
+ (source
+ (origin
+ (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
+ "192miqgmfj6jwk969gydzpbv9ki7jg5nky3ydnrwa2nq29b5xkh0"))))
+ (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)))
+ (native-inputs
+ `(("gfortran" ,gfortran)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://dune-project.org/")
+ (synopsis "Distributed and Unified Numerics Environment")
+ (description "DUNE, the Distributed and Unified Numerics Environment is a
+modular toolbox for solving @dfn{partial differential equations} (PDEs) with
+grid-based methods. It supports the easy implementation of methods like
+@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite
+Differences} (FD).
+
+This package contains the DUNE UG grid classes.")
+ (license license:lgpl2.1)))
+
(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
(modify-phases %standard-phases
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "build_tests" make-flags)))
- ;; These tests fail because they require a fully functional MPI
- ;; environment.
- (add-after 'unpack 'disable-failing-tests
- (lambda _
- (setenv "ARGS"
- (string-append "--exclude-regex '("
- (string-join
- (list
- "scsgmappertest"
- "conformvolumevtktest"
- "gnuplottest"
- "nonconformboundaryvtktest"
- "subsamplingvtktest"
- "vtktest"
- "vtktest-mpi-2"
- "vtksequencetest"
- "gmshtest-onedgrid"
- "test-dgf-yasp"
- "test-dgf-yasp-offset"
- "test-dgf-oned"
- "test-geogrid-yaspgrid"
- "test-gridinfo"
- "test-identitygrid"
- "testiteratorranges"
- "test-hierarchicsearch"
- "test-parallel-ug-mpi-2"
- "test-yaspgrid-backuprestore-equidistant"
- "test-yaspgrid-backuprestore-equidistant-mpi-2"
- "test-yaspgrid-backuprestore-equidistantoffset"
- "test-yaspgrid-backuprestore-equidistantoffset-mpi-2"
- "test-yaspgrid-backuprestore-tensor"
- "test-yaspgrid-backuprestore-tensor-mpi-2"
- "test-yaspgrid-tensorgridfactory"
- "test-yaspgrid-tensorgridfactory-mpi-2"
- "test-yaspgrid-yaspfactory-1d"
- "test-yaspgrid-yaspfactory-1d-mpi-2"
- "test-yaspgrid-yaspfactory-2d"
- "test-yaspgrid-yaspfactory-2d-mpi-2"
- "test-yaspgrid-yaspfactory-3d"
- "test-yaspgrid-yaspfactory-3d-mpi-2"
- "globalindexsettest"
- "persistentcontainertest"
- "structuredgridfactorytest"
- "tensorgridfactorytest"
- "vertexordertest")
- "|")
- ")'"))
- #t)))))
+ (apply invoke "make" "build_tests" make-flags))))))
(inputs
`(("dune-common" ,dune-common)
("dune-geometry" ,dune-geometry)
("gmp" ,gmp)
("metis" ,metis)
("openblas" ,openblas)
- ("openmpi" ,openmpi)
("python" ,python)))
+ (propagated-inputs
+ `(("dune-uggrid" ,dune-uggrid)))
(native-inputs
`(("gfortran" ,gfortran)
("pkg-config" ,pkg-config)))
(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
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "build_tests" make-flags)))
- ;; These tests fail because they require a fully functional MPI
- ;; environment.
- (add-after 'unpack 'disable-failing-tests
- (lambda _
- (setenv "ARGS"
- (string-append "--exclude-regex '("
- (string-join
- (list
- "galerkintest"
- "hierarchytest"
- "pamgtest"
- "pamg_comm_repart_test"
- "matrixredisttest"
- "vectorcommtest"
- "matrixmarkettest")
- "|")
- ")'"))
- #t)))))
+ (apply invoke "make" "build_tests" make-flags))))))
(inputs
`(("dune-common" ,dune-common)
- ("openmpi" ,openmpi)
;; Optional
("metis" ,metis)
+ ("suitesparse" ,suitesparse)
("superlu" ,superlu)
("openblas" ,openblas)
("gmp" ,gmp)
(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
(inputs
`(("dune-common" ,dune-common)
("dune-geometry" ,dune-geometry)
- ("openmpi" ,openmpi)
;; Optional
("metis" ,metis)
("superlu" ,superlu)
(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
- `(#:tests? #f ; 7 of 8 tests fail because they need a full MPI
- ; environment
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-include
(lambda _
`(("dune-common" ,dune-common)
("dune-geometry" ,dune-geometry)
("dune-grid" ,dune-grid)
- ("openmpi" ,openmpi)
;; Optional
("metis" ,metis)
("openblas" ,openblas)
cubes.")
(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
+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+)))
+
(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
(apply invoke "make" "build_tests" make-flags))))))
(inputs
`(("dune-common" ,dune-common)
- ("openmpi" ,openmpi)
;; Optional
("openblas" ,openblas)
("python" ,python)
(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 `(#:tests? #f)) ; FIXME: tests require dune-uugrid
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ (setenv "ARGS"
+ ;; unable to load GMSH file in this test
+ "--exclude-regex gridviewfunctionspacebasistest")
+ #t))
+ (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-istl" ,dune-istl)
("dune-grid" ,dune-grid)
("dune-geometry" ,dune-geometry)
("dune-typetree" ,dune-typetree)
- ("openmpi" ,openmpi)
("openblas" ,openblas)
("metis" ,metis)
("python" ,python)
(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
("dune-grid" ,dune-grid)
("dune-typetree" ,dune-typetree)
("dune-functions" ,dune-functions)
- ("openmpi" ,openmpi)
;; Optional
("openblas" ,openblas)
("eigen" ,eigen)
;; Either GPL version 2 with "runtime exception" or LGPLv3+.
(license (list license:lgpl3+ license:gpl2))))
+(define add-openmpi-to-dune-package
+ (let ((dune-package?
+ (lambda (p) (string-prefix? "dune-" (package-name p)))))
+ (package-mapping
+ (lambda (p)
+ (if (dune-package? p)
+ (package (inherit p)
+ (name (string-append (package-name p) "-openmpi"))
+ (inputs `(,@(package-inputs p)
+ ("openmpi" ,openmpi)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments p)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)))))
+ (synopsis (string-append (package-synopsis p) " (with MPI support)")))
+ p))
+ (negate dune-package?))))
+
+(define-public dune-common-openmpi
+ (add-openmpi-to-dune-package dune-common))
+
+(define-public dune-geometry-openmpi
+ (add-openmpi-to-dune-package dune-geometry))
+
+(define-public dune-istl-openmpi
+ (add-openmpi-to-dune-package dune-istl))
+
+(define-public dune-typetree-openmpi
+ (add-openmpi-to-dune-package dune-typetree))
+
+(define-public dune-uggrid-openmpi
+ (add-openmpi-to-dune-package dune-uggrid))
+
+(define-public dune-grid-openmpi
+ (add-openmpi-to-dune-package dune-grid))
+
+(define-public dune-alugrid-openmpi
+ (add-openmpi-to-dune-package dune-alugrid))
+
+(define-public dune-subgrid-openmpi
+ (add-openmpi-to-dune-package dune-subgrid))
+
+(define-public dune-localfunctions-openmpi
+ (add-openmpi-to-dune-package dune-localfunctions))
+
+(define-public dune-functions-openmpi
+ (add-openmpi-to-dune-package dune-functions))
+
+(define-public dune-pdelab-openmpi
+ (add-openmpi-to-dune-package dune-pdelab))
+
(define-public mlucas
(package
(name "mlucas")
(define-public nauty
(package
(name "nauty")
- (version "2.6r11")
+ (version "2.6r12")
(source (origin
(method url-fetch)
(uri (string-append
".tar.gz"))
(sha256
(base32
- "05z6mk7c31j70md83396cdjmvzzip1hqb88pfszzc6k4gy8h3m2y"))))
+ "1p4mxf8q5wm47nxyskxbqwa5p1vvkycv1zgswvnk9nsn6vff0al6"))))
(build-system gnu-build-system)
(outputs '("out" "lib"))
(arguments
keyboard. Some distinctive features are auto-completion of functions and
variables, a formula book, and quick insertion of constants from various
fields of knowledge.")
- (home-page "http://speedcrunch.org/")
+ (home-page "https://speedcrunch.org/")
(license license:gpl2+)))
+(define-public minisat
+ ;; This is the last commit which is available upstream, no
+ ;; release happened since 2010.
+ (let ((commit "37dc6c67e2af26379d88ce349eb9c4c6160e8543")
+ (revision "1"))
+ (package
+ (name "minisat")
+ (version (string-append "2.2.0-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/niklasso/minisat.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "091hf3qkm197s5r7xcr3m07xsdwyz2rqk1hc9kj0hn13imz09irq"))
+ (patches
+ (search-patches "minisat-friend-declaration.patch"
+ "minisat-install.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list (string-append "prefix=" %output))
+ #:tests? #f ;no check target
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs
+ `(("zlib:static" ,zlib "static")
+ ("zlib" ,zlib)))
+ (synopsis
+ "Small, yet efficient, SAT solver")
+ (description
+ "MiniSat is a minimalistic, open-source SAT solver, developed to help
+researchers and developers alike to get started on SAT.")
+ (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, uncertainity propagation,
+interval arithmetic, plotting.")
+ (license license:gpl2+)))