guix-more/more/packages/gradle.scm

gradle.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
3
;;;
4
;;; This file is part of GNU Guix.
5
;;;
6
;;; GNU Guix is free software; you can redistribute it and/or modify it
7
;;; under the terms of the GNU General Public License as published by
8
;;; the Free Software Foundation; either version 3 of the License, or (at
9
;;; your option) any later version.
10
;;;
11
;;; GNU Guix is distributed in the hope that it will be useful, but
12
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;;; GNU General Public License for more details.
15
;;;
16
;;; You should have received a copy of the GNU General Public License
17
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18
19
(define-module (more packages gradle)
20
  #:use-module ((guix licenses) #:prefix license:)
21
  #:use-module (gnu packages)
22
  #:use-module (guix packages)
23
  #:use-module (guix download)
24
  #:use-module (guix utils)
25
  #:use-module (guix build-system ant)
26
  #:use-module (gnu packages java)
27
  #:use-module (more packages groovy)
28
  #:use-module (more packages java))
29
30
(define (gradle-subproject subproject)
31
  (package
32
    (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"))))
42
    (version "4.4.0")
43
    (source (origin
44
              (method url-fetch)
45
              (uri (string-append "https://github.com/gradle/gradle/archive/v"
46
                                  version ".tar.gz"))
47
              (file-name (string-append "gradle-" version ".tar.gz"))
48
              (sha256
49
               (base32
50
                "026232dy578nl8gzj1nfc9r25p8alcwdbwb9b8s3bw4krxmy6saz"))))
51
    (build-system ant-build-system)
52
    (arguments
53
     `(#:jar-name (string-append "gradle-" ,subproject ".jar")
54
       #:source-dir (string-append "subprojects/" ,subproject "/src/main/java")
55
       #:jdk ,icedtea-8
56
       #:tests? #f;; Ignore tests for now
57
       #:test-dir (string-append "subprojects/" ,subproject "/src/test")))
58
    (inputs '())
59
    (native-inputs '())
60
    (home-page "")
61
    (synopsis "Build system")
62
    (description "Build system")
63
    (license license:asl2.0)))
64
65
(define (gradle-groovy-subproject subproject)
66
  (let ((base (gradle-subproject subproject)))
67
    (package
68
      (inherit base)
69
      (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\" />")))))))
91
      (native-inputs
92
       `(("groovy" ,groovy)
93
         ,@(package-inputs groovy))))))
94
95
(define-public gradle-internal-testing
96
  (package
97
    (inherit (gradle-groovy-subproject "internal-testing"))
98
    (inputs
99
     `(("gradle-native" ,gradle-native)
100
       ("gradle-base-services" ,gradle-base-services)
101
       ("groovy-xml" ,groovy-xml)
102
       ("java-commons-io" ,java-commons-io)
103
       ("java-commons-lang" ,java-commons-lang)
104
       ("java-guava" ,java-guava)
105
       ("java-hamcrest-all" ,java-hamcrest-all)
106
       ("java-jmock" ,java-jmock)
107
       ("java-jmock-junit4" ,java-jmock-junit4)
108
       ("java-jmock-legacy" ,java-jmock-legacy)
109
       ("java-jsoup" ,java-jsoup)
110
       ("java-junit" ,java-junit)
111
       ("java-slf4j-api" ,java-slf4j-api)
112
       ("java-spockframework-core" ,java-spockframework-core)))))
113
114
;; Cycle with internal-testing
115
(define-public gradle-base-services
116
  (let ((base (gradle-subproject "base-services")))
117
    (package
118
      (inherit base)
119
      (inputs
120
       `(("java-guava" ,java-guava)
121
         ("java-slf4j-api" ,java-slf4j-api)
122
         ("java-commons-lang" ,java-commons-lang)
123
         ("java-commons-io" ,java-commons-io)
124
         ("java-jsr305" ,java-jsr305)
125
         ("java-jcip-annotations" ,java-jcip-annotations)))
126
    (native-inputs
127
     `(("java-junit" ,java-junit)
128
       ("java-hamcrest-core" ,java-hamcrest-core))))))
129
130
(define-public gradle-base-services-groovy
131
  (package
132
    (inherit (gradle-subproject "base-services-groovy"))
133
    (inputs
134
     `(("gradle-base-services" ,gradle-base-services)
135
       ("groovy-bootstrap" ,groovy-bootstrap)
136
       ("java-asm" ,java-asm)
137
       ("java-guava" ,java-guava)
138
       ("java-jsr305" ,java-jsr305)))))
139
140
(define-public gradle-build-option
141
  (package
142
    (inherit (gradle-subproject "build-option"))
143
    (inputs
144
     `(("gradle-cli" ,gradle-cli)
145
       ("java-commons-lang" ,java-commons-lang)
146
       ("java-jsr305" ,java-jsr305)))))
147
148
(define-public gradle-cli
149
  (package
150
    (inherit (gradle-subproject "cli"))))
151
152
(define-public gradle-native
153
  (package
154
    (inherit (gradle-subproject "native"))
155
    (inputs
156
     `(("gradle-base-services" ,gradle-base-services)
157
       ("java-commons-io" ,java-commons-io)
158
       ("java-guava" ,java-guava)
159
       ("java-jansi" ,java-jansi)
160
       ("java-jsr305" ,java-jsr305)
161
       ("java-native-platform" ,java-native-platform)
162
       ("java-slf4j-api" ,java-slf4j-api)))))
163
164
(define-public gradle-messaging
165
  (let ((base  (gradle-subproject "messaging")))
166
    (package
167
      (inherit base)
168
      (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)))
179
      (inputs
180
       `(("gradle-base-services" ,gradle-base-services)
181
         ("gradle-base-services-groovy" ,gradle-base-services-groovy)
182
         ("java-commons-lang" ,java-commons-lang)
183
         ("java-guava" ,java-guava)
184
         ("java-jsr305" ,java-jsr305)
185
         ("java-kryo" ,java-kryo)
186
         ("java-slf4j-api" ,java-slf4j-api))))))
187
188
(define-public gradle-persistent-cache
189
  (package
190
    (inherit (gradle-subproject "persistent-cache"))
191
    (inputs
192
     `(("gradle-base-services" ,gradle-base-services)
193
       ("gradle-messaging" ,gradle-messaging)
194
       ("gradle-native" ,gradle-native)
195
       ("java-commons-collections" ,java-commons-collections)
196
       ("java-commons-io" ,java-commons-io)
197
       ("java-commons-lang" ,java-commons-lang)
198
       ("java-guava" ,java-guava)
199
       ("java-jcip-annotations" ,java-jcip-annotations)
200
       ("java-jsr305" ,java-jsr305)
201
       ("java-slf4j-api" ,java-slf4j-api)))))
