Roel Janssen writes: > 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 > 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 > ;;; Copyright © 2016 Tobias Geerinckx-Rice > ;;; Copyright © 2016 Marius Bakke > +;;; Copyright © 2017 Roel Janssen > ;;; > ;;; 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 better if you can package some more. > + (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 in PATH here (so you can simply (system* "ant"))? It should probably also be wrapped in a (zero? (system* ..)) so that the return value is checked. > + (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 an explicit #t. > + (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 check that all bundled software also carries this license (or mention theirs here). The rest LGTM.