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