Subject: [PATCH] gnu: Add fop.
From: Roel Janssen <[email-masked]>
To: [email-masked]
Date: Thu, 02 Mar 2017 00:58:39 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Dear Guix,

This package is a dependency for Darktable.  Therefore, I would like to
add it.

>From 99604dfc19cd9b68863fcc948ecbe4a853bc56f0 Mon Sep 17 00:00:00 2001
From: Roel Janssen <[email-masked]>
Date: Thu, 2 Mar 2017 00:43:00 +0100
Subject: [PATCH] gnu: Add fop.

* gnu/packages/xml.scm (fop): New variable.
---
 gnu/packages/xml.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index b91471690..f7f861fbe 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2016 ng0 <[email-masked]>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2016 Marius Bakke <[email-masked]>
+;;; Copyright © 2017 Roel Janssen <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
@@ -71,6 +73,46 @@ stream-oriented parser in which an application registers handlers for
 things the parser might find in the XML document (like start tags).")
     (license license:expat)))
 
+(define-public fop
+  (package
+    (name "fop")
+    (version "2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://apache/xmlgraphics/fop/source/fop-"
+                    version "-src.tar.gz"))
+              (sha256
+               (base32
+                "165rx13q47l6qc29ppr7sg1z26vw830s3rkklj5ap7wgvy0ivbz5"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (system* (string-append (assoc-ref inputs "ant") "/bin/ant"))))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (mkdir-p bin)
+               (install-file "build/fop.jar" bin)
+               (install-file "build/fop-hyph.jar" bin)
+               (install-file "build/fop-sandbox.jar" bin)
+               (install-file "build/fop-transcoder-allinone.jar" bin)
+               (install-file "build/fop-transcoder.jar" bin)
+               (install-file "fop" bin)))))))
+    (home-page "https://xmlgraphics.apache.org/fop/")
+    (synopsis "Formatting objects processor")
+    (description "Apache FOP is a print formatter driven by XSL formatting
+objects (XSL-FO) and an output independent formatter.  It is a Java application
+that reads a formatting object (FO) tree and renders the resulting pages to a
+specified output.  Output formats currently supported include PDF, PS, PCL,
+AFP, XML (area tree representation), Print, AWT and PNG, and to a lesser
+extent, RTF and TXT.  The primary output target is PDF.")
+    (license license:asl2.0)))
+
 (define-public libxml2
   (package
     (name "libxml2")
-- 
2.11.0