Merge branch 'master' into core-updates
[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>
5eec378b 12;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
19c33040 13;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
0c1bab36 14;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
931bd7f6 15;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
c2efe1ae 16;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
d0414883
LC
17;;;
18;;; This file is part of GNU Guix.
19;;;
20;;; GNU Guix is free software; you can redistribute it and/or modify it
21;;; under the terms of the GNU General Public License as published by
22;;; the Free Software Foundation; either version 3 of the License, or (at
23;;; your option) any later version.
24;;;
25;;; GNU Guix is distributed in the hope that it will be useful, but
26;;; WITHOUT ANY WARRANTY; without even the implied warranty of
27;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28;;; GNU General Public License for more details.
29;;;
30;;; You should have received a copy of the GNU General Public License
31;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
32
1ffa7090 33(define-module (gnu packages xml)
f0444eaf 34 #:use-module (gnu packages)
0899144f 35 #:use-module (gnu packages autotools)
322cbda7 36 #:use-module (gnu packages compression)
58cc3b38 37 #:use-module (gnu packages gnupg)
f0444eaf
AE
38 #:use-module (gnu packages perl)
39 #:use-module (gnu packages python)
a7fd7b68 40 #:use-module (gnu packages tls)
ad871fc6 41 #:use-module (gnu packages web)
b5b73a82 42 #:use-module ((guix licenses) #:prefix license:)
d0414883
LC
43 #:use-module (guix packages)
44 #:use-module (guix download)
6ce212b8 45 #:use-module (guix build-system cmake)
2a1e82bb 46 #:use-module (guix build-system gnu)
37f9ff63 47 #:use-module (guix build-system perl)
7ce32242 48 #:use-module (guix build-system python)
e4aab734
RW
49 #:use-module (gnu packages linux)
50 #:use-module (gnu packages pkg-config))
d0414883
LC
51
52(define-public expat
53 (package
54 (name "expat")
b1a782b1 55 (version "2.2.0")
d0414883
LC
56 (source (origin
57 (method url-fetch)
58 (uri (string-append "mirror://sourceforge/expat/expat/"
51514e69 59 version "/expat-" version ".tar.bz2"))
b1a782b1
LF
60 (patches
61 (search-patches "expat-CVE-2016-0718-fix-regression.patch"))
d0414883
LC
62 (sha256
63 (base32
b1a782b1 64 "1zq4lnwjlw8s9mmachwfvfjf2x3lk24jm41746ykhdcvs7r0zrfr"))))
d0414883
LC
65 (build-system gnu-build-system)
66 (home-page "http://www.libexpat.org/")
9e771e3b 67 (synopsis "Stream-oriented XML parser library written in C")
d0414883
LC
68 (description
69 "Expat is an XML parser library written in C. It is a
70stream-oriented parser in which an application registers handlers for
71things the parser might find in the XML document (like start tags).")
72 (license license:expat)))
f0444eaf
AE
73
74(define-public libxml2
75 (package
76 (name "libxml2")
0c83c6bf 77 (replacement libxml2/fixed)
3c9e0ddc 78 (version "2.9.4")
f0444eaf
AE
79 (source (origin
80 (method url-fetch)
81 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
82 version ".tar.gz"))
83 (sha256
84 (base32
3c9e0ddc 85 "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))
f0444eaf
AE
86 (build-system gnu-build-system)
87 (home-page "http://www.xmlsoft.org/")
35b9e423 88 (synopsis "C parser for XML")
c1944c92 89 (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
7ce32242 90 (native-inputs `(("perl" ,perl)))
2a8d4401
LC
91 ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
92 ;; sub-directory of any given package.
74528069
LC
93 (native-search-paths (list (search-path-specification
94 (variable "XML_CATALOG_FILES")
95 (separator " ")
96 (files '("xml"))
97 (file-pattern "^catalog\\.xml$")
98 (file-type 'regular))))
2a8d4401 99 (search-paths native-search-paths)
f0444eaf 100 (description
7c125ce0
AK
101 "Libxml2 is the XML C parser and toolkit developed for the Gnome
102project (but it is usable outside of the Gnome platform).")
f0444eaf 103 (license license:x11)))
58cc3b38 104
0c83c6bf
LF
105(define libxml2/fixed
106 (package
107 (inherit libxml2)
108 (source
109 (origin
110 (inherit (package-source libxml2))
3a2bcac6
LF
111 (patches (search-patches "libxml2-CVE-2016-4658.patch"
112 "libxml2-CVE-2016-5131.patch"))))))
0c83c6bf 113
7ce32242
SB
114(define-public python-libxml2
115 (package (inherit libxml2)
116 (name "python-libxml2")
92a7e46d 117 (replacement #f)
7ce32242
SB
118 (build-system python-build-system)
119 (arguments
120 `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
121 #:tests? #f
122 #:phases
123 (modify-phases %standard-phases
124 (add-before
125 'build 'configure
126 (lambda* (#:key inputs #:allow-other-keys)
127 (chdir "python")
128 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
129 "cross-libc" "libc")))
130 (libxml2 (assoc-ref inputs "libxml2")))
131 (substitute* "setup.py"
132 ;; For 'libxml2/libxml/tree.h'.
133 (("ROOT = r'/usr'")
134 (format #f "ROOT = r'~a'" libxml2))
135 ;; For 'iconv.h'.
136 (("/opt/include")
137 (string-append glibc "/include")))))))))
138 (inputs `(("libxml2" ,libxml2)))
139 (synopsis "Python bindings for the libxml2 library")))
140
141(define-public python2-libxml2
142 (package-with-python2 python-libxml2))
143
58cc3b38
AE
144(define-public libxslt
145 (package
146 (name "libxslt")
0b34b586 147 (replacement libxslt/fixed)
28b33172 148 (version "1.1.29")
58cc3b38
AE
149 (source (origin
150 (method url-fetch)
151 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
152 version ".tar.gz"))
153 (sha256
154 (base32
28b33172
LF
155 "1klh81xbm9ppzgqk339097i39b7fnpmlj8lzn8bpczl3aww6x5xm"))
156 (patches (search-patches "libxslt-generated-ids.patch"))))
58cc3b38
AE
157 (build-system gnu-build-system)
158 (home-page "http://xmlsoft.org/XSLT/index.html")
35b9e423 159 (synopsis "C library for applying XSLT stylesheets to XML documents")
58cc3b38
AE
160 (inputs `(("libgcrypt" ,libgcrypt)
161 ("libxml2" ,libxml2)
95288fcc 162 ("python" ,python-minimal-wrapper)
11e3f107 163 ("zlib" ,zlib)))
58cc3b38 164 (description
35b9e423 165 "Libxslt is an XSLT C library developed for the GNOME project. It is
58cc3b38
AE
166based on libxml for XML parsing, tree manipulation and XPath support.")
167 (license license:x11)))
2a1e82bb 168
0b34b586
LF
169(define libxslt/fixed
170 (package
171 (inherit libxslt)
172 (name "libxslt")
173 (source (origin
174 (inherit (package-source libxslt))
175 (patches (search-patches "libxslt-CVE-2016-4738.patch"))))))
176
5eec378b
BW
177(define-public perl-graph-readwrite
178 (package
179 (name "perl-graph-readwrite")
ffbc7d65 180 (version "2.09")
5eec378b
BW
181 (source
182 (origin
183 (method url-fetch)
184 (uri (string-append
185 "mirror://cpan/authors/id/N/NE/NEILB/Graph-ReadWrite-"
186 version
187 ".tar.gz"))
188 (sha256
189 (base32
ffbc7d65 190 "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
5eec378b
BW
191 (build-system perl-build-system)
192 (propagated-inputs
193 `(("perl-graph" ,perl-graph)
194 ("perl-parse-yapp" ,perl-parse-yapp)
195 ("perl-xml-parser" ,perl-xml-parser)
196 ("perl-xml-writer" ,perl-xml-writer)))
197 (home-page "http://search.cpan.org/dist/Graph-ReadWrite")
198 (synopsis "Modules for reading and writing directed graphs")
199 (description "This is a collection of perl classes for reading and writing
200directed graphs in a variety of file formats. The graphs are represented in
201Perl using Jarkko Hietaniemi's @code{Graph} classes.
202
203There are two base classes. @code{Graph::Reader} is the base class for classes
204which read a graph file and create an instance of the Graph class.
205@code{Graph::Writer} is the base class for classes which take an instance of
206the @code{Graph} class and write it out in a specific file format.")
207 (license (package-license perl))))
208
b2696a58 209(define-public perl-xml-atom
210 (package
211 (name "perl-xml-atom")
212 (version "0.41")
213 (source (origin
214 (method url-fetch)
215 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
216 "XML-Atom-" version ".tar.gz"))
217 (sha256
218 (base32
219 "17lnkb9ymrhk2z642bhj5i2bv3q1da3kpp2lvsl0yhqshk3wdjj8"))))
220 (build-system perl-build-system)
221 (native-inputs
222 `(("perl-datetime" ,perl-datetime)
223 ;; TODO package: perl-datetime-format-atom
224 ("perl-xml-xpath" ,perl-xml-xpath)))
225 (inputs
226 `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
227 ("perl-datetime" ,perl-datetime)
228 ("perl-datetime-timezone" ,perl-datetime-timezone)
229 ("perl-digest-sha1" ,perl-digest-sha1)
230 ("perl-libwww" ,perl-libwww)
231 ("perl-uri" ,perl-uri)
232 ("perl-xml-libxml" ,perl-xml-libxml)
233 ("perl-xml-xpath" ,perl-xml-xpath)))
234 (home-page "http://search.cpan.org/dist/XML-Atom")
235 (synopsis "Atom feed and API implementation")
236 (description
237 "Atom is a syndication, API, and archiving format for weblogs and other data.
238@code{XML::Atom} implements the feed format as well as a client for the API.")
239 (license (package-license perl))))
240
2a1e82bb
LC
241(define-public perl-xml-parser
242 (package
243 (name "perl-xml-parser")
d495634b 244 (version "2.44")
2a1e82bb
LC
245 (source (origin
246 (method url-fetch)
247 (uri (string-append
2b8c5f54 248 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
2a1e82bb
LC
249 version ".tar.gz"))
250 (sha256
251 (base32
d495634b 252 "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s"))))
2a1e82bb
LC
253 (build-system perl-build-system)
254 (arguments `(#:make-maker-flags
255 (let ((expat (assoc-ref %build-inputs "expat")))
256 (list (string-append "EXPATLIBPATH=" expat "/lib")
257 (string-append "EXPATINCPATH=" expat "/include")))))
258 (inputs `(("expat" ,expat)))
259 (license (package-license perl))
260 (synopsis "Perl bindings to the Expat XML parsing library")
261 (description
262 "This module provides ways to parse XML documents. It is built on top of
263XML::Parser::Expat, which is a lower level interface to James Clark's expat
264library. Each call to one of the parsing methods creates a new instance of
265XML::Parser::Expat which is then used to parse the document. Expat options
266may be provided when the XML::Parser object is created. These options are
267then passed on to the Expat object on each parse call. They can also be given
268as extra arguments to the parse methods, in which case they override options
269given at XML::Parser creation time.")
d495634b 270 (home-page "http://search.cpan.org/dist/XML-Parser")))
37f9ff63 271
7339fbe2 272(define-public perl-libxml
1385ba4f 273 (package
7339fbe2 274 (name "perl-libxml")
1385ba4f
AE
275 (version "0.08")
276 (source (origin
277 (method url-fetch)
278 (uri (string-append
279 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
280 version ".tar.gz"))
281 (sha256
282 (base32
283 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
284 (build-system perl-build-system)
7b81406a 285 (propagated-inputs
1385ba4f
AE
286 `(("perl-xml-parser" ,perl-xml-parser)))
287 (license (package-license perl))
288 (synopsis "Perl SAX parser using XML::Parser")
289 (description
290 "XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser
291module.")
292 (home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parser/PerlSAX.pm")))
293
3dd6bee1
EB
294(define-public perl-xml-libxml
295 (package
296 (name "perl-xml-libxml")
33906d54 297 (version "2.0128")
3dd6bee1
EB
298 (source
299 (origin
300 (method url-fetch)
301 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
302 "XML-LibXML-" version ".tar.gz"))
303 (sha256
304 (base32
33906d54 305 "0awgd2gjzy7kn38bqblsigikzl81xsi561phkz9f9b9v3x2vmrr6"))))
3dd6bee1
EB
306 (build-system perl-build-system)
307 (propagated-inputs
308 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
309 ("perl-xml-sax" ,perl-xml-sax)))
310 (inputs
311 `(("libxml2" ,libxml2)))
312 (home-page "http://search.cpan.org/dist/XML-LibXML")
313 (synopsis "Perl interface to libxml2")
314 (description "This module implements a Perl interface to the libxml2
54c3c140 315library which provides interfaces for parsing and manipulating XML files. This
3dd6bee1
EB
316module allows Perl programmers to make use of the highly capable validating
317XML parser and the high performance DOM implementation.")
318 (license (package-license perl))))
319
f7c4dc2f
RW
320(define-public perl-xml-libxml-simple
321 (package
322 (name "perl-xml-libxml-simple")
f3aa34cc 323 (version "0.97")
f7c4dc2f
RW
324 (source (origin
325 (method url-fetch)
326 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
327 "XML-LibXML-Simple-" version ".tar.gz"))
328 (sha256
329 (base32
f3aa34cc 330 "1g8nlk3zdz2cclxf7azvsb3jfxmvy6ml8wmj774k4qjqcsqmzk0w"))))
f7c4dc2f
RW
331 (build-system perl-build-system)
332 (propagated-inputs
333 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
334 ("perl-xml-libxml" ,perl-xml-libxml)))
335 (home-page "http://search.cpan.org/dist/XML-LibXML-Simple")
336 (synopsis "XML::LibXML based XML::Simple clone")
337 (description
338 "This package provides the same API as @code{XML::Simple} but is based on
339@code{XML::LibXML}.")
340 (license (package-license perl))))
341
93863a5e
RW
342(define-public perl-xml-libxslt
343 (package
344 (name "perl-xml-libxslt")
345 (version "1.95")
346 (source
347 (origin
348 (method url-fetch)
349 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
350 "XML-LibXSLT-" version ".tar.gz"))
351 (sha256
352 (base32
353 "0dggycql18kfxzkb1kw3yc7gslxlrrgyyn2r2ygsylycb89j3jpi"))))
354 (build-system perl-build-system)
355 (inputs
356 `(("libxslt" ,libxslt)))
357 (propagated-inputs
358 `(("perl-xml-libxml" ,perl-xml-libxml)))
359 (home-page "http://search.cpan.org/dist/XML-LibXSLT")
360 (synopsis "Perl bindings to GNOME libxslt library")
361 (description "This Perl module is an interface to the GNOME project's
362libxslt library.")
363 (license (package-license perl))))
364
b715dbac
EB
365(define-public perl-xml-namespacesupport
366 (package
367 (name "perl-xml-namespacesupport")
368 (version "1.11")
369 (source
370 (origin
371 (method url-fetch)
372 (uri (string-append "mirror://cpan/authors/id/P/PE/PERIGRIN/"
373 "XML-NamespaceSupport-" version ".tar.gz"))
374 (sha256
375 (base32
376 "1sklgcldl3w6gn706vx1cgz6pm4y5lfgsjxnfqyk20pilgq530bd"))))
377 (build-system perl-build-system)
378 (home-page "http://search.cpan.org/dist/XML-NamespaceSupport")
379 (synopsis "XML namespace support class")
380 (description "This module offers a simple to process namespaced XML
381names (unames) from within any application that may need them. It also helps
382maintain a prefix to namespace URI map, and provides a number of basic
383checks.")
384 (license (package-license perl))))
385
a022b23f 386(define-public perl-xml-rss
387 (package
388 (name "perl-xml-rss")
389 (version "1.59")
390 (source (origin
391 (method url-fetch)
392 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
393 "XML-RSS-" version ".tar.gz"))
394 (sha256
395 (base32
396 "0v6vfizn2psy6av057kp7fv3z3y73s6b3w56jm3zr6hlq48llsx2"))))
397 (build-system perl-build-system)
398 (native-inputs
399 `(("perl-module-build" ,perl-module-build)
400 ("perl-test-manifest" ,perl-test-manifest)
401 ("perl-test-differences" ,perl-test-differences)
402 ("perl-test-pod" ,perl-test-pod)
403 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
404 ;; XXX: The test which uses this modules does not run, even when it is included
405 ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
406 (inputs
407 `(("perl-datetime" ,perl-datetime)
408 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
409 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
410 ("perl-html-parser" ,perl-html-parser)
411 ("perl-xml-parser" ,perl-xml-parser)))
412 (home-page "http://search.cpan.org/dist/XML-RSS")
413 (synopsis "Creates and updates RSS files")
414 (description
415 "This module provides a basic framework for creating and maintaining
416RDF Site Summary (RSS) files. This distribution also contains many examples
417that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
4181.0 version, and more.")
419 (license (package-license perl))))
420
18b8bbb3
EB
421(define-public perl-xml-sax
422 (package
423 (name "perl-xml-sax")
424 (version "0.99")
425 (source
426 (origin
427 (method url-fetch)
428 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
429 "XML-SAX-" version ".tar.gz"))
430 (sha256
431 (base32
432 "115dypb50w1l94y3iwihv5nkixbsv1cxiqkd93y4rk5n6s74pc1j"))))
433 (build-system perl-build-system)
434 (propagated-inputs
435 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
436 ("perl-xml-sax-base" ,perl-xml-sax-base)))
437 (arguments
438 `(#:phases (modify-phases %standard-phases
439 (add-before
40b084a3 440 'install 'augment-path
18b8bbb3
EB
441 ;; The install target tries to load the newly-installed
442 ;; XML::SAX module, but can't find it, so we need to tell
443 ;; perl where to look.
444 (lambda* (#:key outputs #:allow-other-keys)
445 (setenv "PERL5LIB"
446 (string-append (getenv "PERL5LIB") ":"
447 (assoc-ref outputs "out")
448 "/lib/perl5/site_perl")))))))
449 (home-page "http://search.cpan.org/dist/XML-SAX")
450 (synopsis "Perl API for XML")
451 (description "XML::SAX consists of several framework classes for using and
452building Perl SAX2 XML parsers, filters, and drivers.")
453 (license (package-license perl))))
454
1ed6d5bc
EB
455(define-public perl-xml-sax-base
456 (package
457 (name "perl-xml-sax-base")
458 (version "1.08")
459 (source
460 (origin
461 (method url-fetch)
462 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
463 "XML-SAX-Base-" version ".tar.gz"))
464 (sha256
465 (base32
466 "17i161rq1ngjlk0c8vdkrkkc56y1pf51k1g54y28py0micqp0qk6"))))
467 (build-system perl-build-system)
468 (home-page "http://search.cpan.org/dist/XML-SAX-Base")
469 (synopsis "Base class for SAX Drivers and Filters")
470 (description "This module has a very simple task - to be a base class for
471PerlSAX drivers and filters. It's default behaviour is to pass the input
472directly to the output unchanged. It can be useful to use this module as a
473base class so you don't have to, for example, implement the characters()
474callback.")
475 (license (package-license perl))))
476
535dc6cf
AE
477(define-public perl-xml-simple
478 (package
479 (name "perl-xml-simple")
e831256f 480 (version "2.22")
535dc6cf
AE
481 (source (origin
482 (method url-fetch)
483 (uri (string-append
484 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
485 version ".tar.gz"))
486 (sha256
487 (base32
e831256f 488 "0jgbk30jizafpl7078jhw1di1yh08gf8d85dsvjllr595vr0widr"))))
535dc6cf 489 (build-system perl-build-system)
27ef7f45 490 (propagated-inputs
e831256f
EF
491 `(("perl-xml-parser" ,perl-xml-parser)
492 ("perl-xml-sax" ,perl-xml-sax)))
535dc6cf
AE
493 (license (package-license perl))
494 (synopsis "Perl module for easy reading/writing of XML files")
495 (description
496 "The XML::Simple module provides a simple API layer on top of an
497underlying XML parsing module (either XML::Parser or one of the SAX2
498parser modules).")
e831256f 499 (home-page "http://search.cpan.org/dist/XML-Simple")))
535dc6cf 500
a2e520af
AE
501(define-public perl-xml-regexp
502 (package
503 (name "perl-xml-regexp")
504 (version "0.04")
505 (source (origin
506 (method url-fetch)
507 (uri (string-append
508 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
509 version ".tar.gz"))
510 (sha256
511 (base32
512 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
513 (build-system perl-build-system)
514 (inputs
515 `(("perl-xml-parser" ,perl-xml-parser)))
516 (license (package-license perl))
517 (synopsis "Perl regular expressions for XML tokens")
518 (description
519 "XML::RegExp contains regular expressions for the following XML tokens:
520BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
521EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
522 (home-page "http://search.cpan.org/~tjmather/XML-RegExp/lib/XML/RegExp.pm")))
523
ad871fc6
AE
524(define-public perl-xml-dom
525 (package
526 (name "perl-xml-dom")
4e5465f2 527 (version "1.46")
ad871fc6
AE
528 (source (origin
529 (method url-fetch)
530 (uri (string-append
531 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
532 version ".tar.gz"))
533 (sha256
534 (base32
4e5465f2 535 "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
ad871fc6 536 (build-system perl-build-system)
f7faff88
AE
537 (propagated-inputs
538 `(("perl-libwww" ,perl-libwww)
ad871fc6 539 ("perl-libxml" ,perl-libxml)
4e5465f2 540 ("perl-xml-parser" ,perl-xml-parser)
ad871fc6
AE
541 ("perl-xml-regexp" ,perl-xml-regexp)))
542 (license (package-license perl))
543 (synopsis
544 "Perl module for building DOM Level 1 compliant document structures")
545 (description
546 "This module extends the XML::Parser module by Clark Cooper. The
547XML::Parser module is built on top of XML::Parser::Expat, which is a lower
548level interface to James Clark's expat library. XML::DOM::Parser is derived
549from XML::Parser. It parses XML strings or files and builds a data structure
550that conforms to the API of the Document Object Model.")
551 (home-page "http://search.cpan.org/~tjmather/XML-DOM-1.44/lib/XML/DOM.pm")))
552
649e1676
RW
553(define-public perl-xml-compile-tester
554 (package
555 (name "perl-xml-compile-tester")
556 (version "0.90")
557 (source (origin
558 (method url-fetch)
559 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
560 "XML-Compile-Tester-" version ".tar.gz"))
561 (sha256
562 (base32
563 "1bcl8x8cyacqv9yjp97aq9qq85sy8wv78kd8c16yd9yw3by4cpp1"))))
564 (build-system perl-build-system)
565 (propagated-inputs
566 `(("perl-log-report" ,perl-log-report)
567 ("perl-test-deep" ,perl-test-deep)))
568 (home-page "http://search.cpan.org/dist/XML-Compile-Tester")
569 (synopsis "XML::Compile related regression testing")
570 (description
571 "The @code{XML::Compile} module suite has extensive regression testing.
572This module provide functions which simplify writing tests for
573@code{XML::Compile} related distributions.")
574 (license (package-license perl))))
575
b494a5f1
RW
576(define-public perl-xml-compile
577 (package
578 (name "perl-xml-compile")
18c832b0 579 (version "1.54")
b494a5f1
RW
580 (source (origin
581 (method url-fetch)
582 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
583 "XML-Compile-" version ".tar.gz"))
584 (sha256
585 (base32
18c832b0 586 "1hp41960bpqxvv1samv9hc0ghhmvs3i16r4rfl9yp54lp6jhsr2c"))))
b494a5f1
RW
587 (build-system perl-build-system)
588 (propagated-inputs
589 `(("perl-log-report" ,perl-log-report)
590 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
591 ("perl-xml-libxml" ,perl-xml-libxml)
592 ("perl-test-deep" ,perl-test-deep)))
593 (home-page "http://search.cpan.org/dist/XML-Compile")
594 (synopsis "Compilation-based XML processing")
595 (description
596 "@code{XML::Compile} can be used to translate a Perl data-structure into
597XML or XML into a Perl data-structure, both directions under rigid control by
598a schema.")
599 (license (package-license perl))))
600
c1d41b5d
RW
601(define-public perl-xml-compile-cache
602 (package
603 (name "perl-xml-compile-cache")
6b9d3f55 604 (version "1.05")
c1d41b5d
RW
605 (source (origin
606 (method url-fetch)
607 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
608 "XML-Compile-Cache-" version ".tar.gz"))
609 (sha256
610 (base32
6b9d3f55 611 "0xbwlszhi9hg8sxm5ylglm2qvnb689i595p913awrj2g4mp9yfsw"))))
c1d41b5d
RW
612 (build-system perl-build-system)
613 (propagated-inputs
614 `(("perl-log-report" ,perl-log-report)
615 ("perl-xml-compile" ,perl-xml-compile)
616 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
617 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
618 (home-page "http://search.cpan.org/dist/XML-Compile-Cache")
619 (synopsis "Cache compiled XML translators")
620 (description
621 "This package provides methods to cache compiled XML translators.")
622 (license (package-license perl))))
623
baeab9b8
RW
624(define-public perl-xml-compile-soap
625 (package
626 (name "perl-xml-compile-soap")
0c3e27a4 627 (version "3.20")
baeab9b8
RW
628 (source (origin
629 (method url-fetch)
630 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
631 "XML-Compile-SOAP-" version ".tar.gz"))
632 (sha256
633 (base32
0c3e27a4 634 "0qplb77qr97pc9yis51jmphl9gbq9xyf8abldpxkwvdn6iqlbgx5"))))
baeab9b8
RW
635 (build-system perl-build-system)
636 (propagated-inputs
637 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
638 ("perl-libwww" ,perl-libwww)
639 ("perl-log-report" ,perl-log-report)
640 ("perl-xml-compile" ,perl-xml-compile)
641 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
642 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
643 (home-page "http://search.cpan.org/dist/XML-Compile-SOAP")
644 (synopsis "Base-class for SOAP implementations")
645 (description
646 "This module provides a class to handle the SOAP protocol. The first
647implementation is @url{SOAP1.1,
648http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
649used.")
650 (license (package-license perl))))
651
6a914948
RW
652(define-public perl-xml-compile-wsdl11
653 (package
654 (name "perl-xml-compile-wsdl11")
28a3b6b4 655 (version "3.05")
6a914948
RW
656 (source (origin
657 (method url-fetch)
658 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
659 "XML-Compile-WSDL11-" version ".tar.gz"))
660 (sha256
661 (base32
28a3b6b4 662 "1a50in1qrbzx3924wvrhgfm5fcxz5cd95f3z9z2xgln27q1zssc4"))))
6a914948
RW
663 (build-system perl-build-system)
664 (propagated-inputs
665 `(("perl-log-report" ,perl-log-report)
666 ("perl-xml-compile" ,perl-xml-compile)
667 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
668 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
669 (home-page "http://search.cpan.org/dist/XML-Compile-WSDL11")
670 (synopsis "Create SOAP messages defined by WSDL 1.1")
671 (description
672 "This module understands WSDL version 1.1. A WSDL file defines a set of
673messages to be send and received over SOAP connections. This involves
674encoding of the message to be send into XML, sending the message to the
675server, collect the answer, and finally decoding the XML to Perl.")
676 (license (package-license perl))))
677
246455c2 678(define-public perl-xml-feed
679 (package
680 (name "perl-xml-feed")
681 (version "0.53")
682 (source (origin
683 (method url-fetch)
684 (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
685 "XML-Feed-" version ".tar.gz"))
686 (sha256
687 (base32
688 "07b165g6wk8kqwpl49r3n0kag6p2nrkyp3ch0h8qyxb6nrnkkq7c"))))
689 (build-system perl-build-system)
690 (arguments
691 `(#:tests? #f)) ; Tests require internet connection
692 (native-inputs
693 `(("perl-module-build" ,perl-module-build)
694 ("perl-uri" ,perl-uri)
695 ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
696 (inputs
697 `(("perl-class-errorhandler" ,perl-class-errorhandler)
698 ("perl-datetime" ,perl-datetime)
699 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
700 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
701 ("perl-feed-find" ,perl-feed-find)
702 ("perl-html-parser" ,perl-html-parser)
703 ("perl-libwww-perl" ,perl-libwww)
704 ("perl-module-pluggable" ,perl-module-pluggable)
705 ("perl-uri-fetch" ,perl-uri-fetch)
706 ("perl-xml-atom" ,perl-xml-atom)
707 ("perl-xml-libxml" ,perl-xml-libxml)
708 ("perl-xml-rss" ,perl-xml-rss)))
709 (home-page "http://search.cpan.org/dist/XML-Feed")
710 (synopsis "XML Syndication Feed Support")
711 (description "@code{XML::Feed} is a syndication feed parser for both RSS and
712Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
713@code{XML::Feed} supports the following syndication feed formats:
714RSS 0.91, RSS 1.0, RSS 2.0, Atom")
715 (license (package-license perl))))
716
0c1bab36 717(define-public perl-xml-xpath
718 (package
719 (name "perl-xml-xpath")
47b4cedf 720 (version "1.40")
0c1bab36 721 (source (origin
722 (method url-fetch)
723 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
724 "XML-XPath-" version ".tar.gz"))
725 (sha256
726 (base32
47b4cedf 727 "07pa0bl42jka8mj7jshjynx8vpfh8b4cdyiv4zlkqvkqz98nzxib"))))
0c1bab36 728 (build-system perl-build-system)
729 (native-inputs
730 `(("perl-path-tiny" ,perl-path-tiny)))
731 (inputs
732 `(("perl-xml-parser" ,perl-xml-parser)))
733 (home-page "http://search.cpan.org/dist/XML-XPath")
734 (synopsis "Parse and evaluate XPath statements")
735 (description
736 "This module aims to comply exactly to the @url{XPath specification,
737https://www.w3.org/TR/xpath} and yet allow extensions to be added in
738the form of functions.")
739 (license (package-license perl))))
740
6ce212b8
RW
741(define-public pugixml
742 (package
743 (name "pugixml")
0562a81e 744 (version "1.7")
6ce212b8
RW
745 (source
746 (origin
747 (method url-fetch)
0562a81e
EF
748 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
749 version "/pugixml-" version ".tar.gz"))
6ce212b8
RW
750 (sha256
751 (base32
0562a81e 752 "1jpml475kbhs1aqwa48g2cbfxlrb9qp115m2j9yryxhxyr30vqgv"))))
6ce212b8
RW
753 (build-system cmake-build-system)
754 (arguments
755 `(#:tests? #f
756 #:out-of-source? #f
757 #:phases (modify-phases %standard-phases
758 (add-before
759 'configure 'chdir
760 (lambda _
761 (chdir "scripts")
762 #t)))))
763 (home-page "http://pugixml.org")
764 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
765 (description
766 "pugixml is a C++ XML processing library, which consists of a DOM-like
767interface with rich traversal/modification capabilities, a fast XML parser
768which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
769implementation for complex data-driven tree queries. Full Unicode support is
770also available, with Unicode interface variants and conversions between
771different Unicode encodings which happen automatically during
772parsing/saving.")
773 (license license:expat)))
774
c2efe1ae
MB
775(define-public python-pyxb
776 (package
777 (name "python-pyxb")
778 (version "1.2.5")
779 (source (origin
780 (method url-fetch)
781 (uri (pypi-uri "PyXB" version))
782 (sha256
783 (base32
784 "0rzzwibfqa28gxgcxx4cybx1qcg0g6fand06ykj3gz7z5kp653sf"))))
785 (build-system python-build-system)
786 (home-page "http://pyxb.sourceforge.net/")
787 (synopsis "Python XML Schema Bindings")
788 (description
789 "PyXB (\"pixbee\") is a pure Python package that generates Python source
790code for classes that correspond to data structures defined by XMLSchema.")
791 (license (list license:asl2.0 ; Most files.
792 license:expat ; pyxb/utils/six.py
793 license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
794 license:psfl)))) ; pyxb/utils/activestate.py
795
796(define-public python2-pyxb
797 (package-with-python2 python-pyxb))
798
37f9ff63
AE
799(define-public xmlto
800 (package
801 (name "xmlto")
877a6466 802 (version "0.0.28")
37f9ff63
AE
803 (source
804 (origin
805 (method url-fetch)
806 (uri (string-append
807 "https://fedorahosted.org/releases/x/m/xmlto/xmlto-"
808 version ".tar.bz2"))
809 (sha256
810 (base32
877a6466 811 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 812 (build-system gnu-build-system)
ae0c1202
LC
813 (arguments
814 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
815 '(#:configure-flags (list (string-append "GETOPT="
816 (assoc-ref %build-inputs
817 "util-linux")
818 "/bin/getopt"))))
37f9ff63 819 (inputs
ae0c1202
LC
820 `(("util-linux" ,util-linux) ; for 'getopt'
821 ("libxml2" ,libxml2) ; for 'xmllint'
822 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
823 (home-page "http://cyberelk.net/tim/software/xmlto/")
824 (synopsis "Front-end to an XSL toolchain")
825 (description
826 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
827stylesheet for the conversion you want and applies it using an external
828XSL-T processor. It also performs any necessary post-processing.")
829 (license license:gpl2+)))
0899144f
AE
830
831(define-public xmlsec
832 (package
833 (name "xmlsec")
834 (version "1.2.20")
835 (source (origin
836 (method url-fetch)
837 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
838 name "1-" version ".tar.gz"))
839 (sha256
840 (base32
841 "01bkbv2y3x8d1sf4dcln1x3y2jyj391s3208d9a2ndhglly5j89j"))))
842 (build-system gnu-build-system)
843 (propagated-inputs ; according to xmlsec1.pc
844 `(("libxml2" ,libxml2)
845 ("libxslt" ,libxslt)))
846 (inputs
847 `(("gnutls" ,gnutls)
848 ("libgcrypt" ,libgcrypt)
849 ("libltdl" ,libltdl)))
e4aab734
RW
850 (native-inputs
851 `(("pkg-config" ,pkg-config)))
0899144f
AE
852 (home-page "http://www.libexpat.org/")
853 (synopsis "XML Security Library")
854 (description
855 "The XML Security Library is a C library based on Libxml2. It
856supports XML security standards such as XML Signature, XML Encryption,
857Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
858Libxml2).")
859 (license (license:x11-style "file://COPYING"
860 "See 'COPYING' in the distribution."))))
96f8d991
RW
861
862(define-public minixml
863 (package
864 (name "minixml")
865 (version "2.9")
866 (source (origin
867 (method url-fetch)
868 (uri (string-append "http://www.msweet.org/files/project3/mxml-"
869 version ".tar.gz"))
870 (sha256
871 (base32
872 "14pzhlfidj5v1qbxy7a59yn4jz9pnjrs2zwalz228jsq7ijm9vfd"))))
873 (build-system gnu-build-system)
874 (arguments
875 `(#:tests? #f)) ;no "check" target
876 (home-page "http://www.minixml.org/")
877 (synopsis "Small XML parsing library")
878 (description
879 "Mini-XML is a small C library to read and write XML files and strings in
880UTF-8 and UTF-16 encoding.")
881 ;; LGPL 2.0+ with additional exceptions for static linking
882 (license license:lgpl2.0+)))
33ae9107
DT
883
884;; TinyXML is an unmaintained piece of software, so the patches and build
885;; system massaging have no upstream potential.
886(define-public tinyxml
887 (package
888 (name "tinyxml")
889 (version "2.6.2")
890 (source (origin
891 (method url-fetch)
de67e922
LF
892 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
893 version "/tinyxml_"
33ae9107
DT
894 (string-join (string-split version #\.) "_")
895 ".tar.gz"))
896 (sha256
897 (base32
898 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 899 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
900 (build-system gnu-build-system)
901 ;; This library is missing *a lot* of the steps to make it usable, so we
902 ;; have to add them here, like every other distro must do.
903 (arguments
904 `(#:phases
905 (modify-phases %standard-phases
906 (delete 'configure)
907 (add-after 'build 'build-shared-library
908 (lambda _
909 (zero? (system* "g++" "-Wall" "-O2" "-shared" "-fpic"
910 "tinyxml.cpp" "tinyxmlerror.cpp"
911 "tinyxmlparser.cpp" "tinystr.cpp"
912 "-o" "libtinyxml.so"))))
913 (replace 'check
914 (lambda _ (zero? (system "./xmltest"))))
915 (replace 'install
916 (lambda* (#:key outputs #:allow-other-keys)
917 (let* ((out (assoc-ref outputs "out"))
918 (include (string-append out "/include"))
919 (lib (string-append out "/lib"))
920 (pkgconfig (string-append out "/lib/pkgconfig"))
921 (doc (string-append out "/share/doc")))
922 ;; Install libs and headers.
923 (install-file "libtinyxml.so" lib)
924 (install-file "tinystr.h" include)
925 (install-file "tinyxml.h" include)
926 ;; Generate and install pkg-config file.
927 (mkdir-p pkgconfig)
928 ;; Software such as Kodi expect this file to be present, but
929 ;; it's not provided in the source code.
930 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
931 (lambda (port)
932 (format port "prefix=~a
933exec_prefix=${prefix}
934libdir=${exec_prefix}/lib
935includedir=${prefix}/include
936
937Name: TinyXML
938Description: A simple, small, C++ XML parser
939Version: ~a
940Libs: -L${libdir} -ltinyxml
941Cflags: -I${includedir}
942"
943 out ,version)))
944 ;; Install docs.
945 (mkdir-p doc)
946 (copy-recursively "docs" (string-append doc "tinyxml"))
947 #t))))))
948 (synopsis "Small XML parser for C++")
949 (description "TinyXML is a small and simple XML parsing library for the
05077200 950C++ programming language.")
33ae9107
DT
951 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
952 (license license:zlib)))
fe9451c5 953
931bd7f6
TGR
954(define-public tinyxml2
955 (package
956 (name "tinyxml2")
957 (version "4.0.1")
958 (source
959 (origin
960 (method url-fetch)
961 (uri (string-append "https://github.com/leethomason/tinyxml2/archive/"
962 version ".tar.gz"))
963 (sha256
964 (base32
965 "083z4r4khcndxi9k840lcr48sqxvar4gpsnf749xfdn1bkr8xcql"))))
966 (build-system cmake-build-system)
967 (arguments
968 `(#:tests? #f)) ; no tests
969 (synopsis "Small XML parser for C++")
970 (description "TinyXML2 is a small and simple XML parsing library for the
971C++ programming language.")
972 (home-page "http://www.grinninglizard.com/tinyxml2/")
973 (license license:zlib)))
974
fe9451c5
RG
975(define-public xmlstarlet
976 (package
977 (name "xmlstarlet")
978 (version "1.6.1")
979 (source
980 (origin
981 (method url-fetch)
982 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
983 version "/xmlstarlet-" version ".tar.gz"))
984 (sha256
985 (base32
986 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
987 (build-system gnu-build-system)
988 (inputs
989 `(("libxslt" ,libxslt)
990 ("libxml2" ,libxml2)))
991 (home-page "http://xmlstar.sourceforge.net/")
992 (synopsis "Command line XML toolkit")
993 (description "XMLStarlet is a set of command line utilities which can be
994used to transform, query, validate, and edit XML documents. XPath is used to
995match and extract data, and elements can be added, deleted or modified using
996XSLT and EXSLT.")
997 (license license:x11)))
19c33040
JN
998
999(define-public xlsx2csv
1000 (package
1001 (name "xlsx2csv")
1002 (version "0.7.2")
1003 (source (origin
1004 (method url-fetch)
1005 (uri (string-append
1006 "https://github.com/dilshod/"
1007 name "/archive/release/" version ".tar.gz"))
1008 (file-name (string-append name "-" version ".tar.gz"))
1009 (sha256
1010 (base32
1011 "1gpn6kaa7l1ai8c9zx2j3acf04bvxq79pni8jjfjrk01smjbyyql"))))
1012 (build-system python-build-system)
1013 (arguments
1014 `(#:python ,python-2 ; Use python-2 for the test script.
1015 #:phases
1016 (modify-phases %standard-phases
1017 (replace 'check
1018 (lambda _
1019 (substitute* "test/run"
1020 ;; Run tests with `python' only
1021 (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
1022 (zero? (system* "test/run")))))))
1023 (home-page "https://github.com/dilshod/xlsx2csv")
1024 (synopsis "XLSX to CSV converter")
1025 (description
1026 "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
1027XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
1028files. It is designed to be fast and to handle large input files.")
1029 (license license:gpl2+)))