;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
+;;; Copyright © 2016, 2017 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>
+;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
+ #:use-module (gnu packages java)
#:use-module (gnu packages less)
#:use-module (gnu packages lisp)
#:use-module (gnu packages logging)
(license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))))
+(define-public lapack-3.5
+ (package
+ (inherit lapack)
+ (version "3.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.netlib.org/lapack/lapack-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s"))))))
+
(define-public scalapack
(package
(name "scalapack")
(license (license:x11-style
"http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
+(define-public hdf-java
+ (package
+ (name "hdf-java")
+ (version "3.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-"
+ version "/src/CMake-hdfjava-" version ".tar.gz"))
+ (sha256
+ (base32 "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr"))
+ (modules '((guix build utils)))
+ (snippet ; Make sure we don't use the bundled sources and binaries.
+ `(begin
+ (for-each delete-file
+ (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz"
+ "HDF4.tar.gz" "HDF5.tar.gz"))
+ (delete-file-recursively ,(string-append "hdfjava-" version "/lib"))))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("jdk" ,icedtea "jdk")
+ ("automake" ,automake) ; For up to date 'config.guess' and 'config.sub'.
+ ;; For tests:
+ ("hamcrest-core" ,java-hamcrest-core)
+ ("junit" ,java-junit)
+ ("slf4j-simple" ,java-slf4j-simple)))
+ (inputs
+ `(("hdf4" ,hdf4)
+ ("hdf5" ,hdf5)
+ ("zlib" ,zlib)
+ ("libjpeg" ,libjpeg)
+ ("slf4j-api" ,java-slf4j-api)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--target=" ,(or (%current-target-system) (%current-system)))
+ (string-append "--with-jdk=" (assoc-ref %build-inputs "jdk") "/include,"
+ (assoc-ref %build-inputs "jdk") "/lib" )
+ (string-append "--with-hdf4=" (assoc-ref %build-inputs "hdf4") "/lib")
+ (string-append "--with-hdf5=" (assoc-ref %build-inputs "hdf5") "/lib"))
+
+ #:make-flags
+ (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib")
+ (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib")
+ (string-append "ZLIB=" (assoc-ref %build-inputs "zlib") "/lib/libz.so")
+ (string-append "JPEGLIB="
+ (assoc-ref %build-inputs "libjpeg") "/lib/libjpeg.so")
+ "LLEXT=so")
+
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir-to-source
+ (lambda _ (chdir ,(string-append "hdfjava-" version))))
+ (add-before 'configure 'patch-build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "configure"
+ (("COPT=\"") "COPT=\"-O2 ") ; CFLAGS is ignored in Makefiles
+ (("/bin/cat") (which "cat")))
+ ;; Set classpath for compilation
+ (substitute* '("hdf/hdf5lib/Makefile.in"
+ "hdf/hdf5lib/exceptions/Makefile.in"
+ "hdf/hdflib/Makefile.in")
+ (("\\$\\(TOP\\)/lib/slf4j-api-1\\.7\\.5\\.jar")
+ (string-append (assoc-ref inputs "slf4j-api")
+ "/share/java/slf4j-api.jar")))
+ ;; Replace outdated config.sub and config.guess:
+ (with-directory-excursion "config"
+ (for-each (lambda (file)
+ (copy-file
+ (string-append (assoc-ref inputs "automake")
+ "/share/automake-1.15/" file) file))
+ '("config.sub" "config.guess")))
+ (mkdir-p (string-append (assoc-ref outputs "out")))
+ ;; Set classpath for tests
+ (let* ((build-dir (getcwd))
+ (lib (string-append build-dir "/lib"))
+ (jhdf (string-append lib "/jhdf.jar"))
+ (jhdf5 (string-append lib "/jhdf5.jar"))
+ (testjars
+ (map (lambda (i)
+ (string-append (assoc-ref inputs i)
+ "/share/java/" i ".jar"))
+ '("junit" "hamcrest-core" "slf4j-api" "slf4j-simple")))
+ (class-path
+ (string-join `("." ,build-dir ,jhdf ,jhdf5 ,@testjars) ":")))
+
+ (substitute* '("test/hdf5lib/Makefile.in"
+ "test/hdf5lib/junit.sh.in"
+ "examples/runExample.sh.in")
+ (("/usr/bin/test")
+ (string-append (assoc-ref inputs "coreutils")
+ "/bin/test"))
+ (("/usr/bin/uname")
+ (string-append (assoc-ref inputs "coreutils")
+ "/bin/uname"))
+ (("CLASSPATH=[^\n]*")
+ (string-append "CLASSPATH=" class-path)))
+ (setenv "CLASSPATH" class-path))
+ #t))
+ (add-before 'check 'build-examples
+ (lambda _
+ (zero? (apply system* `("javac"
+ ,@(find-files "examples" ".*\\.java")))))))
+
+ #:parallel-build? #f
+
+ #:parallel-tests? #f ))
+ (home-page "https://support.hdfgroup.org/products/java")
+ (synopsis "Java interface for the HDF4 and HDF5 libraries")
+ (description "Java HDF Interface (JHI) and Java HDF5 Interface (JHI5) use
+the Java Native Interface to wrap the HDF4 and HDF5 libraries, which are
+implemented in C.")
+
+ ;; BSD-style license:
+ (license (license:x11-style
+ "https://support.hdfgroup.org/ftp/HDF5/hdf-java\
+/current/src/unpacked/COPYING"))))
+
(define-public hdf-eos2
(package
(name "hdf-eos2")
(license license:bsd-3)))
;; For a fully featured Octave, users are strongly recommended also to install
-;; the following packages: texinfo, less, ghostscript, gnuplot.
+;; the following packages: less, ghostscript, gnuplot.
(define-public octave
(package
(name "octave")
("glu" ,glu)
("zlib" ,zlib)
("curl" ,curl)
+ ("texinfo" ,texinfo)
("graphicsmagick" ,graphicsmagick)))
(native-inputs
`(("lzip" ,lzip)
;; will still run without them, albeit without the features they
;; provide.
("less" ,less)
- ("texinfo" ,texinfo)
("ghostscript" ,ghostscript)
("gnuplot" ,gnuplot)))
(arguments
`(#:configure-flags
(list (string-append "--with-shell="
(assoc-ref %build-inputs "bash")
- "/bin/sh"))))
+ "/bin/sh"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'configure-makeinfo
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "libinterp/corefcn/help.cc"
+ (("Vmakeinfo_program = \"makeinfo\"")
+ (string-append "Vmakeinfo_program = \""
+ (assoc-ref inputs "texinfo")
+ "/bin/makeinfo\"")))
+ #t)))))
(home-page "https://www.gnu.org/software/octave/")
(synopsis "High-level language for numerical computation")
(description "GNU Octave is a high-level interpreted language that is
(define-public petsc
(package
(name "petsc")
- (version "3.7.6")
+ (version "3.8.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
"petsc-lite-" version ".tar.gz"))
(sha256
- (base32 "1y3f5jjq0v5b62i3sabp4kp5mgfyp3vnk0dxhwkrhpypax77nzxh"))))
+ (base32 "1lajbk3c29hnh83v6cbmm3a8wv6bdykh0p70kwrr4vrnizalk88s"))))
(build-system gnu-build-system)
(native-inputs
- `(("python" ,python-2)
- ("perl" ,perl)))
+ `(("python" ,python-2)))
(inputs
`(("gfortran" ,gfortran)
("lapack" ,lapack)
(define-public slepc
(package
(name "slepc")
- (version "3.7.4")
+ (version "3.8.0")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "12pbl8yd6r8k9xjlr1qw25rs0k1acgic7hw1s6l6bhiv9s285drg"))))
+ "0qyrsdndfdw2g0jmj9iskxj3j20zlkplhv26288s079dhm7cr365"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))
(define-public maxima
(package
(name "maxima")
- (version "5.40.0")
+ (version "5.41.0")
(source
(origin
(method url-fetch)
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
- "15pp35ayglv723bjbqc60gcdv2bm54s6pywsm4i4cwbjsf64dzkl"))
+ "0x0n81z0s4pl8nwpf7ivlsbvsdphm9w42250g7qdkizl0132by6s"))
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system)
(inputs
supports compressed MAT files, as well as newer (version 7.3) MAT files.")
(license license:bsd-2)))
-(define-public libhilbert
- (package
- (name "libhilbert")
- (version "0.2-1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://web.cs.dal.ca/~chamilto/hilbert/"
- "libhilbert-" version ".tar.gz"))
- (sha256
- (base32
- "0v48x8405dj95gjn2saja4bzhw86d6zl6d3dg8h7dzac2qr97s34"))))
- (build-system gnu-build-system)
- (home-page "http://web.cs.dal.ca/~chamilto/hilbert")
- (synopsis "Hilbert indices for multidimensional data")
- (description "The libhilbert library can efficiently calculate Hilbert
-curves and order-preserving representations of Hilbert curve indices that use
-the same amount of space as the original point representation. This is useful
-when using the Gilbert curve as a space filling curve through a
-high-dimensional space where not all demensions have the same cardinality.")
- (license license:lgpl2.1+)))
-
(define-public vc
(package
(name "vc")