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