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