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