gnu: Add perl-graph.
[jackhill/guix/guix.git] / gnu / packages / xml.scm
CommitLineData
d0414883 1;;; GNU Guix --- Functional package management for GNU
493e9a5a 2;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
0899144f 3;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
b715dbac 4;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
10ac0f9f 5;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
e4aab734 6;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
51514e69 7;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
e831256f 8;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
fe9451c5 9;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
c74c7c13 10;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
119b8398 11;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
d0414883
LC
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
1ffa7090 28(define-module (gnu packages xml)
f0444eaf 29 #:use-module (gnu packages)
0899144f 30 #:use-module (gnu packages autotools)
322cbda7 31 #:use-module (gnu packages compression)
58cc3b38 32 #:use-module (gnu packages gnupg)
f0444eaf
AE
33 #:use-module (gnu packages perl)
34 #:use-module (gnu packages python)
a7fd7b68 35 #:use-module (gnu packages tls)
ad871fc6 36 #:use-module (gnu packages web)
b5b73a82 37 #:use-module ((guix licenses) #:prefix license:)
d0414883
LC
38 #:use-module (guix packages)
39 #:use-module (guix download)
6ce212b8 40 #:use-module (guix build-system cmake)
2a1e82bb 41 #:use-module (guix build-system gnu)
37f9ff63 42 #:use-module (guix build-system perl)
7ce32242 43 #:use-module (guix build-system python)
e4aab734
RW
44 #:use-module (gnu packages linux)
45 #:use-module (gnu packages pkg-config))
d0414883
LC
46
47(define-public expat
48 (package
49 (name "expat")
51514e69 50 (version "2.1.1")
d0414883
LC
51 (source (origin
52 (method url-fetch)
53 (uri (string-append "mirror://sourceforge/expat/expat/"
51514e69 54 version "/expat-" version ".tar.bz2"))
ee86e7e1
LF
55 (patches (search-patches "expat-CVE-2012-6702-and-CVE-2016-5300.patch"
56 "expat-CVE-2015-1283-refix.patch"
57 "expat-CVE-2016-0718.patch"))
d0414883
LC
58 (sha256
59 (base32
51514e69 60 "0ryyjgvy7jq0qb7a9mhc1giy3bzn56aiwrs8dpydqngplbjq9xdg"))))
d0414883
LC
61 (build-system gnu-build-system)
62 (home-page "http://www.libexpat.org/")
9e771e3b 63 (synopsis "Stream-oriented XML parser library written in C")
d0414883
LC
64 (description
65 "Expat is an XML parser library written in C. It is a
66stream-oriented parser in which an application registers handlers for
67things the parser might find in the XML document (like start tags).")
68 (license license:expat)))
f0444eaf
AE
69
70(define-public libxml2
71 (package
72 (name "libxml2")
3c9e0ddc 73 (version "2.9.4")
f0444eaf
AE
74 (source (origin
75 (method url-fetch)
76 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
77 version ".tar.gz"))
78 (sha256
79 (base32
3c9e0ddc 80 "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))
f0444eaf
AE
81 (build-system gnu-build-system)
82 (home-page "http://www.xmlsoft.org/")
35b9e423 83 (synopsis "C parser for XML")
c1944c92 84 (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
7ce32242 85 (native-inputs `(("perl" ,perl)))
2a8d4401
LC
86 ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
87 ;; sub-directory of any given package.
74528069
LC
88 (native-search-paths (list (search-path-specification
89 (variable "XML_CATALOG_FILES")
90 (separator " ")
91 (files '("xml"))
92 (file-pattern "^catalog\\.xml$")
93 (file-type 'regular))))
2a8d4401 94 (search-paths native-search-paths)
f0444eaf 95 (description
7c125ce0
AK
96 "Libxml2 is the XML C parser and toolkit developed for the Gnome
97project (but it is usable outside of the Gnome platform).")
f0444eaf 98 (license license:x11)))
58cc3b38 99
7ce32242
SB
100(define-public python-libxml2
101 (package (inherit libxml2)
102 (name "python-libxml2")
92a7e46d 103 (replacement #f)
7ce32242
SB
104 (build-system python-build-system)
105 (arguments
106 `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
107 #:tests? #f
108 #:phases
109 (modify-phases %standard-phases
110 (add-before
111 'build 'configure
112 (lambda* (#:key inputs #:allow-other-keys)
113 (chdir "python")
114 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
115 "cross-libc" "libc")))
116 (libxml2 (assoc-ref inputs "libxml2")))
117 (substitute* "setup.py"
118 ;; For 'libxml2/libxml/tree.h'.
119 (("ROOT = r'/usr'")
120 (format #f "ROOT = r'~a'" libxml2))
121 ;; For 'iconv.h'.
122 (("/opt/include")
123 (string-append glibc "/include")))))))))
124 (inputs `(("libxml2" ,libxml2)))
125 (synopsis "Python bindings for the libxml2 library")))
126
127(define-public python2-libxml2
128 (package-with-python2 python-libxml2))
129
58cc3b38
AE
130(define-public libxslt
131 (package
132 (name "libxslt")
28b33172 133 (version "1.1.29")
58cc3b38
AE
134 (source (origin
135 (method url-fetch)
136 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
137 version ".tar.gz"))
138 (sha256
139 (base32
28b33172
LF
140 "1klh81xbm9ppzgqk339097i39b7fnpmlj8lzn8bpczl3aww6x5xm"))
141 (patches (search-patches "libxslt-generated-ids.patch"))))
58cc3b38
AE
142 (build-system gnu-build-system)
143 (home-page "http://xmlsoft.org/XSLT/index.html")
35b9e423 144 (synopsis "C library for applying XSLT stylesheets to XML documents")
58cc3b38
AE
145 (inputs `(("libgcrypt" ,libgcrypt)
146 ("libxml2" ,libxml2)
95288fcc 147 ("python" ,python-minimal-wrapper)
11e3f107 148 ("zlib" ,zlib)))
58cc3b38 149 (description
35b9e423 150 "Libxslt is an XSLT C library developed for the GNOME project. It is
58cc3b38
AE
151based on libxml for XML parsing, tree manipulation and XPath support.")
152 (license license:x11)))
2a1e82bb
LC
153
154(define-public perl-xml-parser
155 (package
156 (name "perl-xml-parser")
d495634b 157 (version "2.44")
2a1e82bb
LC
158 (source (origin
159 (method url-fetch)
160 (uri (string-append
2b8c5f54 161 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
2a1e82bb
LC
162 version ".tar.gz"))
163 (sha256
164 (base32
d495634b 165 "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s"))))
2a1e82bb
LC
166 (build-system perl-build-system)
167 (arguments `(#:make-maker-flags
168 (let ((expat (assoc-ref %build-inputs "expat")))
169 (list (string-append "EXPATLIBPATH=" expat "/lib")
170 (string-append "EXPATINCPATH=" expat "/include")))))
171 (inputs `(("expat" ,expat)))
172 (license (package-license perl))
173 (synopsis "Perl bindings to the Expat XML parsing library")
174 (description
175 "This module provides ways to parse XML documents. It is built on top of
176XML::Parser::Expat, which is a lower level interface to James Clark's expat
177library. Each call to one of the parsing methods creates a new instance of
178XML::Parser::Expat which is then used to parse the document. Expat options
179may be provided when the XML::Parser object is created. These options are
180then passed on to the Expat object on each parse call. They can also be given
181as extra arguments to the parse methods, in which case they override options
182given at XML::Parser creation time.")
d495634b 183 (home-page "http://search.cpan.org/dist/XML-Parser")))
37f9ff63 184
7339fbe2 185(define-public perl-libxml
1385ba4f 186 (package
7339fbe2 187 (name "perl-libxml")
1385ba4f
AE
188 (version "0.08")
189 (source (origin
190 (method url-fetch)
191 (uri (string-append
192 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
193 version ".tar.gz"))
194 (sha256
195 (base32
196 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
197 (build-system perl-build-system)
7b81406a 198 (propagated-inputs
1385ba4f
AE
199 `(("perl-xml-parser" ,perl-xml-parser)))
200 (license (package-license perl))
201 (synopsis "Perl SAX parser using XML::Parser")
202 (description
203 "XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser
204module.")
205 (home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parser/PerlSAX.pm")))
206
3dd6bee1
EB
207(define-public perl-xml-libxml
208 (package
209 (name "perl-xml-libxml")
33906d54 210 (version "2.0128")
3dd6bee1
EB
211 (source
212 (origin
213 (method url-fetch)
214 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
215 "XML-LibXML-" version ".tar.gz"))
216 (sha256
217 (base32
33906d54 218 "0awgd2gjzy7kn38bqblsigikzl81xsi561phkz9f9b9v3x2vmrr6"))))
3dd6bee1
EB
219 (build-system perl-build-system)
220 (propagated-inputs
221 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
222 ("perl-xml-sax" ,perl-xml-sax)))
223 (inputs
224 `(("libxml2" ,libxml2)))
225 (home-page "http://search.cpan.org/dist/XML-LibXML")
226 (synopsis "Perl interface to libxml2")
227 (description "This module implements a Perl interface to the libxml2
54c3c140 228library which provides interfaces for parsing and manipulating XML files. This
3dd6bee1
EB
229module allows Perl programmers to make use of the highly capable validating
230XML parser and the high performance DOM implementation.")
231 (license (package-license perl))))
232
f7c4dc2f
RW
233(define-public perl-xml-libxml-simple
234 (package
235 (name "perl-xml-libxml-simple")
236 (version "0.95")
237 (source (origin
238 (method url-fetch)
239 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
240 "XML-LibXML-Simple-" version ".tar.gz"))
241 (sha256
242 (base32
243 "0qqfqj5bgqmh1j4iv8dwl3g00nsmcvf2b7w1d09k9d77rrb249xi"))))
244 (build-system perl-build-system)
245 (propagated-inputs
246 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
247 ("perl-xml-libxml" ,perl-xml-libxml)))
248 (home-page "http://search.cpan.org/dist/XML-LibXML-Simple")
249 (synopsis "XML::LibXML based XML::Simple clone")
250 (description
251 "This package provides the same API as @code{XML::Simple} but is based on
252@code{XML::LibXML}.")
253 (license (package-license perl))))
254
b715dbac
EB
255(define-public perl-xml-namespacesupport
256 (package
257 (name "perl-xml-namespacesupport")
258 (version "1.11")
259 (source
260 (origin
261 (method url-fetch)
262 (uri (string-append "mirror://cpan/authors/id/P/PE/PERIGRIN/"
263 "XML-NamespaceSupport-" version ".tar.gz"))
264 (sha256
265 (base32
266 "1sklgcldl3w6gn706vx1cgz6pm4y5lfgsjxnfqyk20pilgq530bd"))))
267 (build-system perl-build-system)
268 (home-page "http://search.cpan.org/dist/XML-NamespaceSupport")
269 (synopsis "XML namespace support class")
270 (description "This module offers a simple to process namespaced XML
271names (unames) from within any application that may need them. It also helps
272maintain a prefix to namespace URI map, and provides a number of basic
273checks.")
274 (license (package-license perl))))
275
18b8bbb3
EB
276(define-public perl-xml-sax
277 (package
278 (name "perl-xml-sax")
279 (version "0.99")
280 (source
281 (origin
282 (method url-fetch)
283 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
284 "XML-SAX-" version ".tar.gz"))
285 (sha256
286 (base32
287 "115dypb50w1l94y3iwihv5nkixbsv1cxiqkd93y4rk5n6s74pc1j"))))
288 (build-system perl-build-system)
289 (propagated-inputs
290 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
291 ("perl-xml-sax-base" ,perl-xml-sax-base)))
292 (arguments
293 `(#:phases (modify-phases %standard-phases
294 (add-before
40b084a3 295 'install 'augment-path
18b8bbb3
EB
296 ;; The install target tries to load the newly-installed
297 ;; XML::SAX module, but can't find it, so we need to tell
298 ;; perl where to look.
299 (lambda* (#:key outputs #:allow-other-keys)
300 (setenv "PERL5LIB"
301 (string-append (getenv "PERL5LIB") ":"
302 (assoc-ref outputs "out")
303 "/lib/perl5/site_perl")))))))
304 (home-page "http://search.cpan.org/dist/XML-SAX")
305 (synopsis "Perl API for XML")
306 (description "XML::SAX consists of several framework classes for using and
307building Perl SAX2 XML parsers, filters, and drivers.")
308 (license (package-license perl))))
309
1ed6d5bc
EB
310(define-public perl-xml-sax-base
311 (package
312 (name "perl-xml-sax-base")
313 (version "1.08")
314 (source
315 (origin
316 (method url-fetch)
317 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
318 "XML-SAX-Base-" version ".tar.gz"))
319 (sha256
320 (base32
321 "17i161rq1ngjlk0c8vdkrkkc56y1pf51k1g54y28py0micqp0qk6"))))
322 (build-system perl-build-system)
323 (home-page "http://search.cpan.org/dist/XML-SAX-Base")
324 (synopsis "Base class for SAX Drivers and Filters")
325 (description "This module has a very simple task - to be a base class for
326PerlSAX drivers and filters. It's default behaviour is to pass the input
327directly to the output unchanged. It can be useful to use this module as a
328base class so you don't have to, for example, implement the characters()
329callback.")
330 (license (package-license perl))))
331
535dc6cf
AE
332(define-public perl-xml-simple
333 (package
334 (name "perl-xml-simple")
e831256f 335 (version "2.22")
535dc6cf
AE
336 (source (origin
337 (method url-fetch)
338 (uri (string-append
339 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
340 version ".tar.gz"))
341 (sha256
342 (base32
e831256f 343 "0jgbk30jizafpl7078jhw1di1yh08gf8d85dsvjllr595vr0widr"))))
535dc6cf 344 (build-system perl-build-system)
27ef7f45 345 (propagated-inputs
e831256f
EF
346 `(("perl-xml-parser" ,perl-xml-parser)
347 ("perl-xml-sax" ,perl-xml-sax)))
535dc6cf
AE
348 (license (package-license perl))
349 (synopsis "Perl module for easy reading/writing of XML files")
350 (description
351 "The XML::Simple module provides a simple API layer on top of an
352underlying XML parsing module (either XML::Parser or one of the SAX2
353parser modules).")
e831256f 354 (home-page "http://search.cpan.org/dist/XML-Simple")))
535dc6cf 355
a2e520af
AE
356(define-public perl-xml-regexp
357 (package
358 (name "perl-xml-regexp")
359 (version "0.04")
360 (source (origin
361 (method url-fetch)
362 (uri (string-append
363 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
364 version ".tar.gz"))
365 (sha256
366 (base32
367 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
368 (build-system perl-build-system)
369 (inputs
370 `(("perl-xml-parser" ,perl-xml-parser)))
371 (license (package-license perl))
372 (synopsis "Perl regular expressions for XML tokens")
373 (description
374 "XML::RegExp contains regular expressions for the following XML tokens:
375BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
376EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
377 (home-page "http://search.cpan.org/~tjmather/XML-RegExp/lib/XML/RegExp.pm")))
378
ad871fc6
AE
379(define-public perl-xml-dom
380 (package
381 (name "perl-xml-dom")
382 (version "1.44")
383 (source (origin
384 (method url-fetch)
385 (uri (string-append
386 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
387 version ".tar.gz"))
388 (sha256
389 (base32
390 "1r0ampc88ni3sjpzr583k86076qg399arfm9xirv3cw49k3k5bzn"))))
391 (build-system perl-build-system)
f7faff88
AE
392 (propagated-inputs
393 `(("perl-libwww" ,perl-libwww)
ad871fc6 394 ("perl-libxml" ,perl-libxml)
ad871fc6
AE
395 ("perl-xml-regexp" ,perl-xml-regexp)))
396 (license (package-license perl))
397 (synopsis
398 "Perl module for building DOM Level 1 compliant document structures")
399 (description
400 "This module extends the XML::Parser module by Clark Cooper. The
401XML::Parser module is built on top of XML::Parser::Expat, which is a lower
402level interface to James Clark's expat library. XML::DOM::Parser is derived
403from XML::Parser. It parses XML strings or files and builds a data structure
404that conforms to the API of the Document Object Model.")
405 (home-page "http://search.cpan.org/~tjmather/XML-DOM-1.44/lib/XML/DOM.pm")))
406
649e1676
RW
407(define-public perl-xml-compile-tester
408 (package
409 (name "perl-xml-compile-tester")
410 (version "0.90")
411 (source (origin
412 (method url-fetch)
413 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
414 "XML-Compile-Tester-" version ".tar.gz"))
415 (sha256
416 (base32
417 "1bcl8x8cyacqv9yjp97aq9qq85sy8wv78kd8c16yd9yw3by4cpp1"))))
418 (build-system perl-build-system)
419 (propagated-inputs
420 `(("perl-log-report" ,perl-log-report)
421 ("perl-test-deep" ,perl-test-deep)))
422 (home-page "http://search.cpan.org/dist/XML-Compile-Tester")
423 (synopsis "XML::Compile related regression testing")
424 (description
425 "The @code{XML::Compile} module suite has extensive regression testing.
426This module provide functions which simplify writing tests for
427@code{XML::Compile} related distributions.")
428 (license (package-license perl))))
429
b494a5f1
RW
430(define-public perl-xml-compile
431 (package
432 (name "perl-xml-compile")
433 (version "1.51")
434 (source (origin
435 (method url-fetch)
436 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
437 "XML-Compile-" version ".tar.gz"))
438 (sha256
439 (base32
440 "06fj4zf0yh4kf3kx4bhwrmrjr6al40nasasbgfhn8f1zxwkmm8f2"))))
441 (build-system perl-build-system)
442 (propagated-inputs
443 `(("perl-log-report" ,perl-log-report)
444 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
445 ("perl-xml-libxml" ,perl-xml-libxml)
446 ("perl-test-deep" ,perl-test-deep)))
447 (home-page "http://search.cpan.org/dist/XML-Compile")
448 (synopsis "Compilation-based XML processing")
449 (description
450 "@code{XML::Compile} can be used to translate a Perl data-structure into
451XML or XML into a Perl data-structure, both directions under rigid control by
452a schema.")
453 (license (package-license perl))))
454
c1d41b5d
RW
455(define-public perl-xml-compile-cache
456 (package
457 (name "perl-xml-compile-cache")
458 (version "1.04")
459 (source (origin
460 (method url-fetch)
461 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
462 "XML-Compile-Cache-" version ".tar.gz"))
463 (sha256
464 (base32
465 "1689dm54n7wb0n0cl9n77vk0kvg0mcckn2hz9ahigjhvazah8740"))))
466 (build-system perl-build-system)
467 (propagated-inputs
468 `(("perl-log-report" ,perl-log-report)
469 ("perl-xml-compile" ,perl-xml-compile)
470 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
471 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
472 (home-page "http://search.cpan.org/dist/XML-Compile-Cache")
473 (synopsis "Cache compiled XML translators")
474 (description
475 "This package provides methods to cache compiled XML translators.")
476 (license (package-license perl))))
477
baeab9b8
RW
478(define-public perl-xml-compile-soap
479 (package
480 (name "perl-xml-compile-soap")
481 (version "3.13")
482 (source (origin
483 (method url-fetch)
484 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
485 "XML-Compile-SOAP-" version ".tar.gz"))
486 (sha256
487 (base32
488 "08qw63l78040nh37xzapbqp43g6s5l67bvskf3dyyizlarjx5mi4"))))
489 (build-system perl-build-system)
490 (propagated-inputs
491 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
492 ("perl-libwww" ,perl-libwww)
493 ("perl-log-report" ,perl-log-report)
494 ("perl-xml-compile" ,perl-xml-compile)
495 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
496 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
497 (home-page "http://search.cpan.org/dist/XML-Compile-SOAP")
498 (synopsis "Base-class for SOAP implementations")
499 (description
500 "This module provides a class to handle the SOAP protocol. The first
501implementation is @url{SOAP1.1,
502http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
503used.")
504 (license (package-license perl))))
505
6a914948
RW
506(define-public perl-xml-compile-wsdl11
507 (package
508 (name "perl-xml-compile-wsdl11")
509 (version "3.04")
510 (source (origin
511 (method url-fetch)
512 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
513 "XML-Compile-WSDL11-" version ".tar.gz"))
514 (sha256
515 (base32
516 "0pyikwnfwpangvnkf5dbdagy4z93ag9824f1ax5qaibc3ghca8kv"))))
517 (build-system perl-build-system)
518 (propagated-inputs
519 `(("perl-log-report" ,perl-log-report)
520 ("perl-xml-compile" ,perl-xml-compile)
521 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
522 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
523 (home-page "http://search.cpan.org/dist/XML-Compile-WSDL11")
524 (synopsis "Create SOAP messages defined by WSDL 1.1")
525 (description
526 "This module understands WSDL version 1.1. A WSDL file defines a set of
527messages to be send and received over SOAP connections. This involves
528encoding of the message to be send into XML, sending the message to the
529server, collect the answer, and finally decoding the XML to Perl.")
530 (license (package-license perl))))
531
6ce212b8
RW
532(define-public pugixml
533 (package
534 (name "pugixml")
0562a81e 535 (version "1.7")
6ce212b8
RW
536 (source
537 (origin
538 (method url-fetch)
0562a81e
EF
539 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
540 version "/pugixml-" version ".tar.gz"))
6ce212b8
RW
541 (sha256
542 (base32
0562a81e 543 "1jpml475kbhs1aqwa48g2cbfxlrb9qp115m2j9yryxhxyr30vqgv"))))
6ce212b8
RW
544 (build-system cmake-build-system)
545 (arguments
546 `(#:tests? #f
547 #:out-of-source? #f
548 #:phases (modify-phases %standard-phases
549 (add-before
550 'configure 'chdir
551 (lambda _
552 (chdir "scripts")
553 #t)))))
554 (home-page "http://pugixml.org")
555 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
556 (description
557 "pugixml is a C++ XML processing library, which consists of a DOM-like
558interface with rich traversal/modification capabilities, a fast XML parser
559which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
560implementation for complex data-driven tree queries. Full Unicode support is
561also available, with Unicode interface variants and conversions between
562different Unicode encodings which happen automatically during
563parsing/saving.")
564 (license license:expat)))
565
37f9ff63
AE
566(define-public xmlto
567 (package
568 (name "xmlto")
877a6466 569 (version "0.0.28")
37f9ff63
AE
570 (source
571 (origin
572 (method url-fetch)
573 (uri (string-append
574 "https://fedorahosted.org/releases/x/m/xmlto/xmlto-"
575 version ".tar.bz2"))
576 (sha256
577 (base32
877a6466 578 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 579 (build-system gnu-build-system)
ae0c1202
LC
580 (arguments
581 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
582 '(#:configure-flags (list (string-append "GETOPT="
583 (assoc-ref %build-inputs
584 "util-linux")
585 "/bin/getopt"))))
37f9ff63 586 (inputs
ae0c1202
LC
587 `(("util-linux" ,util-linux) ; for 'getopt'
588 ("libxml2" ,libxml2) ; for 'xmllint'
589 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
590 (home-page "http://cyberelk.net/tim/software/xmlto/")
591 (synopsis "Front-end to an XSL toolchain")
592 (description
593 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
594stylesheet for the conversion you want and applies it using an external
595XSL-T processor. It also performs any necessary post-processing.")
596 (license license:gpl2+)))
0899144f
AE
597
598(define-public xmlsec
599 (package
600 (name "xmlsec")
601 (version "1.2.20")
602 (source (origin
603 (method url-fetch)
604 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
605 name "1-" version ".tar.gz"))
606 (sha256
607 (base32
608 "01bkbv2y3x8d1sf4dcln1x3y2jyj391s3208d9a2ndhglly5j89j"))))
609 (build-system gnu-build-system)
610 (propagated-inputs ; according to xmlsec1.pc
611 `(("libxml2" ,libxml2)
612 ("libxslt" ,libxslt)))
613 (inputs
614 `(("gnutls" ,gnutls)
615 ("libgcrypt" ,libgcrypt)
616 ("libltdl" ,libltdl)))
e4aab734
RW
617 (native-inputs
618 `(("pkg-config" ,pkg-config)))
0899144f
AE
619 (home-page "http://www.libexpat.org/")
620 (synopsis "XML Security Library")
621 (description
622 "The XML Security Library is a C library based on Libxml2. It
623supports XML security standards such as XML Signature, XML Encryption,
624Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
625Libxml2).")
626 (license (license:x11-style "file://COPYING"
627 "See 'COPYING' in the distribution."))))
96f8d991
RW
628
629(define-public minixml
630 (package
631 (name "minixml")
632 (version "2.9")
633 (source (origin
634 (method url-fetch)
635 (uri (string-append "http://www.msweet.org/files/project3/mxml-"
636 version ".tar.gz"))
637 (sha256
638 (base32
639 "14pzhlfidj5v1qbxy7a59yn4jz9pnjrs2zwalz228jsq7ijm9vfd"))))
640 (build-system gnu-build-system)
641 (arguments
642 `(#:tests? #f)) ;no "check" target
643 (home-page "http://www.minixml.org/")
644 (synopsis "Small XML parsing library")
645 (description
646 "Mini-XML is a small C library to read and write XML files and strings in
647UTF-8 and UTF-16 encoding.")
648 ;; LGPL 2.0+ with additional exceptions for static linking
649 (license license:lgpl2.0+)))
33ae9107
DT
650
651;; TinyXML is an unmaintained piece of software, so the patches and build
652;; system massaging have no upstream potential.
653(define-public tinyxml
654 (package
655 (name "tinyxml")
656 (version "2.6.2")
657 (source (origin
658 (method url-fetch)
de67e922
LF
659 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
660 version "/tinyxml_"
33ae9107
DT
661 (string-join (string-split version #\.) "_")
662 ".tar.gz"))
663 (sha256
664 (base32
665 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 666 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
667 (build-system gnu-build-system)
668 ;; This library is missing *a lot* of the steps to make it usable, so we
669 ;; have to add them here, like every other distro must do.
670 (arguments
671 `(#:phases
672 (modify-phases %standard-phases
673 (delete 'configure)
674 (add-after 'build 'build-shared-library
675 (lambda _
676 (zero? (system* "g++" "-Wall" "-O2" "-shared" "-fpic"
677 "tinyxml.cpp" "tinyxmlerror.cpp"
678 "tinyxmlparser.cpp" "tinystr.cpp"
679 "-o" "libtinyxml.so"))))
680 (replace 'check
681 (lambda _ (zero? (system "./xmltest"))))
682 (replace 'install
683 (lambda* (#:key outputs #:allow-other-keys)
684 (let* ((out (assoc-ref outputs "out"))
685 (include (string-append out "/include"))
686 (lib (string-append out "/lib"))
687 (pkgconfig (string-append out "/lib/pkgconfig"))
688 (doc (string-append out "/share/doc")))
689 ;; Install libs and headers.
690 (install-file "libtinyxml.so" lib)
691 (install-file "tinystr.h" include)
692 (install-file "tinyxml.h" include)
693 ;; Generate and install pkg-config file.
694 (mkdir-p pkgconfig)
695 ;; Software such as Kodi expect this file to be present, but
696 ;; it's not provided in the source code.
697 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
698 (lambda (port)
699 (format port "prefix=~a
700exec_prefix=${prefix}
701libdir=${exec_prefix}/lib
702includedir=${prefix}/include
703
704Name: TinyXML
705Description: A simple, small, C++ XML parser
706Version: ~a
707Libs: -L${libdir} -ltinyxml
708Cflags: -I${includedir}
709"
710 out ,version)))
711 ;; Install docs.
712 (mkdir-p doc)
713 (copy-recursively "docs" (string-append doc "tinyxml"))
714 #t))))))
715 (synopsis "Small XML parser for C++")
716 (description "TinyXML is a small and simple XML parsing library for the
717C++ programming langauge.")
718 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
719 (license license:zlib)))
fe9451c5
RG
720
721(define-public xmlstarlet
722 (package
723 (name "xmlstarlet")
724 (version "1.6.1")
725 (source
726 (origin
727 (method url-fetch)
728 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
729 version "/xmlstarlet-" version ".tar.gz"))
730 (sha256
731 (base32
732 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
733 (build-system gnu-build-system)
734 (inputs
735 `(("libxslt" ,libxslt)
736 ("libxml2" ,libxml2)))
737 (home-page "http://xmlstar.sourceforge.net/")
738 (synopsis "Command line XML toolkit")
739 (description "XMLStarlet is a set of command line utilities which can be
740used to transform, query, validate, and edit XML documents. XPath is used to
741match and extract data, and elements can be added, deleted or modified using
742XSLT and EXSLT.")
743 (license license:x11)))