diff mbox series

[bug#60976,v3,2/4] gnu: Add java-libbatik

Message ID 4dded0fd7cc5556c2468bba775ecfe1a290ff5e2.1677369969.git.frank.pursel@gmail.com
State New
Headers show
Series [bug#60976,v3,1/4] gnu: Add java-jericho-html | expand

Commit Message

Frank Pursel Jan. 26, 2023, 4:53 p.m. UTC
---
 gnu/packages/batik.scm | 82 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 81 insertions(+), 1 deletion(-)

Comments

Julien Lepiller Feb. 26, 2023, 7:59 a.m. UTC | #1
Hi!

Thanks for the patch, some comments below.

Le 26 janvier 2023 17:53:09 GMT+01:00, Frank Pursel <frank.pursel@gmail.com> a écrit :
>---
> gnu/packages/batik.scm | 82 +++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 81 insertions(+), 1 deletion(-)
>
>diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
>index 7f159010a5..662c4f5cd5 100644
>--- a/gnu/packages/batik.scm
>+++ b/gnu/packages/batik.scm
>@@ -1,6 +1,7 @@
> ;;; GNU Guix --- Functional package management for GNU
> ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
>+;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
>@@ -27,8 +28,87 @@ (define-module (gnu packages batik)
>   #:use-module (gnu packages)
>   #:use-module (gnu packages compression)
>   #:use-module (gnu packages java)
>+  #:use-module (gnu packages javascript)
>   #:use-module (gnu packages java-xml)
>-  #:use-module (gnu packages textutils))
>+  #:use-module (gnu packages textutils)
>+  #:use-module (gnu packages xml))
>+
>+(define-public java-libbatik
>+  (package
>+    (name "batik")

So is this batik or libbatik?

>+    (version "1.16+dfsg")
>+    (source
>+     (origin
>+       (method url-fetch)
>+       (uri (string-append
>+	     "https://deb.debian.org/debian/pool/main/b/batik/" 
>+             name "_" 
>+	     version ".orig.tar.xz"))

I'm wondering why you need to fetch a Debian archive instead of upstream sources? Is there no upstream?

>+       (sha256 (base32
>+	        "1xnmnnadp4l74dz55d3ask236lwy0iwg981851d01j2zlrgpw4p9"))
>+       (modules '((guix build utils)))
>+       (snippet
>+        '(begin
>+           ;; Identify and delete bundled jars.
>+           (format #t "~%~a~%" "Removing sourced jars")
>+           (for-each
>+            (lambda (f)
>+              (delete-file f)
>+              (format #t "Deleted: ~a~%" f))
>+            (find-files "." "\\.jar$"))
>+           ))))

These should be on the previous line.

>+    (build-system ant-build-system)
>+    (arguments
>+     `(#:jar-name (string-append ,name ".jar")

Usually, you'd just say #:jar-name "batik.jar"

>+       #:source-dir "sources/src/main/java"
>+       #:test-dir "sources/src/test"
>+       #:test-exclude (list "**/util/*.java")

That sounds like a lot of tests to exclude. Is there a reason?

>+       #:phases
>+       (modify-phases %standard-phases
>+	 (add-after
>+	     'unpack 'src-consolidation
>+	   (lambda _
>+	     (mkdir-p "sources")
>+	     (let ((cwd (getcwd))
>+		   (sub-dirs (list "anim" "awt-util" "bridge"
>+				   "codec" "constants" "css"
>+				   "dom" "ext" "extension"
>+				   "gui-util" "gvt" "i18n"
>+				   "parser" "script" "slideshow"
>+				   "svgbrowser" "svg-dom"
>+				   "svggen" "svgpp"
>+				   "svgrasterizer" "swing" "test"
>+                                   "test-svg" "transcoder" "ttf2svg"
>+				   "util" "xml" "test-swing")) )
>+	       (for-each
>+		(lambda (sdir)
>+		  (copy-recursively
>+		   (string-append
>+		    "batik-" sdir) "sources/") )
>+		sub-dirs) )
>+             ;; Prep testing
>+             (copy-recursively
>+              "test-resources" "sources")
>+	     ;; Remove scripting subdirs for jpython, and jacl. 
>+	     (for-each
>+	      (lambda (rfile)
>+		(delete-file rfile)
>+		(format #t "Deleted: ~s\n" rfile))
>+	      (append
>+	       (find-files
>+		"sources/src/main/java/org/apache/batik/script/jpython" )
>+	       (find-files
>+		"sources/src/main/java/org/apache/batik/script/jacl" ) ))

Maybe use delete-recursively instead?

>+	     #t) ) ) ) )

No need to end a phase with #t anymore.

>+    (native-inputs (list rhino java-xmlgraphics-commons libxslt
>+		         java-jaxen java-junit java-jaxp java-xerces
>+		         java-jdom quickjs))

Please have one input per line, and maybe order alphabetically.

>+    (home-page "https://xmlgraphics.apache.org/batik")
>+    (synopsis "The java based toolkit for Scalable Vector Graphics")

Synopsis shouldn't start with "The", you could simply remove that word and start with "Java-based".

>+    (description "Batik is a Java-based toolkit for applications or 
>+applets that want to use images in the Scalable Vector Graphics (SVG) 
>+format for various purposes, such as display, generation or manipulation.")
>+    (license license:asl2.0) ) )

Great, thanks!

> 
> (define-public java-w3c-smil-3.0
>   (package
diff mbox series

Patch

diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
index 7f159010a5..662c4f5cd5 100644
--- a/gnu/packages/batik.scm
+++ b/gnu/packages/batik.scm
@@ -1,6 +1,7 @@ 
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,8 +28,87 @@  (define-module (gnu packages batik)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages javascript)
   #:use-module (gnu packages java-xml)
-  #:use-module (gnu packages textutils))
+  #:use-module (gnu packages textutils)
+  #:use-module (gnu packages xml))
+
+(define-public java-libbatik
+  (package
+    (name "batik")
+    (version "1.16+dfsg")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+	     "https://deb.debian.org/debian/pool/main/b/batik/" 
+             name "_" 
+	     version ".orig.tar.xz"))
+       (sha256 (base32
+	        "1xnmnnadp4l74dz55d3ask236lwy0iwg981851d01j2zlrgpw4p9"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Identify and delete bundled jars.
+           (format #t "~%~a~%" "Removing sourced jars")
+           (for-each
+            (lambda (f)
+              (delete-file f)
+              (format #t "Deleted: ~a~%" f))
+            (find-files "." "\\.jar$"))
+           ))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name (string-append ,name ".jar")
+       #:source-dir "sources/src/main/java"
+       #:test-dir "sources/src/test"
+       #:test-exclude (list "**/util/*.java")
+       #:phases
+       (modify-phases %standard-phases
+	 (add-after
+	     'unpack 'src-consolidation
+	   (lambda _
+	     (mkdir-p "sources")
+	     (let ((cwd (getcwd))
+		   (sub-dirs (list "anim" "awt-util" "bridge"
+				   "codec" "constants" "css"
+				   "dom" "ext" "extension"
+				   "gui-util" "gvt" "i18n"
+				   "parser" "script" "slideshow"
+				   "svgbrowser" "svg-dom"
+				   "svggen" "svgpp"
+				   "svgrasterizer" "swing" "test"
+                                   "test-svg" "transcoder" "ttf2svg"
+				   "util" "xml" "test-swing")) )
+	       (for-each
+		(lambda (sdir)
+		  (copy-recursively
+		   (string-append
+		    "batik-" sdir) "sources/") )
+		sub-dirs) )
+             ;; Prep testing
+             (copy-recursively
+              "test-resources" "sources")
+	     ;; Remove scripting subdirs for jpython, and jacl. 
+	     (for-each
+	      (lambda (rfile)
+		(delete-file rfile)
+		(format #t "Deleted: ~s\n" rfile))
+	      (append
+	       (find-files
+		"sources/src/main/java/org/apache/batik/script/jpython" )
+	       (find-files
+		"sources/src/main/java/org/apache/batik/script/jacl" ) ))
+	     #t) ) ) ) )
+    (native-inputs (list rhino java-xmlgraphics-commons libxslt
+		         java-jaxen java-junit java-jaxp java-xerces
+		         java-jdom quickjs))
+    (home-page "https://xmlgraphics.apache.org/batik")
+    (synopsis "The java based toolkit for Scalable Vector Graphics")
+    (description "Batik is a Java-based toolkit for applications or 
+applets that want to use images in the Scalable Vector Graphics (SVG) 
+format for various purposes, such as display, generation or manipulation.")
+    (license license:asl2.0) ) )
 
 (define-public java-w3c-smil-3.0
   (package