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