* [bug#29221] [PATCH 02/19] gnu: Add java-snappy.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 03/19] gnu: Add java-iq80-snappy julien
` (16 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/compression.scm (java-snappy): New variable.
---
gnu/packages/compression.scm | 122 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 122 insertions(+)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index fb3de8e07..e739546fd 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -42,6 +42,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
@@ -54,6 +55,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages file)
+ #:use-module (gnu packages java)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -1082,6 +1084,126 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
100% bigger.")
(license license:asl2.0)))
+(define bitshuffle-for-snappy
+ (package
+ (inherit bitshuffle)
+ (name "bitshuffle-for-snappy")
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-output-to-file "Makefile"
+ (lambda _
+ (display
+ (string-append
+ "libbitshuffle.so: src/bitshuffle.o src/bitshuffle_core.o "
+ "src/iochain.o lz4/lz4.o\n"
+ "\tgcc -O3 -ffast-math -std=c99 -o $@ -shared -fPIC $^\n"
+ "\n"
+ "%.o: %.c\n"
+ "\tgcc -O3 -ffast-math -std=c99 -fPIC -Isrc -Ilz4 -c $< -o $@\n"
+ "\n"
+ "PREFIX:=" (assoc-ref outputs "out") "\n"
+ "LIBDIR:=$(PREFIX)/lib\n"
+ "INCLUDEDIR:=$(PREFIX)/include\n"
+ "install: libbitshuffle.so\n"
+ "\tinstall -dm755 $(LIBDIR)\n"
+ "\tinstall -dm755 $(INCLUDEDIR)\n"
+ "\tinstall -m755 libbitshuffle.so $(LIBDIR)\n"
+ "\tinstall -m644 src/bitshuffle.h $(INCLUDEDIR)\n"
+ "\tinstall -m644 src/bitshuffle_core.h $(INCLUDEDIR)\n"
+ "\tinstall -m644 src/iochain.h $(INCLUDEDIR)\n"
+ "\tinstall -m644 lz4/lz4.h $(INCLUDEDIR)\n")))))))))
+ (inputs '())
+ (native-inputs '())))
+
+(define-public java-snappy
+ (package
+ (name "java-snappy")
+ (version "1.1.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/xerial/snappy-java/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1w58diryma7qz7aa24yv8shf3flxcbbw8jgcn2lih14wgmww58ww"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "snappy.jar"
+ #:source-dir "src/main/java"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'remove-binaries
+ (lambda _
+ (delete-file "lib/org/xerial/snappy/OSInfo.class")
+ (delete-file-recursively "src/main/resources/org/xerial/snappy/native")
+ #t))
+ (add-before 'build 'build-jni
+ (lambda _
+ ;; Rebuild one of the binaries we removed earlier
+ (system* "javac" "src/main/java/org/xerial/snappy/OSInfo.java"
+ "-d" "lib")
+ ;; Link to the dynamic bitshuffle and snappy, not the static ones
+ (substitute* "Makefile.common"
+ (("-shared")
+ "-shared -lbitshuffle -lsnappy"))
+ (substitute* "Makefile"
+ ;; Don't try to use git, don't download bitshuffle source
+ ;; and don't build it.
+ (("\\$\\(SNAPPY_GIT_UNPACKED\\) ")
+ "")
+ ((": \\$\\(SNAPPY_GIT_UNPACKED\\)")
+ ":")
+ (("\\$\\(BITSHUFFLE_UNPACKED\\) ")
+ "")
+ ((": \\$\\(SNAPPY_SOURCE_CONFIGURED\\)") ":")
+ ;; What we actually want to build
+ (("SNAPPY_OBJ:=.*")
+ "SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/, \
+ SnappyNative.o BitShuffleNative.o)\n")
+ ;; Since we removed the directory structure in "native" during
+ ;; the previous phase, we need to recreate it.
+ (("NAME\\): \\$\\(SNAPPY_OBJ\\)")
+ "NAME): $(SNAPPY_OBJ)\n\t@mkdir -p $(@D)"))
+ ;; Finally we can run the Makefile to build the dynamic library.
+ (zero? (system* "make" "native"))))
+ ;; Once we have built the shared library, we need to place it in the
+ ;; "build" directory so it can be added to the jar file.
+ (add-after 'build-jni 'copy-jni
+ (lambda _
+ (copy-recursively "src/main/resources/org/xerial/snappy/native"
+ "build/classes/org/xerial/snappy/native")))
+ (add-before 'check 'fix-failing
+ (lambda _
+ ;; This package assumes maven build, which puts results in "target".
+ ;; We put them in "build" instead, so fix that.
+ (substitute* "src/test/java/org/xerial/snappy/SnappyLoaderTest.java"
+ (("target/classes") "build/classes"))
+ ;; FIXME: probably an error
+ (substitute* "src/test/java/org/xerial/snappy/SnappyOutputStreamTest.java"
+ (("91080") "91013")))))))
+ (inputs
+ `(("osgi-framework" ,java-osgi-framework)))
+ (propagated-inputs
+ `(("bitshuffle" ,bitshuffle-for-snappy)
+ ("snappy" ,snappy)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)
+ ("xerial-core" ,java-xerial-core)
+ ("classworlds" ,java-plexus-classworlds)
+ ("perl" ,perl)))
+ (home-page "https://github.com/xerial/snappy-java")
+ (synopsis "Compression/decompression algorithm in Java")
+ (description "Snappy-java is a Java port of the snappy, a fast C++
+compresser/decompresser.")
+ (license license:asl2.0)))
+
(define-public p7zip
(package
(name "p7zip")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 03/19] gnu: Add java-iq80-snappy.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
2017-11-08 22:51 ` [bug#29221] [PATCH 02/19] gnu: Add java-snappy julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 04/19] licenses: Add cddl1.1 julien
` (15 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/compression.scm (java-iq80-snappy): New variable.
---
gnu/packages/compression.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index e739546fd..27fa083fb 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1204,6 +1204,56 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
compresser/decompresser.")
(license license:asl2.0)))
+(define-public java-iq80-snappy
+ (package
+ (name "java-iq80-snappy")
+ (version "0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/dain/snappy/archive/snappy-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0rb3zhci7w9wzd65lfnk7p3ip0n6gb58a9qpx8n7r0231gahyamf"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "iq80-snappy.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (define (test class)
+ (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":build/classes"
+ ":build/test-classes")
+ "-Dtest.resources.dir=src/test/resources"
+ "org.testng.TestNG" "-testclass"
+ class)))
+ (system* "ant" "compile-tests")
+ (and
+ (test "org.iq80.snappy.SnappyFramedStreamTest")
+ (test "org.iq80.snappy.SnappyStreamTest"))))
+ (add-before 'build 'remove-hadoop-dependency
+ (lambda _
+ ;; We don't have hadoop
+ (delete-file "src/main/java/org/iq80/snappy/HadoopSnappyCodec.java")
+ (delete-file "src/test/java/org/iq80/snappy/TestHadoopSnappyCodec.java")
+ #t)))))
+ (home-page "https://github.com/dain/snappy")
+ (native-inputs
+ `(("guava" ,java-guava)
+ ("java-snappy" ,java-snappy)
+ ("hamcrest" ,java-hamcrest-core)
+ ("testng" ,java-testng)))
+ (synopsis "Java port of snappy")
+ (description "Iq80-snappy is a rewrite (port) of Snappy writen in pure
+Java. This compression code produces a byte-for-byte exact copy of the output
+created by the original C++ code, and extremely fast.")
+ (license license:asl2.0)))
+
(define-public p7zip
(package
(name "p7zip")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 04/19] licenses: Add cddl1.1.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
2017-11-08 22:51 ` [bug#29221] [PATCH 02/19] gnu: Add java-snappy julien
2017-11-08 22:51 ` [bug#29221] [PATCH 03/19] gnu: Add java-iq80-snappy julien
@ 2017-11-08 22:51 ` julien
2017-11-09 15:31 ` Ludovic Courtès
2017-11-08 22:51 ` [bug#29221] [PATCH 05/19] gnu: Add java-mail julien
` (14 subsequent siblings)
17 siblings, 1 reply; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* guix/licenses.scm (cddl1.1): New variable.
---
guix/licenses.scm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 6de611da2..b40296b86 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -42,7 +42,7 @@
cc-by2.0 cc-by3.0 cc-by4.0
cc-by-sa2.0 cc-by-sa3.0 cc-by-sa4.0
cc-sampling-plus-1.0
- cddl1.0
+ cddl1.0 cddl1.1
cecill cecill-b cecill-c
artistic2.0 clarified-artistic
copyleft-next
@@ -217,6 +217,10 @@ at URI, which may be a file:// URI pointing the package's tree."
"http://directory.fsf.org/wiki/License:CDDLv1.0"
"https://www.gnu.org/licenses/license-list#CDDL"))
+;; CDDL1.1 is the same as 1.0, except that "Oracle" becomes "Sun Microsystems, Inc",
+;; "LOSS OF GOODWILL" becomes "LOST PROFITS" and section 6.3 is removed.
+(define cddl1.1 cddl1.0)
+
(define cecill ;copyleft
(license "CeCILL"
"http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html"
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 04/19] licenses: Add cddl1.1.
2017-11-08 22:51 ` [bug#29221] [PATCH 04/19] licenses: Add cddl1.1 julien
@ 2017-11-09 15:31 ` Ludovic Courtès
2017-11-16 20:54 ` Julien Lepiller
0 siblings, 1 reply; 27+ messages in thread
From: Ludovic Courtès @ 2017-11-09 15:31 UTC (permalink / raw)
To: julien; +Cc: 29221
Hi Julien,
julien@lepiller.eu skribis:
> From: Julien Lepiller <julien@lepiller.eu>
>
> * guix/licenses.scm (cddl1.1): New variable.
[...]
> +;; CDDL1.1 is the same as 1.0, except that "Oracle" becomes "Sun Microsystems, Inc",
> +;; "LOSS OF GOODWILL" becomes "LOST PROFITS" and section 6.3 is removed.
> +(define cddl1.1 cddl1.0)
I think that’s enough to warrant a distinct <license> object. You’re
welcome to leave this comment, though!
Ludo’.
^ permalink raw reply [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 04/19] licenses: Add cddl1.1.
2017-11-09 15:31 ` Ludovic Courtès
@ 2017-11-16 20:54 ` Julien Lepiller
2017-11-16 21:16 ` Tobias Geerinckx-Rice
0 siblings, 1 reply; 27+ messages in thread
From: Julien Lepiller @ 2017-11-16 20:54 UTC (permalink / raw)
To: 29221
[-- Attachment #1: Type: text/plain, Size: 691 bytes --]
Le Thu, 09 Nov 2017 16:31:21 +0100,
ludo@gnu.org (Ludovic Courtès) a écrit :
> Hi Julien,
>
> julien@lepiller.eu skribis:
>
> > From: Julien Lepiller <julien@lepiller.eu>
> >
> > * guix/licenses.scm (cddl1.1): New variable.
>
> [...]
>
> > +;; CDDL1.1 is the same as 1.0, except that "Oracle" becomes "Sun
> > Microsystems, Inc", +;; "LOSS OF GOODWILL" becomes "LOST PROFITS"
> > and section 6.3 is removed. +(define cddl1.1 cddl1.0)
>
> I think that’s enough to warrant a distinct <license> object. You’re
> welcome to leave this comment, though!
>
> Ludo’.
Is this correct? CDDL 1.1 is not mentionned on the gnu website nor on
the OSI website.
[-- Attachment #2: 0004-licenses-Add-cddl1.1.patch --]
[-- Type: text/x-patch, Size: 1466 bytes --]
From 16a737384d495a668f1db0f5deeb9f255158e39a Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sun, 5 Nov 2017 12:39:51 +0100
Subject: [PATCH 04/20] licenses: Add cddl1.1.
* guix/licenses.scm (cddl1.1): New variable.
---
guix/licenses.scm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 6de611da2..fa376750f 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -42,7 +42,7 @@
cc-by2.0 cc-by3.0 cc-by4.0
cc-by-sa2.0 cc-by-sa3.0 cc-by-sa4.0
cc-sampling-plus-1.0
- cddl1.0
+ cddl1.0 cddl1.1
cecill cecill-b cecill-c
artistic2.0 clarified-artistic
copyleft-next
@@ -217,6 +217,13 @@ at URI, which may be a file:// URI pointing the package's tree."
"http://directory.fsf.org/wiki/License:CDDLv1.0"
"https://www.gnu.org/licenses/license-list#CDDL"))
+;; CDDL1.1 is the same as 1.0, except that "Oracle" becomes "Sun Microsystems, Inc",
+;; "LOSS OF GOODWILL" becomes "LOST PROFITS" and section 6.3 is removed.
+(define cddl1.1
+ (license "CDDL 1.1"
+ "https://oss.oracle.com/licenses/CDDL+GPL-1.1"
+ "https://www.gnu.org/licenses/license-list#CDDL"))
+
(define cecill ;copyleft
(license "CeCILL"
"http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html"
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 04/19] licenses: Add cddl1.1.
2017-11-16 20:54 ` Julien Lepiller
@ 2017-11-16 21:16 ` Tobias Geerinckx-Rice
2017-11-16 21:13 ` Julien Lepiller
0 siblings, 1 reply; 27+ messages in thread
From: Tobias Geerinckx-Rice @ 2017-11-16 21:16 UTC (permalink / raw)
To: julien, 29221
Julien,
Julien Lepiller wrote on 16/11/17 at 21:54:
> +;; CDDL1.1 is the same as 1.0, except that "Oracle" becomes "Sun Microsystems, Inc",
> +;; "LOSS OF GOODWILL" becomes "LOST PROFITS" and section 6.3 is removed.
While I'd love to live in that world, I suspect you've accidentally
reversed the diff.
Kind regards,
T G-R
^ permalink raw reply [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 04/19] licenses: Add cddl1.1.
2017-11-16 21:16 ` Tobias Geerinckx-Rice
@ 2017-11-16 21:13 ` Julien Lepiller
2017-11-17 10:08 ` Ludovic Courtès
0 siblings, 1 reply; 27+ messages in thread
From: Julien Lepiller @ 2017-11-16 21:13 UTC (permalink / raw)
To: 29221
Le Thu, 16 Nov 2017 22:16:00 +0100,
Tobias Geerinckx-Rice <me@tobias.gr> a écrit :
> Julien,
>
> Julien Lepiller wrote on 16/11/17 at 21:54:
> > +;; CDDL1.1 is the same as 1.0, except that "Oracle" becomes "Sun
> > Microsystems, Inc", +;; "LOSS OF GOODWILL" becomes "LOST PROFITS"
> > and section 6.3 is removed.
>
> While I'd love to live in that world, I suspect you've accidentally
> reversed the diff.
>
> Kind regards,
>
> T G-R
Indeed... Thanks for spotting that :)
^ permalink raw reply [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 04/19] licenses: Add cddl1.1.
2017-11-16 21:13 ` Julien Lepiller
@ 2017-11-17 10:08 ` Ludovic Courtès
0 siblings, 0 replies; 27+ messages in thread
From: Ludovic Courtès @ 2017-11-17 10:08 UTC (permalink / raw)
To: Julien Lepiller; +Cc: 29221
Julien Lepiller <julien@lepiller.eu> skribis:
> Le Thu, 16 Nov 2017 22:16:00 +0100,
> Tobias Geerinckx-Rice <me@tobias.gr> a écrit :
>
>> Julien,
>>
>> Julien Lepiller wrote on 16/11/17 at 21:54:
>> > +;; CDDL1.1 is the same as 1.0, except that "Oracle" becomes "Sun
>> > Microsystems, Inc", +;; "LOSS OF GOODWILL" becomes "LOST PROFITS"
>> > and section 6.3 is removed.
>>
>> While I'd love to live in that world, I suspect you've accidentally
>> reversed the diff.
>>
>> Kind regards,
>>
>> T G-R
>
> Indeed... Thanks for spotting that :)
Heheh. Apart from that LGTM!
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 05/19] gnu: Add java-mail.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (2 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 04/19] licenses: Add cddl1.1 julien
@ 2017-11-08 22:51 ` julien
2017-11-08 23:03 ` ng0
2017-11-08 22:51 ` [bug#29221] [PATCH 06/19] gnu: Add java-jeromq julien
` (13 subsequent siblings)
17 siblings, 1 reply; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-mail): New variable.
---
gnu/packages/java.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 37e3f5180..67805bae7 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6949,3 +6949,80 @@ done to the IDE or continuous integration servers which simplifies adoption.")
("reflect" ,java-powermock-reflect)
("support" ,java-powermock-api-support)
("cglib" ,java-cglib)))))
+
+(define-public java-jboss-jms-api-spec
+ (package
+ (name "java-jboss-jms-api-spec")
+ (version "2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jboss/jboss-jms-api_spec/"
+ "archive/jboss-jms-api_" version
+ "_spec-1.0.1.Final.tar.gz"))
+ (sha256
+ (base32
+ "07bqblw9kq2i8q92bz70fvavq5xjfkaixl8xa0m0cypjgy82rb7m"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-jboss-jms-api_spec.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "."
+ #:tests? #f)); no tests
+ (home-page "https://github.com/jboss/jboss-jms-api_spec")
+ (synopsis "Java Message Service API specification")
+ (description "Java Message Service (JMS) API is used to send messages
+messages between two or more clients. It is a messaging standard that allows
+application components to create, send, receive, and read messages.")
+ ; either gpl2 only with GPL Classpath Exception, or cddl.
+ (license (list license:gpl2 license:cddl1.0))))
+
+(define-public java-mail
+ (package
+ (name "java-mail")
+ (version "1.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/javaee/javamail/archive/"
+ "JAVAMAIL-1_6_0.tar.gz"))
+ (sha256
+ (base32
+ "1b4rg7fpj50ld90a71iz2m4gm3f5cnw18p3q3rbrrryjip46kx92"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-mail.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "mail/src/main/java"
+ #:test-dir "mail/src/test"
+ #:test-exclude
+ (list "**/CollectorFormatterTest.java"
+ "**/CompactFormatterTest.java"
+ "**/DurationFilterTest.java"
+ "**/MailHandlerTest.java"
+ "**/GetLocalAddressTest.java"
+ ;; FIXME: both end with:
+ ;; java.lang.ClassNotFoundException:
+ ;; javax.mail.internet.MimeMultipartParseTest
+ "**/MimeMultipartParseTest.java"
+ "**/SearchTermSerializationTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'move-version.java
+ (lambda _
+ (copy-file "mail/src/main/resources/javax/mail/Version.java"
+ "mail/src/main/java/javax/mail/Version.java")))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "mail/src/main/resources/META-INF"
+ "build/classes/META-INF")
+ #t)))))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)))
+ (home-page "https://javaee.github.io/javamail/")
+ (synopsis "Mail-related functionnalities in Java")
+ (description "The JavaMail API provides a platform-independent and
+protocol-independent framework to build mail and messaging applications.")
+ ;; General Public License Version 2 only ("GPL") or the Common Development
+ ;; and Distribution License("CDDL")
+ (license (list license:cddl1.1
+ license:gpl2)))); with classpath exception
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 05/19] gnu: Add java-mail.
2017-11-08 22:51 ` [bug#29221] [PATCH 05/19] gnu: Add java-mail julien
@ 2017-11-08 23:03 ` ng0
2017-11-09 8:36 ` julien lepiller
0 siblings, 1 reply; 27+ messages in thread
From: ng0 @ 2017-11-08 23:03 UTC (permalink / raw)
To: julien; +Cc: 29221
[-- Attachment #1: Type: text/plain, Size: 4850 bytes --]
julien@lepiller.eu transcribed 3.8K bytes:
> From: Julien Lepiller <julien@lepiller.eu>
>
> * gnu/packages/java.scm (java-mail): New variable.
I didn't follow any of the past Java commits, but
shouldn't this mention:
> * gnu/packages/java.scm (java-jboss-jms-api-spec): New variable.
as well? Only recently I learned that python with python2 variants
in the same commit should mention both, so I guess this
applies here aswell if java-mail can not build without
the java-jboss-jms-api-spec.
However, just from reading the definitions it's not clear to
me why the 2 were bundled.
> ---
> gnu/packages/java.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 77 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 37e3f5180..67805bae7 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -6949,3 +6949,80 @@ done to the IDE or continuous integration servers which simplifies adoption.")
> ("reflect" ,java-powermock-reflect)
> ("support" ,java-powermock-api-support)
> ("cglib" ,java-cglib)))))
> +
> +(define-public java-jboss-jms-api-spec
> + (package
> + (name "java-jboss-jms-api-spec")
> + (version "2.0")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/jboss/jboss-jms-api_spec/"
> + "archive/jboss-jms-api_" version
> + "_spec-1.0.1.Final.tar.gz"))
> + (sha256
> + (base32
> + "07bqblw9kq2i8q92bz70fvavq5xjfkaixl8xa0m0cypjgy82rb7m"))))
> + (build-system ant-build-system)
> + (arguments
> + `(#:jar-name "java-jboss-jms-api_spec.jar"
> + #:jdk ,icedtea-8
> + #:source-dir "."
> + #:tests? #f)); no tests
> + (home-page "https://github.com/jboss/jboss-jms-api_spec")
> + (synopsis "Java Message Service API specification")
> + (description "Java Message Service (JMS) API is used to send messages
> +messages between two or more clients. It is a messaging standard that allows
> +application components to create, send, receive, and read messages.")
> + ; either gpl2 only with GPL Classpath Exception, or cddl.
> + (license (list license:gpl2 license:cddl1.0))))
> +
> +(define-public java-mail
> + (package
> + (name "java-mail")
> + (version "1.6.0")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/javaee/javamail/archive/"
> + "JAVAMAIL-1_6_0.tar.gz"))
> + (sha256
> + (base32
> + "1b4rg7fpj50ld90a71iz2m4gm3f5cnw18p3q3rbrrryjip46kx92"))))
> + (build-system ant-build-system)
> + (arguments
> + `(#:jar-name "java-mail.jar"
> + #:jdk ,icedtea-8
> + #:source-dir "mail/src/main/java"
> + #:test-dir "mail/src/test"
> + #:test-exclude
> + (list "**/CollectorFormatterTest.java"
> + "**/CompactFormatterTest.java"
> + "**/DurationFilterTest.java"
> + "**/MailHandlerTest.java"
> + "**/GetLocalAddressTest.java"
> + ;; FIXME: both end with:
> + ;; java.lang.ClassNotFoundException:
> + ;; javax.mail.internet.MimeMultipartParseTest
> + "**/MimeMultipartParseTest.java"
> + "**/SearchTermSerializationTest.java")
> + #:phases
> + (modify-phases %standard-phases
> + (add-before 'configure 'move-version.java
> + (lambda _
> + (copy-file "mail/src/main/resources/javax/mail/Version.java"
> + "mail/src/main/java/javax/mail/Version.java")))
> + (add-before 'build 'copy-resources
> + (lambda _
> + (copy-recursively "mail/src/main/resources/META-INF"
> + "build/classes/META-INF")
> + #t)))))
> + (native-inputs
> + `(("junit" ,java-junit)
> + ("hamcrest" ,java-hamcrest-core)))
> + (home-page "https://javaee.github.io/javamail/")
> + (synopsis "Mail-related functionnalities in Java")
> + (description "The JavaMail API provides a platform-independent and
> +protocol-independent framework to build mail and messaging applications.")
> + ;; General Public License Version 2 only ("GPL") or the Common Development
> + ;; and Distribution License("CDDL")
> + (license (list license:cddl1.1
> + license:gpl2)))); with classpath exception
> --
> 2.15.0
>
>
>
>
>
--
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://dist.ng0.infotropique.org/dist/keys/
WWW: https://ng0.infotropique.org
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 05/19] gnu: Add java-mail.
2017-11-08 23:03 ` ng0
@ 2017-11-09 8:36 ` julien lepiller
0 siblings, 0 replies; 27+ messages in thread
From: julien lepiller @ 2017-11-09 8:36 UTC (permalink / raw)
To: 29221
Le 2017-11-09 00:03, ng0 a écrit :
> julien@lepiller.eu transcribed 3.8K bytes:
>> From: Julien Lepiller <julien@lepiller.eu>
>>
>> * gnu/packages/java.scm (java-mail): New variable.
>
> I didn't follow any of the past Java commits, but
> shouldn't this mention:
>
>> * gnu/packages/java.scm (java-jboss-jms-api-spec): New variable.
>
> as well? Only recently I learned that python with python2 variants
> in the same commit should mention both, so I guess this
> applies here aswell if java-mail can not build without
> the java-jboss-jms-api-spec.
> However, just from reading the definitions it's not clear to
> me why the 2 were bundled.
>
Arg. Again, rebasing mistake :/
I will send that as two patches.
Thank you.
^ permalink raw reply [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 06/19] gnu: Add java-jeromq.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (3 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 05/19] gnu: Add java-mail julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 07/19] gnu: Add java-commons-csv julien
` (12 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-jeromq): 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 67805bae7..654674e5c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -7026,3 +7026,38 @@ protocol-independent framework to build mail and messaging applications.")
;; and Distribution License("CDDL")
(license (list license:cddl1.1
license:gpl2)))); with classpath exception
+
+(define-public java-jeromq
+ (package
+ (name "java-jeromq")
+ (version "0.4.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/zeromq/jeromq/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17wx8dlyqmbw77xf6d6wxnhiyky6181zpf1a48jqzz9hidz0j841"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-jeromq.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-exclude
+ (list
+ "**/Abstract*.java"
+ ;; Requires network
+ "**/ZBeaconTest.java"
+ ;; Failures
+ "**/CustomDecoderTest.java"
+ "**/CustomEncoderTest.java")))
+ (inputs
+ `(("java-jnacl" ,java-jnacl)))
+ (native-inputs
+ `(("java-hamcrest-core" ,java-hamcrest-core)
+ ("junit" ,java-junit)))
+ (home-page "http://zeromq.org/bindings:java")
+ (synopsis "Java binding for 0MQ")
+ (description "Jeromq provides the java bindings for 0MQ.")
+ (license license:mpl2.0)))
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 07/19] gnu: Add java-commons-csv.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (4 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 06/19] gnu: Add java-jeromq julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 08/19] gnu: Add java-commons-collections julien
` (11 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-commons-csv): New variable.
---
gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 654674e5c..ed3bad9b4 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3440,6 +3440,45 @@ many basic Internet protocols. The purpose of the library is to provide
fundamental protocol access, not higher-level abstractions.")
(license license:asl2.0)))
+(define-public java-commons-csv
+ (package
+ (name "java-commons-csv")
+ (version "1.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/csv/source/"
+ "commons-csv-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "1l89m0fm2s3xx3v3iynvangymfg2vlyngaj6fgsi457nmsw7m7ij"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "commons-csv.jar"
+ #:source-dir "src/main/java"
+ #:tests? #f)); FIXME: requires java-h2
+ (inputs
+ `(("java-hamcrest-core" ,java-hamcrest-core)
+ ("java-commons-io" ,java-commons-io)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("junit" ,java-junit)))
+ (home-page "https://commons.apache.org/proper/commons-csv/")
+ (synopsis "Read and write CSV documents")
+ (description "Commons CSV reads and writes files in variations of the Comma
+Separated Value (CSV) format. The most common CSV formats are predefined in the
+CSVFormat class:
+
+@itemize
+@item Microsoft Excel
+@item Informix UNLOAD
+@item Informix UNLOAD CSV
+@item MySQL
+@item RFC 4180
+@item TDF
+@end itemize
+
+Custom formats can be created using a fluent style API.")
+ (license license:asl2.0)))
+
(define-public java-osgi-annotation
(package
(name "java-osgi-annotation")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 08/19] gnu: Add java-commons-collections.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (5 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 07/19] gnu: Add java-commons-csv julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 09/19] gnu: Add java-commons-beanutils julien
` (10 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-commons-collections): New variable.
---
gnu/packages/java.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index ed3bad9b4..48079bae0 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2849,6 +2849,32 @@ are many features, including:
@end itemize\n")
(license license:asl2.0)))
+(define-public java-commons-collections
+ (package
+ (inherit java-commons-collections4)
+ (name "java-commons-collections")
+ (version "3.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/collections/source/"
+ "commons-collections-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments java-commons-collections4)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ ;; The manifest is required by the build procedure
+ (add-before 'build 'add-manifest
+ (lambda _
+ (mkdir-p "build/conf")
+ (call-with-output-file "build/conf/MANIFEST.MF"
+ (lambda (file)
+ (format file "Manifest-Version: 1.0\n")))))
+ (replace 'install
+ (install-jars "build"))))))))
+
(define-public java-commons-io
(package
(name "java-commons-io")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 09/19] gnu: Add java-commons-beanutils.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (6 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 08/19] gnu: Add java-commons-collections julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 10/19] gnu: Add java-kafka-clients julien
` (9 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-commons-beanutils): New variable.
---
gnu/packages/java.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 48079bae0..0766e1f63 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2875,6 +2875,54 @@ are many features, including:
(replace 'install
(install-jars "build"))))))))
+(define java-commons-collections-test-classes
+ (package
+ (inherit java-commons-collections)
+ (arguments
+ `(#:jar-name "commons-collections-test-classes.jar"
+ #:source-dir "src/test"
+ #:tests? #f))
+ (inputs
+ `(("collection" ,java-commons-collections)))))
+
+(define-public java-commons-beanutils
+ (package
+ (name "java-commons-beanutils")
+ (version "1.9.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/beanutils/source/"
+ "commons-beanutils-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "03cs0bq3sl1sdc7py9g3qnf8n9h473nrkvd3d251kaqv6a2ab7qk"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (rename-file (string-append "dist/commons-beanutils-" ,version
+ "-SNAPSHOT.jar")
+ "commons-beanutils.jar")
+ (install-file "commons-beanutils.jar"
+ (string-append (assoc-ref outputs "out") "/share/java/"))
+ #t)))))
+ (inputs
+ `(("logging" ,java-commons-logging-minimal)
+ ("collections" ,java-commons-collections)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("collections-test" ,java-commons-collections-test-classes)))
+ (home-page "http://commons.apache.org/beanutils/")
+ (synopsis "Dynamically set or get properties in Java")
+ (description "BeanUtils provides a simplified interface to reflection and
+introspection to set or get dynamically determined properties through their
+setter and getter method.")
+ (license license:asl2.0)))
+
(define-public java-commons-io
(package
(name "java-commons-io")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 10/19] gnu: Add java-kafka-clients.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (7 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 09/19] gnu: Add java-commons-beanutils julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 11/19] gnu: Add java-log4j-core julien
` (8 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-kafka-clients): New variable.
---
gnu/packages/java.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0766e1f63..453ca1620 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -7174,3 +7174,60 @@ protocol-independent framework to build mail and messaging applications.")
(synopsis "Java binding for 0MQ")
(description "Jeromq provides the java bindings for 0MQ.")
(license license:mpl2.0)))
+
+(define-public java-kafka-clients
+ (package
+ (name "java-kafka-clients")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/kafka/" version "/kafka-"
+ version "-src.tgz"))
+ (sha256
+ (base32
+ "1yxmnsmliwm7671q5yy9bl4jdqyyn00n26cggz9brwczx80w1vfq"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-kafka-clients.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "clients/src/main/java"
+ #:test-dir "clients/src/test"
+ #:test-exclude
+ (list
+ ;; This file does not contain a class
+ "**/IntegrationTest.java"
+ ;; Requires network
+ "**/ClientUtilsTest.java"
+ ;; End with errors that seem related to our powermock
+ "**/KafkaProducerTest.java"
+ "**/BufferPoolTest.java")))
+ (inputs
+ `(("java-slf4j-api" ,java-slf4j-api)
+ ("java-lz4" ,java-lz4)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-all)
+ ("objenesis" ,java-objenesis)
+ ("asm" ,java-asm)
+ ("cglib" ,java-cglib)
+ ("javassist" ,java-jboss-javassist)
+ ("snappy" ,java-snappy)
+ ("easymock" ,java-easymock)
+ ("powermock" ,java-powermock-core)
+ ("powermock-easymock" ,java-powermock-api-easymock)
+ ("powermock-junit4-common" ,java-powermock-modules-junit4-common)
+ ("powermock-junit4" ,java-powermock-modules-junit4)
+ ("powermock-support" ,java-powermock-api-support)
+ ("bouncycastle" ,java-bouncycastle-bcprov)
+ ("bouncycastle-bcpkix" ,java-bouncycastle-bcpkix)))
+ (home-page "https://kafka.apache.org")
+ (synopsis "Distributed streaming platform")
+ (description "Kafka is a distributed streaming platform, which means:
+@itemize
+@item it can publish and subscribe to streams of records;
+@item it can store streams of records in a fault-tolerant way;
+@item it can process streams of records as they occur.
+@end itemize")
+ ;; Either cddl or gpl2 only.
+ (license (list license:cddl1.1; actually cddl1.1
+ license:gpl2)))); with classpath exception
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 11/19] gnu: Add java-log4j-core.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (8 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 10/19] gnu: Add java-kafka-clients julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 12/19] gnu: Add java-log4j-1.2-api julien
` (7 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-log4j-core): New variable.
---
gnu/packages/java.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 453ca1620..25e38ba80 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -4240,6 +4240,50 @@ JavaMail API.")
Java.")
(license license:asl2.0)))
+(define-public java-log4j-core
+ (package
+ (inherit java-log4j-api)
+ (name "java-log4j-core")
+ (inputs
+ `(("java-osgi-core" ,java-osgi-core)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("java-log4j-api" ,java-log4j-api)
+ ("java-mail" ,java-mail)
+ ("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)
+ ("java-lmax-disruptor" ,java-lmax-disruptor)
+ ("java-kafka" ,java-kafka-clients)
+ ("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
+ ("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
+ ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
+ ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)
+ ("java-fasterxml-jackson-dataformat-xml" ,java-fasterxml-jackson-dataformat-xml)
+ ("java-fasterxml-jackson-dataformat-yaml" ,java-fasterxml-jackson-dataformat-yaml)
+ ("java-commons-compress" ,java-commons-compress)
+ ("java-commons-csv" ,java-commons-csv)
+ ("java-jeromq" ,java-jeromq)
+ ("java-junit" ,java-junit)))
+ (native-inputs
+ `(("hamcrest" ,java-hamcrest-all)
+ ("java-commons-io" ,java-commons-io)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("slf4j" ,java-slf4j-api)))
+ (arguments
+ `(#:tests? #f ; tests require more dependencies
+ #:test-dir "src/test"
+ #:source-dir "src/main/java"
+ #:jar-name "log4j-core.jar"
+ #:jdk ,icedtea-8
+ #:make-flags
+ (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out")
+ "/share/java"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-dir
+ (lambda _ (chdir "log4j-core") #t)))))
+ (synopsis "Core component of the Log4j framework")
+ (description "This package provides the core component of the Log4j
+logging framework for Java.")))
+
(define-public java-commons-cli
(package
(name "java-commons-cli")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 12/19] gnu: Add java-log4j-1.2-api.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (9 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 11/19] gnu: Add java-log4j-core julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 13/19] gnu: Add java-jdom julien
` (6 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-log4j-1.2-api): New variable.
---
gnu/packages/java.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 25e38ba80..2aa9311cf 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -4284,6 +4284,24 @@ Java.")
(description "This package provides the core component of the Log4j
logging framework for Java.")))
+(define-public java-log4j-1.2-api
+ (package
+ (inherit java-log4j-api)
+ (name "java-log4j-1.2-api")
+ (arguments
+ `(#:jar-name "java-log4j-1.2-api.jar"
+ #:source-dir "log4j-1.2-api/src/main/java"
+ #:jdk ,icedtea-8
+ ;; Tests require maven-model (and other maven subprojects), which is a
+ ;; cyclic dependency.
+ #:tests? #f))
+ (inputs
+ `(("log4j-api" ,java-log4j-api)
+ ("log4j-core" ,java-log4j-core)
+ ("osgi-core" ,java-osgi-core)
+ ("eclipse-osgi" ,java-eclipse-osgi)
+ ("java-lmax-disruptor" ,java-lmax-disruptor)))))
+
(define-public java-commons-cli
(package
(name "java-commons-cli")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 13/19] gnu: Add java-jdom.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (10 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 12/19] gnu: Add java-log4j-1.2-api julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 14/19] gnu: Add java-geronimo-xbean-reflect julien
` (5 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-jdom): New variable.
---
gnu/packages/java.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 2aa9311cf..3d950bd0b 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -7293,3 +7293,28 @@ protocol-independent framework to build mail and messaging applications.")
;; Either cddl or gpl2 only.
(license (list license:cddl1.1; actually cddl1.1
license:gpl2)))); with classpath exception
+
+(define-public java-jdom
+ (package
+ (name "java-jdom")
+ (version "1.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://jdom.org/dist/binary/archive/jdom-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "07wdpm3jwwc9q38kmdw40fvbmv6jzjrkrf8m0zqs58f79a672wfl"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:build-target "package"
+ #:tests? #f; tests are run as part of the build process
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (install-jars "build")))))
+ (home-page "http://jdom.org/")
+ (synopsis "Access, manipulate, and output XML data")
+ (description "Java-based solution for accessing, manipulating, and
+outputting XML data from Java code.")
+ (license license:bsd-4)))
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 14/19] gnu: Add java-geronimo-xbean-reflect.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (11 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 13/19] gnu: Add java-jdom julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 15/19] gnu: Add java-tukaani-xz julien
` (4 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-geronimo-xbean-reflect): New variable.
---
gnu/packages/java.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 3d950bd0b..c1e8c7a62 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -27,6 +27,7 @@
#:use-module (guix download)
#:use-module (guix hg-download)
#:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system ant)
#:use-module (guix build-system gnu)
@@ -7318,3 +7319,49 @@ protocol-independent framework to build mail and messaging applications.")
(description "Java-based solution for accessing, manipulating, and
outputting XML data from Java code.")
(license license:bsd-4)))
+
+(define-public java-geronimo-xbean-reflect
+ (package
+ (name "java-geronimo-xbean-reflect")
+ (version "4.5")
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "https://svn.apache.org/repos/asf/geronimo/xbean/tags/xbean-4.5/")
+ (revision 1807396)))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "18q3i6jgm6rkw8aysfgihgywrdc5nvijrwnslmi3ww497jvri6ja"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "geronimo-xbean-reflect.jar"
+ #:source-dir "xbean-reflect/src/main/java"
+ #:test-dir "xbean-reflect/src/test"
+ #:jdk ,icedtea-8
+ #:test-exclude
+ (list "**/Abstract*.java" "**/AsmParameterNameLoaderTest.java"
+ "**/ObjectRecipeTest.java" "**/ParameterNameLoaderTest.java"
+ "**/RecipeHelperTest.java" "**/XbeanAsmParameterNameLoaderTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-source
+ (lambda _
+ (let ((dir "xbean-reflect/src/main/java/org/apache/xbean/recipe/"))
+ ;; org.apache.xbean.asm6 is actually repackaged java-asm
+ (substitute* (string-append dir "XbeanAsmParameterNameLoader.java")
+ (("org.apache.xbean.asm5") "org.objectweb.asm"))
+ #t))))))
+ (inputs
+ `(("asm" ,java-asm)
+ ("log4j" ,java-log4j-api)
+ ("log4j-1.2" ,java-log4j-1.2-api)
+ ("log4j-core" ,java-log4j-core)
+ ("logging" ,java-commons-logging-minimal)))
+ (native-inputs
+ `(("junit" ,java-junit)))
+ (home-page "https://geronimo.apache.org/maven/xbean/3.6/xbean-reflect/")
+ (synopsis "Dependency injection helper")
+ (description "Xbean-reflect provides very flexible ways to create objects
+and graphs of objects for dependency injection frameworks")
+ (license license:asl2.0)))
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 15/19] gnu: Add java-tukaani-xz.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (12 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 14/19] gnu: Add java-geronimo-xbean-reflect julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 16/19] gnu: Add java-plexus-container-default-bootstrap julien
` (3 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-tukaani-xz): New variable.
---
gnu/packages/compression.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 27fa083fb..0d8295abb 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1830,3 +1830,38 @@ of archives.")
without having to worry how it does so, or use different interfaces for each
type by using either Perl modules, or command-line tools on your system.")
(license license:perl-license)))
+
+(define-public java-tukaani-xz
+ (package
+ (name "java-tukaani-xz")
+ (version "1.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://tukaani.org/xz/xz-java-" version ".zip"))
+ (sha256
+ (base32
+ "1z3p1ri1gvl07inxn0agx44ck8n7wrzfmvkz8nbq3njn8r9wba8x"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ ;; Our build system enters the first directory in the archive, but
+ ;; the package is not contained in a subdirectory
+ (chdir "..")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Do we want to install *Demo.jar?
+ (install-file "build/jar/xz.jar"
+ (string-append
+ (assoc-ref outputs "out")
+ "/share/java/xz.jar")))))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "https://tukaani.org")
+ (synopsis "XZ in Java")
+ (description "Tukaani-xz is an implementation of xz compression/decompression
+algorithms in Java.")
+ (license license:public-domain)))
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 16/19] gnu: Add java-plexus-container-default-bootstrap.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (13 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 15/19] gnu: Add java-tukaani-xz julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 17/19] gnu: Add java-plexus-io julien
` (2 subsequent siblings)
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-plexus-container-default-bootstrap): New
variable.
---
gnu/packages/java.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index c1e8c7a62..4ee894d88 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2363,6 +2363,45 @@ of Java. It is especially usefull for dynamic loading of application
components.")
(license license:asl2.0)))
+(define-public java-plexus-container-default-bootstrap
+ (package
+ (name "java-plexus-container-default-bootstrap")
+ (version "1.7.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus-plexus/plexus-containers"
+ "/archive/plexus-containers-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xw5g30qf4a83608rw9v2hv8pfsz7d69dkdhk6r0wia4q78hh1pc"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "container-default.jar"
+ #:source-dir "plexus-container-default/src/main/java"
+ #:test-dir "plexus-container-default/src/test"
+ #:jdk ,icedtea-8
+ #:tests? #f; requires plexus-archiver, which depends on this package
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively
+ "plexus-container-default/src/main/resources/"
+ "build/classes")
+ #t)))))
+ (inputs
+ `(("worldclass" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("utils" ,java-plexus-utils)
+ ("junit" ,java-junit)
+ ("guava" ,java-guava)))
+ (home-page "https://github.com/codehaus-plexus/plexus-containers")
+ (synopsis "Inversion of controll container")
+ (description "Plexus-default-container is Plexus' inversion-of-control
+(IoC) container. It is composed of its public API and its default
+implementation.")
+ (license license:asl2.0)))
+
(define-public java-asm
(package
(name "java-asm")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 17/19] gnu: Add java-plexus-io.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (14 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 16/19] gnu: Add java-plexus-container-default-bootstrap julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 18/19] gnu: Add java-plexus-archiver julien
2017-11-08 22:51 ` [bug#29221] [PATCH 19/19] gnu: Add java-plexus-container-default julien
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-plexus-io): New variable.
---
gnu/packages/java.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 4ee894d88..e072361d2 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2402,6 +2402,49 @@ components.")
implementation.")
(license license:asl2.0)))
+(define-public java-plexus-io
+ (package
+ (name "java-plexus-io")
+ (version "3.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus-plexus/plexus-io"
+ "/archive/plexus-io-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0f2j41kihaymxkpbm55smpxjja235vad8cgz94frfy3ppcp021dw"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "plexus-io.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/META-INF/plexus")
+ (copy-file "src/main/resources/META-INF/plexus/components.xml"
+ "build/classes/META-INF/plexus/components.xml")
+ #t)))))
+ (inputs
+ `(("utils" ,java-plexus-utils)
+ ("commons-io" ,java-commons-io)
+ ("java-jsr305" ,java-jsr305)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)
+ ("guava" ,java-guava)
+ ("classworlds" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("container-default" ,java-plexus-container-default-bootstrap)))
+ (home-page "https://github.com/codehaus-plexus/plexus-io")
+ (synopsis "I/O plexus components")
+ (description "Plexus IO is a set of plexus components, which are designed
+for use in I/O operations. This implementation using plexus components allows
+reusing it in maven.")
+ (license license:asl2.0)))
+
(define-public java-asm
(package
(name "java-asm")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 18/19] gnu: Add java-plexus-archiver.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (15 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 17/19] gnu: Add java-plexus-io julien
@ 2017-11-08 22:51 ` julien
2017-11-08 22:51 ` [bug#29221] [PATCH 19/19] gnu: Add java-plexus-container-default julien
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-plexus-archiver): New variable.
---
gnu/packages/java.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e072361d2..7dcf68c3a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2445,6 +2445,58 @@ for use in I/O operations. This implementation using plexus components allows
reusing it in maven.")
(license license:asl2.0)))
+(define-public java-plexus-archiver
+ (package
+ (name "java-plexus-archiver")
+ (version "3.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus-plexus/plexus-archiver"
+ "/archive/plexus-archiver-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0iv1j7khra6icqh3jndng3iipfmkc7l5jq2y802cm8r575v75pyv"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "plexus-archiver.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-dir "src/test"
+ #:test-exclude (list "**/Abstract*.java" "**/Base*.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'remove-failing
+ (lambda _
+ ;; Requires an older version of plexus container
+ (delete-file
+ "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java")))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/META-INF/plexus")
+ (copy-file "src/main/resources/META-INF/plexus/components.xml"
+ "build/classes/META-INF/plexus/components.xml")
+ #t)))))
+ (inputs
+ `(("utils" ,java-plexus-utils)
+ ("commons-io" ,java-commons-io)
+ ("snappy" ,java-iq80-snappy)
+ ("io" ,java-plexus-io)
+ ("compress" ,java-commons-compress)
+ ("container-default" ,java-plexus-container-default-bootstrap)
+ ("snappy" ,java-snappy)
+ ("java-jsr305" ,java-jsr305)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("classworld" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("xz" ,java-tukaani-xz)
+ ("guava" ,java-guava)))
+ (home-page "https://github.com/codehaus-plexus/plexus-archiver")
+ (synopsis "Archiver component of the Plexus project")
+ (description "Plexus-archiver contains a component to deal with project
+archives (jar).")
+ (license license:asl2.0)))
+
(define-public java-asm
(package
(name "java-asm")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [bug#29221] [PATCH 19/19] gnu: Add java-plexus-container-default.
2017-11-08 22:51 ` [bug#29221] [PATCH 01/19] gnu: Add bitshuffle julien
` (16 preceding siblings ...)
2017-11-08 22:51 ` [bug#29221] [PATCH 18/19] gnu: Add java-plexus-archiver julien
@ 2017-11-08 22:51 ` julien
17 siblings, 0 replies; 27+ messages in thread
From: julien @ 2017-11-08 22:51 UTC (permalink / raw)
To: 29221
From: Julien Lepiller <julien@lepiller.eu>
* gnu/packages/java.scm (java-plexus-container-default): New variable.
---
gnu/packages/java.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 7dcf68c3a..5c4a613ca 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2497,6 +2497,49 @@ reusing it in maven.")
archives (jar).")
(license license:asl2.0)))
+(define-public java-plexus-container-default
+ (package
+ (inherit java-plexus-container-default-bootstrap)
+ (name "java-plexus-container-default")
+ (arguments
+ `(#:jar-name "container-default.jar"
+ #:source-dir "plexus-container-default/src/main/java"
+ #:test-dir "plexus-container-default/src/test"
+ #:test-exclude (list ;"**/*Test.java"
+ "**/Abstract*.java"
+ ;; Requires plexus-hierarchy
+ "**/PlexusHierarchyTest.java"
+ ;; Failures
+ "**/ComponentRealmCompositionTest.java"
+ "**/PlexusContainerTest.java")
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively
+ "plexus-container-default/src/main/resources/"
+ "build/classes")
+ #t))
+ (add-before 'check 'fix-paths
+ (lambda _
+ (let ((dir "plexus-container-default/src/test/java/org/codehaus"))
+ (substitute*
+ (string-append
+ dir "/plexus/component/composition/"
+ "ComponentRealmCompositionTest.java")
+ (("src/test") "plexus-container-default/src/test"))
+ #t))))))
+ (inputs
+ `(("worldclass" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("utils" ,java-plexus-utils)
+ ("junit" ,java-junit)
+ ("guava" ,java-guava)))
+ (native-inputs
+ `(("archiver" ,java-plexus-archiver)
+ ("hamcrest" ,java-hamcrest-core)))))
+
(define-public java-asm
(package
(name "java-asm")
--
2.15.0
^ permalink raw reply related [flat|nested] 27+ messages in thread