* [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] [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-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] 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).