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