;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
(define-public expat
(package
(name "expat")
- (version "2.1.1")
+ (version "2.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/expat/expat/"
version "/expat-" version ".tar.bz2"))
- (patches (search-patches "expat-CVE-2012-6702-and-CVE-2016-5300.patch"
- "expat-CVE-2015-1283-refix.patch"
- "expat-CVE-2016-0718.patch"))
+ (patches
+ (search-patches "expat-CVE-2016-0718-fix-regression.patch"))
(sha256
(base32
- "0ryyjgvy7jq0qb7a9mhc1giy3bzn56aiwrs8dpydqngplbjq9xdg"))))
+ "1zq4lnwjlw8s9mmachwfvfjf2x3lk24jm41746ykhdcvs7r0zrfr"))))
(build-system gnu-build-system)
(home-page "http://www.libexpat.org/")
(synopsis "Stream-oriented XML parser library written in C")
(define-public libxml2
(package
(name "libxml2")
+ (replacement libxml2/fixed)
(version "2.9.4")
(source (origin
(method url-fetch)
project (but it is usable outside of the Gnome platform).")
(license license:x11)))
+(define libxml2/fixed
+ (package
+ (inherit libxml2)
+ (source
+ (origin
+ (inherit (package-source libxml2))
+ (patches (search-patches "libxml2-CVE-2016-4658.patch"
+ "libxml2-CVE-2016-5131.patch"))))))
+
(define-public python-libxml2
(package (inherit libxml2)
(name "python-libxml2")
(define-public libxslt
(package
(name "libxslt")
+ (replacement libxslt/fixed)
(version "1.1.29")
(source (origin
(method url-fetch)
based on libxml for XML parsing, tree manipulation and XPath support.")
(license license:x11)))
+(define libxslt/fixed
+ (package
+ (inherit libxslt)
+ (name "libxslt")
+ (source (origin
+ (inherit (package-source libxslt))
+ (patches (search-patches "libxslt-CVE-2016-4738.patch"))))))
+
+(define-public perl-graph-readwrite
+ (package
+ (name "perl-graph-readwrite")
+ (version "2.09")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/N/NE/NEILB/Graph-ReadWrite-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-graph" ,perl-graph)
+ ("perl-parse-yapp" ,perl-parse-yapp)
+ ("perl-xml-parser" ,perl-xml-parser)
+ ("perl-xml-writer" ,perl-xml-writer)))
+ (home-page "http://search.cpan.org/dist/Graph-ReadWrite")
+ (synopsis "Modules for reading and writing directed graphs")
+ (description "This is a collection of perl classes for reading and writing
+directed graphs in a variety of file formats. The graphs are represented in
+Perl using Jarkko Hietaniemi's @code{Graph} classes.
+
+There are two base classes. @code{Graph::Reader} is the base class for classes
+which read a graph file and create an instance of the Graph class.
+@code{Graph::Writer} is the base class for classes which take an instance of
+the @code{Graph} class and write it out in a specific file format.")
+ (license (package-license perl))))
+
+(define-public perl-xml-atom
+ (package
+ (name "perl-xml-atom")
+ (version "0.41")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
+ "XML-Atom-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17lnkb9ymrhk2z642bhj5i2bv3q1da3kpp2lvsl0yhqshk3wdjj8"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-datetime" ,perl-datetime)
+ ;; TODO package: perl-datetime-format-atom
+ ("perl-xml-xpath" ,perl-xml-xpath)))
+ (inputs
+ `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
+ ("perl-datetime" ,perl-datetime)
+ ("perl-datetime-timezone" ,perl-datetime-timezone)
+ ("perl-digest-sha1" ,perl-digest-sha1)
+ ("perl-libwww" ,perl-libwww)
+ ("perl-uri" ,perl-uri)
+ ("perl-xml-libxml" ,perl-xml-libxml)
+ ("perl-xml-xpath" ,perl-xml-xpath)))
+ (home-page "http://search.cpan.org/dist/XML-Atom")
+ (synopsis "Atom feed and API implementation")
+ (description
+ "Atom is a syndication, API, and archiving format for weblogs and other data.
+@code{XML::Atom} implements the feed format as well as a client for the API.")
+ (license (package-license perl))))
+
+(define-public perl-xml-descent
+ (package
+ (name "perl-xml-descent")
+ (version "1.04")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/A/AN/ANDYA/"
+ "XML-Descent-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
+ (propagated-inputs
+ `(("perl-test-differences" ,perl-test-differences)
+ ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
+ (home-page "http://search.cpan.org/dist/XML-Descent")
+ (synopsis "Recursive descent XML parsing")
+ (description
+ "The conventional models for parsing XML are either @dfn{DOM}
+(a data structure representing the entire document tree is created) or
+@dfn{SAX} (callbacks are issued for each element in the XML).
+
+XML grammar is recursive - so it's nice to be able to write recursive
+parsers for it. @code{XML::Descent} allows such parsers to be created.")
+ (license (package-license perl))))
+
(define-public perl-xml-parser
(package
(name "perl-xml-parser")
given at XML::Parser creation time.")
(home-page "http://search.cpan.org/dist/XML-Parser")))
+(define-public perl-xml-tokeparser
+ (package
+ (name "perl-xml-tokeparser")
+ (version "0.05")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/P/PO/PODMASTER/"
+ "XML-TokeParser-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
+ (build-system perl-build-system)
+ (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
+ (home-page "http://search.cpan.org/dist/XML-TokeParser")
+ (synopsis "Simplified interface to XML::Parser")
+ (description
+ "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface
+to @code{XML::Parser} in much the same way that Gisle Aas'
+@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}.
+@code{XML::TokeParser} splits its XML input up into \"tokens\", each
+corresponding to an @code{XML::Parser} event.")
+ (license (package-license perl))))
+
(define-public perl-libxml
(package
(name "perl-libxml")
(define-public perl-xml-libxml
(package
(name "perl-xml-libxml")
- (version "2.0125")
+ (version "2.0128")
(source
(origin
(method url-fetch)
"XML-LibXML-" version ".tar.gz"))
(sha256
(base32
- "1mvbv1pwpdqni9ia9b6brg8brnnvfxr8j5x872qsngc92gipyh01"))))
+ "0awgd2gjzy7kn38bqblsigikzl81xsi561phkz9f9b9v3x2vmrr6"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
(define-public perl-xml-libxml-simple
(package
(name "perl-xml-libxml-simple")
- (version "0.95")
+ (version "0.97")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-LibXML-Simple-" version ".tar.gz"))
(sha256
(base32
- "0qqfqj5bgqmh1j4iv8dwl3g00nsmcvf2b7w1d09k9d77rrb249xi"))))
+ "1g8nlk3zdz2cclxf7azvsb3jfxmvy6ml8wmj774k4qjqcsqmzk0w"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
@code{XML::LibXML}.")
(license (package-license perl))))
+(define-public perl-xml-libxslt
+ (package
+ (name "perl-xml-libxslt")
+ (version "1.95")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
+ "XML-LibXSLT-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0dggycql18kfxzkb1kw3yc7gslxlrrgyyn2r2ygsylycb89j3jpi"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("libxslt" ,libxslt)))
+ (propagated-inputs
+ `(("perl-xml-libxml" ,perl-xml-libxml)))
+ (home-page "http://search.cpan.org/dist/XML-LibXSLT")
+ (synopsis "Perl bindings to GNOME libxslt library")
+ (description "This Perl module is an interface to the GNOME project's
+libxslt library.")
+ (license (package-license perl))))
+
(define-public perl-xml-namespacesupport
(package
(name "perl-xml-namespacesupport")
checks.")
(license (package-license perl))))
+(define-public perl-xml-rss
+ (package
+ (name "perl-xml-rss")
+ (version "1.59")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
+ "XML-RSS-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0v6vfizn2psy6av057kp7fv3z3y73s6b3w56jm3zr6hlq48llsx2"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-manifest" ,perl-test-manifest)
+ ("perl-test-differences" ,perl-test-differences)
+ ("perl-test-pod" ,perl-test-pod)
+ ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+ ;; XXX: The test which uses this modules does not run, even when it is included
+ ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
+ (inputs
+ `(("perl-datetime" ,perl-datetime)
+ ("perl-datetime-format-mail" ,perl-datetime-format-mail)
+ ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
+ ("perl-html-parser" ,perl-html-parser)
+ ("perl-xml-parser" ,perl-xml-parser)))
+ (home-page "http://search.cpan.org/dist/XML-RSS")
+ (synopsis "Creates and updates RSS files")
+ (description
+ "This module provides a basic framework for creating and maintaining
+RDF Site Summary (RSS) files. This distribution also contains many examples
+that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
+1.0 version, and more.")
+ (license (package-license perl))))
+
(define-public perl-xml-sax
(package
(name "perl-xml-sax")
(define-public perl-xml-dom
(package
(name "perl-xml-dom")
- (version "1.44")
+ (version "1.46")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "1r0ampc88ni3sjpzr583k86076qg399arfm9xirv3cw49k3k5bzn"))))
+ "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-libwww" ,perl-libwww)
("perl-libxml" ,perl-libxml)
+ ("perl-xml-parser" ,perl-xml-parser)
("perl-xml-regexp" ,perl-xml-regexp)))
(license (package-license perl))
(synopsis
(define-public perl-xml-compile
(package
(name "perl-xml-compile")
- (version "1.51")
+ (version "1.54")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-" version ".tar.gz"))
(sha256
(base32
- "06fj4zf0yh4kf3kx4bhwrmrjr6al40nasasbgfhn8f1zxwkmm8f2"))))
+ "1hp41960bpqxvv1samv9hc0ghhmvs3i16r4rfl9yp54lp6jhsr2c"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-log-report" ,perl-log-report)
(define-public perl-xml-compile-cache
(package
(name "perl-xml-compile-cache")
- (version "1.04")
+ (version "1.05")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-Cache-" version ".tar.gz"))
(sha256
(base32
- "1689dm54n7wb0n0cl9n77vk0kvg0mcckn2hz9ahigjhvazah8740"))))
+ "0xbwlszhi9hg8sxm5ylglm2qvnb689i595p913awrj2g4mp9yfsw"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-log-report" ,perl-log-report)
(define-public perl-xml-compile-soap
(package
(name "perl-xml-compile-soap")
- (version "3.13")
+ (version "3.21")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-SOAP-" version ".tar.gz"))
(sha256
(base32
- "08qw63l78040nh37xzapbqp43g6s5l67bvskf3dyyizlarjx5mi4"))))
+ "0rxidh7kjyhnw2y789bqbwccnp8n0m3xskn524y9c752s64qpjcz"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
(define-public perl-xml-compile-wsdl11
(package
(name "perl-xml-compile-wsdl11")
- (version "3.04")
+ (version "3.06")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-WSDL11-" version ".tar.gz"))
(sha256
(base32
- "0pyikwnfwpangvnkf5dbdagy4z93ag9824f1ax5qaibc3ghca8kv"))))
+ "0vbq05cpynm3jj81fw1k4nsb3wv4zngi6blvi1jhdarmh2rfg1x2"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-log-report" ,perl-log-report)
server, collect the answer, and finally decoding the XML to Perl.")
(license (package-license perl))))
+(define-public perl-xml-feed
+ (package
+ (name "perl-xml-feed")
+ (version "0.53")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
+ "XML-Feed-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07b165g6wk8kqwpl49r3n0kag6p2nrkyp3ch0h8qyxb6nrnkkq7c"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests require internet connection
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-uri" ,perl-uri)
+ ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
+ (inputs
+ `(("perl-class-errorhandler" ,perl-class-errorhandler)
+ ("perl-datetime" ,perl-datetime)
+ ("perl-datetime-format-mail" ,perl-datetime-format-mail)
+ ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
+ ("perl-feed-find" ,perl-feed-find)
+ ("perl-html-parser" ,perl-html-parser)
+ ("perl-libwww-perl" ,perl-libwww)
+ ("perl-module-pluggable" ,perl-module-pluggable)
+ ("perl-uri-fetch" ,perl-uri-fetch)
+ ("perl-xml-atom" ,perl-xml-atom)
+ ("perl-xml-libxml" ,perl-xml-libxml)
+ ("perl-xml-rss" ,perl-xml-rss)))
+ (home-page "http://search.cpan.org/dist/XML-Feed")
+ (synopsis "XML Syndication Feed Support")
+ (description "@code{XML::Feed} is a syndication feed parser for both RSS and
+Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
+@code{XML::Feed} supports the following syndication feed formats:
+RSS 0.91, RSS 1.0, RSS 2.0, Atom")
+ (license (package-license perl))))
+
+(define-public perl-xml-xpath
+ (package
+ (name "perl-xml-xpath")
+ (version "1.40")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
+ "XML-XPath-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07pa0bl42jka8mj7jshjynx8vpfh8b4cdyiv4zlkqvkqz98nzxib"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-path-tiny" ,perl-path-tiny)))
+ (inputs
+ `(("perl-xml-parser" ,perl-xml-parser)))
+ (home-page "http://search.cpan.org/dist/XML-XPath")
+ (synopsis "Parse and evaluate XPath statements")
+ (description
+ "This module aims to comply exactly to the @url{XPath specification,
+https://www.w3.org/TR/xpath} and yet allow extensions to be added in
+the form of functions.")
+ (license (package-license perl))))
+
(define-public pugixml
(package
(name "pugixml")
- (version "1.7")
+ (version "1.8.1")
(source
(origin
(method url-fetch)
version "/pugixml-" version ".tar.gz"))
(sha256
(base32
- "1jpml475kbhs1aqwa48g2cbfxlrb9qp115m2j9yryxhxyr30vqgv"))))
+ "0fcgggry5x5bn0zhb09ij9hb0p45nb0sv0d9fw3cm1cf62hp9n80"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f
- #:out-of-source? #f
- #:phases (modify-phases %standard-phases
- (add-before
- 'configure 'chdir
- (lambda _
- (chdir "scripts")
- #t)))))
+ `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
+ "-DCMAKE_C_FLAGS=-shared -fPIC")
+ #:tests? #f)) ; no tests
(home-page "http://pugixml.org")
(synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
(description
parsing/saving.")
(license license:expat)))
+(define-public python-pyxb
+ (package
+ (name "python-pyxb")
+ (version "1.2.5")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyXB" version))
+ (sha256
+ (base32
+ "0rzzwibfqa28gxgcxx4cybx1qcg0g6fand06ykj3gz7z5kp653sf"))))
+ (build-system python-build-system)
+ (home-page "http://pyxb.sourceforge.net/")
+ (synopsis "Python XML Schema Bindings")
+ (description
+ "PyXB (\"pixbee\") is a pure Python package that generates Python source
+code for classes that correspond to data structures defined by XMLSchema.")
+ (license (list license:asl2.0 ; Most files.
+ license:expat ; pyxb/utils/six.py
+ license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
+ license:psfl)))) ; pyxb/utils/activestate.py
+
+(define-public python2-pyxb
+ (package-with-python2 python-pyxb))
+
(define-public xmlto
(package
(name "xmlto")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://fedorahosted.org/releases/x/m/xmlto/xmlto-"
- version ".tar.bz2"))
+ ;; The old source on fedorahosted.org is offline permanently:
+ ;; <https://bugs.gnu.org/25989>
+ (uri (string-append "mirror://debian/pool/main/x/xmlto/"
+ "xmlto_" version ".orig.tar.bz2"))
+ (file-name (string-append name "-" version ".tar.bz2"))
(sha256
(base32
"0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
#t))))))
(synopsis "Small XML parser for C++")
(description "TinyXML is a small and simple XML parsing library for the
-C++ programming langauge.")
+C++ programming language.")
(home-page "http://www.grinninglizard.com/tinyxml/index.html")
(license license:zlib)))
+(define-public tinyxml2
+ (package
+ (name "tinyxml2")
+ (version "4.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/leethomason/tinyxml2/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "083z4r4khcndxi9k840lcr48sqxvar4gpsnf749xfdn1bkr8xcql"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ; no tests
+ (synopsis "Small XML parser for C++")
+ (description "TinyXML2 is a small and simple XML parsing library for the
+C++ programming language.")
+ (home-page "http://www.grinninglizard.com/tinyxml2/")
+ (license license:zlib)))
+
(define-public xmlstarlet
(package
(name "xmlstarlet")
match and extract data, and elements can be added, deleted or modified using
XSLT and EXSLT.")
(license license:x11)))
+
+(define-public xlsx2csv
+ (package
+ (name "xlsx2csv")
+ (version "0.7.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/dilshod/"
+ name "/archive/release/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1gpn6kaa7l1ai8c9zx2j3acf04bvxq79pni8jjfjrk01smjbyyql"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2 ; Use python-2 for the test script.
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (substitute* "test/run"
+ ;; Run tests with `python' only
+ (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
+ (zero? (system* "test/run")))))))
+ (home-page "https://github.com/dilshod/xlsx2csv")
+ (synopsis "XLSX to CSV converter")
+ (description
+ "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
+XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
+files. It is designed to be fast and to handle large input files.")
+ (license license:gpl2+)))