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 svn-download)
26
  #:use-module (guix utils)
27
  #:use-module (guix build-system ant)
28
  #:use-module (guix build-system gnu)
29
  #:use-module (guix build-system trivial)
30
  #:use-module (gnu packages autotools)
31
  #:use-module (gnu packages base)
32
  #:use-module (gnu packages compression)
33
  #:use-module (gnu packages java))
34
35
(define-public java-tomcat
36
  (package
37
    (name "java-tomcat")
38
    (version "8.5.16")
39
    (source (origin
40
              (method url-fetch)
41
              (uri (string-append "http://download.nextag.com/apache/tomcat/tomcat-8/v"
42
                                  version "/src/apache-tomcat-" version "-src.tar.gz"))
43
              (sha256
44
               (base32
45
                "08vc859z9f0787nhikbdsj6i441d4qk5xv17c1564hxxg6bmilqd"))))
46
    (build-system ant-build-system)
47
    (inputs
48
     `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
49
    (native-inputs
50
     `(("java-junit" ,java-junit)))
51
    (arguments
52
     `(#:build-target "package"
53
       ;#:test-target "test"
54
       #:tests? #f; requires downloading some files.
55
       #:phases
56
       (modify-phases %standard-phases
57
         (add-after 'unpack 'properties
58
           (lambda _
59
             (mkdir "downloads")
60
             (substitute* "build.xml"
61
               (("download-compile,") ""))
62
             (with-output-to-file "build.properties"
63
               (lambda _
64
                 (display
65
                   (string-append "base.path=" (getcwd) "/downloads\n"))))))
66
         (replace 'install
67
           (install-jars "output/build/lib")))))
68
    (home-page "https://tomcat.apache.org")
69
    (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
70
WebSocket")
71
    (description "Apache Tomcat is an open source implementation of the Java
72
Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
73
technologies. The Java Servlet, JavaServer Pages, Java Expression Language and
74
Java WebSocket specifications are developed under the Java Community Process.")
75
    (license license:asl2.0)))
76
77
(define-public java-brotli-dec
78
  (package
79
    (name "java-brotli-dec")
80
    (version "0.6.0")
81
    (source (origin
82
              (method url-fetch)
83
              (uri (string-append "https://github.com/google/brotli/archive/v"
84
                                  version ".tar.gz"))
85
              (sha256
86
               (base32
87
                "03zfr6lw6ry643l6pbg0myg52clypxd0y0igd84dslchf3svvkb9"))))
88
    (build-system ant-build-system)
89
    (native-inputs
90
     `(("junit" ,java-junit)))
91
    (arguments
92
     `(#:jar-name "brotli-dec.jar"
93
       #:tests? #f; no test target
94
       #:source-dir "java"))
95
    (home-page "https://brotli.org")
96
    (synopsis "Lossless compression algorithm")
97
    (description "Brotli is a generic-purpose lossless compression algorithm
98
that compresses data using a combination of a modern variant of the LZ77
99
algorithm, Huffman coding and 2nd order context modeling, with a compression
100
ratio comparable to the best currently available general-purpose compression
101
methods.  It is similar in speed with deflate but offers more dense compression.")
102
    (license license:expat)))
103
104
(define-public java-commons-compress-latest
105
  (package
106
    (inherit java-commons-compress)
107
    (version "1.14")
108
    (source (origin
109
              (method url-fetch)
110
              (uri (string-append "mirror://apache/commons/compress/source/"
111
                                  "commons-compress-" version "-src.tar.gz"))
112
              (sha256
113
               (base32
114
                "1msfjbknfgx78j96fsiqk44r45plz10x9sw88flrpf3yaf4d3br1"))))
115
    (inputs
116
     `(("dec" ,java-brotli-dec)
117
       ,@(package-inputs java-commons-compress)))))
118
119
(define-public java-jmapviewer
120
  (package
121
    (name "java-jmapviewer")
122
    (version "2.3")
123
    (source (origin
124
              (method url-fetch)
125
              (uri (string-append "https://svn.openstreetmap.org/applications/viewer/jmapviewer/releases/"
126
                                  version "/JMapViewer-" version "-Source.zip"))
127
              (sha256
128
               (base32
129
                "0xalq8bacn8ibz3xiaqvj5pg6pxk9irvwx5f1lb0y2z5gsny3l1x"))))
130
    (build-system ant-build-system)
131
    (native-inputs
132
     `(("unzip" ,unzip)))
133
    (arguments
134
     `(#:build-target "pack"
135
       #:jdk ,icedtea-8
136
       #:tests? #f; No tests
137
       #:phases
138
       (modify-phases %standard-phases
139
         (add-before 'build 'clean
140
           (lambda* _
141
             (zero? (system* "ant" "clean"))))
142
         (replace 'install
143
           (lambda* (#:key outputs #:allow-other-keys)
144
             (let ((dir (string-append (assoc-ref outputs "out") "/share/java/")))
145
               (mkdir-p dir)
146
               (copy-file "JMapViewer.jar" (string-append dir "JMapViewer.jar"))))))))
147
    (home-page "https://wiki.openstreetmap.org/wiki/JMapViewer")
148
    (synopsis "")
149
    (description "")
150
    (license license:gpl2)))
151
152
(define-public java-josm
153
  (package
154
    (name "java-josm")
155
    (version "12450")
156
    (source (origin
157
              (method git-fetch)
158
              (uri (git-reference
159
                    (url "https://github.com/openstreetmap/josm.git")
160
                    (commit "61a9c27e59976805b7cce4fae5a48c8e04b19373")))
161
              ;;(uri (svn-reference
162
              ;;      (url "https://svn.openstreetmap.org/applications/editors/josm")
163
              ;;      (revision 12039)))
164
              (sha256
165
               (base32
166
                "1hab27b8s6h2b1g07pghr4nkx6rx2gx75488rwppdfc0ymzpjzrp"))
167
              (file-name (string-append name "-" version))))
168
    (build-system ant-build-system)
169
    (native-inputs
170
     `(("java-javacc" ,java-javacc)))
171
    (propagated-inputs
172
     `(("java-jmapviewer" ,java-jmapviewer)
173
       ("java-tomcat" ,java-tomcat)
174
       ("java-brotli-dec" ,java-brotli-dec)
175
       ("java-xz" ,java-xz)
176
       ("java-velocity" ,java-velocity)
177
       ("java-commons-collections" ,java-commons-collections)
178
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
179
       ("java-commons-compress" ,java-commons-compress-latest)))
180
    (arguments
181
     `(;#:build-target "dist"
182
       #:tests? #f
183
       #:jdk ,icedtea-8
184
       #:jar-name "josm.jar"
185
       #:phases
186
       (modify-phases %standard-phases
187
         (add-after 'unpack 'rm-build.xml
188
           (lambda* _
189
             (delete-file "build.xml")))
190
         (add-before 'build 'fix-revision
191
           (lambda* _
192
             (with-output-to-file "REVISION.XML"
193
               (lambda _
194
                 (display
195
                   (string-append "<info><entry><commit revision=\"" ,version "\">"
196
                                  "<date>1970-01-01 00:00:00 +0000</date>"
197
                                  "</commit></entry></info>"))))))
198
         (add-before 'build 'generate-parser
199
           (lambda* _
200
             (let* ((dir "src/org/openstreetmap/josm/gui/mappaint/mapcss")
201
                    (out (string-append dir "/parsergen"))
202
                    (file (string-append dir "/MapCSSParser.jj")))
203
               (mkdir-p "src/org/openstreetmap/josm/gui/mappaint/mapcss/parsergen")
204
               (zero? (system* "javacc" "-DEBUG_PARSER=false"
205
                               "-DEBUG_TOKEN_MANAGER=false" "-JDK_VERSION=1.8"
206
                               "-GRAMMAR_ENCODING=UTF-8"
207
                               (string-append "-OUTPUT_DIRECTORY=" out)
208
                               file)))))
209
)))
210
         ;(add-before 'build 'fix-compiler
211
         ;  (lambda* _
212
         ;    (substitute* "build.xml"
213
         ;      (("UNKNOWN") ,version)
214
         ;      (("<touch.*epsg.output.*") "<mkdir dir=\"${epsg.output}/..\" /><touch file=\"${epsg.output}\"/>\n")
215
         ;      ((".*com.google.errorprone.ErrorProneAntCompilerAdapter.*") "")
216
         ;      (("compiler=\"[^\"]*\" ") ""))))
217
         ;(replace 'install
218
         ;  (lambda* (#:key outputs inputs #:allow-other-keys)
219
         ;    (let* ((out (assoc-ref outputs "out"))
220
         ;           (bin (string-append out "/bin"))
221
         ;           (lib (string-append out "/lib/josm")))
222
         ;      (mkdir-p bin)
223
         ;      (mkdir-p lib)
224
         ;      (copy-file "dist/josm-custom.jar"
225
         ;                 (string-append lib "/josm.jar"))
226
         ;      (with-output-to-file (string-append bin "/josm")
227
         ;        (lambda _
228
         ;          (display
229
         ;            (string-append "#!/bin/sh\n"
230
         ;                           (assoc-ref inputs "jdk") "/bin/java"
231
         ;                           " -jar " lib "/josm.jar"))))
232
         ;      (chmod (string-append bin "/josm") #o755)))))))
233
    (home-page "https://josm.openstreetmap.de")
234
    (synopsis "OSM editor")
235
    (description "OSM editor.")
236
    (license license:gpl2+)))
237
238
(define-public java-commons-collections
239
  (package
240
    (inherit java-commons-collections4)
241
    (name "java-commons-collections")
242
    (version "3.2.2")
243
    (source (origin
244
              (method url-fetch)
245
              (uri (string-append "mirror://apache/commons/collections/source/"
246
                                  "commons-collections-" version "-src.tar.gz"))
247
              (sha256
248
               (base32
249
                "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387"))))
250
    (arguments
251
      (substitute-keyword-arguments (package-arguments java-commons-collections4)
252
        ((#:phases phases)
253
          `(modify-phases ,phases
254
            (add-before 'build 'add-manifest
255
              (lambda _
256
                (mkdir-p "build/conf")
257
                (call-with-output-file "build/conf/MANIFEST.MF"
258
                  (lambda (file)
259
                    (format file "Manifest-Version: 1.0\n")
260
                    (format file "Ant-Version: Apache Ant 1.9.9\n")
261
                    (format file "Created-By: 1.8.0_131-b11 (Oracle Corporation)")))))
262
            (replace 'install
263
              (install-jars "build"))))))))
