gnu: Add libwhich.
[jackhill/guix/guix.git] / gnu / packages / web.scm
... / ...
CommitLineData
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
184effort aimed at creating a robust, commercial-grade, featureful, and
185freely-available source code implementation of an HTTP (Web) server. The
186project is jointly managed by a group of volunteers located around the world,
187using the Internet and the Web to communicate, plan, and develop the server
188and 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
218applications that support the Python @acronym{WSGI, Web Server Gateway
219Interface} 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
309created by Igor Sysoev. It can be used both as a stand-alone web server
310and 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.
356This is modified version, specifically intended for use with the NGinx
357documentation.")
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=\
463ngx_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
540chooses the most suitable locale for the user from the list of locales
541supported 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
605has been optimized for high-performance environments. It has a very low
606memory footprint compared to other webservers. Its features include FastCGI,
607CGI, 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
635that provides high performance without the limitations of server specific
636APIs.")
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
675over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
676servers 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
706such as high performance, preforking, signal support, superdaemon awareness,
707and 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
740Protocol}, also known as Java Web Start. This package provides tools and
741libraries 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
765data.")
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
794easily construct JSON objects in C, output them as JSON-formatted strings and
795parse JSON-formatted strings back into the C representation of JSON objects.
796It 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
846written in portable ANSI C.
847
848@itemize
849@item BSD licensed with no dependencies (i.e. just drop the C file into your
850project)
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}
892instances, 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
936OAuth-powered network services in a Qt way, i.e. simply, clearly and
937efficiently. 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
1021hierarchical data, such as metagenomic classifications, using a radial,
1022space-filling display. It is implemented using HTML5 and JavaScript, allowing
1023charts to be explored locally or served over the Internet, requiring only a
1024current 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
1065style 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
1094parser 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
1126and server WebSockets connections---a protocol layered above HTTP that allows
1127for 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
1155WebAssembly, including:
1156
1157@enumerate
1158@item @command{wat2wasm} translates from WebAssembly text format to the
1159WebAssembly binary format
1160@item @command{wasm2wat} is the inverse; it translates from the binary format
1161back to the text format (also known as a .wat)
1162@item @command{wasm-objdump} prints information about a wasm binary, similarly
1163to @command{objdump}.
1164@item @command{wasm-interp} decodes ands run a WebAssembly binary file using a
1165stack-based interpreter
1166@item @command{wat-desugar} parses .wat text form as supported by the spec
1167interpreter (s-expressions, flat syntax, or mixed) and prints the canonical
1168flat format
1169@item @command{wasm2c} converts a WebAssembly binary file to a C source and
1170header file.
1171@end enumerate
1172
1173These tools are intended for use in (or for development of) toolchains or
1174other 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
1206WebSocket functionality. The goals of the project are to provide a WebSocket
1207implementation that is simple, portable, flexible, lightweight, low level, and
1208high 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
1238protocol version 13, described in RFC 6455. Besides a high-level API it
1239provides callbacks for sending and receiving frames directly. @code{Wslay}
1240only supports the data transfer part of WebSocket protocol and does not
1241perform 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
1269directly register own names.
1270
1271Browsers and other web clients can use it to avoid privacy-leaking
1272\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain
1273highlighting parts of the domain in a user interface, and sorting domain lists
1274by site.
1275
1276Libpsl has built-in PSL data for fast access, allowing to load PSL data from
1277files, checks if a given domain is a public suffix, provides immediate cookie
1278domain verification, finds the longest public part of a given domain, finds
1279the shortest private part of a given domain, works with international
1280domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
1281UTS#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
1316used 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
1349daemon. Designed from the ground up to be fast and yet small, it is an ideal
1350solution for use cases such as embedded deployments where a full featured HTTP
1351proxy is required, but the system resources for a larger proxy are
1352unavailable.")
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
1384server). It was primarily designed to be used by one person or a small group
1385of 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
1413traffic. Websockify accepts the WebSockets handshake, parses it, and then
1414begins forwarding traffic between the client and the target in both
1415directions.")
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
1440intermittent internet links. It can cache HTTP, HTTPS, FTP, and finger
1441protocols, and supports browsing and requesting pages while offline, indexing,
1442modifying pages and incoming and outgoing headers, monitoring pages for
1443changes, 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.
1467liboauth provides functions to escape and encode strings according to OAuth
1468specifications and offers high-level functionality built on top to sign
1469requests or verify signatures using either NSS or OpenSSL for calculating the
1470hash/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
1524parse 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
1558URLs 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
1581from 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
1655Runtime (APR) library. It multiplexes connections, running the read/write
1656communication asynchronously. Memory copies and transformations are kept to a
1657minimum 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
1692library designed for portability and efficiency. To actually compile SASS
1693stylesheets, 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
1741language 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
1794to 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
1849action, 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
1882REST requests. It takes a normal Catalyst action, and changes the dispatch to
1883append an underscore and method name. First it will try dispatching to an
1884action with the generated name, and failing that it will try to dispatch to a
1885regular 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
1920provides access to authentication information stored in a database via
1921DBIx::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
1947instance 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
1984modules useful for the development of Catalyst applications, but not required
1985to run them. Catalyst-Devel includes the Catalyst::Helper system, which
1986autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install
1987extension for Catalyst; and requirements for a variety of development-related
1988modules.")
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
2014regexes. Regex dispatch types have been deprecated and removed from Catalyst
2015core. It is recommend that you use Chained methods or other techniques
2016instead. As part of the refactoring, the dispatch priority of Regex vs Regexp
2017vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by
2018when 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
2064Models.")
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\"
2088from within a Catalyst application instead of requiring a webserver to do it
2089for 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
2123Catalyst apps. It is the basis for both authentication (checking the user is
2124who they claim to be), and authorization (allowing the user to do what the
2125system 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
2155authorization 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
2179Catalyst.")
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
2207files of various types. Currently it supports YAML, JSON, XML, INI and Perl
2208formats.")
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
2239management 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
2268ID needs to be stored on the client, and the session data needs to be stored
2269on the server. This plugin stores the session ID on the client using the
2270cookie 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
2299storage plugin for Catalyst that uses an mmap'ed file to act as a shared
2300memory 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
2325including a stack trace of your application up to the point where the error
2326occurred. Each stack frame is displayed along with the package name, line
2327number, 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
2354content in your application during development quick and easy, without
2355requiring a single line of code from you. This plugin detects static files by
2356looking at the file extension in the URL (such as .css or .png or .js). The
2357plugin uses the lightweight MIME::Types module to map file extensions to
2358IANA-registered MIME types, and will serve your static files with the correct
2359MIME 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.
2418It is designed to make it easy to manage the various tasks you need to do to
2419run 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
2450flexibility in your application's deployment configurations when deployed
2451behind a proxy. Using this module, the request base ($c->req->base) is
2452replaced 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
2478downloading data into many supportable formats. For example, downloading a
2479table 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
2505stash 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
2532Toolkit.")
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
2562Catalyst component base class that reads the optional \"traits\" parameter
2563from app and component config and instantiates the component subclass with
2564those traits using \"new_with_traits\" in MooseX::Traits from
2565MooseX::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
2588application 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
2616development 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
2641processing and preparing HTTP requests and responses. Major features include
2642processing form submissions, file uploads, reading and writing cookies, query
2643string generation and manipulation, and processing and preparing HTTP
2644headers.")
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
2668form-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
2695HTTP 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
2718replacement for CGI.pm. It shares an identical OO interface to CGI.pm for
2719parameter 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
2740inputs, 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
2764formats 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
2785for 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
2805conventions requested by the user and the preferred character set to
2806consume and output. The Encode::Locale module looks up the charset and
2807encoding (called a CODESET in the locale jargon) and arranges for the
2808Encode module to know this encoding under the name \"locale\". It means
2809bytes obtained from the environment can be converted to Unicode strings
2810by calling Encode::encode(locale => $bytes) and converted back again
2811with 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
2841syndication feeds, given a URI. It will discover the following feed formats:
2842RSS 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(),
2864which 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
2897Yahoo! 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
2920described 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
2942composed 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
3020syntactic 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
3043in 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
3069representing, 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
3092it from plain text (alias data content) in HTML documents. As different
3093kinds of markup and text are recognized, the corresponding event handlers
3094are 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
3114kinds 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.
3135It 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
3138these new tags is called a template. Using this module you fill in the values
3139for the variables, loops and branches declared in the template. This allows
3140you 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
3164application/octet-stream, application/json, application/x-www-form-urlencoded,
3165and 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
3192jar 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,
3214that is, a database of all the HTTP cookies that a given LWP::UserAgent
3215object 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
3238on a socket for incoming requests. The HTTP::Daemon is a subclass of
3239IO::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
3259used 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
3280HTTP/1.1 implementation for perl. It is intended for use in
3281situations where it is desirable to install the minimal number of
3282modules to achieve HTTP support. @code{HTTP::Lite} is ideal for
3283CGI (or mod_perl) programs or for bundling for redistribution with
3284larger packages where only HTTP GET and POST functionality are
3285necessary. @code{HTTP::Lite} is compliant with the Host header,
3286necessary for name based virtual hosting, and supports proxies.
3287Additionally, @code{HTTP::Lite} supports a callback to allow
3288processing 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
3337HTTP content negotiation algorithm specified in
3338draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for
3339the selection of a preferred content representation based upon attributes
3340of the negotiable variants and the value of the various Accept* header
3341fields 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
3363received and returns a @code{hint} as to what is required, or returns the
3364HTTP::Request when a complete request has been read. HTTP/1.1 chunking is
3365supported.")
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
3386parser.")
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
3408environment 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
3442no non-core module dependencies. It can be used for building a standalone
3443http-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
3468simple requests without the overhead of a large framework like LWP::UserAgent.
3469It 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
3496It 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
3516automatically determining its encoding. It uses the HTML5 encoding sniffing
3517algorithm 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
3537and 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
3561necessary functionality into the familiar IO::Socket interface and providing
3562secure defaults whenever possible. This way existing applications can be made
3563SSL-aware without much effort, at least if you do blocking I/O and don't use
3564select 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
3602simple and consistent application programming interface to the
3603World-Wide Web. The main focus of the library is to provide classes
3604and functions that allow you to write WWW clients. The library also
3605contains modules that are of more general use and even classes that
3606help 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
3631of the nastiest technical questions there is: am I on the internet?
3632
3633A host of networking and security issues make this problem very difficult.
3634There are firewalls, proxies (both well behaved and badly behaved). We might
3635not 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
3657known as MIME) types and encodings. The mapping from file extensions to
3658media types is defined by the media.types file. If the ~/.media.types file
3659exists 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
3687https 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
3708cache support. It returns responses from the local filesystem if available
3709instead 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,
3730except that when you use it to get a web page but run into a
3731possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds
3732and 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
3798Net::HTTP class represents a connection to an HTTP server. The HTTP protocol
3799is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and
3800HTTP/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.
3819It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
3820It includes with it the ability to run as an inetd
3821process (Net::Server::INET), a single connection server (Net::Server or
3822Net::Server::Single), a forking server (Net::Server::Fork), a preforking
3823server which maintains a constant number of preforked
3824children (Net::Server::PreForkSimple), or as a managed preforking server which
3825maintains the number of children based on server load (Net::Server::PreFork).
3826In all but the inetd type, the server provides the ability to connect to one
3827or 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
3883contains middleware components, a reference server, and utilities for Web
3884application frameworks. Plack is like Ruby's Rack or Python's Paste for
3885WSGI.")
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
3911in gzip or deflate, based on \"Accept-Encoding\" HTTP request header. It
3912would save the bandwidth a little bit but should increase the Plack server
3913load, so ideally you should handle this on the frontend reverse proxy
3914servers.")
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
3939already 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
3962something else: by adding either a header named X-HTTP-Method-Override to the
3963request, or a query parameter named x-tunneled-method to the URI, the client
3964can 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
3986required.")
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,
4009which are changed by reverse-proxy. You can specify the reverse proxy address
4010and 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
4030against an external server instead of just against a local application through
4031either 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
4077WWW::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
4111Test::WWW:Mechanize module and the Catalyst web application framework to allow
4112testing 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
4136from web application framework code. Test::WWW::Mechanize is a subclass of
4137WWW::Mechanize that incorporates features for web application testing. The
4138Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI
4139applications.")
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
4161represent \"Uniform Resource Identifier references\" as specified in RFC 2396
4162and 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,
4186notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
4187and 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
4210considers a URI) in plain text. It only finds URIs which include a
4211scheme (http:// or the like), for something a bit less strict, consider
4212URI::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
4233methods 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
4258RFC 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
4292library.")
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
4326web 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,
4364http://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
4389their 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,
4411CDF, 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
4510through a web interface. It supports listening to the guix-commits mailing
4511list to find out about new revisions, then loads the data from these in to a
4512PostgreSQL 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
4541a 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]
4576yaml = libyaml
4577bin_name = ~a/uwsgi
4578plugin_dir = ~a
4579
4580inherit = base
4581plugins = cgi,python
4582embedded_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,
4614implementing message/object passing, caching, RPC and process management.
4615It 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
4647filter and map and transform structured data with the same ease that sed, awk,
4648grep and friends let you play with text. It is written in portable C. jq can
4649mangle the data format that you have into the one that you want with very
4650little effort, and the program to do so is often shorter and simpler than
4651you'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
4679HTTPS. It provides a library, libuhttpmock, which implements recording and
4680playback 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
4715can easily be invoked on a single file. Your partner can access the file with
4716tools 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
4743libraries.")
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
4780C. 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
4810parse both valid and invalid web content. It is developed as part of the
4811NetSurf project.")
4812 (license license:expat)))
4813
4814(define-public ikiwiki
4815 (package
4816 (name "ikiwiki")
4817 (version "3.20200202.3")
4818 (source
4819 (origin
4820 (method git-fetch)
4821 (uri (git-reference
4822 (url "git://git.ikiwiki.info/")
4823 (commit version)))
4824 (file-name (git-file-name name version))
4825 (sha256
4826 (base32
4827 "0fphyqzlk9y8v9s89ypsmrnbhyymzrpc2w0liy0n4knc7kk2pabq"))
4828 (snippet
4829 '(begin
4830 ;; The POT file requires write permission during the build
4831 ;; phase.
4832 (chmod "po/ikiwiki.pot" #o644)
4833 #t))))
4834 (build-system perl-build-system)
4835 (arguments
4836 `(#:phases
4837 (modify-phases %standard-phases
4838 (add-after 'unpack 'include-PERL5LIB-in-wrapper
4839 (lambda _
4840 (substitute* "IkiWiki/Wrapper.pm"
4841 (("^@wrapper\\_hooks")
4842 (string-append
4843 "@wrapper_hooks\n"
4844 " addenv(\"PERL5LIB\", \""
4845 (getenv "PERL5LIB")
4846 "\");")))))
4847 (add-after 'patch-source-shebangs 'patch-Makefiles
4848 (lambda _
4849 (substitute* "Makefile.PL"
4850 (("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
4851 (with-directory-excursion "po"
4852 (substitute* "Makefile"
4853 (("PERL5LIB=") "PERL5LIB=${PERL5LIB}:")))
4854 #t))
4855 (add-before 'build 'set-modification-times
4856 ;; The wiki '--refresh' steps, which are executed during
4857 ;; the check phase, require recent timestamps on files in
4858 ;; the 'doc' and 'underlays' directories.
4859 (lambda _
4860 (invoke "find" "doc" "underlays" "-type" "f" "-exec"
4861 "touch" "{}" "+")
4862 #t))
4863 (add-after 'install 'wrap-programs
4864 (lambda* (#:key outputs #:allow-other-keys)
4865 (let* ((out (assoc-ref outputs "out"))
4866 (bin (string-append out "/bin/"))
4867 (path (getenv "PERL5LIB")))
4868 (for-each (lambda (file)
4869 (wrap-program file
4870 `("PERL5LIB" ":" prefix (,path))))
4871 (find-files bin))
4872 #t))))))
4873 (native-inputs
4874 `(("which" ,which)
4875 ("gettext" ,gettext-minimal)
4876 ("subversion" ,subversion)
4877 ("git" ,git)
4878 ("bazaar" ,bazaar)
4879 ("cvs" ,cvs)
4880 ("mercurial" ,mercurial)))
4881 (inputs
4882 `(("python" ,python-wrapper)
4883 ("perl-authen-passphrase" ,perl-authen-passphrase)
4884 ("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
4885 ("perl-cgi-session" ,perl-cgi-session)
4886 ("perl-cgi-simple" ,perl-cgi-simple)
4887 ("perl-db-file" ,perl-db-file)
4888 ("perl-file-mimeinfo" ,perl-file-mimeinfo)
4889 ("perl-html-tagset" ,perl-html-tagset)
4890 ("perl-image-magick" ,perl-image-magick)
4891 ("perl-mail-sendmail" ,perl-mail-sendmail)
4892 ("perl-timedate" ,perl-timedate)
4893 ("perl-xml-sax" ,perl-xml-sax)
4894 ("perl-xml-simple" ,perl-xml-simple)
4895 ("perl-xml-twig" ,perl-xml-twig)
4896 ("po4a" ,po4a)))
4897 (propagated-inputs
4898 `(("perl-html-parser" ,perl-html-parser)
4899 ("perl-html-scrubber" ,perl-html-scrubber)
4900 ("perl-html-template" ,perl-html-template)
4901 ("perl-json" ,perl-json)
4902 ("perl-text-markdown-discount" ,perl-text-markdown-discount)
4903 ("perl-uri" ,perl-uri)
4904 ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
4905 (home-page "https://ikiwiki.info/")
4906 (synopsis "Wiki compiler, capable of generating HTML")
4907 (description
4908 "Ikiwiki is a wiki compiler, capable of generating a static set of web
4909pages, but also incorporating dynamic features like a web based editor and
4910commenting.")
4911 (license license:gpl2+)))
4912
4913(define-public libwapcaplet
4914 (package
4915 (name "libwapcaplet")
4916 (version "0.4.2")
4917 (source
4918 (origin
4919 (method url-fetch)
4920 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
4921 "libwapcaplet-" version "-src.tar.gz"))
4922 (sha256
4923 (base32
4924 "1fjwzbn7j8bi1b9bvwxsy3i2cr6byq2s2d29866801pjnf528g86"))))
4925 (build-system gnu-build-system)
4926 (native-inputs
4927 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4928 ("pkg-config" ,pkg-config)
4929 ("check" ,check))) ;for tests
4930 (arguments netsurf-buildsystem-arguments)
4931 (home-page "https://www.netsurf-browser.org/projects/libwapcaplet/")
4932 (synopsis "String internment library")
4933 (description
4934 "LibWapcaplet provides a reference counted string internment system
4935designed to store small strings and allow rapid comparison of them. It is
4936developed as part of the Netsurf project.")
4937 (license license:expat)))
4938
4939(define-public libcss
4940 (package
4941 (name "libcss")
4942 (version "0.9.0")
4943 (source
4944 (origin
4945 (method url-fetch)
4946 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
4947 "libcss-" version "-src.tar.gz"))
4948 (sha256
4949 (base32
4950 "1vw9j3d2mr4wbvs8fyqmgslkbxknvac10456775hflxxcivbm3xr"))))
4951 (build-system gnu-build-system)
4952 (native-inputs
4953 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4954 ("pkg-config" ,pkg-config)
4955 ("perl" ,perl)))
4956 (propagated-inputs ;needed for libcss.pc
4957 `(("libparserutils" ,libparserutils)
4958 ("libwapcaplet" ,libwapcaplet)))
4959 (arguments netsurf-buildsystem-arguments)
4960 (home-page "https://www.netsurf-browser.org/projects/libcss/")
4961 (synopsis "CSS parser and selection library")
4962 (description
4963 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,
4964written in C. It is developed as part of the NetSurf project.")
4965 (license license:expat)))
4966
4967(define-public libcyaml
4968 (package
4969 (name "libcyaml")
4970 (version "1.0.1")
4971 (source
4972 (origin
4973 (method git-fetch)
4974 (uri (git-reference
4975 (url "https://github.com/tlsa/libcyaml.git")
4976 (commit (string-append "v" version))))
4977 (file-name (git-file-name name version))
4978 (sha256
4979 (base32 "0h5ydyqdl8kzh526np3jsi0pm7ks16nh1hjkdsjcd6pacw7y6i6z"))))
4980 (build-system gnu-build-system)
4981 (arguments
4982 `(#:make-flags
4983 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
4984 (string-append "CC=gcc"))
4985 #:phases
4986 (modify-phases %standard-phases
4987 (delete 'configure) ; no configure script
4988 (replace 'check
4989 (lambda _
4990 (setenv "CC" "gcc")
4991 (invoke "make" "test"))))))
4992 (inputs
4993 `(("libyaml" ,libyaml)))
4994 (native-inputs
4995 `(("git", git)
4996 ("pkg-config", pkg-config)))
4997 (synopsis "C library for reading and writing YAML")
4998 (description
4999 "LibCYAML is a C library written in ISO C11 for reading and writing
5000structured YAML documents. The fundamental idea behind CYAML is to allow
5001applications to construct schemas which describe both the permissible
5002structure of the YAML documents to read/write, and the C data structure(s)
5003in which the loaded data is arranged in memory.")
5004 (home-page "https://github.com/tlsa/libcyaml")
5005 (license license:isc)))
5006
5007(define-public libdom
5008 (package
5009 (name "libdom")
5010 (version "0.4.0")
5011 (source
5012 (origin
5013 (method url-fetch)
5014 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5015 "libdom-" version "-src.tar.gz"))
5016 (sha256
5017 (base32
5018 "1ixkqsl3f7dl1kajksm0c231w1v5xy8z6hm3v67hgm9nh4qcvfcy"))))
5019 (build-system gnu-build-system)
5020 (native-inputs
5021 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5022 ("pkg-config" ,pkg-config)
5023 ("perl" ,perl) ;for test harness
5024 ("perl-libxml" ,perl-libxml)
5025 ("perl-switch" ,perl-switch)
5026 ("perl-xml-xpath" ,perl-xml-xpath)))
5027 (inputs
5028 `(("libparserutils" ,libparserutils)
5029 ("libwapcaplet" ,libwapcaplet)))
5030 (propagated-inputs
5031 `(("expat" ,expat) ;needed for headers and linking
5032 ("hubbub" ,hubbub))) ;for libdom.pc
5033 (arguments
5034 `(#:tests? #f ;TODO: re-enable. tests take a looong time.
5035 ,@netsurf-buildsystem-arguments))
5036 (home-page "https://www.netsurf-browser.org/projects/libdom/")
5037 (synopsis "Implementation of the W3C DOM")
5038 (description
5039 "LibDOM is an implementation of the W3C DOM, written in C. It is
5040developed as part of the NetSurf project.")
5041 (license license:expat)))
5042
5043(define-public libsvgtiny
5044 (package
5045 (name "libsvgtiny")
5046 (version "0.1.7")
5047 (source
5048 (origin
5049 (method url-fetch)
5050 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5051 name "-" version "-src.tar.gz"))
5052 (sha256
5053 (base32
5054 "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
5055 (build-system gnu-build-system)
5056 (native-inputs
5057 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5058 ("pkg-config" ,pkg-config)
5059 ("gperf" ,gperf-3.0)))
5060 (inputs
5061 `(("libwapcaplet" ,libwapcaplet)))
5062 (propagated-inputs
5063 `(("libdom" ,libdom))) ;for libsvgtiny.pc
5064 (arguments netsurf-buildsystem-arguments)
5065 (home-page "https://www.netsurf-browser.org/projects/libsvgtiny/")
5066 (synopsis "Library for parsing SVG files")
5067 (description
5068 "Libsvgtiny takes some SVG as input and returns a list of paths and texts
5069which can be rendered easily, as defined in
5070@url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf
5071project.")
5072 (license license:expat)))
5073
5074(define-public libnsbmp
5075 (package
5076 (name "libnsbmp")
5077 (version "0.1.5")
5078 (source
5079 (origin
5080 (method url-fetch)
5081 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5082 name "-" version "-src.tar.gz"))
5083 (sha256
5084 (base32
5085 "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35"))))
5086 (build-system gnu-build-system)
5087 (native-inputs
5088 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5089 (arguments netsurf-buildsystem-arguments)
5090 (home-page "https://www.netsurf-browser.org/projects/libnsbmp/")
5091 (synopsis "Decoding library for BMP and ICO files")
5092 (description
5093 "Libnsbmp is a decoding library for BMP and ICO image file formats,
5094written in C. It is developed as part of the NetSurf project.")
5095 (license license:expat)))
5096
5097(define-public libnsgif
5098 (package
5099 (name "libnsgif")
5100 (version "0.2.1")
5101 (source
5102 (origin
5103 (method url-fetch)
5104 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5105 name "-" version "-src.tar.gz"))
5106 (sha256
5107 (base32
5108 "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
5109 (build-system gnu-build-system)
5110 (native-inputs
5111 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5112 (arguments netsurf-buildsystem-arguments)
5113 (home-page "https://www.netsurf-browser.org/projects/libnsgif/")
5114 (synopsis "Decoding library for GIF files")
5115 (description
5116 "Libnsgif is a decoding library for the GIF image file format, written in
5117C. It is developed as part of the NetSurf project.")
5118 (license license:expat)))
5119
5120(define-public libnslog
5121 (package
5122 (name "libnslog")
5123 (version "0.1.2")
5124 (source
5125 (origin
5126 (method url-fetch)
5127 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5128 "libnslog-" version "-src.tar.gz"))
5129 (sha256
5130 (base32
5131 "1ggs6xvxp8fbg5w8pifalipm458ygr9ab6j2yvj8fnnmxwvdh4jd"))))
5132 (build-system gnu-build-system)
5133 (native-inputs
5134 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5135 ("pkg-config" ,pkg-config)
5136 ("check" ,check-0.12) ; For tests
5137 ("bison" ,bison)
5138 ("flex" ,flex)))
5139 (arguments netsurf-buildsystem-arguments)
5140 (home-page "https://www.netsurf-browser.org/")
5141 (synopsis "Logging library")
5142 (description
5143 "Libnslog provides a category-based logging library which supports
5144complex logging filters, multiple log levels, and provides context through to
5145client applications. It is developed as part of the NetSurf project.")
5146 (license license:expat)))
5147
5148(define-public libnsutils
5149 (package
5150 (name "libnsutils")
5151 (version "0.0.5")
5152 (source
5153 (origin
5154 (method url-fetch)
5155 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5156 name "-" version "-src.tar.gz"))
5157 (sha256
5158 (base32
5159 "09w1rixps1iiq6wirjwxmd6h87llvjzvw565rahjb3rlyhcplfqf"))))
5160 (build-system gnu-build-system)
5161 (native-inputs
5162 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5163 (arguments netsurf-buildsystem-arguments)
5164 (home-page "https://www.netsurf-browser.org/")
5165 (synopsis "Utility library for NetSurf")
5166 (description
5167 "Libnsutils provides a small number of useful utility routines. It is
5168developed as part of the NetSurf project.")
5169 (license license:expat)))
5170
5171(define-public libnspsl
5172 (package
5173 (name "libnspsl")
5174 (version "0.1.5")
5175 (source
5176 (origin
5177 (method url-fetch)
5178 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5179 "libnspsl-" version "-src.tar.gz"))
5180 (sha256
5181 (base32
5182 "0siq8zjfxv75i9fw6q5hkaijpdm1w3zskd5qk6vsvz8cqan4vifd"))))
5183 (build-system gnu-build-system)
5184 (native-inputs
5185 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5186 (arguments netsurf-buildsystem-arguments)
5187 (home-page "https://www.netsurf-browser.org/")
5188 (synopsis "Library to generate a static Public Suffix List")
5189 (description
5190 "Libnspsl is a library to generate a static code representation of the
5191Public Suffix List. It is developed as part of the NetSurf project.")
5192 (license license:expat)))
5193
5194(define-public nsgenbind
5195 (package
5196 (name "nsgenbind")
5197 (version "0.7")
5198 (source
5199 (origin
5200 (method url-fetch)
5201 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
5202 "nsgenbind-" version "-src.tar.gz"))
5203 (sha256
5204 (base32
5205 "0rplmky4afsjwiwh7grkmcdmzg86zksa55j93dvq92f91yljwqqq"))))
5206 (build-system gnu-build-system)
5207 (native-inputs
5208 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5209 ("bison" ,bison)
5210 ("flex" ,flex)))
5211 (arguments
5212 (substitute-keyword-arguments netsurf-buildsystem-arguments
5213 ((#:make-flags flags)
5214 `(delete "COMPONENT_TYPE=lib-shared" ,flags))))
5215 (home-page "https://www.netsurf-browser.org/")
5216 (synopsis "Generate JavaScript to DOM bindings")
5217 (description
5218 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from
5219w3c webidl files and a binding configuration file.")
5220 (license license:expat)))
5221
5222(define-public netsurf
5223 (package
5224 (name "netsurf")
5225 (version "3.9")
5226 (source
5227 (origin
5228 (method url-fetch)
5229 (uri (string-append "https://download.netsurf-browser.org/netsurf/"
5230 "releases/source/netsurf-" version "-src.tar.gz"))
5231 (sha256
5232 (base32
5233 "1hzcm2s2wh5sapgr000lg63hcdbj6hyajxl43xa1x80kc5piqbyp"))
5234 (patches (search-patches "netsurf-system-utf8proc.patch"
5235 "netsurf-y2038-tests.patch"
5236 "netsurf-longer-test-timeout.patch"
5237 "netsurf-message-timestamp.patch"))))
5238 (build-system glib-or-gtk-build-system)
5239 (native-inputs
5240 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5241 ("nsgenbind" ,nsgenbind)
5242 ("libidn" ,libidn) ;only for tests
5243 ("check" ,check)
5244 ("perl" ,perl)
5245 ("perl-html-parser" ,perl-html-parser)
5246 ("pkg-config" ,pkg-config)
5247 ("xxd" ,xxd)))
5248 (inputs
5249 `(("curl" ,curl)
5250 ("gtk+" ,gtk+)
5251 ("openssl" ,openssl)
5252 ("utf8proc" ,utf8proc)
5253 ("libpng" ,libpng)
5254 ("libjpeg" ,libjpeg-turbo)
5255 ("libcss" ,libcss)
5256 ("libdom" ,libdom)
5257 ("libnsbmp" ,libnsbmp)
5258 ("libnsgif" ,libnsgif)
5259 ("libnslog" ,libnslog)
5260 ("libnspsl" ,libnspsl)
5261 ("libnsutils" ,libnsutils)
5262 ("libsvgtiny" ,libsvgtiny)
5263 ("miscfiles" ,miscfiles)))
5264 (arguments
5265 `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
5266 "TARGET=gtk3"
5267 ,(string-append "PREFIX=" %output)
5268 ,(string-append "NSSHARED="
5269 (assoc-ref %build-inputs
5270 "netsurf-buildsystem")
5271 "/share/netsurf-buildsystem"))
5272 #:test-target "test"
5273 #:modules ((ice-9 rdelim)
5274 (ice-9 match)
5275 (srfi srfi-1)
5276 (sxml simple)
5277 ,@%glib-or-gtk-build-system-modules)
5278 #:phases
5279 (modify-phases %standard-phases
5280 (delete 'configure)
5281 (add-after 'build 'adjust-welcome
5282 (lambda _
5283 (substitute* "frontends/gtk/res/welcome.html"
5284 ;; Close some XHTML tags.
5285 (("<(img|input)([^>]*)>" _ tag contents)
5286 (string-append "<" tag contents " />"))
5287 ;; Increase freedom.
5288 ((" open source") ", free software")
5289 ;; Prefer a more privacy-respecting default search engine.
5290 (("www.google.co.uk") "www.duckduckgo.com/html")
5291 (("Google Search") "DuckDuckGo Search")
5292 (("name=\"btnG\"") ""))
5293 ;; Remove default links so it doesn't seem we're endorsing them.
5294 (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
5295 (lambda (in out)
5296 ;; Leave the DOCTYPE header as is.
5297 (display (read-line in 'concat) out)
5298 (sxml->xml
5299 (let rec ((sxml (xml->sxml in
5300 #:default-entity-handler
5301 (lambda (port name)
5302 (string-append "<ENTITY>"
5303 (symbol->string name)
5304 "</ENTITY>")))))
5305 ;; We'd like to use sxml-match here, but it can't
5306 ;; match against generic tag symbols...
5307 (match sxml
5308 (`(div (@ (class "links")) . ,rest)
5309 '())
5310 (`(ENTITY ,ent)
5311 `(*ENTITY* ,ent))
5312 ((x ...)
5313 (map rec x))
5314 (x x)))
5315 out)))
5316 #t))
5317 (add-before 'check 'patch-check
5318 (lambda* (#:key inputs #:allow-other-keys)
5319 (substitute* '("test/bloom.c" "test/hashtable.c")
5320 (("/usr/share/dict/words")
5321 (string-append (assoc-ref inputs "miscfiles") "/share/web2")))
5322 #t))
5323 (add-after 'install 'install-more
5324 (lambda* (#:key outputs #:allow-other-keys)
5325 (let* ((out (assoc-ref outputs "out"))
5326 (desktop (string-append out "/share/applications/"
5327 "netsurf.desktop")))
5328 (mkdir-p (dirname desktop))
5329 (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
5330 desktop)
5331 (substitute* desktop
5332 (("netsurf-gtk") (string-append out "/bin/netsurf-gtk3"))
5333 (("netsurf.png") (string-append out "/share/netsurf/"
5334 "netsurf.xpm")))
5335 (install-file "docs/netsurf-gtk.1"
5336 (string-append out "/share/man/man1/"))
5337 #t))))))
5338 (home-page "https://www.netsurf-browser.org")
5339 (synopsis "Web browser")
5340 (description
5341 "NetSurf is a lightweight web browser that has its own layout and
5342rendering engine entirely written from scratch. It is small and capable of
5343handling many of the web standards in use today.")
5344 (license license:gpl2+)))
5345
5346(define-public surfraw
5347 (package
5348 (name "surfraw")
5349 (version "2.3.0")
5350 (source
5351 (origin
5352 (method url-fetch)
5353 (uri (string-append "https://gitlab.com/surfraw/Surfraw/uploads/"
5354 "2de827b2786ef2fe43b6f07913ca7b7f/"
5355 "surfraw-" version ".tar.gz"))
5356 (sha256
5357 (base32 "099nbif0x5cbcf18snc58nx1a3q7z0v9br9p2jiq9pcc7ic2015d"))))
5358 (build-system gnu-build-system)
5359 (arguments
5360 `(#:phases
5361 (modify-phases %standard-phases
5362 (add-before 'configure 'patch-perl
5363 (lambda* (#:key inputs #:allow-other-keys)
5364 (let ((perl (assoc-ref inputs "perl")))
5365 (substitute* "surfraw.IN"
5366 (("perl -e")
5367 (string-append perl "/bin/perl -e")))
5368 #t)))
5369 (add-after 'install 'compress-elvi.1sr
5370 (lambda* (#:key outputs #:allow-other-keys)
5371 ;; The manpages of the elvis are symlinks to elvi.1sr.gz
5372 ;; but elvi.1sr does not get compressed by our manpage phase.
5373 (let* ((out (assoc-ref %outputs "out"))
5374 (man (string-append out "/share/man/man1")))
5375 (with-directory-excursion man
5376 (invoke "gzip" "elvi.1sr"))))))))
5377 (inputs
5378 `(("perl" ,perl)
5379 ("perl-www-opensearch" ,perl-www-opensearch)
5380 ("perl-html-parser" ,perl-html-parser)
5381 ("perl-libwww" ,perl-libwww)))
5382 (synopsis "Unix command line interface to the www")
5383 (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
5384provides a unix command line interface to a variety of popular www search engines
5385and similar services.")
5386 (home-page "https://surfraw.alioth.debian.org/")
5387 (license license:public-domain)))
5388
5389(define-public darkhttpd
5390 (package
5391 (name "darkhttpd")
5392 (version "1.12")
5393 (source
5394 (origin
5395 (method url-fetch)
5396 (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
5397 version ".tar.bz2"))
5398 (sha256
5399 (base32
5400 "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
5401 (build-system gnu-build-system)
5402 (arguments
5403 `(#:make-flags '("CC=gcc")
5404 #:tests? #f ; No test suite
5405 #:phases
5406 (modify-phases %standard-phases
5407 (delete 'configure)
5408 (replace 'install
5409 (lambda* (#:key outputs #:allow-other-keys)
5410 (install-file "darkhttpd"
5411 (string-append (assoc-ref outputs "out")
5412 "/bin"))
5413 #t)))))
5414 (synopsis "Simple static web server")
5415 (description "darkhttpd is a simple static web server. It is
5416standalone and does not need inetd or ucspi-tcp. It does not need any
5417config files---you only have to specify the www root.")
5418 (home-page "https://unix4lyfe.org/darkhttpd/")
5419 (license license:isc)))
5420
5421(define-public goaccess
5422 (package
5423 (name "goaccess")
5424 (version "1.0.2")
5425 (source (origin
5426 (method url-fetch)
5427 (uri (string-append "http://tar.goaccess.io/goaccess-"
5428 version ".tar.gz"))
5429 (sha256
5430 (base32
5431 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
5432 (modules '((guix build utils)))
5433 (snippet '(begin
5434 (substitute* "src/error.h"
5435 (("__DATE__") "\"1970-01-01\"")
5436 (("__TIME__") "\"00:00:00\""))
5437 #t))))
5438 (build-system gnu-build-system)
5439 (inputs
5440 ;; TODO: Add dependency on geoip-tools.
5441 `(("glib" ,glib)
5442 ("ncurses" ,ncurses)))
5443 (native-inputs
5444 `(("pkg-config" ,pkg-config)))
5445 (home-page "https://goaccess.io")
5446 (synopsis "Analyze Web server logs in real time")
5447 (description
5448 "GoAccess is a real-time web log analyzer and interactive viewer that
5449runs in a terminal or through your browser. It provides fast and valuable
5450HTTP statistics for system administrators that require a visual server report
5451on the fly.")
5452 (license license:x11)))
5453
5454(define-public httptunnel
5455 (package
5456 (name "httptunnel")
5457 (version "3.3")
5458 (source
5459 (origin
5460 (method url-fetch)
5461 (uri (string-append "http://www.nocrew.org/software/httptunnel/"
5462 name "-" version ".tar.gz"))
5463 (sha256
5464 (base32
5465 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
5466 (modules '((guix build utils)))
5467 (snippet '(begin
5468 ;; Remove non-free IETF RFC documentation.
5469 (delete-file-recursively "doc")
5470 #t))))
5471 (build-system gnu-build-system)
5472 (arguments
5473 `(#:phases
5474 (modify-phases %standard-phases
5475 ;; The default configure phase tries to pass environment variables as
5476 ;; command-line arguments, which confuses the ./configure script.
5477 (replace 'configure
5478 (lambda* (#:key outputs #:allow-other-keys)
5479 (let* ((out (assoc-ref outputs "out")))
5480 (setenv "CONFIG_SHELL" (which "bash"))
5481 (invoke "./configure"
5482 (string-append "--prefix=" out))))))))
5483 (home-page "http://www.nocrew.org/software/httptunnel.html")
5484 (synopsis "Tunnel data connections through HTTP requests")
5485 (description "httptunnel creates a bidirectional virtual data connection
5486tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be
5487useful for users behind restrictive firewalls. As long as Web traffic is
5488allowed, even through a HTTP-only proxy, httptunnel can be combined with other
5489tools like SSH (Secure Shell) to reach the outside world.")
5490 (license license:gpl2+)))
5491
5492(define-public stunnel
5493 (package
5494 (name "stunnel")
5495 (version "5.56")
5496 (source
5497 (origin
5498 (method url-fetch)
5499 (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
5500 version ".tar.gz"))
5501 (sha256
5502 (base32 "08kb4gi9fzqngrczykvba6xhaxhq9m4wmdbhxvgrva5rasrvz13k"))))
5503 (build-system gnu-build-system)
5504 (native-inputs
5505 ;; For tests.
5506 `(("iproute" ,iproute)
5507 ("netcat" ,netcat)
5508 ("procps" ,procps)))
5509 (inputs `(("openssl" ,openssl)))
5510 (arguments
5511 `(#:configure-flags
5512 (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
5513 #:phases
5514 (modify-phases %standard-phases
5515 (add-after 'unpack 'patch-output-directories
5516 (lambda _
5517 ;; Some (not all) Makefiles have a hard-coded incorrect docdir.
5518 (substitute* (list "Makefile.in"
5519 "doc/Makefile.in"
5520 "tools/Makefile.in")
5521 (("/doc/stunnel")
5522 (string-append "/doc/" ,name "-" ,version)))
5523 #t))
5524 (add-before 'check 'patch-tests
5525 (lambda _
5526 (substitute* "tests/make_test"
5527 (("/bin/sh ")
5528 (string-append (which "sh") " ")))
5529 #t)))))
5530 (home-page "https://www.stunnel.org")
5531 (synopsis "TLS proxy for clients or servers")
5532 (description "Stunnel is a proxy designed to add TLS encryption
5533functionality to existing clients and servers without any changes in the
5534programs' code. Its architecture is optimized for security, portability, and
5535scalability (including load-balancing), making it suitable for large
5536deployments.")
5537 (license license:gpl2+)))
5538
5539(define-public varnish
5540 (package
5541 (name "varnish")
5542 (home-page "https://varnish-cache.org/")
5543 (version "6.4.0")
5544 (source (origin
5545 (method url-fetch)
5546 (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
5547 (sha256
5548 (base32
5549 "1hkn98vbxk7rc1sd08367qn6rcv8wkxgwbmm1x46y50vi0nvldpn"))))
5550 (build-system gnu-build-system)
5551 (arguments
5552 `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
5553 ;; Use absolute path of GCC so it's found at runtime.
5554 (string-append "PTHREAD_CC="
5555 (assoc-ref %build-inputs "gcc")
5556 "/bin/gcc")
5557 "--localstatedir=/var")
5558 #:phases
5559 (modify-phases %standard-phases
5560 (add-after 'unpack 'use-absolute-file-names
5561 (lambda _
5562 (substitute* '("bin/varnishtest/vtc_varnish.c"
5563 "bin/varnishtest/vtc_process.c"
5564 "bin/varnishd/mgt/mgt_vcc.c"
5565 "bin/varnishtest/tests/u00014.vtc")
5566 (("/bin/sh") (which "sh")))
5567 (substitute* "bin/varnishd/mgt/mgt_shmem.c"
5568 (("rm -rf") (string-append (which "rm") " -rf")))
5569 (substitute* "bin/varnishtest/vtc_main.c"
5570 (("/bin/rm") (which "rm")))
5571 #t))
5572 (add-before 'install 'patch-Makefile
5573 (lambda _
5574 (substitute* "Makefile"
5575 ;; Do not create /var/varnish during install.
5576 (("^install-data-am: install-data-local") "install-data-am: "))
5577 #t))
5578 (add-after 'install 'wrap-varnishd
5579 ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
5580 ;; environment variables to avoid propagating them to profiles.
5581 (lambda* (#:key inputs outputs #:allow-other-keys)
5582 (let* ((out (assoc-ref outputs "out"))
5583 (varnishd (string-append out "/sbin/varnishd"))
5584 (PATH (string-append (assoc-ref inputs "binutils") "/bin"))
5585 (LIBRARY_PATH (string-append (assoc-ref inputs "libc") "/lib")))
5586 (wrap-program varnishd
5587 ;; Add binutils to PATH so gcc finds the 'as' executable.
5588 `("PATH" ":" prefix (,PATH))
5589 ;; Make sure 'crti.o' et.al is found.
5590 `("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))
5591 #t))))))
5592 (native-inputs
5593 `(("pkg-config" ,pkg-config)
5594 ("python-sphinx" ,python-sphinx)
5595 ("rst2man" ,python-docutils)))
5596 (inputs
5597 `(("jemalloc" ,jemalloc)
5598 ("ncurses" ,ncurses)
5599 ("pcre" ,pcre)
5600 ("python" ,python-wrapper)
5601 ("readline" ,readline)))
5602 (synopsis "Web application accelerator")
5603 (description
5604 "Varnish is a high-performance HTTP accelerator. It acts as a caching
5605reverse proxy and load balancer. You install it in front of any server that
5606speaks HTTP and configure it to cache the contents through an extensive
5607configuration language.")
5608 (license (list license:bsd-2 ;main distribution
5609 license:zlib ;lib/libvgz/*
5610 license:public-domain ;bin/varnishncsa/as64.c, include/miniobj.h
5611 license:bsd-3)))) ;include/vqueue.h, lib/libvarnishcompat/daemon.c
5612
5613(define-public varnish-modules
5614 (package
5615 (name "varnish-modules")
5616 (home-page "https://github.com/varnish/varnish-modules")
5617 (version "0.15.0")
5618 (source (origin
5619 (method url-fetch)
5620 (uri (string-append "https://download.varnish-software.com"
5621 "/varnish-modules/varnish-modules-"
5622 version ".tar.gz"))
5623 (sha256
5624 (base32
5625 "09li9lqa1kb275w1rby2zldyg8r9cfcl4qyv53qyd9xbzilrz751"))))
5626 (build-system gnu-build-system)
5627 (native-inputs
5628 `(("pkg-config" ,pkg-config)))
5629 (inputs
5630 `(("python" ,python)
5631 ("varnish" ,varnish)))
5632 (synopsis "Collection of Varnish modules")
5633 (description
5634 "This package provides a collection of modules (@dfn{vmods}) for the Varnish
5635cache server, extending the @dfn{Varnish Configuration Language} (VCL) with
5636additional capabilities.")
5637 (license license:bsd-2)))
5638
5639(define-public xinetd
5640 (package
5641 (name "xinetd")
5642 ;; This is the maintenance fork currently used by openSUSE and Debian.
5643 (version "2.3.15.4")
5644 (source
5645 (origin
5646 (method git-fetch)
5647 (uri (git-reference
5648 (url "https://github.com/openSUSE/xinetd.git")
5649 (commit version)))
5650 (file-name (git-file-name name version))
5651 (sha256
5652 (base32 "0lrp3lcj6azhjplwxws2rx40bkyp6i6bp7n77ndcisb7ninad30q"))))
5653 (build-system gnu-build-system)
5654 (arguments
5655 `(#:configure-flags '("--with-loadavg")
5656 #:tests? #f)) ; no tests
5657 (native-inputs
5658 `(("autoconf" ,autoconf)
5659 ("automake" ,automake)
5660 ("libtool" ,libtool)
5661 ("pkg-config" ,pkg-config)))
5662 (home-page "https://github.com/openSUSE/xinetd")
5663 (synopsis "Internet services daemon")
5664 (description "@code{xinetd}, a more secure replacement for @code{inetd},
5665listens for incoming requests over a network and launches the appropriate
5666service for that request. Requests are made using port numbers as identifiers
5667and xinetd usually launches another daemon to handle the request. It can be
5668used to start services with both privileged and non-privileged port numbers.")
5669 (license (license:fsf-free "file://COPYRIGHT"))))
5670
5671(define-public tidy-html
5672 (package
5673 (name "tidy-html")
5674 (version "5.6.0")
5675 (source
5676 (origin
5677 (method git-fetch)
5678 (uri (git-reference
5679 (url "https://github.com/htacg/tidy-html5")
5680 (commit version)))
5681 (file-name (git-file-name name version))
5682 (sha256
5683 (base32
5684 "0w175c5d1babq0w1zzdzw9gl6iqbgyq58v8587s7srp05y3hwy9k"))))
5685 (build-system cmake-build-system)
5686 (outputs '("out"
5687 "static")) ; 1.3MiB of .a files
5688 (arguments
5689 `(#:tests? #f ; no tests available
5690 #:build-type "Release"
5691 #:phases
5692 (modify-phases %standard-phases
5693 (add-after 'install 'move-static-libraries
5694 (lambda* (#:key outputs #:allow-other-keys)
5695 ;; Move static libraries to the "static" output.
5696 (let* ((out (assoc-ref outputs "out"))
5697 (lib (string-append out "/lib"))
5698 (static (assoc-ref outputs "static"))
5699 (slib (string-append static "/lib")))
5700 (mkdir-p slib)
5701 (for-each (lambda (file)
5702 (install-file file slib)
5703 (delete-file file))
5704 (find-files lib "\\.a$"))
5705 #t))))))
5706 (native-inputs
5707 `(("libxslt" ,libxslt)))
5708 (home-page "http://www.html-tidy.org/")
5709 (synopsis "HTML Tidy with HTML5 support")
5710 (description
5711 "Tidy is a console application which corrects and cleans up
5712HTML and XML documents by fixing markup errors and upgrading
5713legacy code to modern standards.
5714
5715Tidy also provides @code{libtidy}, a C static and dynamic library that
5716developers can integrate into their applications to make use of the
5717functions of Tidy.")
5718 (license license:bsd-3)))
5719
5720(define-public hiawatha
5721 (package
5722 (name "hiawatha")
5723 (version "10.10")
5724 (source
5725 (origin
5726 (method url-fetch)
5727 (uri (string-append "https://www.hiawatha-webserver.org/files/"
5728 "hiawatha-" version ".tar.gz"))
5729 (modules '((guix build utils)))
5730 (snippet '(begin
5731 ;; We use packaged libraries, so delete the bundled copies.
5732 (for-each delete-file-recursively
5733 (list "extra/nghttp2.tgz" "mbedtls"))
5734 #t))
5735 (sha256
5736 (base32 "1nd46cx1qp5lh2kwnn2mlwk9zm8jm7pgf90xs9vpwr7saxbnzr5m"))))
5737 (build-system cmake-build-system)
5738 (arguments
5739 `(#:tests? #f ; no tests included
5740 #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
5741 (string-append "-DENABLE_HTTP2=on")
5742 (string-append "-DUSE_SYSTEM_NGHTTP2=on")
5743 (string-append "-DENABLE_TOMAHAWK=on")
5744 (string-append "-DLOG_DIR=/var/log/hiawatha")
5745 (string-append "-DPID_DIR=/run")
5746 (string-append "-DWEBROOT_DIR="
5747 (assoc-ref %outputs "out")
5748 "/share/hiawatha/html")
5749 (string-append "-DWORK_DIR=/var/lib/hiawatha"))
5750 #:phases
5751 (modify-phases %standard-phases
5752 (add-after 'unpack 'install-no-empty-directories
5753 (lambda _
5754 (substitute* "CMakeLists.txt"
5755 (("install\\(DIRECTORY DESTINATION" match)
5756 (string-append "#" match)))
5757 #t))
5758 (add-after 'install 'wrap
5759 (lambda* (#:key inputs outputs #:allow-other-keys)
5760 ;; Make sure 'hiawatha' finds 'mbedtls'.
5761 (let* ((out (assoc-ref outputs "out"))
5762 (sbin (string-append out "/sbin"))
5763 (mbed (assoc-ref inputs "mbedtls-apache")))
5764 (wrap-program (string-append sbin "/hiawatha")
5765 `("PATH" ":" prefix (,mbed)))))))))
5766 (inputs
5767 ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
5768 `(("libxslt" ,libxslt)
5769 ("libxml2" ,libxml2)
5770 ("mbedtls-apache" ,mbedtls-for-hiawatha)
5771 ("nghttp2" ,nghttp2 "lib")
5772 ("zlib" ,zlib)))
5773 (home-page "https://www.hiawatha-webserver.org")
5774 (synopsis "Webserver with focus on security")
5775 (description
5776 "Hiawatha has been written with security in mind.
5777Features include the ability to stop SQL injections, XSS and CSRF attacks and
5778exploit attempts.")
5779 (license license:gpl2)))
5780
5781(define-public python-httpbin
5782 (package
5783 (name "python-httpbin")
5784 (version "0.5.0")
5785 (source
5786 (origin
5787 (method url-fetch)
5788 (uri (pypi-uri "httpbin" version))
5789 (sha256
5790 (base32
5791 "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
5792 (build-system python-build-system)
5793 (propagated-inputs
5794 `(("python-decorator" ,python-decorator)
5795 ("python-flask" ,python-flask)
5796 ("python-itsdangerous" ,python-itsdangerous)
5797 ("python-markupsafe" ,python-markupsafe)
5798 ("python-six" ,python-six)))
5799 (home-page "https://github.com/Runscope/httpbin")
5800 (synopsis "HTTP request and response service")
5801 (description "Testing an HTTP Library can become difficult sometimes.
5802@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
5803response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
5804JSON-encoded.")
5805 (license license:isc)))
5806
5807(define-public python2-httpbin
5808 (package-with-python2 python-httpbin))
5809
5810(define-public python-pytest-httpbin
5811 (package
5812 (name "python-pytest-httpbin")
5813 (version "0.2.3")
5814 (source
5815 (origin
5816 (method url-fetch)
5817 (uri (pypi-uri "pytest-httpbin" version))
5818 (sha256
5819 (base32
5820 "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
5821 (build-system python-build-system)
5822 (propagated-inputs
5823 `(("python-six" ,python-six)
5824 ("python-httpbin" ,python-httpbin)
5825 ("python-pytest" ,python-pytest)))
5826 (home-page
5827 "https://github.com/kevin1024/pytest-httpbin")
5828 (synopsis
5829 "Test your HTTP library against a local copy of httpbin")
5830 (description
5831 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
5832into your tests. It automatically starts up a HTTP server in a separate thread running
5833@code{httpbin} and provides your test with the URL in the fixture.")
5834 (license license:expat)))
5835
5836(define-public python2-pytest-httpbin
5837 (package-with-python2 python-pytest-httpbin))
5838
5839(define-public http-parser
5840 (package
5841 (name "http-parser")
5842 (version "2.9.3")
5843 (home-page "https://github.com/nodejs/http-parser")
5844 (source (origin
5845 (method git-fetch)
5846 (uri (git-reference (url home-page)
5847 (commit (string-append "v" version))))
5848 (file-name (git-file-name name version))
5849 (patches
5850 ;; When parsing URLs, treat an empty port (eg
5851 ;; `http://hostname:/`) as if it were unspecified. This patch is
5852 ;; applied to Fedora's http-parser and to libgit2's bundled version.
5853 (list
5854 (origin
5855 (method url-fetch)
5856 (uri (string-append
5857 "https://src.fedoraproject.org/rpms/http-parser/raw/"
5858 "e89b4c4e2874c19079a5a1a2d2ccc61b551aa289/"
5859 "f/0001-url-treat-empty-port-as-default.patch"))
5860 (sha256
5861 (base32
5862 "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g")))))
5863 (sha256
5864 (base32
5865 "189zi61vczqgmqjd2myjcjbbi5icrk7ccs0kn6nj8hxqiv5j3811"))))
5866 (build-system gnu-build-system)
5867 (arguments
5868 `(#:test-target "test"
5869 #:make-flags
5870 (list (string-append "PREFIX="
5871 (assoc-ref %outputs "out"))
5872 "library"
5873 ,@(if (%current-target-system)
5874 '()
5875 '("CC=gcc")))
5876 #:phases
5877 (modify-phases %standard-phases
5878 ,@(if (%current-target-system)
5879 '((replace 'configure
5880 (lambda* (#:key target #:allow-other-keys)
5881 (substitute* (find-files "." "Makefile")
5882 (("CC\\?=.*$")
5883 (string-append "CC=" target "-gcc\n"))
5884 (("AR\\?=.*$")
5885 (string-append "AR=" target "-ar\n")))
5886 #t)))
5887 '((delete 'configure))))))
5888 (synopsis "HTTP request/response parser for C")
5889 (description "This is a parser for HTTP messages written in C. It parses
5890both requests and responses. The parser is designed to be used in
5891high-performance HTTP applications. It does not make any syscalls nor
5892allocations, it does not buffer data, it can be interrupted at anytime.
5893Depending on your architecture, it only requires about 40 bytes of data per
5894message stream (in a web server that is per connection).")
5895 (license license:expat)))
5896
5897(define-public python-httpretty
5898 (package
5899 (name "python-httpretty")
5900 (version "0.9.6")
5901 (source
5902 (origin
5903 (method url-fetch)
5904 (uri (pypi-uri "httpretty" version))
5905 (sha256
5906 (base32 "1p1rb4mpngh0632xrmdfhvc8yink519yfkqz97d2ww3y0x2jvd81"))))
5907 (build-system python-build-system)
5908 (propagated-inputs
5909 `(("python-six" ,python-six)))
5910 (native-inputs
5911 `(("python-coverage" ,python-coverage)
5912 ("python-httplib2" ,python-httplib2)
5913 ("python-mock" ,python-mock)
5914 ("python-nose" ,python-nose)
5915 ("python-nose-randomly" ,python-nose-randomly)
5916 ("python-rednose" ,python-rednose)
5917 ("python-requests" ,python-requests)
5918 ("python-sure" ,python-sure)
5919 ("python-tornado" ,python-tornado)
5920 ("python-urllib3" ,python-urllib3)))
5921 (home-page "https://httpretty.readthedocs.io")
5922 (synopsis "HTTP client mock for Python")
5923 (description "@code{httpretty} is a helper for faking web requests,
5924inspired by Ruby's @code{fakeweb}.")
5925 (license license:expat)))
5926
5927(define-public jo
5928 (package
5929 (name "jo")
5930 (version "1.3")
5931 (source
5932 (origin
5933 (method url-fetch)
5934 (uri (string-append "https://github.com/jpmens/jo/releases/download/"
5935 version "/jo-" version ".tar.gz"))
5936 (sha256
5937 (base32
5938 "0r6yb8pjsbcqfyac4240a0sj93pb91fv385bpk395cx3f5bcj9fy"))))
5939 (build-system gnu-build-system)
5940 (home-page "https://github.com/jpmens/jo")
5941 (synopsis "Output JSON from a shell")
5942 (description "jo is a command-line utility to create JSON objects or
5943arrays. It creates a JSON string on stdout from words provided as
5944command-line arguments or read from stdin.")
5945 (license (list license:gpl2+
5946 license:expat)))) ; json.c, json.h
5947
5948(define-public python-internetarchive
5949 (package
5950 (name "python-internetarchive")
5951 (version "1.8.5")
5952 (source
5953 (origin
5954 (method git-fetch)
5955 (uri (git-reference
5956 (url "https://github.com/jjjake/internetarchive")
5957 (commit (string-append "v" version))))
5958 (file-name (git-file-name name version))
5959 (sha256
5960 (base32
5961 "0ih7hplv92wbv6cmgc1gs0v35qkajwicalwcq8vcljw30plr24fp"))
5962 (modules '((guix build utils)))
5963 (snippet
5964 '(begin
5965 ;; Python 3.7 removed `_pattern_type'.
5966 (for-each (lambda (file)
5967 (chmod file #o644)
5968 (substitute* file
5969 (("^import re\n" line)
5970 (string-append line "re._pattern_type = re.Pattern\n"))))
5971 (find-files "." "\\.py$"))
5972 #t))))
5973 (build-system python-build-system)
5974 (arguments
5975 `(#:phases
5976 (modify-phases %standard-phases
5977 (delete 'check)
5978 (add-after 'install 'check
5979 (lambda* (#:key inputs outputs #:allow-other-keys)
5980 (add-installed-pythonpath inputs outputs)
5981 (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
5982 ":" (getenv "PATH")))
5983 (invoke "py.test" "-v" "-k"
5984 (string-append
5985 ;; These tests attempt to make a connection to
5986 ;; an external web service.
5987 "not test_get_item_with_kwargs"
5988 " and not test_ia")))))))
5989 (propagated-inputs
5990 `(("python-requests" ,python-requests)
5991 ("python-jsonpatch" ,python-jsonpatch-0.4)
5992 ("python-docopt" ,python-docopt)
5993 ("python-clint" ,python-clint)
5994 ("python-six" ,python-six)
5995 ("python-schema" ,python-schema-0.5)
5996 ("python-backports-csv" ,python-backports-csv)))
5997 (native-inputs
5998 `(("python-pytest" ,python-pytest)
5999 ("python-pytest-capturelog" ,python-pytest-capturelog)
6000 ("python-responses" ,python-responses)))
6001 (home-page "https://github.com/jjjake/internetarchive")
6002 (synopsis "Command-line interface to archive.org")
6003 (description "@code{ia} is a command-line tool for using
6004@url{archive.org} from the command-line. It also emplements the
6005internetarchive python module for programmatic access to archive.org.")
6006 (license license:agpl3+)))
6007
6008(define-public python-clf
6009 (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
6010 (package
6011 (name "python-clf")
6012 (version "0.5.7")
6013 (source
6014 (origin
6015 (method url-fetch)
6016 (uri (pypi-uri "clf" version))
6017 (sha256
6018 (base32
6019 "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb"))))
6020 (build-system python-build-system)
6021 (propagated-inputs
6022 `(("python-docopt" ,python-docopt)
6023 ("python-pygments" ,python-pygments)
6024 ("python-requests" ,python-requests)
6025 ("python-nose" ,python-nose)
6026 ("python-lxml" ,python-lxml)
6027 ("python-pyaml" ,python-pyaml)))
6028 (inputs
6029 `(("test-clf"
6030 ,(origin
6031 (method url-fetch)
6032 (uri (string-append "https://raw.githubusercontent.com"
6033 "/ncrocfer/clf/" commit-test-clf
6034 "/test_clf.py"))
6035 (sha256
6036 (base32
6037 "19lr5zdzsmxgkg7wrjq1yzkiahd03wi4k3dskssyhmjls8c10nqd"))))))
6038 (arguments
6039 '(#:phases
6040 (modify-phases %standard-phases
6041 (add-after 'unpack 'get-tests
6042 (lambda _
6043 (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")
6044 #t))
6045 (replace 'check
6046 (lambda _
6047 (invoke "nosetests"
6048 ;; These tests require an Internet connection.
6049 "--exclude=test_browse"
6050 "--exclude=test_command"
6051 "--exclude=test_search"))))))
6052 (home-page "https://github.com/ncrocfer/clf")
6053 (synopsis "Search code snippets on @url{https://commandlinefu.com}")
6054 (description "@code{clf} is a command line tool for searching code
6055snippets on @url{https://commandlinefu.com}.")
6056 (license license:expat))))
6057
6058(define-public python2-clf
6059 (package-with-python2 python-clf))
6060
6061(define-public rss-bridge
6062 (package
6063 (name "rss-bridge")
6064 (version "2019-09-12")
6065 (source
6066 (origin
6067 (method git-fetch)
6068 (uri (git-reference
6069 (url "https://github.com/RSS-Bridge/rss-bridge")
6070 (commit version)))
6071 (file-name (git-file-name name version))
6072 (sha256
6073 (base32 "1mx7f3l45nqhcrng531l4cq8kpzm164hhbwn26g5akb2pamdlnra"))))
6074 (build-system trivial-build-system)
6075 (arguments
6076 '(#:modules ((guix build utils))
6077 #:builder
6078 (begin
6079 (use-modules (guix build utils)
6080 (ice-9 match))
6081 (let* ((out (assoc-ref %outputs "out"))
6082 (share-rss-bridge (string-append out "/share/rss-bridge")))
6083 (mkdir-p share-rss-bridge)
6084 (copy-recursively (assoc-ref %build-inputs "source") share-rss-bridge)
6085 #t))))
6086 (home-page "https://github.com/RSS-Bridge/rss-bridge")
6087 (synopsis "Generate Atom feeds for social networking websites")
6088 (description "rss-bridge generates Atom feeds for social networking
6089websites lacking feeds. Supported websites include Facebook, Twitter,
6090Instagram and YouTube.")
6091 (license (list license:public-domain
6092 license:expat)))) ; vendor/simplehtmldom/simple_html_dom.php
6093
6094(define-public linkchecker
6095 (package
6096 (name "linkchecker")
6097 (version "9.4.0")
6098 (source
6099 (origin
6100 (method git-fetch)
6101 (uri (git-reference
6102 (url "https://github.com/linkchecker/linkchecker")
6103 (commit (string-append "v" version))))
6104 (patches
6105 (search-patches "linkchecker-tests-require-network.patch"))
6106 (file-name (git-file-name name version))
6107 (sha256
6108 (base32
6109 "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
6110 (build-system python-build-system)
6111 (inputs
6112 `(("python2-dnspython" ,python2-dnspython)
6113 ("python2-pyxdg" ,python2-pyxdg)
6114 ("python2-requests" ,python2-requests)))
6115 (native-inputs
6116 `(("gettext" ,gettext-minimal)
6117 ("python2-pytest" ,python2-pytest)
6118 ("python2-miniboa" ,python2-miniboa)
6119 ("python2-parameterized" ,python2-parameterized)))
6120 (arguments
6121 `(#:python ,python-2
6122 #:phases
6123 (modify-phases %standard-phases
6124 ;; Move the 'check phase to after 'install, so that the installed
6125 ;; library can be used
6126 (delete 'check)
6127 (add-after 'install 'check
6128 (lambda* (#:key outputs #:allow-other-keys)
6129 (let ((out (assoc-ref outputs "out")))
6130 ;; Set PYTHONPATH so that the installed linkchecker is used
6131 (setenv "PYTHONPATH"
6132 (string-append out "/lib/python2.7/site-packages"
6133 ":"
6134 (getenv "PYTHONPATH")))
6135 ;; Remove this directory to avoid it being used when running
6136 ;; the tests
6137 (delete-file-recursively "linkcheck")
6138
6139 (invoke "py.test" "tests"))
6140 #t)))))
6141 (home-page "https://linkcheck.github.io/linkchecker")
6142 (synopsis "Check websites for broken links")
6143 (description "LinkChecker is a website validator. It checks for broken
6144links in websites. It is recursive and multithreaded providing output in
6145colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It
6146supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local
6147file links.")
6148 (license (list license:gpl2+
6149 license:bsd-2 ; linkcheck/better_exchook2.py
6150 license:bsd-3 ; linkcheck/colorama.py
6151 license:psfl ; linkcheck/gzip2.py
6152 license:expat)))) ; linkcheck/mem.py
6153
6154(define-public cadaver
6155 (package
6156 (name "cadaver")
6157 (version "0.23.3")
6158 (source
6159 (origin
6160 (method url-fetch)
6161 (uri (string-append "http://www.webdav.org/cadaver/"
6162 name "-" version ".tar.gz"))
6163 (sha256
6164 (base32
6165 "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
6166 (build-system gnu-build-system)
6167 ;; TODO: Unbundle libneon and make build succeed with new neon.
6168 (arguments
6169 `(#:configure-flags (list "--with-ssl=openssl")
6170 #:tests? #f)) ;No tests included
6171 (native-inputs
6172 `(("gettext" ,gettext-minimal)
6173 ("pkg-config" ,pkg-config)
6174 ("intltool" ,intltool)))
6175 (inputs
6176 `(("expat" ,expat)
6177 ("openssl" ,openssl-1.0)))
6178 (home-page "http://www.webdav.org/cadaver/")
6179 (synopsis "Command-line WebDAV client")
6180 (description
6181 "Cadaver is a command-line WebDAV client for Unix. It supports
6182file upload, download, on-screen display, namespace operations (move/copy),
6183collection creation and deletion, and locking operations.")
6184 (license license:gpl2)))
6185
6186(define-public python-py-ubjson
6187 (package
6188 (name "python-py-ubjson")
6189 (version "0.10.0")
6190 (source
6191 (origin
6192 (method url-fetch)
6193 (uri (pypi-uri "py-ubjson" version))
6194 (sha256
6195 (base32
6196 "03l9m9w5ip4hw0y69wlys5gzsfb7zcq3a77blj88grgiqhn5vm5n"))))
6197 (build-system python-build-system)
6198 (home-page "https://github.com/Iotic-Labs/py-ubjson")
6199 (synopsis "Universal Binary JSON encoder/decoder")
6200 (description
6201 "Py-ubjson is a Python module providing an Universal Binary JSON
6202encoder/decoder based on the draft-12 specification for UBJSON.")
6203 (license license:asl2.0)))
6204
6205(define-public java-tomcat
6206 (package
6207 (name "java-tomcat")
6208 (version "8.5.53")
6209 (source (origin
6210 (method url-fetch)
6211 (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
6212 version "/src/apache-tomcat-" version "-src.tar.gz"))
6213 (sha256
6214 (base32
6215 "15lwq3clf21hzk7mma70sffpxjqn8ww5mjq6zhmwcp4m17m22z26"))
6216 (modules '((guix build utils)))
6217 ;; Delete bundled jars.
6218 (snippet
6219 '(begin
6220 (for-each delete-file (find-files "." "\\.jar$"))
6221 (for-each delete-file (find-files "." "\\.bat$"))
6222 #t))))
6223 (build-system ant-build-system)
6224 (inputs
6225 `(("java-commons-daemon" ,java-commons-daemon)
6226 ("java-ecj" ,java-ecj)))
6227 (arguments
6228 `(#:build-target "deploy"
6229 #:tests? #f; requires downloading some files.
6230 #:phases
6231 (modify-phases %standard-phases
6232 (add-after 'unpack 'prevent-download
6233 (lambda _
6234 ;; This directory must exist
6235 (mkdir "downloads")
6236 ;; We patch build.xml so it doesn't download any dependency, because
6237 ;; we already have all of them.
6238 (substitute* "build.xml"
6239 (("download-compile,") "")
6240 (("depends=\"validate\"") "depends=\"build-prepare\"")
6241 ((",download-validate") ""))
6242 #t))
6243 (add-after 'unpack 'strip-timestamps
6244 (lambda _
6245 (substitute* "build.xml"
6246 (("<filter token=\"YEAR\" value=.*")
6247 "<filter token=\"YEAR\" value=\"1970\"/>")
6248 (("<filter token=\"VERSION_BUILT\" value=.*")
6249 "<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
6250 #t))
6251 (add-after 'unpack 'modify-deploy
6252 (lambda _
6253 ;; The Tomcat build downloads and copies these files to the
6254 ;; bin and lib directory.
6255 ;; We instead symlink to the input (see below).
6256 (substitute* "build.xml"
6257 (("<copy tofile=\"\\$\\{tomcat.build\\}/bin/commons-daemon.jar.*") "")
6258 (("<copy file=\"\\$\\{jdt.jar\\}\" todir=\"\\$\\{tomcat.build\\}/lib\"/>")
6259 ""))
6260 #t))
6261 (add-after 'install 'symlink-commons-daemon
6262 (lambda* (#:key inputs outputs #:allow-other-keys)
6263 (let* ((commons-daemon (assoc-ref inputs "java-commons-daemon"))
6264 (files (find-files commons-daemon "commons-daemon-.*\\.jar"))
6265 (daemon-jar (car files))
6266 (out-bin (string-append (assoc-ref outputs "out") "/bin"))
6267 (target (string-append out-bin "/commons-daemon.jar")))
6268 (symlink daemon-jar target)
6269 #t)))
6270 (add-after 'install 'symlink-java-ecj
6271 (lambda* (#:key inputs outputs #:allow-other-keys)
6272 (let* ((java-ecj (assoc-ref inputs "java-ecj"))
6273 (files (find-files java-ecj "ecj.*\\.jar"))
6274 (java-ecj-jar (car files))
6275 (out-lib (string-append (assoc-ref outputs "out") "/lib"))
6276 (target (string-append out-lib "/java-ecj.jar")))
6277 (symlink java-ecj-jar target)
6278 #t)))
6279 (add-after 'unpack 'generate-properties
6280 (lambda _
6281 ;; This could have been passed to make-flags, but getcwd returns
6282 ;; a different directory then.
6283 (with-output-to-file "build.properties"
6284 (lambda _
6285 (display
6286 (string-append "base.path=" (getcwd) "/downloads\n"))))
6287 #t))
6288 (replace 'install
6289 (lambda* (#:key outputs #:allow-other-keys)
6290 (let ((out (assoc-ref outputs "out")))
6291 (copy-recursively "output/build" out))
6292 #t)))))
6293 (properties '((cpe-name . "tomcat")))
6294 (home-page "https://tomcat.apache.org")
6295 (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
6296WebSocket")
6297 (description "Apache Tomcat is a free implementation of the Java
6298Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
6299technologies.")
6300 (license license:asl2.0)))
6301
6302(define-public java-eclipse-jetty-test-helper
6303 (package
6304 (name "java-eclipse-jetty-test-helper")
6305 (version "4.2")
6306 (source (origin
6307 (method git-fetch)
6308 (uri (git-reference
6309 (url "https://github.com/eclipse/jetty.toolchain/")
6310 (commit (string-append "jetty-test-helper-" version))))
6311 (file-name (git-file-name name version))
6312 (sha256
6313 (base32
6314 "1g7cdh03nfwbdxzvwm84ysgvw08xx7431lsjryj2gmf3lrqpizgb"))))
6315 (build-system ant-build-system)
6316 (arguments
6317 `(#:jar-name "eclipse-jetty-test-helper.jar"
6318 #:source-dir "src/main/java"
6319 #:test-dir "src/test"
6320 #:jdk ,icedtea-8
6321 #:phases
6322 (modify-phases %standard-phases
6323 (add-before 'configure 'chdir
6324 (lambda _
6325 (chdir "jetty-test-helper")
6326 #t))
6327 (add-before 'build 'fix-paths
6328 (lambda _
6329 ;; TODO:
6330 ;; This file assumes that the build directory is named "target"
6331 ;; but it is not the case with our ant-build-system. Once we have
6332 ;; maven though, we will have to rebuild this package because this
6333 ;; assumption is correct with maven-build-system.
6334 (substitute*
6335 "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
6336 (("\"target\"") "\"build\"")
6337 (("\"tests\"") "\"test-classes\""))
6338 ;; Tests assume we are building with maven, so that the build
6339 ;; directory is named "target", and not "build".
6340 (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
6341 (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
6342 "MavenTestingUtilsTest.java")
6343 (("target/tests") "build/test-classes")
6344 (("\"target") "\"build")))
6345 #t)))))
6346 (inputs
6347 `(("junit" ,java-junit)
6348 ("hamcrest" ,java-hamcrest-all)))
6349 (home-page "https://www.eclipse.org/jetty/")
6350 (synopsis "Helper classes for jetty tests")
6351 (description "This package contains helper classes for testing the Jetty
6352Web Server.")
6353 ;; This program is licensed under both epl and asl.
6354 (license (list license:epl1.0 license:asl2.0))))
6355
6356(define-public java-eclipse-jetty-perf-helper
6357 (package
6358 (inherit java-eclipse-jetty-test-helper)
6359 (name "java-eclipse-jetty-perf-helper")
6360 (arguments
6361 `(#:jar-name "eclipse-jetty-perf-helper.jar"
6362 #:source-dir "src/main/java"
6363 #:tests? #f; no tests
6364 #:jdk ,icedtea-8
6365 #:phases
6366 (modify-phases %standard-phases
6367 (add-before 'configure 'chdir
6368 (lambda _
6369 (chdir "jetty-perf-helper")
6370 #t)))))
6371 (inputs
6372 `(("hdrhistogram" ,java-hdrhistogram)))))
6373
6374(define-public java-eclipse-jetty-util
6375 (package
6376 (name "java-eclipse-jetty-util")
6377 (version "9.4.6")
6378 (source (origin
6379 (method url-fetch)
6380 (uri (string-append "https://github.com/eclipse/jetty.project/"
6381 "archive/jetty-" version ".v20170531.tar.gz"))
6382 (sha256
6383 (base32
6384 "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
6385 (build-system ant-build-system)
6386 (arguments
6387 `(#:jar-name "eclipse-jetty-util.jar"
6388 #:source-dir "src/main/java"
6389 #:test-exclude
6390 (list "**/Abstract*.java"
6391 ;; requires network
6392 "**/InetAddressSetTest.java"
6393 ;; Assumes we are using maven
6394 "**/TypeUtilTest.java"
6395 ;; Error on the style of log
6396 "**/StdErrLogTest.java")
6397 #:jdk ,icedtea-8
6398 #:phases
6399 (modify-phases %standard-phases
6400 (add-before 'configure 'chdir
6401 (lambda _
6402 (chdir "jetty-util")
6403 #t)))))
6404 (inputs
6405 `(("slf4j" ,java-slf4j-api)
6406 ("servlet" ,java-javaee-servletapi)))
6407 (native-inputs
6408 `(("junit" ,java-junit)
6409 ("hamcrest" ,java-hamcrest-all)
6410 ("perf-helper" ,java-eclipse-jetty-perf-helper)
6411 ("test-helper" ,java-eclipse-jetty-test-helper)))
6412 (home-page "https://www.eclipse.org/jetty/")
6413 (synopsis "Utility classes for Jetty")
6414 (description "The Jetty Web Server provides an HTTP server and Servlet
6415container capable of serving static and dynamic content either from a standalone
6416or embedded instantiation. This package provides utility classes.")
6417 (license (list license:epl1.0 license:asl2.0))))
6418
6419;; This version is required by maven-wagon
6420(define-public java-eclipse-jetty-util-9.2
6421 (package
6422 (inherit java-eclipse-jetty-util)
6423 (version "9.2.22")
6424 (source (origin
6425 (method url-fetch)
6426 (uri (string-append "https://github.com/eclipse/jetty.project/"
6427 "archive/jetty-" version ".v20170606.tar.gz"))
6428 (sha256
6429 (base32
6430 "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
6431 (arguments
6432 `(#:jar-name "eclipse-jetty-util.jar"
6433 #:source-dir "src/main/java"
6434 #:jdk ,icedtea-8
6435 #:test-exclude
6436 (list "**/Abstract*.java"
6437 ;; requires network
6438 "**/InetAddressSetTest.java"
6439 ;; Assumes we are using maven
6440 "**/TypeUtilTest.java"
6441 ;; We don't have an implementation for slf4j
6442 "**/LogTest.java"
6443 ;; Error on the style of log
6444 "**/StdErrLogTest.java")
6445 #:phases
6446 (modify-phases %standard-phases
6447 (add-before 'configure 'chdir
6448 (lambda _
6449 (chdir "jetty-util")
6450 #t))
6451 (add-before 'build 'fix-test-sources
6452 (lambda _
6453 ;; We need to fix issues caused by changes in newer versions of
6454 ;; jetty-test-helper
6455 (let ((src "src/test/java/org/eclipse/jetty/util/resource"))
6456 (substitute* (string-append src "/AbstractFSResourceTest.java")
6457 (("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
6458 (("testdir.getFile\\(\"foo\"\\)")
6459 "testdir.getPathFile(\"foo\").toFile()")
6460 (("testdir.getFile\\(name\\)")
6461 "testdir.getPathFile(name).toFile()")))
6462 #t)))))))
6463
6464(define-public java-eclipse-jetty-io
6465 (package
6466 (inherit java-eclipse-jetty-util)
6467 (name "java-eclipse-jetty-io")
6468 (arguments
6469 `(#:jar-name "eclipse-jetty-io.jar"
6470 #:source-dir "src/main/java"
6471 #:jdk ,icedtea-8
6472 #:test-exclude (list "**/Abstract*.java"
6473 ;; Abstract class
6474 "**/EndPointTest.java")
6475 #:phases
6476 (modify-phases %standard-phases
6477 (add-before 'configure 'chdir
6478 (lambda _
6479 (chdir "jetty-io")
6480 #t)))))
6481 (inputs
6482 `(("slf4j" ,java-slf4j-api)
6483 ("servlet" ,java-javaee-servletapi)
6484 ("util" ,java-eclipse-jetty-util)))
6485 (synopsis "Jetty :: IO Utility")
6486 (description "The Jetty Web Server provides an HTTP server and Servlet
6487container capable of serving static and dynamic content either from a standalone
6488or embedded instantiation. This package provides IO-related utility classes.")))
6489
6490(define-public java-eclipse-jetty-io-9.2
6491 (package
6492 (inherit java-eclipse-jetty-io)
6493 (version (package-version java-eclipse-jetty-util-9.2))
6494 (source (package-source java-eclipse-jetty-util-9.2))
6495 (inputs
6496 `(("util" ,java-eclipse-jetty-util-9.2)
6497 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6498 (native-inputs
6499 `(("mockito" ,java-mockito-1)
6500 ("cglib" ,java-cglib)
6501 ("objenesis" ,java-objenesis)
6502 ("asm" ,java-asm)
6503 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6504
6505(define-public java-eclipse-jetty-http
6506 (package
6507 (inherit java-eclipse-jetty-util)
6508 (name "java-eclipse-jetty-http")
6509 (arguments
6510 `(#:jar-name "eclipse-jetty-http.jar"
6511 #:source-dir "src/main/java"
6512 #:jdk ,icedtea-8
6513 #:phases
6514 (modify-phases %standard-phases
6515 (add-before 'configure 'chdir
6516 (lambda _
6517 (chdir "jetty-http")
6518 #t))
6519 (add-before 'build 'copy-resources
6520 (lambda _
6521 (mkdir-p "build/classes")
6522 (copy-recursively "src/main/resources/" "build/classes/")
6523 #t)))))
6524 (inputs
6525 `(("slf4j" ,java-slf4j-api)
6526 ("servlet" ,java-javaee-servletapi)
6527 ("io" ,java-eclipse-jetty-io)
6528 ("util" ,java-eclipse-jetty-util)))
6529 (synopsis "Jetty :: Http Utility")
6530 (description "The Jetty Web Server provides an HTTP server and Servlet
6531container capable of serving static and dynamic content either from a standalone
6532or embedded instantiation. This package provides HTTP-related utility classes.")))
6533
6534(define-public java-eclipse-jetty-http-9.2
6535 (package
6536 (inherit java-eclipse-jetty-http)
6537 (version (package-version java-eclipse-jetty-util-9.2))
6538 (source (package-source java-eclipse-jetty-util-9.2))
6539 (inputs
6540 `(("util" ,java-eclipse-jetty-util-9.2)
6541 ("io" ,java-eclipse-jetty-io-9.2)
6542 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
6543
6544(define-public java-eclipse-jetty-jmx
6545 (package
6546 (inherit java-eclipse-jetty-util)
6547 (name "java-eclipse-jetty-jmx")
6548 (arguments
6549 `(#:jar-name "eclipse-jetty-jmx.jar"
6550 #:source-dir "src/main/java"
6551 #:jdk ,icedtea-8
6552 #:tests? #f; FIXME: requires com.openpojo.validation
6553 #:phases
6554 (modify-phases %standard-phases
6555 (add-before 'configure 'chdir
6556 (lambda _
6557 (chdir "jetty-jmx")
6558 #t)))))
6559 (inputs
6560 `(("slf4j" ,java-slf4j-api)
6561 ("servlet" ,java-javaee-servletapi)
6562 ("util" ,java-eclipse-jetty-util)))
6563 (synopsis "Jetty :: JMX Management")
6564 (description "The Jetty Web Server provides an HTTP server and Servlet
6565container capable of serving static and dynamic content either from a standalone
6566or embedded instantiation. This package provides the JMX management.")))
6567
6568(define-public java-eclipse-jetty-jmx-9.2
6569 (package
6570 (inherit java-eclipse-jetty-jmx)
6571 (version (package-version java-eclipse-jetty-util-9.2))
6572 (source (package-source java-eclipse-jetty-util-9.2))
6573 (inputs
6574 `(("util" ,java-eclipse-jetty-util-9.2)
6575 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
6576
6577(define java-eclipse-jetty-http-test-classes
6578 (package
6579 (inherit java-eclipse-jetty-util)
6580 (name "java-eclipse-jetty-http-test-classes")
6581 (arguments
6582 `(#:jar-name "eclipse-jetty-http.jar"
6583 #:source-dir "src/test"
6584 #:tests? #f
6585 #:jdk ,icedtea-8
6586 #:phases
6587 (modify-phases %standard-phases
6588 (add-before 'configure 'chdir
6589 (lambda _
6590 (chdir "jetty-http")
6591 #t)))))
6592 (inputs
6593 `(("slf4j" ,java-slf4j-api)
6594 ("java-javaee-servletapi" ,java-javaee-servletapi)
6595 ("http" ,java-eclipse-jetty-http)
6596 ("io" ,java-eclipse-jetty-io)
6597 ("util" ,java-eclipse-jetty-util)))))
6598
6599(define java-eclipse-jetty-http-test-classes-9.2
6600 (package
6601 (inherit java-eclipse-jetty-http-test-classes)
6602 (version (package-version java-eclipse-jetty-util-9.2))
6603 (source (package-source java-eclipse-jetty-util-9.2))
6604 (inputs
6605 `(("http" ,java-eclipse-jetty-http-9.2)
6606 ,@(package-inputs java-eclipse-jetty-http-9.2)))))
6607
6608(define-public java-eclipse-jetty-server
6609 (package
6610 (inherit java-eclipse-jetty-util)
6611 (name "java-eclipse-jetty-server")
6612 (arguments
6613 `(#:jar-name "eclipse-jetty-server.jar"
6614 #:source-dir "src/main/java"
6615 #:jdk ,icedtea-8
6616 #:tests? #f; requires a mockito version we don't have
6617 #:phases
6618 (modify-phases %standard-phases
6619 (add-before 'configure 'chdir
6620 (lambda _
6621 (chdir "jetty-server")
6622 #t))
6623 (add-before 'build 'fix-source
6624 (lambda _
6625 ;; Explicit casts to prevent build failures
6626 (substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
6627 (("append\\(LazyList")
6628 "append((CharSequence)LazyList"))
6629 (substitute*
6630 "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
6631 (((string-append
6632 "Class<\\? extends EventListener> clazz = _classLoader==null"
6633 "\\?Loader.loadClass\\(ContextHandler.class,className\\):"
6634 "_classLoader.loadClass\\(className\\);"))
6635 (string-append "Class<? extends EventListener> clazz = "
6636 "(Class<? extends EventListener>) "
6637 "(_classLoader==null?Loader.loadClass("
6638 "ContextHandler.class,className):"
6639 "_classLoader.loadClass(className));")))
6640 #t)))))
6641 (inputs
6642 `(("slf4j" ,java-slf4j-api)
6643 ("servlet" ,java-javaee-servletapi)
6644 ("http" ,java-eclipse-jetty-http)
6645 ("io" ,java-eclipse-jetty-io)
6646 ("jmx" ,java-eclipse-jetty-jmx)
6647 ("util" ,java-eclipse-jetty-util)))
6648 (native-inputs
6649 `(("test-classes" ,java-eclipse-jetty-http-test-classes)
6650 ,@(package-native-inputs java-eclipse-jetty-util)))
6651 (synopsis "Core jetty server artifact")
6652 (description "The Jetty Web Server provides an HTTP server and Servlet
6653container capable of serving static and dynamic content either from a standalone
6654or embedded instantiation. This package provides the core jetty server
6655artifact.")))
6656
6657(define-public java-eclipse-jetty-server-9.2
6658 (package
6659 (inherit java-eclipse-jetty-server)
6660 (version (package-version java-eclipse-jetty-util-9.2))
6661 (source (package-source java-eclipse-jetty-util-9.2))
6662 (inputs
6663 `(("util" ,java-eclipse-jetty-util-9.2)
6664 ("jmx" ,java-eclipse-jetty-jmx-9.2)
6665 ("io" ,java-eclipse-jetty-io-9.2)
6666 ("http" ,java-eclipse-jetty-http-9.2)
6667 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6668 (native-inputs
6669 `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
6670 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6671
6672(define-public java-eclipse-jetty-security
6673 (package
6674 (inherit java-eclipse-jetty-util)
6675 (name "java-eclipse-jetty-security")
6676 (arguments
6677 `(#:jar-name "eclipse-jetty-security.jar"
6678 #:source-dir "src/main/java"
6679 #:jdk ,icedtea-8
6680 #:test-exclude (list "**/ConstraintTest.*") ; This test fails
6681 #:phases
6682 (modify-phases %standard-phases
6683 (add-before 'configure 'chdir
6684 (lambda _
6685 (chdir "jetty-security")
6686 #t)))))
6687 (inputs
6688 `(("slf4j" ,java-slf4j-api)
6689 ("servlet" ,java-javaee-servletapi)
6690 ("http" ,java-eclipse-jetty-http)
6691 ("server" ,java-eclipse-jetty-server)
6692 ("util" ,java-eclipse-jetty-util)))
6693 (native-inputs
6694 `(("io" ,java-eclipse-jetty-io)
6695 ,@(package-native-inputs java-eclipse-jetty-util)))
6696 (synopsis "Jetty security infrastructure")
6697 (description "The Jetty Web Server provides an HTTP server and Servlet
6698container capable of serving static and dynamic content either from a standalone
6699or embedded instantiation. This package provides the core jetty security
6700infrastructure")))
6701
6702(define-public java-eclipse-jetty-security-9.2
6703 (package
6704 (inherit java-eclipse-jetty-security)
6705 (version (package-version java-eclipse-jetty-util-9.2))
6706 (source (package-source java-eclipse-jetty-util-9.2))
6707 (inputs
6708 `(("util" ,java-eclipse-jetty-util-9.2)
6709 ("http" ,java-eclipse-jetty-http-9.2)
6710 ("server" ,java-eclipse-jetty-server-9.2)
6711 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6712 (native-inputs
6713 `(("io" ,java-eclipse-jetty-io-9.2)
6714 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6715
6716(define-public java-eclipse-jetty-servlet
6717 (package
6718 (inherit java-eclipse-jetty-util)
6719 (name "java-eclipse-jetty-servlet")
6720 (arguments
6721 `(#:jar-name "eclipse-jetty-servlet.jar"
6722 #:source-dir "src/main/java"
6723 #:jdk ,icedtea-8
6724 #:phases
6725 (modify-phases %standard-phases
6726 (add-before 'configure 'chdir
6727 (lambda _
6728 (chdir "jetty-servlet")
6729 #t)))))
6730 (inputs
6731 `(("slf4j" ,java-slf4j-api)
6732 ("java-javaee-servletapi" ,java-javaee-servletapi)
6733 ("http" ,java-eclipse-jetty-http)
6734 ("http-test" ,java-eclipse-jetty-http-test-classes)
6735 ("io" ,java-eclipse-jetty-io)
6736 ("jmx" ,java-eclipse-jetty-jmx)
6737 ("security" ,java-eclipse-jetty-security)
6738 ("server" ,java-eclipse-jetty-server)
6739 ("util" ,java-eclipse-jetty-util)))
6740 (synopsis "Jetty Servlet Container")
6741 (description "The Jetty Web Server provides an HTTP server and Servlet
6742container capable of serving static and dynamic content either from a standalone
6743or embedded instantiation. This package provides the core jetty servlet
6744container.")))
6745
6746(define-public java-eclipse-jetty-servlet-9.2
6747 (package
6748 (inherit java-eclipse-jetty-servlet)
6749 (version (package-version java-eclipse-jetty-util-9.2))
6750 (source (package-source java-eclipse-jetty-util-9.2))
6751 (arguments
6752 `(#:jar-name "eclipse-jetty-servlet.jar"
6753 #:source-dir "src/main/java"
6754 #:jdk ,icedtea-8
6755 #:tests? #f; doesn't work
6756 #:phases
6757 (modify-phases %standard-phases
6758 (add-before 'configure 'chdir
6759 (lambda _
6760 (chdir "jetty-servlet")
6761 #t)))))
6762 (inputs
6763 `(("util" ,java-eclipse-jetty-util-9.2)
6764 ("jmx" ,java-eclipse-jetty-jmx-9.2)
6765 ("io" ,java-eclipse-jetty-io-9.2)
6766 ("http" ,java-eclipse-jetty-http-9.2)
6767 ("security" ,java-eclipse-jetty-security-9.2)
6768 ("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
6769 ("server" ,java-eclipse-jetty-server-9.2)
6770 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
6771
6772(define-public java-eclipse-jetty-xml
6773 (package
6774 (inherit java-eclipse-jetty-util)
6775 (name "java-eclipse-jetty-xml")
6776 (arguments
6777 `(#:jar-name "eclipse-jetty-xml.jar"
6778 #:source-dir "src/main/java"
6779 #:jdk ,icedtea-8
6780 #:tests? #f; most tests require network
6781 #:phases
6782 (modify-phases %standard-phases
6783 (add-before 'configure 'chdir
6784 (lambda _
6785 (chdir "jetty-xml")
6786 #t)))))
6787 (inputs
6788 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
6789 (native-inputs
6790 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
6791 ,@(package-native-inputs java-eclipse-jetty-util)))))
6792
6793(define-public java-eclipse-jetty-xml-9.2
6794 (package
6795 (inherit java-eclipse-jetty-xml)
6796 (version (package-version java-eclipse-jetty-util-9.2))
6797 (source (package-source java-eclipse-jetty-util-9.2))
6798 (arguments
6799 `(#:jar-name "eclipse-jetty-xml.jar"
6800 #:source-dir "src/main/java"
6801 #:jdk ,icedtea-8
6802 #:tests? #f; most tests require network
6803 #:phases
6804 (modify-phases %standard-phases
6805 (add-before 'configure 'chdir
6806 (lambda _
6807 (chdir "jetty-xml")
6808 #t)))))
6809 (inputs
6810 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6811 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6812 (native-inputs
6813 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6814 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6815
6816(define-public java-eclipse-jetty-webapp
6817 (package
6818 (inherit java-eclipse-jetty-util)
6819 (name "java-eclipse-jetty-webapp")
6820 (arguments
6821 `(#:jar-name "eclipse-jetty-webapp.jar"
6822 #:source-dir "src/main/java"
6823 #:jdk ,icedtea-8
6824 ;; One test fails
6825 #:test-exclude (list "**/WebAppContextTest.java")
6826 #:phases
6827 (modify-phases %standard-phases
6828 (add-before 'configure 'chdir
6829 (lambda _
6830 (chdir "jetty-webapp")
6831 #t)))))
6832 (inputs
6833 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
6834 ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
6835 ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
6836 ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
6837 ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
6838 ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
6839 ("java-javaee-servletapi" ,java-javaee-servletapi)))
6840 (native-inputs
6841 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
6842 ,@(package-native-inputs java-eclipse-jetty-util)))))
6843
6844(define-public java-eclipse-jetty-webapp-9.2
6845 (package
6846 (inherit java-eclipse-jetty-webapp)
6847 (version (package-version java-eclipse-jetty-util-9.2))
6848 (source (package-source java-eclipse-jetty-util-9.2))
6849 (arguments
6850 `(#:jar-name "eclipse-jetty-webapp.jar"
6851 #:source-dir "src/main/java"
6852 #:jdk ,icedtea-8
6853 #:test-exclude (list "**/WebAppContextTest.java")
6854 #:phases
6855 (modify-phases %standard-phases
6856 (add-before 'configure 'chdir
6857 (lambda _
6858 (chdir "jetty-webapp")
6859 #t)))))
6860 (inputs
6861 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6862 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
6863 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6864 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
6865 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6866 ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
6867 ("java-javaee-servletapi" ,java-javaee-servletapi)
6868 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6869 (native-inputs
6870 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6871 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6872
6873(define-public java-jsoup
6874 (package
6875 (name "java-jsoup")
6876 (version "1.10.3")
6877 (source (origin
6878 (method git-fetch)
6879 (uri (git-reference
6880 (url "https://github.com/jhy/jsoup")
6881 (commit (string-append "jsoup-" version))))
6882 (file-name (git-file-name name version))
6883 (sha256
6884 (base32
6885 "1hdpdx0x140r5x3yc251v7dj1h4j5a7nh9k885aw9q5vvz49lkf4"))))
6886 (build-system ant-build-system)
6887 (arguments
6888 `(#:jar-name "jsoup.jar"
6889 #:source-dir "src/main/java"
6890 #:phases
6891 (modify-phases %standard-phases
6892 (add-before 'build 'copy-resources
6893 (lambda _
6894 (let ((classes-dir (string-append (getcwd) "/build/classes")))
6895 (with-directory-excursion "src/main/java"
6896 (for-each (lambda (file)
6897 (let ((dist (string-append classes-dir "/" file)))
6898 (mkdir-p (dirname dist))
6899 (copy-file file dist)))
6900 (find-files "." ".*.properties"))))
6901 #t)))))
6902 (native-inputs
6903 `(("java-junit" ,java-junit)
6904 ("java-hamcrest-core" ,java-hamcrest-core)
6905 ("java-gson" ,java-gson)))
6906 (home-page "https://jsoup.org")
6907 (synopsis "HTML parser")
6908 (description "Jsoup is a Java library for working with real-world HTML. It
6909provides a very convenient API for extracting and manipulating data, using the
6910best of DOM, CSS, and jQuery-like methods.")
6911 (license license:expat)))
6912
6913(define-public java-signpost-core
6914 (package
6915 (name "java-signpost-core")
6916 (version "1.2.1.2")
6917 (source (origin
6918 (method git-fetch)
6919 (uri (git-reference
6920 (url "https://github.com/mttkay/signpost")
6921 (commit version)))
6922 (file-name (git-file-name name version))
6923 (sha256
6924 (base32
6925 "1l04yj2znch3hpyw90c4g4jan453w7d88l84bgl0c72i2kbb8z7h"))))
6926 (build-system ant-build-system)
6927 (arguments
6928 `(#:jar-name "signpost-core.jar"
6929 #:source-dir "signpost-core/src/main/java"
6930 #:test-dir "signpost-core/src/test"
6931 ;; Tests all fail with InstantiationException from mockito
6932 #:tests? #f))
6933 (propagated-inputs
6934 `(("java-commons-codec" ,java-commons-codec)))
6935 (home-page "https://github.com/mttkay/signpost")
6936 (synopsis "Lightweight client-side OAuth library for Java")
6937 (description "Signpost is the easy and intuitive solution for signing
6938HTTP messages on the Java platform in conformance with the OAuth Core 1.0a
6939standard. Signpost follows a modular and flexible design, allowing you to
6940combine it with different HTTP messaging layers.")
6941 (license license:asl2.0)))
6942
6943(define-public tidyp
6944 (package
6945 (name "tidyp")
6946 (version "1.04")
6947 (source
6948 (origin
6949 (method url-fetch)
6950 (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
6951 version ".tar.gz"))
6952 (sha256
6953 (base32
6954 "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
6955 (build-system gnu-build-system)
6956 ;; ./test-thing.sh tries to run ./testall.sh, which is not included.
6957 (arguments `(#:tests? #f))
6958 (home-page "http://www.tidyp.com/")
6959 (synopsis "Validate HTML")
6960 (description "Tidyp is a program that can validate your HTML, as well as
6961modify it to be more clean and standard. tidyp does not validate HTML 5.
6962
6963libtidyp is the library on which the program is based. It can be used by any
6964other program that can interface to it. The Perl module @code{HTML::Tidy} is
6965based on this library, allowing Perl programmers to easily validate HTML.")
6966 ;; See htmldoc/license.html
6967 (license license:bsd-3)))
6968
6969(define-public perl-html-tidy
6970 (package
6971 (name "perl-html-tidy")
6972 (version "1.60")
6973 (source
6974 (origin
6975 (method url-fetch)
6976 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
6977 version ".tar.gz"))
6978 (sha256
6979 (base32
6980 "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
6981 (build-system perl-build-system)
6982 (arguments
6983 '(#:phases
6984 (modify-phases %standard-phases
6985 (add-after 'unpack 'fix-tidyp-paths
6986 (lambda* (#:key inputs #:allow-other-keys)
6987 (substitute* "Makefile.PL"
6988 (("^my \\$inc = \"" line)
6989 (string-append line
6990 "-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
6991 (("-L/usr/lib")
6992 (string-append
6993 "-L" (assoc-ref inputs "tidyp") "/lib")))
6994 #t)))))
6995 (inputs
6996 `(("perl-libwww" ,perl-libwww)
6997 ("tidyp" ,tidyp)))
6998 (native-inputs
6999 `(("perl-test-exception" ,perl-test-exception)))
7000 (home-page "https://metacpan.org/release/HTML-Tidy")
7001 (synopsis "(X)HTML validation in a Perl object")
7002 (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
7003object. It's meant as a replacement for @code{HTML::Lint}, which is written
7004in Perl but is not nearly as capable as @code{HTML::Tidy}.")
7005 (license license:artistic2.0)))
7006
7007(define-public geomyidae
7008 (package
7009 (name "geomyidae")
7010 (version "0.34")
7011 (source
7012 (origin
7013 (method git-fetch)
7014 (uri (git-reference
7015 (url "git://r-36.net/geomyidae")
7016 (commit (string-append "v" version))))
7017 (file-name (git-file-name name version))
7018 (sha256
7019 (base32 "02afgrk36wkdkflyqr2xgh49v9zq6ma454jshk7igvhpxfb5l3ks"))))
7020 (build-system gnu-build-system)
7021 (arguments
7022 `(#:make-flags (list "CC=gcc"
7023 (string-append "PREFIX="
7024 (assoc-ref %outputs "out")))
7025 #:tests? #f ; no tests
7026 #:phases (modify-phases %standard-phases
7027 (delete 'configure))))
7028 (home-page "http://r-36.net/scm/geomyidae/file/README.html")
7029 (synopsis "Small Gopher server")
7030 (description
7031 "Geomyidae is a server for distributed hypertext protocol Gopher. Its
7032features include:
7033
7034@enumerate
7035@item Gopher menus (see @file{index.gph} for an example);
7036@item directory listings (if no @file{index.gph} was found);
7037@item CGI support (@file{.cgi} files are executed);
7038@item search support in CGI files;
7039@item logging with multiple log levels.
7040@end enumerate\n")
7041 (license license:expat)))
7042
7043(define-public cat-avatar-generator
7044 (package
7045 (name "cat-avatar-generator")
7046 (version "1")
7047 (source (origin
7048 (method git-fetch)
7049 (uri (git-reference
7050 (url "https://framagit.org/Deevad/cat-avatar-generator.git")
7051 (commit "71c0c662742cafe8afd2d2d50ec84243113e35ad")))
7052 (file-name (string-append name "-" version))
7053 (sha256
7054 (base32
7055 "0s7b5whqsmfa57prbgl66ym551kg6ly0z14h5dgrlx4lqm70y2yw"))))
7056 (build-system trivial-build-system)
7057 (arguments
7058 `(#:modules ((guix build utils))
7059 #:builder
7060 (begin
7061 (use-modules (guix build utils)
7062 (srfi srfi-1)
7063 (srfi srfi-26))
7064
7065 (let ((source (assoc-ref %build-inputs "source"))
7066 (php-dir (string-append %output "/share/web/" ,name "/")))
7067 ;; The cache directory must not be in the store, but in a writable
7068 ;; location. The webserver will give us this location.
7069 (copy-recursively source php-dir)
7070 (substitute* (string-append php-dir "/cat-avatar-generator.php")
7071 (("\\$cachepath = .*")
7072 "if(isset($_SERVER['CACHE_DIR']))
7073$cachepath = $_SERVER['CACHE_DIR'];
7074else
7075die('You need to set the CACHE_DIR variable first.');"))
7076 #t))))
7077 (home-page "https://framagit.org/Deevad/cat-avatar-generator")
7078 (synopsis "Random avatar generator")
7079 (description "Cat avatar generator is a generator of cat pictures optimised
7080to generate random avatars, or defined avatar from a \"seed\". This is a
7081derivation by David Revoy from the original MonsterID by Andreas Gohr.")
7082 ;; expat for the code, CC-BY 4.0 for the artwork
7083 (license (list license:expat
7084 license:cc-by4.0))))
7085
7086(define-public nghttp2
7087 (package
7088 (name "nghttp2")
7089 (version "1.40.0")
7090 (source
7091 (origin
7092 (method url-fetch)
7093 (uri (string-append "https://github.com/nghttp2/nghttp2/"
7094 "releases/download/v" version "/"
7095 "nghttp2-" version ".tar.xz"))
7096 (sha256
7097 (base32
7098 "0wwhwv7cvi1vxpdjwvg0kpa4jzhszclpnwrwfcw728zz53a47z09"))))
7099 (build-system gnu-build-system)
7100 (outputs (list "out"
7101 "lib")) ; only libnghttp2
7102 (native-inputs
7103 `(("pkg-config" ,pkg-config)
7104
7105 ;; Required by tests.
7106 ("cunit" ,cunit)
7107 ("tzdata" ,tzdata-for-tests)))
7108 (inputs
7109 ;; Required to build the tools (i.e. without ‘--enable-lib-only’).
7110 `(("c-ares" ,c-ares)
7111 ("jansson" ,jansson) ; for HPACK tools
7112 ,@(if (hurd-target?) '()
7113 `(("jemalloc" ,jemalloc))) ; fight nghttpd{,x} heap fragmentation
7114 ("libev" ,libev)
7115 ("libxml2" ,libxml2) ; for ‘nghttp -a’
7116 ("openssl" ,openssl)))
7117 (arguments
7118 `(#:configure-flags
7119 (list (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
7120 "--enable-app" ; build all the tools
7121 "--enable-hpack-tools" ; ...all the tools
7122 "--disable-examples"
7123 "--disable-static") ; don't bother building .a files
7124 #:phases
7125 (modify-phases %standard-phases
7126 (add-after 'unpack 'break-circular-reference
7127 ;; libnghttp2.pc by default retains a reference to the ‘out’ output,
7128 ;; which is not allowed. Break this cycle. While we could install
7129 ;; only the library to ‘out’ and move everything else to a separate
7130 ;; output, this would inconvenience the majority of (human) users.
7131 (lambda* (#:key outputs #:allow-other-keys)
7132 (substitute* "lib/libnghttp2.pc.in"
7133 (("@prefix@")
7134 (assoc-ref outputs "lib")))
7135 #t))
7136 (add-before 'check 'set-timezone-directory
7137 (lambda* (#:key inputs native-inputs #:allow-other-keys)
7138 (setenv "TZDIR" (string-append
7139 (assoc-ref (or native-inputs inputs) "tzdata")
7140 "/share/zoneinfo"))
7141 #t)))))
7142 (home-page "https://nghttp2.org/")
7143 (synopsis "HTTP/2 protocol client, proxy, server, and library")
7144 (description
7145 "nghttp2 implements the Hypertext Transfer Protocol, version
71462 (@dfn{HTTP/2}).
7147
7148A reusable C library provides the HTTP/2 framing layer, with several tools built
7149on top of it:
7150
7151@itemize
7152@item @command{nghttp}, a command-line HTTP/2 client. It exposes many advanced
7153and low-level aspects of the protocol and is useful for debugging.
7154@item @command{nghttpd}, a fast, multi-threaded HTTP/2 static web server that
7155serves files from a local directory.
7156@item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be
7157deployed in front of existing web servers that don't support HTTP/2.
7158Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for
7159backwards compatibility with clients that don't speak HTTP/2.
7160@item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.
7161@item HTTP/2 uses a header compression method called @dfn{HPACK}.
7162nghttp2 provides a HPACK encoder and decoder as part of its public API.
7163@item @command{deflatehd} converts JSON data or HTTP/1-style header fields to
7164compressed JSON header blocks.
7165@item @command{inflatehd} converts such compressed headers back to JSON pairs.
7166@end itemize\n")
7167 (license license:expat)))
7168
7169(define-public hpcguix-web
7170 (let ((commit "9de63562b06b4aef3a3afe5ecb18d3c91e57ee74")
7171 (revision "5"))
7172 (package
7173 (name "hpcguix-web")
7174 (version (git-version "0.0.1" revision commit))
7175 (source (origin
7176 (method git-fetch)
7177 (uri (git-reference
7178 (url "https://github.com/UMCUGenetics/hpcguix-web.git")
7179 (commit commit)))
7180 (file-name (git-file-name name version))
7181 (sha256
7182 (base32
7183 "0wjgj2s7v2cyz6dx24c111rxs99i84sfvxl4ch8brnh02j2606jz"))))
7184 (build-system gnu-build-system)
7185 (arguments
7186 `(#:modules ((guix build gnu-build-system)
7187 (guix build utils)
7188 (srfi srfi-26)
7189 (ice-9 popen)
7190 (ice-9 rdelim))
7191 #:phases
7192 (modify-phases %standard-phases
7193 (add-before 'configure 'set-variables
7194 (lambda _
7195 ;; This prevents a few warnings
7196 (setenv "GUILE_AUTO_COMPILE" "0")
7197 (setenv "XDG_CACHE_HOME" (getcwd))
7198 #t))
7199 (add-after 'install 'wrap-program
7200 (lambda* (#:key inputs outputs #:allow-other-keys)
7201 (let* ((out (assoc-ref outputs "out"))
7202 (guix (assoc-ref inputs "guix"))
7203 (guile (assoc-ref inputs "guile"))
7204 (gcrypt (assoc-ref inputs "guile-gcrypt"))
7205 (git (assoc-ref inputs "guile-git"))
7206 (bs (assoc-ref inputs "guile-bytestructures"))
7207 (json (assoc-ref inputs "guile-json"))
7208 (guile-cm (assoc-ref inputs
7209 "guile-commonmark"))
7210 (deps (list guile gcrypt git bs guile-cm guix json))
7211 (effective
7212 (read-line
7213 (open-pipe* OPEN_READ
7214 (string-append guile "/bin/guile")
7215 "-c" "(display (effective-version))")))
7216 (path (string-join
7217 (map (cut string-append <>
7218 "/share/guile/site/"
7219 effective)
7220 deps)
7221 ":"))
7222 (gopath (string-join
7223 (map (cut string-append <>
7224 "/lib/guile/" effective
7225 "/site-ccache")
7226 deps)
7227 ":")))
7228 (wrap-program (string-append out "/bin/run")
7229 `("GUILE_LOAD_PATH" ":" prefix (,path))
7230 `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
7231
7232 #t))))))
7233 (native-inputs
7234 `(("autoconf" ,autoconf)
7235 ("automake" ,automake)
7236 ("uglify-js" ,uglify-js)
7237 ("pkg-config" ,pkg-config)))
7238 (inputs
7239 `(("guix" ,guix)))
7240 (propagated-inputs
7241 `(("guile" ,guile-3.0)
7242 ("guile-commonmark" ,guile-commonmark)
7243 ("guile-json" ,guile-json-3)))
7244 (home-page "https://github.com/UMCUGenetics/hpcguix-web")
7245 (synopsis "Web interface for cluster deployments of Guix")
7246 (description "Hpcguix-web provides a web interface to the list of packages
7247provided by Guix. The list of packages is searchable and provides
7248instructions on how to use Guix in a shared HPC environment.")
7249 (license license:agpl3+))))
7250
7251(define-public httrack
7252 (package
7253 (name "httrack")
7254 (version "3.49.2")
7255 (source (origin
7256 (method url-fetch)
7257 (uri (string-append "https://mirror.httrack.com/historical/"
7258 "httrack-" version ".tar.gz"))
7259 (sha256
7260 (base32
7261 "09a0gm67nml86qby1k1gh7rdxamnrnzwr6l9r5iiq94favjs0xrl"))))
7262 (build-system gnu-build-system)
7263 (inputs
7264 `(("libressl" ,libressl)
7265 ("zlib" ,zlib)))
7266 (home-page "https://www.httrack.com/")
7267 (synopsis "Easy-to-use offline browser utility")
7268 (description "HTTrack allows you to download a World Wide Web site from
7269the Internet to a local directory, building recursively all directories,
7270getting HTML, images, and other files from the server to your computer.
7271
7272HTTrack arranges the original site's relative link-structure. Simply open
7273a page of the @emph{mirrored} website in your browser, and you can browse the
7274site from link to link, as if you were viewing it online. HTTrack can also
7275update an existing mirrored site, and resume interrupted downloads.
7276
7277HTTrack is fully configurable, and has an integrated help system.")
7278 (license license:gpl3+)))
7279
7280(define-public anonip
7281 (package
7282 (name "anonip")
7283 (version "1.0.0")
7284 (source (origin
7285 (method url-fetch)
7286 (uri (pypi-uri "anonip" version))
7287 (sha256
7288 (base32
7289 "0ckn9nnfhpdnz8b92q8pkysdqj6pdh71ckfqvfj0z01cq0hzbhd2"))))
7290 (build-system python-build-system)
7291 (home-page "https://github.com/DigitaleGesellschaft/Anonip")
7292 (synopsis "Anonymize IP addresses in log files")
7293 (description
7294 "Anonip masks the last bits of IPv4 and IPv6 addresses in log files.
7295That way most of the relevant information is preserved, while the IP address
7296does not match a particular individuum anymore.
7297
7298Depending on your Web server, the log entries may be piped to Anonip directly
7299or via a FIFO (named pipe). Thus the unmasked IP addresses will never be
7300written to any file.
7301
7302It's also possible to rewrite existing log files.
7303
7304Anonip can also be uses as a Python module in your own Python application.")
7305 (license license:bsd-3)))
7306
7307(define-public poussetaches
7308 (package
7309 (name "poussetaches")
7310 (version "0.0.2")
7311 (source
7312 (origin
7313 (method git-fetch)
7314 (uri (git-reference
7315 (url "https://github.com/tsileo/poussetaches")
7316 (commit version)))
7317 (file-name (git-file-name name version))
7318 (sha256
7319 (base32
7320 "0kckcwvqklavd855np9aq5js6mg84isrlwchr504yigwma0sm7hm"))))
7321 (build-system go-build-system)
7322 (propagated-inputs
7323 `(("go-github-com-robfig-cron" ,go-github-com-robfig-cron)
7324 ("go-golang-org-x-time" ,go-golang-org-x-time)))
7325 (arguments
7326 `(#:import-path "github.com/tsileo/poussetaches"))
7327 (home-page "https://github.com/tsileo/poussetaches")
7328 (synopsis "Lightweight asynchronous task execution service")
7329 (description "Poussetaches (which literally means \"push tasks\" in
7330French) is a lightweight asynchronous task execution service that aims to
7331replace Celery and RabbitMQ for small Python applications.
7332
7333The app posts base64-encoded payload to poussetaches and specifies the
7334endpoint that will be used to trigger the task. Poussetaches makes HTTP
7335requests with the registered payload until the right status code is
7336returned.")
7337 (license license:isc)))
7338
7339(define-public htmlcxx
7340 (package
7341 (name "htmlcxx")
7342 (version "0.87")
7343 (source
7344 (origin
7345 (method url-fetch)
7346 (uri
7347 (string-append "mirror://sourceforge/htmlcxx/v"
7348 version "/htmlcxx-" version ".tar.gz"))
7349 (sha256
7350 (base32 "1j3mzjlczjrk4ahc43s6kzpvzypzjmqz4sillnca5yadrwwgjf2x"))))
7351 (build-system gnu-build-system)
7352 (home-page "http://htmlcxx.sourceforge.net/")
7353 (synopsis "Simple non-validating CSS1 and HTML parser for C++")
7354 (description "htmlcxx is a simple non-validating CSS1 and HTML parser for
7355C++. Although there are several other HTML parsers available, htmlcxx has some
7356characteristics that make it unique:
7357@itemize
7358@item STL like navigation of DOM tree, using excelent's tree.hh library from
7359Kasper Peeters
7360@item It is possible to reproduce exactly, character by character, the original
7361document from the parse tree
7362@item Bundled CSS parser
7363@item Optional parsing of attributes
7364@item C++ code that looks like C++ (not so true anymore)
7365@item Offsets of tags/elements in the original document are stored in the nodes
7366of the DOM tree
7367@end itemize")
7368 (license (list license:lgpl2.0
7369 license:gpl2
7370 license:asl2.0))))
7371
7372(define-public librocket
7373 (package
7374 (name "librocket")
7375 (version "1.3.0.0")
7376 (source
7377 (origin
7378 (method git-fetch)
7379 (uri
7380 (git-reference
7381 (url "https://github.com/libRocket/libRocket")
7382 (commit (string-append "release-" version))))
7383 (file-name (git-file-name name version))
7384 (sha256
7385 (base32 "1n6gq007vqijyfasfnfg6c8d2rc9qarl4bhzbgkz062m4h5izlfs"))))
7386 (build-system cmake-build-system)
7387 (arguments
7388 `(#:tests? #f ; No tests.
7389 #:phases
7390 (modify-phases %standard-phases
7391 (add-after 'unpack 'chdir
7392 (lambda _
7393 (chdir "Build"))))))
7394 (inputs
7395 `(("freetype" ,freetype)))
7396 (home-page "https://github.com/libRocket/libRocket") ; http://librocket.com/ is down.
7397 (synopsis "HTML/CSS user interface library")
7398 (description "libRocket is a C++ user interface package based on the HTML
7399and CSS standards. libRocket uses the open standards XHTML1.0 and
7400CSS2.0 (while borrowing features from HTML5 and CSS3), and extends them with
7401features suited towards real-time applications. It is designed as a complete
7402solution for any project's interface needs:
7403
7404@itemize
7405@item Dynamic layout system.
7406@item Efficient application-wide styling, with a custom-built templating engine.
7407@item Fully featured control set: buttons, sliders, drop-downs, etc.
7408@item Runtime visual debugging suite.
7409@item Easily integrated and extensible with Python or Lua scripting.
7410@end itemize\n")
7411 (license license:expat)))