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