;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2014, 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2016, 2017 John Darrington <jmd@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
-;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system ocaml)
#:use-module (guix build-system r)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages less)
#:use-module (gnu packages lisp)
#:use-module (gnu packages logging)
+ #:use-module (gnu packages lua)
#:use-module (gnu packages gnome)
#:use-module (gnu packages guile)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages imagemagick)
#:use-module (gnu packages m4)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages netpbm)
+ #:use-module (gnu packages ocaml)
#:use-module (gnu packages pcre)
#:use-module (gnu packages popt)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages tbb)
+ #:use-module (gnu packages scheme)
#:use-module (gnu packages shells)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
- #:use-module (gnu packages zip)
#:use-module (srfi srfi-1))
+(define-public aris
+ (package
+ (name "aris")
+ (version "2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/" name "/" name "-" version ".tar.gz"))
+ (sha256 (base32
+ "1q1887ryqdr9sn0522hc7p16kqwlxxyz5dkmma8ar2nxplhgll7q"))))
+ (build-system gnu-build-system)
+ (inputs `(("gtk+" ,gtk+)
+ ("libxml2" ,libxml2)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (synopsis "Natural deduction first-order logic interface")
+ (description "Aris is a program for performing logical proofs. It supports
+propositional and predicate logic, as well as Boolean algebra and
+arithmetical logic. In addition to its predefined inference and equivalence
+rules, Aris also supports references to older proofs. Its use of standard
+logical symbols and its natural deduction interface make it easy to use for
+beginners.")
+ (license license:gpl3+)
+ (home-page "https://www.gnu.org/software/aris/")))
+
(define-public c-graph
(package
(name "c-graph")
student to write code, the program offers an intuitive interface with
interactive dialogs to guide them.")
(license license:gpl3+)
- (home-page "http://www.gnu.org/software/c-graph/")))
+ (home-page "https://www.gnu.org/software/c-graph/")))
(define-public coda
(package
(name "coda")
- (version "2.17.3")
+ (version "2.18")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/stcorp/coda/releases/download/"
version "/coda-" version ".tar.gz"))
(sha256
- (base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"))
+ (base32 "11asla1ap8vd73farqjlpb179sfiy0biydcwxjfcakrp9sf8v9bs"))
(patches (search-patches "coda-use-system-libs.patch"))
(modules '((guix build utils)))
(snippet
(define-public units
(package
(name "units")
- (version "2.13")
+ (version "2.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/units/units-" version
".tar.gz"))
(sha256 (base32
- "1awhjw9zjlfb8s5g3yyx63f7ddfcr1sanlbxpqifmrgq24ql198b"))))
+ "1s421bxm36akjsy3qzg6da1d1g20gh094ac2slqxipgkh8yqjcwx"))))
(build-system gnu-build-system)
(synopsis "Conversion between thousands of scales")
(description
conversions such as Fahrenheit to Celsius. Its interpreter is powerful
enough to be used effectively as a scientific calculator.")
(license license:gpl3+)
- (home-page "http://www.gnu.org/software/units/")))
+ (home-page "https://www.gnu.org/software/units/")))
(define-public double-conversion
(package
universal constants, atomic numbers, and constants related to
semiconductors.")
(license license:gpl3+)
- (home-page "http://www.gnu.org/software/dionysus/")))
+ (home-page "https://www.gnu.org/software/dionysus/")))
(define-public gsl
(package
(name "gsl")
- (version "2.3")
+ (version "2.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gsl/gsl-"
version ".tar.gz"))
(sha256
(base32
- "1yxdzqjwmi2aid650fa9zyr8llw069x7lm489wx9nnfdi6vh09an"))
+ "16yfs5n444s03np1naj6yp1fsysd42kdscxzkg0k2yvfjixx0ijd"))
(patches (search-patches "gsl-test-i686.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:parallel-tests? #f))
- (home-page "http://www.gnu.org/software/gsl/")
+ `(;; 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)
+ '())))
+ (home-page "https://www.gnu.org/software/gsl/")
(synopsis "Numerical library for C and C++")
(description
"The GNU Scientific Library is a library for numerical analysis in C
numbers.")
(license license:gpl3+)))
+(define-public ocaml-gsl
+ (package
+ (name "ocaml-gsl")
+ (version "1.19.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://github.com/mmottl/gsl-ocaml/releases/download/v"
+ version"/gsl-ocaml-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0nzp43hp8pbjqkrxnwp5lgjrabxayf61h18fjaydi0s5faq6f3xh"))))
+ (build-system ocaml-build-system)
+ (inputs
+ `(("gsl" ,gsl)))
+ (home-page "https://mmottl.github.io/gsl-ocaml")
+ (synopsis "Bindings to the GNU Scientific Library")
+ (description
+ "GSL-OCaml is an interface to the @dfn{GNU scientific library} (GSL) for
+the OCaml language.")
+ (license license:gpl3+)))
+
+(define-public ocaml4.01-gsl
+ (package-with-ocaml4.01 ocaml-gsl))
+
(define-public glpk
(package
(name "glpk")
- (version "4.61")
+ (version "4.63")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "1adbvwiaqrv9pql9ry3lhn2vfsxnff2vh4fs477d90kpfx0xwrlq"))))
+ "1xp7nclmp8inp20968bvvfcwmz3mz03sbm0v3yjz8aqwlpqjfkci"))))
(build-system gnu-build-system)
(inputs
`(("gmp" ,gmp)))
(source
(origin
(method url-fetch)
- (uri (string-append "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-"
+ (uri (string-append "ftp://ftp.math.ethz.ch/users/fukudak/cdd/cddlib-"
(string-delete #\. version) ".tar.gz"))
(sha256
(base32
(define-public lapack
(package
(name "lapack")
- (version "3.5.0")
+ (version "3.7.1")
(source
(origin
(method url-fetch)
version ".tgz"))
(sha256
(base32
- "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s"))))
+ "1j51r7n5w4k7r3lrvy7710xrpkg40wf4rqnmngfz6ck9ypckzign"))))
(build-system cmake-build-system)
(home-page "http://www.netlib.org/lapack/")
(inputs `(("fortran" ,gfortran)
("python" ,python-2)))
(arguments
- `(#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES"
- "-DLAPACKE=ON")
+ `(#:configure-flags (list
+ ;; Install to PREFIX/lib (the default is
+ ;; PREFIX/lib64).
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out")
+ "/lib")
+
+ "-DBUILD_SHARED_LIBS:BOOL=YES"
+ "-DLAPACKE=ON"
+
+ ;; Build the 'LAPACKE_clatms' functions.
+ "-DLAPACKE_WITH_TMG=ON")
#:phases (alist-cons-before
'check 'patch-python
(lambda* (#:key inputs #:allow-other-keys)
(define-public gnuplot
(package
(name "gnuplot")
- (version "5.0.5")
+ (version "5.0.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
version ".tar.gz"))
(sha256
(base32
- "0lr065qdlgss8lmy31l7hkmnk9fp4lvqq9qgb1f1209f36zy1wr5"))))
+ "0q5lr6nala3ln6f3yp6g17ziymb9r9gx9zylnw1y3hjmwl9lggjv"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)
("cairo" ,cairo)
("pango" ,pango)
- ("gd" ,gd)))
- (native-inputs `(("pkg-config" ,pkg-config)
- ("texlive" ,texlive-minimal)))
+ ("gd" ,gd)
+ ("lua" ,lua)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("texlive" ,texlive-tiny)))
(home-page "http://www.gnuplot.info")
(synopsis "Command-line driven graphing utility")
(description "Gnuplot is a portable command-line driven graphing
(define-public hdf4
(package
(name "hdf4")
- (version "4.2.12")
+ (version "4.2.13")
(source
(origin
(method url-fetch)
(uri (string-append "https://support.hdfgroup.org/ftp/HDF/releases/HDF"
version "/src/hdf-" version ".tar.bz2"))
(sha256
- (base32 "020jh563sjyxsgml8l809d2i1d4ms9shivwj3gbm7n0ilxbll8id"))
+ (base32 "1wz0586zh91pqb95wvr0pbh71a8rz358fdj6n2ksp85x2cis9lsm"))
(patches (search-patches "hdf4-architectures.patch"
"hdf4-reproducibility.patch"
"hdf4-shared-fortran.patch"))))
-
(build-system gnu-build-system)
(native-inputs
`(("gfortran" ,gfortran)
(define-public hdf5
(package
(name "hdf5")
- (version "1.8.18")
+ (version "1.8.19")
(source
(origin
(method url-fetch)
- (uri (list (string-append "http://www.hdfgroup.org/ftp/HDF5/releases/"
- "hdf5-" version "/src/hdf5-"
+ (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"
(take (string-split version #\.) 2))
"/src/hdf5-" version ".tar.bz2")))
(sha256
- (base32 "13542vrnl1p35n8vbq0wzk40vddmm33q5nh04j98c7r1yjnxxih1"))
+ (base32 "0f3jfbqpaaq21ighi40qzs52nb52kc2d2yjk541rjmsx20b3ih2r"))
(patches (list (search-patch "hdf5-config-date.patch")))))
(build-system gnu-build-system)
(inputs
HDF5 file is encoded according to the HDF File Format Specification.")
(license (license:x11-style "file://COPYING"))))
+(define-public itpp
+ (package
+ (name "itpp")
+ (version "4.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/itpp/itpp/"
+ version "/itpp-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "14ddy2xnb6sgp4hiax9v5sv4pr4l4dd4ps76nfha3nrpr1ikhcqm"))))
+ (build-system cmake-build-system)
+ (arguments `(#:tests? #f)) ; Tests require googletest *sources*
+ (inputs `(("lapack" ,lapack)
+ ("fftw" ,fftw)))
+ ;; FIXME: Even though the fonts are available dvips complains:
+ ;; "Font cmmi10 not found; characters will be left blank."
+ (native-inputs
+ `(("texlive" ,texlive-tiny)
+ ("ghostscript" ,ghostscript)
+ ("doxygen" ,doxygen)))
+ (home-page "http://itpp.sourceforge.net")
+ (synopsis "C++ library of maths, signal processing and communication classes")
+ (description "IT++ is a C++ library of mathematical, signal processing and
+communication classes and functions. Its main use is in simulation of
+communication systems and for performing research in the area of
+communications. The kernel of the library consists of generic vector and
+matrix classes, and a set of accompanying routines. Such a kernel makes IT++
+similar to MATLAB, GNU Octave or SciPy.")
+ (license license:gpl3+)))
+
(define-public netcdf
(package
(name "netcdf")
"--disable-shared" "--with-pic"
,flags))))))
+(define-public netcdf-fortran
+ (package
+ (name "netcdf-fortran")
+ (version "4.4.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0xaxdcg1p83zmypwml3swsnr3ccn38inwldyr1l3wa4dbwbrblxj"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-tests? #f))
+ (inputs
+ `(("netcdf" ,netcdf)))
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (synopsis "Fortran interface for the netCDF library")
+ (description (package-description netcdf))
+ (home-page (package-home-page netcdf))
+ (license (package-license netcdf))))
+
(define-public nlopt
(package
(name "nlopt")
(define-public octave
(package
(name "octave")
- (version "4.2.0")
+ (version "4.2.1")
(source
(origin
(method url-fetch)
version ".tar.lz"))
(sha256
(base32
- "19vvliwxgip0af812vny5xy5r8kacyj7v62203mh4z2n3p14b78i"))))
+ "09zhhch79jw3ynw39vizx0i2cbd2bjz3sp38pjdzraqrbivpwp92"))))
(build-system gnu-build-system)
(inputs
`(("lapack" ,lapack)
("readline" ,readline)
+ ("gl2ps" ,gl2ps)
("glpk" ,glpk)
("fftw" ,fftw)
("fftwf" ,fftwf)
("libxft" ,libxft)
("mesa" ,mesa)
("glu" ,glu)
- ("zlib" ,zlib)))
+ ("zlib" ,zlib)
+ ("curl" ,curl)
+ ("graphicsmagick" ,graphicsmagick)))
(native-inputs
`(("lzip" ,lzip)
("gfortran" ,gfortran)
("lapack" ,lapack)
("mesa" ,mesa)
("glu" ,glu)
+ ("opencascade-oce" ,opencascade-oce)
("libx11" ,libx11)
("libxext" ,libxext)))
(inputs
(arguments
`(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
"-DENABLE_BUILD_SHARED:BOOL=ON"
- "-DENABLE_BUILD_DYNAMIC:BOOL=ON")
- #:phases (modify-phases %standard-phases
- (replace
- 'check
- (lambda _
- (zero? (system* "make" "test"
- ;; Disable this test. See
- ;; https://geuz.org/trac/gmsh/ticket/271
- "ARGS=-E component8_in_a_box")))))))
+ "-DENABLE_BUILD_DYNAMIC:BOOL=ON")))
(home-page "http://www.geuz.org/gmsh/")
(synopsis "3D finite element grid generator")
(description "Gmsh is a 3D finite element grid generator with a built-in
ASCII text files using Gmsh's own scripting language.")
(license license:gpl2+)))
+(define-public maxflow
+ (package
+ (name "maxflow")
+ (version "3.04")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gerddie/maxflow.git")
+ (commit "42401fa54823d16b9da47716f04e5d9ef1605875")))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0rll38whw55h0vcjrrwdnh9ascvxby0ph7n1l0d12z17cg215kkb"))))
+ (build-system cmake-build-system)
+ (home-page "http://pub.ist.ac.at/~vnk/software.html")
+ (synopsis "Library implementing Maxflow algorithm")
+ (description "An implementation of the maxflow algorithm described in
+@cite{An Experimental Comparison of Min-Cut/Max-Flow Algorithms for
+Energy Minimization in Computer Vision.\n
+Yuri Boykov and Vladimir Kolmogorov.\n
+In IEEE Transactions on Pattern Analysis and Machine Intelligence,\n
+September 2004}")
+ (license license:gpl3+)))
+
(define-public petsc
(package
(name "petsc")
- (version "3.7.2")
+ (version "3.7.6")
(source
(origin
(method url-fetch)
(uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
"petsc-lite-" version ".tar.gz"))
(sha256
- (base32 "0jfrq6rd4zagw1iimz05m2w91k0jvz3qbik1lk8pqcxw3rvdqk5d"))))
+ (base32 "1y3f5jjq0v5b62i3sabp4kp5mgfyp3vnk0dxhwkrhpypax77nzxh"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)
(assoc-ref %build-inputs "superlu") "/include")
,(string-append "--with-superlu-lib="
(assoc-ref %build-inputs "superlu") "/lib/libsuperlu.a"))
+ #:make-flags
+ ;; Honor (parallel-job-count) for build. Do not use --with-make-np,
+ ;; whose value is dumped to $out/lib/petsc/conf/petscvariables.
+ (list (format #f "MAKE_NP=~a" (parallel-job-count)))
#:phases
(modify-phases %standard-phases
(replace 'configure
(format #t "configure flags: ~s~%" flags)
(zero? (apply system* "./configure" flags)))))
(add-after 'configure 'clean-local-references
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (find-files "." "^petsc(conf|machineinfo).h$")
;; Prevent build directory from leaking into compiled code
(((getcwd)) out)
;; Scrub timestamp for reproducibility
((".*Libraries compiled on.*") ""))
+ (substitute* (find-files "." "petscvariables")
+ ;; Do not expose build machine characteristics, set to defaults.
+ (("MAKE_NP = [:digit:]+") "MAKE_NP = 2")
+ (("NPMAX = [:digit:]+") "NPMAX = 2"))
#t)))
(add-after 'install 'clean-install
;; Try to keep installed files from leaking build directory names.
(define-public slepc
(package
(name "slepc")
- (version "3.7.1")
+ (version "3.7.4")
(source
(origin
(method url-fetch)
- (uri (string-append "http://slepc.upv.es/download/download.php?"
- "filename=slepc-" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (string-append "http://slepc.upv.es/download/distrib/slepc-"
+ version ".tar.gz"))
(sha256
(base32
- "1hijlmrvxvfqslnx8yydzw5xqbsn1yy02g32w0hln1z3cgr1c0k7"))))
+ "12pbl8yd6r8k9xjlr1qw25rs0k1acgic7hw1s6l6bhiv9s285drg"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))
#:configure-flags
`(,(string-append "--with-arpack-dir="
(assoc-ref %build-inputs "arpack") "/lib"))
+ #:make-flags ;honor (parallel-job-count)
+ `(,(format #f "MAKE_NP=~a" (parallel-job-count)))
#:phases
(modify-phases %standard-phases
(replace 'configure
(define-public r-pracma
(package
(name "r-pracma")
- (version "1.9.5")
+ (version "2.0.7")
(source (origin
(method url-fetch)
(uri (cran-uri "pracma" version))
(sha256
- (base32 "19nr2jlkbcdgvw3gx5hry12av565lmvqd5q4h7zlch3q13avwwl2"))))
+ (base32 "0hxa0rbbp54j0c05qj7vfwhqfdmiz5ax8vhqxd09g33x7c0hqbc5"))))
(build-system r-build-system)
(propagated-inputs
`(("r-quadprog" ,r-quadprog)))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)
- ("flex" ,flex)
+ ("flex" ,flex-2.6.1) ; A bug in flex prevents building with flex-2.6.3.
("bison" ,bison)))
(arguments
`(#:phases
'("COMMON_FILE_COMPRESS_GZ"
"COMMON_PTHREAD"
"COMMON_RANDOM_FIXED_SEED"
+ "INTSIZE64" ;use 'long' instead of 'int'
;; Prevents symbolc clashes with libesmumps
"SCOTCH_RENAME"
;; XXX: Causes invalid frees in superlu-dist tests
("popt" ,popt)))
(native-inputs
`(("pkg-config" ,pkg-config)))
- (home-page "http://www.gnu.org/software/gsegrafix/")
+ (home-page "https://www.gnu.org/software/gsegrafix/")
(synopsis "GNOME application to create scientific and engineering plots")
(description "GSEGrafix is an application which produces high-quality graphical
plots for science and engineering. Plots are specified via simple ASCII
(define-public maxima
(package
(name "maxima")
- (version "5.39.0")
+ (version "5.40.0")
(source
(origin
(method url-fetch)
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
- "1cvignn5y6qzrby6qb885yc8zdcdqdr1d50vcvc3gapw2f0gk3zm"))
+ "15pp35ayglv723bjbqc60gcdv2bm54s6pywsm4i4cwbjsf64dzkl"))
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system)
(inputs
;; '/tmp/nix-build-maxima-*', which won't exist at run time.
;; Work around that.
#:make-flags (list "TMPDIR=/tmp")
- #:phases (alist-cons-before
- 'check 'pre-check
- (lambda _
- (chmod "src/maxima" #o555))
- ;; Make sure the doc and emacs files are found in the
- ;; standard location. Also configure maxima to find gnuplot
- ;; without having it on the PATH.
- (alist-cons-after
- 'install 'post-install
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let* ((gnuplot (assoc-ref inputs "gnuplot"))
- (out (assoc-ref outputs "out"))
- (datadir (string-append out "/share/maxima/" ,version)))
- (with-directory-excursion out
- (mkdir-p "share/emacs")
- (mkdir-p "share/doc")
- (symlink
- (string-append datadir "/emacs/")
- (string-append out "/share/emacs/site-lisp"))
- (symlink
- (string-append datadir "/doc/")
- (string-append out "/share/doc/maxima"))
- (with-atomic-file-replacement
- (string-append datadir "/share/maxima-init.lisp")
- (lambda (in out)
- (format out "~a ~s~a~%"
- "(setf $gnuplot_command "
- (string-append gnuplot "/bin/gnuplot") ")")
- (dump-port in out))))))
- %standard-phases))))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ (chmod "src/maxima" #o555)
+ #t))
+ ;; Make sure the doc and emacs files are found in the
+ ;; standard location. Also configure maxima to find gnuplot
+ ;; without having it on the PATH.
+ (add-after 'install 'post-install
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let* ((gnuplot (assoc-ref inputs "gnuplot"))
+ (out (assoc-ref outputs "out"))
+ (datadir (string-append out "/share/maxima/" ,version))
+ (binutils (string-append (assoc-ref inputs "binutils")
+ "/bin")))
+ (with-directory-excursion out
+ (mkdir-p "share/emacs")
+ (mkdir-p "share/doc")
+ (symlink
+ (string-append datadir "/emacs/")
+ (string-append out "/share/emacs/site-lisp"))
+ (symlink
+ (string-append datadir "/doc/")
+ (string-append out "/share/doc/maxima"))
+ (with-atomic-file-replacement
+ (string-append datadir "/share/maxima-init.lisp")
+ (lambda (in out)
+ (format out "~a ~s~a~%"
+ "(setf $gnuplot_command "
+ (string-append gnuplot "/bin/gnuplot") ")")
+ (dump-port in out))))
+ ;; Ensure that Maxima will have access to the GNU binutils
+ ;; components at runtime.
+ (wrap-program (string-append out "/bin/maxima")
+ `("PATH" prefix (,binutils))))
+ #t)))))
(home-page "http://maxima.sourceforge.net")
(synopsis "Numeric and symbolic expression manipulation")
(description "Maxima is a system for the manipulation of symbolic and
(define-public wxmaxima
(package
(name "wxmaxima")
- (version "16.12.0")
+ (version "17.05.0")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/wxmaxima/wxMaxima/"
- version "/" name "-" version ".tar.gz"))
+ (uri (string-append "https://github.com/andrejv/" name "/archive"
+ "/Version-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "01kas9viqabw5id6crbhz8ahjimmv78gqzizs5hgnj9kngrgrm1h"))))
+ "1bsyd7r12xm2crpizb9iyyki3j0mbazzzwbsh871m06dv2wk97gq"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gettext" ,gettext-minimal)))
(inputs
`(("wxwidgets" ,wxwidgets)
("maxima" ,maxima)
("shared-mime-info" ,shared-mime-info)))
(arguments
`(#:phases (modify-phases %standard-phases
+ (add-before
+ 'configure 'autoconf
+ (lambda _
+ (zero? (system* "./bootstrap"))))
(add-after
'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(define-public armadillo
(package
(name "armadillo")
- (version "7.600.2")
+ (version "7.800.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/arma/armadillo-"
version ".tar.xz"))
(sha256
(base32
- "0bac9y46m61zxinj51l82w06v01ra9vw7a9j6rrwdjhznkkdb437"))))
+ "1qqzy7dp891j9v7062mv1599hdwr97vqzrd3j2fl8c3gmc00dmzg"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ;no test target
(inputs
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).")
- (license license:mpl2.0)))
-
-(define-public armadillo-for-rcpparmadillo
- (package (inherit armadillo)
- (version "7.600.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/arma/armadillo-"
- version ".tar.xz"))
- (sha256
- (base32
- "1dxgfd2r9lbh24nszvqm2lag439s0srxaf1l86f6ww6waqm5r8zk"))))))
+ (license license:asl2.0)))
(define-public muparser
;; When switching download sites, muparser re-issued a 2.2.5 release with a
,(let ((system (or (%current-target-system) (%current-system))))
(or (string-prefix? "x86_64" system)
(string-prefix? "i686" system)
- (string-prefix? "mips" system)))
+ (string-prefix? "mips" system)
+ (string-prefix? "aarch64" system)))
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"SHELL=bash"
;; for Loongson cores are used.
((string-prefix? "mips" system)
'("TARGET=SICORTEX"))
+ ;; On aarch64 force the generic 'armv8-a' target
+ ((string-prefix? "aarch64" system)
+ '("TARGET=ARMV8"))
(else '()))))
;; no configure script
#:phases (alist-delete 'configure %standard-phases)))
(string-append "INSTALL_INCLUDE="
(assoc-ref %outputs "out") "/include"))
#:phases
- (alist-cons-before
- 'install 'prepare-out
- ;; README.txt states that the target directories must exist prior to
- ;; running "make install".
- (lambda _
- (mkdir-p (string-append (assoc-ref %outputs "out") "/lib"))
- (mkdir-p (string-append (assoc-ref %outputs "out") "/include")))
- ;; no configure script
- (alist-delete 'configure %standard-phases))))
+ (modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-before 'install 'prepare-out
+ ;; README.txt states that the target directories must exist prior to
+ ;; running "make install".
+ (lambda _
+ (mkdir-p (string-append (assoc-ref %outputs "out") "/lib"))
+ (mkdir-p (string-append (assoc-ref %outputs "out") "/include")))))))
(inputs
`(("tbb" ,tbb)
("lapack" ,lapack)))
(base32
"022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))))
(build-system cmake-build-system)
+ (outputs '("out"
+ "octave")) ;46 MiB .mex file that pulls Octave
(native-inputs
`(("unzip" ,unzip)))
(inputs
;; 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"))
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 "http://www.gnu.org/software/xaos/")
+ (home-page "https://www.gnu.org/software/xaos/")
(license license:gpl2+)))
(define-public hypre
instruction sets. Thus, an application written with Vc can be compiled for:
@enumerate
@item AVX and AVX2
-@item SSE2 upto SSE4.2 or SSE4a
+@item SSE2 up to SSE4.2 or SSE4a
@item Scalar
@item MIC
@item NEON (in development)
@item NVIDIA GPUs / CUDA (in development)
@end enumerate\n")
(home-page "https://github.com/VcDevel/Vc")
+ ;; "No support_???.cpp file exists for this architecture."
+ (supported-systems '("x86_64-linux" "i686-linux"))
(license license:bsd-3)))
(define-public reducelcs
algorithm for LCS. It is a fast program to compute the approximate
Longest Commons Subsequence of a set of strings.")
(home-page "https://github.com/gdv/Reduce-Expand-for-LCS")
- ;; The source specifies no "and later" of GPL3.
- (license license:gpl3))))
+ (license license:gpl3+))))
+
+(define-public jacal
+ (package
+ (name "jacal")
+ (version "1c4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://groups.csail.mit.edu/mac/ftpdir/scm/jacal-"
+ version ".zip"))
+ (sha256 (base32
+ "055zrn12a1dmy0dqkwrkq3fklbhg3yir6vn0lacp4mvbg8573a3q"))
+ (patches (search-patches "jacal-fix-texinfo.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'pre-build
+ ;; Don't use upstream's script - it really doesn't fit into
+ ;; Guix's functional paradigm.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("^install: install-script") "install: "))))
+ (add-after 'install 'post-install
+ ;; Instead, we provide our own simplified script.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((wrapper (string-append (assoc-ref outputs "out")
+ "/bin/jacal")))
+ (format (open wrapper (logior O_WRONLY O_CREAT))
+ (string-append "#!~a\nexec ~a/bin/scm -ip1 "
+ "-e '(slib:load \"~a/lib/jacal/math\") "
+ "(math)' \"$@\"\n")
+ (which "bash")
+ (assoc-ref inputs "scm")
+ (assoc-ref outputs "out"))
+ (chmod wrapper #o555))))
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (zero? (system* "./configure"
+ (string-append "--prefix="
+ (assoc-ref outputs "out")))))))))
+ (inputs `(("scm" ,scm)))
+ (native-inputs `(("unzip" ,unzip)
+ ("texinfo" ,texinfo)))
+ (synopsis "Symbolic mathematics system")
+ (description "GNU JACAL is an interactive symbolic mathematics program based on
+Scheme. It manipulate and simplify a range of mathematical expressions such
+as equations, scalars, vectors, and matrices.")
+ (home-page "https://www.gnu.org/software/jacal/")
+ (license license:gpl3+)))
+
+(define-public z3
+ (package
+ (name "z3")
+ (version "4.5.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Z3Prover/z3/archive/z3-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "032a5lvji2liwmc25jv52bdrhimqflvqbpg77ccaq1jykhiivbmf"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (zero?
+ (system* "python" "scripts/mk_make.py"
+ (string-append "--prefix="
+ (assoc-ref outputs "out"))))))
+ (add-after 'configure 'change-dir
+ (lambda _
+ (chdir "build")
+ #t)))))
+ (native-inputs
+ `(("python" ,python-2)))
+ (synopsis "Theorem prover")
+ (description "Z3 is a theorem prover and @dfn{satisfiability modulo
+theories} (SMT) solver. It provides a C/C++ API.")
+ (home-page "https://github.com/Z3Prover/z3")
+ (license license:expat)))
+
+(define-public cubicle
+ (package
+ (name "cubicle")
+ (version "1.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://cubicle.lri.fr/cubicle-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1sny9c4fm14k014pk62ibpwbrjjirkx8xmhs9jg7q1hk7y7x3q2h"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("ocaml" ,ocaml)
+ ("which" ,(@@ (gnu packages base) which))))
+ (propagated-inputs
+ `(("z3" ,z3)))
+ (arguments
+ `(#:configure-flags (list "--with-z3")
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'configure-for-release
+ (lambda _
+ (substitute* "Makefile.in"
+ (("SVNREV=") "#SVNREV="))))
+ (add-before 'configure 'fix-/bin/sh
+ (lambda _
+ (substitute* "configure"
+ (("/bin/sh") (which "sh")))))
+ (add-before 'configure 'fix-smt-z3wrapper.ml
+ (lambda _
+ (substitute* "Makefile.in"
+ (("\\\\n") "")))))))
+ (home-page "http://cubicle.lri.fr/")
+ (synopsis "Model checker for array-based systems")
+ (description "Cubicle is an open source model checker for verifying safety
+properties of array-based systems. This is a syntactically restricted class of
+parametrized transition systems with states represented as arrays indexed by an
+arbitrary number of processes. Cache coherence protocols and mutual exclusion
+algorithms are typical examples of such systems.")
+ (license license:asl2.0)))