unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#32947] [PATCH 0/3] Add java-xalan.
@ 2018-10-05 15:18 Danny Milosavljevic
  2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
                   ` (12 more replies)
  0 siblings, 13 replies; 53+ messages in thread
From: Danny Milosavljevic @ 2018-10-05 15:18 UTC (permalink / raw)
  To: 32947

Danny Milosavljevic (3):
  gnu: Add java-cup.
  gnu: Add java-jakarta-regexp.
  gnu: Add java-xalan.

 gnu/packages/java.scm | 129 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 129 insertions(+)

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 1/3] gnu: Add java-cup.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
@ 2018-10-05 15:20 ` Danny Milosavljevic
  2018-10-05 15:20   ` [bug#32947] [PATCH 2/3] gnu: Add java-jakarta-regexp Danny Milosavljevic
                     ` (3 more replies)
  2018-12-19 14:05 ` [bug#32947] Add java-xalan Julien Lepiller
                   ` (11 subsequent siblings)
  12 siblings, 4 replies; 53+ messages in thread
From: Danny Milosavljevic @ 2018-10-05 15:20 UTC (permalink / raw)
  To: 32947

* gnu/packages/java.scm (java-cup): 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 96da495c2..4ddffb357 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -69,6 +69,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages texinfo)
@@ -9634,6 +9635,49 @@ Candidate Recommendation, and will correctly serialize XML 1.1 documents if
 the DOM level 3 load/save API's are in use.")
     (license license:asl2.0)))
 
