gnu: libuv: Update to 1.15.0.
[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>
d00d6cea 6;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
96fd87c9 7;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
0f763641 8;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
fe9451c5 9;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
c74c7c13 10;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
e9f62e52 11;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
5eec378b 12;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
19c33040 13;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
d2b51c08 14;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
63bbf38f 15;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
d66fa696 16;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
f9f67fcb 17;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
5bc2d579 18;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
76fed2b3 19;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
3b695802 20;;; Copyright © 2017 Petter <petter@mykolab.ch>
d0414883
LC
21;;;
22;;; This file is part of GNU Guix.
23;;;
24;;; GNU Guix is free software; you can redistribute it and/or modify it
25;;; under the terms of the GNU General Public License as published by
26;;; the Free Software Foundation; either version 3 of the License, or (at
27;;; your option) any later version.
28;;;
29;;; GNU Guix is distributed in the hope that it will be useful, but
30;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32;;; GNU General Public License for more details.
33;;;
34;;; You should have received a copy of the GNU General Public License
35;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
1ffa7090 37(define-module (gnu packages xml)
f0444eaf 38 #:use-module (gnu packages)
0899144f 39 #:use-module (gnu packages autotools)
322cbda7 40 #:use-module (gnu packages compression)
58cc3b38 41 #:use-module (gnu packages gnupg)
f0444eaf
AE
42 #:use-module (gnu packages perl)
43 #:use-module (gnu packages python)
a7fd7b68 44 #:use-module (gnu packages tls)
ad871fc6 45 #:use-module (gnu packages web)
b5b73a82 46 #:use-module ((guix licenses) #:prefix license:)
d0414883
LC
47 #:use-module (guix packages)
48 #:use-module (guix download)
77d7b57c 49 #:use-module (guix build-system ant)
6ce212b8 50 #:use-module (guix build-system cmake)
2a1e82bb 51 #:use-module (guix build-system gnu)
37f9ff63 52 #:use-module (guix build-system perl)
7ce32242 53 #:use-module (guix build-system python)
e4aab734
RW
54 #:use-module (gnu packages linux)
55 #:use-module (gnu packages pkg-config))
d0414883
LC
56
57(define-public expat
58 (package
59 (name "expat")
b7883b11 60 (version "2.2.4")
d0414883
LC
61 (source (origin
62 (method url-fetch)
63 (uri (string-append "mirror://sourceforge/expat/expat/"
51514e69 64 version "/expat-" version ".tar.bz2"))
d0414883
LC
65 (sha256
66 (base32
b7883b11 67 "17h1fb9zvqvf0sr78j211bngc6jpql5wzar8fg9b52jzjvdqbb83"))))
d0414883
LC
68 (build-system gnu-build-system)
69 (home-page "http://www.libexpat.org/")
9e771e3b 70 (synopsis "Stream-oriented XML parser library written in C")
d0414883
LC
71 (description
72 "Expat is an XML parser library written in C. It is a
73stream-oriented parser in which an application registers handlers for
74things the parser might find in the XML document (like start tags).")
75 (license license:expat)))
f0444eaf 76
5bc2d579
GG
77(define-public libebml
78 (package
79 (name "libebml")
80 (version "1.3.4")
81 (source
82 (origin
83 (method url-fetch)
84 (uri (string-append "https://dl.matroska.org/downloads/"
85 name "/" name "-" version ".tar.bz2"))
86 (sha256
87 (base32
88 "11zka6z9ncywyjr1gfm5cnii33ln7y3w6s86kiacchip2g7kw3f5"))))
89 (build-system gnu-build-system)
90 (home-page "https://www.matroska.org")
91 (synopsis "C++ libary to parse EBML files")
92 (description "libebml is a C++ library to read and write EBML (Extensible
93Binary Meta Language) files. EBML was designed to be a simplified binary
94extension of XML for the purpose of storing and manipulating data in a
95hierarchical form with variable field lengths.")
96 (license license:lgpl2.1)))
97
f0444eaf
AE
98(define-public libxml2
99 (package
100 (name "libxml2")
c0962952 101 (version "2.9.6")
f0444eaf
AE
102 (source (origin
103 (method url-fetch)
104 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
105 version ".tar.gz"))
106 (sha256
107 (base32
c0962952 108 "1g7byn6y0yw17rl74gs89xnxrpwj424938rf8qfqh3i4lz63i44b"))))
f0444eaf
AE
109 (build-system gnu-build-system)
110 (home-page "http://www.xmlsoft.org/")
35b9e423 111 (synopsis "C parser for XML")
c1944c92 112 (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
7ce32242 113 (native-inputs `(("perl" ,perl)))
2a8d4401
LC
114 ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
115 ;; sub-directory of any given package.
74528069
LC
116 (native-search-paths (list (search-path-specification
117 (variable "XML_CATALOG_FILES")
118 (separator " ")
119 (files '("xml"))
120 (file-pattern "^catalog\\.xml$")
121 (file-type 'regular))))
2a8d4401 122 (search-paths native-search-paths)
f0444eaf 123 (description
7c125ce0
AK
124 "Libxml2 is the XML C parser and toolkit developed for the Gnome
125project (but it is usable outside of the Gnome platform).")
f0444eaf 126 (license license:x11)))
58cc3b38 127
7ce32242
SB
128(define-public python-libxml2
129 (package (inherit libxml2)
130 (name "python-libxml2")
131 (build-system python-build-system)
132 (arguments
133 `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
134 #:tests? #f
135 #:phases
136 (modify-phases %standard-phases
137 (add-before
138 'build 'configure
139 (lambda* (#:key inputs #:allow-other-keys)
140 (chdir "python")
141 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
142 "cross-libc" "libc")))
143 (libxml2 (assoc-ref inputs "libxml2")))
144 (substitute* "setup.py"
145 ;; For 'libxml2/libxml/tree.h'.
146 (("ROOT = r'/usr'")
147 (format #f "ROOT = r'~a'" libxml2))
148 ;; For 'iconv.h'.
149 (("/opt/include")
150 (string-append glibc "/include")))))))))
151 (inputs `(("libxml2" ,libxml2)))
152 (synopsis "Python bindings for the libxml2 library")))
153
154(define-public python2-libxml2
155 (package-with-python2 python-libxml2))
156
58cc3b38
AE
157(define-public libxslt
158 (package
159 (name "libxslt")
128ea172 160 (version "1.1.31")
58cc3b38
AE
161 (source (origin
162 (method url-fetch)
163 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
164 version ".tar.gz"))
165 (sha256
166 (base32
128ea172 167 "1azk48vf91nfajhm7k9cz3zrvh0aaq85ph37gqkl84c0ddmyj9fv"))
28b33172 168 (patches (search-patches "libxslt-generated-ids.patch"))))
58cc3b38
AE
169 (build-system gnu-build-system)
170 (home-page "http://xmlsoft.org/XSLT/index.html")
35b9e423 171 (synopsis "C library for applying XSLT stylesheets to XML documents")
58cc3b38
AE
172 (inputs `(("libgcrypt" ,libgcrypt)
173 ("libxml2" ,libxml2)
95288fcc 174 ("python" ,python-minimal-wrapper)
11e3f107 175 ("zlib" ,zlib)))
58cc3b38 176 (description
35b9e423 177 "Libxslt is an XSLT C library developed for the GNOME project. It is
58cc3b38
AE
178based on libxml for XML parsing, tree manipulation and XPath support.")
179 (license license:x11)))
2a1e82bb 180
5eec378b
BW
181(define-public perl-graph-readwrite
182 (package
183 (name "perl-graph-readwrite")
ffbc7d65 184 (version "2.09")
5eec378b
BW
185 (source
186 (origin
187 (method url-fetch)
188 (uri (string-append
189 "mirror://cpan/authors/id/N/NE/NEILB/Graph-ReadWrite-"
190 version
191 ".tar.gz"))
192 (sha256
193 (base32
ffbc7d65 194 "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
5eec378b
BW
195 (build-system perl-build-system)
196 (propagated-inputs
197 `(("perl-graph" ,perl-graph)
198 ("perl-parse-yapp" ,perl-parse-yapp)
199 ("perl-xml-parser" ,perl-xml-parser)
200 ("perl-xml-writer" ,perl-xml-writer)))
201 (home-page "http://search.cpan.org/dist/Graph-ReadWrite")
202 (synopsis "Modules for reading and writing directed graphs")
203 (description "This is a collection of perl classes for reading and writing
204directed graphs in a variety of file formats. The graphs are represented in
205Perl using Jarkko Hietaniemi's @code{Graph} classes.
206
207There are two base classes. @code{Graph::Reader} is the base class for classes
208which read a graph file and create an instance of the Graph class.
209@code{Graph::Writer} is the base class for classes which take an instance of
210the @code{Graph} class and write it out in a specific file format.")
2f3108ad 211 (license license:perl-license)))
5eec378b 212
b2696a58 213(define-public perl-xml-atom
214 (package
215 (name "perl-xml-atom")
522f1995 216 (version "0.42")
b2696a58 217 (source (origin
218 (method url-fetch)
219 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
220 "XML-Atom-" version ".tar.gz"))
221 (sha256
222 (base32
522f1995 223 "1wa8kfy1w4mg7kzxim4whyprkn48a2il6fap0b947zywknw4c6y6"))))
b2696a58 224 (build-system perl-build-system)
522f1995
MB
225 (arguments
226 `(#:phases
227 (modify-phases %standard-phases
228 (add-before 'check 'set-perl-search-path
229 (lambda _
230 (setenv "PERL5LIB"
231 (string-append (getcwd) ":"
232 (getenv "PERL5LIB")))
233 #t)))))
b2696a58 234 (native-inputs
235 `(("perl-datetime" ,perl-datetime)
236 ;; TODO package: perl-datetime-format-atom
522f1995
MB
237 ("perl-html-tagset" ,perl-html-tagset)
238 ("perl-module-build-tiny" ,perl-module-build-tiny)
9dab5017 239 ("perl-module-install" ,perl-module-install)
b2696a58 240 ("perl-xml-xpath" ,perl-xml-xpath)))
241 (inputs
242 `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
243 ("perl-datetime" ,perl-datetime)
244 ("perl-datetime-timezone" ,perl-datetime-timezone)
245 ("perl-digest-sha1" ,perl-digest-sha1)
246 ("perl-libwww" ,perl-libwww)
247 ("perl-uri" ,perl-uri)
248 ("perl-xml-libxml" ,perl-xml-libxml)
249 ("perl-xml-xpath" ,perl-xml-xpath)))
250 (home-page "http://search.cpan.org/dist/XML-Atom")
251 (synopsis "Atom feed and API implementation")
252 (description
253 "Atom is a syndication, API, and archiving format for weblogs and other data.
254@code{XML::Atom} implements the feed format as well as a client for the API.")
2f3108ad 255 (license license:perl-license)))
b2696a58 256
d66fa696
MB
257(define-public perl-xml-descent
258 (package
259 (name "perl-xml-descent")
260 (version "1.04")
261 (source (origin
262 (method url-fetch)
263 (uri (string-append "mirror://cpan/authors/id/A/AN/ANDYA/"
264 "XML-Descent-" version ".tar.gz"))
265 (sha256
266 (base32
267 "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7"))))
268 (build-system perl-build-system)
269 (native-inputs
270 `(("perl-module-build" ,perl-module-build)))
271 (propagated-inputs
272 `(("perl-test-differences" ,perl-test-differences)
273 ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
274 (home-page "http://search.cpan.org/dist/XML-Descent")
275 (synopsis "Recursive descent XML parsing")
276 (description
277 "The conventional models for parsing XML are either @dfn{DOM}
278(a data structure representing the entire document tree is created) or
279@dfn{SAX} (callbacks are issued for each element in the XML).
280
281XML grammar is recursive - so it's nice to be able to write recursive
282parsers for it. @code{XML::Descent} allows such parsers to be created.")
2f3108ad 283 (license license:perl-license)))
d66fa696 284
2a1e82bb
LC
285(define-public perl-xml-parser
286 (package
287 (name "perl-xml-parser")
d495634b 288 (version "2.44")
2a1e82bb
LC
289 (source (origin
290 (method url-fetch)
291 (uri (string-append
2b8c5f54 292 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
2a1e82bb
LC
293 version ".tar.gz"))
294 (sha256
295 (base32
d495634b 296 "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s"))))
2a1e82bb
LC
297 (build-system perl-build-system)
298 (arguments `(#:make-maker-flags
299 (let ((expat (assoc-ref %build-inputs "expat")))
300 (list (string-append "EXPATLIBPATH=" expat "/lib")
301 (string-append "EXPATINCPATH=" expat "/include")))))
302 (inputs `(("expat" ,expat)))
2f3108ad 303 (license license:perl-license)
2a1e82bb
LC
304 (synopsis "Perl bindings to the Expat XML parsing library")
305 (description
306 "This module provides ways to parse XML documents. It is built on top of
307XML::Parser::Expat, which is a lower level interface to James Clark's expat
308library. Each call to one of the parsing methods creates a new instance of
309XML::Parser::Expat which is then used to parse the document. Expat options
310may be provided when the XML::Parser object is created. These options are
311then passed on to the Expat object on each parse call. They can also be given
312as extra arguments to the parse methods, in which case they override options
313given at XML::Parser creation time.")
d495634b 314 (home-page "http://search.cpan.org/dist/XML-Parser")))
37f9ff63 315
62b28f19
MB
316(define-public perl-xml-tokeparser
317 (package
318 (name "perl-xml-tokeparser")
319 (version "0.05")
320 (source (origin
321 (method url-fetch)
322 (uri (string-append "mirror://cpan/authors/id/P/PO/PODMASTER/"
323 "XML-TokeParser-" version ".tar.gz"))
324 (sha256
325 (base32
326 "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
327 (build-system perl-build-system)
328 (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
329 (home-page "http://search.cpan.org/dist/XML-TokeParser")
330 (synopsis "Simplified interface to XML::Parser")
331 (description
332 "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface
333to @code{XML::Parser} in much the same way that Gisle Aas'
334@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}.
335@code{XML::TokeParser} splits its XML input up into \"tokens\", each
336corresponding to an @code{XML::Parser} event.")
2f3108ad 337 (license license:perl-license)))
62b28f19 338
7339fbe2 339(define-public perl-libxml
1385ba4f 340 (package
7339fbe2 341 (name "perl-libxml")
1385ba4f
AE
342 (version "0.08")
343 (source (origin
344 (method url-fetch)
345 (uri (string-append
346 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
347 version ".tar.gz"))
348 (sha256
349 (base32
350 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
351 (build-system perl-build-system)
7b81406a 352 (propagated-inputs
1385ba4f 353 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 354 (license license:perl-license)
1385ba4f
AE
355 (synopsis "Perl SAX parser using XML::Parser")
356 (description
357 "XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser
358module.")
359 (home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parser/PerlSAX.pm")))
360
3dd6bee1
EB
361(define-public perl-xml-libxml
362 (package
363 (name "perl-xml-libxml")
58ade302 364 (version "2.0132")
3dd6bee1
EB
365 (source
366 (origin
367 (method url-fetch)
368 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
369 "XML-LibXML-" version ".tar.gz"))
370 (sha256
371 (base32
58ade302 372 "0xnl281hb590i287fxpl947f1s4zl9dnvc4ajvsqi89w23im453j"))))
3dd6bee1
EB
373 (build-system perl-build-system)
374 (propagated-inputs
375 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
376 ("perl-xml-sax" ,perl-xml-sax)))
377 (inputs
378 `(("libxml2" ,libxml2)))
379 (home-page "http://search.cpan.org/dist/XML-LibXML")
380 (synopsis "Perl interface to libxml2")
381 (description "This module implements a Perl interface to the libxml2
54c3c140 382library which provides interfaces for parsing and manipulating XML files. This
3dd6bee1
EB
383module allows Perl programmers to make use of the highly capable validating
384XML parser and the high performance DOM implementation.")
2f3108ad 385 (license license:perl-license)))
3dd6bee1 386
f7c4dc2f
RW
387(define-public perl-xml-libxml-simple
388 (package
389 (name "perl-xml-libxml-simple")
f3aa34cc 390 (version "0.97")
f7c4dc2f
RW
391 (source (origin
392 (method url-fetch)
393 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
394 "XML-LibXML-Simple-" version ".tar.gz"))
395 (sha256
396 (base32
f3aa34cc 397 "1g8nlk3zdz2cclxf7azvsb3jfxmvy6ml8wmj774k4qjqcsqmzk0w"))))
f7c4dc2f
RW
398 (build-system perl-build-system)
399 (propagated-inputs
400 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
401 ("perl-xml-libxml" ,perl-xml-libxml)))
402 (home-page "http://search.cpan.org/dist/XML-LibXML-Simple")
403 (synopsis "XML::LibXML based XML::Simple clone")
404 (description
405 "This package provides the same API as @code{XML::Simple} but is based on
406@code{XML::LibXML}.")
2f3108ad 407 (license license:perl-license)))
f7c4dc2f 408
93863a5e
RW
409(define-public perl-xml-libxslt
410 (package
411 (name "perl-xml-libxslt")
412 (version "1.95")
413 (source
414 (origin
415 (method url-fetch)
416 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
417 "XML-LibXSLT-" version ".tar.gz"))
418 (sha256
419 (base32
420 "0dggycql18kfxzkb1kw3yc7gslxlrrgyyn2r2ygsylycb89j3jpi"))))
421 (build-system perl-build-system)
422 (inputs
423 `(("libxslt" ,libxslt)))
424 (propagated-inputs
425 `(("perl-xml-libxml" ,perl-xml-libxml)))
426 (home-page "http://search.cpan.org/dist/XML-LibXSLT")
427 (synopsis "Perl bindings to GNOME libxslt library")
428 (description "This Perl module is an interface to the GNOME project's
429libxslt library.")
2f3108ad 430 (license license:perl-license)))
93863a5e 431
b715dbac
EB
432(define-public perl-xml-namespacesupport
433 (package
434 (name "perl-xml-namespacesupport")
88958ee0 435 (version "1.12")
b715dbac
EB
436 (source
437 (origin
438 (method url-fetch)
439 (uri (string-append "mirror://cpan/authors/id/P/PE/PERIGRIN/"
440 "XML-NamespaceSupport-" version ".tar.gz"))
441 (sha256
442 (base32
88958ee0 443 "1vz5pbi4lm5fhq2slrs2hlp6bnk29863abgjlcx43l4dky2rbsa7"))))
b715dbac
EB
444 (build-system perl-build-system)
445 (home-page "http://search.cpan.org/dist/XML-NamespaceSupport")
446 (synopsis "XML namespace support class")
447 (description "This module offers a simple to process namespaced XML
448names (unames) from within any application that may need them. It also helps
449maintain a prefix to namespace URI map, and provides a number of basic
450checks.")
2f3108ad 451 (license license:perl-license)))
b715dbac 452
a022b23f 453(define-public perl-xml-rss
454 (package
455 (name "perl-xml-rss")
456 (version "1.59")
457 (source (origin
458 (method url-fetch)
459 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
460 "XML-RSS-" version ".tar.gz"))
461 (sha256
462 (base32
463 "0v6vfizn2psy6av057kp7fv3z3y73s6b3w56jm3zr6hlq48llsx2"))))
464 (build-system perl-build-system)
465 (native-inputs
466 `(("perl-module-build" ,perl-module-build)
467 ("perl-test-manifest" ,perl-test-manifest)
468 ("perl-test-differences" ,perl-test-differences)
469 ("perl-test-pod" ,perl-test-pod)
470 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
471 ;; XXX: The test which uses this modules does not run, even when it is included
472 ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
473 (inputs
474 `(("perl-datetime" ,perl-datetime)
475 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
476 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
477 ("perl-html-parser" ,perl-html-parser)
478 ("perl-xml-parser" ,perl-xml-parser)))
479 (home-page "http://search.cpan.org/dist/XML-RSS")
480 (synopsis "Creates and updates RSS files")
481 (description
482 "This module provides a basic framework for creating and maintaining
483RDF Site Summary (RSS) files. This distribution also contains many examples
484that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
4851.0 version, and more.")
2f3108ad 486 (license license:perl-license)))
a022b23f 487
18b8bbb3
EB
488(define-public perl-xml-sax
489 (package
490 (name "perl-xml-sax")
491 (version "0.99")
492 (source
493 (origin
494 (method url-fetch)
495 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
496 "XML-SAX-" version ".tar.gz"))
497 (sha256
498 (base32
499 "115dypb50w1l94y3iwihv5nkixbsv1cxiqkd93y4rk5n6s74pc1j"))))
500 (build-system perl-build-system)
501 (propagated-inputs
502 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
503 ("perl-xml-sax-base" ,perl-xml-sax-base)))
504 (arguments
505 `(#:phases (modify-phases %standard-phases
506 (add-before
40b084a3 507 'install 'augment-path
18b8bbb3
EB
508 ;; The install target tries to load the newly-installed
509 ;; XML::SAX module, but can't find it, so we need to tell
510 ;; perl where to look.
511 (lambda* (#:key outputs #:allow-other-keys)
512 (setenv "PERL5LIB"
513 (string-append (getenv "PERL5LIB") ":"
514 (assoc-ref outputs "out")
515 "/lib/perl5/site_perl")))))))
516 (home-page "http://search.cpan.org/dist/XML-SAX")
517 (synopsis "Perl API for XML")
518 (description "XML::SAX consists of several framework classes for using and
519building Perl SAX2 XML parsers, filters, and drivers.")
2f3108ad 520 (license license:perl-license)))
18b8bbb3 521
1ed6d5bc
EB
522(define-public perl-xml-sax-base
523 (package
524 (name "perl-xml-sax-base")
525 (version "1.08")
526 (source
527 (origin
528 (method url-fetch)
529 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
530 "XML-SAX-Base-" version ".tar.gz"))
531 (sha256
532 (base32
533 "17i161rq1ngjlk0c8vdkrkkc56y1pf51k1g54y28py0micqp0qk6"))))
534 (build-system perl-build-system)
535 (home-page "http://search.cpan.org/dist/XML-SAX-Base")
536 (synopsis "Base class for SAX Drivers and Filters")
537 (description "This module has a very simple task - to be a base class for
538PerlSAX drivers and filters. It's default behaviour is to pass the input
539directly to the output unchanged. It can be useful to use this module as a
540base class so you don't have to, for example, implement the characters()
541callback.")
2f3108ad 542 (license license:perl-license)))
1ed6d5bc 543
535dc6cf
AE
544(define-public perl-xml-simple
545 (package
546 (name "perl-xml-simple")
e831256f 547 (version "2.22")
535dc6cf
AE
548 (source (origin
549 (method url-fetch)
550 (uri (string-append
551 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
552 version ".tar.gz"))
553 (sha256
554 (base32
e831256f 555 "0jgbk30jizafpl7078jhw1di1yh08gf8d85dsvjllr595vr0widr"))))
535dc6cf 556 (build-system perl-build-system)
27ef7f45 557 (propagated-inputs
e831256f
EF
558 `(("perl-xml-parser" ,perl-xml-parser)
559 ("perl-xml-sax" ,perl-xml-sax)))
2f3108ad 560 (license license:perl-license)
535dc6cf
AE
561 (synopsis "Perl module for easy reading/writing of XML files")
562 (description
563 "The XML::Simple module provides a simple API layer on top of an
564underlying XML parsing module (either XML::Parser or one of the SAX2
565parser modules).")
e831256f 566 (home-page "http://search.cpan.org/dist/XML-Simple")))
535dc6cf 567
a2e520af
AE
568(define-public perl-xml-regexp
569 (package
570 (name "perl-xml-regexp")
571 (version "0.04")
572 (source (origin
573 (method url-fetch)
574 (uri (string-append
575 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
576 version ".tar.gz"))
577 (sha256
578 (base32
579 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
580 (build-system perl-build-system)
581 (inputs
582 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 583 (license license:perl-license)
a2e520af
AE
584 (synopsis "Perl regular expressions for XML tokens")
585 (description
586 "XML::RegExp contains regular expressions for the following XML tokens:
587BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
588EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
589 (home-page "http://search.cpan.org/~tjmather/XML-RegExp/lib/XML/RegExp.pm")))
590
ad871fc6
AE
591(define-public perl-xml-dom
592 (package
593 (name "perl-xml-dom")
4e5465f2 594 (version "1.46")
ad871fc6
AE
595 (source (origin
596 (method url-fetch)
597 (uri (string-append
598 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
599 version ".tar.gz"))
600 (sha256
601 (base32
4e5465f2 602 "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
ad871fc6 603 (build-system perl-build-system)
f7faff88
AE
604 (propagated-inputs
605 `(("perl-libwww" ,perl-libwww)
ad871fc6 606 ("perl-libxml" ,perl-libxml)
4e5465f2 607 ("perl-xml-parser" ,perl-xml-parser)
ad871fc6 608 ("perl-xml-regexp" ,perl-xml-regexp)))
2f3108ad 609 (license license:perl-license)
ad871fc6
AE
610 (synopsis
611 "Perl module for building DOM Level 1 compliant document structures")
612 (description
613 "This module extends the XML::Parser module by Clark Cooper. The
614XML::Parser module is built on top of XML::Parser::Expat, which is a lower
615level interface to James Clark's expat library. XML::DOM::Parser is derived
616from XML::Parser. It parses XML strings or files and builds a data structure
617that conforms to the API of the Document Object Model.")
618 (home-page "http://search.cpan.org/~tjmather/XML-DOM-1.44/lib/XML/DOM.pm")))
619
649e1676
RW
620(define-public perl-xml-compile-tester
621 (package
622 (name "perl-xml-compile-tester")
623 (version "0.90")
624 (source (origin
625 (method url-fetch)
626 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
627 "XML-Compile-Tester-" version ".tar.gz"))
628 (sha256
629 (base32
630 "1bcl8x8cyacqv9yjp97aq9qq85sy8wv78kd8c16yd9yw3by4cpp1"))))
631 (build-system perl-build-system)
632 (propagated-inputs
633 `(("perl-log-report" ,perl-log-report)
634 ("perl-test-deep" ,perl-test-deep)))
635 (home-page "http://search.cpan.org/dist/XML-Compile-Tester")
636 (synopsis "XML::Compile related regression testing")
637 (description
638 "The @code{XML::Compile} module suite has extensive regression testing.
639This module provide functions which simplify writing tests for
640@code{XML::Compile} related distributions.")
2f3108ad 641 (license license:perl-license)))
649e1676 642
b494a5f1
RW
643(define-public perl-xml-compile
644 (package
645 (name "perl-xml-compile")
18c832b0 646 (version "1.54")
b494a5f1
RW
647 (source (origin
648 (method url-fetch)
649 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
650 "XML-Compile-" version ".tar.gz"))
651 (sha256
652 (base32
18c832b0 653 "1hp41960bpqxvv1samv9hc0ghhmvs3i16r4rfl9yp54lp6jhsr2c"))))
b494a5f1
RW
654 (build-system perl-build-system)
655 (propagated-inputs
656 `(("perl-log-report" ,perl-log-report)
657 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
658 ("perl-xml-libxml" ,perl-xml-libxml)
659 ("perl-test-deep" ,perl-test-deep)))
660 (home-page "http://search.cpan.org/dist/XML-Compile")
661 (synopsis "Compilation-based XML processing")
662 (description
663 "@code{XML::Compile} can be used to translate a Perl data-structure into
664XML or XML into a Perl data-structure, both directions under rigid control by
665a schema.")
2f3108ad 666 (license license:perl-license)))
b494a5f1 667
c1d41b5d
RW
668(define-public perl-xml-compile-cache
669 (package
670 (name "perl-xml-compile-cache")
6b9d3f55 671 (version "1.05")
c1d41b5d
RW
672 (source (origin
673 (method url-fetch)
674 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
675 "XML-Compile-Cache-" version ".tar.gz"))
676 (sha256
677 (base32
6b9d3f55 678 "0xbwlszhi9hg8sxm5ylglm2qvnb689i595p913awrj2g4mp9yfsw"))))
c1d41b5d
RW
679 (build-system perl-build-system)
680 (propagated-inputs
681 `(("perl-log-report" ,perl-log-report)
682 ("perl-xml-compile" ,perl-xml-compile)
683 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
684 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
685 (home-page "http://search.cpan.org/dist/XML-Compile-Cache")
686 (synopsis "Cache compiled XML translators")
687 (description
688 "This package provides methods to cache compiled XML translators.")
2f3108ad 689 (license license:perl-license)))
c1d41b5d 690
baeab9b8
RW
691(define-public perl-xml-compile-soap
692 (package
693 (name "perl-xml-compile-soap")
24c013c0 694 (version "3.21")
baeab9b8
RW
695 (source (origin
696 (method url-fetch)
697 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
698 "XML-Compile-SOAP-" version ".tar.gz"))
699 (sha256
700 (base32
24c013c0 701 "0rxidh7kjyhnw2y789bqbwccnp8n0m3xskn524y9c752s64qpjcz"))))
baeab9b8
RW
702 (build-system perl-build-system)
703 (propagated-inputs
704 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
705 ("perl-libwww" ,perl-libwww)
706 ("perl-log-report" ,perl-log-report)
707 ("perl-xml-compile" ,perl-xml-compile)
708 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
709 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
710 (home-page "http://search.cpan.org/dist/XML-Compile-SOAP")
711 (synopsis "Base-class for SOAP implementations")
712 (description
713 "This module provides a class to handle the SOAP protocol. The first
714implementation is @url{SOAP1.1,
715http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
716used.")
2f3108ad 717 (license license:perl-license)))
baeab9b8 718
6a914948
RW
719(define-public perl-xml-compile-wsdl11
720 (package
721 (name "perl-xml-compile-wsdl11")
270cdbef 722 (version "3.06")
6a914948
RW
723 (source (origin
724 (method url-fetch)
725 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
726 "XML-Compile-WSDL11-" version ".tar.gz"))
727 (sha256
728 (base32
270cdbef 729 "0vbq05cpynm3jj81fw1k4nsb3wv4zngi6blvi1jhdarmh2rfg1x2"))))
6a914948
RW
730 (build-system perl-build-system)
731 (propagated-inputs
732 `(("perl-log-report" ,perl-log-report)
733 ("perl-xml-compile" ,perl-xml-compile)
734 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
735 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
736 (home-page "http://search.cpan.org/dist/XML-Compile-WSDL11")
737 (synopsis "Create SOAP messages defined by WSDL 1.1")
738 (description
739 "This module understands WSDL version 1.1. A WSDL file defines a set of
740messages to be send and received over SOAP connections. This involves
741encoding of the message to be send into XML, sending the message to the
742server, collect the answer, and finally decoding the XML to Perl.")
2f3108ad 743 (license license:perl-license)))
6a914948 744
246455c2 745(define-public perl-xml-feed
746 (package
747 (name "perl-xml-feed")
748 (version "0.53")
749 (source (origin
750 (method url-fetch)
751 (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
752 "XML-Feed-" version ".tar.gz"))
753 (sha256
754 (base32
755 "07b165g6wk8kqwpl49r3n0kag6p2nrkyp3ch0h8qyxb6nrnkkq7c"))))
756 (build-system perl-build-system)
757 (arguments
758 `(#:tests? #f)) ; Tests require internet connection
759 (native-inputs
760 `(("perl-module-build" ,perl-module-build)
761 ("perl-uri" ,perl-uri)
762 ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
763 (inputs
764 `(("perl-class-errorhandler" ,perl-class-errorhandler)
765 ("perl-datetime" ,perl-datetime)
766 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
767 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
768 ("perl-feed-find" ,perl-feed-find)
769 ("perl-html-parser" ,perl-html-parser)
770 ("perl-libwww-perl" ,perl-libwww)
771 ("perl-module-pluggable" ,perl-module-pluggable)
772 ("perl-uri-fetch" ,perl-uri-fetch)
773 ("perl-xml-atom" ,perl-xml-atom)
774 ("perl-xml-libxml" ,perl-xml-libxml)
775 ("perl-xml-rss" ,perl-xml-rss)))
776 (home-page "http://search.cpan.org/dist/XML-Feed")
777 (synopsis "XML Syndication Feed Support")
778 (description "@code{XML::Feed} is a syndication feed parser for both RSS and
779Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
780@code{XML::Feed} supports the following syndication feed formats:
781RSS 0.91, RSS 1.0, RSS 2.0, Atom")
2f3108ad 782 (license license:perl-license)))
246455c2 783
0c1bab36 784(define-public perl-xml-xpath
785 (package
786 (name "perl-xml-xpath")
47b4cedf 787 (version "1.40")
0c1bab36 788 (source (origin
789 (method url-fetch)
790 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
791 "XML-XPath-" version ".tar.gz"))
792 (sha256
793 (base32
47b4cedf 794 "07pa0bl42jka8mj7jshjynx8vpfh8b4cdyiv4zlkqvkqz98nzxib"))))
0c1bab36 795 (build-system perl-build-system)
796 (native-inputs
797 `(("perl-path-tiny" ,perl-path-tiny)))
798 (inputs
799 `(("perl-xml-parser" ,perl-xml-parser)))
800 (home-page "http://search.cpan.org/dist/XML-XPath")
801 (synopsis "Parse and evaluate XPath statements")
802 (description
803 "This module aims to comply exactly to the @url{XPath specification,
804https://www.w3.org/TR/xpath} and yet allow extensions to be added in
805the form of functions.")
2f3108ad 806 (license license:perl-license)))
0c1bab36 807
6ce212b8
RW
808(define-public pugixml
809 (package
810 (name "pugixml")
f821b101 811 (version "1.8.1")
6ce212b8
RW
812 (source
813 (origin
814 (method url-fetch)
0562a81e
EF
815 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
816 version "/pugixml-" version ".tar.gz"))
6ce212b8
RW
817 (sha256
818 (base32
f821b101 819 "0fcgggry5x5bn0zhb09ij9hb0p45nb0sv0d9fw3cm1cf62hp9n80"))))
6ce212b8
RW
820 (build-system cmake-build-system)
821 (arguments
52c14bb6
RJ
822 `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
823 "-DCMAKE_C_FLAGS=-shared -fPIC")
824 #:tests? #f)) ; no tests
6ce212b8
RW
825 (home-page "http://pugixml.org")
826 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
827 (description
828 "pugixml is a C++ XML processing library, which consists of a DOM-like
829interface with rich traversal/modification capabilities, a fast XML parser
830which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
831implementation for complex data-driven tree queries. Full Unicode support is
832also available, with Unicode interface variants and conversions between
833different Unicode encodings which happen automatically during
834parsing/saving.")
835 (license license:expat)))
836
c2efe1ae
MB
837(define-public python-pyxb
838 (package
839 (name "python-pyxb")
4ef6cfef 840 (version "1.2.6")
c2efe1ae
MB
841 (source (origin
842 (method url-fetch)
843 (uri (pypi-uri "PyXB" version))
844 (sha256
845 (base32
4ef6cfef 846 "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a"))))
c2efe1ae
MB
847 (build-system python-build-system)
848 (home-page "http://pyxb.sourceforge.net/")
849 (synopsis "Python XML Schema Bindings")
850 (description
851 "PyXB (\"pixbee\") is a pure Python package that generates Python source
852code for classes that correspond to data structures defined by XMLSchema.")
853 (license (list license:asl2.0 ; Most files.
854 license:expat ; pyxb/utils/six.py
855 license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
856 license:psfl)))) ; pyxb/utils/activestate.py
857
858(define-public python2-pyxb
859 (package-with-python2 python-pyxb))
860
37f9ff63
AE
861(define-public xmlto
862 (package
863 (name "xmlto")
877a6466 864 (version "0.0.28")
37f9ff63
AE
865 (source
866 (origin
867 (method url-fetch)
7bc19c92
LF
868 ;; The old source on fedorahosted.org is offline permanently:
869 ;; <https://bugs.gnu.org/25989>
870 (uri (string-append "mirror://debian/pool/main/x/xmlto/"
871 "xmlto_" version ".orig.tar.bz2"))
872 (file-name (string-append name "-" version ".tar.bz2"))
37f9ff63
AE
873 (sha256
874 (base32
877a6466 875 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 876 (build-system gnu-build-system)
ae0c1202
LC
877 (arguments
878 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
879 '(#:configure-flags (list (string-append "GETOPT="
880 (assoc-ref %build-inputs
881 "util-linux")
882 "/bin/getopt"))))
37f9ff63 883 (inputs
ae0c1202
LC
884 `(("util-linux" ,util-linux) ; for 'getopt'
885 ("libxml2" ,libxml2) ; for 'xmllint'
886 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
887 (home-page "http://cyberelk.net/tim/software/xmlto/")
888 (synopsis "Front-end to an XSL toolchain")
889 (description
890 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
891stylesheet for the conversion you want and applies it using an external
892XSL-T processor. It also performs any necessary post-processing.")
893 (license license:gpl2+)))
0899144f
AE
894
895(define-public xmlsec
896 (package
897 (name "xmlsec")
898 (version "1.2.20")
899 (source (origin
900 (method url-fetch)
901 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
902 name "1-" version ".tar.gz"))
903 (sha256
904 (base32
905 "01bkbv2y3x8d1sf4dcln1x3y2jyj391s3208d9a2ndhglly5j89j"))))
906 (build-system gnu-build-system)
907 (propagated-inputs ; according to xmlsec1.pc
908 `(("libxml2" ,libxml2)
909 ("libxslt" ,libxslt)))
910 (inputs
911 `(("gnutls" ,gnutls)
912 ("libgcrypt" ,libgcrypt)
913 ("libltdl" ,libltdl)))
e4aab734
RW
914 (native-inputs
915 `(("pkg-config" ,pkg-config)))
0899144f
AE
916 (home-page "http://www.libexpat.org/")
917 (synopsis "XML Security Library")
918 (description
919 "The XML Security Library is a C library based on Libxml2. It
920supports XML security standards such as XML Signature, XML Encryption,
921Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
922Libxml2).")
923 (license (license:x11-style "file://COPYING"
924 "See 'COPYING' in the distribution."))))
96f8d991
RW
925
926(define-public minixml
927 (package
928 (name "minixml")
eba9ecd4 929 (version "2.10")
96f8d991
RW
930 (source (origin
931 (method url-fetch)
eba9ecd4
RW
932 (uri (string-append "https://github.com/michaelrsweet/mxml/"
933 "releases/download/release-" version
934 "/mxml-" version ".tar.gz"))
96f8d991
RW
935 (sha256
936 (base32
eba9ecd4 937 "14bqfq4lymhb31snz6wsvzhlavy0573v1nki1lbngiyxcj5zazr6"))))
96f8d991
RW
938 (build-system gnu-build-system)
939 (arguments
940 `(#:tests? #f)) ;no "check" target
eba9ecd4 941 (home-page "https://michaelrsweet.github.io/mxml")
96f8d991
RW
942 (synopsis "Small XML parsing library")
943 (description
944 "Mini-XML is a small C library to read and write XML files and strings in
945UTF-8 and UTF-16 encoding.")
946 ;; LGPL 2.0+ with additional exceptions for static linking
947 (license license:lgpl2.0+)))
33ae9107
DT
948
949;; TinyXML is an unmaintained piece of software, so the patches and build
950;; system massaging have no upstream potential.
951(define-public tinyxml
952 (package
953 (name "tinyxml")
954 (version "2.6.2")
955 (source (origin
956 (method url-fetch)
de67e922
LF
957 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
958 version "/tinyxml_"
33ae9107
DT
959 (string-join (string-split version #\.) "_")
960 ".tar.gz"))
961 (sha256
962 (base32
963 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 964 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
965 (build-system gnu-build-system)
966 ;; This library is missing *a lot* of the steps to make it usable, so we
967 ;; have to add them here, like every other distro must do.
968 (arguments
969 `(#:phases
970 (modify-phases %standard-phases
971 (delete 'configure)
972 (add-after 'build 'build-shared-library
973 (lambda _
974 (zero? (system* "g++" "-Wall" "-O2" "-shared" "-fpic"
975 "tinyxml.cpp" "tinyxmlerror.cpp"
976 "tinyxmlparser.cpp" "tinystr.cpp"
977 "-o" "libtinyxml.so"))))
978 (replace 'check
979 (lambda _ (zero? (system "./xmltest"))))
980 (replace 'install
981 (lambda* (#:key outputs #:allow-other-keys)
982 (let* ((out (assoc-ref outputs "out"))
983 (include (string-append out "/include"))
984 (lib (string-append out "/lib"))
985 (pkgconfig (string-append out "/lib/pkgconfig"))
986 (doc (string-append out "/share/doc")))
987 ;; Install libs and headers.
988 (install-file "libtinyxml.so" lib)
989 (install-file "tinystr.h" include)
990 (install-file "tinyxml.h" include)
991 ;; Generate and install pkg-config file.
992 (mkdir-p pkgconfig)
993 ;; Software such as Kodi expect this file to be present, but
994 ;; it's not provided in the source code.
995 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
996 (lambda (port)
997 (format port "prefix=~a
998exec_prefix=${prefix}
999libdir=${exec_prefix}/lib
1000includedir=${prefix}/include
1001
1002Name: TinyXML
1003Description: A simple, small, C++ XML parser
1004Version: ~a
1005Libs: -L${libdir} -ltinyxml
1006Cflags: -I${includedir}
1007"
1008 out ,version)))
1009 ;; Install docs.
1010 (mkdir-p doc)
1011 (copy-recursively "docs" (string-append doc "tinyxml"))
1012 #t))))))
1013 (synopsis "Small XML parser for C++")
1014 (description "TinyXML is a small and simple XML parsing library for the
05077200 1015C++ programming language.")
33ae9107
DT
1016 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
1017 (license license:zlib)))
fe9451c5 1018
931bd7f6
TGR
1019(define-public tinyxml2
1020 (package
1021 (name "tinyxml2")
1022 (version "4.0.1")
1023 (source
1024 (origin
1025 (method url-fetch)
1026 (uri (string-append "https://github.com/leethomason/tinyxml2/archive/"
1027 version ".tar.gz"))
1028 (sha256
1029 (base32
1030 "083z4r4khcndxi9k840lcr48sqxvar4gpsnf749xfdn1bkr8xcql"))))
1031 (build-system cmake-build-system)
1032 (arguments
1033 `(#:tests? #f)) ; no tests
1034 (synopsis "Small XML parser for C++")
1035 (description "TinyXML2 is a small and simple XML parsing library for the
1036C++ programming language.")
1037 (home-page "http://www.grinninglizard.com/tinyxml2/")
1038 (license license:zlib)))
1039
fe9451c5
RG
1040(define-public xmlstarlet
1041 (package
1042 (name "xmlstarlet")
1043 (version "1.6.1")
1044 (source
1045 (origin
1046 (method url-fetch)
1047 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
1048 version "/xmlstarlet-" version ".tar.gz"))
1049 (sha256
1050 (base32
1051 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
1052 (build-system gnu-build-system)
22ea0235
MB
1053 (arguments
1054 '(#:phases
1055 (modify-phases %standard-phases
1056 (add-before 'check 'drop-failing-tests
1057 (lambda _
1058 ;; FIXME: Why are these tests failing.
1059 (substitute* "Makefile"
1060 (("^examples/schema1\\\\") "\\")
1061 (("^examples/valid1\\\\") "\\"))
1062 #t)))))
fe9451c5
RG
1063 (inputs
1064 `(("libxslt" ,libxslt)
1065 ("libxml2" ,libxml2)))
1066 (home-page "http://xmlstar.sourceforge.net/")
1067 (synopsis "Command line XML toolkit")
1068 (description "XMLStarlet is a set of command line utilities which can be
1069used to transform, query, validate, and edit XML documents. XPath is used to
1070match and extract data, and elements can be added, deleted or modified using
1071XSLT and EXSLT.")
1072 (license license:x11)))
19c33040
JN
1073
1074(define-public xlsx2csv
1075 (package
1076 (name "xlsx2csv")
1077 (version "0.7.2")
1078 (source (origin
1079 (method url-fetch)
1080 (uri (string-append
1081 "https://github.com/dilshod/"
1082 name "/archive/release/" version ".tar.gz"))
1083 (file-name (string-append name "-" version ".tar.gz"))
1084 (sha256
1085 (base32
1086 "1gpn6kaa7l1ai8c9zx2j3acf04bvxq79pni8jjfjrk01smjbyyql"))))
1087 (build-system python-build-system)
1088 (arguments
1089 `(#:python ,python-2 ; Use python-2 for the test script.
1090 #:phases
1091 (modify-phases %standard-phases
1092 (replace 'check
1093 (lambda _
1094 (substitute* "test/run"
1095 ;; Run tests with `python' only
1096 (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
1097 (zero? (system* "test/run")))))))
1098 (home-page "https://github.com/dilshod/xlsx2csv")
1099 (synopsis "XLSX to CSV converter")
1100 (description
1101 "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
1102XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
1103files. It is designed to be fast and to handle large input files.")
1104 (license license:gpl2+)))
d2b51c08 1105
1106(define-public python-defusedxml
1107 (package
1108 (name "python-defusedxml")
1109 (version "0.4.1")
1110 (source
1111 (origin
1112 (method url-fetch)
1113 (uri (pypi-uri "defusedxml" version))
1114 (sha256
1115 (base32
1116 "0y147zy3jqmk6ly7fbhqmzn1hf41xcb53f2vcc3m8x4ba5d1smfd"))))
1117 (build-system python-build-system)
1118 (home-page "https://bitbucket.org/tiran/defusedxml")
1119 (synopsis "XML bomb protection for Python stdlib modules")
1120 (description
1121 "Defusedxml provides XML bomb protection for Python stdlib modules.")
1122 (license license:psfl)))
1123
1124(define-public python2-defusedxml
1125 (package-with-python2 python-defusedxml))
ca8f3f9a
AP
1126
1127(define-public libxls
1128 (package
1129 (name "libxls")
1130 (version "1.4.0")
1131 (source (origin
1132 (method url-fetch)
1133 (uri (string-append "https://sourceforge.net/projects/"
1134 name "/files/" name "-"
1135 version ".zip"))
1136 (sha256
1137 (base32
1138 "1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk"))))
1139 (build-system gnu-build-system)
1140 (arguments
1141 `(#:phases
1142 (modify-phases %standard-phases
1143 ;; Bootstrapping is required in order to fix the test driver script.
1144 (add-after 'unpack 'bootstrap
1145 (lambda _
1146 (zero? (system* "bash" "bootstrap")))))))
1147 (native-inputs
1148 `(("unzip" ,unzip)
1149 ("autoconf" ,autoconf)
1150 ("automake" ,automake)
1151 ("libtool" ,libtool)))
1152 (home-page "http://libxls.sourceforge.net/")
1153 (synopsis "Read Excel files")
1154 (description
1155 "libxls is a C library which can read Excel (xls) files since Excel 97 (the BIFF8 format).
1156libxls cannot write Excel files.")
1157 (license license:bsd-2)))
623fb4d1
AP
1158
1159(define-public freexl
1160 (package
1161 (name "freexl")
dc4ffa67 1162 (version "1.0.4")
623fb4d1
AP
1163 (source (origin
1164 (method url-fetch)
1165 (uri (string-append "http://www.gaia-gis.it/gaia-sins/"
1166 name "-" version ".tar.gz"))
1167 (sha256
1168 (base32
dc4ffa67 1169 "09bwzqjc41cc8qw8qkw9wq58rg9nax8r3fg19iny5vmw1c0z23sh"))))
623fb4d1
AP
1170 (build-system gnu-build-system)
1171 (home-page "https://www.gaia-gis.it/fossil/freexl/index")
1172 (synopsis "Read Excel files")
1173 (description
1174 "FreeXL is a C library to extract valid data from within an Excel (.xls)
1175spreadsheet.")
1176 ;; Any of these licenses may be picked.
1177 (license (list license:gpl2+
1178 license:lgpl2.1+
1179 license:mpl1.1))))
d00d6cea
RW
1180
1181(define-public xerces-c
1182 (package
1183 (name "xerces-c")
1184 (version "3.1.4")
1185 (source (origin
1186 (method url-fetch)
1187 (uri (string-append "mirror://apache/xerces/c/3/sources/"
1188 "xerces-c-" version ".tar.xz"))
1189 (sha256
1190 (base32
1191 "0hb29c0smqlpxj0zdm09s983z5jx37szlliccnvgh0qq91wwqwwr"))))
1192 (build-system gnu-build-system)
1193 (arguments
1194 (let ((system (or (%current-target-system)
1195 (%current-system))))
1196 (if (string-prefix? "x86_64" system)
1197 '()
1198 '(#:configure-flags '("--disable-sse2")))))
1199 (native-inputs
1200 `(("perl" ,perl)))
1201 (home-page "http://xerces.apache.org/xerces-c/")
1202 (synopsis "Validating XML parser library for C++")
1203 (description "Xerces-C++ is a validating XML parser written in a portable
1204subset of C++. Xerces-C++ makes it easy to give your application the ability
1205to read and write XML data. A shared library is provided for parsing,
1206generating, manipulating, and validating XML documents using the DOM, SAX, and
1207SAX2 APIs.")
1208 (license license:asl2.0)))
77d7b57c
RW
1209
1210(define-public java-simple-xml
1211 (package
1212 (name "java-simple-xml")
1213 (version "2.7.1")
1214 (source (origin
1215 (method url-fetch)
1216 (uri (string-append "mirror://sourceforge/simple/simple-xml-"
1217 version ".zip"))
1218 (sha256
1219 (base32
1220 "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))))
1221 (build-system ant-build-system)
1222 (arguments
1223 `(#:build-target "build"
1224 #:test-target "test"
1225 #:phases
1226 (modify-phases %standard-phases
1227 (replace 'install (install-jars "jar")))))
1228 (native-inputs
1229 `(("unzip" ,unzip)))
1230 (home-page "http://simple.sourceforge.net/")
1231 (synopsis "XML serialization framework for Java")
1232 (description "Simple is a high performance XML serialization and
1233configuration framework for Java. Its goal is to provide an XML framework
1234that enables rapid development of XML configuration and communication systems.
1235This framework aids the development of XML systems with minimal effort and
1236reduced errors. It offers full object serialization and deserialization,
1237maintaining each reference encountered.")
1238 (license license:asl2.0)))
3b695802
P
1239
1240(define-public perl-xml-xpathengine
1241 (package
1242 (name "perl-xml-xpathengine")
1243 (version "0.14")
1244 (source (origin
1245 (method url-fetch)
1246 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1247 "XML-XPathEngine-" version ".tar.gz"))
1248 (sha256
1249 (base32
1250 "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
1251 (build-system perl-build-system)
1252 (home-page "http://search.cpan.org/dist/XML-XPathEngine/")
1253 (synopsis "Re-usable XPath engine for DOM-like trees")
1254 (description
1255 "This module provides an XPath engine, that can be re-used by other
1256modules/classes that implement trees.
1257
1258In order to use the XPath engine, nodes in the user module need to mimick DOM
1259nodes. The degree of similitude between the user tree and a DOM dictates how
1260much of the XPath features can be used. A module implementing all of the DOM
1261should be able to use this module very easily (you might need to add the
1262@code{cmp} method on nodes in order to get ordered result sets).")
1263 (license license:perl-license)))
9e1c3581
P
1264
1265(define-public perl-tree-xpathengine
1266 (package
1267 (name "perl-tree-xpathengine")
1268 (version "0.05")
1269 (source (origin
1270 (method url-fetch)
1271 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1272 "Tree-XPathEngine-" version ".tar.gz"))
1273 (sha256
1274 (base32
1275 "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
1276 (build-system perl-build-system)
1277 (home-page "http://search.cpan.org/dist/Tree-XPathEngine/")
1278 (synopsis "Re-usable XPath engine")
1279 (description
1280 "This module provides an XPath engine, that can be re-used by other
1281module/classes that implement trees. It is designed to be compatible with
1282@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
1283by @code{Tree::XPathEngine}.")
1284 (license license:perl-license)))
b7c59195
P
1285
1286(define-public perl-xml-filter-buffertext
1287 (package
1288 (name "perl-xml-filter-buffertext")
1289 (version "1.01")
1290 (source
1291 (origin
1292 (method url-fetch)
1293 (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
1294 "XML-Filter-BufferText-" version ".tar.gz"))
1295 (sha256
1296 (base32
1297 "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
1298 (build-system perl-build-system)
1299 (propagated-inputs
1300 `(("perl-xml-sax-base" ,perl-xml-sax-base)))
1301 (home-page "http://search.cpan.org/dist/XML-Filter-BufferText/")
1302 (synopsis "Filter to put all characters() in one event")
1303 (description "This is a very simple filter. One common cause of
1304grief (and programmer error) is that XML parsers aren't required to provide
1305character events in one chunk. They can, but are not forced to, and most
1306don't. This filter does the trivial but oft-repeated task of putting all
1307characters into a single event.")
1308 (license license:perl-license)))
33b592ee
P
1309
1310(define-public perl-xml-sax-writer
1311 (package
1312 (name "perl-xml-sax-writer")
1313 (version "0.57")
1314 (source (origin
1315 (method url-fetch)
1316 (uri (string-append
1317 "mirror://cpan/authors/id/P/PE/PERIGRIN/"
1318 "XML-SAX-Writer-" version ".tar.gz"))
1319 (sha256
1320 (base32
1321 "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
1322 (build-system perl-build-system)
1323 (propagated-inputs
1324 `(("perl-libxml" ,perl-libxml)
1325 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
1326 ("perl-xml-namespacesupport", perl-xml-namespacesupport)
1327 ("perl-xml-sax-base" ,perl-xml-sax-base)))
1328 (home-page "http://search.cpan.org/dist/XML-SAX-Writer/")
1329 (synopsis "SAX2 XML Writer")
1330 (description
1331 "This is an XML writer that understands SAX2. It is based on
1332@code{XML::Handler::YAWriter}.")
1333 (license license:perl-license)))
9e88b210
P
1334
1335(define-public perl-xml-handler-yawriter
1336 (package
1337 (name "perl-xml-handler-yawriter")
1338 (version "0.23")
1339 (source
1340 (origin
1341 (method url-fetch)
1342 (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
1343 "XML-Handler-YAWriter-" version ".tar.gz"))
1344 (sha256
1345 (base32
1346 "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
1347 (build-system perl-build-system)
1348 (propagated-inputs
1349 `(("perl-libxml" ,perl-libxml)))
1350 (home-page "http://search.cpan.org/dist/XML-Handler-YAWriter/")
1351 (synopsis "Yet another Perl SAX XML Writer")
1352 (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
1353It provides a flexible escaping technique and pretty printing.")
1354 (license license:perl-license)))
85f225fb
P
1355
1356(define-public perl-xml-twig
1357 (package
1358 (name "perl-xml-twig")
1359 (version "3.52")
1360 (source (origin
1361 (method url-fetch)
1362 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1363 "XML-Twig-" version ".tar.gz"))
1364 (sha256
1365 (base32
1366 "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
1367 (build-system perl-build-system)
1368 (inputs
1369 `(("expat" ,expat)))
1370 (propagated-inputs
1371 `(("perl-html-tidy" ,perl-html-tidy)
1372 ("perl-html-tree" ,perl-html-tree)
1373 ("perl-io-captureoutput" ,perl-io-captureoutput)
1374 ("perl-io-string" ,perl-io-string)
1375 ("perl-io-stringy" ,perl-io-stringy)
1376 ("perl-libxml" ,perl-libxml)
1377 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
1378 ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
1379 ("perl-xml-parser" ,perl-xml-parser)
1380 ("perl-xml-sax-writer" ,perl-xml-sax-writer)
1381 ("perl-xml-simple" ,perl-xml-simple)
1382 ("perl-xml-xpathengine" ,perl-xml-xpathengine)
1383 ("perl-test-pod", perl-test-pod)
1384 ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
1385 (home-page "http://search.cpan.org/dist/XML-Twig/")
1386 (synopsis "Perl module for processing huge XML documents in tree mode")
1387 (description "@code{XML::Twig} is an XML transformation module. Its
1388strong points: can be used to process huge documents while still being in tree
1389mode; not bound by DOM or SAX, so it is very perlish and offers a very
1390comprehensive set of methods; simple to use; DWIMs as much as possible.
1391
1392What it doesn't offer: full SAX support (it can export SAX, but only reads
1393XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
1394support.")
1395 (license license:perl-license)))