@@ -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