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