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