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