264
265
(define-public java-jdom2
266
  (package
267
    (name "java-jdom")
268
    (version "2.0.6")
269
    (source (origin
270
              (method url-fetch)
271
              (uri (string-append "https://github.com/hunterhacker/jdom/archive/JDOM-"
272
                                  version ".tar.gz"))
273
              (sha256
274
               (base32
275
                "0p8n7inqq2a25wk9ljinl3ixlx1x2la9qaman8ngd75xxjb02yc1"))))
276
    (build-system ant-build-system)
277
    (arguments
278
     `(#:build-target "package"
279
       #:tests? #f; junit run with "package" target
280
       #:phases
281
       (modify-phases %standard-phases
282
         (replace 'install
283
           (install-jars "build")))))
284
    (home-page "http://jdom.org/")
285
    (synopsis "Access, manipulate, and output XML data")
286
    (description " Java-based solution for accessing, manipulating, and
287
outputting XML data from Java code.")
288
    (license license:bsd-4)))
289
290
(define-public java-jakarta-oro
291
  (package
292
    (name "java-jakarta-oro")
293
    (version "2.0.8")
294
    (source (origin
295
              (method url-fetch)
296
              (uri (string-append "https://archive.apache.org/dist/jakarta/oro/"
297
                                  "jakarta-oro-" version ".tar.gz"))
298
              (sha256
299
               (base32
300
                "0rpmnsskiwmsy8r0sckz5n5dbvh3vkxx8hpm177c754r8xy3qksc"))))
301
    (build-system ant-build-system)
302
    (arguments
303
     `(#:build-target "package"
304
       #:tests? #f; junit run with "package" target
305
       #:phases
306
       (modify-phases %standard-phases
307
         (add-after 'unpack 'remove-bin
308
           (lambda _
309
             (delete-file (string-append "jakarta-oro-" ,version ".jar"))))
310
         (replace 'install
311
           (install-jars ,(string-append "jakarta-oro-" version))))))
312
    (home-page "https://jakarta.apache.org/oro/")
313
    (synopsis "")
314
    (description "")
315
    (license license:asl2.0)))
