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