More packages toward sbt

Julien LepillerSun Jan 13 23:02:22+0100 2019

3bad1fc

More packages toward sbt

more/packages/java.scm

480480
(define-public java-javaparser
481481
  (package
482482
    (name "java-javaparser")
483-
    (version "3.5.6")
483+
    (version "3.9.0")
484484
    (source (origin
485-
              (method url-fetch)
486-
              (uri (string-append "https://github.com/javaparser/javaparser/"
487-
                                  "archive/javaparser-parent-" version ".tar.gz"))
485+
              (method git-fetch)
486+
              (uri (git-reference
487+
                     (url "https://github.com/javaparser/javaparser.git")
488+
                     (commit "b7907a0dc39ff10388943dfffba01bec4bb116dc")))
489+
              (file-name (git-file-name name version))
488490
              (sha256
489491
               (base32
490-
                "04b1frvz65sg5jchw32ah32n2wj5agmil1fcq6kf1vxg78dj5d3d"))))
492+
                "172y8wbwqwwvqlhk65df0zilyicq7nagnsa9f4gav8s85p9ijxr8"))
493+
              (modules '((guix build utils)))
494+
              (snippet
495+
               '(begin
496+
                  (for-each delete-file
497+
                            (find-files "." "\\.jar$"))
498+
                  #t))))
491499
    (build-system ant-build-system)
492500
    (arguments
493-
     `(#:jar-name "javaparser.jar"
494-
       #:source-dir "javaparser-core/src/main/java:javaparser-core/src/main/javacc-support"
495-
       #:tests? #f; require org.junit.contrib
496-
       #:jdk ,icedtea-8
497-
       #:phases
501+
     `(#:phases
498502
       (modify-phases %standard-phases
499-
         (add-before 'build 'generate-parser
500-
           (lambda* _
501-
             (mkdir-p "")
502-
             (zero? (system* "javacc" "-DEBUG_PARSER=false"
503-
                             "-DEBUG_TOKEN_MANAGER=false" "-JDK_VERSION=1.8"
504-
                             "-GRAMMAR_ENCODING=UTF-8"
505-
                             "-OUTPUT_DIRECTORY=javaparser-core/src/main/java"
506-
                             "javaparser-core/src/main/javacc/java.jj")))))))
503+
         (add-before 'build 'fill-template
504+
           (lambda _
505+
             (with-directory-excursion "javaparser-core/src/main"
506+
               (copy-file "java-templates/com/github/javaparser/JavaParserBuild.java"
507+
                          "java/com/github/javaparser/JavaParserBuild.java")
508+
               (substitute* "java/com/github/javaparser/JavaParserBuild.java"
509+
                 (("\\$\\{project.version\\}") ,version)
510+
                 (("\\$\\{project.name\\}") "javaparser")
511+
                 (("\\$\\{project.build.finalName\\}") "javaparser")
512+
                 (("\\$\\{maven.version\\}") "fake")
513+
                 (("\\$\\{maven.build.version\\}") "fake")
514+
                 (("\\$\\{build.timestamp\\}") "0")
515+
                 (("\\$\\{java.vendor\\}") "Guix")
516+
                 (("\\$\\{java.vendor.url\\}") "https://gnu.org/software/guix")
517+
                 (("\\$\\{java.version\\}") "1.8")
518+
                 (("\\$\\{os.arch\\}") "any")
519+
                 (("\\$\\{os.name\\}") "GuixSD")
520+
                 (("\\$\\{os.version\\}") "not available")))
521+
             #t))
522+
         (add-before 'build 'generate-javacc
523+
           (lambda _
524+
             (with-directory-excursion "javaparser-core/src/main/java"
525+
               (invoke "java" "javacc" "../javacc/java.jj"))
526+
             #t))
527+
         (add-before 'build 'copy-javacc-support
528+
           (lambda _
529+
             (with-directory-excursion "javaparser-core/src/main"
530+
               (copy-recursively "javacc-support" "java"))
531+
             #t))
532+
         (add-before 'build 'fix-ambiguousity
533+
           (lambda _
534+
             (substitute* (find-files "javaparser-symbol-solver-core/src/main/java" ".*.java")
535+
               (("TypeParameter node")
536+
                "com.github.javaparser.ast.type.TypeParameter node"))
537+
             (substitute* (find-files "javaparser-core-metamodel-generator/src/main/java" ".*.java")
538+
               (("\\(TypeParameter.class")
539+
                "(com.github.javaparser.ast.type.TypeParameter.class"))
540+
             (substitute* (find-files "javaparser-core/src/main/java" ".*.java")
541+
               (("final TypeParameter ")
542+
                "final com.github.javaparser.ast.type.TypeParameter ")
543+
               (("\\(TypeParameter.class")
544+
                "(com.github.javaparser.ast.type.TypeParameter.class")
545+
               (("new TypeParameter\\(")
546+
                "new com.github.javaparser.ast.type.TypeParameter(")
547+
               (("\\(TypeParameter\\)")
548+
                "(com.github.javaparser.ast.type.TypeParameter)")
549+
               (("TypeParameter r")
550+
                "com.github.javaparser.ast.type.TypeParameter r")
551+
               (("TypeParameter tp")
552+
                "com.github.javaparser.ast.type.TypeParameter tp")
553+
               (("\\{TypeParameter")
554+
                "{com.github.javaparser.ast.type.TypeParameter")
555+
               (("public TypeParameter ")
556+
                "public com.github.javaparser.ast.type.TypeParameter ")
557+
               (("visit\\(TypeParameter ")
558+
                "visit(com.github.javaparser.ast.type.TypeParameter ")
559+
               (("<TypeParameter>")
560+
                "<com.github.javaparser.ast.type.TypeParameter>"))
561+
             #t))
562+
         (replace 'build
563+
           (lambda _
564+
             (define (build name)
565+
               (format #t "Building ~a~%" name)
566+
               (delete-file-recursively "build/classes")
567+
               (mkdir-p "build/classes")
568+
               (apply invoke "javac"
569+
                      "-cp" (string-append (getenv "CLASSPATH") ":"
570+
                                           (string-join (find-files "build/jar" ".") ":"))
571+
                      "-d" "build/classes"
572+
                      (find-files (string-append name "/src/main/java")
573+
                                  ".*.java"))
574+
               (invoke "jar" "-cf" (string-append "build/jar/" name ".jar")
575+
                       "-C" "build/classes" "."))
576+
             (mkdir-p "build/classes")
577+
             (mkdir-p "build/test-classes")
578+
             (mkdir-p "build/jar")
579+
             (build "javaparser-core")
580+
             (build "javaparser-core-serialization")
581+
             (build "javaparser-core-generators")
582+
             (build "javaparser-core-metamodel-generator")
583+
             (build "javaparser-symbol-solver-model")
584+
             (build "javaparser-symbol-solver-logic")
585+
             (build "javaparser-symbol-solver-core")
586+
             #t))
587+
         (replace 'check
588+
           (lambda _
589+
             (define (test name)
590+
               (format #t "Testing ~a~%" name)
591+
               (delete-file-recursively "build/test-classes")
592+
               (mkdir-p "build/test-classes")
593+
               (apply invoke "javac" "-d" "build/test-classes"
594+
                      "-cp" (string-append (getenv "CLASSPATH") ":"
595+
                                           (string-join (find-files "build/jar" ".") ":"))
596+
                      (find-files (string-append name "/src/test/java")
597+
                                  ".*.java"))
598+
               (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":"
599+
                                                   (string-join (find-files "build/jar" ".") ":")
600+
                                                   ":build/test-classes")
601+
                       "org.junit.runner.JUnitCore"
602+
                       (map
603+
                         (lambda (file)
604+
                           (string-join
605+
                             (string-split
606+
                               (substring file 14 (- (string-length file) 5)) #\/)
607+
                             "."))
608+
                         (find-files (string-append name "/src/test/java")
609+
                                     ".*Test.java"))))
610+
             ;; We need junit5 that recursively depend on this package,
611+
             ;; as well as jbehave.
612+
             ;(test "javaparser-core-testing")
613+
             ;(test "javaparser-symbol-solver-testing")
614+
             #t))
615+
         (replace 'install
616+
           (install-jars "build/jar")))))
617+
    (inputs
618+
     `(("java-guava" ,java-guava)
619+
       ("java-jboss-javassist" ,java-jboss-javassist)
620+
       ("java-jsonp" ,java-jsonp)))
507621
    (native-inputs
508-
     `(("java-javacc" ,java-javacc)))
509-
    (home-page "")
510-
    (synopsis "")
511-
    (description "")
512-
    (license license:lgpl3+)))
622+
     `(("javacc" ,javacc)
623+
       ("java-hamcrest-core" ,java-hamcrest-core)
624+
       ("java-junit" ,java-junit)
625+
       ("java-okhttp" ,java-okhttp)))
626+
    (home-page "http://javaparser.org/")
627+
    (synopsis "Parser for Java")
628+
    (description
629+
     "This project contains a set of libraries implementing a Java 1.0 - Java
630+
11 Parser with advanced analysis functionalities.")
631+
    (license license:lgpl2.0+)))
513632
514633
(define-public java-jul-to-slf4j
515634
  (package

44554574
    (build-system ant-build-system)
44564575
    (arguments
44574576
     `(#:tests? #f ; no tests included
4458-
       #:jdk ,icedtea-8
44594577
       #:jar-name "jsr250.jar"))
44604578
    (home-page "https://jcp.org/en/jsr/detail?id=250")
44614579
    (synopsis "Security-related annotations")

44644582
namespaces.")
44654583
    (license (list license:cddl1.0 license:gpl2)))); gpl2 only, with classpath exception
44664584
4467-
(define-public java-checker-framework
4585+
(define-public java-jsr308-langtools
44684586
  (package
4469-
    (name "java-checker-framework")
4470-
    (version "2.1.10")
4587+
    (name "java-jsr308-langtools")
4588+
    (version "2.4.0")
44714589
    (source (origin
4472-
              (method url-fetch)
4473-
              (uri (string-append "https://github.com/typetools/checker-framework/"
4474-
                                  "archive/checker-framework-" version ".tar.gz"))
4475-
              (file-name (string-append name "-" version ".tar.gz"))
4590+
              (method hg-fetch)
4591+
              (uri (hg-reference
4592+
                     (url "https://bitbucket.org/typetools/jsr308-langtools")
4593+
                     (changeset (string-append "jsr308-" version))))
4594+
              (file-name (git-file-name name version))
44764595
              (sha256
44774596
               (base32
4478-
                "1infq1hr53zi9bd81v90rn3iripbinb3w145m3xblq8yvnfrxy20"))))
4597+
                "1h38pib2snw5pxyz79p6i4ls2gr9gb5gkdpbc2c3w597samm6vwp"))
4598+
              (modules '((guix build utils)))
4599+
              (snippet
4600+
                `(begin
4601+
                   (for-each delete-file (find-files "." ".*.jar$"))
4602+
                   #t))))
4603+
    (build-system gnu-build-system)
4604+
    ;; We need "jdk" because we want to use this package as the jdk later on.
4605+
    (outputs '("out" "jdk"))
4606+
    (arguments
4607+
     `(;#:make-flags (list "-f" "make/build.xml")
4608+
       ;#:build-target "clean-and-build-all-tools"
4609+
       #:tests? #f; TODO: find the right target
4610+
       #:validate-runpath? #f
4611+
       #:phases
4612+
       (modify-phases %standard-phases
4613+
         (delete 'configure)
4614+
         (replace 'build
4615+
           (lambda* (#:key inputs #:allow-other-keys)
4616+
             (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
4617+
             (invoke "ant" "-f" "make/build.xml" "clean-and-build-all-tools")
4618+
             #t))
4619+
         (replace 'install
4620+
           (lambda* (#:key inputs outputs #:allow-other-keys)
4621+
             (let* ((out (assoc-ref outputs "jdk"))
4622+
                    (jdk (assoc-ref inputs "jdk"))
4623+
                    (java (string-append out "/share/java"))
4624+
                    (bin (string-append out "/bin")))
4625+
              (for-each (lambda (jar)
4626+
                          (install-file jar java))
4627+
                (find-files "." ".*.jar$"))
4628+
              (mkdir-p bin)
4629+
              (symlink (string-append jdk "/bin/java")
4630+
                       (string-append bin "/java"))
4631+
              (for-each (lambda (jar)
4632+
                          (let* ((name (substring jar 2 (- (string-length jar) 4)))
4633+
                                 (file (string-append bin "/" name)))
4634+
                            (copy-file "src/share/bin/launcher.sh-template"
4635+
                                       file)
4636+
                            (substitute* file
4637+
                              (("#TARGET_JAVA#") (string-append bin "/java"))
4638+
                              (("#PS#") ":")
4639+
                              (("#PROGRAM#") name)
4640+
                              (("mylib=.*") "mylib=\"$mydir/../share/java\"\n"))
4641+
                            (chmod file #o755)))
4642+
                (with-directory-excursion java
4643+
                  (find-files "." ".*.jar$"))))
4644+
             #t)))))
4645+
    (native-inputs
4646+
     `(("jdk" ,icedtea-8 "jdk")
4647+
       ("ant" ,ant)))
4648+
    (home-page "https://checkerframework.org/jsr308/")
4649+
    (synopsis "Alternative java compiler implementation")
4650+
    (description "This package contains the type annotations compiler, which
4651+
is fully backward-compatible.  It can be used in place of javac and will have
4652+
the same behaviour, but it will also allow the use of annotations in comments
4653+
for compatibility with java 7.  This package is part of the checkerframework.")
4654+
    (license license:gpl2))); GPL 2 only
4655+
4656+
(define-public java-annotation-tools
4657+
  (package
4658+
    (name "java-annotation-tools")
4659+
    (version "3.8.3")
4660+
    (source (origin
4661+
              (method git-fetch)
4662+
              (uri (git-reference
4663+
                     (url "https://github.com/typetools/annotation-tools.git")
4664+
                     (commit version)))
4665+
              (file-name (git-file-name name version))
4666+
              (sha256
4667+
               (base32
4668+
                "1izl36pf9ahg5c4sq0ki49sfyq9r89v5snsp6559w12ykbl9x3pg"))))
44794669
    (build-system ant-build-system)
44804670
    (arguments
4481-
     `(#:jar-name (string-append ,name "-" ,version ".jar")
4482-
       #:source-dir "dataflow/src:javacutil/src"
4483-
       #:tests? #f; no tests
4484-
       #:jdk ,icedtea-8))
4485-
    (home-page "https://checkerframework.org")
4486-
    (synopsis "")
4487-
    (description "")
4488-
    (license license:gpl2))); with classpath exception
4671+
     `(#:build-target "all"
4672+
       #:jdk ,java-jsr308-langtools))
4673+
    (home-page "https://checkerframework.org/annotation-file-utilities/")
4674+
    (synopsis "External storage of annotations")
4675+
    (description "Sometimes, it is convenient to specify the annotations
4676+
outside the source code or the @file{.class} file.  This package is also known
4677+
as the Annotation File Utilities, which is one of its components.")
4678+
    (license license:expat)))
4679+
4680+
(define-public java-checkerframework
4681+
  (package
4682+
    (name "java-checkerframework")
4683+
    (version "2.5.8")
4684+
    (source (origin
4685+
              (method git-fetch)
4686+
              (uri (git-reference
4687+
                     (url "https://github.com/typetools/checker-framework.git")
4688+
                     (commit "21a34d7db3c20f314fa435190fc4db48b1f50e24")))
4689+
              (file-name (git-file-name name version))
4690+
              (sha256
4691+
               (base32
4692+
                "0fdf6m9s1bw8k4567vymhz7x6vpx255ks30nsawdsxhi0kqd219s"))))
4693+
    (build-system ant-build-system)
4694+
    (arguments
4695+
     `(#:jar-name "checkerframework.jar"
4696+
       #:phases
4697+
       (modify-phases %standard-phases
4698+
         (replace 'build
4699+
           (lambda _
4700+
             (define (build name)
4701+
               (format #t "Building ~a~%" name)
4702+
               (delete-file-recursively "build/classes")
4703+
               (mkdir-p "build/classes")
4704+
               (apply invoke "javac" "-d" "build/classes"
4705+
                      "-cp" (string-append (getenv "CLASSPATH") ":"
4706+
                                           (string-join (find-files "build/jar" ".") ":"))
4707+
                      (find-files (string-append name "/src/main/java")
4708+
                                  ".*.java"))
4709+
               (invoke "jar" "-cf" (string-append "build/jar/checkerframework-"
4710+
                                                  name ".jar")
4711+
                       "-C" "build/classes" "."))
4712+
             (mkdir-p "build/classes")
4713+
             (mkdir-p "build/test-classes")
4714+
             (mkdir-p "build/jar")
4715+
             (build "javacutil")
4716+
             (build "dataflow")
4717+
             (build "framework")
4718+
             (build "checker")
4719+
             #t))
4720+
         (replace 'check
4721+
           (lambda _
4722+
             (define (test name)
4723+
               (format #t "Testing ~a~%" name)
4724+
               (delete-file-recursively "build/test-classes")
4725+
               (mkdir-p "build/test-classes")
4726+
               (apply invoke "javac" "-d" "build/test-classes"
4727+
                      "-cp" (string-append (getenv "CLASSPATH") ":"
4728+
                                           (string-join (find-files "build/jar" ".") ":"))
4729+
                      (find-files (string-append name "/src/test/java")
4730+
                                  ".*.java"))
4731+
               (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":"
4732+
                                                   (string-join (find-files "build/jar" ".") ":")
4733+
                                                   ":build/test-classes")
4734+
                       "org.junit.runner.JUnitCore"
4735+
                       (map
4736+
                         (lambda (file)
4737+
                           (string-join
4738+
                             (string-split
4739+
                               (substring file 14 (- (string-length file) 5)) #\/)
4740+
                             "."))
4741+
                         (find-files (string-append name "/src/test/java")
4742+
                                     ".*Test.java"))))
4743+
             (test "framework")
4744+
             (test "checker")
4745+
             #t)))))
4746+
    (inputs
4747+
     `(("java-javaparser" ,java-javaparser)))
4748+
    (home-page "https://checkerframework.org/")
4749+
    (synopsis "Statically detect common mistakes")
4750+
    (description "This framework enhances the Java type system in order to
4751+
detect null pointer exceptions, unintended side effects, SQL injections,
4752+
concurrency errors, mistaken equality tests, and other run-time errors.")
4753+
    (license (list
4754+
               license:gpl2+; with classpath exception
4755+
               license:expat))))
4756+
4757+
(define-public java-truth
4758+
  (package
4759+
    (name "java-truth")
4760+
    (version "0.42")
4761+
    (source (origin
4762+
              (method git-fetch)
4763+
              (uri (git-reference
4764+
                     (url "https://github.com/google/truth.git")
4765+
                     (commit "5aaf4bc1874583db510bbb209365382e5681d65a")))
4766+
              (file-name (git-file-name name version))
4767+
              (sha256
4768+
               (base32
4769+
                "1lyjmy66sprxx9hn9krwys4pv2ibjf4d1vqmbyhsx61bb6ji627f"))))
4770+
    (build-system ant-build-system)
4771+
    (arguments
4772+
     `(#:jar-name "truth.jar"
4773+
       #:source-dir "core/src/main/java"
4774+
       #:test-dir "core/src/test"))
4775+
    (inputs
4776+
     `(("java-checkerframework" ,java-checkerframework)
4777+
       ("java-diff-utils" ,java-diff-utils)
4778+
       ("java-guava" ,java-guava)
4779+
       ("java-junit" ,java-junit)))
4780+
    (home-page "https://google.github.io/truth")
4781+
    (synopsis "Assertion library for Java")
4782+
    (description "Truth makes your test assertions and failure messages more
4783+
readable.  Similar to AssertJ, it natively supports many JDK and Guava types,
4784+
and it is extensible to others.")
4785+
    (license license:asl2.0)))
4786+
4787+
(define-public java-truth
4788+
  (package
4789+
    (name "java-truth")
4790+
    (version "0.42")
4791+
    (source (origin
4792+
              (method git-fetch)
4793+
              (uri (git-reference
4794+
                     (url "https://github.com/google/truth.git")
4795+
                     (commit "5aaf4bc1874583db510bbb209365382e5681d65a")))
4796+
              (file-name (git-file-name name version))
4797+
              (sha256
4798+
               (base32
4799+
                "1lyjmy66sprxx9hn9krwys4pv2ibjf4d1vqmbyhsx61bb6ji627f"))))
4800+
    (build-system ant-build-system)
4801+
    (arguments
4802+
     `(#:jar-name "truth.jar"
4803+
       #:source-dir "core/src/main/java"
4804+
       #:test-dir "core/src/test"))
4805+
    (inputs
4806+
     `(("java-diff-utils" ,java-diff-utils)
4807+
       ("java-guava" ,java-guava)
4808+
       ("java-junit" ,java-junit)))
4809+
    (home-page "https://google.github.io/truth")
4810+
    (synopsis "Assertion library for Java")
4811+
    (description "Truth makes your test assertions and failure messages more
4812+
readable.  Similar to AssertJ, it natively supports many JDK and Guava types,
4813+
and it is extensible to others.")
4814+
    (license license:asl2.0)))
44894815
44904816
(define-public java-javapoet
44914817
  (package

45064832
       #:jdk ,icedtea-8))
45074833
    (native-inputs
45084834
     `(("guice" ,java-guice)
4509-
       ("java-junit" ,java-junit)))
4835+
       ("java-junit" ,java-junit)
4836+
       ("java-truth" ,java-truth)))
45104837
    (home-page "https://github.com/square/javapoet")
45114838
    (synopsis "")
45124839
    (description "")