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