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