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