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