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