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