+(define-public java-cup
+  (package
+    (name "java-cupx")
+    (version "11b-20160615")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+              "http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-"
+              version ".tar.gz"))
+        (sha256
+         (base32
+          "1ymz3plngxclh7x3xr31537rvvak7lwyd0qkmnl1mkj5drh77rz0"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:build-target "dist"
+       #:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-prebuilt-jars
+           (lambda _
+             (for-each delete-file
+                       (find-files "." "\\.jar$"))
+             #t))
+         (add-before 'build 'chdir
+           (lambda _
+             (chdir "..")
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (out-share (string-append out "/share/java")))
+               (mkdir-p out-share)
+               (install-file "dist/java-cup-11b-runtime.jar" out-share)
+               (install-file "dist/java-cup-11b.jar" out-share)
+               #t))))))
+    (native-inputs
+     `(("git" ,git)))
+    (home-page "http://www2.cs.tum.edu/projects/cup/")
+    (synopsis "LALR parser generator for Java")
+    (description "@code{java_cup} is a LALR parser generator for Java.")
+    (license license:asl2.0)))
+
 (define-public java-jline
   (package
     (name "java-jline")

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 2/3] gnu: Add java-jakarta-regexp.
  2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
@ 2018-10-05 15:20   ` Danny Milosavljevic
  2018-10-05 15:20   ` [bug#32947] [PATCH 3/3] gnu: Add java-xalan Danny Milosavljevic
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 53+ messages in thread
From: Danny Milosavljevic @ 2018-10-05 15:20 UTC (permalink / raw)
  To: 32947

* gnu/packages/java.scm (java-jakarta-regexp): New variable.
---
 gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 4ddffb357..863a4b79c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -9678,6 +9678,37 @@ the DOM level 3 load/save API's are in use.")
     (description "@code{java_cup} is a LALR parser generator for Java.")
     (license license:asl2.0)))
 
+(define-public java-jakarta-regexp
+  (package
+    (name "java-jakarta-regexp")
+    (version "1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+              "https://archive.apache.org/dist/jakarta/regexp/jakarta-regexp-"
+              version ".tar.gz"))
+        (sha256
+         (base32
+          "0zg9rmyif48dck0cv6ynpxv23mmcsx265am1fnnxss7brgw0ms3r"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (out-share (string-append out "/share/java")))
+                (mkdir-p out-share)
+                (install-file "build/jakarta-regexp-1.5.jar" out-share)
+                #t))))))
+    (home-page "https://attic.apache.org/projects/jakarta-regexp.html")
+    (synopsis "Regular expression parser generator for Java.")
+    (description "@code{jakarta-regexp} is an old regular expression parser generator
+for Java.")
+    (license license:asl2.0)))
+
 (define-public java-jline
   (package
     (name "java-jline")

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 3/3] gnu: Add java-xalan.
  2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
  2018-10-05 15:20   ` [bug#32947] [PATCH 2/3] gnu: Add java-jakarta-regexp Danny Milosavljevic
@ 2018-10-05 15:20   ` Danny Milosavljevic
  2018-10-05 15:46     ` Julien Lepiller
  2018-10-05 15:28   ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Julien Lepiller
  2018-10-05 15:52   ` Julien Lepiller
  3 siblings, 1 reply; 53+ messages in thread
From: Danny Milosavljevic @ 2018-10-05 15:20 UTC (permalink / raw)
  To: 32947

* gnu/packages/java.scm (java-xalan): New variable.
---
 gnu/packages/java.scm | 54 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 863a4b79c..02a8f65e8 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -9709,6 +9709,60 @@ the DOM level 3 load/save API's are in use.")
 for Java.")
     (license license:asl2.0)))
 
+(define-public java-xalan
+  (package
+    (name "java-xalan")
+    (version "2.7.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://archive.apache.org/dist/xalan/xalan-j/source/"
+                            "xalan-j_" (string-join (string-split version #\.) "_")
+                            "-src.tar.gz"))
+        (sha256
+         (base32
+          "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:build-target "jar"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-classpath
+           (lambda _
+             (substitute* "src/MANIFEST.MF"
+              (("^Class-Path: .*$") "\n"))
+             #t))
+         (add-after 'unpack 'replace-prebuilt-jars
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each delete-file
+                       (find-files "." "\\.jar$"))
+             (symlink (string-append (assoc-ref inputs "java-commons-bcel")
+                                     "/share/java/bcel.jar")
+                      "lib/BCEL.jar")
+             (symlink (string-append (assoc-ref inputs "java-cup")
+                                     "/share/java/java-cup-11b-runtime.jar")
+                      "lib/runtime.jar")
+             (symlink (string-append (assoc-ref inputs "java-jakarta-regexp")
+                                     "/share/java/jakarta-regexp-1.5.jar")
+                      "lib/regexp.jar")
+             #t))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (out-share (string-append out "/share/java")))
+                (mkdir-p out-share)
+                (install-file "build/xalan.jar" out-share)
+                #t))))))
+    (propagated-inputs
+     `(("java-commons-bcel" ,java-commons-bcel)
+       ("java-cup" ,java-cup)
+       ("java-jakarta-regexp" ,java-jakarta-regexp)
+       ("java-xerces" ,java-xerces)))
+    (home-page "https://xml.apache.org/xalan-j/")
+    (synopsis "XSLT processor for Java")
+    (description "@code{xalan} is an XSLT processor for Java.")
+    (license license:asl2.0)))
+
 (define-public java-jline
   (package
     (name "java-jline")

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 1/3] gnu: Add java-cup.
  2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
  2018-10-05 15:20   ` [bug#32947] [PATCH 2/3] gnu: Add java-jakarta-regexp Danny Milosavljevic
  2018-10-05 15:20   ` [bug#32947] [PATCH 3/3] gnu: Add java-xalan Danny Milosavljevic
@ 2018-10-05 15:28   ` Julien Lepiller
  2018-10-05 16:00     ` Danny Milosavljevic
  2018-10-05 15:52   ` Julien Lepiller
  3 siblings, 1 reply; 53+ messages in thread
From: Julien Lepiller @ 2018-10-05 15:28 UTC (permalink / raw)
  To: 32947

Le 2018-10-05 17:20, Danny Milosavljevic a écrit :
> * gnu/packages/java.scm (java-cup): 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 96da495c2..4ddffb357 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -69,6 +69,7 @@
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages popt)
>    #:use-module (gnu packages kerberos)
> +  #:use-module (gnu packages version-control)
>    #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg)
>    #:use-module (gnu packages texinfo)
> @@ -9634,6 +9635,49 @@ Candidate Recommendation, and will correctly
> serialize XML 1.1 documents if
>  the DOM level 3 load/save API's are in use.")
>      (license license:asl2.0)))
> 
> +(define-public java-cup
> +  (package
> +    (name "java-cupx")

Why x?

> +    (version "11b-20160615")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +              
> "http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-"
> +              version ".tar.gz"))
> +        (sha256
> +         (base32
> +          "1ymz3plngxclh7x3xr31537rvvak7lwyd0qkmnl1mkj5drh77rz0"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:build-target "dist"
> +       #:test-target "test"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'remove-prebuilt-jars
> +           (lambda _
> +             (for-each delete-file
> +                       (find-files "." "\\.jar$"))
> +             #t))

Maybe that should be a snippet?

> +         (add-before 'build 'chdir
> +           (lambda _
> +             (chdir "..")
> +             #t))
> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (out-share (string-append out "/share/java")))
> +               (mkdir-p out-share)
> +               (install-file "dist/java-cup-11b-runtime.jar" 
> out-share)
> +               (install-file "dist/java-cup-11b.jar" out-share)
> +               #t))))))
> +    (native-inputs
> +     `(("git" ,git)))
> +    (home-page "http://www2.cs.tum.edu/projects/cup/")
> +    (synopsis "LALR parser generator for Java")
> +    (description "@code{java_cup} is a LALR parser generator for 
> Java.")
> +    (license license:asl2.0)))
> +
>  (define-public java-jline
>    (package
>      (name "java-jline")

I don't know if that's an issue, but the source code bundles generated 
source by java-cup and jflex. I've tried to bootstrap both correctly, 
but there is no version of jflex you can build without jflex and cup. I 
have a recipe for java-jflex and java-cup that are built without 
pre-generated source, using two bootstrap jars. Then, I could use them 
to build other packages that I need for the future maven-build-system. I 
wasn't able to build java-jflex with the latest java-cup.

Do you want me to send these recipes for comparison?

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 3/3] gnu: Add java-xalan.
  2018-10-05 15:20   ` [bug#32947] [PATCH 3/3] gnu: Add java-xalan Danny Milosavljevic
@ 2018-10-05 15:46     ` Julien Lepiller
  0 siblings, 0 replies; 53+ messages in thread
From: Julien Lepiller @ 2018-10-05 15:46 UTC (permalink / raw)
  To: 32947

Le 2018-10-05 17:20, Danny Milosavljevic a écrit :
> * gnu/packages/java.scm (java-xalan): New variable.
> ---
>  gnu/packages/java.scm | 54 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
> 
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 863a4b79c..02a8f65e8 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -9709,6 +9709,60 @@ the DOM level 3 load/save API's are in use.")
>  for Java.")
>      (license license:asl2.0)))
> 
> +(define-public java-xalan
> +  (package
> +    (name "java-xalan")
> +    (version "2.7.2")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> "https://archive.apache.org/dist/xalan/xalan-j/source/"
> +                            "xalan-j_" (string-join (string-split
> version #\.) "_")
> +                            "-src.tar.gz"))

Could you use mirror://apache/xalan/xalan-j/source/...?

> +        (sha256
> +         (base32
> +          "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:build-target "jar"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch-classpath
> +           (lambda _
> +             (substitute* "src/MANIFEST.MF"
> +              (("^Class-Path: .*$") "\n"))
> +             #t))
> +         (add-after 'unpack 'replace-prebuilt-jars
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (for-each delete-file
> +                       (find-files "." "\\.jar$"))

I think it's better to remove these files in a snippet. Also, there are 
.tar.gz files in the source archive that we could remove.

> +             (symlink (string-append (assoc-ref inputs 
> "java-commons-bcel")
> +                                     "/share/java/bcel.jar")
> +                      "lib/BCEL.jar")
> +             (symlink (string-append (assoc-ref inputs "java-cup")
> +                                     
> "/share/java/java-cup-11b-runtime.jar")
> +                      "lib/runtime.jar")
> +             (symlink (string-append (assoc-ref inputs 
> "java-jakarta-regexp")
> +                                     
> "/share/java/jakarta-regexp-1.5.jar")
> +                      "lib/regexp.jar")

maybe something like
(let ((regexp (assoc-ref inputs "java-jakarta-regexp")))
   (symlink (string-append regexp "/share/java/javakarta-regexp-" 
(package-version regexp) ".jar")
            "lib/regexp.jar"))

would be more future-proof in case we update regexp? Same with the other 
dependencies.

> +             #t))
> +          (replace 'install
> +            (lambda* (#:key outputs #:allow-other-keys)
> +              (let* ((out (assoc-ref outputs "out"))
> +                     (out-share (string-append out "/share/java")))
> +                (mkdir-p out-share)
> +                (install-file "build/xalan.jar" out-share)
> +                #t))))))
> +    (propagated-inputs
> +     `(("java-commons-bcel" ,java-commons-bcel)
> +       ("java-cup" ,java-cup)
> +       ("java-jakarta-regexp" ,java-jakarta-regexp)
> +       ("java-xerces" ,java-xerces)))
> +    (home-page "https://xml.apache.org/xalan-j/")
> +    (synopsis "XSLT processor for Java")
> +    (description "@code{xalan} is an XSLT processor for Java.")
> +    (license license:asl2.0)))
> +
>  (define-public java-jline
>    (package
>      (name "java-jline")

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 1/3] gnu: Add java-cup.
  2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
                     ` (2 preceding siblings ...)
  2018-10-05 15:28   ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Julien Lepiller
@ 2018-10-05 15:52   ` Julien Lepiller
  3 siblings, 0 replies; 53+ messages in thread
From: Julien Lepiller @ 2018-10-05 15:52 UTC (permalink / raw)
  To: 32947

Le 2018-10-05 17:20, Danny Milosavljevic a écrit :
> * gnu/packages/java.scm (java-cup): 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 96da495c2..4ddffb357 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -69,6 +69,7 @@
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages popt)
>    #:use-module (gnu packages kerberos)
> +  #:use-module (gnu packages version-control)
>    #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg)
>    #:use-module (gnu packages texinfo)
> @@ -9634,6 +9635,49 @@ Candidate Recommendation, and will correctly
> serialize XML 1.1 documents if
>  the DOM level 3 load/save API's are in use.")
>      (license license:asl2.0)))
> 
> +(define-public java-cup
> +  (package
> +    (name "java-cupx")

Why x?

> +    (version "11b-20160615")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (string-append
> +              
> "http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-"
> +              version ".tar.gz"))
> +        (sha256
> +         (base32
> +          "1ymz3plngxclh7x3xr31537rvvak7lwyd0qkmnl1mkj5drh77rz0"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:build-target "dist"
> +       #:test-target "test"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'remove-prebuilt-jars
> +           (lambda _
> +             (for-each delete-file
> +                       (find-files "." "\\.jar$"))
> +             #t))

Maybe use a snippet instead?

> +         (add-before 'build 'chdir
> +           (lambda _
> +             (chdir "..")
> +             #t))
> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (out-share (string-append out "/share/java")))
> +               (mkdir-p out-share)
> +               (install-file "dist/java-cup-11b-runtime.jar" 
> out-share)
> +               (install-file "dist/java-cup-11b.jar" out-share)
> +               #t))))))
> +    (native-inputs
> +     `(("git" ,git)))
> +    (home-page "http://www2.cs.tum.edu/projects/cup/")
> +    (synopsis "LALR parser generator for Java")
> +    (description "@code{java_cup} is a LALR parser generator for 
> Java.")
> +    (license license:asl2.0)))
> +
>  (define-public java-jline
>    (package
>      (name "java-jline")

I don't know if that's an issue, but the source code bundles generated 
source by java-cup and jflex. I've tried to bootstrap both correctly, 
but there is no version of jflex you can build without jflex and cup. I 
have a recipe for java-jflex and java-cup that are built without 
pre-generated source, using two bootstrap jars. Then, I could use them 
to build other packages that I need for the future maven-build-system. I 
wasn't able to build java-jflex with the latest java-cup.

Do you want me to send these recipes for comparison?

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 1/3] gnu: Add java-cup.
  2018-10-05 15:28   ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Julien Lepiller
@ 2018-10-05 16:00     ` Danny Milosavljevic
  2018-10-05 16:13       ` Julien Lepiller
  0 siblings, 1 reply; 53+ messages in thread
From: Danny Milosavljevic @ 2018-10-05 16:00 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 2261 bytes --]

Hi Julien,

On Fri, 05 Oct 2018 17:28:51 +0200
Julien Lepiller <julien@lepiller.eu> wrote:

> Le 2018-10-05 17:20, Danny Milosavljevic a écrit :
> > * gnu/packages/java.scm (java-cup): 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 96da495c2..4ddffb357 100644
> > --- a/gnu/packages/java.scm
> > +++ b/gnu/packages/java.scm
> > @@ -69,6 +69,7 @@
> >    #:use-module (gnu packages perl)
> >    #:use-module (gnu packages popt)
> >    #:use-module (gnu packages kerberos)
> > +  #:use-module (gnu packages version-control)
> >    #:use-module (gnu packages xml)
> >    #:use-module (gnu packages xorg)
> >    #:use-module (gnu packages texinfo)
> > @@ -9634,6 +9635,49 @@ Candidate Recommendation, and will correctly
> > serialize XML 1.1 documents if
> >  the DOM level 3 load/save API's are in use.")
> >      (license license:asl2.0)))
> > 
> > +(define-public java-cup
> > +  (package
> > +    (name "java-cupx")  
> 
> Why x?

Leftover from testing.  Dunno how they always slip though :)

> Maybe that should be a snippet?

Often I had problems that the entire "unpack" phase suddenly unpacked
nothing when I tried to do that in a snippet.  I'll try it with this package.

> I don't know if that's an issue, but the source code bundles generated 
> source by java-cup and jflex. I've tried to bootstrap both correctly, 
> but there is no version of jflex you can build without jflex and cup.

Oops, that's pretty bad.

>I have a recipe for java-jflex and java-cup that are built without 
> pre-generated source, using two bootstrap jars. Then, I could use them 
> to build other packages that I need for the future maven-build-system. I 
> wasn't able to build java-jflex with the latest java-cup.
> Do you want me to send these recipes for comparison?

Yes, please.

If we could get maven to work that would be cool.  I've packaged batik and
it's not fun to emulate maven manually...

If we can't get maven to work, a recursive guix importer that reads the
pom.xml would be a great improvement instead.

I can help with both.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 1/3] gnu: Add java-cup.
  2018-10-05 16:00     ` Danny Milosavljevic
@ 2018-10-05 16:13       ` Julien Lepiller
  0 siblings, 0 replies; 53+ messages in thread
From: Julien Lepiller @ 2018-10-05 16:13 UTC (permalink / raw)
  To: 32947

>> I have a recipe for java-jflex and java-cup that are built without
>> pre-generated source, using two bootstrap jars. Then, I could use them
>> to build other packages that I need for the future maven-build-system. 
>> I
>> wasn't able to build java-jflex with the latest java-cup.
>> Do you want me to send these recipes for comparison?
> 
> Yes, please.
> 
> If we could get maven to work that would be cool.  I've packaged batik 
> and
> it's not fun to emulate maven manually...
> 
> If we can't get maven to work, a recursive guix importer that reads the
> pom.xml would be a great improvement instead.
> 
> I can help with both.

There are my recipes:

(define %java-cup-bootstrap
   (package
     (name "java-cup")
     (version "11b-20160615")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www2.cs.tum.edu/projects/cup/"
                                   "releases/java-cup-bin-" version 
".tar.gz"))
               (sha256
                (base32
                 
"1k6ycm5bpg7r2z2jprdp54s8bvaxggdxk4qmvkjw3013i1bxc09z"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
        #:builder (begin
                    (use-modules (guix build utils))
                    (let* ((source (assoc-ref %build-inputs "source"))
                           (tar (string-append
                                  (assoc-ref %build-inputs "tar")
                                  "/bin/tar"))
                           (gzip (assoc-ref %build-inputs "gzip"))
                           (output (assoc-ref %outputs "out"))
                           (java-dir (string-append output 
"/share/java")))
                      (mkdir-p java-dir)
                      (chdir java-dir)
                      (setenv "PATH" (string-append (getenv "PATH") ":" 
gzip "/bin"))
                      (invoke tar "xf" source)))))
     (native-inputs
      `(("tar" ,tar)
        ("gzip" ,gzip)))
     (home-page "http://www2.cs.tum.edu/projects/cup/")
     (synopsis "")
     (description "")
     (license license:expat)))

(define-public java-jflex
   (package
     (name "java-jflex")
     (version "1.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.jflex.de/release/jflex-" 
version
                                   ".tar.gz"))
               (sha256
                (base32
                 "1h7q2vhb4s42g4pqz5xxxliagprray7i9krr6hyaz1mjlx7gnycq"))
               (modules '((guix build utils)))
               (snippet
                 `(begin
                    ;; The first entry is a symlink to jflex-version
                    (delete-file "../jflex")
                    ;; Delete bundled jar archives.
                    (for-each delete-file (find-files "." ".*\\.jar"))
                    ;; Guix wants to repack jflex as that was the first 
entry in the archive
                    (chdir "..")
                    (rename-file "jflex-1.6.1" "jflex")
                    (chdir "jflex")
                    #t))))
     (build-system ant-build-system)
     (arguments
      `(#:jdk ,icedtea-8
        #:test-target "test"
        #:phases
        (modify-phases %standard-phases
          (replace 'install
            (install-jars ".")))))
     (native-inputs
      `(("%java-jflex-bootstrap" ,%java-jflex-bootstrap)
        ("java-junit" ,java-junit)))
     (home-page "https://jflex.de")
     (synopsis "")
     (description "")
     (license license:bsd-3)))

(define-public java-cup
   (package
     (name "java-cup")
     (version "11b")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                      (url 
"https://versioncontrolseidl.in.tum.de/parsergenerators/cup.git")
                      (commit 
"fe729fe8c27441f046dab19135a38b9dde4c4e5e")))
               (sha256
                (base32
                 "09xigxm7b44hz79xhqpfykvjrk4q90p33j2l07w69izx9sn0y42b"))
               (modules '((guix build utils)))
               (snippet
                 '(begin ;; Delete bundled jar archives.
                    (for-each delete-file (find-files "." ".*\\.jar"))
                    (for-each delete-file (find-files "." ".*\\.tar.gz"))
                    #t))))
     (build-system ant-build-system)
     (arguments
      `(#:jdk ,icedtea-8
        #:build-target "dist"
        #:tests? #f; no test target
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-jflex
            (lambda _
              (substitute* "build.xml"
                (("JFlex.ant") "jflex.ant"))
              #t))
          (add-before 'build 'add-lib
            (lambda _
              (mkdir-p "lib")))
          (replace 'install
            (install-jars ".")))))
     (native-inputs
      `(("%java-jflex-bootstrap" ,%java-jflex-bootstrap)
        ("git" ,git)))
     (home-page "http://www2.cs.tum.edu/projects/cup")
     (synopsis "")
     (description "")
     (license license:expat))); 
http://www2.cs.tum.edu/projects/cup/licence.html

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
  2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
@ 2018-12-19 14:05 ` Julien Lepiller
  2022-03-17 21:08 ` Frank Pursel
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 53+ messages in thread
From: Julien Lepiller @ 2018-12-19 14:05 UTC (permalink / raw)
  To: 32947

Hi,

what's the status of these patches?

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
  2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
  2018-12-19 14:05 ` [bug#32947] Add java-xalan Julien Lepiller
@ 2022-03-17 21:08 ` Frank Pursel
  2022-03-17 21:50   ` Maxime Devos
                     ` (3 more replies)
  2022-03-18 17:29 ` Frank Pursel
                   ` (9 subsequent siblings)
  12 siblings, 4 replies; 53+ messages in thread
From: Frank Pursel @ 2022-03-17 21:08 UTC (permalink / raw)
  To: 32947

Hi Guix!

I want to help get a version of xalan into guix.  I independently posted
issue#54145 to this end but errors were made.  I've since learned of and
from this prior work and want to offer an updated/improved patch to provide a
java-xalan-interp package to fill this gap.

This package is less ambitious than the original because it makes no
attempt to build the xsltc base of xalan and instead settles for the
likely slower, xslt base.  The xslt base of xalan is likely slower than
the xsltc base but, as far as I can tell, it provides the same
functionality while not depending on the bundled cups and jflex jars.

If it meets your scrutiny we may also be able to close two issues (this,
32947 and 54145) for the price of one!  

Regards,
Frank Pursel
acrow#guix

From 6d711a86959049596e6c6110a830ba1c6c7cea50 Mon Sep 17 00:00:00 2001
Message-Id: <6d711a86959049596e6c6110a830ba1c6c7cea50.1647548555.git.frank.pursel@gmail.com>
From: Frank Pursel <frank.pursel@gmail.com>
Date: Wed, 23 Feb 2022 13:59:26 -0800
Subject: [PATCH] gnu: Add java-xalan-interp

     * gnu/packages/xml.scm (java-xalan-interp): New variable
---
 gnu/packages/xml.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 3ce5e771c7..94bcdff903 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2022 Frank Pursel <frank.pursel@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2592,3 +2593,64 @@ (define-public python-xmltodict
     (description "This package provides a Python library to convert XML to
 @code{OrderedDict}.")
     (license license:expat)))
+
+(define-public java-xalan-interp
+  (package
+    (name "java-xalan-interp")
+    (version "j_2_7_2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-"
+                           version "-src.tar.gz"))
+       (sha256
+        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Removing bundled jars
+                   (format #t "~%~a~%" "Removing Bundled Jars")
+                   (for-each
+                    (lambda (f)
+                      (format #t "~/Deleting: ~a~%" f)
+                      (delete-file f))
+                    (find-files "." "\\.jar$"))))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:phases (modify-phases
+                %standard-phases
+                (add-after 'unpack 'prepare-for-build
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (setenv "ANT_OPTS" "-Dxsltc.java_cup.not_needed=true")
+                    (substitute* "build.xml"
+                      ;; Only the interpretive compiler.  xsltc contains a
+                      ;; circular reference java_cup.
+                      (("(<target name=\"jar\" depends=\"xalan-interpretive.compile),.*"
+                        all pre)
+                       (string-append pre "\""))
+                      (("xml-apis") "jaxp"))
+                    (substitute* (list "src/MANIFEST.MF"
+                                       "src/manifest.xalan-interpretive"
+                                       "src/MANIFEST.SERIALIZER"
+                                       "src/manifest.xsltc")
+                      (("xml-apis.jar") "jaxp.jar"))))
+                (replace 'install
+                  (install-jars "build"))
+                (add-after 'install 'provide-jars-for-indexing
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (with-directory-excursion
+                        (string-append (assoc-ref outputs "out") "/share/java")
+                      (symlink
+                       (search-input-file inputs "share/java/jaxp.jar")
+                       "jaxp.jar")
+                      (symlink
+                       (search-input-file inputs "share/java/xercesImpl.jar")
+                       "xercesImpl.jar")))))))
+    (native-inputs (list java-junit java-hamcrest-core))
+    (propagated-inputs (list java-jaxp java-xerces))
+    (home-page "https://xalan.apache.org/xalan-j/index.html")
+    (synopsis "Java XSLT processor")
+    (description "XSLT processor in java implementing XSLT Version 1.0, XPath
+Version 1.0, and JAXP 1.3.  It builds on SAX2 and DOM level 3.  This version
+is the fully functional interpreter, xslt, not the xsltc version which may be
+faster.")
+    (license license:asl2.0)))
-- 
2.34.0







^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-17 21:08 ` Frank Pursel
@ 2022-03-17 21:50   ` Maxime Devos
  2022-03-17 21:53   ` Maxime Devos
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-03-17 21:50 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 323 bytes --]

Frank Pursel schreef op do 17-03-2022 om 14:08 [-0700]:
> +    (version "j_2_7_2")

Why not use periods instead of underscores and drop the "j_" prefix
("2.7.2") instead?  'version-major+minor' and 'version-compare' would
like that better I think, and it's more in line with other packages.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-17 21:08 ` Frank Pursel
  2022-03-17 21:50   ` Maxime Devos
@ 2022-03-17 21:53   ` Maxime Devos
  2022-03-17 21:57   ` Maxime Devos
  2022-03-18 17:40   ` Maxime Devos
  3 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-03-17 21:53 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 896 bytes --]

Frank Pursel schreef op do 17-03-2022 om 14:08 [-0700]:
> +       (snippet '(begin
> +                   ;; Removing bundled jars
> +                   (format #t "~%~a~%" "Removing Bundled Jars")

Isn't this equivalent to (display "Removing bundled jars\n")?

> +                   (for-each
> +                    (lambda (f)
> +                      (format #t "~/Deleting: ~a~%" f)

Why ~/?

> +                      (delete-file f))
> +                    (find-files "." "\\.jar$"))))))

FWIW, while this is useful for testing whether the unbundling works (*)
while developing the patch, I personally don't see the point of keeping
the 'format' afterwards.

(*) alternatively, you can do "guix build --source java-xalan" to test.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-17 21:08 ` Frank Pursel
  2022-03-17 21:50   ` Maxime Devos
  2022-03-17 21:53   ` Maxime Devos
@ 2022-03-17 21:57   ` Maxime Devos
  2022-03-18 17:40   ` Maxime Devos
  3 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-03-17 21:57 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 1036 bytes --]

Frank Pursel schreef op do 17-03-2022 om 14:08 [-0700]:
> +                (add-after 'install 'provide-jars-for-indexing
> +                  (lambda* (#:key inputs outputs #:allow-other-keys)
> +                    (with-directory-excursion
> +                        (string-append (assoc-ref outputs "out") "/share/java")
> +                      (symlink
> +                       (search-input-file inputs "share/java/jaxp.jar")
> +                       "jaxp.jar")
> +                      (symlink
> +                       (search-input-file inputs "share/java/xercesImpl.jar")
> +                       "xercesImpl.jar")))))))

Why is "jaxp" and "xerces" being symlinked into share/java even though
they are propagated?  Could they be removed after indexing?  Is
generate-jar-indices currently broken?

Greetings
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (2 preceding siblings ...)
  2022-03-17 21:08 ` Frank Pursel
@ 2022-03-18 17:29 ` Frank Pursel
  2022-03-18 17:59   ` Maxime Devos
  2022-03-18 19:16 ` Frank Pursel
                   ` (8 subsequent siblings)
  12 siblings, 1 reply; 53+ messages in thread
From: Frank Pursel @ 2022-03-18 17:29 UTC (permalink / raw)
  To: 32947

No, I don't think generate-jar-indices is broken.  The problem is that
the xalan build is dependent on xml-apis.jar which guix has broken out
into pieces that are split between the guix builds of xerces and jaxp.
The index fails because it looks for all the requirements specified in
the manifest which now must identify xerces and jaxp.  So, those jars
(jaxp and xerces) now need to be brought over into the outputs(out)
directory to allow the indexing to succeed.  I don't know if the
symlinks are required after completion of the indexing but saw no harm
in it since we need to propagate those inputs anyway or else xalan will
not be able to find all it's dependencies when called.  I was pleased to
be able to find all the xml-apis requirements already provided by the
guix builds of xerces and jaxp.

Regards,
Frank




^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-17 21:08 ` Frank Pursel
                     ` (2 preceding siblings ...)
  2022-03-17 21:57   ` Maxime Devos
@ 2022-03-18 17:40   ` Maxime Devos
  2022-03-18 18:15     ` Frank Pursel
  3 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-03-18 17:40 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 653 bytes --]

Frank Pursel schreef op do 17-03-2022 om 14:08 [-0700]:
> +       (snippet '(begin
> +                   ;; Removing bundled jars
> +                   (format #t "~%~a~%" "Removing Bundled Jars")
> +                   (for-each
> +                    (lambda (f)
> +                      (format #t "~/Deleting: ~a~%" f)
> +                      (delete-file f))
> +                    (find-files "." "\\.jar$"))))))

I looked a little further and saw a few 'tar.gz'.  Perhaps those need
to be removed as well?

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 17:29 ` Frank Pursel
@ 2022-03-18 17:59   ` Maxime Devos
  0 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-03-18 17:59 UTC (permalink / raw)
  To: Frank Pursel, 32947


[-- Attachment #1.1: Type: text/plain, Size: 1209 bytes --]

Frank Pursel schreef op vr 18-03-2022 om 10:29 [-0700]:
> No, I don't think generate-jar-indices is broken.  The problem is that
> the xalan build is dependent on xml-apis.jar which guix has broken out
> into pieces that are split between the guix builds of xerces and jaxp.
> The index fails because it looks for all the requirements specified in
> the manifest which now must identify xerces and jaxp.  So, those jars
> (jaxp and xerces) now need to be brought over into the outputs(out)
> directory to allow the indexing to succeed.  I don't know if the
> symlinks are required after completion of the indexing but saw no harm
> in it since we need to propagate those inputs anyway or else xalan will
> not be able to find all it's dependencies when called.  I was pleased to
> be able to find all the xml-apis requirements already provided by the
> guix builds of xerces and jaxp.

Ok, seems like due to the changes Guix made to the packaging, the
manifest became incorrect, so that needs to be worked around.  As an
alternative work-around, I've removed the jars from the Class-Path, see
attached package definition.  This seems a little simpler to me, YMMV.

Greetings,
Maxime.

[-- Attachment #1.2: r.scm --]
[-- Type: text/x-scheme, Size: 2879 bytes --]

(use-modules (guix packages) (guix build-system ant) (gnu packages java)(guix download)(gnu packages xml)
  (guix utils)
  ((guix licenses) #:prefix license:))
(define-public java-xalan-interp
  (package
    (name "java-xalan-interp")
    (version "2.7.2")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-"
                           (string-replace-substring version "." "_") "-src.tar.gz"))
       (sha256
        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
       (modules '((guix build utils)))
       (snippet '(begin
                   ;; Removing bundled jars
                   (format #t "~%~a~%" "Removing Bundled Jars")
                   (for-each
                    (lambda (f)
                      (format #t "~/Deleting: ~a~%" f)
                      (delete-file f))
                    (find-files "." "\\.jar$"))))))
    (build-system ant-build-system)
    (arguments
     `(#:phases (modify-phases
                %standard-phases
                (add-after 'unpack 'prepare-for-build
                  (lambda* (#:key inputs outputs #:allow-other-keys)
                    (setenv "ANT_OPTS" "-Dxsltc.java_cup.not_needed=true")
                    (substitute* "build.xml"
                      ;; Only the interpretive compiler.  xsltc contains a
                      ;; circular reference java_cup.
                      (("(<target name=\"jar\" depends=\"xalan-interpretive.compile),.*"
                        all pre)
                       (string-append pre "\""))
                      (("xml-apis") "jaxp"))
                    (substitute* (list "src/MANIFEST.MF"
                                       "src/manifest.xalan-interpretive"
                                       "src/MANIFEST.SERIALIZER"
                                       "src/manifest.xsltc")
                      ;; This stops the indexing phase from searching for
                      ;; xml-apis in the wrong location -- java-xerces and
                      ;; java-jaxp are propagated, so the eventual Java
                      ;; application package will still have access to it.
                      (("^Class-Path:(.*)$") ""))))
                ;; By default, no jars would be installed.
                (replace 'install
                  (install-jars "build")))))
    (native-inputs (list java-junit java-hamcrest-core))
    (propagated-inputs (list java-jaxp java-xerces))
    (home-page "https://xalan.apache.org/xalan-j/index.html")
    (synopsis "Java XSLT processor")
    (description "XSLT processor in java implementing XSLT Version 1.0, XPath
Version 1.0, and JAXP 1.3.  It builds on SAX2 and DOM level 3.  This version
is the fully functional interpreter, xslt, not the xsltc version which may be
faster.")
    (license license:asl2.0)))
java-xalan-interp

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 17:40   ` Maxime Devos
@ 2022-03-18 18:15     ` Frank Pursel
  2022-03-18 18:22       ` Frank Pursel
  0 siblings, 1 reply; 53+ messages in thread
From: Frank Pursel @ 2022-03-18 18:15 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 738 bytes --]

Deleting the tar.gz's too should be fine.   And the change regarding the
Class-Path sounds appropriate too.  Thank you.


On Fri, Mar 18, 2022 at 5:41 PM Maxime Devos <maximedevos@telenet.be> wrote:

> Frank Pursel schreef op do 17-03-2022 om 14:08 [-0700]:
> > +       (snippet '(begin
> > +                   ;; Removing bundled jars
> > +                   (format #t "~%~a~%" "Removing Bundled Jars")
> > +                   (for-each
> > +                    (lambda (f)
> > +                      (format #t "~/Deleting: ~a~%" f)
> > +                      (delete-file f))
> > +                    (find-files "." "\\.jar$"))))))
>
> I looked a little further and saw a few 'tar.gz'.  Perhaps those need
> to be removed as well?
>

[-- Attachment #2: Type: text/html, Size: 1321 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 18:15     ` Frank Pursel
@ 2022-03-18 18:22       ` Frank Pursel
  2022-03-18 19:19         ` Maxime Devos
  0 siblings, 1 reply; 53+ messages in thread
From: Frank Pursel @ 2022-03-18 18:22 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 1006 bytes --]

