;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2022 Marek Felšöci <marek@felsoci.sk>
+;;; Copyright © 2022 vicvbcun <guix@ikherbers.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (ice-9 match)
#:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
(define-public units
(package
(name "units")
- (version "2.21")
+ (version "2.22")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/units/units-" version
".tar.gz"))
(sha256 (base32
- "1bybhqs4yrly9myb5maz3kdmf8k4fhk2m1d5cbcryn40z6lq0gkc"))))
+ "0j2q2a9sgldqwcifsnb7qagsmp8fvj91vfh6v4k7gzi1fwhf24sx"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline)
(define-public cddlib
(package
(name "cddlib")
- (version "0.94i")
+ (version "0.94m")
(source
(origin
- (method url-fetch)
- (uri (string-append "ftp://ftp.math.ethz.ch/users/fukudak/cdd/cddlib-"
- (string-delete #\. version) ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cddlib/cddlib")
+ (commit version)))
(sha256
(base32
- "00zdgiqb91vx6gd2103h3ijij0llspsxc6zz3iw2bll39fvkl4xq"))))
+ "09s8323h5w9j6mpl1yc6lm770dkskfxd2ayyafkcjllmnncxzfa0"))))
(build-system gnu-build-system)
(inputs
(list gmp))
+ (native-inputs (list autoconf
+ automake
+ libtool
+ texlive-amsfonts
+ texlive-dvips-l3backend
+ texlive-latex-graphics
+ texlive-latex-l3backend
+ texlive-tiny))
+ (arguments
+ (list #:configure-flags
+ #~(list (string-append "--docdir=" #$output
+ "/share/doc/" #$name "-" #$version))))
(home-page "https://www.inf.ethz.ch/personal/fukudak/cdd_home/index.html")
(synopsis "Library for convex hulls and extreme rays of polyhedra")
(description
HDF5 file is encoded according to the HDF File Format Specification.")
(license (license:x11-style "file://COPYING"))))
+(define-public itex2mml
+ (package
+ (name "itex2mml")
+ (version "1.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://golem.ph.utexas.edu"
+ "/~distler/blog/files/itexToMML-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0pz51c0hfh2mg8xli0wj7hf92s3b7yf5r4114g8z8722lcm5gwiy"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ (delete-file-recursively "itex-binaries")))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list bison
+ flex))
+ (arguments
+ (list
+ #:make-flags #~(list (string-append "BINDIR=" #$output "/bin/")
+ (string-append "CC=" #$(cc-for-target)))
+ #:tests? #f ;; there are none
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'chdir
+ (lambda args
+ (chdir "itex-src")))
+ (add-before 'install 'make-bindir
+ (lambda args
+ (mkdir-p (string-append #$output "/bin"))))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((doc-prefix (or (assoc-ref outputs "doc")
+ #$output))
+ (itex2mml+version (strip-store-file-name #$output))
+ (doc-dir (string-append doc-prefix
+ "/share/doc/"
+ itex2mml+version)))
+ (install-file "../README" doc-dir)))))))
+ (home-page "https://golem.ph.utexas.edu/~distler/blog/itex2MML.html")
+ (synopsis "LaTeX to XHTML/MathML converter")
+ (description
+ "The @command{itex2MML} utility is a stream filter. It takes text with
+embedded itex equations, converts the itex equations to MathML, and outputs
+the resulting text.")
+ (license (list license:lgpl2.0+ license:gpl2+ license:mpl1.1))))
+
(define-public itpp
(package
(name "itpp")
(arguments `(#:tests? #f ; Tests require googletest *sources*
#:phases
(modify-phases %standard-phases
+ (add-after 'install 'delete-formulas-log
+ ;; Contains date and timing information which is unreproducible,
+ ;; and should not be needed when using the package
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (delete-file (string-append out "/share/doc/itpp/html/_formulas.log")))))
(add-after 'unpack 'set-man-page-date
(lambda _
(substitute* "itpp-config.1.cmake.in"
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/veusz")
`("QT_PLUGIN_PATH" prefix
- ,(list (string-append (assoc-ref inputs "qtsvg-5")
+ ,(list (string-append (assoc-ref inputs "qtsvg")
"/lib/qt5/plugins/"))))))))))
(native-inputs
(list pkg-config
(define-public mumps
(package
(name "mumps")
- (version "5.2.1")
+ (version "5.5.1")
(source
(origin
(method url-fetch)
- (uri (string-append "http://mumps.enseeiht.fr/MUMPS_"
- version ".tar.gz"))
+ (uri (list (string-append "http://mumps.enseeiht.fr/MUMPS_"
+ version ".tar.gz")
+ (string-append
+ "https://ftp.mcs.anl.gov/pub/petsc/externalpackages"
+ "/MUMPS_" version ".tar.gz")))
(sha256
(base32
- "0jklh54x4y3ik1zkw6db7766kakjm5910diyaghfxxf8vwsgr26r"))
- (patches (search-patches "mumps-build-parallelism.patch"
- "mumps-shared-libseq.patch"
- "mumps-shared-mumps.patch"
- "mumps-shared-pord.patch"))))
+ "05gs2i8b76m9flm1826fxpyfnwibjjawbmfza3ylrvj7zaag5gqs"))))
(build-system gnu-build-system)
(inputs
(list gfortran
#:phases
(modify-phases %standard-phases
(replace 'configure
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs #:allow-other-keys)
(call-with-output-file "Makefile.inc"
(lambda (port)
(format port "
-PLAT =
-LIBEXT = .a
-OUTC = -o
-OUTF = -o
-RM = rm -f~:[
-CC = gcc
-FC = gfortran
-FL = gfortran
-INCSEQ = -I$(topdir)/libseq
-LIBSEQ = $(topdir)/libseq/libmpiseq.a
-LIBSEQNEEDED = libseqneeded~;
-CC = mpicc
-FC = mpifort
-FL = mpifort~]
-AR = ar vr # rules require trailing space, ugh...
-RANLIB = ranlib
-BLASDIR = ~a
-LIBBLAS = -Wl,-rpath=$(BLASDIR) -Wl,-rpath='$$ORIGIN' -L$(BLASDIR) -lopenblas~@[
-SCALAPDIR = ~a
-SCALAP = -Wl,-rpath=$(SCALAPDIR) -Wl,-rpath='$$ORIGIN' -L$(SCALAPDIR) -lscalapack~]
-LIBOTHERS = -pthread
-CDEFS = -DAdd_
-PIC = -fPIC
-OPTF = -O2 -DALLOW_NON_INIT -fallow-argument-mismatch $(PIC)
-OPTL = -O2 $(PIC)
-OPTC = -O2 $(PIC)
-INCS = $(INCSEQ)
-LIBS = $(SCALAP) $(LIBSEQ)
-LPORDDIR = $(topdir)/PORD/lib
-IPORD = -I$(topdir)/PORD/include
-LPORD = $(LPORDDIR)/libpord.a
-ORDERINGSF = -Dpord~@[
-METISDIR = ~a
-IMETIS = -I$(METISDIR)/include
-LMETIS = -Wl,-rpath $(METISDIR)/lib -L$(METISDIR)/lib -lmetis
-ORDERINGSF += -Dmetis~]~@[~:{
-SCOTCHDIR = ~a
-ISCOTCH = -I$(SCOTCHDIR)/include
-LSCOTCH = -Wl,-rpath $(SCOTCHDIR)/lib -L$(SCOTCHDIR)/lib ~a-lesmumps -lscotch -lscotcherr
-ORDERINGSF += ~a~}~]
-ORDERINGSC = $(ORDERINGSF)
-LORDERINGS = $(LPORD) $(LMETIS) $(LSCOTCH) $(LIBSEQ)
-IORDERINGSF = $(ISCOTCH)
-IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)"
- (->bool (which "mpicc")) ;MPI support enabled?
- (dirname
- (dirname (search-input-file inputs "/include/cblas.h")))
+PLAT =
+LIBEXT = .a
+LIBEXT_SHARED = .so
+OUTC = -o
+OUTF = -o
+BLASDIR = ~a
+LIBBLAS = -Wl,-rpath=$(BLASDIR)/lib -Wl,-rpath='$$ORIGIN'
+LIBBLAS += -L$(BLASDIR)/lib
+LIBBLAS += -lopenblas~@[
+SCALAPDIR = ~a
+SCALAP = -Wl,-rpath=$(SCALAPDIR)/lib -Wl,-rpath='$$ORIGIN'
+SCALAP += -L$(SCALAPDIR)/lib -lscalapack~]
+RM = rm -f~:[
+CC = gcc
+FC = gfortran
+FL = gfortran
+INCSEQ = -I$(topdir)/libseq
+LIBSEQ = $(LAPACK) -L$(topdir)/libseq -lmpiseq
+LIBSEQNEEDED = libseqneeded
+INCS = $(INCSEQ)
+LIBS = $(LIBSEQ)~;
+CC = mpicc
+FC = mpifort
+FL = mpifort
+INCPAR =
+LIBPAR = $(SCALAP) $(LAPACK)
+LIBSEQNEEDED =
+INCS = $(INCPAR)
+LIBS = $(LIBPAR)~]
+AR = ar vr # rules require trailing space, ugh...
+RANLIB = ranlib
+LIBOTHERS = -pthread
+CDEFS = -DAdd_
+PIC = -fPIC
+FPIC_OPT = $(PIC)
+RPATH_OPT = -Wl,-rpath,~a/lib
+OPTF = -O2 -fopenmp -DALLOW_NON_INIT -DBLR_MT
+OPTF += -fallow-argument-mismatch $(PIC)
+OPTL = -O2 -fopenmp $(PIC)
+OPTC = -O2 -fopenmp $(PIC)
+LPORDDIR = $(topdir)/PORD/lib
+IPORD = -I$(topdir)/PORD/include
+LPORD = $(LPORDDIR)/libpord.a
+ORDERINGSF = -Dpord~@[
+METISDIR = ~a
+IMETIS = -I$(METISDIR)/include
+LMETIS = -Wl,-rpath $(METISDIR)/lib -L$(METISDIR)/lib -lmetis
+ORDERINGSF += -Dmetis~]~@[~:{
+SCOTCHDIR = ~a
+ISCOTCH = -I$(SCOTCHDIR)/include
+LSCOTCH = -Wl,-rpath $(SCOTCHDIR)/lib -L$(SCOTCHDIR)/lib ~a -lesmumps
+LSCOTCH += -lscotch -lscotcherr
+ORDERINGSF += ~a~}~]
+ORDERINGSC = $(ORDERINGSF)
+LORDERINGS = $(LPORD) $(LMETIS) $(LSCOTCH)
+IORDERINGSF = $(ISCOTCH)
+IORDERINGSC = $(IPORD) $(IMETIS) $(ISCOTCH)"
+ (assoc-ref inputs "openblas")
(assoc-ref inputs "scalapack")
+ (->bool (which "mpicc")) ;; MPI support enabled?
+ (assoc-ref outputs "out")
(assoc-ref inputs "metis")
(match (list (assoc-ref inputs "pt-scotch")
(assoc-ref inputs "scotch"))
"-lesmumps -lptscotch -lptscotcherr "
"-Dptscotch")))))))))
(replace 'build
- ;; By default only the d-precision library is built. Make with "all"
- ;; target so that all precision libraries and examples are built.
- (lambda _
- (invoke "make" "all"
- (format #f "-j~a" (parallel-job-count)))))
+ ;; By default only the d-precision library is built. Make with "all"
+ ;; target so that all precision libraries and examples are built.
+ ;; Then, "make allshared" builts equivalent shared libraries as well.
+ (lambda _
+ (invoke "make" "all"
+ (format #f "-j~a" (parallel-job-count)))
+ (invoke "make" "allshared"
+ (format #f "-j~a" (parallel-job-count)))))
(replace 'check
;; Run the simple test drivers, which read test input from stdin:
;; from the "real" input for the single- and double-precision
(define-public maxima
(package
(name "maxima")
- (version "5.45.1")
+ (version "5.46.0")
(source
(origin
(method url-fetch)
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
- "1p77nk5sz1qfkn5zr97szpbi8ib4b22k8i52l4ag5gkhd4kid47y"))
+ "01wbm8jj43p7gpdj4h55aij0b44bjydn4bwb7q1wjrfs91mz143k"))
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system)
(inputs
;; components at runtime.
(wrap-program (string-append out "/bin/maxima")
`("PATH" prefix (,binutils))))
- #t)))))
+ #t))
+ ;; The Maxima command ‘describe’ allows to pick the relevant portions
+ ;; from Maxima’s Texinfo docs. However it does not support reading
+ ;; gzipped info files.
+ (delete 'compress-documentation))))
(home-page "https://maxima.sourceforge.io")
(synopsis "Numeric and symbolic expression manipulation")
(description "Maxima is a system for the manipulation of symbolic and
(define-public wxmaxima
(package
(name "wxmaxima")
- (version "21.05.2")
+ (version "22.05.0")
(source
(origin
(method git-fetch)
(commit (string-append "Version-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0h7ryykh2dapcyvpp4f1j1b3vrrz80x9k8nkci2yxifgdb29vyhw"))))
+ (base32 "1va56v9dys97yln4m1z3fz3k90lpy8i3kvcq0v1cbg36689aghm5"))))
(build-system cmake-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)))
"http://minisat.se/MiniSat.html")
(license license:expat))))
+(define-public kissat
+ (package
+ (name "kissat")
+ (version "3.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/arminbiere/kissat")
+ (commit (string-append "rel-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "04x4w760srbdi4zci0s747qxk717x5d2x59ixraxh5104s9nyn8b"))))
+ (build-system gnu-build-system)
+ (inputs (list xz gzip lzip bzip2 p7zip))
+ (arguments
+ (list
+ #:test-target "test"
+ #:configure-flags #~(list "-shared")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/file.c"
+ (("(bzip2|gzip|lzma|xz) -c" all cmd)
+ (string-append (search-input-file inputs
+ (string-append "bin/" cmd))
+ " -c"))
+ (("7z ([ax])" all mode)
+ (string-append (search-input-file inputs "bin/7z")
+ " " mode))
+ ;; Since we hard-coded the paths, we no longer need to find
+ ;; them.
+ (("bool found = kissat_find_executable \\(name\\);")
+ "bool found = true;"))
+ (substitute* "test/testmain.c"
+ ;; SIGINT is ignored inside invoke.
+ (("^SIGNAL\\(SIGINT\\)") ""))))
+ (replace 'configure
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ ;; The configure script does not support standard GNU options.
+ (apply invoke "./configure" configure-flags)))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "build/kissat" (string-append out "/bin"))
+ (install-file "build/libkissat.so" (string-append out "/lib"))
+ (install-file "src/kissat.h"
+ (string-append out "/include"))))))))
+ (home-page "https://github.com/arminbiere/kissat")
+ (synopsis "Bare-metal SAT solver")
+ (description
+ "Kissat is a bare-metal SAT-solver written in C. It is a port of CaDiCaL
+back to C with improved data structures, better scheduling of inprocessing and
+optimized algorithms and implementation.")
+ (license license:expat)))
+
(define-public libqalculate
(package
(name "libqalculate")
ocaml-graph
ocaml-yojson
ocaml-zarith
+ ocaml-lablgtk3-sourceview3
+ lablgtk3
why3))
(native-search-paths
(list (search-path-specification