gnu: Move most packages from guile.scm to new module.
[jackhill/guix/guix.git] / gnu / packages / web.scm
CommitLineData
29a2ccd3 1;;; GNU Guix --- Functional package management for GNU
be6bfa7d 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
29a2ccd3 3;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
189be331 4;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
5fb205c6 5;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
92ce1883 6;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
d2c0f030 7;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
38012ed5 8;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
fa4131f2 9;;; Copyright © 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
d8f1c074 10;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
67c2fc01 11;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
ec672946 12;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
532126e9 13;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
7ffbbea0 14;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
bd9fe0f0 15;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
0ee23de9 16;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
4a78fd46 17;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
5df8f068 18;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
e46e70ac 19;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
b881dc6d 20;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
864042c5 21;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
da682825 22;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
3c8ba11a 23;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
efc8f7d0 24;;; Copyright © 2017 Petter <petter@mykolab.ch>
412d0072 25;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
a67f0946 26;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
3bedac50 27;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
d6a4dfec 28;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
4c9aa15e 29;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
67cf0702 30;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
078e2edf 31;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
29a2ccd3
AP
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)
c9d512fa 49 #:use-module (ice-9 match)
b5b73a82 50 #:use-module ((guix licenses) #:prefix l:)
29a2ccd3
AP
51 #:use-module (guix packages)
52 #:use-module (guix download)
833efa0d 53 #:use-module (guix git-download)
18cb3df8 54 #:use-module (guix cvs-download)
834dc830 55 #:use-module (guix hg-download)
b8ae816b 56 #:use-module (guix utils)
29a2ccd3 57 #:use-module (guix build-system gnu)
7ffbbea0 58 #:use-module (guix build-system glib-or-gtk)
c2337213
LC
59 #:use-module (guix build-system perl)
60 #:use-module (guix build-system cmake)
0ee23de9 61 #:use-module (guix build-system trivial)
da069d7e 62 #:use-module (guix build-system python)
91072287 63 #:use-module (guix build-system ant)
82cc8253 64 #:use-module (guix build-system scons)
38e62c81 65 #:use-module (gnu packages)
8d07936a 66 #:use-module (gnu packages admin)
0ae079ec 67 #:use-module (gnu packages adns)
29a2ccd3 68 #:use-module (gnu packages apr)
5a0096a3 69 #:use-module (gnu packages check)
99828fa7 70 #:use-module (gnu packages documentation)
b777d784 71 #:use-module (gnu packages docbook)
833efa0d 72 #:use-module (gnu packages autotools)
ce0614dd 73 #:use-module (gnu packages compression)
bb470bd3 74 #:use-module (gnu packages cyrus-sasl)
f643a6e9 75 #:use-module (gnu packages databases)
22df7001
EB
76 #:use-module (gnu packages bison)
77 #:use-module (gnu packages flex)
15dd85f0 78 #:use-module (gnu packages freedesktop)
89e34644 79 #:use-module (gnu packages kerberos)
57c2680e 80 #:use-module (gnu packages gd)
488e8863 81 #:use-module (gnu packages gettext)
7ffbbea0
RS
82 #:use-module (gnu packages glib)
83 #:use-module (gnu packages gnome)
4fc282b3 84 #:use-module (gnu packages gnu-doc)
b881dc6d 85 #:use-module (gnu packages gnupg)
1622637b 86 #:use-module (gnu packages gnuzilla)
22df7001 87 #:use-module (gnu packages gperf)
fbaf9376 88 #:use-module (gnu packages gtk)
d6a4dfec 89 #:use-module (gnu packages guile)
0791437f 90 #:use-module (gnu packages guile-xyz)
7ac2cab8 91 #:use-module (gnu packages java)
0ae079ec 92 #:use-module (gnu packages jemalloc)
22df7001 93 #:use-module (gnu packages image)
909dcf5b 94 #:use-module (gnu packages imagemagick)
0ae079ec 95 #:use-module (gnu packages libevent)
fbaf9376 96 #:use-module (gnu packages libidn)
0cf9f9b1 97 #:use-module (gnu packages libunistring)
8d07936a 98 #:use-module (gnu packages linux)
d2c0f030 99 #:use-module (gnu packages lisp)
bb470bd3 100 #:use-module (gnu packages lua)
909dcf5b 101 #:use-module (gnu packages markup)
8cecd22e 102 #:use-module (gnu packages ncurses)
a67f0946 103 #:use-module (gnu packages openstack)
ce0614dd 104 #:use-module (gnu packages base)
d6a4dfec 105 #:use-module (gnu packages package-management)
bd9fe0f0 106 #:use-module (gnu packages perl)
5ccde207 107 #:use-module (gnu packages perl-check)
ed865936 108 #:use-module (gnu packages python)
1b2f753d 109 #:use-module (gnu packages python-web)
44d10b1f 110 #:use-module (gnu packages python-xyz)
c9ea41ff 111 #:use-module (gnu packages pcre)
bb470bd3 112 #:use-module (gnu packages pkg-config)
412d0072 113 #:use-module (gnu packages qt)
da682825 114 #:use-module (gnu packages readline)
ec672946 115 #:use-module (gnu packages valgrind)
b777d784 116 #:use-module (gnu packages xml)
d22d72fc 117 #:use-module (gnu packages curl)
cc2b77df 118 #:use-module (gnu packages texinfo)
ec672946 119 #:use-module (gnu packages textutils)
a359c9c1 120 #:use-module (gnu packages tls)
909dcf5b 121 #:use-module (gnu packages version-control))
29a2ccd3
AP
122
123(define-public httpd
124 (package
125 (name "httpd")
b2e765de 126 (version "2.4.37")
29a2ccd3
AP
127 (source (origin
128 (method url-fetch)
129 (uri (string-append "mirror://apache/httpd/httpd-"
130 version ".tar.bz2"))
131 (sha256
132 (base32
b2e765de 133 "09npb7vlz5sizgj0nvl0bqxj9zig29ipkp07fgmw5ykjcxfdr61l"))))
29a2ccd3 134 (build-system gnu-build-system)
74c8b174 135 (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
29a2ccd3
AP
136 (inputs `(("apr" ,apr)
137 ("apr-util" ,apr-util)
138 ("openssl" ,openssl)
50b7a6a0 139 ("perl" ,perl))) ; needed to run bin/apxs
29a2ccd3
AP
140 (arguments
141 `(#:test-target "test"
142 #:configure-flags (list "--enable-rewrite"
143 "--enable-userdir"
144 "--enable-vhost-alias"
145 "--enable-ssl"
146 "--enable-mime-magic"
147 (string-append "--sysconfdir="
148 (assoc-ref %outputs "out")
149 "/etc/httpd"))))
150 (synopsis "Featureful HTTP server")
151 (description
152 "The Apache HTTP Server Project is a collaborative software development
153effort aimed at creating a robust, commercial-grade, featureful, and
35b9e423
EB
154freely-available source code implementation of an HTTP (Web) server. The
155project is jointly managed by a group of volunteers located around the world,
156using the Internet and the Web to communicate, plan, and develop the server
157and its related documentation.")
29a2ccd3
AP
158 (license l:asl2.0)
159 (home-page "https://httpd.apache.org/")))
c9ea41ff 160
98cf8ca8
CB
161(define-public mod-wsgi
162 (package
163 (name "mod-wsgi")
164 (version "4.5.22")
165 (source (origin
166 (method url-fetch)
167 (uri (string-append
168 "https://github.com/GrahamDumpleton/mod_wsgi/archive/"
169 version ".tar.gz"))
da0baf11 170 (file-name (string-append name "-" version ".tar.gz"))
98cf8ca8
CB
171 (sha256
172 (base32
173 "0n1yhmrfp8mjbsngmyjl937c6rc0069p6wdi1lknrbn1q42hzw6q"))))
174 (build-system gnu-build-system)
175 (arguments
176 '(#:tests? #f ;; TODO: Can't figure out if there are tests
177 #:make-flags (list
178 (string-append "DESTDIR="
179 (assoc-ref %outputs "out"))
180 "LIBEXECDIR=/modules")))
181 (inputs
182 `(("httpd" ,httpd)
183 ("python" ,python-wrapper)))
184 (synopsis "Apache HTTPD module for Python WSGI applications")
185 (description
186 "The mod_wsgi module for the Apache HTTPD Server adds support for running
187applications that support the Python @acronym{WSGI, Web Server Gateway
188Interface} specification.")
189 (license l:asl2.0)
190 (home-page "https://modwsgi.readthedocs.io/")))
191
c9d512fa
MW
192(define-public nginx
193 (package
194 (name "nginx")
67f00252 195 ;; Consider updating the nginx-documentation package if the nginx package is
834dc830 196 ;; updated.
4a21d176 197 (version "1.14.2")
c9d512fa
MW
198 (source (origin
199 (method url-fetch)
59fed2b6 200 (uri (string-append "https://nginx.org/download/nginx-"
c9d512fa
MW
201 version ".tar.gz"))
202 (sha256
203 (base32
4a21d176 204 "15wppq12qmq8acjs35xfj61czhf9cdc0drnl5mm8hcg3aihryb80"))))
c9d512fa 205 (build-system gnu-build-system)
03e8f9ed
TGR
206 (inputs `(("openssl" ,openssl)
207 ("pcre" ,pcre)
c9d512fa
MW
208 ("zlib" ,zlib)))
209 (arguments
210 `(#:tests? #f ; no test target
211 #:phases
a71c315b 212 (modify-phases %standard-phases
3a4de6b2 213 (add-before 'configure 'patch-/bin/sh
a71c315b
DT
214 (lambda _
215 (substitute* "auto/feature"
bb2f8bbc 216 (("/bin/sh") (which "sh")))
59fed2b6 217 #t))
3a4de6b2 218 (replace 'configure
249ab8cc 219 ;; The configure script is hand-written, not from GNU autotools.
a71c315b
DT
220 (lambda* (#:key outputs #:allow-other-keys)
221 (let ((flags
222 (list (string-append "--prefix=" (assoc-ref outputs "out"))
223 "--with-http_ssl_module"
26ac5c90 224 "--with-http_v2_module"
a71c315b 225 "--with-pcre-jit"
a71c315b
DT
226 "--with-debug"
227 ;; Even when not cross-building, we pass the
228 ;; --crossbuild option to avoid customizing for the
229 ;; kernel version on the build machine.
230 ,(let ((system "Linux") ; uname -s
63c295d2 231 (release "3.2.0") ; uname -r
a71c315b
DT
232 ;; uname -m
233 (machine (match (or (%current-target-system)
234 (%current-system))
235 ("x86_64-linux" "x86_64")
236 ("i686-linux" "i686")
4788deea
MW
237 ("mips64el-linux" "mips64")
238 ;; Prevent errors when querying
239 ;; this package on unsupported
240 ;; platforms, e.g. when running
241 ;; "guix package --search="
242 (_ "UNSUPPORTED"))))
a71c315b
DT
243 (string-append "--crossbuild="
244 system ":" release ":" machine)))))
245 (setenv "CC" "gcc")
246 (format #t "environment variable `CC' set to `gcc'~%")
247 (format #t "configure flags: ~s~%" flags)
6d286d82
TGR
248 (apply invoke "./configure" flags)
249 #t)))
249ab8cc
TGR
250 (add-after 'install 'install-man-page
251 (lambda* (#:key outputs #:allow-other-keys)
252 (let* ((out (assoc-ref outputs "out"))
253 (man (string-append out "/share/man")))
254 (install-file "objs/nginx.8" (string-append man "/man8"))
255 #t)))
3a4de6b2 256 (add-after 'install 'fix-root-dirs
59446b20
DT
257 (lambda* (#:key outputs #:allow-other-keys)
258 ;; 'make install' puts things in strange places, so we need to
259 ;; clean it up ourselves.
260 (let* ((out (assoc-ref outputs "out"))
261 (share (string-append out "/share/nginx")))
262 ;; This directory is empty, so get rid of it.
263 (rmdir (string-append out "/logs"))
264 ;; Example configuration and HTML files belong in
265 ;; /share.
266 (mkdir-p share)
267 (rename-file (string-append out "/conf")
268 (string-append share "/conf"))
269 (rename-file (string-append out "/html")
6d286d82
TGR
270 (string-append share "/html"))
271 #t))))))
59fed2b6 272 (home-page "https://nginx.org")
c9d512fa
MW
273 (synopsis "HTTP and reverse proxy server")
274 (description
275 "Nginx (\"engine X\") is a high-performance web and reverse proxy server
e43e1c1f 276created by Igor Sysoev. It can be used both as a stand-alone web server
c9d512fa
MW
277and as a proxy to reduce the load on back-end HTTP or mail servers.")
278 ;; Almost all of nginx is distributed under the bsd-2 license.
279 ;; The exceptions are:
280 ;; * The 'nginx-http-push' module is covered by the expat license.
281 ;; * The 'nginx-development-kit' module is mostly covered by bsd-3,
282 ;; except for two source files which are bsd-4 licensed.
283 (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4))))
284
834dc830
CB
285(define nginx-xslscript
286 (let ((revision 11)
287 (changeset "01dc9ba12e1b"))
288 (package
289 (name "nginx-xslscript")
290 (version
291 (simple-format #f "2014-03-31-~A-~A" revision changeset))
292 (source (origin
293 (method hg-fetch)
294 (uri (hg-reference
295 (url "http://hg.nginx.org/xslscript")
296 (changeset changeset)))
297 (file-name (string-append name "-" version))
298 (sha256
299 (base32
300 "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
301 (build-system gnu-build-system)
302 (arguments
303 '(#:tests? #f ; No test suite
304 #:phases
305 (modify-phases %standard-phases
306 (delete 'configure)
307 (delete 'build)
308 (replace 'install
309 (lambda* (#:key outputs #:allow-other-keys)
310 (let ((out-bin (string-append
311 (assoc-ref outputs "out")
312 "/bin")))
313 (mkdir-p out-bin)
314 (copy-file "xslscript.pl"
315 (string-append
316 out-bin
317 "/xslscript.pl"))
318 #t))))))
319 (home-page "http://hg.nginx.org/xslscript")
320 (synopsis "XSLScript with NGinx specific modifications")
321 (description
322 "XSLScript is a terse notation for writing complex XSLT stylesheets.
323This is modified version, specifically intended for use with the NGinx
324documentation.")
325 (license l:bsd-2))))
326
327(define-public nginx-documentation
bc32521a
TGR
328 ;; This documentation should be relevant for nginx@1.13.11.
329 (let ((revision 2131)
330 (changeset "dbaf3950f8e9"))
834dc830
CB
331 (package
332 (name "nginx-documentation")
333 (version
bc32521a 334 (simple-format #f "2018-04-04-~A-~A" revision changeset))
834dc830
CB
335 (source
336 (origin (method hg-fetch)
337 (uri (hg-reference
338 (url "http://hg.nginx.org/nginx.org")
339 (changeset changeset)))
340 (file-name (string-append name "-" version))
341 (sha256
342 (base32
bc32521a 343 "0acdjsdaqixzh9g9s6db552v4pan4nqrllyqapay9ns9yzh1hrp7"))))
834dc830
CB
344 (build-system gnu-build-system)
345 (arguments
67f00252 346 '(#:tests? #f ; no test suite
834dc830
CB
347 #:phases
348 (modify-phases %standard-phases
67f00252 349 (delete 'configure) ; no configure script
834dc830
CB
350 (replace 'build
351 (lambda* (#:key outputs #:allow-other-keys)
352 (let ((output (assoc-ref outputs "out")))
353 (substitute* "umasked.sh"
354 ((" /bin/sh") (string-append " " (which "sh"))))
355 ;; The documentation includes a banner, which makes sense on
356 ;; the NGinx website, but doesn't make much sense when
357 ;; viewing locally. Therefore, modify the CSS to remove the
358 ;; banner.
359 (substitute* "xslt/style.xslt"
360 (("#banner \\{ background: black;")
361 "#banner { background: black;
362 display: none;"))
6d286d82
TGR
363 (invoke "make")
364 #t)))
834dc830
CB
365 (replace 'install
366 (lambda* (#:key outputs #:allow-other-keys)
367 (let ((output (assoc-ref outputs "out")))
368 (mkdir-p output)
369 (copy-recursively "libxslt" output)
370 #t))))))
371 (native-inputs
372 `(("libxml2" ,libxml2)
373 ("libxslt" ,libxslt)
374 ("nginx-xslscript" ,nginx-xslscript)))
375 (home-page "https://nginx.org")
684ca67d 376 (synopsis "Documentation for the nginx web server")
834dc830
CB
377 (description
378 "This package provides HTML documentation for the nginx web server.")
379 (license l:bsd-2))))
380
ab519cfa
RW
381(define-public fcgi
382 (package
383 (name "fcgi")
384 (version "2.4.0")
385 (source
386 (origin
387 (method url-fetch)
d1b50439 388 ;; Upstream has disappeared.
ab519cfa
RW
389 (uri (string-append "https://sources.archlinux.org/other/packages/fcgi/"
390 "fcgi-" version ".tar.gz"))
391 (sha256
392 (base32
393 "1f857wnl1d6jfrgfgfpz3zdaj8fch3vr13mnpcpvy8bang34bz36"))
394 (patches (search-patches "fcgi-2.4.0-poll.patch"
395 "fcgi-2.4.0-gcc44-fixes.patch"))))
396 (build-system gnu-build-system)
0ff55f9d
RW
397 ;; Parallel building is not supported.
398 (arguments `(#:parallel-build? #f))
d1b50439
TGR
399 ;; This is an archived fork of the original home page, www.fastcgi.com.
400 (home-page "https://fastcgi-archives.github.io/")
ab519cfa 401 (synopsis "Language-independent, high-performant extension to CGI")
5ade9bc7 402 (description "FastCGI is a language-independent, scalable extension to CGI
ab519cfa
RW
403that provides high performance without the limitations of server specific
404APIs.")
405 ;; This package is released under the Open Market License, a variant of
406 ;; the Expat license, incompatible with the GPL.
407 (license (l:non-copyleft "file://LICENSE.TERMS"))))
408
9bad4043
RW
409(define-public fcgiwrap
410 (package
411 (name "fcgiwrap")
412 (version "1.1.0")
413 (source
414 (origin
415 (method url-fetch)
416 (uri (string-append "https://github.com/gnosek/fcgiwrap/"
417 "archive/" version ".tar.gz"))
418 (file-name (string-append name "-" version ".tar.gz"))
419 (sha256
420 (base32
421 "07y6s4mm86cv7p1ljz94sxnqa89y9amn3vzwsnbq5hrl4vdy0zac"))))
422 (build-system gnu-build-system)
423 (arguments
424 `(#:tests? #f ; no tests included
189be331 425 #:make-flags (list "CC=gcc")))
9bad4043
RW
426 (native-inputs
427 `(("autoconf" ,autoconf)
428 ("automake" ,automake)
429 ("pkg-config" ,pkg-config)))
430 (inputs
431 `(("fcgi" ,fcgi)))
432 (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
433 (synopsis "Simple server for running CGI applications over FastCGI")
434 (description "Fcgiwrap is a simple server for running CGI applications
435over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
436servers that may need it).")
437 (license l:expat)))
438
a641b579
EB
439(define-public starman
440 (package
441 (name "starman")
654116c1 442 (version "0.4014")
a641b579
EB
443 (source
444 (origin
445 (method url-fetch)
446 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
447 "Starman-" version ".tar.gz"))
448 (sha256
449 (base32
654116c1 450 "1sbb5rb3vs82rlh1fjkgkcmj5pj62b4y9si4ihh45sl9m8c2qxx5"))))
a641b579
EB
451 (build-system perl-build-system)
452 (native-inputs
453 `(("perl-libwww" ,perl-libwww)
454 ("perl-module-build-tiny" ,perl-module-build-tiny)
455 ("perl-test-requires" ,perl-test-requires)))
456 (propagated-inputs
457 `(("perl-data-dump" ,perl-data-dump)
458 ("perl-http-date" ,perl-http-date)
459 ("perl-http-message" ,perl-http-message)
460 ("perl-http-parser-xs" ,perl-http-parser-xs)
461 ("perl-net-server" ,perl-net-server)
462 ("perl-plack" ,perl-plack)
463 ("perl-test-tcp" ,perl-test-tcp)))
9aba9b12 464 (home-page "https://metacpan.org/release/Starman")
a641b579
EB
465 (synopsis "PSGI/Plack web server")
466 (description "Starman is a PSGI perl web server that has unique features
467such as high performance, preforking, signal support, superdaemon awareness,
468and UNIX socket support.")
2f3108ad 469 (license l:perl-license)))
a641b579 470
7ac2cab8
MB
471(define-public icedtea-web
472 (package
473 (name "icedtea-web")
474 (version "1.6.2")
475 (source (origin
476 (method url-fetch)
477 (uri (string-append
478 "http://icedtea.wildebeest.org/download/source/"
479 name "-" version ".tar.gz"))
480 (sha256
481 (base32
482 "004kwrngyxxlrlzby4vzxjr0xcyngcdc9dfgnvi61ffnjr006ryf"))))
483 (build-system gnu-build-system)
484 (arguments
485 `(#:configure-flags
486 (list "--disable-plugin" ;NPAPI plugins are obsolete nowadays.
487 (string-append "BIN_BASH=" (assoc-ref %build-inputs "bash")
488 "/bin/bash")
489 (string-append "--with-jdk-home=" (assoc-ref %build-inputs "jdk")))))
490 (outputs '("out" "doc"))
491 (native-inputs
492 `(("pkg-config" ,pkg-config)
493 ("zip" ,zip)))
494 (inputs
495 `(("gtk+" ,gtk+)
496 ("jdk" ,icedtea "jdk")))
497 (home-page "http://icedtea.classpath.org/wiki/IcedTea-Web")
498 (synopsis "Java Web Start")
499 (description
500 "IcedTea-Web is an implementation of the @dfn{Java Network Launching
501Protocol}, also known as Java Web Start. This package provides tools and
502libraries for working with JNLP applets.")
503 ;; The program is mainly GPL2+, with some individual files under LGPL2.1+
504 ;; or dual licenses.
505 (license l:gpl2+)))
506
2b0bba49
RW
507(define-public jansson
508 (package
509 (name "jansson")
86c19ed9 510 (version "2.11")
2b0bba49
RW
511 (source (origin
512 (method url-fetch)
513 (uri
514 (string-append "http://www.digip.org/jansson/releases/jansson-"
515 version ".tar.gz"))
516 (sha256
517 (base32
86c19ed9 518 "1x5jllzzqamq6kahx9d9a5mrarm9m3f30vfxvcqpi6p4mcnz91bf"))))
2b0bba49
RW
519 (build-system gnu-build-system)
520 (home-page "http://www.digip.org/jansson/")
521 (synopsis "JSON C library")
522 (description
523 "Jansson is a C library for encoding, decoding and manipulating JSON
524data.")
525 (license l:expat)))
526
f6ad09ae
LC
527(define-public json-c
528 (package
529 (name "json-c")
c0ef8ae2 530 (version "0.13.1")
f6ad09ae
LC
531 (source (origin
532 (method url-fetch)
a124bbd2
SB
533 (uri (string-append
534 "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
535 version ".tar.gz"))
f6ad09ae
LC
536 (sha256
537 (base32
c0ef8ae2 538 "0ws8dz9nk8q2c0gbf66kg2r6mrkl7kamd3gpdv9zsyrz9n6n0zmq"))
f6ad09ae
LC
539 (modules '((guix build utils)))
540 (snippet
541 '(begin
542 ;; Somehow 'config.h.in' is older than
543 ;; 'aclocal.m4', which would trigger a rule to
544 ;; run 'autoheader'.
545 (set-file-time "config.h.in"
546 (stat "aclocal.m4"))
6cbee49d 547 #t))))
f6ad09ae 548 (build-system gnu-build-system)
f6ad09ae
LC
549 (home-page "https://github.com/json-c/json-c/wiki")
550 (synopsis "JSON implementation in C")
551 (description
552 "JSON-C implements a reference counting object model that allows you to
e46e70ac
TGR
553easily construct JSON objects in C, output them as JSON-formatted strings and
554parse JSON-formatted strings back into the C representation of JSON objects.
555It aims to conform to RFC 7159.")
f6ad09ae
LC
556 (license l:x11)))
557
e46e70ac
TGR
558;; TODO: remove this old version when all dependents have been updated.
559(define-public json-c-0.12
560 (package
561 (inherit json-c)
562 (version "0.12.1")
563 (source (origin
564 (method url-fetch)
565 (uri (string-append
566 "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
567 version ".tar.gz"))
568 (sha256
569 (base32 "08qibrq29a5v7g23wi5icy6l4fbfw90h9ccps6vq0bcklx8n84ra"))
570 (modules '((guix build utils)))
571 (snippet
572 '(begin
573 ;; Somehow 'config.h.in' is older than
574 ;; 'aclocal.m4', which would trigger a rule to
575 ;; run 'autoheader'.
576 (set-file-time "config.h.in"
577 (stat "aclocal.m4"))
578
579 ;; Don't try to build with -Werror.
580 (substitute* (find-files "." "Makefile\\.in")
6cbee49d
MW
581 (("-Werror") ""))
582 #t))))))
e46e70ac 583
078e2edf
AV
584(define-public json-parser
585 (package
586 (name "json-parser")
587 (version "1.1.0")
588 (source (origin
589 ;; do not use auto-generated tarballs
590 (method git-fetch)
591 (uri (git-reference
592 (url "https://github.com/udp/json-parser.git")
593 (commit (string-append "v" version))))
594 (file-name (git-file-name name version))
595 (sha256
596 (base32
597 "1ls7z4fx0sq633s5bc0j1gh36sv087gmrgr7rza22wjq2d4606yf"))))
598 ;; FIXME: we should build the python bindings in a separate package
599 (build-system gnu-build-system)
600 ;; the tests are written for the python bindings which are not built here
601 (arguments '(#:tests? #f))
602 (home-page "https://github.com/udp/json-parser")
603 (synopsis "JSON parser written in ANSI C")
604 (description "This package provides a very low footprint JSON parser
605written in portable ANSI C.
606
607@itemize
608@item BSD licensed with no dependencies (i.e. just drop the C file into your
609project)
610@item Never recurses or allocates more memory than it needs
611@item Very simple API with operator sugar for C++
612@end itemize")
613 (license l:bsd-2)))
614
412d0072
PL
615(define-public qjson
616 (package
617 (name "qjson")
618 (version "0.9.0")
619 (source (origin
620 (method url-fetch)
621 (uri (string-append
622 "https://github.com/flavio/qjson/archive/"
623 version ".tar.gz"))
624 (file-name (string-append name "-" version ".tar.gz"))
625 (sha256
626 (base32
627 "1m0h4rajj99hv9w4i381a8x81lxiv167lxk10ncvphpkfxs624p8"))))
628 (build-system cmake-build-system)
629 (arguments
630 ;; The tests require a X server
631 `(#:configure-flags '("-DQJSON_BUILD_TESTS=ON"
632 "-DCMAKE_CXX_FLAGS=-std=gnu++11 -fPIC")
633 #:phases
634 (modify-phases %standard-phases
635 (add-after 'unpack 'disable-broken-test
636 (lambda _
637 ;; FIXME: One test fails. See
638 ;; https://github.com/flavio/qjson/issues/105
639 (substitute* "tests/scanner/testscanner.cpp"
640 (("QTest::newRow\\(\"too large exponential\"\\)" line)
641 (string-append "//" line)))
642 #t))
643 (add-before 'check 'render-offscreen
644 (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
645 (inputs
646 `(("qtbase" ,qtbase)))
647 (home-page "http://qjson.sourceforge.net")
648 (synopsis "Library that maps JSON data to QVariant objects")
649 (description "QJson is a Qt-based library that maps JSON data to
650@code{QVariant} objects. JSON arrays will be mapped to @code{QVariantList}
651instances, while JSON's objects will be mapped to @code{QVariantMap}.")
652 ;; Only version 2.1 of the license
653 (license l:lgpl2.1)))
654
bd9fe0f0
BW
655(define-public krona-tools
656 (package
657 (name "krona-tools")
9712ef8d 658 (version "2.7")
bd9fe0f0
BW
659 (source (origin
660 (method url-fetch)
661 (uri (string-append
662 "https://github.com/marbl/Krona/releases/download/v"
663 version "/KronaTools-" version ".tar"))
664 (sha256
665 (base32
9712ef8d 666 "0wvgllcqscsfb4xc09y3fqhx8i38pmr4w55vjs5y79wx56n710iq"))))
bd9fe0f0
BW
667 (build-system perl-build-system)
668 (arguments
5d52ac74 669 `(#:phases
bd9fe0f0
BW
670 (modify-phases %standard-phases
671 ;; There is no configure or build steps.
672 (delete 'configure)
9712ef8d 673 (delete 'build)
bd9fe0f0
BW
674 ;; Install script "install.pl" expects the build directory to remain
675 ;; after installation, creating symlinks etc., so re-implement it
676 ;; here.
677 (replace 'install
678 (lambda* (#:key outputs #:allow-other-keys)
679 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
680 (perl (string-append (assoc-ref outputs "out")
5d52ac74 681 "/lib/perl5/site_perl/krona-tools/lib")))
bd9fe0f0
BW
682 (mkdir-p bin)
683 (for-each
684 (lambda (script)
685 (let* ((executable (string-append "scripts/" script ".pl")))
686 ;; Prefix executables with 'kt' as install script does.
687 (copy-file executable (string-append bin "/kt" script))))
688 '("ClassifyBLAST"
689 "GetContigMagnitudes"
9712ef8d
BW
690 "GetLCA"
691 "GetTaxIDFromAcc"
692 "GetTaxInfo"
bd9fe0f0
BW
693 "ImportBLAST"
694 "ImportDiskUsage"
695 "ImportEC"
696 "ImportFCP"
697 "ImportGalaxy"
698 "ImportKrona"
699 "ImportMETAREP-BLAST"
700 "ImportMETAREP-EC"
701 "ImportMGRAST"
702 "ImportPhymmBL"
703 "ImportRDP"
704 "ImportRDPComparison"
705 "ImportTaxonomy"
706 "ImportText"
707 "ImportXML"))
9712ef8d
BW
708 (for-each
709 (lambda (directory)
710 (copy-recursively directory
711 (string-append perl "/../" directory)))
712 (list "data" "img" "taxonomy" "src"))
bd9fe0f0
BW
713 (install-file "lib/KronaTools.pm" perl))))
714 (add-after 'install 'wrap-program
715 (lambda* (#:key inputs outputs #:allow-other-keys)
716 (let* ((out (assoc-ref outputs "out"))
717 (path (getenv "PERL5LIB")))
718 (for-each
719 (lambda (executable)
720 (wrap-program executable
721 `("PERL5LIB" ":" prefix
5d52ac74
BW
722 (,(string-append out "/lib/perl5/site_perl/krona-tools/lib")))))
723 (find-files (string-append out "/bin/") ".*")))))
724 (delete 'check)
725 (add-after 'wrap-program 'check
726 (lambda* (#:key inputs outputs #:allow-other-keys)
727 (with-directory-excursion "data"
aa077155
TGR
728 (invoke (string-append (assoc-ref outputs "out") "/bin/ktImportText")
729 "ec.tsv")))))))
bd9fe0f0
BW
730 (inputs
731 `(("perl" ,perl)))
732 (home-page "https://github.com/marbl/Krona/wiki")
733 (synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
734 (description
735 "Krona is a flexible tool for exploring the relative proportions of
736hierarchical data, such as metagenomic classifications, using a radial,
737space-filling display. It is implemented using HTML5 and JavaScript, allowing
738charts to be explored locally or served over the Internet, requiring only a
739current version of any major web browser.")
740 (license l:bsd-3)))
741
ccb8da26
RW
742(define-public rapidjson
743 (package
744 (name "rapidjson")
d0386db4 745 (version "1.1.0")
ccb8da26
RW
746 (source (origin
747 (method url-fetch)
748 (uri (string-append
749 "https://github.com/miloyip/rapidjson/archive/v"
750 version ".tar.gz"))
751 (file-name (string-append name "-" version ".tar.gz"))
752 (sha256
753 (base32
5939188e
MB
754 "13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z"))
755 (modules '((guix build utils)))
756 (snippet
757 '(begin
758 ;; Remove code using the problematic JSON license (see
759 ;; <https://www.gnu.org/licenses/license-list.html#JSON>).
760 (delete-file-recursively "bin/jsonchecker")
761 #t))))
ccb8da26 762 (build-system cmake-build-system)
4fbed749
EF
763 (arguments
764 `(,@(if (string-prefix? "aarch64" (or (%current-target-system)
765 (%current-system)))
766 '(#:phases
767 (modify-phases %standard-phases
768 (add-after 'unpack 'patch-aarch-march-detection
769 (lambda _
770 (substitute* (find-files "." "^CMakeLists\\.txt$")
771 (("native") "armv8-a"))
772 #t))))
773 '())))
ccb8da26
RW
774 (home-page "https://github.com/miloyip/rapidjson")
775 (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
776 (description
777 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM
778style API.")
779 (license l:expat)))
780
d8f1c074
ED
781(define-public libyajl
782 (package
783 (name "libyajl")
784 (version "2.1.0")
785 (source (origin
786 (method url-fetch)
787 (uri (string-append "https://github.com/lloyd/yajl/"
788 "archive/" version ".tar.gz"))
789 (file-name (string-append name "-" version ".tar.gz"))
790 (sha256
791 (base32
792 "0nmcqpaiq4pv7dymyg3n3jsd57yhp5npxl26a1hzw3m3lmj37drz"))))
793 (build-system cmake-build-system)
532126e9
EF
794 (arguments
795 '(#:phases
796 (modify-phases %standard-phases
797 (add-after 'patch-source-shebangs 'patch-tests
798 (lambda _
799 (substitute* "test/parsing/run_tests.sh"
800 (("`which echo`") (which "echo")))
801 #t)))))
d8f1c074
ED
802 (home-page "https://lloyd.github.io/yajl/")
803 (synopsis "C library for parsing JSON")
804 (description
805 "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON
806parser written in ANSI C and a small validating JSON generator.")
807 (license l:isc)))
808
833efa0d
LC
809(define-public libwebsockets
810 (package
811 (name "libwebsockets")
c2337213 812 (version "1.3")
833efa0d
LC
813 (source (origin
814 ;; The project does not publish tarballs, so we have to take
815 ;; things from Git.
816 (method git-fetch)
817 (uri (git-reference
5f13bf09 818 (url "https://github.com/warmcat/libwebsockets.git")
833efa0d 819 (commit (string-append "v" version
c2337213 820 "-chrome37-firefox30"))))
833efa0d
LC
821 (sha256
822 (base32
c2337213 823 "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
833efa0d
LC
824 (file-name (string-append name "-" version))))
825
c2337213 826 (build-system cmake-build-system)
833efa0d 827 (arguments
c2337213
LC
828 ;; XXX: The thing lacks a 'make test' target, because CMakeLists.txt
829 ;; doesn't use 'add_test', and it's unclear how to run the test suite.
830 '(#:tests? #f))
833efa0d 831
c2337213 832 (native-inputs `(("perl" ,perl))) ; to build the HTML doc
833efa0d
LC
833 (inputs `(("zlib" ,zlib)
834 ("openssl" ,openssl)))
835 (synopsis "WebSockets library written in C")
836 (description
35b9e423 837 "Libwebsockets is a library that allows C programs to establish client
833efa0d
LC
838and server WebSockets connections---a protocol layered above HTTP that allows
839for efficient socket-like bidirectional reliable communication channels.")
840 (home-page "http://libwebsockets.org/")
841
842 ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
843 (license l:lgpl2.1)))
844
488e8863
EB
845(define-public libpsl
846 (package
847 (name "libpsl")
b7434807 848 (version "0.20.2")
488e8863
EB
849 (source (origin
850 (method url-fetch)
851 (uri (string-append "https://github.com/rockdaboot/libpsl/"
6c277c89
EF
852 "releases/download/libpsl-" version
853 "/libpsl-" version ".tar.gz"))
488e8863
EB
854 (sha256
855 (base32
b7434807 856 "03sn3fbcrmgl9x2f1gc6rbrdlbrnwbhrnkgi733gqb95cvmhmzgq"))))
488e8863 857 (build-system gnu-build-system)
0cf9f9b1
TGR
858 (native-inputs
859 `(("pkg-config" ,pkg-config)))
6c277c89 860 (inputs
0cf9f9b1
TGR
861 `(("libidn2" ,libidn2)
862 ("libunistring" ,libunistring)
6c277c89 863 ("python-2" ,python-2)))
488e8863
EB
864 (home-page "https://github.com/rockdaboot/libpsl")
865 (synopsis "C library for the Publix Suffix List")
866 (description
867 "A \"public suffix\" is a domain name under which Internet users can
868directly register own names.
869
870Browsers and other web clients can use it to avoid privacy-leaking
871\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain
872highlighting parts of the domain in a user interface, and sorting domain lists
873by site.
874
875Libpsl has built-in PSL data for fast access, allows to load PSL data from
876files, checks if a given domain is a public suffix, provides immediate cookie
877domain verification, finds the longest public part of a given domain, finds
878the shortest private part of a given domain, works with international
879domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
e881752c 880UTS#46.")
488e8863
EB
881 (license l:x11)))
882
18cb3df8
DT
883(define-public tidy
884 (package
885 (name "tidy")
886 (version "20091223")
887 (source (origin
888 (method cvs-fetch)
889 (uri (cvs-reference
890 (root-directory
891 ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
892 (module "tidy")
893 (revision "2009-12-23")))
716a39bc 894 (file-name (string-append name "-" version "-checkout"))
18cb3df8
DT
895 (sha256
896 (base32
4d853910 897 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))
fc1adab1 898 (patches (search-patches "tidy-CVE-2015-5522+5523.patch"))))
18cb3df8
DT
899 (build-system gnu-build-system)
900 (arguments
917239ff 901 '(#:phases (modify-phases %standard-phases
189be331 902 (replace 'bootstrap
917239ff
TGR
903 (lambda* (#:key inputs #:allow-other-keys)
904 ;; configure.in and Makefile.am aren't in the root of the
905 ;; source tree.
906 (copy-recursively "build/gnuauto" ".")
907 (setenv "AUTOMAKE" "automake --foreign")
b5d58705 908 (invoke "autoreconf" "-vfi"))))))
18cb3df8
DT
909 (native-inputs
910 `(("automake" ,automake)
911 ("autoconf" ,autoconf)
912 ("libtool" ,libtool)))
913 (synopsis "HTML validator and tidier")
914 (description "HTML Tidy is a command-line tool and C library that can be
915used to validate and fix HTML data.")
916 (home-page "http://tidy.sourceforge.net/")
917 (license (l:x11-style "file:///include/tidy.h"))))
918
8142aff3 919(define-public tinyproxy
c9ea41ff 920 (package
8142aff3 921 (name "tinyproxy")
419aa05e 922 (version "1.10.0")
8142aff3
EB
923 (source (origin
924 (method url-fetch)
b5076461
EF
925 (uri (string-append "https://github.com/tinyproxy/tinyproxy/"
926 "releases/download/" version "/tinyproxy-"
927 version ".tar.xz"))
8142aff3
EB
928 (sha256
929 (base32
419aa05e 930 "10jnk6y2swld25mm47mjc0nkffyzsfysnsxwr7cs0ns1kil8ggjr"))))
8142aff3
EB
931 (build-system gnu-build-system)
932 (arguments
933 `(#:configure-flags
934 (list
935 ;; For the log file, etc.
936 "--localstatedir=/var")
937 #:phases
dc1d3cde
KK
938 (modify-phases %standard-phases
939 (add-before 'build 'pre-build
940 (lambda* (#:key inputs #:allow-other-keys #:rest args)
941 ;; Uncommenting the next two lines may assist in debugging
942 ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
943 ;; (setenv "XML_DEBUG_CATALOG" "1")
944 #t)))))
b5076461 945 (home-page "https://tinyproxy.github.io/")
8142aff3
EB
946 (synopsis "Light-weight HTTP/HTTPS proxy daemon")
947 (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
948daemon. Designed from the ground up to be fast and yet small, it is an ideal
949solution for use cases such as embedded deployments where a full featured HTTP
950proxy is required, but the system resources for a larger proxy are
951unavailable.")
952 (license l:gpl2+)))
953
954(define-public polipo
955 (package
956 (name "polipo")
957 (version "1.1.1")
958 (source
959 (origin
960 (method url-fetch)
961 (uri (string-append
962 "http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/polipo-"
963 version ".tar.gz"))
964 (sha256
965 (base32
966 "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2"))))
967 (native-inputs `(("texinfo" ,texinfo)))
968 (build-system gnu-build-system)
969 (arguments
9bd259d8
TGR
970 `(#:phases (modify-phases %standard-phases
971 (delete 'configure))
8142aff3
EB
972 #:make-flags (let ((out (assoc-ref %outputs "out")))
973 (list (string-append "PREFIX=" out)
974 (string-append "LOCAL_ROOT="
975 out "/share/polipo/www")
976 "CC=gcc"))
977 ;; No 'check' target.
978 #:tests? #f))
979 (home-page "http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/")
980 (synopsis "Small caching web proxy")
981 (description
982 "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy
983server). It was primarily designed to be used by one person or a small group
984of people.")
985 (license l:expat)))
986
a67f0946
RH
987(define-public websockify
988 (package
989 (name "websockify")
990 (version "0.8.0")
991 (source (origin
992 (method url-fetch)
993 (uri (string-append "https://github.com/novnc/websockify/archive/v"
994 version "/archive.tar.gz"))
995 (file-name (string-append name "-" version ".tar.gz"))
996 (sha256
997 (base32
998 "1kjq6gibsvbb6zx5gi8hgh7110x62pbwcqkwapf3k7s27w5y907h"))))
999 (build-system python-build-system)
1000 (arguments
1001 `(#:tests? #f)) ; FIXME: 2 out of 6 tests fail with "ImportError: No module
1002 ; named 'stubout'". The tests can be run by replacing the check phase with
1003 ; the command "python setup.py nosetests --verbosity=3".
1004 (native-inputs `(; Required for tests:
c695fb76
TGR
1005 ("python-mox3" ,python-mox3)
1006 ("python-nose" ,python-nose)))
1007 (propagated-inputs `(("python-numpy" ,python-numpy)))
a67f0946
RH
1008 (home-page "https://github.com/novnc/websockify")
1009 (synopsis "WebSockets support for any application/server")
1010 (description "Websockify translates WebSockets traffic to normal socket
1011traffic. Websockify accepts the WebSockets handshake, parses it, and then
1012begins forwarding traffic between the client and the target in both
1013directions.")
1014 (license l:lgpl3)))
1015
b881dc6d
BT
1016(define-public wwwoffle
1017 (package
1018 (name "wwwoffle")
1019 (version "2.9j")
1020 (source (origin
1021 (method url-fetch)
1022 (uri (string-append "https://www.gedanken.org.uk/software/"
1023 "wwwoffle/download/wwwoffle-"
1024 version ".tgz"))
1025 (sha256
1026 (base32
1027 "1ihil1xq9dp21hf108khxbw6f3baq0w5c0j3af038y6lkmad4vdi"))))
1028 (build-system gnu-build-system)
1029 (arguments
1030 `(#:configure-flags '("--with-gnutls")
1031 #:tests? #f)) ; no test target
1032 (native-inputs `(("flex" ,flex)))
1033 (inputs `(("gnutls" ,gnutls)
c695fb76 1034 ("libcrypt" ,libgcrypt)))
b881dc6d
BT
1035 (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
1036 (synopsis "Caching web proxy optimized for intermittent internet links")
1037 (description "WWWOFFLE is a proxy web server that is especially good for
1038intermittent internet links. It can cache HTTP, HTTPS, FTP, and finger
1039protocols, and supports browsing and requesting pages while offline, indexing,
1040modifying pages and incoming and outgoing headers, monitoring pages for
1041changes, and much more.")
1042 (license l:gpl2+)))
1043
1622637b
KK
1044(define-public liboauth
1045 (package
1046 (name "liboauth")
1047 (version "1.0.3")
1048 (source (origin
1049 (method url-fetch)
1050 (uri (string-append "mirror://sourceforge/liboauth/liboauth-"
1051 version ".tar.gz"))
1052 (sha256
1053 (base32
1054 "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"))))
1055 (build-system gnu-build-system)
1056 (arguments '(#:configure-flags '("--enable-nss")))
1057 (native-inputs `(("pkg-config" ,pkg-config)))
1058 (propagated-inputs
1059 `(("curl" ,curl)
1060 ("nss" ,nss)))
1061 (home-page "https://sourceforge.net/projects/liboauth")
1819fd2c 1062 (synopsis "C library implementing the OAuth API")
1622637b 1063 (description
1819fd2c
KK
1064 "liboauth is a collection of C functions implementing the OAuth API.
1065liboauth provides functions to escape and encode strings according to OAuth
1066specifications and offers high-level functionality built on top to sign
1622637b
KK
1067requests or verify signatures using either NSS or OpenSSL for calculating the
1068hash/signatures.")
1069 ;; Source code may be distributed under either license.
1070 (license (list l:expat l:gpl2+))))
1071
8142aff3
EB
1072(define-public libyaml
1073 (package
1074 (name "libyaml")
ab5fc6a9 1075 (version "0.1.7")
8142aff3
EB
1076 (source
1077 (origin
1078 (method url-fetch)
1079 (uri (string-append
1080 "http://pyyaml.org/download/libyaml/yaml-"
1081 version ".tar.gz"))
1082 (sha256
1083 (base32
ab5fc6a9 1084 "0a87931cx5m14a1x8rbjix3nz7agrcgndf4h392vm62a4rby9240"))))
8142aff3
EB
1085 (build-system gnu-build-system)
1086 (home-page "http://pyyaml.org/wiki/LibYAML")
1087 (synopsis "YAML 1.1 parser and emitter written in C")
1088 (description
1089 "LibYAML is a YAML 1.1 parser and emitter written in C.")
1090 (license l:expat)))
1091
1092(define-public libquvi-scripts
1093 (package
1094 (name "libquvi-scripts")
1095 (version "0.4.21")
1096 (source
1097 (origin
1098 (method url-fetch)
1099 (uri (string-append
de67e922
LF
1100 "mirror://sourceforge/quvi/" (version-major+minor version) "/"
1101 name "/" name "-" version ".tar.xz"))
8142aff3
EB
1102 (sha256
1103 (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
1104 (build-system gnu-build-system)
1105 (home-page "http://quvi.sourceforge.net/")
1106 (synopsis "Media stream URL parser")
1107 (description "This package contains support scripts called by libquvi to
1108parse media stream properties.")
1109 (license l:lgpl2.1+)))
1110
1111(define-public libquvi
1112 (package
1113 (name "libquvi")
1114 (version "0.4.1")
1115 (source
1116 (origin
1117 (method url-fetch)
1118 (uri (string-append
de67e922
LF
1119 "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/"
1120 name "-" version ".tar.xz"))
8142aff3
EB
1121 (sha256
1122 (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
1123 (build-system gnu-build-system)
1124 (native-inputs `(("pkg-config" ,pkg-config)))
1125 (inputs
1126 `(("curl" ,curl)
1127 ("cyrus-sasl" ,cyrus-sasl)
1128 ("libquvi-scripts" ,libquvi-scripts)
1129 ("lua" ,lua-5.1)
1130 ("openssl" ,openssl)
1131 ("zlib" ,zlib)))
1132 (arguments
1133 ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
1134 '(#:configure-flags
1135 (let ((lua (assoc-ref %build-inputs "lua")))
1136 (list
1137 (string-append "liblua_CFLAGS=-I" lua "/include")
1138 (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
1139 (home-page "http://quvi.sourceforge.net/")
1140 (synopsis "Media stream URL parser")
1141 (description "libquvi is a library with a C API for parsing media stream
1142URLs and extracting their actual media files.")
1143 (license l:lgpl2.1+)))
1144
1145(define-public quvi
1146 (package
1147 (name "quvi")
1148 (version "0.4.2")
1149 (source
1150 (origin
1151 (method url-fetch)
1152 (uri (string-append
de67e922
LF
1153 "mirror://sourceforge/" name "/" (version-major+minor version)
1154 "/" name "/" name "-" version ".tar.xz"))
8142aff3
EB
1155 (sha256
1156 (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
1157 (build-system gnu-build-system)
1158 (native-inputs `(("pkg-config" ,pkg-config)))
1159 (inputs
1160 `(("curl" ,curl)
1161 ("libquvi" ,libquvi)))
1162 (home-page "http://quvi.sourceforge.net/")
1163 (synopsis "Media stream URL parser")
1164 (description "quvi is a command-line-tool suite to extract media files
1165from streaming URLs. It is a command-line wrapper for the libquvi library.")
1166 (license l:lgpl2.1+)))
1167
ed865936
MW
1168(define-public serf
1169 (package
1170 (name "serf")
244d4f48 1171 (version "1.3.9")
ed865936
MW
1172 (source
1173 (origin
1174 (method url-fetch)
6d22653e 1175 (uri (string-append "https://archive.apache.org/dist/serf/serf-"
ed865936
MW
1176 version ".tar.bz2"))
1177 (sha256
244d4f48 1178 (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
82cc8253 1179 (build-system scons-build-system)
ed865936
MW
1180 (propagated-inputs
1181 `(("apr" ,apr)
1182 ("apr-util" ,apr-util)
1183 ("openssl" ,openssl)))
1184 (inputs
1185 `(;; TODO: Fix build with gss.
1186 ;;("gss" ,gss)
1187 ("zlib" ,zlib)))
1188 (arguments
82cc8253
AI
1189 `(#:scons ,scons-python2
1190 #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
1191 (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
1192 (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl"))
1193 ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss"))
1194 (string-append "ZLIB=" (assoc-ref %build-inputs "zlib"))
1195 (string-append "PREFIX=" %output))
4da18166 1196 #:phases
ed865936 1197 (modify-phases %standard-phases
ed865936
MW
1198 (add-after 'unpack 'scons-propagate-environment
1199 (lambda _
1200 ;; By design, SCons does not, by default, propagate
1201 ;; environment variables to subprocesses. See:
1202 ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
1203 ;; Here, we modify the SConstruct file to arrange for
1204 ;; environment variables to be propagated.
1205 (substitute* "SConstruct"
1206 (("^env = Environment\\(")
1207 "env = Environment(ENV=os.environ, "))))
decb4c26
MB
1208 (add-before 'check 'disable-broken-tests
1209 (lambda _
1210 ;; These tests rely on SSL certificates that expired 2017-04-18.
1211 ;; While there are newer certs available upstream, we don't want
1212 ;; this package to suddenly "expire" some time in the future.
1213 ;; https://bugs.gnu.org/26671
1214 (let ((broken-tests
1215 '("test_ssl_trust_rootca"
1216 "test_ssl_certificate_chain_with_anchor"
1217 "test_ssl_certificate_chain_all_from_server"
1218 "test_ssl_no_servercert_callback_allok"
1219 "test_ssl_large_response"
1220 "test_ssl_large_request"
1221 "test_ssl_client_certificate"
1222 "test_ssl_future_server_cert"
1223 "test_setup_ssltunnel"
1224 "test_ssltunnel_basic_auth"
1225 "test_ssltunnel_basic_auth_server_has_keepalive_off"
1226 "test_ssltunnel_basic_auth_proxy_has_keepalive_off"
1227 "test_ssltunnel_basic_auth_proxy_close_conn_on_200resp"
1228 "test_ssltunnel_digest_auth")))
1229 (for-each
1230 (lambda (test)
1231 (substitute* "test/test_context.c"
1232 (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) "")))
1233 broken-tests)
82cc8253 1234 #t))))))
6d22653e 1235 (home-page "https://serf.apache.org/")
ed865936
MW
1236 (synopsis "High-performance asynchronous HTTP client library")
1237 (description
1238 "serf is a C-based HTTP client library built upon the Apache Portable
1239Runtime (APR) library. It multiplexes connections, running the read/write
1240communication asynchronously. Memory copies and transformations are kept to a
1241minimum to provide high performance operation.")
1242 ;; Most of the code is covered by the Apache License, Version 2.0, but the
1243 ;; bundled CuTest framework uses a different non-copyleft license.
1244 (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
1245
385a44be
DT
1246(define-public sassc
1247 ;; libsass must be statically linked and it isn't included in the sassc
1248 ;; release tarballs, hence this odd package recipe.
8a39e4a5 1249 (let* ((version "3.4.5")
385a44be
DT
1250 (libsass
1251 (origin
1252 (method url-fetch)
1253 (uri (string-append
1254 "https://github.com/sass/libsass/archive/"
1255 version ".tar.gz"))
1256 (file-name (string-append "libsass-" version ".tar.gz"))
1257 (sha256
1258 (base32
8a39e4a5 1259 "1j22138l5ymqjfj5zan9d2hipa3ahjmifgpjahqy1smlg5sb837x")))))
385a44be
DT
1260 (package
1261 (name "sassc")
1262 (version version)
1263 (source (origin
1264 (method url-fetch)
1265 (uri (string-append "https://github.com/sass/sassc/archive/"
1266 version ".tar.gz"))
1267 (file-name (string-append "sassc-" version ".tar.gz"))
1268 (sha256
1269 (base32
8a39e4a5 1270 "1xk4kmmvziz9sal3swpqa10q0s289xjpcz8aggmly8mvxvmngsi9"))))
385a44be
DT
1271 (build-system gnu-build-system)
1272 (arguments
8a39e4a5
RW
1273 `(#:make-flags
1274 (list "CC=gcc"
1275 (string-append "PREFIX=" (assoc-ref %outputs "out")))
385a44be 1276 #:test-target "test"
8a39e4a5
RW
1277 ;; FIXME: "make test" rebuilds the application and gets lost in a
1278 ;; non-existing directory.
1279 #:tests? #f
385a44be
DT
1280 #:phases
1281 (modify-phases %standard-phases
68464ea2 1282 (delete 'bootstrap)
385a44be
DT
1283 (delete 'configure)
1284 (add-after 'unpack 'unpack-libsass-and-set-path
1285 (lambda* (#:key inputs #:allow-other-keys)
7f4e5f19
TGR
1286 (invoke "tar" "xvf" (assoc-ref inputs "libsass"))
1287 (setenv "SASS_LIBSASS_PATH"
68464ea2
RW
1288 (string-append (getcwd) "/libsass-" ,version))
1289 #t)))))
385a44be
DT
1290 (inputs
1291 `(("libsass" ,libsass)))
1292 (synopsis "CSS pre-processor")
1293 (description "SassC is a compiler written in C for the CSS pre-processor
1294language known as SASS.")
1295 (home-page "http://sass-lang.com/libsass")
1296 (license l:expat))))
1297
8142aff3 1298\f
dc1c804a
EB
1299(define-public perl-apache-logformat-compiler
1300 (package
1301 (name "perl-apache-logformat-compiler")
faf806db 1302 (version "0.33")
dc1c804a
EB
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
faf806db 1310 "17blk3zhp05azgypn25ydxf3d7fyfgr9bxyiv7xkchhqma96vwqv"))))
dc1c804a
EB
1311 (build-system perl-build-system)
1312 (native-inputs
1313 `(("perl-http-message" ,perl-http-message)
a2190ccc 1314 ("perl-module-build" ,perl-module-build)
dc1c804a
EB
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
9aba9b12 1321 (home-page "https://metacpan.org/release/Apache-LogFormat-Compiler")
dc1c804a
EB
1322 (synopsis "Compile a log format string to perl-code")
1323 (description "This module provides methods to compile a log format string
1324to perl-code, for faster generation of access_log lines.")
2f3108ad 1325 (license l:perl-license)))
dc1c804a 1326
c6ee18ab
EB
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)
f61d39ac
LF
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)))))
c6ee18ab
EB
1347 (propagated-inputs
1348 `(("perl-digest-hmac" ,perl-digest-hmac)
1349 ("perl-gssapi" ,perl-gssapi)))
9aba9b12 1350 (home-page "https://metacpan.org/release/Authen-SASL")
c6ee18ab
EB
1351 (synopsis "SASL authentication framework")
1352 (description "Authen::SASL provides an SASL authentication framework.")
2f3108ad 1353 (license l:perl-license)))
c6ee18ab 1354
cd39d814
EB
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
2f837cf7
MB
1370 `(("perl-http-request-ascgi" ,perl-http-request-ascgi)
1371 ("perl-module-install" ,perl-module-install)))
cd39d814
EB
1372 (propagated-inputs
1373 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1374 ("perl-data-visitor" ,perl-data-visitor)
1375 ("perl-mro-compat" ,perl-mro-compat)))
9aba9b12 1376 (home-page "https://metacpan.org/release/Catalyst-Action-RenderView")
cd39d814
EB
1377 (synopsis "Sensible default Catalyst action")
1378 (description "This Catalyst action implements a sensible default end
1379action, which will forward to the first available view.")
2f3108ad 1380 (license l:perl-license)))
cd39d814 1381
aaef00bf
EB
1382(define-public perl-catalyst-action-rest
1383 (package
1384 (name "perl-catalyst-action-rest")
abafd66d 1385 (version "1.20")
aaef00bf
EB
1386 (source (origin
1387 (method url-fetch)
d0b9c34f 1388 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
aaef00bf
EB
1389 "Catalyst-Action-REST-" version ".tar.gz"))
1390 (sha256
1391 (base32
abafd66d 1392 "1mpa64p61f3dp24xnhdraswch4sqj5vyv1iivcvvh5h0xi0haiy0"))))
aaef00bf
EB
1393 (build-system perl-build-system)
1394 (native-inputs
2f837cf7
MB
1395 `(("perl-test-requires" ,perl-test-requires)
1396 ("perl-module-install" ,perl-module-install)))
aaef00bf
EB
1397 (propagated-inputs
1398 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1399 ("perl-class-inspector" ,perl-class-inspector)
abafd66d
EF
1400 ("perl-config-general" ,perl-config-general)
1401 ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
aaef00bf
EB
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)
abafd66d
EF
1407 ("perl-uri-find" ,perl-uri-find)
1408 ("perl-xml-simple" ,perl-xml-simple)))
9aba9b12 1409 (home-page "https://metacpan.org/release/Catalyst-Action-REST")
aaef00bf
EB
1410 (synopsis "Automated REST Method Dispatching")
1411 (description "This Action handles doing automatic method dispatching for
1412REST requests. It takes a normal Catalyst action, and changes the dispatch to
1413append an underscore and method name. First it will try dispatching to an
1414action with the generated name, and failing that it will try to dispatch to a
1415regular method.")
2f3108ad 1416 (license l:perl-license)))
aaef00bf 1417
6e545bbf
EB
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)
2f837cf7 1438 ("perl-module-install" ,perl-module-install)
6e545bbf
EB
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
9aba9b12 1447 "https://metacpan.org/release/Catalyst-Authentication-Store-DBIx-Class")
6e545bbf
EB
1448 (synopsis "Storage class for Catalyst authentication using DBIx::Class")
1449 (description "The Catalyst::Authentication::Store::DBIx::Class class
1450provides access to authentication information stored in a database via
1451DBIx::Class.")
2f3108ad 1452 (license l:perl-license)))
6e545bbf 1453
040a52fd
EB
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)
2f837cf7
MB
1468 (native-inputs
1469 `(("perl-module-install" ,perl-module-install)))
040a52fd
EB
1470 (propagated-inputs
1471 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1472 ("perl-moose" ,perl-moose)))
1473 (home-page
9aba9b12 1474 "https://metacpan.org/release/Catalyst-Component-InstancePerContext")
040a52fd
EB
1475 (synopsis "Create only one instance of Moose component per context")
1476 (description "Catalyst::Component::InstancePerContext returns a new
1477instance of a component on each request.")
2f3108ad 1478 (license l:perl-license)))
040a52fd 1479
bdec3223
EB
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)))
9aba9b12 1512 (home-page "https://metacpan.org/release/Catalyst-Devel")
bdec3223
EB
1513 (synopsis "Catalyst Development Tools")
1514 (description "The Catalyst-Devel distribution includes a variety of
1515modules useful for the development of Catalyst applications, but not required
1516to run them. Catalyst-Devel includes the Catalyst::Helper system, which
1517autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install
1518extension for Catalyst; and requirements for a variety of development-related
1519modules.")
2f3108ad 1520 (license l:perl-license)))
bdec3223 1521
9473af1d
EB
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)))
9aba9b12 1542 (home-page "https://metacpan.org/release/Catalyst-DispatchType-Regex")
9473af1d
EB
1543 (synopsis "Regex DispatchType for Catalyst")
1544 (description "Dispatch type managing path-matching behaviour using
1545regexes. Regex dispatch types have been deprecated and removed from Catalyst
1546core. It is recommend that you use Chained methods or other techniques
1547instead. As part of the refactoring, the dispatch priority of Regex vs Regexp
1548vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by
1549when the dispatch type is first seen in your application.")
2f3108ad 1550 (license l:perl-license)))
9473af1d 1551
f643a6e9
EB
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)
2f837cf7 1568 ("perl-module-install" ,perl-module-install)
f643a6e9
EB
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)))
9aba9b12 1592 (home-page "https://metacpan.org/release/Catalyst-Model-DBIC-Schema")
f643a6e9
EB
1593 (synopsis "DBIx::Class::Schema Model Class")
1594 (description "This is a Catalyst Model for DBIx::Class::Schema-based
1595Models.")
2f3108ad 1596 (license l:perl-license)))
f643a6e9 1597
0a74d78d
EB
1598(define-public perl-catalyst-plugin-accesslog
1599 (package
1600 (name "perl-catalyst-plugin-accesslog")
9fc41452 1601 (version "1.10")
0a74d78d
EB
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
9fc41452 1609 "0811rj45q4v2y8wka3wb9d5m4vbyhcmkvddf2wz4x69awzjbhgc7"))))
0a74d78d
EB
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)))
9aba9b12 1616 (home-page "https://metacpan.org/release/Catalyst-Plugin-AccessLog")
0a74d78d
EB
1617 (synopsis "Request logging from within Catalyst")
1618 (description "This Catalyst plugin enables you to create \"access logs\"
1619from within a Catalyst application instead of requiring a webserver to do it
1620for you. It will work even with Catalyst debug logging turned off.")
2f3108ad 1621 (license l:perl-license)))
0a74d78d 1622
4b4fe57d
EB
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)
2f837cf7
MB
1637 (native-inputs
1638 `(("perl-module-install" ,perl-module-install)))
4b4fe57d
EB
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)))
9aba9b12 1651 (home-page "https://metacpan.org/release/Catalyst-Plugin-Authentication")
4b4fe57d
EB
1652 (synopsis "Infrastructure plugin for the Catalyst authentication framework")
1653 (description "The authentication plugin provides generic user support for
e881752c 1654Catalyst apps. It is the basis for both authentication (checking the user is
4b4fe57d
EB
1655who they claim to be), and authorization (allowing the user to do what the
1656system authorises them to do).")
2f3108ad 1657 (license l:perl-license)))
4b4fe57d 1658
514214cb
EB
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
2f837cf7
MB
1674 `(("perl-module-install" ,perl-module-install)
1675 ("perl-test-exception" ,perl-test-exception)))
514214cb
EB
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
9aba9b12 1683 "https://metacpan.org/release/Catalyst-Plugin-Authorization-Roles")
514214cb
EB
1684 (synopsis "Role-based authorization for Catalyst")
1685 (description "Catalyst::Plugin::Authorization::Roles provides role-based
1686authorization for Catalyst based on Catalyst::Plugin::Authentication.")
2f3108ad 1687 (license l:perl-license)))
514214cb 1688
57c2680e
EB
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)))
9aba9b12 1707 (home-page "https://metacpan.org/release/Catalyst-Plugin-Captcha")
57c2680e
EB
1708 (synopsis "Captchas for Catalyst")
1709 (description "This plugin creates and validates Captcha images for
1710Catalyst.")
2f3108ad 1711 (license l:perl-license)))
57c2680e 1712
7c4eaa56
EB
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
2f837cf7
MB
1728 `(("perl-path-class" ,perl-path-class)
1729 ("perl-module-install" ,perl-module-install)))
7c4eaa56
EB
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)))
9aba9b12 1735 (home-page "https://metacpan.org/release/Catalyst-Plugin-ConfigLoader")
7c4eaa56
EB
1736 (synopsis "Load config files of various types")
1737 (description "This module will attempt to load find and load configuration
1738files of various types. Currently it supports YAML, JSON, XML, INI and Perl
1739formats.")
2f3108ad 1740 (license l:perl-license)))
7c4eaa56 1741
3d4644e4
EB
1742(define-public perl-catalyst-plugin-session
1743 (package
1744 (name "perl-catalyst-plugin-session")
e8b20020 1745 (version "0.40")
3d4644e4
EB
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
e8b20020 1753 "171vi9xcl775scjaw4fcfdmqvz0rb1nr0xxg2gb3ng6bjzpslhgv"))))
3d4644e4
EB
1754 (build-system perl-build-system)
1755 (native-inputs
2f837cf7
MB
1756 `(("perl-module-install" ,perl-module-install)
1757 ("perl-test-deep" ,perl-test-deep)
3d4644e4
EB
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)
e8b20020 1764 ("perl-mro-compat" ,perl-mro-compat)
3d4644e4
EB
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)))
9aba9b12 1768 (home-page "https://metacpan.org/release/Catalyst-Plugin-Session")
3d4644e4
EB
1769 (synopsis "Catalyst generic session plugin")
1770 (description "This plugin links the two pieces required for session
1771management in web applications together: the state, and the store.")
2f3108ad 1772 (license l:perl-license)))
3d4644e4 1773
be734479
EB
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)
2f837cf7
MB
1788 (native-inputs
1789 `(("perl-module-install" ,perl-module-install)))
be734479
EB
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
9aba9b12 1797 "https://metacpan.org/release/Catalyst-Plugin-Session-State-Cookie")
be734479
EB
1798 (synopsis "Maintain session IDs using cookies")
1799 (description "In order for Catalyst::Plugin::Session to work, the session
1800ID needs to be stored on the client, and the session data needs to be stored
1801on the server. This plugin stores the session ID on the client using the
1802cookie mechanism.")
2f3108ad 1803 (license l:perl-license)))
be734479 1804
47533b6f
EB
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
9aba9b12 1828 "https://metacpan.org/release/Catalyst-Plugin-Session-Store-FastMmap")
e881752c 1829 (synopsis "FastMmap session storage backend")
47533b6f
EB
1830 (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
1831storage plugin for Catalyst that uses an mmap'ed file to act as a shared
1832memory interprocess cache. It is based on Cache::FastMmap.")
2f3108ad 1833 (license l:perl-license)))
47533b6f 1834
996f4110
EB
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)
2f837cf7
MB
1848 (native-inputs
1849 `(("perl-module-install" ,perl-module-install)))
996f4110
EB
1850 (propagated-inputs
1851 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1852 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
1853 ("perl-mro-compat" ,perl-mro-compat)))
9aba9b12 1854 (home-page "https://metacpan.org/release/Catalyst-Plugin-StackTrace")
996f4110
EB
1855 (synopsis "Stack trace on the Catalyst debug screen")
1856 (description "This plugin enhances the standard Catalyst debug screen by
69b4ffcf 1857including a stack trace of your application up to the point where the error
996f4110
EB
1858occurred. Each stack frame is displayed along with the package name, line
1859number, file name, and code context surrounding the line number.")
2f3108ad 1860 (license l:perl-license)))
996f4110 1861
4cb5426c
EB
1862(define-public perl-catalyst-plugin-static-simple
1863 (package
1864 (name "perl-catalyst-plugin-static-simple")
3dae7a05 1865 (version "0.36")
4cb5426c
EB
1866 (source
1867 (origin
1868 (method url-fetch)
3dae7a05 1869 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
4cb5426c
EB
1870 "Catalyst-Plugin-Static-Simple-" version ".tar.gz"))
1871 (sha256
1872 (base32
3dae7a05 1873 "0m4l627p2fvzr4i6sgdxhdvsx4wpa6qmaibsbxlg5x5yjs7k7drn"))))
4cb5426c 1874 (build-system perl-build-system)
2f837cf7
MB
1875 (native-inputs
1876 `(("perl-module-install" ,perl-module-install)))
4cb5426c
EB
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)))
9aba9b12 1883 (home-page "https://metacpan.org/release/Catalyst-Plugin-Static-Simple")
4cb5426c
EB
1884 (synopsis "Simple serving of static pages")
1885 (description "The Static::Simple plugin is designed to make serving static
1886content in your application during development quick and easy, without
1887requiring a single line of code from you. This plugin detects static files by
1888looking at the file extension in the URL (such as .css or .png or .js). The
1889plugin uses the lightweight MIME::Types module to map file extensions to
1890IANA-registered MIME types, and will serve your static files with the correct
1891MIME type directly to the browser, without being processed through Catalyst.")
2f3108ad 1892 (license l:perl-license)))
4cb5426c 1893
91f06299
EB
1894(define-public perl-catalyst-runtime
1895 (package
1896 (name "perl-catalyst-runtime")
6f52db24 1897 (version "5.90119")
91f06299
EB
1898 (source
1899 (origin
1900 (method url-fetch)
6f52db24 1901 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
91f06299
EB
1902 "Catalyst-Runtime-" version ".tar.gz"))
1903 (sha256
1904 (base32
6f52db24 1905 "1iw7x9rqk3sz2hm1bw01blz5vwm7zlljdf4xj3r8vz54f1yggzqr"))))
91f06299
EB
1906 (build-system perl-build-system)
1907 (native-inputs
b544dde3 1908 `(("perl-test-fatal" ,perl-test-fatal)))
91f06299
EB
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)
91f06299
EB
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)
91f06299
EB
1918 ("perl-json-maybexs" ,perl-json-maybexs)
1919 ("perl-libwww" ,perl-libwww)
a2190ccc 1920 ("perl-module-pluggable" ,perl-module-pluggable)
91f06299
EB
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)
91f06299
EB
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)))
9aba9b12 1946 (home-page "https://metacpan.org/release/Catalyst-Runtime")
91f06299
EB
1947 (synopsis "The Catalyst Framework Runtime")
1948 (description "Catalyst is a modern framework for making web applications.
1949It is designed to make it easy to manage the various tasks you need to do to
1950run 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.")
2f3108ad 1952 (license l:perl-license)))
91f06299 1953
b902eb1c
EB
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)
2f837cf7
MB
1971 ("perl-http-message" ,perl-http-message)
1972 ("perl-module-install" ,perl-module-install)))
b902eb1c
EB
1973 (propagated-inputs
1974 `(("perl-moose" ,perl-moose)
1975 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1976 ("perl-uri" ,perl-uri)))
1977 (home-page
9aba9b12 1978 "https://metacpan.org/release/Catalyst-TraitFor-Request-ProxyBase")
b902eb1c
EB
1979 (synopsis "Replace request base with value passed by HTTP proxy")
1980 (description "This module is a Moose::Role which allows you more
1981flexibility in your application's deployment configurations when deployed
1982behind a proxy. Using this module, the request base ($c->req->base) is
1983replaced with the contents of the X-Request-Base header.")
2f3108ad 1984 (license l:perl-license)))
b902eb1c 1985
83261658
EB
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)
2f837cf7 2001 ("perl-module-install" ,perl-module-install)
83261658
EB
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)))
9aba9b12 2006 (home-page "https://metacpan.org/release/Catalyst-View-Download")
83261658
EB
2007 (synopsis "Download data in many formats")
2008 (description "The purpose of this module is to provide a method for
2009downloading data into many supportable formats. For example, downloading a
e881752c 2010table based report in a variety of formats (CSV, HTML, etc.).")
2f3108ad 2011 (license l:perl-license)))
83261658 2012
c985cfe6
EB
2013(define-public perl-catalyst-view-json
2014 (package
2015 (name "perl-catalyst-view-json")
0018eb57 2016 (version "0.36")
c985cfe6
EB
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
0018eb57 2024 "0x943j1n2r0zqanyzdrs1xsnn8ayn2wqskn7h144xcqa6v6gcisl"))))
c985cfe6
EB
2025 (build-system perl-build-system)
2026 (native-inputs
2f837cf7
MB
2027 `(("perl-module-install" ,perl-module-install)
2028 ("perl-yaml" ,perl-yaml)))
c985cfe6
EB
2029 (inputs
2030 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2031 ("perl-json-maybexs" ,perl-json-maybexs)
2032 ("perl-mro-compat" ,perl-mro-compat)))
9aba9b12 2033 (home-page "https://metacpan.org/release/Catalyst-View-JSON")
c985cfe6
EB
2034 (synopsis "Catalyst JSON view")
2035 (description "Catalyst::View::JSON is a Catalyst View handler that returns
2036stash data in JSON format.")
2f3108ad 2037 (license l:perl-license)))
c985cfe6 2038
5c2c9ab2
EB
2039(define-public perl-catalyst-view-tt
2040 (package
2041 (name "perl-catalyst-view-tt")
776ca1cb 2042 (version "0.44")
5c2c9ab2
EB
2043 (source
2044 (origin
2045 (method url-fetch)
94692757 2046 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
5c2c9ab2
EB
2047 "Catalyst-View-TT-" version ".tar.gz"))
2048 (sha256
2049 (base32
776ca1cb 2050 "06d1zg4nbb6kcyjbnyxrkf8z4zlscxr8650d94f7187jygfl8rvh"))))
5c2c9ab2
EB
2051 (build-system perl-build-system)
2052 (propagated-inputs
2053 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2054 ("perl-class-accessor" ,perl-class-accessor)
776ca1cb 2055 ("perl-data-dump" ,perl-data-dump)
5c2c9ab2
EB
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)))
9aba9b12 2060 (home-page "https://metacpan.org/release/Catalyst-View-TT")
5c2c9ab2
EB
2061 (synopsis "Template View Class")
2062 (description "This module is a Catalyst view class for the Template
2063Toolkit.")
2f3108ad 2064 (license l:perl-license)))
5c2c9ab2 2065
89a2aa36
EB
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)))
9aba9b12 2090 (home-page "https://metacpan.org/release/CatalystX-Component-Traits")
89a2aa36
EB
2091 (synopsis "Trait Loading and Resolution for Catalyst Components")
2092 (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
2093Catalyst component base class that reads the optional \"traits\" parameter
2094from app and component config and instantiates the component subclass with
2095those traits using \"new_with_traits\" in MooseX::Traits from
2096MooseX::Traits::Pluggable.")
2f3108ad 2097 (license l:perl-license)))
89a2aa36 2098
227687ae
EB
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)))
9aba9b12 2116 (home-page "https://metacpan.org/release/CatalystX-RoleApplicator")
227687ae
EB
2117 (synopsis "Apply roles to Catalyst classes")
2118 (description "CatalystX::RoleApplicator applies roles to Catalyst
2119application classes.")
2f3108ad 2120 (license l:perl-license)))
227687ae 2121
ca8e6196
EB
2122(define-public perl-catalystx-script-server-starman
2123 (package
2124 (name "perl-catalystx-script-server-starman")
17fe49b6 2125 (version "0.03")
ca8e6196
EB
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
17fe49b6 2134 "08jvibq4v8xjj0c3cr93h0w8w0c88ajwjn37xjy7ygxl9krlffp6"))))
ca8e6196
EB
2135 (build-system perl-build-system)
2136 (native-inputs
2f837cf7
MB
2137 `(("perl-module-install" ,perl-module-install)
2138 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
ca8e6196
EB
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)))
9aba9b12 2144 (home-page "https://metacpan.org/release/CatalystX-Script-Server-Starman")
ca8e6196
EB
2145 (synopsis "Catalyst development server with Starman")
2146 (description "This module provides a Catalyst extension to replace the
2147development server with Starman.")
2f3108ad 2148 (license l:perl-license)))
ca8e6196 2149
7b158c4e
EB
2150(define-public perl-cgi
2151 (package
2152 (name "perl-cgi")
c727262d 2153 (version "4.38")
7b158c4e
EB
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
c727262d 2161 "1m779315rzj4mpgscw209a2wk18iwg2n8zibn8aak4mv56jz8n4c"))))
7b158c4e
EB
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)))
9aba9b12 2169 (home-page "https://metacpan.org/release/CGI")
7b158c4e
EB
2170 (synopsis "Handle Common Gateway Interface requests and responses")
2171 (description "CGI.pm is a stable, complete and mature solution for
2172processing and preparing HTTP requests and responses. Major features include
2173processing form submissions, file uploads, reading and writing cookies, query
2174string generation and manipulation, and processing and preparing HTTP
2175headers.")
2f3108ad 2176 (license l:perl-license)))
7b158c4e 2177
f52de1e1
PG
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
2199form-based applications.")
2200 (license l:perl-license)))
2201
f0539b66
CB
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
9aba9b12 2221 "https://metacpan.org/release/CGI-Session")
f0539b66
CB
2222 (synopsis
2223 "Persistent session data in CGI applications")
2224 (description
2225 "@code{CGI::Session} provides modular session management system across
2226HTTP requests.")
2227 (license l:perl-license)))
2228
0148aa55
EB
2229(define-public perl-cgi-simple
2230 (package
2231 (name "perl-cgi-simple")
1829f7ef 2232 (version "1.15")
0148aa55
EB
2233 (source
2234 (origin
2235 (method url-fetch)
1829f7ef 2236 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
0148aa55
EB
2237 "CGI-Simple-" version ".tar.gz"))
2238 (sha256
2239 (base32
1829f7ef 2240 "013dcy9k4sj9alkksk5aqz65ryxw0rxgg71c7w666y941gd8n46q"))))
0148aa55
EB
2241 (build-system perl-build-system)
2242 (native-inputs
1829f7ef
TGR
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)))
9aba9b12 2247 (home-page "https://metacpan.org/release/CGI-Simple")
0148aa55
EB
2248 (synopsis "CGI interface that is CGI.pm compliant")
2249 (description "CGI::Simple provides a relatively lightweight drop in
2250replacement for CGI.pm. It shares an identical OO interface to CGI.pm for
2251parameter parsing, file upload, cookie handling and header generation.")
2f3108ad 2252 (license l:perl-license)))
0148aa55 2253
76b8b86c
EB
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)))
9aba9b12 2269 (home-page "https://metacpan.org/release/CGI-Struct")
76b8b86c
EB
2270 (synopsis "Build structures from CGI data")
2271 (description "This is a module for building structured data from CGI
2272inputs, in a manner reminiscent of how PHP does.")
2273 (license l:bsd-2)))
2274
9151712c
EB
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)
a2190ccc
EB
2288 (native-inputs
2289 `(("perl-module-build" ,perl-module-build)))
9151712c
EB
2290 (propagated-inputs
2291 `(("perl-datetime" ,perl-datetime)
2292 ("perl-http-date" ,perl-http-date)))
9aba9b12 2293 (home-page "https://metacpan.org/release/DateTime-Format-HTTP")
9151712c
EB
2294 (synopsis "Date conversion routines")
2295 (description "This module provides functions that deal with the date
2296formats used by the HTTP protocol.")
2f3108ad 2297 (license l:perl-license)))
9151712c 2298
0a24e9b8
EB
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)))
9aba9b12 2314 (home-page "https://metacpan.org/release/Digest-MD5-File")
0a24e9b8
EB
2315 (synopsis "MD5 sums for files and urls")
2316 (description "Digest::MD5::File is a Perl extension for getting MD5 sums
2317for files and urls.")
2f3108ad 2318 (license l:perl-license)))
0a24e9b8 2319
8142aff3
EB
2320(define-public perl-encode-locale
2321 (package
2322 (name "perl-encode-locale")
85b9c18b 2323 (version "1.05")
c9ea41ff
AE
2324 (source (origin
2325 (method url-fetch)
2326 (uri (string-append
8142aff3 2327 "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
c9ea41ff
AE
2328 version ".tar.gz"))
2329 (sha256
2330 (base32
85b9c18b 2331 "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp"))))
c9ea41ff 2332 (build-system perl-build-system)
2f3108ad 2333 (license l:perl-license)
8142aff3 2334 (synopsis "Perl locale encoding determination")
c9ea41ff 2335 (description
8142aff3 2336 "The POSIX locale system is used to specify both the language
7c125ce0
AK
2337conventions requested by the user and the preferred character set to
2338consume and output. The Encode::Locale module looks up the charset and
2339encoding (called a CODESET in the locale jargon) and arranges for the
2340Encode module to know this encoding under the name \"locale\". It means
2341bytes obtained from the environment can be converted to Unicode strings
2342by calling Encode::encode(locale => $bytes) and converted back again
2343with Encode::decode(locale => $string).")
9aba9b12 2344 (home-page "https://metacpan.org/release/Encode-Locale")))
8142aff3 2345
46173a0d 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/
70629b6d
LF
2360 `(#:tests? #f
2361 #:phases
2362 (modify-phases %standard-phases
2363 (add-after 'unpack 'set-env
2364 (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1"))))))
46173a0d 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)))
9aba9b12 2370 (home-page "https://metacpan.org/release/Feed-Find")
46173a0d 2371 (synopsis "Syndication feed auto-discovery")
2372 (description "@code{Feed::Find} implements feed auto-discovery for finding
2373syndication feeds, given a URI. It will discover the following feed formats:
2374RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
2f3108ad 2375 (license l:perl-license)))
46173a0d 2376
8142aff3
EB
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)))
2f3108ad 2392 (license l:perl-license)
8142aff3
EB
2393 (synopsis "Perl directory listing parser")
2394 (description
2395 "The File::Listing module exports a single function called parse_dir(),
2396which can be used to parse directory listings.")
9aba9b12 2397 (home-page "https://metacpan.org/release/File-Listing")))
c9ea41ff 2398
8b459932
EB
2399(define-public perl-finance-quote
2400 (package
2401 (name "perl-finance-quote")
97c0cfdc 2402 (version "1.38")
8b459932
EB
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
97c0cfdc 2410 "0zhqb27y4vdxn476s2kwm9zl2f970yjcyyybnjm9b406krr2fm59"))
fc1adab1
AK
2411 (patches (search-patches
2412 "perl-finance-quote-unuse-mozilla-ca.patch"))))
8b459932
EB
2413 (build-system perl-build-system)
2414 (propagated-inputs
a2190ccc
EB
2415 `(("perl-cgi" ,perl-cgi)
2416 ("perl-datetime" ,perl-datetime)
8b459932
EB
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)))
9aba9b12 2426 (home-page "https://metacpan.org/release/Finance-Quote")
8b459932
EB
2427 (synopsis "Stock and mutual fund quotes")
2428 (description
2429 "Finance::Quote gets stock quotes from various internet sources, including
2430Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
2431 (license l:gpl2)))
2432
9fe938c1
EB
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")))))
9aba9b12 2450 (home-page "https://metacpan.org/release/GSSAPI")
9fe938c1
EB
2451 (synopsis "Perl extension providing access to the GSSAPIv2 library")
2452 (description "This is a Perl extension for using GSSAPI C bindings as
2453described in RFC 2744.")
2f3108ad 2454 (license l:perl-license)))
9fe938c1 2455
c1b9e7e7
EB
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)))
9aba9b12 2471 (home-page "https://metacpan.org/release/HTML-Element-Extended")
c1b9e7e7
EB
2472 (synopsis "Manipulate tables of HTML::Element")
2473 (description
2474 "HTML::Element::Extended is a Perl extension for manipulating a table
2475composed of HTML::Element style components.")
2f3108ad 2476 (license l:perl-license)))
c1b9e7e7 2477
bab57fcd
EB
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)))
9aba9b12 2497 (home-page "https://metacpan.org/release/HTML-Form")
bab57fcd
EB
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.")
2f3108ad 2501 (license l:perl-license)))
bab57fcd 2502
4f0ee1b4
CB
2503(define-public perl-html-scrubber
2504 (package
2505 (name "perl-html-scrubber")
b57c6c42 2506 (version "0.17")
4f0ee1b4
CB
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
b57c6c42 2516 "06p7w4zd42b2yh541mlzyqj40lwmvvn3fyqi8big4mf34la7m2jm"))))
4f0ee1b4
CB
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)
b57c6c42 2521 ("perl-test-differences" ,perl-test-differences)
4f0ee1b4
CB
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
9aba9b12 2528 "https://metacpan.org/release/HTML-Scrubber")
4f0ee1b4
CB
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
0cd2ab30
EB
2535(define-public perl-html-lint
2536 (package
2537 (name "perl-html-lint")
922814ae 2538 (version "2.26")
0cd2ab30
EB
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
922814ae 2546 "02vi1s4sw3hjnndxd6s91cp54iw5pg8n5kl9v0109dfxzn1n9bnl"))))
0cd2ab30
EB
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)))
9aba9b12 2552 (home-page "https://metacpan.org/release/HTML-Lint")
0cd2ab30
EB
2553 (synopsis "Check for HTML errors in a string or file")
2554 (description "HTML::Lint is a pure-Perl HTML parser and checker for
2555syntactic legitmacy.")
2556 (license l:artistic2.0)))
2557
9cf6c9fc
EB
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)))
9aba9b12 2574 (home-page "https://metacpan.org/release/HTML-TableExtract")
9cf6c9fc
EB
2575 (synopsis "Extract contents from HTML tables")
2576 (description
2577 "HTML::TableExtract is a Perl module for extracting the content contained
2578in tables within an HTML document, either as text or encoded element trees.")
2f3108ad 2579 (license l:perl-license)))
9cf6c9fc 2580
ddc36cd8
EB
2581(define-public perl-html-tree
2582 (package
2583 (name "perl-html-tree")
6106d195 2584 (version "5.07")
ddc36cd8
EB
2585 (source
2586 (origin
2587 (method url-fetch)
86d1e079 2588 (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/"
ddc36cd8
EB
2589 "HTML-Tree-" version ".tar.gz"))
2590 (sha256
2591 (base32
6106d195 2592 "1gyvm4qlwm9y6hczkpnrdfl303ggbybr0nqxdjw09hii8yw4sdzh"))))
ddc36cd8
EB
2593 (build-system perl-build-system)
2594 (native-inputs
a2190ccc
EB
2595 `(("perl-module-build" ,perl-module-build)
2596 ("perl-test-fatal" ,perl-test-fatal)))
ddc36cd8
EB
2597 (propagated-inputs
2598 `(("perl-html-parser" ,perl-html-parser)
2599 ("perl-html-tagset" ,perl-html-tagset)
2600 ("perl-libwww" ,perl-libwww)))
9aba9b12 2601 (home-page "https://metacpan.org/release/HTML-Tree")
ddc36cd8
EB
2602 (synopsis "Work with HTML in a DOM-like tree structure")
2603 (description "This distribution contains a suite of modules for
2604representing, creating, and extracting information from HTML syntax trees.")
2f3108ad 2605 (license l:perl-license)))
ddc36cd8 2606
8ec0d3fb
AE
2607(define-public perl-html-parser
2608 (package
2609 (name "perl-html-parser")
3700b27d 2610 (version "3.72")
8ec0d3fb
AE
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
3700b27d 2618 "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c"))))
8ec0d3fb
AE
2619 (build-system perl-build-system)
2620 (inputs
3700b27d
EF
2621 `(("perl-html-tagset" ,perl-html-tagset)
2622 ("perl-http-message" ,perl-http-message)))
2f3108ad 2623 (license l:perl-license)
8ec0d3fb
AE
2624 (synopsis "Perl HTML parser class")
2625 (description
2626 "Objects of the HTML::Parser class will recognize markup and separate
2627it from plain text (alias data content) in HTML documents. As different
2628kinds of markup and text are recognized, the corresponding event handlers
2629are invoked.")
9aba9b12 2630 (home-page "https://metacpan.org/release/HTML-Parser")))
ae2aa18d 2631
8142aff3 2632(define-public perl-html-tagset
ae2aa18d 2633 (package
8142aff3
EB
2634 (name "perl-html-tagset")
2635 (version "3.20")
ae2aa18d
AE
2636 (source (origin
2637 (method url-fetch)
2638 (uri (string-append
8142aff3 2639 "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-"
ae2aa18d
AE
2640 version ".tar.gz"))
2641 (sha256
2642 (base32
8142aff3 2643 "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd"))))
ae2aa18d 2644 (build-system perl-build-system)
2f3108ad 2645 (license l:perl-license)
8142aff3 2646 (synopsis "Perl data tables useful in parsing HTML")
ae2aa18d 2647 (description
8142aff3
EB
2648 "The HTML::Tagset module contains several data tables useful in various
2649kinds of HTML parsing operations.")
9aba9b12 2650 (home-page "https://metacpan.org/release/HTML-Tagset")))
fea5ebb1 2651
a05996e0
RW
2652(define-public perl-html-template
2653 (package
2654 (name "perl-html-template")
0762a1db 2655 (version "2.97")
a05996e0
RW
2656 (source (origin
2657 (method url-fetch)
0762a1db 2658 (uri (string-append "mirror://cpan/authors/id/S/SA/SAMTREGAR/"
a05996e0
RW
2659 "HTML-Template-" version ".tar.gz"))
2660 (sha256
2661 (base32
0762a1db 2662 "17qjw8swj2q4b1ic285pndgrkmvpsqw0j68nhqzpk1daydhsyiv5"))))
a05996e0 2663 (build-system perl-build-system)
a2190ccc
EB
2664 (propagated-inputs
2665 `(("perl-cgi" ,perl-cgi)))
9aba9b12 2666 (home-page "https://metacpan.org/release/HTML-Template")
a05996e0
RW
2667 (synopsis "HTML-like templates")
2668 (description
2669 "This module attempts to make using HTML templates simple and natural.
2670It 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
2673these new tags is called a template. Using this module you fill in the values
2674for the variables, loops and branches declared in the template. This allows
2675you to separate design from the data.")
2f3108ad 2676 (license l:perl-license)))
a05996e0 2677
5ec8ec83
EB
2678(define-public perl-http-body
2679 (package
2680 (name "perl-http-body")
1bb8ca40 2681 (version "1.22")
5ec8ec83
EB
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
1bb8ca40 2689 "15vj488i62mdp4ps9k77h39prj70i7anb6b0j8nm7l9vbdc2q3gw"))))
5ec8ec83
EB
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
9aba9b12 2696 (home-page "https://metacpan.org/release/HTTP-Body")
5ec8ec83
EB
2697 (synopsis "HTTP Body Parser")
2698 (description "HTTP::Body parses chunks of HTTP POST data and supports
2699application/octet-stream, application/json, application/x-www-form-urlencoded,
2700and multipart/form-data.")
2f3108ad 2701 (license l:perl-license)))
5ec8ec83 2702
c8a316a3
EB
2703(define-public perl-http-cookiejar
2704 (package
2705 (name "perl-http-cookiejar")
1ade054c 2706 (version "0.008")
c8a316a3
EB
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
1ade054c 2714 "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
c8a316a3
EB
2715 (build-system perl-build-system)
2716 (native-inputs
2717 `(("perl-test-deep" ,perl-test-deep)
2718 ("perl-test-requires" ,perl-test-requires)
1ade054c
EF
2719 ("perl-time-mock" ,perl-time-mock)
2720 ("perl-uri" ,perl-uri)))
c8a316a3
EB
2721 (inputs
2722 `(("perl-time-local" ,perl-time-local)
2723 ("perl-http-date" ,perl-http-date)))
9aba9b12 2724 (home-page "https://metacpan.org/release/HTTP-CookieJar")
c8a316a3
EB
2725 (synopsis "Minimalist HTTP user agent cookie jar")
2726 (description "This module implements a minimalist HTTP user agent cookie
2727jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
2728 (license l:asl2.0)))
2729
8142aff3 2730(define-public perl-http-cookies
fea5ebb1 2731 (package
8142aff3 2732 (name "perl-http-cookies")
d284f018 2733 (version "6.04")
fea5ebb1
AE
2734 (source (origin
2735 (method url-fetch)
2736 (uri (string-append
8ff5b8aa 2737 "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-"
fea5ebb1
AE
2738 version ".tar.gz"))
2739 (sha256
2740 (base32
d284f018 2741 "1m0kxcirbvbkrm2c59p1bkbvzlcdymg8fdpa7wlxijlx0xwz1iqc"))))
fea5ebb1 2742 (build-system perl-build-system)
8142aff3
EB
2743 (propagated-inputs
2744 `(("perl-http-message" ,perl-http-message)))
2f3108ad 2745 (license l:perl-license)
8142aff3 2746 (synopsis "Perl HTTP cookie jars")
fea5ebb1 2747 (description
8142aff3
EB
2748 "The HTTP::Cookies class is for objects that represent a cookie jar,
2749that is, a database of all the HTTP cookies that a given LWP::UserAgent
2750object knows about.")
9aba9b12 2751 (home-page "https://metacpan.org/release/GAAS/HTTP-Cookies-6.01")))
24b3c053 2752
8142aff3 2753(define-public perl-http-daemon
24b3c053 2754 (package
8142aff3
EB
2755 (name "perl-http-daemon")
2756 (version "6.01")
24b3c053
AE
2757 (source (origin
2758 (method url-fetch)
2759 (uri (string-append
8142aff3 2760 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-"
24b3c053
AE
2761 version ".tar.gz"))
2762 (sha256
2763 (base32
8142aff3 2764 "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
24b3c053 2765 (build-system perl-build-system)
8142aff3
EB
2766 (propagated-inputs
2767 `(("perl-http-message" ,perl-http-message)
2768 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
2f3108ad 2769 (license l:perl-license)
8142aff3 2770 (synopsis "Perl simple http server class")
24b3c053 2771 (description
8142aff3
EB
2772 "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen
2773on a socket for incoming requests. The HTTP::Daemon is a subclass of
2774IO::Socket::INET, so you can perform socket operations directly on it too.")
9aba9b12 2775 (home-page "https://metacpan.org/release/HTTP-Daemon")))
e426106b 2776
8142aff3 2777(define-public perl-http-date
e426106b 2778 (package
8142aff3
EB
2779 (name "perl-http-date")
2780 (version "6.02")
e426106b
AE
2781 (source (origin
2782 (method url-fetch)
2783 (uri (string-append
8142aff3 2784 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Date-"
e426106b
AE
2785 version ".tar.gz"))
2786 (sha256
2787 (base32
8142aff3 2788 "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8"))))
e426106b 2789 (build-system perl-build-system)
2f3108ad 2790 (license l:perl-license)
8142aff3 2791 (synopsis "Perl date conversion routines")
e426106b 2792 (description
8142aff3
EB
2793 "The HTTP::Date module provides functions that deal with date formats
2794used by the HTTP protocol (and then some more).")
9aba9b12 2795 (home-page "https://metacpan.org/release/HTTP-Date")))
91318a9e
AE
2796
2797(define-public perl-http-message
2798 (package
2799 (name "perl-http-message")
b824534b 2800 (version "6.15")
91318a9e
AE
2801 (source (origin
2802 (method url-fetch)
2803 (uri (string-append
b824534b 2804 "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-"
91318a9e
AE
2805 version ".tar.gz"))
2806 (sha256
2807 (base32
b824534b 2808 "11fbvisyvi6bw8z9iq9fm9mraf69qyds09fblhl9gyvg7ccll93v"))))
91318a9e 2809 (build-system perl-build-system)
b824534b
TGR
2810 (native-inputs
2811 `(("perl-try-tiny" ,perl-try-tiny)))
daee66fc 2812 (propagated-inputs
a8a7227b
EF
2813 `(("perl-encode-locale" ,perl-encode-locale)
2814 ("perl-http-date" ,perl-http-date)
d8450272
EB
2815 ("perl-io-html" ,perl-io-html)
2816 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
f852114e 2817 ("perl-uri" ,perl-uri)))
2f3108ad 2818 (license l:perl-license)
91318a9e
AE
2819 (synopsis "Perl HTTP style message")
2820 (description
2821 "An HTTP::Message object contains some headers and a content body.")
9aba9b12 2822 (home-page "https://metacpan.org/release/ETHER/HTTP-Message-6.11")))
b3d18aff 2823
8142aff3 2824(define-public perl-http-negotiate
b3d18aff 2825 (package
8142aff3 2826 (name "perl-http-negotiate")
b3d18aff
AE
2827 (version "6.01")
2828 (source (origin
2829 (method url-fetch)
2830 (uri (string-append
8142aff3 2831 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
b3d18aff
AE
2832 version ".tar.gz"))
2833 (sha256
2834 (base32
8142aff3 2835 "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
b3d18aff 2836 (build-system perl-build-system)
800de8da 2837 (propagated-inputs
f852114e 2838 `(("perl-http-message" ,perl-http-message)))
2f3108ad 2839 (license l:perl-license)
8142aff3 2840 (synopsis "Perl http content negotiation")
b3d18aff 2841 (description
8142aff3
EB
2842 "The HTTP::Negotiate module provides a complete implementation of the
2843HTTP content negotiation algorithm specified in
2844draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for
2845the selection of a preferred content representation based upon attributes
2846of the negotiable variants and the value of the various Accept* header
2847fields in the request.")
9aba9b12 2848 (home-page "https://metacpan.org/release/HTTP-Negotiate")))
3f41e6b3 2849
d3182b42
EB
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)))
9aba9b12 2866 (home-page "https://metacpan.org/release/HTTP-Parser")
d3182b42
EB
2867 (synopsis "Parse HTTP/1.1 requests")
2868 (description "This is an HTTP request parser. It takes chunks of text as
2869received and returns a 'hint' as to what is required, or returns the
2870HTTP::Request when a complete request has been read. HTTP/1.1 chunking is
2871supported.")
2f3108ad 2872 (license l:perl-license)))
d3182b42 2873
8ab39c2d
EB
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)
9dab5017
MB
2887 (native-inputs
2888 `(("perl-module-install" ,perl-module-install)))
9aba9b12 2889 (home-page "https://metacpan.org/release/HTTP-Parser-XS")
8ab39c2d
EB
2890 (synopsis "Fast HTTP request parser")
2891 (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
2892parser.")
2f3108ad 2893 (license l:perl-license)))
8ab39c2d 2894
724d2227
EB
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)))
9aba9b12 2911 (home-page "https://metacpan.org/release/HTTP-Request-AsCGI")
724d2227
EB
2912 (synopsis "Set up a CGI environment from an HTTP::Request")
2913 (description "This module provides a convenient way to set up a CGI
2914environment from an HTTP::Request.")
2f3108ad 2915 (license l:perl-license)))
724d2227 2916
c94c7eef
EB
2917(define-public perl-http-server-simple
2918 (package
2919 (name "perl-http-server-simple")
6f8d1f72 2920 (version "0.52")
c94c7eef
EB
2921 (source
2922 (origin
2923 (method url-fetch)
08af1a42 2924 (uri (string-append "mirror://cpan/authors/id/B/BP/BPS/"
c94c7eef
EB
2925 "HTTP-Server-Simple-" version ".tar.gz"))
2926 (sha256
2927 (base32
6f8d1f72 2928 "0k6bg7k6mjixfzxdkkdrhqvaqmdhjszx0zsk8g0bimiby6j9z4yq"))))
c94c7eef 2929 (build-system perl-build-system)
a2190ccc
EB
2930 (propagated-inputs
2931 `(("perl-cgi" ,perl-cgi)))
c94c7eef
EB
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
23212bf9
LC
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)))))
9aba9b12 2945 (home-page "https://metacpan.org/release/HTTP-Server-Simple")
c94c7eef
EB
2946 (synopsis "Lightweight HTTP server")
2947 (description "HTTP::Server::Simple is a simple standalone HTTP daemon with
2948no non-core module dependencies. It can be used for building a standalone
2949http-based UI to your existing tools.")
2f3108ad 2950 (license l:perl-license)))
c94c7eef 2951
c3c03beb
EB
2952(define-public perl-http-tiny
2953 (package
2954 (name "perl-http-tiny")
34362ff6 2955 (version "0.076")
c3c03beb
EB
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
34362ff6 2963 "11wkxxqj3ff84rgj9q2gzkdgscwp3fzj205846k9ycqinlpsmgfx"))))
c3c03beb
EB
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)
ee264bbf 2969 ("perl-mozilla-ca" ,perl-mozilla-ca)
c3c03beb 2970 ("perl-net-ssleay" ,perl-net-ssleay)))
9aba9b12 2971 (home-page "https://metacpan.org/release/HTTP-Tiny")
c3c03beb
EB
2972 (synopsis "HTTP/1.1 client")
2973 (description "This is a very simple HTTP/1.1 client, designed for doing
2974simple requests without the overhead of a large framework like LWP::UserAgent.
2975It supports proxies and redirection. It also correctly resumes after EINTR.")
2f3108ad 2976 (license l:perl-license)))
c3c03beb 2977
8142aff3 2978(define-public perl-io-html
3f41e6b3 2979 (package
8142aff3
EB
2980 (name "perl-io-html")
2981 (version "1.00")
3f41e6b3
AE
2982 (source (origin
2983 (method url-fetch)
2984 (uri (string-append
8142aff3 2985 "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
3f41e6b3
AE
2986 version ".tar.gz"))
2987 (sha256
2988 (base32
8142aff3 2989 "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
3f41e6b3 2990 (build-system perl-build-system)
2f3108ad 2991 (license l:perl-license)
8142aff3 2992 (synopsis "Perl module to open an HTML file with automatic charset detection")
3f41e6b3 2993 (description
8142aff3
EB
2994 "IO::HTML provides an easy way to open a file containing HTML while
2995automatically determining its encoding. It uses the HTML5 encoding sniffing
2996algorithm specified in section 8.2.2.1 of the draft standard.")
9aba9b12 2997 (home-page "https://metacpan.org/release/IO-HTML")))
e7444ee2 2998
2b63ebc1
EB
2999(define-public perl-io-socket-ip
3000 (package
3001 (name "perl-io-socket-ip")
55b7cd10 3002 (version "0.39")
2b63ebc1
EB
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
55b7cd10 3010 "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
2b63ebc1 3011 (build-system perl-build-system)
a2190ccc 3012 (native-inputs `(("perl-module-build" ,perl-module-build)))
9aba9b12 3013 (home-page "https://metacpan.org/release/IO-Socket-IP")
2b63ebc1
EB
3014 (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
3015 (description "This module provides a protocol-independent way to use IPv4
3016and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
2f3108ad 3017 (license l:perl-license)))
2b63ebc1 3018
8142aff3 3019(define-public perl-io-socket-ssl
e7444ee2 3020 (package
8142aff3 3021 (name "perl-io-socket-ssl")
c5776c87 3022 (version "2.038")
8142aff3
EB
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
c5776c87 3029 "11fiifxyvn7njc9p52wgygyw24jz7rh7gnz2ikjphr4l4x9f03rx"))
fc1adab1
AK
3030 (patches (search-patches
3031 "perl-io-socket-ssl-openssl-1.0.2f-fix.patch"))))
8142aff3 3032 (build-system perl-build-system)
578aeea6 3033 (propagated-inputs
3034 `(("perl-net-ssleay" ,perl-net-ssleay)
3035 ;; for IDN support
3036 ("perl-uri" ,perl-uri)))
8142aff3
EB
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
3040necessary functionality into the familiar IO::Socket interface and providing
3041secure defaults whenever possible. This way existing applications can be made
3042SSL-aware without much effort, at least if you do blocking I/O and don't use
3043select or poll.")
2f3108ad 3044 (license l:perl-license)
8142aff3
EB
3045 (home-page "https://github.com/noxxi/p5-io-socket-ssl")))
3046
3047(define-public perl-libwww
3048 (package
3049 (name "perl-libwww")
1b08647e 3050 (version "6.35")
e7444ee2
AE
3051 (source (origin
3052 (method url-fetch)
3053 (uri (string-append
bec820d9 3054 "mirror://cpan/authors/id/E/ET/ETHER/libwww-perl-"
e7444ee2
AE
3055 version ".tar.gz"))
3056 (sha256
3057 (base32
1b08647e 3058 "0lsrr8r61b67f9wrynkhdhldw5yic4d7cd78zi52q59jgf6mg8nx"))))
e7444ee2 3059 (build-system perl-build-system)
1b08647e
TGR
3060 (native-inputs
3061 `(("perl-test-fatal" ,perl-test-fatal)
3062 ("perl-test-needs" ,perl-test-needs)
b42b5afd 3063 ("perl-test-requiresinternet" ,perl-test-requiresinternet)))
d0bb5f77 3064 (propagated-inputs
8142aff3
EB
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)
fb332b15
EF
3070 ("perl-http-date" ,perl-http-date)
3071 ("perl-http-message" ,perl-http-message)
8142aff3
EB
3072 ("perl-http-negotiate" ,perl-http-negotiate)
3073 ("perl-net-http" ,perl-net-http)
1b08647e 3074 ("perl-try-tiny" ,perl-try-tiny)
fb332b15 3075 ("perl-uri" ,perl-uri)
8142aff3 3076 ("perl-www-robotrules" ,perl-www-robotrules)))
2f3108ad 3077 (license l:perl-license)
8142aff3 3078 (synopsis "Perl modules for the WWW")
e7444ee2 3079 (description
8142aff3
EB
3080 "The libwww-perl collection is a set of Perl modules which provides a
3081simple and consistent application programming interface to the
3082World-Wide Web. The main focus of the library is to provide classes
3083and functions that allow you to write WWW clients. The library also
3084contains modules that are of more general use and even classes that
3085help you implement simple HTTP servers.")
9aba9b12 3086 (home-page "https://metacpan.org/release/libwww-perl")))
a3eb919f 3087
efc8f7d0
P
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)))
9aba9b12 3107 (home-page "https://metacpan.org/release/LWP-Online")
efc8f7d0
P
3108 (synopsis "Checks whether your process has access to the web")
3109 (description "This module attempts to answer, as accurately as it can, one
3110of the nastiest technical questions there is: am I on the internet?
3111
3112A host of networking and security issues make this problem very difficult.
3113There are firewalls, proxies (both well behaved and badly behaved). We might
3114not have DNS. We might not have a network card at all!")
3115 (license l:perl-license)))
3116
8142aff3 3117(define-public perl-lwp-mediatypes
a3eb919f 3118 (package
8142aff3 3119 (name "perl-lwp-mediatypes")
a3eb919f
AE
3120 (version "6.02")
3121 (source (origin
3122 (method url-fetch)
3123 (uri (string-append
8142aff3 3124 "mirror://cpan/authors/id/G/GA/GAAS/LWP-MediaTypes-"
a3eb919f
AE
3125 version ".tar.gz"))
3126 (sha256
3127 (base32
8142aff3 3128 "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q"))))
a3eb919f 3129 (build-system perl-build-system)
2f3108ad 3130 (license l:perl-license)
8142aff3 3131 (synopsis "Perl module to guess the media type for a file or a URL")
a3eb919f 3132 (description
8142aff3
EB
3133 "The LWP::MediaTypes module provides functions for handling media (also
3134known as MIME) types and encodings. The mapping from file extensions to
3135media types is defined by the media.types file. If the ~/.media.types file
3136exists it is used instead.")
9aba9b12 3137 (home-page "https://metacpan.org/release/LWP-MediaTypes")))
677078b4 3138
bdcfd18e
EB
3139(define-public perl-lwp-protocol-https
3140 (package
3141 (name "perl-lwp-protocol-https")
80f75509 3142 (version "6.07")
bdcfd18e
EB
3143 (source
3144 (origin
3145 (method url-fetch)
80f75509 3146 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
bdcfd18e
EB
3147 "LWP-Protocol-https-" version ".tar.gz"))
3148 (sha256
3149 (base32
80f75509 3150 "1rxrpwylfw1afah0nk96kgkwjbl2p1a7lwx50iipg8c4rx3cjb2j"))))
bdcfd18e 3151 (build-system perl-build-system)
80f75509
TGR
3152 (native-inputs
3153 ;; For tests.
3154 `(("perl-test-requiresinternet" ,perl-test-requiresinternet)))
bdcfd18e
EB
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)))
9aba9b12 3161 (home-page "https://metacpan.org/release/LWP-Protocol-https")
bdcfd18e
EB
3162 (synopsis "HTTPS support for LWP::UserAgent")
3163 (description "The LWP::Protocol::https module provides support for using
3164https schemed URLs with LWP.")
2f3108ad 3165 (license l:perl-license)))
bdcfd18e 3166
6a58b092
EB
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)))
9aba9b12 3182 (home-page "https://metacpan.org/release/LWP-UserAgent-Determined")
6a58b092
EB
3183 (synopsis "Virtual browser that retries errors")
3184 (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
3185except that when you use it to get a web page but run into a
3186possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds
3187and retry a few times.")
2f3108ad 3188 (license l:perl-license)))
6a58b092 3189
38e62c81
EB
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"))
fc1adab1
AK
3202 (patches (search-patches
3203 "perl-net-amazon-s3-moose-warning.patch"))))
38e62c81
EB
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)))
9aba9b12 3228 (home-page "https://metacpan.org/release/Net-Amazon-S3")
38e62c81
EB
3229 (synopsis "Perl interface to Amazon S3")
3230 (description "This module provides a Perlish interface to Amazon S3.")
2f3108ad 3231 (license l:perl-license)))
38e62c81 3232
677078b4
AE
3233(define-public perl-net-http
3234 (package
3235 (name "perl-net-http")
d35135fa 3236 (version "6.18")
677078b4
AE
3237 (source (origin
3238 (method url-fetch)
3239 (uri (string-append
d35135fa
TGR
3240 "mirror://cpan/authors/id/O/OA/OALDERS/"
3241 "Net-HTTP-" version ".tar.gz"))
677078b4
AE
3242 (sha256
3243 (base32
d35135fa 3244 "074mp9s37q1j290xa3qj1wwgalzla328i2zpnh73xkmdnwnxyhky"))))
677078b4 3245 (build-system perl-build-system)
0eb3b5bd
EB
3246 (propagated-inputs
3247 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
3248 ("perl-uri" ,perl-uri)))
2f3108ad 3249 (license l:perl-license)
677078b4
AE
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
3253Net::HTTP class represents a connection to an HTTP server. The HTTP protocol
3254is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and
3255HTTP/1.1.")
9aba9b12 3256 (home-page "https://metacpan.org/release/Net-HTTP")))
56aa03b0 3257
be22d5fc
EB
3258(define-public perl-net-server
3259 (package
3260 (name "perl-net-server")
7eb09e39 3261 (version "2.009")
be22d5fc
EB
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
7eb09e39 3269 "0gw1k9gcw7habbkxvsfa2gz34brlbwcidk6khgsf1qjm0dbccrw2"))))
be22d5fc 3270 (build-system perl-build-system)
9aba9b12 3271 (home-page "https://metacpan.org/release/Net-Server")
be22d5fc
EB
3272 (synopsis "Extensible Perl server engine")
3273 (description "Net::Server is an extensible, generic Perl server engine.
3274It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
3275It includes with it the ability to run as an inetd
3276process (Net::Server::INET), a single connection server (Net::Server or
3277Net::Server::Single), a forking server (Net::Server::Fork), a preforking
3278server which maintains a constant number of preforked
3279children (Net::Server::PreForkSimple), or as a managed preforking server which
3280maintains the number of children based on server load (Net::Server::PreFork).
3281In all but the inetd type, the server provides the ability to connect to one
3282or to multiple server ports.")
2f3108ad 3283 (license l:perl-license)))
be22d5fc 3284
b1096f3d
EB
3285(define-public perl-net-smtp-ssl
3286 (package
3287 (name "perl-net-smtp-ssl")
12505bae 3288 (version "1.04")
b1096f3d
EB
3289 (source
3290 (origin
3291 (method url-fetch)
21085261 3292 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
b1096f3d
EB
3293 "Net-SMTP-SSL-" version ".tar.gz"))
3294 (sha256
21085261 3295 (base32
12505bae 3296 "001a6dcfahf7kkyirqkc8jd4fh4fkal7n7vm9c4dblqrvmdc8abv"))))
b1096f3d
EB
3297 (build-system perl-build-system)
3298 (propagated-inputs
3299 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
9aba9b12 3300 (home-page "https://metacpan.org/release/Net-SMTP-SSL")
b1096f3d 3301 (synopsis "SSL support for Net::SMTP")
e881752c 3302 (description "SSL support for Net::SMTP.")
2f3108ad 3303 (license l:perl-license)))
b1096f3d 3304
5933549d
EB
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)))
9aba9b12 3335 (home-page "https://metacpan.org/release/Plack")
5933549d
EB
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
3338contains middleware components, a reference server, and utilities for Web
3339application frameworks. Plack is like Ruby's Rack or Python's Paste for
3340WSGI.")
2f3108ad 3341 (license l:perl-license)))
5933549d 3342
acd1f73a
EB
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
9aba9b12 3362 "https://metacpan.org/release/Plack-Middleware-FixMissingBodyInRedirect")
acd1f73a
EB
3363 (synopsis "Plack::Middleware which sets body for redirect response")
3364 (description "This module sets the body in redirect response, if it's not
3365already set.")
2f3108ad 3366 (license l:perl-license)))
acd1f73a 3367
03d874d0
EB
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)
a2190ccc
EB
3382 (native-inputs
3383 `(("perl-module-build" ,perl-module-build)))
03d874d0
EB
3384 (propagated-inputs
3385 `(("perl-plack" ,perl-plack)))
9aba9b12 3386 (home-page "https://metacpan.org/release/Plack-Middleware-MethodOverride")
03d874d0
EB
3387 (synopsis "Override REST methods to Plack apps via POST")
3388 (description "This middleware allows for POST requests that pretend to be
3389something else: by adding either a header named X-HTTP-Method-Override to the
3390request, or a query parameter named x-tunneled-method to the URI, the client
3391can say what method it actually meant.")
2f3108ad 3392 (license l:perl-license)))
03d874d0 3393
13e330be
EB
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
9aba9b12 3411 "https://metacpan.org/release/Plack-Middleware-RemoveRedundantBody")
13e330be
EB
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
3414required.")
2f3108ad 3415 (license l:perl-license)))
13e330be 3416
ca157ba9
EB
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)
55cca6ac
MB
3431 (native-inputs
3432 `(("perl-module-install" ,perl-module-install)))
ca157ba9
EB
3433 (propagated-inputs
3434 `(("perl-plack" ,perl-plack)))
9aba9b12 3435 (home-page "https://metacpan.org/release/Plack-Middleware-ReverseProxy")
ca157ba9
EB
3436 (synopsis "Supports app to run as a reverse proxy backend")
3437 (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
3438which are changed by reverse-proxy. You can specify the reverse proxy address
3439and stop fake requests using 'enable_if' directive in your app.psgi.")
2f3108ad 3440 (license l:perl-license)))
ca157ba9 3441
64b16bf7
EB
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)))
9aba9b12 3457 (home-page "https://metacpan.org/release/Plack-Test-ExternalServer")
64b16bf7
EB
3458 (synopsis "Run HTTP tests on external live servers")
3459 (description "This module allows your to run your Plack::Test tests
3460against an external server instead of just against a local application through
3461either mocked HTTP or a locally spawned server.")
2f3108ad 3462 (license l:perl-license)))
64b16bf7 3463
bb8bfe5e
EB
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
9aba9b12 3480 (home-page "https://metacpan.org/release/Test-TCP")
bb8bfe5e
EB
3481 (synopsis "Testing TCP programs")
3482 (description "Test::TCP is test utilities for TCP/IP programs.")
2f3108ad 3483 (license l:perl-license)))
bb8bfe5e 3484
0d991d2c
EB
3485(define-public perl-test-www-mechanize
3486 (package
3487 (name "perl-test-www-mechanize")
c4a9ef6c 3488 (version "1.50")
0d991d2c
EB
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
c4a9ef6c 3496 "097pl87vdbxbb56vawzvs6ikrlb8nz3dx223kjjbdn3jlli3jjhg"))))
0d991d2c 3497 (build-system perl-build-system)
0d991d2c
EB
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)
0d991d2c
EB
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)))
9aba9b12 3506 (home-page "https://metacpan.org/release/Test-WWW-Mechanize")
0d991d2c
EB
3507 (synopsis "Testing-specific WWW::Mechanize subclass")
3508 (description "Test::WWW::Mechanize is a subclass of the Perl module
3509WWW::Mechanize that incorporates features for web application testing.")
3510 (license l:artistic2.0)))
3511
13b2552c
EB
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)
2f837cf7 3529 ("perl-module-install" ,perl-module-install)
13b2552c
EB
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)))
9aba9b12 3541 (home-page "https://metacpan.org/release/Test-WWW-Mechanize-Catalyst")
13b2552c
EB
3542 (synopsis "Test::WWW::Mechanize for Catalyst")
3543 (description "The Test::WWW::Mechanize::Catalyst module meshes the
3544Test::WWW:Mechanize module and the Catalyst web application framework to allow
3545testing of Catalyst applications without needing to start up a web server.")
2f3108ad 3546 (license l:perl-license)))
13b2552c 3547
715a0c51
EB
3548(define-public perl-test-www-mechanize-psgi
3549 (package
3550 (name "perl-test-www-mechanize-psgi")
895d0461 3551 (version "0.38")
715a0c51
EB
3552 (source
3553 (origin
3554 (method url-fetch)
d298e765 3555 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
715a0c51
EB
3556 "Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
3557 (sha256
3558 (base32
895d0461 3559 "0fsh2i05kf1kfavv2r9kmnjl7qlyqrd11ikc0qcqzzxsqzzjkg9r"))))
715a0c51
EB
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)))
9aba9b12 3566 (home-page "https://metacpan.org/release/Test-WWW-Mechanize-PSGI")
715a0c51
EB
3567 (synopsis "Test PSGI programs using WWW::Mechanize")
3568 (description "PSGI is a specification to decouple web server environments
3569from web application framework code. Test::WWW::Mechanize is a subclass of
3570WWW::Mechanize that incorporates features for web application testing. The
3571Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI
3572applications.")
2f3108ad 3573 (license l:perl-license)))
715a0c51 3574
8142aff3 3575(define-public perl-uri
374a9a85 3576 (package
8142aff3 3577 (name "perl-uri")
5fff9d9d 3578 (version "1.73")
374a9a85
AE
3579 (source (origin
3580 (method url-fetch)
9acf97f2
EB
3581 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
3582 "URI-" version ".tar.gz"))
374a9a85
AE
3583 (sha256
3584 (base32
5fff9d9d 3585 "04z4xwiryrbxxi48bwbkgq9q9pwfgqry3wp0ramcrwv3dx5ap9yc"))))
374a9a85 3586 (build-system perl-build-system)
5fff9d9d
TGR
3587 (native-inputs
3588 ;; For tests.
3589 `(("perl-test-needs" ,perl-test-needs)))
2f3108ad 3590 (license l:perl-license)
8142aff3 3591 (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
374a9a85 3592 (description
8142aff3
EB
3593 "The URI module implements the URI class. Objects of this class
3594represent \"Uniform Resource Identifier references\" as specified in RFC 2396
3595and updated by RFC 2732.")
9aba9b12 3596 (home-page "https://metacpan.org/release/URI")))
d22d72fc 3597
b51b2bf3 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)))
9aba9b12 3616 (home-page "https://metacpan.org/release/URI-Fetch")
b51b2bf3 3617 (synopsis "Smart URI fetching/caching")
3618 (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
3619notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
3620and time-saving way.")
2f3108ad 3621 (license l:perl-license)))
b51b2bf3 3622
5bb82fd0
EB
3623(define-public perl-uri-find
3624 (package
3625 (name "perl-uri-find")
c2d1b935 3626 (version "20160806")
5bb82fd0
EB
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
c2d1b935 3634 "1mk3jv8x0mcq3ajrn9garnxd0jc7sw4pkwqi88r5apqvlljs84z2"))))
5bb82fd0 3635 (build-system perl-build-system)
a2190ccc
EB
3636 (native-inputs
3637 `(("perl-module-build" ,perl-module-build)))
5bb82fd0
EB
3638 (propagated-inputs
3639 `(("perl-uri" ,perl-uri)))
9aba9b12 3640 (home-page "https://metacpan.org/release/URI-Find")
5bb82fd0
EB
3641 (synopsis "Find URIs in arbitrary text")
3642 (description "This module finds URIs and URLs (according to what URI.pm
3643considers a URI) in plain text. It only finds URIs which include a
3644scheme (http:// or the like), for something a bit less strict, consider
3645URI::Find::Schemeless. For a command-line interface, urifind is provided.")
2f3108ad 3646 (license l:perl-license)))
5bb82fd0 3647
36a100a1
EB
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)))
9aba9b12 3663 (home-page "https://metacpan.org/release/URI-ws")
36a100a1
EB
3664 (synopsis "WebSocket support for URI package")
3665 (description "With this module, the URI package provides the same set of
3666methods for WebSocket URIs as it does for HTTP URIs.")
2f3108ad 3667 (license l:perl-license)))
36a100a1 3668
105d4ee2 3669(define-public perl-uri-template
3670 (package
3671 (name "perl-uri-template")
aadfc7b0 3672 (version "0.23")
105d4ee2 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
aadfc7b0 3679 "0nnijyv4n5qfg7l94j7fmvqy9cbq3gl9sz9anmgsiprmkmpk419j"))))
105d4ee2 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)
9dab5017 3686 ("perl-module-install" ,perl-module-install)
105d4ee2 3687 ("perl-json" ,perl-json)))
9aba9b12 3688 (home-page "https://metacpan.org/release/URI-Template")
105d4ee2 3689 (synopsis "Object for handling URI templates")
3690 (description "This perl module provides a wrapper around URI templates as described in
3691RFC 6570.")
2f3108ad 3692 (license l:perl-license)))
105d4ee2 3693
d22d72fc
LC
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"))
a19da406 3703 (patches (search-patches "perl-www-curl-remove-symbol.patch"))
d22d72fc
LC
3704 (sha256
3705 (base32
3706 "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj"))))
3707 (build-system perl-build-system)
3708 (arguments
a56bf101
LC
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)))))
9dab5017
MB
3719 (native-inputs
3720 `(("perl-module-install" ,perl-module-install)))
d22d72fc
LC
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
3725library.")
2f3108ad 3726 (license l:perl-license)
9aba9b12 3727 (home-page "https://metacpan.org/release/WWW-Curl")))
3484d052 3728
0b1ed725
EB
3729(define-public perl-www-mechanize
3730 (package
3731 (name "perl-www-mechanize")
6135735b 3732 (version "1.89")
0b1ed725
EB
3733 (source
3734 (origin
3735 (method url-fetch)
128c9b92 3736 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
0b1ed725
EB
3737 "WWW-Mechanize-" version ".tar.gz"))
3738 (sha256
3739 (base32
6135735b 3740 "1mxx362vqiniw8vi6k3j7v9b1s7012irhfcblcz1p6jz9cjqi7mh"))))
0b1ed725 3741 (build-system perl-build-system)
a2190ccc 3742 (native-inputs ;only for tests
68d5906c
MB
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)))
0b1ed725
EB
3748 (propagated-inputs
3749 `(("perl-html-form" ,perl-html-form)
3750 ("perl-html-parser" ,perl-html-parser)
68d5906c 3751 ("perl-html-tree" ,perl-html-tree)
0b1ed725
EB
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)))
9aba9b12 3757 (home-page "https://metacpan.org/release/WWW-Mechanize")
0b1ed725
EB
3758 (synopsis "Web browsing in a Perl object")
3759 (description "WWW::Mechanize is a Perl module for stateful programmatic
3760web browsing, used for automating interaction with websites.")
2f3108ad 3761 (license l:perl-license)))
0b1ed725 3762
823c8292 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)
88d5889c 3775 (native-inputs
3fe666aa
MB
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)))
823c8292 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)))
9aba9b12 3794 (home-page "https://metacpan.org/release/WWW-OpenSearch")
823c8292 3795 (synopsis "Search A9 OpenSearch compatible engines")
3796 (description
3797 "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
3798http://opensearch.a9.com} compatible search engines.")
2f3108ad 3799 (license l:perl-license)))
823c8292 3800
8142aff3 3801(define-public perl-www-robotrules
3484d052 3802 (package
8142aff3
EB
3803 (name "perl-www-robotrules")
3804 (version "6.02")
3484d052 3805 (source (origin
8142aff3
EB
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"))))
3484d052 3813 (build-system perl-build-system)
8142aff3
EB
3814 (propagated-inputs
3815 `(("perl-uri" ,perl-uri)))
2f3108ad 3816 (license l:perl-license)
8142aff3 3817 (synopsis "Perl database of robots.txt-derived permissions")
5eb86b64 3818 (description
8142aff3
EB
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
3823their web site.")
9aba9b12 3824 (home-page "https://metacpan.org/release/WWW-RobotRules")))
a359c9c1 3825
da069d7e 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)
92c3ef2c
LF
3838 (arguments
3839 '(#:tests? #f))
da069d7e 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,
3845CDF, 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
5c31f4aa 3850 (package-with-python2 python-feedparser))
da069d7e 3851
e1c63590
RW
3852(define-public gumbo-parser
3853 (package
3854 (name "gumbo-parser")
3855 (version "0.10.1")
3856 (source (origin
3857 (method url-fetch)
3858 (uri (string-append "https://github.com/google/"
3859 "gumbo-parser/archive/v" version ".tar.gz"))
3860 (file-name (string-append name "-" version ".tar.gz"))
3861 (sha256
3862 (base32
3863 "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8"))))
3864 (build-system gnu-build-system)
3865 (arguments
189be331 3866 `(#:tests? #f)) ;tests require bundling googletest sources
e1c63590
RW
3867 ;; The release tarball lacks the generated files.
3868 (native-inputs
3869 `(("autoconf" ,autoconf)
3870 ("automake" ,automake)
3871 ("libtool" ,libtool)))
3872 (home-page "https://github.com/google/gumbo-parser")
3873 (synopsis "HTML5 parsing library")
3874 (description
3875 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as
3876a pure C99 library.")
3877 (license l:asl2.0)))
67c2fc01
SB
3878
3879(define-public uwsgi
3880 (package
3881 (name "uwsgi")
9ed69a07 3882 (version "2.0.17.1")
67c2fc01
SB
3883 (source (origin
3884 (method url-fetch)
d41ad1d5 3885 (uri (string-append "https://projects.unbit.it/downloads/uwsgi-"
67c2fc01
SB
3886 version ".tar.gz"))
3887 (sha256
3888 (base32
9ed69a07 3889 "0xxjb9dyivq5531birvxq2gnyxf2x5q7gz54440acra6qwsq4cfj"))))
67c2fc01
SB
3890 (build-system gnu-build-system)
3891 (outputs '("out" "python"))
3892 (arguments
3893 '(;; XXX: The 'check' target runs cppcheck to do static code analysis.
3894 ;; But there is no obvious way to run the real tests.
3895 #:tests? #f
3896 #:phases
3897 (modify-phases %standard-phases
3898 (replace 'configure
3899 ;; Configuration is done by writing an ini file.
3900 (lambda* (#:key outputs #:allow-other-keys)
3901 (let* ((out (assoc-ref outputs "out"))
3902 (bindir (string-append out "/bin"))
3903 (plugindir (string-append out "/lib/uwsgi")))
3904 ;; The build phase outputs files to these directories directly.
3905 (mkdir-p bindir)
3906 (mkdir-p plugindir)
3907 ;; XXX: Enable other plugins.
3908 (call-with-output-file "buildconf/guix.ini"
3909 (lambda (port)
3910 (format port "[uwsgi]
3911yaml = libyaml
3912bin_name = ~a/uwsgi
3913plugin_dir = ~a
3914
3915inherit = base
3916plugins = cgi,python
3917embedded_plugins =
3918" bindir plugindir))))
3919 (setenv "PROFILE" "guix")
3920 #t))
3921 (replace 'install
3922 ;; Move plugins into their own output.
3923 (lambda* (#:key outputs #:allow-other-keys)
3924 (let* ((out (assoc-ref outputs "out"))
3925 (plugindir (string-append out "/lib/uwsgi"))
3926 (python-plugin (string-append
3927 plugindir "/python_plugin.so")))
3928 (install-file python-plugin
3929 (string-append
3930 (assoc-ref outputs "python") "/lib/uwsgi"))
3931 (delete-file python-plugin)
3932 #t))))))
3933 (native-inputs
3934 `(("pkg-config" ,pkg-config)
3935 ("python" ,python-wrapper)))
3936 (inputs
3937 `(("jansson" ,jansson)
3938 ("libxml2" ,libxml2)
3939 ("libyaml" ,libyaml)
3940 ("openssl" ,openssl)
3941 ("pcre" ,pcre)
3942 ("zlib" ,zlib)
3943 ;; For plugins.
3944 ("python" ,python)))
3945 (home-page "https://uwsgi-docs.readthedocs.org/")
3946 (synopsis "Application container server")
3947 (description
3948 "uWSGI presents a complete stack for networked/clustered web applications,
3949implementing message/object passing, caching, RPC and process management.
3950It uses the uwsgi protocol for all the networking/interprocess communications.")
3951 (license l:gpl2+))) ; with linking exception
ec672946
JL
3952
3953(define-public jq
3954 (package
3955 (name "jq")
418dd6ad 3956 (version "1.6")
ec672946
JL
3957 (source (origin
3958 (method url-fetch)
c3b8300a
TGR
3959 (uri (string-append "https://github.com/stedolan/jq"
3960 "/releases/download/jq-" version
3961 "/jq-" version ".tar.gz"))
ec672946
JL
3962 (sha256
3963 (base32
418dd6ad 3964 "1a76f46a652i2g333kfvrl6mp2w7whf6h1yly519izg4y967h9cn"))))
ec672946
JL
3965 (inputs
3966 `(("oniguruma" ,oniguruma)))
3967 (native-inputs
3968 `(;; TODO fix gems to generate documentation
3969 ;;("ruby" ,ruby)
3970 ;;("bundler" ,bundler)
3971 ("valgrind" ,valgrind)))
3972 (build-system gnu-build-system)
3973 (home-page "http://stedolan.github.io/jq/")
3974 (synopsis "Command-line JSON processor")
3975 (description "jq is like sed for JSON data – you can use it to slice and
3976filter and map and transform structured data with the same ease that sed, awk,
3977grep and friends let you play with text. It is written in portable C. jq can
3978mangle the data format that you have into the one that you want with very
3979little effort, and the program to do so is often shorter and simpler than
3980you'd expect.")
3981 (license (list l:expat l:cc-by3.0))))
7ffbbea0
RS
3982
3983(define-public uhttpmock
3984 (package
3985 (name "uhttpmock")
581ae110 3986 (version "0.5.1")
7ffbbea0
RS
3987 (source
3988 (origin
3989 (method url-fetch)
3990 (uri (string-append "http://tecnocode.co.uk/downloads/uhttpmock/"
3991 name "-" version ".tar.xz"))
3992 (sha256
3993 (base32
581ae110 3994 "163py4klka423x7li2b685gmg3a6hjf074mlff2ajhmi3l0lm8x6"))))
7ffbbea0
RS
3995 (build-system glib-or-gtk-build-system)
3996 (arguments
3997 `(#:phases
3998 (modify-phases %standard-phases
3999 (add-before 'check 'use-empty-ssl-cert-file
4000 (lambda _
4001 ;; Search for ca-certificates.crt files
4002 ;; during the check phase.
4003 (setenv "SSL_CERT_FILE" "/dev/null")
4004 #t)))))
4005 (native-inputs
4006 `(("gobject-introspection" ,gobject-introspection)
4007 ;; For check phase.
4008 ("glib-networking" ,glib-networking)
4009 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4010 ("pkg-config" ,pkg-config)))
4011 (inputs
4012 `(("libsoup" ,libsoup)))
4013 (home-page "https://gitlab.com/groups/uhttpmock")
4014 (synopsis "Library for mocking web service APIs which use HTTP or HTTPS")
4015 (description
4016 "Uhttpmock is a project for mocking web service APIs which use HTTP or
4017HTTPS. It provides a library, libuhttpmock, which implements recording and
4018playback of HTTP request/response traces.")
4019 (license l:lgpl2.1+)))
0ee23de9
CL
4020
4021(define-public woof
4022 (package
4023 (name "woof")
4024 (version "2012-05-31")
4025 (source (origin
4026 (method url-fetch)
4027 (uri (string-append
4028 "http://www.home.unix-ag.org/simon/woof-"
4029 version ".py"))
4030 (sha256
4031 (base32
4032 "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq"))))
4033 (build-system trivial-build-system)
4034 (arguments
4035 '(#:modules ((guix build utils))
4036 #:builder
4037 (begin
4038 (use-modules (guix build utils))
4039 (let* ((source (assoc-ref %build-inputs "source"))
4040 (out (assoc-ref %outputs "out"))
4041 (bin (string-append out "/bin"))
4042 (python (assoc-ref %build-inputs "python")))
4043 (mkdir-p bin)
4044 (with-directory-excursion bin
4045 (copy-file source "woof")
4046 (patch-shebang "woof" (list (string-append python "/bin")))
4047 (chmod "woof" #o555))
4048 #t))))
4049 (inputs `(("python" ,python-2)))
4050 (home-page "http://www.home.unix-ag.org/simon/woof.html")
4051 (synopsis "Single file web server")
4052 (description "Woof (Web Offer One File) is a small simple web server that
4053can easily be invoked on a single file. Your partner can access the file with
4054tools they trust (e.g. wget).")
4055 (license l:gpl2+)))
22df7001 4056
ef61177d
EB
4057(define netsurf-buildsystem
4058 (package
4059 (name "netsurf-buildsystem")
fa4131f2 4060 (version "1.7")
ef61177d
EB
4061 (source
4062 (origin
4063 (method url-fetch)
4064 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4065 "buildsystem-" version ".tar.gz"))
4066 (sha256
4067 (base32
fa4131f2 4068 "1q23aaycv35ma5471l1gxib8lfq2s9kprrkaqgfc926d04rlbmhw"))))
ef61177d
EB
4069 (build-system gnu-build-system)
4070 (inputs `(("perl" ,perl)))
4071 (arguments
4072 '(#:make-flags (list (string-append "PREFIX=" %output))
4073 #:tests? #f ;no tests
4074 #:phases (modify-phases %standard-phases
4075 (delete 'configure)
4076 (delete 'build))))
4077 (home-page "http://www.netsurf-browser.org")
4078 (synopsis "Build system for the Netsurf project")
4079 (description
4080 "This package provides the shared build system for Netsurf project
4081libraries.")
4082 (license l:expat)))
4083
4084(define netsurf-buildsystem-arguments
4085 `(#:make-flags `("COMPONENT_TYPE=lib-shared"
4086 "CC=gcc" "BUILD_CC=gcc"
4087 ,(string-append "PREFIX=" %output)
4088 ,(string-append "NSSHARED="
4089 (assoc-ref %build-inputs
4090 "netsurf-buildsystem")
4091 "/share/netsurf-buildsystem"))
4092 #:test-target "test"
4093 #:phases (modify-phases %standard-phases
4094 (delete 'configure))))
4095
4096(define-public libparserutils
4097 (package
4098 (name "libparserutils")
ea9b34c2 4099 (version "0.2.4")
ef61177d
EB
4100 (source
4101 (origin
4102 (method url-fetch)
4103 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4104 name "-" version "-src.tar.gz"))
4105 (sha256
4106 (base32
ea9b34c2 4107 "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
ef61177d
EB
4108 (build-system gnu-build-system)
4109 (native-inputs
4110 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4111 ("pkg-config" ,pkg-config)
4112 ("perl" ,perl))) ;for test harness
4113 (arguments netsurf-buildsystem-arguments)
4114 (home-page "http://www.netsurf-browser.org/projects/libparserutils/")
4115 (synopsis "Parser building library")
4116 (description
4117 "LibParserUtils is a library for building efficient parsers, written in
4118C. It is developed as part of the NetSurf project.")
4119 (license l:expat)))
4120
43bfbf13
EB
4121(define-public hubbub
4122 (package
4123 (name "hubbub")
b06bf74b 4124 (version "0.3.5")
43bfbf13
EB
4125 (source
4126 (origin
4127 (method url-fetch)
4128 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4129 "lib" name "-" version "-src.tar.gz"))
4130 (sha256
4131 (base32
b06bf74b 4132 "13yq1k96a7972x4r71i9bcsz9yiglj0yx7lj0ziq5r94w5my70ma"))
43bfbf13
EB
4133 (patches (search-patches "hubbub-sort-entities.patch"))))
4134 (build-system gnu-build-system)
4135 (native-inputs
4136 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4137 ("pkg-config" ,pkg-config)
4138 ("doxygen" ,doxygen)
e46e70ac 4139 ("json-c" ,json-c-0.12) ; check whether json-c-0.12 can be removed
43bfbf13
EB
4140 ("perl" ,perl)))
4141 (propagated-inputs
4142 `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
4143 (arguments netsurf-buildsystem-arguments)
4144 (home-page "http://www.netsurf-browser.org/projects/hubbub/")
4145 (synopsis "HTML5 compliant parsing library")
4146 (description
4147 "Hubbub is an HTML5 compliant parsing library, written in C, which can
4148parse both valid and invalid web content. It is developed as part of the
4149NetSurf project.")
4150 (license l:expat)))
4151
909dcf5b
CB
4152(define-public ikiwiki
4153 (package
4154 (name "ikiwiki")
4155 (version "3.20170111")
4156 (source
4157 (origin
4158 (method url-fetch)
4159 (uri (string-append "http://snapshot.debian.org/archive/debian/"
4160 "20170111T215449Z/pool/main/i/ikiwiki/ikiwiki_"
4161 version ".tar.xz"))
4162 (sha256
4163 (base32
4164 "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz"))))
4165 (build-system perl-build-system)
4166 (arguments
4167 `(;; Image tests fail
4168 ;;
4169 ;; Test Summary Report
4170 ;; -------------------
4171 ;; t/img.t (Wstat: 2304 Tests: 62 Failed: 9)
4172 ;; Failed tests: 21, 27-28, 30-35
4173 ;; Non-zero exit status: 9
4174 #:tests? #f
4175 #:phases
4176 (modify-phases %standard-phases
f4dd3032
CB
4177 (add-after 'unpack 'include-PERL5LIB-in-wrapper
4178 (lambda _
4179 (substitute* "IkiWiki/Wrapper.pm"
4180 (("^@wrapper\\_hooks")
4181 (string-append
4182 "@wrapper_hooks\n"
4183 " addenv(\"PERL5LIB\", \""
4184 (getenv "PERL5LIB")
4185 "\");")))))
631bc3a6
PG
4186 (add-after 'patch-source-shebangs 'patch-Makefile
4187 (lambda _
4188 (substitute* "Makefile.PL"
4189 (("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
4190 #t))
909dcf5b
CB
4191 (add-after 'install 'wrap-programs
4192 (lambda* (#:key outputs #:allow-other-keys)
4193 (let* ((out (assoc-ref outputs "out"))
4194 (bin (string-append out "/bin/"))
4195 (path (getenv "PERL5LIB")))
4196 (for-each (lambda (file)
4197 (wrap-program file
4198 `("PERL5LIB" ":" prefix (,path))))
4199 (find-files bin))
4200 #t))))))
4201 (native-inputs
4202 `(("which" ,which)
4203 ("perl-html-tagset" ,perl-html-tagset)
4204 ("perl-timedate" ,perl-timedate)
4205 ("perl-xml-sax" ,perl-xml-sax)
4206 ("perl-xml-simple" ,perl-xml-simple)
4207 ("gettext" ,gettext-minimal)
4208 ("subversion" ,subversion)
4209 ("git" ,git)
4210 ("bazaar" ,bazaar)
4211 ("cvs" ,cvs)
4212 ("mercurial" ,mercurial)))
4213 (inputs
4214 `(("python" ,python-wrapper)
0b88f7e7 4215 ("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
909dcf5b
CB
4216 ("perl-cgi-session" ,perl-cgi-session)
4217 ("perl-cgi-simple" ,perl-cgi-simple)
0b88f7e7 4218 ("perl-db-file" ,perl-db-file)
909dcf5b 4219 ("perl-html-parser" ,perl-html-parser)
909dcf5b
CB
4220 ("perl-html-scrubber" ,perl-html-scrubber)
4221 ("perl-html-template" ,perl-html-template)
0b88f7e7
PG
4222 ("perl-image-magick" ,perl-image-magick)
4223 ("perl-json" ,perl-json)
4224 ("perl-text-markdown-discount" ,perl-text-markdown-discount)
4225 ("perl-uri" ,perl-uri)
909dcf5b
CB
4226 ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
4227 (home-page "https://ikiwiki.info/")
4228 (synopsis "Wiki compiler, capable of generating HTML")
4229 (description
4230 "Ikiwiki is a wiki compiler, capable of generating a static set of web
4231pages, but also incorporating dynamic features like a web based editor and
4232commenting.")
4233 (license l:gpl2+)))
4234
5a0096a3
EB
4235(define-public libwapcaplet
4236 (package
4237 (name "libwapcaplet")
60e411fc 4238 (version "0.4.1")
5a0096a3
EB
4239 (source
4240 (origin
4241 (method url-fetch)
4242 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4243 name "-" version "-src.tar.gz"))
4244 (sha256
4245 (base32
60e411fc 4246 "134pljlm8kby1yy49826f0ixnpig8iqak6xpyl3aivagnsjnxzy8"))))
5a0096a3
EB
4247 (build-system gnu-build-system)
4248 (native-inputs
4249 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4250 ("pkg-config" ,pkg-config)
4251 ("check" ,check))) ;for tests
4252 (arguments netsurf-buildsystem-arguments)
4253 (home-page "http://www.netsurf-browser.org/projects/libwapcaplet/")
4254 (synopsis "String internment library")
4255 (description
4256 "LibWapcaplet provides a reference counted string internment system
4257designed to store small strings and allow rapid comparison of them. It is
4258developed as part of the Netsurf project.")
4259 (license l:expat)))
4260
0527b43d
EB
4261(define-public libcss
4262 (package
4263 (name "libcss")
2bb1752b 4264 (version "0.8.0")
0527b43d
EB
4265 (source
4266 (origin
4267 (method url-fetch)
4268 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4269 name "-" version "-src.tar.gz"))
4270 (sha256
4271 (base32
2bb1752b 4272 "0pxdqbxn6brj03nv57bsvac5n70k4scn3r5msaw0jgn2k06lk81m"))))
0527b43d
EB
4273 (build-system gnu-build-system)
4274 (native-inputs
4275 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4276 ("pkg-config" ,pkg-config)
4277 ("perl" ,perl)))
4278 (propagated-inputs ;needed for libcss.pc
4279 `(("libparserutils" ,libparserutils)
4280 ("libwapcaplet" ,libwapcaplet)))
4281 (arguments netsurf-buildsystem-arguments)
4282 (home-page "http://www.netsurf-browser.org/projects/libcss/")
4283 (synopsis "CSS parser and selection library")
4284 (description
4285 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,
4286written in C. It is developed as part of the NetSurf project.")
4287 (license l:expat)))
4288
ccb88298
EB
4289(define-public libdom
4290 (package
4291 (name "libdom")
f8311c0f 4292 (version "0.3.3")
ccb88298
EB
4293 (source
4294 (origin
4295 (method url-fetch)
4296 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4297 name "-" version "-src.tar.gz"))
4298 (sha256
4299 (base32
f8311c0f 4300 "1919757mdl3gii2pl6kzm8b1cal0h06r5nqd2y0kny6hc5yrhsp0"))))
ccb88298
EB
4301 (build-system gnu-build-system)
4302 (native-inputs
4303 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4304 ("pkg-config" ,pkg-config)
4305 ("perl" ,perl) ;for test harness
4306 ("perl-libxml" ,perl-libxml)
4307 ("perl-switch" ,perl-switch)
4308 ("perl-xml-xpath" ,perl-xml-xpath)))
4309 (inputs
4310 `(("libparserutils" ,libparserutils)
4311 ("libwapcaplet" ,libwapcaplet)))
4312 (propagated-inputs
4313 `(("expat" ,expat) ;needed for headers and linking
4314 ("hubbub" ,hubbub))) ;for libdom.pc
4315 (arguments
4316 `(#:tests? #f ;TODO: re-enable. tests take a looong time.
4317 ,@netsurf-buildsystem-arguments))
4318 (home-page "http://www.netsurf-browser.org/projects/libdom/")
4319 (synopsis "Implementation of the W3C DOM")
4320 (description
4321 "LibDOM is an implementation of the W3C DOM, written in C. It is
4322developed as part of the NetSurf project.")
4323 (license l:expat)))
4324
6fae2256
EB
4325(define-public libsvgtiny
4326 (package
4327 (name "libsvgtiny")
bb38628f 4328 (version "0.1.7")
6fae2256
EB
4329 (source
4330 (origin
4331 (method url-fetch)
4332 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4333 name "-" version "-src.tar.gz"))
4334 (sha256
4335 (base32
bb38628f 4336 "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
6fae2256
EB
4337 (build-system gnu-build-system)
4338 (native-inputs
4339 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4340 ("pkg-config" ,pkg-config)
b1554326 4341 ("gperf" ,gperf-3.0)))
6fae2256
EB
4342 (inputs
4343 `(("libwapcaplet" ,libwapcaplet)))
4344 (propagated-inputs
4345 `(("libdom" ,libdom))) ;for libsvgtiny.pc
4346 (arguments netsurf-buildsystem-arguments)
4347 (home-page "http://www.netsurf-browser.org/projects/libsvgtiny/")
4348 (synopsis "Library for parsing SVG files")
4349 (description
4350 "Libsvgtiny takes some SVG as input and returns a list of paths and texts
4351which can be rendered easily, as defined in
4352@url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf
4353project.")
4354 (license l:expat)))
4355
4018a533
EB
4356(define-public libnsbmp
4357 (package
4358 (name "libnsbmp")
ef2198ac 4359 (version "0.1.5")
4018a533
EB
4360 (source
4361 (origin
4362 (method url-fetch)
4363 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4364 name "-" version "-src.tar.gz"))
4365 (sha256
4366 (base32
ef2198ac 4367 "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35"))))
4018a533
EB
4368 (build-system gnu-build-system)
4369 (native-inputs
4370 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4371 (arguments netsurf-buildsystem-arguments)
4372 (home-page "http://www.netsurf-browser.org/projects/libnsbmp/")
4373 (synopsis "Decoding library for BMP and ICO files")
4374 (description
4375 "Libnsbmp is a decoding library for BMP and ICO image file formats,
4376written in C. It is developed as part of the NetSurf project.")
4377 (license l:expat)))
4378
ea1c8b31
EB
4379(define-public libnsgif
4380 (package
4381 (name "libnsgif")
1dc02e72 4382 (version "0.2.1")
ea1c8b31
EB
4383 (source
4384 (origin
4385 (method url-fetch)
4386 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4387 name "-" version "-src.tar.gz"))
4388 (sha256
4389 (base32
1dc02e72 4390 "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
ea1c8b31
EB
4391 (build-system gnu-build-system)
4392 (native-inputs
4393 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4394 (arguments netsurf-buildsystem-arguments)
4395 (home-page "http://www.netsurf-browser.org/projects/libnsgif/")
4396 (synopsis "Decoding library for GIF files")
4397 (description
4398 "Libnsgif is a decoding library for the GIF image file format, written in
4399C. It is developed as part of the NetSurf project.")
4400 (license l:expat)))
4401
54b7f149
EB
4402(define-public libnsutils
4403 (package
4404 (name "libnsutils")
3e1035d7 4405 (version "0.0.5")
54b7f149
EB
4406 (source
4407 (origin
4408 (method url-fetch)
4409 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4410 name "-" version "-src.tar.gz"))
4411 (sha256
4412 (base32
3e1035d7 4413 "09w1rixps1iiq6wirjwxmd6h87llvjzvw565rahjb3rlyhcplfqf"))))
54b7f149
EB
4414 (build-system gnu-build-system)
4415 (native-inputs
4416 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4417 (arguments netsurf-buildsystem-arguments)
4418 (home-page "http://www.netsurf-browser.org/")
4419 (synopsis "Utility library for NetSurf")
4420 (description
4421 "Libnsutils provides a small number of useful utility routines. It is
4422developed as part of the NetSurf project.")
4423 (license l:expat)))
4424
02a7a0ca
EB
4425(define-public libnspsl
4426 (package
4427 (name "libnspsl")
1be70775 4428 (version "0.1.3")
02a7a0ca
EB
4429 (source
4430 (origin
4431 (method url-fetch)
4432 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4433 name "-" version "-src.tar.gz"))
4434 (sha256
4435 (base32
1be70775 4436 "1rsk1k2a495axxgv8060s0p1phhhcxrv75252kllbkvr8id5kqld"))))
02a7a0ca
EB
4437 (build-system gnu-build-system)
4438 (native-inputs
4439 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4440 (arguments netsurf-buildsystem-arguments)
4441 (home-page "http://www.netsurf-browser.org/")
4442 (synopsis "Library to generate a static Public Suffix List")
4443 (description
4444 "Libnspsl is a library to generate a static code representation of the
4445Public Suffix List. It is developed as part of the NetSurf project.")
4446 (license l:expat)))
4447
1f6ec9d2
EB
4448(define-public nsgenbind
4449 (package
4450 (name "nsgenbind")
c558113f 4451 (version "0.6")
1f6ec9d2
EB
4452 (source
4453 (origin
4454 (method url-fetch)
4455 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4456 name "-" version "-src.tar.gz"))
4457 (sha256
4458 (base32
c558113f 4459 "0v1cb1rz5fix9ql31nzmglj7sybya6d12b2fkaypm1avcca59xwj"))))
1f6ec9d2
EB
4460 (build-system gnu-build-system)
4461 (native-inputs
4462 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4463 ("bison" ,bison)
4464 ("flex" ,flex)))
4465 (arguments
4466 (substitute-keyword-arguments netsurf-buildsystem-arguments
4467 ((#:make-flags flags)
4468 `(delete "COMPONENT_TYPE=lib-shared" ,flags))))
4469 (home-page "http://www.netsurf-browser.org/")
4470 (synopsis "Generate JavaScript to DOM bindings")
4471 (description
4472 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from
4473w3c webidl files and a binding configuration file.")
4474 (license l:expat)))
4475
fbaf9376
LF
4476(define-public netsurf
4477 (package
4478 (name "netsurf")
f9e140a2 4479 (version "3.8")
fbaf9376
LF
4480 (source
4481 (origin
4482 (method url-fetch)
4483 (uri (string-append "http://download.netsurf-browser.org/netsurf/"
4484 "releases/source/netsurf-" version "-src.tar.gz"))
4485 (sha256
4486 (base32
f9e140a2 4487 "0hjm1h4m1i913y4mhkl7yqdifn8k70fwi58zdh6faypawzryc3m0"))
fbaf9376
LF
4488 (patches (search-patches "netsurf-system-utf8proc.patch"
4489 "netsurf-y2038-tests.patch"
f9e140a2
EB
4490 "netsurf-longer-test-timeout.patch"
4491 "netsurf-message-timestamp.patch"))))
fbaf9376
LF
4492 (build-system glib-or-gtk-build-system)
4493 (native-inputs
4494 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4495 ("nsgenbind" ,nsgenbind)
4496 ("libidn" ,libidn) ;only for tests
4497 ("check" ,check)
4498 ("perl" ,perl)
4499 ("perl-html-parser" ,perl-html-parser)
4500 ("pkg-config" ,pkg-config)))
4501 (inputs
4502 `(("curl" ,curl)
4503 ("gtk+" ,gtk+-2)
4504 ("openssl" ,openssl)
4505 ("utf8proc" ,utf8proc)
4506 ("libpng" ,libpng)
4507 ("libjpeg" ,libjpeg)
4508 ("libcss" ,libcss)
4509 ("libdom" ,libdom)
4510 ("libnsbmp" ,libnsbmp)
4511 ("libnsgif" ,libnsgif)
4512 ("libnspsl" ,libnspsl)
4513 ("libnsutils" ,libnsutils)
4514 ("libsvgtiny" ,libsvgtiny)
4515 ("miscfiles" ,miscfiles)))
4516 (arguments
4517 `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
4518 ,(string-append "PREFIX=" %output)
4519 ,(string-append "NSSHARED="
4520 (assoc-ref %build-inputs
4521 "netsurf-buildsystem")
4522 "/share/netsurf-buildsystem"))
4523 #:test-target "test"
4524 #:modules ((ice-9 rdelim)
4525 (ice-9 match)
4526 (srfi srfi-1)
4527 (sxml simple)
4528 ,@%glib-or-gtk-build-system-modules)
4529 #:phases
4530 (modify-phases %standard-phases
4531 (delete 'configure)
4532 (add-after 'build 'adjust-welcome
4533 (lambda _
4534 ;; First, fix some unended tags and simple substitutions
4535 (substitute* "frontends/gtk/res/welcome.html"
4536 (("<(img|input)([^>]*)>" _ tag contents)
4537 (string-append "<" tag contents " />"))
4538 (("Licence") "License") ;prefer GNU spelling
4539 ((" open source") ", free software")
4540 (("web&nbsp;site") "website")
4541 ;; Prefer privacy-respecting default search engine
4542 (("www.google.co.uk") "www.duckduckgo.com/html")
4543 (("Google Search") "DuckDuckGo Search")
4544 (("name=\"btnG\"") ""))
4545 ;; Remove default links so it doesn't seem we're endorsing them
4546 (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
4547 (lambda (in out)
4548 ;; Leave the DOCTYPE header as is
4549 (display (read-line in 'concat) out)
4550 (sxml->xml
4551 (let rec ((sxml (xml->sxml in)))
4552 ;; We'd like to use sxml-match here, but it can't
4553 ;; match against generic tag symbols...
4554 (match sxml
4555 (`(div (@ (class "links")) . ,rest)
4556 '())
4557 ((x ...)
4558 (map rec x))
4559 (x x)))
4560 out)))
4561 #t))
4562 (add-before 'check 'patch-check
4563 (lambda* (#:key inputs #:allow-other-keys)
4564 (substitute* '("test/bloom.c" "test/hashtable.c")
4565 (("/usr/share/dict/words")
4566 (string-append (assoc-ref inputs "miscfiles") "/share/web2")))
4567 #t))
4568 (add-after 'install 'install-more
4569 (lambda* (#:key outputs #:allow-other-keys)
4570 (let* ((out (assoc-ref outputs "out"))
4571 (desktop (string-append out "/share/applications/"
4572 "netsurf.desktop")))
4573 (mkdir-p (dirname desktop))
4574 (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
4575 desktop)
4576 (substitute* desktop
d8799bd0 4577 (("netsurf-gtk") (string-append out "/bin/netsurf-gtk"))
fbaf9376
LF
4578 (("netsurf.png") (string-append out "/share/netsurf/"
4579 "netsurf.xpm")))
d8799bd0 4580 (install-file "docs/netsurf-gtk.1"
fbaf9376
LF
4581 (string-append out "/share/man/man1/"))
4582 #t))))))
4583 (home-page "http://www.netsurf-browser.org")
4584 (synopsis "Web browser")
4585 (description
4586 "NetSurf is a lightweight web browser that has its own layout and
4587rendering engine entirely written from scratch. It is small and capable of
4588handling many of the web standards in use today.")
4589 (license l:gpl2+)))
4590
e56e5b12 4591(define-public surfraw
4592 (package
4593 (name "surfraw")
4594 (version "2.2.9")
4595 (source (origin
4596 (method url-fetch)
4597 (uri (string-append "https://surfraw.alioth.debian.org/dist/"
4598 name "-" version ".tar.gz"))
4599 (sha256
4600 (base32
4601 "1fy4ph5h9kp0jzj1m6pfylxnnmgdk0mmdppw76z9jhna4jndk5xa"))))
4602 (build-system gnu-build-system)
e81fd90e 4603 (arguments
4604 `(#:phases
4605 (modify-phases %standard-phases
72687ca5
MM
4606 (add-before 'configure 'patch-perl
4607 (lambda* (#:key inputs #:allow-other-keys)
4608 (let ((perl (assoc-ref inputs "perl")))
4609 (substitute* "surfraw.IN"
4610 (("perl -e")
4611 (string-append perl "/bin/perl -e")))
4612 #t)))
e81fd90e 4613 (add-after 'install 'compress-elvi.1sr
4614 (lambda* (#:key outputs #:allow-other-keys)
4615 ;; The manpages of the elvis are symlinks to elvi.1sr.gz
4616 ;; but elvi.1sr does not get compressed by our manpage phase.
4617 (let* ((out (assoc-ref %outputs "out"))
4618 (man (string-append out "/share/man/man1")))
4619 (with-directory-excursion man
2cdc7191 4620 (invoke "gzip" "elvi.1sr"))))))))
e56e5b12 4621 (inputs
4622 `(("perl" ,perl)
4623 ("perl-www-opensearch" ,perl-www-opensearch)
4624 ("perl-html-parser" ,perl-html-parser)
4625 ("perl-libwww" ,perl-libwww)))
4626 (synopsis "Unix command line interface to the www")
4627 (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
4628provides a unix command line interface to a variety of popular www search engines
4629and similar services.")
4630 (home-page "https://surfraw.alioth.debian.org/")
4631 (license l:public-domain)))
797a5cf5
AI
4632
4633(define-public darkhttpd
4634 (package
4635 (name "darkhttpd")
4636 (version "1.12")
4637 (source
4638 (origin
a7a4345d
AI
4639 (method url-fetch)
4640 (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
4641 version ".tar.bz2"))
797a5cf5
AI
4642 (sha256
4643 (base32
a7a4345d 4644 "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
797a5cf5
AI
4645 (build-system gnu-build-system)
4646 (arguments
4647 `(#:make-flags '("CC=gcc")
4648 #:tests? #f ; No test suite
4649 #:phases
4650 (modify-phases %standard-phases
4651 (delete 'configure)
4652 (replace 'install
4653 (lambda* (#:key outputs #:allow-other-keys)
4654 (install-file "darkhttpd"
4655 (string-append (assoc-ref outputs "out")
4656 "/bin"))
4657 #t)))))
4658 (synopsis "Simple static web server")
4659 (description "darkhttpd is a simple static web server. It is
4660standalone and does not need inetd or ucspi-tcp. It does not need any
4661config files---you only have to specify the www root.")
4662 (home-page "https://unix4lyfe.org/darkhttpd/")
4663 (license l:isc)))
8cecd22e
LC
4664
4665(define-public goaccess
4666 (package
4667 (name "goaccess")
4668 (version "1.0.2")
4669 (source (origin
4670 (method url-fetch)
4671 (uri (string-append "http://tar.goaccess.io/goaccess-"
4672 version ".tar.gz"))
4673 (sha256
4674 (base32
4675 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
4676 (modules '((guix build utils)))
6cbee49d
MW
4677 (snippet '(begin
4678 (substitute* "src/error.h"
4679 (("__DATE__") "\"1970-01-01\"")
2857e527
MW
4680 (("__TIME__") "\"00:00:00\""))
4681 #t))))
8cecd22e
LC
4682 (build-system gnu-build-system)
4683 (inputs
4684 ;; TODO: Add dependency on geoip-tools.
4685 `(("glib" ,glib)
4686 ("ncurses" ,ncurses)))
4687 (native-inputs
4688 `(("pkg-config" ,pkg-config)))
4689 (home-page "https://goaccess.io")
4690 (synopsis "Analyze Web server logs in real time")
4691 (description
4692 "GoAccess is a real-time web log analyzer and interactive viewer that
4693runs in a terminal or through your browser. It provides fast and valuable
4694HTTP statistics for system administrators that require a visual server report
4695on the fly.")
4696 (license l:x11)))
bb6e6415
TGR
4697
4698(define-public httptunnel
4699 (package
4700 (name "httptunnel")
4701 (version "3.3")
4702 (source
4703 (origin
4704 (method url-fetch)
4705 (uri (string-append "http://www.nocrew.org/software/httptunnel/"
4706 name "-" version ".tar.gz"))
4707 (sha256
4708 (base32
4709 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
4710 (modules '((guix build utils)))
6cbee49d
MW
4711 (snippet '(begin
4712 ;; Remove non-free IETF RFC documentation.
2857e527
MW
4713 (delete-file-recursively "doc")
4714 #t))))
bb6e6415
TGR
4715 (build-system gnu-build-system)
4716 (arguments
4717 `(#:phases
4718 (modify-phases %standard-phases
4719 ;; The default configure phase tries to pass environment variables as
4720 ;; command-line arguments, which confuses the ./configure script.
4721 (replace 'configure
4722 (lambda* (#:key outputs #:allow-other-keys)
4723 (let* ((out (assoc-ref outputs "out")))
4724 (setenv "CONFIG_SHELL" (which "bash"))
16b5dafc
TGR
4725 (invoke "./configure"
4726 (string-append "--prefix=" out))))))))
bb6e6415
TGR
4727 (home-page "http://www.nocrew.org/software/httptunnel.html")
4728 (synopsis "Tunnel data connections through HTTP requests")
4729 (description "httptunnel creates a bidirectional virtual data connection
4730tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be
4731useful for users behind restrictive firewalls. As long as Web traffic is
4732allowed, even through a HTTP-only proxy, httptunnel can be combined with other
4733tools like SSH (Secure Shell) to reach the outside world.")
4734 (license l:gpl2+)))
864042c5
TD
4735
4736(define-public stunnel
4737 (package
4738 (name "stunnel")
c0efb1fe 4739 (version "5.48")
864042c5
TD
4740 (source
4741 (origin
4742 (method url-fetch)
4743 (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
4744 version ".tar.gz"))
4745 (sha256
4746 (base32
c0efb1fe 4747 "1pxqn9ixl80nrhfq12igyi874653jclji56hh9w24snf0aixa48h"))))
864042c5 4748 (build-system gnu-build-system)
8d07936a
TGR
4749 (native-inputs
4750 ;; For tests.
4751 `(("iproute" ,iproute)
4752 ("netcat" ,netcat)
4753 ("procps" ,procps)))
864042c5
TD
4754 (inputs `(("openssl" ,openssl)))
4755 (arguments
4756 `(#:configure-flags
8d07936a
TGR
4757 (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
4758 #:phases
4759 (modify-phases %standard-phases
4760 (add-after 'unpack 'patch-output-directories
4761 (lambda _
4762 ;; Some (not all) Makefiles have a hard-coded incorrect docdir.
4763 (substitute* (list "Makefile.in"
4764 "doc/Makefile.in"
4765 "tools/Makefile.in")
4766 (("/doc/stunnel")
4767 (string-append "/doc/" ,name "-" ,version)))
4768 #t))
4769 (add-before 'check 'patch-tests
4770 (lambda _
4771 (substitute* "tests/make_test"
4772 (("/bin/sh ")
4773 (string-append (which "sh") " ")))
4774 #t)))))
864042c5
TD
4775 (home-page "https://www.stunnel.org")
4776 (synopsis "TLS proxy for clients or servers")
4777 (description "Stunnel is a proxy designed to add TLS encryption
4778functionality to existing clients and servers without any changes in the
4779programs' code. Its architecture is optimized for security, portability, and
4780scalability (including load-balancing), making it suitable for large
4781deployments.")
4782 (license l:gpl2+)))
59ae241f 4783
da682825
MB
4784(define-public varnish
4785 (package
4786 (name "varnish")
4787 (home-page "https://varnish-cache.org/")
4788 (version "6.0.0")
4789 (source (origin
4790 (method url-fetch)
4791 (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
4792 (sha256
4793 (base32
4794 "1vhbdch33m6ig4ijy57zvrramhs9n7cba85wd8rizgxjjnf87cn7"))))
4795 (build-system gnu-build-system)
4796 (arguments
4797 `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
4798 ;; Use absolute path of GCC so it's found at runtime.
4799 (string-append "PTHREAD_CC="
4800 (assoc-ref %build-inputs "gcc")
4801 "/bin/gcc")
4802 "--localstatedir=/var")
4803 #:phases
4804 (modify-phases %standard-phases
5f33e906 4805 (add-after 'unpack 'use-absolute-file-names
da682825
MB
4806 (lambda _
4807 (substitute* '("bin/varnishtest/vtc_varnish.c"
4808 "bin/varnishtest/vtc_process.c"
4809 "bin/varnishd/mgt/mgt_vcc.c")
4810 (("/bin/sh") (which "sh")))
5f33e906
MB
4811 (substitute* "bin/varnishd/mgt/mgt_shmem.c"
4812 (("rm -rf") (string-append (which "rm") " -rf")))
da682825
MB
4813 #t))
4814 (add-before 'install 'patch-Makefile
4815 (lambda _
4816 (substitute* "Makefile"
4817 ;; Do not create /var/varnish during install.
4818 (("^install-data-am: install-data-local") "install-data-am: "))
4819 #t))
4820 (add-after 'install 'wrap-varnishd
4821 ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
4822 ;; environment variables to avoid propagating them to profiles.
4823 (lambda* (#:key inputs outputs #:allow-other-keys)
4824 (let* ((out (assoc-ref outputs "out"))
4825 (varnishd (string-append out "/sbin/varnishd"))
4826 (PATH (string-append (assoc-ref inputs "binutils") "/bin"))
4827 (LIBRARY_PATH (string-append (assoc-ref inputs "libc") "/lib")))
4828 (wrap-program varnishd
4829 ;; Add binutils to PATH so gcc finds the 'as' executable.
4830 `("PATH" ":" prefix (,PATH))
4831 ;; Make sure 'crti.o' et.al is found.
4832 `("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))
4833 #t))))))
4834 (native-inputs
4835 `(("pkg-config" ,pkg-config)
4836 ("rst2man" ,python-docutils)))
4837 (inputs
4838 `(("jemalloc" ,jemalloc)
4839 ("ncurses" ,ncurses)
4840 ("pcre" ,pcre)
4841 ("python" ,python-wrapper)
4842 ("readline" ,readline)))
4843 (synopsis "Web application accelerator")
4844 (description
4845 "Varnish is a high-performance HTTP accelerator. It acts as a caching
4846reverse proxy and load balancer. You install it in front of any server that
4847speaks HTTP and configure it to cache the contents through an extensive
4848configuration language.")
4849 (license (list l:bsd-2 ;main distribution
4850 l:zlib ;lib/libvgz/*
4851 l:public-domain ;bin/varnishncsa/as64.c, include/miniobj.h
4852 l:bsd-3)))) ;include/vqueue.h, lib/libvarnishcompat/daemon.c
4853
ddf1ace0
MB
4854(define-public varnish-modules
4855 (package
4856 (name "varnish-modules")
4857 (home-page "https://github.com/varnish/varnish-modules")
4858 (version "0.15.0")
4859 (source (origin
4860 (method url-fetch)
4861 (uri (string-append "https://download.varnish-software.com"
4862 "/varnish-modules/varnish-modules-"
4863 version ".tar.gz"))
4864 (sha256
4865 (base32
4866 "09li9lqa1kb275w1rby2zldyg8r9cfcl4qyv53qyd9xbzilrz751"))))
4867 (build-system gnu-build-system)
4868 (native-inputs
4869 `(("pkg-config" ,pkg-config)))
4870 (inputs
4871 `(("python" ,python)
4872 ("varnish" ,varnish)))
4873 (synopsis "Collection of Varnish modules")
4874 (description
4875 "This package provides a collection of modules (@dfn{vmods}) for the Varnish
4876cache server, extending the @dfn{Varnish Configuration Language} (VCL) with
4877additional capabilities.")
4878 (license l:bsd-2)))
4879
59ae241f
TD
4880(define-public xinetd
4881 (package
4882 (name "xinetd")
4883 (version "2.3.15")
4884 (source
4885 (origin
4886 (method url-fetch)
9c22b131
TGR
4887 (uri
4888 (string-append "https://github.com/xinetd-org/xinetd/archive/xinetd-"
4889 (string-join (string-split version #\.) "-") ".tar.gz"))
4890 (patches (search-patches "xinetd-CVE-2013-4342.patch"
4891 "xinetd-fix-fd-leak.patch"))
59ae241f
TD
4892 (sha256
4893 (base32
4894 "0k59x52cbzp5fw0n8zn0y54j1ps0x9b72y8k5grzswjdmgs2a2v2"))))
4895 (build-system gnu-build-system)
4896 (arguments
4897 `(#:configure-flags '("--with-loadavg")
9c22b131 4898 #:tests? #f)) ; no tests
59ae241f
TD
4899 (home-page "https://github.com/xinetd-org/xinetd")
4900 (synopsis "Internet services daemon")
4901 (description "@code{xinetd}, a more secure replacement for @code{inetd},
4902listens for incoming requests over a network and launches the appropriate
4903service for that request. Requests are made using port numbers as identifiers
4904and xinetd usually launches another daemon to handle the request. It can be
4905used to start services with both privileged and non-privileged port numbers.")
4906 (license (l:fsf-free "file://COPYRIGHT"))))
1ad3c7f2 4907
4908(define-public tidy-html
4909 (package
4910 (name "tidy-html")
a0bd6fff 4911 (version "5.6.0")
1ad3c7f2 4912 (source
4913 (origin
4914 (method url-fetch)
4915 (uri (string-append "https://github.com/htacg/tidy-html5/archive/"
4916 version ".tar.gz"))
4917 (file-name (string-append name "-" version ".tar.gz"))
4918 (sha256
4919 (base32
a0bd6fff 4920 "0n29wcgw32rhnraj9j21ibhwi0xagmmcskhbaz8ihxly7nx3p9h8"))))
1ad3c7f2 4921 (build-system cmake-build-system)
4922 (outputs '("out"
3def739d 4923 "static")) ; 1.0MiB of .a files
1ad3c7f2 4924 (arguments
3def739d
TGR
4925 `(#:tests? #f ; no tests available
4926 #:build-type "Release"
1ad3c7f2 4927 #:phases
4928 (modify-phases %standard-phases
4929 (add-after 'install 'move-static-libraries
4930 (lambda* (#:key outputs #:allow-other-keys)
4931 ;; Move static libraries to the "static" output.
4932 (let* ((out (assoc-ref outputs "out"))
4933 (lib (string-append out "/lib"))
4934 (static (assoc-ref outputs "static"))
4935 (slib (string-append static "/lib")))
4936 (mkdir-p slib)
4937 (for-each (lambda (file)
4938 (install-file file slib)
4939 (delete-file file))
4940 (find-files lib "\\.a$"))
4941 #t))))))
4942 (native-inputs
4943 `(("libxslt" ,libxslt)))
4944 (home-page "http://www.html-tidy.org/")
4945 (synopsis "HTML Tidy with HTML5 support")
4946 (description
4947 "Tidy is a console application which corrects and cleans up
4948HTML and XML documents by fixing markup errors and upgrading
4949legacy code to modern standards.
4950
4951Tidy also provides @code{libtidy}, a C static and dynamic library that
4952developers can integrate into their applications to make use of the
4953functions of Tidy.")
4954 (license l:bsd-3)))
0491a3b2 4955
3190c307 4956(define-public hiawatha
4957 (package
4958 (name "hiawatha")
8e87aa04 4959 (version "10.8.3")
3190c307 4960 (source
4961 (origin
4962 (method url-fetch)
4963 (uri (string-append "https://www.hiawatha-webserver.org/files/"
4964 "hiawatha-" version ".tar.gz"))
4965 (modules '((guix build utils)))
6cbee49d 4966 (snippet '(begin
8e87aa04
TGR
4967 ;; We use packaged libraries, so delete the bundled copies.
4968 (for-each delete-file-recursively
4969 (list "nghttp2" "mbedtls"))
6cbee49d 4970 #t))
3190c307 4971 (sha256
4972 (base32
8e87aa04 4973 "0w7047pwijhsbvvv1qjynp7gvn0nil56w82f7ax0gabrg7ddzk6s"))))
3190c307 4974 (build-system cmake-build-system)
4975 (arguments
8e87aa04 4976 `(#:tests? #f ; no tests included
3190c307 4977 #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
aff91b0d
TGR
4978 (string-append "-DENABLE_HTTP2=on")
4979 (string-append "-DUSE_SYSTEM_NGHTTP2=on")
3190c307 4980 (string-append "-DENABLE_TOMAHAWK=on")
d8b04232
TGR
4981 (string-append "-DLOG_DIR=/var/log/hiawatha")
4982 (string-append "-DPID_DIR=/run")
3190c307 4983 (string-append "-DWEBROOT_DIR="
4984 (assoc-ref %outputs "out")
d8b04232
TGR
4985 "/share/hiawatha/html")
4986 (string-append "-DWORK_DIR=/var/lib/hiawatha"))
3190c307 4987 #:phases
4988 (modify-phases %standard-phases
d8b04232
TGR
4989 (add-after 'unpack 'install-no-empty-directories
4990 (lambda _
4991 (substitute* "CMakeLists.txt"
4992 (("install\\(DIRECTORY DESTINATION" match)
4993 (string-append "#" match)))
4994 #t))
3190c307 4995 (add-after 'install 'wrap
4996 (lambda* (#:key inputs outputs #:allow-other-keys)
4997 ;; Make sure 'hiawatha' finds 'mbedtls'.
4998 (let* ((out (assoc-ref outputs "out"))
4999 (sbin (string-append out "/sbin"))
5000 (mbed (assoc-ref inputs "mbedtls-apache")))
5001 (wrap-program (string-append sbin "/hiawatha")
5002 `("PATH" ":" prefix (,mbed)))))))))
5003 (inputs
8e87aa04 5004 ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
aff91b0d
TGR
5005 `(("libxslt" ,libxslt)
5006 ("libxml2" ,libxml2)
5007 ("mbedtls-apache" ,mbedtls-for-hiawatha)
5008 ("nghttp2" ,nghttp2 "lib")
5009 ("zlib" ,zlib)))
3190c307 5010 (home-page "https://www.hiawatha-webserver.org")
5011 (synopsis "Webserver with focus on security")
5012 (description
d4f6f78e 5013 "Hiawatha has been written with security in mind.
5014Features include the ability to stop SQL injections, XSS and CSRF attacks and
5015exploit attempts.")
3190c307 5016 (license l:gpl2)))
ce949c10
MFM
5017
5018(define-public python-httpbin
5019 (package
5020 (name "python-httpbin")
5021 (version "0.5.0")
5022 (source
5023 (origin
5024 (method url-fetch)
5025 (uri (pypi-uri "httpbin" version))
5026 (sha256
5027 (base32
5028 "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
5029 (build-system python-build-system)
5030 (propagated-inputs
5031 `(("python-decorator" ,python-decorator)
5032 ("python-flask" ,python-flask)
5033 ("python-itsdangerous" ,python-itsdangerous)
5034 ("python-markupsafe" ,python-markupsafe)
5035 ("python-six" ,python-six)))
5036 (home-page "https://github.com/Runscope/httpbin")
5037 (synopsis "HTTP request and response service")
5038 (description "Testing an HTTP Library can become difficult sometimes.
5039@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
5040response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
5041JSON-encoded.")
5042 (license l:isc)))
5043
5044(define-public python2-httpbin
5045 (package-with-python2 python-httpbin))
86ab1120
MFM
5046
5047(define-public python-pytest-httpbin
5048 (package
5049 (name "python-pytest-httpbin")
5050 (version "0.2.3")
5051 (source
5052 (origin
5053 (method url-fetch)
5054 (uri (pypi-uri "pytest-httpbin" version))
5055 (sha256
5056 (base32
5057 "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
5058 (build-system python-build-system)
5059 (propagated-inputs
5060 `(("python-six" ,python-six)
5061 ("python-httpbin" ,python-httpbin)
5062 ("python-pytest" ,python-pytest)))
5063 (home-page
5064 "https://github.com/kevin1024/pytest-httpbin")
5065 (synopsis
5066 "Test your HTTP library against a local copy of httpbin")
5067 (description
5068 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
5069into your tests. It automatically starts up a HTTP server in a separate thread running
5070@code{httpbin} and provides your test with the URL in the fixture.")
5071 (license l:expat)))
5072
5073(define-public python2-pytest-httpbin
5074 (package-with-python2 python-pytest-httpbin))
751f8582
RW
5075
5076(define-public http-parser
5077 (package
5078 (name "http-parser")
48a51af9 5079 (version "2.9.0")
304db092 5080 (home-page "https://github.com/nodejs/http-parser")
751f8582 5081 (source (origin
304db092
MB
5082 (method git-fetch)
5083 (uri (git-reference (url home-page)
5084 (commit (string-append "v" version))))
5085 (file-name (git-file-name name version))
751f8582
RW
5086 (sha256
5087 (base32
48a51af9 5088 "1qa3rh9x4as2fc2p0y2hah83iqs7jr5106a8anv317359dgf3ssj"))))
751f8582
RW
5089 (build-system gnu-build-system)
5090 (arguments
5091 `(#:test-target "test"
5092 #:make-flags
5093 (list (string-append "PREFIX="
5094 (assoc-ref %outputs "out"))
5095 "CC=gcc" "library")
5096 #:phases
5097 (modify-phases %standard-phases
5098 (delete 'configure))))
751f8582
RW
5099 (synopsis "HTTP request/response parser for C")
5100 (description "This is a parser for HTTP messages written in C. It parses
5101both requests and responses. The parser is designed to be used in
5102high-performance HTTP applications. It does not make any syscalls nor
5103allocations, it does not buffer data, it can be interrupted at anytime.
5104Depending on your architecture, it only requires about 40 bytes of data per
5105message stream (in a web server that is per connection).")
5106 (license l:expat)))
40b784b4
MFM
5107
5108(define-public python2-httpretty
5109 (package
5110 (name "python2-httpretty")
5111 (version "0.8.14")
5112 (source
5113 (origin
5114 (method url-fetch)
5115 (uri (pypi-uri "httpretty" version))
5116 (sha256
5117 (base32
5118 "0vlp5qkyw3pxwwsg7xmdcfh1csvypvaz4m6abida8s4xmjxpdhc3"))))
5119 (build-system python-build-system)
5120 (native-inputs
5121 `(("python-sphinx-rtd-theme" ,python2-sphinx-rtd-theme)
5122 ("python-sphinx" ,python2-sphinx)
5123 ("python-coverage" ,python2-coverage)
5124 ("python-tornado" ,python2-tornado)
5125 ("python-urllib3" ,python2-urllib3)
5126 ("python-sure" ,python2-sure)
5127 ("python-steadymark" ,python2-steadymark)
5128 ("python-requests" ,python2-requests)
5129 ("python-rednose" ,python2-rednose)
5130 ("python-nose-randomly" ,python2-nose-randomly)
5131 ("python-misaka" ,python2-misaka)
5132 ("python-pytest-httpbin" ,python2-pytest-httpbin)
5133 ("python-nose" ,python2-nose)))
5134 (arguments
5135 `(#:tests? #f
5136 ;; Requires mock>=1.3.0 which requires a more up-to-date
5137 ;; python-pbr. After updating these trying to build the
5138 ;; package leads to failures in python-flake8 and other
5139 ;; packages. The cascade of updates and failures this
5140 ;; leads to, seems to not be worth having the test run.
5141 #:python ,python-2
5142 #:phases
5143 (modify-phases %standard-phases
5144 (add-before 'build 'patch-test-requirements
5145 (lambda* (#:key inputs #:allow-other-keys)
5146 ;; Update requirements from dependecy==version
5147 ;; to dependency>=version
5148 (substitute* "development.txt"
5149 (("==") ">="))
5150 #t)))))
5151 (home-page "http://github.com/gabrielfalcao/httpretty")
5152 (synopsis "HTTP client mock for Python")
5153 (description "@code{httpretty} is a helper for faking web requests,
5154inspired by Ruby's @code{fakeweb}.")
5155 (license l:expat)))
0ac04232
AI
5156
5157(define-public jo
5158 (package
5159 (name "jo")
5160 (version "1.1")
5161 (source
5162 (origin
5163 (method url-fetch)
5164 (uri (string-append "https://github.com/jpmens/jo/releases/download/v"
5165 version "/jo-" version ".tar.gz"))
5166 (sha256
5167 (base32
5168 "0pysickpxrbl53c122h6swvz8sck68q3j0ql38wvbz70q9k4gvb3"))))
5169 (build-system gnu-build-system)
5170 (home-page "https://github.com/jpmens/jo")
5171 (synopsis "Output JSON from a shell")
5172 (description "jo is a command-line utility to create JSON objects or
5173arrays. It creates a JSON string on stdout from words provided as
5174command-line arguments or read from stdin.")
5175 (license (list l:gpl2+
5176 l:expat)))) ; json.c, json.h
95c36822
OP
5177
5178(define-public python-internetarchive
5179 (package
5180 (name "python-internetarchive")
25fa22a9 5181 (version "1.7.4")
95c36822
OP
5182 (source
5183 (origin
5184 (method url-fetch)
5185 (uri (string-append "https://github.com/jjjake/internetarchive/archive/"
5186 "v" version ".tar.gz"))
5187 (file-name (string-append name "-" version ".tar.gz"))
5188 (sha256
5189 (base32
25fa22a9 5190 "0sdbb2ag6vmybi8zmbjszi492a587giaaqxyy1p6gy03cb8mc512"))))
95c36822
OP
5191 (build-system python-build-system)
5192 (arguments
2cdf78df 5193 `(#:phases
95c36822
OP
5194 (modify-phases %standard-phases
5195 (delete 'check)
5196 (add-after 'install 'check
2cdf78df
OP
5197 (lambda* (#:key inputs outputs #:allow-other-keys)
5198 (add-installed-pythonpath inputs outputs)
5199 (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
5200 ":" (getenv "PATH")))
b8150fa0
TGR
5201 (invoke "py.test" "-v" "-k"
5202 (string-append
5203 ;; These tests attempt to make a connection to
5204 ;; an external web service.
5205 "not test_get_item_with_kwargs"
5206 " and not test_ia")))))))
95c36822
OP
5207 (propagated-inputs
5208 `(("python-requests" ,python-requests)
5209 ("python-jsonpatch" ,python-jsonpatch-0.4)
5210 ("python-docopt" ,python-docopt)
5211 ("python-clint" ,python-clint)
5212 ("python-six" ,python-six)
5213 ("python-schema" ,python-schema-0.5)
5214 ("python-backports-csv" ,python-backports-csv)))
5215 (native-inputs
928da609 5216 `(("python-pytest" ,python-pytest)
95c36822
OP
5217 ("python-pytest-capturelog" ,python-pytest-capturelog)
5218 ("python-responses" ,python-responses)))
5219 (home-page "https://github.com/jjjake/internetarchive")
5220 (synopsis "Command-line interface to archive.org")
5221 (description "@code{ia} is a command-line tool for using
5222@url{archive.org} from the command-line. It also emplements the
5223internetarchive python module for programatic access to archive.org.")
5224 (properties
5225 `((python2-variant . ,(delay python2-internetarchive))))
5226 (license l:agpl3+)))
5227
5228(define-public python2-internetarchive
5229 (package-with-python2
5230 (strip-python2-variant python-internetarchive)))
a3cd23b6 5231
036f1eed
OP
5232(define-public python-clf
5233 (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
5234 (package
5235 (name "python-clf")
5236 (version "0.5.7")
5237 (source
5238 (origin
5239 (method url-fetch)
5240 (uri (pypi-uri "clf" version))
5241 (sha256
5242 (base32
5243 "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb"))))
5244 (build-system python-build-system)
5245 (propagated-inputs
5246 `(("python-docopt" ,python-docopt)
5247 ("python-pygments" ,python-pygments)
5248 ("python-requests" ,python-requests)
5249 ("python-nose" ,python-nose)
5250 ("python-lxml" ,python-lxml)
5251 ("python-pyaml" ,python-pyaml)))
5252 (inputs
5253 `(("test-clf"
5254 ,(origin
5255 (method url-fetch)
5256 (uri (string-append "https://raw.githubusercontent.com"
5257 "/ncrocfer/clf/" commit-test-clf
5258 "/test_clf.py"))
5259 (sha256
5260 (base32
5261 "19lr5zdzsmxgkg7wrjq1yzkiahd03wi4k3dskssyhmjls8c10nqd"))))))
5262 (arguments
5263 '(#:phases
5264 (modify-phases %standard-phases
5265 (add-after 'unpack 'get-tests
5266 (lambda _
a145d7e9
TGR
5267 (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")
5268 #t))
036f1eed
OP
5269 (replace 'check
5270 (lambda _
a145d7e9
TGR
5271 (invoke "nosetests"
5272 ;; These tests require an Internet connection.
5273 "--exclude=test_browse"
5274 "--exclude=test_command"
5275 "--exclude=test_search"))))))
036f1eed
OP
5276 (home-page "https://github.com/ncrocfer/clf")
5277 (synopsis "Search code snippets on @url{https://commandlinefu.com}")
5278 (description "@code{clf} is a command line tool for searching code
5279snippets on @url{https://commandlinefu.com}.")
5280 (license l:expat))))
5281
5282(define-public python2-clf
5283 (package-with-python2 python-clf))
5284
52d445f1
AI
5285(define-public rss-bridge
5286 (package
5287 (name "rss-bridge")
5df8f068 5288 (version "2018-11-10")
52d445f1
AI
5289 (source
5290 (origin
5291 (method url-fetch)
5292 (uri (string-append "https://github.com/RSS-Bridge/rss-bridge/archive/"
5293 version ".tar.gz"))
5294 (file-name (string-append name "-" version ".tar.gz"))
5295 (sha256
5296 (base32
5df8f068 5297 "1l9a82smh6k37bjvzbmkdlssxywlmr40ig4cykgsns1iiszwv4ia"))))
52d445f1
AI
5298 (build-system trivial-build-system)
5299 (native-inputs
5300 `(("gzip" ,gzip)
5301 ("tar" ,tar)))
5302 (arguments
5303 '(#:modules ((guix build utils))
5304 #:builder
5305 (begin
5306 (use-modules (guix build utils)
5307 (ice-9 match))
5308 (let* ((out (assoc-ref %outputs "out"))
5309 (share-rss-bridge (string-append out "/share/rss-bridge")))
5310 (set-path-environment-variable
5311 "PATH" '("bin") (map (match-lambda ((_ . input) input))
5312 %build-inputs))
5313 (mkdir-p share-rss-bridge)
e3cfef22 5314 (invoke "tar" "xvf" (assoc-ref %build-inputs "source")
41339144 5315 "--strip-components" "1" "-C" share-rss-bridge)))))
52d445f1
AI
5316 (home-page "https://github.com/RSS-Bridge/rss-bridge")
5317 (synopsis "Generate Atom feeds for social networking websites")
5318 (description "rss-bridge generates Atom feeds for social networking
5319websites lacking feeds. Supported websites include Facebook, Twitter,
5320Instagram and YouTube.")
5321 (license (list l:public-domain
5322 l:expat)))) ;; vendor/simplehtmldom/simple_html_dom.php
a00379e7
AI
5323
5324(define-public linkchecker
5325 (package
5326 (name "linkchecker")
15dd85f0 5327 (version "9.4.0")
a00379e7
AI
5328 (source
5329 (origin
15dd85f0
TGR
5330 (method git-fetch)
5331 (uri (git-reference
5332 (url "https://github.com/linkchecker/linkchecker")
5333 (commit (string-append "v" version))))
dd7bc92a
CB
5334 (patches
5335 (search-patches
5336 "linkchecker-mark-more-tests-that-require-the-network.patch"))
774f8bbe 5337 (file-name (git-file-name name version))
a00379e7
AI
5338 (sha256
5339 (base32
15dd85f0 5340 "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
a00379e7
AI
5341 (build-system python-build-system)
5342 (inputs
15dd85f0
TGR
5343 `(("python2-dnspython" ,python2-dnspython)
5344 ("python2-pyxdg" ,python2-pyxdg)
5345 ("python2-requests" ,python2-requests)))
dd7bc92a
CB
5346 (native-inputs
5347 `(("gettext" ,gettext-minimal)
5348 ("python2-pytest" ,python2-pytest)
5349 ("python2-miniboa" ,python2-miniboa)
5350 ("python2-parameterized" ,python2-parameterized)))
a00379e7 5351 (arguments
dd7bc92a
CB
5352 `(#:python ,python-2
5353 #:phases
5354 (modify-phases %standard-phases
5355 ;; Move the 'check phase to after 'install, so that the installed
5356 ;; library can be used
5357 (delete 'check)
5358 (add-after 'install 'check
5359 (lambda* (#:key outputs #:allow-other-keys)
5360 (let ((out (assoc-ref outputs "out")))
5361 ;; Set PYTHONPATH so that the installed linkchecker is used
5362 (setenv "PYTHONPATH"
5363 (string-append out "/lib/python2.7/site-packages"
5364 ":"
5365 (getenv "PYTHONPATH")))
5366 ;; Remove this directory to avoid it being used when running
5367 ;; the tests
5368 (delete-file-recursively "linkcheck")
5369
5370 (invoke "py.test" "tests"))
5371 #t)))))
a00379e7
AI
5372 (home-page "https://linkcheck.github.io/linkchecker")
5373 (synopsis "Check websites for broken links")
5374 (description "LinkChecker is a website validator. It checks for broken
5375links in websites. It is recursive and multithreaded providing output in
5376colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It
5377supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local
5378file links.")
5379 (license (list l:gpl2+
15dd85f0
TGR
5380 l:bsd-2 ; linkcheck/better_exchook2.py
5381 l:bsd-3 ; linkcheck/colorama.py
5382 l:psfl ; linkcheck/gzip2.py
5383 l:expat)))) ; linkcheck/mem.py
ac713461 5384
5385(define-public cadaver
5386 (package
5387 (name "cadaver")
5388 (version "0.23.3")
5389 (source
5390 (origin
5391 (method url-fetch)
5392 (uri (string-append "http://www.webdav.org/cadaver/"
5393 name "-" version ".tar.gz"))
5394 (sha256
5395 (base32
5396 "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
5397 (build-system gnu-build-system)
5398 ;; TODO: Unbundle libneon and make build succeed with new neon.
5399 (arguments
5400 `(#:configure-flags (list "--with-ssl=openssl")
5401 #:tests? #f)) ;No tests included
5402 (native-inputs
5403 `(("gettext" ,gnu-gettext)
5404 ("pkg-config" ,pkg-config)
5405 ("intltool" ,intltool)))
5406 (inputs
5407 `(("expat" ,expat)
5408 ("openssl" ,openssl)))
5409 (home-page "http://www.webdav.org/cadaver")
5410 (synopsis "Command-line WebDAV client")
5411 (description
5412 "Cadaver is a command-line WebDAV client for Unix. It supports
5413file upload, download, on-screen display, namespace operations (move/copy),
5414collection creation and deletion, and locking operations.")
5415 (license l:gpl2)))
3aa440ca 5416
5417(define-public python-py-ubjson
5418 (package
5419 (name "python-py-ubjson")
5420 (version "0.10.0")
5421 (source
5422 (origin
5423 (method url-fetch)
5424 (uri (pypi-uri "py-ubjson" version))
5425 (sha256
5426 (base32
5427 "03l9m9w5ip4hw0y69wlys5gzsfb7zcq3a77blj88grgiqhn5vm5n"))))
5428 (build-system python-build-system)
5429 (home-page "https://github.com/Iotic-Labs/py-ubjson")
5430 (synopsis "Universal Binary JSON encoder/decoder")
5431 (description
5432 "Py-ubjson is a Python module providing an Universal Binary JSON
5433encoder/decoder based on the draft-12 specification for UBJSON.")
5434 (license l:asl2.0)))
91072287
JL
5435
5436(define-public java-tomcat
5437 (package
5438 (name "java-tomcat")
6a86d357 5439 (version "8.5.32")
91072287
JL
5440 (source (origin
5441 (method url-fetch)
5442 (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
5443 version "/src/apache-tomcat-" version "-src.tar.gz"))
5444 (sha256
5445 (base32
8dae9c92
BH
5446 "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6"))
5447 (modules '((guix build utils)))
5448 ;; Delete bundled jars.
5449 (snippet
5450 '(begin
5451 (for-each delete-file (find-files "." "\\.jar$"))
5452 #t))))
91072287
JL
5453 (build-system ant-build-system)
5454 (inputs
5455 `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
5456 (native-inputs
5457 `(("java-junit" ,java-junit)))
5458 (arguments
5459 `(#:build-target "package"
5460 #:tests? #f; requires downloading some files.
5461 #:phases
5462 (modify-phases %standard-phases
5463 (add-after 'unpack 'prevent-download
5464 (lambda _
5465 ;; This directory must exist
5466 (mkdir "downloads")
5467 ;; We patch build.xml so it doesn't download any dependency, because
5468 ;; we already have all of them.
5469 (substitute* "build.xml"
5470 (("download-compile,") "")
5471 (("depends=\"validate\"") "depends=\"build-prepare\"")
5472 ((",download-validate") ""))
5473 #t))
49a8684d
BH
5474 (add-after 'unpack 'strip-timestamps
5475 (lambda _
5476 (substitute* "build.xml"
5477 (("<filter token=\"YEAR\" value=.*")
5478 "<filter token=\"YEAR\" value=\"1970\"/>")
5479 (("<filter token=\"VERSION_BUILT\" value=.*")
5480 "<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
5481 #t))
91072287
JL
5482 (add-after 'unpack 'generate-properties
5483 (lambda _
5484 ;; This could have been passed to make-flags, but getcwd returns
5485 ;; a different directory then.
5486 (with-output-to-file "build.properties"
5487 (lambda _
5488 (display
5489 (string-append "base.path=" (getcwd) "/downloads\n"))))
5490 #t))
5491 (replace 'install
5492 (install-jars "output/build/lib")))))
5493 (home-page "https://tomcat.apache.org")
5494 (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
5495WebSocket")
5496 (description "Apache Tomcat is a free implementation of the Java
5497Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
5498technologies.")
5499 (license l:asl2.0)))
339bef37
JL
5500
5501(define-public java-eclipse-jetty-test-helper
5502 (package
5503 (name "java-eclipse-jetty-test-helper")
5504 (version "4.2")
5505 (source (origin
5506 (method url-fetch)
5507 (uri (string-append "https://github.com/eclipse/jetty.toolchain/"
5508 "archive/jetty-test-helper-" version ".tar.gz"))
5509 (sha256
5510 (base32
5511 "1jd6r9wc26fa11si4rn2gvy8ml8q4zw1nr6v04mjp8wvwpgvzwx5"))))
5512 (build-system ant-build-system)
5513 (arguments
5514 `(#:jar-name "eclipse-jetty-test-helper.jar"
5515 #:source-dir "src/main/java"
5516 #:test-dir "src/test"
5517 #:jdk ,icedtea-8
5518 #:phases
5519 (modify-phases %standard-phases
5520 (add-before 'configure 'chdir
5521 (lambda _
5522 (chdir "jetty-test-helper")))
5523 (add-before 'build 'fix-paths
5524 (lambda _
5525 ;; TODO:
5526 ;; This file assumes that the build directory is named "target"
5527 ;; but it is not the case with our ant-build-system. Once we have
5528 ;; maven though, we will have to rebuild this package because this
5529 ;; assumption is correct with maven-build-system.
5530 (substitute*
5531 "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
5532 (("\"target\"") "\"build\"")
5533 (("\"tests\"") "\"test-classes\""))
5534 ;; Tests assume we are building with maven, so that the build
5535 ;; directory is named "target", and not "build".
5536 (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
5537 (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
5538 "MavenTestingUtilsTest.java")
5539 (("target/tests") "build/test-classes")
5540 (("\"target") "\"build")))
5541 #t)))))
5542 (inputs
5543 `(("junit" ,java-junit)
5544 ("hamcrest" ,java-hamcrest-all)))
5545 (home-page "https://www.eclipse.org/jetty/")
5546 (synopsis "Helper classes for jetty tests")
5547 (description "This packages contains helper classes for testing the Jetty
5548Web Server.")
5549 ;; This program is licensed under both epl and asl.
5550 (license (list l:epl1.0 l:asl2.0))))
1f985e44
JL
5551
5552(define-public java-eclipse-jetty-perf-helper
5553 (package
5554 (inherit java-eclipse-jetty-test-helper)
5555 (name "java-eclipse-jetty-perf-helper")
5556 (arguments
5557 `(#:jar-name "eclipse-jetty-perf-helper.jar"
5558 #:source-dir "src/main/java"
5559 #:tests? #f; no tests
5560 #:jdk ,icedtea-8
5561 #:phases
5562 (modify-phases %standard-phases
5563 (add-before 'configure 'chdir
5564 (lambda _
5565 (chdir "jetty-perf-helper")
5566 #t)))))
5567 (inputs
5568 `(("hdrhistogram" ,java-hdrhistogram)))))
1657d62a
JL
5569
5570(define-public java-eclipse-jetty-util
5571 (package
5572 (name "java-eclipse-jetty-util")
5573 (version "9.4.6")
5574 (source (origin
5575 (method url-fetch)
5576 (uri (string-append "https://github.com/eclipse/jetty.project/"
5577 "archive/jetty-" version ".v20170531.tar.gz"))
5578 (sha256
5579 (base32
5580 "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
5581 (build-system ant-build-system)
5582 (arguments
5583 `(#:jar-name "eclipse-jetty-util.jar"
5584 #:source-dir "src/main/java"
5585 #:test-exclude
5586 (list "**/Abstract*.java"
5587 ;; requires network
5588 "**/InetAddressSetTest.java"
5589 ;; Assumes we are using maven
5590 "**/TypeUtilTest.java"
5591 ;; Error on the style of log
5592 "**/StdErrLogTest.java")
5593 #:jdk ,icedtea-8
5594 #:phases
5595 (modify-phases %standard-phases
5596 (add-before 'configure 'chdir
5597 (lambda _
5598 (chdir "jetty-util")
5599 #t)))))
5600 (inputs
5601 `(("slf4j" ,java-slf4j-api)
5602 ("servlet" ,java-tomcat)))
5603 (native-inputs
5604 `(("junit" ,java-junit)
5605 ("hamcrest" ,java-hamcrest-all)
5606 ("perf-helper" ,java-eclipse-jetty-perf-helper)
5607 ("test-helper" ,java-eclipse-jetty-test-helper)))
5608 (home-page "https://www.eclipse.org/jetty/")
5609 (synopsis "Utility classes for Jetty")
5610 (description "The Jetty Web Server provides an HTTP server and Servlet
5611container capable of serving static and dynamic content either from a standalone
5612or embedded instantiation. This package provides utility classes.")
5613 (license (list l:epl1.0 l:asl2.0))))
5010671d
JL
5614
5615;; This version is required by maven-wagon
5616(define-public java-eclipse-jetty-util-9.2
5617 (package
5618 (inherit java-eclipse-jetty-util)
5619 (version "9.2.22")
5620 (source (origin
5621 (method url-fetch)
5622 (uri (string-append "https://github.com/eclipse/jetty.project/"
5623 "archive/jetty-" version ".v20170606.tar.gz"))
5624 (sha256
5625 (base32
5626 "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
5627 (arguments
5628 `(#:jar-name "eclipse-jetty-util.jar"
5629 #:source-dir "src/main/java"
5630 #:jdk ,icedtea-8
5631 #:test-exclude
5632 (list "**/Abstract*.java"
5633 ;; requires network
5634 "**/InetAddressSetTest.java"
5635 ;; Assumes we are using maven
5636 "**/TypeUtilTest.java"
5637 ;; We don't have an implementation for slf4j
5638 "**/LogTest.java"
5639 ;; Error on the style of log
5640 "**/StdErrLogTest.java")
5641 #:phases
5642 (modify-phases %standard-phases
5643 (add-before 'configure 'chdir
5644 (lambda _
5645 (chdir "jetty-util")
5646 #t))
5647 (add-before 'build 'fix-test-sources
5648 (lambda _
5649 ;; We need to fix issues caused by changes in newer versions of
5650 ;; jetty-test-helper
5651 (let ((src "src/test/java/org/eclipse/jetty/util/resource"))
5652 (substitute* (string-append src "/AbstractFSResourceTest.java")
5653 (("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
5654 (("testdir.getFile\\(\"foo\"\\)")
5655 "testdir.getPathFile(\"foo\").toFile()")
5656 (("testdir.getFile\\(name\\)")
5657 "testdir.getPathFile(name).toFile()")))
5658 #t)))))))
b510b7f5
JL
5659
5660(define-public java-eclipse-jetty-io
5661 (package
5662 (inherit java-eclipse-jetty-util)
5663 (name "java-eclipse-jetty-io")
5664 (arguments
5665 `(#:jar-name "eclipse-jetty-io.jar"
5666 #:source-dir "src/main/java"
5667 #:jdk ,icedtea-8
5668 #:test-exclude (list "**/Abstract*.java"
5669 ;; Abstract class
5670 "**/EndPointTest.java")
5671 #:phases
5672 (modify-phases %standard-phases
5673 (add-before 'configure 'chdir
5674 (lambda _
5675 (chdir "jetty-io")
5676 #t)))))
5677 (inputs
5678 `(("slf4j" ,java-slf4j-api)
4b472f6a 5679 ("servlet" ,java-javaee-servletapi)
b510b7f5
JL
5680 ("util" ,java-eclipse-jetty-util)))
5681 (synopsis "Jetty :: IO Utility")
5682 (description "The Jetty Web Server provides an HTTP server and Servlet
5683container capable of serving static and dynamic content either from a standalone
5684or embedded instantiation. This package provides IO-related utility classes.")))
b90012fd
JL
5685
5686(define-public java-eclipse-jetty-io-9.2
5687 (package
5688 (inherit java-eclipse-jetty-io)
5689 (version (package-version java-eclipse-jetty-util-9.2))
5690 (source (package-source java-eclipse-jetty-util-9.2))
5691 (inputs
5692 `(("util" ,java-eclipse-jetty-util-9.2)
5693 ,@(package-inputs java-eclipse-jetty-util-9.2)))
5694 (native-inputs
5695 `(("mockito" ,java-mockito-1)
5696 ("cglib" ,java-cglib)
5697 ("objenesis" ,java-objenesis)
5698 ("asm" ,java-asm)
5699 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
4a1376d3
JL
5700
5701(define-public java-eclipse-jetty-http
5702 (package
5703 (inherit java-eclipse-jetty-util)
5704 (name "java-eclipse-jetty-http")
5705 (arguments
5706 `(#:jar-name "eclipse-jetty-http.jar"
5707 #:source-dir "src/main/java"
5708 #:jdk ,icedtea-8
5709 #:phases
5710 (modify-phases %standard-phases
5711 (add-before 'configure 'chdir
5712 (lambda _
5713 (chdir "jetty-http")
5714 #t))
5715 (add-before 'build 'copy-resources
5716 (lambda _
5717 (mkdir-p "build/classes")
5718 (copy-recursively "src/main/resources/" "build/classes/")
5719 #t)))))
5720 (inputs
5721 `(("slf4j" ,java-slf4j-api)
4b472f6a 5722 ("servlet" ,java-javaee-servletapi)
4a1376d3
JL
5723 ("io" ,java-eclipse-jetty-io)
5724 ("util" ,java-eclipse-jetty-util)))
5725 (synopsis "Jetty :: Http Utility")
5726 (description "The Jetty Web Server provides an HTTP server and Servlet
5727container capable of serving static and dynamic content either from a standalone
5728or embedded instantiation. This package provides HTTP-related utility classes.")))
821869fc
JL
5729
5730(define-public java-eclipse-jetty-http-9.2
5731 (package
5732 (inherit java-eclipse-jetty-http)
5733 (version (package-version java-eclipse-jetty-util-9.2))
5734 (source (package-source java-eclipse-jetty-util-9.2))
5735 (inputs
5736 `(("util" ,java-eclipse-jetty-util-9.2)
5737 ("io" ,java-eclipse-jetty-io-9.2)
5738 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
4b172061
JL
5739
5740(define-public java-eclipse-jetty-jmx
5741 (package
5742 (inherit java-eclipse-jetty-util)
5743 (name "java-eclipse-jetty-jmx")
5744 (arguments
5745 `(#:jar-name "eclipse-jetty-jmx.jar"
5746 #:source-dir "src/main/java"
5747 #:jdk ,icedtea-8
5748 #:tests? #f; FIXME: requires com.openpojo.validation
5749 #:phases
5750 (modify-phases %standard-phases
5751 (add-before 'configure 'chdir
5752 (lambda _
5753 (chdir "jetty-jmx")
5754 #t)))))
5755 (inputs
5756 `(("slf4j" ,java-slf4j-api)
4b472f6a 5757 ("servlet" ,java-javaee-servletapi)
4b172061
JL
5758 ("util" ,java-eclipse-jetty-util)))
5759 (synopsis "Jetty :: JMX Management")
5760 (description "The Jetty Web Server provides an HTTP server and Servlet
5761container capable of serving static and dynamic content either from a standalone
5762or embedded instantiation. This package provides the JMX management.")))
812c712f
JL
5763
5764(define-public java-eclipse-jetty-jmx-9.2
5765 (package
5766 (inherit java-eclipse-jetty-jmx)
5767 (version (package-version java-eclipse-jetty-util-9.2))
5768 (source (package-source java-eclipse-jetty-util-9.2))
5769 (inputs
5770 `(("util" ,java-eclipse-jetty-util-9.2)
5771 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
5d38f7e4
JL
5772
5773(define java-eclipse-jetty-http-test-classes
5774 (package
5775 (inherit java-eclipse-jetty-util)
5776 (name "java-eclipse-jetty-http-test-classes")
5777 (arguments
5778 `(#:jar-name "eclipse-jetty-http.jar"
5779 #:source-dir "src/test"
5780 #:tests? #f
5781 #:jdk ,icedtea-8
5782 #:phases
5783 (modify-phases %standard-phases
5784 (add-before 'configure 'chdir
5785 (lambda _
5786 (chdir "jetty-http"))))))
5787 (inputs
5788 `(("slf4j" ,java-slf4j-api)
5789 ("servlet" ,java-tomcat)
5790 ("http" ,java-eclipse-jetty-http)
5791 ("io" ,java-eclipse-jetty-io)
5792 ("util" ,java-eclipse-jetty-util)))))
5793
e36e2bee
JL
5794(define java-eclipse-jetty-http-test-classes-9.2
5795 (package
5796 (inherit java-eclipse-jetty-http-test-classes)
5797 (version (package-version java-eclipse-jetty-util-9.2))
5798 (source (package-source java-eclipse-jetty-util-9.2))
5799 (inputs
5800 `(("http" ,java-eclipse-jetty-http-9.2)
5801 ,@(package-inputs java-eclipse-jetty-http-9.2)))))
5802
5d38f7e4
JL
5803(define-public java-eclipse-jetty-server
5804 (package
5805 (inherit java-eclipse-jetty-util)
5806 (name "java-eclipse-jetty-server")
5807 (arguments
5808 `(#:jar-name "eclipse-jetty-server.jar"
5809 #:source-dir "src/main/java"
5810 #:jdk ,icedtea-8
5811 #:tests? #f; requires a mockito version we don't have
5812 #:phases
5813 (modify-phases %standard-phases
5814 (add-before 'configure 'chdir
5815 (lambda _
5816 (chdir "jetty-server")
5817 #t))
5818 (add-before 'build 'fix-source
5819 (lambda _
5820 ;; Explicit casts to prevent build failures
5821 (substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
5822 (("append\\(LazyList")
5823 "append((CharSequence)LazyList"))
5824 (substitute*
5825 "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
5826 (((string-append
5827 "Class<\\? extends EventListener> clazz = _classLoader==null"
5828 "\\?Loader.loadClass\\(ContextHandler.class,className\\):"
5829 "_classLoader.loadClass\\(className\\);"))
5830 (string-append "Class<? extends EventListener> clazz = "
5831 "(Class<? extends EventListener>) "
5832 "(_classLoader==null?Loader.loadClass("
5833 "ContextHandler.class,className):"
5834 "_classLoader.loadClass(className));")))
5835 #t)))))
5836 (inputs
5837 `(("slf4j" ,java-slf4j-api)
4b472f6a 5838 ("servlet" ,java-javaee-servletapi)
5d38f7e4
JL
5839 ("http" ,java-eclipse-jetty-http)
5840 ("io" ,java-eclipse-jetty-io)
5841 ("jmx" ,java-eclipse-jetty-jmx)
5842 ("util" ,java-eclipse-jetty-util)))
5843 (native-inputs
5844 `(("test-classes" ,java-eclipse-jetty-http-test-classes)
5845 ,@(package-native-inputs java-eclipse-jetty-util)))
5846 (synopsis "Core jetty server artifact")
5847 (description "The Jetty Web Server provides an HTTP server and Servlet
5848container capable of serving static and dynamic content either from a standalone
5849or embedded instantiation. This package provides the core jetty server
5850artifact.")))
e36e2bee
JL
5851
5852(define-public java-eclipse-jetty-server-9.2
5853 (package
5854 (inherit java-eclipse-jetty-server)
5855 (version (package-version java-eclipse-jetty-util-9.2))
5856 (source (package-source java-eclipse-jetty-util-9.2))
5857 (inputs
5858 `(("util" ,java-eclipse-jetty-util-9.2)
5859 ("jmx" ,java-eclipse-jetty-jmx-9.2)
5860 ("io" ,java-eclipse-jetty-io-9.2)
5861 ("http" ,java-eclipse-jetty-http-9.2)
5862 ,@(package-inputs java-eclipse-jetty-util-9.2)))
5863 (native-inputs
5864 `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
5865 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
8528e20d
JL
5866
5867(define-public java-eclipse-jetty-security
5868 (package
5869 (inherit java-eclipse-jetty-util)
5870 (name "java-eclipse-jetty-security")
5871 (arguments
5872 `(#:jar-name "eclipse-jetty-security.jar"
5873 #:source-dir "src/main/java"
5874 #:jdk ,icedtea-8
4c9aa15e 5875 #:test-exclude (list "**/ConstraintTest.*") ; This test fails
8528e20d
JL
5876 #:phases
5877 (modify-phases %standard-phases
5878 (add-before 'configure 'chdir
5879 (lambda _
5880 (chdir "jetty-security")
5881 #t)))))
5882 (inputs
5883 `(("slf4j" ,java-slf4j-api)
5884 ("servlet" ,java-tomcat)
5885 ("http" ,java-eclipse-jetty-http)
5886 ("server" ,java-eclipse-jetty-server)
5887 ("util" ,java-eclipse-jetty-util)))
5888 (native-inputs
5889 `(("io" ,java-eclipse-jetty-io)
5890 ,@(package-native-inputs java-eclipse-jetty-util)))
5891 (synopsis "Jetty security infrastructure")
5892 (description "The Jetty Web Server provides an HTTP server and Servlet
5893container capable of serving static and dynamic content either from a standalone
5894or embedded instantiation. This package provides the core jetty security
5895infrastructure")))
fa2a23a1
JL
5896
5897(define-public java-eclipse-jetty-security-9.2
5898 (package
5899 (inherit java-eclipse-jetty-security)
5900 (version (package-version java-eclipse-jetty-util-9.2))
5901 (source (package-source java-eclipse-jetty-util-9.2))
5902 (inputs
5903 `(("util" ,java-eclipse-jetty-util-9.2)
5904 ("http" ,java-eclipse-jetty-http-9.2)
5905 ("server" ,java-eclipse-jetty-server-9.2)
5906 ,@(package-inputs java-eclipse-jetty-util-9.2)))
5907 (native-inputs
5908 `(("io" ,java-eclipse-jetty-io-9.2)
5909 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
fb680f88
JL
5910
5911(define-public java-eclipse-jetty-servlet
5912 (package
5913 (inherit java-eclipse-jetty-util)
5914 (name "java-eclipse-jetty-servlet")
5915 (arguments
5916 `(#:jar-name "eclipse-jetty-servlet.jar"
5917 #:source-dir "src/main/java"
5918 #:jdk ,icedtea-8
5919 #:phases
5920 (modify-phases %standard-phases
5921 (add-before 'configure 'chdir
5922 (lambda _
5923 (chdir "jetty-servlet")
5924 #t)))))
5925 (inputs
5926 `(("slf4j" ,java-slf4j-api)
5927 ("servlet" ,java-tomcat)
5928 ("http" ,java-eclipse-jetty-http)
5929 ("http-test" ,java-eclipse-jetty-http-test-classes)
5930 ("io" ,java-eclipse-jetty-io)
5931 ("jmx" ,java-eclipse-jetty-jmx)
5932 ("security" ,java-eclipse-jetty-security)
5933 ("server" ,java-eclipse-jetty-server)
5934 ("util" ,java-eclipse-jetty-util)))
5935 (synopsis "Jetty Servlet Container")
5936 (description "The Jetty Web Server provides an HTTP server and Servlet
5937container capable of serving static and dynamic content either from a standalone
5938or embedded instantiation. This package provides the core jetty servlet
5939container.")))
213bb981
JL
5940
5941(define-public java-eclipse-jetty-servlet-9.2
5942 (package
5943 (inherit java-eclipse-jetty-servlet)
5944 (version (package-version java-eclipse-jetty-util-9.2))
5945 (source (package-source java-eclipse-jetty-util-9.2))
5946 (arguments
5947 `(#:jar-name "eclipse-jetty-servlet.jar"
5948 #:source-dir "src/main/java"
5949 #:jdk ,icedtea-8
5950 #:tests? #f; doesn't work
5951 #:phases
5952 (modify-phases %standard-phases
5953 (add-before 'configure 'chdir
5954 (lambda _
5955 (chdir "jetty-servlet")
5956 #t)))))
5957 (inputs
5958 `(("util" ,java-eclipse-jetty-util-9.2)
5959 ("jmx" ,java-eclipse-jetty-jmx-9.2)
5960 ("io" ,java-eclipse-jetty-io-9.2)
5961 ("http" ,java-eclipse-jetty-http-9.2)
5962 ("security" ,java-eclipse-jetty-security-9.2)
5963 ("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
5964 ("server" ,java-eclipse-jetty-server-9.2)
5965 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
0a9bdd95 5966
f69a1d04
JL
5967(define-public java-eclipse-jetty-xml
5968 (package
5969 (inherit java-eclipse-jetty-util)
5970 (name "java-eclipse-jetty-xml")
5971 (arguments
5972 `(#:jar-name "eclipse-jetty-xml.jar"
5973 #:source-dir "src/main/java"
5974 #:jdk ,icedtea-8
5975 #:tests? #f; most tests require network
5976 #:phases
5977 (modify-phases %standard-phases
5978 (add-before 'configure 'chdir
5979 (lambda _
5980 (chdir "jetty-xml")
5981 #t)))))
5982 (inputs
5983 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
5984 (native-inputs
5985 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
5986 ,@(package-native-inputs java-eclipse-jetty-util)))))
5987
38b57575
JL
5988(define-public java-eclipse-jetty-xml-9.2
5989 (package
5990 (inherit java-eclipse-jetty-xml)
5991 (version (package-version java-eclipse-jetty-util-9.2))
5992 (source (package-source java-eclipse-jetty-util-9.2))
5993 (arguments
5994 `(#:jar-name "eclipse-jetty-xml.jar"
5995 #:source-dir "src/main/java"
5996 #:jdk ,icedtea-8
5997 #:tests? #f; most tests require network
5998 #:phases
5999 (modify-phases %standard-phases
6000 (add-before 'configure 'chdir
6001 (lambda _
6002 (chdir "jetty-xml")
6003 #t)))))
6004 (inputs
6005 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6006 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6007 (native-inputs
6008 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6009 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6010
d7365118
JL
6011(define-public java-eclipse-jetty-webapp
6012 (package
6013 (inherit java-eclipse-jetty-util)
6014 (name "java-eclipse-jetty-webapp")
6015 (arguments
6016 `(#:jar-name "eclipse-jetty-webapp.jar"
6017 #:source-dir "src/main/java"
6018 #:jdk ,icedtea-8
6019 ;; One test fails
6020 #:test-exclude (list "**/WebAppContextTest.java")
6021 #:phases
6022 (modify-phases %standard-phases
6023 (add-before 'configure 'chdir
6024 (lambda _
6025 (chdir "jetty-webapp")
6026 #t)))))
6027 (inputs
6028 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
6029 ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
6030 ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
6031 ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
6032 ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
6033 ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
4b472f6a 6034 ("java-javaee-servletapi" ,java-javaee-servletapi)))
d7365118
JL
6035 (native-inputs
6036 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
6037 ,@(package-native-inputs java-eclipse-jetty-util)))))
6038
087583a7
JL
6039(define-public java-eclipse-jetty-webapp-9.2
6040 (package
6041 (inherit java-eclipse-jetty-webapp)
6042 (version (package-version java-eclipse-jetty-util-9.2))
6043 (source (package-source java-eclipse-jetty-util-9.2))
6044 (arguments
6045 `(#:jar-name "eclipse-jetty-webapp.jar"
6046 #:source-dir "src/main/java"
6047 #:jdk ,icedtea-8
6048 #:test-exclude (list "**/WebAppContextTest.java")
6049 #:phases
6050 (modify-phases %standard-phases
6051 (add-before 'configure 'chdir
6052 (lambda _
6053 (chdir "jetty-webapp")
6054 #t)))))
6055 (inputs
6056 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6057 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
6058 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6059 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
6060 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6061 ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
6062 ("java-tomcat" ,java-tomcat)
6063 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6064 (native-inputs
6065 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6066 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6067
c2b3857e
JL
6068(define-public java-jsoup
6069 (package
6070 (name "java-jsoup")
6071 (version "1.10.3")
6072 (source (origin
6073 (method url-fetch)
6074 (uri (string-append "https://github.com/jhy/jsoup/archive/jsoup-"
6075 version ".tar.gz"))
6076 (sha256
6077 (base32
6078 "0xbzw7rjv7s4nz1xk9b2cnin6zkpaldmc3svk71waa7hhjgp0a20"))))
6079 (build-system ant-build-system)
6080 (arguments
6081 `(#:jar-name "jsoup.jar"
6082 #:source-dir "src/main/java"
6083 #:phases
6084 (modify-phases %standard-phases
6085 (add-before 'build 'copy-resources
6086 (lambda _
6087 (let ((classes-dir (string-append (getcwd) "/build/classes")))
6088 (with-directory-excursion "src/main/java"
6089 (for-each (lambda (file)
6090 (let ((dist (string-append classes-dir "/" file)))
6091 (mkdir-p (dirname dist))
6092 (copy-file file dist)))
6093 (find-files "." ".*.properties"))))
6094 #t)))))
6095 (native-inputs
6096 `(("java-junit" ,java-junit)
6097 ("java-hamcrest-core" ,java-hamcrest-core)
6098 ("java-gson" ,java-gson)))
6099 (home-page "https://jsoup.org")
6100 (synopsis "HTML parser")
6101 (description "Jsoup is a Java library for working with real-world HTML. It
6102provides a very convenient API for extracting and manipulating data, using the
6103best of DOM, CSS, and jQuery-like methods.")
6104 (license l:expat)))
6105
0a9bdd95
P
6106(define-public tidyp
6107 (package
6108 (name "tidyp")
6109 (version "1.04")
6110 (source
6111 (origin
6112 (method url-fetch)
6113 (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
6114 version ".tar.gz"))
6115 (sha256
6116 (base32
6117 "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
6118 (build-system gnu-build-system)
6119 ;; ./test-thing.sh tries to run ./testall.sh, which is not included.
6120 (arguments `(#:tests? #f))
6121 (home-page "http://www.tidyp.com/")
6122 (synopsis "Validate HTML")
6123 (description "Tidyp is a program that can validate your HTML, as well as
6124modify it to be more clean and standard. tidyp does not validate HTML 5.
6125
6126libtidyp is the library on which the program is based. It can be used by any
6127other program that can interface to it. The Perl module @code{HTML::Tidy} is
6128based on this library, allowing Perl programmers to easily validate HTML.")
6129 ;; See htmldoc/license.html
6130 (license l:bsd-3)))
7a04dddd
P
6131
6132(define-public perl-html-tidy
6133 (package
6134 (name "perl-html-tidy")
6135 (version "1.60")
6136 (source
6137 (origin
6138 (method url-fetch)
6139 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
6140 version ".tar.gz"))
6141 (sha256
6142 (base32
6143 "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
6144 (build-system perl-build-system)
6145 (arguments
6146 '(#:phases
6147 (modify-phases %standard-phases
6148 (add-after 'unpack 'fix-tidyp-paths
6149 (lambda* (#:key inputs #:allow-other-keys)
6150 (substitute* "Makefile.PL"
6151 (("^my \\$inc = \"" line)
6152 (string-append line
6153 "-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
6154 (("-L/usr/lib")
6155 (string-append
6156 "-L" (assoc-ref inputs "tidyp") "/lib")))
6157 #t)))))
6158 (inputs
6159 `(("perl-libwww" ,perl-libwww)
6160 ("tidyp" ,tidyp)))
6161 (native-inputs
6162 `(("perl-test-exception" ,perl-test-exception)))
9aba9b12 6163 (home-page "https://metacpan.org/release/HTML-Tidy")
7a04dddd
P
6164 (synopsis "(X)HTML validation in a Perl object")
6165 (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
6166object. It's meant as a replacement for @code{HTML::Lint}, which is written
6167in Perl but is not nearly as capable as @code{HTML::Tidy}.")
6168 (license l:artistic2.0)))
6101cad4 6169
6170(define-public geomyidae
6171 (package
6172 (name "geomyidae")
295fbbd7 6173 (version "0.31")
6101cad4 6174 (source
6175 (origin
6176 (method url-fetch)
6177 (uri (string-append "http://git.r-36.net/geomyidae/snapshot/"
6178 "geomyidae-" version ".tar.bz2"))
6179 (sha256
6180 (base32
295fbbd7 6181 "1ih7220c6mgq4r7blm4kx3pxbl53sph58lqgwci6cmi3c0sq5c3x"))))
6101cad4 6182 (build-system gnu-build-system)
6183 (arguments
6184 `(#:make-flags (list "CC=gcc"
6185 (string-append "PREFIX="
6186 (assoc-ref %outputs "out")))
6187 #:tests? #f ;no tests
6188 #:phases (modify-phases %standard-phases
6189 (delete 'configure))))
6190 (home-page "http://git.r-36.net/geomyidae")
6191 (synopsis "Small Gopher server")
6192 (description
6193 "Geomyidae is a server for distributed hypertext protocol Gopher. Its
6194features include:
6195
6196@enumerate
6197@item Gopher menus (see @file{index.gph} for an example);
6198@item directory listings (if no @file{index.gph} was found);
6199@item CGI support (@file{.cgi} files are executed);
6200@item search support in CGI files;
6201@item logging with multiple log levels.
6202@end enumerate\n")
6203 (license l:expat)))
3bedac50
JL
6204
6205(define-public cat-avatar-generator
6206 (package
6207 (name "cat-avatar-generator")
6208 (version "1")
6209 (source (origin
6210 (method git-fetch)
6211 (uri (git-reference
6212 (url "https://framagit.org/Deevad/cat-avatar-generator.git")
6213 (commit "71c0c662742cafe8afd2d2d50ec84243113e35ad")))
6214 (file-name (string-append name "-" version))
6215 (sha256
6216 (base32
6217 "0s7b5whqsmfa57prbgl66ym551kg6ly0z14h5dgrlx4lqm70y2yw"))))
6218 (build-system trivial-build-system)
6219 (arguments
6220 `(#:modules ((guix build utils)
6221 (srfi srfi-1)
6222 (srfi srfi-26))
6223 #:builder
6224 (begin
6225 (use-modules (guix build utils)
6226 (srfi srfi-1)
6227 (srfi srfi-26))
6228 (let ((source (assoc-ref %build-inputs "source"))
6229 (php-dir (string-append %output "/share/web/" ,name "/")))
6230 ;; The cache directory must not be in the store, but in a writable
6231 ;; location. The webserver will give us this location.
6232 (copy-recursively source php-dir)
6233 (substitute* (string-append php-dir "/cat-avatar-generator.php")
6234 (("\\$cachepath = .*")
6235 "if(isset($_SERVER['CACHE_DIR']))
6236$cachepath = $_SERVER['CACHE_DIR'];
6237else
e3cfef22
MW
6238die('You need to set the CACHE_DIR variable first.');"))
6239 #t))))
3bedac50
JL
6240 (home-page "https://framagit.org/Deevad/cat-avatar-generator")
6241 (synopsis "Random avatar generator")
6242 (description "Cat avatar generator is a generator of cat pictures optimised
6243to generate random avatars, or defined avatar from a \"seed\". This is a
6244derivation by David Revoy from the original MonsterID by Andreas Gohr.")
6245 ;; expat for the code, CC-BY 4.0 for the artwork
6246 (license (list l:expat
6247 l:cc-by4.0))))
0ae079ec
TGR
6248
6249(define-public nghttp2
6250 (package
6251 (name "nghttp2")
314dcec1 6252 (version "1.32.0")
0ae079ec
TGR
6253 (source
6254 (origin
6255 (method url-fetch)
6256 (uri (string-append "https://github.com/nghttp2/nghttp2/"
6257 "releases/download/v" version "/"
6258 name "-" version ".tar.xz"))
6259 (sha256
6260 (base32
314dcec1 6261 "0zbgp8f80h2zlfn8cd2ldrmgl81jzcdh1141n71aqmfckzaqj2kh"))))
0ae079ec
TGR
6262 (build-system gnu-build-system)
6263 (outputs (list "out"
6264 "lib")) ; only libnghttp2
6265 (native-inputs
6266 `(("pkg-config" ,pkg-config)
6267
6268 ;; Required by tests.
6269 ("cunit" ,cunit)
875fe4b6 6270 ("tzdata" ,tzdata-for-tests)))
0ae079ec
TGR
6271 (inputs
6272 ;; Required to build the tools (i.e. without ‘--enable-lib-only’).
6273 `(("c-ares" ,c-ares)
6274 ("jansson" ,jansson) ; for HPACK tools
6275 ("jemalloc" ,jemalloc) ; fight nghttpd{,x} heap fragmentation
6276 ("libev" ,libev)
6277 ("libxml2" ,libxml2) ; for ‘nghttp -a’
6278 ("openssl" ,openssl)))
6279 (arguments
6280 `(#:configure-flags
6281 (list (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
6282 "--enable-app" ; build all the tools
6283 "--enable-hpack-tools" ; ...all the tools
6284 "--disable-examples"
6285 "--disable-static") ; don't bother building .a files
6286 #:phases
6287 (modify-phases %standard-phases
6288 (add-after 'unpack 'break-circular-reference
6289 ;; libnghttp2.pc by default retains a reference to the ‘out’ output,
6290 ;; which is not allowed. Break this cycle. While we could install
6291 ;; only the library to ‘out’ and move everything else to a separate
6292 ;; output, this would inconvenience the majority of (human) users.
6293 (lambda* (#:key outputs #:allow-other-keys)
6294 (substitute* "lib/libnghttp2.pc.in"
6295 (("@prefix@")
6296 (assoc-ref outputs "lib")))
6297 #t))
6298 (add-before 'check 'set-timezone-directory
6299 (lambda* (#:key inputs #:allow-other-keys)
6300 (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
6301 "/share/zoneinfo"))
6302 #t)))))
6303 (home-page "https://nghttp2.org/")
6304 (synopsis "HTTP/2 protocol client, proxy, server, and library")
6305 (description
6306 "nghttp2 implements the Hypertext Transfer Protocol, version
63072 (@dfn{HTTP/2}).
6308
6309A reusable C library provides the HTTP/2 framing layer, with several tools built
6310on top of it:
6311
6312@itemize
6313@item @command{nghttp}, a command-line HTTP/2 client. It exposes many advanced
6314and low-level aspects of the protocol and is useful for debugging.
6315@item @command{nghttpd}, a fast, multi-threaded HTTP/2 static web server that
6316serves files from a local directory.
6317@item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be
6318deployed in front of existing web servers that don't support HTTP/2.
6319Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for
6320backwards compatibilty with clients that don't speak HTTP/2.
6321@item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.
6322@item HTTP/2 uses a header compression method called @dfn{HPACK}.
6323nghttp2 provides a HPACK encoder and decoder as part of its public API.
6324@item @command{deflatehd} converts JSON data or HTTP/1-style header fields to
6325compressed JSON header blocks.
6326@item @command{inflatehd} converts such compressed headers back to JSON pairs.
6327@end itemize\n")
6328 (license l:expat)))
d6a4dfec
PAR
6329
6330(define-public hpcguix-web
94b3b604
LC
6331 (let ((commit "53e09ea59ec0380b41a4cbda32df8bdb9a10004d")
6332 (revision "3"))
d6a4dfec
PAR
6333 (package
6334 (name "hpcguix-web")
b3ca2d88 6335 (version (git-version "0.0.1" revision commit))
d6a4dfec
PAR
6336 (source (origin
6337 (method git-fetch)
6338 (uri (git-reference
6339 (url "https://github.com/UMCUGenetics/hpcguix-web.git")
6340 (commit commit)))
6341 (file-name (git-file-name name version))
6342 (sha256
6343 (base32
94b3b604 6344 "1ah4pn9697vazhbvd45n4b1rrkx2nbhnw384cr0b941q3sz1dfyc"))))
d6a4dfec
PAR
6345 (build-system gnu-build-system)
6346 (arguments
6347 `(#:modules ((guix build gnu-build-system)
6348 (guix build utils)
6349 (srfi srfi-26)
6350 (ice-9 popen)
6351 (ice-9 rdelim))
d6a4dfec
PAR
6352 #:phases
6353 (modify-phases %standard-phases
2fef54fd 6354 (add-before 'configure 'set-variables
d6a4dfec 6355 (lambda _
2fef54fd 6356 ;; This prevents a few warnings
d6a4dfec
PAR
6357 (setenv "GUILE_AUTO_COMPILE" "0")
6358 (setenv "XDG_CACHE_HOME" (getcwd))
2fef54fd 6359 #t))
d6a4dfec
PAR
6360 (add-after 'install 'wrap-program
6361 (lambda* (#:key inputs outputs #:allow-other-keys)
6362 (let* ((out (assoc-ref outputs "out"))
6363 (guix (assoc-ref inputs "guix"))
6364 (guile (assoc-ref inputs "guile"))
b3ca2d88
LC
6365 (gcrypt (assoc-ref inputs "guile-gcrypt"))
6366 (git (assoc-ref inputs "guile-git"))
6367 (bs (assoc-ref inputs "guile-bytestructures"))
d6a4dfec
PAR
6368 (json (assoc-ref inputs "guile-json"))
6369 (guile-cm (assoc-ref inputs
6370 "guile-commonmark"))
b3ca2d88 6371 (deps (list guile gcrypt git bs guile-cm guix json))
d6a4dfec
PAR
6372 (effective
6373 (read-line
6374 (open-pipe* OPEN_READ
6375 (string-append guile "/bin/guile")
6376 "-c" "(display (effective-version))")))
6377 (path (string-join
6378 (map (cut string-append <>
6379 "/share/guile/site/"
6380 effective)
6381 deps)
6382 ":"))
6383 (gopath (string-join
6384 (map (cut string-append <>
6385 "/lib/guile/" effective
6386 "/site-ccache")
6387 deps)
6388 ":")))
6389 (wrap-program (string-append out "/bin/run")
6390 `("GUILE_LOAD_PATH" ":" prefix (,path))
6391 `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
6392
6393 #t))))))
6394 (native-inputs
6395 `(("autoconf" ,autoconf)
6396 ("automake" ,automake)
6397 ("uglify-js" ,uglify-js)
6398 ("pkg-config" ,pkg-config)))
6399 (inputs
6400 `(("guix" ,guix)))
6401 (propagated-inputs
6402 `(("guile" ,guile-2.2)
6403 ("guile-commonmark" ,guile-commonmark)
6404 ("guile-json" ,guile-json)))
6405 (home-page "https://github.com/UMCUGenetics/hpcguix-web")
6406 (synopsis "Web interface for cluster deployments of Guix")
6407 (description "Hpcguix-web provides a web interface to the list of packages
6408provided by Guix. The list of packages is searchable and provides
6409instructions on how to use Guix in a shared HPC environment.")
6410 (license l:agpl3+))))