I like the string-replace-substring modification in your revision but you
need to also allow for the '-j' prefix artifact that the apache upstream is
calling for.

On Fri, Mar 18, 2022 at 6:15 PM Frank Pursel <frank.pursel@gmail.com> wrote:

> Deleting the tar.gz's too should be fine.   And the change regarding the
> Class-Path sounds appropriate too.  Thank you.
>
>
> On Fri, Mar 18, 2022 at 5:41 PM Maxime Devos <maximedevos@telenet.be>
> wrote:
>
>> Frank Pursel schreef op do 17-03-2022 om 14:08 [-0700]:
>> > +       (snippet '(begin
>> > +                   ;; Removing bundled jars
>> > +                   (format #t "~%~a~%" "Removing Bundled Jars")
>> > +                   (for-each
>> > +                    (lambda (f)
>> > +                      (format #t "~/Deleting: ~a~%" f)
>> > +                      (delete-file f))
>> > +                    (find-files "." "\\.jar$"))))))
>>
>> I looked a little further and saw a few 'tar.gz'.  Perhaps those need
>> to be removed as well?
>>
>

[-- Attachment #2: Type: text/html, Size: 1873 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (3 preceding siblings ...)
  2022-03-18 17:29 ` Frank Pursel
@ 2022-03-18 19:16 ` Frank Pursel
  2022-03-18 20:07   ` Maxime Devos
  2022-04-16 21:02   ` Maxime Devos
  2022-03-19 15:41 ` Frank Pursel
                   ` (7 subsequent siblings)
  12 siblings, 2 replies; 53+ messages in thread
From: Frank Pursel @ 2022-03-18 19:16 UTC (permalink / raw)
  To: 32947

Guix!, Maxime,

Thank you for the feedback.  The result is a better package!  These
changes have built successfully and incorporate the identified changes.

Regards,
Frank Pursel
acrow#guix

From 4018f56893077df82c67c06e341339fd3c00e14a Mon Sep 17 00:00:00 2001
Message-Id: <4018f56893077df82c67c06e341339fd3c00e14a.1647630491.git.frank.pursel@gmail.com>
From: Frank Pursel <frank.pursel@gmail.com>
Date: Wed, 23 Feb 2022 13:59:26 -0800
Subject: [PATCH] gnu: Add java-xalan-interp

     * gnu/packages/xml.scm (java-xalan-interp): New variable
---
 gnu/packages/xml.scm | 56 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 3ce5e771c7..2a0a8e2949 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2022 Frank Pursel <frank.pursel@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2592,3 +2593,58 @@ (define-public python-xmltodict
     (description "This package provides a Python library to convert XML to
 @code{OrderedDict}.")
     (license license:expat)))
+
+(define-public java-xalan-interp
+  (package
+    (name "java-xalan-interp")
+    (version "2.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
+                           (string-replace-substring
+                            version "." "_")
+                           "-src.tar.gz"))
+       (sha256
+        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Removing bundled jars
+                   (for-each
+                    (lambda (f)
+                      (delete-file f))
+                    (find-files "." "\\.(jar|tar\\.gz)$"))))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:phases (modify-phases
+                %standard-phases
+                (add-after 'unpack 'prepare-for-build
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (setenv "ANT_OPTS" "-Dxsltc.java_cup.not_needed=true")
+                    (substitute* "build.xml"
+                      ;; Only the interpretive compiler.  xsltc contains a
+                      ;; circular reference java_cup.
+                      (("(<target name=\"jar\" depends=\"xalan-interpretive.compile),.*"
+                        all pre)
+                       (string-append pre "\""))
+                      (("xml-apis") "jaxp"))
+                    (substitute* (list "src/MANIFEST.MF"
+                                       "src/manifest.xalan-interpretive"
+                                       "src/MANIFEST.SERIALIZER"
+                                       "src/manifest.xsltc")
+                      ;; This stops the indexing phase from searching for
+                      ;; xml-apis in the wrong location -- java-xerces and
+                      ;; java-jaxp are propagated, so the eventual Java
+                      ;; application package will still have access to it.
+                      (("^Class-Path:(.*)$") ""))))
+                (replace 'install
+                  (install-jars "build")))))
+    (native-inputs (list java-junit java-hamcrest-core))
+    (propagated-inputs (list java-jaxp java-xerces))
+    (home-page "https://xalan.apache.org/xalan-j/index.html")
+    (synopsis "Java XSLT processor")
+    (description "XSLT processor in java implementing XSLT Version 1.0, XPath
+Version 1.0, and JAXP 1.3.  It builds on SAX2 and DOM level 3.  This version
+is the fully functional interpreter, xslt, not the xsltc version which may be
+faster.")
+    (license license:asl2.0)))
-- 
2.34.0







