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