gnu: Move numerous "inputs" which should be "native-inputs".
[jackhill/guix/guix.git] / gnu / packages / xml.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
4 ;;;
5 ;;; This file is part of GNU Guix.
6 ;;;
7 ;;; GNU Guix is free software; you can redistribute it and/or modify it
8 ;;; under the terms of the GNU General Public License as published by
9 ;;; the Free Software Foundation; either version 3 of the License, or (at
10 ;;; your option) any later version.
11 ;;;
12 ;;; GNU Guix is distributed in the hope that it will be useful, but
13 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ;;; GNU General Public License for more details.
16 ;;;
17 ;;; You should have received a copy of the GNU General Public License
18 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20 (define-module (gnu packages xml)
21 #:use-module (gnu packages)
22 #:use-module (gnu packages compression)
23 #:use-module (gnu packages gnupg)
24 #:use-module (gnu packages perl)
25 #:use-module (gnu packages python)
26 #:use-module (gnu packages web)
27 #:use-module ((guix licenses)
28 #:renamer (symbol-prefix-proc 'license:))
29 #:use-module (guix packages)
30 #:use-module (guix download)
31 #:use-module (guix build-system gnu)
32 #:use-module (guix build-system perl)
33 #:use-module (gnu packages linux))
34
35 (define-public expat
36 (package
37 (name "expat")
38 (version "2.1.0")
39 (source (origin
40 (method url-fetch)
41 (uri (string-append "mirror://sourceforge/expat/expat/"
42 version "/expat-" version ".tar.gz"))
43 (sha256
44 (base32
45 "11pblz61zyxh68s5pdcbhc30ha1b2vfjd83aiwfg4vc15x3hadw2"))))
46 (build-system gnu-build-system)
47 (home-page "http://www.libexpat.org/")
48 (synopsis "A stream-oriented XML parser library written in C")
49 (description
50 "Expat is an XML parser library written in C. It is a
51 stream-oriented parser in which an application registers handlers for
52 things the parser might find in the XML document (like start tags).")
53 (license license:expat)))
54
55 (define-public libxml2
56 (package
57 (name "libxml2")
58 (version "2.9.0")
59 (source (origin
60 (method url-fetch)
61 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
62 version ".tar.gz"))
63 (sha256
64 (base32
65 "10ib8bpar2pl68aqksfinvfmqknwnk7i35ibq6yjl8dpb0cxj9dd"))))
66 (build-system gnu-build-system)
67 (home-page "http://www.xmlsoft.org/")
68 (synopsis "libxml2, a C parser for XML")
69 (inputs `(("zlib" ,zlib)))
70 (native-inputs `(("perl" ,perl)
71 ("python" ,python-2))) ; incompatible with Python 3 (print syntax)
72 (arguments
73 `(#:phases
74 (alist-replace
75 'install
76 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
77 (let ((install (assoc-ref %standard-phases 'install))
78 (glibc (assoc-ref inputs ,(if (%current-target-system)
79 "cross-libc" "libc")))
80 (out (assoc-ref outputs "out")))
81 (apply install args)
82 (chdir "python")
83 (substitute* "setup.py"
84 (("/opt/include")
85 (string-append glibc "/include")))
86 (system* "python" "setup.py" "install"
87 (string-append "--prefix=" out))))
88 %standard-phases)))
89 (description
90 "Libxml2 is the XML C parser and toolkit developed for the Gnome project
91 (but it is usable outside of the Gnome platform).")
92 (license license:x11)))
93
94 (define-public libxslt
95 (package
96 (name "libxslt")
97 (version "1.1.28")
98 (source (origin
99 (method url-fetch)
100 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
101 version ".tar.gz"))
102 (sha256
103 (base32
104 "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz"))))
105 (build-system gnu-build-system)
106 (home-page "http://xmlsoft.org/XSLT/index.html")
107 (synopsis "libxslt, a C library for applying XSLT stylesheets to XML documents")
108 (inputs `(("libgcrypt" ,libgcrypt)
109 ("libxml2" ,libxml2)
110 ("python" ,python-wrapper)
111 ("zlib" ,zlib)))
112 (description
113 "Libxslt is an XSLT C library developed for the GNOME project. It is
114 based on libxml for XML parsing, tree manipulation and XPath support.")
115 (license license:x11)))
116
117 (define-public perl-xml-parser
118 (package
119 (name "perl-xml-parser")
120 (version "2.41")
121 (source (origin
122 (method url-fetch)
123 (uri (string-append
124 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
125 version ".tar.gz"))
126 (sha256
127 (base32
128 "1sadi505g5qmxr36lgcbrcrqh3a5gcdg32b405gnr8k54b6rg0dl"))))
129 (build-system perl-build-system)
130 (arguments `(#:make-maker-flags
131 (let ((expat (assoc-ref %build-inputs "expat")))
132 (list (string-append "EXPATLIBPATH=" expat "/lib")
133 (string-append "EXPATINCPATH=" expat "/include")))))
134 (inputs `(("expat" ,expat)))
135 (license (package-license perl))
136 (synopsis "Perl bindings to the Expat XML parsing library")
137 (description
138 "This module provides ways to parse XML documents. It is built on top of
139 XML::Parser::Expat, which is a lower level interface to James Clark's expat
140 library. Each call to one of the parsing methods creates a new instance of
141 XML::Parser::Expat which is then used to parse the document. Expat options
142 may be provided when the XML::Parser object is created. These options are
143 then passed on to the Expat object on each parse call. They can also be given
144 as extra arguments to the parse methods, in which case they override options
145 given at XML::Parser creation time.")
146 (home-page "http://search.cpan.org/~toddr/XML-Parser-2.41/Parser.pm")))
147
148 (define-public perl-libxml
149 (package
150 (name "perl-libxml")
151 (version "0.08")
152 (source (origin
153 (method url-fetch)
154 (uri (string-append
155 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
156 version ".tar.gz"))
157 (sha256
158 (base32
159 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
160 (build-system perl-build-system)
161 (propagated-inputs
162 `(("perl-xml-parser" ,perl-xml-parser)))
163 (license (package-license perl))
164 (synopsis "Perl SAX parser using XML::Parser")
165 (description
166 "XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser
167 module.")
168 (home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parser/PerlSAX.pm")))
169
170 (define-public perl-xml-simple
171 (package
172 (name "perl-xml-simple")
173 (version "2.20")
174 (source (origin
175 (method url-fetch)
176 (uri (string-append
177 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
178 version ".tar.gz"))
179 (sha256
180 (base32
181 "0jj3jiray1l4pi9wkjcpxjc3v431whdwx5aqnhgdm4i7h3817zsw"))))
182 (build-system perl-build-system)
183 (inputs
184 `(("perl-xml-parser" ,perl-xml-parser)))
185 (license (package-license perl))
186 (synopsis "Perl module for easy reading/writing of XML files")
187 (description
188 "The XML::Simple module provides a simple API layer on top of an
189 underlying XML parsing module (either XML::Parser or one of the SAX2
190 parser modules).")
191 (home-page "http://search.cpan.org/~grantm/XML-Simple-2.20/lib/XML/Simple.pm")))
192
193 (define-public perl-xml-regexp
194 (package
195 (name "perl-xml-regexp")
196 (version "0.04")
197 (source (origin
198 (method url-fetch)
199 (uri (string-append
200 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
201 version ".tar.gz"))
202 (sha256
203 (base32
204 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
205 (build-system perl-build-system)
206 (inputs
207 `(("perl-xml-parser" ,perl-xml-parser)))
208 (license (package-license perl))
209 (synopsis "Perl regular expressions for XML tokens")
210 (description
211 "XML::RegExp contains regular expressions for the following XML tokens:
212 BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
213 EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
214 (home-page "http://search.cpan.org/~tjmather/XML-RegExp/lib/XML/RegExp.pm")))
215
216 (define-public perl-xml-dom
217 (package
218 (name "perl-xml-dom")
219 (version "1.44")
220 (source (origin
221 (method url-fetch)
222 (uri (string-append
223 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
224 version ".tar.gz"))
225 (sha256
226 (base32
227 "1r0ampc88ni3sjpzr583k86076qg399arfm9xirv3cw49k3k5bzn"))))
228 (build-system perl-build-system)
229 (propagated-inputs
230 `(("perl-libwww" ,perl-libwww)
231 ("perl-libxml" ,perl-libxml)
232 ("perl-xml-regexp" ,perl-xml-regexp)))
233 (license (package-license perl))
234 (synopsis
235 "Perl module for building DOM Level 1 compliant document structures")
236 (description
237 "This module extends the XML::Parser module by Clark Cooper. The
238 XML::Parser module is built on top of XML::Parser::Expat, which is a lower
239 level interface to James Clark's expat library. XML::DOM::Parser is derived
240 from XML::Parser. It parses XML strings or files and builds a data structure
241 that conforms to the API of the Document Object Model.")
242 (home-page "http://search.cpan.org/~tjmather/XML-DOM-1.44/lib/XML/DOM.pm")))
243
244 (define-public xmlto
245 (package
246 (name "xmlto")
247 (version "0.0.25")
248 (source
249 (origin
250 (method url-fetch)
251 (uri (string-append
252 "https://fedorahosted.org/releases/x/m/xmlto/xmlto-"
253 version ".tar.bz2"))
254 (sha256
255 (base32
256 "0dp5nxq491gymq806za0dk4hngfmq65ysrqbn0ypajqbbl6vf71n"))))
257 (build-system gnu-build-system)
258 (arguments
259 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
260 '(#:configure-flags (list (string-append "GETOPT="
261 (assoc-ref %build-inputs
262 "util-linux")
263 "/bin/getopt"))))
264 (inputs
265 `(("util-linux" ,util-linux) ; for 'getopt'
266 ("libxml2" ,libxml2) ; for 'xmllint'
267 ("libxslt" ,libxslt))) ; for 'xsltproc'
268 (home-page "http://cyberelk.net/tim/software/xmlto/")
269 (synopsis "Front-end to an XSL toolchain")
270 (description
271 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
272 stylesheet for the conversion you want and applies it using an external
273 XSL-T processor. It also performs any necessary post-processing.")
274 (license license:gpl2+)))