^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 18:22       ` Frank Pursel
@ 2022-03-18 19:19         ` Maxime Devos
  0 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-03-18 19:19 UTC (permalink / raw)
  To: Frank Pursel; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 419 bytes --]

Frank Pursel schreef op vr 18-03-2022 om 18:22 [+0000]:
> I like the string-replace-substring modification in your revision but
> you need to also allow for the '-j' prefix artifact that the apache
> upstream is calling for.

Indeed:

(string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
               (string-replace-substring version "." "_")
               "-src.tar.gz")

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 19:16 ` Frank Pursel
@ 2022-03-18 20:07   ` Maxime Devos
  2022-03-18 20:42     ` Frank Pursel
                       ` (5 more replies)
  2022-04-16 21:02   ` Maxime Devos
  1 sibling, 6 replies; 53+ messages in thread
From: Maxime Devos @ 2022-03-18 20:07 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 1831 bytes --]

Frank Pursel schreef op vr 18-03-2022 om 19:16 [+0000]:
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
> +                           (string-replace-substring
> +                            version "." "_")
> +                           "-src.tar.gz"))
> +       (sha256
> +        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
> +       (modules '((guix build utils)))
> +       (snippet '(begin
> +                   ;; Removing bundled jars
> +                   (for-each
> +                    (lambda (f)
> +                      (delete-file f))
> +                    (find-files "." "\\.(jar|tar\\.gz)$"))))))

Can be simplified to:

    (snippet '(for-each delete-file (delete-files "." "\\.(jar|tar\\.gz)$")))

Also, xalan-j_2_7_2/samples/AppletXMLtoHTML/rabbitwhorn.jpg is an (uncoloured)
picture of a rabbit from Alice in Wonderland (not asl2.0).  According to
<https://commons.wikimedia.org/wiki/File:Alice_par_John_Tenniel_37.png>,
the copyright has been expired.  As such, perhaps the 'license' field
needs to be changed to

  (license (list license:asl2.0 ; almost everything
                 ;; samples/AppletXMLtoHTML/rabbitwhorn.jpg, according to
                 ;; <https://commons.wikimedia.org/wiki/File:Alice_par_John_Tenniel_37.png>
                 license:public-domain))

Aside from that, LGTM.  I've been reading the source code, not seeing anything
‘suspicous’ (malware etc.) so far (I'm currently at
xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 20:07   ` Maxime Devos
@ 2022-03-18 20:42     ` Frank Pursel
  2022-03-19 15:58     ` Maxime Devos
                       ` (4 subsequent siblings)
  5 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-03-18 20:42 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 2168 bytes --]

Very thorough!  Apache is a bit sloppy,  '(for-each delete-file
(find-file...) is the minimalistic scheme we adore and I'll be happy to
post a revised patch with all of that but I may wait until you've finished
the source review because there is no telling what else has Apache has
packed in there.  Please let me know.

Thanks,
Frank

On Fri, Mar 18, 2022 at 8:07 PM Maxime Devos <maximedevos@telenet.be> wrote:

> Frank Pursel schreef op vr 18-03-2022 om 19:16 [+0000]:
> > +     (origin
> > +       (method url-fetch)
> > +       (uri (string-append
> "mirror://apache/xalan/xalan-j/source/xalan-j_"
> > +                           (string-replace-substring
> > +                            version "." "_")
> > +                           "-src.tar.gz"))
> > +       (sha256
> > +        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
> > +       (modules '((guix build utils)))
> > +       (snippet '(begin
> > +                   ;; Removing bundled jars
> > +                   (for-each
> > +                    (lambda (f)
> > +                      (delete-file f))
> > +                    (find-files "." "\\.(jar|tar\\.gz)$"))))))
>
> Can be simplified to:
>
>     (snippet '(for-each delete-file (delete-files "."
> "\\.(jar|tar\\.gz)$")))
>
> Also, xalan-j_2_7_2/samples/AppletXMLtoHTML/rabbitwhorn.jpg is an
> (uncoloured)
> picture of a rabbit from Alice in Wonderland (not asl2.0).  According to
> <https://commons.wikimedia.org/wiki/File:Alice_par_John_Tenniel_37.png>,
> the copyright has been expired.  As such, perhaps the 'license' field
> needs to be changed to
>
>   (license (list license:asl2.0 ; almost everything
>                  ;; samples/AppletXMLtoHTML/rabbitwhorn.jpg, according to
>                  ;; <
> https://commons.wikimedia.org/wiki/File:Alice_par_John_Tenniel_37.png>
>                  license:public-domain))
>
> Aside from that, LGTM.  I've been reading the source code, not seeing
> anything
> ‘suspicous’ (malware etc.) so far (I'm currently at
> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).
>
> Greetings,
> Maxime.
>

[-- Attachment #2: Type: text/html, Size: 3227 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (4 preceding siblings ...)
  2022-03-18 19:16 ` Frank Pursel
@ 2022-03-19 15:41 ` Frank Pursel
  2022-03-19 16:38 ` Frank Pursel
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-03-19 15:41 UTC (permalink / raw)
  To: 32947

From 21400e9165ccee0a72c62eb0def9f52fdfdf5d06 Mon Sep 17 00:00:00 2001
From: Frank Pursel <frank.pursel@gmail.com>
Date: Fri, 18 Mar 2022 19:16:57 +0000
Subject: [PATCH] gnu: Add java-xalan-interp

     * gnu/packages/xml.scm (java-xalan-interp): New variable
---
 gnu/packages/xml.scm | 59 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 49275c3e0c..a90aee2783 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2022 Frank Pursel <frank.pursel@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2592,3 +2593,61 @@ (define-public python-xmltodict
     (description "This package provides a Python library to convert XML to
 @code{OrderedDict}.")
     (license license:expat)))
+
+(define-public java-xalan-interp
+  (package
+    (name "java-xalan-interp")
+    (version "2.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
+                           (string-replace-substring
+                            version "." "_")
+                           "-src.tar.gz"))
+       (sha256
+        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Removing bundled tars and jars
+                   (for-each
+                    delete-file
+                    (find-files "." "\\.(jar|tar\\.gz)$"))))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:phases (modify-phases
+                %standard-phases
+                (add-after 'unpack 'prepare-for-build
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (setenv "ANT_OPTS" "-Dxsltc.java_cup.not_needed=true")
+                    (substitute* "build.xml"
+                      ;; Only the interpretive compiler.  xsltc contains a
+                      ;; circular reference java_cup.
+                      (("(<target name=\"jar\" depends=\"xalan-interpretive.compile),.*"
+                        all pre)
+                       (string-append pre "\""))
+                      (("xml-apis") "jaxp"))
+                    (substitute* (list "src/MANIFEST.MF"
+                                       "src/manifest.xalan-interpretive"
+                                       "src/MANIFEST.SERIALIZER"
+                                       "src/manifest.xsltc")
+                      ;; This stops the indexing phase from searching for
+                      ;; xml-apis in the wrong location -- java-xerces and
+                      ;; java-jaxp are propagated, so the eventual Java
+                      ;; application package will still have access to it.
+                      (("^Class-Path:(.*)$") ""))))
+                (replace 'install
+                  (install-jars "build")))))
+    (native-inputs (list java-junit java-hamcrest-core))
+    (propagated-inputs (list java-jaxp java-xerces))
+    (home-page "https://xalan.apache.org/xalan-j/index.html")
+    (synopsis "Java XSLT processor")
+    (description "XSLT processor in java implementing XSLT Version 1.0, XPath
+Version 1.0, and JAXP 1.3.  It builds on SAX2 and DOM level 3.  This version
+is the fully functional interpreter, xslt, not the xsltc version which may be
+faster.")
+    (license (list license:asl2.0 ; almost everything
+                 ;; samples/AppletXMLtoHTML/rabbitwhorn.jpg, according to
+                 ;; <https://commons.wikimedia.org/wiki/File:Alice_par_John_Tenniel_37.png>
+                 license:public-domain)
+                   )))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 20:07   ` Maxime Devos
  2022-03-18 20:42     ` Frank Pursel
