#:use-module (gnu packages libffi)
#:use-module (gnu packages linux) ;alsa
#:use-module (gnu packages maths)
+ #:use-module (gnu packages maven)
#:use-module (gnu packages maven-parent-pom)
#:use-module (gnu packages nss)
#:use-module (gnu packages onc-rpc)
,(package-version java-commons-lang) ".jar"))
(("\\$\\{lib\\}/commons-io/commons-io.jar")
(string-append (assoc-ref inputs "java-commons-io")
- "/share/java/commons-io-"
+ "/lib/m2/commons-io/commons-io/"
,(package-version java-commons-io)
- "-SNAPSHOT.jar"))
+ "/commons-io-"
+ ,(package-version java-commons-io)
+ ".jar"))
;; Remove dependency on svn
(("<build-info.*") "")
(("\\$\\{revision.number\\}")
,(package-version java-commons-lang) ".jar"))
(("\\$\\{lib\\}/commons-io/commons-io.jar")
(string-append (assoc-ref inputs "java-commons-io")
- "/share/java/commons-io-"
+ "/lib/m2/commons-io/commons-io/"
+ ,(package-version java-commons-io)
+ "/commons-io-"
,(package-version java-commons-io)
- "-SNAPSHOT.jar"))
+ ".jar"))
(("\\$\\{lib\\}/testng/testng-jdk15.jar")
(string-append (assoc-ref inputs "java-testng")
"/share/java/java-testng.jar"))
(build-system ant-build-system)
(arguments
`(#:jar-name "qdox.jar"
- #:tests? #f)); no tests
+ #:tests? #f; no tests
+ #:modules
+ ((guix build ant-build-system)
+ (guix build java-utils)
+ (guix build utils)
+ (sxml simple))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'create-pom
+ (lambda _
+ (with-output-to-file "pom.xml"
+ (lambda _
+ (sxml->xml
+ `((project
+ (modelVersion "4.0.0")
+ (name "QDox")
+ (groupId "com.thoughtworks.qdox")
+ (artifactId "qdox")
+ (version ,,version))))))
+ #t))
+ (replace 'install
+ (install-from-pom "pom.xml")))))
(home-page "https://github.com/codehaus/qdox")
(synopsis "Parse definitions from Java source files")
(description "QDox is a high speed, small footprint parser for extracting
documentation tools.")
(license license:asl2.0)))
+(define-public java-qdox-2-M9
+ (package
+ (inherit java-qdox)
+ (version "2.0-M9"); required by plexus-java
+ (source (origin
+ (method url-fetch)
+ ;; 2.0-M4, -M5 at https://github.com/paul-hammant/qdox
+ ;; Older releases at https://github.com/codehaus/qdox/
+ ;; Note: The release at maven is pre-generated. The release at
+ ;; github requires jflex.
+ (uri (string-append "https://repo1.maven.org/maven2/"
+ "com/thoughtworks/qdox/qdox/" version
+ "/qdox-" version "-sources.jar"))
+ (sha256
+ (base32
+ "1s2jnmx2dkwnaha12lcj26aynywgwa8sslc47z82wx8xai13y4fg"))))))
+
(define-public java-jarjar
(package
(name "java-jarjar")
((#:build-target _) "library")
((#:phases phases)
`(modify-phases ,phases
+ (add-after 'unpack 'patch-classpath-for-integration
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "build.xml"
+ (("build/hamcrest-core-\\$\\{version\\}\\.jar")
+ (car (find-files (assoc-ref inputs "java-hamcrest-core")
+ "jar$"))))
+ #t))
(replace 'create-pom
(lambda _
(substitute* "pom/hamcrest-library.pom"
(description "This package is a Maven plugin to generate Plexus descriptors
from source tags and class annotations.")))
+(define-public java-plexus-component-metadata
+ (package
+ (inherit java-plexus-container-default)
+ (name "java-plexus-component-metadata")
+ (arguments
+ `(#:jar-name "plexus-component-metadata.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "plexus-component-metadata")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources"
+ "build/classes/")
+ #t)))))
+ (propagated-inputs
+ `(("java-plexus-container-default" ,java-plexus-container-default)
+ ("java-plexu-component-annotations" ,java-plexus-component-annotations)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-plugin-annotations" ,maven-plugin-annotations)
+ ("maven-core-bootstrap" ,maven-core-bootstrap)
+ ("maven-model" ,maven-model)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-qdox" ,java-qdox)
+ ("java-jdom2" ,java-jdom2)
+ ("java-asm" ,java-asm)))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-guava" ,java-guava)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
+ (synopsis "Inversion-of-control container for Maven")
+ (description "The Plexus project provides a full software stack for creating
+and executing software projects. Based on the Plexus container, the
+applications can utilise component-oriented programming to build modular,
+reusable components that can easily be assembled and reused. This package
+provides the Maven plugin generating the component metadata.")))
+
(define-public java-plexus-cipher
(package
(name "java-plexus-cipher")
and decryption.")
(license license:asl2.0)))
+(define-public java-plexus-java
+ (package
+ (name "java-plexus-java")
+ (version "0.9.10")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/codehaus-plexus/plexus-languages")
+ (commit (string-append "plexus-languages-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0vmvgq5hfxs90yyxgssfpwq78l7vwx1ljwpkk594mrdr8sm668b5"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ (for-each delete-file (find-files "." ".*.jar$"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "plexus-java.java"
+ #:source-dir "plexus-java/src/main/java"
+ #:test-dir "plexus-java/src/test"
+ #:tests? #f; require mockito 2
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'generate-metadata
+ (lambda _
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "plexus-java/src/main/java"
+ "--output" "build/classes/META-INF/plexus/components.xml"
+ "--classes" "build/classes"
+ "--descriptors" "build/classes/META-INF")
+ (invoke "ant" "jar")
+ #t))
+ (add-before 'install 'install-parent
+ (install-pom-file "pom.xml"))
+ (replace 'install
+ (install-from-pom "plexus-java/pom.xml")))))
+ (propagated-inputs
+ `(("java-asm" ,java-asm)
+ ("java-qdox" ,java-qdox-2-M9)
+ ("java-javax-inject" ,java-javax-inject)
+ ("plexus-parent-pom" ,plexus-parent-pom-4.0)))
+ (inputs
+ `(("java-plexus-component-annotations" ,java-plexus-component-annotations)))
+ (native-inputs
+ `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
+ ("java-junit" ,java-junit)))
+ (home-page "https://codehaus-plexus.github.io/plexus-languages/plexus-java")
+ (synopsis "Shared language features for Java")
+ (description "This package contains shared language features of the Java
+language, for the plexus project.")
+ (license license:asl2.0)))
+
(define-public java-plexus-compiler-api
(package
(name "java-plexus-compiler-api")
(arguments
`(#:jar-name "plexus-compiler-api.jar"
#:source-dir "plexus-compiler-api/src/main/java"
- #:jdk ,icedtea-8
- #:test-dir "plexus-compiler-api/src/test"))
- (inputs
+ #:test-dir "plexus-compiler-api/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (install-from-pom "plexus-compiler-api/pom.xml")))))
+ (propagated-inputs
`(("java-plexus-container-default" ,java-plexus-container-default)
+ ("java-plexus-compiler-pom" ,java-plexus-compiler-pom)
("java-plexus-util" ,java-plexus-utils)))
(native-inputs
`(("java-junit" ,java-junit)))
(license (list license:asl2.0
license:expat))))
+(define java-plexus-compiler-pom
+ (package
+ (inherit java-plexus-compiler-api)
+ (name "java-plexus-compiler-pom")
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (install-pom-file "pom.xml"))
+ (add-after 'install 'install-compilers
+ (install-pom-file "plexus-compilers/pom.xml")))))
+ (propagated-inputs
+ `(("plexus-components-parent-pom-4.0" ,plexus-components-parent-pom-4.0)))))
+
+(define plexus-components-parent-pom-4.0
+ (package
+ (name "plexus-components-parent-pom")
+ (version "4.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/codehaus-plexus/plexus-components")
+ (commit (string-append "plexus-components-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "041bm8yv0m2i17mqg8zljib4ykpha7ijls2qfdwvkma4d39lhysi"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (install-pom-file "pom.xml")))))
+ (propagated-inputs
+ `(("plexus-parent-pom-4.0" ,plexus-parent-pom-4.0)))
+ (home-page "https://codehaus-plexus.github.io/plexus-components")
+ (synopsis "Plexus parent pom")
+ (description "This package contains the Plexus components parent POM.")
+ (license license:asl2.0)))
+
+(define-public java-plexus-compiler-manager
+ (package
+ (inherit java-plexus-compiler-api)
+ (name "java-plexus-compiler-manager")
+ (arguments
+ `(#:jar-name "compiler-compiler-manager.java"
+ #:source-dir "plexus-compiler-manager/src/main/java"
+ #:test-dir "plexus-compiler-manager/src/test"
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'generate-metadata
+ (lambda _
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "plexus-compiler-manager/src/main/java"
+ "--output" "build/classes/META-INF/plexus/components.xml"
+ "--classes" "build/classes"
+ "--descriptors" "build/classes/META-INF")
+ (invoke "ant" "jar")
+ #t))
+ (add-after 'generate-metadata 'rebuild
+ (lambda _
+ (invoke "ant" "jar")
+ #t))
+ (replace 'install
+ (install-from-pom "plexus-compiler-manager/pom.xml")))))
+ (propagated-inputs
+ `(("java-plexus-compiler-api" ,java-plexus-compiler-api)
+ ("java-plexus-compiler-pom" ,java-plexus-compiler-pom)
+ ("java-plexus-container-default" ,java-plexus-container-default)))
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
+ (synopsis "Compiler management for Plexus Compiler component")
+ (description "Plexus Compiler is a Plexus component to use different
+compilers through a uniform API. This component chooses the compiler
+implementation to use in a project.")))
+
(define-public java-plexus-compiler-javac
(package
(inherit java-plexus-compiler-api)
#:source-dir "plexus-compilers/plexus-compiler-javac/src/main/java"
#:jdk ,icedtea-8
#:tests? #f; depends on compiler-test -> maven-core -> ... -> this package.
- #:test-dir "plexus-compilers/plexus-compiler-javac/src/test"))
- (inputs
+ #:test-dir "plexus-compilers/plexus-compiler-javac/src/test"
+ #:modules ((guix build ant-build-system)
+ (guix build utils)
+ (guix build java-utils)
+ (sxml simple))
+ #:phases
+ (modify-phases %standard-phases
+ ;; We cannot use java-plexus-component-metadata to generate the metadata
+ ;; because it ultimately depends on this package.
+ ;; Create it manually instead
+ (add-before 'build 'create-metadata
+ (lambda _
+ (let* ((dir "build/classes/META-INF/plexus")
+ (file (string-append dir "/components.xml")))
+ (mkdir-p dir)
+ (with-output-to-file file
+ (lambda _
+ (sxml->xml
+ `(component-set
+ (components
+ (component
+ (role "org.codehaus.plexus.compiler.Compiler")
+ (role-hint "javac")
+ (implementation "org.codehaus.plexus.compiler.javac.JavacCompiler")
+ (isolated-realm "false"))))))))
+ #t))
+ (replace 'install
+ (install-from-pom "plexus-compilers/plexus-compiler-javac/pom.xml")))))
+ (propagated-inputs
`(("java-plexus-compiler-api" ,java-plexus-compiler-api)
("java-plexus-utils" ,java-plexus-utils)
("java-plexus-container-default" ,java-plexus-container-default)))
- (native-inputs
- `(("java-junit" ,java-junit)))
(synopsis "Javac Compiler support for Plexus Compiler component")
(description "This package contains the Javac Compiler support for Plexus
Compiler component.")))
(uri (git-reference
(url "https://github.com/google/guava/")
(commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
"00h5cawdjic1vind3yivzh1f58flvm1yfmhsyqwyvmbvj1vakysp"))))
(arguments
`(#:build-target "jarall"
#:test-target "junit-tests-all"
+ #:make-flags (list "-DDATE" "(no date for reproducibility)")
#:phases
(modify-phases %standard-phases
(add-before 'install 'fix-pom
(with-directory-excursion "hawtjni-generator/src/main/resources/"
(install-file "libhawtjni.so" lib)
(install-file "hawtjni.h" inc)))
- #t)))))
+ #t))
+ (add-before 'install 'install-parent
+ (install-pom-file "pom.xml"))
+ (replace 'install
+ (install-from-pom "hawtjni-runtime/pom.xml")))))
(inputs
`(("java-commons-cli" ,java-commons-cli)
("java-asm" ,java-asm)
(lambda* (#:key outputs #:allow-other-keys)
(install-file "src/main/native-package/src/jansi.h"
(string-append (assoc-ref outputs "out") "/include"))
- #t)))))
- (inputs
+ #t))
+ (add-before 'install 'fix-pom
+ (lambda _
+ ;; pom contains variables to complete name, but we don't support that
+ (substitute* "pom.xml"
+ (("\\$\\{platform\\}") "native"))
+ #t))
+ (replace 'install
+ (install-from-pom "pom.xml")))))
+ (propagated-inputs
`(("java-hawtjni" ,java-hawtjni)))
(home-page "https://fusesource.github.io/jansi/")
(synopsis "Native library for jansi")
(modify-phases %standard-phases
(add-after 'check 'clear-term
(lambda _
- (invoke "echo" "-e" "\\e[0m"))))))
- (inputs
+ (invoke "echo" "-e" "\\e[0m")))
+ (add-before 'install 'install-parent
+ (install-pom-file "pom.xml"))
+ (add-before 'install 'fix-pom
+ (lambda _
+ ;; pom adds jansi native versions for different platforms, but we
+ ;; only need one, so use native instead
+ (substitute* "jansi/pom.xml"
+ (("windows32") "native")
+ (("windows64") "native")
+ (("osx") "native")
+ (("linux32") "native")
+ (("linux64") "native")
+ (("freebsd32") "native")
+ (("freebsd64") "native"))
+ #t))
+ (replace 'install
+ (install-from-pom "jansi/pom.xml")))))
+ (propagated-inputs
`(("java-jansi-native" ,java-jansi-native)))
(native-inputs
`(("java-junit" ,java-junit)
(build-system ant-build-system)
(arguments
`(#:build-target "package"
+ #:make-flags (list "-DDATE" "(no recorded date for reproducibility)")
#:tests? #f; tests are run as part of the build process
#:phases
(modify-phases %standard-phases