274 lines
11 KiB
Scheme
274 lines
11 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
|
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
|
;;;
|
|
;;; This file is part of GNU Guix.
|
|
;;;
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
;;; under the terms of the GNU General Public License as published by
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
;;; your option) any later version.
|
|
;;;
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;;; GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU General Public License
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (gnu packages xml)
|
|
#:use-module (gnu packages)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages gnupg)
|
|
#:use-module (gnu packages perl)
|
|
#:use-module (gnu packages python)
|
|
#:use-module (gnu packages web)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix download)
|
|
#:use-module (guix build-system gnu)
|
|
#:use-module (guix build-system perl)
|
|
#:use-module (gnu packages linux))
|
|
|
|
(define-public expat
|
|
(package
|
|
(name "expat")
|
|
(version "2.1.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append "mirror://sourceforge/expat/expat/"
|
|
version "/expat-" version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"11pblz61zyxh68s5pdcbhc30ha1b2vfjd83aiwfg4vc15x3hadw2"))))
|
|
(build-system gnu-build-system)
|
|
(home-page "http://www.libexpat.org/")
|
|
(synopsis "Stream-oriented XML parser library written in C")
|
|
(description
|
|
"Expat is an XML parser library written in C. It is a
|
|
stream-oriented parser in which an application registers handlers for
|
|
things the parser might find in the XML document (like start tags).")
|
|
(license license:expat)))
|
|
|
|
(define-public libxml2
|
|
(package
|
|
(name "libxml2")
|
|
(version "2.9.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"10ib8bpar2pl68aqksfinvfmqknwnk7i35ibq6yjl8dpb0cxj9dd"))))
|
|
(build-system gnu-build-system)
|
|
(home-page "http://www.xmlsoft.org/")
|
|
(synopsis "C parser for XML")
|
|
(inputs `(("zlib" ,zlib)))
|
|
(native-inputs `(("perl" ,perl)
|
|
("python" ,python-2))) ; incompatible with Python 3 (print syntax)
|
|
(arguments
|
|
`(#:phases
|
|
(alist-replace
|
|
'install
|
|
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
|
|
(let ((install (assoc-ref %standard-phases 'install))
|
|
(glibc (assoc-ref inputs ,(if (%current-target-system)
|
|
"cross-libc" "libc")))
|
|
(out (assoc-ref outputs "out")))
|
|
(apply install args)
|
|
(chdir "python")
|
|
(substitute* "setup.py"
|
|
(("/opt/include")
|
|
(string-append glibc "/include")))
|
|
(system* "python" "setup.py" "install"
|
|
(string-append "--prefix=" out))))
|
|
%standard-phases)))
|
|
(description
|
|
"Libxml2 is the XML C parser and toolkit developed for the Gnome project
|
|
(but it is usable outside of the Gnome platform).")
|
|
(license license:x11)))
|
|
|
|
(define-public libxslt
|
|
(package
|
|
(name "libxslt")
|
|
(version "1.1.28")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz"))))
|
|
(build-system gnu-build-system)
|
|
(home-page "http://xmlsoft.org/XSLT/index.html")
|
|
(synopsis "C library for applying XSLT stylesheets to XML documents")
|
|
(inputs `(("libgcrypt" ,libgcrypt)
|
|
("libxml2" ,libxml2)
|
|
("python" ,python-wrapper)
|
|
("zlib" ,zlib)))
|
|
(description
|
|
"Libxslt is an XSLT C library developed for the GNOME project. It is
|
|
based on libxml for XML parsing, tree manipulation and XPath support.")
|
|
(license license:x11)))
|
|
|
|
(define-public perl-xml-parser
|
|
(package
|
|
(name "perl-xml-parser")
|
|
(version "2.41")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1sadi505g5qmxr36lgcbrcrqh3a5gcdg32b405gnr8k54b6rg0dl"))))
|
|
(build-system perl-build-system)
|
|
(arguments `(#:make-maker-flags
|
|
(let ((expat (assoc-ref %build-inputs "expat")))
|
|
(list (string-append "EXPATLIBPATH=" expat "/lib")
|
|
(string-append "EXPATINCPATH=" expat "/include")))))
|
|
(inputs `(("expat" ,expat)))
|
|
(license (package-license perl))
|
|
(synopsis "Perl bindings to the Expat XML parsing library")
|
|
(description
|
|
"This module provides ways to parse XML documents. It is built on top of
|
|
XML::Parser::Expat, which is a lower level interface to James Clark's expat
|
|
library. Each call to one of the parsing methods creates a new instance of
|
|
XML::Parser::Expat which is then used to parse the document. Expat options
|
|
may be provided when the XML::Parser object is created. These options are
|
|
then passed on to the Expat object on each parse call. They can also be given
|
|
as extra arguments to the parse methods, in which case they override options
|
|
given at XML::Parser creation time.")
|
|
(home-page "http://search.cpan.org/~toddr/XML-Parser-2.41/Parser.pm")))
|
|
|
|
(define-public perl-libxml
|
|
(package
|
|
(name "perl-libxml")
|
|
(version "0.08")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
|
|
(build-system perl-build-system)
|
|
(propagated-inputs
|
|
`(("perl-xml-parser" ,perl-xml-parser)))
|
|
(license (package-license perl))
|
|
(synopsis "Perl SAX parser using XML::Parser")
|
|
(description
|
|
"XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser
|
|
module.")
|
|
(home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parser/PerlSAX.pm")))
|
|
|
|
(define-public perl-xml-simple
|
|
(package
|
|
(name "perl-xml-simple")
|
|
(version "2.20")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0jj3jiray1l4pi9wkjcpxjc3v431whdwx5aqnhgdm4i7h3817zsw"))))
|
|
(build-system perl-build-system)
|
|
(propagated-inputs
|
|
`(("perl-xml-parser" ,perl-xml-parser)))
|
|
(license (package-license perl))
|
|
(synopsis "Perl module for easy reading/writing of XML files")
|
|
(description
|
|
"The XML::Simple module provides a simple API layer on top of an
|
|
underlying XML parsing module (either XML::Parser or one of the SAX2
|
|
parser modules).")
|
|
(home-page "http://search.cpan.org/~grantm/XML-Simple-2.20/lib/XML/Simple.pm")))
|
|
|
|
(define-public perl-xml-regexp
|
|
(package
|
|
(name "perl-xml-regexp")
|
|
(version "0.04")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
|
|
(build-system perl-build-system)
|
|
(inputs
|
|
`(("perl-xml-parser" ,perl-xml-parser)))
|
|
(license (package-license perl))
|
|
(synopsis "Perl regular expressions for XML tokens")
|
|
(description
|
|
"XML::RegExp contains regular expressions for the following XML tokens:
|
|
BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
|
|
EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
|
|
(home-page "http://search.cpan.org/~tjmather/XML-RegExp/lib/XML/RegExp.pm")))
|
|
|
|
(define-public perl-xml-dom
|
|
(package
|
|
(name "perl-xml-dom")
|
|
(version "1.44")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
|
|
version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1r0ampc88ni3sjpzr583k86076qg399arfm9xirv3cw49k3k5bzn"))))
|
|
(build-system perl-build-system)
|
|
(propagated-inputs
|
|
`(("perl-libwww" ,perl-libwww)
|
|
("perl-libxml" ,perl-libxml)
|
|
("perl-xml-regexp" ,perl-xml-regexp)))
|
|
(license (package-license perl))
|
|
(synopsis
|
|
"Perl module for building DOM Level 1 compliant document structures")
|
|
(description
|
|
"This module extends the XML::Parser module by Clark Cooper. The
|
|
XML::Parser module is built on top of XML::Parser::Expat, which is a lower
|
|
level interface to James Clark's expat library. XML::DOM::Parser is derived
|
|
from XML::Parser. It parses XML strings or files and builds a data structure
|
|
that conforms to the API of the Document Object Model.")
|
|
(home-page "http://search.cpan.org/~tjmather/XML-DOM-1.44/lib/XML/DOM.pm")))
|
|
|
|
(define-public xmlto
|
|
(package
|
|
(name "xmlto")
|
|
(version "0.0.25")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"https://fedorahosted.org/releases/x/m/xmlto/xmlto-"
|
|
version ".tar.bz2"))
|
|
(sha256
|
|
(base32
|
|
"0dp5nxq491gymq806za0dk4hngfmq65ysrqbn0ypajqbbl6vf71n"))))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
|
|
'(#:configure-flags (list (string-append "GETOPT="
|
|
(assoc-ref %build-inputs
|
|
"util-linux")
|
|
"/bin/getopt"))))
|
|
(inputs
|
|
`(("util-linux" ,util-linux) ; for 'getopt'
|
|
("libxml2" ,libxml2) ; for 'xmllint'
|
|
("libxslt" ,libxslt))) ; for 'xsltproc'
|
|
(home-page "http://cyberelk.net/tim/software/xmlto/")
|
|
(synopsis "Front-end to an XSL toolchain")
|
|
(description
|
|
"Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
|
|
stylesheet for the conversion you want and applies it using an external
|
|
XSL-T processor. It also performs any necessary post-processing.")
|
|
(license license:gpl2+)))
|