@ 2022-03-19 15:58     ` Maxime Devos
  2022-03-22 17:45     ` Maxime Devos
                       ` (3 subsequent siblings)
  5 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-03-19 15:58 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 476 bytes --]

Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
> I've been reading the source code, not seeing anything
> ‘suspicous’ (malware etc.) so far (I'm currently at
> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).

Now at src/org/apache/xalan/xsltc/compiler/IdKeyPattern.java, line 36%.
I noticed some Java code does some classpath and class loader things,
so I'm not sure that the java-xalan package will actually work.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (5 preceding siblings ...)
  2022-03-19 15:41 ` Frank Pursel
@ 2022-03-19 16:38 ` Frank Pursel
  2022-03-23  1:32 ` Frank Pursel
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-03-19 16:38 UTC (permalink / raw)
  To: 32947, maximedevos

Maxime,

Maxime Devos writes:
> Now at src/org/apache/xalan/xsltc/compiler/IdKeyPattern.java, line 36%.
> I noticed some Java code does some classpath and class loader things,
> so I'm not sure that the java-xalan package will actually work.

Yes, I think that is why apache continues to maintain the xslt base in
parallel with the xsltc base and why the java-xalan-interp avoids using
the xsltc branch of the source.

I've also read articles that questioned the notion that cup (used by the
xsltc base) offers any real value.  eg...
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1.5402&rep=rep1&type=pdf

I've never seen any published performance comparisons between xslt and
xsltc and it makes me believe that if there are gains they are modest in
this application.

It is also why I chose to name this package
java-xalan-interp to make the distinction between the code bases clear.

Regards,
Frank Pursel




^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 20:07   ` Maxime Devos
  2022-03-18 20:42     ` Frank Pursel
  2022-03-19 15:58     ` Maxime Devos
@ 2022-03-22 17:45     ` Maxime Devos
  2022-03-22 18:18       ` Julien Lepiller
  2022-03-30 17:43     ` Maxime Devos
                       ` (2 subsequent siblings)
  5 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-03-22 17:45 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 853 bytes --]

Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
> I've been reading the source code, not seeing anything
> ‘suspicous’ (malware etc.) so far (I'm currently at
> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).

Now I'm at 42% (src/org/apache/xalan/xsltc/compiler/XPathLexer.java).
I've found two binaries (*):

  * src/org/apache/xalan/xsltc/compiler/XPathLexer.java
  * src/org/apache/xalan/xsltc/compiler/XPathParser.java

They appear to be generated by a lexer and parser generator --
apparently it's named ‘java_cup’?  Given that they are in the 'xsltc'
part, which is currently unused in the java-xalan package IIUC, I
believe it would be sufficient to just delete these two files.

(*) Here I mean 'binaries'='generated, not source code' -- it's still
.java and not .class.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-22 17:45     ` Maxime Devos
@ 2022-03-22 18:18       ` Julien Lepiller
  0 siblings, 0 replies; 53+ messages in thread
From: Julien Lepiller @ 2022-03-22 18:18 UTC (permalink / raw)
  To: 32947, maximedevos, frank.pursel

On March 22, 2022 6:45:15 PM GMT+01:00, Maxime Devos <maximedevos@telenet.be> wrote:
>Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
>> I've been reading the source code, not seeing anything
>> ‘suspicous’ (malware etc.) so far (I'm currently at
>> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).
>
>Now I'm at 42% (src/org/apache/xalan/xsltc/compiler/XPathLexer.java).
>I've found two binaries (*):
>
>  * src/org/apache/xalan/xsltc/compiler/XPathLexer.java
>  * src/org/apache/xalan/xsltc/compiler/XPathParser.java
>
>They appear to be generated by a lexer and parser generator --
>apparently it's named ‘java_cup’?  Given that they are in the 'xsltc'
>part, which is currently unused in the java-xalan package IIUC, I
>believe it would be sufficient to just delete these two files.

To add to your comment. I've encountered java_cup in tge past. It's not bootstrappable as far as I can see. It has a dependency on jflex and itself, and jflex requires itself and java_cup. I looked at the first commit of jflex, and it already depends on itself (but not cup). According to the devs, chey used a hand-written lexer that was too aweful to commit, and so we can't rebuild jflex.

If someone is interested, they would have to write a lexer for an early version of jflex :)

>
>(*) Here I mean 'binaries'='generated, not source code' -- it's still
>.java and not .class.
>
>Greetings,
>Maxime.





^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (6 preceding siblings ...)
  2022-03-19 16:38 ` Frank Pursel
@ 2022-03-23  1:32 ` Frank Pursel
  2022-03-23 14:14 ` Frank Pursel
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-03-23  1:32 UTC (permalink / raw)
  To: 32947

From 4c867018a167053018a67fce43eb91a01a4112da Mon Sep 17 00:00:00 2001
Message-Id: <4c867018a167053018a67fce43eb91a01a4112da.1647998883.git.frank.pursel@gmail.com>
From: Frank Pursel <frank.pursel@gmail.com>
Date: Wed, 23 Feb 2022 13:59:26 -0800
Subject: [PATCH] gnu: Add java-xalan-interp

     * gnu/packages/xml.scm (java-xalan-interp): New variable
---
 gnu/packages/xml.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 3ce5e771c7..197165e9bb 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -33,6 +33,8 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2022 Frank Pursel <frank.pursel@gmail.com>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2592,3 +2594,62 @@ (define-public python-xmltodict
     (description "This package provides a Python library to convert XML to
 @code{OrderedDict}.")
     (license license:expat)))
+
+(define-public java-xalan-interp
+  (package
+    (name "java-xalan-interp")
+    (version "2.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
+                           (string-replace-substring
+                            version "." "_")
+                           "-src.tar.gz"))
+       (sha256
+        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (for-each
+                    delete-file
+                    (cons* 
+                     ;; jflex and cup generated files
+                     ;; for removal
+                     "src/org/apache/xalan/xsltc/compiler/XPathLexer.java"
+                     "src/org/apache/xalan/xsltc/compiler/XPathParser.java"
+                     ;; Removing bundled jars
+                     (find-files "." "\\.(jar|tar\\.gz)$")))))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:phases (modify-phases
+                %standard-phases
+                (add-after 'unpack 'prepare-for-build
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (setenv "ANT_OPTS" "-Dxsltc.java_cup.not_needed=true")
+                    (substitute* "build.xml"
+                      ;; Only the interpretive compiler.  xsltc contains a
+                      ;; circular reference java_cup.
+                      (("(<target name=\"jar\" depends=\"xalan-interpretive.compile),.*"
+                        all pre)
+                       (string-append pre "\""))
+                      (("xml-apis") "jaxp"))
+                    (substitute* (list "src/MANIFEST.MF"
+                                       "src/manifest.xalan-interpretive"
+                                       "src/MANIFEST.SERIALIZER"
+                                       "src/manifest.xsltc")
+                      ;; This stops the indexing phase from searching for
+                      ;; xml-apis in the wrong location -- java-xerces and
+                      ;; java-jaxp are propagated, so the eventual Java
+                      ;; application package will still have access to it.
+                      (("^Class-Path:(.*)$") ""))))
+                (replace 'install
+                  (install-jars "build")))))
+    (native-inputs (list java-junit java-hamcrest-core))
+    (propagated-inputs (list java-jaxp java-xerces))
+    (home-page "https://xalan.apache.org/xalan-j/index.html")
+    (synopsis "Java XSLT processor")
+    (description "XSLT processor in java implementing XSLT Version 1.0, XPath
+Version 1.0, and JAXP 1.3.  It builds on SAX2 and DOM level 3.  This version
+is the fully functional interpreter, xslt, not the xsltc version which may be
+faster.")
+    (license license:asl2.0)))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (7 preceding siblings ...)
  2022-03-23  1:32 ` Frank Pursel
@ 2022-03-23 14:14 ` Frank Pursel
  2022-08-19 22:05   ` Vagrant Cascadian
  2022-06-24 15:23 ` [bug#32947] [PATCH 0/3] Add java-xalan: reverse ping Maxime Devos
                   ` (3 subsequent siblings)
  12 siblings, 1 reply; 53+ messages in thread
From: Frank Pursel @ 2022-03-23 14:14 UTC (permalink / raw)
  To: 32947, maximedevos

Oops, I, somehow, dropped some prior work.  I think it's now all here.

From f9c96acbf38ecbe3dc0e73077f92c6a8be1eb93d Mon Sep 17 00:00:00 2001
Message-Id: <f9c96acbf38ecbe3dc0e73077f92c6a8be1eb93d.1648044678.git.frank.pursel@gmail.com>
From: Frank Pursel <frank.pursel@gmail.com>
Date: Wed, 23 Feb 2022 13:59:26 -0800
Subject: [PATCH] gnu: Add java-xalan-interp

     * gnu/packages/xml.scm (java-xalan-interp): New variable
---
 gnu/packages/xml.scm | 66 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 3ce5e771c7..a4d77b51d7 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -33,6 +33,8 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2022 Frank Pursel <frank.pursel@gmail.com>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2592,3 +2594,67 @@ (define-public python-xmltodict
     (description "This package provides a Python library to convert XML to
 @code{OrderedDict}.")
     (license license:expat)))
+
+(define-public java-xalan-interp
+  (package
+    (name "java-xalan-interp")
+    (version "2.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
+                           (string-replace-substring
+                            version "." "_")
+                           "-src.tar.gz"))
+       (sha256
+        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (for-each
+                    delete-file
+                    (cons* 
+                     ;; jflex and cup generated files
+                     ;; for removal
+                     "src/org/apache/xalan/xsltc/compiler/XPathLexer.java"
+                     "src/org/apache/xalan/xsltc/compiler/XPathParser.java"
+                     ;; Removing bundled jars
+                     (find-files "." "\\.(jar|tar\\.gz)$")))))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:phases (modify-phases
+                %standard-phases
+                (add-after 'unpack 'prepare-for-build
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (setenv "ANT_OPTS" "-Dxsltc.java_cup.not_needed=true")
+                    (substitute* "build.xml"
+                      ;; Only the interpretive compiler.  xsltc contains a
+                      ;; circular reference java_cup.
+                      (("(<target name=\"jar\" depends=\"xalan-interpretive.compile),.*"
+                        all pre)
+                       (string-append pre "\""))
+                      (("xml-apis") "jaxp"))
+                    (substitute* (list "src/MANIFEST.MF"
+                                       "src/manifest.xalan-interpretive"
+                                       "src/MANIFEST.SERIALIZER"
+                                       "src/manifest.xsltc")
+                      ;; This stops the indexing phase from searching for
+                      ;; xml-apis in the wrong location -- java-xerces and
+                      ;; java-jaxp are propagated, so the eventual Java
+                      ;; application package will still have access to it.
+                      (("^Class-Path:(.*)$") ""))))
+                (replace 'install
+                  (install-jars "build")))))
+    (native-inputs (list java-junit java-hamcrest-core))
+    (propagated-inputs (list java-jaxp java-xerces))
+    (home-page "https://xalan.apache.org/xalan-j/index.html")
+    (synopsis "Java XSLT processor")
+    (description "XSLT processor in java implementing XSLT Version 1.0, XPath
+Version 1.0, and JAXP 1.3.  It builds on SAX2 and DOM level 3.  This version
+is the fully functional interpreter, xslt, not the xsltc version which may be
+faster.")
+    (license
+     (list
+      license:asl2.0 ; almost everything
+      ;; samples/AppletXMLtoHTML/rabbitwhorn.jpg, according to
+      ;; <https://commons.wikimedia.org/wiki/File:Alice_par_John_Tenniel_37.png>
+      license:public-domain))))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 20:07   ` Maxime Devos
                       ` (2 preceding siblings ...)
  2022-03-22 17:45     ` Maxime Devos
@ 2022-03-30 17:43     ` Maxime Devos
  2022-03-30 18:41       ` Maxime Devos
  2022-04-03  8:32     ` Maxime Devos
  2022-04-05 13:12     ` Maxime Devos
  5 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-03-30 17:43 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 629 bytes --]

Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
> (I'm currently at
> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).

