123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658 |
- ;;; GNU Guix --- Functional package management for GNU
- ;;; Copyright © 2014, 2021 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 Mark H Weaver <mhw@netris.org>
- ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
- ;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
- ;;;
- ;;; This file is part of GNU Guix.
- ;;;
- ;;; GNU Guix is free software; you can redistribute it and/or modify it
- ;;; under the terms of the GNU General Public License as published by
- ;;; the Free Software Foundation; either version 3 of the License, or (at
- ;;; your option) any later version.
- ;;;
- ;;; GNU Guix is distributed in the hope that it will be useful, but
- ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
- ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;;; GNU General Public License for more details.
- ;;;
- ;;; You should have received a copy of the GNU General Public License
- ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
- (define-module (gnu packages docbook)
- #:use-module (gnu packages)
- #:use-module (gnu packages bash)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages imagemagick)
- #:use-module (gnu packages inkscape)
- #:use-module (gnu packages tex)
- #:use-module (gnu packages texinfo)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages python)
- #:use-module (gnu packages base)
- #:use-module (gnu packages web-browsers)
- #:use-module (gnu packages xml)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module ((guix build utils) #:select (alist-replace))
- #:use-module (guix build-system gnu)
- #:use-module (guix build-system trivial)
- #:use-module (guix build-system python))
- (define-public docbook-xml-5
- (package
- (name "docbook-xml")
- (version "5.0.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://docbook.org/xml/" version
- "/docbook-" version ".zip"))
- (sha256
- (base32
- "1iz3hq1lqgnshvlz4j9gvh4jy1ml74qf90vqf2ikbq0h4i2xzybs"))))
- (build-system trivial-build-system)
- (arguments
- `(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let* ((unzip
- (string-append (assoc-ref %build-inputs "unzip")
- "/bin/unzip"))
- (source (assoc-ref %build-inputs "source"))
- (out (assoc-ref %outputs "out"))
- (dtd (string-append out "/xml/dtd/docbook")))
- (invoke unzip source)
- (mkdir-p dtd)
- (copy-recursively (string-append "docbook-" ,version) dtd)
- (with-directory-excursion dtd
- (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
- (("uri=\"")
- (string-append
- "uri=\"file://" dtd "/")))
- #t)))))
- (native-inputs `(("unzip" ,unzip)))
- (home-page "https://docbook.org")
- (synopsis "DocBook XML DTDs for document authoring")
- (description
- "DocBook is general purpose XML and SGML document type particularly well
- 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 (license:x11-style "" "See file headers."))))
- (define-public docbook-xml
- (package
- (inherit docbook-xml-5)
- (name "docbook-xml")
- (version "4.5")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://docbook.org/xml/" version
- "/docbook-xml-" version ".zip"))
- (sha256
- (base32
- "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf"))))
- (arguments
- '(#:builder (begin
- (use-modules (guix build utils))
- (let* ((unzip
- (string-append (assoc-ref %build-inputs "unzip")
- "/bin/unzip"))
- (source (assoc-ref %build-inputs "source"))
- (out (assoc-ref %outputs "out"))
- (dtd (string-append out "/xml/dtd/docbook")))
- (mkdir-p dtd)
- (with-directory-excursion dtd
- (invoke unzip source))
- (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
- (("uri=\"")
- (string-append
- "uri=\"file://" dtd "/")))
- #t))
- #:modules ((guix build utils))))))
- (define-public docbook-xml-4.4
- (package (inherit docbook-xml)
- (version "4.4")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://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 "https://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 "https://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 "https://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)
- (invoke unzip source "-d" dtd)))))))
- (define-public docbook-xsl
- (package
- (name "docbook-xsl")
- (version "1.79.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/docbook/xslt10-stylesheets"
- "/releases/download/release%2F" version
- "/docbook-xsl-" version ".tar.bz2"))
- (patches (search-patches "docbook-xsl-support-old-url.patch"
- "docbook-xsl-nonrecursive-string-subst.patch"))
- (sha256
- (base32
- "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (for-each delete-file (find-files "." "\\.jar$"))
- #t))))
- (build-system trivial-build-system)
- (arguments
- `(#:builder (begin
- (use-modules (guix build utils))
- (define name-version
- (string-append ,name "-" ,version))
- (let* ((bzip2 (assoc-ref %build-inputs "bzip2"))
- (xz (assoc-ref %build-inputs "xz"))
- (tar (assoc-ref %build-inputs "tar"))
- (source (assoc-ref %build-inputs "source"))
- (out (assoc-ref %outputs "out"))
- (xsl (string-append out "/xml/xsl")))
- (setenv "PATH" (string-append bzip2 "/bin" ":" xz "/bin"))
- (invoke (string-append tar "/bin/tar") "xvf" source)
- (mkdir-p xsl)
- (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 "/")))
- #t))
- #:modules ((guix build utils))))
- (native-inputs `(("bzip2" ,bzip2)
- ("xz" ,xz) ;needed for repacked tarballs
- ("tar" ,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."))))
- (define-public docbook-dsssl
- (package
- (name "docbook-dsssl")
- (version "1.79")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/docbook/"
- name "/" version "/"
- name "-" version ".tar.bz2"))
- (sha256
- (base32
- "1g72y2yyc2k89kzs0lvrb9n7hjayw1hdskfpplpz97pf1c99wcig"))))
- (build-system trivial-build-system)
- (outputs '("out" "doc"))
- (arguments
- `(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let ((source (assoc-ref %build-inputs "source"))
- (dtd (string-append (assoc-ref %outputs "out")
- "/sgml/dtd/docbook"))
- (docbook-dsssl-doc (assoc-ref %build-inputs "docbook-dsssl-doc"))
- (doc (assoc-ref %outputs "doc"))
- (tar (assoc-ref %build-inputs "tar"))
- (bzip2 (assoc-ref %build-inputs "bzip2")))
- (setenv "PATH" (string-append tar "/bin" ":" bzip2 "/bin"))
- (mkdir-p dtd)
- (invoke "tar" "-xf" source "-C" dtd)
- ;; The doc output contains 1.4 MiB of HTML documentation.
- (symlink docbook-dsssl-doc doc)))))
- (inputs
- `(("docbook-dsssl-doc" ,docbook-dsssl-doc)))
- (native-inputs
- `(("bzip2" ,bzip2)
- ("tar" ,tar)))
- (home-page "https://docbook.org/")
- (synopsis "DSSSL style sheets for DocBook")
- (description "This package provides DSSSL style sheets for DocBook.")
- (license (license:non-copyleft "file://README"))))
- ;;; Private variable, used as the 'doc' output of the docbook-dsssl package.
- (define docbook-dsssl-doc
- (package
- (name "docbook-dsssl-doc")
- (version "1.79")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/docbook/"
- name "/" version "/"
- name "-" version ".tar.bz2"))
- (sha256
- (base32
- "1plp5ngc96pbna4rwglp9glcadnirbm3hlcjb4gjvq1f8biic9lz"))))
- (build-system trivial-build-system)
- (arguments
- `(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let ((source (assoc-ref %build-inputs "source"))
- (docdir (string-append (assoc-ref %outputs "out")
- "/share/doc/" "docbook-dsssl-" ,version))
- (tar (assoc-ref %build-inputs "tar"))
- (bzip2 (assoc-ref %build-inputs "bzip2")))
- (setenv "PATH" (string-append tar "/bin" ":" bzip2 "/bin"))
- (mkdir-p docdir)
- ;; Extract the "doc" subdirectory.
- (invoke "tar" "-xf" source "--strip-components=2"
- "--no-same-owner" "-C" docdir
- (string-append "docbook-dsssl-" ,version "/doc"))))))
- (native-inputs
- `(("bzip2" ,bzip2)
- ("tar" ,tar)))
- (home-page "https://docbook.org/")
- (synopsis "DocBook DSSSL style sheets documentation")
- (description "Documentation for the DocBook DSSSL style sheets.")
- (license (license:non-copyleft "file://doc/LEGALNOTICE.htm"))))
- (define-public docbook-sgml
- (package
- (name "docbook-sgml")
- (version "4.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
- version "/docbk41.zip"))
- (sha256
- (base32
- "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany"))))
- (build-system trivial-build-system)
- (arguments
- '(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let ((source (assoc-ref %build-inputs "source"))
- (iso-entities-dir (string-append
- (assoc-ref %build-inputs "iso-8879-entities")))
- (unzip (string-append (assoc-ref %build-inputs "unzip")
- "/bin/unzip"))
- (dtd (string-append (assoc-ref %outputs "out")
- "/sgml/dtd/docbook")))
- ;; Extract the sources.
- (mkdir-p dtd)
- (chdir dtd)
- (invoke unzip source)
- ;; 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 "\"")))))))
- (native-inputs
- `(("unzip" ,unzip)))
- (inputs
- `(("iso-8879-entities" ,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-3.1
- (package
- (inherit docbook-sgml)
- (version "3.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
- version "/docbk31.zip"))
- (sha256
- (base32
- "0f25ch7bywwhdxb1qa0hl28mgq1blqdap3rxzamm585rf4kis9i0"))))))
- ;;; Private package referenced by docbook-sgml.
- (define iso-8879-entities
- (package
- (name "iso-8879-entities")
- (version "0.0") ;no proper version
- (source (origin
- (method url-fetch)
- (uri "http://www.oasis-open.org/cover/ISOEnts.zip")
- (sha256
- (base32
- "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w"))))
- (build-system trivial-build-system)
- (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"))
- (out (string-append (assoc-ref %outputs "out"))))
- (invoke unzip source "-d" out)))))
- (native-inputs `(("unzip" ,unzip)))
- (home-page "https://www.oasis-open.org/")
- (synopsis "ISO 8879 character entities")
- (description "ISO 8879 character entities that are typically used in
- the in DocBook SGML DTDs.")
- (license (license:x11-style "" "See file headers."))))
- (define-public dblatex
- (package
- (name "dblatex")
- (version "0.3.12")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/dblatex/dblatex/"
- "dblatex-" version "/dblatex3-"
- version ".tar.bz2"))
- (sha256
- (base32
- "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n"))))
- (build-system python-build-system)
- ;; 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-fonts-rsfs
- texlive-stmaryrd
- texlive-generic-iftex)))
- ("imagemagick" ,imagemagick) ;for convert
- ("inkscape" ,inkscape) ;for svg conversion
- ("docbook" ,docbook-xml)
- ("libxslt" ,libxslt))) ;for xsltproc
- (arguments
- `(;; 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
- (modify-phases %standard-phases
- (add-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"))))
- #t))))))
- (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 license:gpl2+)))
- ;; This is a variant of the 'dblatex' package that is not updated often. It
- ;; is intended to be used as a native-input at build-time only, e.g. by
- ;; 'gtk-doc' for generating package documentation. This allows the main
- ;; 'dblatex' and 'imagemagick' packages to be freely updated on the 'master'
- ;; branch without triggering an excessive number of rebuilds.
- (define-public dblatex/stable
- (hidden-package
- (package/inherit dblatex
- (inputs (alist-replace "imagemagick" `(,imagemagick/stable)
- (package-inputs dblatex))))))
- (define-public docbook-utils
- (package
- (name "docbook-utils")
- (version "0.6.14")
- (source (origin
- (method url-fetch)
- ;; The original sources are not accessible anymore.
- (uri (string-append "http://deb.debian.org/debian/pool/main/"
- "d/docbook-utils/docbook-utils_"
- version ".orig.tar.gz"))
- (sha256
- (base32
- "1scj5vgw1xz872pq54a89blcxqqm11p90yzv8a9mqq57x27apyj8"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-build-system
- (lambda _
- (substitute* (find-files "." "\\.in$")
- ;; Do not hard-code SGML_CATALOG_FILES.
- ((".*SGML_CATALOG_FILES=/etc/sgml/catalog.*") "")
- ;; Use OpenSP and OpenJade.
- (("\\bjade\\b")
- "openjade")
- (("\\bnsgmls\\b")
- "onsgmls"))
- #t))
- (add-after 'unpack 'patch-jw.in
- ;; Do not override the SGML_CATALOG_FILES environment
- ;; variable.
- (lambda _
- (substitute* "bin/jw.in"
- ((".*SGML_CATALOG_FILES=`find.*")
- "")
- (("SGML_CATALOG_FILES=`echo.*")
- ":\n")
- (("SGML_CATALOG_FILES=\"\"")
- ":")
- (("\\bwhich\\b")
- "command -v"))
- #t))
- (add-after 'unpack 'patch-txt-backend
- (lambda _
- ;; Locate lynx, links or w3m from the PATH, not from
- ;; /usr/bin.
- (substitute* "backends/txt"
- (("CONVERT=/usr/bin/")
- "CONVERT=")
- (("\\[ -x /usr/bin/([^ ]+) \\]" dummy command)
- (string-append "command -v " command " > /dev/null")))
- #t)))))
- ;; 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)))
- (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
- intended to ease the use of SGML and XML.
- @table @command
- @item jw
- Convert a SGML DocBook file to other formats such as Hyper Text Markup
- Language (HTML), Rich Text Format (RTF), PostScript (PS), man, Portable
- Document Format (PDF), TeX, Texinfo or plain text (txt). It can be used
- more conveniently via the following wrappers:
- @itemx docbook2dvi Convert a SGML DocBook file to the DVI format.
- @itemx docbook2html Convert a SGML DocBook file to an HTML document.
- @itemx docbook2man Convert a SGML DocBook file a man page.
- @itemx docbook2pdf Convert a SGML DocBook file to a PDF document.
- @itemx docbook2ps Convert a SGML DocBook file to a PS document.
- @itemx docbook2rtf Convert a SGML DocBook file to a RTF document.
- @itemx docbook2tex Convert a SGML DocBook file to a TeX document.
- @itemx docbook2texi Convert a SGML DocBook file to a Texinfo document.
- @itemx docbook2txt Convert a SGML DocBook file to a plain text document.
- @item sgmldiff
- Detect the differences in markup between two SGML files.
- @end table")
- (license license:gpl2+)))
- (define-public docbook2x
- (package
- (name "docbook2x")
- (version "0.8.8")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/docbook2x/docbook2x/"
- version "/docbook2X-" version ".tar.gz"))
- (sha256
- (base32
- "0ifwzk99rzjws0ixzimbvs83x6cxqk1xzmg84wa1p7bs6rypaxs0"))))
- (build-system gnu-build-system)
- (inputs
- `(("bash-minimal" ,bash-minimal)
- ("docbook-xml" ,docbook-xml)
- ("perl" ,perl)
- ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
- ("perl-xml-parser" ,perl-xml-parser)
- ("perl-xml-sax" ,perl-xml-sax)
- ("perl-xml-sax-base" ,perl-xml-sax-base)
- ("texinfo" ,texinfo)
- ("xsltproc" ,libxslt)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'configure 'patch-sources
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; Fix failed substitution in config.pl
- (substitute* "perl/config.pl"
- (("\\$\\{prefix\\}")
- (assoc-ref outputs "out")))
- ;; Fix a failing test (maybe it worked with old texinfo?)
- (substitute* "test/complete-manuals/at1.xml"
- (("<bridgehead>")
- "<bridgehead renderas=\"sect2\">"))
- ;; Patch all the tests use DocBook 4.5
- (substitute* (find-files "test" "\\.xml$")
- (("\"-//OASIS//DTD DocBook XML V4\\..+//EN\"")
- "\"-//OASIS//DTD DocBook XML V4.5//EN\"")
- (("\"http://www\\.oasis-open\\.org/docbook/xml/4\\..+/docbookx.dtd\"")
- "\"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\""))
- ;; Set XML catalogs for tests to pass
- (setenv "XML_CATALOG_FILES"
- (string-append (assoc-ref inputs "docbook-xml")
- "/xml/dtd/docbook/catalog.xml"))))
- (add-after 'install 'wrap-programs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (programs
- (map (lambda (p)
- (string-append out "/bin/" p))
- '("db2x_manxml" "db2x_texixml" "db2x_xsltproc"
- "docbook2man" "docbook2texi")))
- (perl5lib
- (map (lambda (i)
- (string-append (assoc-ref inputs i)
- "/lib/perl5/site_perl"))
- '("perl-xml-namespacesupport"
- "perl-xml-parser"
- "perl-xml-sax"
- "perl-xml-sax-base")))
- (xml-catalog-files
- (list (string-append (assoc-ref inputs "docbook-xml")
- "/xml/dtd/docbook/catalog.xml"))))
- (map (lambda (program)
- (wrap-program program
- `("PERL5LIB" ":" prefix
- ,perl5lib)
- `("XML_CATALOG_FILES" " " prefix
- ,xml-catalog-files)))
- programs))))
- (add-after 'install 'create-symlinks
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; Create db2x_* symlinks to satisfy some configure scripts
- ;; which use these names to differentiate from an older
- ;; docbook2man script provided by docbook-utils.
- (map (lambda (prog)
- (symlink prog (string-append out "/bin/db2x_" prog)))
- '("docbook2man" "docbook2texi"))))))))
- (home-page "http://docbook2x.sourceforge.net")
- (synopsis "Convert DocBook to man page and Texinfo format")
- (description
- "docbook2X is a software package that converts DocBook documents into the
- traditional Unix man page format and the GNU Texinfo format. Notable features
- include table support for man pages, internationalization support, and easy
- customization of the output using XSLT.")
- (license license:expat)))
|