gnu: Add bst.
[jackhill/guix/guix.git] / gnu / packages / texinfo.scm
CommitLineData
233e7676 1;;; GNU Guix --- Functional package management for GNU
1fda01ef 2;;; Copyright © 2012, 2013, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
1022da10 3;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
f7b55b04 4;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
fb32b169 5;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
db32c281 6;;;
233e7676 7;;; This file is part of GNU Guix.
db32c281 8;;;
233e7676 9;;; GNU Guix is free software; you can redistribute it and/or modify it
db32c281
LC
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
233e7676 14;;; GNU Guix is distributed in the hope that it will be useful, but
db32c281
LC
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
233e7676 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
db32c281 21
1ffa7090 22(define-module (gnu packages texinfo)
4a44e743 23 #:use-module (guix licenses)
db32c281
LC
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix build-system gnu)
c5d83768 27 #:use-module (gnu packages)
1ffa7090 28 #:use-module (gnu packages compression)
74601e45
MB
29 #:use-module (gnu packages ncurses)
30 #:use-module (gnu packages perl))
db32c281
LC
31
32(define-public texinfo
33 (package
34 (name "texinfo")
b603d02a 35 (version "6.5")
a24b75d8 36 (source (origin
f7b55b04
MW
37 (method url-fetch)
38 (uri (string-append "mirror://gnu/texinfo/texinfo-"
39 version ".tar.xz"))
78a9a250 40 (patches (search-patches "texinfo-perl-compat.patch"))
f7b55b04
MW
41 (sha256
42 (base32
b603d02a 43 "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp"))))
db32c281 44 (build-system gnu-build-system)
4ab97ef1
MB
45 (inputs `(("ncurses" ,ncurses)
46 ("perl" ,perl)))
1668dfcd
LC
47
48 (native-search-paths
49 ;; This is the variable used by the standalone Info reader.
50 (list (search-path-specification
51 (variable "INFOPATH")
52 (files '("share/info")))))
53
6fd52309 54 (home-page "https://www.gnu.org/software/texinfo/")
f50d2669 55 (synopsis "The GNU documentation format")
db32c281 56 (description
a22dc0c4 57 "Texinfo is the official documentation format of the GNU project. It
79c311b8
LC
58uses a single source file using explicit commands to produce a final document
59in any of several supported output formats, such as HTML or PDF. This
60package includes both the tools necessary to produce Info documents from
61their source and the command-line Info reader. The emphasis of the language
62is on expressing the content semantically, avoiding physical markup commands.")
4a44e743 63 (license gpl3+)))
bbafef3f 64
f7b55b04
MW
65(define-public texinfo-5
66 (package (inherit texinfo)
67 (version "5.2")
ce1e4bd5
LC
68 (source (origin
69 (method url-fetch)
70 (uri (string-append "mirror://gnu/texinfo/texinfo-"
71 version ".tar.xz"))
a446cf26 72 (patches (search-patches "texinfo-5-perl-compat.patch"))
ce1e4bd5
LC
73 (sha256
74 (base32
47ed8e04
MW
75 "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal"))))
76 (native-inputs '())))
ce1e4bd5 77
bbafef3f
MW
78(define-public texinfo-4
79 (package (inherit texinfo)
80 (version "4.13a")
81 (source (origin
82 (method url-fetch)
83 (uri (string-append
84 "mirror://gnu/texinfo/texinfo-"
85 version
86 ".tar.lzma"))
87 (sha256
88 (base32
89 "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d"))))
47ed8e04 90 (native-inputs '())
bbafef3f 91 (inputs `(("ncurses" ,ncurses) ("xz" ,xz)))))
c5d83768 92
7feebd33
LC
93(define-public info-reader
94 ;; The idea of this package is to have the standalone Info reader without
95 ;; the dependency on Perl that 'makeinfo' drags.
96 (package
8f03b70b 97 (inherit texinfo)
7feebd33
LC
98 (name "info-reader")
99 (arguments
8f03b70b 100 `(#:disallowed-references ,(assoc-ref (package-inputs texinfo)
7feebd33
LC
101 "perl")
102
103 #:modules ((ice-9 ftw) (srfi srfi-1)
104 ,@%gnu-build-system-modules)
105
106 #:phases (modify-phases %standard-phases
107 (add-after 'install 'keep-only-info-reader
108 (lambda* (#:key outputs #:allow-other-keys)
109 ;; Remove everything but 'bin/info' and associated
110 ;; files.
111 (define (files)
112 (scandir "." (lambda (file)
113 (not (member file '("." ".."))))))
114
115 (let ((out (assoc-ref outputs "out")))
116 (with-directory-excursion out
117 (for-each delete-file-recursively
118 (fold delete (files) '("bin" "share"))))
119 (with-directory-excursion (string-append out "/bin")
120 (for-each delete-file (delete "info" (files))))
121 (with-directory-excursion (string-append out "/share")
122 (for-each delete-file-recursively
123 (fold delete (files)
124 '("info" "locale"))))
125 #t))))))
126 (synopsis "Standalone Info documentation reader")))
127
c5d83768
EB
128(define-public texi2html
129 (package
130 (name "texi2html")
131 (version "5.0")
132 (source (origin
133 (method url-fetch)
134 (uri (string-append "mirror://savannah/" name "/" name "-"
135 version ".tar.bz2"))
136 (sha256
137 (base32
138 "1yprv64vrlcbksqv25asplnjg07mbq38lfclp1m5lj8cw878pag8"))
d759cf67 139 (patches
fc1adab1
AK
140 (search-patches "texi2html-document-encoding.patch"
141 "texi2html-i18n.patch"))
d759cf67
LC
142 (snippet
143 ;; This file is modified by the patch above, but reset its
144 ;; timestamp so we don't trigger the rule to update PO files,
145 ;; which would require Gettext.
146 ;; See <http://bugs.gnu.org/18247>.
6cbee49d
MW
147 '(begin
148 (utime "texi2html.pl" 0 0 0 0)
149 #t))))
c5d83768 150 (build-system gnu-build-system)
c5d83768 151 (inputs `(("perl" ,perl)))
1022da10
EB
152 (arguments
153 ;; Tests fail because of warnings on stderr from Perl 5.22. Adjusting
154 ;; texi2html.pl to avoid the warnings seems non-trivial, so we simply
155 ;; disable the tests.
156 '(#:tests? #f))
340978d7 157 (home-page "https://www.nongnu.org/texi2html/")
c5d83768
EB
158 (synopsis "Convert Texinfo to HTML")
159 (description
160 "Texi2HTML is a Perl script which converts Texinfo source files to HTML
161output. It now supports many advanced features, such as internationalization
162and extremely configurable output formats.
163
164Development of Texi2HTML moved to the GNU Texinfo repository in 2010, since it
165was meant to replace the makeinfo implementation in GNU Texinfo. The route
166forward for authors is, in most cases, to alter manuals and build processes as
167necessary to use the new features of the makeinfo/texi2any implementation of
168GNU Texinfo. The Texi2HTML maintainers (one of whom is the principal author
169of the GNU Texinfo implementation) do not intend to make further releases of
170Texi2HTML.")
171 ;; Files in /lib under lgpl2.1+ and x11
172 (license gpl2+)))