guix-more/more/packages/java.scm

java.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
3
;;;
4
;;; This file is part of GNU Guix.
5
;;;
6
;;; GNU Guix is free software; you can redistribute it and/or modify it
7
;;; under the terms of the GNU General Public License as published by
8
;;; the Free Software Foundation; either version 3 of the License, or (at
9
;;; your option) any later version.
10
;;;
11
;;; GNU Guix is distributed in the hope that it will be useful, but
12
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;;; GNU General Public License for more details.
15
;;;
16
;;; You should have received a copy of the GNU General Public License
17
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18
19
(define-module (more packages java)
20
  #:use-module ((guix licenses) #:prefix license:)
21
  #:use-module (gnu packages)
22
  #:use-module (guix packages)
23
  #:use-module (guix download)
24
  #:use-module (guix git-download)
25
  #:use-module (guix utils)
26
  #:use-module (guix build-system ant)
27
  #:use-module (guix build-system gnu)
28
  #:use-module (guix build-system trivial)
29
  #:use-module (gnu packages base)
30
  #:use-module (gnu packages zip)
31
  #:use-module (gnu packages java))
32
33
(define-public josm
34
  (package
35
    (name "josm")
36
    (version "c86ae64ca82a5bb9dd1972c7023797eb9a2577f5")
37
    (source (origin
38
              (method git-fetch)
39
              (uri (git-reference
40
                    (url "https://github.com/openstreetmap/josm.git")
41
                    (commit version)))
42
              (sha256
43
               (base32
44
                "07z2q4csq9gdpg4lp1zpvcl5z5sqn0fnqah94ya3sirm6bh4k74j"))
45
              (file-name (string-append name "-" version))))
46
    (build-system ant-build-system)
47
    (arguments
48
     `(#:build-target "dist"
49
       #:tests? #f
50
       #:jdk ,icedtea-8
51
       #:phases
52
       (modify-phases %standard-phases
53
         (add-before 'build 'fix-compiler
54
           (lambda* _
55
             (substitute* "build.xml"
56
               (("UNKNOWN") "11639")
57
               ((".*com.google.errorprone.ErrorProneAntCompilerAdapter.*") "")
58
               (("compiler=\"[^\"]*\" ") ""))))
59
         (replace 'install
60
           (lambda* (#:key outputs #:allow-other-keys)
61
             (let* ((out (assoc-ref outputs "out"))
62
                    (bin (string-append out "/bin"))
63
                    (lib (string-append out "/lib/josm")))
64
               (mkdir-p bin)
65
               (mkdir-p lib)
66
               (copy-file "dist/josm-custom.jar"
67
                          (string-append lib "/josm.jar"))
68
               (with-output-to-file (string-append bin "/josm")
69
                 (lambda _
70
                   (display
71
                     (string-append "#!/bin/sh\n"
72
                                    "java -jar " lib "/josm.jar"))))
73
               (chmod (string-append bin "/josm") #o755)))))))
74
    (home-page "https://josm.openstreetmap.de")
75
    (synopsis "OSM editor")
76
    (description "OSM editor.")
77
    (license license:gpl2+)))
78
79
(define-public java-icu4j
80
  (package
81
    (name "java-icu4j")
82
    (version "58.2")
83
    (source (origin
84
              (method url-fetch)
85
              (uri (string-append 
86
                     "http://download.icu-project.org/files/icu4j/" version
87
                     "/icu4j-"
88
                     (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
89
                     ".tgz"))
90
              (sha256
91
               (base32
92
                "1mvqjlc3cbaraa0bv0vyl44xf0x6n81inqsh69bl7f88iycfpns9"))))
93
    (build-system ant-build-system)
94
    (arguments
95
     `(#:tests? #f ; Requires java-ivy that we don't have yet.
96
       #:phases
97
       (modify-phases %standard-phases
98
         ;; icu4j archive contains its sources directly at the top, not in
99
         ;; a subdirectory as usual.
100
         (add-after 'unpack 'chdir
101
           (lambda _
102
             (chdir "..")))
103
         (replace 'install
104
           (lambda* (#:key outputs #:allow-other-keys)
105
             (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
106
               (mkdir-p share)
107
               (copy-file "icu4j-charset.jar" (string-append share "/icu4j-charset.jar"))
108
               (copy-file "icu4j.jar" (string-append share "/icu4j.jar"))))))))
109
    (home-page "http://site.icu-project.org/")
110
    (synopsis "")
111
    (description "")
112
    (license license:x11)))
113
114
(define-public java-treelayout
115
  (package
116
    (name "java-treelayout")
117
    (version "1.0.3")
118
    (source (origin
119
              (method url-fetch)
120
              (uri (string-append 
121
                     "https://github.com/abego/treelayout/archive/v" version
122
                     ".tar.gz"))
123
              (file-name (string-append name "-" version ".tar.gz"))
124
              (sha256
125
               (base32
126
                "0djdw7j66lqjx8bx9zja0hsx10c6nsj3z0z20jmavwfr6bpp0345"))))
127
    (build-system ant-build-system)
128
    (arguments
129
     `(#:jar-name (string-append ,name "-" ,version ".jar")
130
       #:tests? #f
131
       #:phases
132
       (modify-phases %standard-phases
133
         ;; icu4j archive contains its sources directly at the top, not in
134
         ;; a subdirectory as usual.
135
         (add-after 'unpack 'chdir
136
           (lambda _
137
             (chdir "org.abego.treelayout"))))))
138
    (inputs
139
     `(("junit" ,java-junit)))
140
    (home-page "http://treelayout.sourceforge.net")
141
    (synopsis "")
142
    (description "")
143
    (license license:bsd-3)))
144
145
(define-public java-commons-cli
146
  (package
147
    (name "java-commons-cli")
148
    (version "1.4")
149
    (source (origin
150
              (method url-fetch)
151
              (uri (string-append "http://mirrors.ircam.fr/pub/apache/commons/"
152
                                  "cli/source/commons-cli-" version "-src.tar.gz"))
153
              (file-name (string-append name "-" version ".tar.gz"))
154
              (sha256
155
               (base32
156
                "05hgi2z01fqz374y719gl1dxzqvzci5af071zm7vxrjg9vczipm1"))))
157
    (build-system ant-build-system)
158
    (arguments
159
     `(#:jar-name "commons-cli-1.4.jar"
160
       #:tests? #f))
161
    (native-inputs
162
     `(("junit" ,java-junit)))
163
    (home-page "")
164
    (synopsis "")
165
    (description "")
166
    (license license:asl2.0)))
167
168
(define-public java-asm
169
  (package
170
    (name "java-asm")
171
    (version "5.2")
172
    (source (origin
173
              (method url-fetch)
174
              (uri (string-append "http://download.forge.ow2.org/asm/asm-"
175
                                  version ".tar.gz"))
176
              (file-name (string-append name "-" version ".tar.gz"))
177
              (sha256
178
               (base32
179
                "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr"))))
180
    (build-system ant-build-system)
181
    (arguments
182
     `(#:jar-name "asm-5.2.jar"
183
       #:tests? #f))
184
    (native-inputs
185
     `(("junit" ,java-junit)))
186
    (home-page "")
187
    (synopsis "")
188
    (description "")
189
    (license license:asl2.0)))
190
191
(define-public java-jsr305
192
  (package
193
    (name "java-jsr305")
194
    (version "3.0.2")
195
    (source (origin
196
              (method git-fetch)
197
              (uri (git-reference
198
                     (url "https://github.com/amaembo/jsr-305.git")
199
                     (commit "d7734b13c61492982784560ed5b4f4bd6cf9bb2c")))
200
              (file-name (string-append name "-" version))
201
              (sha256
202
               (base32
203
                "1wk159136pgc6i54drbq2whazfmdilvfqlxj3k19s9dfwbayf621"))))
204
    (build-system ant-build-system)
205
    (arguments
206
     `(#:jar-name (string-append ,name "-" ,version ".jar")
207
       #:src-dir "ri/src/main/java"
208
       #:tests? #f))
209
    (home-page "https://github.com/amaembo/jsr-305")
210
    (synopsis "")
211
    (description "")
212
    (license license:bsd-3)))
213
214
(define-public java-checker-framework
215
  (package
216
    (name "java-checker-framework")
217
    (version "2.1.10")
218
    (source (origin
219
              (method url-fetch)
220
              (uri (string-append "https://github.com/typetools/checker-framework/"
221
                                  "archive/checker-framework-" version ".tar.gz"))
222
              (file-name (string-append name "-" version ".tar.gz"))
223
              (sha256
224
               (base32
225
                "1infq1hr53zi9bd81v90rn3iripbinb3w145m3xblq8yvnfrxy20"))))
226
    (build-system ant-build-system)
227
    (arguments
228
     `(#:jar-name (string-append ,name "-" ,version ".jar")
229
       #:src-dir "dataflow/src:javacutil/src"
230
       #:jdk ,icedtea-8
231
       #:tests? #f))
232
    (home-page "https://checkerframework.org")
233
    (synopsis "")
234
    (description "")
235
    (license license:gpl2))); with classpath exception
236
237
(define-public java-javapoet
238
  (package
239
    (name "java-javapoet")
240
    (version "1.8.0")
241
    (source (origin
242
              (method url-fetch)
243
              (uri (string-append "https://github.com/square/javapoet/archive/javapoet-"
244
                                  version ".tar.gz"))
245
              (file-name (string-append name "-" version ".tar.gz"))
246
              (sha256
247
               (base32
248
                "0xpjbh8wcyj9yd9hb936ia5g6l2q1jlyqjvwcc290cwjrz7crb93"))))
249
    (build-system ant-build-system)
250
    (arguments
251
     `(#:jar-name (string-append ,name "-" ,version ".jar")
252
       #:src-dir "src/main/java"
253
       #:jdk ,icedtea-8
254
       #:tests? #f))
255
    (home-page "https://github.com/square/javapoet")
256
    (synopsis "")
257
    (description "")
258
    (license license:asl2.0)))
259
260
(define-public java-auto-value
261
  (package
262
    (name "java-auto-value")
263
    (version "1.4.1")
264
    (source (origin
265
              (method url-fetch)
266
              (uri (string-append "https://github.com/google/auto/archive/auto-value-"
267
                                  version ".tar.gz"))
268
              (file-name (string-append name "-" version ".tar.gz"))
269
              (sha256
270
               (base32
271
                "1qd59bwa56bynsdxfbgm40i7ndrj599wflza214kzigk16nprc1m"))))
272
    (build-system ant-build-system)
273
    (arguments
274
     `(#:jar-name (string-append ,name "-" ,version ".jar")
275
       #:src-dir "value/src/main/java:common/src/main/java:service/src/main/java"
276
       #:jdk ,icedtea-8
277
       #:tests? #f))
278
    (inputs
279
     `(("guava" ,java-guava)
280
       ("javapoet" ,java-javapoet)))
281
    (home-page "https://github.com/google/auto/tree/master/value")
282
    (synopsis "")
283
    (description "")
284
    (license license:asl2.0)))
285
286
;; https://github.com/KengoTODA/java-diff-utils ?
287
;; com.sun.tools.javac.code.Scope.LookupKind.NON_RECURSIVE
288
;; com.sun.source.tree.PackageTree
289
;; com.sun.tools.javac.tree.JCTree.JCPackageDecl
290
(define-public java-error-prone
291
  (package
292
    (name "java-error-prone")
293
    (version "2.0.19")
294
    (source (origin
295
              (method url-fetch)
296
              (uri (string-append "https://github.com/google/error-prone/archive/v"
297
                                  version ".tar.gz"))
298
              (file-name (string-append name "-" version ".tar.gz"))
299
              (patches (search-patches "java-error-prone-add-build.xml.patch"))
300
              (sha256
301
               (base32
302
                "00igy7a6aylswxdcklj9021g2s8bvsvrysagqyd8cibm4pimxrnk"))))
303
    (build-system ant-build-system)
304
    (arguments
305
     `(#:tests? #f
306
       #:jdk ,icedtea-8
307
       #:phases
308
       (modify-phases %standard-phases
309
         (add-before 'build 'copy-internal
310
           (lambda _
311
             (mkdir-p "ant/src/main/java/com/google/errorprone/internal")
312
             (copy-file
313
               "core/src/main/java/com/google/errorprone/internal/NonDelegatingClassLoader.java"
314
               "ant/src/main/java/com/google/errorprone/internal/NonDelegatingClassLoader.java"))))))
315
    (inputs
316
     `(("java-jsr305" ,java-jsr305)
317
       ("java-auto-value" ,java-auto-value)
318
       ("java-checker-framework" ,java-checker-framework)
319
       ("java-guava" ,java-guava)))
320
    (home-page "https://github.com/google/guava")
321
    (synopsis "")
322
    (description "")
323
    (license license:asl2.0)))
324
325
(define-public java-error-prone-annotations
326
  (package
327
    (inherit java-error-prone)
328
    (name "java-error-prone-annotations")
329
    (version "2.0.19")
330
    (arguments
331
     `(#:tests? #f
332
       #:jar-name (string-append ,name "-" ,version ".jar")
333
       #:src-dir "annotations/src"))
334
    (inputs
335
     `(("java-jsr305" ,java-jsr305)))))
336
337
(define-public java-j2objc
338
  (package
339
    (name "java-j2objc")
340
    (version "1.3.1")
341
    (source (origin
342
              (method url-fetch)
343
              (uri (string-append "https://github.com/google/j2objc/archive/"
344
                                  version ".tar.gz"))
345
              (file-name (string-append name "-" version ".tar.gz"))
346
              (patches (search-patches "java-j2objc-add-build.xml.patch"))
347
              (sha256
348
               (base32
349
                "0d5spbr1whw2afg6mknyr7ifm6xivn3bbvnzjxva2zzkyq944hv0"))))
350
    (build-system ant-build-system)
351
    (arguments
352
     `(#:tests? #f))
353
    (home-page "http://j2objc.org")
354
    (synopsis "")
355
    (description "")
356
    (license license:asl2.0)))
357
358
(define-public java-j2objc-annotations
359
  (package
360
    (inherit java-j2objc)
361
    (name "java-j2objc-annotations")
362
    (version "1.3.1")
363
    (arguments
364
     `(#:tests? #f
365
       #:jar-name (string-append ,name "-" ,version ".jar")
366
       #:src-dir "annotations/src/main/java"))))
367
368
(define-public java-animal-sniffer
369
  (package
370
    (name "java-animal-sniffer")
371
    (version "1.15")
372
    (source (origin
373
              (method url-fetch)
374
              (uri (string-append "https://github.com/mojohaus/animal-sniffer/"
375
                                  "archive/animal-sniffer-parent-"
376
                                  version ".tar.gz"))
377
              (patches (search-patches "java-animal-sniffer-add-build.xml.patch"))
378
              (file-name (string-append name "-" version ".tar.gz"))
379
              (sha256
380
               (base32
381
                "1350yl003y1fjzdwis0dg5jhi5kggk2sxnkv9821z5janw4p986m"))))
382
    (build-system ant-build-system)
383
    (arguments
384
     `(#:tests? #f))
385
    (home-page "http://www.mojohaus.org/animal-sniffer")
386
    (synopsis "")
387
    (description "")
388
    (license license:asl2.0)))
389
390
(define-public java-animal-sniffer-annotations
391
  (package
392
    (inherit java-animal-sniffer)
393
    (name "java-animal-sniffer-annotations")
394
    (version "1.15")
395
    (arguments
396
     `(#:tests? #f
397
       #:jar-name (string-append ,name "-" ,version ".jar")
398
       #:src-dir "animal-sniffer-annotations/src/main/java"))))
399
400
(define-public java-guava
401
  (package
402
    (name "java-guava")
403
    (version "20.0")
404
    (source (origin
405
              (method url-fetch)
406
              (uri (string-append "https://github.com/google/guava/archive/v"
407
                                  version ".tar.gz"))
408
              (file-name (string-append name "-" version ".tar.gz"))
409
              (sha256
410
               (base32
411
                "1kasavj973iblj1fj35gzbywhkljrnbjpymgqyqaibbbmmbzff8s"))))
412
    (build-system ant-build-system)
413
    (arguments
414
     `(#:jar-name (string-append ,name "-" ,version ".jar")
415
       #:src-dir "guava/src"
416
       #:tests? #f))
417
    (inputs
418
     `(("java-jsr305" ,java-jsr305)
419
       ("java-j2objc-annotations" ,java-j2objc-annotations)
420
       ("java-animal-sniffer-annotations" ,java-animal-sniffer-annotations)
421
       ("java-error-prone-annotations" ,java-error-prone-annotations)))
422
    (home-page "https://github.com/google/guava")
423
    (synopsis "")
424
    (description "")
425
    (license license:asl2.0)))
426
427
(define-public java-joda-convert
428
  (package
429
    (name "java-joda-convert")
430
    (version "1.8.1")
431
    (source (origin
432
              (method url-fetch)
433
              (uri (string-append "https://github.com/JodaOrg/joda-convert/archive/v"
434
                                  version ".tar.gz"))
435
              (file-name (string-append name "-" version ".tar.gz"))
436
              (sha256
437
               (base32
438
                "1di9chp0pgvd2gxsmdaxhldwns9a2ss9705jmn97mdd69cg5zcnc"))))
439
    (build-system ant-build-system)
440
    (arguments
441
     `(#:jar-name (string-append ,name "-" ,version ".jar")
442
       #:src-dir "src/main/java"
443
       #:tests? #f))
444
    (inputs
445
     `(("java-google-collect" ,java-google-collect)))
446
    (native-inputs
447
     `(("junit" ,java-junit)))
448
    (home-page "")
449
    (synopsis "")
450
    (description "")
451
    (license license:asl2.0)))
452
453
(define-public java-joda-time
454
  (package
455
    (name "java-joda-time")
456
    (version "2.9.9")
457
    (source (origin
458
              (method url-fetch)
459
              (uri (string-append "https://github.com/JodaOrg/joda-time/archive/v"
460
                                  version ".tar.gz"))
461
              (file-name (string-append name "-" version ".tar.gz"))
462
              (sha256
463
               (base32
464
                "1i9x91mi7yg2pasl0k3912f1pg46n37sps6rdb0v1gs8hj9ppwc1"))))
465
    (build-system ant-build-system)
466
    (arguments
467
     `(#:jar-name (string-append ,name "-" ,version ".jar")
468
       #:src-dir "src/main/java"
469
       #:tests? #f))
470
    (inputs
471
     `(("java-joda-convert" ,java-joda-convert)))
472
    (native-inputs
473
     `(("junit" ,java-junit)))
474
    (home-page "")
475
    (synopsis "")
476
    (description "")
477
    (license license:asl2.0)))
478
479
(define-public java-xstream
480
  (package
481
    (name "java-xstream")
482
    (version "1.4.9")
483
    (source (origin
484
              (method url-fetch)
485
              (uri (string-append "https://repo1.maven.org/maven2/com/thoughtworks"
486
                                  "/xstream/xstream-distribution/" version
487
                                  "/xstream-distribution-" version "-src.zip"))
488
              (file-name (string-append name "-" version ".zip"))
489
              (sha256
490
               (base32
491
                "1cq9j9h839wc6pkrgd9bd7y94a3zrj1j741i134izqs9xx2b54fi"))))
492
    (build-system ant-build-system)
493
    (arguments
494
     `(#:jar-name (string-append ,name "-" ,version ".jar")
495
       #:tests? #f
496
       #:src-dir "xstream/src/java"))
497
    (native-inputs
498
     `(("unzip" ,unzip)))
499
    (home-page "https://x-stream.github.io")
500
    (synopsis "")
501
    (description "")
502
    (license license:x11)))
503
504
(define-public java-jsonp
505
  (package
506
    (name "java-jsonp")
507
    (version "1.0.4")
508
    (source (origin
509
              (method git-fetch)
510
              (uri (git-reference
511
                     (url "git://java.net/jsonp~git")
512
                     (commit "a586e706aea82dc80fb05bdf59f2a25150ee1801")))
513
              (file-name (string-append name "-" version))
514
              (sha256
515
               (base32
516
                "01r4syivcywpvxkr1hn0az9316pr7qpnx154zzzw0nijfmdlbw7n"))))
517
    (build-system ant-build-system)
518
    (arguments
519
     `(#:jar-name (string-append ,name "-" ,version ".jar")
520
       #:tests? #f
521
       #:src-dir "api/src"))
522
    (home-page "https://jsonp.java.net")
523
    (synopsis "")
524
    (description "")
525
    (license (list license:gpl2
526
                   ;; actually CDDL 1.1
527
                   license:cddl1.0))))
528
529
;; Can only be built with gradle.
530
(define-public groovy
531
  (package
532
    (name "groovy")
533
    (version "2.4.10")
534
    (source (origin
535
              (method url-fetch)
536
              (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_"
537
                                  "2_4_10.tar.gz"))
538
              (file-name (string-append name "-" version ".tar.gz"))
539
              (sha256
540
               (base32
541
                "0wapzqwpx4bh2fsqpzf3haakjz6wvfjx1vd9a4spavhlrjqk2pbb"))))
542
    (build-system ant-build-system)
543
    (arguments
544
     `(#:jar-name "groovy.jar"
545
       #:tests? #f))
546
    (native-inputs
547
     `(("junit" ,java-junit)))
548
    (inputs
549
     `(("commons-cli" ,java-commons-cli)
550
       ("antlr" ,antlr3)
551
       ("asm" ,java-asm)))
552
    (home-page "")
553
    (synopsis "")
554
    (description "")
555
    (license license:asl2.0)))
556
557
;; requires jline, javax.servlet, org.fusesource.jansi, org.livetribe,
558
;;   com.thoughtworks.xstream, org.apache.ivy, bsf
559
;;   antlr
560
(define-public groovy-1.8.9
561
  (package
562
    (inherit groovy)
563
    (name "groovy")
564
    (version "1.8.9")
565
    (source (origin
566
              (method url-fetch)
567
              (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_"
568
                                  "1_8_9.tar.gz"))
569
              (file-name (string-append name "-" version ".tar.gz"))
570
              (sha256
571
               (base32
572
                "16z3jv5yw11wwwzbs6x41g83gqazhngg30ys2kpy7cpfm3rsqi71"))))
573
    (arguments
574
     `(#:jar-name (string-append ,name "-" ,version ".jar")
575
       #:tests? #f
576
       #:src-dir "src/main"))))
577
578
579
;; antlr2 is used to generate some java files in other packages. This is an old
580
;; package, it is not maintained anymore. It also contains the definition
581
;; for CommonTree and maybe other classes, so it is still required by more
582
;; recent antlr versions.
583
;;
584
;; antlr3.5 requires an antlr3 generator and ST4. Unfortunately, ST4 requires
585
;; an antlr3 generator. We use antlr3-3.1 that can be built with ST3 and antlr2
586
;; to build the intermediate antlr3-3.3 that requires only an antlr3 generator.
587
;; This intermediate antlr3 is used to build a version of ST4 that do not depend
588
;; on recent antlr3. Then this version is used to build the latest antlr3,
589
;; which is used to build the latest ST4, which is used as a dependency of the
590
;; latest antlr3.
591
;;
592
;; Then we can use the latest versions of ST4 and antlr3 to build antlr4.
593
(define-public antlr2
594
  (package
595
    (name "antlr2")
596
    (version "2.7.7")
597
    (source (origin
598
              (method url-fetch)
599
              (uri (string-append "http://www.antlr2.org/download/antlr-"
600
                                  version ".tar.gz"))
601
              (sha256
602
               (base32
603
                "1ffvcwdw73id0dk6pj2mlxjvbg0662qacx4ylayqcxgg381fnfl5"))
604
              (modules '((guix build utils)))
605
              (snippet
606
               '(begin
607
                  (delete-file "antlr.jar")
608
                  (substitute* "configure"
609
                    (("/bin/sh") "sh"))))))
610
    (build-system gnu-build-system)
611
    (arguments
612
     `(#:tests? #f
613
       #:phases
614
       (modify-phases %standard-phases
615
         (add-after 'configure 'fix-bin-ls
616
           (lambda _
617
             (for-each (lambda (file)
618
                         (substitute* file
619
                          (("/bin/ls") "ls")))
620
               (find-files "Makefile")))))))
621
    (native-inputs
622
     `(("which" ,which)
623
       ("java" ,icedtea "jdk")))
624
    (inputs
625
     `(("java" ,icedtea)))
626
    (home-page "http://www.antlr2.org")
627
    (synopsis "")
628
    (description "")
629
    (license license:public-domain)))
630
631
(define-public stringtemplate3
632
  (package
633
    (name "stringtemplate3")
634
    (version "3.2.1")
635
    (source (origin
636
              (method url-fetch)
637
              (uri (string-append "https://github.com/antlr/website-st4/raw/"
638
                                  "gh-pages/download/stringtemplate-"
639
                                  version ".tar.gz"))
640
              (sha256
641
               (base32
642
                "086yj68np1vqhkj7483diz3km6s6y4gmwqswa7524a0ca6vxn2is"))))
643
    (build-system ant-build-system)
644
    (arguments
645
     `(#:jar-name "stringtemplate-3.2.1.jar"
646
       #:tests? #f
647
       #:phases
648
       (modify-phases %standard-phases
649
         (add-before 'build 'generate-grammar
650
           (lambda _
651
             (let ((dir "src/org/antlr/stringtemplate/language/"))
652
               (for-each (lambda (file)
653
                           (display file)
654
                           (newline)
655
                           (system* "antlr" "-o" dir (string-append dir file)))
656
                         '("template.g" "angle.bracket.template.g" "action.g"
657
                           "eval.g" "group.g" "interface.g"))))))))
658
    (native-inputs
659
     `(("antlr" ,antlr2)))
660
    (home-page "http://www.stringtemplate.org")
661
    (synopsis "")
662
    (description "")
663
    (license license:bsd-3)))
664
665
(define-public antlr3-temp
666
  (package
667
    (name "antlr3-temp")
668
    (version "3.5.2")
669
    (source (origin
670
              (method url-fetch)
671
              (uri (string-append "https://github.com/antlr/antlr3/archive/"
672
                                  version ".tar.gz"))
673
              (file-name (string-append name "-" version ".tar.gz"))
674
              (sha256
675
               (base32
676
                "07zff5frmjd53rnqdx31h0pmswz1lv0p2lp28cspfszh25ysz6sj"))))
677
    (build-system ant-build-system)
678
    (arguments
679
     `(#:jar-name (string-append ,name "-" ,version ".jar")
680
       #:src-dir "tool/src/main/java:runtime/Java/src/main/java:tool/src/main/antlr3"
681
       #:tests? #f
682
       #:phases
683
       (modify-phases %standard-phases
684
         (add-after 'install 'bin-install
685
           (lambda* (#:key inputs outputs #:allow-other-keys)
686
             (let ((jar (string-append (assoc-ref outputs "out") "/share/java"))
687
                   (bin (string-append (assoc-ref outputs "out") "/bin")))
688
               (mkdir-p bin)
689
               (with-output-to-file (string-append bin "/antlr3")
690
                 (lambda _
691
                   (display
692
                     (string-append "#!/bin/sh\n"
693
                                    "java -cp " jar "/" ,name "-" ,version ".jar:"
694
                                    (string-concatenate
695
                                      (find-files (assoc-ref inputs "stringtemplate")
696
                                                  ".*\\.jar"))
697
                                    ":"
698
                                    (string-concatenate
699
                                      (find-files (assoc-ref inputs "stringtemplate4")
700
                                                  ".*\\.jar"))
701
                                    ":"
702
                                    (string-concatenate
703
                                      (find-files (string-append (assoc-ref inputs "antlr") "/lib")
704
                                                  ".*\\.jar"))
705
                                    " org.antlr.Tool $*"))))
706
               (chmod (string-append bin "/antlr3") #o755))))
707
         (add-before 'build 'generate-grammar
708
           (lambda _
709
             (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/")
710
             (for-each (lambda (file)
711
                         (display file)
712
                         (newline)
713
                         (system* "antlr3" file))
714
                       '("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g"
715
                         "AssignTokenTypesWalker.g"
716
                         "ActionTranslator.g" "TreeToNFAConverter.g"
717
                         "ANTLRv3.g" "ANTLRv3Tree.g" "LeftRecursiveRuleWalker.g"
718
                         "CodeGenTreeWalker.g" "DefineGrammarItemsWalker.g"))
719
             (chdir "../../../../../../../..")
720
             (system* "antlr" "-o" "tool/src/main/java/org/antlr/tool"
721
                      "tool/src/main/java/org/antlr/tool/serialize.g")
722
             (substitute* "tool/src/main/java/org/antlr/tool/LeftRecursiveRuleAnalyzer.java"
723
               (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*;
724
import org.antlr.grammar.v3.ANTLRTreePrinter;"))
725
             (substitute* "tool/src/main/java/org/antlr/tool/ErrorManager.java"
726
               (("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") ""))
727
             (substitute* "tool/src/main/antlr3/org/antlr/grammar/v3/ANTLRParser.java"
728
               (("public Object getTree") "public GrammarAST getTree"))
729
             (substitute* "tool/src/main/antlr3/org/antlr/grammar/v3/ANTLRv3Parser.java"
730
               (("public Object getTree") "public CommonTree getTree"))))
731
         (add-before 'build 'fix-build-xml
732
           (lambda _
733
             (substitute* "build.xml"
734
               (("<exec") "<copy todir=\"${classes.dir}\">
735
<fileset dir=\"tool/src/main/resources\">
736
<include name=\"**/*.stg\"/>
737
<include name=\"**/*.st\"/>
738
<include name=\"**/*.sti\"/>
739
<include name=\"**/STLexer.tokens\"/>
740
</fileset>
741
</copy><exec")))))))
742
    (native-inputs
743
     `(("antlr" ,antlr2)
744
       ("antlr3" ,antlr3-3.3)))
745
    (inputs
746
     `(("junit" ,java-junit)))
747
    (propagated-inputs
748
     `(("stringtemplate" ,stringtemplate3)
749
       ("antlr" ,antlr2)
750
       ("stringtemplate4" ,stringtemplate4-4.0.6)))
751
    (home-page "http://www.stringtemplate.org")
752
    (synopsis "")
753
    (description "")
754
    (license license:bsd-3)))
755
756
(define-public antlr3
757
  (package
758
    (inherit antlr3-temp)
759
    (name "antlr3")
760
    (native-inputs
761
     `(("antlr" ,antlr2)
762
       ("antlr3" ,antlr3-temp)))
763
    (inputs
764
     `(("junit" ,java-junit)
765
       ("stringtemplate" ,stringtemplate3)
766
       ("stringtemplate4" ,stringtemplate4)))))
767
768
(define-public antlr3-3.3
769
  (package
770
    (name "antlr3")
771
    (version "3.3")
772
    (source (origin
773
              (method url-fetch)
774
              (uri (string-append "https://github.com/antlr/website-antlr3/raw/"
775
                                  "gh-pages/download/antlr-"
776
                                  version ".tar.gz"))
777
              (sha256
778
               (base32
779
                "0qgg5vgsm4l1d6dj9pfbaa25dpv2ry2gny8ajy4vvgvfklw97b3m"))))
780
    (build-system ant-build-system)
781
    (arguments
782
     `(#:jar-name (string-append ,name "-" ,version ".jar")
783
       #:src-dir "tool/src/main/java:runtime/Java/src/main/java:tool/src/main/antlr2:tool/src/main/antlr3"
784
       #:tests? #f
785
       #:phases
786
       (modify-phases %standard-phases
787
         (add-after 'install 'bin-install
788
           (lambda* (#:key inputs outputs #:allow-other-keys)
789
             (let ((jar (string-append (assoc-ref outputs "out") "/share/java"))
790
                   (bin (string-append (assoc-ref outputs "out") "/bin")))
791
               (mkdir-p bin)
792
               (with-output-to-file (string-append bin "/antlr3")
793
                 (lambda _
794
                   (display
795
                     (string-append "#!/bin/sh\n"
796
                                    "java -cp " jar "/antlr3-3.3.jar:"
797
                                    (string-concatenate
798
                                      (find-files (assoc-ref inputs "stringtemplate")
799
                                                  ".*\\.jar"))
800
                                    ":"
801
                                    (string-concatenate
802
                                      (find-files (string-append (assoc-ref inputs "antlr") "/lib")
803
                                                  ".*\\.jar"))
804
                                    " org.antlr.Tool $*"))))
805
               (chmod (string-append bin "/antlr3") #o755))))
806
         (add-before 'build 'generate-grammar
807
           (lambda _
808
             (let ((dir "tool/src/main/antlr2/org/antlr/grammar/v2/"))
809
               (for-each (lambda (file)
810
                           (display file)
811
                           (newline)
812
                           (system* "antlr" "-o" dir (string-append dir file)))
813
                         '("antlr.g" "antlr.print.g" "assign.types.g"
814
                           "buildnfa.g" "codegen.g" "define.g")))
815
             (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/")
816
             (for-each (lambda (file)
817
                         (display file)
818
                         (newline)
819
                         (system* "antlr3" file))
820
                       '("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
821
                         "ANTLRv3Tree.g"))
822
             (chdir "../../../../../../../..")
823
             (substitute* "tool/src/main/java/org/antlr/tool/Grammar.java"
824
               (("import org.antlr.grammar.v2.\\*;")
825
                "import org.antlr.grammar.v2.*;\n
826
import org.antlr.grammar.v2.TreeToNFAConverter;\n
827
import org.antlr.grammar.v2.DefineGrammarItemsWalker;\n
828
import org.antlr.grammar.v2.ANTLRTreePrinter;"))))
829
         (add-before 'build 'fix-build-xml
830
           (lambda _
831
             (substitute* "build.xml"
832
               (("<exec") "<copy todir=\"${classes.dir}\">
833
<fileset dir=\"tool/src/main/resources\">
834
<include name=\"**/*.stg\"/>
835
<include name=\"**/*.st\"/>
836
<include name=\"**/*.sti\"/>
837
<include name=\"**/STLexer.tokens\"/>
838
</fileset>
839
</copy><exec")))))))
840
    (native-inputs
841
     `(("antlr" ,antlr2)
842
       ("antlr3" ,antlr3-3.1)))
843
    (inputs
844
     `(("junit" ,java-junit)))
845
    (propagated-inputs
846
     `(("stringtemplate" ,stringtemplate3)
847
       ("antlr" ,antlr2)
848
       ("antlr3" ,antlr3-3.1)))
849
    (home-page "http://www.stringtemplate.org")
850
    (synopsis "")
851
    (description "")
852
    (license license:bsd-3)))
853
854
(define-public antlr3-3.1
855
  (package
856
    (name "antlr3-3.1")
857
    (version "3.1")
858
    (source (origin
859
              (method url-fetch)
860
              (uri (string-append "https://github.com/antlr/website-antlr3/raw/"
861
                                  "gh-pages/download/antlr-"
862
                                  version ".tar.gz"))
863
              (sha256
864
               (base32
865
                "0sfimc9cpbgrihz4giyygc8afgpma2c93yqpwb951giriri6x66z"))))
866
    (build-system ant-build-system)
867
    (arguments
868
     `(#:jar-name (string-append ,name "-" ,version ".jar")
869
       #:src-dir "src:runtime/Java/src"
870
       #:tests? #f
871
       #:phases
872
       (modify-phases %standard-phases
873
         (add-after 'install 'bin-install
874
           (lambda* (#:key inputs outputs #:allow-other-keys)
875
             (let ((jar (string-append (assoc-ref outputs "out") "/share/java"))
876
                   (bin (string-append (assoc-ref outputs "out") "/bin")))
877
               (mkdir-p bin)
878
               (with-output-to-file (string-append bin "/antlr3")
879
                 (lambda _
880
                   (display
881
                     (string-append "#!/bin/sh\n"
882
                                    "java -cp " jar "/antlr3-3.1-3.1.jar:"
883
                                    (string-concatenate
884
                                      (find-files (assoc-ref inputs "stringtemplate")
885
                                                  ".*\\.jar"))
886
                                    ":"
887
                                    (string-concatenate
888
                                      (find-files (string-append (assoc-ref inputs "antlr") "/lib")
889
                                                  ".*\\.jar"))
890
                                    " org.antlr.Tool $*"))))
891
               (chmod (string-append bin "/antlr3") #o755))))
892
         (add-before 'build 'generate-grammar
893
           (lambda _
894
             (let ((dir "src/org/antlr/tool/"))
895
               (for-each (lambda (file)
896
                           (display file)
897
                           (newline)
898
                           (system* "antlr" "-o" dir (string-append dir file)))
899
                         '("antlr.g" "antlr.print.g" "assign.types.g"
900
                           "buildnfa.g" "define.g")))
901
             (format #t "codegen.g\n")
902
             (system* "antlr" "-o" "src/org/antlr/codegen"
903
                      "src/org/antlr/codegen/codegen.g")))
904
         (add-before 'build 'fix-build-xml
905
           (lambda _
906
             (substitute* "build.xml"
907
               (("<exec") "<copy todir=\"${classes.dir}\">
908
<fileset dir=\"src\">
909
<include name=\"**/*.stg\"/>
910
<include name=\"**/*.st\"/>
911
<include name=\"**/*.sti\"/>
912
<include name=\"**/STLexer.tokens\"/>
913
</fileset>
914
</copy><exec")))))))
915
    (native-inputs
916
     `(("antlr" ,antlr2)))
917
    (inputs
918
     `(("junit" ,java-junit)))
919
    (propagated-inputs
920
     `(("stringtemplate" ,stringtemplate3)))
921
    (home-page "http://www.stringtemplate.org")
922
    (synopsis "")
923
    (description "")
924
    (license license:bsd-3)))
925
926
(define-public stringtemplate4-4.0.6
927
  (package
928
    (name "stringtemplate4")
929
    (version "4.0.6")
930
    (source (origin
931
              (method url-fetch)
932
              (uri (string-append "https://github.com/antlr/stringtemplate4/archive/ST-"
933
                                  version ".tar.gz"))
934
              (file-name (string-append name "-" version ".tar.gz"))
935
              (sha256
936
               (base32
937
                "0hjmh1ahdsh3w825i67mli9l4nncc4l6hdbf9ma91jvlj590sljp"))))
938
    (build-system ant-build-system)
939
    (arguments
940
     `(#:tests? #f
941
       #:jar-name (string-append ,name "-" ,version ".jar")
942
       #:phases
943
       (modify-phases %standard-phases
944
         (add-before 'build 'generate-grammar
945
           (lambda* (#:key inputs #:allow-other-keys)
946
             (chdir "src/org/stringtemplate/v4/compiler/")
947
             (for-each (lambda (file)
948
                         (display file)
949
                         (newline)
950
                         (system* "antlr3" file))
951
                       '("STParser.g" "Group.g" "CodeGenerator.g"))
952
             (chdir "../../../../.."))))))
953
    (inputs
954
     `(("antlr3" ,antlr3-3.3)
955
       ("antlr2" ,antlr2)
956
       ("stringtemplate" ,stringtemplate3)))
957
    (home-page "http://www.stringtemplate.org")
958
    (synopsis "")
959
    (description "")
960
    (license license:bsd-3)))
961
962
(define-public stringtemplate4
963
  (package
964
    (inherit stringtemplate4-4.0.6)
965
    (name "stringtemplate4")
966
    (version "4.0.8")
967
    (source (origin
968
              (method url-fetch)
969
              (uri (string-append "https://github.com/antlr/stringtemplate4/archive/"
970
                                  version ".tar.gz"))
971
              (file-name (string-append name "-" version ".tar.gz"))
972
              (sha256
973
               (base32
974
                "1pri8hqa95rfdkjy55icl5q1m09zwp5k67ib14abas39s4v3w087"))))
975
    (inputs
976
     `(("antlr3" ,antlr3-temp)
977
       ("antlr2" ,antlr2)
978
       ("stringtemplate" ,stringtemplate3)))))
979
980
;; javax.json.*
981
;; org.abego.treelayout.*
982
;; com.ibm.icu.* 
983
(define-public antlr4
984
  (package
985
    (name "antlr4")
986
    (version "4.7")
987
    (source (origin
988
              (method url-fetch)
989
              (uri (string-append "https://github.com/antlr/antlr4/archive/"
990
                                  version ".tar.gz"))
991
              (file-name (string-append name "-" version ".tar.gz"))
992
              (sha256
993
               (base32
994
                "0y7lzkvx9wbbmwg45mb4icx7i66z6894qfygrbbs26sr5xxyml9h"))))
995
    (build-system ant-build-system)
996
    (arguments
997
     `(#:jar-name (string-append ,name "-" ,version ".jar")
998
       #:src-dir "runtime/Java/src:tool/src"
999
       #:phases
1000
       (modify-phases %standard-phases
1001
         (add-before 'build 'generate-grammar
1002
           (lambda* (#:key inputs #:allow-other-keys)
1003
             (chdir "tool/src/org/antlr/v4/parse")
1004
             (for-each (lambda (file)
1005
                         (format #t "~a\n" file)
1006
                         (system* "antlr3" file))
1007
                       '("ANTLRLexer.g" "ANTLRParser.g" "BlockSetTransformer.g"
1008
                         "GrammarTreeVisitor.g" "ATNBuilder.g"
1009
                         "ActionSplitter.g" "LeftRecursiveRuleWalker.g"))
1010
             (chdir "../codegen")
1011
             (copy-file "../parse/ANTLRParser.tokens" "ANTLRParser.tokens")
1012
             (format #t "SourceGenTriggers.g\n")
1013
             (system* "antlr3" "SourceGenTriggers.g")
1014
             (chdir "../../../../../.."))))))
1015
    (inputs
1016
     `(("antlr3" ,antlr3)
1017
       ("icu4j" ,java-icu4j)
1018
       ("java-jsonp" ,java-jsonp)
1019
       ("treelayout" ,java-treelayout)
1020
       ("stringtemplate4" ,stringtemplate4)))
1021
    (home-page "https://antlr.org")
1022
    (synopsis "")
1023
    (description "")
1024
    (license license:bsd-3)))
1025
    
1026
1027
;; requires groovy 2.4.7.
1028
;(define-public gradle
1029
;  (package
1030
;    (name "gradle")
1031
;    (version "3.4.1")
1032
;    (source (origin
1033
;              (method url-fetch)
1034
;              (uri (string-append "https://github.com/gradle/gradle/archive/v"
1035
;                                  version ".tar.gz"))
1036
;              (file-name (string-append name "-" version ".tar.gz"))
1037
;              (sha256
1038
;               (base32 "0fq30k51mkixg31z3d4fjq3zbnyjml4i530px6n1n947mqk3rgyl"))))
1039
;    (build-system ant-build-system)
1040
;    (arguments
1041
;     `(#:phases
1042
;       (modify-phases %standard-phases
1043
;         (replace 'build
1044
;           (lambda* _
1045
;             (system* "sh" "-x" "gradlew" "prBuild" "-x" "integTest" "--continue"
1046
;                      "--stacktrace"))))))
1047
;             ;(system* "sh" "-x" "travisci_build.sh"))))))
1048
;    (home-page "")
1049
;    (synopsis "Build system")
1050
;    (description "Build system")
1051
;    (license license:asl2.0)))
1052
;
1053
;;; Requires gradle.
1054
;(define-public android-anysoft-keyboard
1055
;  (package
1056
;    (name "android-anysoft-keyboard")
1057
;    (version "1.8-r9")
1058
;    (source (origin
1059
;              (method url-fetch)
1060
;              (uri (string-append "https://github.com/AnySoftKeyboard/"
1061
;                                  "AnySoftKeyboard/archive/" version ".tar.gz"))
1062
;              (file-name (string-append name "-" version ".tar.gz"))
1063
;              (sha256
1064
;               (base32
1065
;                "1mrin9mw1rs23d25v8yx4jprx7j05zir6756sqvk4myxbkcp8mag"))))
1066
;    (build-system ant-build-system)
1067
;    (home-page "https://anysoftkeyboard.github.io/")
1068
;    (synopsis "Alternative on-screen keyboard for multiple languages")
1069
;    (description "Alternative on-screen keyboard for multiple languages.")
1070
;    (license license:asl2.0)))
1071