gnu: websocketpp: Add patch for Boost >= 1.70.
[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 javascript)
107 #:use-module (gnu packages jemalloc)
108 #:use-module (gnu packages image)
109 #:use-module (gnu packages imagemagick)
110 #:use-module (gnu packages libevent)
111 #:use-module (gnu packages libidn)
112 #:use-module (gnu packages libunistring)
113 #:use-module (gnu packages linux)
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.6")
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 "1dipq90h3n1xdslwbijwlhbk84r7q0bswlbvi970may09lqsbd1w"))))
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.5.5")
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 "0830pjcvhzxh6yixj82x5k5r1xnadjqzi16kp53213icbly0r9ma"))))
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.5.0")
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 "0jsfz1zg4gwk0dq8i92ll12axs3s70wsdsmdyi71zx8zmvib5nl6"))))
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 "af1324855e1ecaf9b1dd7afcc714d09aaa38f081")
4198 (revision "6"))
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 "1qxs1sbyx894njw4f898wzc5shjj85h9kgz95p8mq1acmazhlhkv"))))
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-query-build-servers"))
4255 #t)))
4256 (delete 'strip)))) ; As the .go files aren't compatible
4257 (inputs
4258 `(("guix" ,guix)
4259 ("guile-fibers" ,guile-fibers)
4260 ("guile-json" ,guile-json-3)
4261 ("guile-email" ,guile-email)
4262 ("guile-squee" ,guile-squee)
4263 ("postgresql" ,postgresql)
4264 ("sqitch" ,sqitch)))
4265 (native-inputs
4266 `(("guile" ,guile-2.2)
4267 ("autoconf" ,autoconf)
4268 ("automake" ,automake)
4269 ("ephemeralpg" ,ephemeralpg)
4270 ("emacs-minimal" ,emacs-minimal)
4271 ("emacs-htmlize" ,emacs-htmlize)
4272 ("pkg-config" ,pkg-config)))
4273 (synopsis "Store and provide data about GNU Guix")
4274 (description
4275 "The Guix Data Service stores data about GNU Guix, and provides this
4276 through a web interface. It supports listening to the guix-commits mailing
4277 list to find out about new revisions, then loads the data from these in to a
4278 PostgreSQL database.")
4279 (home-page "http://data.guix.gnu.org/")
4280 (license license:agpl3+))))
4281
4282 (define-public gumbo-parser
4283 (package
4284 (name "gumbo-parser")
4285 (version "0.10.1")
4286 (source (origin
4287 (method url-fetch)
4288 (uri (string-append "https://github.com/google/"
4289 "gumbo-parser/archive/v" version ".tar.gz"))
4290 (file-name (string-append name "-" version ".tar.gz"))
4291 (sha256
4292 (base32
4293 "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8"))))
4294 (build-system gnu-build-system)
4295 (arguments
4296 `(#:tests? #f)) ;tests require bundling googletest sources
4297 ;; The release tarball lacks the generated files.
4298 (native-inputs
4299 `(("autoconf" ,autoconf)
4300 ("automake" ,automake)
4301 ("libtool" ,libtool)))
4302 (home-page "https://github.com/google/gumbo-parser")
4303 (synopsis "HTML5 parsing library")
4304 (description
4305 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as
4306 a pure C99 library.")
4307 (license license:asl2.0)))
4308
4309 (define-public uwsgi
4310 (package
4311 (name "uwsgi")
4312 (version "2.0.18")
4313 (source (origin
4314 (method url-fetch)
4315 (uri (string-append "https://projects.unbit.it/downloads/uwsgi-"
4316 version ".tar.gz"))
4317 (sha256
4318 (base32
4319 "10zmk4npknigmbqcq1wmhd461dk93159px172112vyq0i19sqwj9"))))
4320 (build-system gnu-build-system)
4321 (outputs '("out" "python"))
4322 (arguments
4323 '(;; XXX: The 'check' target runs cppcheck to do static code analysis.
4324 ;; But there is no obvious way to run the real tests.
4325 #:tests? #f
4326 #:phases
4327 (modify-phases %standard-phases
4328 (replace 'configure
4329 ;; Configuration is done by writing an ini file.
4330 (lambda* (#:key outputs #:allow-other-keys)
4331 (let* ((out (assoc-ref outputs "out"))
4332 (bindir (string-append out "/bin"))
4333 (plugindir (string-append out "/lib/uwsgi")))
4334 ;; The build phase outputs files to these directories directly.
4335 (mkdir-p bindir)
4336 (mkdir-p plugindir)
4337 ;; XXX: Enable other plugins.
4338 (call-with-output-file "buildconf/guix.ini"
4339 (lambda (port)
4340 (format port "[uwsgi]
4341 yaml = libyaml
4342 bin_name = ~a/uwsgi
4343 plugin_dir = ~a
4344
4345 inherit = base
4346 plugins = cgi,python
4347 embedded_plugins =
4348 " bindir plugindir))))
4349 (setenv "PROFILE" "guix")
4350 #t))
4351 (replace 'install
4352 ;; Move plugins into their own output.
4353 (lambda* (#:key outputs #:allow-other-keys)
4354 (let* ((out (assoc-ref outputs "out"))
4355 (plugindir (string-append out "/lib/uwsgi"))
4356 (python-plugin (string-append
4357 plugindir "/python_plugin.so")))
4358 (install-file python-plugin
4359 (string-append
4360 (assoc-ref outputs "python") "/lib/uwsgi"))
4361 (delete-file python-plugin)
4362 #t))))))
4363 (native-inputs
4364 `(("pkg-config" ,pkg-config)
4365 ("python" ,python-wrapper)))
4366 (inputs
4367 `(("jansson" ,jansson)
4368 ("libxml2" ,libxml2)
4369 ("libyaml" ,libyaml)
4370 ("openssl" ,openssl)
4371 ("pcre" ,pcre)
4372 ("zlib" ,zlib)
4373 ;; For plugins.
4374 ("python" ,python)))
4375 (home-page "https://uwsgi-docs.readthedocs.org/")
4376 (synopsis "Application container server")
4377 (description
4378 "uWSGI presents a complete stack for networked/clustered web applications,
4379 implementing message/object passing, caching, RPC and process management.
4380 It uses the uwsgi protocol for all the networking/interprocess communications.")
4381 (license license:gpl2+))) ; with linking exception
4382
4383 (define-public jq
4384 (package
4385 (name "jq")
4386 (version "1.6")
4387 (source
4388 (origin
4389 (method url-fetch)
4390 (uri (string-append "https://github.com/stedolan/jq"
4391 "/releases/download/jq-" version
4392 "/jq-" version ".tar.gz"))
4393 (sha256
4394 (base32 "0wmapfskhzfwranf6515nzmm84r7kwljgfs7dg6bjgxakbicis2x"))
4395 (modules '((guix build utils)))
4396 (snippet
4397 '(begin
4398 ;; Remove bundled onigurama.
4399 (delete-file-recursively "modules")
4400 #t))))
4401 (inputs
4402 `(("oniguruma" ,oniguruma)))
4403 (native-inputs
4404 `(;; TODO fix gems to generate documentation
4405 ;;("ruby" ,ruby)
4406 ;;("bundler" ,bundler)
4407 ("valgrind" ,valgrind)))
4408 (build-system gnu-build-system)
4409 (home-page "http://stedolan.github.io/jq/")
4410 (synopsis "Command-line JSON processor")
4411 (description "jq is like sed for JSON data – you can use it to slice and
4412 filter and map and transform structured data with the same ease that sed, awk,
4413 grep and friends let you play with text. It is written in portable C. jq can
4414 mangle the data format that you have into the one that you want with very
4415 little effort, and the program to do so is often shorter and simpler than
4416 you'd expect.")
4417 (license (list license:expat license:cc-by3.0))))
4418
4419 (define-public uhttpmock
4420 (package
4421 (name "uhttpmock")
4422 (version "0.5.1")
4423 (source
4424 (origin
4425 (method url-fetch)
4426 (uri (string-append "http://tecnocode.co.uk/downloads/uhttpmock/"
4427 name "-" version ".tar.xz"))
4428 (sha256
4429 (base32
4430 "163py4klka423x7li2b685gmg3a6hjf074mlff2ajhmi3l0lm8x6"))))
4431 (build-system glib-or-gtk-build-system)
4432 (native-inputs
4433 `(("gobject-introspection" ,gobject-introspection)
4434 ;; For check phase.
4435 ("glib-networking" ,glib-networking)
4436 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4437 ("pkg-config" ,pkg-config)))
4438 (inputs
4439 `(("libsoup" ,libsoup)))
4440 (home-page "https://gitlab.com/groups/uhttpmock")
4441 (synopsis "Library for mocking web service APIs which use HTTP or HTTPS")
4442 (description
4443 "Uhttpmock is a project for mocking web service APIs which use HTTP or
4444 HTTPS. It provides a library, libuhttpmock, which implements recording and
4445 playback of HTTP request/response traces.")
4446 (license license:lgpl2.1+)))
4447
4448 (define-public woof
4449 (package
4450 (name "woof")
4451 (version "2012-05-31")
4452 (source (origin
4453 (method url-fetch)
4454 (uri (string-append
4455 "http://www.home.unix-ag.org/simon/woof-"
4456 version ".py"))
4457 (sha256
4458 (base32
4459 "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq"))))
4460 (build-system trivial-build-system)
4461 (arguments
4462 '(#:modules ((guix build utils))
4463 #:builder
4464 (begin
4465 (use-modules (guix build utils))
4466 (let* ((source (assoc-ref %build-inputs "source"))
4467 (out (assoc-ref %outputs "out"))
4468 (bin (string-append out "/bin"))
4469 (python (assoc-ref %build-inputs "python")))
4470 (mkdir-p bin)
4471 (with-directory-excursion bin
4472 (copy-file source "woof")
4473 (patch-shebang "woof" (list (string-append python "/bin")))
4474 (chmod "woof" #o555))
4475 #t))))
4476 (inputs `(("python" ,python-2)))
4477 (home-page "http://www.home.unix-ag.org/simon/woof.html")
4478 (synopsis "Single file web server")
4479 (description "Woof (Web Offer One File) is a small simple web server that
4480 can easily be invoked on a single file. Your partner can access the file with
4481 tools they trust (e.g. wget).")
4482 (license license:gpl2+)))
4483
4484 (define netsurf-buildsystem
4485 (package
4486 (name "netsurf-buildsystem")
4487 (version "1.7")
4488 (source
4489 (origin
4490 (method url-fetch)
4491 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4492 "buildsystem-" version ".tar.gz"))
4493 (sha256
4494 (base32
4495 "1q23aaycv35ma5471l1gxib8lfq2s9kprrkaqgfc926d04rlbmhw"))))
4496 (build-system gnu-build-system)
4497 (inputs `(("perl" ,perl)))
4498 (arguments
4499 '(#:make-flags (list (string-append "PREFIX=" %output))
4500 #:tests? #f ;no tests
4501 #:phases (modify-phases %standard-phases
4502 (delete 'configure)
4503 (delete 'build))))
4504 (home-page "http://www.netsurf-browser.org")
4505 (synopsis "Build system for the Netsurf project")
4506 (description
4507 "This package provides the shared build system for Netsurf project
4508 libraries.")
4509 (license license:expat)))
4510
4511 (define netsurf-buildsystem-arguments
4512 `(#:make-flags `("COMPONENT_TYPE=lib-shared"
4513 "CC=gcc" "BUILD_CC=gcc"
4514 ,(string-append "PREFIX=" %output)
4515 ,(string-append "NSSHARED="
4516 (assoc-ref %build-inputs
4517 "netsurf-buildsystem")
4518 "/share/netsurf-buildsystem"))
4519 #:test-target "test"
4520 #:phases (modify-phases %standard-phases
4521 (delete 'configure))))
4522
4523 (define-public libparserutils
4524 (package
4525 (name "libparserutils")
4526 (version "0.2.4")
4527 (source
4528 (origin
4529 (method url-fetch)
4530 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4531 name "-" version "-src.tar.gz"))
4532 (sha256
4533 (base32
4534 "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
4535 (build-system gnu-build-system)
4536 (native-inputs
4537 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4538 ("pkg-config" ,pkg-config)
4539 ("perl" ,perl))) ;for test harness
4540 (arguments netsurf-buildsystem-arguments)
4541 (home-page "http://www.netsurf-browser.org/projects/libparserutils/")
4542 (synopsis "Parser building library")
4543 (description
4544 "LibParserUtils is a library for building efficient parsers, written in
4545 C. It is developed as part of the NetSurf project.")
4546 (license license:expat)))
4547
4548 (define-public hubbub
4549 (package
4550 (name "hubbub")
4551 (version "0.3.6")
4552 (source
4553 (origin
4554 (method url-fetch)
4555 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4556 "libhubbub-" version "-src.tar.gz"))
4557 (sha256
4558 (base32
4559 "1x3v7xvagx85v9h3pypzc86rcxs4mij87mmcqkp8pq50q6awfmnp"))
4560 (patches (search-patches "hubbub-sort-entities.patch"))))
4561 (build-system gnu-build-system)
4562 (native-inputs
4563 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4564 ("pkg-config" ,pkg-config)
4565 ("doxygen" ,doxygen)
4566 ("json-c" ,json-c-0.12) ; check whether json-c-0.12 can be removed
4567 ("perl" ,perl)))
4568 (propagated-inputs
4569 `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
4570 (arguments netsurf-buildsystem-arguments)
4571 (home-page "http://www.netsurf-browser.org/projects/hubbub/")
4572 (synopsis "HTML5 compliant parsing library")
4573 (description
4574 "Hubbub is an HTML5 compliant parsing library, written in C, which can
4575 parse both valid and invalid web content. It is developed as part of the
4576 NetSurf project.")
4577 (license license:expat)))
4578
4579 (define-public ikiwiki
4580 (package
4581 (name "ikiwiki")
4582 (version "3.20190228")
4583 (source
4584 (origin
4585 (method url-fetch)
4586 (uri (string-append "http://snapshot.debian.org/archive/debian/"
4587 "20190301T035241Z/pool/main/i/ikiwiki/ikiwiki_"
4588 version ".orig.tar.xz"))
4589 (sha256
4590 (base32
4591 "17pyblaqhkb61lxl63bzndiffism8k859p54k3k4sghclq6lsynh"))))
4592 (build-system perl-build-system)
4593 (arguments
4594 `(#:phases
4595 (modify-phases %standard-phases
4596 (add-after 'unpack 'include-PERL5LIB-in-wrapper
4597 (lambda _
4598 (substitute* "IkiWiki/Wrapper.pm"
4599 (("^@wrapper\\_hooks")
4600 (string-append
4601 "@wrapper_hooks\n"
4602 " addenv(\"PERL5LIB\", \""
4603 (getenv "PERL5LIB")
4604 "\");")))))
4605 (add-after 'patch-source-shebangs 'patch-Makefile
4606 (lambda _
4607 (substitute* "Makefile.PL"
4608 (("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
4609 #t))
4610 (add-after 'install 'wrap-programs
4611 (lambda* (#:key outputs #:allow-other-keys)
4612 (let* ((out (assoc-ref outputs "out"))
4613 (bin (string-append out "/bin/"))
4614 (path (getenv "PERL5LIB")))
4615 (for-each (lambda (file)
4616 (wrap-program file
4617 `("PERL5LIB" ":" prefix (,path))))
4618 (find-files bin))
4619 #t))))))
4620 (native-inputs
4621 `(("which" ,which)
4622 ("perl-html-tagset" ,perl-html-tagset)
4623 ("perl-timedate" ,perl-timedate)
4624 ("perl-xml-sax" ,perl-xml-sax)
4625 ("perl-xml-simple" ,perl-xml-simple)
4626 ("gettext" ,gettext-minimal)
4627 ("subversion" ,subversion)
4628 ("git" ,git)
4629 ("bazaar" ,bazaar)
4630 ("cvs" ,cvs)
4631 ("mercurial" ,mercurial)))
4632 (inputs
4633 `(("python" ,python-wrapper)
4634 ("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
4635 ("perl-cgi-session" ,perl-cgi-session)
4636 ("perl-cgi-simple" ,perl-cgi-simple)
4637 ("perl-db-file" ,perl-db-file)
4638 ("perl-html-parser" ,perl-html-parser)
4639 ("perl-html-scrubber" ,perl-html-scrubber)
4640 ("perl-html-template" ,perl-html-template)
4641 ("perl-image-magick" ,perl-image-magick)
4642 ("perl-json" ,perl-json)
4643 ("perl-text-markdown-discount" ,perl-text-markdown-discount)
4644 ("perl-uri" ,perl-uri)
4645 ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
4646 (home-page "https://ikiwiki.info/")
4647 (synopsis "Wiki compiler, capable of generating HTML")
4648 (description
4649 "Ikiwiki is a wiki compiler, capable of generating a static set of web
4650 pages, but also incorporating dynamic features like a web based editor and
4651 commenting.")
4652 (license license:gpl2+)))
4653
4654 (define-public libwapcaplet
4655 (package
4656 (name "libwapcaplet")
4657 (version "0.4.2")
4658 (source
4659 (origin
4660 (method url-fetch)
4661 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4662 "libwapcaplet-" version "-src.tar.gz"))
4663 (sha256
4664 (base32
4665 "1fjwzbn7j8bi1b9bvwxsy3i2cr6byq2s2d29866801pjnf528g86"))))
4666 (build-system gnu-build-system)
4667 (native-inputs
4668 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4669 ("pkg-config" ,pkg-config)
4670 ("check" ,check))) ;for tests
4671 (arguments netsurf-buildsystem-arguments)
4672 (home-page "http://www.netsurf-browser.org/projects/libwapcaplet/")
4673 (synopsis "String internment library")
4674 (description
4675 "LibWapcaplet provides a reference counted string internment system
4676 designed to store small strings and allow rapid comparison of them. It is
4677 developed as part of the Netsurf project.")
4678 (license license:expat)))
4679
4680 (define-public libcss
4681 (package
4682 (name "libcss")
4683 (version "0.9.0")
4684 (source
4685 (origin
4686 (method url-fetch)
4687 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4688 "libcss-" version "-src.tar.gz"))
4689 (sha256
4690 (base32
4691 "1vw9j3d2mr4wbvs8fyqmgslkbxknvac10456775hflxxcivbm3xr"))))
4692 (build-system gnu-build-system)
4693 (native-inputs
4694 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4695 ("pkg-config" ,pkg-config)
4696 ("perl" ,perl)))
4697 (propagated-inputs ;needed for libcss.pc
4698 `(("libparserutils" ,libparserutils)
4699 ("libwapcaplet" ,libwapcaplet)))
4700 (arguments netsurf-buildsystem-arguments)
4701 (home-page "http://www.netsurf-browser.org/projects/libcss/")
4702 (synopsis "CSS parser and selection library")
4703 (description
4704 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,
4705 written in C. It is developed as part of the NetSurf project.")
4706 (license license:expat)))
4707
4708 (define-public libdom
4709 (package
4710 (name "libdom")
4711 (version "0.4.0")
4712 (source
4713 (origin
4714 (method url-fetch)
4715 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4716 "libdom-" version "-src.tar.gz"))
4717 (sha256
4718 (base32
4719 "1ixkqsl3f7dl1kajksm0c231w1v5xy8z6hm3v67hgm9nh4qcvfcy"))))
4720 (build-system gnu-build-system)
4721 (native-inputs
4722 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4723 ("pkg-config" ,pkg-config)
4724 ("perl" ,perl) ;for test harness
4725 ("perl-libxml" ,perl-libxml)
4726 ("perl-switch" ,perl-switch)
4727 ("perl-xml-xpath" ,perl-xml-xpath)))
4728 (inputs
4729 `(("libparserutils" ,libparserutils)
4730 ("libwapcaplet" ,libwapcaplet)))
4731 (propagated-inputs
4732 `(("expat" ,expat) ;needed for headers and linking
4733 ("hubbub" ,hubbub))) ;for libdom.pc
4734 (arguments
4735 `(#:tests? #f ;TODO: re-enable. tests take a looong time.
4736 ,@netsurf-buildsystem-arguments))
4737 (home-page "http://www.netsurf-browser.org/projects/libdom/")
4738 (synopsis "Implementation of the W3C DOM")
4739 (description
4740 "LibDOM is an implementation of the W3C DOM, written in C. It is
4741 developed as part of the NetSurf project.")
4742 (license license:expat)))
4743
4744 (define-public libsvgtiny
4745 (package
4746 (name "libsvgtiny")
4747 (version "0.1.7")
4748 (source
4749 (origin
4750 (method url-fetch)
4751 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4752 name "-" version "-src.tar.gz"))
4753 (sha256
4754 (base32
4755 "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
4756 (build-system gnu-build-system)
4757 (native-inputs
4758 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4759 ("pkg-config" ,pkg-config)
4760 ("gperf" ,gperf-3.0)))
4761 (inputs
4762 `(("libwapcaplet" ,libwapcaplet)))
4763 (propagated-inputs
4764 `(("libdom" ,libdom))) ;for libsvgtiny.pc
4765 (arguments netsurf-buildsystem-arguments)
4766 (home-page "http://www.netsurf-browser.org/projects/libsvgtiny/")
4767 (synopsis "Library for parsing SVG files")
4768 (description
4769 "Libsvgtiny takes some SVG as input and returns a list of paths and texts
4770 which can be rendered easily, as defined in
4771 @url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf
4772 project.")
4773 (license license:expat)))
4774
4775 (define-public libnsbmp
4776 (package
4777 (name "libnsbmp")
4778 (version "0.1.5")
4779 (source
4780 (origin
4781 (method url-fetch)
4782 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4783 name "-" version "-src.tar.gz"))
4784 (sha256
4785 (base32
4786 "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35"))))
4787 (build-system gnu-build-system)
4788 (native-inputs
4789 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4790 (arguments netsurf-buildsystem-arguments)
4791 (home-page "http://www.netsurf-browser.org/projects/libnsbmp/")
4792 (synopsis "Decoding library for BMP and ICO files")
4793 (description
4794 "Libnsbmp is a decoding library for BMP and ICO image file formats,
4795 written in C. It is developed as part of the NetSurf project.")
4796 (license license:expat)))
4797
4798 (define-public libnsgif
4799 (package
4800 (name "libnsgif")
4801 (version "0.2.1")
4802 (source
4803 (origin
4804 (method url-fetch)
4805 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4806 name "-" version "-src.tar.gz"))
4807 (sha256
4808 (base32
4809 "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
4810 (build-system gnu-build-system)
4811 (native-inputs
4812 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4813 (arguments netsurf-buildsystem-arguments)
4814 (home-page "http://www.netsurf-browser.org/projects/libnsgif/")
4815 (synopsis "Decoding library for GIF files")
4816 (description
4817 "Libnsgif is a decoding library for the GIF image file format, written in
4818 C. It is developed as part of the NetSurf project.")
4819 (license license:expat)))
4820
4821 (define-public libnslog
4822 (package
4823 (name "libnslog")
4824 (version "0.1.2")
4825 (source
4826 (origin
4827 (method url-fetch)
4828 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4829 "libnslog-" version "-src.tar.gz"))
4830 (sha256
4831 (base32
4832 "1ggs6xvxp8fbg5w8pifalipm458ygr9ab6j2yvj8fnnmxwvdh4jd"))))
4833 (build-system gnu-build-system)
4834 (native-inputs
4835 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4836 ("pkg-config" ,pkg-config)
4837 ("check" ,check) ;for tests
4838 ("bison" ,bison)
4839 ("flex" ,flex)))
4840 (arguments netsurf-buildsystem-arguments)
4841 (home-page "http://www.netsurf-browser.org/")
4842 (synopsis "Logging library")
4843 (description
4844 "Libnslog provides a category-based logging library which supports
4845 complex logging filters, multiple log levels, and provides context through to
4846 client applications. It is developed as part of the NetSurf project.")
4847 (license license:expat)))
4848
4849 (define-public libnsutils
4850 (package
4851 (name "libnsutils")
4852 (version "0.0.5")
4853 (source
4854 (origin
4855 (method url-fetch)
4856 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4857 name "-" version "-src.tar.gz"))
4858 (sha256
4859 (base32
4860 "09w1rixps1iiq6wirjwxmd6h87llvjzvw565rahjb3rlyhcplfqf"))))
4861 (build-system gnu-build-system)
4862 (native-inputs
4863 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4864 (arguments netsurf-buildsystem-arguments)
4865 (home-page "http://www.netsurf-browser.org/")
4866 (synopsis "Utility library for NetSurf")
4867 (description
4868 "Libnsutils provides a small number of useful utility routines. It is
4869 developed as part of the NetSurf project.")
4870 (license license:expat)))
4871
4872 (define-public libnspsl
4873 (package
4874 (name "libnspsl")
4875 (version "0.1.5")
4876 (source
4877 (origin
4878 (method url-fetch)
4879 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4880 "libnspsl-" version "-src.tar.gz"))
4881 (sha256
4882 (base32
4883 "0siq8zjfxv75i9fw6q5hkaijpdm1w3zskd5qk6vsvz8cqan4vifd"))))
4884 (build-system gnu-build-system)
4885 (native-inputs
4886 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4887 (arguments netsurf-buildsystem-arguments)
4888 (home-page "http://www.netsurf-browser.org/")
4889 (synopsis "Library to generate a static Public Suffix List")
4890 (description
4891 "Libnspsl is a library to generate a static code representation of the
4892 Public Suffix List. It is developed as part of the NetSurf project.")
4893 (license license:expat)))
4894
4895 (define-public nsgenbind
4896 (package
4897 (name "nsgenbind")
4898 (version "0.7")
4899 (source
4900 (origin
4901 (method url-fetch)
4902 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4903 "nsgenbind-" version "-src.tar.gz"))
4904 (sha256
4905 (base32
4906 "0rplmky4afsjwiwh7grkmcdmzg86zksa55j93dvq92f91yljwqqq"))))
4907 (build-system gnu-build-system)
4908 (native-inputs
4909 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4910 ("bison" ,bison)
4911 ("flex" ,flex)))
4912 (arguments
4913 (substitute-keyword-arguments netsurf-buildsystem-arguments
4914 ((#:make-flags flags)
4915 `(delete "COMPONENT_TYPE=lib-shared" ,flags))))
4916 (home-page "http://www.netsurf-browser.org/")
4917 (synopsis "Generate JavaScript to DOM bindings")
4918 (description
4919 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from
4920 w3c webidl files and a binding configuration file.")
4921 (license license:expat)))
4922
4923 (define-public netsurf
4924 (package
4925 (name "netsurf")
4926 (version "3.9")
4927 (source
4928 (origin
4929 (method url-fetch)
4930 (uri (string-append "http://download.netsurf-browser.org/netsurf/"
4931 "releases/source/netsurf-" version "-src.tar.gz"))
4932 (sha256
4933 (base32
4934 "1hzcm2s2wh5sapgr000lg63hcdbj6hyajxl43xa1x80kc5piqbyp"))
4935 (patches (search-patches "netsurf-system-utf8proc.patch"
4936 "netsurf-y2038-tests.patch"
4937 "netsurf-longer-test-timeout.patch"
4938 "netsurf-message-timestamp.patch"))))
4939 (build-system glib-or-gtk-build-system)
4940 (native-inputs
4941 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4942 ("nsgenbind" ,nsgenbind)
4943 ("libidn" ,libidn) ;only for tests
4944 ("check" ,check)
4945 ("perl" ,perl)
4946 ("perl-html-parser" ,perl-html-parser)
4947 ("pkg-config" ,pkg-config)
4948 ("xxd" ,xxd)))
4949 (inputs
4950 `(("curl" ,curl)
4951 ("gtk+" ,gtk+-2)
4952 ("openssl" ,openssl)
4953 ("utf8proc" ,utf8proc)
4954 ("libpng" ,libpng)
4955 ("libjpeg" ,libjpeg)
4956 ("libcss" ,libcss)
4957 ("libdom" ,libdom)
4958 ("libnsbmp" ,libnsbmp)
4959 ("libnsgif" ,libnsgif)
4960 ("libnslog" ,libnslog)
4961 ("libnspsl" ,libnspsl)
4962 ("libnsutils" ,libnsutils)
4963 ("libsvgtiny" ,libsvgtiny)
4964 ("miscfiles" ,miscfiles)))
4965 (arguments
4966 `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
4967 ,(string-append "PREFIX=" %output)
4968 ,(string-append "NSSHARED="
4969 (assoc-ref %build-inputs
4970 "netsurf-buildsystem")
4971 "/share/netsurf-buildsystem"))
4972 #:test-target "test"
4973 #:modules ((ice-9 rdelim)
4974 (ice-9 match)
4975 (srfi srfi-1)
4976 (sxml simple)
4977 ,@%glib-or-gtk-build-system-modules)
4978 #:phases
4979 (modify-phases %standard-phases
4980 (delete 'configure)
4981 (add-after 'build 'adjust-welcome
4982 (lambda _
4983 ;; First, fix some unended tags and simple substitutions
4984 (substitute* "frontends/gtk/res/welcome.html"
4985 (("<(img|input)([^>]*)>" _ tag contents)
4986 (string-append "<" tag contents " />"))
4987 (("Licence") "License") ;prefer GNU spelling
4988 ((" open source") ", free software")
4989 (("web&nbsp;site") "website")
4990 ;; Prefer privacy-respecting default search engine
4991 (("www.google.co.uk") "www.duckduckgo.com/html")
4992 (("Google Search") "DuckDuckGo Search")
4993 (("name=\"btnG\"") ""))
4994 ;; Remove default links so it doesn't seem we're endorsing them
4995 (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
4996 (lambda (in out)
4997 ;; Leave the DOCTYPE header as is
4998 (display (read-line in 'concat) out)
4999 (sxml->xml
5000 (let rec ((sxml (xml->sxml in)))
5001 ;; We'd like to use sxml-match here, but it can't
5002 ;; match against generic tag symbols...
5003 (match sxml
5004 (`(div (@ (class "links")) . ,rest)
5005 '())
5006 ((x ...)
5007 (map rec x))
5008 (x x)))
5009 out)))
5010 #t))
5011 (add-before 'check 'patch-check
5012 (lambda* (#:key inputs #:allow-other-keys)
5013 (substitute* '("test/bloom.c" "test/hashtable.c")
5014 (("/usr/share/dict/words")
5015 (string-append (assoc-ref inputs "miscfiles") "/share/web2")))
5016 #t))
5017 (add-after 'install 'install-more
5018 (lambda* (#:key outputs #:allow-other-keys)
5019 (let* ((out (assoc-ref outputs "out"))
5020 (desktop (string-append out "/share/applications/"
5021 "netsurf.desktop")))
5022 (mkdir-p (dirname desktop))
5023 (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
5024 desktop)
5025 (substitute* desktop
5026 (("netsurf-gtk") (string-append out "/bin/netsurf-gtk"))
5027 (("netsurf.png") (string-append out "/share/netsurf/"
5028 "netsurf.xpm")))
5029 (install-file "docs/netsurf-gtk.1"
5030 (string-append out "/share/man/man1/"))
5031 #t))))))
5032 (home-page "http://www.netsurf-browser.org")
5033 (synopsis "Web browser")
5034 (description
5035 "NetSurf is a lightweight web browser that has its own layout and
5036 rendering engine entirely written from scratch. It is small and capable of
5037 handling many of the web standards in use today.")
5038 (license license:gpl2+)))
5039
5040 (define-public surfraw
5041 (package
5042 (name "surfraw")
5043 (version "2.3.0")
5044 (source
5045 (origin
5046 (method url-fetch)
5047 (uri (string-append "https://gitlab.com/surfraw/Surfraw/uploads/"
5048 "2de827b2786ef2fe43b6f07913ca7b7f/"
5049 "surfraw-" version ".tar.gz"))
5050 (sha256
5051 (base32 "099nbif0x5cbcf18snc58nx1a3q7z0v9br9p2jiq9pcc7ic2015d"))))
5052 (build-system gnu-build-system)
5053 (arguments
5054 `(#:phases
5055 (modify-phases %standard-phases
5056 (add-before 'configure 'patch-perl
5057 (lambda* (#:key inputs #:allow-other-keys)
5058 (let ((perl (assoc-ref inputs "perl")))
5059 (substitute* "surfraw.IN"
5060 (("perl -e")
5061 (string-append perl "/bin/perl -e")))
5062 #t)))
5063 (add-after 'install 'compress-elvi.1sr
5064 (lambda* (#:key outputs #:allow-other-keys)
5065 ;; The manpages of the elvis are symlinks to elvi.1sr.gz
5066 ;; but elvi.1sr does not get compressed by our manpage phase.
5067 (let* ((out (assoc-ref %outputs "out"))
5068 (man (string-append out "/share/man/man1")))
5069 (with-directory-excursion man
5070 (invoke "gzip" "elvi.1sr"))))))))
5071 (inputs
5072 `(("perl" ,perl)
5073 ("perl-www-opensearch" ,perl-www-opensearch)
5074 ("perl-html-parser" ,perl-html-parser)
5075 ("perl-libwww" ,perl-libwww)))
5076 (synopsis "Unix command line interface to the www")
5077 (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
5078 provides a unix command line interface to a variety of popular www search engines
5079 and similar services.")
5080 (home-page "https://surfraw.alioth.debian.org/")
5081 (license license:public-domain)))
5082
5083 (define-public darkhttpd
5084 (package
5085 (name "darkhttpd")
5086 (version "1.12")
5087 (source
5088 (origin
5089 (method url-fetch)
5090 (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
5091 version ".tar.bz2"))
5092 (sha256
5093 (base32
5094 "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
5095 (build-system gnu-build-system)
5096 (arguments
5097 `(#:make-flags '("CC=gcc")
5098 #:tests? #f ; No test suite
5099 #:phases
5100 (modify-phases %standard-phases
5101 (delete 'configure)
5102 (replace 'install
5103 (lambda* (#:key outputs #:allow-other-keys)
5104 (install-file "darkhttpd"
5105 (string-append (assoc-ref outputs "out")
5106 "/bin"))
5107 #t)))))
5108 (synopsis "Simple static web server")
5109 (description "darkhttpd is a simple static web server. It is
5110 standalone and does not need inetd or ucspi-tcp. It does not need any
5111 config files---you only have to specify the www root.")
5112 (home-page "https://unix4lyfe.org/darkhttpd/")
5113 (license license:isc)))
5114
5115 (define-public goaccess
5116 (package
5117 (name "goaccess")
5118 (version "1.0.2")
5119 (source (origin
5120 (method url-fetch)
5121 (uri (string-append "http://tar.goaccess.io/goaccess-"
5122 version ".tar.gz"))
5123 (sha256
5124 (base32
5125 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
5126 (modules '((guix build utils)))
5127 (snippet '(begin
5128 (substitute* "src/error.h"
5129 (("__DATE__") "\"1970-01-01\"")
5130 (("__TIME__") "\"00:00:00\""))
5131 #t))))
5132 (build-system gnu-build-system)
5133 (inputs
5134 ;; TODO: Add dependency on geoip-tools.
5135 `(("glib" ,glib)
5136 ("ncurses" ,ncurses)))
5137 (native-inputs
5138 `(("pkg-config" ,pkg-config)))
5139 (home-page "https://goaccess.io")
5140 (synopsis "Analyze Web server logs in real time")
5141 (description
5142 "GoAccess is a real-time web log analyzer and interactive viewer that
5143 runs in a terminal or through your browser. It provides fast and valuable
5144 HTTP statistics for system administrators that require a visual server report
5145 on the fly.")
5146 (license license:x11)))
5147
5148 (define-public httptunnel
5149 (package
5150 (name "httptunnel")
5151 (version "3.3")
5152 (source
5153 (origin
5154 (method url-fetch)
5155 (uri (string-append "http://www.nocrew.org/software/httptunnel/"
5156 name "-" version ".tar.gz"))
5157 (sha256
5158 (base32
5159 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
5160 (modules '((guix build utils)))
5161 (snippet '(begin
5162 ;; Remove non-free IETF RFC documentation.
5163 (delete-file-recursively "doc")
5164 #t))))
5165 (build-system gnu-build-system)
5166 (arguments
5167 `(#:phases
5168 (modify-phases %standard-phases
5169 ;; The default configure phase tries to pass environment variables as
5170 ;; command-line arguments, which confuses the ./configure script.
5171 (replace 'configure
5172 (lambda* (#:key outputs #:allow-other-keys)
5173 (let* ((out (assoc-ref outputs "out")))
5174 (setenv "CONFIG_SHELL" (which "bash"))
5175 (invoke "./configure"
5176 (string-append "--prefix=" out))))))))
5177 (home-page "http://www.nocrew.org/software/httptunnel.html")
5178 (synopsis "Tunnel data connections through HTTP requests")
5179 (description "httptunnel creates a bidirectional virtual data connection
5180 tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be
5181 useful for users behind restrictive firewalls. As long as Web traffic is
5182 allowed, even through a HTTP-only proxy, httptunnel can be combined with other
5183 tools like SSH (Secure Shell) to reach the outside world.")
5184 (license license:gpl2+)))
5185
5186 (define-public stunnel
5187 (package
5188 (name "stunnel")
5189 (version "5.55")
5190 (source
5191 (origin
5192 (method url-fetch)
5193 (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
5194 version ".tar.gz"))
5195 (sha256
5196 (base32 "0qjc0wkjf6bqz29fvwwsn9hnjhm6alsm10jcwx4jad2q3ks6kplh"))))
5197 (build-system gnu-build-system)
5198 (native-inputs
5199 ;; For tests.
5200 `(("iproute" ,iproute)
5201 ("netcat" ,netcat)
5202 ("procps" ,procps)))
5203 (inputs `(("openssl" ,openssl)))
5204 (arguments
5205 `(#:configure-flags
5206 (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
5207 #:phases
5208 (modify-phases %standard-phases
5209 (add-after 'unpack 'patch-output-directories
5210 (lambda _
5211 ;; Some (not all) Makefiles have a hard-coded incorrect docdir.
5212 (substitute* (list "Makefile.in"
5213 "doc/Makefile.in"
5214 "tools/Makefile.in")
5215 (("/doc/stunnel")
5216 (string-append "/doc/" ,name "-" ,version)))
5217 #t))
5218 (add-before 'check 'patch-tests
5219 (lambda _
5220 (substitute* "tests/make_test"
5221 (("/bin/sh ")
5222 (string-append (which "sh") " ")))
5223 #t)))))
5224 (home-page "https://www.stunnel.org")
5225 (synopsis "TLS proxy for clients or servers")
5226 (description "Stunnel is a proxy designed to add TLS encryption
5227 functionality to existing clients and servers without any changes in the
5228 programs' code. Its architecture is optimized for security, portability, and
5229 scalability (including load-balancing), making it suitable for large
5230 deployments.")
5231 (license license:gpl2+)))
5232
5233 (define-public varnish
5234 (package
5235 (name "varnish")
5236 (home-page "https://varnish-cache.org/")
5237 (version "6.3.1")
5238 (source (origin
5239 (method url-fetch)
5240 (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
5241 (sha256
5242 (base32
5243 "0xa14pd68zpi5hxcax3arl14rcmh5d1cdwa8gv4l5f23mmynr8ni"))))
5244 (build-system gnu-build-system)
5245 (arguments
5246 `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
5247 ;; Use absolute path of GCC so it's found at runtime.
5248 (string-append "PTHREAD_CC="
5249 (assoc-ref %build-inputs "gcc")
5250 "/bin/gcc")
5251 "--localstatedir=/var")
5252 #:phases
5253 (modify-phases %standard-phases
5254 (add-after 'unpack 'use-absolute-file-names
5255 (lambda _
5256 (substitute* '("bin/varnishtest/vtc_varnish.c"
5257 "bin/varnishtest/vtc_process.c"
5258 "bin/varnishd/mgt/mgt_vcc.c"
5259 "bin/varnishtest/tests/u00014.vtc")
5260 (("/bin/sh") (which "sh")))
5261 (substitute* "bin/varnishd/mgt/mgt_shmem.c"
5262 (("rm -rf") (string-append (which "rm") " -rf")))
5263 (substitute* "bin/varnishtest/vtc_main.c"
5264 (("/bin/rm") (which "rm")))
5265 #t))
5266 (add-before 'install 'patch-Makefile
5267 (lambda _
5268 (substitute* "Makefile"
5269 ;; Do not create /var/varnish during install.
5270 (("^install-data-am: install-data-local") "install-data-am: "))
5271 #t))
5272 (add-after 'install 'wrap-varnishd
5273 ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
5274 ;; environment variables to avoid propagating them to profiles.
5275 (lambda* (#:key inputs outputs #:allow-other-keys)
5276 (let* ((out (assoc-ref outputs "out"))
5277 (varnishd (string-append out "/sbin/varnishd"))
5278 (PATH (string-append (assoc-ref inputs "binutils") "/bin"))
5279 (LIBRARY_PATH (string-append (assoc-ref inputs "libc") "/lib")))
5280 (wrap-program varnishd
5281 ;; Add binutils to PATH so gcc finds the 'as' executable.
5282 `("PATH" ":" prefix (,PATH))
5283 ;; Make sure 'crti.o' et.al is found.
5284 `("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))
5285 #t))))))
5286 (native-inputs
5287 `(("pkg-config" ,pkg-config)
5288 ("python-sphinx" ,python-sphinx)
5289 ("rst2man" ,python-docutils)))
5290 (inputs
5291 `(("jemalloc" ,jemalloc)
5292 ("ncurses" ,ncurses)
5293 ("pcre" ,pcre)
5294 ("python" ,python-wrapper)
5295 ("readline" ,readline)))
5296 (synopsis "Web application accelerator")
5297 (description
5298 "Varnish is a high-performance HTTP accelerator. It acts as a caching
5299 reverse proxy and load balancer. You install it in front of any server that
5300 speaks HTTP and configure it to cache the contents through an extensive
5301 configuration language.")
5302 (license (list license:bsd-2 ;main distribution
5303 license:zlib ;lib/libvgz/*
5304 license:public-domain ;bin/varnishncsa/as64.c, include/miniobj.h
5305 license:bsd-3)))) ;include/vqueue.h, lib/libvarnishcompat/daemon.c
5306
5307 (define-public varnish-modules
5308 (package
5309 (name "varnish-modules")
5310 (home-page "https://github.com/varnish/varnish-modules")
5311 (version "0.15.0")
5312 (source (origin
5313 (method url-fetch)
5314 (uri (string-append "https://download.varnish-software.com"
5315 "/varnish-modules/varnish-modules-"
5316 version ".tar.gz"))
5317 (sha256
5318 (base32
5319 "09li9lqa1kb275w1rby2zldyg8r9cfcl4qyv53qyd9xbzilrz751"))))
5320 (build-system gnu-build-system)
5321 (native-inputs
5322 `(("pkg-config" ,pkg-config)))
5323 (inputs
5324 `(("python" ,python)
5325 ("varnish" ,varnish)))
5326 (synopsis "Collection of Varnish modules")
5327 (description
5328 "This package provides a collection of modules (@dfn{vmods}) for the Varnish
5329 cache server, extending the @dfn{Varnish Configuration Language} (VCL) with
5330 additional capabilities.")
5331 (license license:bsd-2)))
5332
5333 (define-public xinetd
5334 (package
5335 (name "xinetd")
5336 ;; This is the maintenance fork currently used by openSUSE and Debian.
5337 (version "2.3.15.4")
5338 (source
5339 (origin
5340 (method git-fetch)
5341 (uri (git-reference
5342 (url "https://github.com/openSUSE/xinetd.git")
5343 (commit version)))
5344 (file-name (git-file-name name version))
5345 (sha256
5346 (base32 "0lrp3lcj6azhjplwxws2rx40bkyp6i6bp7n77ndcisb7ninad30q"))))
5347 (build-system gnu-build-system)
5348 (arguments
5349 `(#:configure-flags '("--with-loadavg")
5350 #:tests? #f)) ; no tests
5351 (native-inputs
5352 `(("autoconf" ,autoconf)
5353 ("automake" ,automake)
5354 ("libtool" ,libtool)
5355 ("pkg-config" ,pkg-config)))
5356 (home-page "https://github.com/openSUSE/xinetd")
5357 (synopsis "Internet services daemon")
5358 (description "@code{xinetd}, a more secure replacement for @code{inetd},
5359 listens for incoming requests over a network and launches the appropriate
5360 service for that request. Requests are made using port numbers as identifiers
5361 and xinetd usually launches another daemon to handle the request. It can be
5362 used to start services with both privileged and non-privileged port numbers.")
5363 (license (license:fsf-free "file://COPYRIGHT"))))
5364
5365 (define-public tidy-html
5366 (package
5367 (name "tidy-html")
5368 (version "5.6.0")
5369 (source
5370 (origin
5371 (method url-fetch)
5372 (uri (string-append "https://github.com/htacg/tidy-html5/archive/"
5373 version ".tar.gz"))
5374 (file-name (string-append name "-" version ".tar.gz"))
5375 (sha256
5376 (base32
5377 "0n29wcgw32rhnraj9j21ibhwi0xagmmcskhbaz8ihxly7nx3p9h8"))))
5378 (build-system cmake-build-system)
5379 (outputs '("out"
5380 "static")) ; 1.0MiB of .a files
5381 (arguments
5382 `(#:tests? #f ; no tests available
5383 #:build-type "Release"
5384 #:phases
5385 (modify-phases %standard-phases
5386 (add-after 'install 'move-static-libraries
5387 (lambda* (#:key outputs #:allow-other-keys)
5388 ;; Move static libraries to the "static" output.
5389 (let* ((out (assoc-ref outputs "out"))
5390 (lib (string-append out "/lib"))
5391 (static (assoc-ref outputs "static"))
5392 (slib (string-append static "/lib")))
5393 (mkdir-p slib)
5394 (for-each (lambda (file)
5395 (install-file file slib)
5396 (delete-file file))
5397 (find-files lib "\\.a$"))
5398 #t))))))
5399 (native-inputs
5400 `(("libxslt" ,libxslt)))
5401 (home-page "http://www.html-tidy.org/")
5402 (synopsis "HTML Tidy with HTML5 support")
5403 (description
5404 "Tidy is a console application which corrects and cleans up
5405 HTML and XML documents by fixing markup errors and upgrading
5406 legacy code to modern standards.
5407
5408 Tidy also provides @code{libtidy}, a C static and dynamic library that
5409 developers can integrate into their applications to make use of the
5410 functions of Tidy.")
5411 (license license:bsd-3)))
5412
5413 (define-public hiawatha
5414 (package
5415 (name "hiawatha")
5416 (version "10.9")
5417 (source
5418 (origin
5419 (method url-fetch)
5420 (uri (string-append "https://www.hiawatha-webserver.org/files/"
5421 "hiawatha-" version ".tar.gz"))
5422 (modules '((guix build utils)))
5423 (snippet '(begin
5424 ;; We use packaged libraries, so delete the bundled copies.
5425 (for-each delete-file-recursively
5426 (list "extra/nghttp2.tgz" "mbedtls"))
5427 #t))
5428 (sha256
5429 (base32 "1f2j2x1ziawz8ijg3s3izqpyzpiwfyhlsvbv0szxvhvj4a0l7pbl"))))
5430 (build-system cmake-build-system)
5431 (arguments
5432 `(#:tests? #f ; no tests included
5433 #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
5434 (string-append "-DENABLE_HTTP2=on")
5435 (string-append "-DUSE_SYSTEM_NGHTTP2=on")
5436 (string-append "-DENABLE_TOMAHAWK=on")
5437 (string-append "-DLOG_DIR=/var/log/hiawatha")
5438 (string-append "-DPID_DIR=/run")
5439 (string-append "-DWEBROOT_DIR="
5440 (assoc-ref %outputs "out")
5441 "/share/hiawatha/html")
5442 (string-append "-DWORK_DIR=/var/lib/hiawatha"))
5443 #:phases
5444 (modify-phases %standard-phases
5445 (add-after 'unpack 'install-no-empty-directories
5446 (lambda _
5447 (substitute* "CMakeLists.txt"
5448 (("install\\(DIRECTORY DESTINATION" match)
5449 (string-append "#" match)))
5450 #t))
5451 (add-after 'install 'wrap
5452 (lambda* (#:key inputs outputs #:allow-other-keys)
5453 ;; Make sure 'hiawatha' finds 'mbedtls'.
5454 (let* ((out (assoc-ref outputs "out"))
5455 (sbin (string-append out "/sbin"))
5456 (mbed (assoc-ref inputs "mbedtls-apache")))
5457 (wrap-program (string-append sbin "/hiawatha")
5458 `("PATH" ":" prefix (,mbed)))))))))
5459 (inputs
5460 ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
5461 `(("libxslt" ,libxslt)
5462 ("libxml2" ,libxml2)
5463 ("mbedtls-apache" ,mbedtls-for-hiawatha)
5464 ("nghttp2" ,nghttp2 "lib")
5465 ("zlib" ,zlib)))
5466 (home-page "https://www.hiawatha-webserver.org")
5467 (synopsis "Webserver with focus on security")
5468 (description
5469 "Hiawatha has been written with security in mind.
5470 Features include the ability to stop SQL injections, XSS and CSRF attacks and
5471 exploit attempts.")
5472 (license license:gpl2)))
5473
5474 (define-public python-httpbin
5475 (package
5476 (name "python-httpbin")
5477 (version "0.5.0")
5478 (source
5479 (origin
5480 (method url-fetch)
5481 (uri (pypi-uri "httpbin" version))
5482 (sha256
5483 (base32
5484 "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
5485 (build-system python-build-system)
5486 (propagated-inputs
5487 `(("python-decorator" ,python-decorator)
5488 ("python-flask" ,python-flask)
5489 ("python-itsdangerous" ,python-itsdangerous)
5490 ("python-markupsafe" ,python-markupsafe)
5491 ("python-six" ,python-six)))
5492 (home-page "https://github.com/Runscope/httpbin")
5493 (synopsis "HTTP request and response service")
5494 (description "Testing an HTTP Library can become difficult sometimes.
5495 @code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
5496 response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
5497 JSON-encoded.")
5498 (license license:isc)))
5499
5500 (define-public python2-httpbin
5501 (package-with-python2 python-httpbin))
5502
5503 (define-public python-pytest-httpbin
5504 (package
5505 (name "python-pytest-httpbin")
5506 (version "0.2.3")
5507 (source
5508 (origin
5509 (method url-fetch)
5510 (uri (pypi-uri "pytest-httpbin" version))
5511 (sha256
5512 (base32
5513 "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
5514 (build-system python-build-system)
5515 (propagated-inputs
5516 `(("python-six" ,python-six)
5517 ("python-httpbin" ,python-httpbin)
5518 ("python-pytest" ,python-pytest)))
5519 (home-page
5520 "https://github.com/kevin1024/pytest-httpbin")
5521 (synopsis
5522 "Test your HTTP library against a local copy of httpbin")
5523 (description
5524 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
5525 into your tests. It automatically starts up a HTTP server in a separate thread running
5526 @code{httpbin} and provides your test with the URL in the fixture.")
5527 (license license:expat)))
5528
5529 (define-public python2-pytest-httpbin
5530 (package-with-python2 python-pytest-httpbin))
5531
5532 (define-public http-parser
5533 (package
5534 (name "http-parser")
5535 (version "2.9.2")
5536 (home-page "https://github.com/nodejs/http-parser")
5537 (source (origin
5538 (method git-fetch)
5539 (uri (git-reference (url home-page)
5540 (commit (string-append "v" version))))
5541 (file-name (git-file-name name version))
5542 (sha256
5543 (base32
5544 "1qs6x3n2nrcj1wiik5pg5i16inykf7rcfdfdy7rwyzf40pvdl3c2"))))
5545 (build-system gnu-build-system)
5546 (arguments
5547 `(#:test-target "test"
5548 #:make-flags
5549 (list (string-append "PREFIX="
5550 (assoc-ref %outputs "out"))
5551 "CC=gcc" "library")
5552 #:phases
5553 (modify-phases %standard-phases
5554 (delete 'configure))))
5555 (synopsis "HTTP request/response parser for C")
5556 (description "This is a parser for HTTP messages written in C. It parses
5557 both requests and responses. The parser is designed to be used in
5558 high-performance HTTP applications. It does not make any syscalls nor
5559 allocations, it does not buffer data, it can be interrupted at anytime.
5560 Depending on your architecture, it only requires about 40 bytes of data per
5561 message stream (in a web server that is per connection).")
5562 (license license:expat)))
5563
5564 (define-public python-httpretty
5565 (package
5566 (name "python-httpretty")
5567 (version "0.9.6")
5568 (source
5569 (origin
5570 (method url-fetch)
5571 (uri (pypi-uri "httpretty" version))
5572 (sha256
5573 (base32 "1p1rb4mpngh0632xrmdfhvc8yink519yfkqz97d2ww3y0x2jvd81"))))
5574 (build-system python-build-system)
5575 (propagated-inputs
5576 `(("python-six" ,python-six)))
5577 (native-inputs
5578 `(("python-coverage" ,python-coverage)
5579 ("python-httplib2" ,python-httplib2)
5580 ("python-mock" ,python-mock)
5581 ("python-nose" ,python-nose)
5582 ("python-nose-randomly" ,python-nose-randomly)
5583 ("python-rednose" ,python-rednose)
5584 ("python-requests" ,python-requests)
5585 ("python-sure" ,python-sure)
5586 ("python-tornado" ,python-tornado)
5587 ("python-urllib3" ,python-urllib3)))
5588 (home-page "https://httpretty.readthedocs.io")
5589 (synopsis "HTTP client mock for Python")
5590 (description "@code{httpretty} is a helper for faking web requests,
5591 inspired by Ruby's @code{fakeweb}.")
5592 (license license:expat)))
5593
5594 (define-public jo
5595 (package
5596 (name "jo")
5597 (version "1.3")
5598 (source
5599 (origin
5600 (method url-fetch)
5601 (uri (string-append "https://github.com/jpmens/jo/releases/download/"
5602 version "/jo-" version ".tar.gz"))
5603 (sha256
5604 (base32
5605 "0r6yb8pjsbcqfyac4240a0sj93pb91fv385bpk395cx3f5bcj9fy"))))
5606 (build-system gnu-build-system)
5607 (home-page "https://github.com/jpmens/jo")
5608 (synopsis "Output JSON from a shell")
5609 (description "jo is a command-line utility to create JSON objects or
5610 arrays. It creates a JSON string on stdout from words provided as
5611 command-line arguments or read from stdin.")
5612 (license (list license:gpl2+
5613 license:expat)))) ; json.c, json.h
5614
5615 (define-public python-internetarchive
5616 (package
5617 (name "python-internetarchive")
5618 (version "1.8.5")
5619 (source
5620 (origin
5621 (method git-fetch)
5622 (uri (git-reference
5623 (url "https://github.com/jjjake/internetarchive")
5624 (commit (string-append "v" version))))
5625 (file-name (git-file-name name version))
5626 (sha256
5627 (base32
5628 "0ih7hplv92wbv6cmgc1gs0v35qkajwicalwcq8vcljw30plr24fp"))
5629 (modules '((guix build utils)))
5630 (snippet
5631 '(begin
5632 ;; Python 3.7 removed `_pattern_type'.
5633 (for-each (lambda (file)
5634 (chmod file #o644)
5635 (substitute* file
5636 (("^import re\n" line)
5637 (string-append line "re._pattern_type = re.Pattern\n"))))
5638 (find-files "." "\\.py$"))
5639 #t))))
5640 (build-system python-build-system)
5641 (arguments
5642 `(#:phases
5643 (modify-phases %standard-phases
5644 (delete 'check)
5645 (add-after 'install 'check
5646 (lambda* (#:key inputs outputs #:allow-other-keys)
5647 (add-installed-pythonpath inputs outputs)
5648 (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
5649 ":" (getenv "PATH")))
5650 (invoke "py.test" "-v" "-k"
5651 (string-append
5652 ;; These tests attempt to make a connection to
5653 ;; an external web service.
5654 "not test_get_item_with_kwargs"
5655 " and not test_ia")))))))
5656 (propagated-inputs
5657 `(("python-requests" ,python-requests)
5658 ("python-jsonpatch" ,python-jsonpatch-0.4)
5659 ("python-docopt" ,python-docopt)
5660 ("python-clint" ,python-clint)
5661 ("python-six" ,python-six)
5662 ("python-schema" ,python-schema-0.5)
5663 ("python-backports-csv" ,python-backports-csv)))
5664 (native-inputs
5665 `(("python-pytest" ,python-pytest)
5666 ("python-pytest-capturelog" ,python-pytest-capturelog)
5667 ("python-responses" ,python-responses)))
5668 (home-page "https://github.com/jjjake/internetarchive")
5669 (synopsis "Command-line interface to archive.org")
5670 (description "@code{ia} is a command-line tool for using
5671 @url{archive.org} from the command-line. It also emplements the
5672 internetarchive python module for programmatic access to archive.org.")
5673 (license license:agpl3+)))
5674
5675 (define-public python-clf
5676 (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
5677 (package
5678 (name "python-clf")
5679 (version "0.5.7")
5680 (source
5681 (origin
5682 (method url-fetch)
5683 (uri (pypi-uri "clf" version))
5684 (sha256
5685 (base32
5686 "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb"))))
5687 (build-system python-build-system)
5688 (propagated-inputs
5689 `(("python-docopt" ,python-docopt)
5690 ("python-pygments" ,python-pygments)
5691 ("python-requests" ,python-requests)
5692 ("python-nose" ,python-nose)
5693 ("python-lxml" ,python-lxml)
5694 ("python-pyaml" ,python-pyaml)))
5695 (inputs
5696 `(("test-clf"
5697 ,(origin
5698 (method url-fetch)
5699 (uri (string-append "https://raw.githubusercontent.com"
5700 "/ncrocfer/clf/" commit-test-clf
5701 "/test_clf.py"))
5702 (sha256
5703 (base32
5704 "19lr5zdzsmxgkg7wrjq1yzkiahd03wi4k3dskssyhmjls8c10nqd"))))))
5705 (arguments
5706 '(#:phases
5707 (modify-phases %standard-phases
5708 (add-after 'unpack 'get-tests
5709 (lambda _
5710 (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")
5711 #t))
5712 (replace 'check
5713 (lambda _
5714 (invoke "nosetests"
5715 ;; These tests require an Internet connection.
5716 "--exclude=test_browse"
5717 "--exclude=test_command"
5718 "--exclude=test_search"))))))
5719 (home-page "https://github.com/ncrocfer/clf")
5720 (synopsis "Search code snippets on @url{https://commandlinefu.com}")
5721 (description "@code{clf} is a command line tool for searching code
5722 snippets on @url{https://commandlinefu.com}.")
5723 (license license:expat))))
5724
5725 (define-public python2-clf
5726 (package-with-python2 python-clf))
5727
5728 (define-public rss-bridge
5729 (package
5730 (name "rss-bridge")
5731 (version "2019-09-12")
5732 (source
5733 (origin
5734 (method git-fetch)
5735 (uri (git-reference
5736 (url "https://github.com/RSS-Bridge/rss-bridge")
5737 (commit version)))
5738 (file-name (git-file-name name version))
5739 (sha256
5740 (base32 "1mx7f3l45nqhcrng531l4cq8kpzm164hhbwn26g5akb2pamdlnra"))))
5741 (build-system trivial-build-system)
5742 (arguments
5743 '(#:modules ((guix build utils))
5744 #:builder
5745 (begin
5746 (use-modules (guix build utils)
5747 (ice-9 match))
5748 (let* ((out (assoc-ref %outputs "out"))
5749 (share-rss-bridge (string-append out "/share/rss-bridge")))
5750 (mkdir-p share-rss-bridge)
5751 (copy-recursively (assoc-ref %build-inputs "source") share-rss-bridge)
5752 #t))))
5753 (home-page "https://github.com/RSS-Bridge/rss-bridge")
5754 (synopsis "Generate Atom feeds for social networking websites")
5755 (description "rss-bridge generates Atom feeds for social networking
5756 websites lacking feeds. Supported websites include Facebook, Twitter,
5757 Instagram and YouTube.")
5758 (license (list license:public-domain
5759 license:expat)))) ; vendor/simplehtmldom/simple_html_dom.php
5760
5761 (define-public linkchecker
5762 (package
5763 (name "linkchecker")
5764 (version "9.4.0")
5765 (source
5766 (origin
5767 (method git-fetch)
5768 (uri (git-reference
5769 (url "https://github.com/linkchecker/linkchecker")
5770 (commit (string-append "v" version))))
5771 (patches
5772 (search-patches "linkchecker-tests-require-network.patch"))
5773 (file-name (git-file-name name version))
5774 (sha256
5775 (base32
5776 "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
5777 (build-system python-build-system)
5778 (inputs
5779 `(("python2-dnspython" ,python2-dnspython)
5780 ("python2-pyxdg" ,python2-pyxdg)
5781 ("python2-requests" ,python2-requests)))
5782 (native-inputs
5783 `(("gettext" ,gettext-minimal)
5784 ("python2-pytest" ,python2-pytest)
5785 ("python2-miniboa" ,python2-miniboa)
5786 ("python2-parameterized" ,python2-parameterized)))
5787 (arguments
5788 `(#:python ,python-2
5789 #:phases
5790 (modify-phases %standard-phases
5791 ;; Move the 'check phase to after 'install, so that the installed
5792 ;; library can be used
5793 (delete 'check)
5794 (add-after 'install 'check
5795 (lambda* (#:key outputs #:allow-other-keys)
5796 (let ((out (assoc-ref outputs "out")))
5797 ;; Set PYTHONPATH so that the installed linkchecker is used
5798 (setenv "PYTHONPATH"
5799 (string-append out "/lib/python2.7/site-packages"
5800 ":"
5801 (getenv "PYTHONPATH")))
5802 ;; Remove this directory to avoid it being used when running
5803 ;; the tests
5804 (delete-file-recursively "linkcheck")
5805
5806 (invoke "py.test" "tests"))
5807 #t)))))
5808 (home-page "https://linkcheck.github.io/linkchecker")
5809 (synopsis "Check websites for broken links")
5810 (description "LinkChecker is a website validator. It checks for broken
5811 links in websites. It is recursive and multithreaded providing output in
5812 colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It
5813 supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local
5814 file links.")
5815 (license (list license:gpl2+
5816 license:bsd-2 ; linkcheck/better_exchook2.py
5817 license:bsd-3 ; linkcheck/colorama.py
5818 license:psfl ; linkcheck/gzip2.py
5819 license:expat)))) ; linkcheck/mem.py
5820
5821 (define-public cadaver
5822 (package
5823 (name "cadaver")
5824 (version "0.23.3")
5825 (source
5826 (origin
5827 (method url-fetch)
5828 (uri (string-append "http://www.webdav.org/cadaver/"
5829 name "-" version ".tar.gz"))
5830 (sha256
5831 (base32
5832 "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
5833 (build-system gnu-build-system)
5834 ;; TODO: Unbundle libneon and make build succeed with new neon.
5835 (arguments
5836 `(#:configure-flags (list "--with-ssl=openssl")
5837 #:tests? #f)) ;No tests included
5838 (native-inputs
5839 `(("gettext" ,gnu-gettext)
5840 ("pkg-config" ,pkg-config)
5841 ("intltool" ,intltool)))
5842 (inputs
5843 `(("expat" ,expat)
5844 ("openssl" ,openssl)))
5845 (home-page "http://www.webdav.org/cadaver")
5846 (synopsis "Command-line WebDAV client")
5847 (description
5848 "Cadaver is a command-line WebDAV client for Unix. It supports
5849 file upload, download, on-screen display, namespace operations (move/copy),
5850 collection creation and deletion, and locking operations.")
5851 (license license:gpl2)))
5852
5853 (define-public python-py-ubjson
5854 (package
5855 (name "python-py-ubjson")
5856 (version "0.10.0")
5857 (source
5858 (origin
5859 (method url-fetch)
5860 (uri (pypi-uri "py-ubjson" version))
5861 (sha256
5862 (base32
5863 "03l9m9w5ip4hw0y69wlys5gzsfb7zcq3a77blj88grgiqhn5vm5n"))))
5864 (build-system python-build-system)
5865 (home-page "https://github.com/Iotic-Labs/py-ubjson")
5866 (synopsis "Universal Binary JSON encoder/decoder")
5867 (description
5868 "Py-ubjson is a Python module providing an Universal Binary JSON
5869 encoder/decoder based on the draft-12 specification for UBJSON.")
5870 (license license:asl2.0)))
5871
5872 (define-public java-tomcat
5873 (package
5874 (name "java-tomcat")
5875 (version "8.5.46")
5876 (source (origin
5877 (method url-fetch)
5878 (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
5879 version "/src/apache-tomcat-" version "-src.tar.gz"))
5880 (sha256
5881 (base32
5882 "0fb49gsqa3r6jrwc54yynvsakq9qbzr2pbxr7a29c2zvja2v65iq"))
5883 (modules '((guix build utils)))
5884 ;; Delete bundled jars.
5885 (snippet
5886 '(begin
5887 (for-each delete-file (find-files "." "\\.jar$"))
5888 (for-each delete-file (find-files "." "\\.bat$"))
5889 #t))))
5890 (build-system ant-build-system)
5891 (inputs
5892 `(("java-commons-daemon" ,java-commons-daemon)
5893 ("java-ecj" ,java-ecj)))
5894 (arguments
5895 `(#:build-target "deploy"
5896 #:tests? #f; requires downloading some files.
5897 #:phases
5898 (modify-phases %standard-phases
5899 (add-after 'unpack 'prevent-download
5900 (lambda _
5901 ;; This directory must exist
5902 (mkdir "downloads")
5903 ;; We patch build.xml so it doesn't download any dependency, because
5904 ;; we already have all of them.
5905 (substitute* "build.xml"
5906 (("download-compile,") "")
5907 (("depends=\"validate\"") "depends=\"build-prepare\"")
5908 ((",download-validate") ""))
5909 #t))
5910 (add-after 'unpack 'strip-timestamps
5911 (lambda _
5912 (substitute* "build.xml"
5913 (("<filter token=\"YEAR\" value=.*")
5914 "<filter token=\"YEAR\" value=\"1970\"/>")
5915 (("<filter token=\"VERSION_BUILT\" value=.*")
5916 "<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
5917 #t))
5918 (add-after 'unpack 'modify-deploy
5919 (lambda _
5920 ;; The Tomcat build downloads and copies these files to the
5921 ;; bin and lib directory.
5922 ;; We instead symlink to the input (see below).
5923 (substitute* "build.xml"
5924 (("<copy tofile=\"\\$\\{tomcat.build\\}/bin/commons-daemon.jar.*") "")
5925 (("<copy file=\"\\$\\{jdt.jar\\}\" todir=\"\\$\\{tomcat.build\\}/lib\"/>")
5926 ""))
5927 #t))
5928 (add-after 'install 'symlink-commons-daemon
5929 (lambda* (#:key inputs outputs #:allow-other-keys)
5930 (let* ((commons-daemon (assoc-ref inputs "java-commons-daemon"))
5931 (files (find-files commons-daemon "commons-daemon-.*\\.jar"))
5932 (daemon-jar (car files))
5933 (out-bin (string-append (assoc-ref outputs "out") "/bin"))
5934 (target (string-append out-bin "/commons-daemon.jar")))
5935 (symlink daemon-jar target)
5936 #t)))
5937 (add-after 'install 'symlink-java-ecj
5938 (lambda* (#:key inputs outputs #:allow-other-keys)
5939 (let* ((java-ecj (assoc-ref inputs "java-ecj"))
5940 (files (find-files java-ecj "ecj.*\\.jar"))
5941 (java-ecj-jar (car files))
5942 (out-lib (string-append (assoc-ref outputs "out") "/lib"))
5943 (target (string-append out-lib "/java-ecj.jar")))
5944 (symlink java-ecj-jar target)
5945 #t)))
5946 (add-after 'unpack 'generate-properties
5947 (lambda _
5948 ;; This could have been passed to make-flags, but getcwd returns
5949 ;; a different directory then.
5950 (with-output-to-file "build.properties"
5951 (lambda _
5952 (display
5953 (string-append "base.path=" (getcwd) "/downloads\n"))))
5954 #t))
5955 (replace 'install
5956 (lambda* (#:key outputs #:allow-other-keys)
5957 (let ((out (assoc-ref outputs "out")))
5958 (copy-recursively "output/build" out))
5959 #t)))))
5960 (home-page "https://tomcat.apache.org")
5961 (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
5962 WebSocket")
5963 (description "Apache Tomcat is a free implementation of the Java
5964 Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
5965 technologies.")
5966 (license license:asl2.0)))
5967
5968 (define-public java-eclipse-jetty-test-helper
5969 (package
5970 (name "java-eclipse-jetty-test-helper")
5971 (version "4.2")
5972 (source (origin
5973 (method url-fetch)
5974 (uri (string-append "https://github.com/eclipse/jetty.toolchain/"
5975 "archive/jetty-test-helper-" version ".tar.gz"))
5976 (sha256
5977 (base32
5978 "1jd6r9wc26fa11si4rn2gvy8ml8q4zw1nr6v04mjp8wvwpgvzwx5"))))
5979 (build-system ant-build-system)
5980 (arguments
5981 `(#:jar-name "eclipse-jetty-test-helper.jar"
5982 #:source-dir "src/main/java"
5983 #:test-dir "src/test"
5984 #:jdk ,icedtea-8
5985 #:phases
5986 (modify-phases %standard-phases
5987 (add-before 'configure 'chdir
5988 (lambda _
5989 (chdir "jetty-test-helper")
5990 #t))
5991 (add-before 'build 'fix-paths
5992 (lambda _
5993 ;; TODO:
5994 ;; This file assumes that the build directory is named "target"
5995 ;; but it is not the case with our ant-build-system. Once we have
5996 ;; maven though, we will have to rebuild this package because this
5997 ;; assumption is correct with maven-build-system.
5998 (substitute*
5999 "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
6000 (("\"target\"") "\"build\"")
6001 (("\"tests\"") "\"test-classes\""))
6002 ;; Tests assume we are building with maven, so that the build
6003 ;; directory is named "target", and not "build".
6004 (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
6005 (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
6006 "MavenTestingUtilsTest.java")
6007 (("target/tests") "build/test-classes")
6008 (("\"target") "\"build")))
6009 #t)))))
6010 (inputs
6011 `(("junit" ,java-junit)
6012 ("hamcrest" ,java-hamcrest-all)))
6013 (home-page "https://www.eclipse.org/jetty/")
6014 (synopsis "Helper classes for jetty tests")
6015 (description "This package contains helper classes for testing the Jetty
6016 Web Server.")
6017 ;; This program is licensed under both epl and asl.
6018 (license (list license:epl1.0 license:asl2.0))))
6019
6020 (define-public java-eclipse-jetty-perf-helper
6021 (package
6022 (inherit java-eclipse-jetty-test-helper)
6023 (name "java-eclipse-jetty-perf-helper")
6024 (arguments
6025 `(#:jar-name "eclipse-jetty-perf-helper.jar"
6026 #:source-dir "src/main/java"
6027 #:tests? #f; no tests
6028 #:jdk ,icedtea-8
6029 #:phases
6030 (modify-phases %standard-phases
6031 (add-before 'configure 'chdir
6032 (lambda _
6033 (chdir "jetty-perf-helper")
6034 #t)))))
6035 (inputs
6036 `(("hdrhistogram" ,java-hdrhistogram)))))
6037
6038 (define-public java-eclipse-jetty-util
6039 (package
6040 (name "java-eclipse-jetty-util")
6041 (version "9.4.6")
6042 (source (origin
6043 (method url-fetch)
6044 (uri (string-append "https://github.com/eclipse/jetty.project/"
6045 "archive/jetty-" version ".v20170531.tar.gz"))
6046 (sha256
6047 (base32
6048 "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
6049 (build-system ant-build-system)
6050 (arguments
6051 `(#:jar-name "eclipse-jetty-util.jar"
6052 #:source-dir "src/main/java"
6053 #:test-exclude
6054 (list "**/Abstract*.java"
6055 ;; requires network
6056 "**/InetAddressSetTest.java"
6057 ;; Assumes we are using maven
6058 "**/TypeUtilTest.java"
6059 ;; Error on the style of log
6060 "**/StdErrLogTest.java")
6061 #:jdk ,icedtea-8
6062 #:phases
6063 (modify-phases %standard-phases
6064 (add-before 'configure 'chdir
6065 (lambda _
6066 (chdir "jetty-util")
6067 #t)))))
6068 (inputs
6069 `(("slf4j" ,java-slf4j-api)
6070 ("servlet" ,java-javaee-servletapi)))
6071 (native-inputs
6072 `(("junit" ,java-junit)
6073 ("hamcrest" ,java-hamcrest-all)
6074 ("perf-helper" ,java-eclipse-jetty-perf-helper)
6075 ("test-helper" ,java-eclipse-jetty-test-helper)))
6076 (home-page "https://www.eclipse.org/jetty/")
6077 (synopsis "Utility classes for Jetty")
6078 (description "The Jetty Web Server provides an HTTP server and Servlet
6079 container capable of serving static and dynamic content either from a standalone
6080 or embedded instantiation. This package provides utility classes.")
6081 (license (list license:epl1.0 license:asl2.0))))
6082
6083 ;; This version is required by maven-wagon
6084 (define-public java-eclipse-jetty-util-9.2
6085 (package
6086 (inherit java-eclipse-jetty-util)
6087 (version "9.2.22")
6088 (source (origin
6089 (method url-fetch)
6090 (uri (string-append "https://github.com/eclipse/jetty.project/"
6091 "archive/jetty-" version ".v20170606.tar.gz"))
6092 (sha256
6093 (base32
6094 "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
6095 (arguments
6096 `(#:jar-name "eclipse-jetty-util.jar"
6097 #:source-dir "src/main/java"
6098 #:jdk ,icedtea-8
6099 #:test-exclude
6100 (list "**/Abstract*.java"
6101 ;; requires network
6102 "**/InetAddressSetTest.java"
6103 ;; Assumes we are using maven
6104 "**/TypeUtilTest.java"
6105 ;; We don't have an implementation for slf4j
6106 "**/LogTest.java"
6107 ;; Error on the style of log
6108 "**/StdErrLogTest.java")
6109 #:phases
6110 (modify-phases %standard-phases
6111 (add-before 'configure 'chdir
6112 (lambda _
6113 (chdir "jetty-util")
6114 #t))
6115 (add-before 'build 'fix-test-sources
6116 (lambda _
6117 ;; We need to fix issues caused by changes in newer versions of
6118 ;; jetty-test-helper
6119 (let ((src "src/test/java/org/eclipse/jetty/util/resource"))
6120 (substitute* (string-append src "/AbstractFSResourceTest.java")
6121 (("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
6122 (("testdir.getFile\\(\"foo\"\\)")
6123 "testdir.getPathFile(\"foo\").toFile()")
6124 (("testdir.getFile\\(name\\)")
6125 "testdir.getPathFile(name).toFile()")))
6126 #t)))))))
6127
6128 (define-public java-eclipse-jetty-io
6129 (package
6130 (inherit java-eclipse-jetty-util)
6131 (name "java-eclipse-jetty-io")
6132 (arguments
6133 `(#:jar-name "eclipse-jetty-io.jar"
6134 #:source-dir "src/main/java"
6135 #:jdk ,icedtea-8
6136 #:test-exclude (list "**/Abstract*.java"
6137 ;; Abstract class
6138 "**/EndPointTest.java")
6139 #:phases
6140 (modify-phases %standard-phases
6141 (add-before 'configure 'chdir
6142 (lambda _
6143 (chdir "jetty-io")
6144 #t)))))
6145 (inputs
6146 `(("slf4j" ,java-slf4j-api)
6147 ("servlet" ,java-javaee-servletapi)
6148 ("util" ,java-eclipse-jetty-util)))
6149 (synopsis "Jetty :: IO Utility")
6150 (description "The Jetty Web Server provides an HTTP server and Servlet
6151 container capable of serving static and dynamic content either from a standalone
6152 or embedded instantiation. This package provides IO-related utility classes.")))
6153
6154 (define-public java-eclipse-jetty-io-9.2
6155 (package
6156 (inherit java-eclipse-jetty-io)
6157 (version (package-version java-eclipse-jetty-util-9.2))
6158 (source (package-source java-eclipse-jetty-util-9.2))
6159 (inputs
6160 `(("util" ,java-eclipse-jetty-util-9.2)
6161 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6162 (native-inputs
6163 `(("mockito" ,java-mockito-1)
6164 ("cglib" ,java-cglib)
6165 ("objenesis" ,java-objenesis)
6166 ("asm" ,java-asm)
6167 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6168
6169 (define-public java-eclipse-jetty-http
6170 (package
6171 (inherit java-eclipse-jetty-util)
6172 (name "java-eclipse-jetty-http")
6173 (arguments
6174 `(#:jar-name "eclipse-jetty-http.jar"
6175 #:source-dir "src/main/java"
6176 #:jdk ,icedtea-8
6177 #:phases
6178 (modify-phases %standard-phases
6179 (add-before 'configure 'chdir
6180 (lambda _
6181 (chdir "jetty-http")
6182 #t))
6183 (add-before 'build 'copy-resources
6184 (lambda _
6185 (mkdir-p "build/classes")
6186 (copy-recursively "src/main/resources/" "build/classes/")
6187 #t)))))
6188 (inputs
6189 `(("slf4j" ,java-slf4j-api)
6190 ("servlet" ,java-javaee-servletapi)
6191 ("io" ,java-eclipse-jetty-io)
6192 ("util" ,java-eclipse-jetty-util)))
6193 (synopsis "Jetty :: Http Utility")
6194 (description "The Jetty Web Server provides an HTTP server and Servlet
6195 container capable of serving static and dynamic content either from a standalone
6196 or embedded instantiation. This package provides HTTP-related utility classes.")))
6197
6198 (define-public java-eclipse-jetty-http-9.2
6199 (package
6200 (inherit java-eclipse-jetty-http)
6201 (version (package-version java-eclipse-jetty-util-9.2))
6202 (source (package-source java-eclipse-jetty-util-9.2))
6203 (inputs
6204 `(("util" ,java-eclipse-jetty-util-9.2)
6205 ("io" ,java-eclipse-jetty-io-9.2)
6206 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
6207
6208 (define-public java-eclipse-jetty-jmx
6209 (package
6210 (inherit java-eclipse-jetty-util)
6211 (name "java-eclipse-jetty-jmx")
6212 (arguments
6213 `(#:jar-name "eclipse-jetty-jmx.jar"
6214 #:source-dir "src/main/java"
6215 #:jdk ,icedtea-8
6216 #:tests? #f; FIXME: requires com.openpojo.validation
6217 #:phases
6218 (modify-phases %standard-phases
6219 (add-before 'configure 'chdir
6220 (lambda _
6221 (chdir "jetty-jmx")
6222 #t)))))
6223 (inputs
6224 `(("slf4j" ,java-slf4j-api)
6225 ("servlet" ,java-javaee-servletapi)
6226 ("util" ,java-eclipse-jetty-util)))
6227 (synopsis "Jetty :: JMX Management")
6228 (description "The Jetty Web Server provides an HTTP server and Servlet
6229 container capable of serving static and dynamic content either from a standalone
6230 or embedded instantiation. This package provides the JMX management.")))
6231
6232 (define-public java-eclipse-jetty-jmx-9.2
6233 (package
6234 (inherit java-eclipse-jetty-jmx)
6235 (version (package-version java-eclipse-jetty-util-9.2))
6236 (source (package-source java-eclipse-jetty-util-9.2))
6237 (inputs
6238 `(("util" ,java-eclipse-jetty-util-9.2)
6239 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
6240
6241 (define java-eclipse-jetty-http-test-classes
6242 (package
6243 (inherit java-eclipse-jetty-util)
6244 (name "java-eclipse-jetty-http-test-classes")
6245 (arguments
6246 `(#:jar-name "eclipse-jetty-http.jar"
6247 #:source-dir "src/test"
6248 #:tests? #f
6249 #:jdk ,icedtea-8
6250 #:phases
6251 (modify-phases %standard-phases
6252 (add-before 'configure 'chdir
6253 (lambda _
6254 (chdir "jetty-http")
6255 #t)))))
6256 (inputs
6257 `(("slf4j" ,java-slf4j-api)
6258 ("java-javaee-servletapi" ,java-javaee-servletapi)
6259 ("http" ,java-eclipse-jetty-http)
6260 ("io" ,java-eclipse-jetty-io)
6261 ("util" ,java-eclipse-jetty-util)))))
6262
6263 (define java-eclipse-jetty-http-test-classes-9.2
6264 (package
6265 (inherit java-eclipse-jetty-http-test-classes)
6266 (version (package-version java-eclipse-jetty-util-9.2))
6267 (source (package-source java-eclipse-jetty-util-9.2))
6268 (inputs
6269 `(("http" ,java-eclipse-jetty-http-9.2)
6270 ,@(package-inputs java-eclipse-jetty-http-9.2)))))
6271
6272 (define-public java-eclipse-jetty-server
6273 (package
6274 (inherit java-eclipse-jetty-util)
6275 (name "java-eclipse-jetty-server")
6276 (arguments
6277 `(#:jar-name "eclipse-jetty-server.jar"
6278 #:source-dir "src/main/java"
6279 #:jdk ,icedtea-8
6280 #:tests? #f; requires a mockito version we don't have
6281 #:phases
6282 (modify-phases %standard-phases
6283 (add-before 'configure 'chdir
6284 (lambda _
6285 (chdir "jetty-server")
6286 #t))
6287 (add-before 'build 'fix-source
6288 (lambda _
6289 ;; Explicit casts to prevent build failures
6290 (substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
6291 (("append\\(LazyList")
6292 "append((CharSequence)LazyList"))
6293 (substitute*
6294 "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
6295 (((string-append
6296 "Class<\\? extends EventListener> clazz = _classLoader==null"
6297 "\\?Loader.loadClass\\(ContextHandler.class,className\\):"
6298 "_classLoader.loadClass\\(className\\);"))
6299 (string-append "Class<? extends EventListener> clazz = "
6300 "(Class<? extends EventListener>) "
6301 "(_classLoader==null?Loader.loadClass("
6302 "ContextHandler.class,className):"
6303 "_classLoader.loadClass(className));")))
6304 #t)))))
6305 (inputs
6306 `(("slf4j" ,java-slf4j-api)
6307 ("servlet" ,java-javaee-servletapi)
6308 ("http" ,java-eclipse-jetty-http)
6309 ("io" ,java-eclipse-jetty-io)
6310 ("jmx" ,java-eclipse-jetty-jmx)
6311 ("util" ,java-eclipse-jetty-util)))
6312 (native-inputs
6313 `(("test-classes" ,java-eclipse-jetty-http-test-classes)
6314 ,@(package-native-inputs java-eclipse-jetty-util)))
6315 (synopsis "Core jetty server artifact")
6316 (description "The Jetty Web Server provides an HTTP server and Servlet
6317 container capable of serving static and dynamic content either from a standalone
6318 or embedded instantiation. This package provides the core jetty server
6319 artifact.")))
6320
6321 (define-public java-eclipse-jetty-server-9.2
6322 (package
6323 (inherit java-eclipse-jetty-server)
6324 (version (package-version java-eclipse-jetty-util-9.2))
6325 (source (package-source java-eclipse-jetty-util-9.2))
6326 (inputs
6327 `(("util" ,java-eclipse-jetty-util-9.2)
6328 ("jmx" ,java-eclipse-jetty-jmx-9.2)
6329 ("io" ,java-eclipse-jetty-io-9.2)
6330 ("http" ,java-eclipse-jetty-http-9.2)
6331 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6332 (native-inputs
6333 `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
6334 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6335
6336 (define-public java-eclipse-jetty-security
6337 (package
6338 (inherit java-eclipse-jetty-util)
6339 (name "java-eclipse-jetty-security")
6340 (arguments
6341 `(#:jar-name "eclipse-jetty-security.jar"
6342 #:source-dir "src/main/java"
6343 #:jdk ,icedtea-8
6344 #:test-exclude (list "**/ConstraintTest.*") ; This test fails
6345 #:phases
6346 (modify-phases %standard-phases
6347 (add-before 'configure 'chdir
6348 (lambda _
6349 (chdir "jetty-security")
6350 #t)))))
6351 (inputs
6352 `(("slf4j" ,java-slf4j-api)
6353 ("servlet" ,java-javaee-servletapi)
6354 ("http" ,java-eclipse-jetty-http)
6355 ("server" ,java-eclipse-jetty-server)
6356 ("util" ,java-eclipse-jetty-util)))
6357 (native-inputs
6358 `(("io" ,java-eclipse-jetty-io)
6359 ,@(package-native-inputs java-eclipse-jetty-util)))
6360 (synopsis "Jetty security infrastructure")
6361 (description "The Jetty Web Server provides an HTTP server and Servlet
6362 container capable of serving static and dynamic content either from a standalone
6363 or embedded instantiation. This package provides the core jetty security
6364 infrastructure")))
6365
6366 (define-public java-eclipse-jetty-security-9.2
6367 (package
6368 (inherit java-eclipse-jetty-security)
6369 (version (package-version java-eclipse-jetty-util-9.2))
6370 (source (package-source java-eclipse-jetty-util-9.2))
6371 (inputs
6372 `(("util" ,java-eclipse-jetty-util-9.2)
6373 ("http" ,java-eclipse-jetty-http-9.2)
6374 ("server" ,java-eclipse-jetty-server-9.2)
6375 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6376 (native-inputs
6377 `(("io" ,java-eclipse-jetty-io-9.2)
6378 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6379
6380 (define-public java-eclipse-jetty-servlet
6381 (package
6382 (inherit java-eclipse-jetty-util)
6383 (name "java-eclipse-jetty-servlet")
6384 (arguments
6385 `(#:jar-name "eclipse-jetty-servlet.jar"
6386 #:source-dir "src/main/java"
6387 #:jdk ,icedtea-8
6388 #:phases
6389 (modify-phases %standard-phases
6390 (add-before 'configure 'chdir
6391 (lambda _
6392 (chdir "jetty-servlet")
6393 #t)))))
6394 (inputs
6395 `(("slf4j" ,java-slf4j-api)
6396 ("java-javaee-servletapi" ,java-javaee-servletapi)
6397 ("http" ,java-eclipse-jetty-http)
6398 ("http-test" ,java-eclipse-jetty-http-test-classes)
6399 ("io" ,java-eclipse-jetty-io)
6400 ("jmx" ,java-eclipse-jetty-jmx)
6401 ("security" ,java-eclipse-jetty-security)
6402 ("server" ,java-eclipse-jetty-server)
6403 ("util" ,java-eclipse-jetty-util)))
6404 (synopsis "Jetty Servlet Container")
6405 (description "The Jetty Web Server provides an HTTP server and Servlet
6406 container capable of serving static and dynamic content either from a standalone
6407 or embedded instantiation. This package provides the core jetty servlet
6408 container.")))
6409
6410 (define-public java-eclipse-jetty-servlet-9.2
6411 (package
6412 (inherit java-eclipse-jetty-servlet)
6413 (version (package-version java-eclipse-jetty-util-9.2))
6414 (source (package-source java-eclipse-jetty-util-9.2))
6415 (arguments
6416 `(#:jar-name "eclipse-jetty-servlet.jar"
6417 #:source-dir "src/main/java"
6418 #:jdk ,icedtea-8
6419 #:tests? #f; doesn't work
6420 #:phases
6421 (modify-phases %standard-phases
6422 (add-before 'configure 'chdir
6423 (lambda _
6424 (chdir "jetty-servlet")
6425 #t)))))
6426 (inputs
6427 `(("util" ,java-eclipse-jetty-util-9.2)
6428 ("jmx" ,java-eclipse-jetty-jmx-9.2)
6429 ("io" ,java-eclipse-jetty-io-9.2)
6430 ("http" ,java-eclipse-jetty-http-9.2)
6431 ("security" ,java-eclipse-jetty-security-9.2)
6432 ("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
6433 ("server" ,java-eclipse-jetty-server-9.2)
6434 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
6435
6436 (define-public java-eclipse-jetty-xml
6437 (package
6438 (inherit java-eclipse-jetty-util)
6439 (name "java-eclipse-jetty-xml")
6440 (arguments
6441 `(#:jar-name "eclipse-jetty-xml.jar"
6442 #:source-dir "src/main/java"
6443 #:jdk ,icedtea-8
6444 #:tests? #f; most tests require network
6445 #:phases
6446 (modify-phases %standard-phases
6447 (add-before 'configure 'chdir
6448 (lambda _
6449 (chdir "jetty-xml")
6450 #t)))))
6451 (inputs
6452 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
6453 (native-inputs
6454 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
6455 ,@(package-native-inputs java-eclipse-jetty-util)))))
6456
6457 (define-public java-eclipse-jetty-xml-9.2
6458 (package
6459 (inherit java-eclipse-jetty-xml)
6460 (version (package-version java-eclipse-jetty-util-9.2))
6461 (source (package-source java-eclipse-jetty-util-9.2))
6462 (arguments
6463 `(#:jar-name "eclipse-jetty-xml.jar"
6464 #:source-dir "src/main/java"
6465 #:jdk ,icedtea-8
6466 #:tests? #f; most tests require network
6467 #:phases
6468 (modify-phases %standard-phases
6469 (add-before 'configure 'chdir
6470 (lambda _
6471 (chdir "jetty-xml")
6472 #t)))))
6473 (inputs
6474 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6475 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6476 (native-inputs
6477 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6478 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6479
6480 (define-public java-eclipse-jetty-webapp
6481 (package
6482 (inherit java-eclipse-jetty-util)
6483 (name "java-eclipse-jetty-webapp")
6484 (arguments
6485 `(#:jar-name "eclipse-jetty-webapp.jar"
6486 #:source-dir "src/main/java"
6487 #:jdk ,icedtea-8
6488 ;; One test fails
6489 #:test-exclude (list "**/WebAppContextTest.java")
6490 #:phases
6491 (modify-phases %standard-phases
6492 (add-before 'configure 'chdir
6493 (lambda _
6494 (chdir "jetty-webapp")
6495 #t)))))
6496 (inputs
6497 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
6498 ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
6499 ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
6500 ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
6501 ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
6502 ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
6503 ("java-javaee-servletapi" ,java-javaee-servletapi)))
6504 (native-inputs
6505 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
6506 ,@(package-native-inputs java-eclipse-jetty-util)))))
6507
6508 (define-public java-eclipse-jetty-webapp-9.2
6509 (package
6510 (inherit java-eclipse-jetty-webapp)
6511 (version (package-version java-eclipse-jetty-util-9.2))
6512 (source (package-source java-eclipse-jetty-util-9.2))
6513 (arguments
6514 `(#:jar-name "eclipse-jetty-webapp.jar"
6515 #:source-dir "src/main/java"
6516 #:jdk ,icedtea-8
6517 #:test-exclude (list "**/WebAppContextTest.java")
6518 #:phases
6519 (modify-phases %standard-phases
6520 (add-before 'configure 'chdir
6521 (lambda _
6522 (chdir "jetty-webapp")
6523 #t)))))
6524 (inputs
6525 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6526 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
6527 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6528 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
6529 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6530 ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
6531 ("java-javaee-servletapi" ,java-javaee-servletapi)
6532 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6533 (native-inputs
6534 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6535 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6536
6537 (define-public java-jsoup
6538 (package
6539 (name "java-jsoup")
6540 (version "1.10.3")
6541 (source (origin
6542 (method url-fetch)
6543 (uri (string-append "https://github.com/jhy/jsoup/archive/jsoup-"
6544 version ".tar.gz"))
6545 (sha256
6546 (base32
6547 "0xbzw7rjv7s4nz1xk9b2cnin6zkpaldmc3svk71waa7hhjgp0a20"))))
6548 (build-system ant-build-system)
6549 (arguments
6550 `(#:jar-name "jsoup.jar"
6551 #:source-dir "src/main/java"
6552 #:phases
6553 (modify-phases %standard-phases
6554 (add-before 'build 'copy-resources
6555 (lambda _
6556 (let ((classes-dir (string-append (getcwd) "/build/classes")))
6557 (with-directory-excursion "src/main/java"
6558 (for-each (lambda (file)
6559 (let ((dist (string-append classes-dir "/" file)))
6560 (mkdir-p (dirname dist))
6561 (copy-file file dist)))
6562 (find-files "." ".*.properties"))))
6563 #t)))))
6564 (native-inputs
6565 `(("java-junit" ,java-junit)
6566 ("java-hamcrest-core" ,java-hamcrest-core)
6567 ("java-gson" ,java-gson)))
6568 (home-page "https://jsoup.org")
6569 (synopsis "HTML parser")
6570 (description "Jsoup is a Java library for working with real-world HTML. It
6571 provides a very convenient API for extracting and manipulating data, using the
6572 best of DOM, CSS, and jQuery-like methods.")
6573 (license license:expat)))
6574
6575 (define-public java-signpost-core
6576 (package
6577 (name "java-signpost-core")
6578 (version "1.2.1.2")
6579 (source (origin
6580 (method git-fetch)
6581 (uri (git-reference
6582 (url "https://github.com/mttkay/signpost")
6583 (commit version)))
6584 (file-name (git-file-name name version))
6585 (sha256
6586 (base32
6587 "1l04yj2znch3hpyw90c4g4jan453w7d88l84bgl0c72i2kbb8z7h"))))
6588 (build-system ant-build-system)
6589 (arguments
6590 `(#:jar-name "signpost-core.jar"
6591 #:source-dir "signpost-core/src/main/java"
6592 #:test-dir "signpost-core/src/test"
6593 ;; Tests all fail with InstantiationException from mockito
6594 #:tests? #f))
6595 (propagated-inputs
6596 `(("java-commons-codec" ,java-commons-codec)))
6597 (home-page "https://github.com/mttkay/signpost")
6598 (synopsis "Lightweight client-side OAuth library for Java")
6599 (description "Signpost is the easy and intuitive solution for signing
6600 HTTP messages on the Java platform in conformance with the OAuth Core 1.0a
6601 standard. Signpost follows a modular and flexible design, allowing you to
6602 combine it with different HTTP messaging layers.")
6603 (license license:asl2.0)))
6604
6605 (define-public tidyp
6606 (package
6607 (name "tidyp")
6608 (version "1.04")
6609 (source
6610 (origin
6611 (method url-fetch)
6612 (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
6613 version ".tar.gz"))
6614 (sha256
6615 (base32
6616 "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
6617 (build-system gnu-build-system)
6618 ;; ./test-thing.sh tries to run ./testall.sh, which is not included.
6619 (arguments `(#:tests? #f))
6620 (home-page "http://www.tidyp.com/")
6621 (synopsis "Validate HTML")
6622 (description "Tidyp is a program that can validate your HTML, as well as
6623 modify it to be more clean and standard. tidyp does not validate HTML 5.
6624
6625 libtidyp is the library on which the program is based. It can be used by any
6626 other program that can interface to it. The Perl module @code{HTML::Tidy} is
6627 based on this library, allowing Perl programmers to easily validate HTML.")
6628 ;; See htmldoc/license.html
6629 (license license:bsd-3)))
6630
6631 (define-public perl-html-tidy
6632 (package
6633 (name "perl-html-tidy")
6634 (version "1.60")
6635 (source
6636 (origin
6637 (method url-fetch)
6638 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
6639 version ".tar.gz"))
6640 (sha256
6641 (base32
6642 "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
6643 (build-system perl-build-system)
6644 (arguments
6645 '(#:phases
6646 (modify-phases %standard-phases
6647 (add-after 'unpack 'fix-tidyp-paths
6648 (lambda* (#:key inputs #:allow-other-keys)
6649 (substitute* "Makefile.PL"
6650 (("^my \\$inc = \"" line)
6651 (string-append line
6652 "-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
6653 (("-L/usr/lib")
6654 (string-append
6655 "-L" (assoc-ref inputs "tidyp") "/lib")))
6656 #t)))))
6657 (inputs
6658 `(("perl-libwww" ,perl-libwww)
6659 ("tidyp" ,tidyp)))
6660 (native-inputs
6661 `(("perl-test-exception" ,perl-test-exception)))
6662 (home-page "https://metacpan.org/release/HTML-Tidy")
6663 (synopsis "(X)HTML validation in a Perl object")
6664 (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
6665 object. It's meant as a replacement for @code{HTML::Lint}, which is written
6666 in Perl but is not nearly as capable as @code{HTML::Tidy}.")
6667 (license license:artistic2.0)))
6668
6669 (define-public geomyidae
6670 (package
6671 (name "geomyidae")
6672 (version "0.34")
6673 (source
6674 (origin
6675 (method git-fetch)
6676 (uri (git-reference
6677 (url "git://r-36.net/geomyidae")
6678 (commit (string-append "v" version))))
6679 (file-name (git-file-name name version))
6680 (sha256
6681 (base32 "02afgrk36wkdkflyqr2xgh49v9zq6ma454jshk7igvhpxfb5l3ks"))))
6682 (build-system gnu-build-system)
6683 (arguments
6684 `(#:make-flags (list "CC=gcc"
6685 (string-append "PREFIX="
6686 (assoc-ref %outputs "out")))
6687 #:tests? #f ; no tests
6688 #:phases (modify-phases %standard-phases
6689 (delete 'configure))))
6690 (home-page "http://r-36.net/scm/geomyidae/file/README.html")
6691 (synopsis "Small Gopher server")
6692 (description
6693 "Geomyidae is a server for distributed hypertext protocol Gopher. Its
6694 features include:
6695
6696 @enumerate
6697 @item Gopher menus (see @file{index.gph} for an example);
6698 @item directory listings (if no @file{index.gph} was found);
6699 @item CGI support (@file{.cgi} files are executed);
6700 @item search support in CGI files;
6701 @item logging with multiple log levels.
6702 @end enumerate\n")
6703 (license license:expat)))
6704
6705 (define-public cat-avatar-generator
6706 (package
6707 (name "cat-avatar-generator")
6708 (version "1")
6709 (source (origin
6710 (method git-fetch)
6711 (uri (git-reference
6712 (url "https://framagit.org/Deevad/cat-avatar-generator.git")
6713 (commit "71c0c662742cafe8afd2d2d50ec84243113e35ad")))
6714 (file-name (string-append name "-" version))
6715 (sha256
6716 (base32
6717 "0s7b5whqsmfa57prbgl66ym551kg6ly0z14h5dgrlx4lqm70y2yw"))))
6718 (build-system trivial-build-system)
6719 (arguments
6720 `(#:modules ((guix build utils)
6721 (srfi srfi-1)
6722 (srfi srfi-26))
6723 #:builder
6724 (begin
6725 (use-modules (guix build utils)
6726 (srfi srfi-1)
6727 (srfi srfi-26))
6728 (let ((source (assoc-ref %build-inputs "source"))
6729 (php-dir (string-append %output "/share/web/" ,name "/")))
6730 ;; The cache directory must not be in the store, but in a writable
6731 ;; location. The webserver will give us this location.
6732 (copy-recursively source php-dir)
6733 (substitute* (string-append php-dir "/cat-avatar-generator.php")
6734 (("\\$cachepath = .*")
6735 "if(isset($_SERVER['CACHE_DIR']))
6736 $cachepath = $_SERVER['CACHE_DIR'];
6737 else
6738 die('You need to set the CACHE_DIR variable first.');"))
6739 #t))))
6740 (home-page "https://framagit.org/Deevad/cat-avatar-generator")
6741 (synopsis "Random avatar generator")
6742 (description "Cat avatar generator is a generator of cat pictures optimised
6743 to generate random avatars, or defined avatar from a \"seed\". This is a
6744 derivation by David Revoy from the original MonsterID by Andreas Gohr.")
6745 ;; expat for the code, CC-BY 4.0 for the artwork
6746 (license (list license:expat
6747 license:cc-by4.0))))
6748
6749 (define-public nghttp2
6750 (package
6751 (name "nghttp2")
6752 (version "1.39.1")
6753 (replacement nghttp2-1.39.2)
6754 (source
6755 (origin
6756 (method url-fetch)
6757 (uri (string-append "https://github.com/nghttp2/nghttp2/"
6758 "releases/download/v" version "/"
6759 "nghttp2-" version ".tar.xz"))
6760 (sha256
6761 (base32
6762 "0j0lk37k8k3f61r9nw647hg4b22z1753l36n3xrp9x01civ614b7"))))
6763 (build-system gnu-build-system)
6764 (outputs (list "out"
6765 "lib")) ; only libnghttp2
6766 (native-inputs
6767 `(("pkg-config" ,pkg-config)
6768
6769 ;; Required by tests.
6770 ("cunit" ,cunit)
6771 ("tzdata" ,tzdata-for-tests)))
6772 (inputs
6773 ;; Required to build the tools (i.e. without ‘--enable-lib-only’).
6774 `(("c-ares" ,c-ares)
6775 ("jansson" ,jansson) ; for HPACK tools
6776 ("jemalloc" ,jemalloc) ; fight nghttpd{,x} heap fragmentation
6777 ("libev" ,libev)
6778 ("libxml2" ,libxml2) ; for ‘nghttp -a’
6779 ("openssl" ,openssl)))
6780 (arguments
6781 `(#:configure-flags
6782 (list (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
6783 "--enable-app" ; build all the tools
6784 "--enable-hpack-tools" ; ...all the tools
6785 "--disable-examples"
6786 "--disable-static") ; don't bother building .a files
6787 #:phases
6788 (modify-phases %standard-phases
6789 (add-after 'unpack 'break-circular-reference
6790 ;; libnghttp2.pc by default retains a reference to the ‘out’ output,
6791 ;; which is not allowed. Break this cycle. While we could install
6792 ;; only the library to ‘out’ and move everything else to a separate
6793 ;; output, this would inconvenience the majority of (human) users.
6794 (lambda* (#:key outputs #:allow-other-keys)
6795 (substitute* "lib/libnghttp2.pc.in"
6796 (("@prefix@")
6797 (assoc-ref outputs "lib")))
6798 #t))
6799 (add-before 'check 'set-timezone-directory
6800 (lambda* (#:key inputs #:allow-other-keys)
6801 (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
6802 "/share/zoneinfo"))
6803 #t)))))
6804 (home-page "https://nghttp2.org/")
6805 (synopsis "HTTP/2 protocol client, proxy, server, and library")
6806 (description
6807 "nghttp2 implements the Hypertext Transfer Protocol, version
6808 2 (@dfn{HTTP/2}).
6809
6810 A reusable C library provides the HTTP/2 framing layer, with several tools built
6811 on top of it:
6812
6813 @itemize
6814 @item @command{nghttp}, a command-line HTTP/2 client. It exposes many advanced
6815 and low-level aspects of the protocol and is useful for debugging.
6816 @item @command{nghttpd}, a fast, multi-threaded HTTP/2 static web server that
6817 serves files from a local directory.
6818 @item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be
6819 deployed in front of existing web servers that don't support HTTP/2.
6820 Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for
6821 backwards compatibility with clients that don't speak HTTP/2.
6822 @item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.
6823 @item HTTP/2 uses a header compression method called @dfn{HPACK}.
6824 nghttp2 provides a HPACK encoder and decoder as part of its public API.
6825 @item @command{deflatehd} converts JSON data or HTTP/1-style header fields to
6826 compressed JSON header blocks.
6827 @item @command{inflatehd} converts such compressed headers back to JSON pairs.
6828 @end itemize\n")
6829 (license license:expat)))
6830
6831 (define nghttp2-1.39.2
6832 (package
6833 (inherit nghttp2)
6834 (version "1.39.2")
6835 (source (origin
6836 (method url-fetch)
6837 (uri (string-append "https://github.com/nghttp2/nghttp2/"
6838 "releases/download/v" version "/"
6839 "nghttp2-" version ".tar.xz"))
6840 (sha256
6841 (base32
6842 "12yfsjghbaypp4w964d45ih9vs38g6anih80wbsflaxx192idlm2"))))))
6843
6844 (define-public hpcguix-web
6845 (let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508")
6846 (revision "4"))
6847 (package
6848 (name "hpcguix-web")
6849 (version (git-version "0.0.1" revision commit))
6850 (source (origin
6851 (method git-fetch)
6852 (uri (git-reference
6853 (url "https://github.com/UMCUGenetics/hpcguix-web.git")
6854 (commit commit)))
6855 (file-name (git-file-name name version))
6856 (sha256
6857 (base32
6858 "0idzzlwnaymk6hm5q9nh146h5m6vd8acp32vlmzp6qq08mimfkq7"))))
6859 (build-system gnu-build-system)
6860 (arguments
6861 `(#:modules ((guix build gnu-build-system)
6862 (guix build utils)
6863 (srfi srfi-26)
6864 (ice-9 popen)
6865 (ice-9 rdelim))
6866 #:phases
6867 (modify-phases %standard-phases
6868 (add-before 'configure 'set-variables
6869 (lambda _
6870 ;; This prevents a few warnings
6871 (setenv "GUILE_AUTO_COMPILE" "0")
6872 (setenv "XDG_CACHE_HOME" (getcwd))
6873 #t))
6874 (add-after 'install 'wrap-program
6875 (lambda* (#:key inputs outputs #:allow-other-keys)
6876 (let* ((out (assoc-ref outputs "out"))
6877 (guix (assoc-ref inputs "guix"))
6878 (guile (assoc-ref inputs "guile"))
6879 (gcrypt (assoc-ref inputs "guile-gcrypt"))
6880 (git (assoc-ref inputs "guile-git"))
6881 (bs (assoc-ref inputs "guile-bytestructures"))
6882 (json (assoc-ref inputs "guile-json"))
6883 (guile-cm (assoc-ref inputs
6884 "guile-commonmark"))
6885 (deps (list guile gcrypt git bs guile-cm guix json))
6886 (effective
6887 (read-line
6888 (open-pipe* OPEN_READ
6889 (string-append guile "/bin/guile")
6890 "-c" "(display (effective-version))")))
6891 (path (string-join
6892 (map (cut string-append <>
6893 "/share/guile/site/"
6894 effective)
6895 deps)
6896 ":"))
6897 (gopath (string-join
6898 (map (cut string-append <>
6899 "/lib/guile/" effective
6900 "/site-ccache")
6901 deps)
6902 ":")))
6903 (wrap-program (string-append out "/bin/run")
6904 `("GUILE_LOAD_PATH" ":" prefix (,path))
6905 `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
6906
6907 #t))))))
6908 (native-inputs
6909 `(("autoconf" ,autoconf)
6910 ("automake" ,automake)
6911 ("uglify-js" ,uglify-js)
6912 ("pkg-config" ,pkg-config)))
6913 (inputs
6914 `(("guix" ,guix)))
6915 (propagated-inputs
6916 `(("guile" ,guile-2.2)
6917 ("guile-commonmark" ,guile-commonmark)
6918 ("guile-json" ,guile-json-3)))
6919 (home-page "https://github.com/UMCUGenetics/hpcguix-web")
6920 (synopsis "Web interface for cluster deployments of Guix")
6921 (description "Hpcguix-web provides a web interface to the list of packages
6922 provided by Guix. The list of packages is searchable and provides
6923 instructions on how to use Guix in a shared HPC environment.")
6924 (license license:agpl3+))))
6925
6926 (define-public httrack
6927 (package
6928 (name "httrack")
6929 (version "3.49.2")
6930 (source (origin
6931 (method url-fetch)
6932 (uri (string-append "https://mirror.httrack.com/historical/"
6933 "httrack-" version ".tar.gz"))
6934 (sha256
6935 (base32
6936 "09a0gm67nml86qby1k1gh7rdxamnrnzwr6l9r5iiq94favjs0xrl"))))
6937 (build-system gnu-build-system)
6938 (inputs
6939 `(("libressl" ,libressl)
6940 ("zlib" ,zlib)))
6941 (home-page "https://www.httrack.com/")
6942 (synopsis "Easy-to-use offline browser utility")
6943 (description "HTTrack allows you to download a World Wide Web site from
6944 the Internet to a local directory, building recursively all directories,
6945 getting HTML, images, and other files from the server to your computer.
6946
6947 HTTrack arranges the original site's relative link-structure. Simply open
6948 a page of the ``mirrored'' website in your browser, and you can browse the
6949 site from link to link, as if you were viewing it online. HTTrack can also
6950 update an existing mirrored site, and resume interrupted downloads.
6951
6952 HTTrack is fully configurable, and has an integrated help system.")
6953 (license license:gpl3+)))
6954
6955 (define-public anonip
6956 (package
6957 (name "anonip")
6958 (version "1.0.0")
6959 (source (origin
6960 (method url-fetch)
6961 (uri (pypi-uri "anonip" version))
6962 (sha256
6963 (base32
6964 "0ckn9nnfhpdnz8b92q8pkysdqj6pdh71ckfqvfj0z01cq0hzbhd2"))))
6965 (build-system python-build-system)
6966 (home-page "https://github.com/DigitaleGesellschaft/Anonip")
6967 (synopsis "Anonymize IP addresses in log files")
6968 (description
6969 "Anonip masks the last bits of IPv4 and IPv6 addresses in log files.
6970 That way most of the relevant information is preserved, while the IP address
6971 does not match a particular individuum anymore.
6972
6973 Depending on your Web server, the log entries may be piped to Anonip directly
6974 or via a FIFO (named pipe). Thus the unmasked IP addresses will never be
6975 written to any file.
6976
6977 It's also possible to rewrite existing log files.
6978
6979 Anonip can also be uses as a Python module in your own Python application.")
6980 (license license:bsd-3)))
6981
6982 (define-public poussetaches
6983 (package
6984 (name "poussetaches")
6985 (version "0.0.2")
6986 (source
6987 (origin
6988 (method git-fetch)
6989 (uri (git-reference
6990 (url "https://github.com/tsileo/poussetaches")
6991 (commit version)))
6992 (file-name (git-file-name name version))
6993 (sha256
6994 (base32
6995 "0kckcwvqklavd855np9aq5js6mg84isrlwchr504yigwma0sm7hm"))))
6996 (build-system go-build-system)
6997 (propagated-inputs
6998 `(("go-github-com-robfig-cron" ,go-github-com-robfig-cron)
6999 ("go-golang-org-x-time" ,go-golang-org-x-time)))
7000 (arguments
7001 `(#:import-path "github.com/tsileo/poussetaches"))
7002 (home-page "https://github.com/tsileo/poussetaches")
7003 (synopsis "Lightweight asynchronous task execution service")
7004 (description "Poussetaches (which literally means \"push tasks\" in
7005 French) is a lightweight asynchronous task execution service that aims to
7006 replace Celery and RabbitMQ for small Python applications.
7007
7008 The app posts base64-encoded payload to poussetaches and specifies the
7009 endpoint that will be used to trigger the task. Poussetaches makes HTTP
7010 requests with the registered payload until the right status code is
7011 returned.")
7012 (license license:isc)))