gnu: xorriso: Remove 'bzip2' and 'libcdio' from inputs.
[jackhill/guix/guix.git] / gnu / packages / docbook.scm
index 29fa409..189ece0 100644 (file)
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 (define-module (gnu packages docbook)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages inkscape)
+  #:use-module (gnu packages tex)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages xml)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system trivial)
-  #:autoload   (gnu packages zip) (unzip))
+  #:use-module (guix build-system python))
 
 (define-public docbook-xml
   (package
                           (dtd    (string-append out "/xml/dtd/docbook")))
                      (mkdir-p dtd)
                      (with-directory-excursion dtd
-                       (system* unzip source))))
-       #:modules ((guix build utils))))
+                       (system* unzip source))
+                     (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
+                       (("uri=\"") 
+                        (string-append 
+                         "uri=\"file://" dtd "/")))))
+                 #:modules ((guix build utils))))
     (native-inputs `(("unzip" ,unzip)))
     (home-page "http://docbook.org")
     (synopsis "DocBook XML DTDs for document authoring")
@@ -61,20 +72,76 @@ suited to books and papers about computer hardware and software (though it is
 by no means limited to these applications.)  This package provides XML DTDs.")
     (license (x11-style "" "See file headers."))))
 
+(define-public docbook-xml-4.4
+  (package (inherit docbook-xml)
+    (version "4.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.docbook.org/xml/" version
+                                  "/docbook-xml-" version ".zip"))
+              (sha256
+               (base32
+                "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82"))))))
+
+(define-public docbook-xml-4.3
+  (package (inherit docbook-xml)
+    (version "4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.docbook.org/xml/" version
+                                  "/docbook-xml-" version ".zip"))
+              (sha256
+               (base32
+                "0r1l2if1z4wm2v664sqdizm4gak6db1kx9y50jq89m3gxaa8l1i3"))))))
+
+(define-public docbook-xml-4.2
+  (package (inherit docbook-xml)
+    (version "4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.docbook.org/xml/" version
+                                  "/docbook-xml-" version ".zip"))
+              (sha256
+               (base32
+                "18hgwvmywh6a5jh38szjmg3hg2r4v5lb6r3ydc3rd8cp9wg61i5c"))))))
+
+(define-public docbook-xml-4.1.2
+  (package (inherit docbook-xml)
+    (version "4.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.docbook.org/xml/" version
+                                  "/docbkx412.zip"))
+              (sha256
+               (base32
+                "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h"))))
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let ((source (assoc-ref %build-inputs "source"))
+               (unzip  (string-append (assoc-ref %build-inputs "unzip")
+                                      "/bin/unzip"))
+               (dtd    (string-append (assoc-ref %outputs "out")
+                                      "/xml/dtd/docbook")))
+           (mkdir-p dtd)
+           (zero? (system* unzip source "-d" dtd))))))))
+
 (define-public docbook-xsl
   (package
     (name "docbook-xsl")
-    (version "1.72.0")
+    (version "1.79.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/docbook/docbook-xsl-"
-                                  version ".tar.bz2"))
+              (uri (string-append "mirror://sourceforge/docbook/docbook-xsl/"
+                                  version "/docbook-xsl-" version ".tar.bz2"))
               (sha256
                (base32
-                "1cnrfgqz8pc9wnlgqjch2338ad7jki6d4h6b2fhaxn1a2201df5k"))))
+                "0s59lihif2fr7rznckxr2kfyrvkirv76r1zvidp9b5mj28p4apvj"))))
     (build-system trivial-build-system)
     (arguments
-     `(#:builder (begin
+     `(#:builder (let ((name-version (string-append ,name "-" ,version)))
                    (use-modules (guix build utils))
 
                    (let* ((bzip2  (assoc-ref %build-inputs "bzip2"))
@@ -86,10 +153,14 @@ by no means limited to these applications.)  This package provides XML DTDs.")
                      (system* (string-append tar "/bin/tar") "xvf" source)
 
                      (mkdir-p xsl)
-                     (copy-recursively (string-append ,name "-" ,version)
-                                       (string-append xsl "/" ,name
-                                                      "-" ,version))))
-       #:modules ((guix build utils))))
+                     (copy-recursively name-version
+                                       (string-append xsl "/" name-version))
+
+                     (substitute* (string-append xsl "/" name-version "/catalog.xml")
+                       (("rewritePrefix=\"./")
+                        (string-append "rewritePrefix=\"file://" xsl "/"
+                                       name-version "/")))))
+                 #:modules ((guix build utils))))
     (native-inputs `(("bzip2" ,bzip2)
                      ("tar" ,tar)))
     (home-page "http://docbook.org")
@@ -97,3 +168,89 @@ by no means limited to these applications.)  This package provides XML DTDs.")
     (description
      "This package provides XSL style sheets for DocBook.")
     (license (x11-style "" "See 'COPYING' file."))))