I've continued reading and I'm now at xalan-
j_2_7_2/src/org/apache/xalan/xsltc/dom/DocumentCache.java, 49%.

I think I see a bug there, in getStatistics:

	    out.print("<tr><td><a href=\""+_URIs[i]+"\">"+
		      "<font size=-1>"+_URIs[i]+"</font></a></td>");

what if the URI contains &, <, > or " characters?  Looks like then the
XML would be malformed.  To be reported upstream ... (not a blocker,
since xsltc is unused in the Guix package)

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-30 17:43     ` Maxime Devos
@ 2022-03-30 18:41       ` Maxime Devos
  2022-03-30 20:23         ` Frank Pursel
  0 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-03-30 18:41 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 332 bytes --]

Maxime Devos schreef op wo 30-03-2022 om 19:43 [+0200]:
> what if the URI contains &, <, > or " characters?  Looks like then
> the
> XML would be malformed.  To be reported upstream ... (not a blocker,
> since xsltc is unused in the Guix package)

Reported upstream at
<https://issues.apache.org/jira/browse/XALANJ-2630>.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-30 18:41       ` Maxime Devos
@ 2022-03-30 20:23         ` Frank Pursel
  0 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-03-30 20:23 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 436 bytes --]

Thank you Maxime.

On Wed, Mar 30, 2022 at 6:41 PM Maxime Devos <maximedevos@telenet.be> wrote:

> Maxime Devos schreef op wo 30-03-2022 om 19:43 [+0200]:
> > what if the URI contains &, <, > or " characters?  Looks like then
> > the
> > XML would be malformed.  To be reported upstream ... (not a blocker,
> > since xsltc is unused in the Guix package)
>
> Reported upstream at
> <https://issues.apache.org/jira/browse/XALANJ-2630>.
>

[-- Attachment #2: Type: text/html, Size: 880 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 20:07   ` Maxime Devos
                       ` (3 preceding siblings ...)
  2022-03-30 17:43     ` Maxime Devos
@ 2022-04-03  8:32     ` Maxime Devos
  2022-04-05 13:12     ` Maxime Devos
  5 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-04-03  8:32 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 287 bytes --]

Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
> (I'm currently at
> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).

Now at 57% (xalan-
j_2_7_2/src/org/apache/xml/dtm/ref/DTMStringPool.java). No new
‘suspicious’ things found.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 20:07   ` Maxime Devos
                       ` (4 preceding siblings ...)
  2022-04-03  8:32     ` Maxime Devos
@ 2022-04-05 13:12     ` Maxime Devos
  2022-04-05 21:09       ` Frank Pursel
                         ` (2 more replies)
  5 siblings, 3 replies; 53+ messages in thread
From: Maxime Devos @ 2022-04-05 13:12 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 238 bytes --]

Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
> (I'm currently at
> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).

Now at 62% (src/org/apache/xml/serializer/ToTextSAXHandler.java).

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-05 13:12     ` Maxime Devos
@ 2022-04-05 21:09       ` Frank Pursel
  2022-04-09 13:40       ` Maxime Devos
  2022-04-14 20:33       ` Maxime Devos
  2 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-04-05 21:09 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 326 bytes --]

Cool.

On Tue, Apr 5, 2022, 09:12 Maxime Devos <maximedevos@telenet.be> wrote:

> Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
> > (I'm currently at
> > xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).
>
> Now at 62% (src/org/apache/xml/serializer/ToTextSAXHandler.java).
>
> Greetings,
> Maxime.
>

[-- Attachment #2: Type: text/html, Size: 624 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-05 13:12     ` Maxime Devos
  2022-04-05 21:09       ` Frank Pursel
@ 2022-04-09 13:40       ` Maxime Devos
  2022-04-11 16:36         ` Frank Pursel
  2022-04-14 20:33       ` Maxime Devos
  2 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-04-09 13:40 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 520 bytes --]

Maxime Devos schreef op vr 18-03-2022 om 21:07 [+0100]:
> (I'm currently at
> xalan-j_2_7_2/src/org/apache/xalan/templates/FuncKey.java, 25%).

I'm now at 68%, xalan-j_2_7_2/src/org/apache/xml/utils/IntStack.java.
According to the header, it is asl2.0 licensed.  But there's also a
line

   * @since   JDK1.0

which seems to imply that this file was based on some Java code of
JDK1.0.  TBI: is this the case, what is the license of JDK1.0, and does
it appear to be followed or not?

Greetings,
Maxime.


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-09 13:40       ` Maxime Devos
@ 2022-04-11 16:36         ` Frank Pursel
  2022-04-12  9:32           ` Maxime Devos
  0 siblings, 1 reply; 53+ messages in thread
From: Frank Pursel @ 2022-04-11 16:36 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 664 bytes --]

Maxime,

I looked at the org.apache.xml/uitls/IntStack.java file you pointed out.  I
think the header license certainly prevails here for several reasons.
First it is subpackage of the org.apache tree for which the source license
is clearly stated.  Second, looking at the code (without being a java guru;
the code is that simple) we can see that there is no dependency on any
JDK.  The statement '@since JDK1.0' appears to be true in the sense that
any JDK can compile this since 1.0.  We demonstrate that it builds with
JDK8 whenever we run this package through guix build and so, I see no
licensing concerns over the '@since JDK1.0' annotation.

Regards,
Frank

[-- Attachment #2: Type: text/html, Size: 788 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-11 16:36         ` Frank Pursel
@ 2022-04-12  9:32           ` Maxime Devos
  2022-04-13 23:43             ` Frank Pursel
  0 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-04-12  9:32 UTC (permalink / raw)
  To: Frank Pursel; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 1942 bytes --]

Frank Pursel schreef op ma 11-04-2022 om 16:36 [+0000]:
> I looked at the org.apache.xml/uitls/IntStack.java file you pointed
> out.  I think the header license certainly prevails here for
> several reasons.  First it is subpackage of the org.apache tree for
> which the source license is clearly stated.

I can search for a leak of the source code of Windows, copy it to
another project, obfuscate its origin a bit by removing author
information, copyright information and the old license header and
add a ASL license header and rename it to fit inside the other project.
That doesn't make it actually ASL, it just makes it a copyright
violation.

> Second, looking at the code (without being a java guru; the code is
> that simple) we can see that there is no dependency on any JDK.
> The statement '@since JDK1.0' appears to be true in the sense that
> any JDK can compile this since 1.0.  We demonstrate that it builds
> with JDK8 whenever we run this package through guix build and so, I
> see no licensing concerns over the '@since JDK1.0' annotation.  

This is not what @since means, at least according to the Javadoc
documentation (maybe Apache Xalan assigns its own custom meaning). 
According to
<https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html>:,

  This tag means that this change or feature has existed since the
  software release specified by the since-text value, for example:
  @since 1.5.

  For Java platform source code, the @since tag indicates the version  
  of the Java platform API specification [...]

so IMO it looks like this code was once part of JDK 1.0.

Maybe this is OK, maybe the license of JDK 1.0 allows this, maybe it
doesn't but Apache has gained some kind of permission from Sun, maybe
it's not legally OK, maybe it never was part of JDK 1.0.  I think we'll
just have to ask upstream what's going on, WDYT?

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-12  9:32           ` Maxime Devos
@ 2022-04-13 23:43             ` Frank Pursel
  2022-04-14  8:30               ` Maxime Devos
  0 siblings, 1 reply; 53+ messages in thread
From: Frank Pursel @ 2022-04-13 23:43 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 3166 bytes --]

Maxime,

You wrote, WDIT?

I think that IntStack.java has almost no economic value and so the
comparison to a commercial package is not really appropriate.  We
could ask upstream (file a bug report) but the question is pretty
awkward.  We are not asking for a bug fix, or for clarification of a
behaviour.  We are questioning if they are meeting their own stated
licensing criteria!  Besides that such a ticket is very difficult to
resolve.  I would feel bad asking this of them because I imagine they
are no better equipped to answer questions about JDK1.0 than we are.
Worse, if we believe such impropriety is possible why would be believe
what they tell us anyway?  I think to ask for this to be investigated,
at minimum, you would need to find the actual file from JDK1.0 that
you feel was appropriated. I don't think we should be asking upstream
to work on investigation of a suspicious licensing that cannot improve
their software in any functional way.

I appreciate your keen sensitivity to the code but I don't think this
feedback to apache is helpful and is likely not even true.

Sincerely,
Frank Pursel


On Tue, Apr 12, 2022 at 9:33 AM Maxime Devos <maximedevos@telenet.be> wrote:

> Frank Pursel schreef op ma 11-04-2022 om 16:36 [+0000]:
> > I looked at the org.apache.xml/uitls/IntStack.java file you pointed
> > out.  I think the header license certainly prevails here for
> > several reasons.  First it is subpackage of the org.apache tree for
> > which the source license is clearly stated.
>
> I can search for a leak of the source code of Windows, copy it to
> another project, obfuscate its origin a bit by removing author
> information, copyright information and the old license header and
> add a ASL license header and rename it to fit inside the other project.
> That doesn't make it actually ASL, it just makes it a copyright
> violation.
>
> > Second, looking at the code (without being a java guru; the code is
> > that simple) we can see that there is no dependency on any JDK.
> > The statement '@since JDK1.0' appears to be true in the sense that
> > any JDK can compile this since 1.0.  We demonstrate that it builds
> > with JDK8 whenever we run this package through guix build and so, I
> > see no licensing concerns over the '@since JDK1.0' annotation.
>
> This is not what @since means, at least according to the Javadoc
> documentation (maybe Apache Xalan assigns its own custom meaning).
> According to
> <
> https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html
> >:,
>
>   This tag means that this change or feature has existed since the
>   software release specified by the since-text value, for example:
>   @since 1.5.
>
>   For Java platform source code, the @since tag indicates the version
>   of the Java platform API specification [...]
>
> so IMO it looks like this code was once part of JDK 1.0.
>
> Maybe this is OK, maybe the license of JDK 1.0 allows this, maybe it
> doesn't but Apache has gained some kind of permission from Sun, maybe
> it's not legally OK, maybe it never was part of JDK 1.0.  I think we'll
> just have to ask upstream what's going on, WDYT?
>
> Greetings,
> Maxime.
>

[-- Attachment #2: Type: text/html, Size: 3876 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-13 23:43             ` Frank Pursel
@ 2022-04-14  8:30               ` Maxime Devos
  2022-04-14 16:07                 ` Frank Pursel
  0 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-04-14  8:30 UTC (permalink / raw)
  To: Frank Pursel; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 2847 bytes --]

Frank Pursel schreef op wo 13-04-2022 om 23:43 [+0000]:
> I think that IntStack.java has almost no economic value and so the
> comparison to a commercial package is not really appropriate.

It is not about the commercial aspect, it is about the potential
proprietariness.

> We are not asking for a bug fix, or for clarification of a
> behaviour.

Violating the (copyright, maybe contract) law seems like a bug to me
(TBC it is not known yet if this is the case, it just seems plausible
to me at this moment).

> We are questioning if they are meeting their own stated
> licensing criteria!

