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