+
+(define-public dblatex
+  (package
+    (name "dblatex")
+    (version "0.3.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/dblatex/dblatex/"
+                                  "dblatex-" version "/dblatex-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "0pdizc5rjywwzxa1qqhdmba5zr35pbmdwbysalsid7xw87w3kq06"))
+              (patches (search-patches "dblatex-remove-multirow.patch"))))
+    (build-system python-build-system)
+    ;; TODO: Add xfig/transfig for fig2dev utility
+    (inputs
+     `(("texlive" ,(texlive-union (list texlive-latex-amsfonts
+                                        texlive-latex-anysize
+                                        texlive-latex-appendix
+                                        texlive-latex-changebar
+                                        texlive-latex-colortbl
+                                        texlive-latex-eepic
+                                        texlive-latex-eso-pic
+                                        texlive-latex-fancybox
+                                        texlive-latex-fancyhdr
+                                        texlive-latex-fancyvrb
+                                        texlive-latex-float
+                                        texlive-latex-footmisc
+                                        texlive-latex-hyperref
+                                        texlive-latex-jknapltx
+                                        texlive-latex-listings
+                                        texlive-latex-multirow
+                                        texlive-latex-oberdiek
+                                        texlive-latex-overpic
+                                        texlive-latex-pdfpages
+                                        texlive-latex-subfigure
+                                        texlive-latex-titlesec
+                                        texlive-latex-url
+                                        texlive-latex-wasysym
+
+                                        texlive-fonts-amsfonts
+                                        texlive-fonts-ec
+                                        texlive-fonts-rsfs
+                                        texlive-fonts-stmaryrd
+
+                                        texlive-generic-ifxetex)))
+       ("imagemagick" ,imagemagick)     ;for convert
+       ("inkscape" ,inkscape)           ;for svg conversion
+       ("docbook" ,docbook-xml)
+       ("libxslt" ,libxslt)))           ;for xsltproc
+    (arguments
+     `(#:python ,python-2               ;'print' syntax
+       ;; Using setuptools causes an invalid "package_base" path in
+       ;; out/bin/.dblatex-real due to a missing leading '/'.  This is caused
+       ;; by dblatex's setup.py stripping the root path when creating the
+       ;; script.  (dblatex's setup.py still uses distutils and thus has to
+       ;; create the script by itself. The feature for creating scripts is one
+       ;; of setuptools' features.)
+       ;; See this thread for details:
+       ;; https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00030.html
+       #:use-setuptools? #f
+       #:tests? #f                      ;no 'test' command
+       #:phases
+       (alist-cons-after
+        'wrap 'set-path
+        (lambda* (#:key inputs outputs #:allow-other-keys)
+          (let ((out (assoc-ref outputs "out")))
+            ;; dblatex executes helper programs at runtime.
+            (wrap-program (string-append out "/bin/dblatex")
+                          `("PATH" ":" prefix
+                            ,(map (lambda (input)
+                                    (string-append (assoc-ref inputs input)
+                                                   "/bin"))
+                                  '("libxslt" "texlive"
+                                    "imagemagick" "inkscape"))))))
+        %standard-phases)))
+    (home-page "http://dblatex.sourceforge.net")
+    (synopsis "DocBook to LaTeX Publishing")
+    (description
+     "DocBook to LaTeX Publishing transforms your SGML/XML DocBook documents
+to DVI, PostScript or PDF by translating them in pure LaTeX as a first
+process.  MathML 2.0 markups are supported too.  It started as a clone of
+DB2LaTeX.")
+    ;; lib/contrib/which is under an X11 license
+    (license gpl2+)))