Subject: [bug#32948] [PATCH 08/21] gnu: Add java-w3c-svg.

From: Björn Höfling <[email-masked]>
Date: Tue, 9 Oct 2018 14:47:42 +0200

On Fri,  5 Oct 2018 17:50:09 +0200
Danny Milosavljevic <[email-masked]> wrote:

> * gnu/packages/batik.scm (java-w3c-svg-1.0): New variable.
> (java-w3c-svg): New variable.
> ---
>  gnu/packages/batik.scm | 68
> ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68
> insertions(+)
> 
> diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
> index ccab88568..05ca234ea 100644
> --- a/gnu/packages/batik.scm
> +++ b/gnu/packages/batik.scm
> @@ -194,3 +194,71 @@ SAC is an interface for CSS parsers.")
>      (description "This package provides a SAC interface by the W3C.
>  SAC is an interface for CSS parsers.")
>      (license license:w3c)))
> +
> +(define-public java-w3c-svg-1.0
> +  (package
> +    (name "java-w3c-svg")
> +    (version "20010904")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append "http://www.w3.org/TR/2001/REC-SVG-"
> version
> +                            "/java-binding.zip"))
> +        (sha256
> +         (base32
> +          "0gnxvx51bg6ijplf6l2q0i1m07101f7fickawshfygnsdjqfdnbp"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:jar-name "w3c-svg.jar"
> +       #:source-dir "."
> +       #:tests? #f ; No tests exist.
> +       #:phases
> +       (modify-phases %standard-phases
> +         (replace 'unpack
> +           (lambda* (#:key source #:allow-other-keys)
> +             (invoke "unzip" source)))
> +         (add-after 'unpack 'patch-interface
> +           (lambda _
> +             ;; Make it compatible with batik.
> +             ;; This is equivalent to usingxml commons externals'
> +             ;; "externals" part from
> https://xerces.apache.org/mirrors.cgi
> +             (substitute* "SVGFEConvolveMatrixElement.java"
> +              (("public SVGAnimatedLength[ ]*getKernelUnitLength")
> +               "public SVGAnimatedNumber getKernelUnitLength"))
> +             (substitute* "SVGFEMorphologyElement.java"
> +              (("public SVGAnimatedLength[ ]*getRadius")
> +               "public SVGAnimatedNumber getRadius"))
> +             (call-with-output-file "EventListenerInitializer.java"
> +               (lambda (port)
> +                 (format port "
> +// License: http://www.apache.org/licenses/LICENSE-2.0
> +package org.w3c.dom.svg;
> +public interface EventListenerInitializer {
> +    public void initializeEventListeners(SVGDocument doc);
> +}
> +
> +")))
> +             #t)))))
> +    (propagated-inputs
> +     `(("java-w3c-smil" ,java-w3c-smil-3.0)))
> +    (native-inputs
> +     `(("unzip" ,unzip)))
> +    (home-page "https://www.w3.org/Style/CSS/SAC/")
> +    (synopsis "W3C SVG interface")
> +    (description "This package provides a SVG interface.")
> +    (license license:w3c)))
> +
> +(define-public java-w3c-svg
> +  (package
> +    (inherit java-w3c-svg-1.0)
> +    (version "20110816")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append "http://www.w3.org/TR/2011/REC-SVG11-"
> version
> +                            "/java-binding.zip"))
> +        (sha256
> +         (base32
> +          "0jicqcrxav8ggs37amgvvwgc2f0qp1c5wns4rb2i3si83s2m09ns"))))
> +    (propagated-inputs
> +     `())))
> 
> 

This does not build on Hydra and locally.

https://hydra.gnu.org/build/3113818

starting phase `patch-interface'
Backtrace:
           6 (primitive-load "/gnu/store/rrz82jnhlq4lfkk5wpiidxb6mdwâ€¦")
In ice-9/eval.scm:
   191:35  5 (_ #f)
In srfi/srfi-1.scm:
    640:9  4 (for-each #<procedure 703740 at /gnu/store/ghwa6l2079lâ€¦> â€¦)
In /gnu/store/ghwa6l2079l50ryzygybbkb8lhmm5hha-module-import/guix/build/gnu-build-system.scm:
   799:31  3 (_ _)
In ice-9/eval.scm:
    619:8  2 (_ #(#(#<directory (guile-user) 7cc140>) (#:inputs # â€¦)))
In /gnu/store/ghwa6l2079l50ryzygybbkb8lhmm5hha-module-import/guix/build/utils.scm:
   636:30  1 (with-atomic-file-replacement "SVGFEConvolveMatrixElemâ€¦" â€¦)
In unknown file:
           0 (stat "SVGFEConvolveMatrixElement.java" #<undefined>)

ERROR: In procedure stat:
In procedure stat: No such file or directory: "SVGFEConvolveMatrixElement.java"

Below is a fix.

Is there a reason you added the version number to the scheme-variable?
I thought that is done only when we have different versions of the same
package.

Björn

diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
index cdd1e4471..d8d70adcd 100644
--- a/gnu/packages/batik.scm
+++ b/gnu/packages/batik.scm
@@ -114,6 +114,7 @@ SAC is an interface for CSS parsers.")
              (invoke "unzip" source)))
          (add-after 'unpack 'patch-interface
            (lambda _
+             (chdir "org/w3c/dom/svg/")
              ;; Make it compatible with batik.
              ;; This is equivalent to usingxml commons externals'
              ;; "externals" part from https://xerces.apache.org/mirrors.cgi
@@ -134,7 +135,7 @@ public interface EventListenerInitializer {
 
 ")))
              #t)))))
-    (propagated-inputs
+    (inputs
      `(("java-w3c-smil" ,java-w3c-smil-3.0)))
     (native-inputs
      `(("unzip" ,unzip)))