The problem is not if Apacha meets their own license (it seems that
they do, since they explicitly release the source code with their
license headers etc.  The potential problem is Sun's licensing of
JDK1.0, which we (as distribution) might indirectly be in violation of
by including java-xalan.

Also, it's all about how the question is framed -- asking ‘did you
violate the licensing terms’ doesn't seem advisable, but ‘Does IntStack
indeed come from JDK1.0, and if so, can I use it under the ASL license
like the rest?’ would just be asking for confirmation (and somewhat
positive, because it seems to imply we want to use xalan).

> I would feel bad asking this of them because I imagine they
> are no better equipped to answer questions about JDK1.0 than we are.

They are probably not well-equipped to answer questions about JDK1.0. 
However, they _are_ well-equiped to answer questions about theirselves,
presumably they remember what they mean by @since and where their
source code came from.

> Worse, if we believe such impropriety is possible why would be
> believe what they tell us anyway?

FWIW, IMO it would only be impropriety because of the current law (and
somewhat unclear attribution).  Also, by assuming good faith.

> I think to ask for this to be investigated,
> at minimum, you would need to find the actual file from JDK1.0 that
> you feel was appropriated.

JDK1.0 is propietary, why would I look into its sources?  Also,
probably the sources aren't available anyway, given that it is
proprietary.

> I don't think we should be asking upstream
> to work on investigation of a suspicious licensing that cannot
> improve their software in any functional way.

Moving from being in violation in the law to not seems like a
functional improvement to me (assuming it was actually in violation,
which has not been determined).  Illegal software is, for many
practical purposes, not functional.

More generally, ignorance is not an excuse, and I imagine willfull
ignorance to be even less so.

Anyway, I've sent a mail upstream, presumably it will eventually appear
in the archive at
<https://marc.info/?l=xalan-j-users&r=1&b=202204&w=2>.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-14  8:30               ` Maxime Devos
@ 2022-04-14 16:07                 ` Frank Pursel
  0 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-04-14 16:07 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 4268 bytes --]

Well, I certainly have never intended to be an accomplice to intellectual
property theft.  Having formally asked the question that cannot be the
case.  I also thought you handled the 'framing' of the issue nicely.

Your perspective caused me to further investigate IntStack.java.  It may be
helpful to know that the class IntStack is an extension of IntVector.java
which contains none of the suspicious references to JDK1.0.  For
IntStack.java to have originated in the JDK so too must have IntVector.java
and there doesn't appear to be any similar evidence that this is the case.

I can also offer that xdocs/sources/xalan/history.xml documents that
IntStack.java has been modified multiple times to address bug reports and
for optimizations.  I really don't know how those attributable
modifications would affect the licensing but apache has clearly tailored
this code to suite the needs of xalan.  It also provides the email
addresses of past modifiers that might still be around to more clearly
identify the origin of the code.  Though it was some time ago.  This code
appears to have been settled since 2006.   15 year old open source code is
unusual by today's standards.

Regards,
Frank

On Thu, Apr 14, 2022 at 8:30 AM Maxime Devos <maximedevos@telenet.be> wrote:

> Frank Pursel schreef op wo 13-04-2022 om 23:43 [+0000]:
> > I think that IntStack.java has almost no economic value and so the
> > comparison to a commercial package is not really appropriate.
>
> It is not about the commercial aspect, it is about the potential
> proprietariness.
>
> > We are not asking for a bug fix, or for clarification of a
> > behaviour.
>
> Violating the (copyright, maybe contract) law seems like a bug to me
> (TBC it is not known yet if this is the case, it just seems plausible
> to me at this moment).
>
> > We are questioning if they are meeting their own stated
> > licensing criteria!
>
> The problem is not if Apacha meets their own license (it seems that
> they do, since they explicitly release the source code with their
> license headers etc.  The potential problem is Sun's licensing of
> JDK1.0, which we (as distribution) might indirectly be in violation of
> by including java-xalan.
>
> Also, it's all about how the question is framed -- asking ‘did you
> violate the licensing terms’ doesn't seem advisable, but ‘Does IntStack
> indeed come from JDK1.0, and if so, can I use it under the ASL license
> like the rest?’ would just be asking for confirmation (and somewhat
> positive, because it seems to imply we want to use xalan).
>
> > I would feel bad asking this of them because I imagine they
> > are no better equipped to answer questions about JDK1.0 than we are.
>
> They are probably not well-equipped to answer questions about JDK1.0.
> However, they _are_ well-equiped to answer questions about theirselves,
> presumably they remember what they mean by @since and where their
> source code came from.
>
> > Worse, if we believe such impropriety is possible why would be
> > believe what they tell us anyway?
>
> FWIW, IMO it would only be impropriety because of the current law (and
> somewhat unclear attribution).  Also, by assuming good faith.
>
> > I think to ask for this to be investigated,
> > at minimum, you would need to find the actual file from JDK1.0 that
> > you feel was appropriated.
>
> JDK1.0 is propietary, why would I look into its sources?  Also,
> probably the sources aren't available anyway, given that it is
> proprietary.
>
> > I don't think we should be asking upstream
> > to work on investigation of a suspicious licensing that cannot
> > improve their software in any functional way.
>
> Moving from being in violation in the law to not seems like a
> functional improvement to me (assuming it was actually in violation,
> which has not been determined).  Illegal software is, for many
> practical purposes, not functional.
>
> More generally, ignorance is not an excuse, and I imagine willfull
> ignorance to be even less so.
>
> Anyway, I've sent a mail upstream, presumably it will eventually appear
> in the archive at
> <https://marc.info/?l=xalan-j-users&r=1&b=202204&w=2>.
>
> Greetings,
> Maxime.
>

[-- Attachment #2: Type: text/html, Size: 5024 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-05 13:12     ` Maxime Devos
  2022-04-05 21:09       ` Frank Pursel
  2022-04-09 13:40       ` Maxime Devos
@ 2022-04-14 20:33       ` Maxime Devos
  2022-04-14 20:49         ` Frank Pursel
  2 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-04-14 20:33 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 308 bytes --]

Maxime Devos schreef op di 05-04-2022 om 15:12 [+0200]:
> Now at 62% (src/org/apache/xml/serializer/ToTextSAXHandler.java).

Now at 74% (src/org/apache/xpath/XPathException.java).  No new
potential problems found, except for ObjectStack which is a similar
situation as IntStack.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-14 20:33       ` Maxime Devos
@ 2022-04-14 20:49         ` Frank Pursel
  0 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-04-14 20:49 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 495 bytes --]

Nice progress.  I believe there is an entry regarding the creation of
ObjectStack.java in history.xml.

On Thu, Apr 14, 2022, 13:33 Maxime Devos <maximedevos@telenet.be> wrote:

> Maxime Devos schreef op di 05-04-2022 om 15:12 [+0200]:
> > Now at 62% (src/org/apache/xml/serializer/ToTextSAXHandler.java).
>
> Now at 74% (src/org/apache/xpath/XPathException.java).  No new
> potential problems found, except for ObjectStack which is a similar
> situation as IntStack.
>
> Greetings,
> Maxime.
>

[-- Attachment #2: Type: text/html, Size: 795 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-18 19:16 ` Frank Pursel
  2022-03-18 20:07   ` Maxime Devos
@ 2022-04-16 21:02   ` Maxime Devos
  2022-04-19 17:13     ` Frank Pursel
  1 sibling, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-04-16 21:02 UTC (permalink / raw)
  To: Frank Pursel, 32947

[-- Attachment #1: Type: text/plain, Size: 1038 bytes --]

Hi,

While looking superficially into the source for problems isn't a slow
process (I didn't time it thoroughly but I'd say 20 minutes for 10% or
so, and possibly less if the files are small, or maybe more if the
timing was inaccurate or unrepresentative), I'm not exactly swimming in
free time or something, so don't expect an ‘it's done!’ response
anytime soon.

I see two options here:

  * you could look into the rest yourself (though technically a COI I
    suppose ...)

  * consider the current checks into the source code to be sufficient

Also, about the IntStack thing:

  * as you wrote, upstream has modified it a lot
  * IIRC and IIUC (though I only looked rather superficially) it's
    a rather basic class anyway, probably not many other plausible
    ways to do it.  Also tiny.
  * current OpenJDK's are freely licensed anyway
  * upstream has been asked what, exactly, is the situation
    (though it hasn't been answered yet)
  * so I don't think this is a blocker

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-16 21:02   ` Maxime Devos
@ 2022-04-19 17:13     ` Frank Pursel
  2022-04-19 18:44       ` Maxime Devos
  0 siblings, 1 reply; 53+ messages in thread
From: Frank Pursel @ 2022-04-19 17:13 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 1232 bytes --]

I concur.  WDYT is next?