202
203
(define-public gradle-logging
204
  (package
205
    (inherit (gradle-subproject "logging"))
206
    (inputs
207
     `(("gradle-base-services" ,gradle-base-services)
208
       ("gradle-build-option" ,gradle-build-option)
209
       ("gradle-cli" ,gradle-cli)
210
       ("gradle-messaging" ,gradle-messaging)
211
       ("gradle-native" ,gradle-native)
212
       ("java-commons-lang" ,java-commons-lang)
213
       ("java-guava" ,java-guava)
214
       ("java-jansi" ,java-jansi)
215
       ("java-jansi-native" ,java-jansi-native)
216
       ("java-jcip-annotations" ,java-jcip-annotations)
217
       ("java-jsr305" ,java-jsr305)
218
       ("java-slf4j-api" ,java-slf4j-api)
219
       ("java-jul-to-slf4j" ,java-jul-to-slf4j)))))
220
221
(define-public gradle-model-core
222
  (package
223
    (inherit (gradle-subproject "model-core"))
224
    (inputs
225
     `(("gradle-base-services" ,gradle-base-services)
226
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
227
       ("groovy-bootstrap" ,groovy-bootstrap)
228
       ("java-asm" ,java-asm)
229
       ("java-commons-lang" ,java-commons-lang)
230
       ("java-guava" ,java-guava)
231
       ("java-jcip-annotations" ,java-jcip-annotations)
232
       ("java-jsr305" ,java-jsr305)
233
       ("java-slf4j-api" ,java-slf4j-api)))))
234
235
(define-public gradle-resources
236
  (package
237
    (inherit (gradle-subproject "resources"))
238
    (inputs
239
     `(("gradle-base-services" ,gradle-base-services)
240
       ("gradle-model-core" ,gradle-model-core)
241
       ("gradle-native" ,gradle-native)
242
       ("java-commons-io" ,java-commons-io)
243
       ("java-guava" ,java-guava)
244
       ("java-jsr305" ,java-jsr305)))))
245
246
(define-public gradle-build-cache
247
  (package
248
    (inherit (gradle-subproject "build-cache"))
249
    (inputs
250
     `(("gradle-base-services" ,gradle-base-services)
251
       ("gradle-logging" ,gradle-logging)
252
       ("gradle-persistent-cache" ,gradle-persistent-cache)
253
       ("gradle-resources" ,gradle-resources)
254
       ("java-commons-io" ,java-commons-io)
255
       ("java-guava" ,java-guava)
256
       ("java-javax-inject" ,java-javax-inject)
257
       ("java-jsr305" ,java-jsr305)
258
       ("java-slf4j-api" ,java-slf4j-api)))))
