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