Roel Janssen <roel@gnu.org> writes:
Toggle quote (52 lines)
> 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 <roel@gnu.org>> 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 <ng0@we.make.ritual.n0.is>> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>> +;;; Copyright © 2017 Roel Janssen <roel@gnu.org>> ;;;> ;;; 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"))))
Ahh...java. Can you try removing some of the 21 bundled JARs with a'snippet' here? We do have a couple of them in Guix already. Even betterif you can package some more.
Toggle quote (8 lines)
> + (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"))))
I'm not very familiar with ant-build-system, but isn't ant available inPATH here (so you can simply (system* "ant"))? It should probably alsobe wrapped in a (zero? (system* ..)) so that the return value is checked.
Toggle quote (12 lines)
> + (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)))))))
"install-file" (or actually "copy-file" from reading (guix build utils)has an unspecified return value, so this phase should end with anexplicit #t.
Toggle quote (10 lines)
> + (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)))
I did not do a license audit of this package, but please double checkthat all bundled software also carries this license (or mention theirshere). The rest LGTM.