gnu: fish: Update to 2.7.1.
[jackhill/guix/guix.git] / gnu / packages / web.scm
CommitLineData
29a2ccd3 1;;; GNU Guix --- Functional package management for GNU
be6bfa7d 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
29a2ccd3 3;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
89e34644 4;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
5fb205c6 5;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
aad78085 6;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
38012ed5 7;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
ef61177d 8;;; Copyright © 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
d8f1c074 9;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
67c2fc01 10;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
ec672946 11;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
4fbed749 12;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
7ffbbea0 13;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
bd9fe0f0 14;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
0ee23de9 15;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
ac713461 16;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
a7a4345d 17;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
c2d1b935 18;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
b881dc6d 19;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
864042c5 20;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
decb4c26 21;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
3c8ba11a 22;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
efc8f7d0 23;;; Copyright © 2017 Petter <petter@mykolab.ch>
412d0072 24;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
a67f0946 25;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
29a2ccd3
AP
26;;;
27;;; This file is part of GNU Guix.
28;;;
29;;; GNU Guix is free software; you can redistribute it and/or modify it
30;;; under the terms of the GNU General Public License as published by
31;;; the Free Software Foundation; either version 3 of the License, or (at
32;;; your option) any later version.
33;;;
34;;; GNU Guix is distributed in the hope that it will be useful, but
35;;; WITHOUT ANY WARRANTY; without even the implied warranty of
36;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37;;; GNU General Public License for more details.
38;;;
39;;; You should have received a copy of the GNU General Public License
40;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
41
42(define-module (gnu packages web)
c9d512fa 43 #:use-module (ice-9 match)
b5b73a82 44 #:use-module ((guix licenses) #:prefix l:)
29a2ccd3
AP
45 #:use-module (guix packages)
46 #:use-module (guix download)
833efa0d 47 #:use-module (guix git-download)
18cb3df8 48 #:use-module (guix cvs-download)
834dc830 49 #:use-module (guix hg-download)
b8ae816b 50 #:use-module (guix utils)
29a2ccd3 51 #:use-module (guix build-system gnu)
7ffbbea0 52 #:use-module (guix build-system glib-or-gtk)
c2337213
LC
53 #:use-module (guix build-system perl)
54 #:use-module (guix build-system cmake)
a359c9c1 55 #:use-module (guix build-system r)
0ee23de9 56 #:use-module (guix build-system trivial)
da069d7e 57 #:use-module (guix build-system python)
91072287 58 #:use-module (guix build-system ant)
82cc8253 59 #:use-module (guix build-system scons)
38e62c81 60 #:use-module (gnu packages)
29a2ccd3 61 #:use-module (gnu packages apr)
5a0096a3 62 #:use-module (gnu packages check)
a8cba9dd 63 #:use-module (gnu packages cran)
99828fa7 64 #:use-module (gnu packages documentation)
b777d784 65 #:use-module (gnu packages docbook)
833efa0d 66 #:use-module (gnu packages autotools)
ce0614dd 67 #:use-module (gnu packages compression)
bb470bd3 68 #:use-module (gnu packages cyrus-sasl)
f643a6e9 69 #:use-module (gnu packages databases)
22df7001
EB
70 #:use-module (gnu packages bison)
71 #:use-module (gnu packages flex)
89e34644 72 #:use-module (gnu packages kerberos)
57c2680e 73 #:use-module (gnu packages gd)
488e8863 74 #:use-module (gnu packages gettext)
7ffbbea0
RS
75 #:use-module (gnu packages glib)
76 #:use-module (gnu packages gnome)
4fc282b3 77 #:use-module (gnu packages gnu-doc)
b881dc6d 78 #:use-module (gnu packages gnupg)
1622637b 79 #:use-module (gnu packages gnuzilla)
22df7001 80 #:use-module (gnu packages gperf)
fbaf9376 81 #:use-module (gnu packages gtk)
7ac2cab8 82 #:use-module (gnu packages java)
a3cd23b6 83 #:use-module (gnu packages javascript)
22df7001 84 #:use-module (gnu packages image)
909dcf5b 85 #:use-module (gnu packages imagemagick)
fbaf9376 86 #:use-module (gnu packages libidn)
0cf9f9b1 87 #:use-module (gnu packages libunistring)
bb470bd3 88 #:use-module (gnu packages lua)
909dcf5b 89 #:use-module (gnu packages markup)
8cecd22e 90 #:use-module (gnu packages ncurses)
a67f0946 91 #:use-module (gnu packages openstack)
ce0614dd 92 #:use-module (gnu packages base)
bd9fe0f0 93 #:use-module (gnu packages perl)
5ccde207 94 #:use-module (gnu packages perl-check)
ed865936 95 #:use-module (gnu packages python)
1b2f753d 96 #:use-module (gnu packages python-web)
c9ea41ff 97 #:use-module (gnu packages pcre)
bb470bd3 98 #:use-module (gnu packages pkg-config)
412d0072 99 #:use-module (gnu packages qt)
ec672946 100 #:use-module (gnu packages valgrind)
b777d784 101 #:use-module (gnu packages xml)
d22d72fc 102 #:use-module (gnu packages curl)
cc2b77df 103 #:use-module (gnu packages texinfo)
ec672946 104 #:use-module (gnu packages textutils)
a359c9c1 105 #:use-module (gnu packages tls)
909dcf5b
CB
106 #:use-module (gnu packages statistics)
107 #:use-module (gnu packages version-control))
29a2ccd3
AP
108
109(define-public httpd
110 (package
111 (name "httpd")
dcd9a331 112 (version "2.4.27")
29a2ccd3
AP
113 (source (origin
114 (method url-fetch)
115 (uri (string-append "mirror://apache/httpd/httpd-"
116 version ".tar.bz2"))
117 (sha256
118 (base32
e14ab0ad
LC
119 "0fn1778mxhf78np2d8qlycg1c2ak18rxax41plahasca4clc3z3i"))
120 (patches (search-patches "httpd-CVE-2017-9798.patch"))))
29a2ccd3 121 (build-system gnu-build-system)
74c8b174 122 (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
29a2ccd3
AP
123 (inputs `(("apr" ,apr)
124 ("apr-util" ,apr-util)
125 ("openssl" ,openssl)
50b7a6a0 126 ("perl" ,perl))) ; needed to run bin/apxs
29a2ccd3
AP
127 (arguments
128 `(#:test-target "test"
129 #:configure-flags (list "--enable-rewrite"
130 "--enable-userdir"
131 "--enable-vhost-alias"
132 "--enable-ssl"
133 "--enable-mime-magic"
134 (string-append "--sysconfdir="
135 (assoc-ref %outputs "out")
136 "/etc/httpd"))))
137 (synopsis "Featureful HTTP server")
138 (description
139 "The Apache HTTP Server Project is a collaborative software development
140effort aimed at creating a robust, commercial-grade, featureful, and
35b9e423
EB
141freely-available source code implementation of an HTTP (Web) server. The
142project is jointly managed by a group of volunteers located around the world,
143using the Internet and the Web to communicate, plan, and develop the server
144and its related documentation.")
29a2ccd3
AP
145 (license l:asl2.0)
146 (home-page "https://httpd.apache.org/")))
c9ea41ff 147
98cf8ca8
CB
148(define-public mod-wsgi
149 (package
150 (name "mod-wsgi")
151 (version "4.5.22")
152 (source (origin
153 (method url-fetch)
154 (uri (string-append
155 "https://github.com/GrahamDumpleton/mod_wsgi/archive/"
156 version ".tar.gz"))
157 (sha256
158 (base32
159 "0n1yhmrfp8mjbsngmyjl937c6rc0069p6wdi1lknrbn1q42hzw6q"))))
160 (build-system gnu-build-system)
161 (arguments
162 '(#:tests? #f ;; TODO: Can't figure out if there are tests
163 #:make-flags (list
164 (string-append "DESTDIR="
165 (assoc-ref %outputs "out"))
166 "LIBEXECDIR=/modules")))
167 (inputs
168 `(("httpd" ,httpd)
169 ("python" ,python-wrapper)))
170 (synopsis "Apache HTTPD module for Python WSGI applications")
171 (description
172 "The mod_wsgi module for the Apache HTTPD Server adds support for running
173applications that support the Python @acronym{WSGI, Web Server Gateway
174Interface} specification.")
175 (license l:asl2.0)
176 (home-page "https://modwsgi.readthedocs.io/")))
177
c9d512fa
MW
178(define-public nginx
179 (package
180 (name "nginx")
834dc830
CB
181 ;; Consider updating the nginx-docs package if the nginx package is
182 ;; updated.
b2850fd1 183 (version "1.12.2")
c9d512fa
MW
184 (source (origin
185 (method url-fetch)
59fed2b6 186 (uri (string-append "https://nginx.org/download/nginx-"
c9d512fa
MW
187 version ".tar.gz"))
188 (sha256
189 (base32
b2850fd1 190 "05h4rwja7170z0l979yjghy9i9ichllwhicylzpmmyyml6fkfprh"))))
c9d512fa
MW
191 (build-system gnu-build-system)
192 (inputs `(("pcre" ,pcre)
193 ("openssl" ,openssl)
194 ("zlib" ,zlib)))
195 (arguments
196 `(#:tests? #f ; no test target
197 #:phases
a71c315b 198 (modify-phases %standard-phases
3a4de6b2 199 (add-before 'configure 'patch-/bin/sh
a71c315b
DT
200 (lambda _
201 (substitute* "auto/feature"
bb2f8bbc 202 (("/bin/sh") (which "sh")))
59fed2b6 203 #t))
3a4de6b2 204 (replace 'configure
249ab8cc 205 ;; The configure script is hand-written, not from GNU autotools.
a71c315b
DT
206 (lambda* (#:key outputs #:allow-other-keys)
207 (let ((flags
208 (list (string-append "--prefix=" (assoc-ref outputs "out"))
209 "--with-http_ssl_module"
26ac5c90 210 "--with-http_v2_module"
a71c315b 211 "--with-pcre-jit"
a71c315b
DT
212 "--with-debug"
213 ;; Even when not cross-building, we pass the
214 ;; --crossbuild option to avoid customizing for the
215 ;; kernel version on the build machine.
216 ,(let ((system "Linux") ; uname -s
217 (release "2.6.32") ; uname -r
218 ;; uname -m
219 (machine (match (or (%current-target-system)
220 (%current-system))
221 ("x86_64-linux" "x86_64")
222 ("i686-linux" "i686")
4788deea
MW
223 ("mips64el-linux" "mips64")
224 ;; Prevent errors when querying
225 ;; this package on unsupported
226 ;; platforms, e.g. when running
227 ;; "guix package --search="
228 (_ "UNSUPPORTED"))))
a71c315b
DT
229 (string-append "--crossbuild="
230 system ":" release ":" machine)))))
231 (setenv "CC" "gcc")
232 (format #t "environment variable `CC' set to `gcc'~%")
233 (format #t "configure flags: ~s~%" flags)
59446b20 234 (zero? (apply system* "./configure" flags)))))
249ab8cc
TGR
235 (add-after 'install 'install-man-page
236 (lambda* (#:key outputs #:allow-other-keys)
237 (let* ((out (assoc-ref outputs "out"))
238 (man (string-append out "/share/man")))
239 (install-file "objs/nginx.8" (string-append man "/man8"))
240 #t)))
3a4de6b2 241 (add-after 'install 'fix-root-dirs
59446b20
DT
242 (lambda* (#:key outputs #:allow-other-keys)
243 ;; 'make install' puts things in strange places, so we need to
244 ;; clean it up ourselves.
245 (let* ((out (assoc-ref outputs "out"))
246 (share (string-append out "/share/nginx")))
247 ;; This directory is empty, so get rid of it.
248 (rmdir (string-append out "/logs"))
249 ;; Example configuration and HTML files belong in
250 ;; /share.
251 (mkdir-p share)
252 (rename-file (string-append out "/conf")
253 (string-append share "/conf"))
254 (rename-file (string-append out "/html")
255 (string-append share "/html"))))))))
59fed2b6 256 (home-page "https://nginx.org")
c9d512fa
MW
257 (synopsis "HTTP and reverse proxy server")
258 (description
259 "Nginx (\"engine X\") is a high-performance web and reverse proxy server
260created by Igor Sysoev. It can be used both as a standalone web server
261and as a proxy to reduce the load on back-end HTTP or mail servers.")
262 ;; Almost all of nginx is distributed under the bsd-2 license.
263 ;; The exceptions are:
264 ;; * The 'nginx-http-push' module is covered by the expat license.
265 ;; * The 'nginx-development-kit' module is mostly covered by bsd-3,
266 ;; except for two source files which are bsd-4 licensed.
267 (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4))))
268
834dc830
CB
269(define nginx-xslscript
270 (let ((revision 11)
271 (changeset "01dc9ba12e1b"))
272 (package
273 (name "nginx-xslscript")
274 (version
275 (simple-format #f "2014-03-31-~A-~A" revision changeset))
276 (source (origin
277 (method hg-fetch)
278 (uri (hg-reference
279 (url "http://hg.nginx.org/xslscript")
280 (changeset changeset)))
281 (file-name (string-append name "-" version))
282 (sha256
283 (base32
284 "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
285 (build-system gnu-build-system)
286 (arguments
287 '(#:tests? #f ; No test suite
288 #:phases
289 (modify-phases %standard-phases
290 (delete 'configure)
291 (delete 'build)
292 (replace 'install
293 (lambda* (#:key outputs #:allow-other-keys)
294 (let ((out-bin (string-append
295 (assoc-ref outputs "out")
296 "/bin")))
297 (mkdir-p out-bin)
298 (copy-file "xslscript.pl"
299 (string-append
300 out-bin
301 "/xslscript.pl"))
302 #t))))))
303 (home-page "http://hg.nginx.org/xslscript")
304 (synopsis "XSLScript with NGinx specific modifications")
305 (description
306 "XSLScript is a terse notation for writing complex XSLT stylesheets.
307This is modified version, specifically intended for use with the NGinx
308documentation.")
309 (license l:bsd-2))))
310
311(define-public nginx-documentation
312 ;; This documentation should be relevant for nginx-1.12.0
313 (let ((revision 1961)
314 (changeset "dd4b6c564e10"))
315 (package
316 (name "nginx-documentation")
317 (version
318 (simple-format #f "2017-04-12-~A-~A" revision changeset))
319 (source
320 (origin (method hg-fetch)
321 (uri (hg-reference
322 (url "http://hg.nginx.org/nginx.org")
323 (changeset changeset)))
324 (file-name (string-append name "-" version))
325 (sha256
326 (base32
327 "0rycfnnm2xkm777769h1zib428q45j64mx8nzzfzs4v07jbfc8m5"))))
328 (build-system gnu-build-system)
329 (arguments
330 '(#:tests? #f ; No test suite
331 #:phases
332 (modify-phases %standard-phases
333 (delete 'configure)
334 (replace 'build
335 (lambda* (#:key outputs #:allow-other-keys)
336 (let ((output (assoc-ref outputs "out")))
337 (substitute* "umasked.sh"
338 ((" /bin/sh") (string-append " " (which "sh"))))
339 ;; The documentation includes a banner, which makes sense on
340 ;; the NGinx website, but doesn't make much sense when
341 ;; viewing locally. Therefore, modify the CSS to remove the
342 ;; banner.
343 (substitute* "xslt/style.xslt"
344 (("#banner \\{ background: black;")
345 "#banner { background: black;
346 display: none;"))
347 (zero? (system* "make")))))
348 (replace 'install
349 (lambda* (#:key outputs #:allow-other-keys)
350 (let ((output (assoc-ref outputs "out")))
351 (mkdir-p output)
352 (copy-recursively "libxslt" output)
353 #t))))))
354 (native-inputs
355 `(("libxml2" ,libxml2)
356 ("libxslt" ,libxslt)
357 ("nginx-xslscript" ,nginx-xslscript)))
358 (home-page "https://nginx.org")
359 (synopsis "Documentation for nginx web server")
360 (description
361 "This package provides HTML documentation for the nginx web server.")
362 (license l:bsd-2))))
363
ab519cfa
RW
364(define-public fcgi
365 (package
366 (name "fcgi")
367 (version "2.4.0")
368 (source
369 (origin
370 (method url-fetch)
d1b50439 371 ;; Upstream has disappeared.
ab519cfa
RW
372 (uri (string-append "https://sources.archlinux.org/other/packages/fcgi/"
373 "fcgi-" version ".tar.gz"))
374 (sha256
375 (base32
376 "1f857wnl1d6jfrgfgfpz3zdaj8fch3vr13mnpcpvy8bang34bz36"))
377 (patches (search-patches "fcgi-2.4.0-poll.patch"
378 "fcgi-2.4.0-gcc44-fixes.patch"))))
379 (build-system gnu-build-system)
0ff55f9d
RW
380 ;; Parallel building is not supported.
381 (arguments `(#:parallel-build? #f))
d1b50439
TGR
382 ;; This is an archived fork of the original home page, www.fastcgi.com.
383 (home-page "https://fastcgi-archives.github.io/")
ab519cfa 384 (synopsis "Language-independent, high-performant extension to CGI")
5ade9bc7 385 (description "FastCGI is a language-independent, scalable extension to CGI
ab519cfa
RW
386that provides high performance without the limitations of server specific
387APIs.")
388 ;; This package is released under the Open Market License, a variant of
389 ;; the Expat license, incompatible with the GPL.
390 (license (l:non-copyleft "file://LICENSE.TERMS"))))
391
9bad4043
RW
392(define-public fcgiwrap
393 (package
394 (name "fcgiwrap")
395 (version "1.1.0")
396 (source
397 (origin
398 (method url-fetch)
399 (uri (string-append "https://github.com/gnosek/fcgiwrap/"
400 "archive/" version ".tar.gz"))
401 (file-name (string-append name "-" version ".tar.gz"))
402 (sha256
403 (base32
404 "07y6s4mm86cv7p1ljz94sxnqa89y9amn3vzwsnbq5hrl4vdy0zac"))))
405 (build-system gnu-build-system)
406 (arguments
407 `(#:tests? #f ; no tests included
408 #:make-flags (list "CC=gcc")
409 #:phases
410 (modify-phases %standard-phases
411 (add-after 'unpack 'bootstrap
412 (lambda _
413 (zero? (system* "autoreconf" "-vif")))))))
414 (native-inputs
415 `(("autoconf" ,autoconf)
416 ("automake" ,automake)
417 ("pkg-config" ,pkg-config)))
418 (inputs
419 `(("fcgi" ,fcgi)))
420 (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
421 (synopsis "Simple server for running CGI applications over FastCGI")
422 (description "Fcgiwrap is a simple server for running CGI applications
423over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
424servers that may need it).")
425 (license l:expat)))
426
a641b579
EB
427(define-public starman
428 (package
429 (name "starman")
654116c1 430 (version "0.4014")
a641b579
EB
431 (source
432 (origin
433 (method url-fetch)
434 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
435 "Starman-" version ".tar.gz"))
436 (sha256
437 (base32
654116c1 438 "1sbb5rb3vs82rlh1fjkgkcmj5pj62b4y9si4ihh45sl9m8c2qxx5"))))
a641b579
EB
439 (build-system perl-build-system)
440 (native-inputs
441 `(("perl-libwww" ,perl-libwww)
442 ("perl-module-build-tiny" ,perl-module-build-tiny)
443 ("perl-test-requires" ,perl-test-requires)))
444 (propagated-inputs
445 `(("perl-data-dump" ,perl-data-dump)
446 ("perl-http-date" ,perl-http-date)
447 ("perl-http-message" ,perl-http-message)
448 ("perl-http-parser-xs" ,perl-http-parser-xs)
449 ("perl-net-server" ,perl-net-server)
450 ("perl-plack" ,perl-plack)
451 ("perl-test-tcp" ,perl-test-tcp)))
452 (home-page "http://search.cpan.org/dist/Starman")
453 (synopsis "PSGI/Plack web server")
454 (description "Starman is a PSGI perl web server that has unique features
455such as high performance, preforking, signal support, superdaemon awareness,
456and UNIX socket support.")
2f3108ad 457 (license l:perl-license)))
a641b579 458
7ac2cab8
MB
459(define-public icedtea-web
460 (package
461 (name "icedtea-web")
462 (version "1.6.2")
463 (source (origin
464 (method url-fetch)
465 (uri (string-append
466 "http://icedtea.wildebeest.org/download/source/"
467 name "-" version ".tar.gz"))
468 (sha256
469 (base32
470 "004kwrngyxxlrlzby4vzxjr0xcyngcdc9dfgnvi61ffnjr006ryf"))))
471 (build-system gnu-build-system)
472 (arguments
473 `(#:configure-flags
474 (list "--disable-plugin" ;NPAPI plugins are obsolete nowadays.
475 (string-append "BIN_BASH=" (assoc-ref %build-inputs "bash")
476 "/bin/bash")
477 (string-append "--with-jdk-home=" (assoc-ref %build-inputs "jdk")))))
478 (outputs '("out" "doc"))
479 (native-inputs
480 `(("pkg-config" ,pkg-config)
481 ("zip" ,zip)))
482 (inputs
483 `(("gtk+" ,gtk+)
484 ("jdk" ,icedtea "jdk")))
485 (home-page "http://icedtea.classpath.org/wiki/IcedTea-Web")
486 (synopsis "Java Web Start")
487 (description
488 "IcedTea-Web is an implementation of the @dfn{Java Network Launching
489Protocol}, also known as Java Web Start. This package provides tools and
490libraries for working with JNLP applets.")
491 ;; The program is mainly GPL2+, with some individual files under LGPL2.1+
492 ;; or dual licenses.
493 (license l:gpl2+)))
494
2b0bba49
RW
495(define-public jansson
496 (package
497 (name "jansson")
14ac8e48 498 (version "2.9")
2b0bba49
RW
499 (source (origin
500 (method url-fetch)
501 (uri
502 (string-append "http://www.digip.org/jansson/releases/jansson-"
503 version ".tar.gz"))
504 (sha256
505 (base32
14ac8e48 506 "19fjgfwjfj99rqa3kf96x5rssj88siazggksgrikd6h4r9sd1l0a"))))
2b0bba49
RW
507 (build-system gnu-build-system)
508 (home-page "http://www.digip.org/jansson/")
509 (synopsis "JSON C library")
510 (description
511 "Jansson is a C library for encoding, decoding and manipulating JSON
512data.")
513 (license l:expat)))
514
f6ad09ae
LC
515(define-public json-c
516 (package
517 (name "json-c")
87312f8a 518 (version "0.12.1")
f6ad09ae
LC
519 (source (origin
520 (method url-fetch)
a124bbd2
SB
521 (uri (string-append
522 "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
523 version ".tar.gz"))
f6ad09ae
LC
524 (sha256
525 (base32
87312f8a 526 "08qibrq29a5v7g23wi5icy6l4fbfw90h9ccps6vq0bcklx8n84ra"))
f6ad09ae
LC
527 (modules '((guix build utils)))
528 (snippet
529 '(begin
530 ;; Somehow 'config.h.in' is older than
531 ;; 'aclocal.m4', which would trigger a rule to
532 ;; run 'autoheader'.
533 (set-file-time "config.h.in"
534 (stat "aclocal.m4"))
535
536 ;; Don't try to build with -Werror.
537 (substitute* (find-files "." "Makefile\\.in")
538 (("-Werror") ""))))))
539 (build-system gnu-build-system)
540 (arguments '(#:parallel-build? #f
541 #:parallel-tests? #f))
542 (home-page "https://github.com/json-c/json-c/wiki")
543 (synopsis "JSON implementation in C")
544 (description
545 "JSON-C implements a reference counting object model that allows you to
546easily construct JSON objects in C, output them as JSON formatted strings and
547parse JSON formatted strings back into the C representation of JSON objects.")
548 (license l:x11)))
549
412d0072
PL
550(define-public qjson
551 (package
552 (name "qjson")
553 (version "0.9.0")
554 (source (origin
555 (method url-fetch)
556 (uri (string-append
557 "https://github.com/flavio/qjson/archive/"
558 version ".tar.gz"))
559 (file-name (string-append name "-" version ".tar.gz"))
560 (sha256
561 (base32
562 "1m0h4rajj99hv9w4i381a8x81lxiv167lxk10ncvphpkfxs624p8"))))
563 (build-system cmake-build-system)
564 (arguments
565 ;; The tests require a X server
566 `(#:configure-flags '("-DQJSON_BUILD_TESTS=ON"
567 "-DCMAKE_CXX_FLAGS=-std=gnu++11 -fPIC")
568 #:phases
569 (modify-phases %standard-phases
570 (add-after 'unpack 'disable-broken-test
571 (lambda _
572 ;; FIXME: One test fails. See
573 ;; https://github.com/flavio/qjson/issues/105
574 (substitute* "tests/scanner/testscanner.cpp"
575 (("QTest::newRow\\(\"too large exponential\"\\)" line)
576 (string-append "//" line)))
577 #t))
578 (add-before 'check 'render-offscreen
579 (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
580 (inputs
581 `(("qtbase" ,qtbase)))
582 (home-page "http://qjson.sourceforge.net")
583 (synopsis "Library that maps JSON data to QVariant objects")
584 (description "QJson is a Qt-based library that maps JSON data to
585@code{QVariant} objects. JSON arrays will be mapped to @code{QVariantList}
586instances, while JSON's objects will be mapped to @code{QVariantMap}.")
587 ;; Only version 2.1 of the license
588 (license l:lgpl2.1)))
589
bd9fe0f0
BW
590(define-public krona-tools
591 (package
592 (name "krona-tools")
9712ef8d 593 (version "2.7")
bd9fe0f0
BW
594 (source (origin
595 (method url-fetch)
596 (uri (string-append
597 "https://github.com/marbl/Krona/releases/download/v"
598 version "/KronaTools-" version ".tar"))
599 (sha256
600 (base32
9712ef8d 601 "0wvgllcqscsfb4xc09y3fqhx8i38pmr4w55vjs5y79wx56n710iq"))))
bd9fe0f0
BW
602 (build-system perl-build-system)
603 (arguments
5d52ac74 604 `(#:phases
bd9fe0f0
BW
605 (modify-phases %standard-phases
606 ;; There is no configure or build steps.
607 (delete 'configure)
9712ef8d 608 (delete 'build)
bd9fe0f0
BW
609 ;; Install script "install.pl" expects the build directory to remain
610 ;; after installation, creating symlinks etc., so re-implement it
611 ;; here.
612 (replace 'install
613 (lambda* (#:key outputs #:allow-other-keys)
614 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
615 (perl (string-append (assoc-ref outputs "out")
5d52ac74 616 "/lib/perl5/site_perl/krona-tools/lib")))
bd9fe0f0
BW
617 (mkdir-p bin)
618 (for-each
619 (lambda (script)
620 (let* ((executable (string-append "scripts/" script ".pl")))
621 ;; Prefix executables with 'kt' as install script does.
622 (copy-file executable (string-append bin "/kt" script))))
623 '("ClassifyBLAST"
624 "GetContigMagnitudes"
9712ef8d
BW
625 "GetLCA"
626 "GetTaxIDFromAcc"
627 "GetTaxInfo"
bd9fe0f0
BW
628 "ImportBLAST"
629 "ImportDiskUsage"
630 "ImportEC"
631 "ImportFCP"
632 "ImportGalaxy"
633 "ImportKrona"
634 "ImportMETAREP-BLAST"
635 "ImportMETAREP-EC"
636 "ImportMGRAST"
637 "ImportPhymmBL"
638 "ImportRDP"
639 "ImportRDPComparison"
640 "ImportTaxonomy"
641 "ImportText"
642 "ImportXML"))
9712ef8d
BW
643 (for-each
644 (lambda (directory)
645 (copy-recursively directory
646 (string-append perl "/../" directory)))
647 (list "data" "img" "taxonomy" "src"))
bd9fe0f0
BW
648 (install-file "lib/KronaTools.pm" perl))))
649 (add-after 'install 'wrap-program
650 (lambda* (#:key inputs outputs #:allow-other-keys)
651 (let* ((out (assoc-ref outputs "out"))
652 (path (getenv "PERL5LIB")))
653 (for-each
654 (lambda (executable)
655 (wrap-program executable
656 `("PERL5LIB" ":" prefix
5d52ac74
BW
657 (,(string-append out "/lib/perl5/site_perl/krona-tools/lib")))))
658 (find-files (string-append out "/bin/") ".*")))))
659 (delete 'check)
660 (add-after 'wrap-program 'check
661 (lambda* (#:key inputs outputs #:allow-other-keys)
662 (with-directory-excursion "data"
663 (zero? (system* (string-append (assoc-ref outputs "out") "/bin/ktImportText")
664 "ec.tsv"))))))))
bd9fe0f0
BW
665 (inputs
666 `(("perl" ,perl)))
667 (home-page "https://github.com/marbl/Krona/wiki")
668 (synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
669 (description
670 "Krona is a flexible tool for exploring the relative proportions of
671hierarchical data, such as metagenomic classifications, using a radial,
672space-filling display. It is implemented using HTML5 and JavaScript, allowing
673charts to be explored locally or served over the Internet, requiring only a
674current version of any major web browser.")
675 (license l:bsd-3)))
676
ccb8da26
RW
677(define-public rapidjson
678 (package
679 (name "rapidjson")
d0386db4 680 (version "1.1.0")
ccb8da26
RW
681 (source (origin
682 (method url-fetch)
683 (uri (string-append
684 "https://github.com/miloyip/rapidjson/archive/v"
685 version ".tar.gz"))
686 (file-name (string-append name "-" version ".tar.gz"))
687 (sha256
688 (base32
d0386db4 689 "13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z"))))
ccb8da26 690 (build-system cmake-build-system)
4fbed749
EF
691 (arguments
692 `(,@(if (string-prefix? "aarch64" (or (%current-target-system)
693 (%current-system)))
694 '(#:phases
695 (modify-phases %standard-phases
696 (add-after 'unpack 'patch-aarch-march-detection
697 (lambda _
698 (substitute* (find-files "." "^CMakeLists\\.txt$")
699 (("native") "armv8-a"))
700 #t))))
701 '())))
ccb8da26
RW
702 (home-page "https://github.com/miloyip/rapidjson")
703 (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
704 (description
705 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM
706style API.")
707 (license l:expat)))
708
d8f1c074
ED
709(define-public libyajl
710 (package
711 (name "libyajl")
712 (version "2.1.0")
713 (source (origin
714 (method url-fetch)
715 (uri (string-append "https://github.com/lloyd/yajl/"
716 "archive/" version ".tar.gz"))
717 (file-name (string-append name "-" version ".tar.gz"))
718 (sha256
719 (base32
720 "0nmcqpaiq4pv7dymyg3n3jsd57yhp5npxl26a1hzw3m3lmj37drz"))))
721 (build-system cmake-build-system)
722 (home-page "https://lloyd.github.io/yajl/")
723 (synopsis "C library for parsing JSON")
724 (description
725 "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON
726parser written in ANSI C and a small validating JSON generator.")
727 (license l:isc)))
728
833efa0d
LC
729(define-public libwebsockets
730 (package
731 (name "libwebsockets")
c2337213 732 (version "1.3")
833efa0d
LC
733 (source (origin
734 ;; The project does not publish tarballs, so we have to take
735 ;; things from Git.
736 (method git-fetch)
737 (uri (git-reference
5f13bf09 738 (url "https://github.com/warmcat/libwebsockets.git")
833efa0d 739 (commit (string-append "v" version
c2337213 740 "-chrome37-firefox30"))))
833efa0d
LC
741 (sha256
742 (base32
c2337213 743 "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
833efa0d
LC
744 (file-name (string-append name "-" version))))
745
c2337213 746 (build-system cmake-build-system)
833efa0d 747 (arguments
c2337213
LC
748 ;; XXX: The thing lacks a 'make test' target, because CMakeLists.txt
749 ;; doesn't use 'add_test', and it's unclear how to run the test suite.
750 '(#:tests? #f))
833efa0d 751
c2337213 752 (native-inputs `(("perl" ,perl))) ; to build the HTML doc
833efa0d
LC
753 (inputs `(("zlib" ,zlib)
754 ("openssl" ,openssl)))
755 (synopsis "WebSockets library written in C")
756 (description
35b9e423 757 "Libwebsockets is a library that allows C programs to establish client
833efa0d
LC
758and server WebSockets connections---a protocol layered above HTTP that allows
759for efficient socket-like bidirectional reliable communication channels.")
760 (home-page "http://libwebsockets.org/")
761
762 ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
763 (license l:lgpl2.1)))
764
488e8863
EB
765(define-public libpsl
766 (package
767 (name "libpsl")
3c3d20c8 768 (version "0.19.1")
488e8863
EB
769 (source (origin
770 (method url-fetch)
771 (uri (string-append "https://github.com/rockdaboot/libpsl/"
6c277c89
EF
772 "releases/download/libpsl-" version
773 "/libpsl-" version ".tar.gz"))
488e8863
EB
774 (sha256
775 (base32
3c3d20c8 776 "0ydwi9m39qv6k7zagqx2kzxzf59ipxj9r0c71xmwngdx3fslclbk"))))
488e8863 777 (build-system gnu-build-system)
0cf9f9b1
TGR
778 (native-inputs
779 `(("pkg-config" ,pkg-config)))
6c277c89 780 (inputs
0cf9f9b1
TGR
781 `(("libidn2" ,libidn2)
782 ("libunistring" ,libunistring)
6c277c89 783 ("python-2" ,python-2)))
488e8863
EB
784 (home-page "https://github.com/rockdaboot/libpsl")
785 (synopsis "C library for the Publix Suffix List")
786 (description
787 "A \"public suffix\" is a domain name under which Internet users can
788directly register own names.
789
790Browsers and other web clients can use it to avoid privacy-leaking
791\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain
792highlighting parts of the domain in a user interface, and sorting domain lists
793by site.
794
795Libpsl has built-in PSL data for fast access, allows to load PSL data from
796files, checks if a given domain is a public suffix, provides immediate cookie
797domain verification, finds the longest public part of a given domain, finds
798the shortest private part of a given domain, works with international
799domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
e881752c 800UTS#46.")
488e8863
EB
801 (license l:x11)))
802
18cb3df8
DT
803(define-public tidy
804 (package
805 (name "tidy")
806 (version "20091223")
807 (source (origin
808 (method cvs-fetch)
809 (uri (cvs-reference
810 (root-directory
811 ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
812 (module "tidy")
813 (revision "2009-12-23")))
814 (sha256
815 (base32
4d853910 816 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))
fc1adab1 817 (patches (search-patches "tidy-CVE-2015-5522+5523.patch"))))
18cb3df8
DT
818 (build-system gnu-build-system)
819 (arguments
917239ff
TGR
820 '(#:phases (modify-phases %standard-phases
821 (add-after 'unpack 'bootstrap
822 (lambda* (#:key inputs #:allow-other-keys)
823 ;; configure.in and Makefile.am aren't in the root of the
824 ;; source tree.
825 (copy-recursively "build/gnuauto" ".")
826 (setenv "AUTOMAKE" "automake --foreign")
827 (zero? (system* "autoreconf" "-vfi")))))))
18cb3df8
DT
828 (native-inputs
829 `(("automake" ,automake)
830 ("autoconf" ,autoconf)
831 ("libtool" ,libtool)))
832 (synopsis "HTML validator and tidier")
833 (description "HTML Tidy is a command-line tool and C library that can be
834used to validate and fix HTML data.")
835 (home-page "http://tidy.sourceforge.net/")
836 (license (l:x11-style "file:///include/tidy.h"))))
837
8142aff3 838(define-public tinyproxy
c9ea41ff 839 (package
8142aff3 840 (name "tinyproxy")
b5076461 841 (version "1.8.4")
8142aff3
EB
842 (source (origin
843 (method url-fetch)
b5076461
EF
844 (uri (string-append "https://github.com/tinyproxy/tinyproxy/"
845 "releases/download/" version "/tinyproxy-"
846 version ".tar.xz"))
8142aff3
EB
847 (sha256
848 (base32
b5076461 849 "002hi97687czhfkwsjkr174yvlp10224qi6gd5s53z230bgls7x4"))))
8142aff3
EB
850 (build-system gnu-build-system)
851 (arguments
852 `(#:configure-flags
853 (list
854 ;; For the log file, etc.
855 "--localstatedir=/var")
856 #:phases
dc1d3cde
KK
857 (modify-phases %standard-phases
858 (add-before 'build 'pre-build
859 (lambda* (#:key inputs #:allow-other-keys #:rest args)
860 ;; Uncommenting the next two lines may assist in debugging
861 ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
862 ;; (setenv "XML_DEBUG_CATALOG" "1")
863 #t)))))
8142aff3
EB
864 ;; All of the below are used to generate the documentation
865 ;; (Should they be propagated inputs of asciidoc ??)
4b0e6367 866 (native-inputs `(("asciidoc" ,asciidoc)))
b5076461 867 (home-page "https://tinyproxy.github.io/")
8142aff3
EB
868 (synopsis "Light-weight HTTP/HTTPS proxy daemon")
869 (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
870daemon. Designed from the ground up to be fast and yet small, it is an ideal
871solution for use cases such as embedded deployments where a full featured HTTP
872proxy is required, but the system resources for a larger proxy are
873unavailable.")
874 (license l:gpl2+)))
875
876(define-public polipo
877 (package
878 (name "polipo")
879 (version "1.1.1")
880 (source
881 (origin
882 (method url-fetch)
883 (uri (string-append
884 "http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/polipo-"
885 version ".tar.gz"))
886 (sha256
887 (base32
888 "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2"))))
889 (native-inputs `(("texinfo" ,texinfo)))
890 (build-system gnu-build-system)
891 (arguments
9bd259d8
TGR
892 `(#:phases (modify-phases %standard-phases
893 (delete 'configure))
8142aff3
EB
894 #:make-flags (let ((out (assoc-ref %outputs "out")))
895 (list (string-append "PREFIX=" out)
896 (string-append "LOCAL_ROOT="
897 out "/share/polipo/www")
898 "CC=gcc"))
899 ;; No 'check' target.
900 #:tests? #f))
901 (home-page "http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/")
902 (synopsis "Small caching web proxy")
903 (description
904 "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy
905server). It was primarily designed to be used by one person or a small group
906of people.")
907 (license l:expat)))
908
a67f0946
RH
909(define-public websockify
910 (package
911 (name "websockify")
912 (version "0.8.0")
913 (source (origin
914 (method url-fetch)
915 (uri (string-append "https://github.com/novnc/websockify/archive/v"
916 version "/archive.tar.gz"))
917 (file-name (string-append name "-" version ".tar.gz"))
918 (sha256
919 (base32
920 "1kjq6gibsvbb6zx5gi8hgh7110x62pbwcqkwapf3k7s27w5y907h"))))
921 (build-system python-build-system)
922 (arguments
923 `(#:tests? #f)) ; FIXME: 2 out of 6 tests fail with "ImportError: No module
924 ; named 'stubout'". The tests can be run by replacing the check phase with
925 ; the command "python setup.py nosetests --verbosity=3".
926 (native-inputs `(; Required for tests:
927 ("python-mox3", python-mox3)
928 ("python-nose", python-nose)))
929 (propagated-inputs `(("python-numpy", python-numpy)))
930 (home-page "https://github.com/novnc/websockify")
931 (synopsis "WebSockets support for any application/server")
932 (description "Websockify translates WebSockets traffic to normal socket
933traffic. Websockify accepts the WebSockets handshake, parses it, and then
934begins forwarding traffic between the client and the target in both
935directions.")
936 (license l:lgpl3)))
937
b881dc6d
BT
938(define-public wwwoffle
939 (package
940 (name "wwwoffle")
941 (version "2.9j")
942 (source (origin
943 (method url-fetch)
944 (uri (string-append "https://www.gedanken.org.uk/software/"
945 "wwwoffle/download/wwwoffle-"
946 version ".tgz"))
947 (sha256
948 (base32
949 "1ihil1xq9dp21hf108khxbw6f3baq0w5c0j3af038y6lkmad4vdi"))))
950 (build-system gnu-build-system)
951 (arguments
952 `(#:configure-flags '("--with-gnutls")
953 #:tests? #f)) ; no test target
954 (native-inputs `(("flex" ,flex)))
955 (inputs `(("gnutls" ,gnutls)
956 ("libcrypt", libgcrypt)))
957 (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
958 (synopsis "Caching web proxy optimized for intermittent internet links")
959 (description "WWWOFFLE is a proxy web server that is especially good for
960intermittent internet links. It can cache HTTP, HTTPS, FTP, and finger
961protocols, and supports browsing and requesting pages while offline, indexing,
962modifying pages and incoming and outgoing headers, monitoring pages for
963changes, and much more.")
964 (license l:gpl2+)))
965
1622637b
KK
966(define-public liboauth
967 (package
968 (name "liboauth")
969 (version "1.0.3")
970 (source (origin
971 (method url-fetch)
972 (uri (string-append "mirror://sourceforge/liboauth/liboauth-"
973 version ".tar.gz"))
974 (sha256
975 (base32
976 "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"))))
977 (build-system gnu-build-system)
978 (arguments '(#:configure-flags '("--enable-nss")))
979 (native-inputs `(("pkg-config" ,pkg-config)))
980 (propagated-inputs
981 `(("curl" ,curl)
982 ("nss" ,nss)))
983 (home-page "https://sourceforge.net/projects/liboauth")
1819fd2c 984 (synopsis "C library implementing the OAuth API")
1622637b 985 (description
1819fd2c
KK
986 "liboauth is a collection of C functions implementing the OAuth API.
987liboauth provides functions to escape and encode strings according to OAuth
988specifications and offers high-level functionality built on top to sign
1622637b
KK
989requests or verify signatures using either NSS or OpenSSL for calculating the
990hash/signatures.")
991 ;; Source code may be distributed under either license.
992 (license (list l:expat l:gpl2+))))
993
8142aff3
EB
994(define-public libyaml
995 (package
996 (name "libyaml")
e00df583 997 (version "0.1.6")
8142aff3
EB
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append
1002 "http://pyyaml.org/download/libyaml/yaml-"
1003 version ".tar.gz"))
0d567b55 1004 (patches (search-patches "libyaml-CVE-2014-9130.patch"))
8142aff3
EB
1005 (sha256
1006 (base32
e00df583 1007 "0j9731s5zjb8mjx7wzf6vh7bsqi38ay564x6s9nri2nh9cdrg9kx"))))
8142aff3
EB
1008 (build-system gnu-build-system)
1009 (home-page "http://pyyaml.org/wiki/LibYAML")
1010 (synopsis "YAML 1.1 parser and emitter written in C")
1011 (description
1012 "LibYAML is a YAML 1.1 parser and emitter written in C.")
1013 (license l:expat)))
1014
1015(define-public libquvi-scripts
1016 (package
1017 (name "libquvi-scripts")
1018 (version "0.4.21")
1019 (source
1020 (origin
1021 (method url-fetch)
1022 (uri (string-append
de67e922
LF
1023 "mirror://sourceforge/quvi/" (version-major+minor version) "/"
1024 name "/" name "-" version ".tar.xz"))
8142aff3
EB
1025 (sha256
1026 (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
1027 (build-system gnu-build-system)
1028 (home-page "http://quvi.sourceforge.net/")
1029 (synopsis "Media stream URL parser")
1030 (description "This package contains support scripts called by libquvi to
1031parse media stream properties.")
1032 (license l:lgpl2.1+)))
1033
1034(define-public libquvi
1035 (package
1036 (name "libquvi")
1037 (version "0.4.1")
1038 (source
1039 (origin
1040 (method url-fetch)
1041 (uri (string-append
de67e922
LF
1042 "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/"
1043 name "-" version ".tar.xz"))
8142aff3
EB
1044 (sha256
1045 (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
1046 (build-system gnu-build-system)
1047 (native-inputs `(("pkg-config" ,pkg-config)))
1048 (inputs
1049 `(("curl" ,curl)
1050 ("cyrus-sasl" ,cyrus-sasl)
1051 ("libquvi-scripts" ,libquvi-scripts)
1052 ("lua" ,lua-5.1)
1053 ("openssl" ,openssl)
1054 ("zlib" ,zlib)))
1055 (arguments
1056 ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
1057 '(#:configure-flags
1058 (let ((lua (assoc-ref %build-inputs "lua")))
1059 (list
1060 (string-append "liblua_CFLAGS=-I" lua "/include")
1061 (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
1062 (home-page "http://quvi.sourceforge.net/")
1063 (synopsis "Media stream URL parser")
1064 (description "libquvi is a library with a C API for parsing media stream
1065URLs and extracting their actual media files.")
1066 (license l:lgpl2.1+)))
1067
1068(define-public quvi
1069 (package
1070 (name "quvi")
1071 (version "0.4.2")
1072 (source
1073 (origin
1074 (method url-fetch)
1075 (uri (string-append
de67e922
LF
1076 "mirror://sourceforge/" name "/" (version-major+minor version)
1077 "/" name "/" name "-" version ".tar.xz"))
8142aff3
EB
1078 (sha256
1079 (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
1080 (build-system gnu-build-system)
1081 (native-inputs `(("pkg-config" ,pkg-config)))
1082 (inputs
1083 `(("curl" ,curl)
1084 ("libquvi" ,libquvi)))
1085 (home-page "http://quvi.sourceforge.net/")
1086 (synopsis "Media stream URL parser")
1087 (description "quvi is a command-line-tool suite to extract media files
1088from streaming URLs. It is a command-line wrapper for the libquvi library.")
1089 (license l:lgpl2.1+)))
1090
ed865936
MW
1091(define-public serf
1092 (package
1093 (name "serf")
244d4f48 1094 (version "1.3.9")
ed865936
MW
1095 (source
1096 (origin
1097 (method url-fetch)
6d22653e 1098 (uri (string-append "https://archive.apache.org/dist/serf/serf-"
ed865936
MW
1099 version ".tar.bz2"))
1100 (sha256
244d4f48 1101 (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
82cc8253 1102 (build-system scons-build-system)
ed865936
MW
1103 (propagated-inputs
1104 `(("apr" ,apr)
1105 ("apr-util" ,apr-util)
1106 ("openssl" ,openssl)))
1107 (inputs
1108 `(;; TODO: Fix build with gss.
1109 ;;("gss" ,gss)
1110 ("zlib" ,zlib)))
1111 (arguments
82cc8253
AI
1112 `(#:scons ,scons-python2
1113 #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
1114 (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
1115 (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl"))
1116 ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss"))
1117 (string-append "ZLIB=" (assoc-ref %build-inputs "zlib"))
1118 (string-append "PREFIX=" %output))
4da18166 1119 #:phases
ed865936 1120 (modify-phases %standard-phases
ed865936
MW
1121 (add-after 'unpack 'scons-propagate-environment
1122 (lambda _
1123 ;; By design, SCons does not, by default, propagate
1124 ;; environment variables to subprocesses. See:
1125 ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
1126 ;; Here, we modify the SConstruct file to arrange for
1127 ;; environment variables to be propagated.
1128 (substitute* "SConstruct"
1129 (("^env = Environment\\(")
1130 "env = Environment(ENV=os.environ, "))))
decb4c26
MB
1131 (add-before 'check 'disable-broken-tests
1132 (lambda _
1133 ;; These tests rely on SSL certificates that expired 2017-04-18.
1134 ;; While there are newer certs available upstream, we don't want
1135 ;; this package to suddenly "expire" some time in the future.
1136 ;; https://bugs.gnu.org/26671
1137 (let ((broken-tests
1138 '("test_ssl_trust_rootca"
1139 "test_ssl_certificate_chain_with_anchor"
1140 "test_ssl_certificate_chain_all_from_server"
1141 "test_ssl_no_servercert_callback_allok"
1142 "test_ssl_large_response"
1143 "test_ssl_large_request"
1144 "test_ssl_client_certificate"
1145 "test_ssl_future_server_cert"
1146 "test_setup_ssltunnel"
1147 "test_ssltunnel_basic_auth"
1148 "test_ssltunnel_basic_auth_server_has_keepalive_off"
1149 "test_ssltunnel_basic_auth_proxy_has_keepalive_off"
1150 "test_ssltunnel_basic_auth_proxy_close_conn_on_200resp"
1151 "test_ssltunnel_digest_auth")))
1152 (for-each
1153 (lambda (test)
1154 (substitute* "test/test_context.c"
1155 (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) "")))
1156 broken-tests)
82cc8253 1157 #t))))))
6d22653e 1158 (home-page "https://serf.apache.org/")
ed865936
MW
1159 (synopsis "High-performance asynchronous HTTP client library")
1160 (description
1161 "serf is a C-based HTTP client library built upon the Apache Portable
1162Runtime (APR) library. It multiplexes connections, running the read/write
1163communication asynchronously. Memory copies and transformations are kept to a
1164minimum to provide high performance operation.")
1165 ;; Most of the code is covered by the Apache License, Version 2.0, but the
1166 ;; bundled CuTest framework uses a different non-copyleft license.
1167 (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
1168
385a44be
DT
1169(define-public sassc
1170 ;; libsass must be statically linked and it isn't included in the sassc
1171 ;; release tarballs, hence this odd package recipe.
8a39e4a5 1172 (let* ((version "3.4.5")
385a44be
DT
1173 (libsass
1174 (origin
1175 (method url-fetch)
1176 (uri (string-append
1177 "https://github.com/sass/libsass/archive/"
1178 version ".tar.gz"))
1179 (file-name (string-append "libsass-" version ".tar.gz"))
1180 (sha256
1181 (base32
8a39e4a5 1182 "1j22138l5ymqjfj5zan9d2hipa3ahjmifgpjahqy1smlg5sb837x")))))
385a44be
DT
1183 (package
1184 (name "sassc")
1185 (version version)
1186 (source (origin
1187 (method url-fetch)
1188 (uri (string-append "https://github.com/sass/sassc/archive/"
1189 version ".tar.gz"))
1190 (file-name (string-append "sassc-" version ".tar.gz"))
1191 (sha256
1192 (base32
8a39e4a5 1193 "1xk4kmmvziz9sal3swpqa10q0s289xjpcz8aggmly8mvxvmngsi9"))))
385a44be
DT
1194 (build-system gnu-build-system)
1195 (arguments
8a39e4a5
RW
1196 `(#:make-flags
1197 (list "CC=gcc"
1198 (string-append "PREFIX=" (assoc-ref %outputs "out")))
385a44be 1199 #:test-target "test"
8a39e4a5
RW
1200 ;; FIXME: "make test" rebuilds the application and gets lost in a
1201 ;; non-existing directory.
1202 #:tests? #f
385a44be
DT
1203 #:phases
1204 (modify-phases %standard-phases
1205 (delete 'configure)
1206 (add-after 'unpack 'unpack-libsass-and-set-path
1207 (lambda* (#:key inputs #:allow-other-keys)
1208 (and (zero? (system* "tar" "xvf" (assoc-ref inputs "libsass")))
1209 (begin
1210 (setenv "SASS_LIBSASS_PATH"
1211 (string-append (getcwd) "/libsass-" ,version))
8a39e4a5 1212 #t)))))))
385a44be
DT
1213 (inputs
1214 `(("libsass" ,libsass)))
1215 (synopsis "CSS pre-processor")
1216 (description "SassC is a compiler written in C for the CSS pre-processor
1217language known as SASS.")
1218 (home-page "http://sass-lang.com/libsass")
1219 (license l:expat))))
1220
8142aff3 1221\f
dc1c804a
EB
1222(define-public perl-apache-logformat-compiler
1223 (package
1224 (name "perl-apache-logformat-compiler")
faf806db 1225 (version "0.33")
dc1c804a
EB
1226 (source
1227 (origin
1228 (method url-fetch)
1229 (uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/"
1230 "Apache-LogFormat-Compiler-" version ".tar.gz"))
1231 (sha256
1232 (base32
faf806db 1233 "17blk3zhp05azgypn25ydxf3d7fyfgr9bxyiv7xkchhqma96vwqv"))))
dc1c804a
EB
1234 (build-system perl-build-system)
1235 (native-inputs
1236 `(("perl-http-message" ,perl-http-message)
a2190ccc 1237 ("perl-module-build" ,perl-module-build)
dc1c804a
EB
1238 ("perl-test-mocktime" ,perl-test-mocktime)
1239 ("perl-try-tiny" ,perl-try-tiny)
1240 ("perl-uri" ,perl-uri)))
1241 (propagated-inputs
1242 `(("perl-posix-strftime-compiler" ,perl-posix-strftime-compiler)))
1243 (arguments `(#:tests? #f)) ;TODO: Timezone test failures
1244 (home-page "http://search.cpan.org/dist/Apache-LogFormat-Compiler")
1245 (synopsis "Compile a log format string to perl-code")
1246 (description "This module provides methods to compile a log format string
1247to perl-code, for faster generation of access_log lines.")
2f3108ad 1248 (license l:perl-license)))
dc1c804a 1249
c6ee18ab
EB
1250(define-public perl-authen-sasl
1251 (package
1252 (name "perl-authen-sasl")
1253 (version "2.16")
1254 (source
1255 (origin
1256 (method url-fetch)
1257 (uri (string-append "mirror://cpan/authors/id/G/GB/GBARR/"
1258 "Authen-SASL-" version ".tar.gz"))
1259 (sha256
1260 (base32
1261 "02afhlrdq5hh5g8b32fa79fqq5i76qzwfqqvfi9zi57h31szl536"))))
1262 (build-system perl-build-system)
f61d39ac
LF
1263 (arguments
1264 '(#:phases
1265 (modify-phases %standard-phases
1266 (add-after 'unpack 'set-env
1267 ;; Fix the build with Perl 5.26.0. Try removing this phase for later
1268 ;; versions of perl-authen-sasl.
1269 (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
c6ee18ab
EB
1270 (propagated-inputs
1271 `(("perl-digest-hmac" ,perl-digest-hmac)
1272 ("perl-gssapi" ,perl-gssapi)))
1273 (home-page "http://search.cpan.org/dist/Authen-SASL")
1274 (synopsis "SASL authentication framework")
1275 (description "Authen::SASL provides an SASL authentication framework.")
2f3108ad 1276 (license l:perl-license)))
c6ee18ab 1277
cd39d814
EB
1278(define-public perl-catalyst-action-renderview
1279 (package
1280 (name "perl-catalyst-action-renderview")
1281 (version "0.16")
1282 (source
1283 (origin
1284 (method url-fetch)
1285 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1286 "Catalyst-Action-RenderView-"
1287 version ".tar.gz"))
1288 (sha256
1289 (base32
1290 "0j1rrld13cjk7ks92b5hv3xw4rfm2lvmksb4rlzd8mx0a0wj0rc5"))))
1291 (build-system perl-build-system)
1292 (native-inputs
2f837cf7
MB
1293 `(("perl-http-request-ascgi" ,perl-http-request-ascgi)
1294 ("perl-module-install" ,perl-module-install)))
cd39d814
EB
1295 (propagated-inputs
1296 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1297 ("perl-data-visitor" ,perl-data-visitor)
1298 ("perl-mro-compat" ,perl-mro-compat)))
1299 (home-page "http://search.cpan.org/dist/Catalyst-Action-RenderView")
1300 (synopsis "Sensible default Catalyst action")
1301 (description "This Catalyst action implements a sensible default end
1302action, which will forward to the first available view.")
2f3108ad 1303 (license l:perl-license)))
cd39d814 1304
aaef00bf
EB
1305(define-public perl-catalyst-action-rest
1306 (package
1307 (name "perl-catalyst-action-rest")
abafd66d 1308 (version "1.20")
aaef00bf
EB
1309 (source (origin
1310 (method url-fetch)
d0b9c34f 1311 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
aaef00bf
EB
1312 "Catalyst-Action-REST-" version ".tar.gz"))
1313 (sha256
1314 (base32
abafd66d 1315 "1mpa64p61f3dp24xnhdraswch4sqj5vyv1iivcvvh5h0xi0haiy0"))))
aaef00bf
EB
1316 (build-system perl-build-system)
1317 (native-inputs
2f837cf7
MB
1318 `(("perl-test-requires" ,perl-test-requires)
1319 ("perl-module-install" ,perl-module-install)))
aaef00bf
EB
1320 (propagated-inputs
1321 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1322 ("perl-class-inspector" ,perl-class-inspector)
abafd66d
EF
1323 ("perl-config-general" ,perl-config-general)
1324 ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
aaef00bf
EB
1325 ("perl-libwww" ,perl-libwww)
1326 ("perl-moose" ,perl-moose)
1327 ("perl-mro-compat" ,perl-mro-compat)
1328 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1329 ("perl-params-validate" ,perl-params-validate)
abafd66d
EF
1330 ("perl-uri-find" ,perl-uri-find)
1331 ("perl-xml-simple" ,perl-xml-simple)))
aaef00bf
EB
1332 (home-page "http://search.cpan.org/dist/Catalyst-Action-REST")
1333 (synopsis "Automated REST Method Dispatching")
1334 (description "This Action handles doing automatic method dispatching for
1335REST requests. It takes a normal Catalyst action, and changes the dispatch to
1336append an underscore and method name. First it will try dispatching to an
1337action with the generated name, and failing that it will try to dispatch to a
1338regular method.")
2f3108ad 1339 (license l:perl-license)))
aaef00bf 1340
6e545bbf
EB
1341(define-public perl-catalyst-authentication-store-dbix-class
1342 (package
1343 (name "perl-catalyst-authentication-store-dbix-class")
1344 (version "0.1506")
1345 (source
1346 (origin
1347 (method url-fetch)
1348 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
1349 "Catalyst-Authentication-Store-DBIx-Class-"
1350 version ".tar.gz"))
1351 (sha256
1352 (base32
1353 "0i5ja7690fs9nhxcij6lw51j804sm8s06m5mvk1n8pi8jljrymvw"))))
1354 (build-system perl-build-system)
1355 (native-inputs
1356 `(("perl-catalyst-plugin-authorization-roles"
1357 ,perl-catalyst-plugin-authorization-roles)
1358 ("perl-catalyst-plugin-session-state-cookie"
1359 ,perl-catalyst-plugin-session-state-cookie)
1360 ("perl-dbd-sqlite" ,perl-dbd-sqlite)
2f837cf7 1361 ("perl-module-install" ,perl-module-install)
6e545bbf
EB
1362 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
1363 (propagated-inputs
1364 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1365 ("perl-catalyst-plugin-authentication"
1366 ,perl-catalyst-plugin-authentication)
1367 ("perl-dbix-class" ,perl-dbix-class)
1368 ("perl-catalyst-model-dbic-schema" ,perl-catalyst-model-dbic-schema)))
1369 (home-page
1370 "http://search.cpan.org/dist/Catalyst-Authentication-Store-DBIx-Class")
1371 (synopsis "Storage class for Catalyst authentication using DBIx::Class")
1372 (description "The Catalyst::Authentication::Store::DBIx::Class class
1373provides access to authentication information stored in a database via
1374DBIx::Class.")
2f3108ad 1375 (license l:perl-license)))
6e545bbf 1376
040a52fd
EB
1377(define-public perl-catalyst-component-instancepercontext
1378 (package
1379 (name "perl-catalyst-component-instancepercontext")
1380 (version "0.001001")
1381 (source
1382 (origin
1383 (method url-fetch)
1384 (uri (string-append "mirror://cpan/authors/id/G/GR/GRODITI/"
1385 "Catalyst-Component-InstancePerContext-"
1386 version ".tar.gz"))
1387 (sha256
1388 (base32
1389 "0wfj4vnn2cvk6jh62amwlg050p37fcwdgrn9amcz24z6w4qgjqvz"))))
1390 (build-system perl-build-system)
2f837cf7
MB
1391 (native-inputs
1392 `(("perl-module-install" ,perl-module-install)))
040a52fd
EB
1393 (propagated-inputs
1394 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1395 ("perl-moose" ,perl-moose)))
1396 (home-page
1397 "http://search.cpan.org/dist/Catalyst-Component-InstancePerContext")
1398 (synopsis "Create only one instance of Moose component per context")
1399 (description "Catalyst::Component::InstancePerContext returns a new
1400instance of a component on each request.")
2f3108ad 1401 (license l:perl-license)))
040a52fd 1402
bdec3223
EB
1403(define-public perl-catalyst-devel
1404 (package
1405 (name "perl-catalyst-devel")
1406 (version "1.39")
1407 (source
1408 (origin
1409 (method url-fetch)
1410 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
1411 "Catalyst-Devel-" version ".tar.gz"))
1412 (sha256
1413 (base32
1414 "12m50bbkggjmpxihv3wnvr0g2qng0zwhlzi5ygppjz8wh2x73qxw"))))
1415 (build-system perl-build-system)
1416 (native-inputs
1417 `(("perl-test-fatal" ,perl-test-fatal)))
1418 (propagated-inputs
1419 `(("perl-catalyst-action-renderview" ,perl-catalyst-action-renderview)
1420 ("perl-catalyst-plugin-configloader" ,perl-catalyst-plugin-configloader)
1421 ("perl-catalyst-plugin-static-simple" ,perl-catalyst-plugin-static-simple)
1422 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1423 ("perl-config-general" ,perl-config-general)
1424 ("perl-file-changenotify" ,perl-file-changenotify)
1425 ("perl-file-copy-recursive" ,perl-file-copy-recursive)
1426 ("perl-file-sharedir" ,perl-file-sharedir)
1427 ("perl-module-install" ,perl-module-install)
1428 ("perl-moose" ,perl-moose)
1429 ("perl-moosex-emulate-class-accessor-fast"
1430 ,perl-moosex-emulate-class-accessor-fast)
1431 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1432 ("perl-namespace-clean" ,perl-namespace-clean)
1433 ("perl-path-class" ,perl-path-class)
1434 ("perl-template-toolkit" ,perl-template-toolkit)))
1435 (home-page "http://search.cpan.org/dist/Catalyst-Devel")
1436 (synopsis "Catalyst Development Tools")
1437 (description "The Catalyst-Devel distribution includes a variety of
1438modules useful for the development of Catalyst applications, but not required
1439to run them. Catalyst-Devel includes the Catalyst::Helper system, which
1440autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install
1441extension for Catalyst; and requirements for a variety of development-related
1442modules.")
2f3108ad 1443 (license l:perl-license)))
bdec3223 1444
9473af1d
EB
1445(define-public perl-catalyst-dispatchtype-regex
1446 (package
1447 (name "perl-catalyst-dispatchtype-regex")
1448 (version "5.90035")
1449 (source
1450 (origin
1451 (method url-fetch)
1452 (uri (string-append "mirror://cpan/authors/id/M/MG/MGRIMES/"
1453 "Catalyst-DispatchType-Regex-" version ".tar.gz"))
1454 (sha256
1455 (base32
1456 "06jq1lmpq88rmp9zik5gqczg234xac0hiyc3l698iif7zsgcyb80"))))
1457 (build-system perl-build-system)
1458 (native-inputs
1459 `(("perl-module-build" ,perl-module-build) ;needs Module::Build >= 0.4004
1460 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1461 ("perl-catalyst-runtime" ,perl-catalyst-runtime)))
1462 (propagated-inputs
1463 `(("perl-moose" ,perl-moose)
1464 ("perl-text-simpletable" ,perl-text-simpletable)))
1465 (home-page "http://search.cpan.org/dist/Catalyst-DispatchType-Regex")
1466 (synopsis "Regex DispatchType for Catalyst")
1467 (description "Dispatch type managing path-matching behaviour using
1468regexes. Regex dispatch types have been deprecated and removed from Catalyst
1469core. It is recommend that you use Chained methods or other techniques
1470instead. As part of the refactoring, the dispatch priority of Regex vs Regexp
1471vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by
1472when the dispatch type is first seen in your application.")
2f3108ad 1473 (license l:perl-license)))
9473af1d 1474
f643a6e9
EB
1475(define-public perl-catalyst-model-dbic-schema
1476 (package
1477 (name "perl-catalyst-model-dbic-schema")
1478 (version "0.65")
1479 (source
1480 (origin
1481 (method url-fetch)
1482 (uri (string-append "mirror://cpan/authors/id/G/GB/GBJK/"
1483 "Catalyst-Model-DBIC-Schema-"
1484 version ".tar.gz"))
1485 (sha256
1486 (base32
1487 "1spfjcjc0b9dv3k2gbanqj1m1cqzyxb32p76dhdwizzpbvpi3a96"))))
1488 (build-system perl-build-system)
1489 (native-inputs
1490 `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
2f837cf7 1491 ("perl-module-install" ,perl-module-install)
f643a6e9
EB
1492 ("perl-test-exception" ,perl-test-exception)
1493 ("perl-test-requires" ,perl-test-requires)))
1494 (propagated-inputs
1495 `(("perl-carp-clan" ,perl-carp-clan)
1496 ("perl-catalyst-component-instancepercontext"
1497 ,perl-catalyst-component-instancepercontext)
1498 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1499 ("perl-catalystx-component-traits" ,perl-catalystx-component-traits)
1500 ("perl-dbix-class" ,perl-dbix-class)
1501 ("perl-dbix-class-cursor-cached" ,perl-dbix-class-cursor-cached)
1502 ("perl-dbix-class-schema-loader" ,perl-dbix-class-schema-loader)
1503 ("perl-hash-merge" ,perl-hash-merge)
1504 ("perl-list-moreutils" ,perl-list-moreutils)
1505 ("perl-module-runtime" ,perl-module-runtime)
1506 ("perl-moose" ,perl-moose)
1507 ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
1508 ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
1509 ("perl-moosex-types" ,perl-moosex-types)
1510 ("perl-moosex-types-loadableclass" ,perl-moosex-types-loadableclass)
1511 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1512 ("perl-namespace-clean" ,perl-namespace-clean)
1513 ("perl-tie-ixhash" ,perl-tie-ixhash)
1514 ("perl-try-tiny" ,perl-try-tiny)))
1515 (home-page "http://search.cpan.org/dist/Catalyst-Model-DBIC-Schema")
1516 (synopsis "DBIx::Class::Schema Model Class")
1517 (description "This is a Catalyst Model for DBIx::Class::Schema-based
1518Models.")
2f3108ad 1519 (license l:perl-license)))
f643a6e9 1520
0a74d78d
EB
1521(define-public perl-catalyst-plugin-accesslog
1522 (package
1523 (name "perl-catalyst-plugin-accesslog")
9fc41452 1524 (version "1.10")
0a74d78d
EB
1525 (source
1526 (origin
1527 (method url-fetch)
1528 (uri (string-append "mirror://cpan/authors/id/A/AR/ARODLAND/"
1529 "Catalyst-Plugin-AccessLog-" version ".tar.gz"))
1530 (sha256
1531 (base32
9fc41452 1532 "0811rj45q4v2y8wka3wb9d5m4vbyhcmkvddf2wz4x69awzjbhgc7"))))
0a74d78d
EB
1533 (build-system perl-build-system)
1534 (propagated-inputs
1535 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1536 ("perl-datetime" ,perl-datetime)
1537 ("perl-moose" ,perl-moose)
1538 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
0a74d78d
EB
1539 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-AccessLog")
1540 (synopsis "Request logging from within Catalyst")
1541 (description "This Catalyst plugin enables you to create \"access logs\"
1542from within a Catalyst application instead of requiring a webserver to do it
1543for you. It will work even with Catalyst debug logging turned off.")
2f3108ad 1544 (license l:perl-license)))
0a74d78d 1545
4b4fe57d
EB
1546(define-public perl-catalyst-plugin-authentication
1547 (package
1548 (name "perl-catalyst-plugin-authentication")
1549 (version "0.10023")
1550 (source
1551 (origin
1552 (method url-fetch)
1553 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1554 "Catalyst-Plugin-Authentication-"
1555 version ".tar.gz"))
1556 (sha256
1557 (base32
1558 "0v6hb4r1wv3djrnqvnjcn3xx1scgqzx8nyjdg9lfc1ybvamrl0rn"))))
1559 (build-system perl-build-system)
2f837cf7
MB
1560 (native-inputs
1561 `(("perl-module-install" ,perl-module-install)))
4b4fe57d
EB
1562 (propagated-inputs
1563 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1564 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1565 ("perl-class-inspector" ,perl-class-inspector)
1566 ("perl-moose" ,perl-moose)
1567 ("perl-moosex-emulate-class-accessor-fast"
1568 ,perl-moosex-emulate-class-accessor-fast)
1569 ("perl-mro-compat" ,perl-mro-compat)
1570 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1571 ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
1572 ("perl-test-exception" ,perl-test-exception)
1573 ("perl-try-tiny" ,perl-try-tiny)))
1574 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Authentication")
1575 (synopsis "Infrastructure plugin for the Catalyst authentication framework")
1576 (description "The authentication plugin provides generic user support for
e881752c 1577Catalyst apps. It is the basis for both authentication (checking the user is
4b4fe57d
EB
1578who they claim to be), and authorization (allowing the user to do what the
1579system authorises them to do).")
2f3108ad 1580 (license l:perl-license)))
4b4fe57d 1581
514214cb
EB
1582(define-public perl-catalyst-plugin-authorization-roles
1583 (package
1584 (name "perl-catalyst-plugin-authorization-roles")
1585 (version "0.09")
1586 (source
1587 (origin
1588 (method url-fetch)
1589 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1590 "Catalyst-Plugin-Authorization-Roles-"
1591 version ".tar.gz"))
1592 (sha256
1593 (base32
1594 "0l83lkwmq0lngwh8b1rv3r719pn8w1gdbyhjqm74rnd0wbjl8h7f"))))
1595 (build-system perl-build-system)
1596 (native-inputs
2f837cf7
MB
1597 `(("perl-module-install" ,perl-module-install)
1598 ("perl-test-exception" ,perl-test-exception)))
514214cb
EB
1599 (propagated-inputs
1600 `(("perl-catalyst-plugin-authentication"
1601 ,perl-catalyst-plugin-authentication)
1602 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1603 ("perl-set-object" ,perl-set-object)
1604 ("perl-universal-isa" ,perl-universal-isa)))
1605 (home-page
1606 "http://search.cpan.org/dist/Catalyst-Plugin-Authorization-Roles")
1607 (synopsis "Role-based authorization for Catalyst")
1608 (description "Catalyst::Plugin::Authorization::Roles provides role-based
1609authorization for Catalyst based on Catalyst::Plugin::Authentication.")
2f3108ad 1610 (license l:perl-license)))
514214cb 1611
57c2680e
EB
1612(define-public perl-catalyst-plugin-captcha
1613 (package
1614 (name "perl-catalyst-plugin-captcha")
1615 (version "0.04")
1616 (source
1617 (origin
1618 (method url-fetch)
1619 (uri (string-append "mirror://cpan/authors/id/D/DI/DIEGOK/"
1620 "Catalyst-Plugin-Captcha-" version ".tar.gz"))
1621 (sha256
1622 (base32
1623 "0llyj3v5nx9cx46jdbbvxf1lc9s9cxq5ml22xmx3wkb201r5qgaa"))))
1624 (build-system perl-build-system)
1625 (propagated-inputs
1626 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1627 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1628 ("perl-gd-securityimage" ,perl-gd-securityimage)
1629 ("perl-http-date" ,perl-http-date)))
1630 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Captcha")
1631 (synopsis "Captchas for Catalyst")
1632 (description "This plugin creates and validates Captcha images for
1633Catalyst.")
2f3108ad 1634 (license l:perl-license)))
57c2680e 1635
7c4eaa56
EB
1636(define-public perl-catalyst-plugin-configloader
1637 (package
1638 (name "perl-catalyst-plugin-configloader")
1639 (version "0.34")
1640 (source
1641 (origin
1642 (method url-fetch)
1643 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1644 "Catalyst-Plugin-ConfigLoader-"
1645 version ".tar.gz"))
1646 (sha256
1647 (base32
1648 "19j7p4v7mbx6wrmpvmrnd974apx7hdl2s095ga3b9zcbdrl77h5q"))))
1649 (build-system perl-build-system)
1650 (native-inputs
2f837cf7
MB
1651 `(("perl-path-class" ,perl-path-class)
1652 ("perl-module-install" ,perl-module-install)))
7c4eaa56
EB
1653 (propagated-inputs
1654 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1655 ("perl-config-any" ,perl-config-any)
1656 ("perl-data-visitor" ,perl-data-visitor)
1657 ("perl-mro-compat" ,perl-mro-compat)))
1658 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-ConfigLoader")
1659 (synopsis "Load config files of various types")
1660 (description "This module will attempt to load find and load configuration
1661files of various types. Currently it supports YAML, JSON, XML, INI and Perl
1662formats.")
2f3108ad 1663 (license l:perl-license)))
7c4eaa56 1664
3d4644e4
EB
1665(define-public perl-catalyst-plugin-session
1666 (package
1667 (name "perl-catalyst-plugin-session")
e8b20020 1668 (version "0.40")
3d4644e4
EB
1669 (source
1670 (origin
1671 (method url-fetch)
1672 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1673 "Catalyst-Plugin-Session-" version ".tar.gz"))
1674 (sha256
1675 (base32
e8b20020 1676 "171vi9xcl775scjaw4fcfdmqvz0rb1nr0xxg2gb3ng6bjzpslhgv"))))
3d4644e4
EB
1677 (build-system perl-build-system)
1678 (native-inputs
2f837cf7
MB
1679 `(("perl-module-install" ,perl-module-install)
1680 ("perl-test-deep" ,perl-test-deep)
3d4644e4
EB
1681 ("perl-test-exception" ,perl-test-exception)))
1682 (propagated-inputs
1683 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1684 ("perl-moose" ,perl-moose)
1685 ("perl-moosex-emulate-class-accessor-fast"
1686 ,perl-moosex-emulate-class-accessor-fast)
e8b20020 1687 ("perl-mro-compat" ,perl-mro-compat)
3d4644e4
EB
1688 ("perl-namespace-clean" ,perl-namespace-clean)
1689 ("perl-object-signature" ,perl-object-signature)
1690 ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
1691 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Session")
1692 (synopsis "Catalyst generic session plugin")
1693 (description "This plugin links the two pieces required for session
1694management in web applications together: the state, and the store.")
2f3108ad 1695 (license l:perl-license)))
3d4644e4 1696
be734479
EB
1697(define-public perl-catalyst-plugin-session-state-cookie
1698 (package
1699 (name "perl-catalyst-plugin-session-state-cookie")
1700 (version "0.17")
1701 (source
1702 (origin
1703 (method url-fetch)
1704 (uri (string-append "mirror://cpan/authors/id/M/MS/MSTROUT/"
1705 "Catalyst-Plugin-Session-State-Cookie-"
1706 version ".tar.gz"))
1707 (sha256
1708 (base32
1709 "1rvxbfnpf9x2pc2zgpazlcgdlr2dijmxgmcs0m5nazs0w6xikssb"))))
1710 (build-system perl-build-system)
2f837cf7
MB
1711 (native-inputs
1712 `(("perl-module-install" ,perl-module-install)))
be734479
EB
1713 (propagated-inputs
1714 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1715 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1716 ("perl-moose" ,perl-moose)
1717 ("perl-mro-compat" ,perl-mro-compat)
1718 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
1719 (home-page
1720 "http://search.cpan.org/dist/Catalyst-Plugin-Session-State-Cookie")
1721 (synopsis "Maintain session IDs using cookies")
1722 (description "In order for Catalyst::Plugin::Session to work, the session
1723ID needs to be stored on the client, and the session data needs to be stored
1724on the server. This plugin stores the session ID on the client using the
1725cookie mechanism.")
2f3108ad 1726 (license l:perl-license)))
be734479 1727
47533b6f
EB
1728(define-public perl-catalyst-plugin-session-store-fastmmap
1729 (package
1730 (name "perl-catalyst-plugin-session-store-fastmmap")
1731 (version "0.16")
1732 (source
1733 (origin
1734 (method url-fetch)
1735 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1736 "Catalyst-Plugin-Session-Store-FastMmap-"
1737 version ".tar.gz"))
1738 (sha256
1739 (base32
1740 "0x3j6zv3wr41jlwr6yb2jpmcx019ibyn11y8653ffnwhpzbpzsxs"))))
1741 (build-system perl-build-system)
1742 (propagated-inputs
1743 `(("perl-cache-fastmmap" ,perl-cache-fastmmap)
1744 ("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1745 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1746 ("perl-moosex-emulate-class-accessor-fast"
1747 ,perl-moosex-emulate-class-accessor-fast)
1748 ("perl-mro-compat" ,perl-mro-compat)
1749 ("perl-path-class" ,perl-path-class)))
1750 (home-page
1751 "http://search.cpan.org/dist/Catalyst-Plugin-Session-Store-FastMmap")
e881752c 1752 (synopsis "FastMmap session storage backend")
47533b6f
EB
1753 (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
1754storage plugin for Catalyst that uses an mmap'ed file to act as a shared
1755memory interprocess cache. It is based on Cache::FastMmap.")
2f3108ad 1756 (license l:perl-license)))
47533b6f 1757
996f4110
EB
1758(define-public perl-catalyst-plugin-stacktrace
1759 (package
1760 (name "perl-catalyst-plugin-stacktrace")
1761 (version "0.12")
1762 (source
1763 (origin
1764 (method url-fetch)
1765 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1766 "Catalyst-Plugin-StackTrace-" version ".tar.gz"))
1767 (sha256
1768 (base32
1769 "1b2ksz74cpigxqzf63rddar3vfmnbpwpdcbs11v0ml89pb8ar79j"))))
1770 (build-system perl-build-system)
2f837cf7
MB
1771 (native-inputs
1772 `(("perl-module-install" ,perl-module-install)))
996f4110
EB
1773 (propagated-inputs
1774 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1775 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
1776 ("perl-mro-compat" ,perl-mro-compat)))
1777 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-StackTrace")
1778 (synopsis "Stack trace on the Catalyst debug screen")
1779 (description "This plugin enhances the standard Catalyst debug screen by
69b4ffcf 1780including a stack trace of your application up to the point where the error
996f4110
EB
1781occurred. Each stack frame is displayed along with the package name, line
1782number, file name, and code context surrounding the line number.")
2f3108ad 1783 (license l:perl-license)))
996f4110 1784
4cb5426c
EB
1785(define-public perl-catalyst-plugin-static-simple
1786 (package
1787 (name "perl-catalyst-plugin-static-simple")
1788 (version "0.33")
1789 (source
1790 (origin
1791 (method url-fetch)
1792 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1793 "Catalyst-Plugin-Static-Simple-" version ".tar.gz"))
1794 (sha256
1795 (base32
1796 "1h8f12bhzh0ssq9gs8r9g3hqn8zn2k0q944vc1vm8j81bns16msy"))))
1797 (build-system perl-build-system)
2f837cf7
MB
1798 (native-inputs
1799 `(("perl-module-install" ,perl-module-install)))
4cb5426c
EB
1800 (propagated-inputs
1801 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1802 ("perl-mime-types" ,perl-mime-types)
1803 ("perl-moose" ,perl-moose)
1804 ("perl-moosex-types" ,perl-moosex-types)
1805 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
1806 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Static-Simple")
1807 (synopsis "Simple serving of static pages")
1808 (description "The Static::Simple plugin is designed to make serving static
1809content in your application during development quick and easy, without
1810requiring a single line of code from you. This plugin detects static files by
1811looking at the file extension in the URL (such as .css or .png or .js). The
1812plugin uses the lightweight MIME::Types module to map file extensions to
1813IANA-registered MIME types, and will serve your static files with the correct
1814MIME type directly to the browser, without being processed through Catalyst.")
2f3108ad 1815 (license l:perl-license)))
4cb5426c 1816
91f06299
EB
1817(define-public perl-catalyst-runtime
1818 (package
1819 (name "perl-catalyst-runtime")
a21db79e 1820 (version "5.90115")
91f06299
EB
1821 (source
1822 (origin
1823 (method url-fetch)
1824 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1825 "Catalyst-Runtime-" version ".tar.gz"))
1826 (sha256
1827 (base32
a21db79e 1828 "0kh3ng6pjpxmndq9vrn515f70x7h44ish5bsgjwj4pjvchcyivzm"))))
91f06299
EB
1829 (build-system perl-build-system)
1830 (native-inputs
a21db79e
MB
1831 `(("perl-module-install" ,perl-module-install)
1832 ("perl-test-fatal" ,perl-test-fatal)))
91f06299
EB
1833 (propagated-inputs
1834 `(("perl-cgi-simple" ,perl-cgi-simple)
1835 ("perl-cgi-struct" ,perl-cgi-struct)
1836 ("perl-class-c3-adopt-next" ,perl-class-c3-adopt-next)
1837 ("perl-class-data-inheritable" ,perl-class-data-inheritable)
1838 ("perl-class-date" ,perl-class-date)
1839 ("perl-class-load" ,perl-class-load)
1840 ("perl-data-dump" ,perl-data-dump)
1841 ("perl-http-body" ,perl-http-body)
1842 ("perl-http-message" ,perl-http-message)
1843 ("perl-http-request-ascgi" ,perl-http-request-ascgi)
1844 ("perl-io-stringy" ,perl-io-stringy)
1845 ("perl-json-maybexs" ,perl-json-maybexs)
1846 ("perl-libwww" ,perl-libwww)
a2190ccc 1847 ("perl-module-pluggable" ,perl-module-pluggable)
91f06299
EB
1848 ("perl-moose" ,perl-moose)
1849 ("perl-moosex-emulate-class-accessor-fast"
1850 ,perl-moosex-emulate-class-accessor-fast)
1851 ("perl-moosex-getopt" ,perl-moosex-getopt)
1852 ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)
1853 ("perl-moosex-role-withoverloading" ,perl-moosex-role-withoverloading)
1854 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1855 ("perl-namespace-clean" ,perl-namespace-clean)
1856 ("perl-path-class" ,perl-path-class)
1857 ("perl-plack" ,perl-plack)
1858 ("perl-plack-middleware-fixmissingbodyinredirect"
1859 ,perl-plack-middleware-fixmissingbodyinredirect)
1860 ("perl-plack-middleware-methodoverride"
1861 ,perl-plack-middleware-methodoverride)
1862 ("perl-plack-middleware-removeredundantbody"
1863 ,perl-plack-middleware-removeredundantbody)
1864 ("perl-plack-middleware-reverseproxy"
1865 ,perl-plack-middleware-reverseproxy)
1866 ("perl-plack-test-externalserver" ,perl-plack-test-externalserver)
1867 ("perl-safe-isa" ,perl-safe-isa)
1868 ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
1869 ("perl-text-simpletable" ,perl-text-simpletable)
1870 ("perl-tree-simple" ,perl-tree-simple)
1871 ("perl-tree-simple-visitorfactory" ,perl-tree-simple-visitorfactory)
1872 ("perl-try-tiny" ,perl-try-tiny)
1873 ("perl-uri" ,perl-uri)
1874 ("perl-uri-ws" ,perl-uri-ws)))
1875 (home-page "http://search.cpan.org/dist/Catalyst-Runtime")
1876 (synopsis "The Catalyst Framework Runtime")
1877 (description "Catalyst is a modern framework for making web applications.
1878It is designed to make it easy to manage the various tasks you need to do to
1879run an application on the web, either by doing them itself, or by letting you
1880\"plug in\" existing Perl modules that do what you need.")
2f3108ad 1881 (license l:perl-license)))
91f06299 1882
b902eb1c
EB
1883(define-public perl-catalyst-traitfor-request-proxybase
1884 (package
1885 (name "perl-catalyst-traitfor-request-proxybase")
1886 (version "0.000005")
1887 (source
1888 (origin
1889 (method url-fetch)
1890 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1891 "Catalyst-TraitFor-Request-ProxyBase-"
1892 version ".tar.gz"))
1893 (sha256
1894 (base32
1895 "02kir63d5cs2ipj3fn1qlmmx3gqi1xqzrxfr4pv5vjhjgsm0zgx7"))))
1896 (build-system perl-build-system)
1897 (native-inputs
1898 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1899 ("perl-catalystx-roleapplicator" ,perl-catalystx-roleapplicator)
2f837cf7
MB
1900 ("perl-http-message" ,perl-http-message)
1901 ("perl-module-install" ,perl-module-install)))
b902eb1c
EB
1902 (propagated-inputs
1903 `(("perl-moose" ,perl-moose)
1904 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1905 ("perl-uri" ,perl-uri)))
1906 (home-page
1907 "http://search.cpan.org/dist/Catalyst-TraitFor-Request-ProxyBase")
1908 (synopsis "Replace request base with value passed by HTTP proxy")
1909 (description "This module is a Moose::Role which allows you more
1910flexibility in your application's deployment configurations when deployed
1911behind a proxy. Using this module, the request base ($c->req->base) is
1912replaced with the contents of the X-Request-Base header.")
2f3108ad 1913 (license l:perl-license)))
b902eb1c 1914
83261658
EB
1915(define-public perl-catalyst-view-download
1916 (package
1917 (name "perl-catalyst-view-download")
1918 (version "0.09")
1919 (source
1920 (origin
1921 (method url-fetch)
1922 (uri (string-append "mirror://cpan/authors/id/G/GA/GAUDEON/"
1923 "Catalyst-View-Download-" version ".tar.gz"))
1924 (sha256
1925 (base32
1926 "1qgq6y9iwfbhbkbgpw9czang2ami6z8jk1zlagrzdisy4igqzkvs"))))
1927 (build-system perl-build-system)
1928 (native-inputs
1929 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2f837cf7 1930 ("perl-module-install" ,perl-module-install)
83261658
EB
1931 ("perl-test-simple" ,perl-test-simple)
1932 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)
1933 ("perl-text-csv" ,perl-text-csv)
1934 ("perl-xml-simple" ,perl-xml-simple)))
1935 (home-page "http://search.cpan.org/dist/Catalyst-View-Download")
1936 (synopsis "Download data in many formats")
1937 (description "The purpose of this module is to provide a method for
1938downloading data into many supportable formats. For example, downloading a
e881752c 1939table based report in a variety of formats (CSV, HTML, etc.).")
2f3108ad 1940 (license l:perl-license)))
83261658 1941
c985cfe6
EB
1942(define-public perl-catalyst-view-json
1943 (package
1944 (name "perl-catalyst-view-json")
0018eb57 1945 (version "0.36")
c985cfe6
EB
1946 (source
1947 (origin
1948 (method url-fetch)
1949 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1950 "Catalyst-View-JSON-" version ".tar.gz"))
1951 (sha256
1952 (base32
0018eb57 1953 "0x943j1n2r0zqanyzdrs1xsnn8ayn2wqskn7h144xcqa6v6gcisl"))))
c985cfe6
EB
1954 (build-system perl-build-system)
1955 (native-inputs
2f837cf7
MB
1956 `(("perl-module-install" ,perl-module-install)
1957 ("perl-yaml" ,perl-yaml)))
c985cfe6
EB
1958 (inputs
1959 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1960 ("perl-json-maybexs" ,perl-json-maybexs)
1961 ("perl-mro-compat" ,perl-mro-compat)))
1962 (home-page "http://search.cpan.org/dist/Catalyst-View-JSON")
1963 (synopsis "Catalyst JSON view")
1964 (description "Catalyst::View::JSON is a Catalyst View handler that returns
1965stash data in JSON format.")
2f3108ad 1966 (license l:perl-license)))
c985cfe6 1967
5c2c9ab2
EB
1968(define-public perl-catalyst-view-tt
1969 (package
1970 (name "perl-catalyst-view-tt")
776ca1cb 1971 (version "0.44")
5c2c9ab2
EB
1972 (source
1973 (origin
1974 (method url-fetch)
94692757 1975 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
5c2c9ab2
EB
1976 "Catalyst-View-TT-" version ".tar.gz"))
1977 (sha256
1978 (base32
776ca1cb 1979 "06d1zg4nbb6kcyjbnyxrkf8z4zlscxr8650d94f7187jygfl8rvh"))))
5c2c9ab2
EB
1980 (build-system perl-build-system)
1981 (propagated-inputs
1982 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1983 ("perl-class-accessor" ,perl-class-accessor)
776ca1cb 1984 ("perl-data-dump" ,perl-data-dump)
5c2c9ab2
EB
1985 ("perl-mro-compat" ,perl-mro-compat)
1986 ("perl-path-class" ,perl-path-class)
1987 ("perl-template-timer" ,perl-template-timer)
1988 ("perl-template-toolkit" ,perl-template-toolkit)))
1989 (home-page "http://search.cpan.org/dist/Catalyst-View-TT")
1990 (synopsis "Template View Class")
1991 (description "This module is a Catalyst view class for the Template
1992Toolkit.")
2f3108ad 1993 (license l:perl-license)))
5c2c9ab2 1994
89a2aa36
EB
1995(define-public perl-catalystx-component-traits
1996 (package
1997 (name "perl-catalystx-component-traits")
1998 (version "0.19")
1999 (source
2000 (origin
2001 (method url-fetch)
2002 (uri (string-append "mirror://cpan/authors/id/R/RK/RKITOVER/"
2003 "CatalystX-Component-Traits-" version ".tar.gz"))
2004 (sha256
2005 (base32
2006 "0iq4ci8m6g2c4g01fvdl568y7pjz28f3widk986v3pyhr7ll8j88"))))
2007 (build-system perl-build-system)
2008 (native-inputs
2009 `(("perl-moose" ,perl-moose)
2010 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2011 ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)))
2012 (propagated-inputs
2013 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2014 ("perl-class-load" ,perl-class-load)
2015 ("perl-moose" ,perl-moose)
2016 ("perl-moosex-traits-pluggable" ,perl-moosex-traits-pluggable)
2017 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2018 ("perl-list-moreutils" ,perl-list-moreutils)))
2019 (home-page "http://search.cpan.org/dist/CatalystX-Component-Traits")
2020 (synopsis "Trait Loading and Resolution for Catalyst Components")
2021 (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
2022Catalyst component base class that reads the optional \"traits\" parameter
2023from app and component config and instantiates the component subclass with
2024those traits using \"new_with_traits\" in MooseX::Traits from
2025MooseX::Traits::Pluggable.")
2f3108ad 2026 (license l:perl-license)))
89a2aa36 2027
227687ae
EB
2028(define-public perl-catalystx-roleapplicator
2029 (package
2030 (name "perl-catalystx-roleapplicator")
2031 (version "0.005")
2032 (source
2033 (origin
2034 (method url-fetch)
2035 (uri (string-append "mirror://cpan/authors/id/H/HD/HDP/"
2036 "CatalystX-RoleApplicator-" version ".tar.gz"))
2037 (sha256
2038 (base32
2039 "0vwaapxn8g5hs2xp63c4dwv9jmapmji4272fakssvgc9frklg3p2"))))
2040 (build-system perl-build-system)
2041 (propagated-inputs
2042 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2043 ("perl-moose" ,perl-moose)
2044 ("perl-moosex-relatedclassroles" ,perl-moosex-relatedclassroles)))
2045 (home-page "http://search.cpan.org/dist/CatalystX-RoleApplicator")
2046 (synopsis "Apply roles to Catalyst classes")
2047 (description "CatalystX::RoleApplicator applies roles to Catalyst
2048application classes.")
2f3108ad 2049 (license l:perl-license)))
227687ae 2050
ca8e6196
EB
2051(define-public perl-catalystx-script-server-starman
2052 (package
2053 (name "perl-catalystx-script-server-starman")
2054 (version "0.02")
2055 (source
2056 (origin
2057 (method url-fetch)
2058 (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
2059 "CatalystX-Script-Server-Starman-"
2060 version ".tar.gz"))
2061 (sha256
2062 (base32
2063 "0h02mpkc4cmi3jpvcd7iw7xyzx55bqvvl1qkf967gqkvpklm0qx5"))))
2064 (build-system perl-build-system)
2065 (native-inputs
2f837cf7
MB
2066 `(("perl-module-install" ,perl-module-install)
2067 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
ca8e6196
EB
2068 (propagated-inputs
2069 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2070 ("perl-moose" ,perl-moose)
2071 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2072 ("starman" ,starman)))
2073 (home-page "http://search.cpan.org/dist/CatalystX-Script-Server-Starman")
2074 (synopsis "Catalyst development server with Starman")
2075 (description "This module provides a Catalyst extension to replace the
2076development server with Starman.")
2f3108ad 2077 (license l:perl-license)))
ca8e6196 2078
7b158c4e
EB
2079(define-public perl-cgi
2080 (package
2081 (name "perl-cgi")
caa01944 2082 (version "4.35")
7b158c4e
EB
2083 (source
2084 (origin
2085 (method url-fetch)
2086 (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/"
2087 "CGI-" version ".tar.gz"))
2088 (sha256
2089 (base32
caa01944 2090 "07gwnlc7vq58fjwmfsrv0hfyirqqdrpjhf89caq34rjrkz2wsd0b"))))
7b158c4e
EB
2091 (build-system perl-build-system)
2092 (native-inputs
2093 `(("perl-test-deep" ,perl-test-deep)
2094 ("perl-test-nowarnings" ,perl-test-nowarnings)
2095 ("perl-test-warn" ,perl-test-warn)))
2096 (propagated-inputs
2097 `(("perl-html-parser" ,perl-html-parser)))
2098 (home-page "http://search.cpan.org/dist/CGI")
2099 (synopsis "Handle Common Gateway Interface requests and responses")
2100 (description "CGI.pm is a stable, complete and mature solution for
2101processing and preparing HTTP requests and responses. Major features include
2102processing form submissions, file uploads, reading and writing cookies, query
2103string generation and manipulation, and processing and preparing HTTP
2104headers.")
2f3108ad 2105 (license l:perl-license)))
7b158c4e 2106
f0539b66
CB
2107(define-public perl-cgi-session
2108 (package
2109 (name "perl-cgi-session")
2110 (version "4.48")
2111 (source
2112 (origin
2113 (method url-fetch)
2114 (uri (string-append
2115 "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-"
2116 version
2117 ".tar.gz"))
2118 (sha256
2119 (base32
2120 "1xsl2pz1jrh127pq0b01yffnj4mnp9nvkp88h5mndrscq9hn8xa6"))))
2121 (build-system perl-build-system)
2122 (native-inputs
2123 `(("perl-module-build" ,perl-module-build)))
2124 (inputs `(("perl-cgi" ,perl-cgi)))
2125 (home-page
2126 "http://search.cpan.org/dist/CGI-Session")
2127 (synopsis
2128 "Persistent session data in CGI applications")
2129 (description
2130 "@code{CGI::Session} provides modular session management system across
2131HTTP requests.")
2132 (license l:perl-license)))
2133
0148aa55
EB
2134(define-public perl-cgi-simple
2135 (package
2136 (name "perl-cgi-simple")
2137 (version "1.115")
2138 (source
2139 (origin
2140 (method url-fetch)
2141 (uri (string-append "mirror://cpan/authors/id/S/SZ/SZABGAB/"
2142 "CGI-Simple-" version ".tar.gz"))
2143 (sha256
2144 (base32
2145 "1nkyb1m1g5r47xykflf68dplanih5p15njv82frbgbsms34kp1sg"))))
2146 (build-system perl-build-system)
2147 (native-inputs
bb8afbf5
LC
2148 `(("perl-module-build" ,perl-module-build)
2149 ("perl-io-stringy" ,perl-io-stringy))) ;for IO::Scalar
0148aa55
EB
2150 (home-page "http://search.cpan.org/dist/CGI-Simple")
2151 (synopsis "CGI interface that is CGI.pm compliant")
2152 (description "CGI::Simple provides a relatively lightweight drop in
2153replacement for CGI.pm. It shares an identical OO interface to CGI.pm for
2154parameter parsing, file upload, cookie handling and header generation.")
2f3108ad 2155 (license l:perl-license)))
0148aa55 2156
76b8b86c
EB
2157(define-public perl-cgi-struct
2158 (package
2159 (name "perl-cgi-struct")
2160 (version "1.21")
2161 (source
2162 (origin
2163 (method url-fetch)
2164 (uri (string-append "mirror://cpan/authors/id/F/FU/FULLERMD/"
2165 "CGI-Struct-" version ".tar.gz"))
2166 (sha256
2167 (base32
2168 "0v4xq2qpryr7i6jngw1wpn8yr2kiib10yxp4aih90vfdznkqsgfi"))))
2169 (build-system perl-build-system)
2170 (native-inputs
2171 `(("perl-test-deep" ,perl-test-deep)))
2172 (home-page "http://search.cpan.org/dist/CGI-Struct")
2173 (synopsis "Build structures from CGI data")
2174 (description "This is a module for building structured data from CGI
2175inputs, in a manner reminiscent of how PHP does.")
2176 (license l:bsd-2)))
2177
9151712c
EB
2178(define-public perl-datetime-format-http
2179 (package
2180 (name "perl-datetime-format-http")
2181 (version "0.42")
2182 (source
2183 (origin
2184 (method url-fetch)
2185 (uri (string-append "mirror://cpan/authors/id/C/CK/CKRAS/"
2186 "DateTime-Format-HTTP-" version ".tar.gz"))
2187 (sha256
2188 (base32
2189 "0h6qqdg1yzqkdxp7hqlp0qa7d1y64nilgimxs79dys2ryjfpcknh"))))
2190 (build-system perl-build-system)
a2190ccc
EB
2191 (native-inputs
2192 `(("perl-module-build" ,perl-module-build)))
9151712c
EB
2193 (propagated-inputs
2194 `(("perl-datetime" ,perl-datetime)
2195 ("perl-http-date" ,perl-http-date)))
2196 (home-page "http://search.cpan.org/dist/DateTime-Format-HTTP")
2197 (synopsis "Date conversion routines")
2198 (description "This module provides functions that deal with the date
2199formats used by the HTTP protocol.")
2f3108ad 2200 (license l:perl-license)))
9151712c 2201
0a24e9b8
EB
2202(define-public perl-digest-md5-file
2203 (package
2204 (name "perl-digest-md5-file")
2205 (version "0.08")
2206 (source
2207 (origin
2208 (method url-fetch)
2209 (uri (string-append "mirror://cpan/authors/id/D/DM/DMUEY/"
2210 "Digest-MD5-File-" version ".tar.gz"))
2211 (sha256
2212 (base32
2213 "060jzf45dlwysw5wsm7av1wvpl06xgk415kwwpvv89r6wda3md5d"))))
2214 (build-system perl-build-system)
2215 (propagated-inputs
2216 `(("perl-libwww" ,perl-libwww)))
2217 (home-page "http://search.cpan.org/dist/Digest-MD5-File")
2218 (synopsis "MD5 sums for files and urls")
2219 (description "Digest::MD5::File is a Perl extension for getting MD5 sums
2220for files and urls.")
2f3108ad 2221 (license l:perl-license)))
0a24e9b8 2222
8142aff3
EB
2223(define-public perl-encode-locale
2224 (package
2225 (name "perl-encode-locale")
85b9c18b 2226 (version "1.05")
c9ea41ff
AE
2227 (source (origin
2228 (method url-fetch)
2229 (uri (string-append
8142aff3 2230 "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
c9ea41ff
AE
2231 version ".tar.gz"))
2232 (sha256
2233 (base32
85b9c18b 2234 "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp"))))
c9ea41ff 2235 (build-system perl-build-system)
2f3108ad 2236 (license l:perl-license)
8142aff3 2237 (synopsis "Perl locale encoding determination")
c9ea41ff 2238 (description
8142aff3 2239 "The POSIX locale system is used to specify both the language
7c125ce0
AK
2240conventions requested by the user and the preferred character set to
2241consume and output. The Encode::Locale module looks up the charset and
2242encoding (called a CODESET in the locale jargon) and arranges for the
2243Encode module to know this encoding under the name \"locale\". It means
2244bytes obtained from the environment can be converted to Unicode strings
2245by calling Encode::encode(locale => $bytes) and converted back again
2246with Encode::decode(locale => $string).")
8142aff3
EB
2247 (home-page "http://search.cpan.org/~gaas/Encode-Locale/")))
2248
46173a0d 2249(define-public perl-feed-find
2250 (package
2251 (name "perl-feed-find")
2252 (version "0.07")
2253 (source (origin
2254 (method url-fetch)
2255 (uri (string-append "mirror://cpan/authors/id/B/BT/BTROTT/"
2256 "Feed-Find-" version ".tar.gz"))
2257 (sha256
2258 (base32
2259 "0sa33cm8ww55cymnl8j7b5yspi2y5xkkkgqqa4h6fs3wdqylz600"))))
2260 (build-system perl-build-system)
2261 (arguments
2262 ;; Tests expect to query files at http://stupidfool.org/perl/feeds/
70629b6d
LF
2263 `(#:tests? #f
2264 #:phases
2265 (modify-phases %standard-phases
2266 (add-after 'unpack 'set-env
2267 (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1"))))))
46173a0d 2268 (inputs
2269 `(("perl-class-errorhandler" ,perl-class-errorhandler)
2270 ("perl-html-parser" ,perl-html-parser)
2271 ("perl-libwww" ,perl-libwww)
2272 ("perl-uri" ,perl-uri)))
2273 (home-page "http://search.cpan.org/dist/Feed-Find")
2274 (synopsis "Syndication feed auto-discovery")
2275 (description "@code{Feed::Find} implements feed auto-discovery for finding
2276syndication feeds, given a URI. It will discover the following feed formats:
2277RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
2f3108ad 2278 (license l:perl-license)))
46173a0d 2279
8142aff3
EB
2280(define-public perl-file-listing
2281 (package
2282 (name "perl-file-listing")
2283 (version "6.04")
2284 (source (origin
2285 (method url-fetch)
2286 (uri (string-append
2287 "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
2288 version ".tar.gz"))
2289 (sha256
2290 (base32
2291 "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
2292 (build-system perl-build-system)
2293 (propagated-inputs
2294 `(("perl-http-date" ,perl-http-date)))
2f3108ad 2295 (license l:perl-license)
8142aff3
EB
2296 (synopsis "Perl directory listing parser")
2297 (description
2298 "The File::Listing module exports a single function called parse_dir(),
2299which can be used to parse directory listings.")
2300 (home-page "http://search.cpan.org/~gaas/File-Listing/")))
c9ea41ff 2301
8b459932
EB
2302(define-public perl-finance-quote
2303 (package
2304 (name "perl-finance-quote")
97c0cfdc 2305 (version "1.38")
8b459932
EB
2306 (source
2307 (origin
2308 (method url-fetch)
2309 (uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
2310 "Finance-Quote-" version ".tar.gz"))
2311 (sha256
2312 (base32
97c0cfdc 2313 "0zhqb27y4vdxn476s2kwm9zl2f970yjcyyybnjm9b406krr2fm59"))
fc1adab1
AK
2314 (patches (search-patches
2315 "perl-finance-quote-unuse-mozilla-ca.patch"))))
8b459932
EB
2316 (build-system perl-build-system)
2317 (propagated-inputs
a2190ccc
EB
2318 `(("perl-cgi" ,perl-cgi)
2319 ("perl-datetime" ,perl-datetime)
8b459932
EB
2320 ("perl-html-parser" ,perl-html-parser)
2321 ("perl-html-tableextract" ,perl-html-tableextract)
2322 ("perl-html-tree" ,perl-html-tree)
2323 ("perl-http-cookies" ,perl-http-cookies)
2324 ("perl-http-message" ,perl-http-message)
2325 ("perl-json" ,perl-json)
2326 ("perl-libwww" ,perl-libwww)
2327 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
2328 ("perl-uri" ,perl-uri)))
2329 (home-page "http://search.cpan.org/dist/Finance-Quote")
2330 (synopsis "Stock and mutual fund quotes")
2331 (description
2332 "Finance::Quote gets stock quotes from various internet sources, including
2333Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
2334 (license l:gpl2)))
2335
9fe938c1
EB
2336(define-public perl-gssapi
2337 (package
2338 (name "perl-gssapi")
2339 (version "0.28")
2340 (source
2341 (origin
2342 (method url-fetch)
2343 (uri (string-append "mirror://cpan/authors/id/A/AG/AGROLMS/"
2344 "GSSAPI-" version ".tar.gz"))
2345 (sha256
2346 (base32
2347 "1mkhwxjjlhr58pd770i9gnf7zy7jj092iv6jfbnb8bvnc5xjr3vx"))))
2348 (build-system perl-build-system)
2349 (inputs `(("gssapi" ,mit-krb5)))
2350 (arguments
2351 `(#:make-maker-flags
2352 `(,(string-append "--gssapiimpl=" (assoc-ref %build-inputs "gssapi")))))
2353 (home-page "http://search.cpan.org/dist/GSSAPI")
2354 (synopsis "Perl extension providing access to the GSSAPIv2 library")
2355 (description "This is a Perl extension for using GSSAPI C bindings as
2356described in RFC 2744.")
2f3108ad 2357 (license l:perl-license)))
9fe938c1 2358
c1b9e7e7
EB
2359(define-public perl-html-element-extended
2360 (package
2361 (name "perl-html-element-extended")
2362 (version "1.18")
2363 (source
2364 (origin
2365 (method url-fetch)
2366 (uri (string-append "mirror://cpan/authors/id/M/MS/MSISK/"
2367 "HTML-Element-Extended-" version ".tar.gz"))
2368 (sha256
2369 (base32
2370 "0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk"))))
2371 (build-system perl-build-system)
2372 (propagated-inputs
2373 `(("perl-html-tree" ,perl-html-tree)))
2374 (home-page "http://search.cpan.org/dist/HTML-Element-Extended")
2375 (synopsis "Manipulate tables of HTML::Element")
2376 (description
2377 "HTML::Element::Extended is a Perl extension for manipulating a table
2378composed of HTML::Element style components.")
2f3108ad 2379 (license l:perl-license)))
c1b9e7e7 2380
bab57fcd
EB
2381(define-public perl-html-form
2382 (package
2383 (name "perl-html-form")
2384 (version "6.03")
2385 (source
2386 (origin
2387 (method url-fetch)
2388 (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/"
2389 "HTML-Form-" version ".tar.gz"))
2390 (sha256
2391 (base32
2392 "0dpwr7yz6hjc3bcqgcbdzjjk9l58ycdjmbam9nfcmm85y2a1vh38"))))
2393 (build-system perl-build-system)
2394 (propagated-inputs
2395 `(("perl-html-parser" ,perl-html-parser)
2396 ("perl-html-tagset" ,perl-html-tagset)
2397 ("perl-http-message" ,perl-http-message)
2398 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
2399 ("perl-uri" ,perl-uri)))
2400 (home-page "http://search.cpan.org/dist/HTML-Form")
2401 (synopsis "Perl class representing an HTML form element")
2402 (description "Objects of the HTML::Form class represents a single HTML
2403<form> ... </form> instance.")
2f3108ad 2404 (license l:perl-license)))
bab57fcd 2405
4f0ee1b4
CB
2406(define-public perl-html-scrubber
2407 (package
2408 (name "perl-html-scrubber")
2409 (version "0.15")
2410 (source
2411 (origin
2412 (method url-fetch)
2413 (uri (string-append
2414 "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-"
2415 version
2416 ".tar.gz"))
2417 (sha256
2418 (base32
2419 "1m1f8gm2jry42zxja05dxp2ck7y66m7i8vc38nj6hccnwlby6cvi"))))
2420 (build-system perl-build-system)
2421 (native-inputs
2422 `(("perl-module-build" ,perl-module-build)
2423 ("perl-test-cpan-meta" ,perl-test-cpan-meta)
2424 ("perl-test-eol" ,perl-test-eol)
2425 ("perl-test-memory-cycle" ,perl-test-memory-cycle)
2426 ("perl-test-notabs" ,perl-test-notabs)))
2427 (inputs
2428 `(("perl-html-parser" ,perl-html-parser)))
2429 (home-page
2430 "http://search.cpan.org/dist/HTML-Scrubber")
2431 (synopsis
2432 "Perl extension for scrubbing/sanitizing html")
2433 (description
2434 "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML.")
2435 (license l:perl-license)))
2436
0cd2ab30
EB
2437(define-public perl-html-lint
2438 (package
2439 (name "perl-html-lint")
922814ae 2440 (version "2.26")
0cd2ab30
EB
2441 (source
2442 (origin
2443 (method url-fetch)
2444 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
2445 "HTML-Lint-" version ".tar.gz"))
2446 (sha256
2447 (base32
922814ae 2448 "02vi1s4sw3hjnndxd6s91cp54iw5pg8n5kl9v0109dfxzn1n9bnl"))))
0cd2ab30
EB
2449 (build-system perl-build-system)
2450 (propagated-inputs
2451 `(("perl-html-parser" ,perl-html-parser)
2452 ("perl-html-tagset" ,perl-html-tagset)
2453 ("perl-libwww" ,perl-libwww)))
2454 (home-page "http://search.cpan.org/dist/HTML-Lint")
2455 (synopsis "Check for HTML errors in a string or file")
2456 (description "HTML::Lint is a pure-Perl HTML parser and checker for
2457syntactic legitmacy.")
2458 (license l:artistic2.0)))
2459
9cf6c9fc
EB
2460(define-public perl-html-tableextract
2461 (package
2462 (name "perl-html-tableextract")
2463 (version "2.13")
2464 (source
2465 (origin
2466 (method url-fetch)
2467 (uri (string-append "https://cpan.metacpan.org/authors/id/M/MS/MSISK/"
2468 "HTML-TableExtract-" version ".tar.gz"))
2469 (sha256
2470 (base32
2471 "01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a"))))
2472 (build-system perl-build-system)
2473 (propagated-inputs
2474 `(("perl-html-element-extended" ,perl-html-element-extended)
2475 ("perl-html-parser" ,perl-html-parser)))
2476 (home-page "http://search.cpan.org/dist/HTML-TableExtract")
2477 (synopsis "Extract contents from HTML tables")
2478 (description
2479 "HTML::TableExtract is a Perl module for extracting the content contained
2480in tables within an HTML document, either as text or encoded element trees.")
2f3108ad 2481 (license l:perl-license)))
9cf6c9fc 2482
ddc36cd8
EB
2483(define-public perl-html-tree
2484 (package
2485 (name "perl-html-tree")
6106d195 2486 (version "5.07")
ddc36cd8
EB
2487 (source
2488 (origin
2489 (method url-fetch)
86d1e079 2490 (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/"
ddc36cd8
EB
2491 "HTML-Tree-" version ".tar.gz"))
2492 (sha256
2493 (base32
6106d195 2494 "1gyvm4qlwm9y6hczkpnrdfl303ggbybr0nqxdjw09hii8yw4sdzh"))))
ddc36cd8
EB
2495 (build-system perl-build-system)
2496 (native-inputs
a2190ccc
EB
2497 `(("perl-module-build" ,perl-module-build)
2498 ("perl-test-fatal" ,perl-test-fatal)))
ddc36cd8
EB
2499 (propagated-inputs
2500 `(("perl-html-parser" ,perl-html-parser)
2501 ("perl-html-tagset" ,perl-html-tagset)
2502 ("perl-libwww" ,perl-libwww)))
2503 (home-page "http://search.cpan.org/dist/HTML-Tree")
2504 (synopsis "Work with HTML in a DOM-like tree structure")
2505 (description "This distribution contains a suite of modules for
2506representing, creating, and extracting information from HTML syntax trees.")
2f3108ad 2507 (license l:perl-license)))
ddc36cd8 2508
8ec0d3fb
AE
2509(define-public perl-html-parser
2510 (package
2511 (name "perl-html-parser")
3700b27d 2512 (version "3.72")
8ec0d3fb
AE
2513 (source (origin
2514 (method url-fetch)
2515 (uri (string-append
2516 "mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-"
2517 version ".tar.gz"))
2518 (sha256
2519 (base32
3700b27d 2520 "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c"))))
8ec0d3fb
AE
2521 (build-system perl-build-system)
2522 (inputs
3700b27d
EF
2523 `(("perl-html-tagset" ,perl-html-tagset)
2524 ("perl-http-message" ,perl-http-message)))
2f3108ad 2525 (license l:perl-license)
8ec0d3fb
AE
2526 (synopsis "Perl HTML parser class")
2527 (description
2528 "Objects of the HTML::Parser class will recognize markup and separate
2529it from plain text (alias data content) in HTML documents. As different
2530kinds of markup and text are recognized, the corresponding event handlers
2531are invoked.")
2532 (home-page "http://search.cpan.org/~gaas/HTML-Parser/")))
ae2aa18d 2533
8142aff3 2534(define-public perl-html-tagset
ae2aa18d 2535 (package
8142aff3
EB
2536 (name "perl-html-tagset")
2537 (version "3.20")
ae2aa18d
AE
2538 (source (origin
2539 (method url-fetch)
2540 (uri (string-append
8142aff3 2541 "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-"
ae2aa18d
AE
2542 version ".tar.gz"))
2543 (sha256
2544 (base32
8142aff3 2545 "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd"))))
ae2aa18d 2546 (build-system perl-build-system)
2f3108ad 2547 (license l:perl-license)
8142aff3 2548 (synopsis "Perl data tables useful in parsing HTML")
ae2aa18d 2549 (description
8142aff3
EB
2550 "The HTML::Tagset module contains several data tables useful in various
2551kinds of HTML parsing operations.")
2552 (home-page "http://search.cpan.org/dist/HTML-Tagset/")))
fea5ebb1 2553
a05996e0
RW
2554(define-public perl-html-template
2555 (package
2556 (name "perl-html-template")
0762a1db 2557 (version "2.97")
a05996e0
RW
2558 (source (origin
2559 (method url-fetch)
0762a1db 2560 (uri (string-append "mirror://cpan/authors/id/S/SA/SAMTREGAR/"
a05996e0
RW
2561 "HTML-Template-" version ".tar.gz"))
2562 (sha256
2563 (base32
0762a1db 2564 "17qjw8swj2q4b1ic285pndgrkmvpsqw0j68nhqzpk1daydhsyiv5"))))
a05996e0 2565 (build-system perl-build-system)
a2190ccc
EB
2566 (propagated-inputs
2567 `(("perl-cgi" ,perl-cgi)))
a05996e0
RW
2568 (home-page "http://search.cpan.org/dist/HTML-Template")
2569 (synopsis "HTML-like templates")
2570 (description
2571 "This module attempts to make using HTML templates simple and natural.
2572It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},
2573@code{<TMPL_LOOP>}, @code{<TMPL_INCLUDE>}, @code{<TMPL_IF>},
2574@code{<TMPL_ELSE>} and @code{<TMPL_UNLESS>}. The file written with HTML and
2575these new tags is called a template. Using this module you fill in the values
2576for the variables, loops and branches declared in the template. This allows
2577you to separate design from the data.")
2f3108ad 2578 (license l:perl-license)))
a05996e0 2579
5ec8ec83
EB
2580(define-public perl-http-body
2581 (package
2582 (name "perl-http-body")
1bb8ca40 2583 (version "1.22")
5ec8ec83
EB
2584 (source
2585 (origin
2586 (method url-fetch)
2587 (uri (string-append "mirror://cpan/authors/id/G/GE/GETTY/"
2588 "HTTP-Body-" version ".tar.gz"))
2589 (sha256
2590 (base32
1bb8ca40 2591 "15vj488i62mdp4ps9k77h39prj70i7anb6b0j8nm7l9vbdc2q3gw"))))
5ec8ec83
EB
2592 (build-system perl-build-system)
2593 (native-inputs
2594 `(("perl-test-deep" ,perl-test-deep)))
2595 (propagated-inputs
2596 `(("perl-file-temp" ,perl-file-temp)
2597 ("perl-http-message" ,perl-http-message))) ;For HTTP::Headers
2598 (home-page "http://search.cpan.org/dist/HTTP-Body")
2599 (synopsis "HTTP Body Parser")
2600 (description "HTTP::Body parses chunks of HTTP POST data and supports
2601application/octet-stream, application/json, application/x-www-form-urlencoded,
2602and multipart/form-data.")
2f3108ad 2603 (license l:perl-license)))
5ec8ec83 2604
c8a316a3
EB
2605(define-public perl-http-cookiejar
2606 (package
2607 (name "perl-http-cookiejar")
1ade054c 2608 (version "0.008")
c8a316a3
EB
2609 (source
2610 (origin
2611 (method url-fetch)
2612 (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
2613 "HTTP-CookieJar-" version ".tar.gz"))
2614 (sha256
2615 (base32
1ade054c 2616 "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
c8a316a3
EB
2617 (build-system perl-build-system)
2618 (native-inputs
2619 `(("perl-test-deep" ,perl-test-deep)
2620 ("perl-test-requires" ,perl-test-requires)
1ade054c
EF
2621 ("perl-time-mock" ,perl-time-mock)
2622 ("perl-uri" ,perl-uri)))
c8a316a3
EB
2623 (inputs
2624 `(("perl-time-local" ,perl-time-local)
2625 ("perl-http-date" ,perl-http-date)))
2626 (home-page "http://search.cpan.org/dist/HTTP-CookieJar")
2627 (synopsis "Minimalist HTTP user agent cookie jar")
2628 (description "This module implements a minimalist HTTP user agent cookie
2629jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
2630 (license l:asl2.0)))
2631
8142aff3 2632(define-public perl-http-cookies
fea5ebb1 2633 (package
8142aff3 2634 (name "perl-http-cookies")
d284f018 2635 (version "6.04")
fea5ebb1
AE
2636 (source (origin
2637 (method url-fetch)
2638 (uri (string-append
8ff5b8aa 2639 "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-"
fea5ebb1
AE
2640 version ".tar.gz"))
2641 (sha256
2642 (base32
d284f018 2643 "1m0kxcirbvbkrm2c59p1bkbvzlcdymg8fdpa7wlxijlx0xwz1iqc"))))
fea5ebb1 2644 (build-system perl-build-system)
8142aff3
EB
2645 (propagated-inputs
2646 `(("perl-http-message" ,perl-http-message)))
2f3108ad 2647 (license l:perl-license)
8142aff3 2648 (synopsis "Perl HTTP cookie jars")
fea5ebb1 2649 (description
8142aff3
EB
2650 "The HTTP::Cookies class is for objects that represent a cookie jar,
2651that is, a database of all the HTTP cookies that a given LWP::UserAgent
2652object knows about.")
2653 (home-page "http://search.cpan.org/~gaas/HTTP-Cookies/")))
24b3c053 2654
8142aff3 2655(define-public perl-http-daemon
24b3c053 2656 (package
8142aff3
EB
2657 (name "perl-http-daemon")
2658 (version "6.01")
24b3c053
AE
2659 (source (origin
2660 (method url-fetch)
2661 (uri (string-append
8142aff3 2662 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-"
24b3c053
AE
2663 version ".tar.gz"))
2664 (sha256
2665 (base32
8142aff3 2666 "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
24b3c053 2667 (build-system perl-build-system)
8142aff3
EB
2668 (propagated-inputs
2669 `(("perl-http-message" ,perl-http-message)
2670 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
2f3108ad 2671 (license l:perl-license)
8142aff3 2672 (synopsis "Perl simple http server class")
24b3c053 2673 (description
8142aff3
EB
2674 "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen
2675on a socket for incoming requests. The HTTP::Daemon is a subclass of
2676IO::Socket::INET, so you can perform socket operations directly on it too.")
2677 (home-page "http://search.cpan.org/~gaas/HTTP-Daemon/")))
e426106b 2678
8142aff3 2679(define-public perl-http-date
e426106b 2680 (package
8142aff3
EB
2681 (name "perl-http-date")
2682 (version "6.02")
e426106b
AE
2683 (source (origin
2684 (method url-fetch)
2685 (uri (string-append
8142aff3 2686 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Date-"
e426106b
AE
2687 version ".tar.gz"))
2688 (sha256
2689 (base32
8142aff3 2690 "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8"))))
e426106b 2691 (build-system perl-build-system)
2f3108ad 2692 (license l:perl-license)
8142aff3 2693 (synopsis "Perl date conversion routines")
e426106b 2694 (description
8142aff3
EB
2695 "The HTTP::Date module provides functions that deal with date formats
2696used by the HTTP protocol (and then some more).")
2697 (home-page "http://search.cpan.org/~gaas/HTTP-Date/")))
91318a9e
AE
2698
2699(define-public perl-http-message
2700 (package
2701 (name "perl-http-message")
a8a7227b 2702 (version "6.11")
91318a9e
AE
2703 (source (origin
2704 (method url-fetch)
2705 (uri (string-append
084f8e04 2706 "mirror://cpan/authors/id/E/ET/ETHER/HTTP-Message-"
91318a9e
AE
2707 version ".tar.gz"))
2708 (sha256
2709 (base32
a8a7227b 2710 "06yq6cjx4vzl4if4ykap77xsrrd8aa7ish90k7cqi8g6g83nicz7"))))
91318a9e 2711 (build-system perl-build-system)
daee66fc 2712 (propagated-inputs
a8a7227b
EF
2713 `(("perl-encode-locale" ,perl-encode-locale)
2714 ("perl-http-date" ,perl-http-date)
d8450272
EB
2715 ("perl-io-html" ,perl-io-html)
2716 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
f852114e 2717 ("perl-uri" ,perl-uri)))
2f3108ad 2718 (license l:perl-license)
91318a9e
AE
2719 (synopsis "Perl HTTP style message")
2720 (description
2721 "An HTTP::Message object contains some headers and a content body.")
084f8e04 2722 (home-page "http://search.cpan.org/~ether/HTTP-Message/")))
b3d18aff 2723
8142aff3 2724(define-public perl-http-negotiate
b3d18aff 2725 (package
8142aff3 2726 (name "perl-http-negotiate")
b3d18aff
AE
2727 (version "6.01")
2728 (source (origin
2729 (method url-fetch)
2730 (uri (string-append
8142aff3 2731 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
b3d18aff
AE
2732 version ".tar.gz"))
2733 (sha256
2734 (base32
8142aff3 2735 "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
b3d18aff 2736 (build-system perl-build-system)
800de8da 2737 (propagated-inputs
f852114e 2738 `(("perl-http-message" ,perl-http-message)))
2f3108ad 2739 (license l:perl-license)
8142aff3 2740 (synopsis "Perl http content negotiation")
b3d18aff 2741 (description
8142aff3
EB
2742 "The HTTP::Negotiate module provides a complete implementation of the
2743HTTP content negotiation algorithm specified in
2744draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for
2745the selection of a preferred content representation based upon attributes
2746of the negotiable variants and the value of the various Accept* header
2747fields in the request.")
2748 (home-page "http://search.cpan.org/~gaas/HTTP-Negotiate/")))
3f41e6b3 2749
d3182b42
EB
2750(define-public perl-http-parser
2751 (package
2752 (name "perl-http-parser")
2753 (version "0.06")
2754 (source
2755 (origin
2756 (method url-fetch)
2757 (uri (string-append "mirror://cpan/authors/id/E/ED/EDECA/"
2758 "HTTP-Parser-" version ".tar.gz"))
2759 (sha256
2760 (base32
2761 "0idwq3jk595xil65lmxz128ha7s3r2n5zknisddpgwnqrghs3igq"))))
2762 (build-system perl-build-system)
2763 (propagated-inputs
2764 `(("perl-http-message" ,perl-http-message)
2765 ("perl-uri" ,perl-uri)))
2766 (home-page "http://search.cpan.org/dist/HTTP-Parser")
2767 (synopsis "Parse HTTP/1.1 requests")
2768 (description "This is an HTTP request parser. It takes chunks of text as
2769received and returns a 'hint' as to what is required, or returns the
2770HTTP::Request when a complete request has been read. HTTP/1.1 chunking is
2771supported.")
2f3108ad 2772 (license l:perl-license)))
d3182b42 2773
8ab39c2d
EB
2774(define-public perl-http-parser-xs
2775 (package
2776 (name "perl-http-parser-xs")
2777 (version "0.17")
2778 (source
2779 (origin
2780 (method url-fetch)
2781 (uri (string-append "mirror://cpan/authors/id/K/KA/KAZUHO/"
2782 "HTTP-Parser-XS-" version ".tar.gz"))
2783 (sha256
2784 (base32
2785 "02d84xq1mm53c7jl33qyb7v5w4372vydp74z6qj0vc96wcrnhkkr"))))
2786 (build-system perl-build-system)
9dab5017
MB
2787 (native-inputs
2788 `(("perl-module-install" ,perl-module-install)))
8ab39c2d
EB
2789 (home-page "http://search.cpan.org/dist/HTTP-Parser-XS")
2790 (synopsis "Fast HTTP request parser")
2791 (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
2792parser.")
2f3108ad 2793 (license l:perl-license)))
8ab39c2d 2794
724d2227
EB
2795(define-public perl-http-request-ascgi
2796 (package
2797 (name "perl-http-request-ascgi")
2798 (version "1.2")
2799 (source
2800 (origin
2801 (method url-fetch)
2802 (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
2803 "HTTP-Request-AsCGI-" version ".tar.gz"))
2804 (sha256
2805 (base32
2806 "1smwmiarwcgq7vjdblnb6ldi2x1s5sk5p15p7xvm5byiqq3znnwl"))))
2807 (build-system perl-build-system)
2808 (propagated-inputs
2809 `(("perl-class-accessor" ,perl-class-accessor)
2810 ("perl-http-message" ,perl-http-message)))
2811 (home-page "http://search.cpan.org/dist/HTTP-Request-AsCGI")
2812 (synopsis "Set up a CGI environment from an HTTP::Request")
2813 (description "This module provides a convenient way to set up a CGI
2814environment from an HTTP::Request.")
2f3108ad 2815 (license l:perl-license)))
724d2227 2816
c94c7eef
EB
2817(define-public perl-http-server-simple
2818 (package
2819 (name "perl-http-server-simple")
5b3646f1 2820 (version "0.51")
c94c7eef
EB
2821 (source
2822 (origin
2823 (method url-fetch)
08af1a42 2824 (uri (string-append "mirror://cpan/authors/id/B/BP/BPS/"
c94c7eef
EB
2825 "HTTP-Server-Simple-" version ".tar.gz"))
2826 (sha256
2827 (base32
5b3646f1 2828 "1yvd2g57z2kq00q5i3zzfi15k98qgbif3vghjsda6v612agmrp5r"))))
c94c7eef 2829 (build-system perl-build-system)
a2190ccc
EB
2830 (propagated-inputs
2831 `(("perl-cgi" ,perl-cgi)))
c94c7eef
EB
2832 (arguments
2833 ;; See the discussion of a related tests issue at
2834 ;; https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00346.html
23212bf9
LC
2835 `(#:tests? #f
2836
2837 #:phases (modify-phases %standard-phases
2838 (add-before 'configure 'set-search-path
2839 (lambda _
2840 ;; Work around "dotless @INC" build failure.
2841 (setenv "PERL5LIB"
2842 (string-append (getcwd) ":"
2843 (getenv "PERL5LIB")))
2844 #t)))))
c94c7eef
EB
2845 (home-page "http://search.cpan.org/dist/HTTP-Server-Simple")
2846 (synopsis "Lightweight HTTP server")
2847 (description "HTTP::Server::Simple is a simple standalone HTTP daemon with
2848no non-core module dependencies. It can be used for building a standalone
2849http-based UI to your existing tools.")
2f3108ad 2850 (license l:perl-license)))
c94c7eef 2851
c3c03beb
EB
2852(define-public perl-http-tiny
2853 (package
2854 (name "perl-http-tiny")
ee264bbf 2855 (version "0.070")
c3c03beb
EB
2856 (source
2857 (origin
2858 (method url-fetch)
2859 (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
2860 "HTTP-Tiny-" version ".tar.gz"))
2861 (sha256
2862 (base32
ee264bbf 2863 "0cvp5yqrni6qydpsa8fpkbm82zfwmy9js8jsvyj8gs3dx78qbwvl"))))
c3c03beb
EB
2864 (build-system perl-build-system)
2865 (inputs
2866 `(("perl-http-cookiejar" ,perl-http-cookiejar)
2867 ("perl-io-socket-ip" ,perl-io-socket-ip)
2868 ("perl-io-socket-ssl" ,perl-io-socket-ssl)
ee264bbf 2869 ("perl-mozilla-ca" ,perl-mozilla-ca)
c3c03beb
EB
2870 ("perl-net-ssleay" ,perl-net-ssleay)))
2871 (home-page "http://search.cpan.org/dist/HTTP-Tiny")
2872 (synopsis "HTTP/1.1 client")
2873 (description "This is a very simple HTTP/1.1 client, designed for doing
2874simple requests without the overhead of a large framework like LWP::UserAgent.
2875It supports proxies and redirection. It also correctly resumes after EINTR.")
2f3108ad 2876 (license l:perl-license)))
c3c03beb 2877
8142aff3 2878(define-public perl-io-html
3f41e6b3 2879 (package
8142aff3
EB
2880 (name "perl-io-html")
2881 (version "1.00")
3f41e6b3
AE
2882 (source (origin
2883 (method url-fetch)
2884 (uri (string-append
8142aff3 2885 "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
3f41e6b3
AE
2886 version ".tar.gz"))
2887 (sha256
2888 (base32
8142aff3 2889 "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
3f41e6b3 2890 (build-system perl-build-system)
2f3108ad 2891 (license l:perl-license)
8142aff3 2892 (synopsis "Perl module to open an HTML file with automatic charset detection")
3f41e6b3 2893 (description
8142aff3
EB
2894 "IO::HTML provides an easy way to open a file containing HTML while
2895automatically determining its encoding. It uses the HTML5 encoding sniffing
2896algorithm specified in section 8.2.2.1 of the draft standard.")
2897 (home-page "http://search.cpan.org/~cjm/IO-HTML/")))
e7444ee2 2898
2b63ebc1
EB
2899(define-public perl-io-socket-ip
2900 (package
2901 (name "perl-io-socket-ip")
2902 (version "0.36")
2903 (source
2904 (origin
2905 (method url-fetch)
2906 (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
2907 "IO-Socket-IP-" version ".tar.gz"))
2908 (sha256
2909 (base32
2910 "0ky20hmln6waipzqikizyw04vpszf70fgpshz7ib8zv8480ri456"))))
2911 (build-system perl-build-system)
a2190ccc 2912 (native-inputs `(("perl-module-build" ,perl-module-build)))
2b63ebc1
EB
2913 (home-page "http://search.cpan.org/dist/IO-Socket-IP")
2914 (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
2915 (description "This module provides a protocol-independent way to use IPv4
2916and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
2f3108ad 2917 (license l:perl-license)))
2b63ebc1 2918
8142aff3 2919(define-public perl-io-socket-ssl
e7444ee2 2920 (package
8142aff3 2921 (name "perl-io-socket-ssl")
c5776c87 2922 (version "2.038")
8142aff3
EB
2923 (source (origin
2924 (method url-fetch)
2925 (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
2926 "IO-Socket-SSL-" version ".tar.gz"))
2927 (sha256
2928 (base32
c5776c87 2929 "11fiifxyvn7njc9p52wgygyw24jz7rh7gnz2ikjphr4l4x9f03rx"))
fc1adab1
AK
2930 (patches (search-patches
2931 "perl-io-socket-ssl-openssl-1.0.2f-fix.patch"))))
8142aff3 2932 (build-system perl-build-system)
578aeea6 2933 (propagated-inputs
2934 `(("perl-net-ssleay" ,perl-net-ssleay)
2935 ;; for IDN support
2936 ("perl-uri" ,perl-uri)))
8142aff3
EB
2937 (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET")
2938 (description
2939 "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the
2940necessary functionality into the familiar IO::Socket interface and providing
2941secure defaults whenever possible. This way existing applications can be made
2942SSL-aware without much effort, at least if you do blocking I/O and don't use
2943select or poll.")
2f3108ad 2944 (license l:perl-license)
8142aff3
EB
2945 (home-page "https://github.com/noxxi/p5-io-socket-ssl")))
2946
2947(define-public perl-libwww
2948 (package
2949 (name "perl-libwww")
fb332b15 2950 (version "6.15")
e7444ee2
AE
2951 (source (origin
2952 (method url-fetch)
2953 (uri (string-append
bec820d9 2954 "mirror://cpan/authors/id/E/ET/ETHER/libwww-perl-"
e7444ee2
AE
2955 version ".tar.gz"))
2956 (sha256
2957 (base32
fb332b15 2958 "08l3mpgcvm4ipn1zggymqgk402apf35xyds43i8c07hvq92rsd3g"))))
e7444ee2 2959 (build-system perl-build-system)
d0bb5f77 2960 (propagated-inputs
8142aff3
EB
2961 `(("perl-encode-locale" ,perl-encode-locale)
2962 ("perl-file-listing" ,perl-file-listing)
2963 ("perl-html-parser" ,perl-html-parser)
2964 ("perl-http-cookies" ,perl-http-cookies)
2965 ("perl-http-daemon" ,perl-http-daemon)
fb332b15
EF
2966 ("perl-http-date" ,perl-http-date)
2967 ("perl-http-message" ,perl-http-message)
8142aff3
EB
2968 ("perl-http-negotiate" ,perl-http-negotiate)
2969 ("perl-net-http" ,perl-net-http)
fb332b15 2970 ("perl-uri" ,perl-uri)
8142aff3 2971 ("perl-www-robotrules" ,perl-www-robotrules)))
2f3108ad 2972 (license l:perl-license)
8142aff3 2973 (synopsis "Perl modules for the WWW")
e7444ee2 2974 (description
8142aff3
EB
2975 "The libwww-perl collection is a set of Perl modules which provides a
2976simple and consistent application programming interface to the
2977World-Wide Web. The main focus of the library is to provide classes
2978and functions that allow you to write WWW clients. The library also
2979contains modules that are of more general use and even classes that
2980help you implement simple HTTP servers.")
bec820d9 2981 (home-page "http://search.cpan.org/dist/libwww-perl/")))
a3eb919f 2982
efc8f7d0
P
2983(define-public perl-lwp-online
2984 (package
2985 (name "perl-lwp-online")
2986 (version "1.08")
2987 (source
2988 (origin
2989 (method url-fetch)
2990 (uri (string-append
2991 "mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-"
2992 version ".tar.gz"))
2993 (sha256
2994 (base32
2995 "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2"))))
2996 (build-system perl-build-system)
2997 (propagated-inputs
2998 `(("perl-libwww" ,perl-libwww)
2999 ("perl-uri" ,perl-uri)))
3000 (native-inputs
3001 `(("perl-module-install" ,perl-module-install)))
3002 (home-page "http://search.cpan.org/dist/LWP-Online/")
3003 (synopsis "Checks whether your process has access to the web")
3004 (description "This module attempts to answer, as accurately as it can, one
3005of the nastiest technical questions there is: am I on the internet?
3006
3007A host of networking and security issues make this problem very difficult.
3008There are firewalls, proxies (both well behaved and badly behaved). We might
3009not have DNS. We might not have a network card at all!")
3010 (license l:perl-license)))
3011
8142aff3 3012(define-public perl-lwp-mediatypes
a3eb919f 3013 (package
8142aff3 3014 (name "perl-lwp-mediatypes")
a3eb919f
AE
3015 (version "6.02")
3016 (source (origin
3017 (method url-fetch)
3018 (uri (string-append
8142aff3 3019 "mirror://cpan/authors/id/G/GA/GAAS/LWP-MediaTypes-"
a3eb919f
AE
3020 version ".tar.gz"))
3021 (sha256
3022 (base32
8142aff3 3023 "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q"))))
a3eb919f 3024 (build-system perl-build-system)
2f3108ad 3025 (license l:perl-license)
8142aff3 3026 (synopsis "Perl module to guess the media type for a file or a URL")
a3eb919f 3027 (description
8142aff3
EB
3028 "The LWP::MediaTypes module provides functions for handling media (also
3029known as MIME) types and encodings. The mapping from file extensions to
3030media types is defined by the media.types file. If the ~/.media.types file
3031exists it is used instead.")
3032 (home-page "http://search.cpan.org/~gaas/LWP-MediaTypes/")))
677078b4 3033
bdcfd18e
EB
3034(define-public perl-lwp-protocol-https
3035 (package
3036 (name "perl-lwp-protocol-https")
3037 (version "6.06")
3038 (source
3039 (origin
3040 (method url-fetch)
3041 (uri (string-append "mirror://cpan/authors/id/M/MS/MSCHILLI/"
3042 "LWP-Protocol-https-" version ".tar.gz"))
3043 (sha256
3044 (base32
3045 "1vxdjqj4bwq56m9h1bqqwkk3c6jr76f2zqzvwa26yjng3p686v5q"))))
3046 (build-system perl-build-system)
3047 (propagated-inputs
3048 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
3049 ("perl-libwww" ,perl-libwww)
3050 ;; Users should instead make sure SSL_ca_path is set properly.
3051 ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
3052 ("perl-net-http" ,perl-net-http)))
3053 (home-page "http://search.cpan.org/dist/LWP-Protocol-https")
3054 (synopsis "HTTPS support for LWP::UserAgent")
3055 (description "The LWP::Protocol::https module provides support for using
3056https schemed URLs with LWP.")
2f3108ad 3057 (license l:perl-license)))
bdcfd18e 3058
6a58b092
EB
3059(define-public perl-lwp-useragent-determined
3060 (package
3061 (name "perl-lwp-useragent-determined")
3062 (version "1.07")
3063 (source
3064 (origin
3065 (method url-fetch)
3066 (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/"
3067 "LWP-UserAgent-Determined-" version ".tar.gz"))
3068 (sha256
3069 (base32
3070 "0lyvbpjng7yfvyha9rp2y2c6liz5hhplmd2grc8jlsfkih7dbn06"))))
3071 (build-system perl-build-system)
3072 (propagated-inputs
3073 `(("perl-libwww" ,perl-libwww)))
3074 (home-page "http://search.cpan.org/dist/LWP-UserAgent-Determined")
3075 (synopsis "Virtual browser that retries errors")
3076 (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
3077except that when you use it to get a web page but run into a
3078possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds
3079and retry a few times.")
2f3108ad 3080 (license l:perl-license)))
6a58b092 3081
38e62c81
EB
3082(define-public perl-net-amazon-s3
3083 (package
3084 (name "perl-net-amazon-s3")
3085 (version "0.60")
3086 (source
3087 (origin
3088 (method url-fetch)
3089 (uri (string-append "mirror://cpan/authors/id/P/PF/PFIG/"
3090 "Net-Amazon-S3-" version ".tar.gz"))
3091 (sha256
3092 (base32
3093 "10dcsq4s2kc9cb1vccx17r187c81drirc3s1hbxh3rb8489kg2b2"))
fc1adab1
AK
3094 (patches (search-patches
3095 "perl-net-amazon-s3-moose-warning.patch"))))
38e62c81
EB
3096 (build-system perl-build-system)
3097 (native-inputs
3098 `(("perl-libwww" ,perl-libwww)
3099 ("perl-test-exception" ,perl-test-exception)))
3100 (propagated-inputs
3101 `(("perl-data-stream-bulk" ,perl-data-stream-bulk)
3102 ("perl-datetime-format-http" ,perl-datetime-format-http)
3103 ("perl-digest-hmac" ,perl-digest-hmac)
3104 ("perl-digest-md5-file" ,perl-digest-md5-file)
3105 ("perl-file-find-rule" ,perl-file-find-rule)
3106 ("perl-http-date" ,perl-http-date)
3107 ("perl-http-message" ,perl-http-message)
3108 ("perl-lwp-useragent-determined" ,perl-lwp-useragent-determined)
3109 ("perl-mime-types" ,perl-mime-types)
3110 ("perl-moose" ,perl-moose)
3111 ("perl-moosex-strictconstructor" ,perl-moosex-strictconstructor)
3112 ("perl-moosex-types-datetime-morecoercions"
3113 ,perl-moosex-types-datetime-morecoercions)
3114 ("perl-path-class" ,perl-path-class)
3115 ("perl-regexp-common" ,perl-regexp-common)
3116 ("perl-term-encoding" ,perl-term-encoding)
3117 ("perl-term-progressbar-simple" ,perl-term-progressbar-simple)
3118 ("perl-uri" ,perl-uri)
3119 ("perl-xml-libxml" ,perl-xml-libxml)))
3120 (home-page "http://search.cpan.org/dist/Net-Amazon-S3")
3121 (synopsis "Perl interface to Amazon S3")
3122 (description "This module provides a Perlish interface to Amazon S3.")
2f3108ad 3123 (license l:perl-license)))
38e62c81 3124
677078b4
AE
3125(define-public perl-net-http
3126 (package
3127 (name "perl-net-http")
0eb3b5bd 3128 (version "6.07")
677078b4
AE
3129 (source (origin
3130 (method url-fetch)
3131 (uri (string-append
0eb3b5bd 3132 "mirror://cpan/authors/id/M/MS/MSCHILLI/Net-HTTP-"
677078b4
AE
3133 version ".tar.gz"))
3134 (sha256
3135 (base32
0eb3b5bd 3136 "0r034hhci0yqbrkrh1gv6vi5g3i0kpd1k84z62nk02asb8rf0ccz"))))
677078b4 3137 (build-system perl-build-system)
0eb3b5bd
EB
3138 (propagated-inputs
3139 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
3140 ("perl-uri" ,perl-uri)))
2f3108ad 3141 (license l:perl-license)
677078b4
AE
3142 (synopsis "Perl low-level HTTP connection (client)")
3143 (description
3144 "The Net::HTTP class is a low-level HTTP client. An instance of the
3145Net::HTTP class represents a connection to an HTTP server. The HTTP protocol
3146is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and
3147HTTP/1.1.")
0eb3b5bd 3148 (home-page "http://search.cpan.org/dist/Net-HTTP")))
56aa03b0 3149
be22d5fc
EB
3150(define-public perl-net-server
3151 (package
3152 (name "perl-net-server")
7eb09e39 3153 (version "2.009")
be22d5fc
EB
3154 (source
3155 (origin
3156 (method url-fetch)
3157 (uri (string-append "mirror://cpan/authors/id/R/RH/RHANDOM/"
3158 "Net-Server-" version ".tar.gz"))
3159 (sha256
3160 (base32
7eb09e39 3161 "0gw1k9gcw7habbkxvsfa2gz34brlbwcidk6khgsf1qjm0dbccrw2"))))
be22d5fc
EB
3162 (build-system perl-build-system)
3163 (home-page "http://search.cpan.org/dist/Net-Server")
3164 (synopsis "Extensible Perl server engine")
3165 (description "Net::Server is an extensible, generic Perl server engine.
3166It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
3167It includes with it the ability to run as an inetd
3168process (Net::Server::INET), a single connection server (Net::Server or
3169Net::Server::Single), a forking server (Net::Server::Fork), a preforking
3170server which maintains a constant number of preforked
3171children (Net::Server::PreForkSimple), or as a managed preforking server which
3172maintains the number of children based on server load (Net::Server::PreFork).
3173In all but the inetd type, the server provides the ability to connect to one
3174or to multiple server ports.")
2f3108ad 3175 (license l:perl-license)))
be22d5fc 3176
b1096f3d
EB
3177(define-public perl-net-smtp-ssl
3178 (package
3179 (name "perl-net-smtp-ssl")
3180 (version "1.03")
3181 (source
3182 (origin
3183 (method url-fetch)
21085261 3184 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
b1096f3d
EB
3185 "Net-SMTP-SSL-" version ".tar.gz"))
3186 (sha256
21085261
EF
3187 (base32
3188 "05y94mb1vdw32mvwb0cp2h4ggh32f8j8nwwfjb8kjwxvfkfhyp9h"))))
b1096f3d
EB
3189 (build-system perl-build-system)
3190 (propagated-inputs
3191 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
3192 (home-page "http://search.cpan.org/dist/Net-SMTP-SSL")
3193 (synopsis "SSL support for Net::SMTP")
e881752c 3194 (description "SSL support for Net::SMTP.")
2f3108ad 3195 (license l:perl-license)))
b1096f3d 3196
5933549d
EB
3197(define-public perl-plack
3198 (package
3199 (name "perl-plack")
3200 (version "1.0033")
3201 (source
3202 (origin
3203 (method url-fetch)
3204 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
3205 "Plack-" version ".tar.gz"))
3206 (sha256
3207 (base32
3208 "081jg0xddzpg2anmqi9i6d7vs6c8z7k557bf8xl6vgb3h95pin5w"))))
3209 (build-system perl-build-system)
3210 (native-inputs
3211 `(("perl-test-requires" ,perl-test-requires)
3212 ("perl-file-sharedir-install" ,perl-file-sharedir-install)))
3213 (propagated-inputs
3214 `(("perl-apache-logformat-compiler" ,perl-apache-logformat-compiler)
3215 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
3216 ("perl-devel-stacktrace-ashtml" ,perl-devel-stacktrace-ashtml)
3217 ("perl-file-sharedir" ,perl-file-sharedir)
3218 ("perl-hash-multivalue" ,perl-hash-multivalue)
3219 ("perl-http-body" ,perl-http-body)
3220 ("perl-http-message" ,perl-http-message)
3221 ("perl-http-tiny" ,perl-http-tiny)
3222 ("perl-libwww" ,perl-libwww)
3223 ("perl-stream-buffered" ,perl-stream-buffered)
3224 ("perl-test-tcp" ,perl-test-tcp)
3225 ("perl-try-tiny" ,perl-try-tiny)
3226 ("perl-uri" ,perl-uri)))
3227 (home-page "http://search.cpan.org/dist/Plack")
3228 (synopsis "Perl Superglue for Web frameworks and servers (PSGI toolkit)")
3229 (description "Plack is a set of tools for using the PSGI stack. It
3230contains middleware components, a reference server, and utilities for Web
3231application frameworks. Plack is like Ruby's Rack or Python's Paste for
3232WSGI.")
2f3108ad 3233 (license l:perl-license)))
5933549d 3234
acd1f73a
EB
3235(define-public perl-plack-middleware-fixmissingbodyinredirect
3236 (package
3237 (name "perl-plack-middleware-fixmissingbodyinredirect")
3238 (version "0.12")
3239 (source
3240 (origin
3241 (method url-fetch)
3242 (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
3243 "Plack-Middleware-FixMissingBodyInRedirect-"
3244 version ".tar.gz"))
3245 (sha256
3246 (base32
3247 "14dkrmccq7a5vpymx5dv8032gfcvhsw2i6v5sh3c4ym5ymlx08kc"))))
3248 (build-system perl-build-system)
3249 (native-inputs
3250 `(("perl-html-parser" ,perl-html-parser) ;for HTML::Entities
3251 ("perl-http-message" ,perl-http-message)
3252 ("perl-plack" ,perl-plack))) ;for Plack::Test
3253 (home-page
3254 "http://search.cpan.org/dist/Plack-Middleware-FixMissingBodyInRedirect")
3255 (synopsis "Plack::Middleware which sets body for redirect response")
3256 (description "This module sets the body in redirect response, if it's not
3257already set.")
2f3108ad 3258 (license l:perl-license)))
acd1f73a 3259
03d874d0
EB
3260(define-public perl-plack-middleware-methodoverride
3261 (package
3262 (name "perl-plack-middleware-methodoverride")
3263 (version "0.11")
3264 (source
3265 (origin
3266 (method url-fetch)
3267 (uri (string-append "mirror://cpan/authors/id/D/DW/DWHEELER/"
3268 "Plack-Middleware-MethodOverride-"
3269 version ".tar.gz"))
3270 (sha256
3271 (base32
3272 "1hb8dx7i4vs74n0p737wrvpdnnw6argxrjpr6kj6432zabp8325z"))))
3273 (build-system perl-build-system)
a2190ccc
EB
3274 (native-inputs
3275 `(("perl-module-build" ,perl-module-build)))
03d874d0
EB
3276 (propagated-inputs
3277 `(("perl-plack" ,perl-plack)))
3278 (home-page "http://search.cpan.org/dist/Plack-Middleware-MethodOverride")
3279 (synopsis "Override REST methods to Plack apps via POST")
3280 (description "This middleware allows for POST requests that pretend to be
3281something else: by adding either a header named X-HTTP-Method-Override to the
3282request, or a query parameter named x-tunneled-method to the URI, the client
3283can say what method it actually meant.")
2f3108ad 3284 (license l:perl-license)))
03d874d0 3285
13e330be
EB
3286(define-public perl-plack-middleware-removeredundantbody
3287 (package
3288 (name "perl-plack-middleware-removeredundantbody")
3289 (version "0.05")
3290 (source
3291 (origin
3292 (method url-fetch)
3293 (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
3294 "Plack-Middleware-RemoveRedundantBody-"
3295 version ".tar.gz"))
3296 (sha256
3297 (base32
3298 "1n3wm0zi8dnk54jx937asl951lslj3jvw0fry4jpzsibg4f6wrx0"))))
3299 (build-system perl-build-system)
3300 (propagated-inputs
3301 `(("perl-plack" ,perl-plack)))
3302 (home-page
3303 "http://search.cpan.org/dist/Plack-Middleware-RemoveRedundantBody")
3304 (synopsis "Plack::Middleware which removes body for HTTP response")
3305 (description "This module removes the body in an HTTP response if it's not
3306required.")
2f3108ad 3307 (license l:perl-license)))
13e330be 3308
ca157ba9
EB
3309(define-public perl-plack-middleware-reverseproxy
3310 (package
3311 (name "perl-plack-middleware-reverseproxy")
3312 (version "0.15")
3313 (source
3314 (origin
3315 (method url-fetch)
3316 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
3317 "Plack-Middleware-ReverseProxy-"
3318 version ".tar.gz"))
3319 (sha256
3320 (base32
3321 "1zmsccdy6wr5hxzj07r1nsmaymyibk87p95z0wzknjw10lwmqs9f"))))
3322 (build-system perl-build-system)
55cca6ac
MB
3323 (native-inputs
3324 `(("perl-module-install" ,perl-module-install)))
ca157ba9
EB
3325 (propagated-inputs
3326 `(("perl-plack" ,perl-plack)))
3327 (home-page "http://search.cpan.org/dist/Plack-Middleware-ReverseProxy")
3328 (synopsis "Supports app to run as a reverse proxy backend")
3329 (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
3330which are changed by reverse-proxy. You can specify the reverse proxy address
3331and stop fake requests using 'enable_if' directive in your app.psgi.")
2f3108ad 3332 (license l:perl-license)))
ca157ba9 3333
64b16bf7
EB
3334(define-public perl-plack-test-externalserver
3335 (package
3336 (name "perl-plack-test-externalserver")
3337 (version "0.01")
3338 (source
3339 (origin
3340 (method url-fetch)
3341 (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
3342 "Plack-Test-ExternalServer-" version ".tar.gz"))
3343 (sha256
3344 (base32
3345 "1dbg1p3rgvvbkkpvca5jlc2mzx8iqyiybk88al93pvbca65h1g7h"))))
3346 (build-system perl-build-system)
3347 (propagated-inputs
3348 `(("perl-plack" ,perl-plack)))
3349 (home-page "http://search.cpan.org/dist/Plack-Test-ExternalServer")
3350 (synopsis "Run HTTP tests on external live servers")
3351 (description "This module allows your to run your Plack::Test tests
3352against an external server instead of just against a local application through
3353either mocked HTTP or a locally spawned server.")
2f3108ad 3354 (license l:perl-license)))
64b16bf7 3355
bb8bfe5e
EB
3356(define-public perl-test-tcp
3357 (package
3358 (name "perl-test-tcp")
3359 (version "2.06")
3360 (source
3361 (origin
3362 (method url-fetch)
3363 (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/"
3364 "Test-TCP-" version ".tar.gz"))
3365 (sha256
3366 (base32
3367 "0acjwm21y2an4f3fasci9qa0isakh9cgp74fk0bzcdi506xmcjbi"))))
3368 (build-system perl-build-system)
3369 (propagated-inputs
3370 `(("perl-test-sharedfork" ,perl-test-sharedfork)))
3371 (arguments `(#:tests? #f)) ;related to signaling in t/05_sigint.t
3372 (home-page "http://search.cpan.org/dist/Test-TCP")
3373 (synopsis "Testing TCP programs")
3374 (description "Test::TCP is test utilities for TCP/IP programs.")
2f3108ad 3375 (license l:perl-license)))
bb8bfe5e 3376
0d991d2c
EB
3377(define-public perl-test-www-mechanize
3378 (package
3379 (name "perl-test-www-mechanize")
303c6858 3380 (version "1.48")
0d991d2c
EB
3381 (source
3382 (origin
3383 (method url-fetch)
3384 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
3385 "Test-WWW-Mechanize-" version ".tar.gz"))
3386 (sha256
3387 (base32
303c6858 3388 "1d11fx9155d5v17d5w7q3kj37b01l8yj2yb0g6b0z1vh938rrlcr"))))
0d991d2c
EB
3389 (build-system perl-build-system)
3390 (native-inputs
3391 `(("perl-test-exception" ,perl-test-exception)))
2f837cf7
MB
3392 (native-inputs
3393 `(("perl-module-install" ,perl-module-install)))
0d991d2c
EB
3394 (propagated-inputs
3395 `(("perl-carp-assert-more" ,perl-carp-assert-more)
3396 ("perl-html-form" ,perl-html-form)
3397 ("perl-html-lint" ,perl-html-lint)
3398 ("perl-html-tree" ,perl-html-tree)
3399 ("perl-http-server-simple" ,perl-http-server-simple)
3400 ("perl-libwww" ,perl-libwww)
3401 ("perl-test-longstring" ,perl-test-longstring)
3402 ("perl-www-mechanize" ,perl-www-mechanize)))
3403 (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize")
3404 (synopsis "Testing-specific WWW::Mechanize subclass")
3405 (description "Test::WWW::Mechanize is a subclass of the Perl module
3406WWW::Mechanize that incorporates features for web application testing.")
3407 (license l:artistic2.0)))
3408
13b2552c
EB
3409(define-public perl-test-www-mechanize-catalyst
3410 (package
3411 (name "perl-test-www-mechanize-catalyst")
3412 (version "0.60")
3413 (source
3414 (origin
3415 (method url-fetch)
3416 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
3417 "Test-WWW-Mechanize-Catalyst-" version ".tar.gz"))
3418 (sha256
3419 (base32
3420 "0nhhfrrai3ndziz873vpa1j0vljjnib4wqafd6yyvkf58ad7v0lv"))))
3421 (build-system perl-build-system)
3422 (native-inputs
3423 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
3424 ("perl-catalyst-plugin-session-state-cookie"
3425 ,perl-catalyst-plugin-session-state-cookie)
2f837cf7 3426 ("perl-module-install" ,perl-module-install)
13b2552c
EB
3427 ("perl-test-exception" ,perl-test-exception)
3428 ("perl-test-pod" ,perl-test-pod)
3429 ("perl-test-utf8" ,perl-test-utf8)))
3430 (propagated-inputs
3431 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
3432 ("perl-class-load" ,perl-class-load)
3433 ("perl-libwww" ,perl-libwww)
3434 ("perl-moose" ,perl-moose)
3435 ("perl-namespace-clean" ,perl-namespace-clean)
3436 ("perl-test-www-mechanize" ,perl-test-www-mechanize)
3437 ("perl-www-mechanize" ,perl-www-mechanize)))
3438 (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-Catalyst")
3439 (synopsis "Test::WWW::Mechanize for Catalyst")
3440 (description "The Test::WWW::Mechanize::Catalyst module meshes the
3441Test::WWW:Mechanize module and the Catalyst web application framework to allow
3442testing of Catalyst applications without needing to start up a web server.")
2f3108ad 3443 (license l:perl-license)))
13b2552c 3444
715a0c51
EB
3445(define-public perl-test-www-mechanize-psgi
3446 (package
3447 (name "perl-test-www-mechanize-psgi")
be03120d 3448 (version "0.37")
715a0c51
EB
3449 (source
3450 (origin
3451 (method url-fetch)
d298e765 3452 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
715a0c51
EB
3453 "Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
3454 (sha256
3455 (base32
be03120d 3456 "0c9a9w0d2whadnrich7f09w37fgq5hws4gq04zgz4jsdjcvr3qv2"))))
715a0c51
EB
3457 (build-system perl-build-system)
3458 (native-inputs
3459 `(("perl-test-pod" ,perl-test-pod)))
3460 (propagated-inputs
3461 `(("perl-plack" ,perl-plack)
3462 ("perl-test-www-mechanize" ,perl-test-www-mechanize)))
3463 (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-PSGI")
3464 (synopsis "Test PSGI programs using WWW::Mechanize")
3465 (description "PSGI is a specification to decouple web server environments
3466from web application framework code. Test::WWW::Mechanize is a subclass of
3467WWW::Mechanize that incorporates features for web application testing. The
3468Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI
3469applications.")
2f3108ad 3470 (license l:perl-license)))
715a0c51 3471
8142aff3 3472(define-public perl-uri
374a9a85 3473 (package
8142aff3 3474 (name "perl-uri")
01497dfe 3475 (version "1.71")
374a9a85
AE
3476 (source (origin
3477 (method url-fetch)
9acf97f2
EB
3478 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
3479 "URI-" version ".tar.gz"))
374a9a85
AE
3480 (sha256
3481 (base32
01497dfe 3482 "05a1ck1bhvqkkk690xhsxf7276dnagk96qkh2jy4prrrgw6wm3lw"))))
374a9a85 3483 (build-system perl-build-system)
2f3108ad 3484 (license l:perl-license)
8142aff3 3485 (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
374a9a85 3486 (description
8142aff3
EB
3487 "The URI module implements the URI class. Objects of this class
3488represent \"Uniform Resource Identifier references\" as specified in RFC 2396
3489and updated by RFC 2732.")
9acf97f2 3490 (home-page "http://search.cpan.org/dist/URI/")))
d22d72fc 3491
b51b2bf3 3492(define-public perl-uri-fetch
3493 (package
3494 (name "perl-uri-fetch")
3495 (version "0.13")
3496 (source (origin
3497 (method url-fetch)
3498 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
3499 "URI-Fetch-" version ".tar.gz"))
3500 (sha256
3501 (base32
3502 "0rw6xiqm70s218aii9id3hf8j3pz6n22xnwd8v9m1ff2bnh63c0d"))))
3503 (build-system perl-build-system)
3504 (arguments
3505 `(#:tests? #f)) ; Tests require internet connection to succeed
3506 (inputs
3507 `(("perl-class-errorhandler" ,perl-class-errorhandler)
3508 ("perl-libwww" ,perl-libwww)
3509 ("perl-uri" ,perl-uri)))
3510 (home-page "http://search.cpan.org/dist/URI-Fetch")
3511 (synopsis "Smart URI fetching/caching")
3512 (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
3513notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
3514and time-saving way.")
2f3108ad 3515 (license l:perl-license)))
b51b2bf3 3516
5bb82fd0
EB
3517(define-public perl-uri-find
3518 (package
3519 (name "perl-uri-find")
c2d1b935 3520 (version "20160806")
5bb82fd0
EB
3521 (source
3522 (origin
3523 (method url-fetch)
3524 (uri (string-append "mirror://cpan/authors/id/M/MS/MSCHWERN/"
3525 "URI-Find-" version ".tar.gz"))
3526 (sha256
3527 (base32
c2d1b935 3528 "1mk3jv8x0mcq3ajrn9garnxd0jc7sw4pkwqi88r5apqvlljs84z2"))))
5bb82fd0 3529 (build-system perl-build-system)
a2190ccc
EB
3530 (native-inputs
3531 `(("perl-module-build" ,perl-module-build)))
5bb82fd0
EB
3532 (propagated-inputs
3533 `(("perl-uri" ,perl-uri)))
3534 (home-page "http://search.cpan.org/dist/URI-Find")
3535 (synopsis "Find URIs in arbitrary text")
3536 (description "This module finds URIs and URLs (according to what URI.pm
3537considers a URI) in plain text. It only finds URIs which include a
3538scheme (http:// or the like), for something a bit less strict, consider
3539URI::Find::Schemeless. For a command-line interface, urifind is provided.")
2f3108ad 3540 (license l:perl-license)))
5bb82fd0 3541
36a100a1
EB
3542(define-public perl-uri-ws
3543 (package
3544 (name "perl-uri-ws")
3545 (version "0.03")
3546 (source
3547 (origin
3548 (method url-fetch)
3549 (uri (string-append "mirror://cpan/authors/id/P/PL/PLICEASE/"
3550 "URI-ws-" version ".tar.gz"))
3551 (sha256
3552 (base32
3553 "1vs1wm80sq685944g1l4a0fxcbccc00c0f9648yabdmcf90hwsvf"))))
3554 (build-system perl-build-system)
3555 (propagated-inputs
3556 `(("perl-uri" ,perl-uri)))
3557 (home-page "http://search.cpan.org/dist/URI-ws")
3558 (synopsis "WebSocket support for URI package")
3559 (description "With this module, the URI package provides the same set of
3560methods for WebSocket URIs as it does for HTTP URIs.")
2f3108ad 3561 (license l:perl-license)))
36a100a1 3562
105d4ee2 3563(define-public perl-uri-template
3564 (package
3565 (name "perl-uri-template")
3566 (version "0.22")
3567 (source (origin
3568 (method url-fetch)
3569 (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-"
3570 version ".tar.gz"))
3571 (sha256
3572 (base32
3573 "08kjjb4c0v9gqfrfnj1wkivylxl05finn11ra64dj136fhmnyrbg"))))
3574 (build-system perl-build-system)
3575 (inputs
3576 `(("perl-uri" ,perl-uri)))
3577 (native-inputs
3578 `(("perl-test-pod-coverage" ,perl-test-pod-coverage)
3579 ("perl-test-pod" ,perl-test-pod)
9dab5017 3580 ("perl-module-install" ,perl-module-install)
105d4ee2 3581 ("perl-json" ,perl-json)))
3582 (home-page "http://search.cpan.org/dist/URI-Template")
3583 (synopsis "Object for handling URI templates")
3584 (description "This perl module provides a wrapper around URI templates as described in
3585RFC 6570.")
2f3108ad 3586 (license l:perl-license)))
105d4ee2 3587
d22d72fc
LC
3588(define-public perl-www-curl
3589 (package
3590 (name "perl-www-curl")
3591 (version "4.17")
3592 (source (origin
3593 (method url-fetch)
3594 (uri (string-append
3595 "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-"
3596 version".tar.gz"))
a19da406 3597 (patches (search-patches "perl-www-curl-remove-symbol.patch"))
d22d72fc
LC
3598 (sha256
3599 (base32
3600 "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj"))))
3601 (build-system perl-build-system)
3602 (arguments
a56bf101
LC
3603 '(#:tests? #f ;XXX: tests require network access
3604
3605 #:phases (modify-phases %standard-phases
3606 (add-before 'configure 'set-search-path
3607 (lambda _
3608 ;; Work around "dotless @INC" build failure.
3609 (setenv "PERL5LIB"
3610 (string-append (getcwd) ":"
3611 (getenv "PERL5LIB")))
3612 #t)))))
9dab5017
MB
3613 (native-inputs
3614 `(("perl-module-install" ,perl-module-install)))
d22d72fc
LC
3615 (inputs `(("curl" ,curl)))
3616 (synopsis "Perl extension interface for libcurl")
3617 (description
3618 "This is a Perl extension interface for the libcurl file downloading
3619library.")
2f3108ad 3620 (license l:perl-license)
d22d72fc 3621 (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm")))
3484d052 3622
0b1ed725
EB
3623(define-public perl-www-mechanize
3624 (package
3625 (name "perl-www-mechanize")
68d5906c 3626 (version "1.86")
0b1ed725
EB
3627 (source
3628 (origin
3629 (method url-fetch)
128c9b92 3630 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
0b1ed725
EB
3631 "WWW-Mechanize-" version ".tar.gz"))
3632 (sha256
3633 (base32
68d5906c 3634 "0sfl6b7mx8nannnh3ys5jk44d1s1b2d1mffrnrphkzzykaw6hm0f"))))
0b1ed725 3635 (build-system perl-build-system)
a2190ccc 3636 (native-inputs ;only for tests
68d5906c
MB
3637 `(("perl-cgi" ,perl-cgi)
3638 ("perl-test-deep" ,perl-test-deep)
3639 ("perl-test-fatal" ,perl-test-fatal)
3640 ("perl-test-output" ,perl-test-output)
3641 ("perl-test-warnings" ,perl-test-warnings)))
0b1ed725
EB
3642 (propagated-inputs
3643 `(("perl-html-form" ,perl-html-form)
3644 ("perl-html-parser" ,perl-html-parser)
68d5906c 3645 ("perl-html-tree" ,perl-html-tree)
0b1ed725
EB
3646 ("perl-http-message" ,perl-http-message)
3647 ("perl-http-server-simple" ,perl-http-server-simple)
3648 ("perl-libwww" ,perl-libwww)
3649 ("perl-test-warn" ,perl-test-warn)
3650 ("perl-uri" ,perl-uri)))
3651 (home-page "http://search.cpan.org/dist/WWW-Mechanize")
3652 (synopsis "Web browsing in a Perl object")
3653 (description "WWW::Mechanize is a Perl module for stateful programmatic
3654web browsing, used for automating interaction with websites.")
2f3108ad 3655 (license l:perl-license)))
0b1ed725 3656
823c8292 3657(define-public perl-www-opensearch
3658 (package
3659 (name "perl-www-opensearch")
3660 (version "0.17")
3661 (source (origin
3662 (method url-fetch)
3663 (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/"
3664 "WWW-OpenSearch-" version ".tar.gz"))
3665 (sha256
3666 (base32
3667 "1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb"))))
3668 (build-system perl-build-system)
88d5889c 3669 (native-inputs
3fe666aa
MB
3670 `(("perl-class-errorhandler" ,perl-class-errorhandler)
3671 ("perl-datetime" ,perl-datetime)
3672 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
3673 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
3674 ("perl-feed-find" ,perl-feed-find)
3675 ("perl-module-install" ,perl-module-install)
3676 ("perl-module-pluggable" ,perl-module-pluggable)
3677 ("perl-uri-fetch" ,perl-uri-fetch)
3678 ("perl-test-simple" ,perl-test-simple)
3679 ("perl-xml-atom" ,perl-xml-atom)
3680 ("perl-xml-rss" ,perl-xml-rss)))
823c8292 3681 (inputs
3682 `(("perl-data-page" ,perl-data-page)
3683 ("perl-libwww" ,perl-libwww)
3684 ("perl-uri" ,perl-uri)
3685 ("perl-uri-template" ,perl-uri-template)
3686 ("perl-xml-feed" ,perl-xml-feed)
3687 ("perl-xml-libxml" ,perl-xml-libxml)))
3688 (home-page "http://search.cpan.org/dist/WWW-OpenSearch")
3689 (synopsis "Search A9 OpenSearch compatible engines")
3690 (description
3691 "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
3692http://opensearch.a9.com} compatible search engines.")
2f3108ad 3693 (license l:perl-license)))
823c8292 3694
8142aff3 3695(define-public perl-www-robotrules
3484d052 3696 (package
8142aff3
EB
3697 (name "perl-www-robotrules")
3698 (version "6.02")
3484d052 3699 (source (origin
8142aff3
EB
3700 (method url-fetch)
3701 (uri (string-append
3702 "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-"
3703 version ".tar.gz"))
3704 (sha256
3705 (base32
3706 "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6"))))
3484d052 3707 (build-system perl-build-system)
8142aff3
EB
3708 (propagated-inputs
3709 `(("perl-uri" ,perl-uri)))
2f3108ad 3710 (license l:perl-license)
8142aff3 3711 (synopsis "Perl database of robots.txt-derived permissions")
5eb86b64 3712 (description
8142aff3
EB
3713 "The WWW::RobotRules module parses /robots.txt files as specified in
3714\"A Standard for Robot Exclusion\", at
3715<http://www.robotstxt.org/wc/norobots.html>. Webmasters can use the
3716/robots.txt file to forbid conforming robots from accessing parts of
3717their web site.")
3718 (home-page "http://search.cpan.org/~gaas/WWW-RobotRules/")))
a359c9c1 3719
da069d7e 3720(define-public python-feedparser
3721 (package
3722 (name "python-feedparser")
3723 (version "5.2.1")
3724 (source
3725 (origin
3726 (method url-fetch)
3727 (uri (pypi-uri "feedparser" version ".tar.bz2"))
3728 (sha256
3729 (base32
3730 "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
3731 (build-system python-build-system)
92c3ef2c
LF
3732 (arguments
3733 '(#:tests? #f))
da069d7e 3734 (home-page
3735 "https://github.com/kurtmckee/feedparser")
3736 (synopsis "Parse feeds in Python")
3737 (description
3738 "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
3739CDF, Atom 0.3, and Atom 1.0 feeds.")
3740 (license (list l:bsd-2 ; source code
3741 l:freebsd-doc)))) ; documentation
3742
3743(define-public python2-feedparser
5c31f4aa 3744 (package-with-python2 python-feedparser))
da069d7e 3745
a359c9c1
RW
3746(define-public r-httpuv
3747 (package
3748 (name "r-httpuv")
2d81bc16 3749 (version "1.3.5")
a359c9c1
RW
3750 (source (origin
3751 (method url-fetch)
3752 (uri (cran-uri "httpuv" version))
3753 (sha256
3754 (base32
2d81bc16 3755 "1sg4f223zfyd265b28rlhsn3b6mqflcpnmya98cjmjncmy9vjdj3"))))
a359c9c1
RW
3756 (build-system r-build-system)
3757 (native-inputs `(("r-rcpp" ,r-rcpp)))
3758 (home-page "https://github.com/rstudio/httpuv")
3759 (synopsis "HTTP and WebSocket server library for R")
3760 (description
3761 "The httpuv package provides low-level socket and protocol support for
3762handling HTTP and WebSocket requests directly from within R. It is primarily
3763intended as a building block for other packages, rather than making it
3764particularly easy to create complete web applications using httpuv alone.")
3765 ;; This package includes third-party code that was originally released
3766 ;; under various non-copyleft licenses. Full licensing information can be
3767 ;; obtained here: https://github.com/rstudio/httpuv/blob/master/LICENSE
3768 (license l:gpl3+)))
21d3770e
RW
3769
3770(define-public r-jsonlite
3771 (package
3772 (name "r-jsonlite")
9fe794f0 3773 (version "1.5")
21d3770e
RW
3774 (source (origin
3775 (method url-fetch)
3776 (uri (cran-uri "jsonlite" version))
3777 (sha256
3778 (base32
9fe794f0 3779 "00lfg464jhf7k01bal9pcjvbdf5cxk6xi2h46hccp1x3h883g434"))))
21d3770e
RW
3780 (build-system r-build-system)
3781 (home-page "http://arxiv.org/abs/1403.2805")
3782 (synopsis "Robust, high performance JSON parser and generator for R")
3783 (description
3784 "The jsonlite package provides a fast JSON parser and generator optimized
3785for statistical data and the web. It offers flexible, robust, high
3786performance tools for working with JSON in R and is particularly powerful for
3787building pipelines and interacting with a web API. In addition to converting
3788JSON data from/to R objects, jsonlite contains functions to stream, validate,
3789and prettify JSON data. The unit tests included with the package verify that
3790all edge cases are encoded and decoded consistently for use with dynamic data
3791in systems and applications.")
3792 (license l:expat)))
ea5616e0
RW
3793
3794(define-public r-servr
3795 (package
3796 (name "r-servr")
9ecc4c69 3797 (version "0.8")
ea5616e0
RW
3798 (source (origin
3799 (method url-fetch)
3800 (uri (cran-uri "servr" version))
3801 (sha256
3802 (base32
9ecc4c69 3803 "05pz4ychqp4cqywcdavdi8jj3y09gmam097d2idjnlcg9x61h2s9"))))
ea5616e0
RW
3804 (build-system r-build-system)
3805 (propagated-inputs
3806 `(("r-httpuv" ,r-httpuv)
3807 ("r-jsonlite" ,r-jsonlite)
3808 ("r-mime" ,r-mime)))
3809 (native-inputs
3810 `(("r-rcpp" ,r-rcpp)))
3811 (home-page "https://github.com/yihui/servr")
3812 (synopsis "Simple HTTP server to serve static files or dynamic documents")
3813 (description
3814 "Servr provides an HTTP server in R to serve static files, or dynamic
3815documents that can be converted to HTML files (e.g., R Markdown) under a given
3816directory.")
3817 (license l:expat)))
f1a045e2
RW
3818
3819(define-public r-htmltools
3820 (package
3821 (name "r-htmltools")
85015105 3822 (version "0.3.6")
f1a045e2
RW
3823 (source (origin
3824 (method url-fetch)
3825 (uri (cran-uri "htmltools" version))
3826 (sha256
3827 (base32
85015105 3828 "18k8r1s8sz1jy7dkz35n69wj20xhmllr53xmwb4pdzf2z61gpbs4"))))
f1a045e2 3829 (build-system r-build-system)
3f1c722e
RW
3830 (arguments
3831 `(#:phases
3832 (modify-phases %standard-phases
3833 ;; See https://github.com/rstudio/htmltools/pull/68
3834 ;; The resource files are in the store and have mode 444. After
3835 ;; copying the files R fails to remove them again because it doesn't
3836 ;; have write access to them.
3837 (add-after 'unpack 'copy-files-without-mode
3838 (lambda _
3839 (substitute* "R/html_dependency.R"
3840 (("file.copy\\(from, to, " prefix)
3841 (string-append prefix
3842 "copy.mode = FALSE, ")))
3843 #t)))))
f1a045e2 3844 (propagated-inputs
e6f0ca2f
RW
3845 `(("r-digest" ,r-digest)
3846 ("r-rcpp" ,r-rcpp)))
f1a045e2
RW
3847 (home-page "http://cran.r-project.org/web/packages/htmltools")
3848 (synopsis "R tools for HTML")
3849 (description
3850 "This package provides tools for HTML generation and output in R.")
3851 (license l:expat)))
b1006576
RW
3852
3853(define-public r-htmlwidgets
3854 (package
3855 (name "r-htmlwidgets")
53deffe5 3856 (version "0.9")
b1006576
RW
3857 (source (origin
3858 (method url-fetch)
3859 (uri (cran-uri "htmlwidgets" version))
3860 (sha256
3861 (base32
53deffe5 3862 "0plqkfqys1ca3ki7sb7yc6gwjpi7yy4g3mzh7hfy8s6qri0vam0i"))))
b1006576
RW
3863 (build-system r-build-system)
3864 (propagated-inputs
3865 `(("r-htmltools" ,r-htmltools)
3866 ("r-jsonlite" ,r-jsonlite)
3867 ("r-yaml" ,r-yaml)))
3868 (home-page "https://github.com/ramnathv/htmlwidgets")
3869 (synopsis "HTML Widgets for R")
3870 (description
3871 "HTML widgets is a framework for creating HTML widgets that render in
3872various contexts including the R console, R Markdown documents, and Shiny web
3873applications.")
3874 (license l:expat)))
5f4621de 3875
ac3265ab
RW
3876(define-public r-htmltable
3877 (package
3878 (name "r-htmltable")
57ae890f 3879 (version "1.11.0")
ac3265ab
RW
3880 (source
3881 (origin
3882 (method url-fetch)
3883 (uri (cran-uri "htmlTable" version))
3884 (sha256
3885 (base32
57ae890f 3886 "0x0qrzx6igg5z8jh901d2a8g2idpm5f4frwp1m02910scifcrxwf"))))
ac3265ab
RW
3887 (properties `((upstream-name . "htmlTable")))
3888 (build-system r-build-system)
3889 (propagated-inputs
e15f962f 3890 `(("r-checkmate" ,r-checkmate)
57ae890f
RW
3891 ("r-dplyr" ,r-dplyr)
3892 ("r-htmltools" ,r-htmltools)
e15f962f
RW
3893 ("r-htmlwidgets" ,r-htmlwidgets)
3894 ("r-knitr" ,r-knitr)
ac3265ab 3895 ("r-magrittr" ,r-magrittr)
57ae890f
RW
3896 ("r-rstudioapi" ,r-rstudioapi)
3897 ("r-stringr" ,r-stringr)
3898 ("r-tidyr" ,r-tidyr)))
ac3265ab
RW
3899 (home-page "http://gforge.se/packages/")
3900 (synopsis "Advanced tables for Markdown/HTML")
3901 (description
3902 "This package provides functions to build tables with advanced layout
3903elements such as row spanners, column spanners, table spanners, zebra
3904striping, and more. While allowing advanced layout, the underlying
3905CSS-structure is simple in order to maximize compatibility with word
3906processors such as LibreOffice. The package also contains a few text
3907formatting functions that help outputting text compatible with HTML or
3908LaTeX.")
3909 (license l:gpl3+)))
3910
5f4621de
RW
3911(define-public r-curl
3912 (package
3913 (name "r-curl")
5378f383 3914 (version "3.1")
5f4621de
RW
3915 (source (origin
3916 (method url-fetch)
3917 (uri (cran-uri "curl" version))
3918 (sha256
3919 (base32
5378f383 3920 "15fbjya2xrf2k9hhvg3frisrram4yk5wlfz67zj1z8ahpsb2a3r7"))))
5f4621de 3921 (build-system r-build-system)
8f309571
RW
3922 (arguments
3923 `(#:phases
3924 (modify-phases %standard-phases
3925 ;; The environment variable CURL_CA_BUNDLE is only respected when
3926 ;; running Windows, so we disable the platform checks.
3927 ;; This can be removed once the libcurl has been patched.
3928 (add-after 'unpack 'allow-CURL_CA_BUNDLE
3929 (lambda _
3930 (substitute* "R/onload.R"
3931 (("if \\(!grepl\\(\"mingw\".*")
3932 "if (FALSE)\n"))
3933 (substitute* "src/handle.c"
3934 (("#ifdef _WIN32") "#if 1"))
3935 #t)))))
5f4621de
RW
3936 (inputs
3937 `(("libcurl" ,curl)))
3938 (home-page "https://github.com/jeroenooms/curl")
3939 (synopsis "HTTP client for R")
3940 (description
3941 "The @code{curl()} and @code{curl_download()} functions provide highly
3942configurable drop-in replacements for base @code{url()} and
3943@code{download.file()} with better performance, support for encryption, gzip
3944compression, authentication, and other @code{libcurl} goodies. The core of
3945the package implements a framework for performing fully customized requests
3946where data can be processed either in memory, on disk, or streaming via the
3947callback or connection interfaces.")
3948 (license l:expat)))
e1c63590 3949
bbed0ab6
RW
3950(define-public r-hwriter
3951 (package
3952 (name "r-hwriter")
3953 (version "1.3.2")
3954 (source
3955 (origin
3956 (method url-fetch)
3957 (uri (cran-uri "hwriter" version))
3958 (sha256
3959 (base32
3960 "0arjsz854rfkfqhgvpqbm9lfni97dcjs66isdsfvwfd2wz932dbb"))))
3961 (build-system r-build-system)
3962 (home-page "http://cran.r-project.org/web/packages/hwriter")
3963 (synopsis "Output R objects in HTML format")
3964 (description
3965 "This package provides easy-to-use and versatile functions to output R
3966objects in HTML format.")
3967 (license l:lgpl2.1+)))
3968
356c6d61
RW
3969(define-public r-rjson
3970 (package
3971 (name "r-rjson")
3972 (version "0.2.15")
3973 (source
3974 (origin
3975 (method url-fetch)
3976 (uri (cran-uri "rjson" version))
3977 (sha256
3978 (base32
3979 "1vzjyvf57k1fjizlk28rby65y5lsww5qnfvgnhln74qwda7hvl3p"))))
3980 (build-system r-build-system)
3981 (home-page "http://cran.r-project.org/web/packages/rjson")
3982 (synopsis "JSON library for R")
3983 (description
3984 "This package provides functions to convert R objects into JSON objects
3985and vice-versa.")
3986 (license l:gpl2+)))
3987
e1c63590
RW
3988(define-public gumbo-parser
3989 (package
3990 (name "gumbo-parser")
3991 (version "0.10.1")
3992 (source (origin
3993 (method url-fetch)
3994 (uri (string-append "https://github.com/google/"
3995 "gumbo-parser/archive/v" version ".tar.gz"))
3996 (file-name (string-append name "-" version ".tar.gz"))
3997 (sha256
3998 (base32
3999 "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8"))))
4000 (build-system gnu-build-system)
4001 (arguments
4002 `(#:tests? #f ; tests require bundling googletest sources
4003 #:phases
4004 (modify-phases %standard-phases
4005 (add-after 'unpack 'bootstrap
4006 (lambda _ (zero? (system* "sh" "autogen.sh")))))))
4007 ;; The release tarball lacks the generated files.
4008 (native-inputs
4009 `(("autoconf" ,autoconf)
4010 ("automake" ,automake)
4011 ("libtool" ,libtool)))
4012 (home-page "https://github.com/google/gumbo-parser")
4013 (synopsis "HTML5 parsing library")
4014 (description
4015 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as
4016a pure C99 library.")
4017 (license l:asl2.0)))
67c2fc01
SB
4018
4019(define-public uwsgi
4020 (package
4021 (name "uwsgi")
4022 (version "2.0.12")
4023 (source (origin
4024 (method url-fetch)
4025 (uri (string-append "http://projects.unbit.it/downloads/uwsgi-"
4026 version ".tar.gz"))
4027 (sha256
4028 (base32
4029 "02g46dnw5j1iw8fsq392bxbk8d21b9pdgb3ypcinv3b4jzdm2srh"))))
4030 (build-system gnu-build-system)
4031 (outputs '("out" "python"))
4032 (arguments
4033 '(;; XXX: The 'check' target runs cppcheck to do static code analysis.
4034 ;; But there is no obvious way to run the real tests.
4035 #:tests? #f
4036 #:phases
4037 (modify-phases %standard-phases
4038 (replace 'configure
4039 ;; Configuration is done by writing an ini file.
4040 (lambda* (#:key outputs #:allow-other-keys)
4041 (let* ((out (assoc-ref outputs "out"))
4042 (bindir (string-append out "/bin"))
4043 (plugindir (string-append out "/lib/uwsgi")))
4044 ;; The build phase outputs files to these directories directly.
4045 (mkdir-p bindir)
4046 (mkdir-p plugindir)
4047 ;; XXX: Enable other plugins.
4048 (call-with-output-file "buildconf/guix.ini"
4049 (lambda (port)
4050 (format port "[uwsgi]
4051yaml = libyaml
4052bin_name = ~a/uwsgi
4053plugin_dir = ~a
4054
4055inherit = base
4056plugins = cgi,python
4057embedded_plugins =
4058" bindir plugindir))))
4059 (setenv "PROFILE" "guix")
4060 #t))
4061 (replace 'install
4062 ;; Move plugins into their own output.
4063 (lambda* (#:key outputs #:allow-other-keys)
4064 (let* ((out (assoc-ref outputs "out"))
4065 (plugindir (string-append out "/lib/uwsgi"))
4066 (python-plugin (string-append
4067 plugindir "/python_plugin.so")))
4068 (install-file python-plugin
4069 (string-append
4070 (assoc-ref outputs "python") "/lib/uwsgi"))
4071 (delete-file python-plugin)
4072 #t))))))
4073 (native-inputs
4074 `(("pkg-config" ,pkg-config)
4075 ("python" ,python-wrapper)))
4076 (inputs
4077 `(("jansson" ,jansson)
4078 ("libxml2" ,libxml2)
4079 ("libyaml" ,libyaml)
4080 ("openssl" ,openssl)
4081 ("pcre" ,pcre)
4082 ("zlib" ,zlib)
4083 ;; For plugins.
4084 ("python" ,python)))
4085 (home-page "https://uwsgi-docs.readthedocs.org/")
4086 (synopsis "Application container server")
4087 (description
4088 "uWSGI presents a complete stack for networked/clustered web applications,
4089implementing message/object passing, caching, RPC and process management.
4090It uses the uwsgi protocol for all the networking/interprocess communications.")
4091 (license l:gpl2+))) ; with linking exception
ec672946
JL
4092
4093(define-public jq
4094 (package
4095 (name "jq")
4096 (version "1.5")
4097 (source (origin
4098 (method url-fetch)
4099 (uri (string-append "https://github.com/stedolan/" name
4100 "/releases/download/" name "-" version
4101 "/" name "-" version ".tar.gz"))
4102 (sha256
4103 (base32
f2b4c18c
JL
4104 "0g29kyz4ykasdcrb0zmbrp2jqs9kv1wz9swx849i2d1ncknbzln4"))
4105 ;; This patch has been pushed and the vulnerability will be
4106 ;; fixed in the next release after 1.5.
4107 ;; https://github.com/stedolan/jq/issues/995
4108 (patches (search-patches "jq-CVE-2015-8863.patch"))))
ec672946
JL
4109 (inputs
4110 `(("oniguruma" ,oniguruma)))
4111 (native-inputs
4112 `(;; TODO fix gems to generate documentation
4113 ;;("ruby" ,ruby)
4114 ;;("bundler" ,bundler)
4115 ("valgrind" ,valgrind)))
4116 (build-system gnu-build-system)
4117 (home-page "http://stedolan.github.io/jq/")
4118 (synopsis "Command-line JSON processor")
4119 (description "jq is like sed for JSON data – you can use it to slice and
4120filter and map and transform structured data with the same ease that sed, awk,
4121grep and friends let you play with text. It is written in portable C. jq can
4122mangle the data format that you have into the one that you want with very
4123little effort, and the program to do so is often shorter and simpler than
4124you'd expect.")
4125 (license (list l:expat l:cc-by3.0))))
7ffbbea0
RS
4126
4127(define-public uhttpmock
4128 (package
4129 (name "uhttpmock")
4130 (version "0.5.0")
4131 (source
4132 (origin
4133 (method url-fetch)
4134 (uri (string-append "http://tecnocode.co.uk/downloads/uhttpmock/"
4135 name "-" version ".tar.xz"))
4136 (sha256
4137 (base32
4138 "0vniyx341pnnmvxmqacc49k0g7h9a9nhknfslidrqmxj5lm1ini6"))))
4139 (build-system glib-or-gtk-build-system)
4140 (arguments
4141 `(#:phases
4142 (modify-phases %standard-phases
4143 (add-before 'check 'use-empty-ssl-cert-file
4144 (lambda _
4145 ;; Search for ca-certificates.crt files
4146 ;; during the check phase.
4147 (setenv "SSL_CERT_FILE" "/dev/null")
4148 #t)))))
4149 (native-inputs
4150 `(("gobject-introspection" ,gobject-introspection)
4151 ;; For check phase.
4152 ("glib-networking" ,glib-networking)
4153 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4154 ("pkg-config" ,pkg-config)))
4155 (inputs
4156 `(("libsoup" ,libsoup)))
4157 (home-page "https://gitlab.com/groups/uhttpmock")
4158 (synopsis "Library for mocking web service APIs which use HTTP or HTTPS")
4159 (description
4160 "Uhttpmock is a project for mocking web service APIs which use HTTP or
4161HTTPS. It provides a library, libuhttpmock, which implements recording and
4162playback of HTTP request/response traces.")
4163 (license l:lgpl2.1+)))
0ee23de9
CL
4164
4165(define-public woof
4166 (package
4167 (name "woof")
4168 (version "2012-05-31")
4169 (source (origin
4170 (method url-fetch)
4171 (uri (string-append
4172 "http://www.home.unix-ag.org/simon/woof-"
4173 version ".py"))
4174 (sha256
4175 (base32
4176 "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq"))))
4177 (build-system trivial-build-system)
4178 (arguments
4179 '(#:modules ((guix build utils))
4180 #:builder
4181 (begin
4182 (use-modules (guix build utils))
4183 (let* ((source (assoc-ref %build-inputs "source"))
4184 (out (assoc-ref %outputs "out"))
4185 (bin (string-append out "/bin"))
4186 (python (assoc-ref %build-inputs "python")))
4187 (mkdir-p bin)
4188 (with-directory-excursion bin
4189 (copy-file source "woof")
4190 (patch-shebang "woof" (list (string-append python "/bin")))
4191 (chmod "woof" #o555))
4192 #t))))
4193 (inputs `(("python" ,python-2)))
4194 (home-page "http://www.home.unix-ag.org/simon/woof.html")
4195 (synopsis "Single file web server")
4196 (description "Woof (Web Offer One File) is a small simple web server that
4197can easily be invoked on a single file. Your partner can access the file with
4198tools they trust (e.g. wget).")
4199 (license l:gpl2+)))
22df7001 4200
ef61177d
EB
4201(define netsurf-buildsystem
4202 (package
4203 (name "netsurf-buildsystem")
bf560826 4204 (version "1.6")
ef61177d
EB
4205 (source
4206 (origin
4207 (method url-fetch)
4208 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4209 "buildsystem-" version ".tar.gz"))
4210 (sha256
4211 (base32
bf560826 4212 "0p5k708lcq8dip9xxck6hml32bjrbyipprm22bbsvdnsc0pqm71x"))))
ef61177d
EB
4213 (build-system gnu-build-system)
4214 (inputs `(("perl" ,perl)))
4215 (arguments
4216 '(#:make-flags (list (string-append "PREFIX=" %output))
4217 #:tests? #f ;no tests
4218 #:phases (modify-phases %standard-phases
4219 (delete 'configure)
4220 (delete 'build))))
4221 (home-page "http://www.netsurf-browser.org")
4222 (synopsis "Build system for the Netsurf project")
4223 (description
4224 "This package provides the shared build system for Netsurf project
4225libraries.")
4226 (license l:expat)))
4227
4228(define netsurf-buildsystem-arguments
4229 `(#:make-flags `("COMPONENT_TYPE=lib-shared"
4230 "CC=gcc" "BUILD_CC=gcc"
4231 ,(string-append "PREFIX=" %output)
4232 ,(string-append "NSSHARED="
4233 (assoc-ref %build-inputs
4234 "netsurf-buildsystem")
4235 "/share/netsurf-buildsystem"))
4236 #:test-target "test"
4237 #:phases (modify-phases %standard-phases
4238 (delete 'configure))))
4239
4240(define-public libparserutils
4241 (package
4242 (name "libparserutils")
4243 (version "0.2.3")
4244 (source
4245 (origin
4246 (method url-fetch)
4247 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4248 name "-" version "-src.tar.gz"))
4249 (sha256
4250 (base32
4251 "01gzlsabgl6x0icd8758d9jqs8rrf9574bdkjainn04w3fs3znf5"))))
4252 (build-system gnu-build-system)
4253 (native-inputs
4254 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4255 ("pkg-config" ,pkg-config)
4256 ("perl" ,perl))) ;for test harness
4257 (arguments netsurf-buildsystem-arguments)
4258 (home-page "http://www.netsurf-browser.org/projects/libparserutils/")
4259 (synopsis "Parser building library")
4260 (description
4261 "LibParserUtils is a library for building efficient parsers, written in
4262C. It is developed as part of the NetSurf project.")
4263 (license l:expat)))
4264
43bfbf13
EB
4265(define-public hubbub
4266 (package
4267 (name "hubbub")
84dec7a0 4268 (version "0.3.4")
43bfbf13
EB
4269 (source
4270 (origin
4271 (method url-fetch)
4272 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4273 "lib" name "-" version "-src.tar.gz"))
4274 (sha256
4275 (base32
84dec7a0 4276 "1shi4hv8drn9zy8f2f6yhnz2dqnpg5jkybvqhzggfjx1q35fbxz3"))
43bfbf13
EB
4277 (patches (search-patches "hubbub-sort-entities.patch"))))
4278 (build-system gnu-build-system)
4279 (native-inputs
4280 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4281 ("pkg-config" ,pkg-config)
4282 ("doxygen" ,doxygen)
4283 ("json-c" ,json-c)
4284 ("perl" ,perl)))
4285 (propagated-inputs
4286 `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
4287 (arguments netsurf-buildsystem-arguments)
4288 (home-page "http://www.netsurf-browser.org/projects/hubbub/")
4289 (synopsis "HTML5 compliant parsing library")
4290 (description
4291 "Hubbub is an HTML5 compliant parsing library, written in C, which can
4292parse both valid and invalid web content. It is developed as part of the
4293NetSurf project.")
4294 (license l:expat)))
4295
909dcf5b
CB
4296(define-public ikiwiki
4297 (package
4298 (name "ikiwiki")
4299 (version "3.20170111")
4300 (source
4301 (origin
4302 (method url-fetch)
4303 (uri (string-append "http://snapshot.debian.org/archive/debian/"
4304 "20170111T215449Z/pool/main/i/ikiwiki/ikiwiki_"
4305 version ".tar.xz"))
4306 (sha256
4307 (base32
4308 "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz"))))
4309 (build-system perl-build-system)
4310 (arguments
4311 `(;; Image tests fail
4312 ;;
4313 ;; Test Summary Report
4314 ;; -------------------
4315 ;; t/img.t (Wstat: 2304 Tests: 62 Failed: 9)
4316 ;; Failed tests: 21, 27-28, 30-35
4317 ;; Non-zero exit status: 9
4318 #:tests? #f
4319 #:phases
4320 (modify-phases %standard-phases
f4dd3032
CB
4321 (add-after 'unpack 'include-PERL5LIB-in-wrapper
4322 (lambda _
4323 (substitute* "IkiWiki/Wrapper.pm"
4324 (("^@wrapper\\_hooks")
4325 (string-append
4326 "@wrapper_hooks\n"
4327 " addenv(\"PERL5LIB\", \""
4328 (getenv "PERL5LIB")
4329 "\");")))))
909dcf5b
CB
4330 (add-after 'install 'wrap-programs
4331 (lambda* (#:key outputs #:allow-other-keys)
4332 (let* ((out (assoc-ref outputs "out"))
4333 (bin (string-append out "/bin/"))
4334 (path (getenv "PERL5LIB")))
4335 (for-each (lambda (file)
4336 (wrap-program file
4337 `("PERL5LIB" ":" prefix (,path))))
4338 (find-files bin))
4339 #t))))))
4340 (native-inputs
4341 `(("which" ,which)
4342 ("perl-html-tagset" ,perl-html-tagset)
4343 ("perl-timedate" ,perl-timedate)
4344 ("perl-xml-sax" ,perl-xml-sax)
4345 ("perl-xml-simple" ,perl-xml-simple)
4346 ("gettext" ,gettext-minimal)
4347 ("subversion" ,subversion)
4348 ("git" ,git)
4349 ("bazaar" ,bazaar)
4350 ("cvs" ,cvs)
4351 ("mercurial" ,mercurial)))
4352 (inputs
4353 `(("python" ,python-wrapper)
4354 ("perl-cgi-session" ,perl-cgi-session)
4355 ("perl-cgi-simple" ,perl-cgi-simple)
4356 ("perl-json" ,perl-json)
4357 ("perl-image-magick" ,perl-image-magick)
4358 ("perl-uri" ,perl-uri)
4359 ("perl-html-parser" ,perl-html-parser)
4360 ("perl-uri" ,perl-uri)
4361 ("perl-text-markdown-discount" ,perl-text-markdown-discount)
4362 ("perl-html-scrubber" ,perl-html-scrubber)
4363 ("perl-html-template" ,perl-html-template)
4364 ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
4365 (home-page "https://ikiwiki.info/")
4366 (synopsis "Wiki compiler, capable of generating HTML")
4367 (description
4368 "Ikiwiki is a wiki compiler, capable of generating a static set of web
4369pages, but also incorporating dynamic features like a web based editor and
4370commenting.")
4371 (license l:gpl2+)))
4372
5a0096a3
EB
4373(define-public libwapcaplet
4374 (package
4375 (name "libwapcaplet")
e33f6efd 4376 (version "0.4.0")
5a0096a3
EB
4377 (source
4378 (origin
4379 (method url-fetch)
4380 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4381 name "-" version "-src.tar.gz"))
4382 (sha256
4383 (base32
e33f6efd 4384 "15yr0pl6qa6biy36qkmd949ydbjzpqiaccpx3sprh4jknabsk1vv"))))
5a0096a3
EB
4385 (build-system gnu-build-system)
4386 (native-inputs
4387 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4388 ("pkg-config" ,pkg-config)
4389 ("check" ,check))) ;for tests
4390 (arguments netsurf-buildsystem-arguments)
4391 (home-page "http://www.netsurf-browser.org/projects/libwapcaplet/")
4392 (synopsis "String internment library")
4393 (description
4394 "LibWapcaplet provides a reference counted string internment system
4395designed to store small strings and allow rapid comparison of them. It is
4396developed as part of the Netsurf project.")
4397 (license l:expat)))
4398
0527b43d
EB
4399(define-public libcss
4400 (package
4401 (name "libcss")
d8799bd0 4402 (version "0.7.0")
0527b43d
EB
4403 (source
4404 (origin
4405 (method url-fetch)
4406 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4407 name "-" version "-src.tar.gz"))
4408 (sha256
4409 (base32
d8799bd0 4410 "16mns3h8vj7iw8myvgnw58q84irvbjlvfkxh8mdw6fbkjvaa7cnz"))))
0527b43d
EB
4411 (build-system gnu-build-system)
4412 (native-inputs
4413 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4414 ("pkg-config" ,pkg-config)
4415 ("perl" ,perl)))
4416 (propagated-inputs ;needed for libcss.pc
4417 `(("libparserutils" ,libparserutils)
4418 ("libwapcaplet" ,libwapcaplet)))
4419 (arguments netsurf-buildsystem-arguments)
4420 (home-page "http://www.netsurf-browser.org/projects/libcss/")
4421 (synopsis "CSS parser and selection library")
4422 (description
4423 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,
4424written in C. It is developed as part of the NetSurf project.")
4425 (license l:expat)))
4426
ccb88298
EB
4427(define-public libdom
4428 (package
4429 (name "libdom")
036f47a3 4430 (version "0.3.2")
ccb88298
EB
4431 (source
4432 (origin
4433 (method url-fetch)
4434 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4435 name "-" version "-src.tar.gz"))
4436 (sha256
4437 (base32
036f47a3 4438 "1zb7x2qwm6p11lph6j2vcyp4a0a8i1klkqilnk5vb4qmlzzpcv7i"))))
ccb88298
EB
4439 (build-system gnu-build-system)
4440 (native-inputs
4441 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4442 ("pkg-config" ,pkg-config)
4443 ("perl" ,perl) ;for test harness
4444 ("perl-libxml" ,perl-libxml)
4445 ("perl-switch" ,perl-switch)
4446 ("perl-xml-xpath" ,perl-xml-xpath)))
4447 (inputs
4448 `(("libparserutils" ,libparserutils)
4449 ("libwapcaplet" ,libwapcaplet)))
4450 (propagated-inputs
4451 `(("expat" ,expat) ;needed for headers and linking
4452 ("hubbub" ,hubbub))) ;for libdom.pc
4453 (arguments
4454 `(#:tests? #f ;TODO: re-enable. tests take a looong time.
4455 ,@netsurf-buildsystem-arguments))
4456 (home-page "http://www.netsurf-browser.org/projects/libdom/")
4457 (synopsis "Implementation of the W3C DOM")
4458 (description
4459 "LibDOM is an implementation of the W3C DOM, written in C. It is
4460developed as part of the NetSurf project.")
4461 (license l:expat)))
4462
6fae2256
EB
4463(define-public libsvgtiny
4464 (package
4465 (name "libsvgtiny")
b20d97f8 4466 (version "0.1.6")
6fae2256
EB
4467 (source
4468 (origin
4469 (method url-fetch)
4470 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4471 name "-" version "-src.tar.gz"))
4472 (sha256
4473 (base32
b20d97f8 4474 "12ppy2r7m21ykrjgbf067cgi6dn48fkj7i4b7m64xl4dc13y0ah6"))))
6fae2256
EB
4475 (build-system gnu-build-system)
4476 (native-inputs
4477 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4478 ("pkg-config" ,pkg-config)
b1554326 4479 ("gperf" ,gperf-3.0)))
6fae2256
EB
4480 (inputs
4481 `(("libwapcaplet" ,libwapcaplet)))
4482 (propagated-inputs
4483 `(("libdom" ,libdom))) ;for libsvgtiny.pc
4484 (arguments netsurf-buildsystem-arguments)
4485 (home-page "http://www.netsurf-browser.org/projects/libsvgtiny/")
4486 (synopsis "Library for parsing SVG files")
4487 (description
4488 "Libsvgtiny takes some SVG as input and returns a list of paths and texts
4489which can be rendered easily, as defined in
4490@url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf
4491project.")
4492 (license l:expat)))
4493
4018a533
EB
4494(define-public libnsbmp
4495 (package
4496 (name "libnsbmp")
4497 (version "0.1.4")
4498 (source
4499 (origin
4500 (method url-fetch)
4501 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4502 name "-" version "-src.tar.gz"))
4503 (sha256
4504 (base32
4505 "0y4a0gn4l6lq4z9183wix0mdsgalqyw24k19k8jr8sz4h3lb7jrb"))))
4506 (build-system gnu-build-system)
4507 (native-inputs
4508 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4509 (arguments netsurf-buildsystem-arguments)
4510 (home-page "http://www.netsurf-browser.org/projects/libnsbmp/")
4511 (synopsis "Decoding library for BMP and ICO files")
4512 (description
4513 "Libnsbmp is a decoding library for BMP and ICO image file formats,
4514written in C. It is developed as part of the NetSurf project.")
4515 (license l:expat)))
4516
ea1c8b31
EB
4517(define-public libnsgif
4518 (package
4519 (name "libnsgif")
f379c52f 4520 (version "0.2.0")
ea1c8b31
EB
4521 (source
4522 (origin
4523 (method url-fetch)
4524 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4525 name "-" version "-src.tar.gz"))
4526 (sha256
4527 (base32
f379c52f 4528 "1phwf0m24m6nd7096fw14hanl4f8gr9bcppi834lbik04agxk38a"))))
ea1c8b31
EB
4529 (build-system gnu-build-system)
4530 (native-inputs
4531 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4532 (arguments netsurf-buildsystem-arguments)
4533 (home-page "http://www.netsurf-browser.org/projects/libnsgif/")
4534 (synopsis "Decoding library for GIF files")
4535 (description
4536 "Libnsgif is a decoding library for the GIF image file format, written in
4537C. It is developed as part of the NetSurf project.")
4538 (license l:expat)))
4539
54b7f149
EB
4540(define-public libnsutils
4541 (package
4542 (name "libnsutils")
4543 (version "0.0.3")
4544 (source
4545 (origin
4546 (method url-fetch)
4547 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4548 name "-" version "-src.tar.gz"))
4549 (sha256
4550 (base32
4551 "0wrxn4rcn7xrfnkmf60jafqn3n1kicgsdpnakd821q56bmqvzf0m"))))
4552 (build-system gnu-build-system)
4553 (native-inputs
4554 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4555 (arguments netsurf-buildsystem-arguments)
4556 (home-page "http://www.netsurf-browser.org/")
4557 (synopsis "Utility library for NetSurf")
4558 (description
4559 "Libnsutils provides a small number of useful utility routines. It is
4560developed as part of the NetSurf project.")
4561 (license l:expat)))
4562
02a7a0ca
EB
4563(define-public libnspsl
4564 (package
4565 (name "libnspsl")
772588bd 4566 (version "0.1.2")
02a7a0ca
EB
4567 (source
4568 (origin
4569 (method url-fetch)
4570 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4571 name "-" version "-src.tar.gz"))
4572 (sha256
4573 (base32
772588bd 4574 "0wim5hwzwrfrvvap096whf79m2mnfivbqhqlh03ci9d89xb1w0y9"))))
02a7a0ca
EB
4575 (build-system gnu-build-system)
4576 (native-inputs
4577 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4578 (arguments netsurf-buildsystem-arguments)
4579 (home-page "http://www.netsurf-browser.org/")
4580 (synopsis "Library to generate a static Public Suffix List")
4581 (description
4582 "Libnspsl is a library to generate a static code representation of the
4583Public Suffix List. It is developed as part of the NetSurf project.")
4584 (license l:expat)))
4585
1f6ec9d2
EB
4586(define-public nsgenbind
4587 (package
4588 (name "nsgenbind")
d8799bd0 4589 (version "0.5")
1f6ec9d2
EB
4590 (source
4591 (origin
4592 (method url-fetch)
4593 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4594 name "-" version "-src.tar.gz"))
4595 (sha256
4596 (base32
d8799bd0 4597 "1iwjpdaan0njlhb9ir6a2q5vpxfmkqfldkvnqszqdz50b44vd1jv"))))
1f6ec9d2
EB
4598 (build-system gnu-build-system)
4599 (native-inputs
4600 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4601 ("bison" ,bison)
4602 ("flex" ,flex)))
4603 (arguments
4604 (substitute-keyword-arguments netsurf-buildsystem-arguments
4605 ((#:make-flags flags)
4606 `(delete "COMPONENT_TYPE=lib-shared" ,flags))))
4607 (home-page "http://www.netsurf-browser.org/")
4608 (synopsis "Generate JavaScript to DOM bindings")
4609 (description
4610 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from
4611w3c webidl files and a binding configuration file.")
4612 (license l:expat)))
4613
fbaf9376
LF
4614(define-public netsurf
4615 (package
4616 (name "netsurf")
d8799bd0 4617 (version "3.7")
fbaf9376
LF
4618 (source
4619 (origin
4620 (method url-fetch)
4621 (uri (string-append "http://download.netsurf-browser.org/netsurf/"
4622 "releases/source/netsurf-" version "-src.tar.gz"))
4623 (sha256
4624 (base32
d8799bd0 4625 "05kynfzzwd4fc03vbqdjpghh5xnk2yrh43w7vikak89vla30mhpg"))
fbaf9376
LF
4626 (patches (search-patches "netsurf-system-utf8proc.patch"
4627 "netsurf-y2038-tests.patch"
4628 "netsurf-longer-test-timeout.patch"))))
4629 (build-system glib-or-gtk-build-system)
4630 (native-inputs
4631 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4632 ("nsgenbind" ,nsgenbind)
4633 ("libidn" ,libidn) ;only for tests
4634 ("check" ,check)
4635 ("perl" ,perl)
4636 ("perl-html-parser" ,perl-html-parser)
4637 ("pkg-config" ,pkg-config)))
4638 (inputs
4639 `(("curl" ,curl)
4640 ("gtk+" ,gtk+-2)
4641 ("openssl" ,openssl)
4642 ("utf8proc" ,utf8proc)
4643 ("libpng" ,libpng)
4644 ("libjpeg" ,libjpeg)
4645 ("libcss" ,libcss)
4646 ("libdom" ,libdom)
4647 ("libnsbmp" ,libnsbmp)
4648 ("libnsgif" ,libnsgif)
4649 ("libnspsl" ,libnspsl)
4650 ("libnsutils" ,libnsutils)
4651 ("libsvgtiny" ,libsvgtiny)
4652 ("miscfiles" ,miscfiles)))
4653 (arguments
4654 `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
4655 ,(string-append "PREFIX=" %output)
4656 ,(string-append "NSSHARED="
4657 (assoc-ref %build-inputs
4658 "netsurf-buildsystem")
4659 "/share/netsurf-buildsystem"))
4660 #:test-target "test"
4661 #:modules ((ice-9 rdelim)
4662 (ice-9 match)
4663 (srfi srfi-1)
4664 (sxml simple)
4665 ,@%glib-or-gtk-build-system-modules)
4666 #:phases
4667 (modify-phases %standard-phases
4668 (delete 'configure)
4669 (add-after 'build 'adjust-welcome
4670 (lambda _
4671 ;; First, fix some unended tags and simple substitutions
4672 (substitute* "frontends/gtk/res/welcome.html"
4673 (("<(img|input)([^>]*)>" _ tag contents)
4674 (string-append "<" tag contents " />"))
4675 (("Licence") "License") ;prefer GNU spelling
4676 ((" open source") ", free software")
4677 (("web&nbsp;site") "website")
4678 ;; Prefer privacy-respecting default search engine
4679 (("www.google.co.uk") "www.duckduckgo.com/html")
4680 (("Google Search") "DuckDuckGo Search")
4681 (("name=\"btnG\"") ""))
4682 ;; Remove default links so it doesn't seem we're endorsing them
4683 (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
4684 (lambda (in out)
4685 ;; Leave the DOCTYPE header as is
4686 (display (read-line in 'concat) out)
4687 (sxml->xml
4688 (let rec ((sxml (xml->sxml in)))
4689 ;; We'd like to use sxml-match here, but it can't
4690 ;; match against generic tag symbols...
4691 (match sxml
4692 (`(div (@ (class "links")) . ,rest)
4693 '())
4694 ((x ...)
4695 (map rec x))
4696 (x x)))
4697 out)))
4698 #t))
4699 (add-before 'check 'patch-check
4700 (lambda* (#:key inputs #:allow-other-keys)
4701 (substitute* '("test/bloom.c" "test/hashtable.c")
4702 (("/usr/share/dict/words")
4703 (string-append (assoc-ref inputs "miscfiles") "/share/web2")))
4704 #t))
4705 (add-after 'install 'install-more
4706 (lambda* (#:key outputs #:allow-other-keys)
4707 (let* ((out (assoc-ref outputs "out"))
4708 (desktop (string-append out "/share/applications/"
4709 "netsurf.desktop")))
4710 (mkdir-p (dirname desktop))
4711 (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
4712 desktop)
4713 (substitute* desktop
d8799bd0 4714 (("netsurf-gtk") (string-append out "/bin/netsurf-gtk"))
fbaf9376
LF
4715 (("netsurf.png") (string-append out "/share/netsurf/"
4716 "netsurf.xpm")))
d8799bd0 4717 (install-file "docs/netsurf-gtk.1"
fbaf9376
LF
4718 (string-append out "/share/man/man1/"))
4719 #t))))))
4720 (home-page "http://www.netsurf-browser.org")
4721 (synopsis "Web browser")
4722 (description
4723 "NetSurf is a lightweight web browser that has its own layout and
4724rendering engine entirely written from scratch. It is small and capable of
4725handling many of the web standards in use today.")
4726 (license l:gpl2+)))
4727
e56e5b12 4728(define-public surfraw
4729 (package
4730 (name "surfraw")
4731 (version "2.2.9")
4732 (source (origin
4733 (method url-fetch)
4734 (uri (string-append "https://surfraw.alioth.debian.org/dist/"
4735 name "-" version ".tar.gz"))
4736 (sha256
4737 (base32
4738 "1fy4ph5h9kp0jzj1m6pfylxnnmgdk0mmdppw76z9jhna4jndk5xa"))))
4739 (build-system gnu-build-system)
e81fd90e 4740 (arguments
4741 `(#:phases
4742 (modify-phases %standard-phases
4743 (add-after 'install 'compress-elvi.1sr
4744 (lambda* (#:key outputs #:allow-other-keys)
4745 ;; The manpages of the elvis are symlinks to elvi.1sr.gz
4746 ;; but elvi.1sr does not get compressed by our manpage phase.
4747 (let* ((out (assoc-ref %outputs "out"))
4748 (man (string-append out "/share/man/man1")))
4749 (with-directory-excursion man
4750 (zero? (system* "gzip" "elvi.1sr")))))))))
e56e5b12 4751 (inputs
4752 `(("perl" ,perl)
4753 ("perl-www-opensearch" ,perl-www-opensearch)
4754 ("perl-html-parser" ,perl-html-parser)
4755 ("perl-libwww" ,perl-libwww)))
4756 (synopsis "Unix command line interface to the www")
4757 (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
4758provides a unix command line interface to a variety of popular www search engines
4759and similar services.")
4760 (home-page "https://surfraw.alioth.debian.org/")
4761 (license l:public-domain)))
797a5cf5
AI
4762
4763(define-public darkhttpd
4764 (package
4765 (name "darkhttpd")
4766 (version "1.12")
4767 (source
4768 (origin
a7a4345d
AI
4769 (method url-fetch)
4770 (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
4771 version ".tar.bz2"))
797a5cf5
AI
4772 (sha256
4773 (base32
a7a4345d 4774 "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
797a5cf5
AI
4775 (build-system gnu-build-system)
4776 (arguments
4777 `(#:make-flags '("CC=gcc")
4778 #:tests? #f ; No test suite
4779 #:phases
4780 (modify-phases %standard-phases
4781 (delete 'configure)
4782 (replace 'install
4783 (lambda* (#:key outputs #:allow-other-keys)
4784 (install-file "darkhttpd"
4785 (string-append (assoc-ref outputs "out")
4786 "/bin"))
4787 #t)))))
4788 (synopsis "Simple static web server")
4789 (description "darkhttpd is a simple static web server. It is
4790standalone and does not need inetd or ucspi-tcp. It does not need any
4791config files---you only have to specify the www root.")
4792 (home-page "https://unix4lyfe.org/darkhttpd/")
4793 (license l:isc)))
8cecd22e
LC
4794
4795(define-public goaccess
4796 (package
4797 (name "goaccess")
4798 (version "1.0.2")
4799 (source (origin
4800 (method url-fetch)
4801 (uri (string-append "http://tar.goaccess.io/goaccess-"
4802 version ".tar.gz"))
4803 (sha256
4804 (base32
4805 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
4806 (modules '((guix build utils)))
4807 (snippet
4808 '(substitute* "src/error.h"
4809 (("__DATE__") "\"1970-01-01\"")
4810 (("__TIME__") "\"00:00:00\"")))))
4811 (build-system gnu-build-system)
4812 (inputs
4813 ;; TODO: Add dependency on geoip-tools.
4814 `(("glib" ,glib)
4815 ("ncurses" ,ncurses)))
4816 (native-inputs
4817 `(("pkg-config" ,pkg-config)))
4818 (home-page "https://goaccess.io")
4819 (synopsis "Analyze Web server logs in real time")
4820 (description
4821 "GoAccess is a real-time web log analyzer and interactive viewer that
4822runs in a terminal or through your browser. It provides fast and valuable
4823HTTP statistics for system administrators that require a visual server report
4824on the fly.")
4825 (license l:x11)))
bb6e6415
TGR
4826
4827(define-public httptunnel
4828 (package
4829 (name "httptunnel")
4830 (version "3.3")
4831 (source
4832 (origin
4833 (method url-fetch)
4834 (uri (string-append "http://www.nocrew.org/software/httptunnel/"
4835 name "-" version ".tar.gz"))
4836 (sha256
4837 (base32
4838 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
4839 (modules '((guix build utils)))
4840 (snippet
4841 ;; Remove non-free IETF RFC documentation.
4842 '(delete-file-recursively "doc"))))
4843 (build-system gnu-build-system)
4844 (arguments
4845 `(#:phases
4846 (modify-phases %standard-phases
4847 ;; The default configure phase tries to pass environment variables as
4848 ;; command-line arguments, which confuses the ./configure script.
4849 (replace 'configure
4850 (lambda* (#:key outputs #:allow-other-keys)
4851 (let* ((out (assoc-ref outputs "out")))
4852 (setenv "CONFIG_SHELL" (which "bash"))
4853 (zero? (system* "./configure"
4854 (string-append "--prefix=" out)))))))))
4855 (home-page "http://www.nocrew.org/software/httptunnel.html")
4856 (synopsis "Tunnel data connections through HTTP requests")
4857 (description "httptunnel creates a bidirectional virtual data connection
4858tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be
4859useful for users behind restrictive firewalls. As long as Web traffic is
4860allowed, even through a HTTP-only proxy, httptunnel can be combined with other
4861tools like SSH (Secure Shell) to reach the outside world.")
4862 (license l:gpl2+)))
864042c5
TD
4863
4864(define-public stunnel
4865 (package
4866 (name "stunnel")
4867 (version "5.39")
4868 (source
4869 (origin
4870 (method url-fetch)
4871 (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
4872 version ".tar.gz"))
4873 (sha256
4874 (base32
4875 "1vjdn32iw11zqsygwxbjmqgs4644dk3ql1h8ap890ls6a1x0i318"))))
4876 (build-system gnu-build-system)
4877 (inputs `(("openssl" ,openssl)))
4878 (arguments
4879 `(#:configure-flags
4880 (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))))
4881 (home-page "https://www.stunnel.org")
4882 (synopsis "TLS proxy for clients or servers")
4883 (description "Stunnel is a proxy designed to add TLS encryption
4884functionality to existing clients and servers without any changes in the
4885programs' code. Its architecture is optimized for security, portability, and
4886scalability (including load-balancing), making it suitable for large
4887deployments.")
4888 (license l:gpl2+)))
59ae241f
TD
4889
4890(define-public xinetd
4891 (package
4892 (name "xinetd")
4893 (version "2.3.15")
4894 (source
4895 (origin
4896 (method url-fetch)
4897 (uri "https://github.com/xinetd-org/xinetd/archive/xinetd-2-3-15.tar.gz")
4898 (patches (search-patches "xinetd-CVE-2013-4342.patch" "xinetd-fix-fd-leak.patch"))
4899 (sha256
4900 (base32
4901 "0k59x52cbzp5fw0n8zn0y54j1ps0x9b72y8k5grzswjdmgs2a2v2"))))
4902 (build-system gnu-build-system)
4903 (arguments
4904 `(#:configure-flags '("--with-loadavg")
4905 #:tests? #f )) ; no tests
4906 (home-page "https://github.com/xinetd-org/xinetd")
4907 (synopsis "Internet services daemon")
4908 (description "@code{xinetd}, a more secure replacement for @code{inetd},
4909listens for incoming requests over a network and launches the appropriate
4910service for that request. Requests are made using port numbers as identifiers
4911and xinetd usually launches another daemon to handle the request. It can be
4912used to start services with both privileged and non-privileged port numbers.")
4913 (license (l:fsf-free "file://COPYRIGHT"))))
1ad3c7f2 4914
4915(define-public tidy-html
4916 (package
4917 (name "tidy-html")
a0bd6fff 4918 (version "5.6.0")
1ad3c7f2 4919 (source
4920 (origin
4921 (method url-fetch)
4922 (uri (string-append "https://github.com/htacg/tidy-html5/archive/"
4923 version ".tar.gz"))
4924 (file-name (string-append name "-" version ".tar.gz"))
4925 (sha256
4926 (base32
a0bd6fff 4927 "0n29wcgw32rhnraj9j21ibhwi0xagmmcskhbaz8ihxly7nx3p9h8"))))
1ad3c7f2 4928 (build-system cmake-build-system)
4929 (outputs '("out"
4930 "static")) ; 1.0MiB of .a files
4931 (arguments
4932 `(#:tests? #f ; No tests available
4933 #:configure-flags (list "-DCMAKE_BUILD_TYPE=Release")
4934 #:phases
4935 (modify-phases %standard-phases
4936 (add-after 'install 'move-static-libraries
4937 (lambda* (#:key outputs #:allow-other-keys)
4938 ;; Move static libraries to the "static" output.
4939 (let* ((out (assoc-ref outputs "out"))
4940 (lib (string-append out "/lib"))
4941 (static (assoc-ref outputs "static"))
4942 (slib (string-append static "/lib")))
4943 (mkdir-p slib)
4944 (for-each (lambda (file)
4945 (install-file file slib)
4946 (delete-file file))
4947 (find-files lib "\\.a$"))
4948 #t))))))
4949 (native-inputs
4950 `(("libxslt" ,libxslt)))
4951 (home-page "http://www.html-tidy.org/")
4952 (synopsis "HTML Tidy with HTML5 support")
4953 (description
4954 "Tidy is a console application which corrects and cleans up
4955HTML and XML documents by fixing markup errors and upgrading
4956legacy code to modern standards.
4957
4958Tidy also provides @code{libtidy}, a C static and dynamic library that
4959developers can integrate into their applications to make use of the
4960functions of Tidy.")
4961 (license l:bsd-3)))
0491a3b2 4962
3190c307 4963(define-public hiawatha
4964 (package
4965 (name "hiawatha")
4966 (version "10.4")
4967 (source
4968 (origin
4969 (method url-fetch)
4970 (uri (string-append "https://www.hiawatha-webserver.org/files/"
4971 "hiawatha-" version ".tar.gz"))
4972 (modules '((guix build utils)))
4973 (snippet
4974 ;; We use our packaged mbedtls, so delete the included copy.
4975 '(delete-file-recursively "mbedtls"))
4976 (sha256
4977 (base32
4978 "0m2llzm72s29c32abnj03532m85fawvi8ybjpx6s3mgvx2yvq3p4"))))
4979 (build-system cmake-build-system)
4980 (arguments
4981 `(#:tests? #f ; No tests included
4982 #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
4983 (string-append "-DENABLE_TOMAHAWK=on")
4984 (string-append "-DWEBROOT_DIR="
4985 (assoc-ref %outputs "out")
4986 "/share/hiawatha/html"))
4987 #:phases
4988 (modify-phases %standard-phases
4989 (add-after 'install 'remove-empty-dirs
4990 (lambda* (#:key outputs #:allow-other-keys)
4991 (let* ((out (assoc-ref outputs "out")))
4992 ;; The directories in "var" are empty, remove them.
4993 (delete-file-recursively (string-append out "/var"))
4994 #t)))
4995 (add-after 'install 'wrap
4996 (lambda* (#:key inputs outputs #:allow-other-keys)
4997 ;; Make sure 'hiawatha' finds 'mbedtls'.
4998 (let* ((out (assoc-ref outputs "out"))
4999 (sbin (string-append out "/sbin"))
5000 (mbed (assoc-ref inputs "mbedtls-apache")))
5001 (wrap-program (string-append sbin "/hiawatha")
5002 `("PATH" ":" prefix (,mbed)))))))))
5003 (inputs
5004 ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha"
5005 `(("mbedtls-apache" ,mbedtls-apache) ;Hiawatha includes this version.
5006 ("zlib" ,zlib)
5007 ("libxslt" ,libxslt)
5008 ("libxml2" ,libxml2)))
5009 (home-page "https://www.hiawatha-webserver.org")
5010 (synopsis "Webserver with focus on security")
5011 (description
d4f6f78e 5012 "Hiawatha has been written with security in mind.
5013Features include the ability to stop SQL injections, XSS and CSRF attacks and
5014exploit attempts.")
3190c307 5015 (license l:gpl2)))
ce949c10
MFM
5016
5017(define-public python-httpbin
5018 (package
5019 (name "python-httpbin")
5020 (version "0.5.0")
5021 (source
5022 (origin
5023 (method url-fetch)
5024 (uri (pypi-uri "httpbin" version))
5025 (sha256
5026 (base32
5027 "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
5028 (build-system python-build-system)
5029 (propagated-inputs
5030 `(("python-decorator" ,python-decorator)
5031 ("python-flask" ,python-flask)
5032 ("python-itsdangerous" ,python-itsdangerous)
5033 ("python-markupsafe" ,python-markupsafe)
5034 ("python-six" ,python-six)))
5035 (home-page "https://github.com/Runscope/httpbin")
5036 (synopsis "HTTP request and response service")
5037 (description "Testing an HTTP Library can become difficult sometimes.
5038@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
5039response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
5040JSON-encoded.")
5041 (license l:isc)))
5042
5043(define-public python2-httpbin
5044 (package-with-python2 python-httpbin))
86ab1120
MFM
5045
5046(define-public python-pytest-httpbin
5047 (package
5048 (name "python-pytest-httpbin")
5049 (version "0.2.3")
5050 (source
5051 (origin
5052 (method url-fetch)
5053 (uri (pypi-uri "pytest-httpbin" version))
5054 (sha256
5055 (base32
5056 "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
5057 (build-system python-build-system)
5058 (propagated-inputs
5059 `(("python-six" ,python-six)
5060 ("python-httpbin" ,python-httpbin)
5061 ("python-pytest" ,python-pytest)))
5062 (home-page
5063 "https://github.com/kevin1024/pytest-httpbin")
5064 (synopsis
5065 "Test your HTTP library against a local copy of httpbin")
5066 (description
5067 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
5068into your tests. It automatically starts up a HTTP server in a separate thread running
5069@code{httpbin} and provides your test with the URL in the fixture.")
5070 (license l:expat)))
5071
5072(define-public python2-pytest-httpbin
5073 (package-with-python2 python-pytest-httpbin))
751f8582
RW
5074
5075(define-public http-parser
5076 (package
5077 (name "http-parser")
5078 (version "2.7.1")
5079 (source (origin
5080 (method url-fetch)
5081 (uri (string-append "https://github.com/nodejs/http-parser/"
5082 "archive/v" version ".tar.gz"))
5083 (file-name (string-append name "-" version ".tar.gz"))
5084 (sha256
5085 (base32
5086 "1cw6nf8xy4jhib1w0jd2y0gpqjbdasg8b7pkl2k2vpp54k9rlh3h"))))
5087 (build-system gnu-build-system)
5088 (arguments
5089 `(#:test-target "test"
5090 #:make-flags
5091 (list (string-append "PREFIX="
5092 (assoc-ref %outputs "out"))
5093 "CC=gcc" "library")
5094 #:phases
5095 (modify-phases %standard-phases
5096 (delete 'configure))))
5097 (home-page "https://github.com/nodejs/http-parser")
5098 (synopsis "HTTP request/response parser for C")
5099 (description "This is a parser for HTTP messages written in C. It parses
5100both requests and responses. The parser is designed to be used in
5101high-performance HTTP applications. It does not make any syscalls nor
5102allocations, it does not buffer data, it can be interrupted at anytime.
5103Depending on your architecture, it only requires about 40 bytes of data per
5104message stream (in a web server that is per connection).")
5105 (license l:expat)))
40b784b4
MFM
5106
5107(define-public python2-httpretty
5108 (package
5109 (name "python2-httpretty")
5110 (version "0.8.14")
5111 (source
5112 (origin
5113 (method url-fetch)
5114 (uri (pypi-uri "httpretty" version))
5115 (sha256
5116 (base32
5117 "0vlp5qkyw3pxwwsg7xmdcfh1csvypvaz4m6abida8s4xmjxpdhc3"))))
5118 (build-system python-build-system)
5119 (native-inputs
5120 `(("python-sphinx-rtd-theme" ,python2-sphinx-rtd-theme)
5121 ("python-sphinx" ,python2-sphinx)
5122 ("python-coverage" ,python2-coverage)
5123 ("python-tornado" ,python2-tornado)
5124 ("python-urllib3" ,python2-urllib3)
5125 ("python-sure" ,python2-sure)
5126 ("python-steadymark" ,python2-steadymark)
5127 ("python-requests" ,python2-requests)
5128 ("python-rednose" ,python2-rednose)
5129 ("python-nose-randomly" ,python2-nose-randomly)
5130 ("python-misaka" ,python2-misaka)
5131 ("python-pytest-httpbin" ,python2-pytest-httpbin)
5132 ("python-nose" ,python2-nose)))
5133 (arguments
5134 `(#:tests? #f
5135 ;; Requires mock>=1.3.0 which requires a more up-to-date
5136 ;; python-pbr. After updating these trying to build the
5137 ;; package leads to failures in python-flake8 and other
5138 ;; packages. The cascade of updates and failures this
5139 ;; leads to, seems to not be worth having the test run.
5140 #:python ,python-2
5141 #:phases
5142 (modify-phases %standard-phases
5143 (add-before 'build 'patch-test-requirements
5144 (lambda* (#:key inputs #:allow-other-keys)
5145 ;; Update requirements from dependecy==version
5146 ;; to dependency>=version
5147 (substitute* "development.txt"
5148 (("==") ">="))
5149 #t)))))
5150 (home-page "http://github.com/gabrielfalcao/httpretty")
5151 (synopsis "HTTP client mock for Python")
5152 (description "@code{httpretty} is a helper for faking web requests,
5153inspired by Ruby's @code{fakeweb}.")
5154 (license l:expat)))
0ac04232
AI
5155
5156(define-public jo
5157 (package
5158 (name "jo")
5159 (version "1.1")
5160 (source
5161 (origin
5162 (method url-fetch)
5163 (uri (string-append "https://github.com/jpmens/jo/releases/download/v"
5164 version "/jo-" version ".tar.gz"))
5165 (sha256
5166 (base32
5167 "0pysickpxrbl53c122h6swvz8sck68q3j0ql38wvbz70q9k4gvb3"))))
5168 (build-system gnu-build-system)
5169 (home-page "https://github.com/jpmens/jo")
5170 (synopsis "Output JSON from a shell")
5171 (description "jo is a command-line utility to create JSON objects or
5172arrays. It creates a JSON string on stdout from words provided as
5173command-line arguments or read from stdin.")
5174 (license (list l:gpl2+
5175 l:expat)))) ; json.c, json.h
95c36822
OP
5176
5177(define-public python-internetarchive
5178 (package
5179 (name "python-internetarchive")
25fa22a9 5180 (version "1.7.4")
95c36822
OP
5181 (source
5182 (origin
5183 (method url-fetch)
5184 (uri (string-append "https://github.com/jjjake/internetarchive/archive/"
5185 "v" version ".tar.gz"))
5186 (file-name (string-append name "-" version ".tar.gz"))
5187 (sha256
5188 (base32
25fa22a9 5189 "0sdbb2ag6vmybi8zmbjszi492a587giaaqxyy1p6gy03cb8mc512"))))
95c36822
OP
5190 (build-system python-build-system)
5191 (arguments
2cdf78df 5192 `(#:phases
95c36822
OP
5193 (modify-phases %standard-phases
5194 (delete 'check)
5195 (add-after 'install 'check
2cdf78df
OP
5196 (lambda* (#:key inputs outputs #:allow-other-keys)
5197 (add-installed-pythonpath inputs outputs)
5198 (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
5199 ":" (getenv "PATH")))
5200 (zero? (system* "py.test" "-v" "-k"
5201 (string-append
5202 ;; These tests attempt to make a connection to
5203 ;; an external web service.
5204 "not test_get_item_with_kwargs"
5205 " and not test_ia"))))))))
95c36822
OP
5206 (propagated-inputs
5207 `(("python-requests" ,python-requests)
5208 ("python-jsonpatch" ,python-jsonpatch-0.4)
5209 ("python-docopt" ,python-docopt)
5210 ("python-clint" ,python-clint)
5211 ("python-six" ,python-six)
5212 ("python-schema" ,python-schema-0.5)
5213 ("python-backports-csv" ,python-backports-csv)))
5214 (native-inputs
5215 `(("python-pytest-3.0" ,python-pytest-3.0)
5216 ("python-pytest-capturelog" ,python-pytest-capturelog)
5217 ("python-responses" ,python-responses)))
5218 (home-page "https://github.com/jjjake/internetarchive")
5219 (synopsis "Command-line interface to archive.org")
5220 (description "@code{ia} is a command-line tool for using
5221@url{archive.org} from the command-line. It also emplements the
5222internetarchive python module for programatic access to archive.org.")
5223 (properties
5224 `((python2-variant . ,(delay python2-internetarchive))))
5225 (license l:agpl3+)))
5226
5227(define-public python2-internetarchive
5228 (package-with-python2
5229 (strip-python2-variant python-internetarchive)))
a3cd23b6 5230
036f1eed
OP
5231(define-public python-clf
5232 (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
5233 (package
5234 (name "python-clf")
5235 (version "0.5.7")
5236 (source
5237 (origin
5238 (method url-fetch)
5239 (uri (pypi-uri "clf" version))
5240 (sha256
5241 (base32
5242 "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb"))))
5243 (build-system python-build-system)
5244 (propagated-inputs
5245 `(("python-docopt" ,python-docopt)
5246 ("python-pygments" ,python-pygments)
5247 ("python-requests" ,python-requests)
5248 ("python-nose" ,python-nose)
5249 ("python-lxml" ,python-lxml)
5250 ("python-pyaml" ,python-pyaml)))
5251 (inputs
5252 `(("test-clf"
5253 ,(origin
5254 (method url-fetch)
5255 (uri (string-append "https://raw.githubusercontent.com"
5256 "/ncrocfer/clf/" commit-test-clf
5257 "/test_clf.py"))
5258 (sha256
5259 (base32
5260 "19lr5zdzsmxgkg7wrjq1yzkiahd03wi4k3dskssyhmjls8c10nqd"))))))
5261 (arguments
5262 '(#:phases
5263 (modify-phases %standard-phases
5264 (add-after 'unpack 'get-tests
5265 (lambda _
5266 (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")))
5267 (replace 'check
5268 (lambda _
5269 (zero? (system* "nosetests"
5270 ;; These tests require internet connection
5271 "--exclude=test_browse"
5272 "--exclude=test_command"
5273 "--exclude=test_search")))))))
5274 (home-page "https://github.com/ncrocfer/clf")
5275 (synopsis "Search code snippets on @url{https://commandlinefu.com}")
5276 (description "@code{clf} is a command line tool for searching code
5277snippets on @url{https://commandlinefu.com}.")
5278 (license l:expat))))
5279
5280(define-public python2-clf
5281 (package-with-python2 python-clf))
5282
a3cd23b6
RW
5283(define-public r-shiny
5284 (package
5285 (name "r-shiny")
5286 (version "1.0.3")
5287 (source
5288 (origin
5289 (method url-fetch)
5290 (uri (string-append "https://github.com/rstudio/shiny/"
5291 "archive/v" version ".tar.gz"))
5292 (file-name (string-append name "-" version ".tar.gz"))
5293 (sha256
5294 (base32
5295 "0z2v2s4hd44mvzjn7r70549kdzkrrch9nxhp27r6x2cy6micizm3"))))
5296 (build-system r-build-system)
5297 (arguments
5298 `(#:modules ((guix build r-build-system)
5299 (guix build minify-build-system)
5300 (guix build utils)
5301 (ice-9 match))
5302 #:imported-modules (,@%r-build-system-modules
5303 (guix build minify-build-system))
5304 #:phases
5305 (modify-phases (@ (guix build r-build-system) %standard-phases)
5306 (add-after 'unpack 'replace-bundled-minified-JavaScript
5307 (lambda* (#:key inputs #:allow-other-keys)
5308 (let ((replace-file (lambda (old new)
5309 (format #t "replacing ~a with ~a\n" old new)
5310 (delete-file old)
5311 (symlink new old))))
5312 ;; NOTE: Files in ./inst/www/shared/datepicker/js/locales/
5313 ;; contain just data. They are not minified code, so we don't
5314 ;; replace them.
5315 (with-directory-excursion "inst/www/shared"
5316 (replace-file "bootstrap/shim/respond.min.js"
5317 (string-append (assoc-ref inputs "js-respond")
5318 "/share/javascript/respond.min.js"))
5319 (replace-file "bootstrap/shim/html5shiv.min.js"
5320 (string-append (assoc-ref inputs "js-html5shiv")
5321 "/share/javascript/html5shiv.min.js"))
5322 (replace-file "json2-min.js"
5323 (string-append (assoc-ref inputs "js-json2")
5324 "/share/javascript/json2.min.js"))
5325 (replace-file "strftime/strftime-min.js"
5326 (string-append (assoc-ref inputs "js-strftime")
5327 "/share/javascript/strftime.min.js"))
5328 (replace-file "highlight/highlight.pack.js"
5329 (string-append (assoc-ref inputs "js-highlight")
5330 "/share/javascript/highlight.min.js"))
5331 (replace-file "datatables/js/jquery.dataTables.min.js"
5332 (string-append (assoc-ref inputs "js-datatables")
5333 "/share/javascript/jquery.dataTables.min.js"))
5334 (replace-file "selectize/js/selectize.min.js"
5335 (string-append (assoc-ref inputs "js-selectize")
5336 "/share/javascript/selectize.min.js"))
5337 (replace-file "selectize/js/es5-shim.min.js"
5338 (string-append (assoc-ref inputs "js-es5-shim")
5339 "/share/javascript/es5-shim.min.js"))
5340 (for-each (match-lambda
5341 ((source . target)
5342 (delete-file target)
5343 (minify source #:target target)))
5344 '(("jqueryui/jquery-ui.js" .
5345 "jqueryui/jquery-ui.min.js")
5346 ("showdown/src/showdown.js" .
5347 "showdown/compressed/showdown.js")
5348 ("datepicker/js/bootstrap-datepicker.js" .
5349 "datepicker/js/bootstrap-datepicker.min.js")
5350 ("ionrangeslider/js/ion.rangeSlider.js" .
5351 "ionrangeslider/js/ion.rangeSlider.min.js")
5352 ("bootstrap/js/bootstrap.js" .
5353 "bootstrap/js/bootstrap.min.js")
5354 ("shiny.js" .
5355 "shiny.min.js")
5356 ("jquery.js" .
5357 "jquery.min.js")))))
5358 #t)))))
5359 (propagated-inputs
5360 `(("r-httpuv" ,r-httpuv)
5361 ("r-mime" ,r-mime)
5362 ("r-jsonlite" ,r-jsonlite)
5363 ("r-xtable" ,r-xtable)
5364 ("r-digest" ,r-digest)
5365 ("r-htmltools" ,r-htmltools)
5366 ("r-r6" ,r-r6)
5367 ("r-sourcetools" ,r-sourcetools)))
5368 (inputs
5369 `(("js-datatables" ,js-datatables)
5370 ("js-html5shiv" ,js-html5shiv)
5371 ("js-json2" ,js-json2)
5372 ("js-respond" ,js-respond)
5373 ("js-selectize" ,js-selectize)
5374 ("js-strftime" ,js-strftime)
5375 ("js-highlight" ,js-highlight)
5376 ("js-es5-shim" ,js-es5-shim)))
5377 (home-page "http://shiny.rstudio.com")
5378 (synopsis "Easy interactive web applications with R")
5379 (description
5380 "Makes it incredibly easy to build interactive web applications
5381with R. Automatic \"reactive\" binding between inputs and outputs and
5382extensive prebuilt widgets make it possible to build beautiful,
5383responsive, and powerful applications with minimal effort.")
5384 (license l:artistic2.0)))
8d6c845d
RW
5385
5386(define-public r-crosstalk
5387 (package
5388 (name "r-crosstalk")
5389 (version "1.0.0")
5390 (source
5391 (origin
5392 (method url-fetch)
5393 (uri (cran-uri "crosstalk" version))
5394 (sha256
5395 (base32
5396 "0lfa89vhrzi7a1rghmygcjr8gzddw35sinb3jx6g49mc9jias7mk"))))
5397 (build-system r-build-system)
5398 (propagated-inputs
5399 `(("r-ggplot2" ,r-ggplot2)
5400 ("r-htmltools" ,r-htmltools)
5401 ("r-jsonlite" ,r-jsonlite)
5402 ("r-lazyeval" ,r-lazyeval)
5403 ("r-r6" ,r-r6)
5404 ("r-shiny" ,r-shiny)))
5405 (home-page "https://rstudio.github.io/crosstalk/")
5406 (synopsis "Inter-widget interactivity for HTML widgets")
5407 (description
5408 "This package provides building blocks for allowing HTML widgets to
5409communicate with each other, with Shiny or without (i.e. static @code{.html}
5410files). It currently supports linked brushing and filtering.")
5411 (license l:expat)))
b723dedf
RW
5412
5413(define-public r-rook
5414 (package
5415 (name "r-rook")
5416 (version "1.1-1")
5417 (source
5418 (origin
5419 (method url-fetch)
5420 (uri (cran-uri "Rook" version))
5421 (sha256
5422 (base32
5423 "00s9a0kr9rwxvlq433daxjk4ji8m0w60hjdprf502msw9kxfrx00"))))
5424 (properties `((upstream-name . "Rook")))
5425 (build-system r-build-system)
5426 (propagated-inputs `(("r-brew" ,r-brew)))
5427 (home-page "http://cran.r-project.org/web/packages/Rook")
5428 (synopsis "Web server interface for R")
5429 (description
5430 "This package contains the Rook specification and convenience software
5431for building and running Rook applications. A Rook application is an R
5432reference class object that implements a @code{call} method or an R closure
5433that takes exactly one argument, an environment, and returns a list with three
5434named elements: the @code{status}, the @code{headers}, and the @code{body}.")
5435 (license l:gpl2)))
52d445f1
AI
5436
5437(define-public rss-bridge
5438 (package
5439 (name "rss-bridge")
5440 (version "2017-08-03")
5441 (source
5442 (origin
5443 (method url-fetch)
5444 (uri (string-append "https://github.com/RSS-Bridge/rss-bridge/archive/"
5445 version ".tar.gz"))
5446 (file-name (string-append name "-" version ".tar.gz"))
5447 (sha256
5448 (base32
5449 "05s16y552hbyj91s7bnlkx1bi64s6aw0fjy29az8via3i3b21yhl"))))
5450 (build-system trivial-build-system)
5451 (native-inputs
5452 `(("gzip" ,gzip)
5453 ("tar" ,tar)))
5454 (arguments
5455 '(#:modules ((guix build utils))
5456 #:builder
5457 (begin
5458 (use-modules (guix build utils)
5459 (ice-9 match))
5460 (let* ((out (assoc-ref %outputs "out"))
5461 (share-rss-bridge (string-append out "/share/rss-bridge")))
5462 (set-path-environment-variable
5463 "PATH" '("bin") (map (match-lambda ((_ . input) input))
5464 %build-inputs))
5465 (mkdir-p share-rss-bridge)
5466 (system* "tar" "xvf" (assoc-ref %build-inputs "source")
5467 "--strip-components" "1" "-C" share-rss-bridge)
5468 #t))))
5469 (home-page "https://github.com/RSS-Bridge/rss-bridge")
5470 (synopsis "Generate Atom feeds for social networking websites")
5471 (description "rss-bridge generates Atom feeds for social networking
5472websites lacking feeds. Supported websites include Facebook, Twitter,
5473Instagram and YouTube.")
5474 (license (list l:public-domain
5475 l:expat)))) ;; vendor/simplehtmldom/simple_html_dom.php
a00379e7
AI
5476
5477(define-public linkchecker
5478 (package
5479 (name "linkchecker")
5480 (version "9.3")
5481 (source
5482 (origin
5483 (method url-fetch)
5484 (uri (pypi-uri "LinkChecker" version))
5485 (sha256
5486 (base32
5487 "0v8pavf0bx33xnz1kwflv0r7lxxwj7vg3syxhy2wzza0wh6sc2pf"))))
5488 (build-system python-build-system)
5489 (inputs
5490 `(("python2-requests" ,python2-requests)))
5491 (arguments
5492 `(#:python ,python-2
5493 #:phases
5494 (modify-phases %standard-phases
5495 ;; Remove faulty python-requests version check. This has been fixed
5496 ;; upstream, and can be removed in version 9.4.
5497 (add-after 'unpack 'remove-python-requests-version
5498 (lambda _
5499 (substitute* "linkcheck/__init__.py"
5500 (("requests.__version__ <= '2.2.0'") "False"))
5501 #t)))))
5502 (home-page "https://linkcheck.github.io/linkchecker")
5503 (synopsis "Check websites for broken links")
5504 (description "LinkChecker is a website validator. It checks for broken
5505links in websites. It is recursive and multithreaded providing output in
5506colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It
5507supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local
5508file links.")
5509 (license (list l:gpl2+
5510 l:bsd-2 ; linkcheck/better_exchook2.py
5511 l:bsd-3 ; linkcheck/colorama.py
5512 l:psfl ; linkcheck/gzip2.py
5513 l:expat ; linkcheck/mem.py
5514 ;; FIXME: Unbundle dnspython and miniboa
5515 ;; This issue has been raised upstream
5516 ;; https://github.com/wummel/linkchecker/issues/729
5517 l:isc ; third_party/dnspython
5518 l:asl2.0)))) ; third_party/miniboa
ac713461 5519
5520(define-public cadaver
5521 (package
5522 (name "cadaver")
5523 (version "0.23.3")
5524 (source
5525 (origin
5526 (method url-fetch)
5527 (uri (string-append "http://www.webdav.org/cadaver/"
5528 name "-" version ".tar.gz"))
5529 (sha256
5530 (base32
5531 "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
5532 (build-system gnu-build-system)
5533 ;; TODO: Unbundle libneon and make build succeed with new neon.
5534 (arguments
5535 `(#:configure-flags (list "--with-ssl=openssl")
5536 #:tests? #f)) ;No tests included
5537 (native-inputs
5538 `(("gettext" ,gnu-gettext)
5539 ("pkg-config" ,pkg-config)
5540 ("intltool" ,intltool)))
5541 (inputs
5542 `(("expat" ,expat)
5543 ("openssl" ,openssl)))
5544 (home-page "http://www.webdav.org/cadaver")
5545 (synopsis "Command-line WebDAV client")
5546 (description
5547 "Cadaver is a command-line WebDAV client for Unix. It supports
5548file upload, download, on-screen display, namespace operations (move/copy),
5549collection creation and deletion, and locking operations.")
5550 (license l:gpl2)))
3aa440ca 5551
5552(define-public python-py-ubjson
5553 (package
5554 (name "python-py-ubjson")
5555 (version "0.10.0")
5556 (source
5557 (origin
5558 (method url-fetch)
5559 (uri (pypi-uri "py-ubjson" version))
5560 (sha256
5561 (base32
5562 "03l9m9w5ip4hw0y69wlys5gzsfb7zcq3a77blj88grgiqhn5vm5n"))))
5563 (build-system python-build-system)
5564 (home-page "https://github.com/Iotic-Labs/py-ubjson")
5565 (synopsis "Universal Binary JSON encoder/decoder")
5566 (description
5567 "Py-ubjson is a Python module providing an Universal Binary JSON
5568encoder/decoder based on the draft-12 specification for UBJSON.")
5569 (license l:asl2.0)))
91072287
JL
5570
5571(define-public java-tomcat
5572 (package
5573 (name "java-tomcat")
5574 (version "8.5.23")
5575 (source (origin
5576 (method url-fetch)
5577 (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
5578 version "/src/apache-tomcat-" version "-src.tar.gz"))
5579 (sha256
5580 (base32
5581 "1m6b1dikib46kbgz9gf0p6svi00nsw62b9kgjzn6sda151skbbza"))))
5582 (build-system ant-build-system)
5583 (inputs
5584 `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
5585 (native-inputs
5586 `(("java-junit" ,java-junit)))
5587 (arguments
5588 `(#:build-target "package"
5589 #:tests? #f; requires downloading some files.
5590 #:phases
5591 (modify-phases %standard-phases
5592 (add-after 'unpack 'prevent-download
5593 (lambda _
5594 ;; This directory must exist
5595 (mkdir "downloads")
5596 ;; We patch build.xml so it doesn't download any dependency, because
5597 ;; we already have all of them.
5598 (substitute* "build.xml"
5599 (("download-compile,") "")
5600 (("depends=\"validate\"") "depends=\"build-prepare\"")
5601 ((",download-validate") ""))
5602 #t))
5603 (add-after 'unpack 'generate-properties
5604 (lambda _
5605 ;; This could have been passed to make-flags, but getcwd returns
5606 ;; a different directory then.
5607 (with-output-to-file "build.properties"
5608 (lambda _
5609 (display
5610 (string-append "base.path=" (getcwd) "/downloads\n"))))
5611 #t))
5612 (replace 'install
5613 (install-jars "output/build/lib")))))
5614 (home-page "https://tomcat.apache.org")
5615 (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
5616WebSocket")
5617 (description "Apache Tomcat is a free implementation of the Java
5618Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
5619technologies.")
5620 (license l:asl2.0)))
339bef37
JL
5621
5622(define-public java-eclipse-jetty-test-helper
5623 (package
5624 (name "java-eclipse-jetty-test-helper")
5625 (version "4.2")
5626 (source (origin
5627 (method url-fetch)
5628 (uri (string-append "https://github.com/eclipse/jetty.toolchain/"
5629 "archive/jetty-test-helper-" version ".tar.gz"))
5630 (sha256
5631 (base32
5632 "1jd6r9wc26fa11si4rn2gvy8ml8q4zw1nr6v04mjp8wvwpgvzwx5"))))
5633 (build-system ant-build-system)
5634 (arguments
5635 `(#:jar-name "eclipse-jetty-test-helper.jar"
5636 #:source-dir "src/main/java"
5637 #:test-dir "src/test"
5638 #:jdk ,icedtea-8
5639 #:phases
5640 (modify-phases %standard-phases
5641 (add-before 'configure 'chdir
5642 (lambda _
5643 (chdir "jetty-test-helper")))
5644 (add-before 'build 'fix-paths
5645 (lambda _
5646 ;; TODO:
5647 ;; This file assumes that the build directory is named "target"
5648 ;; but it is not the case with our ant-build-system. Once we have
5649 ;; maven though, we will have to rebuild this package because this
5650 ;; assumption is correct with maven-build-system.
5651 (substitute*
5652 "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
5653 (("\"target\"") "\"build\"")
5654 (("\"tests\"") "\"test-classes\""))
5655 ;; Tests assume we are building with maven, so that the build
5656 ;; directory is named "target", and not "build".
5657 (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
5658 (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
5659 "MavenTestingUtilsTest.java")
5660 (("target/tests") "build/test-classes")
5661 (("\"target") "\"build")))
5662 #t)))))
5663 (inputs
5664 `(("junit" ,java-junit)
5665 ("hamcrest" ,java-hamcrest-all)))
5666 (home-page "https://www.eclipse.org/jetty/")
5667 (synopsis "Helper classes for jetty tests")
5668 (description "This packages contains helper classes for testing the Jetty
5669Web Server.")
5670 ;; This program is licensed under both epl and asl.
5671 (license (list l:epl1.0 l:asl2.0))))
1f985e44
JL
5672
5673(define-public java-eclipse-jetty-perf-helper
5674 (package
5675 (inherit java-eclipse-jetty-test-helper)
5676 (name "java-eclipse-jetty-perf-helper")
5677 (arguments
5678 `(#:jar-name "eclipse-jetty-perf-helper.jar"
5679 #:source-dir "src/main/java"
5680 #:tests? #f; no tests
5681 #:jdk ,icedtea-8
5682 #:phases
5683 (modify-phases %standard-phases
5684 (add-before 'configure 'chdir
5685 (lambda _
5686 (chdir "jetty-perf-helper")
5687 #t)))))
5688 (inputs
5689 `(("hdrhistogram" ,java-hdrhistogram)))))
1657d62a
JL
5690
5691(define-public java-eclipse-jetty-util
5692 (package
5693 (name "java-eclipse-jetty-util")
5694 (version "9.4.6")
5695 (source (origin
5696 (method url-fetch)
5697 (uri (string-append "https://github.com/eclipse/jetty.project/"
5698 "archive/jetty-" version ".v20170531.tar.gz"))
5699 (sha256
5700 (base32
5701 "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
5702 (build-system ant-build-system)
5703 (arguments
5704 `(#:jar-name "eclipse-jetty-util.jar"
5705 #:source-dir "src/main/java"
5706 #:test-exclude
5707 (list "**/Abstract*.java"
5708 ;; requires network
5709 "**/InetAddressSetTest.java"
5710 ;; Assumes we are using maven
5711 "**/TypeUtilTest.java"
5712 ;; Error on the style of log
5713 "**/StdErrLogTest.java")
5714 #:jdk ,icedtea-8
5715 #:phases
5716 (modify-phases %standard-phases
5717 (add-before 'configure 'chdir
5718 (lambda _
5719 (chdir "jetty-util")
5720 #t)))))
5721 (inputs
5722 `(("slf4j" ,java-slf4j-api)
5723 ("servlet" ,java-tomcat)))
5724 (native-inputs
5725 `(("junit" ,java-junit)
5726 ("hamcrest" ,java-hamcrest-all)
5727 ("perf-helper" ,java-eclipse-jetty-perf-helper)
5728 ("test-helper" ,java-eclipse-jetty-test-helper)))
5729 (home-page "https://www.eclipse.org/jetty/")
5730 (synopsis "Utility classes for Jetty")
5731 (description "The Jetty Web Server provides an HTTP server and Servlet
5732container capable of serving static and dynamic content either from a standalone
5733or embedded instantiation. This package provides utility classes.")
5734 (license (list l:epl1.0 l:asl2.0))))
5010671d
JL
5735
5736;; This version is required by maven-wagon
5737(define-public java-eclipse-jetty-util-9.2
5738 (package
5739 (inherit java-eclipse-jetty-util)
5740 (version "9.2.22")
5741 (source (origin
5742 (method url-fetch)
5743 (uri (string-append "https://github.com/eclipse/jetty.project/"
5744 "archive/jetty-" version ".v20170606.tar.gz"))
5745 (sha256
5746 (base32
5747 "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
5748 (arguments
5749 `(#:jar-name "eclipse-jetty-util.jar"
5750 #:source-dir "src/main/java"
5751 #:jdk ,icedtea-8
5752 #:test-exclude
5753 (list "**/Abstract*.java"
5754 ;; requires network
5755 "**/InetAddressSetTest.java"
5756 ;; Assumes we are using maven
5757 "**/TypeUtilTest.java"
5758 ;; We don't have an implementation for slf4j
5759 "**/LogTest.java"
5760 ;; Error on the style of log
5761 "**/StdErrLogTest.java")
5762 #:phases
5763 (modify-phases %standard-phases
5764 (add-before 'configure 'chdir
5765 (lambda _
5766 (chdir "jetty-util")
5767 #t))
5768 (add-before 'build 'fix-test-sources
5769 (lambda _
5770 ;; We need to fix issues caused by changes in newer versions of
5771 ;; jetty-test-helper
5772 (let ((src "src/test/java/org/eclipse/jetty/util/resource"))
5773 (substitute* (string-append src "/AbstractFSResourceTest.java")
5774 (("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
5775 (("testdir.getFile\\(\"foo\"\\)")
5776 "testdir.getPathFile(\"foo\").toFile()")
5777 (("testdir.getFile\\(name\\)")
5778 "testdir.getPathFile(name).toFile()")))
5779 #t)))))))
b510b7f5
JL
5780
5781(define-public java-eclipse-jetty-io
5782 (package
5783 (inherit java-eclipse-jetty-util)
5784 (name "java-eclipse-jetty-io")
5785 (arguments
5786 `(#:jar-name "eclipse-jetty-io.jar"
5787 #:source-dir "src/main/java"
5788 #:jdk ,icedtea-8
5789 #:test-exclude (list "**/Abstract*.java"
5790 ;; Abstract class
5791 "**/EndPointTest.java")
5792 #:phases
5793 (modify-phases %standard-phases
5794 (add-before 'configure 'chdir
5795 (lambda _
5796 (chdir "jetty-io")
5797 #t)))))
5798 (inputs
5799 `(("slf4j" ,java-slf4j-api)
5800 ("servlet" ,java-tomcat)
5801 ("util" ,java-eclipse-jetty-util)))
5802 (synopsis "Jetty :: IO Utility")
5803 (description "The Jetty Web Server provides an HTTP server and Servlet
5804container capable of serving static and dynamic content either from a standalone
5805or embedded instantiation. This package provides IO-related utility classes.")))
b90012fd
JL
5806
5807(define-public java-eclipse-jetty-io-9.2
5808 (package
5809 (inherit java-eclipse-jetty-io)
5810 (version (package-version java-eclipse-jetty-util-9.2))
5811 (source (package-source java-eclipse-jetty-util-9.2))
5812 (inputs
5813 `(("util" ,java-eclipse-jetty-util-9.2)
5814 ,@(package-inputs java-eclipse-jetty-util-9.2)))
5815 (native-inputs
5816 `(("mockito" ,java-mockito-1)
5817 ("cglib" ,java-cglib)
5818 ("objenesis" ,java-objenesis)
5819 ("asm" ,java-asm)
5820 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
4a1376d3
JL
5821
5822(define-public java-eclipse-jetty-http
5823 (package
5824 (inherit java-eclipse-jetty-util)
5825 (name "java-eclipse-jetty-http")
5826 (arguments
5827 `(#:jar-name "eclipse-jetty-http.jar"
5828 #:source-dir "src/main/java"
5829 #:jdk ,icedtea-8
5830 #:phases
5831 (modify-phases %standard-phases
5832 (add-before 'configure 'chdir
5833 (lambda _
5834 (chdir "jetty-http")
5835 #t))
5836 (add-before 'build 'copy-resources
5837 (lambda _
5838 (mkdir-p "build/classes")
5839 (copy-recursively "src/main/resources/" "build/classes/")
5840 #t)))))
5841 (inputs
5842 `(("slf4j" ,java-slf4j-api)
5843 ("servlet" ,java-tomcat)
5844 ("io" ,java-eclipse-jetty-io)
5845 ("util" ,java-eclipse-jetty-util)))
5846 (synopsis "Jetty :: Http Utility")
5847 (description "The Jetty Web Server provides an HTTP server and Servlet
5848container capable of serving static and dynamic content either from a standalone
5849or embedded instantiation. This package provides HTTP-related utility classes.")))
821869fc
JL
5850
5851(define-public java-eclipse-jetty-http-9.2
5852 (package
5853 (inherit java-eclipse-jetty-http)
5854 (version (package-version java-eclipse-jetty-util-9.2))
5855 (source (package-source java-eclipse-jetty-util-9.2))
5856 (inputs
5857 `(("util" ,java-eclipse-jetty-util-9.2)
5858 ("io" ,java-eclipse-jetty-io-9.2)
5859 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
4b172061
JL
5860
5861(define-public java-eclipse-jetty-jmx
5862 (package
5863 (inherit java-eclipse-jetty-util)
5864 (name "java-eclipse-jetty-jmx")
5865 (arguments
5866 `(#:jar-name "eclipse-jetty-jmx.jar"
5867 #:source-dir "src/main/java"
5868 #:jdk ,icedtea-8
5869 #:tests? #f; FIXME: requires com.openpojo.validation
5870 #:phases
5871 (modify-phases %standard-phases
5872 (add-before 'configure 'chdir
5873 (lambda _
5874 (chdir "jetty-jmx")
5875 #t)))))
5876 (inputs
5877 `(("slf4j" ,java-slf4j-api)
5878 ("servlet" ,java-tomcat)
5879 ("util" ,java-eclipse-jetty-util)))
5880 (synopsis "Jetty :: JMX Management")
5881 (description "The Jetty Web Server provides an HTTP server and Servlet
5882container capable of serving static and dynamic content either from a standalone
5883or embedded instantiation. This package provides the JMX management.")))
812c712f
JL
5884
5885(define-public java-eclipse-jetty-jmx-9.2
5886 (package
5887 (inherit java-eclipse-jetty-jmx)
5888 (version (package-version java-eclipse-jetty-util-9.2))
5889 (source (package-source java-eclipse-jetty-util-9.2))
5890 (inputs
5891 `(("util" ,java-eclipse-jetty-util-9.2)
5892 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
5d38f7e4
JL
5893
5894(define java-eclipse-jetty-http-test-classes
5895 (package
5896 (inherit java-eclipse-jetty-util)
5897 (name "java-eclipse-jetty-http-test-classes")
5898 (arguments
5899 `(#:jar-name "eclipse-jetty-http.jar"
5900 #:source-dir "src/test"
5901 #:tests? #f
5902 #:jdk ,icedtea-8
5903 #:phases
5904 (modify-phases %standard-phases
5905 (add-before 'configure 'chdir
5906 (lambda _
5907 (chdir "jetty-http"))))))
5908 (inputs
5909 `(("slf4j" ,java-slf4j-api)
5910 ("servlet" ,java-tomcat)
5911 ("http" ,java-eclipse-jetty-http)
5912 ("io" ,java-eclipse-jetty-io)
5913 ("util" ,java-eclipse-jetty-util)))))
5914
e36e2bee
JL
5915(define java-eclipse-jetty-http-test-classes-9.2
5916 (package
5917 (inherit java-eclipse-jetty-http-test-classes)
5918 (version (package-version java-eclipse-jetty-util-9.2))
5919 (source (package-source java-eclipse-jetty-util-9.2))
5920 (inputs
5921 `(("http" ,java-eclipse-jetty-http-9.2)
5922 ,@(package-inputs java-eclipse-jetty-http-9.2)))))
5923
5d38f7e4
JL
5924(define-public java-eclipse-jetty-server
5925 (package
5926 (inherit java-eclipse-jetty-util)
5927 (name "java-eclipse-jetty-server")
5928 (arguments
5929 `(#:jar-name "eclipse-jetty-server.jar"
5930 #:source-dir "src/main/java"
5931 #:jdk ,icedtea-8
5932 #:tests? #f; requires a mockito version we don't have
5933 #:phases
5934 (modify-phases %standard-phases
5935 (add-before 'configure 'chdir
5936 (lambda _
5937 (chdir "jetty-server")
5938 #t))
5939 (add-before 'build 'fix-source
5940 (lambda _
5941 ;; Explicit casts to prevent build failures
5942 (substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
5943 (("append\\(LazyList")
5944 "append((CharSequence)LazyList"))
5945 (substitute*
5946 "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
5947 (((string-append
5948 "Class<\\? extends EventListener> clazz = _classLoader==null"
5949 "\\?Loader.loadClass\\(ContextHandler.class,className\\):"
5950 "_classLoader.loadClass\\(className\\);"))
5951 (string-append "Class<? extends EventListener> clazz = "
5952 "(Class<? extends EventListener>) "
5953 "(_classLoader==null?Loader.loadClass("
5954 "ContextHandler.class,className):"
5955 "_classLoader.loadClass(className));")))
5956 #t)))))
5957 (inputs
5958 `(("slf4j" ,java-slf4j-api)
5959 ("servlet" ,java-tomcat)
5960 ("http" ,java-eclipse-jetty-http)
5961 ("io" ,java-eclipse-jetty-io)
5962 ("jmx" ,java-eclipse-jetty-jmx)
5963 ("util" ,java-eclipse-jetty-util)))
5964 (native-inputs
5965 `(("test-classes" ,java-eclipse-jetty-http-test-classes)
5966 ,@(package-native-inputs java-eclipse-jetty-util)))
5967 (synopsis "Core jetty server artifact")
5968 (description "The Jetty Web Server provides an HTTP server and Servlet
5969container capable of serving static and dynamic content either from a standalone
5970or embedded instantiation. This package provides the core jetty server
5971artifact.")))
e36e2bee
JL
5972
5973(define-public java-eclipse-jetty-server-9.2
5974 (package
5975 (inherit java-eclipse-jetty-server)
5976 (version (package-version java-eclipse-jetty-util-9.2))
5977 (source (package-source java-eclipse-jetty-util-9.2))
5978 (inputs
5979 `(("util" ,java-eclipse-jetty-util-9.2)
5980 ("jmx" ,java-eclipse-jetty-jmx-9.2)
5981 ("io" ,java-eclipse-jetty-io-9.2)
5982 ("http" ,java-eclipse-jetty-http-9.2)
5983 ,@(package-inputs java-eclipse-jetty-util-9.2)))
5984 (native-inputs
5985 `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
5986 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
8528e20d
JL
5987
5988(define-public java-eclipse-jetty-security
5989 (package
5990 (inherit java-eclipse-jetty-util)
5991 (name "java-eclipse-jetty-security")
5992 (arguments
5993 `(#:jar-name "eclipse-jetty-security.jar"
5994 #:source-dir "src/main/java"
5995 #:jdk ,icedtea-8
5996 #:phases
5997 (modify-phases %standard-phases
5998 (add-before 'configure 'chdir
5999 (lambda _
6000 (chdir "jetty-security")
6001 #t)))))
6002 (inputs
6003 `(("slf4j" ,java-slf4j-api)
6004 ("servlet" ,java-tomcat)
6005 ("http" ,java-eclipse-jetty-http)
6006 ("server" ,java-eclipse-jetty-server)
6007 ("util" ,java-eclipse-jetty-util)))
6008 (native-inputs
6009 `(("io" ,java-eclipse-jetty-io)
6010 ,@(package-native-inputs java-eclipse-jetty-util)))
6011 (synopsis "Jetty security infrastructure")
6012 (description "The Jetty Web Server provides an HTTP server and Servlet
6013container capable of serving static and dynamic content either from a standalone
6014or embedded instantiation. This package provides the core jetty security
6015infrastructure")))
fa2a23a1
JL
6016
6017(define-public java-eclipse-jetty-security-9.2
6018 (package
6019 (inherit java-eclipse-jetty-security)
6020 (version (package-version java-eclipse-jetty-util-9.2))
6021 (source (package-source java-eclipse-jetty-util-9.2))
6022 (inputs
6023 `(("util" ,java-eclipse-jetty-util-9.2)
6024 ("http" ,java-eclipse-jetty-http-9.2)
6025 ("server" ,java-eclipse-jetty-server-9.2)
6026 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6027 (native-inputs
6028 `(("io" ,java-eclipse-jetty-io-9.2)
6029 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
fb680f88
JL
6030
6031(define-public java-eclipse-jetty-servlet
6032 (package
6033 (inherit java-eclipse-jetty-util)
6034 (name "java-eclipse-jetty-servlet")
6035 (arguments
6036 `(#:jar-name "eclipse-jetty-servlet.jar"
6037 #:source-dir "src/main/java"
6038 #:jdk ,icedtea-8
6039 #:phases
6040 (modify-phases %standard-phases
6041 (add-before 'configure 'chdir
6042 (lambda _
6043 (chdir "jetty-servlet")
6044 #t)))))
6045 (inputs
6046 `(("slf4j" ,java-slf4j-api)
6047 ("servlet" ,java-tomcat)
6048 ("http" ,java-eclipse-jetty-http)
6049 ("http-test" ,java-eclipse-jetty-http-test-classes)
6050 ("io" ,java-eclipse-jetty-io)
6051 ("jmx" ,java-eclipse-jetty-jmx)
6052 ("security" ,java-eclipse-jetty-security)
6053 ("server" ,java-eclipse-jetty-server)
6054 ("util" ,java-eclipse-jetty-util)))
6055 (synopsis "Jetty Servlet Container")
6056 (description "The Jetty Web Server provides an HTTP server and Servlet
6057container capable of serving static and dynamic content either from a standalone
6058or embedded instantiation. This package provides the core jetty servlet
6059container.")))
213bb981
JL
6060
6061(define-public java-eclipse-jetty-servlet-9.2
6062 (package
6063 (inherit java-eclipse-jetty-servlet)
6064 (version (package-version java-eclipse-jetty-util-9.2))
6065 (source (package-source java-eclipse-jetty-util-9.2))
6066 (arguments
6067 `(#:jar-name "eclipse-jetty-servlet.jar"
6068 #:source-dir "src/main/java"
6069 #:jdk ,icedtea-8
6070 #:tests? #f; doesn't work
6071 #:phases
6072 (modify-phases %standard-phases
6073 (add-before 'configure 'chdir
6074 (lambda _
6075 (chdir "jetty-servlet")
6076 #t)))))
6077 (inputs
6078 `(("util" ,java-eclipse-jetty-util-9.2)
6079 ("jmx" ,java-eclipse-jetty-jmx-9.2)
6080 ("io" ,java-eclipse-jetty-io-9.2)
6081 ("http" ,java-eclipse-jetty-http-9.2)
6082 ("security" ,java-eclipse-jetty-security-9.2)
6083 ("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
6084 ("server" ,java-eclipse-jetty-server-9.2)
6085 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
0a9bdd95
P
6086
6087(define-public tidyp
6088 (package
6089 (name "tidyp")
6090 (version "1.04")
6091 (source
6092 (origin
6093 (method url-fetch)
6094 (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
6095 version ".tar.gz"))
6096 (sha256
6097 (base32
6098 "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
6099 (build-system gnu-build-system)
6100 ;; ./test-thing.sh tries to run ./testall.sh, which is not included.
6101 (arguments `(#:tests? #f))
6102 (home-page "http://www.tidyp.com/")
6103 (synopsis "Validate HTML")
6104 (description "Tidyp is a program that can validate your HTML, as well as
6105modify it to be more clean and standard. tidyp does not validate HTML 5.
6106
6107libtidyp is the library on which the program is based. It can be used by any
6108other program that can interface to it. The Perl module @code{HTML::Tidy} is
6109based on this library, allowing Perl programmers to easily validate HTML.")
6110 ;; See htmldoc/license.html
6111 (license l:bsd-3)))
7a04dddd
P
6112
6113(define-public perl-html-tidy
6114 (package
6115 (name "perl-html-tidy")
6116 (version "1.60")
6117 (source
6118 (origin
6119 (method url-fetch)
6120 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
6121 version ".tar.gz"))
6122 (sha256
6123 (base32
6124 "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
6125 (build-system perl-build-system)
6126 (arguments
6127 '(#:phases
6128 (modify-phases %standard-phases
6129 (add-after 'unpack 'fix-tidyp-paths
6130 (lambda* (#:key inputs #:allow-other-keys)
6131 (substitute* "Makefile.PL"
6132 (("^my \\$inc = \"" line)
6133 (string-append line
6134 "-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
6135 (("-L/usr/lib")
6136 (string-append
6137 "-L" (assoc-ref inputs "tidyp") "/lib")))
6138 #t)))))
6139 (inputs
6140 `(("perl-libwww" ,perl-libwww)
6141 ("tidyp" ,tidyp)))
6142 (native-inputs
6143 `(("perl-test-exception" ,perl-test-exception)))
6144 (home-page "http://search.cpan.org/dist/HTML-Tidy/")
6145 (synopsis "(X)HTML validation in a Perl object")
6146 (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
6147object. It's meant as a replacement for @code{HTML::Lint}, which is written
6148in Perl but is not nearly as capable as @code{HTML::Tidy}.")
6149 (license l:artistic2.0)))
6101cad4 6150
6151(define-public geomyidae
6152 (package
6153 (name "geomyidae")
6154 (version "0.29")
6155 (source
6156 (origin
6157 (method url-fetch)
6158 (uri (string-append "http://git.r-36.net/geomyidae/snapshot/"
6159 "geomyidae-" version ".tar.bz2"))
6160 (sha256
6161 (base32
6162 "0qxgxp6psfrgfqhndyq2z54nb1qrmvvljddnxdwp207jbz366bja"))))
6163 (build-system gnu-build-system)
6164 (arguments
6165 `(#:make-flags (list "CC=gcc"
6166 (string-append "PREFIX="
6167 (assoc-ref %outputs "out")))
6168 #:tests? #f ;no tests
6169 #:phases (modify-phases %standard-phases
6170 (delete 'configure))))
6171 (home-page "http://git.r-36.net/geomyidae")
6172 (synopsis "Small Gopher server")
6173 (description
6174 "Geomyidae is a server for distributed hypertext protocol Gopher. Its
6175features include:
6176
6177@enumerate
6178@item Gopher menus (see @file{index.gph} for an example);
6179@item directory listings (if no @file{index.gph} was found);
6180@item CGI support (@file{.cgi} files are executed);
6181@item search support in CGI files;
6182@item logging with multiple log levels.
6183@end enumerate\n")
6184 (license l:expat)))