Subject: bug#26803: [PATCH 06/36] gnu: Add java-asm.

From: Roel Janssen <[email-masked]>
Date: Sat, 06 May 2017 22:39:35 +0200

Ricardo Wurmus writes:

> * gnu/packages/java.scm (java-asm): New variable.
> ---
>  gnu/packages/java.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 2ff9a11a0..2df07bc38 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1262,3 +1262,47 @@ It has its foundation in the org.codehaus.plexus.utils.interpolation package
>  within plexus-utils, but has been separated in order to allow these two
>  libraries to vary independently of one another.")
>      (license license:asl2.0)))
> +
> +(define-public java-asm
> +  (package
> +    (name "java-asm")
> +    (version "5.2")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://download.forge.ow2.org/asm/"
> +                                  "asm-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:build-target "compile"
> +       #:test-target "test"
> +       ;; The tests require an old version of Janino, which no longer compiles
> +       ;; with the JDK7.
> +       #:tests? #f

Why set the test-target if you disable the tests?

> +       ;; We don't need these extra ant tasks, but the build system asks us to
> +       ;; provide a path anyway.
> +       #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo"))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'install 'build-jars
> +           (lambda* (#:key make-flags #:allow-other-keys)
> +             ;; We cannot use the "jar" target because it depends on a couple
> +             ;; of unpackaged, complicated tools.

Hehe. :-)

> +             (mkdir "dist")
> +             (zero? (system* "jar"
> +                             "-cf" (string-append "dist/asm-" ,version ".jar")
> +                             "-C" "output/build/tmp" "."))))
> +         (replace 'install
> +           (install-jars "dist")))))
> +    (native-inputs
> +     `(("java-junit" ,java-junit)))
> +    (home-page "http://asm.ow2.org/")
> +    (synopsis "Very small and fast Java bytecode manipulation framework")
> +    (description "ASM is an all purpose Java bytecode manipulation and
> +analysis framework.  It can be used to modify existing classes or dynamically
> +generate classes, directly in binary form.  The provided common
> +transformations and analysis algorithms allow to easily assemble custom
> +complex transformations and code analysis tools.")
> +    (license license:bsd-3)))

Otherwise LGTM!

Kind regards,
Roel Janssen