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