groovy.scm 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
  3. ;;; Copyright © 2019 Tobias Geerinck-Rice <me@tobias.gr>
  4. ;;;
  5. ;;; This file is part of GNU Guix.
  6. ;;;
  7. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  8. ;;; under the terms of the GNU General Public License as published by
  9. ;;; the Free Software Foundation; either version 3 of the License, or (at
  10. ;;; your option) any later version.
  11. ;;;
  12. ;;; GNU Guix is distributed in the hope that it will be useful, but
  13. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  14. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. ;;; GNU General Public License for more details.
  16. ;;;
  17. ;;; You should have received a copy of the GNU General Public License
  18. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  19. (define-module (gnu packages groovy)
  20. #:use-module ((guix licenses) #:prefix license:)
  21. #:use-module (guix packages)
  22. #:use-module (guix download)
  23. #:use-module (guix git-download)
  24. #:use-module (guix utils)
  25. #:use-module (guix build-system ant)
  26. #:use-module (gnu packages)
  27. #:use-module (gnu packages java)
  28. #:use-module (gnu packages xml))
  29. (define java-groovy-bootstrap
  30. (package
  31. (name "java-groovy-bootstrap")
  32. (version "2.4.15")
  33. (source
  34. (origin
  35. (method git-fetch)
  36. (uri (git-reference
  37. (url "https://github.com/apache/groovy.git")
  38. (commit (string-append
  39. "GROOVY_"
  40. (string-map (lambda (x) (if (eq? x #\.) #\_ x))
  41. version)))))
  42. (file-name (git-file-name name version))
  43. (sha256
  44. (base32 "1q4cplimr18j93zz92kgq8b6wdv0p9svr7cdr47q8b2mbjpd0x3j"))
  45. (patches
  46. (search-patches "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. #:jdk ,icedtea-8
  54. #:main-class "groovy.ui.GroovyMain"
  55. #:phases
  56. (modify-phases %standard-phases
  57. (add-before 'build 'fix-java8
  58. ;; Fix "Reference to plus is ambiguous"
  59. (lambda _
  60. (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java"
  61. (("toList\\(left\\)")
  62. "(List<T>)toList(left)"))
  63. #t))
  64. (add-before 'build 'generate-parsers
  65. (lambda _
  66. (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java"
  67. (invoke "antlr" "java.g"))
  68. (with-directory-excursion "src/main/org/codehaus/groovy/antlr"
  69. (mkdir "parser")
  70. (with-directory-excursion "parser"
  71. (invoke "antlr" "../groovy.g")))
  72. #t))
  73. (add-before 'build 'generate-exception-utils
  74. (lambda _
  75. (invoke "javac" "-cp" (getenv "CLASSPATH")
  76. "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java")
  77. (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
  78. ":config/ant/src")
  79. "org.codehaus.groovy.ExceptionUtilsGenerator"
  80. "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class")
  81. #t)))))
  82. (native-inputs
  83. `(("java-junit" ,java-junit)
  84. ("java-hamcrest-core" ,java-hamcrest-core)
  85. ("antlr2" ,antlr2)
  86. ("java-jmock-1" ,java-jmock-1)
  87. ("java-xmlunit-legacy" ,java-xmlunit-legacy)))
  88. (inputs
  89. `(("java-commons-cli" ,java-commons-cli)
  90. ("java-asm" ,java-asm)
  91. ("java-classpathx-servletapi" ,java-classpathx-servletapi)
  92. ("java-xstream" ,java-xstream)
  93. ("java-jansi" ,java-jansi)
  94. ("java-jline-2" ,java-jline-2)))
  95. (home-page "http://groovy-lang.org/")
  96. (synopsis "Groovy's java bootstrap")
  97. (description "This package contains the java bootstrap that is used to build
  98. groovy submodules.")
  99. (license license:asl2.0)))
  100. (define groovy-bootstrap
  101. (package
  102. (inherit java-groovy-bootstrap)
  103. (name "groovy-bootstrap")
  104. (arguments
  105. `(#:jar-name "groovy.jar"
  106. #:jdk ,icedtea-8
  107. ;Requires groovy-xml and logback-classic which are circular dependencies
  108. #:tests? #f
  109. #:phases
  110. (modify-phases %standard-phases
  111. (add-before 'build 'fix-java8
  112. ;; Fix "Reference to plus is ambiguous"
  113. (lambda _
  114. (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java"
  115. (("toList\\(left\\)")
  116. "(List<T>)toList(left)"))
  117. #t))
  118. (add-before 'build 'generate-parser
  119. (lambda _
  120. (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java"
  121. (invoke "antlr" "java.g"))
  122. (with-directory-excursion "src/main/org/codehaus/groovy/antlr"
  123. (mkdir "parser")
  124. (with-directory-excursion "parser"
  125. (invoke "antlr" "../groovy.g")))
  126. #t))
  127. (add-before 'build 'generate-exception-utils
  128. (lambda _
  129. (invoke "javac" "-cp" (getenv "CLASSPATH")
  130. "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java")
  131. (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
  132. ":config/ant/src")
  133. "org.codehaus.groovy.ExceptionUtilsGenerator"
  134. "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class")
  135. #t))
  136. (add-before 'build 'generate-dgminfo
  137. (lambda _
  138. (mkdir-p "target/classes/org/codehaus/groovy/runtime")
  139. (mkdir-p "target/classes/META-INF")
  140. (invoke "javac" "-cp" (getenv "CLASSPATH")
  141. "src/main/org/codehaus/groovy/tools/DgmConverter.java")
  142. (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
  143. ":src/main")
  144. "org.codehaus.groovy.tools.DgmConverter")
  145. #t))
  146. (add-before 'build 'copy-resources
  147. (lambda _
  148. (with-directory-excursion "src/main"
  149. (for-each (lambda (file)
  150. (mkdir-p (string-append "../../target/classes/"
  151. (dirname file)))
  152. (copy-file file
  153. (string-append "../../target/classes/"
  154. file)))
  155. (find-files "." ".*.(txt|properties|xml|html)")))
  156. #t))
  157. (replace 'build
  158. (lambda _
  159. (mkdir-p "build/jar")
  160. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  161. "org.codehaus.groovy.tools.FileSystemCompiler"
  162. "-d" "target/classes"
  163. "-j"; joint compilation
  164. (find-files "src/main"
  165. ".*\\.(groovy|java)$"))
  166. (invoke "jar" "-cf" "build/jar/groovy.jar"
  167. "-C" "target/classes" ".")
  168. #t)))))
  169. (inputs
  170. `(("java-apache-ivy" ,java-apache-ivy)
  171. ,@(package-inputs java-groovy-bootstrap)))
  172. (native-inputs
  173. `(("java-groovy-bootstrap" ,java-groovy-bootstrap)
  174. ,@(package-native-inputs java-groovy-bootstrap)))
  175. (synopsis "Groovy compiler")
  176. (description "This package contains the first version of the Groovy compiler.
  177. Although already usable, it doesn't contain the groovy library yet. This package
  178. is used to build the groovy submodules written in groovy.")))
  179. (define groovy-tests-bootstrap
  180. (package
  181. (inherit groovy-bootstrap)
  182. (name "groovy-tests-bootstrap")
  183. (arguments
  184. `(#:jar-name "groovy-tests-bootstrap.jar"
  185. #:jdk ,icedtea-8
  186. #:tests? #f; no tests
  187. #:phases
  188. (modify-phases %standard-phases
  189. (replace 'build
  190. (lambda _
  191. (mkdir-p "build/classes")
  192. (mkdir-p "build/jar")
  193. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  194. "org.codehaus.groovy.tools.FileSystemCompiler"
  195. "-d" "build/classes"
  196. "-j"; joint compilation
  197. (append
  198. (find-files "src/test" "TestSupport.java")
  199. (find-files "src/test" "HeadlessTestSupport.java")
  200. (find-files "src/test" "XmlAssert.java")))
  201. (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar"
  202. "-C" "build/classes" ".")
  203. #t)))))
  204. (inputs
  205. `(("groovy-test" ,groovy-test)
  206. ,@(package-inputs groovy-bootstrap)))
  207. (native-inputs
  208. `(("groovy-bootstrap" ,groovy-bootstrap)
  209. ,@(package-native-inputs java-groovy-bootstrap)))
  210. (synopsis "Groovy test classes")
  211. (description "This package contains three classes required for testing
  212. other groovy submodules.")))
  213. (define groovy-test
  214. (package
  215. (inherit groovy-bootstrap)
  216. (name "groovy-test")
  217. (arguments
  218. `(#:jar-name "groovy-test.jar"
  219. #:jdk ,icedtea-8
  220. #:test-dir "subprojects/groovy-test/src/test"
  221. #:phases
  222. (modify-phases %standard-phases
  223. (replace 'build
  224. (lambda _
  225. (mkdir-p "build/classes")
  226. (mkdir-p "build/jar")
  227. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  228. "org.codehaus.groovy.tools.FileSystemCompiler"
  229. "-d" "build/classes" "-j"; joint compilation
  230. (find-files "subprojects/groovy-test/src/main"
  231. ".*\\.(groovy|java)$"))
  232. (invoke "jar" "-cf" "build/jar/groovy-test.jar"
  233. "-C" "build/classes" ".")
  234. #t))
  235. (replace 'check
  236. (lambda _
  237. (mkdir-p "build/test-classes")
  238. (substitute* "build.xml"
  239. (("depends=\"compile-tests\"") "depends=\"\"")
  240. (("}/java") "}/groovy"))
  241. (apply invoke "java" "-cp"
  242. (string-append (getenv "CLASSPATH") ":build/classes")
  243. "org.codehaus.groovy.tools.FileSystemCompiler"
  244. "-d" "build/test-classes" "-j"
  245. (append (find-files "subprojects/groovy-test/src/test"
  246. ".*\\.(groovy|java)$")))
  247. (invoke "ant" "check")
  248. #t)))))
  249. (native-inputs
  250. `(("groovy-bootstrap" ,groovy-bootstrap)
  251. ,@(package-native-inputs java-groovy-bootstrap)))
  252. (synopsis "Groovy test submodule")
  253. (description "This package contains the test submodules used to test
  254. other groovy submodules.")))
  255. (define groovy-xml
  256. (package
  257. (inherit groovy-bootstrap)
  258. (name "groovy-xml")
  259. (arguments
  260. `(#:jar-name "groovy-xml.jar"
  261. #:jdk ,icedtea-8
  262. #:test-dir "src/test"
  263. #:phases
  264. (modify-phases %standard-phases
  265. (add-before 'configure 'chdir
  266. (lambda _
  267. (chdir "subprojects/groovy-xml")
  268. #t))
  269. (replace 'build
  270. (lambda _
  271. (mkdir-p "build/classes")
  272. (mkdir-p "build/jar")
  273. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  274. "org.codehaus.groovy.tools.FileSystemCompiler"
  275. "-d" "build/classes" "-j"; joint compilation
  276. (find-files "src/main" ".*\\.(groovy|java)$"))
  277. (invoke "jar" "-cf" "build/jar/groovy-xml.jar"
  278. "-C" "build/classes" ".")
  279. #t))
  280. (replace 'check
  281. (lambda _
  282. (mkdir-p "build/test-classes")
  283. (substitute* "build.xml"
  284. (("depends=\"compile-tests\"") "depends=\"\"")
  285. (("}/java") "}/groovy"))
  286. (apply invoke "java" "-cp"
  287. (string-append (getenv "CLASSPATH") ":build/classes")
  288. "org.codehaus.groovy.tools.FileSystemCompiler"
  289. "-d" "build/test-classes" "-j"
  290. (append (find-files "src/test" ".*\\.(groovy|java)$")))
  291. (invoke "ant" "check")
  292. #t)))))
  293. (native-inputs
  294. `(("groovy-bootstrap" ,groovy-bootstrap)
  295. ("groovy-test" ,groovy-test)
  296. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  297. ,@(package-native-inputs java-groovy-bootstrap)))
  298. (synopsis "Groovy XML")
  299. (description "This package contains XML-related utilities for groovy.")))
  300. (define groovy-templates
  301. (package
  302. (inherit groovy-bootstrap)
  303. (name "groovy-templates")
  304. (arguments
  305. `(#:jar-name "groovy-templates.jar"
  306. #:jdk ,icedtea-8
  307. #:test-dir "subprojects/groovy-templates/src/test"
  308. #:tests? #f;Requires spock-framework which is a circular dependency
  309. #:phases
  310. (modify-phases %standard-phases
  311. (replace 'build
  312. (lambda _
  313. (mkdir-p "build/classes")
  314. (mkdir-p "build/jar")
  315. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  316. "org.codehaus.groovy.tools.FileSystemCompiler"
  317. "-d" "build/classes" "-j"; joint compilation
  318. (find-files "subprojects/groovy-templates/src/main"
  319. ".*\\.(groovy|java)$"))
  320. (invoke "jar" "-cf" "build/jar/groovy-templates.jar"
  321. "-C" "build/classes" ".")
  322. #t)))))
  323. (inputs
  324. `(("groovy-xml" ,groovy-xml)
  325. ,@(package-inputs groovy-bootstrap)))
  326. (native-inputs
  327. `(("groovy-bootstrap" ,groovy-bootstrap)
  328. ("groovy-test" ,groovy-test)
  329. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  330. ,@(package-native-inputs java-groovy-bootstrap)))
  331. (synopsis "Groovy template engine")
  332. (description "This package contains a template framework which is
  333. well-suited to applications where the text to be generated follows the form of
  334. a static template.")))
  335. (define groovy-groovydoc
  336. (package
  337. (inherit groovy-bootstrap)
  338. (name "groovy-groovydoc")
  339. (arguments
  340. `(#:jar-name "groovy-groovydoc.jar"
  341. #:jdk ,icedtea-8
  342. #:test-dir "subprojects/groovy-groovydoc/src/test"
  343. #:tests? #f; Requires groovy-ant which is a circular dependency
  344. #:phases
  345. (modify-phases %standard-phases
  346. (add-before 'build 'copy-resources
  347. (lambda _
  348. (copy-recursively "subprojects/groovy-groovydoc/src/main/resources"
  349. "build/classes")
  350. #t))
  351. (replace 'build
  352. (lambda _
  353. (mkdir-p "build/classes")
  354. (mkdir-p "build/jar")
  355. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  356. "org.codehaus.groovy.tools.FileSystemCompiler"
  357. "-d" "build/classes"
  358. "-j"; joint compilation
  359. (find-files "subprojects/groovy-groovydoc/src/main"
  360. ".*\\.(groovy|java)$"))
  361. (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar"
  362. "-C" "build/classes" ".")
  363. #t)))))
  364. (inputs
  365. `(("groovy-templates" ,groovy-templates)
  366. ,@(package-inputs groovy-bootstrap)))
  367. (native-inputs
  368. `(("groovy-bootstrap" ,groovy-bootstrap)
  369. ("groovy-test" ,groovy-test)
  370. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  371. ,@(package-native-inputs java-groovy-bootstrap)))
  372. (synopsis "Groovy documentation generation")
  373. (description "This package contains the groovy documentation generator,
  374. similar to javadoc.")))
  375. (define groovy-ant
  376. (package
  377. (inherit groovy-bootstrap)
  378. (name "groovy-ant")
  379. (arguments
  380. `(#:jar-name "groovy-ant.jar"
  381. #:jdk ,icedtea-8
  382. #:test-dir "src/test"
  383. ;; FIXME: Excluding all tests because they fail
  384. #:test-exclude (list
  385. "**/GroovyTest.java"
  386. "**/GroovycTest.java")
  387. #:phases
  388. (modify-phases %standard-phases
  389. (add-before 'configure 'chdir
  390. (lambda _
  391. (chdir "subprojects/groovy-ant")
  392. #t))
  393. (add-before 'build 'copy-resources
  394. (lambda _
  395. (copy-recursively "src/main/resources" "build/classes")
  396. #t))
  397. (replace 'build
  398. (lambda _
  399. (mkdir-p "build/classes")
  400. (mkdir-p "build/jar")
  401. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  402. "org.codehaus.groovy.tools.FileSystemCompiler"
  403. "-d" "build/classes" "-j"; joint compilation
  404. (find-files "src/main" ".*\\.(groovy|java)$"))
  405. (invoke "jar" "-cf" "build/jar/groovy-ant.jar"
  406. "-C" "build/classes" ".")
  407. #t))
  408. (replace 'check
  409. (lambda _
  410. (mkdir-p "build/test-classes")
  411. (substitute* "build.xml"
  412. (("depends=\"compile-tests\"") "depends=\"\"")
  413. (("}/java") "}/groovy"))
  414. (apply invoke "java" "-cp"
  415. (string-append (getenv "CLASSPATH") ":build/classes")
  416. "org.codehaus.groovy.tools.FileSystemCompiler"
  417. "-d" "build/test-classes" "-j"
  418. (find-files "src/test" ".*\\.(groovy|java)$"))
  419. (invoke "ant" "check")
  420. #t)))))
  421. (inputs
  422. `(("groovy-groovydoc" ,groovy-groovydoc)
  423. ,@(package-inputs groovy-bootstrap)))
  424. (native-inputs
  425. `(("groovy-bootstrap" ,groovy-bootstrap)
  426. ("groovy-xml" ,groovy-xml)
  427. ("groovy-test" ,groovy-test)
  428. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  429. ,@(package-native-inputs java-groovy-bootstrap)))
  430. (synopsis "Groovy ant tasks")
  431. (description "This package contains groovy-related ant tasks definitions.")))
  432. (define groovy-bsf
  433. (package
  434. (inherit groovy-bootstrap)
  435. (name "groovy-bsf")
  436. (arguments
  437. `(#:jar-name "groovy-bsf.jar"
  438. #:jdk ,icedtea-8
  439. #:test-dir "src/test"
  440. #:test-exclude (list
  441. ;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException:
  442. ;; groovy.lang.MissingMethodException: No signature of method:
  443. ;; java.util.ArrayList.each() is applicable for argument types:
  444. ;; (groovy.script.MapFromList$_doit_closure1) values:
  445. ;; [groovy.script.MapFromList$_doit_closure1@17e554d5]
  446. "**/BSFTest.java")
  447. #:phases
  448. (modify-phases %standard-phases
  449. (add-before 'configure 'chdir
  450. (lambda _
  451. (chdir "subprojects/groovy-bsf")
  452. #t))
  453. (replace 'build
  454. (lambda _
  455. (mkdir-p "build/classes")
  456. (mkdir-p "build/jar")
  457. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  458. "org.codehaus.groovy.tools.FileSystemCompiler"
  459. "-d" "build/classes" "-j"; joint compilation
  460. (find-files "src/main" ".*\\.(groovy|java)$"))
  461. (invoke "jar" "-cf" "build/jar/groovy-bsf.jar"
  462. "-C" "build/classes" ".")
  463. #t))
  464. (replace 'check
  465. (lambda _
  466. (mkdir-p "build/test-classes")
  467. (substitute* "build.xml"
  468. (("depends=\"compile-tests\"") "depends=\"\""))
  469. (apply invoke "java" "-cp"
  470. (string-append (getenv "CLASSPATH") ":build/classes")
  471. "org.codehaus.groovy.tools.FileSystemCompiler"
  472. "-d" "build/test-classes" "-j"
  473. (find-files "src/test" ".*\\.(groovy|java)$"))
  474. (invoke "ant" "check")
  475. #t)))))
  476. (inputs
  477. `(("java-commons-bsf" ,java-commons-bsf)
  478. ,@(package-inputs groovy-bootstrap)))
  479. (native-inputs
  480. `(("groovy-bootstrap" ,groovy-bootstrap)
  481. ("groovy-test" ,groovy-test)
  482. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  483. ("java-commons-logging-minimal" ,java-commons-logging-minimal)
  484. ,@(package-native-inputs java-groovy-bootstrap)))
  485. (synopsis "Groovy BSF engine")
  486. (description "This package defines the BSF engine for using Groovy inside
  487. any @dfn{Bean Scripting Framework} (BSF) application.")))
  488. (define groovy-swing
  489. (package
  490. (inherit groovy-bootstrap)
  491. (name "groovy-swing")
  492. (arguments
  493. `(#:jar-name "groovy-swing.jar"
  494. #:jdk ,icedtea-8
  495. ;; FIXME: tests are not run
  496. #:test-dir "src/test"
  497. #:phases
  498. (modify-phases %standard-phases
  499. (add-before 'configure 'chdir
  500. (lambda _
  501. (chdir "subprojects/groovy-swing")
  502. #t))
  503. (replace 'build
  504. (lambda _
  505. (mkdir-p "build/classes")
  506. (mkdir-p "build/jar")
  507. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  508. "org.codehaus.groovy.tools.FileSystemCompiler"
  509. "-d" "build/classes" "-j"; joint compilation
  510. (find-files "src/main" ".*\\.(groovy|java)$"))
  511. (invoke "jar" "-cf" "build/jar/groovy-swing.jar"
  512. "-C" "build/classes" ".")
  513. #t))
  514. (replace 'check
  515. (lambda _
  516. (mkdir-p "build/test-classes")
  517. (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy"
  518. (("HeadlessTestSupport.headless") "isHeadless()"))
  519. (substitute* "build.xml"
  520. (("depends=\"compile-tests\"") "depends=\"\"")
  521. (("}/java") "}/groovy"))
  522. (apply invoke "java" "-cp"
  523. (string-append (getenv "CLASSPATH") ":build/classes")
  524. "org.codehaus.groovy.tools.FileSystemCompiler"
  525. "-d" "build/test-classes" "-j"
  526. (find-files "src/test" ".*\\.(groovy|java)$"))
  527. (invoke "ant" "check")
  528. #t)))))
  529. (native-inputs
  530. `(("groovy-bootstrap" ,groovy-bootstrap)
  531. ("groovy-test" ,groovy-test)
  532. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  533. ("java-commons-logging-minimal" ,java-commons-logging-minimal)
  534. ,@(package-native-inputs java-groovy-bootstrap)))
  535. (synopsis "Groovy graphical library")
  536. (description "This package contains the groovy bindings to Java Swing, a
  537. library used to build graphical interfaces.")))
  538. (define groovy-console
  539. (package
  540. (inherit groovy-bootstrap)
  541. (name "groovy-console")
  542. (arguments
  543. `(#:jar-name "groovy-console.jar"
  544. #:jdk ,icedtea-8
  545. ;; FIXME: tests are not run
  546. #:test-dir "src/test"
  547. #:phases
  548. (modify-phases %standard-phases
  549. (add-before 'configure 'chdir
  550. (lambda _
  551. (chdir "subprojects/groovy-console")
  552. #t))
  553. (add-before 'build 'copy-resources
  554. (lambda _
  555. (copy-recursively "src/main/resources" "build/classes")
  556. #t))
  557. (replace 'build
  558. (lambda _
  559. (mkdir-p "build/classes")
  560. (mkdir-p "build/jar")
  561. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  562. "org.codehaus.groovy.tools.FileSystemCompiler"
  563. "-d" "build/classes" "-j"; joint compilation
  564. (find-files "src/main" ".*\\.(groovy|java)$"))
  565. (invoke "jar" "-cf" "build/jar/groovy-console.jar"
  566. "-C" "build/classes" ".")
  567. #t))
  568. (replace 'check
  569. (lambda _
  570. (mkdir-p "build/test-classes")
  571. (substitute* "build.xml"
  572. (("depends=\"compile-tests\"") "depends=\"\"")
  573. (("}/java") "}/groovy"))
  574. (substitute*
  575. "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy"
  576. (("HeadlessTestSupport.headless") "isHeadless()"))
  577. (apply invoke "java" "-cp"
  578. (string-append (getenv "CLASSPATH") ":build/classes")
  579. "org.codehaus.groovy.tools.FileSystemCompiler"
  580. "-d" "build/test-classes" "-j"
  581. (append
  582. (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$")
  583. (find-files "src/test" ".*\\.(groovy|java)$")))
  584. (invoke "ant" "check")
  585. #t)))))
  586. (inputs
  587. `(("groovy-swing" ,groovy-swing)
  588. ("groovy-templates" ,groovy-templates)
  589. ,@(package-inputs groovy-bootstrap)))
  590. (native-inputs
  591. `(("groovy-bootstrap" ,groovy-bootstrap)
  592. ("groovy-test" ,groovy-test)
  593. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  594. ("java-commons-logging-minimal" ,java-commons-logging-minimal)
  595. ,@(package-native-inputs java-groovy-bootstrap)))
  596. (synopsis "Groovy graphical interface")
  597. (description "This package contains a graphical interface to run groovy.")))
  598. (define groovy-docgenerator
  599. (package
  600. (inherit groovy-bootstrap)
  601. (name "groovy-docgenerator")
  602. (arguments
  603. `(#:jar-name "groovy-docgenerator.jar"
  604. #:jdk ,icedtea-8
  605. #:tests? #f; No tests
  606. #:phases
  607. (modify-phases %standard-phases
  608. (add-before 'configure 'chdir
  609. (lambda _
  610. (chdir "subprojects/groovy-docgenerator")
  611. #t))
  612. (add-before 'build 'copy-resources
  613. (lambda _
  614. (copy-recursively "src/main/resources" "build/classes")
  615. #t))
  616. (replace 'build
  617. (lambda _
  618. (mkdir-p "build/classes")
  619. (mkdir-p "build/jar")
  620. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  621. "org.codehaus.groovy.tools.FileSystemCompiler"
  622. "-d" "build/classes" "-j"; joint compilation
  623. (find-files "src/main" ".*\\.(groovy|java)$"))
  624. (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar"
  625. "-C" "build/classes" ".")
  626. #t)))))
  627. (inputs
  628. `(("groovy-templates" ,groovy-templates)
  629. ("groovy-swing" ,groovy-swing)
  630. ("java-qdox-1.12" ,java-qdox-1.12)
  631. ,@(package-inputs groovy-bootstrap)))
  632. (native-inputs
  633. `(("groovy-bootstrap" ,groovy-bootstrap)
  634. ("groovy-test" ,groovy-test)
  635. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  636. ,@(package-native-inputs java-groovy-bootstrap)))
  637. (synopsis "Groovy documentation generation")
  638. (description "This package contains a command line tool to generate
  639. documentation for groovy applications.")))
  640. (define groovy-groovysh
  641. (package
  642. (inherit groovy-bootstrap)
  643. (name "groovy-groovysh")
  644. (arguments
  645. `(#:jar-name "groovy-groovysh.jar"
  646. #:test-dir "src/test"
  647. #:jdk ,icedtea-8
  648. #:phases
  649. (modify-phases %standard-phases
  650. (add-before 'configure 'chdir
  651. (lambda _
  652. (chdir "subprojects/groovy-groovysh")
  653. #t))
  654. (add-before 'build 'copy-resources
  655. (lambda _
  656. (copy-recursively "src/main/resources" "build/classes")
  657. #t))
  658. (replace 'build
  659. (lambda _
  660. (mkdir-p "build/classes")
  661. (mkdir-p "build/jar")
  662. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  663. "org.codehaus.groovy.tools.FileSystemCompiler"
  664. "-d" "build/classes" "-j"; joint compilation
  665. (find-files "src/main" ".*\\.(groovy|java)$"))
  666. (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar"
  667. "-C" "build/classes" ".")
  668. #t))
  669. (replace 'check
  670. (lambda _
  671. (mkdir-p "build/test-classes")
  672. (substitute* "build.xml"
  673. (("depends=\"compile-tests\"") "depends=\"\"")
  674. (("}/java") "}/groovy"))
  675. (apply invoke "java" "-cp"
  676. (string-append (getenv "CLASSPATH") ":build/classes")
  677. "org.codehaus.groovy.tools.FileSystemCompiler"
  678. "-d" "build/test-classes" "-j"
  679. (append (find-files "src/test" ".*\\.(groovy|java)$")))
  680. (invoke "ant" "check")
  681. #t)))))
  682. (inputs
  683. `(("groovy-xml" ,groovy-xml)
  684. ("groovy-console" ,groovy-console)
  685. ,@(package-inputs groovy-bootstrap)))
  686. (native-inputs
  687. `(("groovy-bootstrap" ,groovy-bootstrap)
  688. ("groovy-test" ,groovy-test)
  689. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  690. ,@(package-native-inputs java-groovy-bootstrap)))
  691. (synopsis "Groovy REPL")
  692. (description "This package contains the Groovy REPL.")))
  693. (define groovy-jmx
  694. (package
  695. (inherit groovy-bootstrap)
  696. (name "groovy-jmx")
  697. (arguments
  698. `(#:jar-name "groovy-jmx.jar"
  699. #:test-dir "src/test"
  700. #:jdk ,icedtea-8
  701. #:phases
  702. (modify-phases %standard-phases
  703. (add-before 'configure 'chdir
  704. (lambda _
  705. (chdir "subprojects/groovy-jmx")
  706. #t))
  707. (replace 'build
  708. (lambda _
  709. (mkdir-p "build/classes")
  710. (mkdir-p "build/jar")
  711. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  712. "org.codehaus.groovy.tools.FileSystemCompiler"
  713. "-d" "build/classes" "-j"; joint compilation
  714. (find-files "src/main" ".*\\.(groovy|java)$"))
  715. (invoke "jar" "-cf" "build/jar/groovy-jmx.jar"
  716. "-C" "build/classes" ".")
  717. #t))
  718. (replace 'check
  719. (lambda _
  720. (mkdir-p "build/test-classes")
  721. (substitute* "build.xml"
  722. (("depends=\"compile-tests\"") "depends=\"\"")
  723. (("}/java") "}/groovy"))
  724. (apply invoke "java" "-cp"
  725. (string-append (getenv "CLASSPATH") ":build/classes")
  726. "org.codehaus.groovy.tools.FileSystemCompiler"
  727. "-d" "build/test-classes" "-j"
  728. (append (find-files "src/test" ".*\\.(groovy|java)$")))
  729. (invoke "ant" "check")
  730. #t)))))
  731. (native-inputs
  732. `(("groovy-bootstrap" ,groovy-bootstrap)
  733. ("groovy-test" ,groovy-test)
  734. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  735. ,@(package-native-inputs java-groovy-bootstrap)))
  736. (synopsis "Groovy JMX extension")
  737. (description "This package contains the JMX extension of Groovy, for
  738. management and monitoring of JVM-based solutions.")))
  739. (define groovy-json
  740. (package
  741. (inherit groovy-bootstrap)
  742. (name "groovy-json")
  743. (arguments
  744. `(#:jar-name "groovy-json.jar"
  745. #:test-dir "src/test"
  746. #:jdk ,icedtea-8
  747. #:phases
  748. (modify-phases %standard-phases
  749. (add-before 'configure 'chdir
  750. (lambda _
  751. (chdir "subprojects/groovy-json")
  752. #t))
  753. (replace 'build
  754. (lambda _
  755. (mkdir-p "build/classes")
  756. (mkdir-p "build/jar")
  757. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  758. "org.codehaus.groovy.tools.FileSystemCompiler"
  759. "-d" "build/classes" "-j"; joint compilation
  760. (find-files "src/main" ".*\\.(groovy|java)$"))
  761. (invoke "jar" "-cf" "build/jar/groovy-json.jar"
  762. "-C" "build/classes" ".")
  763. #t))
  764. (replace 'check
  765. (lambda _
  766. (mkdir-p "build/test-classes")
  767. (substitute* "build.xml"
  768. (("depends=\"compile-tests\"") "depends=\"\"")
  769. (("}/java") "}/groovy"))
  770. (apply invoke "java" "-cp"
  771. (string-append (getenv "CLASSPATH") ":build/classes")
  772. "org.codehaus.groovy.tools.FileSystemCompiler"
  773. "-d" "build/test-classes" "-j"
  774. (append (find-files "src/test" ".*\\.(groovy|java)$")))
  775. (invoke "ant" "check")
  776. #t)))))
  777. (native-inputs
  778. `(("groovy-bootstrap" ,groovy-bootstrap)
  779. ("groovy-test" ,groovy-test)
  780. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  781. ,@(package-native-inputs java-groovy-bootstrap)))
  782. (synopsis "Groovy JSON")
  783. (description "This package contains JSON-related utilities for groovy.")))
  784. (define groovy-jsr223
  785. (package
  786. (inherit groovy-bootstrap)
  787. (name "groovy-jsr223")
  788. (arguments
  789. `(#:jar-name "groovy-jsr223.jar"
  790. #:test-dir "src/test"
  791. #:jdk ,icedtea-8
  792. #:phases
  793. (modify-phases %standard-phases
  794. (add-before 'configure 'chdir
  795. (lambda _
  796. (chdir "subprojects/groovy-jsr223")
  797. #t))
  798. (add-before 'build 'copy-resources
  799. (lambda _
  800. (copy-recursively "src/main/resources" "build/classes")
  801. #t))
  802. (replace 'build
  803. (lambda _
  804. (mkdir-p "build/classes")
  805. (mkdir-p "build/jar")
  806. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  807. "org.codehaus.groovy.tools.FileSystemCompiler"
  808. "-d" "build/classes" "-j"; joint compilation
  809. (find-files "src/main" ".*\\.(groovy|java)$"))
  810. (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar"
  811. "-C" "build/classes" ".")
  812. #t))
  813. (replace 'check
  814. (lambda _
  815. (mkdir-p "build/test-classes")
  816. (substitute* "build.xml"
  817. (("depends=\"compile-tests\"") "depends=\"\"")
  818. (("}/java") "}/groovy"))
  819. (apply invoke "java" "-cp"
  820. (string-append (getenv "CLASSPATH") ":build/classes")
  821. "org.codehaus.groovy.tools.FileSystemCompiler"
  822. "-d" "build/test-classes" "-j"
  823. (append (find-files "src/test" ".*\\.(groovy|java)$")))
  824. (invoke "ant" "check")
  825. #t)))))
  826. (native-inputs
  827. `(("groovy-bootstrap" ,groovy-bootstrap)
  828. ("groovy-test" ,groovy-test)
  829. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  830. ,@(package-native-inputs java-groovy-bootstrap)))
  831. (synopsis "Groovy's own JSR223 implementation")
  832. (description "This package contains Groovy's own JSR223 implementation. This
  833. module is used for interaction between Groovy and Java code.")))
  834. (define groovy-nio
  835. (package
  836. (inherit groovy-bootstrap)
  837. (name "groovy-nio")
  838. (arguments
  839. `(#:jar-name "groovy-nio.jar"
  840. #:test-dir "src/test"
  841. #:jdk ,icedtea-8
  842. #:tests? #f; Requires spock-framework
  843. #:phases
  844. (modify-phases %standard-phases
  845. (add-before 'configure 'chdir
  846. (lambda _
  847. (chdir "subprojects/groovy-nio")
  848. #t))
  849. (replace 'build
  850. (lambda _
  851. (mkdir-p "build/classes")
  852. (mkdir-p "build/jar")
  853. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  854. "org.codehaus.groovy.tools.FileSystemCompiler"
  855. "-d" "build/classes" "-j"; joint compilation
  856. (find-files "src/main" ".*\\.(groovy|java)$"))
  857. (invoke "jar" "-cf" "build/jar/groovy-nio.jar"
  858. "-C" "build/classes" ".")
  859. #t)))))
  860. (native-inputs
  861. `(("groovy-bootstrap" ,groovy-bootstrap)
  862. ("groovy-test" ,groovy-test)
  863. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  864. ,@(package-native-inputs java-groovy-bootstrap)))
  865. (synopsis "Groovy input-output library")
  866. (description "This package implements an input/output library that extends
  867. the functionality of the common library of Java.")))
  868. (define groovy-servlet
  869. (package
  870. (inherit groovy-bootstrap)
  871. (name "groovy-servlet")
  872. (arguments
  873. `(#:jar-name "groovy-servlet.jar"
  874. #:test-dir "src/test"
  875. #:jdk ,icedtea-8
  876. #:phases
  877. (modify-phases %standard-phases
  878. (add-before 'configure 'chdir
  879. (lambda _
  880. (chdir "subprojects/groovy-servlet")
  881. #t))
  882. (replace 'build
  883. (lambda _
  884. (mkdir-p "build/classes")
  885. (mkdir-p "build/jar")
  886. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  887. "org.codehaus.groovy.tools.FileSystemCompiler"
  888. "-d" "build/classes"
  889. "-j"; joint compilation
  890. (find-files "src/main" ".*\\.(groovy|java)$"))
  891. (invoke "jar" "-cf" "build/jar/groovy-servlet.jar"
  892. "-C" "build/classes" ".")
  893. #t))
  894. (replace 'check
  895. (lambda _
  896. (mkdir-p "build/test-classes")
  897. (substitute* "build.xml"
  898. (("depends=\"compile-tests\"") "depends=\"\"")
  899. (("}/java") "}/groovy"))
  900. (apply invoke "java" "-cp"
  901. (string-append (getenv "CLASSPATH") ":build/classes")
  902. "org.codehaus.groovy.tools.FileSystemCompiler"
  903. "-d" "build/test-classes"
  904. "-j"
  905. (append (find-files "src/test" ".*\\.(groovy|java)$")))
  906. (invoke "ant" "check")
  907. #t)))))
  908. (inputs
  909. `(("groovy-templates" ,groovy-templates)
  910. ("groovy-xml" ,groovy-xml)
  911. ,@(package-inputs groovy-bootstrap)))
  912. (native-inputs
  913. `(("groovy-bootstrap" ,groovy-bootstrap)
  914. ("groovy-json" ,groovy-json)
  915. ("groovy-test" ,groovy-test)
  916. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  917. ,@(package-native-inputs java-groovy-bootstrap)))
  918. (synopsis "Groovy's servlet implementation")
  919. (description "This package contains a library to create groovlets, Groovy's
  920. version of Java servlets.")))
  921. (define groovy-sql
  922. (package
  923. (inherit groovy-bootstrap)
  924. (name "groovy-sql")
  925. (arguments
  926. `(#:jar-name "groovy-sql.jar"
  927. #:test-dir "src/test"
  928. #:tests? #f;TODO: Requires hsqldb
  929. #:jdk ,icedtea-8
  930. #:phases
  931. (modify-phases %standard-phases
  932. (add-before 'configure 'chdir
  933. (lambda _
  934. (chdir "subprojects/groovy-sql")
  935. #t))
  936. (replace 'build
  937. (lambda _
  938. (mkdir-p "build/classes")
  939. (mkdir-p "build/jar")
  940. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  941. "org.codehaus.groovy.tools.FileSystemCompiler"
  942. "-d" "build/classes" "-j"; joint compilation
  943. (find-files "src/main"
  944. ".*\\.(groovy|java)$"))
  945. (invoke "jar" "-cf" "build/jar/groovy-sql.jar"
  946. "-C" "build/classes" ".")
  947. #t)))))
  948. (native-inputs
  949. `(("groovy-bootstrap" ,groovy-bootstrap)
  950. ("groovy-test" ,groovy-test)
  951. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  952. ,@(package-native-inputs java-groovy-bootstrap)))
  953. (synopsis "Groovy SQL library")
  954. (description "This package contains a facade over Java's normal JDBC APIs
  955. providing greatly simplified resource management and result set handling.")))
  956. (define groovy-testng
  957. (package
  958. (inherit groovy-bootstrap)
  959. (name "groovy-testng")
  960. (arguments
  961. `(#:jar-name "groovy-testng.jar"
  962. #:tests? #f; No tests
  963. #:jdk ,icedtea-8
  964. #:phases
  965. (modify-phases %standard-phases
  966. (add-before 'configure 'chdir
  967. (lambda _
  968. (chdir "subprojects/groovy-testng")
  969. #t))
  970. (add-before 'build 'copy-resources
  971. (lambda _
  972. (copy-recursively "src/main/resources" "build/classes")
  973. #t))
  974. (replace 'build
  975. (lambda _
  976. (mkdir-p "build/classes")
  977. (mkdir-p "build/jar")
  978. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  979. "org.codehaus.groovy.tools.FileSystemCompiler"
  980. "-d" "build/classes"
  981. "-j"; joint compilation
  982. (find-files "src/main" ".*\\.(groovy|java)$"))
  983. (invoke "jar" "-cf" "build/jar/groovy-testng.jar"
  984. "-C" "build/classes" ".")
  985. #t)))))
  986. (native-inputs
  987. `(("groovy-bootstrap" ,groovy-bootstrap)
  988. ("groovy-test" ,groovy-test)
  989. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  990. ,@(package-native-inputs java-groovy-bootstrap)))
  991. (synopsis "Groovy testing framework")
  992. (description "This package contains integration code for running TestNG
  993. tests in Groovy.")))
  994. (define groovy-macro
  995. (package
  996. (inherit groovy-bootstrap)
  997. (name "groovy-macro")
  998. (arguments
  999. `(#:jar-name "groovy-macro.jar"
  1000. #:test-dir "src/test"
  1001. #:jdk ,icedtea-8
  1002. #:phases
  1003. (modify-phases %standard-phases
  1004. (add-before 'configure 'chdir
  1005. (lambda _
  1006. (chdir "subprojects/groovy-macro")
  1007. #t))
  1008. (replace 'build
  1009. (lambda _
  1010. (mkdir-p "build/classes")
  1011. (mkdir-p "build/jar")
  1012. (apply invoke "java" "-cp" (getenv "CLASSPATH")
  1013. "org.codehaus.groovy.tools.FileSystemCompiler"
  1014. "-d" "build/classes" "-j"; joint compilation
  1015. (find-files "src/main" ".*\\.(groovy|java)$"))
  1016. (invoke "jar" "-cf" "build/jar/groovy-macro.jar"
  1017. "-C" "build/classes" ".")
  1018. #t))
  1019. (replace 'check
  1020. (lambda _
  1021. (mkdir-p "build/test-classes")
  1022. (substitute* "build.xml"
  1023. (("depends=\"compile-tests\"") "depends=\"\"")
  1024. (("}/java") "}/groovy"))
  1025. (apply invoke "java" "-cp"
  1026. (string-append (getenv "CLASSPATH") ":build/classes")
  1027. "org.codehaus.groovy.tools.FileSystemCompiler"
  1028. "-d" "build/test-classes" "-j"
  1029. (append (find-files "src/test" ".*\\.(groovy|java)$")))
  1030. (invoke "ant" "check")
  1031. #t)))))
  1032. (inputs
  1033. `(("groovy-templates" ,groovy-templates)
  1034. ("groovy-xml" ,groovy-xml)
  1035. ,@(package-inputs groovy-bootstrap)))
  1036. (native-inputs
  1037. `(("groovy-bootstrap" ,groovy-bootstrap)
  1038. ("groovy-json" ,groovy-json)
  1039. ("groovy-test" ,groovy-test)
  1040. ("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
  1041. ,@(package-native-inputs java-groovy-bootstrap)))
  1042. (synopsis "Groovy macro processor")
  1043. (description "This package contains a high-level library to create macro
  1044. and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
  1045. (define-public groovy
  1046. (package
  1047. (inherit groovy-bootstrap)
  1048. (name "groovy")
  1049. (arguments
  1050. `(#:tests? #f; No tests
  1051. #:jdk ,icedtea-8
  1052. #:phases
  1053. (modify-phases %standard-phases
  1054. (delete 'configure)
  1055. (delete 'build)
  1056. (replace 'install
  1057. (lambda* (#:key outputs inputs #:allow-other-keys)
  1058. (let* ((out (assoc-ref outputs "out"))
  1059. (out-bin (string-append out "/bin"))
  1060. (out-lib (string-append out "/lib")))
  1061. (with-directory-excursion "src/bin"
  1062. (substitute* "startGroovy"
  1063. (("\"\\\\\"") "\"")
  1064. (("\\\\\"\"") "\"")
  1065. (("\\\\\\$") "$")
  1066. (("@GROOVYJAR@") "groovy.jar")
  1067. (("MAX_FD=\"maximum\"")
  1068. (string-append
  1069. "MAX_FD=\"maximum\"\nJAVAHOME="
  1070. (assoc-ref inputs "jdk"))))
  1071. ;; Groovy uses class loading. It's not enough to put the class
  1072. ;; in the loader's classpath, as it causes breakages:
  1073. ;; the compiler would give this error:
  1074. ;; "Prohibited package name: java.lang"
  1075. ;; So we symlink dependencies in this package's output. The
  1076. ;; starter class (in groovy-bootstrap) is where the class loader
  1077. ;; will look for dependencies, so we put it there too.
  1078. (mkdir-p out-lib)
  1079. (for-each
  1080. (lambda (input)
  1081. (for-each
  1082. (lambda (jar)
  1083. (symlink jar (string-append out-lib "/" (basename jar))))
  1084. (find-files (assoc-ref inputs input) ".*.jar")))
  1085. '("groovy-bootstrap" "groovy-ant" "groovy-bsf"
  1086. "groovy-console" "groovy-docgenerator"
  1087. "groovy-groovydoc" "groovy-groovysh"
  1088. "groovy-jmx" "groovy-json" "groovy-jsr223"
  1089. "groovy-nio" "groovy-servlet" "groovy-sql"
  1090. "groovy-swing" "groovy-templates" "groovy-testng"
  1091. "groovy-xml" "java-commons-cli" "java-asm"
  1092. "java-classpathx-servletapi" "java-xstream"
  1093. "java-jansi" "java-jline-2"))
  1094. ;; antlr.jar is present twice in antlr2. Symlink doesn't like
  1095. ;; it, so we symlink it here.
  1096. (symlink (string-append (assoc-ref inputs "antlr2") "/lib/antlr.jar")
  1097. (string-append out-lib "/antlr.jar"))
  1098. (for-each
  1099. (lambda (tool)
  1100. (install-file tool out-bin)
  1101. (chmod (string-append out-bin "/" tool) #o755))
  1102. '("grape" "groovy" "groovyc" "groovyConsole" "groovydoc"
  1103. "groovysh" "java2groovy" "startGroovy")))
  1104. (install-file "src/conf/groovy-starter.conf"
  1105. (string-append out "/conf"))
  1106. #t))))))
  1107. (inputs
  1108. `(("groovy-bootstrap" ,groovy-bootstrap)
  1109. ("groovy-ant" ,groovy-ant)
  1110. ("groovy-bsf" ,groovy-bsf)
  1111. ("groovy-console" ,groovy-console)
  1112. ("groovy-docgenerator" ,groovy-docgenerator)
  1113. ("groovy-groovydoc" ,groovy-groovydoc)
  1114. ("groovy-groovysh" ,groovy-groovysh)
  1115. ("groovy-jmx" ,groovy-jmx)
  1116. ("groovy-json" ,groovy-json)
  1117. ("groovy-jsr223" ,groovy-jsr223)
  1118. ("groovy-nio" ,groovy-nio)
  1119. ("groovy-servlet" ,groovy-servlet)
  1120. ("groovy-sql" ,groovy-sql)
  1121. ("groovy-swing" ,groovy-swing)
  1122. ("groovy-templates" ,groovy-templates)
  1123. ("groovy-testng" ,groovy-testng)
  1124. ("groovy-xml" ,groovy-xml)
  1125. ("java-commons-cli" ,java-commons-cli)
  1126. ("java-asm" ,java-asm)
  1127. ("java-classpathx-servletapi" ,java-classpathx-servletapi)
  1128. ("java-xstream" ,java-xstream)
  1129. ("java-jansi" ,java-jansi)
  1130. ("java-jline-2" ,java-jline-2)
  1131. ("antlr2" ,antlr2)))
  1132. (synopsis "Programming language for the JVM")
  1133. (description "Apache Groovy is a powerful, optionally typed and dynamic
  1134. language, with static-typing and static compilation capabilities, for the Java
  1135. platform. It integrates smoothly with any Java program, and immediately
  1136. delivers to your application powerful features, including scripting
  1137. capabilities, Domain-Specific Language authoring, runtime and compile-time
  1138. meta-programming and functional programming.")))