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