Subject: [PATCH 01/21] gnu: Add java-batik-i18n.

From: Danny Milosavljevic <[email-masked]>
Date: Fri, 5 Oct 2018 17:50:02 +0200

* gnu/packages/batik.scm (java-batik): New variable.
(java-batik-package): New procedure.
(java-batik-disable-tests): New procedure.
(java-batik-i18n): New variable.
---
 gnu/packages/batik.scm | 85 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100644 gnu/packages/batik.scm

diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
new file mode 100644
index 000000000..2ca15b763
--- /dev/null
+++ b/gnu/packages/batik.scm
@@ -0,0 +1,85 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Danny Milosavljevic <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (wip 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 textutils))
+
+;;; TODO: Use maven.
+;;; TODO: Remove bundled jar files (I guess our ant-build-system ought to
+;;; do that).
+
+(define java-batik
+  (package
+    (name "java-batik")
+    (version "1.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+              "mirror://apache/xmlgraphics/batik/source/batik-src-" version
+              ".tar.gz"))
+        (sha256
+         (base32
+          "05nipxvm940m2dgzmrvflr2r72a5mmqbl25pvqr0xn73a5lygi6z"))
+        (file-name (string-append name "-" version))))
+    (build-system ant-build-system)
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "https://xmlgraphics.apache.org/batik/")
+    (synopsis "SVG toolkit for Java")
+    (description "This package provides an SVG toolkit for Java.")
+    (license license:asl2.0)))
+
+(define (java-batik-package subdir inputs)
+  (package
+    (inherit java-batik)
+    (name (string-append "java-" subdir))
+    (propagated-inputs
+     inputs)
+    (arguments
+     `(#:jar-name (string-append ,subdir ".jar")
+       #:tests? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             ;; FIXME: Be nicer.
+             (delete-file-recursively "batik-util/src/test")
+             (chdir ,subdir)
+             #t)))))))
+
+(define (java-batik-disable-tests base-package)
+  (package
+    (inherit base-package)
+    (arguments
+     (substitute-keyword-arguments (package-arguments base-package)
+      ((#:tests? _)
+       #f)))))
+
+(define-public java-batik-i18n
+  ;; No tests exist.
+  (java-batik-disable-tests (java-batik-package "batik-i18n" '())))