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