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