diff options
Diffstat (limited to 'gnu/packages/groovy.scm')
-rw-r--r-- | gnu/packages/groovy.scm | 1404 |
1 files changed, 564 insertions, 840 deletions
diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index e21c4e3775..c44a17b59e 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -31,7 +31,7 @@ (define java-groovy-bootstrap (package (name "java-groovy-bootstrap") - (version "2.4.15") + (version "3.0.5") (source (origin (method git-fetch) @@ -43,57 +43,69 @@ version))))) (file-name (git-file-name name version)) (sha256 - (base32 "1q4cplimr18j93zz92kgq8b6wdv0p9svr7cdr47q8b2mbjpd0x3j")) + (base32 "00556qxjmcn3a3xhfy6n0zw3d69mnw72vzm2rb6n4ihzkk7579nm")) (patches (search-patches "groovy-add-exceptionutilsgenerator.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "groovy.jar" - #:source-dir "src/main:subprojects/groovy-test/src/main/java" + #:source-dir "src/main/java:src/main/antlr2:subprojects/parser-antlr4/src/main/java:src/antlr" #:test-dir "src/test" #:tests? #f - #:jdk ,icedtea-8 + #:jdk ,openjdk9 #:main-class "groovy.ui.GroovyMain" #:phases (modify-phases %standard-phases - (add-before 'build 'fix-java8 - ;; Fix "Reference to plus is ambiguous" - (lambda _ - (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" - (("toList\\(left\\)") - "(List<T>)toList(left)")) - #t)) (add-before 'build 'generate-parsers (lambda _ - (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" + (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr/java" (invoke "antlr" "java.g")) - (with-directory-excursion "src/main/org/codehaus/groovy/antlr" + (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr" (mkdir "parser") (with-directory-excursion "parser" (invoke "antlr" "../groovy.g"))) + (invoke "antlr4" "-lib" "src/antlr" + "-package" "org.apache.groovy.parser.antlr4" + "-visitor" "-no-listener" "src/antlr/GroovyLexer.g4") + (invoke "antlr4" "-lib" "src/antlr" + "-package" "org.apache.groovy.parser.antlr4" + "-visitor" "-no-listener" "src/antlr/GroovyParser.g4") #t)) (add-before 'build 'generate-exception-utils (lambda _ (invoke "javac" "-cp" (getenv "CLASSPATH") + "-source" "1.8" "-target" "1.8" "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":config/ant/src") "org.codehaus.groovy.ExceptionUtilsGenerator" "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") + #t)) + (add-before 'build 'set-source-level + (lambda _ + (substitute* "build.xml" + (("<javac") "<javac source=\"1.8\" target=\"1.8\"")) #t))))) (native-inputs - `(("java-junit" ,java-junit) + `(("antlr2" ,antlr2) + ("antlr4" ,java-tunnelvisionlabs-antlr4) + ("java-jsr305" ,java-jsr305) + ("java-junit" ,java-junit) ("java-hamcrest-core" ,java-hamcrest-core) - ("antlr2" ,antlr2) ("java-jmock-1" ,java-jmock-1) ("java-xmlunit-legacy" ,java-xmlunit-legacy))) (inputs - `(("java-commons-cli" ,java-commons-cli) - ("java-asm" ,java-asm) + `(("java-antlr4-runtime" ,java-tunnelvisionlabs-antlr4-runtime) + ("java-antlr4-runtime-annotations" + ,java-tunnelvisionlabs-antlr4-runtime-annotations) + ("java-asm" ,java-asm-8) + ("java-asm-util" ,java-asm-util-8) ("java-classpathx-servletapi" ,java-classpathx-servletapi) - ("java-xstream" ,java-xstream) + ("java-commons-cli" ,java-commons-cli) ("java-jansi" ,java-jansi) - ("java-jline-2" ,java-jline-2))) + ("java-jline-2" ,java-jline-2) + ("java-picocli" ,java-picocli) + ("java-xstream" ,java-xstream))) (home-page "http://groovy-lang.org/") (synopsis "Groovy's java bootstrap") (description "This package contains the java bootstrap that is used to build @@ -106,26 +118,25 @@ groovy submodules.") (name "groovy-bootstrap") (arguments `(#:jar-name "groovy.jar" - #:jdk ,icedtea-8 + #:jdk ,openjdk9 ;Requires groovy-xml and logback-classic which are circular dependencies #:tests? #f #:phases (modify-phases %standard-phases - (add-before 'build 'fix-java8 - ;; Fix "Reference to plus is ambiguous" - (lambda _ - (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" - (("toList\\(left\\)") - "(List<T>)toList(left)")) - #t)) (add-before 'build 'generate-parser (lambda _ - (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" + (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr/java" (invoke "antlr" "java.g")) - (with-directory-excursion "src/main/org/codehaus/groovy/antlr" + (with-directory-excursion "src/main/antlr2/org/codehaus/groovy/antlr" (mkdir "parser") (with-directory-excursion "parser" (invoke "antlr" "../groovy.g"))) + (invoke "antlr4" "-lib" "src/antlr" + "-package" "org.apache.groovy.parser.antlr4" + "-visitor" "-no-listener" "src/antlr/GroovyLexer.g4") + (invoke "antlr4" "-lib" "src/antlr" + "-package" "org.apache.groovy.parser.antlr4" + "-visitor" "-no-listener" "src/antlr/GroovyParser.g4") #t)) (add-before 'build 'generate-exception-utils (lambda _ @@ -141,19 +152,19 @@ groovy submodules.") (mkdir-p "target/classes/org/codehaus/groovy/runtime") (mkdir-p "target/classes/META-INF") (invoke "javac" "-cp" (getenv "CLASSPATH") - "src/main/org/codehaus/groovy/tools/DgmConverter.java") + "src/main/java/org/codehaus/groovy/tools/DgmConverter.java") (invoke "java" "-cp" (string-append (getenv "CLASSPATH") - ":src/main") + ":src/main/java") "org.codehaus.groovy.tools.DgmConverter") #t)) (add-before 'build 'copy-resources (lambda _ - (with-directory-excursion "src/main" + (with-directory-excursion "src/main/java" (for-each (lambda (file) - (mkdir-p (string-append "../../target/classes/" + (mkdir-p (string-append "../../../target/classes/" (dirname file))) (copy-file file - (string-append "../../target/classes/" + (string-append "../../../target/classes/" file))) (find-files "." ".*.(txt|properties|xml|html)"))) #t)) @@ -162,6 +173,7 @@ groovy submodules.") (mkdir-p "build/jar") (apply invoke "java" "-cp" (getenv "CLASSPATH") "org.codehaus.groovy.tools.FileSystemCompiler" + "-cp" (getenv "CLASSPATH") "-d" "target/classes" "-j"; joint compilation (find-files "src/main" @@ -186,7 +198,7 @@ is used to build the groovy submodules written in groovy."))) (name "groovy-tests-bootstrap") (arguments `(#:jar-name "groovy-tests-bootstrap.jar" - #:jdk ,icedtea-8 + #:jdk ,openjdk9 #:tests? #f; no tests #:phases (modify-phases %standard-phases @@ -196,17 +208,20 @@ is used to build the groovy submodules written in groovy."))) (mkdir-p "build/jar") (apply invoke "java" "-cp" (getenv "CLASSPATH") "org.codehaus.groovy.tools.FileSystemCompiler" + "-cp" (getenv "CLASSPATH") "-d" "build/classes" "-j"; joint compilation (append (find-files "src/test" "TestSupport.java") (find-files "src/test" "HeadlessTestSupport.java") + (find-files "src/test" "AstAssert.groovy") (find-files "src/test" "XmlAssert.java"))) (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar" "-C" "build/classes" ".") #t))))) (inputs `(("groovy-test" ,groovy-test) + ("groovy-parser-antlr4" ,groovy-parser-antlr4) ,@(package-inputs groovy-bootstrap))) (native-inputs `(("groovy-bootstrap" ,groovy-bootstrap) @@ -215,14 +230,15 @@ is used to build the groovy submodules written in groovy."))) (description "This package contains three classes required for testing other groovy submodules."))) -(define groovy-test +(define (groovy-subproject name) (package (inherit groovy-bootstrap) - (name "groovy-test") + (name name) (arguments - `(#:jar-name "groovy-test.jar" - #:jdk ,icedtea-8 - #:test-dir "subprojects/groovy-test/src/test" + `(#:jar-name ,(string-append name ".jar") + #:test-dir ,(string-append name "/src/test") + #:test-include (list "**/*Test.java" "**/*.groovy") + #:jdk ,openjdk9 #:phases (modify-phases %standard-phases (replace 'build @@ -231,839 +247,531 @@ other groovy submodules."))) (mkdir-p "build/jar") (apply invoke "java" "-cp" (getenv "CLASSPATH") "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "subprojects/groovy-test/src/main" - ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-test.jar" + "-cp" (getenv "CLASSPATH") + "-d" "build/classes" "-j" + (append + (find-files ,(string-append "subprojects/" name "/src/main/java") + ".*\\.(groovy|java)$") + (find-files ,(string-append "subprojects/" name "/src/main/groovy") + ".*\\.(groovy|java)$"))) + (invoke "jar" "-cf" ,(string-append "build/jar/" name ".jar") "-C" "build/classes" ".") #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append (find-files "subprojects/groovy-test/src/test" - ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy test submodule") - (description "This package contains the test submodules used to test -other groovy submodules."))) - -(define groovy-xml - (package - (inherit groovy-bootstrap) - (name "groovy-xml") - (arguments - `(#:jar-name "groovy-xml.jar" - #:jdk ,icedtea-8 - #:test-dir "src/test" - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-xml") - #t)) - (replace 'build + (add-before 'build 'copy-resources (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-xml.jar" - "-C" "build/classes" ".") + (let ((resource-dir ,(string-append "subprojects/" name + "/src/main/resources"))) + (when (file-exists? resource-dir) + (copy-recursively resource-dir "build/classes"))) #t)) (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy XML") - (description "This package contains XML-related utilities for groovy."))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "-d" "build/test-classes" "-j" + (append + (find-files ,(string-append "subprojects/" name "/src/test/java") + ".*\\.(groovy|java)$") + (find-files ,(string-append "subprojects/" name "/src/test/groovy") + ".*\\.(groovy|java)$"))) + (invoke "ant" "check")) + #t))))))) + +(define groovy-parser-antlr4 + (let ((base (groovy-subproject "parser-antlr4"))) + (package + (inherit base) + (name "groovy-parser-antlr4") + (arguments + `(#:tests? #f + ,@(substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'build 'generate-parser + (lambda _ + (invoke "antlr4" "-lib" "src/antlr" + "-package" "org.apache.groovy.parser.antlr4" + "-visitor" "-no-listener" "src/antlr/GroovyLexer.g4") + (invoke "antlr4" "-lib" "src/antlr" + "-package" "org.apache.groovy.parser.antlr4" + "-visitor" "-no-listener" "src/antlr/GroovyParser.g4") + (for-each + (lambda (file) + (install-file file + "subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4")) + (find-files "src/antlr" ".*.java$")) + #t))))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy antlr4 parser submodule") + (description "This package contains the new parser Parrot for Groovy, which +is based on Antlr4. The new parser can parse Groovy source code and construct +the related AST, which is almost identical to the one generated by the old +parser. Currently all features of Groovy are available.")))) + +(define groovy-test + (let ((base (groovy-subproject "groovy-test"))) + (package + (inherit base) + (arguments + `(;#:tests? #f + ,@(package-arguments base))) + (synopsis "Groovy test submodule") + (description "This package contains the test submodules used to test +other groovy submodules.")))) + +(define groovy-xml + (let ((base (groovy-subproject "groovy-xml"))) + (package + (inherit base) + (native-inputs + `(("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (inputs + `(("groovy-parser-antlr4" ,groovy-parser-antlr4) + ,@(package-inputs base))) + (synopsis "Groovy XML") + (description "This package contains XML-related utilities for groovy.")))) (define groovy-templates - (package - (inherit groovy-bootstrap) - (name "groovy-templates") - (arguments - `(#:jar-name "groovy-templates.jar" - #:jdk ,icedtea-8 - #:test-dir "subprojects/groovy-templates/src/test" - #:tests? #f;Requires spock-framework which is a circular dependency - #:phases - (modify-phases %standard-phases - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "subprojects/groovy-templates/src/main" - ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-templates.jar" - "-C" "build/classes" ".") - #t))))) - (inputs - `(("groovy-xml" ,groovy-xml) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy template engine") - (description "This package contains a template framework which is + (let ((base (groovy-subproject "groovy-templates"))) + (package + (inherit base) + (arguments + `(#:tests? #f;Requires spock-framework which is a circular dependency + ,@(substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + ;; These annotations are used for QA, but do not affect build output. + ;; They require findbugs, which we don't have yet. + (add-before 'build 'remove-annotation + (lambda _ + (substitute* '("subprojects/groovy-templates/src/main/groovy/groovy/text/StreamingTemplateEngine.java" + "subprojects/groovy-templates/src/main/groovy/groovy/text/TemplateEngine.java") + (("import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;") "") + (("@SuppressFBWarnings.*") "")) + #t))))))) + (inputs + `(("groovy-xml" ,groovy-xml) + ,@(package-inputs base))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy template engine") + (description "This package contains a template framework which is well-suited to applications where the text to be generated follows the form of -a static template."))) +a static template.")))) (define groovy-groovydoc - (package - (inherit groovy-bootstrap) - (name "groovy-groovydoc") - (arguments - `(#:jar-name "groovy-groovydoc.jar" - #:jdk ,icedtea-8 - #:test-dir "subprojects/groovy-groovydoc/src/test" - #:tests? #f; Requires groovy-ant which is a circular dependency - #:phases - (modify-phases %standard-phases - (add-before 'build 'copy-resources - (lambda _ - (copy-recursively "subprojects/groovy-groovydoc/src/main/resources" - "build/classes") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" - "-j"; joint compilation - (find-files "subprojects/groovy-groovydoc/src/main" - ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar" - "-C" "build/classes" ".") - #t))))) - (inputs - `(("groovy-templates" ,groovy-templates) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy documentation generation") - (description "This package contains the groovy documentation generator, -similar to javadoc."))) + (let ((base (groovy-subproject "groovy-groovydoc"))) + (package + (inherit base) + (arguments + `(#:tests? #f; Requires groovy-ant which is a circular dependency + ,@(package-arguments base))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-parser-antlr4" ,groovy-parser-antlr4) + ("java-javaparser" ,java-javaparser) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy documentation generation") + (description "This package contains the groovy documentation generator, +similar to javadoc.")))) (define groovy-ant - (package - (inherit groovy-bootstrap) - (name "groovy-ant") - (arguments - `(#:jar-name "groovy-ant.jar" - #:jdk ,icedtea-8 - #:test-dir "src/test" - ;; FIXME: Excluding all tests because they fail - #:test-exclude (list - "**/GroovyTest.java" - "**/GroovycTest.java") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-ant") - #t)) - (add-before 'build 'copy-resources - (lambda _ - (copy-recursively "src/main/resources" "build/classes") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-ant.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (find-files "src/test" ".*\\.(groovy|java)$")) - (invoke "ant" "check") - #t))))) - (inputs - `(("groovy-groovydoc" ,groovy-groovydoc) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-xml" ,groovy-xml) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy ant tasks") - (description "This package contains groovy-related ant tasks definitions."))) + (let ((base (groovy-subproject "groovy-ant"))) + (package + (inherit base) + (arguments + `(;#:tests? #f;Requires spock-framework which is a circular dependency + #:ant ,ant/java8; ant is actually a dependency of this package, and we need 1.10 + ,@(substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + ;; These annotations are used for QA, but do not affect build output. + ;; They require findbugs, which we don't have yet. + (add-before 'build 'remove-annotation + (lambda _ + (substitute* (find-files "subprojects/groovy-ant" + ".*.java$") + (("import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;") "") + (("@SuppressFBWarnings.*") "")) + #t))))))) + (inputs + `(("groovy-groovydoc" ,groovy-groovydoc) + ("java-asm-tree" ,java-asm-tree-8) + ("java-asm-analysis" ,java-asm-analysis-8) + ,@(package-inputs base))) + (native-inputs + `(("ant-junit" ,ant-junit) + ("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-xml" ,groovy-xml) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy ant tasks") + (description "This package contains groovy-related ant tasks definitions.")))) + +(define groovy-astbuilder + (let ((base (groovy-subproject "groovy-astbuilder"))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (delete 'copy-resources) + (add-after 'build 'copy-resources + (lambda _ + (copy-recursively + "subprojects/groovy-astbuilder/src/main/resources" + "build/classes") + (substitute* "build.xml" + (("depends=\"compile,") "depends=\"")) + (invoke "ant" "jar") + #t)))))) + (inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ,@(package-inputs base))) + (native-inputs + `(("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Transformation to capture ASTBuilder from code statements") + (description "This package contains an AST transformation for use with +ASTBuilder when building \"from string\" Groovy statements.")))) (define groovy-bsf - (package - (inherit groovy-bootstrap) - (name "groovy-bsf") - (arguments - `(#:jar-name "groovy-bsf.jar" - #:jdk ,icedtea-8 - #:test-dir "src/test" - #:test-exclude (list + (let ((base (groovy-subproject "groovy-bsf"))) + (package + (inherit base) + (arguments + `(#:test-exclude (list ;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException: ;; groovy.lang.MissingMethodException: No signature of method: ;; java.util.ArrayList.each() is applicable for argument types: ;; (groovy.script.MapFromList$_doit_closure1) values: ;; [groovy.script.MapFromList$_doit_closure1@17e554d5] "**/BSFTest.java") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-bsf") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-bsf.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (find-files "src/test" ".*\\.(groovy|java)$")) - (invoke "ant" "check") - #t))))) - (inputs - `(("java-commons-bsf" ,java-commons-bsf) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ("java-commons-logging-minimal" ,java-commons-logging-minimal) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy BSF engine") - (description "This package defines the BSF engine for using Groovy inside -any @dfn{Bean Scripting Framework} (BSF) application."))) + ,@(package-arguments base))) + (inputs + `(("java-commons-bsf" ,java-commons-bsf) + ,@(package-inputs base))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs base))) + (synopsis "Groovy BSF engine") + (description "This package defines the BSF engine for using Groovy inside +any @dfn{Bean Scripting Framework} (BSF) application.")))) + +(define groovy-cli-commons + (let ((base (groovy-subproject "groovy-cli-commons"))) + (package + (inherit base) + (inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ,@(package-inputs base))) + (native-inputs + `(("groovy-test" ,groovy-test) + ,@(package-native-inputs base))) + (synopsis "Groovy CLI common classes") + (description "This package defines common classes for dealing with +command-line arguments in Groovy.")))) + +(define groovy-cli-picocli + (let ((base (groovy-subproject "groovy-cli-picocli"))) + (package + (inherit base) + (inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("java-picocli" ,java-picocli) + ,@(package-inputs base))) + (native-inputs + `(("groovy-test" ,groovy-test) + ,@(package-native-inputs base))) + (synopsis "Groovy CLI classes that use picocli") + (description "This package defines classes for dealing with command-line +arguments in Groovy using the picocli library.")))) (define groovy-swing - (package - (inherit groovy-bootstrap) - (name "groovy-swing") - (arguments - `(#:jar-name "groovy-swing.jar" - #:jdk ,icedtea-8 - ;; FIXME: tests are not run - #:test-dir "src/test" - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-swing") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-swing.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy" - (("HeadlessTestSupport.headless") "isHeadless()")) - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (find-files "src/test" ".*\\.(groovy|java)$")) - (invoke "ant" "check") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ("java-commons-logging-minimal" ,java-commons-logging-minimal) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy graphical library") - (description "This package contains the groovy bindings to Java Swing, a -library used to build graphical interfaces."))) + (let ((base (groovy-subproject "groovy-swing"))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'fix-test + (lambda _ + (substitute* + "subprojects/groovy-swing/src/test/groovy/groovy/swing/GroovySwingTestCase.groovy" + (("HeadlessTestSupport.headless") "isHeadless()")) + #t)))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs base))) + (synopsis "Groovy graphical library") + (description "This package contains the groovy bindings to Java Swing, a +library used to build graphical interfaces.")))) (define groovy-console - (package - (inherit groovy-bootstrap) - (name "groovy-console") - (arguments - `(#:jar-name "groovy-console.jar" - #:jdk ,icedtea-8 - ;; FIXME: tests are not run - #:test-dir "src/test" - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-console") - #t)) - (add-before 'build 'copy-resources - (lambda _ - (copy-recursively "src/main/resources" "build/classes") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-console.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (substitute* - "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy" - (("HeadlessTestSupport.headless") "isHeadless()")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append - (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$") - (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (inputs - `(("groovy-swing" ,groovy-swing) - ("groovy-templates" ,groovy-templates) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ("java-commons-logging-minimal" ,java-commons-logging-minimal) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy graphical interface") - (description "This package contains a graphical interface to run groovy."))) + (let ((base (groovy-subproject "groovy-console"))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'build-swing + (lambda _ + (substitute* + "subprojects/groovy-swing/src/test/groovy/groovy/swing/GroovySwingTestCase.groovy" + (("HeadlessTestSupport.headless") "isHeadless()")) + (mkdir-p "build/test-classes") + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "-d" "build/test-classes" "-j" + (append + (find-files "subprojects/groovy-swing/src/test/java" + ".*\\.(groovy|java)$") + (find-files "subprojects/groovy-swing/src/test/groovy" + ".*\\.(groovy|java)$"))) + #t)))))) + (inputs + `(("groovy-swing" ,groovy-swing) + ("groovy-templates" ,groovy-templates) + ,@(package-inputs base))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs base))) + (synopsis "Groovy graphical interface") + (description "This package contains a graphical interface to run groovy.")))) + +(define groovy-datetime + (let ((base (groovy-subproject "groovy-datetime"))) + (package + (inherit base) + (native-inputs + `(("groovy-test" ,groovy-test) + ,@(package-native-inputs base))) + (synopsis "Date/Time API for Groovy") + (description "This package defines new Groovy methods which appear on +normal JDK Date/Time API (@code{java.time}) classes inside the Groovy +environment.")))) + +(define groovy-dateutil + (let ((base (groovy-subproject "groovy-dateutil"))) + (package + (inherit base) + (native-inputs + `(("groovy-test" ,groovy-test) + ,@(package-native-inputs base))) + (synopsis "Date and Calendar API for Groovy") + (description "This package defines new groovy methods which appear on +normal JDK Date and Calendar classes inside the Groovy environment.")))) (define groovy-docgenerator - (package - (inherit groovy-bootstrap) - (name "groovy-docgenerator") - (arguments - `(#:jar-name "groovy-docgenerator.jar" - #:jdk ,icedtea-8 - #:tests? #f; No tests - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-docgenerator") - #t)) - (add-before 'build 'copy-resources - (lambda _ - (copy-recursively "src/main/resources" "build/classes") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar" - "-C" "build/classes" ".") - #t))))) - (inputs - `(("groovy-templates" ,groovy-templates) - ("groovy-swing" ,groovy-swing) - ("java-qdox-1.12" ,java-qdox-1.12) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy documentation generation") - (description "This package contains a command line tool to generate -documentation for groovy applications."))) + (let ((base (groovy-subproject "groovy-docgenerator"))) + (package + (inherit base) + (arguments + `(#:tests? #f; No tests + ,@(package-arguments base))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-swing" ,groovy-swing) + ("java-qdox-1.12" ,java-qdox-1.12) + ,@(package-inputs base))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy documentation generation") + (description "This package contains a command line tool to generate +documentation for groovy applications.")))) (define groovy-groovysh - (package - (inherit groovy-bootstrap) - (name "groovy-groovysh") - (arguments - `(#:jar-name "groovy-groovysh.jar" - #:test-dir "src/test" - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-groovysh") - #t)) - (add-before 'build 'copy-resources - (lambda _ - (copy-recursively "src/main/resources" "build/classes") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (inputs - `(("groovy-xml" ,groovy-xml) - ("groovy-console" ,groovy-console) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy REPL") - (description "This package contains the Groovy REPL."))) + (let ((base (groovy-subproject "groovy-groovysh"))) + (package + (inherit base) + (inputs + `(("groovy-xml" ,groovy-xml) + ("groovy-console" ,groovy-console) + ,@(package-inputs base))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy REPL") + (description "This package contains the Groovy REPL.")))) (define groovy-jmx - (package - (inherit groovy-bootstrap) - (name "groovy-jmx") - (arguments - `(#:jar-name "groovy-jmx.jar" - #:test-dir "src/test" - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-jmx") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-jmx.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy JMX extension") - (description "This package contains the JMX extension of Groovy, for -management and monitoring of JVM-based solutions."))) + (let ((base (groovy-subproject "groovy-jmx"))) + (package + (inherit base) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy JMX extension") + (description "This package contains the JMX extension of Groovy, for +management and monitoring of JVM-based solutions.")))) (define groovy-json - (package - (inherit groovy-bootstrap) - (name "groovy-json") - (arguments - `(#:jar-name "groovy-json.jar" - #:test-dir "src/test" - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-json") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-json.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy JSON") - (description "This package contains JSON-related utilities for groovy."))) + (let ((base (groovy-subproject "groovy-json"))) + (package + (inherit base) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy JSON") + (description "This package contains JSON-related utilities for groovy.")))) (define groovy-jsr223 - (package - (inherit groovy-bootstrap) - (name "groovy-jsr223") - (arguments - `(#:jar-name "groovy-jsr223.jar" - #:test-dir "src/test" - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-jsr223") - #t)) - (add-before 'build 'copy-resources - (lambda _ - (copy-recursively "src/main/resources" "build/classes") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy's own JSR223 implementation") - (description "This package contains Groovy's own JSR223 implementation. This -module is used for interaction between Groovy and Java code."))) + (let ((base (groovy-subproject "groovy-jsr223"))) + (package + (inherit base) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy's own JSR223 implementation") + (description "This package contains Groovy's own JSR223 implementation. This +module is used for interaction between Groovy and Java code.")))) (define groovy-nio - (package - (inherit groovy-bootstrap) - (name "groovy-nio") - (arguments - `(#:jar-name "groovy-nio.jar" - #:test-dir "src/test" - #:jdk ,icedtea-8 - #:tests? #f; Requires spock-framework - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-nio") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-nio.jar" - "-C" "build/classes" ".") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy input-output library") - (description "This package implements an input/output library that extends -the functionality of the common library of Java."))) + (let ((base (groovy-subproject "groovy-nio"))) + (package + (inherit base) + (arguments + `(#:tests? #f; Require spock-framework + ,@(package-arguments base))) + (synopsis "Groovy input-output library") + (description "This package implements an input/output library that extends +the functionality of the common library of Java.")))) (define groovy-servlet - (package - (inherit groovy-bootstrap) - (name "groovy-servlet") - (arguments - `(#:jar-name "groovy-servlet.jar" - #:test-dir "src/test" - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-servlet") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" - "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-servlet.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" - "-j" - (append (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (inputs - `(("groovy-templates" ,groovy-templates) - ("groovy-xml" ,groovy-xml) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-json" ,groovy-json) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy's servlet implementation") - (description "This package contains a library to create groovlets, Groovy's -version of Java servlets."))) + (let ((base (groovy-subproject "groovy-servlet"))) + (package + (inherit base) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-xml" ,groovy-xml) + ,@(package-inputs base))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-json" ,groovy-json) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy's servlet implementation") + (description "This package contains a library to create groovlets, Groovy's +version of Java servlets.")))) (define groovy-sql - (package - (inherit groovy-bootstrap) - (name "groovy-sql") - (arguments - `(#:jar-name "groovy-sql.jar" - #:test-dir "src/test" - #:tests? #f;TODO: Requires hsqldb - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-sql") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" - ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-sql.jar" - "-C" "build/classes" ".") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy SQL library") - (description "This package contains a facade over Java's normal JDBC APIs -providing greatly simplified resource management and result set handling."))) + (let ((base (groovy-subproject "groovy-sql"))) + (package + (inherit base) + (arguments + `(#:tests? #f;TODO: Requires hsqldb + ,@(package-arguments base))) + (synopsis "Groovy SQL library") + (description "This package contains a facade over Java's normal JDBC APIs +providing greatly simplified resource management and result set handling.")))) (define groovy-testng - (package - (inherit groovy-bootstrap) - (name "groovy-testng") - (arguments - `(#:jar-name "groovy-testng.jar" - #:tests? #f; No tests - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-testng") - #t)) - (add-before 'build 'copy-resources - (lambda _ - (copy-recursively "src/main/resources" "build/classes") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" - "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-testng.jar" - "-C" "build/classes" ".") - #t))))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy testing framework") - (description "This package contains integration code for running TestNG -tests in Groovy."))) + (let ((base (groovy-subproject "groovy-testng"))) + (package + (inherit base) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy testing framework") + (description "This package contains integration code for running TestNG +tests in Groovy.")))) (define groovy-macro - (package - (inherit groovy-bootstrap) - (name "groovy-macro") - (arguments - `(#:jar-name "groovy-macro.jar" - #:test-dir "src/test" - #:jdk ,icedtea-8 - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir - (lambda _ - (chdir "subprojects/groovy-macro") - #t)) - (replace 'build - (lambda _ - (mkdir-p "build/classes") - (mkdir-p "build/jar") - (apply invoke "java" "-cp" (getenv "CLASSPATH") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/classes" "-j"; joint compilation - (find-files "src/main" ".*\\.(groovy|java)$")) - (invoke "jar" "-cf" "build/jar/groovy-macro.jar" - "-C" "build/classes" ".") - #t)) - (replace 'check - (lambda _ - (mkdir-p "build/test-classes") - (substitute* "build.xml" - (("depends=\"compile-tests\"") "depends=\"\"") - (("}/java") "}/groovy")) - (apply invoke "java" "-cp" - (string-append (getenv "CLASSPATH") ":build/classes") - "org.codehaus.groovy.tools.FileSystemCompiler" - "-d" "build/test-classes" "-j" - (append (find-files "src/test" ".*\\.(groovy|java)$"))) - (invoke "ant" "check") - #t))))) - (inputs - `(("groovy-templates" ,groovy-templates) - ("groovy-xml" ,groovy-xml) - ,@(package-inputs groovy-bootstrap))) - (native-inputs - `(("groovy-bootstrap" ,groovy-bootstrap) - ("groovy-json" ,groovy-json) - ("groovy-test" ,groovy-test) - ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) - ,@(package-native-inputs java-groovy-bootstrap))) - (synopsis "Groovy macro processor") - (description "This package contains a high-level library to create macro -and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) + (let ((base (groovy-subproject "groovy-macro"))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (delete 'copy-resources) + (add-after 'build 'copy-resources + (lambda _ + (copy-recursively "subprojects/groovy-macro/src/main/resources" + "build/classes") + (substitute* "build.xml" + (("depends=\"compile,") "depends=\"")) + (invoke "ant" "jar") + #t)))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-xml" ,groovy-xml) + ,@(package-inputs base))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-json" ,groovy-json) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs base))) + (synopsis "Groovy macro processor") + (description "This package contains a high-level library to create macro +and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))) + +(define groovy-yaml + (let ((base (groovy-subproject "groovy-yaml"))) + (package + (inherit base) + (inputs + `(("groovy-json" ,groovy-json) + ("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations) + ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core) + ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind) + ("java-fasterxml-jackson-dataformat-yaml" ,java-fasterxml-jackson-dataformat-yaml) + ,@(package-inputs base))) + (native-inputs + `(("groovy-test" ,groovy-test) + ,@(package-native-inputs base))) + (synopsis "Groovy YAML") + (description "This package contains YAML-related utilities for groovy.")))) (define-public groovy (package @@ -1071,7 +779,7 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) (name "groovy") (arguments `(#:tests? #f; No tests - #:jdk ,icedtea-8 + #:jdk ,openjdk9 #:phases (modify-phases %standard-phases (delete 'configure) @@ -1089,7 +797,7 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) (("@GROOVYJAR@") "groovy.jar") (("MAX_FD=\"maximum\"") (string-append - "MAX_FD=\"maximum\"\nJAVAHOME=" + "MAX_FD=\"maximum\"\nJAVA_HOME=" (assoc-ref inputs "jdk")))) ;; Groovy uses class loading. It's not enough to put the class ;; in the loader's classpath, as it causes breakages: @@ -1105,14 +813,17 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) (lambda (jar) (symlink jar (string-append out-lib "/" (basename jar)))) (find-files (assoc-ref inputs input) ".*.jar"))) - '("groovy-bootstrap" "groovy-ant" "groovy-bsf" - "groovy-console" "groovy-docgenerator" - "groovy-groovydoc" "groovy-groovysh" - "groovy-jmx" "groovy-json" "groovy-jsr223" - "groovy-nio" "groovy-servlet" "groovy-sql" + '("groovy-bootstrap" "groovy-ant" "groovy-astbuilder" + "groovy-bsf" "groovy-cli-commons" "groovy-cli-picocli" + "groovy-console" "groovy-datetime" "groovy-dateutil" + "groovy-docgenerator" "groovy-groovydoc" "groovy-groovysh" + "groovy-jmx" "groovy-json" "groovy-jsr223" "groovy-nio" + "groovy-parser-antlr4" "groovy-servlet" "groovy-sql" "groovy-swing" "groovy-templates" "groovy-testng" - "groovy-xml" "java-commons-cli" "java-asm" - "java-classpathx-servletapi" "java-xstream" + "groovy-xml" "groovy-yaml" "java-commons-cli" + "java-tunnelvisionlabs-antlr4-runtime" "java-asm" + "java-asm-analysis" "java-asm-tree" "java-asm-util" + "java-classpathx-servletapi" "java-xstream" "java-picocli" "java-jansi" "java-jline-2")) ;; antlr.jar is present twice in antlr2. Symlink doesn't like ;; it, so we symlink it here. @@ -1130,8 +841,13 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) (inputs `(("groovy-bootstrap" ,groovy-bootstrap) ("groovy-ant" ,groovy-ant) + ("groovy-astbuilder" ,groovy-astbuilder) ("groovy-bsf" ,groovy-bsf) + ("groovy-cli-commons" ,groovy-cli-commons) + ("groovy-cli-picocli" ,groovy-cli-picocli) ("groovy-console" ,groovy-console) + ("groovy-datetime" ,groovy-datetime) + ("groovy-dateutil" ,groovy-dateutil) ("groovy-docgenerator" ,groovy-docgenerator) ("groovy-groovydoc" ,groovy-groovydoc) ("groovy-groovysh" ,groovy-groovysh) @@ -1139,18 +855,26 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) ("groovy-json" ,groovy-json) ("groovy-jsr223" ,groovy-jsr223) ("groovy-nio" ,groovy-nio) + ("groovy-parser-antlr4" ,groovy-parser-antlr4) ("groovy-servlet" ,groovy-servlet) ("groovy-sql" ,groovy-sql) ("groovy-swing" ,groovy-swing) ("groovy-templates" ,groovy-templates) ("groovy-testng" ,groovy-testng) ("groovy-xml" ,groovy-xml) + ("groovy-yaml" ,groovy-yaml) + ("java-tunnelvisionlabs-antlr4-runtime" + ,java-tunnelvisionlabs-antlr4-runtime) ("java-commons-cli" ,java-commons-cli) - ("java-asm" ,java-asm) + ("java-asm" ,java-asm-8) + ("java-asm-analysis" ,java-asm-analysis-8) + ("java-asm-tree" ,java-asm-tree-8) + ("java-asm-util" ,java-asm-util-8) ("java-classpathx-servletapi" ,java-classpathx-servletapi) - ("java-xstream" ,java-xstream) + ("java-picocli" ,java-picocli) ("java-jansi" ,java-jansi) ("java-jline-2" ,java-jline-2) + ("java-xstream" ,java-xstream) ("antlr2" ,antlr2))) (synopsis "Programming language for the JVM") (description "Apache Groovy is a powerful, optionally typed and dynamic |