diff mbox series

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

Message ID 63d2b61e.170a0220.d16b8.225e@mx.google.com
State New
Headers show
Series [bug#60976,1/3] 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(-)
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