259
260
(define-public gradle-process-services
261
  (package
262
    (inherit (gradle-subproject "process-services"))
263
    (inputs
264
     `(("gradle-base-services" ,gradle-base-services)
265
       ("gradle-messaging" ,gradle-messaging)
266
       ("gradle-native" ,gradle-native)
267
       ("java-guava" ,java-guava)
268
       ("java-jsr305" ,java-jsr305)
269
       ("java-native-platform" ,java-native-platform)
270
       ("java-slf4j-api" ,java-slf4j-api)))))
271
272
(define-public gradle-core-api
273
  (package
274
    (inherit (gradle-subproject "core-api"))
275
    (inputs
276
     `(("gradle-base-services" ,gradle-base-services)
277
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
278
       ("gradle-build-cache" ,gradle-build-cache)
279
       ("gradle-logging" ,gradle-logging)
280
       ("gradle-model-core" ,gradle-model-core)
281
       ("gradle-persistent-cache" ,gradle-persistent-cache)
282
       ("gradle-process-services" ,gradle-process-services)
283
       ("gradle-resources" ,gradle-resources)
284
       ("groovy-ant" ,groovy-ant)
285
       ("groovy-bootstrap" ,groovy-bootstrap)
286
       ("java-commons-lang" ,java-commons-lang)
287
       ("java-guava" ,java-guava)
288
       ("java-jsr305" ,java-jsr305)
289
       ("java-slf4j-api" ,java-slf4j-api)))))
290
291
(define-public gradle-model-groovy
292
  (package
293
    (inherit (gradle-subproject "model-groovy"))
294
    (inputs
295
     `(("gradle-base-services" ,gradle-base-services)
296
       ("gradle-base-services-groovy" ,gradle-base-services-groovy)
297
       ("gradle-model-core" ,gradle-model-core)
298
       ("groovy-bootstrap" ,groovy-bootstrap)
299
       ("java-asm" ,java-asm)
300
       ("java-guava" ,java-guava)
301
       ("java-jcip-annotations" ,java-jcip-annotations)
302
       ("java-jsr305" ,java-jsr305)))))
303
304
(define-public gradle-jvm-services
305
  (package
306
    (inherit (gradle-subproject "jvm-services"))
307
    (inputs
308
     `(("gradle-base-services" ,gradle-base-services)
309
       ("gradle-process-services" ,gradle-process-services)))))
310
311
(define java-guava-for-gradle
312
  (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
326
327
(define-public gradle-core
328
  (package
329
    (inherit (gradle-subproject "core"))
330
    (inputs
331
     `(("gradle-base-services" ,gradle-base-services)
332
       ("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)
336
       ("gradle-core-api" ,gradle-core-api)
337
       ("gradle-jvm-services" ,gradle-jvm-services)
338
       ("gradle-logging" ,gradle-logging)
339
       ("gradle-messaging" ,gradle-messaging)
340
       ("gradle-model-core" ,gradle-model-core)
341
       ("gradle-model-groovy" ,gradle-model-groovy)
342
       ("gradle-native" ,gradle-native)
343
       ("gradle-persistent-cache" ,gradle-persistent-cache)
344
       ("gradle-process-services" ,gradle-process-services)
345
       ("gradle-resources" ,gradle-resources)
346
       ("groovy-ant" ,groovy-ant)
347
       ("groovy-bootstrap" ,groovy-bootstrap)
348
       ("groovy-json" ,groovy-json)
349
       ("groovy-templates" ,groovy-templates)
350
       ("groovy-xml" ,groovy-xml)
351
       ("java-asm-6" ,java-asm-6)
352
       ("java-commons-collections" ,java-commons-collections)
353
       ("java-commons-compress" ,java-commons-compress)
354
       ("java-commons-io" ,java-commons-io)
355
       ("java-commons-lang" ,java-commons-lang)
356
       ("java-guava-for-gradle" ,java-guava-for-gradle)
357
       ("java-javax-inject" ,java-javax-inject)
358
       ("java-jcip-annotations" ,java-jcip-annotations)
359
       ("java-jsr305" ,java-jsr305)
360
       ("java-native-platform" ,java-native-platform)
361
       ("java-slf4j-api" ,java-slf4j-api)
362
       ("groovy" ,groovy)))))
363