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