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