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