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