;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
#:use-module (gnu packages base)
#:use-module (gnu packages web-browsers)
#:use-module (gnu packages xml)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module ((guix build utils) #:select (alist-replace))
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix build-system python))
(string-append
"uri=\"file://" dtd "/")))
#t)))))
- (native-inputs `(("unzip" ,unzip)))
+ (native-inputs (list unzip))
(home-page "https://docbook.org")
(synopsis "DocBook XML DTDs for document authoring")
(description
name-version "/")))
#t))
#:modules ((guix build utils))))
- (native-inputs `(("bzip2" ,bzip2)
- ("xz" ,xz) ;needed for repacked tarballs
- ("tar" ,tar)))
+ (native-inputs (list bzip2 xz ;needed for repacked tarballs
+ tar))
(home-page "https://docbook.org")
(synopsis "DocBook XSL style sheets for document authoring")
(description
"This package provides XSL style sheets for DocBook.")
(license (license:x11-style "" "See 'COPYING' file."))))
+;;; TODO: Make this the default docbook-xsl on core-updates. There's an issue
+;;; in docbook-xsl 1.79.2 that causes manpages to be generated incorrectly and
+;;; embed raw nroff syntax such as '.PP' when there is a
+;;; namespace/non-namespace mismatch between the sources and the stylesheets
+;;; used (see: https://github.com/docbook/xslt10-stylesheets/issues/109).
+(define-public docbook-xsl-next
+ (let ((commit "fe16c90013b64e316c3e21ef92d1e8813c10f88c")
+ (revision "0")
+ (base-version (package-version docbook-xsl)))
+ (package
+ (inherit docbook-xsl)
+ (name "docbook-xsl")
+ (version (git-version base-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/docbook/xslt10-stylesheets")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ ;; Multiple .jar files are bundled with the sources.
+ (modules '((guix build utils)))
+ (snippet '(for-each delete-file (find-files "." "\\.jar$")))
+ (sha256
+ (base32
+ "1bl8dwrcy7skrlh80fpsmiw045bv2j0aym231ikcv3hvm2pi98dj"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags #~(list "XSLTENGINE=xsltproc")
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ ;; The build systems insist on a ~/.xmlc, and it is simpler to
+ ;; create a dummy config file than to patch it into
+ ;; submission.
+ (setenv "HOME" "/tmp")
+ (call-with-output-file "/tmp/.xmlc"
+ (lambda (port)
+ (format port "\
+<?xml version='1.0' encoding='utf-8'?> <!-- -*- nxml -*- -->
+<config>
+ <java xml:id=\"bigmem\">
+ <java-option name=\"Xmx512m\"/>
+ </java>
+ <xsltproc xml:id=\"xsltproc\" exec=\"xsltproc\"></xsltproc>
+ <xmllint xml:id=\"xmllint\" exec=\"xmllint\"></xmllint>
+</config>\n")))
+ (substitute* "xsl/Makefile"
+ ;; Do not build webhelp files, as they require a Saxon from
+ ;; 2005, which is not packaged in Guix.
+ ((" webhelp") ""))))
+ (add-before 'install 'generate-catalog.xml
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "-C" "xsl" "catalog.xml" make-flags)))
+ (replace 'install
+ (lambda _
+ (let ((xml (string-append #$output "/xml/xsl/"
+ #$name "-" #$version))
+ (select-rx (make-regexp
+ "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)")))
+ ;; Install catalog.
+ (chdir "xsl")
+ (install-file "catalog.xml" xml)
+ (install-file "VERSION.xsl" xml)
+ (substitute* (string-append xml "/catalog.xml")
+ ;; Re-add the no longer present compatibility entries.
+ ((".*</catalog>.*" anchor)
+ (string-append "\
+ <!-- Also support old URI of v1.79.1 or earlier -->
+ <rewriteURI uriStartString=\"http://docbook.sourceforge.net\
+/release/xsl/current/\" rewritePrefix=\"./\"/>
+ <rewriteSystem systemIdStartString=\"http://docbook.sourceforge.net\
+/release/xsl/current/\" rewritePrefix=\"./\"/>\n" anchor))
+ (("/snapshot/")
+ (string-append "/" #$base-version "/"))
+ (("rewritePrefix=\"./")
+ (string-append "rewritePrefix=\"file://" xml "/")))
+ ;; Install style sheets.
+ (for-each (lambda (dir)
+ (for-each (lambda (f)
+ (install-file
+ f (string-append xml "/" (dirname f))))
+ (find-files dir select-rx)))
+ '("assembly" "common" "eclipse" "epub" "epub3" "fo"
+ "highlighting" "html" "htmlhelp" "javahelp" "lib"
+ "manpages" "params" "profiling" "roundtrip"
+ "template" "website"
+ "xhtml" "xhtml-1_1" "xhtml5"))))))))
+ (native-inputs (list libxml2
+ libxslt
+ perl
+ perl-xml-xpath)))))
+
+(define-public docbook-xsl-1.79.1
+ (package
+ (name "docbook-xsl")
+ (version "1.79.1")
+ (source (origin
+ (method url-fetch)
+ ;; At the time, the non namespaced version was still the
+ ;; default; our latest docbook-xsl is namespaced, so for
+ ;; consistency preserves this property for older versions too.
+ (uri (string-append "mirror://sourceforge/docbook/"
+ name "-ns/" version "/"
+ name "-ns-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"))))
+ (build-system copy-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: The copy-build-system doesn't seem to allow installing to a
+ ;; different output.
+ (replace 'install
+ (lambda _
+ (let ((xml (string-append #$output "/xml/xsl/" #$name "-" #$version))
+ (doc (string-append #$output:doc
+ "/share/doc/" #$name "-" #$version))
+ (select-rx (make-regexp
+ "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)")))
+ ;; Install catalog.
+ (install-file "catalog.xml" xml)
+ (install-file "VERSION.xsl" xml)
+ (substitute* (string-append xml "/catalog.xml")
+ (("rewritePrefix=\"./")
+ (string-append "rewritePrefix=\"file://" xml "/")))
+ ;; Install style sheets.
+ (for-each (lambda (dir)
+ (for-each (lambda (f)
+ (install-file
+ f (string-append xml "/" (dirname f))))
+ (find-files dir select-rx)))
+ '("assembly" "common" "eclipse" "epub" "epub3" "fo"
+ "highlighting" "html" "htmlhelp" "javahelp" "lib"
+ "manpages" "params" "profiling" "roundtrip"
+ "template" "website"
+ "xhtml" "xhtml-1_1" "xhtml5"))
+ ;; Install documentation.
+ (install-file "NEWS" doc)
+ (install-file "RELEASE-NOTES.html" doc)
+ (copy-recursively "slides" doc)
+ (copy-recursively "webhelp" doc)))))))
+ (home-page "https://docbook.org")
+ (synopsis "DocBook XSL namespaced style sheets for document authoring")
+ (description "This package provides the @emph{namespaced} XSL style sheets
+for DocBook.")
+ (license (license:x11-style "" "See 'COPYING' file."))))
+
(define-public docbook-dsssl
(package
(name "docbook-dsssl")
;; The doc output contains 1.4 MiB of HTML documentation.
(symlink docbook-dsssl-doc doc)))))
(inputs
- `(("docbook-dsssl-doc" ,docbook-dsssl-doc)))
+ (list docbook-dsssl-doc))
(native-inputs
- `(("bzip2" ,bzip2)
- ("tar" ,tar)))
+ (list bzip2 tar))
(home-page "https://docbook.org/")
(synopsis "DSSSL style sheets for DocBook")
(description "This package provides DSSSL style sheets for DocBook.")
(description "Documentation for the DocBook DSSSL style sheets.")
(license (license:non-copyleft "file://doc/LEGALNOTICE.htm"))))
-(define-public docbook-sgml
+(define-public docbook-sgml-4.2
(package
(name "docbook-sgml")
- (version "4.1")
+ (version "4.2")
(source (origin
(method url-fetch)
- (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
- version "/docbk41.zip"))
+ (uri (string-append
+ "https://www.oasis-open.org/docbook/sgml/4.2/docbook-"
+ version ".zip"))
(sha256
(base32
- "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany"))))
+ "1hrm4qmmzi285bkxkc74lxvjvw2gbl7ycbaxhv31h9rl9g4x5sv7"))))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
;; Reference the ISO 8879 character entities.
;; e.g. "iso-lat1.gml" --> "<iso-entities-dir>/ISOlat1"
(substitute* "docbook.cat"
- (("(.*ISO 8879.*)\"iso-(.*)\\.gml\"" _ head name)
- (string-append head "\"" iso-entities-dir "/ISO" name "\"")))))))
+ (("\"iso-(.*)\\.gml\"" _ name)
+ (string-append "\"" iso-entities-dir "/ISO" name "\"")))))))
(native-inputs
- `(("unzip" ,unzip)))
+ (list unzip))
(inputs
- `(("iso-8879-entities" ,iso-8879-entities)))
+ (list iso-8879-entities))
(home-page "https://docbook.org")
(synopsis "DocBook SGML style sheets for document authoring")
(description "This package provides SGML style sheets for DocBook.")
(license (license:x11-style "" "See file headers."))))
+(define-public docbook-sgml-4.1
+ (package
+ (inherit docbook-sgml-4.2)
+ (version "4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
+ version "/docbk41.zip"))
+ (sha256
+ (base32
+ "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany"))))))
+
+(define-public docbook-sgml docbook-sgml-4.1)
+
(define-public docbook-sgml-3.1
(package
(inherit docbook-sgml)
;; TODO: Add xfig/transfig for fig2dev utility
(inputs
`(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
- texlive-latex-anysize
- texlive-latex-appendix
- texlive-latex-bookmark
- texlive-latex-changebar
- texlive-latex-colortbl
- texlive-latex-fancybox
- texlive-latex-fancyhdr
- texlive-latex-fancyvrb
- texlive-latex-float
- texlive-latex-footmisc
- texlive-hyperref
- texlive-latex-jknapltx
- texlive-latex-listings
- texlive-latex-multirow
- texlive-latex-overpic
- texlive-latex-pdfpages
- texlive-latex-refcount
- texlive-latex-subfigure
- texlive-latex-titlesec
- texlive-wasysym
+ texlive-latex-anysize
+ texlive-latex-appendix
+ texlive-latex-bookmark
+ texlive-latex-changebar
+ texlive-latex-colortbl
+ texlive-latex-fancybox
+ texlive-latex-fancyhdr
+ texlive-latex-fancyvrb
+ texlive-latex-float
+ texlive-latex-footmisc
+ texlive-hyperref
+ texlive-latex-jknapltx
+
+ ;; TODO: Use non-deprecated name on
+ ;; next rebuild cycle.
+ texlive-latex-listings
+
+ texlive-latex-multirow
+ texlive-latex-overpic
+ texlive-latex-pdfpages
+ texlive-latex-refcount
+ texlive-latex-subfigure
+ texlive-latex-titlesec
+ texlive-wasysym
- texlive-fonts-rsfs
- texlive-stmaryrd
+ texlive-fonts-rsfs
+ texlive-stmaryrd
- texlive-generic-iftex)))
+ texlive-generic-iftex)))
("imagemagick" ,imagemagick) ;for convert
- ("inkscape" ,inkscape) ;for svg conversion
+ ("inkscape" ,inkscape/stable) ;for svg conversion
("docbook" ,docbook-xml)
("libxslt" ,libxslt))) ;for xsltproc
(arguments
(string-append (assoc-ref inputs input)
"/bin"))
'("libxslt" "texlive"
- "imagemagick" "inkscape"))))
- #t))))))
+ "imagemagick" "inkscape"))))))))))
(home-page "http://dblatex.sourceforge.net")
(synopsis "DocBook to LaTeX Publishing")
(description
;; Propagated for convenience. All these tools are used at run time to
;; provide the complete functionality of the docbook-utils commands.
(propagated-inputs
- `(("texlive-jadetex" ,texlive-jadetex)
- ("docbook-sgml" ,docbook-sgml-3.1)
- ("docbook-dsssl" ,docbook-dsssl)
- ("openjade" ,openjade)
- ("opensp" ,opensp)
- ("lynx" ,lynx)
- ("perl-sgmls" ,perl-sgmls)))
+ (list texlive-jadetex
+ docbook-sgml-3.1
+ docbook-dsssl
+ openjade
+ opensp
+ lynx
+ perl-sgmls))
(home-page "https://packages.debian.org/sid/docbook-utils")
(synopsis "DocBook converter to other formats")
(description "The docbook-utils package is a collection of utilities