From: Thomas Danckaert <post@thomasdanckaert.be>
To: 28723@debbugs.gnu.org
Subject: [bug#28723] [PATCH 2/2] gnu: Add hdf-java.
Date: Fri, 06 Oct 2017 18:20:42 +0200 (CEST) [thread overview]
Message-ID: <20171006.182042.2104233175241159680.post@thomasdanckaert.be> (raw)
In-Reply-To: <20171006.180153.688490172361889589.post@thomasdanckaert.be>
[-- Attachment #1: Type: Text/Plain, Size: 300 bytes --]
Hi Guix,
this patch adds hdf-java.
It's quite ugly, but it seems the autotools build for this package is
barely working and really needs a lot of patching... (Actually,
using CMake is recommended, but then we would have to build the HDF4
and HDF5 packages with CMake as well).
cheers,
Thomas
[-- Attachment #2: 0002-gnu-Add-hdf-java.patch --]
[-- Type: Text/X-Patch, Size: 7151 bytes --]
From 619b38cc889bc41e0128f038aa78e54f71fb7dab Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.danckaert@gmail.com>
Date: Wed, 4 Oct 2017 17:17:03 +0200
Subject: [PATCH 2/2] gnu: Add hdf-java.
* gnu/packages/maths.scm (hdf-java): New variable.
---
gnu/packages/maths.scm | 122 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 121 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 9aa037838..4e95fea59 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -14,7 +14,7 @@
;;; 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>
@@ -69,6 +69,7 @@
#: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)
@@ -742,6 +743,125 @@ extremely large and complex data collections.")
(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 _
+ (apply system* `("javac"
+ ,@(find-files "examples" ".*\\.java")))
+ #t)))
+
+ #: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")
--
2.14.1
next prev parent reply other threads:[~2017-10-06 16:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-06 16:01 [bug#28723] Add HDF-Java. [PATCH 1/2] gnu: Add java-slf4-simple Thomas Danckaert
2017-10-06 16:20 ` Thomas Danckaert [this message]
2017-10-09 19:27 ` [bug#28723] [PATCH 2/2] gnu: Add hdf-java Leo Famulari
2017-10-10 6:48 ` Thomas Danckaert
2017-10-09 19:25 ` [bug#28723] Add HDF-Java. [PATCH 1/2] gnu: Add java-slf4-simple Leo Famulari
2017-10-10 8:18 ` julien lepiller
2017-10-10 8:31 ` bug#28723: (no subject) Thomas Danckaert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171006.182042.2104233175241159680.post@thomasdanckaert.be \
--to=post@thomasdanckaert.be \
--cc=28723@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.