* [bug#28723] Add HDF-Java. [PATCH 1/2] gnu: Add java-slf4-simple.
@ 2017-10-06 16:01 Thomas Danckaert
2017-10-06 16:20 ` [bug#28723] [PATCH 2/2] gnu: Add hdf-java Thomas Danckaert
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Thomas Danckaert @ 2017-10-06 16:01 UTC (permalink / raw)
To: 28723
[-- Attachment #1: Type: Text/Plain, Size: 288 bytes --]
Hi Guix,
this patch adds the “Simple” implementation of the SLF4J interface,
used by HDF-Java's tests.
About this patch: the tests of slf4j-simple require some of
slf4j-api's test code, which are therefore compiled in a somewhat
ad-hoc fashion, but it works...
Thomas
[-- Attachment #2: 0001-gnu-Add-java-slf4-simple.patch --]
[-- Type: Text/X-Patch, Size: 2467 bytes --]
From d034b46040d51b7e82fb95df3601dc9925fa1502 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <post@thomasdanckaert.be>
Date: Fri, 6 Oct 2017 12:38:34 +0200
Subject: [PATCH 1/2] gnu: Add java-slf4-simple.
* gnu/packages/java.scm (java-slf4j-simple): New variable.
---
gnu/packages/java.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 4418b67ea..60590b117 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4207,6 +4208,40 @@ allowing the end user to plug in the desired logging framework at deployment
time.")
(license license:expat)))
+(define-public java-slf4j-simple
+ (package
+ (name "java-slf4j-simple")
+ (version "1.7.25")
+ (source (package-source java-slf4j-api))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "slf4j-simple.jar"
+ #:source-dir "slf4j-simple/src/main"
+ #:test-dir "slf4j-simple/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ ;; The tests need some test classes from slf4j-api
+ (add-before 'check 'build-slf4j-api-test-helpers
+ (lambda _
+ ;; Add current dir to CLASSPATH ...
+ (setenv "CLASSPATH"
+ (string-append (getcwd) ":" (getenv "CLASSPATH")))
+ ;; ... and build test helper classes here:
+ (zero?
+ (apply system*
+ `("javac" "-d" "."
+ ,@(find-files "slf4j-api/src/test" ".*\\.java")))))))))
+ (inputs
+ `(("java-junit" ,java-junit)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("java-slf4j-api" ,java-slf4j-api)))
+ (home-page "https://www.slf4j.org/")
+ (synopsis "Simple implementation of simple logging facade for Java")
+ (description "SLF4J binding for the Simple implementation, which outputs
+all events to System.err. Only messages of level INFO and higher are
+printed.")
+ (license license:expat)))
+
(define-public antlr2
(package
(name "antlr2")
--
2.14.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#28723] [PATCH 2/2] gnu: Add hdf-java.
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
2017-10-09 19:27 ` Leo Famulari
2017-10-09 19:25 ` [bug#28723] Add HDF-Java. [PATCH 1/2] gnu: Add java-slf4-simple Leo Famulari
2017-10-10 8:31 ` bug#28723: (no subject) Thomas Danckaert
2 siblings, 1 reply; 7+ messages in thread
From: Thomas Danckaert @ 2017-10-06 16:20 UTC (permalink / raw)
To: 28723
[-- 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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bug#28723] Add HDF-Java. [PATCH 1/2] gnu: Add java-slf4-simple.
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 ` [bug#28723] [PATCH 2/2] gnu: Add hdf-java Thomas Danckaert
@ 2017-10-09 19:25 ` Leo Famulari
2017-10-10 8:18 ` julien lepiller
2017-10-10 8:31 ` bug#28723: (no subject) Thomas Danckaert
2 siblings, 1 reply; 7+ messages in thread
From: Leo Famulari @ 2017-10-09 19:25 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: 28723
[-- Attachment #1: Type: text/plain, Size: 684 bytes --]
On Fri, Oct 06, 2017 at 06:01:53PM +0200, Thomas Danckaert wrote:
> Hi Guix,
>
> this patch adds the “Simple” implementation of the SLF4J interface, used by
> HDF-Java's tests.
>
> About this patch: the tests of slf4j-simple require some of slf4j-api's test
> code, which are therefore compiled in a somewhat ad-hoc fashion, but it
> works...
>
> Thomas
> From d034b46040d51b7e82fb95df3601dc9925fa1502 Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <post@thomasdanckaert.be>
> Date: Fri, 6 Oct 2017 12:38:34 +0200
> Subject: [PATCH 1/2] gnu: Add java-slf4-simple.
>
> * gnu/packages/java.scm (java-slf4j-simple): New variable.
Okay, looks good to me!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#28723] [PATCH 2/2] gnu: Add hdf-java.
2017-10-06 16:20 ` [bug#28723] [PATCH 2/2] gnu: Add hdf-java Thomas Danckaert
@ 2017-10-09 19:27 ` Leo Famulari
2017-10-10 6:48 ` Thomas Danckaert
0 siblings, 1 reply; 7+ messages in thread
From: Leo Famulari @ 2017-10-09 19:27 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: 28723
[-- Attachment #1: Type: text/plain, Size: 1017 bytes --]
On Fri, Oct 06, 2017 at 06:20:42PM +0200, Thomas Danckaert wrote:
> 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
> 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.
Overall, LGTM...
> + (add-before 'check 'build-examples
> + (lambda _
> + (apply system* `("javac"
> + ,@(find-files "examples" ".*\\.java")))
> + #t)))
Do we have to explicity return #t here? Does the javac call not return
a value that we can pass to (zero? ...)?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#28723] [PATCH 2/2] gnu: Add hdf-java.
2017-10-09 19:27 ` Leo Famulari
@ 2017-10-10 6:48 ` Thomas Danckaert
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Danckaert @ 2017-10-10 6:48 UTC (permalink / raw)
To: leo; +Cc: 28723
From: Leo Famulari <leo@famulari.name>
Subject: Re: [bug#28723] [PATCH 2/2] gnu: Add hdf-java.
Date: Mon, 9 Oct 2017 15:27:02 -0400
>> + (add-before 'check 'build-examples
>> + (lambda _
>> + (apply system* `("javac"
>> + ,@(find-files "examples" ".*\\.java")))
>> + #t)))
>
> Do we have to explicity return #t here? Does the javac call not return
> a value that we can pass to (zero? ...)?
Yes, I'm pretty sure this can be improved. Good catch!
Thanks for taking a look.
Thomas
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bug#28723] Add HDF-Java. [PATCH 1/2] gnu: Add java-slf4-simple.
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
0 siblings, 0 replies; 7+ messages in thread
From: julien lepiller @ 2017-10-10 8:18 UTC (permalink / raw)
To: 28723
Le 2017-10-09 21:25, Leo Famulari a écrit :
> On Fri, Oct 06, 2017 at 06:01:53PM +0200, Thomas Danckaert wrote:
>> Hi Guix,
>>
>> this patch adds the “Simple” implementation of the SLF4J interface,
>> used by
>> HDF-Java's tests.
>>
>> About this patch: the tests of slf4j-simple require some of
>> slf4j-api's test
>> code, which are therefore compiled in a somewhat ad-hoc fashion, but
>> it
>> works...
>>
>> Thomas
>
>> From d034b46040d51b7e82fb95df3601dc9925fa1502 Mon Sep 17 00:00:00 2001
>> From: Thomas Danckaert <post@thomasdanckaert.be>
>> Date: Fri, 6 Oct 2017 12:38:34 +0200
>> Subject: [PATCH 1/2] gnu: Add java-slf4-simple.
>>
>> * gnu/packages/java.scm (java-slf4j-simple): New variable.
>
> Okay, looks good to me!
I don't know whether it's better, but I had to build slf4j-simple for
maven. Here is what I have:
(define java-slf4j-api-tests
(package
(inherit java-slf4j-api)
(name "java-slf4j-api-tests")
(arguments
`(#:jar-name "slf4j-api-tests.jar"
#:source-dir "slf4j-api/src/test/java"
#:tests? #f))
(inputs
`(("slf4j" ,java-slf4j-api)
,@(package-inputs java-slf4j-api)
,@(package-native-inputs java-slf4j-api)))
(native-inputs '())))
(define-public java-slf4j-simple
(package
(inherit java-slf4j-api)
(name "java-slf4j-simple")
(arguments
`(#:jar-name "slf4j-simple.jar"
#:source-dir "slf4j-simple/src/main/java"
#:test-dir "slf4j-simple/src/test"))
(inputs
`(("slf4j" ,java-slf4j-api)
,@(package-inputs java-slf4j-api)))
(native-inputs
`(("tests" ,java-slf4j-api-tests)
,@(package-native-inputs java-slf4j-api)))))
The idea is that maybe other packages in the slf4j archive will need
these tests, so I built a package for them.
Otherwise your version LGTM too. Why do you need to build in the current
directory and not in build/test-classes? If you build in
build/test-classes, I think you don't need to set CLASSPATH in the
build-slf4j-api-test-helpers phase.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#28723: (no subject)
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 ` [bug#28723] [PATCH 2/2] gnu: Add hdf-java 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:31 ` Thomas Danckaert
2 siblings, 0 replies; 7+ messages in thread
From: Thomas Danckaert @ 2017-10-10 8:31 UTC (permalink / raw)
To: 28723-done
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-10-10 8:32 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [bug#28723] [PATCH 2/2] gnu: Add hdf-java Thomas Danckaert
2017-10-09 19:27 ` 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
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).