;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Amin Bandali <mab@gnu.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 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)
(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")
`( #: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
"qscintilla2_qt5"))
#t))))))))
-(define-public qtoctave
- (deprecated-package "qtoctave" octave))
-
(define-public opencascade-oce
(package
(name "opencascade-oce")
"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 wxmaxima
(package
(name "wxmaxima")
- (version "20.02.4")
+ (version "20.03.1")
(source
(origin
(method git-fetch)
(commit (string-append "Version-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "106a7jrjwfmymzj70nsv44fm3jbxngr8pmkaghhpwy0ln38lhf54"))))
+ (base32 "09ciip0wkahps5jdsqqr72bwjrd15bacw38zp23v3hm71xfk8hky"))))
(build-system cmake-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
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
;; 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
("lapack" ,lapack)
("metis" ,metis)))
(native-inputs
- `(("cmake" ,cmake)
+ `(("cmake" ,cmake-minimal)
("m4" ,m4)))
(home-page "http://faculty.cse.tamu.edu/davis/suitesparse.html")
(synopsis "Suite of sparse matrix software")
(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 _
(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)))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup))))
+ (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)
(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
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "build_tests" make-flags))))))
(inputs
- `(("dune-common" ,dune-common)
- ("openmpi" ,openmpi)))
+ `(("dune-common" ,dune-common)))
(native-inputs
`(("gfortran" ,gfortran)
("pkg-config" ,pkg-config)))
(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)))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup))))
+ (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)))
(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)))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup))))
+ (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
`(#:phases
(lambda* (#:key inputs make-flags #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "dune-grid") "/share"))
- (apply invoke "make" "build_tests" make-flags)))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup))))
+ (apply invoke "make" "build_tests" make-flags))))))
(inputs
`(("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
`(#:phases
#t))
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "build_tests" make-flags)))
- (add-before 'check 'mpi-setup
- ,%openmpi-setup))))
+ (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")
(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+)))