316
317
(define-public java-jdom
318
  (package
319
    (name "java-jdom")
320
    (version "1.1.3")
321
    (source (origin
322
              (method url-fetch)
323
              (uri (string-append "http://jdom.org/dist/binary/archive/jdom-"
324
                                  version ".tar.gz"))
325
              (sha256
326
               (base32
327
                "07wdpm3jwwc9q38kmdw40fvbmv6jzjrkrf8m0zqs58f79a672wfl"))))
328
    (build-system ant-build-system)
329
    (arguments
330
     `(#:build-target "package"
331
       #:tests? #f; junit run with "package" target
332
       #:phases
333
       (modify-phases %standard-phases
334
         (replace 'install
335
           (install-jars "build")))))
336
    (home-page "http://jdom.org/")
337
    (synopsis "Access, manipulate, and output XML data")
338
    (description " Java-based solution for accessing, manipulating, and
339
outputting XML data from Java code.")
340
    (license license:bsd-4)))
341
342
(define-public java-commons-logging
343
  (package
344
    (inherit java-commons-logging-minimal)
345
    (arguments
346
     `(#:tests? #f ; avoid dependency on logging frameworks
347
       #:jar-name "commons-logging.jar"
348
       #:phases
349
       (modify-phases %standard-phases
350
         (add-after 'unpack 'delete-adapters-and-tests
351
           (lambda _
352
             ;; Delete all adapters except for NoOpLog, SimpleLog, and
353
             ;; LogFactoryImpl.  NoOpLog is required to build; LogFactoryImpl
354
             ;; is used by applications; SimpleLog is the only actually usable
355
             ;; implementation that does not depend on another logging
356
             ;; framework.
357
             (for-each
358
              (lambda (file)
359
                (delete-file (string-append
360
                              "src/main/java/org/apache/commons/logging/impl/" file)))
361
              (list "Jdk13LumberjackLogger.java"
362
                    "WeakHashtable.java"
363
                    "Log4JLogger.java"
364
                    "ServletContextCleaner.java"
365
                    "Jdk14Logger.java"
366
                    "AvalonLogger.java"
367
                    "LogKitLogger.java"))
368
             (delete-file-recursively "src/test")
369
             #t)))))
370
    (inputs
371
     `(("log4j" ,java-log4j-api)
372
       ,@(package-inputs java-commons-logging-minimal)))))
373
374
(define-public java-lz4
375
  (package
376
    (name "java-lz4")
377
    (version "1.3.0")
378
    (source (origin
379
              (method url-fetch)
380
              (uri (string-append "https://repo1.maven.org/maven2/net/jpountz/"
381
                                  "lz4/lz4/" version "/lz4-" version "-sources.jar"))
382
              (sha256
383
               (base32
384
                "1vplqq2fhwjjrkdnnlclwyclxvzav80f7246awd178xwl9ng4vcm"))))
385
    (build-system ant-build-system)
386
    (arguments
387
     `(#:jar-name "java-lj4.jar"
388
       #:jdk ,icedtea-8
389
       #:source-dir "."
390
       #:tests? #f)); no tests
391
    (home-page "https://jpountz.github.io/lz4-java"); or http://blog.jpountz.net/
392
    (synopsis "")
393
    (description "")
394
    (license license:asl2.0)))
395
396
(define-public java-kafka-clients
397
  (package
398
    (name "java-kafka-clients")
399
    (version "0.11.0.0")
400
    (source (origin
401
              (method url-fetch)
402
              (uri (string-append "mirror://apache/kafka/" version "/kafka-"
403
                                  version "-src.tgz"))
404
              (sha256
405
               (base32
406
                "01mbi12bdxhrv4iadb3179cqrg689jva8hh8nig4n747arsbgiby"))))
407
    (build-system ant-build-system)
408
    (arguments
409
     `(#:jar-name "java-kafka-clients.jar"
410
       #:jdk ,icedtea-8
411
       #:source-dir "clients/src/main/java"
412
       #:tests? #f))
413
    (inputs
414
     `(("java-slf4j-api" ,java-slf4j-api)
415
       ("java-lz4" ,java-lz4)))
416
    (home-page "https://kafka.apache.org")
417
    (synopsis "")
418
    (description "")
419
    (license (list license:cddl1.0; actually cddl1.1
420
                   license:gpl2)))); with classpath exception
421
422
(define-public java-bsh
423
  (package
424
    (name "java-bsh")
425
    (version "2.0b6")
426
    (source (origin
427
              (method url-fetch)
428
              (uri (string-append "https://github.com/beanshell/beanshell/archive/"
429
                                  version ".tar.gz"))
430
              (sha256
431
               (base32
432
                "1bawkxk6jyc75hxvzkpz689h73cn3f222m0ar3nvb0dal2b85kfv"))))
433
    (build-system ant-build-system)
434
    (arguments
435
     `(#:build-target "jarall"
436
       #:tests? #f
437
       #:phases
438
       (modify-phases %standard-phases
439
         (replace 'install
440
           (lambda* (#:key outputs #:allow-other-keys)
441
             (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
442
               (mkdir-p share)
443
               (copy-file "dist/bsh-2.0b6.jar" (string-append share "/bsh-2.0b6.jar"))))))))
444
    (home-page "http://beanshell.org/")
445
    (synopsis "")
446
    (description "")
447
    (license license:asl2.0)))
448
449
(define-public java-hdrhistogram
450
  (package
451
    (name "java-hdrhistogram")
452
    (version "2.1.9")
453
    (source (origin
454
              (method url-fetch)
455
              (uri (string-append "https://github.com/HdrHistogram/HdrHistogram/"
456
                                  "archive/HdrHistogram-" version ".tar.gz"))
457
              (sha256
458
               (base32
459
                "1sicbmc3sr42nw93qbkb26q9rn33ag33k6k77phjc3j5h5gjffqv"))))
460
    (build-system ant-build-system)
461
    (arguments
462
     `(#:jar-name "java-hdrhistogram.jar"
463
       #:source-dir "src/main/java"
464
       #:tests? #f
465
       #:phases
466
       (modify-phases %standard-phases
467
         (add-before 'configure 'set-version
468
           (lambda _
469
             (let* ((version-java "src/main/java/org/HdrHistogram/Version.java")
470
                    (template (string-append version-java ".template")))
471
               (copy-file template version-java)
472
               (substitute* version-java
473
                 (("\\$VERSION\\$") ,version)
474
                 (("\\$BUILD_TIME\\$") "0"))))))))
475
    (home-page "https://hdrhistogram.github.io/HdrHistogram")
476
    (synopsis "")
477
    (description "")
478
    (license license:bsd-2)))
479
480
(define-public java-jmock
481
  (package
482
    (name "java-jmock")
483
    (version "2.8.2")
484
    (source (origin
485
              (method url-fetch)
486
              (uri (string-append "https://github.com/jmock-developers/"
487
                                  "jmock-library/archive/" version ".tar.gz"))
488
              (sha256
489
               (base32
490
                "18650a9g8xffcsdb6w91pbswa7f40fp2sh6s3nclkclz5dbzq8f0"))))
491
    (build-system ant-build-system)
492
    (inputs
493
     `(("java-hamcrest-all" ,java-hamcrest-all)
494
       ("java-asm" ,java-asm)
495
       ("java-bsh" ,java-bsh)
496
       ("java-jumit" ,java-junit)))
497
    (arguments
498
     `(#:jar-name "java-jmock.jar"
499
       #:source-dir "jmock/src/main/java"
500
       #:tests? #f))
501
    (home-page "https://github.com/jmock-developers/jmock-library")
502
    (synopsis "")
503
    (description "")
504
    (license license:bsd-3)))
505
506
(define-public java-jmock-junit4
507
  (package
508
    (inherit java-jmock)
509
    (name "java-jmock-junit4")
510
    (arguments
511
     `(#:jar-name "java-jmock-junit4.jar"
512
       #:source-dir "jmock-junit4/src/main/java"
513
       #:tests? #f))
514
    (inputs
515
     `(("java-hamcrest-all" ,java-hamcrest-all)
516
       ("java-asm" ,java-asm)
517
       ("java-bsh" ,java-bsh)
518
       ("java-jmock" ,java-jmock)
519
       ("java-jumit" ,java-junit)))))
520
521
522
(define-public java-jmock-legacy
523
  (package
524
    (inherit java-jmock)
525
    (name "java-jmock-legacy")
526
    (arguments
527
     `(#:jar-name "java-jmock-legacy.jar"
528
       #:source-dir "jmock-legacy/src/main/java"
529
       #:tests? #f))
530
    (inputs
531
     `(("java-hamcrest-all" ,java-hamcrest-all)
532
       ("java-objenesis" ,java-objenesis)
533
       ("java-cglib" ,java-cglib)
534
       ("java-jmock" ,java-jmock)
535
       ("java-asm" ,java-asm)
536
       ("java-bsh" ,java-bsh)
537
       ("java-jumit" ,java-junit)))))
538
539
(define-public java-lmax-disruptor
540
  (package
541
    (name "java-lmax-disruptor")
542
    (version "3.3.6")
543
    (source (origin
544
              (method url-fetch)
545
              (uri (string-append "https://github.com/LMAX-Exchange/disruptor/"
546
                                  "archive/" version ".tar.gz"))
547
              (sha256
548
               (base32
549
                "19c7c5cf3lby4fy7vl3b6a9hds1g0j7xgfbskqbdlcai1x82hh8i"))))
550
    (build-system ant-build-system)
551
    (arguments
552
     `(#:jar-name "java-lmax-disruptor.jar"
553
       #:jdk ,icedtea-8
554
       #:source-dir "src"
555
       #:tests? #f)); no tests
556
    (inputs
557
     `(("junit" ,java-junit)
558
       ("java-hdrhistogram" ,java-hdrhistogram)
559
       ("java-jmock" ,java-jmock)
560
       ("java-jmock-legacy" ,java-jmock-legacy)
561
       ("java-jmock-junit4" ,java-jmock-junit4)
562
       ("java-hamcrest-all" ,java-hamcrest-all)))
563
    (home-page "https://www.lmax.com/disruptor")
564
    (synopsis "")
565
    (description "")
566
    (license license:asl2.0)))
567
568
(define-public java-mail
569
  (package
570
    (name "java-mail")
571
    (version "1.6.0")
572
    (source (origin
573
              (method url-fetch)
574
              (uri (string-append "https://github.com/javaee/javamail/archive/"
575
                                  "JAVAMAIL-1_6_0.tar.gz"))
576
              (sha256
577
               (base32
578
                "1b4rg7fpj50ld90a71iz2m4gm3f5cnw18p3q3rbrrryjip46kx92"))))
579
    (build-system ant-build-system)
580
    (arguments
581
     `(#:jar-name "java-mail.jar"
582
       #:jdk ,icedtea-8
583
       #:source-dir "mail/src/main/java"
584
       #:tests? #f; no tests
585
       #:phases
586
       (modify-phases %standard-phases
587
         (add-before 'configure 'move-version.java
588
           (lambda _
589
             ;; this is done in build.xml (init target)
590
             (copy-file "mail/src/main/resources/javax/mail/Version.java"
591
                        "mail/src/main/java/javax/mail/Version.java"))))))
592
    (home-page "https://javaee.github.io/javamail")
593
    (synopsis "")
594
    (description "")
595
    (license (list license:cddl1.0; actually cddl1.1
596
                   license:gpl2)))); with classpath exception
597
598
(define-public java-log4j-core
599
  (package
600
    (inherit java-log4j-api)
601
    (name "java-log4j-core")
602
    (inputs
603
     `(("java-osgi-core" ,java-osgi-core)
604
       ("java-hamcrest-core" ,java-hamcrest-core)
605
       ("java-log4j-api" ,java-log4j-api)
606
       ("java-mail" ,java-mail)
607
       ("java-lmax-disruptor" ,java-lmax-disruptor)
608
       ("java-kafka" ,java-kafka-clients)
609
       ("java-commons-compress" ,java-commons-compress)
610
       ("java-junit" ,java-junit)))
611
    (arguments
612
     `(#:tests? #f ; tests require unpackaged software
613
       #:jar-name "log4j-core.jar"
614
       #:make-flags
615
       (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out")
616
                            "/share/java"))
617
       #:phases
618
       (modify-phases %standard-phases
619
         (add-after 'unpack 'enter-dir
620
           (lambda _ (chdir "log4j-core") #t))
621
         ;; FIXME: The tests require additional software that has not been
622
         ;; packaged yet, such as
623
         ;; * org.apache.maven
624
         ;; * org.apache.felix
625
         (add-after 'enter-dir 'delete-tests
626
           (lambda _ (delete-file-recursively "src/test") #t)))))))
627
628
(define-public java-velocity
629
  (package
630
    (name "java-velocity")
631
    (version "1.7")
632
    (source (origin
633
              (method url-fetch)
634
              (uri (string-append "mirror://apache/velocity/engine/"
635
                                  version "/velocity-" version ".tar.gz"))
636
              (sha256
637
               (base32
638
                "0rk7s04hkrr2k3glccx0yrglzqzj4qbipcrxhglk46yhx92vravc"))
639
	      (patches
640
		(search-patches "java-velocity-dont-use-werken-xpath.patch"))))
641
    (build-system ant-build-system)
642
    (arguments
643
     `(#:source-dir "src/java"
644
       #:phases
645
       (modify-phases %standard-phases
646
	     (add-before 'configure 'fix-log4j-path
647
	       (lambda _
648
	         (for-each (lambda (file)
649
                         (substitute* file
650
	                       (("org.apache.log4j") "org.apache.logging.log4j")))
651
               '("src/java/org/apache/velocity/runtime/log/Log4JLogChute.java"
652
                 "src/java/org/apache/velocity/runtime/log/SimpleLog4JLogSystem.java"))))
653
         (add-before 'build 'prepare
654
           (lambda* (#:key inputs #:allow-other-keys)
655
             (delete-file-recursively "lib")
656
             (mkdir-p "bin/lib")
657
             ;; Don't download anything
658
             (substitute* "build/build.xml"
659
               ((".*download.xml.*") ""))
660
             (chdir "build"))))))
661
    (native-inputs
662
     `(("javacc" ,java-javacc)
663
       ("antlr" ,antlr2)))
664
    (propagated-inputs
665
     `(("java-commons-collections" ,java-commons-collections)
666
       ("java-jakarta-oro" ,java-jakarta-oro)
667
       ("java-jdom" ,java-jdom)
668
       ("java-tomcat" ,java-tomcat)
669
       ("java-log4j-api" ,java-log4j-api)
670
       ("java-commons-logging-minimal" ,java-commons-logging)
671
       ("java-commons-lang" ,java-commons-lang)))
672
    (home-page "https://velocity.apache.org/")
673
    (synopsis "")
674
    (description "")
675
    (license license:asl2.0)))
676
677
(define-public java-commons-jcs
678
  (package
679
    (name "java-commons-jcs")
680
    (version "2.1")
681
    (source (origin
682
              (method url-fetch)
683
              (uri (string-append "mirror://apache/commons/jcs/source/"
684
                                  "commons-jcs-dist-" version "-src.tar.gz"))
685
              (sha256
686
               (base32
687
                "17l78mpxx1qkgp213b91sl69wawv6xzgllr479mygbg76ygwpffv"))))
688
    (build-system ant-build-system)
689
    (arguments
690
     `(#:jar-name "commons-jcs.jar"
691
       #:source-dir "commons-jcs-core/src/main/java"))
692
    (propagated-inputs
693
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
694
       ("java-velocity" ,java-velocity)))
695
    (home-page "https://commons.apache.org/proper/commons-jcs/")
696
    (synopsis "")
697
    (description "")
698
    (license license:asl2.0)))
699
700
(define-public java-javacc
701
  (package
702
    (name "java-javacc")
703
    (version "7.0.2")
704
    (source (origin
705
              (method url-fetch)
706
              (uri (string-append "https://github.com/javacc/javacc/archive/release_"
707
                                  (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
708
                                  ".tar.gz"))
709
              (sha256
710
               (base32
711
                "0yf93993nlsk5kijazddi5621x4y2bwq3vl46j8h8f7di2z9jv2h"))))
712
    (build-system ant-build-system)
713
    (arguments
714
     `(#:test-target "unittest"
715
       #:phases
716
       (modify-phases %standard-phases
717
         (add-after 'unpack 'remove-binaries
718
           (lambda* _
719
             ;; Note: we cannot remove bootstrap/javacc.jar because no version of javacc comes with no bootstrap
720
             (delete-file-recursively "lib")))
721
         ;    (let* ((out (assoc-ref outputs "out"))
722
         ;           (bin (string-append out "/bin"))
723
         ;           (lib (string-append out "/lib/josm")))
724
         ;      (mkdir-p bin)
725
         ;      (mkdir-p lib)
726
         ;      (copy-file "dist/josm-custom.jar"
727
         ;                 (string-append lib "/josm.jar"))
728
         (replace 'install
729
           (lambda* (#:key outputs inputs #:allow-other-keys)
730
             (let* ((out (assoc-ref outputs "out"))
731
                    (dir (string-append out "/share/java"))
732
                    (bin (string-append out "/bin")))
733
               (mkdir-p dir)
734
               (mkdir-p bin)
735
               (copy-file "target/javacc.jar" (string-append dir "/javacc.jar"))
736
               (with-output-to-file (string-append bin "/javacc")
737
                 (lambda _
738
                   (display
739
                     (string-append "#!/bin/sh\n"
740
                                    (assoc-ref inputs "jdk") "/bin/java"
741
                                    " -cp " dir "/javacc.jar" " javacc" " $*"))))
742
               (chmod (string-append bin "/javacc") #o755)))))))
743
    (native-inputs
744
     `(("junit" ,java-junit)))
745
    (home-page "https://javacc.org")
746
    (synopsis "")
747
    (description "")
748
    (license license:bsd-3)))
749
    
750
751
(define-public java-icu4j
752
  (package
753
    (name "java-icu4j")
754
    (version "58.2")
755
    (source (origin
756
              (method url-fetch)
757
              (uri (string-append
758
                     "http://download.icu-project.org/files/icu4j/" version
759
                     "/icu4j-"
760
                     (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
761
                     ".tgz"))
762
              (sha256
763
               (base32
764
                "1mvqjlc3cbaraa0bv0vyl44xf0x6n81inqsh69bl7f88iycfpns9"))))
765
    (build-system ant-build-system)
766
    (arguments
767
     `(#:tests? #f ; Requires java-ivy that we don't have yet.
768
       #:phases
769
       (modify-phases %standard-phases
770
         ;; icu4j archive contains its sources directly at the top, not in
771
         ;; a subdirectory as usual.
772
         (add-after 'unpack 'chdir
773
           (lambda _
774
             (chdir "..")))
775
         (replace 'install
776
           (lambda* (#:key outputs #:allow-other-keys)
777
             (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
778
               (mkdir-p share)
779
               (copy-file "icu4j-charset.jar" (string-append share "/icu4j-charset.jar"))
780
               (copy-file "icu4j.jar" (string-append share "/icu4j.jar"))))))))
781
    (home-page "http://site.icu-project.org/")
782
    (synopsis "")
783
    (description "")
784
    (license license:x11)))
785
786
(define-public java-treelayout
787
  (package
788
    (name "java-treelayout")
789
    (version "1.0.3")
790
    (source (origin
791
              (method url-fetch)
792
              (uri (string-append
793
                     "https://github.com/abego/treelayout/archive/v" version
794
                     ".tar.gz"))
795
              (file-name (string-append name "-" version ".tar.gz"))
796
              (sha256
797
               (base32
798
                "0djdw7j66lqjx8bx9zja0hsx10c6nsj3z0z20jmavwfr6bpp0345"))))
799
    (build-system ant-build-system)
800
    (arguments
801
     `(#:jar-name (string-append ,name "-" ,version ".jar")
802
       #:tests? #f
803
       #:phases
804
       (modify-phases %standard-phases
805
         ;; icu4j archive contains its sources directly at the top, not in
806
         ;; a subdirectory as usual.
807
         (add-after 'unpack 'chdir
808
           (lambda _
809
             (chdir "org.abego.treelayout"))))))
810
    (inputs
811
     `(("junit" ,java-junit)))
812
    (home-page "http://treelayout.sourceforge.net")
813
    (synopsis "")
814
    (description "")
815
    (license license:bsd-3)))
816
817
; propose update
818
(define-public java-commons-cli
819
  (package
820
    (name "java-commons-cli")
821
    (version "1.4")
822
    (source (origin
823
              (method url-fetch)
824
              (uri (string-append "http://mirrors.ircam.fr/pub/apache/commons/"
825
                                  "cli/source/commons-cli-" version "-src.tar.gz"))
826
              (file-name (string-append name "-" version ".tar.gz"))
827
              (sha256
828
               (base32
829
                "05hgi2z01fqz374y719gl1dxzqvzci5af071zm7vxrjg9vczipm1"))))
830
    (build-system ant-build-system)
831
    (arguments
832
     `(#:jar-name "commons-cli-1.4.jar"
833
       #:tests? #f))
834
    (native-inputs
835
     `(("junit" ,java-junit)))
836
    (home-page "https://commons.apache.org/proper/commons-cli")
837
    (synopsis "Java API for parsing command line options passed to programs")
838
    (description "Apache Commons CLI library provides an API for parsing command
839
line options passed to programs. It's also able to print help messages detailing
840
the options available for a command line tool.")
841
    (license license:asl2.0)))
842
843
; propose update
844
(define-public java-jsr305
845
  (package
846
    (name "java-jsr305")
847
    (version "3.0.2")
848
    (source (origin
849
              (method git-fetch)
850
              (uri (git-reference
851
                     (url "https://github.com/amaembo/jsr-305.git")
852
                     (commit "d7734b13c61492982784560ed5b4f4bd6cf9bb2c")))
853
              (file-name (string-append name "-" version))
854
              (sha256
855
               (base32
856
                "1wk159136pgc6i54drbq2whazfmdilvfqlxj3k19s9dfwbayf621"))))
857
    (build-system ant-build-system)
858
    (arguments
859
     `(#:jar-name (string-append ,name "-" ,version ".jar")
860
       #:source-dir "ri/src/main/java"
861
       #:tests? #f))
862
    (home-page "https://github.com/amaembo/jsr-305")
863
    (synopsis "")
864
    (description "")
865
    (license license:bsd-3)))
866
867
(define-public java-checker-framework
868
  (package
869
    (name "java-checker-framework")
870
    (version "2.1.10")
871
    (source (origin
872
              (method url-fetch)
873
              (uri (string-append "https://github.com/typetools/checker-framework/"
874
                                  "archive/checker-framework-" version ".tar.gz"))
875
              (file-name (string-append name "-" version ".tar.gz"))
876
              (sha256
877
               (base32
878
                "1infq1hr53zi9bd81v90rn3iripbinb3w145m3xblq8yvnfrxy20"))))
879
    (build-system ant-build-system)
880
    (arguments
881
     `(#:jar-name (string-append ,name "-" ,version ".jar")
882
       #:source-dir "dataflow/src:javacutil/src"
883
       #:jdk ,icedtea-8
884
       #:tests? #f))
885
    (home-page "https://checkerframework.org")
886
    (synopsis "")
887
    (description "")
888
    (license license:gpl2))); with classpath exception
889
890
(define-public java-javapoet
891
  (package
892
    (name "java-javapoet")
893
    (version "1.8.0")
894
    (source (origin
895
              (method url-fetch)
896
              (uri (string-append "https://github.com/square/javapoet/archive/javapoet-"
897
                                  version ".tar.gz"))
898
              (file-name (string-append name "-" version ".tar.gz"))
899
              (sha256
900
               (base32
901
                "0xpjbh8wcyj9yd9hb936ia5g6l2q1jlyqjvwcc290cwjrz7crb93"))))
902
    (build-system ant-build-system)
903
    (arguments
904
     `(#:jar-name (string-append ,name "-" ,version ".jar")
905
       #:source-dir "src/main/java"
906
       #:jdk ,icedtea-8
907
       #:tests? #f))
908
    (home-page "https://github.com/square/javapoet")
909
    (synopsis "")
910
    (description "")
911
    (license license:asl2.0)))
912
913
(define-public java-auto-value
914
  (package
915
    (name "java-auto-value")
916
    (version "1.4.1")
917
    (source (origin
918
              (method url-fetch)
919
              (uri (string-append "https://github.com/google/auto/archive/auto-value-"
920
                                  version ".tar.gz"))
921
              (file-name (string-append name "-" version ".tar.gz"))
922
              (sha256
923
               (base32
924
                "1qd59bwa56bynsdxfbgm40i7ndrj599wflza214kzigk16nprc1m"))))
925
    (build-system ant-build-system)
926
    (arguments
927
     `(#:jar-name (string-append ,name "-" ,version ".jar")
928
       #:source-dir "value/src/main/java:common/src/main/java:service/src/main/java"
929
       #:jdk ,icedtea-8
930
       #:tests? #f))
931
    (inputs
932
     `(("guava" ,java-guava)
933
       ("javapoet" ,java-javapoet)))
934
    (home-page "https://github.com/google/auto/tree/master/value")
935
    (synopsis "")
936
    (description "")
937
    (license license:asl2.0)))
938
939
(define-public java-diff-utils
940
  (package
941
    (name "java-diff-utils")
942
    (version "1.5.0")
943
    (source (origin
944
              (method url-fetch)
945
              (uri (string-append "https://github.com/KengoTODA/java-diff-utils/archive/"
946
                                  "diffutils-" version ".tar.gz"))
947
              (file-name (string-append name "-" version ".tar.gz"))
948
              (sha256
949
               (base32
950
                "107bkk542cgpk8sqgc41j0ljarb6zs9p59m3phvvv9rln6rwnmjc"))))
951
    (arguments
952
     `(#:build-target "all"
953
       #:tests? #f; I don't know how to run src/test
954
       #:phases
955
       (modify-phases %standard-phases
956
         (add-before 'configure 'fix-build.xml
957
           (lambda _
958
             (substitute* "build.xml"
959
               (("1.5") "1.7")
960
               (("1.3.0-SNAPSHOT") ,version))))
961
         (replace 'install
962
           (lambda* (#:key outputs #:allow-other-keys)
963
             (mkdir-p (string-append (assoc-ref outputs "out") "/share/java"))
964
             (with-directory-excursion "dist"
965
               (for-each (lambda (file)
966
                           (copy-file file
967
                                      (string-append (assoc-ref outputs "out")
968
                                                     "/share/java/" file)))
969
                 (find-files "." ".*.jar"))))))))
970
    (propagated-inputs
971
     `(("guava" ,java-guava)
972
       ("java-jsr305" ,java-jsr305)))
973
    (native-inputs
974
     `(("junit" ,java-junit)))
975
    (build-system ant-build-system)
976
    (home-page "https://github.com/KengoTODA/java-diff-utils")
977
    (synopsis "")
978
    (description "")
979
    (license license:asl2.0)))
980
    
981
982
;; com.sun.tools.javac.code.Scope.LookupKind.NON_RECURSIVE
983
;; com.sun.source.tree.PackageTree
984
;; com.sun.tools.javac.tree.JCTree.JCPackageDecl
985
986
;; TODO: error-prone depends on java9 at least from version 2.0.13 which is the
987
;; earliest version that guava can use.
988
;; Fortunately, java7 can be used for -annotations.
989
(define-public java-error-prone
990
  (package
991
    (name "java-error-prone")
992
    (version "2.0.19")
993
    (source (origin
994
              (method url-fetch)
995
              (uri (string-append "https://github.com/google/error-prone/archive/v"
996
                                  version ".tar.gz"))
997
              (file-name (string-append name "-" version ".tar.gz"))
998
              (sha256
999
               (base32
1000
                "00igy7a6aylswxdcklj9021g2s8bvsvrysagqyd8cibm4pimxrnk"))))
1001
    (build-system ant-build-system)
1002
    (arguments
1003
     `(#:tests? #f
1004
       #:jar-name "error-prone.jar"
1005
       #:source-dir "check_api/src/main/java"
1006
       #:phases
1007
       (modify-phases %standard-phases
1008
         (add-before 'build 'copy-internal
1009
           (lambda _
1010
             (mkdir-p "ant/src/main/java/com/google/errorprone/internal")
1011
             (copy-file
1012
               "core/src/main/java/com/google/errorprone/internal/NonDelegatingClassLoader.java"
1013
               "ant/src/main/java/com/google/errorprone/internal/NonDelegatingClassLoader.java"))))))
1014
    (propagated-inputs '())
1015
    (home-page "https://github.com/google/guava")
1016
    (synopsis "")
1017
    (description "")
1018
    (license license:asl2.0)))
1019
1020
;(define-public java-error-prone-check-api
1021
;  (package
1022
;    (inherit java-error-prone)
1023
;    (name "java-error-prone-check-api")
1024
;    (version (package-version java-error-prone))
1025
;    (arguments
1026
;     `(#:tests? #f
1027
;       #:jdk ,icedtea-8
1028
;       #:jar-name (string-append ,name "-" ,version ".jar")
1029
;       #:source-dir "check_api/src/main/java"))
1030
;    (propagated-inputs
1031
;     `(("java-error-prone-annotations" ,java-error-prone-annotations)
1032
;       ("java-error-prone-annotation" ,java-error-prone-annotation)
1033
;       ("java-jsr305" ,java-jsr305)
1034
;       ("java-diff-utils" ,java-diff-utils)
1035
;       ("java-auto-value" ,java-auto-value)
1036
;       ("java-checker-framework" ,java-checker-framework)
1037
;       ("java-guava" ,java-guava)))))
1038
1039
;(define-public java-error-prone-core
1040
;  (package
1041
;    (inherit java-error-prone)
1042
;    (name "java-error-prone-core")
1043
;    (version (package-version java-error-prone))
1044
;    (arguments
1045
;     `(#:tests? #f
1046
;       #:jdk ,icedtea-8
1047
;       #:jar-name (string-append ,name "-" ,version ".jar")
1048
;       #:source-dir "core/src/main/java"))
1049
;    (propagated-inputs
1050
;     `(("java-error-prone-annotations" ,java-error-prone-annotations)
1051
;       ("java-error-prone-annotation" ,java-error-prone-annotation)
1052
;       ("java-jsr305" ,java-jsr305)
1053
;       ("java-auto-value" ,java-auto-value)
1054
;       ("java-checker-framework" ,java-checker-framework)
1055
;       ("java-guava" ,java-guava)))))
1056
1057
(define-public java-error-prone-annotation
1058
  (package
1059
    (inherit java-error-prone)
1060
    (name "java-error-prone-annotation")
1061
    (version (package-version java-error-prone))
1062
    (arguments
1063
     `(#:tests? #f
1064
       #:jar-name (string-append ,name "-" ,version ".jar")
1065
       #:source-dir "annotation/src/main/java"))
1066
    (propagated-inputs
1067
     `(("java-jsr305" ,java-jsr305)
1068
       ("java-guava" ,java-guava)))))
1069
1070
(define-public java-error-prone-annotations
1071
  (package
1072
    (inherit java-error-prone)
1073
    (name "java-error-prone-annotations")
1074
    (version (package-version java-error-prone))
1075
    (arguments
1076
     `(#:tests? #f
1077
       #:jar-name (string-append ,name "-" ,version ".jar")
1078
       #:source-dir "annotations/src/main/java"))
1079
    (propagated-inputs
1080
     `(("java-jsr305" ,java-jsr305)))))
1081
1082
;; Java-j2objc is for OS X, but the annotations sub-project is used by other
1083
;; packages here, such as guava.
1084
(define-public java-j2objc-annotations
1085
  (package
1086
    (name "java-j2objc-annotations")
1087
    (version "1.3.1")
1088
    (source (origin
1089
              (method url-fetch)
1090
              (uri (string-append "https://github.com/google/j2objc/archive/"
1091
                                  version ".tar.gz"))
1092
              (file-name (string-append name "-" version ".tar.gz"))
1093
              (sha256
1094
               (base32
1095
                "0d5spbr1whw2afg6mknyr7ifm6xivn3bbvnzjxva2zzkyq944hv0"))))
1096
    (build-system ant-build-system)
1097
    (arguments
1098
     `(#:tests? #f
1099
       #:jar-name (string-append ,name "-" ,version ".jar")
1100
       #:source-dir "annotations/src/main/java"))
1101
    (synopsis "")
1102
    (description "")
1103
    (home-page "https://github.com/google/j2objc")
1104
    (license license:asl2.0)))
1105
1106
;; TODO: animal-sniffer-enforcer-rule and animal-sniffer-maven-plugin depend
1107
;; on maven.
1108
(define-public java-animal-sniffer
1109
  (package
1110
    (name "java-animal-sniffer")
1111
    (version "1.15")
1112
    (source (origin
1113
              (method url-fetch)
1114
              (uri (string-append "https://github.com/mojohaus/animal-sniffer/"
1115
                                  "archive/animal-sniffer-parent-"
1116
                                  version ".tar.gz"))
1117
              (file-name (string-append name "-" version ".tar.gz"))
1118
              (sha256
1119
               (base32
1120
                "1350yl003y1fjzdwis0dg5jhi5kggk2sxnkv9821z5janw4p986m"))))
1121
    (build-system ant-build-system)
1122
    (propagated-inputs
1123
     `(("asm" ,java-asm)))
1124
    (arguments
1125
     `(#:tests? #f
1126
       #:jar-name (string-append ,name "-" ,version ".jar")
1127
       #:source-dir "animal-sniffer/src/main/java"))
1128
    (home-page "http://www.mojohaus.org/animal-sniffer")
1129
    (synopsis "")
1130
    (description "")
1131
    (license license:asl2.0)))
1132
1133
(define-public java-animal-sniffer-annotations
1134
  (package
1135
    (inherit java-animal-sniffer)
1136
    (name "java-animal-sniffer-annotations")
1137
    (version (package-version java-animal-sniffer))
1138
    (propagated-inputs '())
1139
    (arguments
1140
     `(#:tests? #f
1141
       #:jar-name (string-append ,name "-" ,version ".jar")
1142
       #:source-dir "animal-sniffer-annotations/src/main/java"))))
1143
1144
(define-public java-animal-sniffer-ant-tasks
1145
  (package
1146
    (inherit java-animal-sniffer)
1147
    (name "java-animal-sniffer-ant-tasks")
1148
    (version (package-version java-animal-sniffer))
1149
    (propagated-inputs
1150
     `(("animal-sniffer" ,java-animal-sniffer)))
1151
    (arguments
1152
     `(#:tests? #f
1153
       #:jar-name (string-append ,name "-" ,version ".jar")
1154
       #:source-dir "animal-sniffer-ant-tasks/src/main/java"))))
1155
1156
(define-public java-boot-classpath-detector
1157
  (package
1158
    (inherit java-animal-sniffer)
1159
    (name "java-boot-classpath-detector")
1160
    (version (package-version java-animal-sniffer))
1161
    (propagated-inputs '())
1162
    (arguments
1163
     `(#:tests? #f
1164
       #:jar-name (string-append ,name "-" ,version ".jar")
1165
       #:source-dir "java-boot-classpath-detector/src/main/java"))))
1166
1167
(define-public java-guava
1168
  (package
1169
    (name "java-guava")
1170
    (version "20.0")
1171
    (source (origin
1172
              (method url-fetch)
1173
              (uri (string-append "https://github.com/google/guava/archive/v"
1174
                                  version ".tar.gz"))
1175
              (file-name (string-append name "-" version ".tar.gz"))
1176
              (sha256
1177
               (base32
1178
                "1kasavj973iblj1fj35gzbywhkljrnbjpymgqyqaibbbmmbzff8s"))))
1179
    (build-system ant-build-system)
1180
    (arguments
1181
     `(#:jar-name (string-append ,name "-" ,version ".jar")
1182
       #:source-dir "guava/src"
1183
       #:tests? #f))
1184
    (inputs
1185
     `(("java-jsr305" ,java-jsr305)
1186
       ("java-j2objc-annotations" ,java-j2objc-annotations)
1187
       ("java-animal-sniffer-annotations" ,java-animal-sniffer-annotations)
1188
       ("java-error-prone-annotations" ,java-error-prone-annotations)))
1189
    (home-page "https://github.com/google/guava")
1190
    (synopsis "")
1191
    (description "")
1192
    (license license:asl2.0)))
1193
1194
;(define-public java-joda-convert
1195
;  (package
1196
;    (name "java-joda-convert")
1197
;    (version "1.8.1")
1198
;    (source (origin
1199
;              (method url-fetch)
1200
;              (uri (string-append "https://github.com/JodaOrg/joda-convert/archive/v"
1201
;                                  version ".tar.gz"))
1202
;              (file-name (string-append name "-" version ".tar.gz"))
1203
;              (sha256
1204
;               (base32
1205
;                "1di9chp0pgvd2gxsmdaxhldwns9a2ss9705jmn97mdd69cg5zcnc"))))
1206
;    (build-system ant-build-system)
1207
;    (arguments
1208
;     `(#:jar-name (string-append ,name "-" ,version ".jar")
1209
;       #:source-dir "src/main/java"
1210
;       #:tests? #f))
1211
;    (inputs
1212
;     `(("java-google-collect" ,java-google-collect)))
1213
;    (native-inputs
1214
;     `(("junit" ,java-junit)))
1215
;    (home-page "")
1216
;    (synopsis "")
1217
;    (description "")
1218
;    (license license:asl2.0)))
1219
;
1220
;(define-public java-joda-time
1221
;  (package
1222
;    (name "java-joda-time")
1223
;    (version "2.9.9")
1224
;    (source (origin
1225
;              (method url-fetch)
1226
;              (uri (string-append "https://github.com/JodaOrg/joda-time/archive/v"
1227
;                                  version ".tar.gz"))
1228
;              (file-name (string-append name "-" version ".tar.gz"))
1229
;              (sha256
1230
;               (base32
1231
;                "1i9x91mi7yg2pasl0k3912f1pg46n37sps6rdb0v1gs8hj9ppwc1"))))
1232
;    (build-system ant-build-system)
1233
;    (arguments
1234
;     `(#:jar-name (string-append ,name "-" ,version ".jar")
1235
;       #:source-dir "src/main/java"
1236
;       #:tests? #f))
1237
;    (inputs
1238
;     `(("java-joda-convert" ,java-joda-convert)))
1239
;    (native-inputs
1240
;     `(("junit" ,java-junit)))
1241
;    (home-page "")
1242
;    (synopsis "")
1243
;    (description "")
1244
;    (license license:asl2.0)))
1245
1246
(define-public java-xstream
1247
  (package
1248
    (name "java-xstream")
1249
    (version "1.4.9")
1250
    (source (origin
1251
              (method url-fetch)
1252
              (uri (string-append "https://repo1.maven.org/maven2/com/thoughtworks"
1253
                                  "/xstream/xstream-distribution/" version
1254
                                  "/xstream-distribution-" version "-src.zip"))
1255
              (file-name (string-append name "-" version ".zip"))
1256
              (sha256
1257
               (base32
1258
                "1cq9j9h839wc6pkrgd9bd7y94a3zrj1j741i134izqs9xx2b54fi"))))
1259
    (build-system ant-build-system)
1260
    (arguments
1261
     `(#:jar-name (string-append ,name "-" ,version ".jar")
1262
       #:tests? #f
1263
       #:source-dir "xstream/src/java"))
1264
    (native-inputs
1265
     `(("unzip" ,unzip)))
1266
    (home-page "https://x-stream.github.io")
1267
    (synopsis "")
1268
    (description "")
1269
    (license license:x11)))
1270
1271
;; vanished from the face of the earth :/
1272
(define-public java-jsonp
1273
  (package
1274
    (name "java-jsonp")
1275
    (version "1.0.4")
1276
    (source (origin
1277
              (method git-fetch)
1278
              (uri (git-reference
1279
                     (url "git://java.net/jsonp~git")
1280
                     (commit "a586e706aea82dc80fb05bdf59f2a25150ee1801")))
1281
              (file-name (string-append name "-" version))
1282
              (sha256
1283
               (base32
1284
                "01r4syivcywpvxkr1hn0az9316pr7qpnx154zzzw0nijfmdlbw7n"))))
1285
    (build-system ant-build-system)
1286
    (arguments
1287
     `(#:jar-name (string-append ,name "-" ,version ".jar")
1288
       #:tests? #f
1289
       #:source-dir "api/src"))
1290
    (home-page "https://jsonp.java.net")
1291
    (synopsis "")
1292
    (description "")
1293
    (license (list license:gpl2
1294
                   ;; actually CDDL 1.1
1295
                   license:cddl1.0))))
1296
1297
;; Can only be built with gradle.
1298
(define-public groovy
1299
  (package
1300
    (name "groovy")
1301
    (version "2.4.10")
1302
    (source (origin
1303
              (method url-fetch)
1304
              (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_"
1305
                                  "2_4_10.tar.gz"))
1306
              (file-name (string-append name "-" version ".tar.gz"))
1307
              (sha256
1308
               (base32
1309
                "0wapzqwpx4bh2fsqpzf3haakjz6wvfjx1vd9a4spavhlrjqk2pbb"))))
1310
    (build-system ant-build-system)
1311
    (arguments
1312
     `(#:jar-name "groovy.jar"
1313
       #:tests? #f))
1314
    (native-inputs
1315
     `(("junit" ,java-junit)))
1316
    (inputs
1317
     `(("commons-cli" ,java-commons-cli)
1318
       ("antlr" ,antlr3)
1319
       ("asm" ,java-asm)))
1320
    (home-page "")
1321
    (synopsis "")
1322
    (description "")
1323
    (license (list license:gpl2
1324
                   ;; actually CDDL 1.1
1325
                   license:cddl1.0))))
1326
1327
;; requires jline, javax.servlet, org.fusesource.jansi, org.livetribe,
1328
;;   com.thoughtworks.xstream, org.apache.ivy, bsf
1329
;;   antlr
1330
(define-public groovy-1.8.9
1331
  (package
1332
    (inherit groovy)
1333
    (name "groovy")
1334
    (version "1.8.9")
1335
    (source (origin
1336
              (method url-fetch)
1337
              (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_"
1338
                                  "1_8_9.tar.gz"))
1339
              (file-name (string-append name "-" version ".tar.gz"))
1340
              (sha256
1341
               (base32
1342
                "16z3jv5yw11wwwzbs6x41g83gqazhngg30ys2kpy7cpfm3rsqi71"))))
1343
    (arguments
1344
     `(#:jar-name (string-append ,name "-" ,version ".jar")
1345
       #:tests? #f
1346
       #:source-dir "src/main"))))
1347
1348
1349
;(define-public antlr3-3.4
1350
;  (package
1351
;    (name "antlr3")
1352
;    (version "3.4")
1353
;    (source (origin
1354
;              (method url-fetch)
1355
;              (uri (string-append "https://github.com/antlr/website-antlr3/raw/"
1356
;                                  "gh-pages/download/antlr-"
1357
;                                  version ".tar.gz"))
1358
;              (sha256
1359
;               (base32
1360
;                "1cwfswpk3jlzl1dhc6b6586srza8q0bbzwlxcq136p29v62fjrb3"))))
1361
;    (build-system ant-build-system)
1362
;    (arguments
1363
;     `(#:jar-name (string-append ,name "-" ,version ".jar")
1364
;       #:source-dir "tool/src/main/java:runtime/Java/src/main/java:tool/src/main/antlr3"
1365
;       #:tests? #f
1366
;       #:phases
1367
;       (modify-phases %standard-phases
1368
;         (add-after 'install 'bin-install
1369
;           (lambda* (#:key inputs outputs #:allow-other-keys)
1370
;             (let ((jar (string-append (assoc-ref outputs "out") "/share/java"))
1371
;                   (bin (string-append (assoc-ref outputs "out") "/bin")))
1372
;               (mkdir-p bin)
1373
;               (with-output-to-file (string-append bin "/antlr3")
1374
;                 (lambda _
1375
;                   (display
1376
;                     (string-append "#!/bin/sh\n"
1377
;                                    "java -cp " jar "/antlr3-3.3.jar:"
1378
;                                    (string-concatenate
1379
;                                      (find-files (assoc-ref inputs "stringtemplate")
1380
;                                                  ".*\\.jar"))
1381
;                                    ":"
1382
;                                    (string-concatenate
1383
;                                      (find-files (string-append (assoc-ref inputs "antlr") "/lib")
1384
;                                                  ".*\\.jar"))
1385
;                                    " org.antlr.Tool $*"))))
1386
;               (chmod (string-append bin "/antlr3") #o755))))
1387
;         (add-before 'build 'generate-grammar
1388
;           (lambda _
1389
;             (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/")
1390
;             (for-each (lambda (file)
1391
;                         (display file)
1392
;                         (newline)
1393
;                         (system* "antlr3" file))
1394
;                       '("ActionAnalysis.g" "ActionTranslator.g" "ANTLR.g"
1395
;                         "ANTLRTreePrinter.g" "ANTLRv3.g" "ANTLRv3Tree.g"
1396
;                         "AssignTokenTypesWalker.g" "CodeGenTreeWalker.g"
1397
;                         "DefineGrammarItemsWalker.g" "LeftRecursiveRuleWalker.g"
1398
;                         "TreeToNFAConverter.g"))
1399
;             (chdir "../../../../../../../..")
1400
;             (system* "antlr" "-o" "tool/src/main/java/org/antlr/tool"
1401
;                      "tool/src/main/java/org/antlr/tool/serialize.g")
1402
;             (substitute* "tool/src/main/java/org/antlr/tool/LeftRecursiveRuleAnalyzer.java"
1403
;               (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*;
1404
;import org.antlr.grammar.v3.ANTLRTreePrinter;"))
1405
;             (substitute* "tool/src/main/java/org/antlr/tool/Grammar.java"
1406
;               (("import org.antlr.grammar.v3.\\*;")
1407
;                "import org.antlr.grammar.v3.*;\n
1408
;import org.antlr.grammar.v3.TreeToNFAConverter;\n
1409
;import org.antlr.grammar.v3.DefineGrammarItemsWalker;\n
1410
;import org.antlr.grammar.v3.ANTLRTreePrinter;"))
1411
;             (substitute* "tool/src/main/java/org/antlr/tool/ErrorManager.java"
1412
;               (("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") ""))
1413
;             (substitute* "tool/src/main/antlr3/org/antlr/grammar/v3/ANTLRParser.java"
1414
;               (("public Object getTree") "public GrammarAST getTree"))
1415
;             (substitute* "tool/src/main/antlr3/org/antlr/grammar/v3/ANTLRv3Parser.java"
1416
;               (("public Object getTree") "public CommonTree getTree"))))
1417
;         (add-before 'build 'fix-build-xml
1418
;           (lambda _
1419
;             (substitute* "build.xml"
1420
;               (("<exec") "<copy todir=\"${classes.dir}\">
1421
;<fileset dir=\"tool/src/main/resources\">
1422
;<include name=\"**/*.stg\"/>
1423
;<include name=\"**/*.st\"/>
1424
;<include name=\"**/*.sti\"/>
1425
;<include name=\"**/STLexer.tokens\"/>
1426
;</fileset>
1427
;</copy><exec")))))))
1428
;    (native-inputs
1429
;     `(("antlr" ,antlr2)
1430
;       ("antlr3" ,antlr3-3.3)))
1431
;    (inputs
1432
;     `(("junit" ,java-junit)))
1433
;    (propagated-inputs
1434
;     `(("stringtemplate" ,java-stringtemplate-3)
1435
;       ("stringtemplate4" ,java-stringtemplate)
1436
;       ("antlr" ,antlr2)
1437
;       ("antlr3" ,antlr3-3.1)))
1438
;    (home-page "http://www.stringtemplate.org")
1439
;    (synopsis "")
1440
;    (description "")
1441
;    (license license:bsd-3)))
1442
1443
(define-public libantlr3c
1444
  (package
1445
    (inherit antlr3)
1446
    (name "libantlr3c")
1447
    (build-system gnu-build-system)
1448
    (native-inputs
1449
     `(("autoconf" ,autoconf)
1450
       ("automake" ,automake)
1451
       ("libtool" ,libtool)))
1452
    (propagated-inputs
1453
     `(("antlr" ,antlr3)))
1454
    (arguments
1455
     `(#:configure-flags (list "--enable-64bit" "--disable-static")
1456
       #:phases
1457
       (modify-phases %standard-phases
1458
         (add-before 'configure 'autoreconf
1459
           (lambda _
1460
             (chdir "runtime/C")
1461
             (system* "libtoolize")
1462
             (system* "autoreconf" "-fiv"))))))))
1463
1464
(define-public java-json
1465
  (package
1466
    (name "java-json")
1467
    (version "1.1.0-M2")
1468
    (source (origin
1469
              (method url-fetch)
1470
              (uri (string-append "https://repo1.maven.org/maven2/javax/json/"
1471
                                  "javax.json-api/" version "/javax.json-api-"
1472
                                  version "-sources.jar"))
1473
              (file-name (string-append name "-" version ".jar"))
1474
              (sha256
1475
               (base32
1476
                "0gam8w52xjbmfc1inviyajk36jnj3lg4bzwhw05iq52kadycy6v0"))))
1477
    (build-system ant-build-system)
1478
    (arguments
1479
     `(#:jar-name (string-append ,name "-" ,version ".jar")
1480
       #:tests? #f
1481
       #:jdk ,icedtea-8
1482
       #:source-dir "src"
1483
       #:phases
1484
       (modify-phases %standard-phases
1485
         (add-after 'unpack 'remove-module-info
1486
           (lambda _
1487
             (format #t "~a\n" (getcwd))
1488
             (delete-file "src/module-info.java"))))))
1489
    (home-page "")
1490
    (synopsis "")
1491
    (description "")
1492
    (license license:asl2.0)))
1493
1494
;; We still need one file to be generated with ST4.
1495
;; tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
1496
;; See https://github.com/kevinbirch/string-template-maven-plugin
1497
;; We should take this and adapt to get a standalone tool.
1498
(define-public java-antlr4
1499
  (package
1500
    (name "java-antlr4")
1501
    (version "4.7")
1502
    (source (origin
1503
              (method url-fetch)
1504
              (uri (string-append "https://github.com/antlr/antlr4/archive/"
1505
                                  version ".tar.gz"))
1506
              (file-name (string-append name "-" version ".tar.gz"))
1507
              (sha256
1508
               (base32
1509
                "0y7lzkvx9wbbmwg45mb4icx7i66z6894qfygrbbs26sr5xxyml9h"))))
1510
    (build-system ant-build-system)
1511
    (arguments
1512
     `(#:jar-name (string-append ,name "-" ,version ".jar")
1513
       #:source-dir "runtime/Java/src:tool/src"
1514
       #:jdk ,icedtea-8
1515
       #:tests? #f
1516
       #:phases
1517
       (modify-phases %standard-phases
1518
         (add-before 'build 'generate-grammar
1519
           (lambda* (#:key inputs #:allow-other-keys)
1520
             (with-directory-excursion "tool/src/org/antlr/v4/parse"
1521
               (for-each (lambda (file)
1522
                           (format #t "~a\n" file)
1523
                           (system* "antlr3" file))
1524
                         '("ANTLRLexer.g" "ANTLRParser.g" "BlockSetTransformer.g"
1525
                           "GrammarTreeVisitor.g" "ATNBuilder.g"
1526
                           "ActionSplitter.g" "LeftRecursiveRuleWalker.g")))
1527
             (with-directory-excursion "tool/src/org/antlr/v4/codegen"
1528
               (copy-file "../parse/ANTLRParser.tokens" "ANTLRParser.tokens")
1529
               (format #t "SourceGenTriggers.g\n")
1530
               (system* "antlr3" "SourceGenTriggers.g")))))))
1531
    (inputs
1532
     `(("antlr3" ,antlr3)
1533
       ("icu4j" ,java-icu4j)
1534
       ("java-json" ,java-json)
1535
       ("treelayout" ,java-treelayout)
1536
       ("stringtemplate4" ,java-stringtemplate)))
1537
    (home-page "https://antlr.org")
1538
    (synopsis "")
1539
    (description "")
1540
    (license license:bsd-3)))
1541
1542
;; requires groovy 2.4.7.
1543
;(define-public gradle
1544
;  (package
1545
;    (name "gradle")
1546
;    (version "3.4.1")
1547
;    (source (origin
1548
;              (method url-fetch)
1549
;              (uri (string-append "https://github.com/gradle/gradle/archive/v"
1550
;                                  version ".tar.gz"))
1551
;              (file-name (string-append name "-" version ".tar.gz"))
1552
;              (sha256
1553
;               (base32 "0fq30k51mkixg31z3d4fjq3zbnyjml4i530px6n1n947mqk3rgyl"))))
1554
;    (build-system ant-build-system)
1555
;    (arguments
1556
;     `(#:phases
1557
;       (modify-phases %standard-phases
1558
;         (replace 'build
1559
;           (lambda* _
1560
;             (system* "sh" "-x" "gradlew" "prBuild" "-x" "integTest" "--continue"
1561
;                      "--stacktrace"))))))
1562
;             ;(system* "sh" "-x" "travisci_build.sh"))))))
1563
;    (home-page "")
1564
;    (synopsis "Build system")
1565
;    (description "Build system")
1566
;    (license license:asl2.0)))
1567
;
1568
;;; Requires gradle.
1569
;(define-public android-anysoft-keyboard
1570
;  (package
1571
;    (name "android-anysoft-keyboard")
1572
;    (version "1.8-r9")
1573
;    (source (origin
1574
;              (method url-fetch)
1575
;              (uri (string-append "https://github.com/AnySoftKeyboard/"
1576
;                                  "AnySoftKeyboard/archive/" version ".tar.gz"))
1577
;              (file-name (string-append name "-" version ".tar.gz"))
1578
;              (sha256
1579
;               (base32
1580
;                "1mrin9mw1rs23d25v8yx4jprx7j05zir6756sqvk4myxbkcp8mag"))))
1581
;    (build-system ant-build-system)
1582
;    (home-page "https://anysoftkeyboard.github.io/")
1583
;    (synopsis "Alternative on-screen keyboard for multiple languages")
1584
;    (description "Alternative on-screen keyboard for multiple languages.")
1585
;    (license license:asl2.0)))
1586