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