Thanks,
Frank
(acrow#guix)

On Sat, Apr 16, 2022 at 9:02 PM Maxime Devos <maximedevos@telenet.be> wrote:

> Hi,
>
> While looking superficially into the source for problems isn't a slow
> process (I didn't time it thoroughly but I'd say 20 minutes for 10% or
> so, and possibly less if the files are small, or maybe more if the
> timing was inaccurate or unrepresentative), I'm not exactly swimming in
> free time or something, so don't expect an ‘it's done!’ response
> anytime soon.
>
> I see two options here:
>
>   * you could look into the rest yourself (though technically a COI I
>     suppose ...)
>
>   * consider the current checks into the source code to be sufficient
>
> Also, about the IntStack thing:
>
>   * as you wrote, upstream has modified it a lot
>   * IIRC and IIUC (though I only looked rather superficially) it's
>     a rather basic class anyway, probably not many other plausible
>     ways to do it.  Also tiny.
>   * current OpenJDK's are freely licensed anyway
>   * upstream has been asked what, exactly, is the situation
>     (though it hasn't been answered yet)
>   * so I don't think this is a blocker
>
> Greetings,
> Maxime.
>

[-- Attachment #2: Type: text/html, Size: 1684 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-19 17:13     ` Frank Pursel
@ 2022-04-19 18:44       ` Maxime Devos
  2022-04-19 18:55         ` Frank Pursel
  0 siblings, 1 reply; 53+ messages in thread
From: Maxime Devos @ 2022-04-19 18:44 UTC (permalink / raw)
  To: Frank Pursel; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 386 bytes --]

Frank Pursel schreef op di 19-04-2022 om 17:13 [+0000]:
> I concur.  WDYT is next?

With which of the two options do you concur:

> > I see two options here:
> > 
> >   * you could look into the rest yourself (though technically a COI
> > I
> >     suppose ...)
> > 
> >   * consider the current checks into the source code to be
> > sufficient

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-04-19 18:44       ` Maxime Devos
@ 2022-04-19 18:55         ` Frank Pursel
  0 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-04-19 18:55 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 32947

[-- Attachment #1: Type: text/plain, Size: 591 bytes --]

I think the current checks are sufficient but that I could also do
additional checks if you feel that would be helpful.



On Tue, Apr 19, 2022, 11:44 Maxime Devos <maximedevos@telenet.be> wrote:

> Frank Pursel schreef op di 19-04-2022 om 17:13 [+0000]:
> > I concur.  WDYT is next?
>
> With which of the two options do you concur:
>
> > > I see two options here:
> > >
> > >   * you could look into the rest yourself (though technically a COI
> > > I
> > >     suppose ...)
> > >
> > >   * consider the current checks into the source code to be
> > > sufficient
>
> Greetings,
> Maxime.
>

[-- Attachment #2: Type: text/html, Size: 1016 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 0/3] Add java-xalan: reverse ping
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (8 preceding siblings ...)
  2022-03-23 14:14 ` Frank Pursel
@ 2022-06-24 15:23 ` Maxime Devos
  2022-07-14 23:46 ` [bug#32947] [PATCH 0/3] Add java-xalan Frank Pursel
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 53+ messages in thread
From: Maxime Devos @ 2022-06-24 15:23 UTC (permalink / raw)
  To: 32947

[-- Attachment #1: Type: text/plain, Size: 725 bytes --]

On the license question:

https://marc.info/?l=xalan-j-users&m=164993354220907&w=2

I haven't received a reply that answered the question.  The only reply
was:

Joseph Kesselman <keshlam@alum.mit.edu>:
> It has been a long time since I looked at this, I believe IntStack
> was official JDK code but deprecated. Since we were still depending
> upon it it we copied it into Xalan's source. Web search finds a
> version on GitHub which says its performance was several times
> better than the then-available alternatives.

but this doesn't really answer the question ...

Anyway, IIUC, except for maybe the license thing, things should be
ready:

Latest patch (IIUC):

https://issues.guix.gnu.org/32947#29

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] [PATCH 0/3] Add java-xalan.
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (9 preceding siblings ...)
  2022-06-24 15:23 ` [bug#32947] [PATCH 0/3] Add java-xalan: reverse ping Maxime Devos
@ 2022-07-14 23:46 ` Frank Pursel
  2022-08-20  0:57 ` [bug#32947] Add java-xalan-interp Frank Pursel
  2022-09-20 21:25 ` [bug#32947] Add java-xalan-interp CVE Frank Pursel
  12 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-07-14 23:46 UTC (permalink / raw)
  To: 32947

[-- Attachment #1: Type: text/plain, Size: 38 bytes --]

Yes, that is correct.

Regards,
Frank

[-- Attachment #2: Type: text/html, Size: 93 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan.
  2022-03-23 14:14 ` Frank Pursel
@ 2022-08-19 22:05   ` Vagrant Cascadian
  0 siblings, 0 replies; 53+ messages in thread
From: Vagrant Cascadian @ 2022-08-19 22:05 UTC (permalink / raw)
  To: Frank Pursel, 32947, maximedevos

[-- Attachment #1: Type: text/plain, Size: 5745 bytes --]

On 2022-03-23, Frank Pursel wrote:
> Oops, I, somehow, dropped some prior work.  I think it's now all here.
>
> From f9c96acbf38ecbe3dc0e73077f92c6a8be1eb93d Mon Sep 17 00:00:00 2001
> Message-Id: <f9c96acbf38ecbe3dc0e73077f92c6a8be1eb93d.1648044678.git.frank.pursel@gmail.com>
> From: Frank Pursel <frank.pursel@gmail.com>
> Date: Wed, 23 Feb 2022 13:59:26 -0800
> Subject: [PATCH] gnu: Add java-xalan-interp
>
>      * gnu/packages/xml.scm (java-xalan-interp): New variable
> ---
>  gnu/packages/xml.scm | 66 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 66 insertions(+)
>
> diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
> index 3ce5e771c7..a4d77b51d7 100644
> --- a/gnu/packages/xml.scm
> +++ b/gnu/packages/xml.scm
> @@ -33,6 +33,8 @@
>  ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
>  ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
>  ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
> +;;; Copyright © 2022 Frank Pursel <frank.pursel@gmail.com>
> +;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -2592,3 +2594,67 @@ (define-public python-xmltodict
>      (description "This package provides a Python library to convert XML to
>  @code{OrderedDict}.")
>      (license license:expat)))
> +
> +(define-public java-xalan-interp
> +  (package
> +    (name "java-xalan-interp")
> +    (version "2.7.2")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
> +                           (string-replace-substring
> +                            version "." "_")
> +                           "-src.tar.gz"))
> +       (sha256
> +        (base32 "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
> +       (modules '((guix build utils)))
> +       (snippet '(begin
> +                   (for-each
> +                    delete-file
> +                    (cons* 
> +                     ;; jflex and cup generated files
> +                     ;; for removal
> +                     "src/org/apache/xalan/xsltc/compiler/XPathLexer.java"
> +                     "src/org/apache/xalan/xsltc/compiler/XPathParser.java"
> +                     ;; Removing bundled jars
> +                     (find-files "." "\\.(jar|tar\\.gz)$")))))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:phases (modify-phases
> +                %standard-phases
> +                (add-after 'unpack 'prepare-for-build
> +                  (lambda* (#:key inputs outputs #:allow-other-keys)
> +                    (setenv "ANT_OPTS" "-Dxsltc.java_cup.not_needed=true")
> +                    (substitute* "build.xml"
> +                      ;; Only the interpretive compiler.  xsltc contains a
> +                      ;; circular reference java_cup.
> +                      (("(<target name=\"jar\" depends=\"xalan-interpretive.compile),.*"
> +                        all pre)
> +                       (string-append pre "\""))
> +                      (("xml-apis") "jaxp"))
> +                    (substitute* (list "src/MANIFEST.MF"
> +                                       "src/manifest.xalan-interpretive"
> +                                       "src/MANIFEST.SERIALIZER"
> +                                       "src/manifest.xsltc")
> +                      ;; This stops the indexing phase from searching for
> +                      ;; xml-apis in the wrong location -- java-xerces and
> +                      ;; java-jaxp are propagated, so the eventual Java
> +                      ;; application package will still have access to it.
> +                      (("^Class-Path:(.*)$") ""))))
> +                (replace 'install
> +                  (install-jars "build")))))
> +    (native-inputs (list java-junit java-hamcrest-core))
> +    (propagated-inputs (list java-jaxp java-xerces))
> +    (home-page "https://xalan.apache.org/xalan-j/index.html")
> +    (synopsis "Java XSLT processor")
> +    (description "XSLT processor in java implementing XSLT Version 1.0, XPath
> +Version 1.0, and JAXP 1.3.  It builds on SAX2 and DOM level 3.  This version
> +is the fully functional interpreter, xslt, not the xsltc version which may be
> +faster.")
> +    (license
> +     (list
> +      license:asl2.0 ; almost everything
> +      ;; samples/AppletXMLtoHTML/rabbitwhorn.jpg, according to
> +      ;; <https://commons.wikimedia.org/wiki/File:Alice_par_John_Tenniel_37.png>
> +      license:public-domain))))
> -- 
> 2.34.0

I was able to apply this patch on current master
ec6122250de7c83a7e77054584a34767b11337db ... and successfully build
java-xalan-interp!

But this appears to add java-xalan-interp, but the subject is "Add
java-xalan".

I'm not confident in reviewing the whole patch series, and not terribly
savvy with guile or java ...

The patches started in 2018, are some of the earlier patches applied?
Are there other patches that still need applying? Or can they be
dropped?

Do you have a summary of the discussion around licensing and other
issues? Makes me a bit nervous to apply patches as the current status is
not totally clear to me.

If these aren't the first generation patches in the series, maybe
re-send the patches that still need applying as a [PATCH v2] (or v3?
v4?) in the subject of each patch?


With a summary clarifying the licensing and which exact patches still
need applying, that would make it a lot easier to review!


Thanks for contributing to guix, and hanging onto patience with the
process!


live well,
  vagrant

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan-interp
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (10 preceding siblings ...)
  2022-07-14 23:46 ` [bug#32947] [PATCH 0/3] Add java-xalan Frank Pursel
@ 2022-08-20  0:57 ` Frank Pursel
  2022-09-20 21:25 ` [bug#32947] Add java-xalan-interp CVE Frank Pursel
  12 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-08-20  0:57 UTC (permalink / raw)
  To: 32947

>  I was able to apply this patch on current master
>  ec6122250de7c83a7e77054584a34767b11337db ... and successfully build
>  java-xalan-interp!
>  
>  But this appears to add java-xalan-interp, but the subject is "Add
>  java-xalan".

Back in 2018 people tried to add java-xalan but it never happened
because the dependencies were never factored out and the author of the
original effort apparently lost interest.

I submitted an original patch to build an alternate, interpreted,
version of xalan that avoided use of the unbootstrappable dependencies
that were the earlier problem.  Maxime prompted significant improvements
to this patch to obtain the final version which you built but I thought
it should have a name to distinguish it from the most common version
which we did not build.  The version this patch builds is an
'interpreted' version so I labelled it java-xalan-interp.  Presumably,
in a future where java-cup could be bootstrapped (currently it cannot be
bootstrapped and so is excluded from guix and unused in this build of
java-xalan-interp) we might eventually be able to provide java-xalan and
comparisons might be made with java-xalan-interp.

>  I'm not confident in reviewing the whole patch series, and not terribly
>  savvy with guile or java ...
>  
>  The patches started in 2018, are some of the earlier patches applied?
>  Are there other patches that still need applying? Or can they be
>  dropped?

They can be dropped because they were in the depricated style as well as
depended on binary blobs from other sources that are not in guix and
have not yet proven to be bootstrappable in guix.

>  
>  Do you have a summary of the discussion around licensing and other
>  issues? Makes me a bit nervous to apply patches as the current status is
>  not totally clear to me.
>

Summarizing -- the details are all above -- Maxime Devos identified some
code from other projects included in the xalan source bundle which was
of a suspicious nature.  The patch here deletes this code and only
creates an older version of xalan that is interpreted rather than
compiled with the unbuildable compiler dependency.  Maxime conducted a
nearly line by line scrutiny of all the code and found two reference to
JDK1.0 sources that he asked about upstream.  Apache responded that the
identified code was depricated by the JDK and that they had continued to
maintain it.  He also found a drawing that was part of the testing code
for which we added correct acknowledgement in the current package.  I
believe all these curiosities have been appropriately considered.  No
further action is either needed or anticipated.  

>  If these aren't the first generation patches in the series, maybe
>  re-send the patches that still need applying as a [PATCH v2] (or v3?
>  v4?) in the subject of each patch?

The patch you built is the only one needed to build the entire
java-xalan-interp library.  The earlier versions are no longer relevant.

>  With a summary clarifying the licensing and which exact patches still
>  need applying, that would make it a lot easier to review!
>
>  
>  Thanks for contributing to guix, and hanging onto patience with the
>  process!
>  
>  
>  live well,
>    vagrant

Hoping that guix will soon be able to add this complete xalan
implementation to guix in the near future.

Regards,
Frank Pursel




^ permalink raw reply	[flat|nested] 53+ messages in thread

* [bug#32947] Add java-xalan-interp CVE
  2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
                   ` (11 preceding siblings ...)
  2022-08-20  0:57 ` [bug#32947] Add java-xalan-interp Frank Pursel
@ 2022-09-20 21:25 ` Frank Pursel
  12 siblings, 0 replies; 53+ messages in thread
From: Frank Pursel @ 2022-09-20 21:25 UTC (permalink / raw)
  To: 32947

CVE-2022-34169 has recently been posted against the xalan XSLT library.

Looking for an appropriate patch but maybe it is a dead end and instead
effort should be focused on alternative that might allow batik and
others to function.  Suggestions are, of course, welcome.

Regards,
Frank




^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2022-09-21  0:36 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-05 15:18 [bug#32947] [PATCH 0/3] Add java-xalan Danny Milosavljevic
2018-10-05 15:20 ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Danny Milosavljevic
2018-10-05 15:20   ` [bug#32947] [PATCH 2/3] gnu: Add java-jakarta-regexp Danny Milosavljevic
2018-10-05 15:20   ` [bug#32947] [PATCH 3/3] gnu: Add java-xalan Danny Milosavljevic
2018-10-05 15:46     ` Julien Lepiller
2018-10-05 15:28   ` [bug#32947] [PATCH 1/3] gnu: Add java-cup Julien Lepiller
2018-10-05 16:00     ` Danny Milosavljevic
2018-10-05 16:13       ` Julien Lepiller
2018-10-05 15:52   ` Julien Lepiller
2018-12-19 14:05 ` [bug#32947] Add java-xalan Julien Lepiller
2022-03-17 21:08 ` Frank Pursel
2022-03-17 21:50   ` Maxime Devos
2022-03-17 21:53   ` Maxime Devos
2022-03-17 21:57   ` Maxime Devos
2022-03-18 17:40   ` Maxime Devos
2022-03-18 18:15     ` Frank Pursel
2022-03-18 18:22       ` Frank Pursel
2022-03-18 19:19         ` Maxime Devos
2022-03-18 17:29 ` Frank Pursel
2022-03-18 17:59   ` Maxime Devos
2022-03-18 19:16 ` Frank Pursel
2022-03-18 20:07   ` Maxime Devos
2022-03-18 20:42     ` Frank Pursel
2022-03-19 15:58     ` Maxime Devos
2022-03-22 17:45     ` Maxime Devos
2022-03-22 18:18       ` Julien Lepiller
2022-03-30 17:43     ` Maxime Devos
2022-03-30 18:41       ` Maxime Devos
2022-03-30 20:23         ` Frank Pursel
2022-04-03  8:32     ` Maxime Devos
2022-04-05 13:12     ` Maxime Devos
2022-04-05 21:09       ` Frank Pursel
2022-04-09 13:40       ` Maxime Devos
2022-04-11 16:36         ` Frank Pursel
2022-04-12  9:32           ` Maxime Devos
2022-04-13 23:43             ` Frank Pursel
2022-04-14  8:30               ` Maxime Devos
2022-04-14 16:07                 ` Frank Pursel
2022-04-14 20:33       ` Maxime Devos
2022-04-14 20:49         ` Frank Pursel
2022-04-16 21:02   ` Maxime Devos
2022-04-19 17:13     ` Frank Pursel
2022-04-19 18:44       ` Maxime Devos
2022-04-19 18:55         ` Frank Pursel
2022-03-19 15:41 ` Frank Pursel
2022-03-19 16:38 ` Frank Pursel
2022-03-23  1:32 ` Frank Pursel
2022-03-23 14:14 ` Frank Pursel
2022-08-19 22:05   ` Vagrant Cascadian
2022-06-24 15:23 ` [bug#32947] [PATCH 0/3] Add java-xalan: reverse ping Maxime Devos
2022-07-14 23:46 ` [bug#32947] [PATCH 0/3] Add java-xalan Frank Pursel
2022-08-20  0:57 ` [bug#32947] Add java-xalan-interp Frank Pursel
2022-09-20 21:25 ` [bug#32947] Add java-xalan-interp CVE Frank Pursel

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).