gnu: iproute2: Update to 4.19.0.
[jackhill/guix/guix.git] / gnu / packages / xml.scm
CommitLineData
d0414883 1;;; GNU Guix --- Functional package management for GNU
ed4263fc 2;;; Copyright © 2013, 2014, 2015, 2016, 2018 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>
5c1cf7f3 6;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
96fd87c9 7;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
0efb6452 8;;; Copyright © 2015, 2016, 2017, 2018 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>
4a78fd46 14;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
a040db6d 15;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
b4c9a317 16;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
f9f67fcb 17;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
5bc2d579 18;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
76fed2b3 19;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
3b695802 20;;; Copyright © 2017 Petter <petter@mykolab.ch>
767d24e8 21;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
d0414883
LC
22;;;
23;;; This file is part of GNU Guix.
24;;;
25;;; GNU Guix is free software; you can redistribute it and/or modify it
26;;; under the terms of the GNU General Public License as published by
27;;; the Free Software Foundation; either version 3 of the License, or (at
28;;; your option) any later version.
29;;;
30;;; GNU Guix is distributed in the hope that it will be useful, but
31;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33;;; GNU General Public License for more details.
34;;;
35;;; You should have received a copy of the GNU General Public License
36;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
1ffa7090 38(define-module (gnu packages xml)
f0444eaf 39 #:use-module (gnu packages)
0899144f 40 #:use-module (gnu packages autotools)
322cbda7 41 #:use-module (gnu packages compression)
58cc3b38 42 #:use-module (gnu packages gnupg)
1a17ca26 43 #:use-module (gnu packages java)
b4c9a317 44 #:use-module (gnu packages gnuzilla)
5c1cf7f3
RW
45 #:use-module (gnu packages haskell)
46 #:use-module (gnu packages haskell-check)
f0444eaf 47 #:use-module (gnu packages perl)
5ccde207 48 #:use-module (gnu packages perl-check)
f0444eaf 49 #:use-module (gnu packages python)
a7fd7b68 50 #:use-module (gnu packages tls)
ad871fc6 51 #:use-module (gnu packages web)
b5b73a82 52 #:use-module ((guix licenses) #:prefix license:)
d0414883
LC
53 #:use-module (guix packages)
54 #:use-module (guix download)
77d7b57c 55 #:use-module (guix build-system ant)
6ce212b8 56 #:use-module (guix build-system cmake)
2a1e82bb 57 #:use-module (guix build-system gnu)
37f9ff63 58 #:use-module (guix build-system perl)
7ce32242 59 #:use-module (guix build-system python)
5c1cf7f3 60 #:use-module (guix build-system haskell)
e4aab734
RW
61 #:use-module (gnu packages linux)
62 #:use-module (gnu packages pkg-config))
d0414883
LC
63
64(define-public expat
65 (package
66 (name "expat")
e5e33f90 67 (version "2.2.5")
d0414883
LC
68 (source (origin
69 (method url-fetch)
70 (uri (string-append "mirror://sourceforge/expat/expat/"
51514e69 71 version "/expat-" version ".tar.bz2"))
d0414883
LC
72 (sha256
73 (base32
e5e33f90 74 "1xpd78sp7m34jqrw5x13bz7kgz0n6aj15wn4zj4gfx3ypbpk5p6r"))))
d0414883 75 (build-system gnu-build-system)
e5e33f90 76 (home-page "https://libexpat.github.io/")
9e771e3b 77 (synopsis "Stream-oriented XML parser library written in C")
d0414883
LC
78 (description
79 "Expat is an XML parser library written in C. It is a
80stream-oriented parser in which an application registers handlers for
81things the parser might find in the XML document (like start tags).")
82 (license license:expat)))
f0444eaf 83
5bc2d579
GG
84(define-public libebml
85 (package
86 (name "libebml")
f3d89181 87 (version "1.3.6")
5bc2d579
GG
88 (source
89 (origin
90 (method url-fetch)
91 (uri (string-append "https://dl.matroska.org/downloads/"
a040db6d 92 name "/" name "-" version ".tar.xz"))
5bc2d579
GG
93 (sha256
94 (base32
f3d89181
TGR
95 "17iynkj22rbszaymxiaq6k02qy9w4fs1appkn1iam4y441w7lnhy"))
96 (patches
97 (list
98 (origin
99 (method url-fetch)
100 (uri
101 (string-append "https://github.com/Matroska-Org/libebml/commit/"
102 "e46906b80e7662fb78d305f576412f9fa4a22218.patch"))
103 (file-name "libebml-use-limits-not-climits.patch")
104 (sha256
105 (base32
106 "1803rcj4kzg385xij8j3fcz8h86z43ivciv512zr7jp9jwrafs58")))))))
107 (build-system cmake-build-system)
108 (arguments
109 `(#:configure-flags
110 (list "-DBUILD_SHARED_LIBS=YES")
111 #:tests? #f)) ; no test suite
a040db6d 112 (home-page "https://matroska-org.github.io/libebml/")
cb778117
TGR
113 (synopsis "C++ library to parse EBML files")
114 (description "libebml is a C++ library to read and write @dfn{EBML}
115(Extensible Binary Meta Language) files. EBML was designed to be a simplified
116binary extension of XML for the purpose of storing and manipulating data in a
5bc2d579
GG
117hierarchical form with variable field lengths.")
118 (license license:lgpl2.1)))
119
f0444eaf
AE
120(define-public libxml2
121 (package
122 (name "libxml2")
1b5292ca 123 (version "2.9.8")
f0444eaf
AE
124 (source (origin
125 (method url-fetch)
126 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
127 version ".tar.gz"))
128 (sha256
129 (base32
1b5292ca 130 "0ci7is75bwqqw2p32vxvrk6ds51ik7qgx73m920rakv5jlayax0b"))))
f0444eaf
AE
131 (build-system gnu-build-system)
132 (home-page "http://www.xmlsoft.org/")
35b9e423 133 (synopsis "C parser for XML")
c1944c92 134 (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
7ce32242 135 (native-inputs `(("perl" ,perl)))
2a8d4401
LC
136 ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
137 ;; sub-directory of any given package.
74528069
LC
138 (native-search-paths (list (search-path-specification
139 (variable "XML_CATALOG_FILES")
140 (separator " ")
141 (files '("xml"))
142 (file-pattern "^catalog\\.xml$")
143 (file-type 'regular))))
2a8d4401 144 (search-paths native-search-paths)
f0444eaf 145 (description
7c125ce0
AK
146 "Libxml2 is the XML C parser and toolkit developed for the Gnome
147project (but it is usable outside of the Gnome platform).")
f0444eaf 148 (license license:x11)))
58cc3b38 149
7ce32242 150(define-public python-libxml2
e428b2c0 151 (package/inherit libxml2
7ce32242
SB
152 (name "python-libxml2")
153 (build-system python-build-system)
154 (arguments
155 `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
156 #:tests? #f
157 #:phases
158 (modify-phases %standard-phases
159 (add-before
160 'build 'configure
161 (lambda* (#:key inputs #:allow-other-keys)
162 (chdir "python")
163 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
164 "cross-libc" "libc")))
165 (libxml2 (assoc-ref inputs "libxml2")))
166 (substitute* "setup.py"
167 ;; For 'libxml2/libxml/tree.h'.
168 (("ROOT = r'/usr'")
169 (format #f "ROOT = r'~a'" libxml2))
170 ;; For 'iconv.h'.
171 (("/opt/include")
172 (string-append glibc "/include")))))))))
173 (inputs `(("libxml2" ,libxml2)))
174 (synopsis "Python bindings for the libxml2 library")))
175
176(define-public python2-libxml2
177 (package-with-python2 python-libxml2))
178
58cc3b38
AE
179(define-public libxslt
180 (package
181 (name "libxslt")
16cc6a9d 182 (version "1.1.32")
58cc3b38
AE
183 (source (origin
184 (method url-fetch)
185 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
186 version ".tar.gz"))
187 (sha256
188 (base32
16cc6a9d 189 "0q2l6m56iv3ysxgm2walhg4c9wp7q183jb328687i9zlp85csvjj"))
28b33172 190 (patches (search-patches "libxslt-generated-ids.patch"))))
58cc3b38
AE
191 (build-system gnu-build-system)
192 (home-page "http://xmlsoft.org/XSLT/index.html")
35b9e423 193 (synopsis "C library for applying XSLT stylesheets to XML documents")
58cc3b38
AE
194 (inputs `(("libgcrypt" ,libgcrypt)
195 ("libxml2" ,libxml2)
95288fcc 196 ("python" ,python-minimal-wrapper)
11e3f107 197 ("zlib" ,zlib)))
58cc3b38 198 (description
35b9e423 199 "Libxslt is an XSLT C library developed for the GNOME project. It is
58cc3b38
AE
200based on libxml for XML parsing, tree manipulation and XPath support.")
201 (license license:x11)))
2a1e82bb 202
5eec378b
BW
203(define-public perl-graph-readwrite
204 (package
205 (name "perl-graph-readwrite")
ffbc7d65 206 (version "2.09")
5eec378b
BW
207 (source
208 (origin
209 (method url-fetch)
210 (uri (string-append
211 "mirror://cpan/authors/id/N/NE/NEILB/Graph-ReadWrite-"
212 version
213 ".tar.gz"))
214 (sha256
215 (base32
ffbc7d65 216 "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
5eec378b
BW
217 (build-system perl-build-system)
218 (propagated-inputs
219 `(("perl-graph" ,perl-graph)
220 ("perl-parse-yapp" ,perl-parse-yapp)
221 ("perl-xml-parser" ,perl-xml-parser)
222 ("perl-xml-writer" ,perl-xml-writer)))
9aba9b12 223 (home-page "https://metacpan.org/release/Graph-ReadWrite")
5eec378b
BW
224 (synopsis "Modules for reading and writing directed graphs")
225 (description "This is a collection of perl classes for reading and writing
226directed graphs in a variety of file formats. The graphs are represented in
227Perl using Jarkko Hietaniemi's @code{Graph} classes.
228
229There are two base classes. @code{Graph::Reader} is the base class for classes
230which read a graph file and create an instance of the Graph class.
231@code{Graph::Writer} is the base class for classes which take an instance of
232the @code{Graph} class and write it out in a specific file format.")
2f3108ad 233 (license license:perl-license)))
5eec378b 234
b2696a58 235(define-public perl-xml-atom
236 (package
237 (name "perl-xml-atom")
522f1995 238 (version "0.42")
b2696a58 239 (source (origin
240 (method url-fetch)
241 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
242 "XML-Atom-" version ".tar.gz"))
243 (sha256
244 (base32
522f1995 245 "1wa8kfy1w4mg7kzxim4whyprkn48a2il6fap0b947zywknw4c6y6"))))
b2696a58 246 (build-system perl-build-system)
522f1995
MB
247 (arguments
248 `(#:phases
249 (modify-phases %standard-phases
250 (add-before 'check 'set-perl-search-path
251 (lambda _
252 (setenv "PERL5LIB"
253 (string-append (getcwd) ":"
254 (getenv "PERL5LIB")))
255 #t)))))
b2696a58 256 (native-inputs
50632f0a
TGR
257 ;; TODO package: perl-datetime-format-atom
258 `(("perl-html-tagset" ,perl-html-tagset)
522f1995 259 ("perl-module-build-tiny" ,perl-module-build-tiny)
50632f0a
TGR
260 ("perl-module-install" ,perl-module-install)))
261 (propagated-inputs
b2696a58 262 `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
263 ("perl-datetime" ,perl-datetime)
264 ("perl-datetime-timezone" ,perl-datetime-timezone)
265 ("perl-digest-sha1" ,perl-digest-sha1)
266 ("perl-libwww" ,perl-libwww)
267 ("perl-uri" ,perl-uri)
268 ("perl-xml-libxml" ,perl-xml-libxml)
269 ("perl-xml-xpath" ,perl-xml-xpath)))
9aba9b12 270 (home-page "https://metacpan.org/release/XML-Atom")
b2696a58 271 (synopsis "Atom feed and API implementation")
272 (description
273 "Atom is a syndication, API, and archiving format for weblogs and other data.
274@code{XML::Atom} implements the feed format as well as a client for the API.")
2f3108ad 275 (license license:perl-license)))
b2696a58 276
d66fa696
MB
277(define-public perl-xml-descent
278 (package
279 (name "perl-xml-descent")
280 (version "1.04")
281 (source (origin
282 (method url-fetch)
283 (uri (string-append "mirror://cpan/authors/id/A/AN/ANDYA/"
284 "XML-Descent-" version ".tar.gz"))
285 (sha256
286 (base32
287 "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7"))))
288 (build-system perl-build-system)
289 (native-inputs
290 `(("perl-module-build" ,perl-module-build)))
291 (propagated-inputs
292 `(("perl-test-differences" ,perl-test-differences)
293 ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
9aba9b12 294 (home-page "https://metacpan.org/release/XML-Descent")
d66fa696
MB
295 (synopsis "Recursive descent XML parsing")
296 (description
297 "The conventional models for parsing XML are either @dfn{DOM}
298(a data structure representing the entire document tree is created) or
299@dfn{SAX} (callbacks are issued for each element in the XML).
300
301XML grammar is recursive - so it's nice to be able to write recursive
302parsers for it. @code{XML::Descent} allows such parsers to be created.")
2f3108ad 303 (license license:perl-license)))
d66fa696 304
2a1e82bb
LC
305(define-public perl-xml-parser
306 (package
307 (name "perl-xml-parser")
d495634b 308 (version "2.44")
2a1e82bb
LC
309 (source (origin
310 (method url-fetch)
311 (uri (string-append
2b8c5f54 312 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
2a1e82bb
LC
313 version ".tar.gz"))
314 (sha256
315 (base32
d495634b 316 "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s"))))
2a1e82bb
LC
317 (build-system perl-build-system)
318 (arguments `(#:make-maker-flags
319 (let ((expat (assoc-ref %build-inputs "expat")))
320 (list (string-append "EXPATLIBPATH=" expat "/lib")
321 (string-append "EXPATINCPATH=" expat "/include")))))
322 (inputs `(("expat" ,expat)))
2f3108ad 323 (license license:perl-license)
2a1e82bb
LC
324 (synopsis "Perl bindings to the Expat XML parsing library")
325 (description
326 "This module provides ways to parse XML documents. It is built on top of
327XML::Parser::Expat, which is a lower level interface to James Clark's expat
328library. Each call to one of the parsing methods creates a new instance of
329XML::Parser::Expat which is then used to parse the document. Expat options
330may be provided when the XML::Parser object is created. These options are
331then passed on to the Expat object on each parse call. They can also be given
332as extra arguments to the parse methods, in which case they override options
333given at XML::Parser creation time.")
9aba9b12 334 (home-page "https://metacpan.org/release/XML-Parser")))
37f9ff63 335
62b28f19
MB
336(define-public perl-xml-tokeparser
337 (package
338 (name "perl-xml-tokeparser")
339 (version "0.05")
340 (source (origin
341 (method url-fetch)
342 (uri (string-append "mirror://cpan/authors/id/P/PO/PODMASTER/"
343 "XML-TokeParser-" version ".tar.gz"))
344 (sha256
345 (base32
346 "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
347 (build-system perl-build-system)
348 (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 349 (home-page "https://metacpan.org/release/XML-TokeParser")
62b28f19
MB
350 (synopsis "Simplified interface to XML::Parser")
351 (description
352 "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface
353to @code{XML::Parser} in much the same way that Gisle Aas'
354@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}.
355@code{XML::TokeParser} splits its XML input up into \"tokens\", each
356corresponding to an @code{XML::Parser} event.")
2f3108ad 357 (license license:perl-license)))
62b28f19 358
7339fbe2 359(define-public perl-libxml
1385ba4f 360 (package
7339fbe2 361 (name "perl-libxml")
1385ba4f
AE
362 (version "0.08")
363 (source (origin
364 (method url-fetch)
365 (uri (string-append
366 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
367 version ".tar.gz"))
368 (sha256
369 (base32
370 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
371 (build-system perl-build-system)
7b81406a 372 (propagated-inputs
1385ba4f 373 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 374 (license license:perl-license)
2db5f9b6 375 (synopsis "Perl modules for working with XML")
1385ba4f 376 (description
2db5f9b6
TGR
377 "libxml-perl is a collection of smaller Perl modules, scripts, and
378documents for working with XML in Perl. libxml-perl software works in
379combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
380@code{XML::Grove}, and others.")
9aba9b12 381 (home-page "https://metacpan.org/release/libxml-perl")))
1385ba4f 382
3dd6bee1
EB
383(define-public perl-xml-libxml
384 (package
385 (name "perl-xml-libxml")
58ade302 386 (version "2.0132")
3dd6bee1
EB
387 (source
388 (origin
389 (method url-fetch)
390 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
391 "XML-LibXML-" version ".tar.gz"))
392 (sha256
393 (base32
58ade302 394 "0xnl281hb590i287fxpl947f1s4zl9dnvc4ajvsqi89w23im453j"))))
3dd6bee1
EB
395 (build-system perl-build-system)
396 (propagated-inputs
397 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
398 ("perl-xml-sax" ,perl-xml-sax)))
399 (inputs
400 `(("libxml2" ,libxml2)))
9aba9b12 401 (home-page "https://metacpan.org/release/XML-LibXML")
3dd6bee1
EB
402 (synopsis "Perl interface to libxml2")
403 (description "This module implements a Perl interface to the libxml2
54c3c140 404library which provides interfaces for parsing and manipulating XML files. This
3dd6bee1
EB
405module allows Perl programmers to make use of the highly capable validating
406XML parser and the high performance DOM implementation.")
2f3108ad 407 (license license:perl-license)))
3dd6bee1 408
f7c4dc2f
RW
409(define-public perl-xml-libxml-simple
410 (package
411 (name "perl-xml-libxml-simple")
d21fb90a 412 (version "0.99")
f7c4dc2f
RW
413 (source (origin
414 (method url-fetch)
415 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
416 "XML-LibXML-Simple-" version ".tar.gz"))
417 (sha256
418 (base32
d21fb90a 419 "0i4ybiqdnvnbfxqslw2y392kvy7i752dl8n99bqiqv5kzk4lbzhl"))))
f7c4dc2f
RW
420 (build-system perl-build-system)
421 (propagated-inputs
422 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
423 ("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 424 (home-page "https://metacpan.org/release/XML-LibXML-Simple")
f7c4dc2f
RW
425 (synopsis "XML::LibXML based XML::Simple clone")
426 (description
427 "This package provides the same API as @code{XML::Simple} but is based on
428@code{XML::LibXML}.")
2f3108ad 429 (license license:perl-license)))
f7c4dc2f 430
93863a5e
RW
431(define-public perl-xml-libxslt
432 (package
433 (name "perl-xml-libxslt")
73a3e98f 434 (version "1.96")
93863a5e
RW
435 (source
436 (origin
437 (method url-fetch)
438 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
439 "XML-LibXSLT-" version ".tar.gz"))
440 (sha256
441 (base32
73a3e98f 442 "0wyl8klgr65j8y8fzgwz9jlvfjwvxazna8j3dg9gksd2v973fpia"))))
93863a5e
RW
443 (build-system perl-build-system)
444 (inputs
445 `(("libxslt" ,libxslt)))
446 (propagated-inputs
447 `(("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 448 (home-page "https://metacpan.org/release/XML-LibXSLT")
93863a5e
RW
449 (synopsis "Perl bindings to GNOME libxslt library")
450 (description "This Perl module is an interface to the GNOME project's
451libxslt library.")
2f3108ad 452 (license license:perl-license)))
93863a5e 453
b715dbac
EB
454(define-public perl-xml-namespacesupport
455 (package
456 (name "perl-xml-namespacesupport")
88958ee0 457 (version "1.12")
b715dbac
EB
458 (source
459 (origin
460 (method url-fetch)
461 (uri (string-append "mirror://cpan/authors/id/P/PE/PERIGRIN/"
462 "XML-NamespaceSupport-" version ".tar.gz"))
463 (sha256
464 (base32
88958ee0 465 "1vz5pbi4lm5fhq2slrs2hlp6bnk29863abgjlcx43l4dky2rbsa7"))))
b715dbac 466 (build-system perl-build-system)
9aba9b12 467 (home-page "https://metacpan.org/release/XML-NamespaceSupport")
b715dbac
EB
468 (synopsis "XML namespace support class")
469 (description "This module offers a simple to process namespaced XML
470names (unames) from within any application that may need them. It also helps
471maintain a prefix to namespace URI map, and provides a number of basic
472checks.")
2f3108ad 473 (license license:perl-license)))
b715dbac 474
a022b23f 475(define-public perl-xml-rss
476 (package
477 (name "perl-xml-rss")
b5de208e 478 (version "1.60")
a022b23f 479 (source (origin
480 (method url-fetch)
481 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
482 "XML-RSS-" version ".tar.gz"))
483 (sha256
484 (base32
b5de208e 485 "0xw6aaqka3vqwbv152sbh6fbi8j306q1gvg7v83br8miif3mjcsb"))))
a022b23f 486 (build-system perl-build-system)
487 (native-inputs
488 `(("perl-module-build" ,perl-module-build)
489 ("perl-test-manifest" ,perl-test-manifest)
490 ("perl-test-differences" ,perl-test-differences)
491 ("perl-test-pod" ,perl-test-pod)
492 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
493 ;; XXX: The test which uses this modules does not run, even when it is included
494 ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
495 (inputs
496 `(("perl-datetime" ,perl-datetime)
497 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
498 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
499 ("perl-html-parser" ,perl-html-parser)
500 ("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 501 (home-page "https://metacpan.org/release/XML-RSS")
a022b23f 502 (synopsis "Creates and updates RSS files")
503 (description
504 "This module provides a basic framework for creating and maintaining
505RDF Site Summary (RSS) files. This distribution also contains many examples
506that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
5071.0 version, and more.")
2f3108ad 508 (license license:perl-license)))
a022b23f 509
18b8bbb3
EB
510(define-public perl-xml-sax
511 (package
512 (name "perl-xml-sax")
14eb5434 513 (version "1.00")
18b8bbb3
EB
514 (source
515 (origin
516 (method url-fetch)
517 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
518 "XML-SAX-" version ".tar.gz"))
519 (sha256
520 (base32
14eb5434 521 "1qra9k3wszjxvsgbragl55z3qba4nri0ipmjaxfib4l6xxj6bsj5"))))
18b8bbb3
EB
522 (build-system perl-build-system)
523 (propagated-inputs
524 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
525 ("perl-xml-sax-base" ,perl-xml-sax-base)))
526 (arguments
527 `(#:phases (modify-phases %standard-phases
528 (add-before
40b084a3 529 'install 'augment-path
18b8bbb3
EB
530 ;; The install target tries to load the newly-installed
531 ;; XML::SAX module, but can't find it, so we need to tell
532 ;; perl where to look.
533 (lambda* (#:key outputs #:allow-other-keys)
534 (setenv "PERL5LIB"
535 (string-append (getenv "PERL5LIB") ":"
536 (assoc-ref outputs "out")
537 "/lib/perl5/site_perl")))))))
9aba9b12 538 (home-page "https://metacpan.org/release/XML-SAX")
18b8bbb3
EB
539 (synopsis "Perl API for XML")
540 (description "XML::SAX consists of several framework classes for using and
541building Perl SAX2 XML parsers, filters, and drivers.")
2f3108ad 542 (license license:perl-license)))
18b8bbb3 543
1ed6d5bc
EB
544(define-public perl-xml-sax-base
545 (package
546 (name "perl-xml-sax-base")
fa964e96 547 (version "1.09")
1ed6d5bc
EB
548 (source
549 (origin
550 (method url-fetch)
551 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
552 "XML-SAX-Base-" version ".tar.gz"))
553 (sha256
554 (base32
fa964e96 555 "1l1ai9g1z11ja7mvnfl5mj346r13jyckbg9qlw6c2izglidkbjv6"))))
1ed6d5bc 556 (build-system perl-build-system)
9aba9b12 557 (home-page "https://metacpan.org/release/XML-SAX-Base")
1ed6d5bc
EB
558 (synopsis "Base class for SAX Drivers and Filters")
559 (description "This module has a very simple task - to be a base class for
560PerlSAX drivers and filters. It's default behaviour is to pass the input
561directly to the output unchanged. It can be useful to use this module as a
562base class so you don't have to, for example, implement the characters()
563callback.")
2f3108ad 564 (license license:perl-license)))
1ed6d5bc 565
535dc6cf
AE
566(define-public perl-xml-simple
567 (package
568 (name "perl-xml-simple")
fa3fff43 569 (version "2.25")
535dc6cf
AE
570 (source (origin
571 (method url-fetch)
572 (uri (string-append
573 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
574 version ".tar.gz"))
575 (sha256
576 (base32
fa3fff43 577 "1y6vh328zrh085d40852v4ij2l4g0amxykswxd1nfhd2pspds7sk"))))
535dc6cf 578 (build-system perl-build-system)
27ef7f45 579 (propagated-inputs
e831256f
EF
580 `(("perl-xml-parser" ,perl-xml-parser)
581 ("perl-xml-sax" ,perl-xml-sax)))
2f3108ad 582 (license license:perl-license)
535dc6cf
AE
583 (synopsis "Perl module for easy reading/writing of XML files")
584 (description
585 "The XML::Simple module provides a simple API layer on top of an
586underlying XML parsing module (either XML::Parser or one of the SAX2
587parser modules).")
9aba9b12 588 (home-page "https://metacpan.org/release/XML-Simple")))
535dc6cf 589
a2e520af
AE
590(define-public perl-xml-regexp
591 (package
592 (name "perl-xml-regexp")
593 (version "0.04")
594 (source (origin
595 (method url-fetch)
596 (uri (string-append
597 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
598 version ".tar.gz"))
599 (sha256
600 (base32
601 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
602 (build-system perl-build-system)
603 (inputs
604 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 605 (license license:perl-license)
a2e520af
AE
606 (synopsis "Perl regular expressions for XML tokens")
607 (description
608 "XML::RegExp contains regular expressions for the following XML tokens:
609BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
610EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
9aba9b12 611 (home-page "https://metacpan.org/release/XML-RegExp")))
a2e520af 612
ad871fc6
AE
613(define-public perl-xml-dom
614 (package
615 (name "perl-xml-dom")
4e5465f2 616 (version "1.46")
ad871fc6
AE
617 (source (origin
618 (method url-fetch)
619 (uri (string-append
620 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
621 version ".tar.gz"))
622 (sha256
623 (base32
4e5465f2 624 "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
ad871fc6 625 (build-system perl-build-system)
f7faff88
AE
626 (propagated-inputs
627 `(("perl-libwww" ,perl-libwww)
ad871fc6 628 ("perl-libxml" ,perl-libxml)
4e5465f2 629 ("perl-xml-parser" ,perl-xml-parser)
ad871fc6 630 ("perl-xml-regexp" ,perl-xml-regexp)))
2f3108ad 631 (license license:perl-license)
ad871fc6
AE
632 (synopsis
633 "Perl module for building DOM Level 1 compliant document structures")
634 (description
635 "This module extends the XML::Parser module by Clark Cooper. The
636XML::Parser module is built on top of XML::Parser::Expat, which is a lower
637level interface to James Clark's expat library. XML::DOM::Parser is derived
638from XML::Parser. It parses XML strings or files and builds a data structure
639that conforms to the API of the Document Object Model.")
9aba9b12 640 (home-page "https://metacpan.org/release/XML-DOM")))
ad871fc6 641
649e1676
RW
642(define-public perl-xml-compile-tester
643 (package
644 (name "perl-xml-compile-tester")
9af5a513 645 (version "0.91")
649e1676
RW
646 (source (origin
647 (method url-fetch)
648 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
649 "XML-Compile-Tester-" version ".tar.gz"))
650 (sha256
651 (base32
9af5a513 652 "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75"))))
649e1676
RW
653 (build-system perl-build-system)
654 (propagated-inputs
655 `(("perl-log-report" ,perl-log-report)
656 ("perl-test-deep" ,perl-test-deep)))
9aba9b12 657 (home-page "https://metacpan.org/release/XML-Compile-Tester")
649e1676
RW
658 (synopsis "XML::Compile related regression testing")
659 (description
660 "The @code{XML::Compile} module suite has extensive regression testing.
661This module provide functions which simplify writing tests for
662@code{XML::Compile} related distributions.")
2f3108ad 663 (license license:perl-license)))
649e1676 664
b494a5f1
RW
665(define-public perl-xml-compile
666 (package
667 (name "perl-xml-compile")
174988fa 668 (version "1.60")
b494a5f1
RW
669 (source (origin
670 (method url-fetch)
671 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
672 "XML-Compile-" version ".tar.gz"))
673 (sha256
674 (base32
174988fa 675 "04vv7wy5v1l38xsfdbacvyd90qircvnrs2f3ysljm1nhq8mycmwm"))))
b494a5f1
RW
676 (build-system perl-build-system)
677 (propagated-inputs
174988fa
TGR
678 `(("perl-carp" ,perl-carp)
679 ("perl-log-report" ,perl-log-report)
b494a5f1
RW
680 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
681 ("perl-xml-libxml" ,perl-xml-libxml)
174988fa
TGR
682 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
683 ("perl-test-deep" ,perl-test-deep)
684 ("perl-types-serialiser" ,perl-types-serialiser)))
9aba9b12 685 (home-page "https://metacpan.org/release/XML-Compile")
b494a5f1
RW
686 (synopsis "Compilation-based XML processing")
687 (description
688 "@code{XML::Compile} can be used to translate a Perl data-structure into
689XML or XML into a Perl data-structure, both directions under rigid control by
690a schema.")
2f3108ad 691 (license license:perl-license)))
b494a5f1 692
c1d41b5d
RW
693(define-public perl-xml-compile-cache
694 (package
695 (name "perl-xml-compile-cache")
503a0059 696 (version "1.06")
c1d41b5d
RW
697 (source (origin
698 (method url-fetch)
699 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
700 "XML-Compile-Cache-" version ".tar.gz"))
701 (sha256
702 (base32
503a0059 703 "181qf1s7ymgi7saph3cf9p6dbxkxyh1ja23na4dchhi8v5mi66sr"))))
c1d41b5d
RW
704 (build-system perl-build-system)
705 (propagated-inputs
706 `(("perl-log-report" ,perl-log-report)
707 ("perl-xml-compile" ,perl-xml-compile)
708 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
709 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
9aba9b12 710 (home-page "https://metacpan.org/release/XML-Compile-Cache")
c1d41b5d
RW
711 (synopsis "Cache compiled XML translators")
712 (description
713 "This package provides methods to cache compiled XML translators.")
2f3108ad 714 (license license:perl-license)))
c1d41b5d 715
baeab9b8
RW
716(define-public perl-xml-compile-soap
717 (package
718 (name "perl-xml-compile-soap")
1d9b041c 719 (version "3.24")
baeab9b8
RW
720 (source (origin
721 (method url-fetch)
722 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
723 "XML-Compile-SOAP-" version ".tar.gz"))
724 (sha256
725 (base32
1d9b041c 726 "0pkcph562l2ij7rlwlvm58v6y062qsbydfpaz2qnph2ixqy0xfd1"))))
baeab9b8
RW
727 (build-system perl-build-system)
728 (propagated-inputs
729 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
730 ("perl-libwww" ,perl-libwww)
731 ("perl-log-report" ,perl-log-report)
732 ("perl-xml-compile" ,perl-xml-compile)
733 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
734 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
9aba9b12 735 (home-page "https://metacpan.org/release/XML-Compile-SOAP")
baeab9b8
RW
736 (synopsis "Base-class for SOAP implementations")
737 (description
738 "This module provides a class to handle the SOAP protocol. The first
739implementation is @url{SOAP1.1,
740http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
741used.")
2f3108ad 742 (license license:perl-license)))
baeab9b8 743
6a914948
RW
744(define-public perl-xml-compile-wsdl11
745 (package
746 (name "perl-xml-compile-wsdl11")
4b4a4f5c 747 (version "3.07")
6a914948
RW
748 (source (origin
749 (method url-fetch)
750 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
751 "XML-Compile-WSDL11-" version ".tar.gz"))
752 (sha256
753 (base32
4b4a4f5c 754 "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba"))))
6a914948
RW
755 (build-system perl-build-system)
756 (propagated-inputs
757 `(("perl-log-report" ,perl-log-report)
758 ("perl-xml-compile" ,perl-xml-compile)
759 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
760 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
9aba9b12 761 (home-page "https://metacpan.org/release/XML-Compile-WSDL11")
6a914948
RW
762 (synopsis "Create SOAP messages defined by WSDL 1.1")
763 (description
764 "This module understands WSDL version 1.1. A WSDL file defines a set of
765messages to be send and received over SOAP connections. This involves
766encoding of the message to be send into XML, sending the message to the
767server, collect the answer, and finally decoding the XML to Perl.")
2f3108ad 768 (license license:perl-license)))
6a914948 769
246455c2 770(define-public perl-xml-feed
771 (package
772 (name "perl-xml-feed")
3a6e1fe8 773 (version "0.55")
246455c2 774 (source (origin
775 (method url-fetch)
776 (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
777 "XML-Feed-" version ".tar.gz"))
778 (sha256
779 (base32
3a6e1fe8 780 "0am345qzy5rxxnzh13l6p18a7drgkzmmlkgrgl4cv3b2j1pwls3i"))))
246455c2 781 (build-system perl-build-system)
782 (arguments
ddf72f50 783 `(#:tests? #f)) ; tests require internet connection
246455c2 784 (native-inputs
785 `(("perl-module-build" ,perl-module-build)
786 ("perl-uri" ,perl-uri)
787 ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
788 (inputs
789 `(("perl-class-errorhandler" ,perl-class-errorhandler)
790 ("perl-datetime" ,perl-datetime)
791 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
792 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
793 ("perl-feed-find" ,perl-feed-find)
794 ("perl-html-parser" ,perl-html-parser)
795 ("perl-libwww-perl" ,perl-libwww)
796 ("perl-module-pluggable" ,perl-module-pluggable)
797 ("perl-uri-fetch" ,perl-uri-fetch)
798 ("perl-xml-atom" ,perl-xml-atom)
799 ("perl-xml-libxml" ,perl-xml-libxml)
800 ("perl-xml-rss" ,perl-xml-rss)))
9aba9b12 801 (home-page "https://metacpan.org/release/XML-Feed")
246455c2 802 (synopsis "XML Syndication Feed Support")
803 (description "@code{XML::Feed} is a syndication feed parser for both RSS and
804Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
805@code{XML::Feed} supports the following syndication feed formats:
806RSS 0.91, RSS 1.0, RSS 2.0, Atom")
2f3108ad 807 (license license:perl-license)))
246455c2 808
0c1bab36 809(define-public perl-xml-xpath
810 (package
811 (name "perl-xml-xpath")
26d66a51 812 (version "1.42")
0c1bab36 813 (source (origin
814 (method url-fetch)
815 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
816 "XML-XPath-" version ".tar.gz"))
817 (sha256
818 (base32
26d66a51 819 "04mm91kxav598ax7nlg81dhnvanwvg6bkf30l0cgkmga5iyccsly"))))
0c1bab36 820 (build-system perl-build-system)
821 (native-inputs
822 `(("perl-path-tiny" ,perl-path-tiny)))
9332d706 823 (propagated-inputs
0c1bab36 824 `(("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 825 (home-page "https://metacpan.org/release/XML-XPath")
0c1bab36 826 (synopsis "Parse and evaluate XPath statements")
827 (description
828 "This module aims to comply exactly to the @url{XPath specification,
829https://www.w3.org/TR/xpath} and yet allow extensions to be added in
830the form of functions.")
2f3108ad 831 (license license:perl-license)))
0c1bab36 832
6ce212b8
RW
833(define-public pugixml
834 (package
835 (name "pugixml")
727ffbd5 836 (version "1.9")
6ce212b8
RW
837 (source
838 (origin
839 (method url-fetch)
0562a81e
EF
840 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
841 version "/pugixml-" version ".tar.gz"))
6ce212b8
RW
842 (sha256
843 (base32
727ffbd5 844 "19nv3zhik3djp4blc4vrjwrl8dfhzmal8b21sq7y907nhddx6mni"))))
6ce212b8
RW
845 (build-system cmake-build-system)
846 (arguments
52c14bb6
RJ
847 `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
848 "-DCMAKE_C_FLAGS=-shared -fPIC")
849 #:tests? #f)) ; no tests
28655227 850 (home-page "https://pugixml.org")
6ce212b8
RW
851 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
852 (description
853 "pugixml is a C++ XML processing library, which consists of a DOM-like
854interface with rich traversal/modification capabilities, a fast XML parser
855which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
856implementation for complex data-driven tree queries. Full Unicode support is
857also available, with Unicode interface variants and conversions between
858different Unicode encodings which happen automatically during
859parsing/saving.")
860 (license license:expat)))
861
c2efe1ae
MB
862(define-public python-pyxb
863 (package
864 (name "python-pyxb")
4ef6cfef 865 (version "1.2.6")
c2efe1ae
MB
866 (source (origin
867 (method url-fetch)
868 (uri (pypi-uri "PyXB" version))
869 (sha256
870 (base32
4ef6cfef 871 "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a"))))
c2efe1ae
MB
872 (build-system python-build-system)
873 (home-page "http://pyxb.sourceforge.net/")
874 (synopsis "Python XML Schema Bindings")
875 (description
876 "PyXB (\"pixbee\") is a pure Python package that generates Python source
877code for classes that correspond to data structures defined by XMLSchema.")
878 (license (list license:asl2.0 ; Most files.
879 license:expat ; pyxb/utils/six.py
880 license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
881 license:psfl)))) ; pyxb/utils/activestate.py
882
883(define-public python2-pyxb
884 (package-with-python2 python-pyxb))
885
37f9ff63
AE
886(define-public xmlto
887 (package
888 (name "xmlto")
877a6466 889 (version "0.0.28")
37f9ff63
AE
890 (source
891 (origin
892 (method url-fetch)
7bc19c92
LF
893 ;; The old source on fedorahosted.org is offline permanently:
894 ;; <https://bugs.gnu.org/25989>
895 (uri (string-append "mirror://debian/pool/main/x/xmlto/"
896 "xmlto_" version ".orig.tar.bz2"))
897 (file-name (string-append name "-" version ".tar.bz2"))
37f9ff63
AE
898 (sha256
899 (base32
877a6466 900 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 901 (build-system gnu-build-system)
ae0c1202
LC
902 (arguments
903 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
904 '(#:configure-flags (list (string-append "GETOPT="
905 (assoc-ref %build-inputs
906 "util-linux")
907 "/bin/getopt"))))
37f9ff63 908 (inputs
ae0c1202
LC
909 `(("util-linux" ,util-linux) ; for 'getopt'
910 ("libxml2" ,libxml2) ; for 'xmllint'
911 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
912 (home-page "http://cyberelk.net/tim/software/xmlto/")
913 (synopsis "Front-end to an XSL toolchain")
914 (description
915 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
916stylesheet for the conversion you want and applies it using an external
917XSL-T processor. It also performs any necessary post-processing.")
918 (license license:gpl2+)))
0899144f
AE
919
920(define-public xmlsec
921 (package
922 (name "xmlsec")
50f5aa4b 923 (version "1.2.27")
0899144f 924 (source (origin
50f5aa4b
TGR
925 (method url-fetch)
926 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
927 "xmlsec1-" version ".tar.gz"))
928 (sha256
929 (base32
930 "1dlf263mvxj9n4lnhhjawc2hv45agrwjf8kxk7k8h9g9v2x5dmwp"))))
0899144f 931 (build-system gnu-build-system)
50f5aa4b 932 (propagated-inputs ; according to xmlsec1.pc
0899144f
AE
933 `(("libxml2" ,libxml2)
934 ("libxslt" ,libxslt)))
935 (inputs
936 `(("gnutls" ,gnutls)
937 ("libgcrypt" ,libgcrypt)
938 ("libltdl" ,libltdl)))
e4aab734
RW
939 (native-inputs
940 `(("pkg-config" ,pkg-config)))
a5b570b4 941 (home-page "https://www.aleksey.com/xmlsec/")
0899144f
AE
942 (synopsis "XML Security Library")
943 (description
944 "The XML Security Library is a C library based on Libxml2. It
945supports XML security standards such as XML Signature, XML Encryption,
946Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
947Libxml2).")
948 (license (license:x11-style "file://COPYING"
949 "See 'COPYING' in the distribution."))))
96f8d991 950
b4c9a317
MB
951(define-public xmlsec-nss
952 (package
953 (inherit xmlsec)
954 (name "xmlsec-nss")
955 (inputs
956 `(("nss" ,nss)
957 ("libltdl" ,libltdl)))
958 (synopsis "XML Security Library (using NSS instead of GnuTLS)")))
959
96f8d991
RW
960(define-public minixml
961 (package
962 (name "minixml")
b7cbcee5 963 (version "2.11")
96f8d991 964 (source (origin
b7cbcee5 965 (method url-fetch/tarbomb)
eba9ecd4 966 (uri (string-append "https://github.com/michaelrsweet/mxml/"
b7cbcee5 967 "releases/download/v" version
eba9ecd4 968 "/mxml-" version ".tar.gz"))
96f8d991
RW
969 (sha256
970 (base32
b7cbcee5 971 "13xsw8vvkxd10vca42ccdyl9rs64lcvhbfz57aknpl3xcfn8mxma"))))
96f8d991
RW
972 (build-system gnu-build-system)
973 (arguments
b7cbcee5
TGR
974 `(#:phases
975 (modify-phases %standard-phases
976 (add-after 'unpack 'fix-permissions
977 ;; FIXME: url-fetch/tarbomb resets all permissions to 555/444.
978 (lambda _
979 (for-each
980 (lambda (file)
981 (chmod file #o644))
982 (find-files "doc" "\\."))
983 #t)))
984 #:tests? #f)) ; tests are run during build
eba9ecd4 985 (home-page "https://michaelrsweet.github.io/mxml")
96f8d991
RW
986 (synopsis "Small XML parsing library")
987 (description
988 "Mini-XML is a small C library to read and write XML files and strings in
989UTF-8 and UTF-16 encoding.")
990 ;; LGPL 2.0+ with additional exceptions for static linking
991 (license license:lgpl2.0+)))
33ae9107
DT
992
993;; TinyXML is an unmaintained piece of software, so the patches and build
994;; system massaging have no upstream potential.
995(define-public tinyxml
996 (package
997 (name "tinyxml")
998 (version "2.6.2")
999 (source (origin
1000 (method url-fetch)
de67e922
LF
1001 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
1002 version "/tinyxml_"
33ae9107
DT
1003 (string-join (string-split version #\.) "_")
1004 ".tar.gz"))
671249b9 1005 (file-name (string-append name "-" version ".tar.gz"))
33ae9107
DT
1006 (sha256
1007 (base32
1008 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 1009 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
1010 (build-system gnu-build-system)
1011 ;; This library is missing *a lot* of the steps to make it usable, so we
1012 ;; have to add them here, like every other distro must do.
1013 (arguments
1014 `(#:phases
1015 (modify-phases %standard-phases
1016 (delete 'configure)
1017 (add-after 'build 'build-shared-library
1018 (lambda _
0efb6452
EF
1019 (invoke "g++" "-Wall" "-O2" "-shared" "-fpic"
1020 "tinyxml.cpp" "tinyxmlerror.cpp"
1021 "tinyxmlparser.cpp" "tinystr.cpp"
1022 "-o" "libtinyxml.so")))
33ae9107 1023 (replace 'check
0efb6452 1024 (lambda _ (invoke "./xmltest")))
33ae9107
DT
1025 (replace 'install
1026 (lambda* (#:key outputs #:allow-other-keys)
1027 (let* ((out (assoc-ref outputs "out"))
1028 (include (string-append out "/include"))
1029 (lib (string-append out "/lib"))
1030 (pkgconfig (string-append out "/lib/pkgconfig"))
1031 (doc (string-append out "/share/doc")))
1032 ;; Install libs and headers.
1033 (install-file "libtinyxml.so" lib)
1034 (install-file "tinystr.h" include)
1035 (install-file "tinyxml.h" include)
1036 ;; Generate and install pkg-config file.
1037 (mkdir-p pkgconfig)
1038 ;; Software such as Kodi expect this file to be present, but
1039 ;; it's not provided in the source code.
1040 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
1041 (lambda (port)
1042 (format port "prefix=~a
1043exec_prefix=${prefix}
1044libdir=${exec_prefix}/lib
1045includedir=${prefix}/include
1046
1047Name: TinyXML
1048Description: A simple, small, C++ XML parser
1049Version: ~a
1050Libs: -L${libdir} -ltinyxml
1051Cflags: -I${includedir}
1052"
1053 out ,version)))
1054 ;; Install docs.
1055 (mkdir-p doc)
1056 (copy-recursively "docs" (string-append doc "tinyxml"))
1057 #t))))))
1058 (synopsis "Small XML parser for C++")
1059 (description "TinyXML is a small and simple XML parsing library for the
05077200 1060C++ programming language.")
33ae9107
DT
1061 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
1062 (license license:zlib)))
fe9451c5 1063
931bd7f6
TGR
1064(define-public tinyxml2
1065 (package
1066 (name "tinyxml2")
1067 (version "4.0.1")
1068 (source
1069 (origin
1070 (method url-fetch)
1071 (uri (string-append "https://github.com/leethomason/tinyxml2/archive/"
1072 version ".tar.gz"))
29a39054 1073 (file-name (string-append name "-" version ".tar.gz"))
931bd7f6 1074 (sha256
29a39054
EF
1075 (base32
1076 "083z4r4khcndxi9k840lcr48sqxvar4gpsnf749xfdn1bkr8xcql"))))
931bd7f6
TGR
1077 (build-system cmake-build-system)
1078 (arguments
1079 `(#:tests? #f)) ; no tests
1080 (synopsis "Small XML parser for C++")
1081 (description "TinyXML2 is a small and simple XML parsing library for the
1082C++ programming language.")
1083 (home-page "http://www.grinninglizard.com/tinyxml2/")
1084 (license license:zlib)))
1085
fe9451c5
RG
1086(define-public xmlstarlet
1087 (package
1088 (name "xmlstarlet")
1089 (version "1.6.1")
1090 (source
1091 (origin
1092 (method url-fetch)
1093 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
1094 version "/xmlstarlet-" version ".tar.gz"))
1095 (sha256
1096 (base32
1097 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
1098 (build-system gnu-build-system)
22ea0235
MB
1099 (arguments
1100 '(#:phases
1101 (modify-phases %standard-phases
1102 (add-before 'check 'drop-failing-tests
1103 (lambda _
1104 ;; FIXME: Why are these tests failing.
1105 (substitute* "Makefile"
1106 (("^examples/schema1\\\\") "\\")
1107 (("^examples/valid1\\\\") "\\"))
1108 #t)))))
fe9451c5
RG
1109 (inputs
1110 `(("libxslt" ,libxslt)
1111 ("libxml2" ,libxml2)))
1112 (home-page "http://xmlstar.sourceforge.net/")
1113 (synopsis "Command line XML toolkit")
1114 (description "XMLStarlet is a set of command line utilities which can be
1115used to transform, query, validate, and edit XML documents. XPath is used to
1116match and extract data, and elements can be added, deleted or modified using
1117XSLT and EXSLT.")
1118 (license license:x11)))
19c33040 1119
767d24e8
SR
1120(define-public html-xml-utils
1121 (package
1122 (name "html-xml-utils")
4fab0da0 1123 (version "7.7")
767d24e8
SR
1124 (source
1125 (origin
1126 (method url-fetch)
1127 (uri (string-append
1128 "https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-"
1129 version ".tar.gz"))
1130 (sha256
1131 (base32
4fab0da0 1132 "1vwqp5q276j8di9zql3kygf31z2frp2c59yjqlrvvwcvccvkcdwr"))))
767d24e8
SR
1133 (build-system gnu-build-system)
1134 (home-page "https://www.w3.org/Tools/HTML-XML-utils/")
1135 (synopsis "Command line utilities to manipulate HTML and XML files")
1136 (description "HTML-XML-utils provides a number of simple utilities for
1137manipulating and converting HTML and XML files in various ways. The suite
1138consists of the following tools:
1139
1140@itemize
1141 @item @command{asc2xml} convert from @code{UTF-8} to @code{&#nnn;} entities
1142 @item @command{xml2asc} convert from @code{&#nnn;} entities to @code{UTF-8}
1143 @item @command{hxaddid} add IDs to selected elements
1144 @item @command{hxcite} replace bibliographic references by hyperlinks
1145 @item @command{hxcite} mkbib - expand references and create bibliography
1146 @item @command{hxclean} apply heuristics to correct an HTML file
1147 @item @command{hxcopy} copy an HTML file while preserving relative links
1148 @item @command{hxcount} count elements and attributes in HTML or XML files
1149 @item @command{hxextract} extract selected elements
1150 @item @command{hxincl} expand included HTML or XML files
1151 @item @command{hxindex} create an alphabetically sorted index
1152 @item @command{hxmkbib} create bibliography from a template
1153 @item @command{hxmultitoc} create a table of contents for a set of HTML files
1154 @item @command{hxname2id} move some @code{ID=} or @code{NAME=} from A
1155elements to their parents
1156 @item @command{hxnormalize} pretty-print an HTML file
1157 @item @command{hxnsxml} convert output of hxxmlns back to normal XML
1158 @item @command{hxnum} number section headings in an HTML file
1159 @item @command{hxpipe} convert XML to a format easier to parse with Perl or AWK
1160 @item @command{hxprintlinks} number links and add table of URLs at end of an HTML file
1161 @item @command{hxprune} remove marked elements from an HTML file
1162 @item @command{hxref} generate cross-references
1163 @item @command{hxselect} extract elements that match a (CSS) selector
1164 @item @command{hxtoc} insert a table of contents in an HTML file
1165 @item @command{hxuncdata} replace CDATA sections by character entities
1166 @item @command{hxunent} replace HTML predefined character entities to @code{UTF-8}
1167 @item @command{hxunpipe} convert output of pipe back to XML format
1168 @item @command{hxunxmlns} replace \"global names\" by XML Namespace prefixes
1169 @item @command{hxwls} list links in an HTML file
1170 @item @command{hxxmlns} replace XML Namespace prefixes by \"global names\"
1171@end itemize
1172")
1173 (license license:expat)))
1174
19c33040
JN
1175(define-public xlsx2csv
1176 (package
1177 (name "xlsx2csv")
1178 (version "0.7.2")
1179 (source (origin
1180 (method url-fetch)
1181 (uri (string-append
1182 "https://github.com/dilshod/"
1183 name "/archive/release/" version ".tar.gz"))
1184 (file-name (string-append name "-" version ".tar.gz"))
1185 (sha256
1186 (base32
1187 "1gpn6kaa7l1ai8c9zx2j3acf04bvxq79pni8jjfjrk01smjbyyql"))))
1188 (build-system python-build-system)
1189 (arguments
1190 `(#:python ,python-2 ; Use python-2 for the test script.
1191 #:phases
1192 (modify-phases %standard-phases
1193 (replace 'check
1194 (lambda _
1195 (substitute* "test/run"
1196 ;; Run tests with `python' only
1197 (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
1198 (zero? (system* "test/run")))))))
1199 (home-page "https://github.com/dilshod/xlsx2csv")
1200 (synopsis "XLSX to CSV converter")
1201 (description
1202 "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
1203XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
1204files. It is designed to be fast and to handle large input files.")
1205 (license license:gpl2+)))
d2b51c08 1206
1207(define-public python-defusedxml
1208 (package
1209 (name "python-defusedxml")
ca6197dd 1210 (version "0.5.0")
d2b51c08 1211 (source
1212 (origin
1213 (method url-fetch)
1214 (uri (pypi-uri "defusedxml" version))
1215 (sha256
1216 (base32
ca6197dd 1217 "1x54n0h8hl92vvwyymx883fbqpqjwn2mc8fb383bcg3z9zwz5mr4"))))
d2b51c08 1218 (build-system python-build-system)
1219 (home-page "https://bitbucket.org/tiran/defusedxml")
1220 (synopsis "XML bomb protection for Python stdlib modules")
1221 (description
1222 "Defusedxml provides XML bomb protection for Python stdlib modules.")
1223 (license license:psfl)))
1224
1225(define-public python2-defusedxml
1226 (package-with-python2 python-defusedxml))
ca8f3f9a
AP
1227
1228(define-public libxls
1229 (package
1230 (name "libxls")
1231 (version "1.4.0")
1232 (source (origin
1233 (method url-fetch)
1234 (uri (string-append "https://sourceforge.net/projects/"
1235 name "/files/" name "-"
1236 version ".zip"))
1237 (sha256
1238 (base32
1239 "1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk"))))
1240 (build-system gnu-build-system)
1241 (arguments
1242 `(#:phases
1243 (modify-phases %standard-phases
1244 ;; Bootstrapping is required in order to fix the test driver script.
189be331 1245 (replace 'bootstrap
ca8f3f9a
AP
1246 (lambda _
1247 (zero? (system* "bash" "bootstrap")))))))
1248 (native-inputs
1249 `(("unzip" ,unzip)
1250 ("autoconf" ,autoconf)
1251 ("automake" ,automake)
1252 ("libtool" ,libtool)))
1253 (home-page "http://libxls.sourceforge.net/")
1254 (synopsis "Read Excel files")
1255 (description
1256 "libxls is a C library which can read Excel (xls) files since Excel 97 (the BIFF8 format).
1257libxls cannot write Excel files.")
1258 (license license:bsd-2)))
623fb4d1
AP
1259
1260(define-public freexl
1261 (package
1262 (name "freexl")
5275f69e 1263 (version "1.0.5")
623fb4d1
AP
1264 (source (origin
1265 (method url-fetch)
1266 (uri (string-append "http://www.gaia-gis.it/gaia-sins/"
1267 name "-" version ".tar.gz"))
1268 (sha256
1269 (base32
5275f69e 1270 "03bmwq6hngmzwpqpb7c2amqlspz4q69iv96nlf0f5c0qs98b3j9x"))))
623fb4d1
AP
1271 (build-system gnu-build-system)
1272 (home-page "https://www.gaia-gis.it/fossil/freexl/index")
1273 (synopsis "Read Excel files")
1274 (description
1275 "FreeXL is a C library to extract valid data from within an Excel (.xls)
1276spreadsheet.")
1277 ;; Any of these licenses may be picked.
1278 (license (list license:gpl2+
1279 license:lgpl2.1+
1280 license:mpl1.1))))
d00d6cea
RW
1281
1282(define-public xerces-c
1283 (package
1284 (name "xerces-c")
1285 (version "3.1.4")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://apache/xerces/c/3/sources/"
1289 "xerces-c-" version ".tar.xz"))
1290 (sha256
1291 (base32
1292 "0hb29c0smqlpxj0zdm09s983z5jx37szlliccnvgh0qq91wwqwwr"))))
1293 (build-system gnu-build-system)
1294 (arguments
1295 (let ((system (or (%current-target-system)
1296 (%current-system))))
1297 (if (string-prefix? "x86_64" system)
1298 '()
1299 '(#:configure-flags '("--disable-sse2")))))
1300 (native-inputs
1301 `(("perl" ,perl)))
1302 (home-page "http://xerces.apache.org/xerces-c/")
1303 (synopsis "Validating XML parser library for C++")
1304 (description "Xerces-C++ is a validating XML parser written in a portable
1305subset of C++. Xerces-C++ makes it easy to give your application the ability
1306to read and write XML data. A shared library is provided for parsing,
1307generating, manipulating, and validating XML documents using the DOM, SAX, and
1308SAX2 APIs.")
1309 (license license:asl2.0)))
77d7b57c
RW
1310
1311(define-public java-simple-xml
1312 (package
1313 (name "java-simple-xml")
1314 (version "2.7.1")
1315 (source (origin
1316 (method url-fetch)
1317 (uri (string-append "mirror://sourceforge/simple/simple-xml-"
1318 version ".zip"))
1319 (sha256
1320 (base32
3c274149
GB
1321 "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
1322 (patches (search-patches "java-simple-xml-fix-tests.patch"))))
77d7b57c
RW
1323 (build-system ant-build-system)
1324 (arguments
1325 `(#:build-target "build"
1326 #:test-target "test"
1327 #:phases
1328 (modify-phases %standard-phases
1329 (replace 'install (install-jars "jar")))))
1330 (native-inputs
1331 `(("unzip" ,unzip)))
1332 (home-page "http://simple.sourceforge.net/")
1333 (synopsis "XML serialization framework for Java")
1334 (description "Simple is a high performance XML serialization and
1335configuration framework for Java. Its goal is to provide an XML framework
1336that enables rapid development of XML configuration and communication systems.
1337This framework aids the development of XML systems with minimal effort and
1338reduced errors. It offers full object serialization and deserialization,
1339maintaining each reference encountered.")
1340 (license license:asl2.0)))
3b695802
P
1341
1342(define-public perl-xml-xpathengine
1343 (package
1344 (name "perl-xml-xpathengine")
1345 (version "0.14")
1346 (source (origin
1347 (method url-fetch)
1348 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1349 "XML-XPathEngine-" version ".tar.gz"))
1350 (sha256
1351 (base32
1352 "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
1353 (build-system perl-build-system)
9aba9b12 1354 (home-page "https://metacpan.org/release/XML-XPathEngine")
3b695802
P
1355 (synopsis "Re-usable XPath engine for DOM-like trees")
1356 (description
1357 "This module provides an XPath engine, that can be re-used by other
1358modules/classes that implement trees.
1359
1360In order to use the XPath engine, nodes in the user module need to mimick DOM
1361nodes. The degree of similitude between the user tree and a DOM dictates how
1362much of the XPath features can be used. A module implementing all of the DOM
1363should be able to use this module very easily (you might need to add the
1364@code{cmp} method on nodes in order to get ordered result sets).")
1365 (license license:perl-license)))
9e1c3581
P
1366
1367(define-public perl-tree-xpathengine
1368 (package
1369 (name "perl-tree-xpathengine")
1370 (version "0.05")
1371 (source (origin
1372 (method url-fetch)
1373 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1374 "Tree-XPathEngine-" version ".tar.gz"))
1375 (sha256
1376 (base32
1377 "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
1378 (build-system perl-build-system)
9aba9b12 1379 (home-page "https://metacpan.org/release/Tree-XPathEngine")
9e1c3581
P
1380 (synopsis "Re-usable XPath engine")
1381 (description
1382 "This module provides an XPath engine, that can be re-used by other
1383module/classes that implement trees. It is designed to be compatible with
1384@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
1385by @code{Tree::XPathEngine}.")
1386 (license license:perl-license)))
b7c59195
P
1387
1388(define-public perl-xml-filter-buffertext
1389 (package
1390 (name "perl-xml-filter-buffertext")
1391 (version "1.01")
1392 (source
1393 (origin
1394 (method url-fetch)
1395 (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
1396 "XML-Filter-BufferText-" version ".tar.gz"))
1397 (sha256
1398 (base32
1399 "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
1400 (build-system perl-build-system)
1401 (propagated-inputs
1402 `(("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1403 (home-page "https://metacpan.org/release/XML-Filter-BufferText")
b7c59195
P
1404 (synopsis "Filter to put all characters() in one event")
1405 (description "This is a very simple filter. One common cause of
1406grief (and programmer error) is that XML parsers aren't required to provide
1407character events in one chunk. They can, but are not forced to, and most
1408don't. This filter does the trivial but oft-repeated task of putting all
1409characters into a single event.")
1410 (license license:perl-license)))
33b592ee
P
1411
1412(define-public perl-xml-sax-writer
1413 (package
1414 (name "perl-xml-sax-writer")
1415 (version "0.57")
1416 (source (origin
1417 (method url-fetch)
1418 (uri (string-append
1419 "mirror://cpan/authors/id/P/PE/PERIGRIN/"
1420 "XML-SAX-Writer-" version ".tar.gz"))
1421 (sha256
1422 (base32
1423 "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
1424 (build-system perl-build-system)
1425 (propagated-inputs
1426 `(("perl-libxml" ,perl-libxml)
1427 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
c695fb76 1428 ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
33b592ee 1429 ("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1430 (home-page "https://metacpan.org/release/XML-SAX-Writer")
33b592ee
P
1431 (synopsis "SAX2 XML Writer")
1432 (description
1433 "This is an XML writer that understands SAX2. It is based on
1434@code{XML::Handler::YAWriter}.")
1435 (license license:perl-license)))
9e88b210
P
1436
1437(define-public perl-xml-handler-yawriter
1438 (package
1439 (name "perl-xml-handler-yawriter")
1440 (version "0.23")
1441 (source
1442 (origin
1443 (method url-fetch)
1444 (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
1445 "XML-Handler-YAWriter-" version ".tar.gz"))
1446 (sha256
1447 (base32
1448 "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
1449 (build-system perl-build-system)
1450 (propagated-inputs
1451 `(("perl-libxml" ,perl-libxml)))
9aba9b12 1452 (home-page "https://metacpan.org/release/XML-Handler-YAWriter")
9e88b210
P
1453 (synopsis "Yet another Perl SAX XML Writer")
1454 (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
1455It provides a flexible escaping technique and pretty printing.")
1456 (license license:perl-license)))
85f225fb
P
1457
1458(define-public perl-xml-twig
1459 (package
1460 (name "perl-xml-twig")
1461 (version "3.52")
1462 (source (origin
1463 (method url-fetch)
1464 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1465 "XML-Twig-" version ".tar.gz"))
1466 (sha256
1467 (base32
1468 "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
1469 (build-system perl-build-system)
1470 (inputs
1471 `(("expat" ,expat)))
1472 (propagated-inputs
1473 `(("perl-html-tidy" ,perl-html-tidy)
1474 ("perl-html-tree" ,perl-html-tree)
1475 ("perl-io-captureoutput" ,perl-io-captureoutput)
1476 ("perl-io-string" ,perl-io-string)
1477 ("perl-io-stringy" ,perl-io-stringy)
1478 ("perl-libxml" ,perl-libxml)
1479 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
1480 ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
1481 ("perl-xml-parser" ,perl-xml-parser)
1482 ("perl-xml-sax-writer" ,perl-xml-sax-writer)
1483 ("perl-xml-simple" ,perl-xml-simple)
1484 ("perl-xml-xpathengine" ,perl-xml-xpathengine)
c695fb76 1485 ("perl-test-pod" ,perl-test-pod)
85f225fb 1486 ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
9aba9b12 1487 (home-page "https://metacpan.org/release/XML-Twig")
85f225fb
P
1488 (synopsis "Perl module for processing huge XML documents in tree mode")
1489 (description "@code{XML::Twig} is an XML transformation module. Its
1490strong points: can be used to process huge documents while still being in tree
1491mode; not bound by DOM or SAX, so it is very perlish and offers a very
1492comprehensive set of methods; simple to use; DWIMs as much as possible.
1493
1494What it doesn't offer: full SAX support (it can export SAX, but only reads
1495XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
1496support.")
1497 (license license:perl-license)))
1a17ca26
JL
1498
1499;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
1500;; xml-apis.jar and xml-apis-1.4.01.jar.
1501(define-public java-jaxp
1502 (package
1503 (name "java-jaxp")
1504 (version "1.4.01")
1505 (source
1506 (origin
1507 (method url-fetch)
1508 (uri (string-append "mirror://apache/xerces/xml-commons/source/"
1509 "xml-commons-external-" version "-src.tar.gz"))
1510 (sha256
1511 (base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
1512 (build-system ant-build-system)
1513 (arguments
1514 `(#:jar-name "jaxp.jar"
1515 #:jdk ,icedtea-8
1516 #:source-dir ".."
1517 #:tests? #f)); no tests
1518 (home-page "http://xerces.apache.org/xml-commons/")
1519 (synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
1520 (description "Jaxp from the Apache XML Commons project is used by
1521the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
1522
1523@itemize
1524@item Document Object Model (DOM)
1525@item Simple API for XML (SAX)
1526@item Java APIs for XML Processing (JAXP)
1527@item Transformation API for XML (TrAX)
1528@item Document Object Model (DOM) Load and Save
1529@item JSR 206 Java API for XML Processing
1530@end itemize")
1531 (license (list license:asl2.0
1532 license:w3c ;; Files under org.w3c
1533 license:public-domain)))) ;; org.xml.sax
9a86ee78
JL
1534
1535(define-public java-apache-xml-commons-resolver
1536 (package
1537 (name "java-apache-xml-commons-resolver")
1538 (version "1.2")
1539 (source
1540 (origin
1541 (method url-fetch)
1542 (uri (string-append "mirror://apache/xerces/xml-commons/"
1543 "xml-commons-resolver-" version ".tar.gz"))
1544 (sha256
1545 (base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
1546 (modules '((guix build utils)))
1547 (snippet
1548 '(begin
1549 (for-each delete-file (find-files "." ".*\\.(jar|zip)"))
1550 #t))))
1551 (build-system ant-build-system)
1552 (arguments
1553 `(#:jar-name (string-append "xml-resolver.jar")
1554 #:tests? #f)); no tests
1555 (inputs
1556 `(("java-junit" ,java-junit)))
1557 (home-page "http://xerces.apache.org/xml-commons/")
1558 (synopsis "Catalog-based entity and URI resolution")
1559 (description "The resolver class implements the full semantics of OASIS Technical
1560Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
15612001 Committee Specification of OASIS XML Catalogs.
1562
1563It also includes a framework of classes designed to read catalog files
1564in a number of formats:
1565
1566@itemize
1567@item The plain-text flavor described by TR9401.
1568@item The XCatalog XML format defined by John Cowan
1569@item The XML Catalog format defined by the OASIS Entity Resolution
1570 Technical Committee.
1571@end itemize")
1572 (license license:asl2.0)))
7eae94d8
JL
1573
1574;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
1575;; This package is a bootstrap version without dependencies on dom4j and xom.
1576(define java-jaxen-bootstrap
1577 (package
1578 (name "java-jaxen-bootstrap")
1579 (version "1.1.6")
1580 (source (origin
1581 (method url-fetch)
1582 ;; No release on github
1583 (uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
1584 version "/jaxen-" version "-sources.jar"))
1585 (sha256
1586 (base32
1587 "18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
1588 (build-system ant-build-system)
1589 (arguments
1590 `(#:jar-name "jaxen.jar"
1591 #:source-dir "src"
1592 #:tests? #f; no tests
1593 #:phases
1594 (modify-phases %standard-phases
1595 (add-before 'build 'remove-dom4j
1596 (lambda _
1597 (delete-file-recursively "src/org/jaxen/dom4j")
1598 (delete-file-recursively "src/org/jaxen/xom")
1599 #t)))))
1600 (inputs
1601 `(("java-jdom" ,java-jdom)))
1602 (home-page "https://github.com/jaxen-xpath/jaxen")
1603 (synopsis "XPath library")
1604 (description "Jaxen is an XPath library written in Java. It is adaptable
1605to many different object models, including DOM, XOM, dom4j, and JDOM. It is
1606also possible to write adapters that treat non-XML trees such as compiled
1607Java byte code or Java beans as XML, thus enabling you to query these trees
1608with XPath too.")
1609 (license license:bsd-3)))
5552080d 1610
be0524f4
JL
1611(define-public java-jaxen
1612 (package
1613 (inherit java-jaxen-bootstrap)
1614 (name "java-jaxen")
1615 (inputs
1616 `(("java-jdom" ,java-jdom)
1617 ("java-xom" ,java-xom)
1618 ("java-dom4j" ,java-dom4j)))))
1619
5552080d
JL
1620(define-public java-xom
1621 (package
1622 (name "java-xom")
1623 (version "127")
1624 (source (origin
1625 (method url-fetch)
1626 (uri (string-append "https://github.com/elharo/xom/archive/XOM_"
1627 version ".tar.gz"))
1628 (sha256
1629 (base32
1630 "04m69db1irqja12a9rfxrac8cbn9psqa1k136wh4ls4pxfsdr5wg"))
1631 (modules '((guix build utils)))
1632 (snippet
1633 '(begin
1634 (for-each delete-file
1635 (find-files "." "\\.jar$"))
1636 #t))))
1637 (build-system ant-build-system)
1638 (arguments
1639 `(#:jar-name "xom.jar"
1640 #:jdk ,icedtea-8
1641 #:tests? #f; no tests
1642 #:phases
1643 (modify-phases %standard-phases
1644 (add-before 'configure 'fix-tagsoup-dep
1645 (lambda _
1646 ;; FIXME: Where is tagsoup source?
1647 (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
1648 #t)))))
1649 (inputs
1650 `(("java-jdom" ,java-jdom)
1651 ("java-junit" ,java-junit)
1652 ("java-classpathx-servletapi" ,java-classpathx-servletapi)
1653 ("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1654 ("java-xerces" ,java-xerces)))
1655 (home-page "https://xom.nu/")
1656 (synopsis "XML Object Model")
1657 (description "XOM is a new XML Object Model for processing XML with Java
1658that strives for correctness and simplicity.")
1659 ;; 2.1 only
1660 (license license:lgpl2.1)))
96f31935
JL
1661
1662(define-public java-xsdlib
1663 (package
1664 (name "java-xsdlib")
1665 (version "2013.2")
1666 (source (origin
1667 (method url-fetch)
1668 (uri (string-append "http://central.maven.org/maven2/com/sun/msv/"
1669 "datatype/xsd/xsdlib/" version "/xsdlib-"
1670 version "-sources.jar"))
1671 (sha256
1672 (base32
1673 "185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
1674 (build-system ant-build-system)
1675 (arguments
1676 `(#:tests? #f; no tests
1677 #:jar-name "xsdlib.jar"
1678 #:jdk ,icedtea-8))
1679 (inputs
1680 `(("java-xerces" ,java-xerces)))
1681 (home-page "http://central.maven.org/maven2/com/sun/msv/datatype/xsd/xsdlib/")
1682 (synopsis "Sun Multi-Schema Validator")
1683 (description "Xsdlib contains an implementation of sun.com.msv, an XML
1684validator.")
1685 (license license:bsd-2)))
82d7d4e1
JL
1686
1687(define-public java-xpp3
1688 (package
1689 (name "java-xpp3")
1690 (version "1.1.4")
1691 (source (origin
1692 (method url-fetch)
1693 (uri (string-append "http://www.extreme.indiana.edu/dist/"
1694 "java-repository/xpp3/distributions/xpp3-"
1695 version "_src.tgz"))
1696 (sha256
1697 (base32
1698 "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
1699 (modules '((guix build utils)))
1700 (snippet
1701 '(begin ;; Delete bundled jar archives.
1702 (for-each delete-file (find-files "." ".*\\.jar"))
1703 #t))))
1704 (build-system ant-build-system)
1705 (arguments
1706 `(#:tests? #f; no tests
1707 #:build-target "jar"
1708 #:phases
1709 (modify-phases %standard-phases
1710 (replace 'install (install-jars "build")))))
1711 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1712 (synopsis "Streaming pull XML parser")
1713 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1714parser and should be used when there is a need to process quickly and
1715efficiently all input elements (for example in SOAP processors). This
1716package is a stable XmlPull parsing engine that is based on ideas from XPP
1717and in particular XPP2 but completely revised and rewritten to take the best
1718advantage of JIT JVMs.")
1719 (license (license:non-copyleft "file://LICENSE.txt"))))
9421f682
JL
1720
1721(define-public java-xmlpull2
1722 (package
1723 (name "java-xmlpull2")
1724 (version "2.1.10")
1725 (source (origin
1726 (method url-fetch)
1727 (uri (string-append "http://www.extreme.indiana.edu/xgws/xsoap/"
1728 "PullParser/PullParser" version ".tgz"))
1729 (sha256
1730 (base32
1731 "1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
1732 (modules '((guix build utils)))
1733 (snippet
1734 '(begin ;; Delete bundled jar archives.
1735 (for-each delete-file (find-files "." ".*\\.jar"))
1736 #t))))
1737 (build-system ant-build-system)
1738 (arguments
1739 `(#:tests? #f; no tests
1740 #:build-target "impl"
1741 #:phases
1742 (modify-phases %standard-phases
1743 (replace 'install (install-jars "build/lib")))))
1744 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1745 (synopsis "Streaming pull XML parser")
1746 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1747parser and should be used when there is a need to process quickly and
1748efficiently all input elements (for example in SOAP processors). This
1749package is in maintenance mode.")
1750 (license (license:non-copyleft "file:///LICENSE.txt"))))
605c23df
JL
1751
1752(define-public java-dom4j
1753 (package
1754 (name "java-dom4j")
1755 (version "2.1.0")
1756 (source (origin
1757 (method url-fetch)
1758 (uri (string-append "https://github.com/dom4j/dom4j/archive/"
1759 "version-" version ".tar.gz"))
1760 (file-name (string-append name "-" version ".tar.gz"))
1761 (sha256
1762 (base32
1763 "101drpnw6agmcvsi1jrfi0kn97r7liazrh5jbrip9vx26axn2fx9"))
1764 (modules '((guix build utils)))
1765 (snippet
1766 '(begin ;; Delete bundled jar archives.
1767 (for-each delete-file (find-files "." ".*\\.jar"))
1768 #t))))
1769 (build-system ant-build-system)
1770 (arguments
1771 `(#:jar-name "dom4j.jar"
1772 #:jdk ,icedtea-8
1773 #:source-dir "src/main/java"
1774 ;; FIXME: Requires xalan, but xalan depends on java-cup which has a
1775 ;; dependency on itself through jflex.
1776 #:tests? #f
1777 #:phases
1778 (modify-phases %standard-phases
1779 (add-before 'build 'copy-jaxen-sources
1780 ;; java-jaxen-bootstrap is not enough. These files have a circular
1781 ;; dependency and there is no subset of dom4j that would allow
1782 ;; breaking the circle.
1783 (lambda* (#:key inputs #:allow-other-keys)
1784 (mkdir-p "jaxen-sources")
1785 (with-directory-excursion "jaxen-sources"
1786 (system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
1787 (mkdir-p "src/main/java/org/jaxen/dom4j")
1788 (copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
1789 "src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
1790 (copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
1791 "src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
1792 #t))
1793 (add-before 'build 'fix-old-xpp2
1794 (lambda _
1795 ;; This package normally depends on xpp2 2.0, but version 2.1.10
1796 ;; is the only version whose source code is published.
1797 (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
1798 (("public void resetStartTag")
1799 "public boolean removeAttributeByRawName(String name) {\n
1800 return false;\n
1801}\n
1802public boolean removeAttributeByName(String name, String name2) {\n
1803 return false;\n
1804}\n\npublic void resetStartTag")
1805 (("Atttribute") "Attribute"))
1806 #t)))))
1807 (inputs
1808 `(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1809 ("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
1810 ("java-xmlpull2" ,java-xmlpull2)
1811 ("java-xpp3" ,java-xpp3)
1812 ("java-xsdlib" ,java-xsdlib)))
1813 (native-inputs
1814 `(("java-testng" ,java-testng)
1815 ("java-xerces" ,java-xerces)))
1816 (home-page "https://dom4j.github.io/")
1817 (synopsis "Flexible XML framework for Java")
1818 (description "Dom4j is a flexible XML framework for Java. DOM4J works
1819with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
1820low memory footprint.")
1821 ;; some BSD-like 5-clause license
1822 (license (license:non-copyleft "file://LICENSE"))))
3058d8ec
JL
1823
1824(define-public java-kxml2
1825 (package
1826 (name "java-kxml2")
1827 (version "2.4.2")
1828 (source (origin
1829 (method url-fetch)
1830 (uri (string-append "https://github.com/stefanhaustein/kxml2/archive/v"
1831 version ".tar.gz"))
1832 (file-name (string-append name "-" version ".tar.gz"))
1833 (sha256
1834 (base32
1835 "17kh04qf3vll1xx6sv06xlazw2hxa8qdmzyday9r6z2191jlj74w"))))
1836 (build-system ant-build-system)
1837 (arguments
1838 `(#:jar-name "kxml2.jar"
1839 #:source-dir "src/main/java"
1840 #:test-include (list "TestWb.java")
1841 ;; Test failure: it was expected to get an XML entity but got the
1842 ;; equivalent Unicode character instead.
1843 #:tests? #f
1844 #:phases
1845 (modify-phases %standard-phases
1846 (add-before 'build 'copy-resources
1847 (lambda _
1848 (copy-recursively "src/main/resources" "build/classes"))))))
1849 (inputs
1850 `(("java-xpp3" ,java-xpp3)))
1851 (native-inputs
1852 `(("java-junit" ,java-junit)))
1853 (home-page "http://kxml.org")
1854 (synopsis "XML pull parser")
1855 (description "kXML is a small XML pull parser, specially designed for
1856constrained environments such as Applets, Personal Java or devices compliant
1857with the Mobile Information Device Profile (MIDP).")
1858 (license license:expat)))
4c7759f0
JL
1859
1860(define-public java-stax
1861 (package
1862 (name "java-stax")
1863 (version "1.2.0")
1864 (source (origin
1865 (method url-fetch)
1866 (uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
1867 version "/stax-" version "-sources.jar"))
1868 (sha256
1869 (base32
1870 "04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
1871 (build-system ant-build-system)
1872 (arguments
1873 `(#:jar-name "stax.jar"
1874 #:tests? #f; no tests
1875 #:phases
1876 (modify-phases %standard-phases
1877 (add-before 'configure 'fix-utf8
1878 (lambda _
1879 ;; This file is ISO-8859-1 but java expects UTF-8.
1880 ;; Remove special characters in comments.
1881 (with-fluids ((%default-port-encoding "ISO-8859-1"))
1882 (substitute* "src/com/wutka/dtd/Scanner.java"
1883 (("//.*") "\n")))
1884 #t)))))
1885 (home-page "https://repo1.maven.org/maven2/stax/stax/")
1886 (synopsis "Streaming API for XML")
1887 (description "This package provides the reference implementation of the
1888@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
1889and from a Java application. It provides a standard pull parser interface.")
1890 (license license:asl2.0)))
b8798817
JL
1891
1892(define-public java-jettison
1893 (package
1894 (name "java-jettison")
1895 (version "1.3.7")
1896 (source (origin
1897 (method url-fetch)
1898 (uri (string-append "https://github.com/codehaus/jettison/archive/"
1899 "jettison-" version ".tar.gz"))
1900 (sha256
1901 (base32
1902 "0rdhfyxywvga5wiwasc04iqnxyixn3rd8wj01c9ymhvwc3h6dpqg"))))
1903 (build-system ant-build-system)
1904 (arguments
1905 `(#:jar-name "jettison.jar"
1906 #:source-dir "src/main/java"
1907 #:test-exclude (list "**/Abstract*.java"
1908 ;; Abstract classes
1909 "**/DOMTest.java"
1910 "**/BadgerFishDOMTest.java"
1911 "**/MappedDOMTest.java")))
1912 (native-inputs
1913 `(("java-junit" ,java-junit)))
1914 (home-page "https://github.com/codehaus/jettison")
1915 (synopsis "StAX implementation for JSON")
1916 (description "Jettison is a Java library for converting XML to JSON and
1917vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
1918implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
1919@code{Mapped} and @code{BadgerFish} conventions.")
1920 (license license:asl2.0)))
a5ec8a5c
JL
1921
1922(define-public java-jdom2
1923 (package
1924 (name "java-jdom")
1925 (version "2.0.6")
1926 (source (origin
1927 (method url-fetch)
1928 (uri (string-append "https://github.com/hunterhacker/jdom/archive/JDOM-"
1929 version ".tar.gz"))
1930 (sha256
1931 (base32
1932 "0p8n7inqq2a25wk9ljinl3ixlx1x2la9qaman8ngd75xxjb02yc1"))))
1933 (build-system ant-build-system)
1934 (arguments
1935 `(#:build-target "package"
1936 #:tests? #f; tests are run as part of the build process
1937 #:phases
1938 (modify-phases %standard-phases
1939 (replace 'install
1940 (install-jars "build")))))
1941 (home-page "http://jdom.org/")
1942 (synopsis "Access, manipulate, and output XML data")
1943 (description "Jdom is a Java-based solution for accessing, manipulating, and
1944outputting XML data from Java code.")
1945 (license license:bsd-4)))
5ee7b02f
JL
1946
1947(define-public java-xstream
1948 (package
1949 (name "java-xstream")
1950 (version "1.4.10")
1951 (source (origin
1952 (method url-fetch)
1953 (uri (string-append
1954 "https://github.com/x-stream/xstream/archive/XSTREAM_"
1955 (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
1956 ".tar.gz"))
1957 (file-name (string-append name "-" version ".tar.gz"))
1958 (sha256
1959 (base32
1960 "10zbkam05wirxipvgrjimdwsyqrwl4a0n7lhvxbsssqpv727469g"))))
1961 (build-system ant-build-system)
1962 (arguments
1963 `(#:jar-name "xstream.jar"
1964 ;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system
1965 #:tests? #f
1966 #:jdk ,icedtea-8
1967 #:source-dir "xstream/src/java"))
1968 (inputs
1969 `(("java-jdom" ,java-jdom)
1970 ("java-jdom2" ,java-jdom2)
1971 ("java-cglib" ,java-cglib)
1972 ("java-joda-time" ,java-joda-time)
1973 ("java-jettison" ,java-jettison)
1974 ("java-xom" ,java-xom)
1975 ("java-xpp3" ,java-xpp3)
1976 ("java-dom4j" ,java-dom4j)
1977 ("java-stax2-api" ,java-stax2-api)
1978 ("java-woodstox-core" ,java-woodstox-core)
1979 ("java-kxml2" ,java-kxml2)
1980 ("java-stax" ,java-stax)))
1981 (home-page "https://x-stream.github.io")
1982 (synopsis "XML serialization library")
1983 (description "XStream is a simple library to serialize Java objects to XML
1984and back again.")
1985 (license license:bsd-3)))
5c1cf7f3
RW
1986
1987(define-public ghc-hxt-charproperties
1988 (package
1989 (name "ghc-hxt-charproperties")
1990 (version "9.2.0.1")
1991 (source
1992 (origin
1993 (method url-fetch)
1994 (uri (string-append "https://hackage.haskell.org/package/"
1995 "hxt-charproperties/hxt-charproperties-"
1996 version ".tar.gz"))
1997 (sha256
1998 (base32
1999 "1mml8wglvagqq891rchgli6r8rnkwrqhgsxfl6kb5403pzb18rp4"))))
2000 (build-system haskell-build-system)
2001 (home-page "https://github.com/UweSchmidt/hxt")
2002 (synopsis "Character properties and classes for XML and Unicode")
2003 (description
2004 "The modules provided by this package contain predicates for Unicode
2005blocks and char properties and character predicates defined by XML. The
2006supported Unicode version is 7.0.0")
2007 (license license:expat)))
2008
e85de108
RW
2009(define-public ghc-hxt-unicode
2010 (package
2011 (name "ghc-hxt-unicode")
2012 (version "9.0.2.4")
2013 (source
2014 (origin
2015 (method url-fetch)
2016 (uri (string-append
2017 "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
2018 version
2019 ".tar.gz"))
2020 (sha256
2021 (base32
2022 "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
2023 (build-system haskell-build-system)
2024 (inputs
2025 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
2026 (home-page
2027 "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
2028 (synopsis
2029 "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
2030 (description
2031 "This package provides Unicode encoding and decoding functions for
2032encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
2033are supported. Decoding is done with lazy functions, errors may be detected or
2034ignored.")
2035 (license license:expat)))
2036
6f8deed6
RW
2037(define-public ghc-hxt-regex-xmlschema
2038 (package
2039 (name "ghc-hxt-regex-xmlschema")
2040 (version "9.2.0.3")
2041 (source
2042 (origin
2043 (method url-fetch)
2044 (uri (string-append "https://hackage.haskell.org/package/"
2045 "hxt-regex-xmlschema/hxt-regex-xmlschema-"
2046 version ".tar.gz"))
2047 (sha256
2048 (base32
2049 "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
2050 (build-system haskell-build-system)
2051 (inputs
2052 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
2053 ("ghc-parsec" ,ghc-parsec)
2054 ("ghc-text" ,ghc-text)
2055 ("ghc-hunit" ,ghc-hunit)))
2056 (home-page "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema")
2057 (synopsis "Regular expression library for W3C XML Schema regular expressions")
2058 (description
2059 "This library supports full W3C XML Schema regular expressions inclusive
2060all Unicode character sets and blocks. It is implemented by the technique of
2061derivations of regular expressions.")
2062 (license license:expat)))
2063
31511899
RW
2064(define-public ghc-hxt
2065 (package
2066 (name "ghc-hxt")
2067 (version "9.3.1.16")
2068 (source
2069 (origin
2070 (method url-fetch)
2071 (uri (string-append
2072 "https://hackage.haskell.org/package/hxt/hxt-"
2073 version
2074 ".tar.gz"))
2075 (sha256
2076 (base32
2077 "1qq3ykgn355rx242xjcbqqksgvwr6k2fdj5phw4iv28qqxff6m8d"))))
2078 (build-system haskell-build-system)
2079 (inputs
2080 `(("ghc-parsec" ,ghc-parsec)
31511899
RW
2081 ("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
2082 ("ghc-hxt-unicode" ,ghc-hxt-unicode)
2083 ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
2084 ("ghc-network-uri" ,ghc-network-uri)))
2085 (home-page "https://github.com/UweSchmidt/hxt")
2086 (synopsis "Collection of tools for processing XML with Haskell")
2087 (description
2088 "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
2089introduces a more general approach for processing XML with Haskell.")
2090 (license license:expat)))