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