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