add gradle subprojects and dependencies

Julien LepillerSat Dec 16 21:19:11+0100 2017

a65d5aa

add gradle subprojects and dependencies

gradle-match-files-witouht-version-number.patch unknown status 1

1+
From df92ed786feeff0f54681d2f559ea25c9bbcef49 Mon Sep 17 00:00:00 2001
2+
From: Julien Lepiller <julien@lepiller.eu>
3+
Date: Thu, 14 Dec 2017 19:26:57 +0100
4+
Subject: [PATCH] Also match files without version number.
5+
6+
Guix usually build java libraries without embedding their version number
7+
in the file name.  This patch allows gradle to match these files too.
8+
---
9+
 .../org/gradle/api/internal/classpath/DefaultModuleRegistry.java | 9 ++++++---
10+
 1 file changed, 6 insertions(+), 3 deletions(-)
11+
12+
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java
13+
index bcd55e3..b0ffd2b 100644
14+
--- a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java
15+
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java
16+
@@ -227,18 +227,21 @@ public class DefaultModuleRegistry implements ModuleRegistry {
17+
     }
18+
 
19+
     private File findJar(String name) {
20+
-        Pattern pattern = Pattern.compile(Pattern.quote(name) + "-\\d.+\\.jar");
21+
+        Pattern pattern = Pattern.compile(Pattern.quote(name) + "\\.jar");
22+
+        Pattern pattern2 = Pattern.compile(Pattern.quote(name) + "-\\d.+\\.jar");
23+
         if (gradleInstallation != null) {
24+
             for (File libDir : gradleInstallation.getLibDirs()) {
25+
                 for (File file : libDir.listFiles()) {
26+
-                    if (pattern.matcher(file.getName()).matches()) {
27+
+                    if (pattern.matcher(file.getName()).matches() ||
28+
+                                pattern2.matcher(file.getName()).matches()) {
29+
                         return file;
30+
                     }
31+
                 }
32+
             }
33+
         }
34+
         for (File file : classpath) {
35+
-            if (pattern.matcher(file.getName()).matches()) {
36+
+            if (pattern.matcher(file.getName()).matches() ||
37+
+                        pattern2.matcher(file.getName()).matches()) {
38+
                 return file;
39+
             }
40+
         }
41+
-- 
42+
2.15.1
43+

java-apache-ivy-port-to-latest-bouncycastle.patch unknown status 1

1+
From 29055a825af5405e44ffcd59a776f8952bdc7203 Mon Sep 17 00:00:00 2001
2+
From: Julien Lepiller <julien@lepiller.eu>
3+
Date: Fri, 15 Dec 2017 16:03:23 +0100
4+
Subject: [PATCH] Port to latest bouncycastle.
5+
6+
---
7+
 .../bouncycastle/OpenPGPSignatureGenerator.java    | 34 ++++++++++------------
8+
 1 file changed, 16 insertions(+), 18 deletions(-)
9+
10+
diff --git a/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java b/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
11+
index af7beae..34c204f 100644
12+
--- a/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
13+
+++ b/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java
14+
@@ -41,6 +41,11 @@ import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
15+
 import org.bouncycastle.openpgp.PGPSignature;
16+
 import org.bouncycastle.openpgp.PGPSignatureGenerator;
17+
 import org.bouncycastle.openpgp.PGPUtil;
18+
+import org.bouncycastle.openpgp.operator.PBESecretKeyDecryptor;
19+
+import org.bouncycastle.openpgp.operator.bc.BcPBESecretKeyDecryptorBuilder;
20+
+import org.bouncycastle.openpgp.operator.bc.BcPGPDigestCalculatorProvider;
21+
+import org.bouncycastle.openpgp.operator.bc.BcPGPContentSignerBuilder;
22+
+import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
23+
 
24+
 public class OpenPGPSignatureGenerator implements SignatureGenerator {
25+
 
26+
@@ -101,11 +106,15 @@ public class OpenPGPSignatureGenerator implements SignatureGenerator {
27+
                 pgpSec = readSecretKey(keyIn);
28+
             }
29+
 
30+
-            PGPPrivateKey pgpPrivKey = pgpSec.extractPrivateKey(password.toCharArray(),
31+
-                BouncyCastleProvider.PROVIDER_NAME);
32+
-            PGPSignatureGenerator sGen = new PGPSignatureGenerator(pgpSec.getPublicKey()
33+
-                    .getAlgorithm(), PGPUtil.SHA1, BouncyCastleProvider.PROVIDER_NAME);
34+
-            sGen.initSign(PGPSignature.BINARY_DOCUMENT, pgpPrivKey);
35+
+            PBESecretKeyDecryptor decryptor =
36+
+                    new BcPBESecretKeyDecryptorBuilder(new BcPGPDigestCalculatorProvider())
37+
+                    .build(password.toCharArray());
38+
+            PGPPrivateKey pgpPrivKey = pgpSec.extractPrivateKey(decryptor);
39+
+            BcPGPContentSignerBuilder builder = new BcPGPContentSignerBuilder(
40+
+                            pgpSec.getPublicKey().getAlgorithm(), PGPUtil.SHA1);
41+
+
42+
+            PGPSignatureGenerator sGen = new PGPSignatureGenerator(builder);
43+
+            sGen.init(PGPSignature.BINARY_DOCUMENT, pgpPrivKey);
44+
 
45+
             in = new FileInputStream(src);
46+
             out = new BCPGOutputStream(new ArmoredOutputStream(new FileOutputStream(dest)));
47+
@@ -116,22 +125,10 @@ public class OpenPGPSignatureGenerator implements SignatureGenerator {
48+
             }
49+
 
50+
             sGen.generate().encode(out);
51+
-        } catch (SignatureException e) {
52+
-            IOException ioexc = new IOException();
53+
-            ioexc.initCause(e);
54+
-            throw ioexc;
55+
         } catch (PGPException e) {
56+
             IOException ioexc = new IOException();
57+
             ioexc.initCause(e);
58+
             throw ioexc;
59+
-        } catch (NoSuchAlgorithmException e) {
60+
-            IOException ioexc = new IOException();
61+
-            ioexc.initCause(e);
62+
-            throw ioexc;
63+
-        } catch (NoSuchProviderException e) {
64+
-            IOException ioexc = new IOException();
65+
-            ioexc.initCause(e);
66+
-            throw ioexc;
67+
         } finally {
68+
             if (out != null) {
69+
                 try {
70+
@@ -156,7 +153,8 @@ public class OpenPGPSignatureGenerator implements SignatureGenerator {
71+
 
72+
     private PGPSecretKey readSecretKey(InputStream in) throws IOException, PGPException {
73+
         in = PGPUtil.getDecoderStream(in);
74+
-        PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(in);
75+
+        PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(in,
76+
+                        new BcKeyFingerprintCalculator());
77+
 
78+
         PGPSecretKey key = null;
79+
         for (Iterator it = pgpSec.getKeyRings(); key == null && it.hasNext();) {
80+
-- 
81+
2.15.1
82+

more/packages/gradle.scm

2323
  #:use-module (guix download)
2424
  #:use-module (guix utils)
2525
  #:use-module (guix build-system ant)
26+
  #:use-module (guix build-system trivial)
27+
  #:use-module (gnu packages bash)
2628
  #:use-module (gnu packages java)
2729
  #:use-module (more packages groovy)
28-
  #:use-module (more packages java))
30+
  #:use-module (more packages java)
31+
  #:use-module (more packages maven))
2932
30-
(define (gradle-subproject subproject)
33+
(define-public java-guava-for-gradle
34+
  (package
35+
    (inherit java-guava)
36+
    (version "17.0")
37+
    (source (origin
38+
              (method url-fetch)
39+
              (uri (string-append "https://github.com/google/guava/"
40+
                                  "archive/v" version ".tar.gz"))
41+
              (sha256
42+
               (base32
43+
                "0kg2n0dfdncbm3kgf8fa6kig8djfhar24vf0yf287x27w5sqzhnb"))))
44+
    (arguments
45+
     `(#:jar-name "guava.jar"
46+
       #:source-dir "guava/src/"
47+
       #:tests? #f)))); Not in a "java" subdirectory
48+
49+
(define (gradle-subproject subproject projects runtime)
3150
  (package
3251
    (name (string-append "gradle-" subproject))
33-
;    (version "2.3")
34-
;    (source (origin
35-
;              (method url-fetch)
36-
;              (uri (string-append "https://github.com/gradle/gradle/archive/REL_"
37-
;                                  version ".tar.gz"))
38-
;              (file-name (string-append "gradle-" version ".tar.gz"))
39-
;              (sha256
40-
;               (base32
41-
;                "1v65ac38fzj92jqgrpgma8kpdy974xi8aclgwxkdasy4lcr0k37g"))))
4252
    (version "4.4.0")
4353
    (source (origin
4454
              (method url-fetch)

4757
              (file-name (string-append "gradle-" version ".tar.gz"))
4858
              (sha256
4959
               (base32
50-
                "026232dy578nl8gzj1nfc9r25p8alcwdbwb9b8s3bw4krxmy6saz"))))
60+
                "026232dy578nl8gzj1nfc9r25p8alcwdbwb9b8s3bw4krxmy6saz"))
61+
              (patches
62+
                (search-patches
63+
                  "gradle-match-files-witouht-version-number.patch"))))
5164
    (build-system ant-build-system)
5265
    (arguments
53-
     `(#:jar-name (string-append "gradle-" ,subproject ".jar")
66+
     `(#:jar-name (string-append "gradle-" ,subproject "-4.4.jar")
5467
       #:source-dir (string-append "subprojects/" ,subproject "/src/main/java")
5568
       #:jdk ,icedtea-8
5669
       #:tests? #f;; Ignore tests for now
57-
       #:test-dir (string-append "subprojects/" ,subproject "/src/test")))
70+
       #:test-dir (string-append "subprojects/" ,subproject "/src/test")
71+
       #:phases
72+
       (modify-phases %standard-phases
73+
         (add-before 'build 'add-implementation-info
74+
           (lambda _
75+
             (substitute* "build.xml"
76+
               (("message=\"")
77+
                (string-append "message=\"Implementation-Title: Gradle"
78+
                               "${line.separator}"
79+
                               "Implementation-Version: 4.4"
80+
                               "${line.separator}")))
81+
             #t))
82+
         (add-before 'build 'add-properties
83+
           (lambda* (#:key inputs #:allow-other-keys)
84+
             (mkdir-p "build/classes")
85+
             (with-output-to-file (string-append "build/classes/gradle-"
86+
                                                 ,subproject
87+
                                                 "-classpath.properties")
88+
               (lambda _
89+
                 (format #t "projects=~a\nruntime=~a\n"
90+
                         (string-join ',projects ",")
91+
                         (string-join
92+
                           (map basename
93+
                             (apply append
94+
                               (map (lambda (lib) (find-files (assoc-ref inputs lib)
95+
                                                              ".*.jar"))
96+
                                 ',runtime)))
97+
                           ","))))
98+
             #t))
99+
         (add-before 'build 'copy-resources
100+
           (lambda _
101+
             (let ((resources (string-append "subprojects/" ,subproject
102+
                                             "/src/main/resources")))
103+
             (if (file-exists? resources)
104+
               (copy-recursively resources "build/classes"))))))))
58105
    (inputs '())
59106
    (native-inputs '())
60107
    (home-page "")

62109
    (description "Build system")
63110
    (license license:asl2.0)))
64111
65-
(define (gradle-groovy-subproject subproject)
66-
  (let ((base (gradle-subproject subproject)))
112+
(define (gradle-groovy-subproject subproject projects runtime)
113+
  (let ((base (gradle-subproject subproject projects runtime)))
67114
    (package
68115
      (inherit base)
69116
      (arguments
70-
       `(#:jar-name (string-append "gradle-" ,subproject ".jar")
71-
         #:source-dir (string-append "subprojects/" ,subproject "/src/main/groovy")
72-
         #:test-dir (string-append "subprojects/" ,subproject "/src/test")
73-
         #:jdk ,icedtea-8
74-
         #:tests? #f;; Ignore tests for now
75-
         #:phases
76-
         (modify-phases %standard-phases
77-
           (add-before 'build 'use-groovy
78-
             (lambda _
79-
               (substitute* "build.xml"
80-
                 (("javac") "groovyc")
81-
                 (("includeantruntime=\"false\"")
82-
                  "includeantruntime=\"false\" fork=\"yes\"")
83-
                 (("classpath=\"@refidclasspath\"")
84-
                  "classpathref=\"classpath\"")
85-
                 ;; To enable joint compilation
86-
                 (("classpathref=\"classpath\" />")
87-
                  "classpathref=\"classpath\"><javac source=\"1.5\" target=\"1.5\" /></groovyc>")
88-
                 (("<project basedir=\".\">")
89-
                  "<project basedir=\".\"><taskdef name=\"groovyc\"
90-
classname=\"org.codehaus.groovy.ant.Groovyc\" />")))))))
117+
       (substitute-keyword-arguments (package-arguments base)
118+
         ((#:source-dir source-dir)
119+
          `(string-append "subprojects/" ,subproject "/src/main/groovy"))
120+
         ((#:phases phases)
121+
          `(modify-phases ,phases
122+
             (add-before 'build 'use-groovy
123+
               (lambda _
124+
                 (substitute* "build.xml"
125+
                   (("javac") "groovyc")
126+
                   (("includeantruntime=\"false\"")
127+
                    "includeantruntime=\"false\" fork=\"yes\"")
128+
                   (("classpath=\"@refidclasspath\"")
129+
                    "classpathref=\"classpath\"")
130+
                   ;; To enable joint compilation
131+
                   (("classpathref=\"classpath\" />")
132+
                    "classpathref=\"classpath\"><javac source=\"1.5\" target=\"1.5\" /></groovyc>")
133+
                   (("<project basedir=\".\">")
134+
                    "<project basedir=\".\"><taskdef name=\"groovyc\"
135+
classname=\"org.codehaus.groovy.ant.Groovyc\" />"))))))))
91136
      (native-inputs
92137
       `(("groovy" ,groovy)
93138
         ,@(package-inputs groovy))))))
94139
140+
(define-public gradle-japicmp-plugin
141+
  (package
142+
    (name "gradle-japicmp-plugin")
143+
    (version "0.2.6")
144+
    (source (origin
145+
              (method url-fetch)
146+
              (uri (string-append "https://github.com/melix/japicmp-gradle-plugin/"
147+
                                  "archive/RELEASE_"
148+
                                  (string-map (lambda (x) (if (eq? x #\.) #\_ x))
149+
                                              version)
150+
                                  ".tar.gz"))
151+
              (sha256
152+
               (base32
153+
                "09frla9a1f33s31di5wcirm50ddhgww8wanlygc8068xnb5ch357"))))
154+
    (build-system ant-build-system)
155+
    (arguments
156+
     `(#:jar-name "gradle-japicmp-plugin.jar"
157+
       #:source-dir "src/main/java"
158+
       #:tests? #f; FIXME: can't compile
159+
       #:jdk ,icedtea-8))
160+
    (inputs
161+
     `(("gradle-base-services" ,gradle-base-services)
162+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
163+
       ("gradle-core" ,gradle-core)
164+
       ("gradle-core-api" ,gradle-core-api)
165+
       ("gradle-logging" ,gradle-logging)
166+
       ("gradle-workers" ,gradle-workers)
167+
       ("groovy-bootstrap" ,groovy-bootstrap)
168+
       ("groovy-templates" ,groovy-templates)
169+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
170+
       ("java-japicmp" ,java-japicmp)
171+
       ("java-javax-inject" ,java-javax-inject)
172+
       ("java-jboss-javassist" ,java-jboss-javassist)))
173+
    (home-page "")
174+
    (synopsis "")
175+
    (description "")
176+
    (license license:asl2.0)))
177+
178+
(define-public gradle-buildsrc
179+
  (package
180+
    (inherit (gradle-subproject "buildsrc" '() '()))
181+
    (name "gradle-buildsrc")
182+
    (arguments
183+
     `(#:jar-name "gradle-buildsrc.jar"
184+
       #:source-dir "buildSrc/src/main/groovy:buildSrc/src/main/java"
185+
       #:test-dir "buildSrc/src/test"
186+
       #:jdk ,icedtea-8
187+
       #:tests? #f;; Ignore tests for now
188+
       #:phases
189+
       (modify-phases %standard-phases
190+
         (add-before 'build 'copy-resources
191+
           (lambda _
192+
             (copy-recursively "buildSrc/src/main/resources" "build/classes")
193+
             #t))
194+
         (add-before 'build 'remove-deps
195+
           (lambda _
196+
             ;; Requires asciidoctor, which is implemented with jruby :/
197+
             (delete-file "buildSrc/src/main/groovy/org/gradle/build/docs/CacheableAsciidoctorTask.groovy")
198+
             ;; Requires http-builder, but it requires old software
199+
             (delete-file "buildSrc/src/main/groovy/org/gradle/testing/DistributedPerformanceTest.groovy")
200+
             #t))
201+
         (add-before 'build 'remove-jarjar
202+
           (lambda _
203+
             (substitute* '("buildSrc/src/main/groovy/org/gradle/build/docs/dsl/source/SourceMetaDataVisitor.java"
204+
                            "buildSrc/src/main/groovy/org/gradle/build/docs/dsl/source/ExtractDslMetaDataTask.groovy")
205+
               (("groovyjarjarantlr") "antlr"))))
206+
         (add-before 'build 'fixes
207+
           (lambda _
208+
             (substitute* "buildSrc/src/main/groovy/org/gradle/binarycompatibility/rules/SinceAnnotationMissingRule.java"
209+
               ;; Fix for java8 (cannot convert to String)
210+
               (("Declaration.getName\\(\\)") "Declaration.getName().toString()")
211+
               ;; Fix for guava
212+
               (("getComment\\(\\).getContent\\(\\)") "getComment().get().toString()")
213+
               ;; javaparser is more recent than expected
214+
               (("getVariables\\(\\).get\\(0\\).getId\\(\\).getName\\(\\)")
215+
                "getVariables().get(0).getName().toString()"))
216+
             (substitute* "buildSrc/src/main/groovy/org/gradle/binarycompatibility/rules/AbstractGradleViolationRule.groovy"
217+
               (("it.name.name") "it.name.asString()"))
218+
             #t))
219+
         (add-before 'build 'use-groovy
220+
           (lambda _
221+
             (substitute* "build.xml"
222+
               (("javac") "groovyc")
223+
               (("includeantruntime=\"false\"")
224+
                "includeantruntime=\"false\" fork=\"yes\"")
225+
               (("classpath=\"@refidclasspath\"")
226+
                "classpathref=\"classpath\"")
227+
               ;; To enable joint compilation
228+
               (("classpathref=\"classpath\" />")
229+
                "classpathref=\"classpath\"><javac source=\"7\" target=\"7\" /></groovyc>")
230+
               (("<project basedir=\".\">")
231+
                "<project basedir=\".\"><taskdef name=\"groovyc\"
232+
classname=\"org.codehaus.groovy.ant.Groovyc\" />"))
233+
             #t)))))
234+
    (inputs
235+
     `(("gradle-base-services" ,gradle-base-services)
236+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
237+
       ("gradle-core" ,gradle-core)
238+
       ("gradle-core-api" ,gradle-core-api)
239+
       ("gradle-japicmp-plugin" ,gradle-japicmp-plugin)
240+
       ("gradle-logging" ,gradle-logging)
241+
       ("gradle-messaging" ,gradle-messaging)
242+
       ("gradle-model-core" ,gradle-model-core)
243+
       ("gradle-native" ,gradle-native)
244+
       ("gradle-platform-base" ,gradle-platform-base)
245+
       ("gradle-platform-jvm" ,gradle-platform-jvm)
246+
       ("gradle-platform-native" ,gradle-platform-native)
247+
       ("gradle-plugins" ,gradle-plugins)
248+
       ("gradle-process-services" ,gradle-process-services)
249+
       ("gradle-reporting" ,gradle-reporting)
250+
       ("gradle-testing-base" ,gradle-testing-base)
251+
       ("gradle-testing-jvm" ,gradle-testing-jvm)
252+
       ("groovy-xml" ,groovy-xml)
253+
       ("java-commons-lang" ,java-commons-lang)
254+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
255+
       ("java-japicmp" ,java-japicmp)
256+
       ("java-javaparser" ,java-javaparser)
257+
       ("java-javax-inject" ,java-javax-inject)
258+
       ("java-jboss-javassist" ,java-jboss-javassist)
259+
       ("java-jsoup" ,java-jsoup)
260+
       ("java-parboiled" ,java-parboiled)
261+
       ("java-pegdown" ,java-pegdown)
262+
       ("java-slf4j-api" ,java-slf4j-api)))
263+
    (native-inputs
264+
     `(("groovy" ,groovy)
265+
       ,@(package-inputs groovy)))))
266+
95267
(define-public gradle-internal-testing
96268
  (package
97-
    (inherit (gradle-groovy-subproject "internal-testing"))
269+
    (inherit (gradle-groovy-subproject "internal-testing" '() '()))
98270
    (inputs
99271
     `(("gradle-native" ,gradle-native)
100272
       ("gradle-base-services" ,gradle-base-services)
101273
       ("groovy-xml" ,groovy-xml)
102274
       ("java-commons-io" ,java-commons-io)
103275
       ("java-commons-lang" ,java-commons-lang)
104-
       ("java-guava" ,java-guava)
276+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
105277
       ("java-hamcrest-all" ,java-hamcrest-all)
106278
       ("java-jmock" ,java-jmock)
107279
       ("java-jmock-junit4" ,java-jmock-junit4)

113285
114286
;; Cycle with internal-testing
115287
(define-public gradle-base-services
116-
  (let ((base (gradle-subproject "base-services")))
288+
  (let ((base (gradle-subproject
289+
                "base-services" '()
290+
                '("java-guava-for-gradle" "java-slf4j-api" "java-commons-lang"
291+
                  "java-commons-io" "java-jsr305" "java-jcip-annotations"))))
117292
    (package
118293
      (inherit base)
294+
      (arguments
295+
       (substitute-keyword-arguments (package-arguments base)
296+
         ((#:phases phases)
297+
          `(modify-phases ,phases
298+
             (add-before 'build 'create-build-receipt
299+
               (lambda _
300+
                 (mkdir-p "build/classes/org/gradle")
301+
                 (with-output-to-file "build/classes/org/gradle/build-receipt.properties"
302+
                   (lambda _
303+
                     (format #t "baseVersion=4.4
304+
commitId=cf7821a6f79f8e2a598df21780e3ff7ce8db2b82
305+
buildTimestamp=19710101000000+0000
306+
buildTimestampIso=1971-01-01 00\\:00\\:00 UTC
307+
versionNumber=4.4
308+
isSnapshot=false")))
309+
                 #t))))))
119310
      (inputs
120-
       `(("java-guava" ,java-guava)
311+
       `(("java-guava-for-gradle" ,java-guava-for-gradle)
121312
         ("java-slf4j-api" ,java-slf4j-api)
122313
         ("java-commons-lang" ,java-commons-lang)
123314
         ("java-commons-io" ,java-commons-io)
124315
         ("java-jsr305" ,java-jsr305)
125316
         ("java-jcip-annotations" ,java-jcip-annotations)))
126-
    (native-inputs
127-
     `(("java-junit" ,java-junit)
128-
       ("java-hamcrest-core" ,java-hamcrest-core))))))
317+
      (native-inputs
318+
       `(("java-junit" ,java-junit)
319+
         ("java-hamcrest-core" ,java-hamcrest-core))))))
129320
130321
(define-public gradle-base-services-groovy
131322
  (package
132-
    (inherit (gradle-subproject "base-services-groovy"))
323+
    (inherit (gradle-subproject "base-services-groovy" '("gradle-base-services")
324+
                                '("groovy-bootstrap")))
133325
    (inputs
134326
     `(("gradle-base-services" ,gradle-base-services)
135327
       ("groovy-bootstrap" ,groovy-bootstrap)
136-
       ("java-asm" ,java-asm)
137-
       ("java-guava" ,java-guava)
328+
       ("java-asm-6" ,java-asm-6)
329+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
138330
       ("java-jsr305" ,java-jsr305)))))
139331
140332
(define-public gradle-build-option
141333
  (package
142-
    (inherit (gradle-subproject "build-option"))
334+
    (inherit (gradle-subproject "build-option" '("gradle-cli") '()))
143335
    (inputs
144336
     `(("gradle-cli" ,gradle-cli)
145337
       ("java-commons-lang" ,java-commons-lang)

147339
148340
(define-public gradle-cli
149341
  (package
150-
    (inherit (gradle-subproject "cli"))))
342+
    (inherit (gradle-subproject "cli" '() '()))))
151343
152344
(define-public gradle-native
153345
  (package
154-
    (inherit (gradle-subproject "native"))
346+
    (inherit (gradle-subproject "native" '("gradle-base-services")
347+
                                '("java-native-platform" "java-commons-io"
348+
                                  "java-slf4j-api" "java-jansi"
349+
                                  "java-guava-for-gradle")))
155350
    (inputs
156351
     `(("gradle-base-services" ,gradle-base-services)
157352
       ("java-commons-io" ,java-commons-io)
158-
       ("java-guava" ,java-guava)
353+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
159354
       ("java-jansi" ,java-jansi)
160355
       ("java-jsr305" ,java-jsr305)
161356
       ("java-native-platform" ,java-native-platform)
162357
       ("java-slf4j-api" ,java-slf4j-api)))))
163358
164359
(define-public gradle-messaging
165-
  (let ((base  (gradle-subproject "messaging")))
360+
  (let ((base  (gradle-subproject "messaging" '("gradle-base-services")
361+
                                  '("java-slf4j-api" "java-kryo" "java-objenesis"
362+
                                    "java-minlog" "java-reflectasm" "java-asm-6"))))
166363
    (package
167364
      (inherit base)
168365
      (arguments
169-
       `(#:phases
170-
         (modify-phases %standard-phases
171-
           (add-before 'build 'fix-kryo
172-
             (lambda _
173-
               ;; gradle depends on kryo-2.20 from 2013, we packaged version 4.
174-
               (substitute* "subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java"
175-
                 (("public int getWritePosition")
176-
                  "public long getWritePosition"))
177-
               #t)))
178-
         ,@(package-arguments base)))
366+
        (substitute-keyword-arguments (package-arguments base)
367+
          ((#:phases phases)
368+
           `(modify-phases ,phases
369+
              (add-before 'build 'fix-kryo
370+
                (lambda _
371+
                  ;; gradle depends on kryo-2.20 from 2013, we packaged version 4.
372+
                  (substitute* "subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java"
373+
                    (("public int getWritePosition")
374+
                     "public long getWritePosition"))
375+
                  #t))))))
179376
      (inputs
180377
       `(("gradle-base-services" ,gradle-base-services)
181378
         ("gradle-base-services-groovy" ,gradle-base-services-groovy)
379+
         ("java-asm-6" ,java-asm-6)
182380
         ("java-commons-lang" ,java-commons-lang)
183-
         ("java-guava" ,java-guava)
381+
         ("java-guava-for-gradle" ,java-guava-for-gradle)
184382
         ("java-jsr305" ,java-jsr305)
185383
         ("java-kryo" ,java-kryo)
384+
         ("java-minlog" ,java-minlog)
385+
         ("java-objenesis" ,java-objenesis)
386+
         ("java-reflectasm" ,java-reflectasm)
186387
         ("java-slf4j-api" ,java-slf4j-api))))))
187388
188389
(define-public gradle-persistent-cache
189390
  (package
190-
    (inherit (gradle-subproject "persistent-cache"))
391+
    (inherit (gradle-subproject
392+
               "persistent-cache"
393+
               '("gradle-base-services" "gradle-messaging" "gradle-native")
394+
               '("java-jcip-annotations" "java-commons-collections"
395+
                 "java-commons-io" "java-commons-lang")))
191396
    (inputs
192397
     `(("gradle-base-services" ,gradle-base-services)
193398
       ("gradle-messaging" ,gradle-messaging)

195400
       ("java-commons-collections" ,java-commons-collections)
196401
       ("java-commons-io" ,java-commons-io)
197402
       ("java-commons-lang" ,java-commons-lang)
198-
       ("java-guava" ,java-guava)
403+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
199404
       ("java-jcip-annotations" ,java-jcip-annotations)
200405
       ("java-jsr305" ,java-jsr305)
201406
       ("java-slf4j-api" ,java-slf4j-api)))))
202407
203408
(define-public gradle-logging
204409
  (package
205-
    (inherit (gradle-subproject "logging"))
410+
    (inherit (gradle-subproject
411+
               "logging"
412+
               '("gradle-native" "gradle-base-services" "gradle-messaging"
413+
                 "gradle-cli" "gradle-build-option")
414+
               ;; Maybe log4j-over-slf4j and jcl-over-slf4j
415+
               '("java-slf4j-api" "java-jul-to-slf4j" "ant" "java-commons-lang"
416+
                 "java-guava-for-gradle" "java-jansi" "java-jansi-native"
417+
                 "java-jcip-annotations")))
206418
    (inputs
207419
     `(("gradle-base-services" ,gradle-base-services)
208420
       ("gradle-build-option" ,gradle-build-option)

210422
       ("gradle-messaging" ,gradle-messaging)
211423
       ("gradle-native" ,gradle-native)
212424
       ("java-commons-lang" ,java-commons-lang)
213-
       ("java-guava" ,java-guava)
425+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
214426
       ("java-jansi" ,java-jansi)
215427
       ("java-jansi-native" ,java-jansi-native)
216428
       ("java-jcip-annotations" ,java-jcip-annotations)

220432
221433
(define-public gradle-model-core
222434
  (package
223-
    (inherit (gradle-subproject "model-core"))
435+
    (inherit (gradle-subproject
436+
               "model-core"
437+
               '("gradle-base-services-groovy" "gradle-base-services")
438+
               '("groovy-bootstrap" "java-slf4j-api" "java-guava-for-gradle"
439+
                 "java-jcip-annotations" "java-commons-lang" "java-asm-6")))
224440
    (inputs
225441
     `(("gradle-base-services" ,gradle-base-services)
226442
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
227443
       ("groovy-bootstrap" ,groovy-bootstrap)
228-
       ("java-asm" ,java-asm)
444+
       ("java-asm-6" ,java-asm-6)
229445
       ("java-commons-lang" ,java-commons-lang)
230-
       ("java-guava" ,java-guava)
446+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
231447
       ("java-jcip-annotations" ,java-jcip-annotations)
232448
       ("java-jsr305" ,java-jsr305)
233449
       ("java-slf4j-api" ,java-slf4j-api)))))
234450
235451
(define-public gradle-resources
236452
  (package
237-
    (inherit (gradle-subproject "resources"))
453+
    (inherit (gradle-subproject
454+
               "resources"
455+
               '("gradle-base-services" "gradle-messaging" "gradle-native"
456+
                 "gradle-model-core")
457+
               '("java-guava-for-gradle" "java-commons-io")))
238458
    (inputs
239459
     `(("gradle-base-services" ,gradle-base-services)
240460
       ("gradle-model-core" ,gradle-model-core)
241461
       ("gradle-native" ,gradle-native)
242462
       ("java-commons-io" ,java-commons-io)
243-
       ("java-guava" ,java-guava)
463+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
244464
       ("java-jsr305" ,java-jsr305)))))
245465
246466
(define-public gradle-build-cache
247467
  (package
248-
    (inherit (gradle-subproject "build-cache"))
468+
    (inherit (gradle-subproject
469+
               "build-cache"
470+
               '("gradle-messaging" "gradle-native" "gradle-persistent-cache"
471+
                 "gradle-resources" "gradle-logging" "gradle-base-services")
472+
               '("java-javax-inject" "java-commons-io")))
249473
    (inputs
250474
     `(("gradle-base-services" ,gradle-base-services)
251475
       ("gradle-logging" ,gradle-logging)
252476
       ("gradle-persistent-cache" ,gradle-persistent-cache)
253477
       ("gradle-resources" ,gradle-resources)
254478
       ("java-commons-io" ,java-commons-io)
255-
       ("java-guava" ,java-guava)
479+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
256480
       ("java-javax-inject" ,java-javax-inject)
257481
       ("java-jsr305" ,java-jsr305)
258482
       ("java-slf4j-api" ,java-slf4j-api)))))
259483
260484
(define-public gradle-process-services
261485
  (package
262-
    (inherit (gradle-subproject "process-services"))
486+
    (inherit (gradle-subproject
487+
               "process-services"
488+
               '("gradle-messaging" "gradle-native" "gradle-base-services")
489+
               '("java-guava-for-gradle" "java-slf4j-api")))
263490
    (inputs
264491
     `(("gradle-base-services" ,gradle-base-services)
265492
       ("gradle-messaging" ,gradle-messaging)
266493
       ("gradle-native" ,gradle-native)
267-
       ("java-guava" ,java-guava)
494+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
268495
       ("java-jsr305" ,java-jsr305)
269496
       ("java-native-platform" ,java-native-platform)
270497
       ("java-slf4j-api" ,java-slf4j-api)))))
271498
272499
(define-public gradle-core-api
273500
  (package
274-
    (inherit (gradle-subproject "core-api"))
501+
    (inherit (gradle-subproject
502+
               "core-api"
503+
               '("gradle-base-services" "gradle-base-services-groovy"
504+
                 "gradle-build-cache" "gradle-logging" "gradle-model-core"
505+
                 "gradle-persistent-cache" "gradle-process-services"
506+
                 "gradle-resources")
507+
               '("ant" "java-commons-io" "java-commons-lang"
508+
                 "java-jcip-annotations")))
275509
    (inputs
276510
     `(("gradle-base-services" ,gradle-base-services)
277511
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)

283517
       ("gradle-resources" ,gradle-resources)
284518
       ("groovy-ant" ,groovy-ant)
285519
       ("groovy-bootstrap" ,groovy-bootstrap)
520+
       ("java-commons-io" ,java-commons-io)
286521
       ("java-commons-lang" ,java-commons-lang)
287-
       ("java-guava" ,java-guava)
522+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
523+
       ("java-jcip-annotations" ,java-jcip-annotations)
288524
       ("java-jsr305" ,java-jsr305)
289525
       ("java-slf4j-api" ,java-slf4j-api)))))
290526
291527
(define-public gradle-model-groovy
292528
  (package
293-
    (inherit (gradle-subproject "model-groovy"))
529+
    (inherit (gradle-subproject
530+
               "model-groovy"
531+
               '("gradle-base-services-groovy" "gradle-base-services"
532+
                 "gradle-model-core")
533+
               '("groovy-bootstrap" "java-jcip-annotations" "java-guava-for-gradle")))
294534
    (inputs
295535
     `(("gradle-base-services" ,gradle-base-services)
296536
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
297537
       ("gradle-model-core" ,gradle-model-core)
298538
       ("groovy-bootstrap" ,groovy-bootstrap)
299-
       ("java-asm" ,java-asm)
300-
       ("java-guava" ,java-guava)
539+
       ("java-asm-6" ,java-asm-6)
540+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
301541
       ("java-jcip-annotations" ,java-jcip-annotations)
302542
       ("java-jsr305" ,java-jsr305)))))
303543
304544
(define-public gradle-jvm-services
305545
  (package
306-
    (inherit (gradle-subproject "jvm-services"))
546+
    (inherit (gradle-subproject
547+
               "jvm-services"
548+
               '("gradle-base-services" "gradle-process-services")
549+
               '()))
307550
    (inputs
308551
     `(("gradle-base-services" ,gradle-base-services)
309552
       ("gradle-process-services" ,gradle-process-services)))))
310553
311-
(define java-guava-for-gradle
554+
(define-public gradle-core
555+
  (let ((base (gradle-subproject
556+
                "core"
557+
                '("gradle-docs" "gradle-model-groovy" "gradle-base-services"
558+
                  "gradle-base-services-groovy" "gradle-messaging"
559+
                  "gradle-logging" "gradle-resources" "gradle-cli"
560+
                  "gradle-build-option" "gradle-native" "gradle-persistent-cache"
561+
                  "gradle-build-cache" "gradle-core-api" "gradle-process-services"
562+
                  "gradle-jvm-services" "gradle-model-core")
563+
                '("groovy-ant" "groovy-bootstrap" "groovy-json" "groovy-templates"
564+
                  "groovy-xml" "ant" "java-guava-for-gradle"
565+
                  "java-javax-inject" "java-asm-6" "java-slf4j-api"
566+
                  "java-commons-collections" "java-commons-io"
567+
                  "java-commons-lang" "java-jcip-annotations" "java-jaxp"
568+
                  "java-native-platform" "java-commons-compress"))))
569+
    (package
570+
      (inherit base)
571+
      (arguments
572+
       (substitute-keyword-arguments (package-arguments base)
573+
        ((#:phases phases)
574+
         `(modify-phases ,phases
575+
            (add-before 'build 'create-properties
576+
              (lambda _
577+
                (mkdir-p "build/classes")
578+
                (with-directory-excursion "build/classes"
579+
                  (with-output-to-file "gradle-implementation-plugins.properties"
580+
                    (lambda _
581+
                      (format #t "plugins=gradle-tooling-api-builders")))
582+
                  (with-output-to-file "gradle-plugins.properties"
583+
                    (lambda _
584+
                      (format #t (string-append
585+
                                   "plugins=gradle-announce,gradle-antlr,"
586+
                                   "gradle-build-cache-http,gradle-build-comparison,"
587+
                                   "gradle-build-init,gradle-code-quality,"
588+
                                   "gradle-composite-builds,gradle-diagnostics,"
589+
                                   "gradle-ear,gradle-ide,gradle-ide-native,"
590+
                                   "gradle-ide-play,gradle-ivy,gradle-jacoco,"
591+
                                   "gradle-javascript,gradle-language-groovy,"
592+
                                   "gradle-language-java,gradle-language-jvm,"
593+
                                   "gradle-language-native,gradle-language-scala,"
594+
                                   "gradle-maven,gradle-osgi,gradle-platform-base,"
595+
                                   "gradle-platform-jvm,gradle-platform-native,"
596+
                                   "gradle-platform-play,gradle-plugin-development,"
597+
                                   "gradle-plugin-use,gradle-plugins,gradle-publish,"
598+
                                   "gradle-reporting,gradle-resources-gcs,"
599+
                                   "gradle-resources-http,gradle-resources-s3,"
600+
                                   "gradle-resources-sftp,gradle-scala,"
601+
                                   "gradle-signing,gradle-testing-base,"
602+
                                   "gradle-testing-jvm,gradle-testing-native,"
603+
                                   "gradle-wrapper"))))
604+
                #t)))))))
605+
      (inputs
606+
       `(("gradle-base-services" ,gradle-base-services)
607+
         ("gradle-base-services-groovy" ,gradle-base-services-groovy)
608+
         ("gradle-build-cache" ,gradle-build-cache)
609+
         ("gradle-build-option" ,gradle-build-option)
610+
         ("gradle-cli" ,gradle-cli)
611+
         ("gradle-core-api" ,gradle-core-api)
612+
         ("gradle-jvm-services" ,gradle-jvm-services)
613+
         ("gradle-logging" ,gradle-logging)
614+
         ("gradle-messaging" ,gradle-messaging)
615+
         ("gradle-model-core" ,gradle-model-core)
616+
         ("gradle-model-groovy" ,gradle-model-groovy)
617+
         ("gradle-native" ,gradle-native)
618+
         ("gradle-persistent-cache" ,gradle-persistent-cache)
619+
         ("gradle-process-services" ,gradle-process-services)
620+
         ("gradle-resources" ,gradle-resources)
621+
         ("groovy-ant" ,groovy-ant)
622+
         ("groovy-bootstrap" ,groovy-bootstrap)
623+
         ("groovy-json" ,groovy-json)
624+
         ("groovy-templates" ,groovy-templates)
625+
         ("groovy-xml" ,groovy-xml)
626+
         ("java-asm-6" ,java-asm-6)
627+
         ("java-commons-collections" ,java-commons-collections)
628+
         ("java-commons-compress" ,java-commons-compress)
629+
         ("java-commons-io" ,java-commons-io)
630+
         ("java-commons-lang" ,java-commons-lang)
631+
         ("java-guava-for-gradle" ,java-guava-for-gradle)
632+
         ("java-javax-inject" ,java-javax-inject)
633+
         ("java-jaxp" ,java-jaxp)
634+
         ("java-jcip-annotations" ,java-jcip-annotations)
635+
         ("java-jsr305" ,java-jsr305)
636+
         ("java-native-platform" ,java-native-platform)
637+
         ("java-slf4j-api" ,java-slf4j-api))))))
638+
639+
(define-public gradle-wrapper
312640
  (package
313-
    (inherit java-guava)
314-
    (version "17.0")
315-
    (source (origin
316-
              (method url-fetch)
317-
              (uri (string-append "https://github.com/google/guava/"
318-
                                  "archive/v" version ".tar.gz"))
319-
              (sha256
320-
               (base32
321-
                "0kg2n0dfdncbm3kgf8fa6kig8djfhar24vf0yf287x27w5sqzhnb"))))
322-
    (arguments
323-
     `(#:jar-name "guava.jar"
324-
       #:source-dir "guava/src/"
325-
       #:tests? #f)))); Not in a "java" subdirectory
641+
    (inherit (gradle-subproject "wrapper" '("gradle-cli") '()))
642+
    (inputs
643+
     `(("gradle-base-services" ,gradle-base-services)
644+
       ("gradle-cli" ,gradle-cli)))))
326645
327-
(define-public gradle-core
646+
(define-public gradle-tooling-api
647+
  (package
648+
    (inherit (gradle-subproject
649+
               "tooling-api"
650+
               '("gradle-core" "gradle-messaging" "gradle-wrapper"
651+
                 "gradle-base-services")
652+
               '()))
653+
    (inputs
654+
     `(("gradle-base-services" ,gradle-base-services)
655+
       ("gradle-core" ,gradle-core)
656+
       ("gradle-core-api" ,gradle-core-api)
657+
       ("gradle-logging" ,gradle-logging)
658+
       ("gradle-messaging" ,gradle-messaging)
659+
       ("gradle-wrapper" ,gradle-wrapper)
660+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
661+
       ("java-jcip-annotations" ,java-jcip-annotations)
662+
       ("java-jsr305" ,java-jsr305)
663+
       ("java-slf4j-api" ,java-slf4j-api)))))
664+
665+
(define-public gradle-launcher
666+
  (let ((base (gradle-subproject
667+
                "launcher"
668+
                '("gradle-base-services" "gradle-core-api" "gradle-core")
669+
                '("java-asm-6" "java-commons-io" "java-slf4j-api"))))
670+
    (package
671+
      (inherit base)
672+
      (inputs
673+
       `(("gradle-base-services" ,gradle-base-services)
674+
         ("gradle-build-option" ,gradle-build-option)
675+
         ("gradle-cli" ,gradle-cli)
676+
         ("gradle-core" ,gradle-core)
677+
         ("gradle-core-api" ,gradle-core-api)
678+
         ("gradle-jvm-services" ,gradle-jvm-services)
679+
         ("gradle-logging" ,gradle-logging)
680+
         ("gradle-messaging" ,gradle-messaging)
681+
         ("gradle-native" ,gradle-native)
682+
         ("gradle-persistent-cache" ,gradle-persistent-cache)
683+
         ("gradle-process-services" ,gradle-process-services)
684+
         ("gradle-tooling-api" ,gradle-tooling-api)
685+
         ("groovy-bootstrap" ,groovy-bootstrap)
686+
         ("java-asm-6" ,java-asm-6)
687+
         ("java-commons-io" ,java-commons-io)
688+
         ("java-guava-for-gradle" ,java-guava-for-gradle)
689+
         ("java-jcip-annotations" ,java-jcip-annotations)
690+
         ("java-jsr305" ,java-jsr305)
691+
         ("java-slf4j-api" ,java-slf4j-api)))
692+
      (arguments
693+
       `(#:main-class "org.gradle.launcher.GradleMain"
694+
         ,@(substitute-keyword-arguments (package-arguments base)
695+
            ((#:phases phases)
696+
             `(modify-phases ,phases
697+
                (add-before 'build 'add-classpath
698+
                  (lambda _
699+
                   (substitute* "build.xml"
700+
                     (("message=\"")
701+
                      (string-append "message=\"Class-Path: "
702+
                                     "gradle-base-services-4.4.jar "
703+
                                     "gradle-core-api-4.4.jar "
704+
                                     "gradle-core-4.4.jar"
705+
                                     "${line.separator}")))
706+
                   #t))))))))))
707+
708+
(define-public gradle-installation-beacon
709+
  (package
710+
    (inherit (gradle-subproject "installation-beacon" '() '()))))
711+
712+
(define-public gradle-workers
328713
  (package
329-
    (inherit (gradle-subproject "core"))
714+
    (inherit (gradle-subproject "workers" '("gradle-core") '("java-jcip-annotations")))
715+
    (inputs
716+
     `(("gradle-base-services" ,gradle-base-services)
717+
       ("gradle-core" ,gradle-core)
718+
       ("gradle-core-api" ,gradle-core-api)
719+
       ("gradle-logging" ,gradle-logging)
720+
       ("gradle-messaging" ,gradle-messaging)
721+
       ("gradle-native" ,gradle-native)
722+
       ("gradle-process-services" ,gradle-process-services)
723+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
724+
       ("java-javax-inject" ,java-javax-inject)
725+
       ("java-jcip-annotations" ,java-jcip-annotations)
726+
       ("java-jsr305" ,java-jsr305)
727+
       ("java-slf4j-api" ,java-slf4j-api)))))
728+
729+
(define-public gradle-reporting
730+
  (package
731+
    (inherit (gradle-subproject
732+
               "reporting"
733+
               '("gradle-core")
734+
               '("groovy-bootstrap" "java-jatl" "java-commons-lang")))
330735
    (inputs
331736
     `(("gradle-base-services" ,gradle-base-services)
332737
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
333-
       ("gradle-build-cache" ,gradle-build-cache)
334-
       ("gradle-build-option" ,gradle-build-option)
335-
       ("gradle-cli" ,gradle-cli)
738+
       ("gradle-core" ,gradle-core)
739+
       ("gradle-core-api" ,gradle-core-api)
740+
       ("gradle-logging" ,gradle-logging)
741+
       ("gradle-model-core" ,gradle-model-core)
742+
       ("groovy-bootstrap" ,groovy-bootstrap)
743+
       ("java-commons-lang" ,java-commons-lang)
744+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
745+
       ("java-jatl" ,java-jatl)
746+
       ("java-javax-inject" ,java-javax-inject)))))
747+
748+
(define-public gradle-resources-http
749+
  (package
750+
    (inherit (gradle-subproject
751+
               "resources-http"
752+
               '("gradle-resources" "gradle-base-services" "gradle-core")
753+
               ;; TODO: jcl-over-slf4j
754+
               '("java-httpcomponents-client" "java-httpcomponents-core"
755+
                 "java-commons-codec" "java-jcifs" "java-slf4j-api"
756+
                 "java-guava-for-gradle" "java-commons-lang" "java-commons-io"
757+
                 "java-nekohtml" "java-xerces" "java-jaxp")))
758+
    (inputs
759+
     `(("gradle-base-services" ,gradle-base-services)
760+
       ("gradle-core" ,gradle-core)
336761
       ("gradle-core-api" ,gradle-core-api)
762+
       ("gradle-model-core" ,gradle-model-core)
763+
       ("gradle-resources" ,gradle-resources)
764+
       ("java-commons-codec" ,java-commons-codec)
765+
       ("java-commons-io" ,java-commons-io)
766+
       ("java-commons-lang" ,java-commons-lang)
767+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
768+
       ("java-httpcomponents-client" ,java-httpcomponents-client)
769+
       ("java-httpcomponents-core" ,java-httpcomponents-core)
770+
       ("java-jaxp" ,java-jaxp)
771+
       ("java-jcifs" ,java-jcifs)
772+
       ("java-jsr305" ,java-jsr305)
773+
       ("java-nekohtml" ,java-nekohtml)
774+
       ("java-slf4j-api" ,java-slf4j-api)
775+
       ("java-xerces" ,java-xerces)))))
776+
777+
(define-public gradle-dependency-management
778+
  (let ((base (gradle-subproject
779+
                 "dependency-management"
780+
                 '("gradle-installation-beacon" "gradle-core" "gradle-resources"
781+
                   "gradle-version-control" "gradle-resources-http"
782+
                   "gradle-runtime-api-info")
783+
                 ;; TODO: maven-core aether-connector-wagon aether-util aether-spi
784+
                 ;; aether-impl aether-api wagon-http-shared wagon-provider-api
785+
                 ;; wagon-http wagon-file maven-aether-provider maven-plugin-api
786+
                 ;; maven-repository-metadata maven-artifact maven-moel
787+
                 ;; maven-model-builder maven-compat plexus-sec-dispacher
788+
                 ;; plexus-cipher plexus-classworlds plexus-container-default
789+
                 ;; plexus-component-annotations plexus-interpolation plexus-utils
790+
                 ;; maven-settings maven-settings-builder xbean-reflect
791+
                 '("java-asm-6" "java-commons-lang" "java-commons-io"
792+
                   "java-apache-ivy" "java-slf4j-api" "java-gson"
793+
                   "java-jcip-annotations" "java-bouncycastle-bcprov"
794+
                   "java-jsch"))))
795+
    (package
796+
      (inherit base)
797+
      (arguments
798+
       (substitute-keyword-arguments (package-arguments base)
799+
        ((#:phases phases)
800+
         `(modify-phases ,phases
801+
            (add-before 'build 'fix
802+
              (lambda _
803+
                (substitute* "subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java"
804+
                  (("new NamespaceId\\(uri, localName\\)")
805+
                   "new NamespaceId(uri, localName).toString()"))
806+
                (substitute* "subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/resolveengine/store/DefaultBinaryStore.java"
807+
                  (("offset = encoder") "offset = (int)encoder"))
808+
                #t))))))
809+
      (inputs
810+
       `(("gradle-base-services" ,gradle-base-services)
811+
         ("gradle-base-services-groovy" ,gradle-base-services-groovy)
812+
         ("gradle-build-cache" ,gradle-build-cache)
813+
         ("gradle-core" ,gradle-core)
814+
         ("gradle-core-api" ,gradle-core-api)
815+
         ("gradle-logging" ,gradle-logging)
816+
         ("gradle-messaging" ,gradle-messaging)
817+
         ("gradle-model-core" ,gradle-model-core)
818+
         ("gradle-native" ,gradle-native)
819+
         ("gradle-persistent-cache" ,gradle-persistent-cache)
820+
         ("gradle-resources" ,gradle-resources)
821+
         ("gradle-resources-http" ,gradle-resources-http)
822+
         ("groovy-bootstrap" ,groovy-bootstrap)
823+
         ("java-apache-ivy" ,java-apache-ivy)
824+
         ("java-asm-6" ,java-asm-6)
825+
         ("java-bouncycastle-bcprov" ,java-bouncycastle-bcprov)
826+
         ("java-commons-io" ,java-commons-io)
827+
         ("java-commons-lang" ,java-commons-lang)
828+
         ("java-gson" ,java-gson)
829+
         ("java-guava-for-gradle" ,java-guava-for-gradle)
830+
         ("java-javax-inject" ,java-javax-inject)
831+
         ("java-jcip-annotations" ,java-jcip-annotations)
832+
         ("java-jsch" ,java-jsch)
833+
         ("java-jsr305" ,java-jsr305)
834+
         ("java-slf4j-api" ,java-slf4j-api)
835+
         ("maven-settings" ,maven-settings)
836+
         ("maven-settings-builder" ,maven-settings-builder))))))
837+
838+
(define-public gradle-platform-base
839+
  (package
840+
    (inherit (gradle-subproject
841+
               "platform-base"
842+
               '("gradle-core" "gradle-dependency-management" "gradle-workers")
843+
               '("java-commons-collections" "groovy-bootstrap")))
844+
    (inputs
845+
     `(("gradle-base-services" ,gradle-base-services)
846+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
847+
       ("gradle-core" ,gradle-core)
848+
       ("gradle-core-api" ,gradle-core-api)
849+
       ("gradle-dependency-management" ,gradle-dependency-management)
850+
       ("gradle-model-core" ,gradle-model-core)
851+
       ("gradle-workers" ,gradle-workers)
852+
       ("groovy-bootstrap" ,groovy-bootstrap)
853+
       ("java-commons-collections" ,java-commons-collections)
854+
       ("java-commons-lang" ,java-commons-lang)
855+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
856+
       ("java-jsr305" ,java-jsr305)))))
857+
858+
(define-public gradle-testing-base
859+
  (let ((base (gradle-subproject
860+
                "testing-base"
861+
                '("gradle-core" "gradle-reporting" "gradle-platform-base")
862+
                '("java-kryo" "java-objenesis" "java-minlog" "java-reflectasm"
863+
                  "java-asm-6"))))
864+
    (package
865+
      (inherit base)
866+
      (arguments
867+
       (substitute-keyword-arguments (package-arguments base)
868+
        ((#:phases phases)
869+
         `(modify-phases ,phases
870+
            (add-before 'build 'fix
871+
              (lambda _
872+
                (substitute* "subprojects/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/junit/result/TestOutputStore.java"
873+
                  (("int total = output")
874+
                   "int total = (int)output"))
875+
                #t))))))
876+
      (inputs
877+
       `(("gradle-base-services" ,gradle-base-services)
878+
         ("gradle-base-services-groovy" ,gradle-base-services-groovy)
879+
         ("gradle-core" ,gradle-core)
880+
         ("gradle-core-api" ,gradle-core-api)
881+
         ("gradle-logging" ,gradle-logging)
882+
         ("gradle-messaging" ,gradle-messaging)
883+
         ("gradle-model-core" ,gradle-model-core)
884+
         ("gradle-platform-base" ,gradle-platform-base)
885+
         ("gradle-process-services" ,gradle-process-services)
886+
         ("gradle-reporting" ,gradle-reporting)
887+
         ("groovy-bootstrap" ,groovy-bootstrap)
888+
         ("java-asm-6" ,java-asm-6)
889+
         ("java-bouncycastle-bcprov" ,java-bouncycastle-bcprov)
890+
         ("java-commons-io" ,java-commons-io)
891+
         ("java-commons-lang" ,java-commons-lang)
892+
         ("java-guava-for-gradle" ,java-guava-for-gradle)
893+
         ("java-javax-inject" ,java-javax-inject)
894+
         ("java-jsr305" ,java-jsr305)
895+
         ("java-kryo" ,java-kryo)
896+
         ("java-minlog" ,java-minlog)
897+
         ("java-objenesis" ,java-objenesis)
898+
         ("java-reflectasm" ,java-reflectasm)
899+
         ("java-slf4j-api" ,java-slf4j-api))))))
900+
901+
(define-public gradle-diagnostics
902+
  (package
903+
    (inherit (gradle-subproject
904+
               "diagnostics"
905+
               '("gradle-dependency-management" "gradle-base-services-groovy"
906+
                 "gradle-core" "gradle-reporting" "gradle-platform-base")
907+
               '("groovy-bootstrap" "groovy-json" "java-guava-for-gradle" "java-jatl"
908+
                 "java-commons-lang" "java-commons-collections")))
909+
    (inputs
910+
     `(("gradle-base-services" ,gradle-base-services)
911+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
912+
       ("gradle-core" ,gradle-core)
913+
       ("gradle-core-api" ,gradle-core-api)
914+
       ("gradle-dependency-management" ,gradle-dependency-management)
915+
       ("gradle-logging" ,gradle-logging)
916+
       ("gradle-model-core" ,gradle-model-core)
917+
       ("gradle-platform-base" ,gradle-platform-base)
918+
       ("gradle-reporting" ,gradle-reporting)
919+
       ("groovy-bootstrap" ,groovy-bootstrap)
920+
       ("groovy-json" ,groovy-json)
921+
       ("java-commons-collections" ,java-commons-collections)
922+
       ("java-commons-lang" ,java-commons-lang)
923+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
924+
       ("java-jatl" ,java-jatl)
925+
       ("java-javax-inject" ,java-javax-inject)
926+
       ("java-jsr305" ,java-jsr305)
927+
       ("java-slf4j-api" ,java-slf4j-api)))))
928+
929+
(define-public gradle-platform-jvm
930+
  (package
931+
    (inherit (gradle-subproject
932+
               "platform-jvm"
933+
               '("gradle-platform-base" "gradle-core" "gradle-diagnostics")
934+
               '()))
935+
    (inputs
936+
     `(("gradle-base-services" ,gradle-base-services)
937+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
938+
       ("gradle-core" ,gradle-core)
939+
       ("gradle-core-api" ,gradle-core-api)
940+
       ("gradle-dependency-management" ,gradle-dependency-management)
941+
       ("gradle-diagnostics" ,gradle-diagnostics)
942+
       ("gradle-logging" ,gradle-logging)
943+
       ("gradle-model-core" ,gradle-model-core)
944+
       ("gradle-native" ,gradle-native)
945+
       ("gradle-platform-base" ,gradle-platform-base)
946+
       ("gradle-process-services" ,gradle-process-services)
947+
       ("groovy-bootstrap" ,groovy-bootstrap)
948+
       ("java-asm-6" ,java-asm-6)
949+
       ("java-commons-io" ,java-commons-io)
950+
       ("java-commons-lang" ,java-commons-lang)
951+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
952+
       ("java-javax-inject" ,java-javax-inject)
953+
       ("java-jsr305" ,java-jsr305)))))
954+
955+
(define-public gradle-testing-jvm
956+
  (package
957+
    (inherit (gradle-subproject
958+
               "testing-jvm"
959+
               '("gradle-core" "gradle-platform-jvm" "gradle-language-java"
960+
                 "gradle-testing-base")
961+
               '("java-junit" "java-bsh" "java-testng" "java-snakeyaml"
962+
                 "java-jcommander" "java-hamcrest-core")))
963+
    (inputs
964+
     `(("gradle-base-services" ,gradle-base-services)
965+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
966+
       ("gradle-core" ,gradle-core)
967+
       ("gradle-core-api" ,gradle-core-api)
968+
       ("gradle-diagnostics" ,gradle-diagnostics)
969+
       ("gradle-dependency-management" ,gradle-dependency-management)
337970
       ("gradle-jvm-services" ,gradle-jvm-services)
338971
       ("gradle-logging" ,gradle-logging)
339972
       ("gradle-messaging" ,gradle-messaging)
340973
       ("gradle-model-core" ,gradle-model-core)
341-
       ("gradle-model-groovy" ,gradle-model-groovy)
974+
       ("gradle-platform-base" ,gradle-platform-base)
975+
       ("gradle-platform-jvm" ,gradle-platform-jvm)
976+
       ("gradle-process-services" ,gradle-process-services)
977+
       ("gradle-reporting" ,gradle-reporting)
978+
       ("gradle-testing-base" ,gradle-testing-base)
979+
       ("groovy-bootstrap" ,groovy-bootstrap)
980+
       ("groovy-xml" ,groovy-xml)
981+
       ("java-asm-6" ,java-asm-6)
982+
       ("java-bsh" ,java-bsh)
983+
       ("java-commons-io" ,java-commons-io)
984+
       ("java-commons-lang" ,java-commons-lang)
985+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
986+
       ("java-hamcrest-core" ,java-hamcrest-core)
987+
       ("java-javax-inject" ,java-javax-inject)
988+
       ("java-jcommander" ,java-jcommander)
989+
       ("java-junit" ,java-junit)
990+
       ("java-slf4j-api" ,java-slf4j-api)
991+
       ("java-snakeyaml" ,java-snakeyaml)
992+
       ("java-testng" ,java-testng)))))
993+
994+
(define-public gradle-platform-native
995+
  (package
996+
    (inherit (gradle-subproject
997+
               "platform-native"
998+
               '("gradle-core" "gradle-platform-base" "gradle-diagnostics")
999+
               '("groovy-bootstrap" "java-commons-io")))
1000+
    (inputs
1001+
     `(("gradle-base-services" ,gradle-base-services)
1002+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
1003+
       ("gradle-core" ,gradle-core)
1004+
       ("gradle-core-api" ,gradle-core-api)
1005+
       ("gradle-diagnostics" ,gradle-diagnostics)
1006+
       ("gradle-logging" ,gradle-logging)
1007+
       ("gradle-model-core" ,gradle-model-core)
3421008
       ("gradle-native" ,gradle-native)
1009+
       ("gradle-platform-base" ,gradle-platform-base)
1010+
       ("gradle-process-services" ,gradle-process-services)
1011+
       ("gradle-workers" ,gradle-workers)
1012+
       ("groovy-bootstrap" ,groovy-bootstrap)
1013+
       ("java-commons-io" ,java-commons-io)
1014+
       ("java-commons-lang" ,java-commons-lang)
1015+
       ("java-gson" ,java-gson)
1016+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
1017+
       ("java-javax-inject" ,java-javax-inject)
1018+
       ("java-jsr305" ,java-jsr305)
1019+
       ("java-native-platform" ,java-native-platform)
1020+
       ("java-slf4j-api" ,java-slf4j-api)))))
1021+
1022+
(define-public gradle-composite-builds
1023+
  (package
1024+
    (inherit (gradle-subproject
1025+
               "composite-builds"
1026+
               '("gradle-core" "gradle-dependency-management" "gradle-launcher")
1027+
               '()))
1028+
    (inputs
1029+
     `(("gradle-base-services" ,gradle-base-services)
1030+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
1031+
       ("gradle-core" ,gradle-core)
1032+
       ("gradle-core-api" ,gradle-core-api)
1033+
       ("gradle-dependency-management" ,gradle-dependency-management)
1034+
       ("gradle-launcher" ,gradle-launcher)
1035+
       ("gradle-logging" ,gradle-logging)
1036+
       ("gradle-model-core" ,gradle-model-core)
1037+
       ("groovy-bootstrap" ,groovy-bootstrap)
1038+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
1039+
       ("java-javax-inject" ,java-javax-inject)
1040+
       ("java-slf4j-api" ,java-slf4j-api)))))
1041+
1042+
(define-public gradle-language-jvm
1043+
  (package
1044+
    (inherit (gradle-subproject
1045+
               "language-jvm"
1046+
               '("gradle-core" "gradle-platform-jvm" "gradle-platform-base")
1047+
               '()))
1048+
    (inputs
1049+
     `(("gradle-base-services" ,gradle-base-services)
1050+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
1051+
       ("gradle-core" ,gradle-core)
1052+
       ("gradle-core-api" ,gradle-core-api)
1053+
       ("gradle-logging" ,gradle-logging)
1054+
       ("gradle-model-core" ,gradle-model-core)
1055+
       ("gradle-platform-base" ,gradle-platform-base)
1056+
       ("gradle-platform-jvm" ,gradle-platform-jvm)
1057+
       ("gradle-process-services" ,gradle-process-services)
1058+
       ("gradle-workers" ,gradle-workers)
1059+
       ("groovy-bootstrap" ,groovy-bootstrap)
1060+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
1061+
       ("java-javax-inject" ,java-javax-inject)
1062+
       ("java-jsr305" ,java-jsr305)))))
1063+
1064+
(define-public gradle-language-java
1065+
  (package
1066+
    (inherit (gradle-subproject
1067+
               "language-java"
1068+
               '("gradle-core" "gradle-platform-jvm" "gradle-language-jvm")
1069+
               '()))
1070+
    (inputs
1071+
     `(("gradle-base-services" ,gradle-base-services)
1072+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
1073+
       ("gradle-core" ,gradle-core)
1074+
       ("gradle-core-api" ,gradle-core-api)
1075+
       ("gradle-dependency-management" ,gradle-dependency-management)
1076+
       ("gradle-jvm-services" ,gradle-jvm-services)
1077+
       ("gradle-language-jvm" ,gradle-language-jvm)
1078+
       ("gradle-logging" ,gradle-logging)
1079+
       ("gradle-messaging" ,gradle-messaging)
1080+
       ("gradle-model-core" ,gradle-model-core)
3431081
       ("gradle-persistent-cache" ,gradle-persistent-cache)
1082+
       ("gradle-platform-base" ,gradle-platform-base)
1083+
       ("gradle-platform-jvm" ,gradle-platform-jvm)
3441084
       ("gradle-process-services" ,gradle-process-services)
345-
       ("gradle-resources" ,gradle-resources)
1085+
       ("gradle-workers" ,gradle-workers)
1086+
       ("groovy-bootstrap" ,groovy-bootstrap)
1087+
       ("java-asm-6" ,java-asm-6)
1088+
       ("java-commons-lang" ,java-commons-lang)
1089+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
1090+
       ("java-javax-inject" ,java-javax-inject)
1091+
       ("java-jsr305" ,java-jsr305)
1092+
       ("java-slf4j-api" ,java-slf4j-api)))))
1093+
1094+
(define-public gradle-language-groovy
1095+
  (package
1096+
    (inherit (gradle-subproject
1097+
               "language-groovy"
1098+
               '("gradle-core" "gradle-platform-jvm" "gradle-language-java")
1099+
               '()))
1100+
    (inputs
1101+
     `(("gradle-base-services" ,gradle-base-services)
1102+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
1103+
       ("gradle-core" ,gradle-core)
1104+
       ("gradle-core-api" ,gradle-core-api)
1105+
       ("gradle-language-java" ,gradle-language-java)
1106+
       ("gradle-language-jvm" ,gradle-language-jvm)
1107+
       ("gradle-logging" ,gradle-logging)
1108+
       ("gradle-model-core" ,gradle-model-core)
1109+
       ("gradle-platform-base" ,gradle-platform-base)
1110+
       ("gradle-platform-jvm" ,gradle-platform-jvm)
1111+
       ("gradle-process-services" ,gradle-process-services)
1112+
       ("gradle-workers" ,gradle-workers)
1113+
       ("groovy-bootstrap" ,groovy-bootstrap)
1114+
       ("java-asm-6" ,java-asm-6)
1115+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
1116+
       ("java-javax-inject" ,java-javax-inject)
1117+
       ("java-jsr305" ,java-jsr305)
1118+
       ("java-slf4j-api" ,java-slf4j-api)))))
1119+
1120+
(define-public gradle-plugins
1121+
  (package
1122+
    (inherit (gradle-subproject
1123+
               "plugins"
1124+
               '("gradle-composite-builds" "gradle-core" "gradle-workers"
1125+
                 "gradle-dependency-management" "gradle-reporting"
1126+
                 "gradle-platform-jvm" "gradle-language-jvm"
1127+
                 "gradle-language-java" "gradle-language-groovy"
1128+
                 "gradle-diagnostics" "gradle-testing-jvm")
1129+
               '("groovy-bootstrap" "ant" "java-asm-6" "java-commons-io"
1130+
                 "java-commons-lang" "java-commons-cli" "java-slf4j-api")))
1131+
    (inputs
1132+
     `(("gradle-base-services" ,gradle-base-services)
1133+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
1134+
       ("gradle-build-cache" ,gradle-build-cache)
1135+
       ("gradle-composite-builds" ,gradle-composite-builds)
1136+
       ("gradle-core" ,gradle-core)
1137+
       ("gradle-core-api" ,gradle-core-api)
1138+
       ("gradle-dependency-management" ,gradle-dependency-management)
1139+
       ("gradle-diagnostics" ,gradle-diagnostics)
1140+
       ("gradle-language-groovy" ,gradle-language-groovy)
1141+
       ("gradle-language-java" ,gradle-language-java)
1142+
       ("gradle-language-jvm" ,gradle-language-jvm)
1143+
       ("gradle-logging" ,gradle-logging)
1144+
       ("gradle-model-core" ,gradle-model-core)
1145+
       ("gradle-persistent-cache" ,gradle-persistent-cache)
1146+
       ("gradle-platform-base" ,gradle-platform-base)
1147+
       ("gradle-platform-jvm" ,gradle-platform-jvm)
1148+
       ("gradle-reporting" ,gradle-reporting)
1149+
       ("gradle-testing-base" ,gradle-testing-base)
1150+
       ("gradle-testing-jvm" ,gradle-testing-jvm)
1151+
       ("gradle-process-services" ,gradle-process-services)
1152+
       ("gradle-workers" ,gradle-workers)
1153+
       ("groovy-ant" ,groovy-ant)
1154+
       ("groovy-bootstrap" ,groovy-bootstrap)
1155+
       ("groovy-templates" ,groovy-templates)
1156+
       ("java-asm-6" ,java-asm-6)
1157+
       ("java-commons-cli" ,java-commons-cli)
1158+
       ("java-commons-io" ,java-commons-io)
1159+
       ("java-commons-lang" ,java-commons-lang)
1160+
       ("java-guava-for-gradle" ,java-guava-for-gradle)
1161+
       ("java-javax-inject" ,java-javax-inject)
1162+
       ("java-jsr305" ,java-jsr305)
1163+
       ("java-slf4j-api" ,java-slf4j-api)))))
1164+
1165+
;; This package doesn't work. I need to understand how api-mapping.txt and
1166+
;; default-imports.txt are generated. Currently they are generated by a custom
1167+
;; task that is run by gradle, but we don't have enough of gradle to run that.
1168+
(define-public gradle-docs
1169+
  (let ((base (gradle-subproject "docs" '() '())))
1170+
    (package
1171+
      (inherit base)
1172+
      (arguments
1173+
       (substitute-keyword-arguments (package-arguments base)
1174+
        ((#:phases phases)
1175+
         `(modify-phases ,phases
1176+
            (replace 'build
1177+
              (lambda _
1178+
                (substitute* "build.xml"
1179+
                  (("compile, ") ""))
1180+
                (with-output-to-file "build/classes/default-imports.txt"
1181+
                  (lambda _
1182+
                    (format #t "")))
1183+
                (with-output-to-file "build/classes/api-mapping.txt"
1184+
                  (lambda _
1185+
                    (format #t "")))
1186+
                (zero? (system* "ant" "jar")))))))))))
1187+
1188+
(define-public gradle
1189+
  (package
1190+
    (inherit gradle-base-services)
1191+
    (name "gradle")
1192+
    (build-system trivial-build-system)
1193+
    (arguments
1194+
     `(#:modules ((guix build utils))
1195+
       #:builder (begin
1196+
                   (use-modules (guix build utils))
1197+
                   (let* ((output (assoc-ref %outputs "out"))
1198+
                          (bindir (string-append output "/bin"))
1199+
                          (libdir (string-append output "/lib"))
1200+
                          (filename (string-append bindir "/gradle"))
1201+
                          (dependencies 
1202+
                           '("gradle-wrapper"
1203+
                             "gradle-tooling-api"
1204+
                             "gradle-resources"
1205+
                             "gradle-process-services"
1206+
                             "gradle-persistent-cache"
1207+
                             "gradle-native"
1208+
                             "gradle-model-groovy"
1209+
                             "gradle-model-core"
1210+
                             "gradle-messaging"
1211+
                             "gradle-logging"
1212+
                             "gradle-launcher"
1213+
                             "gradle-jvm-services"
1214+
                             "gradle-internal-testing"
1215+
                             "gradle-installation-beacon"
1216+
                             "gradle-docs"
1217+
                             "gradle-core-api"
1218+
                             "gradle-core"
1219+
                             "gradle-cli"
1220+
                             "gradle-build-option"
1221+
                             "gradle-build-cache"
1222+
                             "gradle-base-services-groovy"
1223+
                             "gradle-base-services"
1224+
                             "groovy-ant"
1225+
                             "groovy-bootstrap"
1226+
                             "groovy-json"
1227+
                             "groovy-templates"
1228+
                             "groovy-xml"
1229+
                             "java-asm-6"
1230+
                             "java-commons-compress"
1231+
                             "java-commons-collections"
1232+
                             "java-commons-io"
1233+
                             "java-commons-lang"
1234+
                             "java-guava-for-gradle"
1235+
                             "java-jansi"
1236+
                             "java-jansi-native"
1237+
                             "java-javax-inject"
1238+
                             "java-jaxp"
1239+
                             "java-jcip-annotations"
1240+
                             "java-jsr305"
1241+
                             "java-jul-to-slf4j"
1242+
                             "java-kryo"
1243+
                             "java-minlog"
1244+
                             "java-native-platform"
1245+
                             "java-objenesis"
1246+
                             "java-reflectasm"
1247+
                             "java-slf4j-api"
1248+
                             "ant")))
1249+
                     (mkdir-p bindir)
1250+
                     (mkdir-p (string-append libdir "/plugins"))
1251+
                     (with-output-to-file filename
1252+
                       (lambda _
1253+
                         (format #t "#!~a\n
1254+
export GRADLE_HOME=~a\n
1255+
~a -cp ~a -Dorg.gradle.appname=gradle org.gradle.launcher.GradleMain $@"
1256+
                                 (string-append (assoc-ref %build-inputs "bash")
1257+
                                                "/bin/bash")
1258+
                                 output
1259+
                                 (string-append (assoc-ref %build-inputs "icedtea-8")
1260+
                                                "/bin/java")
1261+
                                 (string-append libdir "/gradle-launcher-4.4.jar"))))
1262+
                     (chmod filename #o755)
1263+
                     (for-each
1264+
                       (lambda (lib)
1265+
                         (symlink lib (string-append libdir "/" (basename lib))))
1266+
                       (apply append
1267+
                         (map
1268+
                           (lambda (lib)
1269+
                             (find-files (assoc-ref %build-inputs lib)
1270+
                                         ".*.jar"))
1271+
                           dependencies)))
1272+
                     (delete-file (string-append libdir "/gradle-launcher-4.4.jar"))
1273+
                     (copy-file (string-append (assoc-ref %build-inputs "gradle-launcher")
1274+
                                               "/share/java/gradle-launcher-4.4.jar")
1275+
                                (string-append libdir
1276+
                                               "/gradle-launcher-4.4.jar"))))))
1277+
    (inputs
1278+
     `(("gradle-wrapper"              ,gradle-wrapper)
1279+
       ("gradle-tooling-api"          ,gradle-tooling-api)
1280+
       ("gradle-resources"            ,gradle-resources)
1281+
       ("gradle-process-services"     ,gradle-process-services)
1282+
       ("gradle-persistent-cache"     ,gradle-persistent-cache)
1283+
       ("gradle-native"               ,gradle-native)
1284+
       ("gradle-model-groovy"         ,gradle-model-groovy)
1285+
       ("gradle-model-core"           ,gradle-model-core)
1286+
       ("gradle-messaging"            ,gradle-messaging)
1287+
       ("gradle-logging"              ,gradle-logging)
1288+
       ("gradle-launcher"             ,gradle-launcher)
1289+
       ("gradle-jvm-services"         ,gradle-jvm-services)
1290+
       ("gradle-internal-testing"     ,gradle-internal-testing)
1291+
       ("gradle-installation-beacon"  ,gradle-installation-beacon)
1292+
       ("gradle-docs"                 ,gradle-docs)
1293+
       ("gradle-core-api"             ,gradle-core-api)
1294+
       ("gradle-core"                 ,gradle-core)
1295+
       ("gradle-cli"                  ,gradle-cli)
1296+
       ("gradle-build-option"         ,gradle-build-option)
1297+
       ("gradle-build-cache"          ,gradle-build-cache)
1298+
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
1299+
       ("gradle-base-services"        ,gradle-base-services)
3461300
       ("groovy-ant" ,groovy-ant)
3471301
       ("groovy-bootstrap" ,groovy-bootstrap)
3481302
       ("groovy-json" ,groovy-json)
3491303
       ("groovy-templates" ,groovy-templates)
3501304
       ("groovy-xml" ,groovy-xml)
1305+
       ("icedtea-8" ,icedtea-8)
3511306
       ("java-asm-6" ,java-asm-6)
352-
       ("java-commons-collections" ,java-commons-collections)
3531307
       ("java-commons-compress" ,java-commons-compress)
1308+
       ("java-commons-collections" ,java-commons-collections)
3541309
       ("java-commons-io" ,java-commons-io)
3551310
       ("java-commons-lang" ,java-commons-lang)
3561311
       ("java-guava-for-gradle" ,java-guava-for-gradle)
1312+
       ("java-jansi" ,java-jansi)
1313+
       ("java-jansi-native" ,java-jansi-native)
3571314
       ("java-javax-inject" ,java-javax-inject)
1315+
       ("java-jaxp" ,java-jaxp)
3581316
       ("java-jcip-annotations" ,java-jcip-annotations)
3591317
       ("java-jsr305" ,java-jsr305)
1318+
       ("java-jul-to-slf4j" ,java-jul-to-slf4j)
1319+
       ("java-kryo" ,java-kryo)
1320+
       ("java-minlog" ,java-minlog)
3601321
       ("java-native-platform" ,java-native-platform)
1322+
       ("java-objenesis" ,java-objenesis)
1323+
       ("java-reflectasm" ,java-reflectasm)
3611324
       ("java-slf4j-api" ,java-slf4j-api)
362-
       ("groovy" ,groovy)))))
1325+
       ("ant" ,ant)
1326+
       ("bash" ,bash)))
1327+
    (native-inputs '())))

more/packages/java.scm

3939
  #:use-module (more packages groovy)
4040
  #:use-module (more packages python))
4141
42+
;; Maintained version of http-builder (groovyx.net.http)
43+
(define-public java-http-builder-ng
44+
  (package
45+
    (name "java-http-builder-ng")
46+
    (version "1.0.3")
47+
    (source (origin
48+
              (method url-fetch)
49+
              (uri (string-append "https://github.com/http-builder-ng/"
50+
                                  "http-builder-ng/archive/v" version ".tar.gz"))
51+
              (file-name (string-append name "-" version ".tar.gz"))
52+
              (sha256
53+
               (base32
54+
                "1acgdf5jnnsw32nbanwba5ax6m7y48c5zqdwrmpk3i2p9l5m30fd"))))
55+
    (build-system ant-build-system)
56+
    (arguments
57+
     `(#:jar-name "http-builder-ng.jar"
58+
       #:jdk ,icedtea-8
59+
       #:source-dir "http-builder-ng-core/src/main/java"
60+
       #:test-dir "http-builder-ng-core/src/test"
61+
       #:tests? #f)); TODO: com.stehno.ersatz
62+
    (inputs
63+
     `(("groovy-bootstrap" ,groovy-bootstrap)
64+
       ("groovy-json" ,groovy-json)
65+
       ("groovy-xml" ,groovy-xml)
66+
       ("java-apache-xml-commons-resolver" ,java-apache-xml-commons-resolver)
67+
       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
68+
       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)
69+
       ("java-javax-mail" ,java-javax-mail)
70+
       ("java-jsoup" ,java-jsoup)
71+
       ("java-nekohtml" ,java-nekohtml)
72+
       ("java-opencsv" ,java-opencsv)
73+
       ("java-slf4j-api" ,java-slf4j-api)
74+
       ("java-xerces" ,java-xerces)))
75+
    (native-inputs
76+
     `(("java-junit" ,java-junit)))
77+
    (home-page "https://http-builder-ng.github.io/http-builder-ng")
78+
    (synopsis "")
79+
    (description "")
80+
    (license license:asl2.0)))
81+
82+
(define-public java-commons-text
83+
  (package
84+
    (name "java-commons-text")
85+
    ;; latest version is advertized to be 1.1.8
86+
    (version "1.2")
87+
    (source (origin
88+
              (method url-fetch)
89+
              (uri (string-append "mirror://apache/commons/text/source/"
90+
                                  "commons-text-" version "-src.tar.gz"))
91+
              (file-name (string-append name "-" version))
92+
              (sha256
93+
               (base32
94+
                "0rzffm5al0nkxcbrbbjnnwvpky4y6mv8j1cfnhbkfvxq1zlr3aim"))))
95+
    (build-system ant-build-system)
96+
    (arguments
97+
     `(#:jar-name "commons-text.jar"
98+
       #:jdk ,icedtea-8
99+
       #:source-dir "src/main/java"))
100+
    (inputs
101+
     `(("java-commons-lang3" ,java-commons-lang3)))
102+
    (native-inputs
103+
     `(("java-assertj" ,java-assertj)
104+
       ("java-hamcrest-all" ,java-hamcrest-all)
105+
       ("java-junit" ,java-junit)))
106+
    (home-page "https://commons.apache.org/proper/commons-text")
107+
    (synopsis "")
108+
    (description "")
109+
    (license license:asl2.0)))
110+
111+
(define-public java-opencsv
112+
  (package
113+
    (name "java-opencsv")
114+
    ;; latest version is advertized to be 1.1.8
115+
    (version "4.1")
116+
    (source (origin
117+
              (method git-fetch)
118+
              (uri (git-reference
119+
                     (url "https://git.code.sf.net/p/opencsv/source")
120+
                     (commit "Release_4_1")))
121+
              ;(uri (string-append "https://sourceforge.net/code-snapshots/git/"
122+
              ;                    "o/op/opencsv/source.git/opencsv-source-"
123+
              ;                    "1a8d01d569f81390a88299a5344f2685dc690127.zip"))
124+
              ;(file-name (string-append name "-" version ".zip"))
125+
              (file-name (string-append name "-" version))
126+
              (sha256
127+
               (base32
128+
                "1dmhssidx81n0mc6ifzw7j1q0q7882iz2cjmwk8p3gissndjf5li"))))
129+
    (build-system ant-build-system)
130+
    (arguments
131+
     `(#:jar-name "opencsv.jar"
132+
       #:jdk ,icedtea-8
133+
       #:source-dir "src/main/java"
134+
       #:phases
135+
       (modify-phases %standard-phases
136+
         (add-before 'build 'copy-resources
137+
           (lambda _
138+
             (copy-recursively "src/main/resources" "build/classes")))
139+
         (add-before 'build 'remove-failing-test
140+
           (lambda _
141+
             ;; This file fails to build
142+
             (delete-file "src/test/java/com/opencsv/bean/StatefulBeanToCsvTest.java")
143+
             #t)))))
144+
    (inputs
145+
     `(("java-commons-beanutils" ,java-commons-beanutils)
146+
       ("java-commons-collections" ,java-commons-collections)
147+
       ("java-commons-lang3" ,java-commons-lang3)
148+
       ("java-commons-text" ,java-commons-text)))
149+
    (native-inputs
150+
     `(("java-asm" ,java-asm)
151+
       ("java-cglib" ,java-cglib)
152+
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
153+
       ("java-junit" ,java-junit)
154+
       ("java-mockito-1" ,java-mockito-1)
155+
       ("java-objenesis" ,java-objenesis)))
156+
    (home-page "https://github.com/sirthias/parboiled")
157+
    (synopsis "")
158+
    (description "")
159+
    (license license:asl2.0)))
160+
161+
(define-public java-parboiled
162+
  (package
163+
    (name "java-parboiled")
164+
    ;; latest version is advertized to be 1.1.8
165+
    (version "1.1.7")
166+
    (source (origin
167+
              (method url-fetch)
168+
              (uri (string-append "https://github.com/sirthias/parboiled/archive/"
169+
                                  version ".tar.gz"))
170+
              (file-name (string-append name "-" version ".tar.gz"))
171+
              (sha256
172+
               (base32
173+
                "02akw95mqwnx5w1gag5ymilavgc0kr5dsiachpzbps282qmlssr2"))))
174+
    (build-system ant-build-system)
175+
    (arguments
176+
     `(#:jar-name "parboiled.jar"
177+
       #:source-dir "parboiled-core/src/main/java:parboiled-java/src/main/java"
178+
       #:test-dir "parboiled-core/src/test"
179+
       #:tests? #f)); requires scala
180+
    (inputs
181+
     `(("java-asm" ,java-asm)))
182+
    (native-inputs
183+
     `(("java-junit" ,java-junit)
184+
       ("java-testng" ,java-testng)))
185+
    (home-page "https://github.com/sirthias/parboiled")
186+
    (synopsis "")
187+
    (description "")
188+
    (license license:asl2.0)))
189+
190+
(define-public java-pegdown
191+
  (package
192+
    (name "java-pegdown")
193+
    (version "1.6.0")
194+
    (source (origin
195+
              (method url-fetch)
196+
              (uri (string-append "https://github.com/sirthias/pegdown/archive/"
197+
                                  version ".tar.gz"))
198+
              (file-name (string-append name "-" version ".tar.gz"))
199+
              (sha256
200+
               (base32
201+
                "18y97gvsvpqc9i7wvrq5zs2ir8ycd7f1igz6qgibrhw14i118xmx"))))
202+
    (build-system ant-build-system)
203+
    (arguments
204+
     `(#:jar-name "pegdown.jar"
205+
       #:source-dir "src/main/java"))
206+
    (inputs
207+
     `(("java-parboiled" ,java-parboiled)))
208+
    (native-inputs
209+
     `(("java-junit" ,java-junit)))
210+
    (home-page "https://github.com/sirthias/pegdown")
211+
    (synopsis "")
212+
    (description "")
213+
    (license license:asl2.0)))
214+
215+
(define-public java-nekohtml
216+
  (package
217+
    (name "java-nekohtml")
218+
    (version "1.9.21")
219+
    (source (origin
220+
              (method url-fetch)
221+
              (uri (string-append "http://downloads.sourceforge.net/nekohtml/"
222+
                                  "nekohtml-" version ".tar.gz"))
223+
              (sha256
224+
               (base32
225+
                "1dzdvm3wyl32ljbk3f5kvpg7h9fzps86q4hvfscr232d6xz6f18j"))
226+
              (modules '((guix build utils)))
227+
              (snippet
228+
                `(for-each delete-file (find-files "." ".*.jar")))))
229+
    (build-system ant-build-system)
230+
    (arguments
231+
     `(#:jdk ,icedtea-8
232+
       #:tests? #f; No tests
233+
       #:phases
234+
       (modify-phases %standard-phases
235+
         (add-before 'build 'fix-classpath
236+
           (lambda* (#:key inputs #:allow-other-keys)
237+
             (substitute* "build.xml"
238+
               (("\\$\\{lib.dir\\}/xerces-@\\{xercesVersion\\}")
239+
                (string-append (assoc-ref inputs "java-xerces") "/share/java"))
240+
               ;; We don't have older versions of xerces, so we don't need to
241+
               ;; get the compatibility with those.
242+
               (("<compileWith xercesVersion=\".*\" bridge=\"2_0\"/>")
243+
                "")
244+
               (("<compileWith xercesVersion=\".*\" bridge=\"2_1\"/>")
245+
                "")
246+
               (("<compileWith xercesVersion=\".*\" bridge=\"2_2\"/>")
247+
                ""))
248+
             #t))
249+
         (replace 'install
250+
           (install-jars ".")))))
251+
    (inputs
252+
     `(("java-xerces" ,java-xerces)))
253+
    (home-page "")
254+
    (synopsis "")
255+
    (description "")
256+
    (license license:asl2.0)))
257+
258+
(define-public java-jcifs
259+
  (package
260+
    (name "java-jcifs")
261+
    (version "1.3.18")
262+
    (source (origin
263+
              (method url-fetch)
264+
              (uri (string-append "https://jcifs.samba.org/src/jcifs-"
265+
                                  version ".tgz"))
266+
              (sha256
267+
               (base32
268+
                "04li1j2y9ndvp77g67dzp8yra1899wx21mg5gkbldpy4f190vq0m"))
269+
              (modules '((guix build utils)))
270+
              (snippet
271+
                `(delete-file (string-append "jcifs-" ,version ".jar")))))
272+
    (build-system ant-build-system)
273+
    (arguments
274+
     `(#:jdk ,icedtea-8
275+
       #:tests? #f; No tests
276+
       #:phases
277+
       (modify-phases %standard-phases
278+
         (add-before 'build 'fix-compiler
279+
           (lambda _
280+
             ;; Expects to find the compiler in /usr/local
281+
             (substitute* "build.xml"
282+
               (("executable=.*") ""))
283+
             #t))
284+
         (replace 'install
285+
           (install-jars ".")))))
286+
    (inputs
287+
     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)))
288+
    (home-page "")
289+
    (synopsis "")
290+
    (description "")
291+
    (license license:asl2.0)))
292+
293+
(define-public java-airline
294+
  (package
295+
    (name "java-airline")
296+
    (version "0.8")
297+
    (source (origin
298+
              (method url-fetch)
299+
              (uri (string-append "https://github.com/airlift/airline/archive/"
300+
                                  version ".tar.gz"))
301+
              (file-name (string-append name "-" version ".tar.gz"))
302+
              (sha256
303+
               (base32
304+
                "047ckxslpaw6j54zyfdf4b7sw71vcx7rqbwqa3lzz3pprhdfnm4x"))))
305+
    (build-system ant-build-system)
306+
    (arguments
307+
     `(#:jar-name "airline.jar"
308+
       #:source-dir "src/main/java"
309+
       #:test-dir "src/test"
310+
       #:jdk ,icedtea-8
311+
       #:phases
312+
       (modify-phases %standard-phases
313+
         (replace 'check
314+
           (lambda _
315+
             (system* "ant" "compile-tests")
316+
             ;; This fails though
317+
             (system* "java" "-cp" (string-append (getenv "CLASSPATH")
318+
                                                         ":build/classes"
319+
                                                         ":build/test-classes")
320+
                             "org.testng.TestNG" "-verbose" "5" "-testclass"
321+
                             "build/test-classes/io/airlift/airline/command/CommandTest.class")
322+
             #t)))))
323+
    (inputs
324+
     `(("java-guava-23.5" ,java-guava-23.5)
325+
       ("java-javax-inject" ,java-javax-inject)
326+
       ("java-jsr305" ,java-jsr305)))
327+
    (native-inputs
328+
     `(("java-testng" ,java-testng)
329+
       ("java-hamcrest-core" ,java-hamcrest-core)))
330+
    (home-page "")
331+
    (synopsis "Command line parser")
332+
    (description "Airline is a Java annotation-based framework for parsing Git
333+
like command line structures.  Airline contains a fully automated help system,
334+
which generates man-page-like documentation driven by the Java annotations.")
335+
    (license license:asl2.0)))
336+
337+
(define-public java-japicmp
338+
  (package
339+
    (name "java-japicmp")
340+
    (version "0.10.0")
341+
    (source (origin
342+
              (method url-fetch)
343+
              (uri (string-append "https://github.com/siom79/japicmp/archive/"
344+
                                  "japicmp-base-" version ".tar.gz"))
345+
              (sha256
346+
               (base32
347+
                "0kb3ja3j6kliakbqp1ypva1y42qllwvyin38ky3kxqzlkzhzpy9j"))))
348+
    (build-system ant-build-system)
349+
    (arguments
350+
     `(#:jar-name "japicmp.jar"
351+
       #:source-dir "japicmp/src/main/java"
352+
       #:test-dir "japicmp/src/test"
353+
       #:tests? #f; require org.junit.contrib
354+
       #:jdk ,icedtea-8
355+
       #:phases
356+
       (modify-phases %standard-phases
357+
         (add-before 'build 'copy-resources
358+
           (lambda _
359+
             (copy-recursively "japicmp/src/main/resources" "build/classes"))))))
360+
    (inputs
361+
     `(("java-airline" ,java-airline)
362+
       ("java-jboss-javassist" ,java-jboss-javassist)
363+
       ("java-guava" ,java-guava)
364+
       ("java-javax-inject" ,java-javax-inject)))
365+
    (home-page "")
366+
    (synopsis "Japicmp is a tool to compare two versions of a jar archive")
367+
    (description "Japicmp is a tool to compare two versions of a jar archive.
368+
It can also be used as a library.")
369+
    (license license:asl2.0)))
370+
371+
(define-public java-jatl
372+
  (package
373+
    (name "java-jatl")
374+
    (version "0.2.3")
375+
    (source (origin
376+
              (method url-fetch)
377+
              (uri (string-append "https://github.com/agentgt/jatl/archive/jatl-"
378+
                                  version ".tar.gz"))
379+
              (sha256
380+
               (base32
381+
                "0z3s4zpq97rwwn2gcfkhf28sib60d1sczg682fskyq1nfdxnlvgb"))))
382+
    (build-system ant-build-system)
383+
    (arguments
384+
     `(#:jar-name "jatl.jar"
385+
       #:source-dir "src/main/java"
386+
       #:jdk ,icedtea-8))
387+
    (native-inputs
388+
     `(("java-junit" ,java-junit)
389+
       ("java-hamcrest-core" ,java-hamcrest-core)))
390+
    (home-page "")
391+
    (synopsis "")
392+
    (description "")
393+
    (license license:asl2.0)))
394+
395+
(define-public java-javaparser
396+
  (package
397+
    (name "java-javaparser")
398+
    (version "3.5.6")
399+
    (source (origin
400+
              (method url-fetch)
401+
              (uri (string-append "https://github.com/javaparser/javaparser/"
402+
                                  "archive/javaparser-parent-" version ".tar.gz"))
403+
              (sha256
404+
               (base32
405+
                "04b1frvz65sg5jchw32ah32n2wj5agmil1fcq6kf1vxg78dj5d3d"))))
406+
    (build-system ant-build-system)
407+
    (arguments
408+
     `(#:jar-name "javaparser.jar"
409+
       #:source-dir "javaparser-core/src/main/java:javaparser-core/src/main/javacc-support"
410+
       #:tests? #f; require org.junit.contrib
411+
       #:jdk ,icedtea-8
412+
       #:phases
413+
       (modify-phases %standard-phases
414+
         (add-before 'build 'generate-parser
415+
           (lambda* _
416+
             (mkdir-p "")
417+
             (zero? (system* "javacc" "-DEBUG_PARSER=false"
418+
                             "-DEBUG_TOKEN_MANAGER=false" "-JDK_VERSION=1.8"
419+
                             "-GRAMMAR_ENCODING=UTF-8"
420+
                             "-OUTPUT_DIRECTORY=javaparser-core/src/main/java"
421+
                             "javaparser-core/src/main/javacc/java.jj")))))))
422+
    (native-inputs
423+
     `(("java-javacc" ,java-javacc)))
424+
    (home-page "")
425+
    (synopsis "")
426+
    (description "")
427+
    (license license:lgpl3+)))
428+
42429
(define-public java-jul-to-slf4j
43430
  (package
44431
    (inherit java-slf4j-api)

8111198
    (description "")
8121199
    (license license:expat)))
8131200
814-
(define-public java-jboss-annotations-api-spec
1201+
;; TODO: remove tests from org/bouncycastle/openpgp/test
1202+
(define-public java-bouncycastle-bcpg
8151203
  (package
816-
    (name "java-jboss-annotations-api-spec")
817-
    (version "1.2")
1204+
    (name "java-bouncycastle-bcpg")
1205+
    (version "1.58")
8181206
    (source (origin
8191207
              (method url-fetch)
820-
              (uri (string-append "https://github.com/jboss/jboss-annotations-api_spec/"
821-
                                  "archive/jboss-annotations-api_" version
822-
                                  "_spec-1.0.1.Final.tar.gz"))
1208+
              (uri "https://bouncycastle.org/download/bcpg-jdk15on-158.tar.gz")
8231209
              (sha256
8241210
               (base32
825-
                "0zvglvscq177lahvp8n9nlm0vkdxlf6db0fs8jcy8zf82z6k4d2n"))))
1211+
                "1qhjkgxqvmhv9z6ni95qfxwbhgwysb4llr2hb0w9d9av741myhal"))))
8261212
    (build-system ant-build-system)
8271213
    (arguments
828-
     `(#:jar-name "java-jboss-annotations-api_spec.jar"
829-
       #:jdk ,icedtea-8
830-
       #:source-dir "."
831-
       #:tests? #f)); no tests
832-
    (home-page "https://github.com/jboss/jboss-annotations-api_spec")
833-
    (synopsis "")
834-
    (description "")
1214+
     `(#:jar-name "bouncycastle-bcpg.jar"
1215+
       #:tests? #f; no tests
1216+
       #:phases
1217+
       (modify-phases %standard-phases
1218+
         (add-after 'unpack 'unzip
1219+
           (lambda _
1220+
             (mkdir-p "src")
1221+
             (with-directory-excursion "src"
1222+
               (system* "unzip" "../src.zip"))
1223+
             #t)))))
1224+
    (inputs
1225+
     `(("java-bouncycastle-bcprov" ,java-bouncycastle-bcprov)))
1226+
    (native-inputs
1227+
     `(("java-junit" ,java-junit)
1228+
       ("unzip" ,unzip)))
1229+
    (home-page "https://www.bouncycastle.org")
1230+
    (synopsis "Cryptographic library")
1231+
    (description "")
1232+
    (license license:expat)))
1233+
1234+
(define-public java-jboss-annotations-api-spec
1235+
  (package
1236+
    (name "java-jboss-annotations-api-spec")
1237+
    (version "1.2")
1238+
    (source (origin
1239+
              (method url-fetch)
1240+
              (uri (string-append "https://github.com/jboss/jboss-annotations-api_spec/"
1241+
                                  "archive/jboss-annotations-api_" version
1242+
                                  "_spec-1.0.1.Final.tar.gz"))
1243+
              (sha256
1244+
               (base32
1245+
                "0zvglvscq177lahvp8n9nlm0vkdxlf6db0fs8jcy8zf82z6k4d2n"))))
1246+
    (build-system ant-build-system)
1247+
    (arguments
1248+
     `(#:jar-name "java-jboss-annotations-api_spec.jar"
1249+
       #:jdk ,icedtea-8
1250+
       #:source-dir "."
1251+
       #:tests? #f)); no tests
1252+
    (home-page "https://github.com/jboss/jboss-annotations-api_spec")
1253+
    (synopsis "")
1254+
    (description "")
8351255
    (license (list license:gpl2 license:cddl1.0)))); either gpl2 only or cddl.
8361256
8371257
(define-public java-jboss-interceptors-api-spec

27613181
       #:jar-name (string-append ,name "-" ,version ".jar")
27623182
       #:source-dir "java-boot-classpath-detector/src/main/java"))))
27633183
2764-
;(define-public java-guava
2765-
;  (package
2766-
;    (name "java-guava")
2767-
;    (version "20.0")
2768-
;    (source (origin
2769-
;              (method url-fetch)
2770-
;              (uri (string-append "https://github.com/google/guava/archive/v"
2771-
;                                  version ".tar.gz"))
2772-
;              (file-name (string-append name "-" version ".tar.gz"))
2773-
;              (sha256
2774-
;               (base32
2775-
;                "1kasavj973iblj1fj35gzbywhkljrnbjpymgqyqaibbbmmbzff8s"))))
2776-
;    (build-system ant-build-system)
2777-
;    (arguments
2778-
;     `(#:jar-name (string-append ,name "-" ,version ".jar")
2779-
;       #:source-dir "guava/src"
2780-
;       #:tests? #f))
2781-
;    (inputs
2782-
;     `(("java-jsr305" ,java-jsr305)
2783-
;       ("java-j2objc-annotations" ,java-j2objc-annotations)
2784-
;       ("java-animal-sniffer-annotations" ,java-animal-sniffer-annotations)
2785-
;       ("java-error-prone-annotations" ,java-error-prone-annotations)))
2786-
;    (home-page "https://github.com/google/guava")
2787-
;    (synopsis "")
2788-
;    (description "")
2789-
;    (license license:asl2.0)))
3184+
(define-public java-guava-23.5
3185+
  (package
3186+
    (inherit java-guava)
3187+
    (version "23.5")
3188+
    (source (origin
3189+
              (method url-fetch)
3190+
              (uri (string-append "https://github.com/google/guava/archive/v"
3191+
                                  version ".tar.gz"))
3192+
              (file-name (string-append "guava-" version ".tar.gz"))
3193+
              (sha256
3194+
               (base32
3195+
                "1a4yl9l8b3w967l3ahhkic2n7aiygykw49nvmvp525l6qxwdl6a9"))))
3196+
    (arguments
3197+
     `(#:tests? #f                      ; no tests included
3198+
       #:jar-name "guava.jar"
3199+
       #:source-dir "guava/src"
3200+
       #:jdk ,icedtea-8
3201+
       #:phases
3202+
       (modify-phases %standard-phases
3203+
         (add-after 'unpack 'trim-sources
3204+
           (lambda _
3205+
             (with-directory-excursion "guava/src/com/google/common"
3206+
               ;; Remove annotations to avoid extra dependencies:
3207+
               ;; * "j2objc" annotations are used when converting Java to
3208+
               ;;   Objective C;
3209+
               ;; * "errorprone" annotations catch common Java mistakes at
3210+
               ;;   compile time;
3211+
               ;; * "IgnoreJRERequirement" is used for Android.
3212+
               (substitute* (find-files "." "\\.java$")
3213+
                 (("import com.google.j2objc.*") "")
3214+
                 (("import com.google.errorprone.annotation.*") "")
3215+
                 (("import org.codehaus.mojo.animal_sniffer.*") "")
3216+
                 (("@CanIgnoreReturnValue") "")
3217+
                 (("@LazyInit") "")
3218+
                 (("@WeakOuter") "")
3219+
                 (("@RetainedWith") "")
3220+
                 (("@Weak") "")
3221+
                 (("@ForOverride") "")
3222+
                 (("@J2ObjCIncompatible") "")
3223+
                 (("@CompatibleWith\\(\"[A-Z]\"\\)") "")
3224+
                 (("@Immutable\\([^\\)]*\\)") "")
3225+
                 (("@Immutable") "")
3226+
                 (("@ReflectionSupport\\([^\\)]*\\)") "")
3227+
                 (("@DoNotMock.*") "")
3228+
                 (("@MustBeClosed") "")
3229+
                 (("@IgnoreJRERequirement") "")))
3230+
             #t)))))))
27903231
27913232
(define-public java-joda-convert
27923233
  (package

38254266
    (description "")
38264267
    (license license:asl2.0)))
38274268
4269+
(define-public java-apache-ivy
4270+
  (package
4271+
    (name "java-apache-ivy")
4272+
    (version "2.4.0")
4273+
    (source (origin
4274+
              (method url-fetch)
4275+
              (uri (string-append "mirror://apache//ant/ivy/" version
4276+
                                  "/apache-ivy-" version "-src.tar.gz"))
4277+
              (sha256
4278+
               (base32
4279+
                "1xkfn57g2m7l6y0xdq75x5rnrgk52m9jx2xah70g3ggl8750hbr0"))
4280+
              (patches
4281+
                (search-patches
4282+
                  "java-apache-ivy-port-to-latest-bouncycastle.patch"))))
4283+
    (build-system ant-build-system)
4284+
    (arguments
4285+
     `(#:jar-name "ivy.jar"
4286+
       #:tests? #f
4287+
       #:phases
4288+
       (modify-phases %standard-phases
4289+
         (add-before 'build 'remove-example
4290+
           (lambda _
4291+
             (delete-file-recursively "src/example")
4292+
             #t))
4293+
         (add-before 'build 'fix-vfs
4294+
           (lambda _
4295+
             (substitute*
4296+
               '("src/java/org/apache/ivy/plugins/repository/vfs/VfsRepository.java"
4297+
                 "src/java/org/apache/ivy/plugins/repository/vfs/VfsResource.java")
4298+
               (("import org.apache.commons.vfs") "import org.apache.commons.vfs2"))
4299+
             #t)))))
4300+
       ;#:make-flags (list "-Duser.home=/tmp")
4301+
       ;#:phases
4302+
       ;(modify-phases %standard-phases
4303+
       ;  (replace 'install
4304+
       ;    (install-jars ".")))))
4305+
    (inputs
4306+
     `(("java-bouncycastle-bcpkix" ,java-bouncycastle-bcpkix)
4307+
       ("java-bouncycastle-bcprov" ,java-bouncycastle-bcprov)
4308+
       ("java-bouncycastle-bcpg" ,java-bouncycastle-bcpg)
4309+
       ("java-commons-cli" ,java-commons-cli)
4310+
       ("java-commons-collections" ,java-commons-collections)
4311+
       ("java-commons-httpclient" ,java-commons-httpclient)
4312+
       ("java-commons-lang" ,java-commons-lang)
4313+
       ("java-commons-vfs" ,java-commons-vfs)
4314+
       ("java-jakarta-oro" ,java-jakarta-oro)
4315+
       ("java-jsch" ,java-jsch)
4316+
       ("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
4317+
       ("java-jsch-agentproxy-connector-factory" ,java-jsch-agentproxy-connector-factory)
4318+
       ("java-jsch-agentproxy-jsch" ,java-jsch-agentproxy-jsch)
4319+
       ("java-junit" ,java-junit)))
4320+
    (home-page "https://ant.apache.org/ivy")
4321+
    (synopsis "")
4322+
    (description "")
4323+
    (license license:asl2.0)))
4324+
38284325
(define-public ant-junit
38294326
  (package
38304327
    (inherit ant)

44344931
      (uri url)
44354932
      (sha256 (base32 hash)))))
44364933
4934+
(define-public java-jackrabbit-core
4935+
  (package
4936+
    (name "java-jackrabbit-core")
4937+
    (version "2.16.0")
4938+
    (source (origin
4939+
              (method url-fetch)
4940+
              (uri (string-append "http://apache.crihan.fr/dist/jackrabbit/"
4941+
                                  version "/jackrabbit-" version "-src.zip"))
4942+
              (sha256
4943+
               (base32
4944+
                "1vcryb0p4937nlaiicyqfia6n46jqd71nwch3d9a0wd1ma14h0vg"))))
4945+
    (build-system ant-build-system)
4946+
    (arguments
4947+
     `(#:jar-name "jackrabbit.jar"
4948+
       #:source-dir "jackrabbit-core/src/main/java"
4949+
       #:test-dir "jackrabbit-core/src/test"))
4950+
    (native-inputs
4951+
     `(("unzip" ,unzip)))
4952+
    (home-page "https://jackrabbit.apache.org/jcr")
4953+
    (synopsis "")
4954+
    (description "")
4955+
    (license license:asl2.0)))
4956+
4957+
(define-public java-jackrabbit-webdav
4958+
  (package
4959+
    (inherit java-jackrabbit-core)
4960+
    (name "java-jackrabbit-webdav")
4961+
    (arguments
4962+
     `(#:jar-name "jackrabbit-webdav.jar"
4963+
       #:source-dir "jackrabbit-webdav/src/main/java"
4964+
       #:test-dir "jackrabbit-webdav/src/test"
4965+
       #:tests? #f; FIXME: either use servlet 2.2 or fix tests
4966+
       #:phases
4967+
       (modify-phases %standard-phases
4968+
         (add-before 'build 'fix-servlet
4969+
           (lambda _
4970+
             ;; jackrabbit is built for servlet 2.2, but we have 3.0
4971+
             (substitute* "jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java"
4972+
               (("import javax.servlet.RequestDispatcher;")
4973+
                "import javax.servlet.RequestDispatcher;
4974+
import javax.servlet.http.Part;
4975+
import javax.servlet.http.HttpServletResponse;
4976+
import javax.servlet.AsyncContext;
4977+
import javax.servlet.DispatcherType;
4978+
import javax.servlet.ServletRequest;
4979+
import javax.servlet.ServletResponse;
4980+
import javax.servlet.ServletContext;
4981+
import javax.servlet.ServletException;
4982+
import java.util.Collection;") 
4983+
               (("^}") "public Part getPart(String name) throws IOException,
4984+
                       ServletException {
4985+
    return httpRequest.getPart(name);
4986+
  }
4987+
  public Collection<Part> getParts() throws IOException, ServletException {
4988+
    return httpRequest.getParts();
4989+
  }
4990+
  public void logout() throws ServletException {
4991+
    httpRequest.logout();
4992+
  }
4993+
  public void login(String username, String password) throws ServletException {
4994+
    httpRequest.login(username, password);
4995+
  }
4996+
  public boolean authenticate(HttpServletResponse response) throws IOException,
4997+
      ServletException {
4998+
    return httpRequest.authenticate(response);
4999+
  }
5000+
  public DispatcherType getDispatcherType() {
5001+
    return httpRequest.getDispatcherType();
5002+
  }
5003+
  public AsyncContext getAsyncContext() {
5004+
    return httpRequest.getAsyncContext();
5005+
  }
5006+
  public boolean isAsyncSupported() {
5007+
    return httpRequest.isAsyncSupported();
5008+
  }
5009+
  public boolean isAsyncStarted() {
5010+
    return httpRequest.isAsyncStarted();
5011+
  }
5012+
  public AsyncContext startAsync(ServletRequest request, ServletResponse response) {
5013+
    return httpRequest.startAsync(request, response);
5014+
  }
5015+
  public AsyncContext startAsync() {
5016+
    return httpRequest.startAsync();
5017+
  }
5018+
  public ServletContext getServletContext() {
5019+
    return httpRequest.getServletContext();
5020+
  }
5021+
  public int getLocalPort() throws IOException {
5022+
    return httpRequest.getLocalPort();
5023+
  }
5024+
  public String getLocalAddr() throws IOException {
5025+
    return httpRequest.getLocalAddr();
5026+
  }
5027+
  public String getLocalName() throws IOException {
5028+
    return httpRequest.getLocalName();
5029+
  }
5030+
  public int getRemotePort() {
5031+
    return httpRequest.getRemotePort();
5032+
  }
5033+
}"))
5034+
             (substitute* "jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java"
5035+
               (("import java.util.Locale;")
5036+
                "import java.util.Collection;\nimport java.util.Locale;")
5037+
               (("^}")
5038+
                "public Collection<String> getHeaderNames() {
5039+
    return httpResponse.getHeaderNames();
5040+
  }
5041+
  public Collection<String> getHeaders(String name) {
5042+
    return httpResponse.getHeaders(name);
5043+
  }
5044+
  public String getHeader(String name) {
5045+
    return httpResponse.getHeader(name);
5046+
  }
5047+
  public int getStatus() {
5048+
    return httpResponse.getStatus();
5049+
  }
5050+
  public void setCharacterEncoding(String encoding) {
5051+
    httpResponse.setCharacterEncoding(encoding);
5052+
  }
5053+
  public String getContentType() {
5054+
    return httpResponse.getContentType();
5055+
  }
5056+
}"))
5057+
             #t)))))
5058+
    (inputs
5059+
     `(("java-slf4j-api" ,java-slf4j-api)
5060+
       ("java-httpcomponents-client" ,java-httpcomponents-client)
5061+
       ("java-httpcomponents-client" ,java-httpcomponents-core)
5062+
       ("java-osgi-annotation" ,java-osgi-annotation)
5063+
       ("java-classpathx-servletapi" ,java-classpathx-servletapi)))
5064+
    (native-inputs
5065+
     `(("unzip" ,unzip)
5066+
       ("java-junit" ,java-junit)))))
5067+
5068+
(define-public java-commons-vfs
5069+
  (package
5070+
    (name "java-commons-vfs")
5071+
    (version "2.2")
5072+
    (source (origin
5073+
              (method url-fetch)
5074+
              (uri (string-append "mirror://apache/commons/vfs/source/"
5075+
                                  "commons-vfs2-distribution-" version "-src.tar.gz"))
5076+
              (file-name (string-append name "-" version ".tar.gz"))
5077+
              (sha256
5078+
               (base32
5079+
                "1cnq1iaghbp4cslpnvwbp83i5v234x87irssqynhwpfgw7caf1s3"))))
5080+
    (build-system ant-build-system)
5081+
    (arguments
5082+
     `(#:jar-name "commons-vfs.jar"
5083+
       #:source-dir "commons-vfs2/src/main/java"
5084+
       #:tests? #f; no tests
5085+
       #:phases
5086+
       (modify-phases %standard-phases
5087+
         (add-before 'build 'remove-hadoop-and-webdav
5088+
           ; Remove these files as they are not required and depend on difficult
5089+
           ; packages.
5090+
           (lambda _
5091+
             (for-each delete-file-recursively
5092+
               '("commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav"
5093+
                 "commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs")))))))
5094+
    (inputs
5095+
     `(("java-commons-collections4" ,java-commons-collections4)
5096+
       ("java-commons-compress" ,java-commons-compress)
5097+
       ("java-commons-httpclient" ,java-commons-httpclient)
5098+
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
5099+
       ("java-commons-net" ,java-commons-net)
5100+
       ("java-jsch" ,java-jsch)))
5101+
    (home-page "http://commons.apache.org/proper/commons-vfs/")
5102+
    (synopsis "")
5103+
    (description "")
5104+
    (license license:asl2.0)))
5105+
44375106
(define-public java-commons-jxpath
44385107
  (package
44395108
    (name "java-commons-jxpath")

54266095
       ("java-logback-core" ,java-logback-core)
54276096
       ("java-logback-core-tests" ,java-logback-core-tests)))))
54286097
5429-
(define java-slf4j-api-tests
6098+
;; TODO: build the native library
6099+
(define-public java-native-access
54306100
  (package
5431-
    (inherit java-slf4j-api)
5432-
    (name "java-slf4j-api-tests")
5433-
    (arguments
5434-
     `(#:jar-name "slf4j-api-tests.jar"
5435-
       #:source-dir "slf4j-api/src/test/java"
5436-
       #:tests? #f))
5437-
    (inputs
5438-
     `(("java-slf4j-api" ,java-slf4j-api)
5439-
       ,@(package-inputs java-slf4j-api)
5440-
       ,@(package-native-inputs java-slf4j-api)))))
5441-
5442-
;; Needs maven-core
5443-
(define-public maven-plugin-testing-harness
5444-
  (package
5445-
    (name "maven-plugin-testing-harness")
5446-
    (version "3.3.0")
6101+
    (name "java-native-access")
6102+
    (version "4.5.0")
54476103
    (source (origin
54486104
              (method url-fetch)
5449-
              (uri (string-append "https://archive.apache.org/dist/maven/plugin-"
5450-
                                  "testing/maven-plugin-testing-" version
5451-
                                  "-source-release.zip"))
6105+
              (uri (string-append "https://github.com/java-native-access/jna/"
6106+
                                  "archive/" version ".tar.gz"))
6107+
              (file-name (string-append name "-" version ".tar.gz"))
54526108
              (sha256
54536109
               (base32
5454-
                "15vgjar275nkz47c05mpqb4g2rha0abc752xhxcxc34z2z47z6p5"))))
6110+
                "1lvk6r530iqd404g5gpqmzxc46qzysa5ds6a02nz8kcr2bg2rqgi"))))
54556111
    (build-system ant-build-system)
54566112
    (arguments
5457-
     `(#:jar-name "maven-plugin-testing-harness.jar"
5458-
       #:source-dir "maven-plugin-testing-harness/src/main/java"
5459-
       #:jdk ,icedtea-8))
5460-
    (inputs
5461-
     `(("maven-artifact" ,maven-artifact)))
5462-
    (native-inputs
5463-
     `(("unzip" ,unzip)))
6113+
     `(#:jar-name "jna.jar"
6114+
       #:tests? #f)); no tests
54646115
    (home-page "")
54656116
    (synopsis "")
54666117
    (description "")
5467-
    (license license:asl2.0)))
6118+
    ;; Java Native Access project (JNA) is dual-licensed under 2 
6119+
    ;; alternative Open Source/Free licenses: LGPL 2.1 or later and 
6120+
    ;; Apache License 2.0. (starting with JNA version 4.0.0). 
6121+
    (license (list
6122+
               license:asl2.0
6123+
               license:lgpl2.1+))))
6124+
6125+
(define-public java-native-access-platform
6126+
  (package
6127+
    (inherit java-native-access)
6128+
    (name "java-native-access-platform")
6129+
    (arguments
6130+
     `(#:jar-name "jna-platform.jar"
6131+
       #:tests? #f; no tests
6132+
       #:source-dir "contrib/platform/src"))
6133+
    (inputs
6134+
     `(("java-native-access" ,java-native-access)))))
54686135
5469-
(define-public maven-shared-utils
6136+
(define-public java-jsch-agentproxy-core
54706137
  (package
5471-
    (name "maven-shared-utils")
5472-
    ; latest is 3.2.0, but is not supported by maven-embedder
5473-
    (version "3.1.0")
6138+
    (name "java-jsch-agentproxy-core")
6139+
    (version "0.0.8")
54746140
    (source (origin
54756141
              (method url-fetch)
5476-
              (uri (string-append "https://archive.apache.org/dist/maven/shared/"
5477-
                                  "maven-shared-utils-" version "-source-release.zip"))
6142+
              (uri (string-append "https://github.com/ymnk/jsch-agent-proxy/archive/"
6143+
                                  version ".tar.gz"))
6144+
              (file-name (string-append name "-" version ".tar.gz"))
54786145
              (sha256
54796146
               (base32
5480-
                "0vfaas4g09ch0agrd1dcxcmhdd3w971ssvfr9mx9gi2lp5nv8w66"))))
6147+
                "02iqg6jbc1kxvfzqcg6wy9ygqxfm82bw5rf6vnswqy4y572niz4q"))))
54816148
    (build-system ant-build-system)
54826149
    (arguments
5483-
     `(#:jar-name "maven-shared-utils.jar"
5484-
       #:source-dir "src/main/java"
5485-
       #:jdk ,icedtea-8
5486-
       #:phases
5487-
       (modify-phases %standard-phases
5488-
         (add-before 'check 'remove-cyclic-dep
5489-
           (lambda _
5490-
             (delete-file "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
5491-
             #t)))))
5492-
    (inputs
5493-
     `(("java-jansi" ,java-jansi)
5494-
       ("java-commons-io" ,java-commons-io)
5495-
       ("java-jsr305" ,java-jsr305)
5496-
       ("java-plexus-container-default" ,java-plexus-container-default)))
5497-
    (native-inputs
5498-
     `(("unzip" ,unzip)
5499-
       ("java-junit" ,java-junit)
5500-
       ("java-hamcrest-core" ,java-hamcrest-core)
5501-
       ("java-commons-lang3" ,java-commons-lang3)))
6150+
     `(#:jar-name "jsch-agentproxy-core.jar"
6151+
       #:source-dir "jsch-agent-proxy-core/src/main/java"
6152+
       #:tests? #f)); no tests
55026153
    (home-page "")
55036154
    (synopsis "")
55046155
    (description "")
5505-
    (license license:asl2.0)))
6156+
    (license license:bsd-3)))
55066157
5507-
(define-public maven
6158+
(define-public java-jsch-agentproxy-sshagent
55086159
  (package
5509-
    (name "maven")
5510-
    (version "3.5.0")
5511-
    (source (origin
5512-
              (method url-fetch)
5513-
              (uri (string-append "https://archive.apache.org/dist/maven/"
5514-
                                  "maven-3/" version "/source/"
5515-
                                  "apache-maven-" version "-src.tar.gz"))
5516-
              (sha256 (base32 "1xw0g85w1rnxrjia3d7knpnwh8jg5052qsnqjl6nyly2k8320qrg"))
5517-
              (patches
5518-
                (search-patches "maven-generate-component-xml.patch"
5519-
                                "maven-generate-javax-inject-named.patch"))))
5520-
    (build-system ant-build-system)
6160+
    (inherit java-jsch-agentproxy-core)
6161+
    (name "java-jsch-agentproxy-sshagent")
55216162
    (arguments
5522-
     `(#:phases
5523-
       (modify-phases %standard-phases
5524-
         (replace 'build
5525-
           (lambda _
5526-
             (substitute* "apache-maven/src/bin/mvn"
5527-
               (("cygwin=false;")
5528-
                (string-append
5529-
                  "CLASSPATH=" (getenv "CLASSPATH") "\n"
5530-
                  "cygwin=false;"))
5531-
               (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))))
5532-
         (delete 'check)
5533-
         (replace 'install
5534-
           (lambda* (#:key outputs #:allow-other-keys)
5535-
             (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
5536-
                   (conf (string-append (assoc-ref outputs "out") "/conf/")))
5537-
               (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
5538-
               (for-each (lambda (file)
5539-
                           (install-file (string-append "apache-maven/src/bin/" file)
5540-
                                         bin)
5541-
                           (chmod (string-append bin file) #o755))
5542-
                '("mvn" "mvnDebug" "mvnyjp"))
5543-
               (install-file "apache-maven/src/bin/m2.conf" bin)
5544-
               (copy-recursively "apache-maven/src/conf" conf)))))))
6163+
     `(#:jar-name "jsch-agentproxy-sshagent.jar"
6164+
       #:source-dir "jsch-agent-proxy-sshagent/src/main/java"
6165+
       #:tests? #f)); no tests
55456166
    (inputs
5546-
     `(("java-plexus-classworlds" ,java-plexus-classworlds)
5547-
       ("maven-artifact" ,maven-artifact)
5548-
       ("maven-embedder" ,maven-embedder)
5549-
       ("maven-core" ,maven-core)
5550-
       ("maven-compat" ,maven-compat)
5551-
       ("maven-builder-support" ,maven-builder-support)
5552-
       ("maven-model" ,maven-model)
5553-
       ("maven-model-builder" ,maven-model-builder)
5554-
       ("maven-settings" ,maven-settings)
5555-
       ("maven-settings-builder" ,maven-settings-builder)
5556-
       ("maven-plugin-api" ,maven-plugin-api)
5557-
       ("maven-repository-metadata", maven-repository-metadata)
5558-
       ("maven-shared-utils" ,maven-shared-utils)
5559-
       ("maven-resolver-api" ,maven-resolver-api)
5560-
       ("maven-resolver-spi" ,maven-resolver-spi)
5561-
       ("maven-resolver-util" ,maven-resolver-util)
5562-
       ("maven-resolver-impl" ,maven-resolver-impl)
5563-
       ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
5564-
       ("maven-resolver-provider" ,maven-resolver-provider)
5565-
       ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
5566-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
5567-
       ("maven-wagon-file" ,maven-wagon-file)
5568-
       ("maven-wagon-http" ,maven-wagon-http)
5569-
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
5570-
       ("java-httpcomponents-client" ,java-httpcomponents-client)
5571-
       ("java-httpcomponents-core" ,java-httpcomponents-core)
5572-
       ("maven-wagon-http-shared" ,maven-wagon-http-shared)
5573-
       ("maven-wagon-tck-http" ,maven-wagon-tck-http)
5574-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
5575-
       ("java-guice" ,java-guice)
5576-
       ("java-aopalliance" ,java-aopalliance)
5577-
       ("java-cglib" ,java-cglib)
5578-
       ("java-asm" ,java-asm)
5579-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
5580-
       ("java-javax-inject" ,java-javax-inject)
5581-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5582-
       ("java-plexus-utils" ,java-plexus-utils)
5583-
       ("java-plexus-interpolation" ,java-plexus-interpolation)
5584-
       ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
5585-
       ("java-plexus-cipher" ,java-plexus-cipher)
5586-
       ("java-guava" ,java-guava)
5587-
       ("java-jansi" ,java-jansi)
5588-
       ("java-jsr250" ,java-jsr250)
5589-
       ("java-cdi-api" ,java-cdi-api)
5590-
       ("java-commons-cli" ,java-commons-cli)
5591-
       ("java-commons-io" ,java-commons-io)
5592-
       ("java-commons-lang3" ,java-commons-lang3)
5593-
       ("java-slf4j-api" ,java-slf4j-api)
5594-
       ;; TODO: replace with maven-slf4j-provider
5595-
       ("java-slf4j-simple" ,java-slf4j-simple)))
5596-
    (home-page "")
5597-
    (synopsis "")
5598-
    (description "")
5599-
    (license license:asl2.0)))
6167+
     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)))))
56006168
5601-
(define-public maven-artifact
6169+
(define-public java-jsch-agentproxy-usocket-jna
56026170
  (package
5603-
    (inherit maven)
5604-
    (name "maven-artifact")
6171+
    (inherit java-jsch-agentproxy-core)
6172+
    (name "java-jsch-agentproxy-usocket-jna")
56056173
    (arguments
5606-
     `(#:jar-name "maven-artifact.jar"
5607-
       #:source-dir "maven-artifact/src/main/java"
5608-
       #:test-dir "maven-artifact/src/test"
5609-
       #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
6174+
     `(#:jar-name "jsch-agentproxy-usocket-jna.jar"
6175+
       #:source-dir "jsch-agent-proxy-usocket-jna/src/main/java"
6176+
       #:tests? #f)); no tests
56106177
    (inputs
5611-
     `(("java-plexus-utils" ,java-plexus-utils)
5612-
       ("java-commons-lang3" ,java-commons-lang3)))
5613-
    (native-inputs
5614-
     `(("java-junit" ,java-junit)))))
6178+
     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
6179+
       ("java-native-access" ,java-native-access)))))
56156180
5616-
(define-public maven-model
6181+
(define-public java-jsch-agentproxy-pageant
56176182
  (package
5618-
    (inherit maven)
5619-
    (name "maven-model")
6183+
    (inherit java-jsch-agentproxy-core)
6184+
    (name "java-jsch-agentproxy-pageant")
56206185
    (arguments
5621-
     `(#:jar-name "maven-model.jar"
5622-
       #:source-dir "maven-model/src/main/java"
5623-
       #:test-dir "maven-model/src/test"
5624-
       #:jdk ,icedtea-8
5625-
       #:phases
5626-
       (modify-phases %standard-phases
5627-
         (add-before 'build 'generate-models
5628-
           (lambda* (#:key inputs #:allow-other-keys)
5629-
             (define (modello-single-mode file version mode)
5630-
               (zero? (system* "java"
5631-
                               "org.codehaus.modello.ModelloCli"
5632-
                               file mode "maven-model/src/main/java" version
5633-
                               "false" "true")))
5634-
             (let ((file "maven-model/src/main/mdo/maven.mdo"))
5635-
               (and
5636-
               (modello-single-mode file "4.0.0" "java")
5637-
               (modello-single-mode file "4.0.0" "xpp3-reader")
5638-
               (modello-single-mode file "4.0.0" "xpp3-writer")
5639-
               (modello-single-mode file "4.0.0" "xpp3-extended-reader"))))))))
6186+
     `(#:jar-name "jsch-agentproxy-pageant.jar"
6187+
       #:source-dir "jsch-agent-proxy-pageant/src/main/java"
6188+
       #:tests? #f)); no tests
56406189
    (inputs
5641-
     `(("java-commons-lang3" ,java-commons-lang3)
5642-
       ("java-plexus-utils" ,java-plexus-utils)))
5643-
    (native-inputs
5644-
     `(("java-modello-core" ,java-modello-core)
5645-
       ;; for modello:
5646-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
5647-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5648-
       ("java-guice" ,java-guice)
5649-
       ("java-cglib" ,java-cglib)
5650-
       ("java-asm" ,java-asm)
5651-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
5652-
       ("java-javax-inject" ,java-javax-inject)
5653-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
5654-
       ("java-guava" ,java-guava)
5655-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
5656-
       ("java-sisu-build-api" ,java-sisu-build-api)
5657-
       ;; modello plugins:
5658-
       ("java-modello-plugins-java" ,java-modello-plugins-java)
5659-
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
5660-
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
5661-
       ;; for tests
5662-
       ("java-junit" ,java-junit)))))
6190+
     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
6191+
       ("java-native-access" ,java-native-access)
6192+
       ("java-native-access-platform" ,java-native-access-platform)))))
56636193
5664-
(define-public maven-settings
6194+
(define-public java-jsch-agentproxy-usocket-nc
56656195
  (package
5666-
    (inherit maven)
5667-
    (name "maven-settings")
6196+
    (inherit java-jsch-agentproxy-core)
6197+
    (name "java-jsch-agentproxy-usocket-nc")
56686198
    (arguments
5669-
     `(#:jar-name "maven-settings.jar"
5670-
       #:source-dir "maven-settings/src/main/java"
5671-
       #:jdk ,icedtea-8
5672-
       #:tests? #f; no tests
5673-
       #:phases
5674-
       (modify-phases %standard-phases
5675-
         (add-before 'build 'generate-models
5676-
           (lambda* (#:key inputs #:allow-other-keys)
5677-
             (define (modello-single-mode file version mode)
5678-
               (zero? (system* "java"
5679-
                               "org.codehaus.modello.ModelloCli"
5680-
                               file mode "maven-settings/src/main/java" version
5681-
                               "false" "true")))
5682-
             (let ((file "maven-settings/src/main/mdo/settings.mdo"))
5683-
               (and
5684-
                 (modello-single-mode file "1.1.0" "java")
5685-
                 (modello-single-mode file "1.1.0" "xpp3-reader")
5686-
                 (modello-single-mode file "1.1.0" "xpp3-writer"))))))))
5687-
    (inputs '())
5688-
    (native-inputs
5689-
     `(("java-modello-core" ,java-modello-core)
5690-
       ;; for modello:
5691-
       ;("container" ,java-plexus-container-default)
5692-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
5693-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5694-
       ("java-guice" ,java-guice)
5695-
       ("java-cglib" ,java-cglib)
5696-
       ("java-asm" ,java-asm)
5697-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
5698-
       ("java-javax-inject" ,java-javax-inject)
5699-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
5700-
       ("java-plexus-utils" ,java-plexus-utils)
5701-
       ("java-guava" ,java-guava)
5702-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
5703-
       ("java-sisu-build-api" ,java-sisu-build-api)
5704-
       ;; modello plugins:
5705-
       ("java-modello-plugins-java" ,java-modello-plugins-java)
5706-
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
5707-
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))))
5708-
5709-
(define-public maven-builder-support
5710-
  (package
5711-
    (inherit maven)
5712-
    (name "maven-builder-support")
5713-
    (arguments
5714-
     `(#:jar-name "maven-builder-support.jar"
5715-
       #:source-dir "maven-builder-support/src/main/java"
5716-
       #:jdk ,icedtea-8
5717-
       #:test-dir "maven-builder-support/src/test"
5718-
       #:phases
5719-
       (modify-phases %standard-phases
5720-
         (add-before 'check 'fix-paths
5721-
           (lambda _
5722-
             (substitute* '("maven-builder-support/src/test/java/org/apache/maven/building/FileSourceTest.java"
5723-
                            "maven-builder-support/src/test/java/org/apache/maven/building/UrlSourceTest.java")
5724-
               (("target/test-classes") "maven-builder-support/src/test/resources"))
5725-
             #t)))))
5726-
    (inputs
5727-
     `(("java-plexus-utils" ,java-plexus-utils)
5728-
       ("java-commons-lang3" ,java-commons-lang3)))
5729-
    (native-inputs
5730-
     `(("java-junit" ,java-junit)
5731-
       ("java-hamcrest-core" ,java-hamcrest-core)))))
5732-
5733-
(define-public maven-settings-builder
5734-
  (package
5735-
    (inherit maven)
5736-
    (name "maven-settings-builder")
5737-
    (arguments
5738-
     `(#:jar-name "maven-settings-builder.jar"
5739-
       #:source-dir "maven-settings-builder/src/main/java"
5740-
       #:jdk ,icedtea-8
5741-
       #:test-dir "maven-settings-builder/src/test"
5742-
       #:phases
5743-
       (modify-phases %standard-phases
5744-
         (add-before 'build 'generate-components.xml
5745-
           (lambda _
5746-
             (mkdir-p "build/classes/META-INF/plexus")
5747-
             (chmod "components.sh" #o755)
5748-
             (zero? (system* "./components.sh" "maven-settings-builder/src/main/java"
5749-
                             "build/classes/META-INF/plexus/components.xml")))))))
5750-
    (inputs
5751-
     `(("java-plexus-utils" ,java-plexus-utils)
5752-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5753-
       ("java-plexus-interpolation" ,java-plexus-interpolation)
5754-
       ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
5755-
       ("maven-builder-support" ,maven-builder-support)
5756-
       ("maven-settings" ,maven-settings)
5757-
       ("java-commons-lang3" ,java-commons-lang3)))
5758-
    (native-inputs
5759-
     `(("java-junit" ,java-junit)))))
5760-
5761-
(define-public maven-plugin-api
5762-
  (package
5763-
    (inherit maven)
5764-
    (name "maven-plugin-api")
5765-
    (arguments
5766-
     `(#:jar-name "maven-plugin-api.jar"
5767-
       #:source-dir "maven-plugin-api/src/main/java"
5768-
       #:jdk ,icedtea-8
5769-
       #:test-dir "maven-plugin-api/src/test"
5770-
       #:phases
5771-
       (modify-phases %standard-phases
5772-
         (add-before 'build 'generate-models
5773-
           (lambda* (#:key inputs #:allow-other-keys)
5774-
             (define (modello-single-mode file version mode)
5775-
               (zero? (system* "java"
5776-
                               "org.codehaus.modello.ModelloCli"
5777-
                               file mode "maven-plugin-api/src/main/java" version
5778-
                               "false" "true")))
5779-
             (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
5780-
               (and
5781-
                 (modello-single-mode file "1.0.0" "java")
5782-
                 (modello-single-mode file "1.0.0" "xpp3-reader")
5783-
                 (modello-single-mode file "1.0.0" "xpp3-writer"))))))))
5784-
    (inputs
5785-
     `(("maven-artifact" ,maven-artifact)
5786-
       ("maven-model" ,maven-model)
5787-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
5788-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5789-
       ("guice" ,java-guice)
5790-
       ("java-cglib" ,java-cglib)
5791-
       ("java-asm" ,java-asm)
5792-
       ("sisu-inject" ,java-eclipse-sisu-inject)
5793-
       ("javax-inject" ,java-javax-inject)
5794-
       ("utils" ,java-plexus-utils)))
5795-
    (native-inputs
5796-
     `(("modello" ,java-modello-core)
5797-
       ;; for modello:
5798-
       ("classworlds" ,java-plexus-classworlds)
5799-
       ("guava" ,java-guava)
5800-
       ("xbean" ,java-geronimo-xbean-reflect)
5801-
       ("build-api" ,java-sisu-build-api)
5802-
       ;; modello plugins:
5803-
       ("java" ,java-modello-plugins-java)
5804-
       ("xml" ,java-modello-plugins-xml)
5805-
       ("xpp3" ,java-modello-plugins-xpp3)
5806-
       ;; for tests
5807-
       ("java-junit" ,java-junit)))))
5808-
5809-
(define-public maven-model-builder
5810-
  (package
5811-
    (inherit maven)
5812-
    (name "maven-model-builder")
5813-
    (arguments
5814-
     `(#:jar-name "maven-model-builder.jar"
5815-
       #:source-dir "maven-model-builder/src/main/java"
5816-
       #:jdk ,icedtea-8
5817-
       #:test-dir "maven-model-builder/src/test"
5818-
       #:phases
5819-
       (modify-phases %standard-phases
5820-
         (add-before 'build 'copy-resources
5821-
           (lambda _
5822-
             (copy-recursively "maven-model-builder/src/main/resources"
5823-
                               "build/classes")))
5824-
         (add-before 'build 'generate-components.xml
5825-
           (lambda _
5826-
             (mkdir-p "build/classes/META-INF/plexus")
5827-
             (chmod "components.sh" #o755)
5828-
             (zero? (system* "./components.sh" "maven-model-builder/src/main/java"
5829-
                             "build/classes/META-INF/plexus/components.xml"))))
5830-
         (add-before 'check 'fix-paths
5831-
           (lambda _
5832-
             (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
5833-
               (("src/test") "maven-model-builder/src/test"))
5834-
             #t)))))
5835-
    (inputs
5836-
     `(("model" ,maven-model)
5837-
       ("artifact" ,maven-artifact)
5838-
       ("support" ,maven-builder-support)
5839-
       ("annotations" ,java-plexus-component-annotations)
5840-
       ("utils" ,java-plexus-utils)
5841-
       ("interpolation" ,java-plexus-interpolation)
5842-
       ("lang3" ,java-commons-lang3)
5843-
       ("guava" ,java-guava)))
5844-
    (native-inputs
5845-
     `(("java-junit" ,java-junit)
5846-
       ("java-hamcrest-core" ,java-hamcrest-core)
5847-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
5848-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5849-
       ("guice" ,java-guice)
5850-
       ("java-cglib" ,java-cglib)
5851-
       ("java-asm" ,java-asm)
5852-
       ("sisu-inject" ,java-eclipse-sisu-inject)
5853-
       ("javax-inject" ,java-javax-inject)
5854-
       ("xmlunit" ,java-xmlunit)
5855-
       ("xmlunit" ,java-xmlunit-legacy)
5856-
       ("xbean" ,java-geronimo-xbean-reflect)
5857-
       ("classworlds" ,java-plexus-classworlds)))))
5858-
5859-
(define-public maven-repository-metadata
5860-
  (package
5861-
    (inherit maven)
5862-
    (name "maven-repository-metadata")
5863-
    (arguments
5864-
     `(#:jar-name "maven-repository-metadata.jar"
5865-
       #:source-dir "maven-repository-metadata/src/main/java"
5866-
       #:jdk ,icedtea-8
5867-
       #:tests? #f; no tests
5868-
       #:phases
5869-
       (modify-phases %standard-phases
5870-
         (add-before 'build 'generate-models
5871-
           (lambda* (#:key inputs #:allow-other-keys)
5872-
             (define (modello-single-mode file version mode)
5873-
               (zero? (system* "java"
5874-
                               "org.codehaus.modello.ModelloCli"
5875-
                               file mode "maven-repository-metadata/src/main/java" version
5876-
                               "false" "true")))
5877-
             (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
5878-
               (and
5879-
                 (modello-single-mode file "1.1.0" "java")
5880-
                 (modello-single-mode file "1.1.0" "xpp3-reader")
5881-
                 (modello-single-mode file "1.1.0" "xpp3-writer"))))))))
5882-
    (inputs '())
5883-
    (native-inputs
5884-
     `(("modello" ,java-modello-core)
5885-
       ;; for modello:
5886-
       ;("container" ,java-plexus-container-default)
5887-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
5888-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5889-
       ("java-guice" ,java-guice)
5890-
       ("java-cglib" ,java-cglib)
5891-
       ("java-asm" ,java-asm)
5892-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
5893-
       ("java-javax-inject" ,java-javax-inject)
5894-
       ("java-plexus-utils" ,java-plexus-utils)
5895-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
5896-
       ("java-guava" ,java-guava)
5897-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
5898-
       ("java-sisu-build-api" ,java-sisu-build-api)
5899-
       ;; modello plugins:
5900-
       ("java-modello-plugins-java" ,java-modello-plugins-java)
5901-
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
5902-
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
5903-
       ;; for tests
5904-
       ("java-junit" ,java-junit)))))
5905-
5906-
(define-public maven-resolver-provider
5907-
  (package
5908-
    (inherit maven)
5909-
    (name "maven-resolver-provider")
5910-
    (arguments
5911-
     `(#:jar-name "maven-resolver-provider.jar"
5912-
       #:source-dir "maven-resolver-provider/src/main/java"
5913-
       #:test-dir "maven-resolver-provider/src/test"
5914-
       #:jdk ,icedtea-8
5915-
       #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
5916-
       #:phases
5917-
       (modify-phases %standard-phases
5918-
         (add-before 'build 'generate-components.xml
5919-
           (lambda _
5920-
             (mkdir-p "build/classes/META-INF/plexus")
5921-
             (chmod "components.sh" #o755)
5922-
             (zero? (system* "./components.sh" "maven-resolver-provider/src/main/java"
5923-
                             "build/classes/META-INF/plexus/components.xml")))))))
5924-
    (inputs
5925-
     `(("maven-resolver-spi" ,maven-resolver-spi)
5926-
       ("maven-resolver-api" ,maven-resolver-api)
5927-
       ("maven-resolver-impl" ,maven-resolver-impl)
5928-
       ("maven-resolver-util" ,maven-resolver-util)
5929-
       ("maven-model" ,maven-model)
5930-
       ("maven-model-builder" ,maven-model-builder)
5931-
       ("maven-builder-support" ,maven-builder-support)
5932-
       ("maven-repository-metadata" ,maven-repository-metadata)
5933-
       ("java-plexus-utils" ,java-plexus-utils)
5934-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5935-
       ("java-commons-lang3" ,java-commons-lang3)
5936-
       ("java-guice" ,java-guice)
5937-
       ("java-guava" ,java-guava)
5938-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
5939-
       ("java-javax-inject" ,java-javax-inject)))))
5940-
5941-
;(define-public maven-resolver-provider
5942-
;  (package
5943-
;    (inherit maven-resolver-provider-boot)
5944-
;    (arguments
5945-
;     `(#:jar-name "maven-resolver-provider.jar"
5946-
;       #:source-dir "src/main/java"
5947-
;       #:jdk ,icedtea-8
5948-
;       #:test-exclude (list "**/DefaultArtifactDescriptorReaderTest.java")
5949-
;       #:phases
5950-
;       (modify-phases %standard-phases
5951-
;         (add-before 'configure 'chdir
5952-
;           (lambda _
5953-
;             ;; Tests assume we're in this directory
5954-
;             (chdir "maven-resolver-provider")))
5955-
;         (add-before 'build 'generate-components.xml
5956-
;           (lambda _
5957-
;             (mkdir-p "build/classes/META-INF/plexus")
5958-
;             (chmod "../components.sh" #o755)
5959-
;             (zero? (system* "../components.sh" "src/main/java"
5960-
;                             "build/classes/META-INF/plexus/components.xml"))))
5961-
;         (add-before 'check 'fix-assumptions
5962-
;           (lambda _
5963-
;             ;; Errors about the version of some files
5964-
;             (substitute* "src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java"
5965-
;               (("20130404.090532-2") "SNAPSHOT")))))))
5966-
;         ;(add-before 'check 'copy-test-classes
5967-
;         ;  (lambda _
5968-
;         ;    (system* "ant" "compile-tests")
5969-
;         ;    (mkdir-p "target/test-classes")
5970-
;         ;    (copy-recursively "build/test-classes" "target/test-classes")
5971-
;         ;    ;(copy-recursively "src/test/resources/repo" "target/test-classes/repo")
5972-
;         ;    #t)))))
5973-
;    (native-inputs
5974-
;     `(;; For building tests:
5975-
;       ("maven-core" ,maven-core-boot)
5976-
;       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
5977-
;       ("java-junit" ,java-junit)
5978-
;       ("java-mockito-1" ,java-mockito-1)
5979-
;       ;; For running tests:
5980-
;       ("java-hamcrest-core" ,java-hamcrest-core)
5981-
;       ("aop" ,java-aopalliance)
5982-
;       ("classworlds" ,java-plexus-classworlds)
5983-
;       ("plugin" ,maven-plugin-api)
5984-
;       ("java-cglib" ,java-cglib)
5985-
;       ("java-asm" ,java-asm)
5986-
;       ("interpolation" ,java-plexus-interpolation)
5987-
;       ("artifact" ,maven-artifact)
5988-
;       ("java-objenesis" ,java-objenesis)
5989-
;       ("transport-wagon" ,maven-resolver-transport-wagon)
5990-
;       ("wagon-file" ,maven-wagon-file)
5991-
;       ("wagon-api" ,maven-wagon-provider-api)
5992-
;       ("connector-basic" ,maven-resolver-connector-basic)))))
5993-
5994-
(define maven-core-boot
5995-
  (package
5996-
    (inherit maven)
5997-
    (name "maven-core-boot")
5998-
    (arguments
5999-
     `(#:jar-name "maven-core.jar"
6000-
       #:source-dir "src/main/java"
6001-
       #:jdk ,icedtea-8
6002-
       ;; Tests fail with
6003-
       ;; org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException
6004-
       ;;   role: org.apache.maven.repository.RepositorySystem
6005-
       ;; It seems they need maven-compat, which requires maven-core
6006-
       #:tests? #f
6007-
       ;#:fake-maven? #t
6008-
       ;#:version ,(package-version maven)
6009-
       ;#:pom-file "pom.xml"
6010-
       ;#:group-id "org.apache.maven"
6011-
       ;#:artifact-id "maven-core"
6012-
       #:phases
6013-
       (modify-phases %standard-phases
6014-
         (add-before 'configure 'chdir
6015-
           (lambda _
6016-
             ;; Required for generating components.xml in maven-core
6017-
             (chdir "maven-core")))
6018-
         (add-before 'build 'copy-resources
6019-
           (lambda _
6020-
             (mkdir-p "build/classes/")
6021-
             (copy-recursively "src/main/resources" "build/classes")))
6022-
         (add-before 'build 'generate-sisu-named
6023-
           (lambda _
6024-
             (mkdir-p "build/classes/META-INF/sisu")
6025-
             (chmod "../sisu.sh" #o755)
6026-
             (zero? (system* "../sisu.sh" "src/main/java"
6027-
                             "build/classes/META-INF/sisu/javax.inject.Named"))))
6028-
         (add-before 'build 'generate-models
6029-
           (lambda* (#:key inputs #:allow-other-keys)
6030-
             (define (modello-single-mode file version mode)
6031-
               (zero? (system* "java"
6032-
                               "org.codehaus.modello.ModelloCli"
6033-
                               file mode "src/main/java" version
6034-
                               "false" "true")))
6035-
             (let ((file "src/main/mdo/toolchains.mdo"))
6036-
               (and
6037-
                 (modello-single-mode file "1.1.0" "java")
6038-
                 (modello-single-mode file "1.1.0" "xpp3-reader")
6039-
                 (modello-single-mode file "1.1.0" "xpp3-writer"))))))))
6040-
    (inputs
6041-
     `(("maven-artifact" ,maven-artifact)
6042-
       ("maven-resolver-provider" ,maven-resolver-provider)
6043-
       ("maven-builder-support" ,maven-builder-support)
6044-
       ("maven-model" ,maven-model)
6045-
       ("maven-model-builder" ,maven-model-builder)
6046-
       ("maven-settings" ,maven-settings)
6047-
       ("maven-settings-builder" ,maven-settings-builder)
6048-
       ("maven-plugin-api" ,maven-plugin-api)
6049-
       ("maven-repository-metadata" ,maven-repository-metadata)
6050-
       ("maven-shared-utils" ,maven-shared-utils)
6051-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
6052-
       ("java-plexus-utils" ,java-plexus-utils)
6053-
       ("java-commons-lang3" ,java-commons-lang3)
6054-
       ("java-guava" ,java-guava)
6055-
       ("java-guice" ,java-guice)
6056-
       ("maven-resolver-api" ,maven-resolver-api)
6057-
       ("maven-resolver-spi" ,maven-resolver-spi)
6058-
       ("maven-resolver-util" ,maven-resolver-util)
6059-
       ("maven-resolver-impl" ,maven-resolver-impl)
6060-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6061-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6062-
       ("java-javax-inject" ,java-javax-inject)
6063-
       ("java-plexus-classworld" ,java-plexus-classworlds)))
6064-
    (native-inputs
6065-
     `(("java-modello-core" ,java-modello-core)
6066-
       ("java-cglib" ,java-cglib)
6067-
       ("java-asm" ,java-asm)
6068-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6069-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
6070-
       ("java-sisu-build-api" ,java-sisu-build-api)
6071-
       ("java-modello-plugins-java" ,java-modello-plugins-java)
6072-
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
6073-
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
6074-
       ;; tests
6075-
       ("java-junit" ,java-junit)
6076-
       ("java-mockito-1" ,java-mockito-1)
6077-
       ("java-commons-jxpath" ,java-commons-jxpath)))))
6078-
6079-
(define-public maven-core
6080-
  (package
6081-
    (inherit maven-core-boot)
6082-
    (name "maven-core")
6083-
    (arguments
6084-
      (substitute-keyword-arguments (package-arguments maven-core-boot)
6085-
        ((#:phases phases)
6086-
         `(modify-phases ,phases
6087-
            (add-after 'build 'generate-metadata
6088-
              (lambda _
6089-
                (delete-file "build/classes/META-INF/plexus/components.xml")
6090-
                (and (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
6091-
                                     "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
6092-
                                     "--source" "build/classes/META-INF/plexus"
6093-
                                     "--output" "build/classes/META-INF/plexus/components.t.xml"
6094-
                                     ;; I don't know what these two options do, but if
6095-
                                     ;; not present, it ends with a NullPointerException.
6096-
                                     "--classes" "build/classes"
6097-
                                     "--descriptors" "build/classes"))
6098-
                     ;; Now we merge all other components from hand-written xml
6099-
                     ;; FIXME: This should be taken care of by plexus-component-metadata directly
6100-
                     (zero? (system* "sh" "-c"
6101-
                                     (string-append "(cat build/classes/META-INF/plexus/components.t.xml |"
6102-
                                                    "sed -e 's|</component-set>||' -e 's|</components>||' ; "
6103-
                                                    "cat src/main/resources/META-INF/plexus/artifact-handlers.xml |"
6104-
                                                    " sed -e 's|<?xml.*||' -e 's|<component-set>||' -e 's|<components>||'"
6105-
                                                    " -e 's|</component-set>||' -e 's|</components>||'; "
6106-
                                                    "cat src/main/resources/META-INF/plexus/components.xml |"
6107-
                                                    " sed -e 's|<?xml.*||' -e 's|<component-set>||' -e 's|<components>||'"
6108-
                                                    " -e 's|</component-set>||' -e 's|</components>||'; "
6109-
                                                    "cat src/main/resources/META-INF/plexus/default-bindings.xml |"
6110-
                                                    " sed -e 's|<?xml.*||' -e 's|<component-set>||' -e 's|<components>||' )>"
6111-
                                                    "build/classes/META-INF/plexus/components.xml"))))))
6112-
            (add-after 'generate-metadata 'rebuild
6113-
              (lambda _
6114-
                (zero? (system* "ant" "jar"))))))))
6115-
    (native-inputs
6116-
     `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
6117-
       ("java-commons-cli" ,java-commons-cli)
6118-
       ("java-plexus-cli" ,java-plexus-cli)
6119-
       ("java-jdom2" ,java-jdom2)
6120-
       ("java-qdox" ,java-qdox)
6121-
       ("maven-core-boot" ,maven-core-boot)
6122-
       ,@(package-native-inputs maven-core-boot)))))
6123-
6124-
(define-public maven-wagon-provider-api
6125-
  (package
6126-
    (name "maven-wagon-provider-api")
6127-
    (version "3.0.0")
6128-
    (source (origin
6129-
              (method url-fetch)
6130-
              (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
6131-
                                  "wagon-" version "-source-release.zip"))
6132-
              (sha256 (base32 "1qb0q4m7vmf290xp3fnfdi3pwl3hkskia5g3z2v82q1ch3y2knqv"))))
6133-
    (build-system ant-build-system)
6134-
    (arguments
6135-
     `(#:jar-name "maven-wagon-provider-api.jar"
6136-
       #:source-dir "wagon-provider-api/src/main/java"
6137-
       #:test-dir "wagon-provider-api/src/test"))
6138-
    (inputs
6139-
     `(("java-plexus-utils" ,java-plexus-utils)))
6140-
    (native-inputs
6141-
     `(("unzip" ,unzip)
6142-
       ("java-junit" ,java-junit)
6143-
       ("java-easymock" ,java-easymock)))
6144-
    (home-page "")
6145-
    (synopsis "")
6146-
    (description "")
6147-
    (license license:asl2.0)))
6148-
6149-
(define-public maven-wagon-provider-test
6150-
  (package
6151-
    (inherit maven-wagon-provider-api)
6152-
    (name "maven-wagon-provider-test")
6153-
    (arguments
6154-
     `(#:jar-name "maven-wagon-provider-test.jar"
6155-
       #:source-dir "wagon-provider-test/src/main/java"
6156-
       #:tests? #f; no tests
6157-
       #:jdk ,icedtea-8))
6158-
    (inputs
6159-
     `(("java-plexus-utils" ,java-plexus-utils)
6160-
       ("java-plexus-container-default" ,java-plexus-container-default)
6161-
       ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6162-
       ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6163-
       ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6164-
       ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
6165-
       ("java-slf4j-api" ,java-slf4j-api)
6166-
       ("java-tomcat" ,java-tomcat)
6167-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))))
6168-
6169-
(define-public maven-wagon-file
6170-
  (package
6171-
    (inherit maven-wagon-provider-api)
6172-
    (name "maven-wagon-file")
6173-
    (arguments
6174-
     `(#:jar-name "maven-wagon-file.jar"
6175-
       #:source-dir "wagon-providers/wagon-file/src/main/java"
6176-
       #:test-dir "wagon-providers/wagon-file/src/test"
6177-
       #:jdk ,icedtea-8
6178-
       #:phases
6179-
       (modify-phases %standard-phases
6180-
         (add-before 'check 'fix-paths
6181-
           (lambda _
6182-
             (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
6183-
               (("target") "build"))))
6184-
         (add-after 'build 'generate-metadata
6185-
           (lambda _
6186-
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
6187-
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
6188-
                             "--source" "wagon-providers/wagon-file/src/main/java"
6189-
                             "--output" "build/classes/META-INF/plexus/components.xml"
6190-
                             ;; I don't know what these two options do, but if
6191-
                             ;; not present, it ends with a NullPointerException.
6192-
                             "--classes" "build/classes"
6193-
                             "--descriptors" "build/classes/META-INF"))))
6194-
         (add-after 'generate-metadata 'rebuild
6195-
           (lambda _
6196-
             (zero? (system* "ant" "jar")))))))
6197-
    (inputs
6198-
     `(("java-plexus-utils" ,java-plexus-utils)
6199-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
6200-
    (native-inputs
6201-
     `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
6202-
       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
6203-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
6204-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6205-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6206-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6207-
       ("java-guava" ,java-guava)
6208-
       ("java-guice" ,java-guice)
6209-
       ("java-javax-inject" ,java-javax-inject)
6210-
       ("java-cglib" ,java-cglib)
6211-
       ("java-slf4j-api" ,java-slf4j-api)
6212-
       ("java-plexus-utils" ,java-plexus-utils)
6213-
       ("java-plexus-cli" ,java-plexus-cli)
6214-
       ("maven-plugin-api" ,maven-plugin-api)
6215-
       ("maven-plugin-annotations" ,maven-plugin-annotations)
6216-
       ("maven-core" ,maven-core)
6217-
       ("maven-model" ,maven-model)
6218-
       ("java-commons-cli" ,java-commons-cli)
6219-
       ("java-qdox" ,java-qdox)
6220-
       ("java-jdom2" ,java-jdom2)
6221-
       ("java-asm" ,java-asm)
6222-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
6223-
       ,@(package-native-inputs maven-wagon-provider-api)))))
6224-
6225-
(define-public maven-wagon-http-shared
6226-
  (package
6227-
    (inherit maven-wagon-provider-api)
6228-
    (name "maven-wagon-http-shared")
6229-
    (arguments
6230-
     `(#:jar-name "maven-wagon-http-shared.jar"
6231-
       #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
6232-
       #:test-dir "wagon-providers/wagon-http-shared/src/test"
6233-
       #:jdk ,icedtea-8
6234-
       #:phases
6235-
       (modify-phases %standard-phases
6236-
         (add-after 'build 'generate-metadata
6237-
           (lambda _
6238-
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
6239-
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
6240-
                             "--source" "wagon-providers/wagon-http-shared/src/main/java"
6241-
                             "--output" "build/classes/META-INF/plexus/components.xml"
6242-
                             ;; I don't know what these two options do, but if
6243-
                             ;; not present, it ends with a NullPointerException.
6244-
                             "--classes" "build/classes"
6245-
                             "--descriptors" "build/classes/META-INF"))))
6246-
         (add-after 'generate-metadata 'rebuild
6247-
           (lambda _
6248-
             (zero? (system* "ant" "jar")))))))
6249-
    (inputs
6250-
     `(("java-plexus-utils" ,java-plexus-utils)
6251-
       ("java-httpcomponents-client" ,java-httpcomponents-client)
6252-
       ("java-httpcomponents-core" ,java-httpcomponents-core)
6253-
       ("java-commons-io" ,java-commons-io)
6254-
       ("java-jsoup" ,java-jsoup)
6255-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
6256-
    (native-inputs
6257-
     `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
6258-
       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
6259-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
6260-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6261-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6262-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6263-
       ("java-guava" ,java-guava)
6264-
       ("java-guice" ,java-guice)
6265-
       ("java-javax-inject" ,java-javax-inject)
6266-
       ("java-cglib" ,java-cglib)
6267-
       ("java-slf4j-api" ,java-slf4j-api)
6268-
       ("java-plexus-utils" ,java-plexus-utils)
6269-
       ("java-plexus-cli" ,java-plexus-cli)
6270-
       ("maven-plugin-api" ,maven-plugin-api)
6271-
       ("maven-plugin-annotations" ,maven-plugin-annotations)
6272-
       ("maven-core" ,maven-core)
6273-
       ("maven-model" ,maven-model)
6274-
       ("java-commons-cli" ,java-commons-cli)
6275-
       ("java-qdox" ,java-qdox)
6276-
       ("java-jdom2" ,java-jdom2)
6277-
       ("java-asm" ,java-asm)
6278-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
6279-
       ,@(package-native-inputs maven-wagon-provider-api)))))
6280-
6281-
(define-public maven-wagon-tck-http
6282-
  (package
6283-
    (inherit maven-wagon-provider-api)
6284-
    (name "maven-wagon-tck-http")
6285-
    (arguments
6286-
     `(#:jar-name "maven-wagon-tck-http.jar"
6287-
       #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
6288-
       #:tests? #f; no tests
6289-
       #:jdk ,icedtea-8))
6290-
    (inputs
6291-
     `(("java-plexus-util" ,java-plexus-utils)
6292-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
6293-
       ("java-tomcat" ,java-tomcat)
6294-
       ("java-slf4j-api" ,java-slf4j-api)
6295-
       ("java-commons-codec" ,java-commons-codec)
6296-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6297-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6298-
       ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6299-
       ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
6300-
       ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6301-
       ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6302-
       ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))))
6303-
6304-
(define-public maven-wagon-http-lightweight
6305-
  (package
6306-
    (inherit maven-wagon-provider-api)
6307-
    (name "maven-wagon-http-lightweight")
6308-
    (arguments
6309-
     `(#:jar-name "maven-wagon-http-lightweight.jar"
6310-
       #:source-dir "wagon-providers/wagon-http-lightweight/src/main/java"
6311-
       #:test-dir "wagon-providers/wagon-http-lightweight/src/test"
6312-
       #:jdk ,icedtea-8
6313-
       #:phases
6314-
       (modify-phases %standard-phases
6315-
         (add-after 'build 'generate-metadata
6316-
           (lambda _
6317-
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
6318-
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
6319-
                             "--source" "wagon-providers/wagon-http-lightweight/src/main/java"
6320-
                             "--output" "build/classes/META-INF/plexus/components.xml"
6321-
                             ;; I don't know what these two options do, but if
6322-
                             ;; not present, it ends with a NullPointerException.
6323-
                             "--classes" "build/classes"
6324-
                             "--descriptors" "build/classes/META-INF"))))
6325-
         (add-after 'generate-metadata 'rebuild
6326-
           (lambda _
6327-
             (zero? (system* "ant" "jar"))))
6328-
         (add-before 'check 'fix-resource-path
6329-
           (lambda _
6330-
             (substitute* "wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagonTest.java"
6331-
               (("src/test") "wagon-providers/wagon-http-lightweight/src/test"))
6332-
             #t)))))
6333-
    (inputs
6334-
     `(("java-plexus-utils" ,java-plexus-utils)
6335-
       ("java-httpcomponents-client" ,java-httpcomponents-client)
6336-
       ("java-httpcomponents-core" ,java-httpcomponents-core)
6337-
       ("maven-wagon-http-shared" ,maven-wagon-http-shared)
6338-
       ("maven-wagon-tck-http" ,maven-wagon-tck-http)
6339-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
6340-
       ("java-commons-io" ,java-commons-io)))
6341-
    (native-inputs
6342-
     `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
6343-
       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
6344-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
6345-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6346-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6347-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6348-
       ("java-guava" ,java-guava)
6349-
       ("java-guice" ,java-guice)
6350-
       ("java-javax-inject" ,java-javax-inject)
6351-
       ("java-cglib" ,java-cglib)
6352-
       ("java-slf4j-api" ,java-slf4j-api)
6353-
       ("java-plexus-utils" ,java-plexus-utils)
6354-
       ("java-plexus-cli" ,java-plexus-cli)
6355-
       ("maven-plugin-api" ,maven-plugin-api)
6356-
       ("maven-plugin-annotations" ,maven-plugin-annotations)
6357-
       ("maven-core" ,maven-core)
6358-
       ("maven-model" ,maven-model)
6359-
       ("java-commons-cli" ,java-commons-cli)
6360-
       ("java-qdox" ,java-qdox)
6361-
       ("java-jdom2" ,java-jdom2)
6362-
       ("java-asm" ,java-asm)
6363-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
6364-
       ("java-tomcat" ,java-tomcat)
6365-
       ("java-eclispe-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6366-
       ("java-eclispe-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6367-
       ("java-eclispe-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
6368-
       ("java-eclispe-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6369-
       ("java-eclispe-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
6370-
       ("java-eclispe-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6371-
       ("java-jsoup" ,java-jsoup)
6372-
       ("java-hamcrest-core" ,java-hamcrest-core)
6373-
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
6374-
       ("java-slf4j-simple" ,java-slf4j-simple)
6375-
       ,@(package-native-inputs maven-wagon-provider-api)))))
6376-
6377-
(define-public maven-wagon-http
6378-
  (package
6379-
    (inherit maven-wagon-provider-api)
6380-
    (name "maven-wagon-http")
6381-
    (arguments
6382-
     `(#:jar-name "maven-wagon-http.jar"
6383-
       #:source-dir "wagon-providers/wagon-http/src/main/java"
6384-
       #:test-dir "wagon-providers/wagon-http/src/test"
6385-
       #:test-exclude (list
6386-
                        "**/Abstract*.java"
6387-
                        ;; FIXME: javax.net.ssl.SSLHandshakeException:
6388-
                        ;; sun.security.validator.ValidatorException:
6389-
                        ;; PKIX path building failed:
6390-
                        ;; sun.security.provider.certpath.SunCertPathBuilderException:
6391-
                        ;; unable to find valid certification path to requested target
6392-
                        "**/HttpsWagonPreemptiveTest.java"
6393-
                        "**/HttpsWagonTest.java"
6394-
                        ;; Injection errors
6395-
                        "**/TckTest.java")
6396-
       #:jdk ,icedtea-8
6397-
       #:phases
6398-
       (modify-phases %standard-phases
6399-
         (add-before 'build 'copy-resources
6400-
           (lambda _
6401-
             (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
6402-
                           "build/classes/META-INF/plexus")
6403-
             #t))
6404-
         (add-before 'check 'fix-resource-path
6405-
           (lambda _
6406-
             (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
6407-
                            "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
6408-
               (("src/test") "wagon-providers/wagon-http/src/test"))
6409-
             #t)))))
6410-
    (inputs
6411-
     `(("java-plexus-utils" ,java-plexus-utils)
6412-
       ("java-httpcomponents-client" ,java-httpcomponents-client)
6413-
       ("java-httpcomponents-core" ,java-httpcomponents-core)
6414-
       ("maven-wagon-http-shared" ,maven-wagon-http-shared)
6415-
       ("maven-wagon-tck-http" ,maven-wagon-tck-http)
6416-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
6417-
    (native-inputs
6418-
     `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
6419-
       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
6420-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
6421-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6422-
       ("java-plexus-container-default" ,java-plexus-container-default)
6423-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6424-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6425-
       ("java-guava" ,java-guava)
6426-
       ("java-guice" ,java-guice)
6427-
       ("java-inject" ,java-javax-inject)
6428-
       ("java-cglib" ,java-cglib)
6429-
       ("java-slf4j-api" ,java-slf4j-api)
6430-
       ("java-plexus-utils" ,java-plexus-utils)
6431-
       ("java-plexus-cli" ,java-plexus-cli)
6432-
       ("maven-plugin-api" ,maven-plugin-api)
6433-
       ("maven-plugin-annotations" ,maven-plugin-annotations)
6434-
       ("maven-core" ,maven-core)
6435-
       ("maven-model" ,maven-model)
6436-
       ("java-commons-cli" ,java-commons-cli)
6437-
       ("java-qdox" ,java-qdox)
6438-
       ("java-jdom2" ,java-jdom2)
6439-
       ("java-asm" ,java-asm)
6440-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
6441-
       ("java-tomcat" ,java-tomcat)
6442-
       ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6443-
       ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6444-
       ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
6445-
       ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6446-
       ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
6447-
       ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6448-
       ("java-hamcrest-core" ,java-hamcrest-core)
6449-
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
6450-
       ("java-commons-codec" ,java-commons-codec)
6451-
       ("java-commons-io" ,java-commons-io)
6452-
       ("java-jsoup" ,java-jsoup)
6453-
       ("java-slf4j-simple" ,java-slf4j-simple)
6454-
       ,@(package-native-inputs maven-wagon-provider-api)))))
6455-
6456-
(define-public maven-embedder
6457-
  (package
6458-
    (inherit maven)
6459-
    (name "maven-embedder")
6460-
    (arguments
6461-
     `(#:jar-name "maven-embedder.jar"
6462-
       #:source-dir "maven-embedder/src/main/java"
6463-
       #:test-dir "maven-embedder/src/test"
6464-
       #:test-exclude (list "**/MavenCliTest.java")
6465-
       #:jdk ,icedtea-8
6466-
       #:phases
6467-
       (modify-phases %standard-phases
6468-
         (add-before 'build 'generate-sisu-named
6469-
           (lambda _
6470-
             (mkdir-p "build/classes/META-INF/sisu")
6471-
             (chmod "sisu.sh" #o755)
6472-
             (zero? (system* "./sisu.sh" "maven-embedder/src/main/java"
6473-
                             "build/classes/META-INF/sisu/javax.inject.Named"))))
6474-
         (add-before 'build 'generate-models
6475-
           (lambda* (#:key inputs #:allow-other-keys)
6476-
             (define (modello-single-mode file version mode)
6477-
               (zero? (system* "java"
6478-
                               "org.codehaus.modello.ModelloCli"
6479-
                               file mode "maven-embedder/src/main/java" version
6480-
                               "false" "true")))
6481-
             (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
6482-
               (and
6483-
                 (modello-single-mode file "1.0.0" "java")
6484-
                 (modello-single-mode file "1.0.0" "xpp3-reader")
6485-
                 (modello-single-mode file "1.0.0" "xpp3-writer")))))
6486-
         (add-before 'check 'fix-test-paths
6487-
           (lambda _
6488-
             (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
6489-
               (("target/test-classes") "build/test-classes"))))
6490-
         (add-before 'check 'fix-compilation
6491-
           (lambda _
6492-
             ;; Tests are in the java/ subdir. Other subdirectories contain
6493-
             ;; additional test plugins, with duplicate classes, so we can't
6494-
             ;; compile them. Also, they are meant to be built with maven, to
6495-
             ;; test its build process.
6496-
             (substitute* "build.xml"
6497-
               (("srcdir=\"maven-embedder/src/test\"")
6498-
                "srcdir=\"maven-embedder/src/test/java\"")))))))
6499-
    (inputs
6500-
     `(("maven-core" ,maven-core)
6501-
       ("maven-artifact" ,maven-artifact)
6502-
       ("maven-plugin-api" ,maven-plugin-api)
6503-
       ("maven-builder-support" ,maven-builder-support)
6504-
       ("maven-model" ,maven-model)
6505-
       ("maven-model-builder" ,maven-model-builder)
6506-
       ("maven-settings" ,maven-settings)
6507-
       ("maven-settings-builder" ,maven-settings-builder)
6508-
       ("maven-shared-utils" ,maven-shared-utils)
6509-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6510-
       ("java-plexus-util" ,java-plexus-utils)
6511-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6512-
       ("java-plexus-cipher" ,java-plexus-cipher)
6513-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
6514-
       ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
6515-
       ("maven-resolevr-util" ,maven-resolver-util)
6516-
       ("maven-resolevr-api" ,maven-resolver-api)
6517-
       ("java-logback-core" ,java-logback-core)
6518-
       ("java-logback-classic" ,java-logback-classic)
6519-
       ("java-commons-cli" ,java-commons-cli)
6520-
       ("java-commons-io" ,java-commons-io)
6521-
       ("java-commons-lang3" ,java-commons-lang3)
6522-
       ("java-guava" ,java-guava)
6523-
       ("java-guice" ,java-guice)
6524-
       ("java-javax-inject" ,java-javax-inject)
6525-
       ("java-slf4j-api" ,java-slf4j-api)
6526-
       ("java-slf4j-simple" ,java-slf4j-simple)))
6527-
    (native-inputs
6528-
     `(("java-modello-core" ,java-modello-core)
6529-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
6530-
       ("java-sisu-build-api" ,java-sisu-build-api)
6531-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6532-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6533-
       ("java-cglib" ,java-cglib)
6534-
       ("java-asm" ,java-asm)
6535-
       ("java-modello-plugins-java" ,java-modello-plugins-java)
6536-
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
6537-
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
6538-
       ;; tests
6539-
       ("java-junit" ,java-junit)
6540-
       ("java-hamcrest-core" ,java-hamcrest-core)))))
6541-
6542-
(define-public maven-resolver-api
6543-
  (package
6544-
    (name "maven-resolver-api")
6545-
    (version "1.1.0")
6546-
    (source (origin
6547-
              (method url-fetch)
6548-
              (uri (string-append "https://github.com/apache/maven-resolver/"
6549-
                                  "archive/maven-resolver-" version ".tar.gz"))
6550-
              (sha256
6551-
               (base32
6552-
                "1kvb64f6anmn93vdyb4s90189jrrm31agrp2gf0n9njwjp5vcddz"))))
6553-
    (build-system ant-build-system)
6554-
    (arguments
6555-
     `(#:jar-name "maven-resolver-api.jar"
6556-
       #:source-dir "maven-resolver-api/src/main/java"
6557-
       #:test-dir "maven-resolver-api/src/test"))
6558-
    (native-inputs
6559-
     `(("java-junit" ,java-junit)
6560-
       ("java-hamcrest-core" ,java-hamcrest-core)))
6561-
    (home-page "https://github.com/apache/maven-resolver")
6562-
    (synopsis "")
6563-
    (description "")
6564-
    (license license:asl2.0)))
6565-
6566-
(define-public maven-resolver-spi
6567-
  (package
6568-
    (inherit maven-resolver-api)
6569-
    (name "maven-resolver-spi")
6570-
    (arguments
6571-
     `(#:jar-name "maven-resolver-spi.jar"
6572-
       #:source-dir "maven-resolver-spi/src/main/java"
6573-
       #:test-dir "maven-resolver-spi/src/test"
6574-
       #:jdk ,icedtea-8))
6575-
    (inputs
6576-
     `(("maven-resolver-api" ,maven-resolver-api)))))
6577-
6578-
(define-public maven-resolver-test-util
6579-
  (package
6580-
    (inherit maven-resolver-api)
6581-
    (name "maven-resolver-test-util")
6582-
    (arguments
6583-
     `(#:jar-name "maven-resolver-test-util.jar"
6584-
       #:source-dir "maven-resolver-test-util/src/main/java"
6585-
       #:test-dir "maven-resolver-test-util/src/test"
6586-
       #:jdk ,icedtea-8))
6587-
    (inputs
6588-
     `(("maven-resolver-api" ,maven-resolver-api)
6589-
       ("maven-resolver-spi" ,maven-resolver-spi)))))
6590-
6591-
(define-public maven-resolver-util
6592-
  (package
6593-
    (inherit maven-resolver-api)
6594-
    (name "maven-resolver-util")
6595-
    (arguments
6596-
     `(#:jar-name "maven-resolver-util.jar"
6597-
       #:source-dir "maven-resolver-util/src/main/java"
6598-
       #:test-dir "maven-resolver-util/src/test"
6599-
       #:jdk ,icedtea-8))
6600-
    (inputs
6601-
     `(("maven-resolver-api" ,maven-resolver-api)))
6602-
    (native-inputs
6603-
     `(("java-junit" ,java-junit)
6604-
       ("java-hamcrest-core" ,java-hamcrest-core)
6605-
       ("maven-resolver-test-util" ,maven-resolver-test-util)))))
6606-
6607-
(define-public maven-resolver-impl
6608-
  (package
6609-
    (inherit maven-resolver-api)
6610-
    (name "maven-resolver-impl")
6611-
    (arguments
6612-
     `(#:jar-name "maven-resolver-impl.jar"
6613-
       #:source-dir "maven-resolver-impl/src/main/java"
6614-
       #:test-dir "maven-resolver-impl/src/test"
6615-
       #:jdk ,icedtea-8
6616-
       #:phases
6617-
       (modify-phases %standard-phases
6618-
         (add-before 'build 'generate-sisu
6619-
           (lambda _
6620-
             (mkdir-p "build/classes/META-INF/sisu")
6621-
             (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
6622-
               (lambda _
6623-
                 (display
6624-
                   (string-append
6625-
                     "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
6626-
                     "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
6627-
                     "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
6628-
                     "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n"
6629-
                     "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
6630-
                     "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
6631-
                     "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
6632-
                     "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
6633-
                     "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
6634-
                     "org.eclipse.aether.internal.impl.DefaultDeployer\n"
6635-
                     "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
6636-
                     "org.eclipse.aether.internal.impl.DefaultInstaller\n"
6637-
                     "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
6638-
                     "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
6639-
                     "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
6640-
                     "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
6641-
                     "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
6642-
                     "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
6643-
                     "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
6644-
                     "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
6645-
                     "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
6646-
                     "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
6647-
                     "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n")))))))))
6648-
    (inputs
6649-
     `(("maven-resolver-api" ,maven-resolver-api)
6650-
       ("maven-resolver-spi" ,maven-resolver-spi)
6651-
       ("maven-resolver-util" ,maven-resolver-util)
6652-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6653-
       ("java-javax-inject" ,java-javax-inject)
6654-
       ("java-guice" ,java-guice)
6655-
       ("java-guava" ,java-guava)
6656-
       ("java-cglib" ,java-cglib)
6657-
       ("java-asm" ,java-asm)
6658-
       ("jajva-aopalliance" ,java-aopalliance)
6659-
       ("java-slf4j-api" ,java-slf4j-api)))
6660-
    (native-inputs
6661-
     `(("java-junit" ,java-junit)
6662-
       ("java-hamcrest-core" ,java-hamcrest-core)
6663-
       ("maven-resolver-test-util" ,maven-resolver-test-util)))))
6664-
6665-
(define-public maven-resolver-connector-basic
6666-
  (package
6667-
    (inherit maven-resolver-api)
6668-
    (name "maven-resolver-connector-basic")
6669-
    (arguments
6670-
     `(#:jar-name "maven-resolver-connector-basic.jar"
6671-
       #:source-dir "maven-resolver-connector-basic/src/main/java"
6672-
       #:test-dir "maven-resolver-connector-basic/src/test"
6673-
       #:jdk ,icedtea-8
6674-
       #:phases
6675-
       (modify-phases %standard-phases
6676-
         (add-before 'build 'generate-sisu
6677-
           (lambda _
6678-
             (mkdir-p "build/classes/META-INF/sisu")
6679-
             (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
6680-
               (lambda _
6681-
                 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n"))))))))
6682-
    (inputs
6683-
     `(("maven-resolver-api" ,maven-resolver-api)
6684-
       ("maven-resolver-spi" ,maven-resolver-spi)
6685-
       ("maven-resolver-util" ,maven-resolver-util)
6686-
       ("java-javax-inject" ,java-javax-inject)))
6687-
    (native-inputs
6688-
     `(("java-junit" ,java-junit)
6689-
       ("java-hamcrest-core" ,java-hamcrest-core)
6690-
       ("maven-resolver-test-util" ,maven-resolver-test-util)))))
6691-
6692-
(define-public maven-resolver-transport-wagon
6693-
  (package
6694-
    (inherit maven-resolver-api)
6695-
    (name "maven-resolver-transport-wagon")
6696-
    (arguments
6697-
     `(#:jar-name "maven-resolver-transport-wagon.jar"
6698-
       #:source-dir "maven-resolver-transport-wagon/src/main/java"
6699-
       #:test-dir "maven-resolver-transport-wagon/src/test"
6700-
       #:jdk ,icedtea-8
6701-
       #:phases
6702-
       (modify-phases %standard-phases
6703-
         (add-before 'build 'generate-sisu
6704-
           (lambda _
6705-
             (mkdir-p "build/classes/META-INF/sisu")
6706-
             (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
6707-
               (lambda _
6708-
                 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
6709-
             #t))
6710-
         (add-before 'build 'generate-components.xml
6711-
           (lambda _
6712-
             (mkdir-p "build/classes/META-INF/plexus")
6713-
             (with-output-to-file "build/classes/META-INF/plexus/components.xml"
6714-
               (lambda _
6715-
                 (display
6716-
                   (string-append
6717-
                     "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
6718-
                     "<component-set>\n"
6719-
                     "  <components>\n"
6720-
                     "    <component>\n"
6721-
                     "      <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>\n"
6722-
                     "      <role-hint>plexus</role-hint>\n"
6723-
                     "      <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>\n"
6724-
                     "      <description />\n"
6725-
                     "      <isolated-realm>false</isolated-realm>\n"
6726-
                     "      <requirements>\n"
6727-
                     "        <requirement>\n"
6728-
                     "          <role>org.codehaus.plexus.PlexusContainer</role>\n"
6729-
                     "          <role-hint />\n"
6730-
                     "          <field-name>container</field-name>\n"
6731-
                     "        </requirement>\n"
6732-
                     "      </requirements>\n"
6733-
                     "    </component>\n"
6734-
                     "    <component>\n"
6735-
                     "      <role>org.eclipse.aether.transport.wagon.WagonProvider</role>\n"
6736-
                     "      <role-hint>plexus</role-hint>\n"
6737-
                     "      <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>\n"
6738-
                     "      <description />\n"
6739-
                     "      <isolated-realm>false</isolated-realm>\n"
6740-
                     "      <requirements>\n"
6741-
                     "        <requirement>\n"
6742-
                     "          <role>org.codehaus.plexus.PlexusContainer</role>\n"
6743-
                     "          <role-hint />\n"
6744-
                     "          <field-name>container</field-name>\n"
6745-
                     "        </requirement>\n"
6746-
                     "      </requirements>\n"
6747-
                     "    </component>\n"
6748-
                     "  </components>\n"
6749-
                     "</component-set>\n"))))
6750-
             #t)))))
6751-
    (inputs
6752-
     `(("maven-resolver-api" ,maven-resolver-api)
6753-
       ("maven-resolver-spi" ,maven-resolver-spi)
6754-
       ("maven-resolver-util" ,maven-resolver-util)
6755-
       ("java-javax-inject" ,java-javax-inject)
6756-
       ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
6757-
       ("java-plexus-component-annotation" ,java-plexus-component-annotations)
6758-
       ("java-plexus-classworld" ,java-plexus-classworlds)
6759-
       ("java-plexus-plexus-util" ,java-plexus-utils)
6760-
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
6761-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
6762-
    (native-inputs
6763-
     `(("java-junit" ,java-junit)
6764-
       ("java-hamcrest-core" ,java-hamcrest-core)
6765-
       ("maven-resolver-test-util" ,maven-resolver-test-util)
6766-
       ("java-guava" ,java-guava)
6767-
       ("java-cglib" ,java-cglib)
6768-
       ("java-asm" ,java-asm)
6769-
       ("java-aopalliance" ,java-aopalliance)
6770-
       ("java-guice" ,java-guice)))))
6771-
6772-
(define-public maven-slf4j-provider
6773-
  (package
6774-
    (inherit maven)
6775-
    (name "maven-slf4j-provider")
6776-
    (arguments
6777-
     `(#:jar-name "maven-slf4j-provider"
6778-
       #:source-dir "maven-slf4j-provider/src/main/java"
6779-
       #:jdk ,icedtea-8
6780-
       #:tests? #f; no tests
6781-
       #:phases
6782-
       (modify-phases %standard-phases
6783-
         (add-before 'build 'generate-simple-sources
6784-
           (lambda* (#:key inputs #:allow-other-keys)
6785-
             (mkdir-p "maven-slf4j-provider/target/generated-sources")
6786-
             (with-directory-excursion "maven-slf4j-provider/target/generated-sources"
6787-
               (system* "tar" "xf" (assoc-ref inputs "java-slf4j-simple")))
6788-
             (with-directory-excursion "maven-slf4j-provider/"
6789-
               (zero? (system* "groovy"
6790-
                               "src/main/script/patch-slf4j-simple.groovy"))))))))
6199+
     `(#:jar-name "jsch-agentproxy-usocket-nc.jar"
6200+
       #:source-dir "jsch-agent-proxy-usocket-nc/src/main/java"
6201+
       #:tests? #f)); no tests
67916202
    (inputs
6792-
     `(("java-slf4j-api" ,java-slf4j-api)
6793-
       ("java-slf4j-simple" ,(package-source java-slf4j-simple))
6794-
       ("maven-shared-utils" ,maven-shared-utils)))
6795-
    (native-inputs
6796-
     `(("groovy" ,groovy)))))
6203+
     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)))))
67976204
6798-
(define-public maven-compat
6205+
(define-public java-jsch-agentproxy-connector-factory
67996206
  (package
6800-
    (inherit maven)
6801-
    (name "maven-compat")
6207+
    (inherit java-jsch-agentproxy-core)
6208+
    (name "java-jsch-agentproxy-connector-factory")
68026209
    (arguments
6803-
     `(#:jar-name "maven-compat.jar"
6804-
       #:source-dir "src/main/java"
6805-
       #:jdk ,icedtea-8
6806-
       #:test-dir "src/test"
6807-
       #:phases
6808-
       (modify-phases %standard-phases
6809-
         ;; Tests assume we're in this directory
6810-
         (add-before 'configure 'chdir
6811-
           (lambda _
6812-
             (chdir "maven-compat")))
6813-
         (add-before 'build 'generate-models
6814-
           (lambda* (#:key inputs #:allow-other-keys)
6815-
             (define (modello-single-mode file version mode)
6816-
               (zero? (system* "java"
6817-
                               "org.codehaus.modello.ModelloCli"
6818-
                               file mode "src/main/java" version
6819-
                               "false" "true")))
6820-
             (let ((file "src/main/mdo/profiles.mdo"))
6821-
               (and
6822-
                 (modello-single-mode file "1.0.0" "java")
6823-
                 (modello-single-mode file "1.0.0" "xpp3-reader")
6824-
                 (modello-single-mode file "1.0.0" "xpp3-writer")))
6825-
             (let ((file "src/main/mdo/paramdoc.mdo"))
6826-
               (and
6827-
                 (modello-single-mode file "1.0.0" "java")
6828-
                 (modello-single-mode file "1.0.0" "xpp3-reader")
6829-
                 (modello-single-mode file "1.0.0" "xpp3-writer")))))
6830-
         (add-after 'build 'generate-metadata
6831-
           (lambda _
6832-
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
6833-
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
6834-
                             "--source" "src/main/java"
6835-
                             "--output" "build/classes/META-INF/plexus/components.xml"
6836-
                             ;; I don't know what these two options do, but if
6837-
                             ;; not present, it ends with a NullPointerException.
6838-
                             "--classes" "build/classes"
6839-
                             "--descriptors" "build/classes/META-INF"))))
6840-
         (add-before 'check 'build-tests
6841-
          (lambda _
6842-
            (zero? (system* "ant" "compile-tests"))))
6843-
         (add-after 'build-tests 'generate-test-metadata
6844-
           (lambda _
6845-
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
6846-
                                                         ":build/classes"
6847-
                                                         ":build/test-classes")
6848-
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
6849-
                             "--source" "src/test/java"
6850-
                             "--output" "build/test-classes/META-INF/plexus/components.xml"
6851-
                             ;; I don't know what these two options do, but if
6852-
                             ;; not present, it ends with a NullPointerException.
6853-
                             "--classes" "build/test-classes"
6854-
                             "--descriptors" "build/test-classes/META-INF"))))
6855-
         (add-after 'generate-metadata 'rebuild
6856-
           (lambda _
6857-
             (zero? (system* "ant" "jar")))))))
6210+
     `(#:jar-name "jsch-agentproxy-connector-factory.jar"
6211+
       #:source-dir "jsch-agent-proxy-connector-factory/src/main/java"
6212+
       #:tests? #f)); no tests
68586213
    (inputs
6859-
     `(("maven-artifact" ,maven-artifact)
6860-
       ("maven-repository-metadata" ,maven-repository-metadata)
6861-
       ("maven-builder-support" ,maven-builder-support)
6862-
       ("maven-model" ,maven-model)
6863-
       ("maven-model-builder" ,maven-model-builder)
6864-
       ("maven-settings" ,maven-settings)
6865-
       ("maven-settings-builder" ,maven-settings-builder)
6866-
       ("maven-core" ,maven-core)
6867-
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
6868-
       ("maven-wagon-file" ,maven-wagon-file)
6869-
       ("maven-resolver-api" ,maven-resolver-api)
6870-
       ("maven-resolver-util" ,maven-resolver-util)
6871-
       ("maven-resolver-spi" ,maven-resolver-spi)
6872-
       ("java-plexus-interpolation" ,java-plexus-interpolation)))
6873-
    (native-inputs
6874-
     `(("java-modello-core" ,java-modello-core)
6875-
       ("java-plexus-utils" ,java-plexus-utils)
6876-
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
6877-
       ("java-plexus-classworlds" ,java-plexus-classworlds)
6878-
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
6879-
       ("java-sisu-build-api" ,java-sisu-build-api)
6880-
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
6881-
       ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
6882-
       ("java-javax-inject" ,java-javax-inject)
6883-
       ("java-guice" ,java-guice)
6884-
       ("java-guava" ,java-guava)
6885-
       ("java-cglib" ,java-cglib)
6886-
       ("java-asm" ,java-asm)
6887-
       ("java-modello-plugins-java" ,java-modello-plugins-java)
6888-
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
6889-
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
6890-
       ;; metadata
6891-
       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
6892-
       ("java-commons-cli" ,java-commons-cli)
6893-
       ("java-plexus-cli" ,java-plexus-cli)
6894-
       ("java-jdom2" ,java-jdom2)
6895-
       ("maven-plugin-api" ,maven-plugin-api)
6896-
       ("java-qdox" ,java-qdox)
6897-
       ;; tests
6898-
       ("java-plexus-cipher" ,java-plexus-cipher)
6899-
       ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
6900-
       ("java-jsr250", java-jsr250)
6901-
       ("java-cdi-api" ,java-cdi-api)
6902-
       ("java-junit" ,java-junit)
6903-
       ("maven-resolver-impl" ,maven-resolver-impl)
6904-
       ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
6905-
       ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
6906-
       ("java-commons-lang3" ,java-commons-lang3)
6907-
       ("java-aop" ,java-aopalliance)
6908-
       ("maven-resolver-provider" ,maven-resolver-provider)
6909-
       ("java-slf4j-api" ,java-slf4j-api)
6910-
       ("java-slf4j-simple" ,java-slf4j-simple)
6911-
       ,@(package-inputs java-slf4j-api)))))
6214+
     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
6215+
       ("java-jsch-agentproxy-sshagent" ,java-jsch-agentproxy-sshagent)
6216+
       ("java-jsch-agentproxy-usocket-jna" ,java-jsch-agentproxy-usocket-jna)
6217+
       ("java-jsch-agentproxy-pageant" ,java-jsch-agentproxy-pageant)
6218+
       ("java-jsch-agentproxy-usocket-nc" ,java-jsch-agentproxy-usocket-nc)))))
69126219
6913-
(define-public maven-plugin-annotations
6220+
(define-public java-jsch-agentproxy-jsch
69146221
  (package
6915-
    (name "maven-plugin-annotations")
6916-
    (version "3.5")
6917-
    (source (origin
6918-
              (method url-fetch)
6919-
              (uri (string-append "https://archive.apache.org/dist/maven/"
6920-
                                  "plugin-tools/maven-plugin-tools-" version
6921-
                                  "-source-release.zip"))
6922-
              (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
6923-
    (build-system ant-build-system)
6222+
    (inherit java-jsch-agentproxy-core)
6223+
    (name "java-jsch-agentproxy-jsch")
69246224
    (arguments
6925-
     `(#:jar-name "maven-plugin-annotations.jar"
6926-
       #:source-dir "maven-plugin-annotations/src/main/java"
6927-
       #:tests? #f))
6225+
     `(#:jar-name "jsch-agentproxy-jsch.jar"
6226+
       #:source-dir "jsch-agent-proxy-jsch/src/main/java"
6227+
       #:tests? #f)); no tests
69286228
    (inputs
6929-
     `(("maven-artifact" ,maven-artifact)))
6930-
    (native-inputs
6931-
     `(("unzip" ,unzip)))
6932-
    (home-page "")
6933-
    (synopsis "")
6934-
    (description "")
6935-
    (license license:asl2.0)))
6936-
6937-
(define-public kotlin
6938-
  (package
6939-
    (name "kotlin")
6940-
    (version "1.1.61")
6941-
    (source (origin
6942-
              (method url-fetch)
6943-
              (uri (string-append "https://github.com/JetBrains/kotlin/archive/v"
6944-
                                  version ".tar.gz"))
6945-
              (file-name (string-append name "-" version ".tar.gz"))
6946-
              (sha256
6947-
               (base32
6948-
                "0pj7x0b93r85cc3wj1lj1ydf48rikdbv0hq6wfxs059z140icq0a"))))
6949-
    (build-system ant-build-system)
6950-
    (home-page "https://kotlinlang.org/")
6951-
    (synopsis "Statically typed programming language")
6952-
    (description "")
6953-
    ;; described in license/README.md
6954-
    ;; Kotlin is under asl2.0, third-party libraries have different licenses
6955-
    (license license:asl2.0)))
6229+
     `(("java-jsch" ,java-jsch)
6230+
       ("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)))))