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