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