Merge remote-tracking branch 'origin/master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / documentation.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr>
4 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
5 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
6 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
7 ;;;
8 ;;; This file is part of GNU Guix.
9 ;;;
10 ;;; GNU Guix is free software; you can redistribute it and/or modify it
11 ;;; under the terms of the GNU General Public License as published by
12 ;;; the Free Software Foundation; either version 3 of the License, or (at
13 ;;; your option) any later version.
14 ;;;
15 ;;; GNU Guix is distributed in the hope that it will be useful, but
16 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ;;; GNU General Public License for more details.
19 ;;;
20 ;;; You should have received a copy of the GNU General Public License
21 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23 (define-module (gnu packages documentation)
24 #:use-module (guix licenses)
25 #:use-module (guix packages)
26 #:use-module (guix download)
27 #:use-module (guix build-system gnu)
28 #:use-module (guix build-system cmake)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages bash)
31 #:use-module (gnu packages python)
32 #:use-module (gnu packages bison)
33 #:use-module (gnu packages docbook)
34 #:use-module (gnu packages flex)
35 #:use-module (gnu packages graphviz)
36 #:use-module (gnu packages gettext)
37 #:use-module (gnu packages glib)
38 #:use-module (gnu packages perl)
39 #:use-module (gnu packages xml)
40 #:autoload (gnu packages zip) (unzip))
41
42 (define-public asciidoc
43 (package
44 (name "asciidoc")
45 (version "8.6.9")
46 (source (origin
47 (method url-fetch)
48 (uri (string-append "mirror://sourceforge/asciidoc/asciidoc/"
49 version "/asciidoc-" version ".tar.gz"))
50 (sha256
51 (base32
52 "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"))))
53 (build-system gnu-build-system)
54 (arguments
55 `(#:tests? #f ; no 'check' target
56 #:phases
57 (modify-phases %standard-phases
58 ;; Make asciidoc use the local docbook-xsl package instead of fetching
59 ;; it from the internet at run-time.
60 (add-before 'install 'make-local-docbook-xsl
61 (lambda* (#:key inputs #:allow-other-keys)
62 (substitute* (find-files "docbook-xsl" ".*\\.xsl$")
63 (("xsl:import href=\"http://docbook.sourceforge.net/\
64 release/xsl/current")
65 (string-append
66 "xsl:import href=\""
67 (string-append (assoc-ref inputs "docbook-xsl")
68 "/xml/xsl/docbook-xsl-"
69 ,(package-version docbook-xsl)))))
70 #t)))))
71 (inputs `(("python" ,python-2)
72 ("docbook-xsl" ,docbook-xsl)))
73 (home-page "http://www.methods.co.nz/asciidoc/")
74 (synopsis "Text-based document generation system")
75 (description
76 "AsciiDoc is a text document format for writing notes, documentation,
77 articles, books, ebooks, slideshows, web pages, man pages and blogs.
78 AsciiDoc files can be translated to many formats including HTML, PDF,
79 EPUB, man page.
80
81 AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
82 the backend output markups (which can be almost any type of SGML/XML
83 markup) can be customized and extended by the user.")
84 (license gpl2+)))
85
86 (define-public doxygen
87 (package
88 (name "doxygen")
89 (version "1.8.13")
90 (source (origin
91 (method url-fetch)
92 (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
93 name "-" version ".src.tar.gz"))
94 (sha256
95 (base32
96 "0srzawqn3apzrg8hwycwrawdylmmjrndij4spw6xr1vspn3phrmg"))
97 (patches (search-patches "doxygen-test.patch"))))
98 (build-system cmake-build-system)
99 (native-inputs
100 `(("bison" ,bison)
101 ("flex" ,flex)
102 ("libxml2" ,libxml2) ; provides xmllint for the tests
103 ("python" ,python-2))) ; for creating the documentation
104 (inputs
105 `(("bash" ,bash-minimal)))
106 (arguments
107 `(#:test-target "tests"
108 #:phases (modify-phases %standard-phases
109 (add-before 'configure 'patch-sh
110 (lambda* (#:key inputs #:allow-other-keys)
111 (substitute* "src/portable.cpp"
112 (("/bin/sh")
113 (string-append
114 (assoc-ref inputs "bash") "/bin/sh")))
115 #t)))))
116 (home-page "http://www.stack.nl/~dimitri/doxygen/")
117 (synopsis "Generate documentation from annotated sources")
118 (description "Doxygen is the de facto standard tool for generating
119 documentation from annotated C++ sources, but it also supports other popular
120 programming languages such as C, Objective-C, C#, PHP, Java, Python,
121 IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
122 and to some extent D.")
123 (license gpl3+)))
124
125 (define-public doc++
126 (package
127 (name "doc++")
128 (version "3.4.10")
129 (source (origin
130 (method url-fetch)
131 (uri (string-append "https://sourceforge.net/projects/docpp/"
132 "files/doc++-" version ".tar.gz"))
133 (sha256
134 (base32
135 "0i37zlxl8g352s4hzpdx0657k5x3czh3xcsfr27irc708gb277pn"))
136 (patches (search-patches "doc++-include-directives.patch"
137 "doc++-segfault-fix.patch"))))
138 (build-system gnu-build-system)
139 (native-inputs
140 `(("flex" ,flex)
141 ("gettext" ,gettext-minimal)))
142 (home-page "http://docpp.sourceforge.net/")
143 (synopsis "Documentation system for C, C++, IDL, and Java")
144 (description
145 "DOC++ is a documentation system for C, C++, IDL, and Java. It can
146 generate both TeX output for high-quality hardcopies or HTML output for online
147 brwosing. The documentation is extracted directly from the C/C++/IDL source
148 or Java class files.")
149 (license gpl2+)))
150
151 (define-public scrollkeeper
152 (package
153 (name "scrollkeeper")
154 (version "0.3.14")
155 (source
156 (origin
157 (method url-fetch)
158 (uri (string-append "mirror://sourceforge/scrollkeeper/scrollkeeper/"
159 version "/scrollkeeper-" version ".tar.gz"))
160 (sha256
161 (base32 "1bfxwxc1ngh11v36z899sz9qam366r050fhkyb5adv65lb1x62sa"))))
162 (build-system gnu-build-system)
163 (arguments
164 `(#:configure-flags
165 (list (string-append "--with-xml-catalog="
166 (assoc-ref %build-inputs "docbook-xml")
167 "/xml/dtd/docbook/catalog.xml"))))
168 (inputs
169 `(("perl" ,perl)
170 ("libxml2" ,libxml2)
171 ("libxslt" ,libxslt)
172 ;; The configure script checks for either version 4.2 or 4.1.2.
173 ("docbook-xml" ,docbook-xml-4.2)))
174 (native-inputs
175 `(("intltool" ,intltool)))
176 (home-page "http://scrollkeeper.sourceforge.net/")
177 (synopsis "Open Documentation Cataloging Project")
178 (description "ScrollKeeper is a cataloging system for documentation on open
179 systems. It manages documentation metadata as specified by the Open Source
180 Metadata Framework and provides a simple API to allow help browsers to find,
181 sort, and search the document catalog. It will also be able to communicate
182 with catalog servers on the Net to search for documents which are not on the
183 local system.")
184 (license lgpl2.1+)))