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