groovy.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 groovy) |
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 (gnu packages web) |
28 | #:use-module (gnu packages xml) |
29 | #:use-module (more packages java)) |
30 | |
31 | ;; This package contains the java bootstrap that is used to build groovy submodules. |
32 | (define-public groovy-java-bootstrap |
33 | (package |
34 | (name "groovy-java-bootstrap") |
35 | (version "2.4.13") |
36 | (source (origin |
37 | (method url-fetch) |
38 | (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_" |
39 | "2_4_13.tar.gz")) |
40 | (file-name (string-append name "-" version ".tar.gz")) |
41 | (sha256 |
42 | (base32 |
43 | "0qf1l029ilhnldmd194aybk3053apya3vfd33d3m80n2zh2wnbc1")) |
44 | (patches |
45 | (search-patches |
46 | "groovy-Add-exceptionutilsgenerator.patch")))) |
47 | (build-system ant-build-system) |
48 | (arguments |
49 | `(#:jar-name "groovy.jar" |
50 | #:source-dir "src/main:subprojects/groovy-test/src/main/java" |
51 | #:test-dir "src/test" |
52 | #:tests? #f |
53 | ;; Reference to plus is ambiguous |
54 | ;#:jdk ,icedtea-8 |
55 | #:main-class "groovy.ui.GroovyMain" |
56 | #:phases |
57 | (modify-phases %standard-phases |
58 | (add-before 'build 'generate-parser |
59 | (lambda _ |
60 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" |
61 | (zero? (system* "antlr" "java.g"))) |
62 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr" |
63 | (mkdir "parser") |
64 | (with-directory-excursion "parser" |
65 | (zero? (system* "antlr" "../groovy.g")))))) |
66 | (add-before 'build 'generate-exception-utils |
67 | (lambda _ |
68 | (system* "javac" "-cp" (getenv "CLASSPATH") |
69 | "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") |
70 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") |
71 | ":config/ant/src") |
72 | "org.codehaus.groovy.ExceptionUtilsGenerator" |
73 | "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class"))))))) |
74 | (native-inputs |
75 | `(("java-junit" ,java-junit) |
76 | ("java-hamcrest-core" ,java-hamcrest-core) |
77 | ("antlr2" ,antlr2) |
78 | ("java-jmock-1" ,java-jmock-1) |
79 | ("java-xmlunit-legacy" ,java-xmlunit-legacy))) |
80 | (inputs |
81 | `(("java-commons-cli" ,java-commons-cli) |
82 | ("java-asm" ,java-asm) |
83 | ("java-classpathx-servletapi" ,java-classpathx-servletapi) |
84 | ("java-xstream" ,java-xstream) |
85 | ("java-jansi" ,java-jansi) |
86 | ("java-jline-2" ,java-jline-2))) |
87 | (home-page "") |
88 | (synopsis "") |
89 | (description "") |
90 | (license (list license:gpl2 |
91 | license:cddl1.1)))) |
92 | |
93 | (define-public groovy-bootstrap |
94 | (package |
95 | (inherit groovy-java-bootstrap) |
96 | (name "groovy-bootstrap") |
97 | (arguments |
98 | `(#:jar-name "groovy.jar" |
99 | ;Requires groovy-xml and logback-classic which are circular dependencies |
100 | #:tests? #f |
101 | #:phases |
102 | (modify-phases %standard-phases |
103 | (add-before 'build 'generate-parser |
104 | (lambda _ |
105 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" |
106 | (zero? (system* "antlr" "java.g"))) |
107 | (with-directory-excursion "src/main/org/codehaus/groovy/antlr" |
108 | (mkdir "parser") |
109 | (with-directory-excursion "parser" |
110 | (zero? (system* "antlr" "../groovy.g")))))) |
111 | (add-before 'build 'generate-exception-utils |
112 | (lambda _ |
113 | (system* "javac" "-cp" (getenv "CLASSPATH") |
114 | "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") |
115 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") |
116 | ":config/ant/src") |
117 | "org.codehaus.groovy.ExceptionUtilsGenerator" |
118 | "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class")))) |
119 | (add-before 'build 'generate-dgminfo |
120 | (lambda _ |
121 | (mkdir-p "target/classes/org/codehaus/groovy/runtime") |
122 | (mkdir-p "target/classes/META-INF") |
123 | (system* "javac" "-cp" (getenv "CLASSPATH") |
124 | "src/main/org/codehaus/groovy/tools/DgmConverter.java") |
125 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") |
126 | ":src/main") |
127 | "org.codehaus.groovy.tools.DgmConverter")))) |
128 | (add-before 'build 'copy-resources |
129 | (lambda _ |
130 | (with-directory-excursion "src/main" |
131 | (for-each (lambda (file) |
132 | (mkdir-p (string-append "../../target/classes/" |
133 | (dirname file))) |
134 | (copy-file file |
135 | (string-append "../../target/classes/" |
136 | file))) |
137 | (find-files "." ".*.(txt|properties|xml|html)"))))) |
138 | (replace 'build |
139 | (lambda _ |
140 | (mkdir-p "build/jar") |
141 | (and |
142 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
143 | "org.codehaus.groovy.tools.FileSystemCompiler" |
144 | "-d" "target/classes" |
145 | "-j"; joint compilation |
146 | (find-files "src/main" |
147 | ".*\\.(groovy|java)$"))) |
148 | (zero? (system* "jar" "-cf" "build/jar/groovy.jar" |
149 | "-C" "target/classes" ".")))))))) |
150 | (inputs |
151 | `(("java-apache-ivy-bootstrap" ,java-apache-ivy-bootstrap) |
152 | ,@(package-inputs groovy-java-bootstrap))) |
153 | (native-inputs |
154 | `(("groovy-java-bootstrap" ,groovy-java-bootstrap) |
155 | ,@(package-native-inputs groovy-java-bootstrap))))) |
156 | |
157 | ;; Common test classes |
158 | (define-public groovy-tests-bootstrap |
159 | (package |
160 | (inherit groovy-bootstrap) |
161 | (name "groovy-tests-bootstrap") |
162 | (arguments |
163 | `(#:jar-name "groovy-tests-bootstrap.jar" |
164 | #:tests? #f; no tests |
165 | #:phases |
166 | (modify-phases %standard-phases |
167 | (replace 'build |
168 | (lambda _ |
169 | (mkdir-p "build/classes") |
170 | (mkdir-p "build/jar") |
171 | (and |
172 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
173 | "org.codehaus.groovy.tools.FileSystemCompiler" |
174 | "-d" "build/classes" |
175 | "-j"; joint compilation |
176 | (append |
177 | (find-files "src/test" "TestSupport.java") |
178 | (find-files "src/test" "HeadlessTestSupport.java") |
179 | (find-files "src/test" "XmlAssert.java")))) |
180 | (zero? (system* "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar" |
181 | "-C" "build/classes" ".")))))))) |
182 | (inputs |
183 | `(("groovy-test" ,groovy-test) |
184 | ,@(package-inputs groovy-bootstrap))) |
185 | (native-inputs |
186 | `(("groovy-bootstrap" ,groovy-bootstrap) |
187 | ,@(package-native-inputs groovy-java-bootstrap))))) |
188 | |
189 | (define-public groovy-test |
190 | (package |
191 | (inherit groovy-bootstrap) |
192 | (name "groovy-test") |
193 | (arguments |
194 | `(#:jar-name "groovy-test.jar" |
195 | #:test-dir "subprojects/groovy-test/src/test" |
196 | #:phases |
197 | (modify-phases %standard-phases |
198 | (replace 'build |
199 | (lambda _ |
200 | (mkdir-p "build/classes") |
201 | (mkdir-p "build/jar") |
202 | (and |
203 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
204 | "org.codehaus.groovy.tools.FileSystemCompiler" |
205 | "-d" "build/classes" |
206 | "-j"; joint compilation |
207 | (find-files "subprojects/groovy-test/src/main" |
208 | ".*\\.(groovy|java)$"))) |
209 | (zero? (system* "jar" "-cf" "build/jar/groovy-test.jar" |
210 | "-C" "build/classes" "."))))) |
211 | (replace 'check |
212 | (lambda _ |
213 | (mkdir-p "build/test-classes") |
214 | (substitute* "build.xml" |
215 | (("depends=\"compile-tests\"") "depends=\"\"") |
216 | (("}/java") "}/groovy")) |
217 | (zero? (apply system* "java" "-cp" |
218 | (string-append (getenv "CLASSPATH") ":build/classes") |
219 | "org.codehaus.groovy.tools.FileSystemCompiler" |
220 | "-d" "build/test-classes" |
221 | "-j" |
222 | (append |
223 | (find-files "subprojects/groovy-test/src/test" |
224 | ".*\\.(groovy|java)$")))) |
225 | (zero? (system* "ant" "check"))))))) |
226 | (native-inputs |
227 | `(("groovy-bootstrap" ,groovy-bootstrap) |
228 | ,@(package-native-inputs groovy-java-bootstrap))))) |
229 | |
230 | (define-public groovy-xml |
231 | (package |
232 | (inherit groovy-bootstrap) |
233 | (name "groovy-xml") |
234 | (arguments |
235 | `(#:jar-name "groovy-xml.jar" |
236 | #:test-dir "src/test" |
237 | #:phases |
238 | (modify-phases %standard-phases |
239 | (add-before 'configure 'chdir |
240 | (lambda _ |
241 | (chdir "subprojects/groovy-xml"))) |
242 | (replace 'build |
243 | (lambda _ |
244 | (mkdir-p "build/classes") |
245 | (mkdir-p "build/jar") |
246 | (and |
247 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
248 | "org.codehaus.groovy.tools.FileSystemCompiler" |
249 | "-d" "build/classes" |
250 | "-j"; joint compilation |
251 | (find-files "src/main" |
252 | ".*\\.(groovy|java)$"))) |
253 | (zero? (system* "jar" "-cf" "build/jar/groovy-xml.jar" |
254 | "-C" "build/classes" "."))))) |
255 | (replace 'check |
256 | (lambda _ |
257 | (mkdir-p "build/test-classes") |
258 | (substitute* "build.xml" |
259 | (("depends=\"compile-tests\"") "depends=\"\"") |
260 | (("}/java") "}/groovy")) |
261 | (and |
262 | (zero? (apply system* "java" "-cp" |
263 | (string-append (getenv "CLASSPATH") ":build/classes") |
264 | "org.codehaus.groovy.tools.FileSystemCompiler" |
265 | "-d" "build/test-classes" |
266 | "-j" |
267 | (append |
268 | (find-files "src/test" |
269 | ".*\\.(groovy|java)$")))) |
270 | (zero? (system* "ant" "check")))))))) |
271 | (native-inputs |
272 | `(("groovy-bootstrap" ,groovy-bootstrap) |
273 | ("groovy-test" ,groovy-test) |
274 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
275 | ,@(package-native-inputs groovy-java-bootstrap))))) |
276 | |
277 | (define-public groovy-templates |
278 | (package |
279 | (inherit groovy-bootstrap) |
280 | (name "groovy-templates") |
281 | (arguments |
282 | `(#:jar-name "groovy-templates.jar" |
283 | #:test-dir "subprojects/groovy-templates/src/test" |
284 | #:tests? #f;Requires spock-framework which is a circular dependency |
285 | #:phases |
286 | (modify-phases %standard-phases |
287 | (replace 'build |
288 | (lambda _ |
289 | (mkdir-p "build/classes") |
290 | (mkdir-p "build/jar") |
291 | (and |
292 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
293 | "org.codehaus.groovy.tools.FileSystemCompiler" |
294 | "-d" "build/classes" |
295 | "-j"; joint compilation |
296 | (find-files "subprojects/groovy-templates/src/main" |
297 | ".*\\.(groovy|java)$"))) |
298 | (zero? (system* "jar" "-cf" "build/jar/groovy-templates.jar" |
299 | "-C" "build/classes" ".")))))))) |
300 | (inputs |
301 | `(("groovy-xml" ,groovy-xml) |
302 | ,@(package-inputs groovy-bootstrap))) |
303 | (native-inputs |
304 | `(("groovy-bootstrap" ,groovy-bootstrap) |
305 | ("groovy-test" ,groovy-test) |
306 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
307 | ,@(package-native-inputs groovy-java-bootstrap))))) |
308 | |
309 | (define-public groovy-groovydoc |
310 | (package |
311 | (inherit groovy-bootstrap) |
312 | (name "groovy-groovydoc") |
313 | (arguments |
314 | `(#:jar-name "groovy-groovydoc.jar" |
315 | #:test-dir "subprojects/groovy-groovydoc/src/test" |
316 | #:tests? #f; Requires groovy-ant which is a circular dependency |
317 | #:phases |
318 | (modify-phases %standard-phases |
319 | (add-before 'build 'copy-resources |
320 | (lambda _ |
321 | (copy-recursively "subprojects/groovy-groovydoc/src/main/resources" |
322 | "build/classes"))) |
323 | (replace 'build |
324 | (lambda _ |
325 | (mkdir-p "build/classes") |
326 | (mkdir-p "build/jar") |
327 | (and |
328 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
329 | "org.codehaus.groovy.tools.FileSystemCompiler" |
330 | "-d" "build/classes" |
331 | "-j"; joint compilation |
332 | (find-files "subprojects/groovy-groovydoc/src/main" |
333 | ".*\\.(groovy|java)$"))) |
334 | (zero? (system* "jar" "-cf" "build/jar/groovy-groovydoc.jar" |
335 | "-C" "build/classes" ".")))))))) |
336 | (inputs |
337 | `(("groovy-templates" ,groovy-templates) |
338 | ,@(package-inputs groovy-bootstrap))) |
339 | (native-inputs |
340 | `(("groovy-bootstrap" ,groovy-bootstrap) |
341 | ("groovy-test" ,groovy-test) |
342 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
343 | ,@(package-native-inputs groovy-java-bootstrap))))) |
344 | |
345 | (define-public groovy-ant |
346 | (package |
347 | (inherit groovy-bootstrap) |
348 | (name "groovy-ant") |
349 | (arguments |
350 | `(#:jar-name "groovy-ant.jar" |
351 | #:test-dir "src/test" |
352 | ;; FIXME: Excluding all tests because they fail |
353 | #:test-exclude (list |
354 | "**/GroovyTest.java" |
355 | "**/GroovycTest.java") |
356 | #:phases |
357 | (modify-phases %standard-phases |
358 | (add-before 'configure 'chdir |
359 | (lambda _ |
360 | (chdir "subprojects/groovy-ant"))) |
361 | (add-before 'build 'copy-resources |
362 | (lambda _ |
363 | (copy-recursively "src/main/resources" "build/classes"))) |
364 | (replace 'build |
365 | (lambda _ |
366 | (mkdir-p "build/classes") |
367 | (mkdir-p "build/jar") |
368 | (and |
369 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
370 | "org.codehaus.groovy.tools.FileSystemCompiler" |
371 | "-d" "build/classes" |
372 | "-j"; joint compilation |
373 | (find-files "src/main" |
374 | ".*\\.(groovy|java)$"))) |
375 | (zero? (system* "jar" "-cf" "build/jar/groovy-ant.jar" |
376 | "-C" "build/classes" "."))))) |
377 | (replace 'check |
378 | (lambda _ |
379 | (mkdir-p "build/test-classes") |
380 | (substitute* "build.xml" |
381 | (("depends=\"compile-tests\"") "depends=\"\"") |
382 | (("}/java") "}/groovy")) |
383 | (and |
384 | (zero? (apply system* "java" "-cp" |
385 | (string-append (getenv "CLASSPATH") ":build/classes") |
386 | "org.codehaus.groovy.tools.FileSystemCompiler" |
387 | "-d" "build/test-classes" |
388 | "-j" |
389 | (find-files "src/test" |
390 | ".*\\.(groovy|java)$"))) |
391 | (zero? (system* "ant" "check")))))))) |
392 | (inputs |
393 | `(("groovy-groovydoc" ,groovy-groovydoc) |
394 | ,@(package-inputs groovy-bootstrap))) |
395 | (native-inputs |
396 | `(("groovy-bootstrap" ,groovy-bootstrap) |
397 | ("groovy-xml" ,groovy-xml) |
398 | ("groovy-test" ,groovy-test) |
399 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
400 | ,@(package-native-inputs groovy-java-bootstrap))))) |
401 | |
402 | (define-public groovy-bsf |
403 | (package |
404 | (inherit groovy-bootstrap) |
405 | (name "groovy-bsf") |
406 | (arguments |
407 | `(#:jar-name "groovy-bsf.jar" |
408 | #:test-dir "src/test" |
409 | #:test-exclude (list |
410 | ;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException: |
411 | ;; groovy.lang.MissingMethodException: No signature of method: |
412 | ;; java.util.ArrayList.each() is applicable for argument types: |
413 | ;; (groovy.script.MapFromList$_doit_closure1) values: |
414 | ;; [groovy.script.MapFromList$_doit_closure1@17e554d5] |
415 | "**/BSFTest.java") |
416 | #:phases |
417 | (modify-phases %standard-phases |
418 | (add-before 'configure 'chdir |
419 | (lambda _ |
420 | (chdir "subprojects/groovy-bsf"))) |
421 | (replace 'build |
422 | (lambda _ |
423 | (mkdir-p "build/classes") |
424 | (mkdir-p "build/jar") |
425 | (and |
426 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
427 | "org.codehaus.groovy.tools.FileSystemCompiler" |
428 | "-d" "build/classes" |
429 | "-j"; joint compilation |
430 | (find-files "src/main" |
431 | ".*\\.(groovy|java)$"))) |
432 | (zero? (system* "jar" "-cf" "build/jar/groovy-bsf.jar" |
433 | "-C" "build/classes" "."))))) |
434 | (replace 'check |
435 | (lambda _ |
436 | (mkdir-p "build/test-classes") |
437 | (substitute* "build.xml" |
438 | (("depends=\"compile-tests\"") "depends=\"\"")) |
439 | (and |
440 | (zero? (apply system* "java" "-cp" |
441 | (string-append (getenv "CLASSPATH") ":build/classes") |
442 | "org.codehaus.groovy.tools.FileSystemCompiler" |
443 | "-d" "build/test-classes" |
444 | "-j" |
445 | (find-files "src/test" |
446 | ".*\\.(groovy|java)$"))) |
447 | (zero? (system* "ant" "check")))))))) |
448 | (inputs |
449 | `(("java-commons-bsf" ,java-commons-bsf) |
450 | ,@(package-inputs groovy-bootstrap))) |
451 | (native-inputs |
452 | `(("groovy-bootstrap" ,groovy-bootstrap) |
453 | ("groovy-test" ,groovy-test) |
454 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
455 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) |
456 | ,@(package-native-inputs groovy-java-bootstrap))))) |
457 | |
458 | (define-public groovy-swing |
459 | (package |
460 | (inherit groovy-bootstrap) |
461 | (name "groovy-swing") |
462 | (arguments |
463 | `(#:jar-name "groovy-swing.jar" |
464 | ;; FIXME: tests are not run |
465 | #:test-dir "src/test" |
466 | #:phases |
467 | (modify-phases %standard-phases |
468 | (add-before 'configure 'chdir |
469 | (lambda _ |
470 | (chdir "subprojects/groovy-swing"))) |
471 | (replace 'build |
472 | (lambda _ |
473 | (mkdir-p "build/classes") |
474 | (mkdir-p "build/jar") |
475 | (and |
476 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
477 | "org.codehaus.groovy.tools.FileSystemCompiler" |
478 | "-d" "build/classes" |
479 | "-j"; joint compilation |
480 | (find-files "src/main" |
481 | ".*\\.(groovy|java)$"))) |
482 | (zero? (system* "jar" "-cf" "build/jar/groovy-swing.jar" |
483 | "-C" "build/classes" "."))))) |
484 | (replace 'check |
485 | (lambda _ |
486 | (mkdir-p "build/test-classes") |
487 | (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy" |
488 | (("HeadlessTestSupport.headless") "isHeadless()")) |
489 | (substitute* "build.xml" |
490 | (("depends=\"compile-tests\"") "depends=\"\"") |
491 | (("}/java") "}/groovy")) |
492 | (and |
493 | (zero? (apply system* "java" "-cp" |
494 | (string-append (getenv "CLASSPATH") ":build/classes") |
495 | "org.codehaus.groovy.tools.FileSystemCompiler" |
496 | "-d" "build/test-classes" |
497 | "-j" |
498 | (find-files "src/test" |
499 | ".*\\.(groovy|java)$"))) |
500 | (zero? (system* "ant" "check")))))))) |
501 | (native-inputs |
502 | `(("groovy-bootstrap" ,groovy-bootstrap) |
503 | ("groovy-test" ,groovy-test) |
504 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
505 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) |
506 | ,@(package-native-inputs groovy-java-bootstrap))))) |
507 | |
508 | (define-public groovy-console |
509 | (package |
510 | (inherit groovy-bootstrap) |
511 | (name "groovy-console") |
512 | (arguments |
513 | `(#:jar-name "groovy-console.jar" |
514 | ;; FIXME: tests are not run |
515 | #:test-dir "src/test" |
516 | #:phases |
517 | (modify-phases %standard-phases |
518 | (add-before 'configure 'chdir |
519 | (lambda _ |
520 | (chdir "subprojects/groovy-console"))) |
521 | (add-before 'build 'copy-resources |
522 | (lambda _ |
523 | (copy-recursively "src/main/resources" "build/classes"))) |
524 | (replace 'build |
525 | (lambda _ |
526 | (mkdir-p "build/classes") |
527 | (mkdir-p "build/jar") |
528 | (and |
529 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
530 | "org.codehaus.groovy.tools.FileSystemCompiler" |
531 | "-d" "build/classes" |
532 | "-j"; joint compilation |
533 | (find-files "src/main" |
534 | ".*\\.(groovy|java)$"))) |
535 | (zero? (system* "jar" "-cf" "build/jar/groovy-console.jar" |
536 | "-C" "build/classes" "."))))) |
537 | (replace 'check |
538 | (lambda _ |
539 | (mkdir-p "build/test-classes") |
540 | (substitute* "build.xml" |
541 | (("depends=\"compile-tests\"") "depends=\"\"") |
542 | (("}/java") "}/groovy")) |
543 | (substitute* |
544 | "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy" |
545 | (("HeadlessTestSupport.headless") "isHeadless()")) |
546 | (and |
547 | (zero? (apply system* "java" "-cp" |
548 | (string-append (getenv "CLASSPATH") ":build/classes") |
549 | "org.codehaus.groovy.tools.FileSystemCompiler" |
550 | "-d" "build/test-classes" |
551 | "-j" |
552 | (append |
553 | (find-files "../groovy-swing/src/test" |
554 | ".*\\.(groovy|java)$") |
555 | (find-files "src/test" |
556 | ".*\\.(groovy|java)$")))) |
557 | (zero? (system* "ant" "check")))))))) |
558 | (inputs |
559 | `(("groovy-swing" ,groovy-swing) |
560 | ("groovy-templates" ,groovy-templates) |
561 | ,@(package-inputs groovy-bootstrap))) |
562 | (native-inputs |
563 | `(("groovy-bootstrap" ,groovy-bootstrap) |
564 | ("groovy-test" ,groovy-test) |
565 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
566 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) |
567 | ,@(package-native-inputs groovy-java-bootstrap))))) |
568 | |
569 | (define-public groovy-docgenerator |
570 | (package |
571 | (inherit groovy-bootstrap) |
572 | (name "groovy-docgenerator") |
573 | (arguments |
574 | `(#:jar-name "groovy-docgenerator.jar" |
575 | #:tests? #f; No tests |
576 | #:phases |
577 | (modify-phases %standard-phases |
578 | (add-before 'configure 'chdir |
579 | (lambda _ |
580 | (chdir "subprojects/groovy-docgenerator"))) |
581 | (add-before 'build 'copy-resources |
582 | (lambda _ |
583 | (copy-recursively "src/main/resources" "build/classes"))) |
584 | (replace 'build |
585 | (lambda _ |
586 | (mkdir-p "build/classes") |
587 | (mkdir-p "build/jar") |
588 | (and |
589 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
590 | "org.codehaus.groovy.tools.FileSystemCompiler" |
591 | "-d" "build/classes" |
592 | "-j"; joint compilation |
593 | (find-files "src/main" |
594 | ".*\\.(groovy|java)$"))) |
595 | (zero? (system* "jar" "-cf" "build/jar/groovy-docgenerator.jar" |
596 | "-C" "build/classes" ".")))))))) |
597 | (inputs |
598 | `(("groovy-templates" ,groovy-templates) |
599 | ("groovy-swing" ,groovy-swing) |
600 | ("java-qdox-1.12" ,java-qdox-1.12) |
601 | ,@(package-inputs groovy-bootstrap))) |
602 | (native-inputs |
603 | `(("groovy-bootstrap" ,groovy-bootstrap) |
604 | ("groovy-test" ,groovy-test) |
605 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
606 | ,@(package-native-inputs groovy-java-bootstrap))))) |
607 | |
608 | (define-public groovy-groovysh |
609 | (package |
610 | (inherit groovy-bootstrap) |
611 | (name "groovy-groovysh") |
612 | (arguments |
613 | `(#:jar-name "groovy-groovysh.jar" |
614 | #:test-dir "src/test" |
615 | #:jdk ,icedtea-8 |
616 | #:phases |
617 | (modify-phases %standard-phases |
618 | (add-before 'configure 'chdir |
619 | (lambda _ |
620 | (chdir "subprojects/groovy-groovysh"))) |
621 | (add-before 'build 'copy-resources |
622 | (lambda _ |
623 | (copy-recursively "src/main/resources" "build/classes"))) |
624 | (replace 'build |
625 | (lambda _ |
626 | (mkdir-p "build/classes") |
627 | (mkdir-p "build/jar") |
628 | (and |
629 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
630 | "org.codehaus.groovy.tools.FileSystemCompiler" |
631 | "-d" "build/classes" |
632 | "-j"; joint compilation |
633 | (find-files "src/main" |
634 | ".*\\.(groovy|java)$"))) |
635 | (zero? (system* "jar" "-cf" "build/jar/groovy-groovysh.jar" |
636 | "-C" "build/classes" "."))))) |
637 | (replace 'check |
638 | (lambda _ |
639 | (mkdir-p "build/test-classes") |
640 | (substitute* "build.xml" |
641 | (("depends=\"compile-tests\"") "depends=\"\"") |
642 | (("}/java") "}/groovy")) |
643 | (and |
644 | (zero? (apply system* "java" "-cp" |
645 | (string-append (getenv "CLASSPATH") ":build/classes") |
646 | "org.codehaus.groovy.tools.FileSystemCompiler" |
647 | "-d" "build/test-classes" |
648 | "-j" |
649 | (append |
650 | (find-files "src/test" |
651 | ".*\\.(groovy|java)$")))) |
652 | (zero? (system* "ant" "check")))))))) |
653 | (inputs |
654 | `(("groovy-xml" ,groovy-xml) |
655 | ("groovy-console" ,groovy-console) |
656 | ,@(package-inputs groovy-bootstrap))) |
657 | (native-inputs |
658 | `(("groovy-bootstrap" ,groovy-bootstrap) |
659 | ("groovy-test" ,groovy-test) |
660 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
661 | ,@(package-native-inputs groovy-java-bootstrap))))) |
662 | |
663 | (define-public groovy-jmx |
664 | (package |
665 | (inherit groovy-bootstrap) |
666 | (name "groovy-jmx") |
667 | (arguments |
668 | `(#:jar-name "groovy-jmx.jar" |
669 | #:test-dir "src/test" |
670 | #:jdk ,icedtea-8 |
671 | #:phases |
672 | (modify-phases %standard-phases |
673 | (add-before 'configure 'chdir |
674 | (lambda _ |
675 | (chdir "subprojects/groovy-jmx"))) |
676 | (replace 'build |
677 | (lambda _ |
678 | (mkdir-p "build/classes") |
679 | (mkdir-p "build/jar") |
680 | (and |
681 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
682 | "org.codehaus.groovy.tools.FileSystemCompiler" |
683 | "-d" "build/classes" |
684 | "-j"; joint compilation |
685 | (find-files "src/main" |
686 | ".*\\.(groovy|java)$"))) |
687 | (zero? (system* "jar" "-cf" "build/jar/groovy-jmx.jar" |
688 | "-C" "build/classes" "."))))) |
689 | (replace 'check |
690 | (lambda _ |
691 | (mkdir-p "build/test-classes") |
692 | (substitute* "build.xml" |
693 | (("depends=\"compile-tests\"") "depends=\"\"") |
694 | (("}/java") "}/groovy")) |
695 | (and |
696 | (zero? (apply system* "java" "-cp" |
697 | (string-append (getenv "CLASSPATH") ":build/classes") |
698 | "org.codehaus.groovy.tools.FileSystemCompiler" |
699 | "-d" "build/test-classes" |
700 | "-j" |
701 | (append |
702 | (find-files "src/test" |
703 | ".*\\.(groovy|java)$")))) |
704 | (zero? (system* "ant" "check")))))))) |
705 | (native-inputs |
706 | `(("groovy-bootstrap" ,groovy-bootstrap) |
707 | ("groovy-test" ,groovy-test) |
708 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
709 | ,@(package-native-inputs groovy-java-bootstrap))))) |
710 | |
711 | (define-public groovy-json |
712 | (package |
713 | (inherit groovy-bootstrap) |
714 | (name "groovy-json") |
715 | (arguments |
716 | `(#:jar-name "groovy-json.jar" |
717 | #:test-dir "src/test" |
718 | #:jdk ,icedtea-8 |
719 | #:phases |
720 | (modify-phases %standard-phases |
721 | (add-before 'configure 'chdir |
722 | (lambda _ |
723 | (chdir "subprojects/groovy-json"))) |
724 | (replace 'build |
725 | (lambda _ |
726 | (mkdir-p "build/classes") |
727 | (mkdir-p "build/jar") |
728 | (and |
729 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
730 | "org.codehaus.groovy.tools.FileSystemCompiler" |
731 | "-d" "build/classes" |
732 | "-j"; joint compilation |
733 | (find-files "src/main" |
734 | ".*\\.(groovy|java)$"))) |
735 | (zero? (system* "jar" "-cf" "build/jar/groovy-json.jar" |
736 | "-C" "build/classes" "."))))) |
737 | (replace 'check |
738 | (lambda _ |
739 | (mkdir-p "build/test-classes") |
740 | (substitute* "build.xml" |
741 | (("depends=\"compile-tests\"") "depends=\"\"") |
742 | (("}/java") "}/groovy")) |
743 | (and |
744 | (zero? (apply system* "java" "-cp" |
745 | (string-append (getenv "CLASSPATH") ":build/classes") |
746 | "org.codehaus.groovy.tools.FileSystemCompiler" |
747 | "-d" "build/test-classes" |
748 | "-j" |
749 | (append |
750 | (find-files "src/test" |
751 | ".*\\.(groovy|java)$")))) |
752 | (zero? (system* "ant" "check")))))))) |
753 | (native-inputs |
754 | `(("groovy-bootstrap" ,groovy-bootstrap) |
755 | ("groovy-test" ,groovy-test) |
756 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
757 | ,@(package-native-inputs groovy-java-bootstrap))))) |
758 | |
759 | (define-public groovy-jsr223 |
760 | (package |
761 | (inherit groovy-bootstrap) |
762 | (name "groovy-jsr223") |
763 | (arguments |
764 | `(#:jar-name "groovy-jsr223.jar" |
765 | #:test-dir "src/test" |
766 | #:jdk ,icedtea-8 |
767 | #:phases |
768 | (modify-phases %standard-phases |
769 | (add-before 'configure 'chdir |
770 | (lambda _ |
771 | (chdir "subprojects/groovy-jsr223"))) |
772 | (add-before 'build 'copy-resources |
773 | (lambda _ |
774 | (copy-recursively "src/main/resources" "build/classes"))) |
775 | (replace 'build |
776 | (lambda _ |
777 | (mkdir-p "build/classes") |
778 | (mkdir-p "build/jar") |
779 | (and |
780 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
781 | "org.codehaus.groovy.tools.FileSystemCompiler" |
782 | "-d" "build/classes" |
783 | "-j"; joint compilation |
784 | (find-files "src/main" |
785 | ".*\\.(groovy|java)$"))) |
786 | (zero? (system* "jar" "-cf" "build/jar/groovy-jsr223.jar" |
787 | "-C" "build/classes" "."))))) |
788 | (replace 'check |
789 | (lambda _ |
790 | (mkdir-p "build/test-classes") |
791 | (substitute* "build.xml" |
792 | (("depends=\"compile-tests\"") "depends=\"\"") |
793 | (("}/java") "}/groovy")) |
794 | (and |
795 | (zero? (apply system* "java" "-cp" |
796 | (string-append (getenv "CLASSPATH") ":build/classes") |
797 | "org.codehaus.groovy.tools.FileSystemCompiler" |
798 | "-d" "build/test-classes" |
799 | "-j" |
800 | (append |
801 | (find-files "src/test" |
802 | ".*\\.(groovy|java)$")))) |
803 | (zero? (system* "ant" "check")))))))) |
804 | (native-inputs |
805 | `(("groovy-bootstrap" ,groovy-bootstrap) |
806 | ("groovy-test" ,groovy-test) |
807 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
808 | ,@(package-native-inputs groovy-java-bootstrap))))) |
809 | |
810 | (define-public groovy-nio |
811 | (package |
812 | (inherit groovy-bootstrap) |
813 | (name "groovy-nio") |
814 | (arguments |
815 | `(#:jar-name "groovy-nio.jar" |
816 | #:test-dir "src/test" |
817 | #:jdk ,icedtea-8 |
818 | #:tests? #f; Requires spock-framework |
819 | #:phases |
820 | (modify-phases %standard-phases |
821 | (add-before 'configure 'chdir |
822 | (lambda _ |
823 | (chdir "subprojects/groovy-nio"))) |
824 | (replace 'build |
825 | (lambda _ |
826 | (mkdir-p "build/classes") |
827 | (mkdir-p "build/jar") |
828 | (and |
829 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
830 | "org.codehaus.groovy.tools.FileSystemCompiler" |
831 | "-d" "build/classes" |
832 | "-j"; joint compilation |
833 | (find-files "src/main" |
834 | ".*\\.(groovy|java)$"))) |
835 | (zero? (system* "jar" "-cf" "build/jar/groovy-nio.jar" |
836 | "-C" "build/classes" ".")))))))) |
837 | (native-inputs |
838 | `(("groovy-bootstrap" ,groovy-bootstrap) |
839 | ("groovy-test" ,groovy-test) |
840 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
841 | ,@(package-native-inputs groovy-java-bootstrap))))) |
842 | |
843 | (define-public groovy-servlet |
844 | (package |
845 | (inherit groovy-bootstrap) |
846 | (name "groovy-servlet") |
847 | (arguments |
848 | `(#:jar-name "groovy-jsr223.jar" |
849 | #:test-dir "src/test" |
850 | #:jdk ,icedtea-8 |
851 | #:phases |
852 | (modify-phases %standard-phases |
853 | (add-before 'configure 'chdir |
854 | (lambda _ |
855 | (chdir "subprojects/groovy-servlet"))) |
856 | (replace 'build |
857 | (lambda _ |
858 | (mkdir-p "build/classes") |
859 | (mkdir-p "build/jar") |
860 | (and |
861 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
862 | "org.codehaus.groovy.tools.FileSystemCompiler" |
863 | "-d" "build/classes" |
864 | "-j"; joint compilation |
865 | (find-files "src/main" |
866 | ".*\\.(groovy|java)$"))) |
867 | (zero? (system* "jar" "-cf" "build/jar/groovy-servlet.jar" |
868 | "-C" "build/classes" "."))))) |
869 | (replace 'check |
870 | (lambda _ |
871 | (mkdir-p "build/test-classes") |
872 | (substitute* "build.xml" |
873 | (("depends=\"compile-tests\"") "depends=\"\"") |
874 | (("}/java") "}/groovy")) |
875 | (and |
876 | (zero? (apply system* "java" "-cp" |
877 | (string-append (getenv "CLASSPATH") ":build/classes") |
878 | "org.codehaus.groovy.tools.FileSystemCompiler" |
879 | "-d" "build/test-classes" |
880 | "-j" |
881 | (append |
882 | (find-files "src/test" |
883 | ".*\\.(groovy|java)$")))) |
884 | (zero? (system* "ant" "check")))))))) |
885 | (inputs |
886 | `(("groovy-templates" ,groovy-templates) |
887 | ("groovy-xml" ,groovy-xml) |
888 | ,@(package-inputs groovy-bootstrap))) |
889 | (native-inputs |
890 | `(("groovy-bootstrap" ,groovy-bootstrap) |
891 | ("groovy-json" ,groovy-json) |
892 | ("groovy-test" ,groovy-test) |
893 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
894 | ,@(package-native-inputs groovy-java-bootstrap))))) |
895 | |
896 | (define-public groovy-sql |
897 | (package |
898 | (inherit groovy-bootstrap) |
899 | (name "groovy-sql") |
900 | (arguments |
901 | `(#:jar-name "groovy-sql.jar" |
902 | #:test-dir "src/test" |
903 | #:tests? #f;TODO: Requires hsqldb |
904 | #:jdk ,icedtea-8 |
905 | #:phases |
906 | (modify-phases %standard-phases |
907 | (add-before 'configure 'chdir |
908 | (lambda _ |
909 | (chdir "subprojects/groovy-sql"))) |
910 | (replace 'build |
911 | (lambda _ |
912 | (mkdir-p "build/classes") |
913 | (mkdir-p "build/jar") |
914 | (and |
915 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
916 | "org.codehaus.groovy.tools.FileSystemCompiler" |
917 | "-d" "build/classes" |
918 | "-j"; joint compilation |
919 | (find-files "src/main" |
920 | ".*\\.(groovy|java)$"))) |
921 | (zero? (system* "jar" "-cf" "build/jar/groovy-sql.jar" |
922 | "-C" "build/classes" ".")))))))) |
923 | (native-inputs |
924 | `(("groovy-bootstrap" ,groovy-bootstrap) |
925 | ("groovy-test" ,groovy-test) |
926 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
927 | ,@(package-native-inputs groovy-java-bootstrap))))) |
928 | |
929 | (define-public groovy-testng |
930 | (package |
931 | (inherit groovy-bootstrap) |
932 | (name "groovy-testng") |
933 | (arguments |
934 | `(#:jar-name "groovy-testng.jar" |
935 | #:tests? #f; No tests |
936 | #:jdk ,icedtea-8 |
937 | #:phases |
938 | (modify-phases %standard-phases |
939 | (add-before 'configure 'chdir |
940 | (lambda _ |
941 | (chdir "subprojects/groovy-testng"))) |
942 | (add-before 'build 'copy-resources |
943 | (lambda _ |
944 | (copy-recursively "src/main/resources" "build/classes"))) |
945 | (replace 'build |
946 | (lambda _ |
947 | (mkdir-p "build/classes") |
948 | (mkdir-p "build/jar") |
949 | (and |
950 | (zero? (apply system* "java" "-cp" (getenv "CLASSPATH") |
951 | "org.codehaus.groovy.tools.FileSystemCompiler" |
952 | "-d" "build/classes" |
953 | "-j"; joint compilation |
954 | (find-files "src/main" |
955 | ".*\\.(groovy|java)$"))) |
956 | (zero? (system* "jar" "-cf" "build/jar/groovy-testng.jar" |
957 | "-C" "build/classes" ".")))))))) |
958 | (native-inputs |
959 | `(("groovy-bootstrap" ,groovy-bootstrap) |
960 | ("groovy-test" ,groovy-test) |
961 | ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) |
962 | ,@(package-native-inputs groovy-java-bootstrap))))) |
963 | |
964 | (define-public groovy |
965 | (package |
966 | (inherit groovy-bootstrap) |
967 | (name "groovy") |
968 | (arguments |
969 | `(#:tests? #f; No tests |
970 | #:phases |
971 | (modify-phases %standard-phases |
972 | (delete 'configure) |
973 | (delete 'build) |
974 | (replace 'install |
975 | (lambda* (#:key outputs inputs #:allow-other-keys) |
976 | (let* ((out (assoc-ref outputs "out")) |
977 | (out-bin (string-append out "/bin"))) |
978 | (with-directory-excursion "src/bin" |
979 | (substitute* "startGroovy" |
980 | (("\"\\\\\"") "\"") |
981 | (("\\\\\"\"") "\"") |
982 | (("\\\\\\$") "$") |
983 | (("STARTER_CLASSPATH=.*") |
984 | (string-append |
985 | "STARTER_CLASSPATH=" |
986 | (string-join |
987 | (apply append |
988 | (map (lambda (input) |
989 | (find-files (assoc-ref inputs input) ".*.jar")) |
990 | '("groovy-bootstrap" "groovy-ant" "groovy-bsf" |
991 | "groovy-console" "groovy-docgenerator" |
992 | "groovy-groovydoc" "groovy-groovysh" |
993 | "groovy-jmx" "groovy-json" "groovy-jsr223" |
994 | "groovy-nio" "groovy-servlet" "groovy-sql" |
995 | "groovy-swing" "groovy-templates" "groovy-testng" |
996 | "java-commons-cli" "java-asm" |
997 | "java-classpathx-servletapi" "java-xstream" |
998 | "java-jansi" "java-jline-2" "antlr2"))) |
999 | ":")))) |
1000 | (for-each |
1001 | (lambda (tool) |
1002 | (install-file tool out-bin) |
1003 | (chmod (string-append out-bin "/" tool) #o755)) |
1004 | '("grape" "groovy" "groovyc" "groovyConsole" "groovydoc" |
1005 | "groovysh" "java2groovy" "startGroovy"))) |
1006 | (install-file "src/conf/groovy-starter.conf" |
1007 | (string-append out "/conf")))))))) |
1008 | (inputs |
1009 | `(("groovy-bootstrap" ,groovy-bootstrap) |
1010 | ("groovy-ant" ,groovy-ant) |
1011 | ("groovy-bsf" ,groovy-bsf) |
1012 | ("groovy-console" ,groovy-console) |
1013 | ("groovy-docgenerator" ,groovy-docgenerator) |
1014 | ("groovy-groovydoc" ,groovy-groovydoc) |
1015 | ("groovy-groovysh" ,groovy-groovysh) |
1016 | ("groovy-jmx" ,groovy-jmx) |
1017 | ("groovy-json" ,groovy-json) |
1018 | ("groovy-jsr223" ,groovy-jsr223) |
1019 | ("groovy-nio" ,groovy-nio) |
1020 | ("groovy-servlet" ,groovy-servlet) |
1021 | ("groovy-sql" ,groovy-sql) |
1022 | ("groovy-swing" ,groovy-swing) |
1023 | ("groovy-templates" ,groovy-templates) |
1024 | ("groovy-testng" ,groovy-testng) |
1025 | ("java-commons-cli" ,java-commons-cli) |
1026 | ("java-asm" ,java-asm) |
1027 | ("java-classpathx-servletapi" ,java-classpathx-servletapi) |
1028 | ("java-xstream" ,java-xstream) |
1029 | ("java-jansi" ,java-jansi) |
1030 | ("java-jline-2" ,java-jline-2) |
1031 | ("antlr2" ,antlr2))))) |
1032 |