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