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