build-system/meson: Strip RUNPATH and remove PatchELF traces.
[jackhill/guix/guix.git] / gnu / packages / documentation.scm
CommitLineData
436d4d1f 1;;; GNU Guix --- Functional package management for GNU
189be331 2;;; Copyright © 2014, 2018 Ludovic Courtès <ludo@gnu.org>
7c853c02 3;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr>
b4e655e5 4;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
fa8af53e 5;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
603308ee 6;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
3c8ba11a 7;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
738d0cd6 8;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
ccfe4aa1 9;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
436d4d1f
AE
10;;;
11;;; This file is part of GNU Guix.
12;;;
13;;; GNU Guix is free software; you can redistribute it and/or modify it
14;;; under the terms of the GNU General Public License as published by
15;;; the Free Software Foundation; either version 3 of the License, or (at
16;;; your option) any later version.
17;;;
18;;; GNU Guix is distributed in the hope that it will be useful, but
19;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;;; GNU General Public License for more details.
22;;;
23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
0573a923
EB
26(define-module (gnu packages documentation)
27 #:use-module (guix licenses)
436d4d1f
AE
28 #:use-module (guix packages)
29 #:use-module (guix download)
0573a923 30 #:use-module (guix build-system gnu)
7c853c02 31 #:use-module (guix build-system cmake)
436d4d1f 32 #:use-module (gnu packages)
ccfe4aa1 33 #:use-module (gnu packages autotools)
603308ee 34 #:use-module (gnu packages bash)
0573a923 35 #:use-module (gnu packages python)
436d4d1f 36 #:use-module (gnu packages bison)
fa8af53e 37 #:use-module (gnu packages docbook)
436d4d1f 38 #:use-module (gnu packages flex)
9e57c1b5 39 #:use-module (gnu packages graphviz)
b4e655e5 40 #:use-module (gnu packages gettext)
fa8af53e 41 #:use-module (gnu packages glib)
436d4d1f 42 #:use-module (gnu packages perl)
148585c2 43 #:use-module (gnu packages xml))
0573a923
EB
44
45(define-public asciidoc
46 (package
47 (name "asciidoc")
ccfe4aa1 48 (version "8.6.10")
0573a923
EB
49 (source (origin
50 (method url-fetch)
ccfe4aa1
TGR
51 (uri (string-append "https://github.com/asciidoc/asciidoc/"
52 "archive/" version ".tar.gz"))
53 (file-name (string-append name "-" version ".tar.gz"))
0573a923
EB
54 (sha256
55 (base32
ccfe4aa1 56 "10xrl1iwyvs8aqm0vzkvs3dnsn93wyk942kk4ppyl6w9imbzhlly"))))
0573a923 57 (build-system gnu-build-system)
dd10ba63
58 (arguments
59 `(#:tests? #f ; no 'check' target
60 #:phases
61 (modify-phases %standard-phases
8a442e5d
MW
62 (replace 'bootstrap
63 (lambda _
64 (invoke "autoconf")))
9099a457
KK
65 ;; Some XML-related binaries are required for asciidoc's proper usage.
66 ;; Without these, asciidoc fails when parsing XML documents, either
67 ;; reporting a missing "xmllint" binary or, when passed the
68 ;; "--no-xmllint" option, a missing "xsltproc" binary.
69 ;; The following phase enables asciidoc to find some of them.
70 (add-before 'configure 'set-xml-binary-paths
71 (lambda* (#:key inputs #:allow-other-keys)
72 (let* ((libxml2 (assoc-ref inputs "libxml2"))
73 (xmllint (string-append libxml2 "/bin/xmllint"))
74 (libxslt (assoc-ref inputs "libxslt"))
75 (xsltproc (string-append libxslt "/bin/xsltproc")))
76 (substitute* "a2x.py"
77 (("XMLLINT = 'xmllint'")
78 (string-append "XMLLINT = '" xmllint "'"))
79 (("XSLTPROC = 'xsltproc'")
80 (string-append "XSLTPROC = '" xsltproc "'")))
81 #t)))
dd10ba63
82 ;; Make asciidoc use the local docbook-xsl package instead of fetching
83 ;; it from the internet at run-time.
84 (add-before 'install 'make-local-docbook-xsl
85 (lambda* (#:key inputs #:allow-other-keys)
86 (substitute* (find-files "docbook-xsl" ".*\\.xsl$")
87 (("xsl:import href=\"http://docbook.sourceforge.net/\
88release/xsl/current")
89 (string-append
90 "xsl:import href=\""
91 (string-append (assoc-ref inputs "docbook-xsl")
92 "/xml/xsl/docbook-xsl-"
93 ,(package-version docbook-xsl)))))
3078821d
KK
94 #t))
95 ;; Do the same for docbook-xml.
96 (add-before 'install 'make-local-docbook-xml
97 (lambda* (#:key inputs #:allow-other-keys)
98 (substitute* "docbook45.conf"
99 (("http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd")
100 (string-append (assoc-ref inputs "docbook-xml")
101 "/xml/dtd/docbook/docbookx.dtd")))
dd10ba63 102 #t)))))
ccfe4aa1
TGR
103 (native-inputs
104 `(("autoconf" ,autoconf)))
dd10ba63 105 (inputs `(("python" ,python-2)
3078821d 106 ("docbook-xml" ,docbook-xml)
9099a457
KK
107 ("docbook-xsl" ,docbook-xsl)
108 ("libxml2" ,libxml2)
109 ("libxslt" ,libxslt)))
ccfe4aa1 110 (home-page "http://asciidoc.org/")
0573a923
EB
111 (synopsis "Text-based document generation system")
112 (description
113 "AsciiDoc is a text document format for writing notes, documentation,
114articles, books, ebooks, slideshows, web pages, man pages and blogs.
115AsciiDoc files can be translated to many formats including HTML, PDF,
116EPUB, man page.
117
118AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
119the backend output markups (which can be almost any type of SGML/XML
120markup) can be customized and extended by the user.")
121 (license gpl2+)))
436d4d1f
AE
122
123(define-public doxygen
124 (package
125 (name "doxygen")
dbe1bd5d 126 (version "1.8.14")
436d4d1f
AE
127 (source (origin
128 (method url-fetch)
129 (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
130 name "-" version ".src.tar.gz"))
131 (sha256
132 (base32
dbe1bd5d 133 "0kcxymbam9jwiyjwyvwdjj0h74lbb6c467szsipzbxjyfl17wxfi"))
fc1adab1 134 (patches (search-patches "doxygen-test.patch"))))
7c853c02 135 (build-system cmake-build-system)
436d4d1f
AE
136 (native-inputs
137 `(("bison" ,bison)
738d0cd6 138 ("flex" ,flex-2.6.1) ; sefaults with 2.6.4
436d4d1f 139 ("libxml2" ,libxml2) ; provides xmllint for the tests
436d4d1f 140 ("python" ,python-2))) ; for creating the documentation
603308ee 141 (inputs
849a1399
LC
142 `(("bash" ,bash-minimal)
143 ,@(if (string-prefix? "armhf-" (%current-system))
144 `(("gcc-ice-patch" ,@(search-patches "doxygen-gcc-ice.patch")))
145 '())))
436d4d1f 146 (arguments
603308ee
TD
147 `(#:test-target "tests"
148 #:phases (modify-phases %standard-phases
849a1399
LC
149 ;; Work around an ICE that shows up on native compiles for
150 ;; armhf-linux.
151 ,@(if (string-prefix? "armhf-" (%current-system))
152 `((add-after 'unpack 'apply-gcc-patch
153 (lambda* (#:key inputs #:allow-other-keys)
154 (let ((patch (assoc-ref inputs "gcc-ice-patch")))
155 (invoke "patch" "-p1" "--force"
156 "--input" patch)))))
157 '())
158
603308ee
TD
159 (add-before 'configure 'patch-sh
160 (lambda* (#:key inputs #:allow-other-keys)
161 (substitute* "src/portable.cpp"
162 (("/bin/sh")
163 (string-append
164 (assoc-ref inputs "bash") "/bin/sh")))
165 #t)))))
436d4d1f 166 (home-page "http://www.stack.nl/~dimitri/doxygen/")
35b9e423 167 (synopsis "Generate documentation from annotated sources")
436d4d1f
AE
168 (description "Doxygen is the de facto standard tool for generating
169documentation from annotated C++ sources, but it also supports other popular
170programming languages such as C, Objective-C, C#, PHP, Java, Python,
171IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
172and to some extent D.")
173 (license gpl3+)))
b4e655e5
EB
174
175(define-public doc++
176 (package
177 (name "doc++")
178 (version "3.4.10")
179 (source (origin
180 (method url-fetch)
181 (uri (string-append "https://sourceforge.net/projects/docpp/"
182 "files/doc++-" version ".tar.gz"))
183 (sha256
184 (base32
185 "0i37zlxl8g352s4hzpdx0657k5x3czh3xcsfr27irc708gb277pn"))
186 (patches (search-patches "doc++-include-directives.patch"
187 "doc++-segfault-fix.patch"))))
188 (build-system gnu-build-system)
189 (native-inputs
190 `(("flex" ,flex)
b94a6ca0 191 ("gettext" ,gettext-minimal)))
b4e655e5
EB
192 (home-page "http://docpp.sourceforge.net/")
193 (synopsis "Documentation system for C, C++, IDL, and Java")
194 (description
195 "DOC++ is a documentation system for C, C++, IDL, and Java. It can
196generate both TeX output for high-quality hardcopies or HTML output for online
197brwosing. The documentation is extracted directly from the C/C++/IDL source
198or Java class files.")
199 (license gpl2+)))
fa8af53e
RJ
200
201(define-public scrollkeeper
202 (package
203 (name "scrollkeeper")
204 (version "0.3.14")
205 (source
206 (origin
207 (method url-fetch)
de67e922
LF
208 (uri (string-append "mirror://sourceforge/scrollkeeper/scrollkeeper/"
209 version "/scrollkeeper-" version ".tar.gz"))
fa8af53e
RJ
210 (sha256
211 (base32 "1bfxwxc1ngh11v36z899sz9qam366r050fhkyb5adv65lb1x62sa"))))
212 (build-system gnu-build-system)
213 (arguments
214 `(#:configure-flags
215 (list (string-append "--with-xml-catalog="
216 (assoc-ref %build-inputs "docbook-xml")
217 "/xml/dtd/docbook/catalog.xml"))))
218 (inputs
219 `(("perl" ,perl)
220 ("libxml2" ,libxml2)
221 ("libxslt" ,libxslt)
222 ;; The configure script checks for either version 4.2 or 4.1.2.
223 ("docbook-xml" ,docbook-xml-4.2)))
224 (native-inputs
225 `(("intltool" ,intltool)))
226 (home-page "http://scrollkeeper.sourceforge.net/")
227 (synopsis "Open Documentation Cataloging Project")
228 (description "ScrollKeeper is a cataloging system for documentation on open
229systems. It manages documentation metadata as specified by the Open Source
230Metadata Framework and provides a simple API to allow help browsers to find,
231sort, and search the document catalog. It will also be able to communicate
232with catalog servers on the Net to search for documents which are not on the
233local system.")
234 (license lgpl2.1+)))