diff mbox series

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

Message ID 9c92ee5173bb46ddfbd0fcb165b409874ae4b23d.1677706130.git.frank.pursel@gmail.com
State New
Headers show
Series [bug#60976,v4,1/3] gnu: Add java-jericho-html | expand

Commit Message

Frank Pursel Jan. 26, 2023, 4:53 p.m. UTC
---
Revised patch for java-libbatik.  I don't believe I had access to the
upstream apache sources when I first posted this but this now points to
the apache upstream rather than debian sources.

 gnu/packages/batik.scm | 100 ++++++++++++++++++++++++++++++++++++++---
 1 file changed, 93 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
index 7f159010a5..22824a6575 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.
 ;;;
@@ -19,16 +20,101 @@ 
 
 (define-module (gnu packages batik)
   #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix utils)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix packages)
-  #:use-module (guix build-system ant)
-  #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages java)
   #:use-module (gnu packages java-xml)
-  #:use-module (gnu packages textutils))
+  #:use-module (gnu packages javascript)
+  #:use-module (gnu packages textutils)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages)
+  #:use-module (guix build-system ant)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix utils))
+
+(define-public java-libbatik
+  (package
+    (name "java-libbatik")
+    (version "1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+	     "https://dlcdn.apache.org/xmlgraphics/batik/source/batik-src-"
+             version
+             ".tar.gz"))
+       (sha256 (base32
+                "18ys0j7i861ydvimbm3a7dyvny48x5b37zfkvznlys7vcb2qz5z1"))
+       (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 "batik.jar"
+       #:source-dir "sources/src/main/java"
+       #:test-dir "sources/src/test"
+       ;; Tests are successful -- exclusions in lieu of
+       ;; deleting duplicated util tests.
+       #: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))
+             ;; Test prep
+             (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"))))))))
+    (native-inputs (list
+		    java-jaxen
+		    java-jdom quickjs
+                    java-jaxp
+                    java-junit
+                    java-xerces
+                    java-xmlgraphics-commons
+                    libxslt
+                    rhino))
+    (home-page "https://xmlgraphics.apache.org/batik")
+    (synopsis "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