Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / web.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
4 ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
5 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
6 ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
7 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
8 ;;; Copyright © 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
9 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
10 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
11 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
12 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
13 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
14 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
15 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
16 ;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
17 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
18 ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
19 ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
20 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
21 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
22 ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
23 ;;;
24 ;;; This file is part of GNU Guix.
25 ;;;
26 ;;; GNU Guix is free software; you can redistribute it and/or modify it
27 ;;; under the terms of the GNU General Public License as published by
28 ;;; the Free Software Foundation; either version 3 of the License, or (at
29 ;;; your option) any later version.
30 ;;;
31 ;;; GNU Guix is distributed in the hope that it will be useful, but
32 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
33 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34 ;;; GNU General Public License for more details.
35 ;;;
36 ;;; You should have received a copy of the GNU General Public License
37 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
38
39 (define-module (gnu packages web)
40 #:use-module (ice-9 match)
41 #:use-module ((guix licenses) #:prefix l:)
42 #:use-module (guix packages)
43 #:use-module (guix download)
44 #:use-module (guix git-download)
45 #:use-module (guix cvs-download)
46 #:use-module (guix utils)
47 #:use-module (guix build-system gnu)
48 #:use-module (guix build-system glib-or-gtk)
49 #:use-module (guix build-system perl)
50 #:use-module (guix build-system cmake)
51 #:use-module (guix build-system r)
52 #:use-module (guix build-system trivial)
53 #:use-module (guix build-system python)
54 #:use-module (gnu packages)
55 #:use-module (gnu packages apr)
56 #:use-module (gnu packages check)
57 #:use-module (gnu packages documentation)
58 #:use-module (gnu packages docbook)
59 #:use-module (gnu packages autotools)
60 #:use-module (gnu packages compression)
61 #:use-module (gnu packages cyrus-sasl)
62 #:use-module (gnu packages databases)
63 #:use-module (gnu packages bison)
64 #:use-module (gnu packages flex)
65 #:use-module (gnu packages kerberos)
66 #:use-module (gnu packages gd)
67 #:use-module (gnu packages gettext)
68 #:use-module (gnu packages glib)
69 #:use-module (gnu packages gnome)
70 #:use-module (gnu packages gnu-doc)
71 #:use-module (gnu packages gnupg)
72 #:use-module (gnu packages gnuzilla)
73 #:use-module (gnu packages gperf)
74 #:use-module (gnu packages gtk)
75 #:use-module (gnu packages icu4c)
76 #:use-module (gnu packages image)
77 #:use-module (gnu packages libidn)
78 #:use-module (gnu packages lua)
79 #:use-module (gnu packages ncurses)
80 #:use-module (gnu packages base)
81 #:use-module (gnu packages perl)
82 #:use-module (gnu packages python)
83 #:use-module (gnu packages pcre)
84 #:use-module (gnu packages pkg-config)
85 #:use-module (gnu packages valgrind)
86 #:use-module (gnu packages xml)
87 #:use-module (gnu packages curl)
88 #:use-module (gnu packages perl)
89 #:use-module (gnu packages texinfo)
90 #:use-module (gnu packages textutils)
91 #:use-module (gnu packages tls)
92 #:use-module (gnu packages statistics))
93
94 (define-public httpd
95 (package
96 (name "httpd")
97 (version "2.4.26")
98 (source (origin
99 (method url-fetch)
100 (uri (string-append "mirror://apache/httpd/httpd-"
101 version ".tar.bz2"))
102 (sha256
103 (base32
104 "11ykcfv7b9zpd7fb93a7yhnyfwrilryjz21iklaf0yf8mwpvazm0"))))
105 (build-system gnu-build-system)
106 (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
107 (inputs `(("apr" ,apr)
108 ("apr-util" ,apr-util)
109 ("openssl" ,openssl)
110 ("perl" ,perl))) ; needed to run bin/apxs
111 (arguments
112 `(#:test-target "test"
113 #:configure-flags (list "--enable-rewrite"
114 "--enable-userdir"
115 "--enable-vhost-alias"
116 "--enable-ssl"
117 "--enable-mime-magic"
118 (string-append "--sysconfdir="
119 (assoc-ref %outputs "out")
120 "/etc/httpd"))))
121 (synopsis "Featureful HTTP server")
122 (description
123 "The Apache HTTP Server Project is a collaborative software development
124 effort aimed at creating a robust, commercial-grade, featureful, and
125 freely-available source code implementation of an HTTP (Web) server. The
126 project is jointly managed by a group of volunteers located around the world,
127 using the Internet and the Web to communicate, plan, and develop the server
128 and its related documentation.")
129 (license l:asl2.0)
130 (home-page "https://httpd.apache.org/")))
131
132 (define-public nginx
133 (package
134 (name "nginx")
135 (version "1.12.0")
136 (source (origin
137 (method url-fetch)
138 (uri (string-append "https://nginx.org/download/nginx-"
139 version ".tar.gz"))
140 (sha256
141 (base32
142 "0c2vg6530qplwk8rhldww5r3cwcbw1avka53qg9sh85nzlk2w8ml"))))
143 (build-system gnu-build-system)
144 (inputs `(("pcre" ,pcre)
145 ("openssl" ,openssl)
146 ("zlib" ,zlib)))
147 (arguments
148 `(#:tests? #f ; no test target
149 #:phases
150 (modify-phases %standard-phases
151 (add-before 'configure 'patch-/bin/sh
152 (lambda _
153 (substitute* "auto/feature"
154 (("/bin/sh") (which "sh")))
155 #t))
156 (replace 'configure
157 (lambda* (#:key outputs #:allow-other-keys)
158 (let ((flags
159 (list (string-append "--prefix=" (assoc-ref outputs "out"))
160 "--with-http_ssl_module"
161 "--with-pcre-jit"
162 "--with-debug"
163 ;; Even when not cross-building, we pass the
164 ;; --crossbuild option to avoid customizing for the
165 ;; kernel version on the build machine.
166 ,(let ((system "Linux") ; uname -s
167 (release "2.6.32") ; uname -r
168 ;; uname -m
169 (machine (match (or (%current-target-system)
170 (%current-system))
171 ("x86_64-linux" "x86_64")
172 ("i686-linux" "i686")
173 ("mips64el-linux" "mips64")
174 ;; Prevent errors when querying
175 ;; this package on unsupported
176 ;; platforms, e.g. when running
177 ;; "guix package --search="
178 (_ "UNSUPPORTED"))))
179 (string-append "--crossbuild="
180 system ":" release ":" machine)))))
181 (setenv "CC" "gcc")
182 (format #t "environment variable `CC' set to `gcc'~%")
183 (format #t "configure flags: ~s~%" flags)
184 (zero? (apply system* "./configure" flags)))))
185 (add-after 'install 'fix-root-dirs
186 (lambda* (#:key outputs #:allow-other-keys)
187 ;; 'make install' puts things in strange places, so we need to
188 ;; clean it up ourselves.
189 (let* ((out (assoc-ref outputs "out"))
190 (share (string-append out "/share/nginx")))
191 ;; This directory is empty, so get rid of it.
192 (rmdir (string-append out "/logs"))
193 ;; Example configuration and HTML files belong in
194 ;; /share.
195 (mkdir-p share)
196 (rename-file (string-append out "/conf")
197 (string-append share "/conf"))
198 (rename-file (string-append out "/html")
199 (string-append share "/html"))))))))
200 (home-page "https://nginx.org")
201 (synopsis "HTTP and reverse proxy server")
202 (description
203 "Nginx (\"engine X\") is a high-performance web and reverse proxy server
204 created by Igor Sysoev. It can be used both as a standalone web server
205 and as a proxy to reduce the load on back-end HTTP or mail servers.")
206 ;; Almost all of nginx is distributed under the bsd-2 license.
207 ;; The exceptions are:
208 ;; * The 'nginx-http-push' module is covered by the expat license.
209 ;; * The 'nginx-development-kit' module is mostly covered by bsd-3,
210 ;; except for two source files which are bsd-4 licensed.
211 (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4))))
212
213 (define-public fcgi
214 (package
215 (name "fcgi")
216 (version "2.4.0")
217 (source
218 (origin
219 (method url-fetch)
220 ;; Upstream has disappeared
221 (uri (string-append "https://sources.archlinux.org/other/packages/fcgi/"
222 "fcgi-" version ".tar.gz"))
223 (sha256
224 (base32
225 "1f857wnl1d6jfrgfgfpz3zdaj8fch3vr13mnpcpvy8bang34bz36"))
226 (patches (search-patches "fcgi-2.4.0-poll.patch"
227 "fcgi-2.4.0-gcc44-fixes.patch"))))
228 (build-system gnu-build-system)
229 ;; Parallel building is not supported.
230 (arguments `(#:parallel-build? #f))
231 (home-page "http://www.fastcgi.com")
232 (synopsis "Language-independent, high-performant extension to CGI")
233 (description "FastCGI is a language independent, scalable extension to CGI
234 that provides high performance without the limitations of server specific
235 APIs.")
236 ;; This package is released under the Open Market License, a variant of
237 ;; the Expat license, incompatible with the GPL.
238 (license (l:non-copyleft "file://LICENSE.TERMS"))))
239
240 (define-public fcgiwrap
241 (package
242 (name "fcgiwrap")
243 (version "1.1.0")
244 (source
245 (origin
246 (method url-fetch)
247 (uri (string-append "https://github.com/gnosek/fcgiwrap/"
248 "archive/" version ".tar.gz"))
249 (file-name (string-append name "-" version ".tar.gz"))
250 (sha256
251 (base32
252 "07y6s4mm86cv7p1ljz94sxnqa89y9amn3vzwsnbq5hrl4vdy0zac"))))
253 (build-system gnu-build-system)
254 (arguments
255 `(#:tests? #f ; no tests included
256 #:make-flags (list "CC=gcc")
257 #:phases
258 (modify-phases %standard-phases
259 (add-after 'unpack 'bootstrap
260 (lambda _
261 (zero? (system* "autoreconf" "-vif")))))))
262 (native-inputs
263 `(("autoconf" ,autoconf)
264 ("automake" ,automake)
265 ("pkg-config" ,pkg-config)))
266 (inputs
267 `(("fcgi" ,fcgi)))
268 (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
269 (synopsis "Simple server for running CGI applications over FastCGI")
270 (description "Fcgiwrap is a simple server for running CGI applications
271 over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
272 servers that may need it).")
273 (license l:expat)))
274
275 (define-public starman
276 (package
277 (name "starman")
278 (version "0.4014")
279 (source
280 (origin
281 (method url-fetch)
282 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
283 "Starman-" version ".tar.gz"))
284 (sha256
285 (base32
286 "1sbb5rb3vs82rlh1fjkgkcmj5pj62b4y9si4ihh45sl9m8c2qxx5"))))
287 (build-system perl-build-system)
288 (native-inputs
289 `(("perl-libwww" ,perl-libwww)
290 ("perl-module-build-tiny" ,perl-module-build-tiny)
291 ("perl-test-requires" ,perl-test-requires)))
292 (propagated-inputs
293 `(("perl-data-dump" ,perl-data-dump)
294 ("perl-http-date" ,perl-http-date)
295 ("perl-http-message" ,perl-http-message)
296 ("perl-http-parser-xs" ,perl-http-parser-xs)
297 ("perl-net-server" ,perl-net-server)
298 ("perl-plack" ,perl-plack)
299 ("perl-test-tcp" ,perl-test-tcp)))
300 (home-page "http://search.cpan.org/dist/Starman")
301 (synopsis "PSGI/Plack web server")
302 (description "Starman is a PSGI perl web server that has unique features
303 such as high performance, preforking, signal support, superdaemon awareness,
304 and UNIX socket support.")
305 (license l:perl-license)))
306
307 (define-public jansson
308 (package
309 (name "jansson")
310 (version "2.9")
311 (source (origin
312 (method url-fetch)
313 (uri
314 (string-append "http://www.digip.org/jansson/releases/jansson-"
315 version ".tar.gz"))
316 (sha256
317 (base32
318 "19fjgfwjfj99rqa3kf96x5rssj88siazggksgrikd6h4r9sd1l0a"))))
319 (build-system gnu-build-system)
320 (home-page "http://www.digip.org/jansson/")
321 (synopsis "JSON C library")
322 (description
323 "Jansson is a C library for encoding, decoding and manipulating JSON
324 data.")
325 (license l:expat)))
326
327 (define-public json-c
328 (package
329 (name "json-c")
330 (version "0.12.1")
331 (source (origin
332 (method url-fetch)
333 (uri (string-append
334 "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
335 version ".tar.gz"))
336 (sha256
337 (base32
338 "08qibrq29a5v7g23wi5icy6l4fbfw90h9ccps6vq0bcklx8n84ra"))
339 (modules '((guix build utils)))
340 (snippet
341 '(begin
342 ;; Somehow 'config.h.in' is older than
343 ;; 'aclocal.m4', which would trigger a rule to
344 ;; run 'autoheader'.
345 (set-file-time "config.h.in"
346 (stat "aclocal.m4"))
347
348 ;; Don't try to build with -Werror.
349 (substitute* (find-files "." "Makefile\\.in")
350 (("-Werror") ""))))))
351 (build-system gnu-build-system)
352 (arguments '(#:parallel-build? #f
353 #:parallel-tests? #f))
354 (home-page "https://github.com/json-c/json-c/wiki")
355 (synopsis "JSON implementation in C")
356 (description
357 "JSON-C implements a reference counting object model that allows you to
358 easily construct JSON objects in C, output them as JSON formatted strings and
359 parse JSON formatted strings back into the C representation of JSON objects.")
360 (license l:x11)))
361
362 (define-public krona-tools
363 (package
364 (name "krona-tools")
365 (version "2.7")
366 (source (origin
367 (method url-fetch)
368 (uri (string-append
369 "https://github.com/marbl/Krona/releases/download/v"
370 version "/KronaTools-" version ".tar"))
371 (sha256
372 (base32
373 "0wvgllcqscsfb4xc09y3fqhx8i38pmr4w55vjs5y79wx56n710iq"))))
374 (build-system perl-build-system)
375 (arguments
376 `(#:phases
377 (modify-phases %standard-phases
378 ;; There is no configure or build steps.
379 (delete 'configure)
380 (delete 'build)
381 ;; Install script "install.pl" expects the build directory to remain
382 ;; after installation, creating symlinks etc., so re-implement it
383 ;; here.
384 (replace 'install
385 (lambda* (#:key outputs #:allow-other-keys)
386 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
387 (perl (string-append (assoc-ref outputs "out")
388 "/lib/perl5/site_perl/krona-tools/lib")))
389 (mkdir-p bin)
390 (for-each
391 (lambda (script)
392 (let* ((executable (string-append "scripts/" script ".pl")))
393 ;; Prefix executables with 'kt' as install script does.
394 (copy-file executable (string-append bin "/kt" script))))
395 '("ClassifyBLAST"
396 "GetContigMagnitudes"
397 "GetLCA"
398 "GetTaxIDFromAcc"
399 "GetTaxInfo"
400 "ImportBLAST"
401 "ImportDiskUsage"
402 "ImportEC"
403 "ImportFCP"
404 "ImportGalaxy"
405 "ImportKrona"
406 "ImportMETAREP-BLAST"
407 "ImportMETAREP-EC"
408 "ImportMGRAST"
409 "ImportPhymmBL"
410 "ImportRDP"
411 "ImportRDPComparison"
412 "ImportTaxonomy"
413 "ImportText"
414 "ImportXML"))
415 (for-each
416 (lambda (directory)
417 (copy-recursively directory
418 (string-append perl "/../" directory)))
419 (list "data" "img" "taxonomy" "src"))
420 (install-file "lib/KronaTools.pm" perl))))
421 (add-after 'install 'wrap-program
422 (lambda* (#:key inputs outputs #:allow-other-keys)
423 (let* ((out (assoc-ref outputs "out"))
424 (path (getenv "PERL5LIB")))
425 (for-each
426 (lambda (executable)
427 (wrap-program executable
428 `("PERL5LIB" ":" prefix
429 (,(string-append out "/lib/perl5/site_perl/krona-tools/lib")))))
430 (find-files (string-append out "/bin/") ".*")))))
431 (delete 'check)
432 (add-after 'wrap-program 'check
433 (lambda* (#:key inputs outputs #:allow-other-keys)
434 (with-directory-excursion "data"
435 (zero? (system* (string-append (assoc-ref outputs "out") "/bin/ktImportText")
436 "ec.tsv"))))))))
437 (inputs
438 `(("perl" ,perl)))
439 (home-page "https://github.com/marbl/Krona/wiki")
440 (synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
441 (description
442 "Krona is a flexible tool for exploring the relative proportions of
443 hierarchical data, such as metagenomic classifications, using a radial,
444 space-filling display. It is implemented using HTML5 and JavaScript, allowing
445 charts to be explored locally or served over the Internet, requiring only a
446 current version of any major web browser.")
447 (license l:bsd-3)))
448
449 (define-public rapidjson
450 (package
451 (name "rapidjson")
452 (version "1.0.2")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append
456 "https://github.com/miloyip/rapidjson/archive/v"
457 version ".tar.gz"))
458 (file-name (string-append name "-" version ".tar.gz"))
459 (sha256
460 (base32
461 "0rl6s0vg5y1dhh9vfl1lqay3sxf69sxjh0czxrjmasn7ng91wwf3"))
462 (modules '((guix build utils)))
463 (snippet
464 ;; Building with GCC 4.8 with -Werror was fine, but 4.9.3
465 ;; complains in new ways, so turn of -Werror.
466 '(substitute* (find-files "." "^CMakeLists\\.txt$")
467 (("-Werror") "")))))
468 (build-system cmake-build-system)
469 (arguments
470 `(,@(if (string-prefix? "aarch64" (or (%current-target-system)
471 (%current-system)))
472 '(#:phases
473 (modify-phases %standard-phases
474 (add-after 'unpack 'patch-aarch-march-detection
475 (lambda _
476 (substitute* (find-files "." "^CMakeLists\\.txt$")
477 (("native") "armv8-a"))
478 #t))))
479 '())))
480 (home-page "https://github.com/miloyip/rapidjson")
481 (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
482 (description
483 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM
484 style API.")
485 (license l:expat)))
486
487 (define-public libyajl
488 (package
489 (name "libyajl")
490 (version "2.1.0")
491 (source (origin
492 (method url-fetch)
493 (uri (string-append "https://github.com/lloyd/yajl/"
494 "archive/" version ".tar.gz"))
495 (file-name (string-append name "-" version ".tar.gz"))
496 (sha256
497 (base32
498 "0nmcqpaiq4pv7dymyg3n3jsd57yhp5npxl26a1hzw3m3lmj37drz"))))
499 (build-system cmake-build-system)
500 (home-page "https://lloyd.github.io/yajl/")
501 (synopsis "C library for parsing JSON")
502 (description
503 "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON
504 parser written in ANSI C and a small validating JSON generator.")
505 (license l:isc)))
506
507 (define-public libwebsockets
508 (package
509 (name "libwebsockets")
510 (version "1.3")
511 (source (origin
512 ;; The project does not publish tarballs, so we have to take
513 ;; things from Git.
514 (method git-fetch)
515 (uri (git-reference
516 (url "git://git.libwebsockets.org/libwebsockets")
517 (commit (string-append "v" version
518 "-chrome37-firefox30"))))
519 (sha256
520 (base32
521 "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
522 (file-name (string-append name "-" version))))
523
524 (build-system cmake-build-system)
525 (arguments
526 ;; XXX: The thing lacks a 'make test' target, because CMakeLists.txt
527 ;; doesn't use 'add_test', and it's unclear how to run the test suite.
528 '(#:tests? #f))
529
530 (native-inputs `(("perl" ,perl))) ; to build the HTML doc
531 (inputs `(("zlib" ,zlib)
532 ("openssl" ,openssl)))
533 (synopsis "WebSockets library written in C")
534 (description
535 "Libwebsockets is a library that allows C programs to establish client
536 and server WebSockets connections---a protocol layered above HTTP that allows
537 for efficient socket-like bidirectional reliable communication channels.")
538 (home-page "http://libwebsockets.org/")
539
540 ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
541 (license l:lgpl2.1)))
542
543 (define-public libpsl
544 (package
545 (name "libpsl")
546 (version "0.17.0")
547 (source (origin
548 (method url-fetch)
549 (uri (string-append "https://github.com/rockdaboot/libpsl/"
550 "releases/download/libpsl-" version
551 "/libpsl-" version ".tar.gz"))
552 (sha256
553 (base32
554 "0jyxwc6bcvkcahkwcq237a0x209cysb63n5lak5m7zbglbb2jmq2"))))
555 (build-system gnu-build-system)
556 (inputs
557 `(("icu4c" ,icu4c)
558 ("python-2" ,python-2)))
559 (home-page "https://github.com/rockdaboot/libpsl")
560 (synopsis "C library for the Publix Suffix List")
561 (description
562 "A \"public suffix\" is a domain name under which Internet users can
563 directly register own names.
564
565 Browsers and other web clients can use it to avoid privacy-leaking
566 \"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain
567 highlighting parts of the domain in a user interface, and sorting domain lists
568 by site.
569
570 Libpsl has built-in PSL data for fast access, allows to load PSL data from
571 files, checks if a given domain is a public suffix, provides immediate cookie
572 domain verification, finds the longest public part of a given domain, finds
573 the shortest private part of a given domain, works with international
574 domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
575 UTS#46.")
576 (license l:x11)))
577
578 (define-public tidy
579 (package
580 (name "tidy")
581 (version "20091223")
582 (source (origin
583 (method cvs-fetch)
584 (uri (cvs-reference
585 (root-directory
586 ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
587 (module "tidy")
588 (revision "2009-12-23")))
589 (sha256
590 (base32
591 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))
592 (patches (search-patches "tidy-CVE-2015-5522+5523.patch"))))
593 (build-system gnu-build-system)
594 (arguments
595 '(#:phases (modify-phases %standard-phases
596 (add-after 'unpack 'bootstrap
597 (lambda* (#:key inputs #:allow-other-keys)
598 ;; configure.in and Makefile.am aren't in the root of the
599 ;; source tree.
600 (copy-recursively "build/gnuauto" ".")
601 (setenv "AUTOMAKE" "automake --foreign")
602 (zero? (system* "autoreconf" "-vfi")))))))
603 (native-inputs
604 `(("automake" ,automake)
605 ("autoconf" ,autoconf)
606 ("libtool" ,libtool)))
607 (synopsis "HTML validator and tidier")
608 (description "HTML Tidy is a command-line tool and C library that can be
609 used to validate and fix HTML data.")
610 (home-page "http://tidy.sourceforge.net/")
611 (license (l:x11-style "file:///include/tidy.h"))))
612
613 (define-public tinyproxy
614 (package
615 (name "tinyproxy")
616 (version "1.8.4")
617 (source (origin
618 (method url-fetch)
619 (uri (string-append "https://github.com/tinyproxy/tinyproxy/"
620 "releases/download/" version "/tinyproxy-"
621 version ".tar.xz"))
622 (sha256
623 (base32
624 "002hi97687czhfkwsjkr174yvlp10224qi6gd5s53z230bgls7x4"))))
625 (build-system gnu-build-system)
626 (arguments
627 `(#:configure-flags
628 (list
629 ;; For the log file, etc.
630 "--localstatedir=/var")
631 #:phases
632 (alist-cons-before
633 'build 'pre-build
634 (lambda* (#:key inputs #:allow-other-keys #:rest args)
635 ;; Uncommenting the next two lines may assist in debugging
636 ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
637 ;; (setenv "XML_DEBUG_CATALOG" "1")
638 #t)
639 %standard-phases)))
640 ;; All of the below are used to generate the documentation
641 ;; (Should they be propagated inputs of asciidoc ??)
642 (native-inputs `(("asciidoc" ,asciidoc)))
643 (home-page "https://tinyproxy.github.io/")
644 (synopsis "Light-weight HTTP/HTTPS proxy daemon")
645 (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
646 daemon. Designed from the ground up to be fast and yet small, it is an ideal
647 solution for use cases such as embedded deployments where a full featured HTTP
648 proxy is required, but the system resources for a larger proxy are
649 unavailable.")
650 (license l:gpl2+)))
651
652 (define-public polipo
653 (package
654 (name "polipo")
655 (version "1.1.1")
656 (source
657 (origin
658 (method url-fetch)
659 (uri (string-append
660 "http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/polipo-"
661 version ".tar.gz"))
662 (sha256
663 (base32
664 "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2"))))
665 (native-inputs `(("texinfo" ,texinfo)))
666 (build-system gnu-build-system)
667 (arguments
668 `(#:phases (modify-phases %standard-phases
669 (delete 'configure))
670 #:make-flags (let ((out (assoc-ref %outputs "out")))
671 (list (string-append "PREFIX=" out)
672 (string-append "LOCAL_ROOT="
673 out "/share/polipo/www")
674 "CC=gcc"))
675 ;; No 'check' target.
676 #:tests? #f))
677 (home-page "http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/")
678 (synopsis "Small caching web proxy")
679 (description
680 "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy
681 server). It was primarily designed to be used by one person or a small group
682 of people.")
683 (license l:expat)))
684
685 (define-public wwwoffle
686 (package
687 (name "wwwoffle")
688 (version "2.9j")
689 (source (origin
690 (method url-fetch)
691 (uri (string-append "https://www.gedanken.org.uk/software/"
692 "wwwoffle/download/wwwoffle-"
693 version ".tgz"))
694 (sha256
695 (base32
696 "1ihil1xq9dp21hf108khxbw6f3baq0w5c0j3af038y6lkmad4vdi"))))
697 (build-system gnu-build-system)
698 (arguments
699 `(#:configure-flags '("--with-gnutls")
700 #:tests? #f)) ; no test target
701 (native-inputs `(("flex" ,flex)))
702 (inputs `(("gnutls" ,gnutls)
703 ("libcrypt", libgcrypt)))
704 (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
705 (synopsis "Caching web proxy optimized for intermittent internet links")
706 (description "WWWOFFLE is a proxy web server that is especially good for
707 intermittent internet links. It can cache HTTP, HTTPS, FTP, and finger
708 protocols, and supports browsing and requesting pages while offline, indexing,
709 modifying pages and incoming and outgoing headers, monitoring pages for
710 changes, and much more.")
711 (license l:gpl2+)))
712
713 (define-public liboauth
714 (package
715 (name "liboauth")
716 (version "1.0.3")
717 (source (origin
718 (method url-fetch)
719 (uri (string-append "mirror://sourceforge/liboauth/liboauth-"
720 version ".tar.gz"))
721 (sha256
722 (base32
723 "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"))))
724 (build-system gnu-build-system)
725 (arguments '(#:configure-flags '("--enable-nss")))
726 (native-inputs `(("pkg-config" ,pkg-config)))
727 (propagated-inputs
728 `(("curl" ,curl)
729 ("nss" ,nss)))
730 (home-page "https://sourceforge.net/projects/liboauth")
731 (synopsis "C library implementing the OAuth API")
732 (description
733 "liboauth is a collection of C functions implementing the OAuth API.
734 liboauth provides functions to escape and encode strings according to OAuth
735 specifications and offers high-level functionality built on top to sign
736 requests or verify signatures using either NSS or OpenSSL for calculating the
737 hash/signatures.")
738 ;; Source code may be distributed under either license.
739 (license (list l:expat l:gpl2+))))
740
741 (define-public libyaml
742 (package
743 (name "libyaml")
744 (version "0.1.6")
745 (source
746 (origin
747 (method url-fetch)
748 (uri (string-append
749 "http://pyyaml.org/download/libyaml/yaml-"
750 version ".tar.gz"))
751 (patches (search-patches "libyaml-CVE-2014-9130.patch"))
752 (sha256
753 (base32
754 "0j9731s5zjb8mjx7wzf6vh7bsqi38ay564x6s9nri2nh9cdrg9kx"))))
755 (build-system gnu-build-system)
756 (home-page "http://pyyaml.org/wiki/LibYAML")
757 (synopsis "YAML 1.1 parser and emitter written in C")
758 (description
759 "LibYAML is a YAML 1.1 parser and emitter written in C.")
760 (license l:expat)))
761
762 (define-public libquvi-scripts
763 (package
764 (name "libquvi-scripts")
765 (version "0.4.21")
766 (source
767 (origin
768 (method url-fetch)
769 (uri (string-append
770 "mirror://sourceforge/quvi/" (version-major+minor version) "/"
771 name "/" name "-" version ".tar.xz"))
772 (sha256
773 (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
774 (build-system gnu-build-system)
775 (home-page "http://quvi.sourceforge.net/")
776 (synopsis "Media stream URL parser")
777 (description "This package contains support scripts called by libquvi to
778 parse media stream properties.")
779 (license l:lgpl2.1+)))
780
781 (define-public libquvi
782 (package
783 (name "libquvi")
784 (version "0.4.1")
785 (source
786 (origin
787 (method url-fetch)
788 (uri (string-append
789 "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/"
790 name "-" version ".tar.xz"))
791 (sha256
792 (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
793 (build-system gnu-build-system)
794 (native-inputs `(("pkg-config" ,pkg-config)))
795 (inputs
796 `(("curl" ,curl)
797 ("cyrus-sasl" ,cyrus-sasl)
798 ("libquvi-scripts" ,libquvi-scripts)
799 ("lua" ,lua-5.1)
800 ("openssl" ,openssl)
801 ("zlib" ,zlib)))
802 (arguments
803 ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
804 '(#:configure-flags
805 (let ((lua (assoc-ref %build-inputs "lua")))
806 (list
807 (string-append "liblua_CFLAGS=-I" lua "/include")
808 (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
809 (home-page "http://quvi.sourceforge.net/")
810 (synopsis "Media stream URL parser")
811 (description "libquvi is a library with a C API for parsing media stream
812 URLs and extracting their actual media files.")
813 (license l:lgpl2.1+)))
814
815 (define-public quvi
816 (package
817 (name "quvi")
818 (version "0.4.2")
819 (source
820 (origin
821 (method url-fetch)
822 (uri (string-append
823 "mirror://sourceforge/" name "/" (version-major+minor version)
824 "/" name "/" name "-" version ".tar.xz"))
825 (sha256
826 (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
827 (build-system gnu-build-system)
828 (native-inputs `(("pkg-config" ,pkg-config)))
829 (inputs
830 `(("curl" ,curl)
831 ("libquvi" ,libquvi)))
832 (home-page "http://quvi.sourceforge.net/")
833 (synopsis "Media stream URL parser")
834 (description "quvi is a command-line-tool suite to extract media files
835 from streaming URLs. It is a command-line wrapper for the libquvi library.")
836 (license l:lgpl2.1+)))
837
838 (define-public serf
839 (package
840 (name "serf")
841 (version "1.3.9")
842 (source
843 (origin
844 (method url-fetch)
845 (uri (string-append "https://archive.apache.org/dist/serf/serf-"
846 version ".tar.bz2"))
847 (sha256
848 (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
849 (build-system gnu-build-system)
850 (native-inputs
851 `(("scons" ,scons)
852 ("python" ,python-2)))
853 (propagated-inputs
854 `(("apr" ,apr)
855 ("apr-util" ,apr-util)
856 ("openssl" ,openssl)))
857 (inputs
858 `(;; TODO: Fix build with gss.
859 ;;("gss" ,gss)
860 ("zlib" ,zlib)))
861 (arguments
862 `(#:modules ((guix build gnu-build-system)
863 (guix build utils)
864 (srfi srfi-1))
865 #:phases
866 ;; TODO: Add scons-build-system and use it here.
867 (modify-phases %standard-phases
868 (delete 'configure)
869 (add-after 'unpack 'scons-propagate-environment
870 (lambda _
871 ;; By design, SCons does not, by default, propagate
872 ;; environment variables to subprocesses. See:
873 ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
874 ;; Here, we modify the SConstruct file to arrange for
875 ;; environment variables to be propagated.
876 (substitute* "SConstruct"
877 (("^env = Environment\\(")
878 "env = Environment(ENV=os.environ, "))))
879 (replace 'build
880 (lambda* (#:key inputs outputs #:allow-other-keys)
881 (let ((out (assoc-ref outputs "out"))
882 (apr (assoc-ref inputs "apr"))
883 (apr-util (assoc-ref inputs "apr-util"))
884 (openssl (assoc-ref inputs "openssl"))
885 ;;(gss (assoc-ref inputs "gss"))
886 (zlib (assoc-ref inputs "zlib")))
887 (zero? (system* "scons"
888 (string-append "APR=" apr)
889 (string-append "APU=" apr-util)
890 (string-append "OPENSSL=" openssl)
891 ;;(string-append "GSSAPI=" gss)
892 (string-append "ZLIB=" zlib)
893 (string-append "PREFIX=" out))))))
894 (add-before 'check 'disable-broken-tests
895 (lambda _
896 ;; These tests rely on SSL certificates that expired 2017-04-18.
897 ;; While there are newer certs available upstream, we don't want
898 ;; this package to suddenly "expire" some time in the future.
899 ;; https://bugs.gnu.org/26671
900 (let ((broken-tests
901 '("test_ssl_trust_rootca"
902 "test_ssl_certificate_chain_with_anchor"
903 "test_ssl_certificate_chain_all_from_server"
904 "test_ssl_no_servercert_callback_allok"
905 "test_ssl_large_response"
906 "test_ssl_large_request"
907 "test_ssl_client_certificate"
908 "test_ssl_future_server_cert"
909 "test_setup_ssltunnel"
910 "test_ssltunnel_basic_auth"
911 "test_ssltunnel_basic_auth_server_has_keepalive_off"
912 "test_ssltunnel_basic_auth_proxy_has_keepalive_off"
913 "test_ssltunnel_basic_auth_proxy_close_conn_on_200resp"
914 "test_ssltunnel_digest_auth")))
915 (for-each
916 (lambda (test)
917 (substitute* "test/test_context.c"
918 (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) "")))
919 broken-tests)
920 #t)))
921 (replace 'check (lambda _ (zero? (system* "scons" "check"))))
922 (replace 'install (lambda _ (zero? (system* "scons" "install")))))))
923 (home-page "https://serf.apache.org/")
924 (synopsis "High-performance asynchronous HTTP client library")
925 (description
926 "serf is a C-based HTTP client library built upon the Apache Portable
927 Runtime (APR) library. It multiplexes connections, running the read/write
928 communication asynchronously. Memory copies and transformations are kept to a
929 minimum to provide high performance operation.")
930 ;; Most of the code is covered by the Apache License, Version 2.0, but the
931 ;; bundled CuTest framework uses a different non-copyleft license.
932 (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
933
934 (define-public sassc
935 ;; libsass must be statically linked and it isn't included in the sassc
936 ;; release tarballs, hence this odd package recipe.
937 (let* ((version "3.2.5")
938 (libsass
939 (origin
940 (method url-fetch)
941 (uri (string-append
942 "https://github.com/sass/libsass/archive/"
943 version ".tar.gz"))
944 (file-name (string-append "libsass-" version ".tar.gz"))
945 (sha256
946 (base32
947 "1x25k6p1s1yzsdpzb7bzh8japilmi1mk3z96q66pycbinj9z9is4")))))
948 (package
949 (name "sassc")
950 (version version)
951 (source (origin
952 (method url-fetch)
953 (uri (string-append "https://github.com/sass/sassc/archive/"
954 version ".tar.gz"))
955 (file-name (string-append "sassc-" version ".tar.gz"))
956 (sha256
957 (base32
958 "1xf3w75w840rj0nx375rxi7mcv1ngqqq8p3zrzjlyx8jfpnldmv5"))))
959 (build-system gnu-build-system)
960 (arguments
961 `(#:make-flags '("CC=gcc")
962 #:test-target "test"
963 #:phases
964 (modify-phases %standard-phases
965 (delete 'configure)
966 (add-after 'unpack 'unpack-libsass-and-set-path
967 (lambda* (#:key inputs #:allow-other-keys)
968 (and (zero? (system* "tar" "xvf" (assoc-ref inputs "libsass")))
969 (begin
970 (setenv "SASS_LIBSASS_PATH"
971 (string-append (getcwd) "/libsass-" ,version))
972 #t))))
973 (replace 'install ; no install target
974 (lambda* (#:key outputs #:allow-other-keys)
975 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
976 (mkdir-p bin)
977 (copy-file "bin/sassc" (string-append bin "/sassc"))
978 #t))))))
979 (inputs
980 `(("libsass" ,libsass)))
981 (synopsis "CSS pre-processor")
982 (description "SassC is a compiler written in C for the CSS pre-processor
983 language known as SASS.")
984 (home-page "http://sass-lang.com/libsass")
985 (license l:expat))))
986
987 \f
988 (define-public perl-apache-logformat-compiler
989 (package
990 (name "perl-apache-logformat-compiler")
991 (version "0.33")
992 (source
993 (origin
994 (method url-fetch)
995 (uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/"
996 "Apache-LogFormat-Compiler-" version ".tar.gz"))
997 (sha256
998 (base32
999 "17blk3zhp05azgypn25ydxf3d7fyfgr9bxyiv7xkchhqma96vwqv"))))
1000 (build-system perl-build-system)
1001 (native-inputs
1002 `(("perl-http-message" ,perl-http-message)
1003 ("perl-module-build" ,perl-module-build)
1004 ("perl-test-mocktime" ,perl-test-mocktime)
1005 ("perl-try-tiny" ,perl-try-tiny)
1006 ("perl-uri" ,perl-uri)))
1007 (propagated-inputs
1008 `(("perl-posix-strftime-compiler" ,perl-posix-strftime-compiler)))
1009 (arguments `(#:tests? #f)) ;TODO: Timezone test failures
1010 (home-page "http://search.cpan.org/dist/Apache-LogFormat-Compiler")
1011 (synopsis "Compile a log format string to perl-code")
1012 (description "This module provides methods to compile a log format string
1013 to perl-code, for faster generation of access_log lines.")
1014 (license l:perl-license)))
1015
1016 (define-public perl-authen-sasl
1017 (package
1018 (name "perl-authen-sasl")
1019 (version "2.16")
1020 (source
1021 (origin
1022 (method url-fetch)
1023 (uri (string-append "mirror://cpan/authors/id/G/GB/GBARR/"
1024 "Authen-SASL-" version ".tar.gz"))
1025 (sha256
1026 (base32
1027 "02afhlrdq5hh5g8b32fa79fqq5i76qzwfqqvfi9zi57h31szl536"))))
1028 (build-system perl-build-system)
1029 (arguments
1030 '(#:phases
1031 (modify-phases %standard-phases
1032 (add-after 'unpack 'set-env
1033 ;; Fix the build with Perl 5.26.0. Try removing this phase for later
1034 ;; versions of perl-authen-sasl.
1035 (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
1036 (propagated-inputs
1037 `(("perl-digest-hmac" ,perl-digest-hmac)
1038 ("perl-gssapi" ,perl-gssapi)))
1039 (home-page "http://search.cpan.org/dist/Authen-SASL")
1040 (synopsis "SASL authentication framework")
1041 (description "Authen::SASL provides an SASL authentication framework.")
1042 (license l:perl-license)))
1043
1044 (define-public perl-catalyst-action-renderview
1045 (package
1046 (name "perl-catalyst-action-renderview")
1047 (version "0.16")
1048 (source
1049 (origin
1050 (method url-fetch)
1051 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1052 "Catalyst-Action-RenderView-"
1053 version ".tar.gz"))
1054 (sha256
1055 (base32
1056 "0j1rrld13cjk7ks92b5hv3xw4rfm2lvmksb4rlzd8mx0a0wj0rc5"))))
1057 (build-system perl-build-system)
1058 (native-inputs
1059 `(("perl-http-request-ascgi" ,perl-http-request-ascgi)))
1060 (propagated-inputs
1061 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1062 ("perl-data-visitor" ,perl-data-visitor)
1063 ("perl-mro-compat" ,perl-mro-compat)))
1064 (home-page "http://search.cpan.org/dist/Catalyst-Action-RenderView")
1065 (synopsis "Sensible default Catalyst action")
1066 (description "This Catalyst action implements a sensible default end
1067 action, which will forward to the first available view.")
1068 (license l:perl-license)))
1069
1070 (define-public perl-catalyst-action-rest
1071 (package
1072 (name "perl-catalyst-action-rest")
1073 (version "1.20")
1074 (source (origin
1075 (method url-fetch)
1076 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1077 "Catalyst-Action-REST-" version ".tar.gz"))
1078 (sha256
1079 (base32
1080 "1mpa64p61f3dp24xnhdraswch4sqj5vyv1iivcvvh5h0xi0haiy0"))))
1081 (build-system perl-build-system)
1082 (native-inputs
1083 `(("perl-test-requires" ,perl-test-requires)))
1084 (propagated-inputs
1085 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1086 ("perl-class-inspector" ,perl-class-inspector)
1087 ("perl-config-general" ,perl-config-general)
1088 ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
1089 ("perl-libwww" ,perl-libwww)
1090 ("perl-moose" ,perl-moose)
1091 ("perl-mro-compat" ,perl-mro-compat)
1092 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1093 ("perl-params-validate" ,perl-params-validate)
1094 ("perl-uri-find" ,perl-uri-find)
1095 ("perl-xml-simple" ,perl-xml-simple)))
1096 (home-page "http://search.cpan.org/dist/Catalyst-Action-REST")
1097 (synopsis "Automated REST Method Dispatching")
1098 (description "This Action handles doing automatic method dispatching for
1099 REST requests. It takes a normal Catalyst action, and changes the dispatch to
1100 append an underscore and method name. First it will try dispatching to an
1101 action with the generated name, and failing that it will try to dispatch to a
1102 regular method.")
1103 (license l:perl-license)))
1104
1105 (define-public perl-catalyst-authentication-store-dbix-class
1106 (package
1107 (name "perl-catalyst-authentication-store-dbix-class")
1108 (version "0.1506")
1109 (source
1110 (origin
1111 (method url-fetch)
1112 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
1113 "Catalyst-Authentication-Store-DBIx-Class-"
1114 version ".tar.gz"))
1115 (sha256
1116 (base32
1117 "0i5ja7690fs9nhxcij6lw51j804sm8s06m5mvk1n8pi8jljrymvw"))))
1118 (build-system perl-build-system)
1119 (native-inputs
1120 `(("perl-catalyst-plugin-authorization-roles"
1121 ,perl-catalyst-plugin-authorization-roles)
1122 ("perl-catalyst-plugin-session-state-cookie"
1123 ,perl-catalyst-plugin-session-state-cookie)
1124 ("perl-dbd-sqlite" ,perl-dbd-sqlite)
1125 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
1126 (propagated-inputs
1127 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1128 ("perl-catalyst-plugin-authentication"
1129 ,perl-catalyst-plugin-authentication)
1130 ("perl-dbix-class" ,perl-dbix-class)
1131 ("perl-catalyst-model-dbic-schema" ,perl-catalyst-model-dbic-schema)))
1132 (home-page
1133 "http://search.cpan.org/dist/Catalyst-Authentication-Store-DBIx-Class")
1134 (synopsis "Storage class for Catalyst authentication using DBIx::Class")
1135 (description "The Catalyst::Authentication::Store::DBIx::Class class
1136 provides access to authentication information stored in a database via
1137 DBIx::Class.")
1138 (license l:perl-license)))
1139
1140 (define-public perl-catalyst-component-instancepercontext
1141 (package
1142 (name "perl-catalyst-component-instancepercontext")
1143 (version "0.001001")
1144 (source
1145 (origin
1146 (method url-fetch)
1147 (uri (string-append "mirror://cpan/authors/id/G/GR/GRODITI/"
1148 "Catalyst-Component-InstancePerContext-"
1149 version ".tar.gz"))
1150 (sha256
1151 (base32
1152 "0wfj4vnn2cvk6jh62amwlg050p37fcwdgrn9amcz24z6w4qgjqvz"))))
1153 (build-system perl-build-system)
1154 (propagated-inputs
1155 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1156 ("perl-moose" ,perl-moose)))
1157 (home-page
1158 "http://search.cpan.org/dist/Catalyst-Component-InstancePerContext")
1159 (synopsis "Create only one instance of Moose component per context")
1160 (description "Catalyst::Component::InstancePerContext returns a new
1161 instance of a component on each request.")
1162 (license l:perl-license)))
1163
1164 (define-public perl-catalyst-devel
1165 (package
1166 (name "perl-catalyst-devel")
1167 (version "1.39")
1168 (source
1169 (origin
1170 (method url-fetch)
1171 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
1172 "Catalyst-Devel-" version ".tar.gz"))
1173 (sha256
1174 (base32
1175 "12m50bbkggjmpxihv3wnvr0g2qng0zwhlzi5ygppjz8wh2x73qxw"))))
1176 (build-system perl-build-system)
1177 (native-inputs
1178 `(("perl-test-fatal" ,perl-test-fatal)))
1179 (propagated-inputs
1180 `(("perl-catalyst-action-renderview" ,perl-catalyst-action-renderview)
1181 ("perl-catalyst-plugin-configloader" ,perl-catalyst-plugin-configloader)
1182 ("perl-catalyst-plugin-static-simple" ,perl-catalyst-plugin-static-simple)
1183 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1184 ("perl-config-general" ,perl-config-general)
1185 ("perl-file-changenotify" ,perl-file-changenotify)
1186 ("perl-file-copy-recursive" ,perl-file-copy-recursive)
1187 ("perl-file-sharedir" ,perl-file-sharedir)
1188 ("perl-module-install" ,perl-module-install)
1189 ("perl-moose" ,perl-moose)
1190 ("perl-moosex-emulate-class-accessor-fast"
1191 ,perl-moosex-emulate-class-accessor-fast)
1192 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1193 ("perl-namespace-clean" ,perl-namespace-clean)
1194 ("perl-path-class" ,perl-path-class)
1195 ("perl-template-toolkit" ,perl-template-toolkit)))
1196 (home-page "http://search.cpan.org/dist/Catalyst-Devel")
1197 (synopsis "Catalyst Development Tools")
1198 (description "The Catalyst-Devel distribution includes a variety of
1199 modules useful for the development of Catalyst applications, but not required
1200 to run them. Catalyst-Devel includes the Catalyst::Helper system, which
1201 autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install
1202 extension for Catalyst; and requirements for a variety of development-related
1203 modules.")
1204 (license l:perl-license)))
1205
1206 (define-public perl-catalyst-dispatchtype-regex
1207 (package
1208 (name "perl-catalyst-dispatchtype-regex")
1209 (version "5.90035")
1210 (source
1211 (origin
1212 (method url-fetch)
1213 (uri (string-append "mirror://cpan/authors/id/M/MG/MGRIMES/"
1214 "Catalyst-DispatchType-Regex-" version ".tar.gz"))
1215 (sha256
1216 (base32
1217 "06jq1lmpq88rmp9zik5gqczg234xac0hiyc3l698iif7zsgcyb80"))))
1218 (build-system perl-build-system)
1219 (native-inputs
1220 `(("perl-module-build" ,perl-module-build) ;needs Module::Build >= 0.4004
1221 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1222 ("perl-catalyst-runtime" ,perl-catalyst-runtime)))
1223 (propagated-inputs
1224 `(("perl-moose" ,perl-moose)
1225 ("perl-text-simpletable" ,perl-text-simpletable)))
1226 (home-page "http://search.cpan.org/dist/Catalyst-DispatchType-Regex")
1227 (synopsis "Regex DispatchType for Catalyst")
1228 (description "Dispatch type managing path-matching behaviour using
1229 regexes. Regex dispatch types have been deprecated and removed from Catalyst
1230 core. It is recommend that you use Chained methods or other techniques
1231 instead. As part of the refactoring, the dispatch priority of Regex vs Regexp
1232 vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by
1233 when the dispatch type is first seen in your application.")
1234 (license l:perl-license)))
1235
1236 (define-public perl-catalyst-model-dbic-schema
1237 (package
1238 (name "perl-catalyst-model-dbic-schema")
1239 (version "0.65")
1240 (source
1241 (origin
1242 (method url-fetch)
1243 (uri (string-append "mirror://cpan/authors/id/G/GB/GBJK/"
1244 "Catalyst-Model-DBIC-Schema-"
1245 version ".tar.gz"))
1246 (sha256
1247 (base32
1248 "1spfjcjc0b9dv3k2gbanqj1m1cqzyxb32p76dhdwizzpbvpi3a96"))))
1249 (build-system perl-build-system)
1250 (native-inputs
1251 `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
1252 ("perl-test-exception" ,perl-test-exception)
1253 ("perl-test-requires" ,perl-test-requires)))
1254 (propagated-inputs
1255 `(("perl-carp-clan" ,perl-carp-clan)
1256 ("perl-catalyst-component-instancepercontext"
1257 ,perl-catalyst-component-instancepercontext)
1258 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1259 ("perl-catalystx-component-traits" ,perl-catalystx-component-traits)
1260 ("perl-dbix-class" ,perl-dbix-class)
1261 ("perl-dbix-class-cursor-cached" ,perl-dbix-class-cursor-cached)
1262 ("perl-dbix-class-schema-loader" ,perl-dbix-class-schema-loader)
1263 ("perl-hash-merge" ,perl-hash-merge)
1264 ("perl-list-moreutils" ,perl-list-moreutils)
1265 ("perl-module-runtime" ,perl-module-runtime)
1266 ("perl-moose" ,perl-moose)
1267 ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
1268 ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
1269 ("perl-moosex-types" ,perl-moosex-types)
1270 ("perl-moosex-types-loadableclass" ,perl-moosex-types-loadableclass)
1271 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1272 ("perl-namespace-clean" ,perl-namespace-clean)
1273 ("perl-tie-ixhash" ,perl-tie-ixhash)
1274 ("perl-try-tiny" ,perl-try-tiny)))
1275 (home-page "http://search.cpan.org/dist/Catalyst-Model-DBIC-Schema")
1276 (synopsis "DBIx::Class::Schema Model Class")
1277 (description "This is a Catalyst Model for DBIx::Class::Schema-based
1278 Models.")
1279 (license l:perl-license)))
1280
1281 (define-public perl-catalyst-plugin-accesslog
1282 (package
1283 (name "perl-catalyst-plugin-accesslog")
1284 (version "1.10")
1285 (source
1286 (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://cpan/authors/id/A/AR/ARODLAND/"
1289 "Catalyst-Plugin-AccessLog-" version ".tar.gz"))
1290 (sha256
1291 (base32
1292 "0811rj45q4v2y8wka3wb9d5m4vbyhcmkvddf2wz4x69awzjbhgc7"))))
1293 (build-system perl-build-system)
1294 (propagated-inputs
1295 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1296 ("perl-datetime" ,perl-datetime)
1297 ("perl-moose" ,perl-moose)
1298 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
1299 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-AccessLog")
1300 (synopsis "Request logging from within Catalyst")
1301 (description "This Catalyst plugin enables you to create \"access logs\"
1302 from within a Catalyst application instead of requiring a webserver to do it
1303 for you. It will work even with Catalyst debug logging turned off.")
1304 (license l:perl-license)))
1305
1306 (define-public perl-catalyst-plugin-authentication
1307 (package
1308 (name "perl-catalyst-plugin-authentication")
1309 (version "0.10023")
1310 (source
1311 (origin
1312 (method url-fetch)
1313 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1314 "Catalyst-Plugin-Authentication-"
1315 version ".tar.gz"))
1316 (sha256
1317 (base32
1318 "0v6hb4r1wv3djrnqvnjcn3xx1scgqzx8nyjdg9lfc1ybvamrl0rn"))))
1319 (build-system perl-build-system)
1320 (propagated-inputs
1321 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1322 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1323 ("perl-class-inspector" ,perl-class-inspector)
1324 ("perl-moose" ,perl-moose)
1325 ("perl-moosex-emulate-class-accessor-fast"
1326 ,perl-moosex-emulate-class-accessor-fast)
1327 ("perl-mro-compat" ,perl-mro-compat)
1328 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1329 ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
1330 ("perl-test-exception" ,perl-test-exception)
1331 ("perl-try-tiny" ,perl-try-tiny)))
1332 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Authentication")
1333 (synopsis "Infrastructure plugin for the Catalyst authentication framework")
1334 (description "The authentication plugin provides generic user support for
1335 Catalyst apps. It is the basis for both authentication (checking the user is
1336 who they claim to be), and authorization (allowing the user to do what the
1337 system authorises them to do).")
1338 (license l:perl-license)))
1339
1340 (define-public perl-catalyst-plugin-authorization-roles
1341 (package
1342 (name "perl-catalyst-plugin-authorization-roles")
1343 (version "0.09")
1344 (source
1345 (origin
1346 (method url-fetch)
1347 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1348 "Catalyst-Plugin-Authorization-Roles-"
1349 version ".tar.gz"))
1350 (sha256
1351 (base32
1352 "0l83lkwmq0lngwh8b1rv3r719pn8w1gdbyhjqm74rnd0wbjl8h7f"))))
1353 (build-system perl-build-system)
1354 (native-inputs
1355 `(("perl-test-exception" ,perl-test-exception)))
1356 (propagated-inputs
1357 `(("perl-catalyst-plugin-authentication"
1358 ,perl-catalyst-plugin-authentication)
1359 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1360 ("perl-set-object" ,perl-set-object)
1361 ("perl-universal-isa" ,perl-universal-isa)))
1362 (home-page
1363 "http://search.cpan.org/dist/Catalyst-Plugin-Authorization-Roles")
1364 (synopsis "Role-based authorization for Catalyst")
1365 (description "Catalyst::Plugin::Authorization::Roles provides role-based
1366 authorization for Catalyst based on Catalyst::Plugin::Authentication.")
1367 (license l:perl-license)))
1368
1369 (define-public perl-catalyst-plugin-captcha
1370 (package
1371 (name "perl-catalyst-plugin-captcha")
1372 (version "0.04")
1373 (source
1374 (origin
1375 (method url-fetch)
1376 (uri (string-append "mirror://cpan/authors/id/D/DI/DIEGOK/"
1377 "Catalyst-Plugin-Captcha-" version ".tar.gz"))
1378 (sha256
1379 (base32
1380 "0llyj3v5nx9cx46jdbbvxf1lc9s9cxq5ml22xmx3wkb201r5qgaa"))))
1381 (build-system perl-build-system)
1382 (propagated-inputs
1383 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1384 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1385 ("perl-gd-securityimage" ,perl-gd-securityimage)
1386 ("perl-http-date" ,perl-http-date)))
1387 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Captcha")
1388 (synopsis "Captchas for Catalyst")
1389 (description "This plugin creates and validates Captcha images for
1390 Catalyst.")
1391 (license l:perl-license)))
1392
1393 (define-public perl-catalyst-plugin-configloader
1394 (package
1395 (name "perl-catalyst-plugin-configloader")
1396 (version "0.34")
1397 (source
1398 (origin
1399 (method url-fetch)
1400 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1401 "Catalyst-Plugin-ConfigLoader-"
1402 version ".tar.gz"))
1403 (sha256
1404 (base32
1405 "19j7p4v7mbx6wrmpvmrnd974apx7hdl2s095ga3b9zcbdrl77h5q"))))
1406 (build-system perl-build-system)
1407 (native-inputs
1408 `(("perl-path-class" ,perl-path-class)))
1409 (propagated-inputs
1410 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1411 ("perl-config-any" ,perl-config-any)
1412 ("perl-data-visitor" ,perl-data-visitor)
1413 ("perl-mro-compat" ,perl-mro-compat)))
1414 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-ConfigLoader")
1415 (synopsis "Load config files of various types")
1416 (description "This module will attempt to load find and load configuration
1417 files of various types. Currently it supports YAML, JSON, XML, INI and Perl
1418 formats.")
1419 (license l:perl-license)))
1420
1421 (define-public perl-catalyst-plugin-session
1422 (package
1423 (name "perl-catalyst-plugin-session")
1424 (version "0.40")
1425 (source
1426 (origin
1427 (method url-fetch)
1428 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1429 "Catalyst-Plugin-Session-" version ".tar.gz"))
1430 (sha256
1431 (base32
1432 "171vi9xcl775scjaw4fcfdmqvz0rb1nr0xxg2gb3ng6bjzpslhgv"))))
1433 (build-system perl-build-system)
1434 (native-inputs
1435 `(("perl-test-deep" ,perl-test-deep)
1436 ("perl-test-exception" ,perl-test-exception)))
1437 (propagated-inputs
1438 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1439 ("perl-moose" ,perl-moose)
1440 ("perl-moosex-emulate-class-accessor-fast"
1441 ,perl-moosex-emulate-class-accessor-fast)
1442 ("perl-mro-compat" ,perl-mro-compat)
1443 ("perl-namespace-clean" ,perl-namespace-clean)
1444 ("perl-object-signature" ,perl-object-signature)
1445 ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
1446 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Session")
1447 (synopsis "Catalyst generic session plugin")
1448 (description "This plugin links the two pieces required for session
1449 management in web applications together: the state, and the store.")
1450 (license l:perl-license)))
1451
1452 (define-public perl-catalyst-plugin-session-state-cookie
1453 (package
1454 (name "perl-catalyst-plugin-session-state-cookie")
1455 (version "0.17")
1456 (source
1457 (origin
1458 (method url-fetch)
1459 (uri (string-append "mirror://cpan/authors/id/M/MS/MSTROUT/"
1460 "Catalyst-Plugin-Session-State-Cookie-"
1461 version ".tar.gz"))
1462 (sha256
1463 (base32
1464 "1rvxbfnpf9x2pc2zgpazlcgdlr2dijmxgmcs0m5nazs0w6xikssb"))))
1465 (build-system perl-build-system)
1466 (propagated-inputs
1467 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1468 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1469 ("perl-moose" ,perl-moose)
1470 ("perl-mro-compat" ,perl-mro-compat)
1471 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
1472 (home-page
1473 "http://search.cpan.org/dist/Catalyst-Plugin-Session-State-Cookie")
1474 (synopsis "Maintain session IDs using cookies")
1475 (description "In order for Catalyst::Plugin::Session to work, the session
1476 ID needs to be stored on the client, and the session data needs to be stored
1477 on the server. This plugin stores the session ID on the client using the
1478 cookie mechanism.")
1479 (license l:perl-license)))
1480
1481 (define-public perl-catalyst-plugin-session-store-fastmmap
1482 (package
1483 (name "perl-catalyst-plugin-session-store-fastmmap")
1484 (version "0.16")
1485 (source
1486 (origin
1487 (method url-fetch)
1488 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1489 "Catalyst-Plugin-Session-Store-FastMmap-"
1490 version ".tar.gz"))
1491 (sha256
1492 (base32
1493 "0x3j6zv3wr41jlwr6yb2jpmcx019ibyn11y8653ffnwhpzbpzsxs"))))
1494 (build-system perl-build-system)
1495 (propagated-inputs
1496 `(("perl-cache-fastmmap" ,perl-cache-fastmmap)
1497 ("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
1498 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1499 ("perl-moosex-emulate-class-accessor-fast"
1500 ,perl-moosex-emulate-class-accessor-fast)
1501 ("perl-mro-compat" ,perl-mro-compat)
1502 ("perl-path-class" ,perl-path-class)))
1503 (home-page
1504 "http://search.cpan.org/dist/Catalyst-Plugin-Session-Store-FastMmap")
1505 (synopsis "FastMmap session storage backend")
1506 (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
1507 storage plugin for Catalyst that uses an mmap'ed file to act as a shared
1508 memory interprocess cache. It is based on Cache::FastMmap.")
1509 (license l:perl-license)))
1510
1511 (define-public perl-catalyst-plugin-stacktrace
1512 (package
1513 (name "perl-catalyst-plugin-stacktrace")
1514 (version "0.12")
1515 (source
1516 (origin
1517 (method url-fetch)
1518 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1519 "Catalyst-Plugin-StackTrace-" version ".tar.gz"))
1520 (sha256
1521 (base32
1522 "1b2ksz74cpigxqzf63rddar3vfmnbpwpdcbs11v0ml89pb8ar79j"))))
1523 (build-system perl-build-system)
1524 (propagated-inputs
1525 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1526 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
1527 ("perl-mro-compat" ,perl-mro-compat)))
1528 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-StackTrace")
1529 (synopsis "Stack trace on the Catalyst debug screen")
1530 (description "This plugin enhances the standard Catalyst debug screen by
1531 including a stack trace of your application up to the point where the error
1532 occurred. Each stack frame is displayed along with the package name, line
1533 number, file name, and code context surrounding the line number.")
1534 (license l:perl-license)))
1535
1536 (define-public perl-catalyst-plugin-static-simple
1537 (package
1538 (name "perl-catalyst-plugin-static-simple")
1539 (version "0.33")
1540 (source
1541 (origin
1542 (method url-fetch)
1543 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1544 "Catalyst-Plugin-Static-Simple-" version ".tar.gz"))
1545 (sha256
1546 (base32
1547 "1h8f12bhzh0ssq9gs8r9g3hqn8zn2k0q944vc1vm8j81bns16msy"))))
1548 (build-system perl-build-system)
1549 (propagated-inputs
1550 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1551 ("perl-mime-types" ,perl-mime-types)
1552 ("perl-moose" ,perl-moose)
1553 ("perl-moosex-types" ,perl-moosex-types)
1554 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
1555 (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Static-Simple")
1556 (synopsis "Simple serving of static pages")
1557 (description "The Static::Simple plugin is designed to make serving static
1558 content in your application during development quick and easy, without
1559 requiring a single line of code from you. This plugin detects static files by
1560 looking at the file extension in the URL (such as .css or .png or .js). The
1561 plugin uses the lightweight MIME::Types module to map file extensions to
1562 IANA-registered MIME types, and will serve your static files with the correct
1563 MIME type directly to the browser, without being processed through Catalyst.")
1564 (license l:perl-license)))
1565
1566 (define-public perl-catalyst-runtime
1567 (package
1568 (name "perl-catalyst-runtime")
1569 (version "5.90082")
1570 (source
1571 (origin
1572 (method url-fetch)
1573 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1574 "Catalyst-Runtime-" version ".tar.gz"))
1575 (sha256
1576 (base32
1577 "1gs70nq4rikpq6siwds9disb1z03vwjzf979xi9kf7saa1drfncs"))))
1578 (build-system perl-build-system)
1579 (native-inputs
1580 `(("perl-test-fatal" ,perl-test-fatal)))
1581 (propagated-inputs
1582 `(("perl-cgi-simple" ,perl-cgi-simple)
1583 ("perl-cgi-struct" ,perl-cgi-struct)
1584 ("perl-class-c3-adopt-next" ,perl-class-c3-adopt-next)
1585 ("perl-class-data-inheritable" ,perl-class-data-inheritable)
1586 ("perl-class-date" ,perl-class-date)
1587 ("perl-class-load" ,perl-class-load)
1588 ("perl-data-dump" ,perl-data-dump)
1589 ("perl-http-body" ,perl-http-body)
1590 ("perl-http-message" ,perl-http-message)
1591 ("perl-http-request-ascgi" ,perl-http-request-ascgi)
1592 ("perl-io-stringy" ,perl-io-stringy)
1593 ("perl-json-maybexs" ,perl-json-maybexs)
1594 ("perl-libwww" ,perl-libwww)
1595 ("perl-module-pluggable" ,perl-module-pluggable)
1596 ("perl-moose" ,perl-moose)
1597 ("perl-moosex-emulate-class-accessor-fast"
1598 ,perl-moosex-emulate-class-accessor-fast)
1599 ("perl-moosex-getopt" ,perl-moosex-getopt)
1600 ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)
1601 ("perl-moosex-role-withoverloading" ,perl-moosex-role-withoverloading)
1602 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1603 ("perl-namespace-clean" ,perl-namespace-clean)
1604 ("perl-path-class" ,perl-path-class)
1605 ("perl-plack" ,perl-plack)
1606 ("perl-plack-middleware-fixmissingbodyinredirect"
1607 ,perl-plack-middleware-fixmissingbodyinredirect)
1608 ("perl-plack-middleware-methodoverride"
1609 ,perl-plack-middleware-methodoverride)
1610 ("perl-plack-middleware-removeredundantbody"
1611 ,perl-plack-middleware-removeredundantbody)
1612 ("perl-plack-middleware-reverseproxy"
1613 ,perl-plack-middleware-reverseproxy)
1614 ("perl-plack-test-externalserver" ,perl-plack-test-externalserver)
1615 ("perl-safe-isa" ,perl-safe-isa)
1616 ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
1617 ("perl-text-simpletable" ,perl-text-simpletable)
1618 ("perl-tree-simple" ,perl-tree-simple)
1619 ("perl-tree-simple-visitorfactory" ,perl-tree-simple-visitorfactory)
1620 ("perl-try-tiny" ,perl-try-tiny)
1621 ("perl-uri" ,perl-uri)
1622 ("perl-uri-ws" ,perl-uri-ws)))
1623 (home-page "http://search.cpan.org/dist/Catalyst-Runtime")
1624 (synopsis "The Catalyst Framework Runtime")
1625 (description "Catalyst is a modern framework for making web applications.
1626 It is designed to make it easy to manage the various tasks you need to do to
1627 run an application on the web, either by doing them itself, or by letting you
1628 \"plug in\" existing Perl modules that do what you need.")
1629 (license l:perl-license)))
1630
1631 (define-public perl-catalyst-traitfor-request-proxybase
1632 (package
1633 (name "perl-catalyst-traitfor-request-proxybase")
1634 (version "0.000005")
1635 (source
1636 (origin
1637 (method url-fetch)
1638 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1639 "Catalyst-TraitFor-Request-ProxyBase-"
1640 version ".tar.gz"))
1641 (sha256
1642 (base32
1643 "02kir63d5cs2ipj3fn1qlmmx3gqi1xqzrxfr4pv5vjhjgsm0zgx7"))))
1644 (build-system perl-build-system)
1645 (native-inputs
1646 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1647 ("perl-catalystx-roleapplicator" ,perl-catalystx-roleapplicator)
1648 ("perl-http-message" ,perl-http-message)))
1649 (propagated-inputs
1650 `(("perl-moose" ,perl-moose)
1651 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1652 ("perl-uri" ,perl-uri)))
1653 (home-page
1654 "http://search.cpan.org/dist/Catalyst-TraitFor-Request-ProxyBase")
1655 (synopsis "Replace request base with value passed by HTTP proxy")
1656 (description "This module is a Moose::Role which allows you more
1657 flexibility in your application's deployment configurations when deployed
1658 behind a proxy. Using this module, the request base ($c->req->base) is
1659 replaced with the contents of the X-Request-Base header.")
1660 (license l:perl-license)))
1661
1662 (define-public perl-catalyst-view-download
1663 (package
1664 (name "perl-catalyst-view-download")
1665 (version "0.09")
1666 (source
1667 (origin
1668 (method url-fetch)
1669 (uri (string-append "mirror://cpan/authors/id/G/GA/GAUDEON/"
1670 "Catalyst-View-Download-" version ".tar.gz"))
1671 (sha256
1672 (base32
1673 "1qgq6y9iwfbhbkbgpw9czang2ami6z8jk1zlagrzdisy4igqzkvs"))))
1674 (build-system perl-build-system)
1675 (native-inputs
1676 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1677 ("perl-test-simple" ,perl-test-simple)
1678 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)
1679 ("perl-text-csv" ,perl-text-csv)
1680 ("perl-xml-simple" ,perl-xml-simple)))
1681 (home-page "http://search.cpan.org/dist/Catalyst-View-Download")
1682 (synopsis "Download data in many formats")
1683 (description "The purpose of this module is to provide a method for
1684 downloading data into many supportable formats. For example, downloading a
1685 table based report in a variety of formats (CSV, HTML, etc.).")
1686 (license l:perl-license)))
1687
1688 (define-public perl-catalyst-view-json
1689 (package
1690 (name "perl-catalyst-view-json")
1691 (version "0.36")
1692 (source
1693 (origin
1694 (method url-fetch)
1695 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
1696 "Catalyst-View-JSON-" version ".tar.gz"))
1697 (sha256
1698 (base32
1699 "0x943j1n2r0zqanyzdrs1xsnn8ayn2wqskn7h144xcqa6v6gcisl"))))
1700 (build-system perl-build-system)
1701 (native-inputs
1702 `(("perl-yaml" ,perl-yaml)))
1703 (inputs
1704 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1705 ("perl-json-maybexs" ,perl-json-maybexs)
1706 ("perl-mro-compat" ,perl-mro-compat)))
1707 (home-page "http://search.cpan.org/dist/Catalyst-View-JSON")
1708 (synopsis "Catalyst JSON view")
1709 (description "Catalyst::View::JSON is a Catalyst View handler that returns
1710 stash data in JSON format.")
1711 (license l:perl-license)))
1712
1713 (define-public perl-catalyst-view-tt
1714 (package
1715 (name "perl-catalyst-view-tt")
1716 (version "0.44")
1717 (source
1718 (origin
1719 (method url-fetch)
1720 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
1721 "Catalyst-View-TT-" version ".tar.gz"))
1722 (sha256
1723 (base32
1724 "06d1zg4nbb6kcyjbnyxrkf8z4zlscxr8650d94f7187jygfl8rvh"))))
1725 (build-system perl-build-system)
1726 (propagated-inputs
1727 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1728 ("perl-class-accessor" ,perl-class-accessor)
1729 ("perl-data-dump" ,perl-data-dump)
1730 ("perl-mro-compat" ,perl-mro-compat)
1731 ("perl-path-class" ,perl-path-class)
1732 ("perl-template-timer" ,perl-template-timer)
1733 ("perl-template-toolkit" ,perl-template-toolkit)))
1734 (home-page "http://search.cpan.org/dist/Catalyst-View-TT")
1735 (synopsis "Template View Class")
1736 (description "This module is a Catalyst view class for the Template
1737 Toolkit.")
1738 (license l:perl-license)))
1739
1740 (define-public perl-catalystx-component-traits
1741 (package
1742 (name "perl-catalystx-component-traits")
1743 (version "0.19")
1744 (source
1745 (origin
1746 (method url-fetch)
1747 (uri (string-append "mirror://cpan/authors/id/R/RK/RKITOVER/"
1748 "CatalystX-Component-Traits-" version ".tar.gz"))
1749 (sha256
1750 (base32
1751 "0iq4ci8m6g2c4g01fvdl568y7pjz28f3widk986v3pyhr7ll8j88"))))
1752 (build-system perl-build-system)
1753 (native-inputs
1754 `(("perl-moose" ,perl-moose)
1755 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1756 ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)))
1757 (propagated-inputs
1758 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1759 ("perl-class-load" ,perl-class-load)
1760 ("perl-moose" ,perl-moose)
1761 ("perl-moosex-traits-pluggable" ,perl-moosex-traits-pluggable)
1762 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1763 ("perl-list-moreutils" ,perl-list-moreutils)))
1764 (home-page "http://search.cpan.org/dist/CatalystX-Component-Traits")
1765 (synopsis "Trait Loading and Resolution for Catalyst Components")
1766 (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
1767 Catalyst component base class that reads the optional \"traits\" parameter
1768 from app and component config and instantiates the component subclass with
1769 those traits using \"new_with_traits\" in MooseX::Traits from
1770 MooseX::Traits::Pluggable.")
1771 (license l:perl-license)))
1772
1773 (define-public perl-catalystx-roleapplicator
1774 (package
1775 (name "perl-catalystx-roleapplicator")
1776 (version "0.005")
1777 (source
1778 (origin
1779 (method url-fetch)
1780 (uri (string-append "mirror://cpan/authors/id/H/HD/HDP/"
1781 "CatalystX-RoleApplicator-" version ".tar.gz"))
1782 (sha256
1783 (base32
1784 "0vwaapxn8g5hs2xp63c4dwv9jmapmji4272fakssvgc9frklg3p2"))))
1785 (build-system perl-build-system)
1786 (propagated-inputs
1787 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1788 ("perl-moose" ,perl-moose)
1789 ("perl-moosex-relatedclassroles" ,perl-moosex-relatedclassroles)))
1790 (home-page "http://search.cpan.org/dist/CatalystX-RoleApplicator")
1791 (synopsis "Apply roles to Catalyst classes")
1792 (description "CatalystX::RoleApplicator applies roles to Catalyst
1793 application classes.")
1794 (license l:perl-license)))
1795
1796 (define-public perl-catalystx-script-server-starman
1797 (package
1798 (name "perl-catalystx-script-server-starman")
1799 (version "0.02")
1800 (source
1801 (origin
1802 (method url-fetch)
1803 (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
1804 "CatalystX-Script-Server-Starman-"
1805 version ".tar.gz"))
1806 (sha256
1807 (base32
1808 "0h02mpkc4cmi3jpvcd7iw7xyzx55bqvvl1qkf967gqkvpklm0qx5"))))
1809 (build-system perl-build-system)
1810 (native-inputs
1811 `(("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
1812 (propagated-inputs
1813 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1814 ("perl-moose" ,perl-moose)
1815 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1816 ("starman" ,starman)))
1817 (home-page "http://search.cpan.org/dist/CatalystX-Script-Server-Starman")
1818 (synopsis "Catalyst development server with Starman")
1819 (description "This module provides a Catalyst extension to replace the
1820 development server with Starman.")
1821 (license l:perl-license)))
1822
1823 (define-public perl-cgi
1824 (package
1825 (name "perl-cgi")
1826 (version "4.35")
1827 (source
1828 (origin
1829 (method url-fetch)
1830 (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/"
1831 "CGI-" version ".tar.gz"))
1832 (sha256
1833 (base32
1834 "07gwnlc7vq58fjwmfsrv0hfyirqqdrpjhf89caq34rjrkz2wsd0b"))))
1835 (build-system perl-build-system)
1836 (native-inputs
1837 `(("perl-test-deep" ,perl-test-deep)
1838 ("perl-test-nowarnings" ,perl-test-nowarnings)
1839 ("perl-test-warn" ,perl-test-warn)))
1840 (propagated-inputs
1841 `(("perl-html-parser" ,perl-html-parser)))
1842 (home-page "http://search.cpan.org/dist/CGI")
1843 (synopsis "Handle Common Gateway Interface requests and responses")
1844 (description "CGI.pm is a stable, complete and mature solution for
1845 processing and preparing HTTP requests and responses. Major features include
1846 processing form submissions, file uploads, reading and writing cookies, query
1847 string generation and manipulation, and processing and preparing HTTP
1848 headers.")
1849 (license l:perl-license)))
1850
1851 (define-public perl-cgi-simple
1852 (package
1853 (name "perl-cgi-simple")
1854 (version "1.115")
1855 (source
1856 (origin
1857 (method url-fetch)
1858 (uri (string-append "mirror://cpan/authors/id/S/SZ/SZABGAB/"
1859 "CGI-Simple-" version ".tar.gz"))
1860 (sha256
1861 (base32
1862 "1nkyb1m1g5r47xykflf68dplanih5p15njv82frbgbsms34kp1sg"))))
1863 (build-system perl-build-system)
1864 (native-inputs
1865 `(("perl-module-build" ,perl-module-build)
1866 ("perl-io-stringy" ,perl-io-stringy))) ;for IO::Scalar
1867 (home-page "http://search.cpan.org/dist/CGI-Simple")
1868 (synopsis "CGI interface that is CGI.pm compliant")
1869 (description "CGI::Simple provides a relatively lightweight drop in
1870 replacement for CGI.pm. It shares an identical OO interface to CGI.pm for
1871 parameter parsing, file upload, cookie handling and header generation.")
1872 (license l:perl-license)))
1873
1874 (define-public perl-cgi-struct
1875 (package
1876 (name "perl-cgi-struct")
1877 (version "1.21")
1878 (source
1879 (origin
1880 (method url-fetch)
1881 (uri (string-append "mirror://cpan/authors/id/F/FU/FULLERMD/"
1882 "CGI-Struct-" version ".tar.gz"))
1883 (sha256
1884 (base32
1885 "0v4xq2qpryr7i6jngw1wpn8yr2kiib10yxp4aih90vfdznkqsgfi"))))
1886 (build-system perl-build-system)
1887 (native-inputs
1888 `(("perl-test-deep" ,perl-test-deep)))
1889 (home-page "http://search.cpan.org/dist/CGI-Struct")
1890 (synopsis "Build structures from CGI data")
1891 (description "This is a module for building structured data from CGI
1892 inputs, in a manner reminiscent of how PHP does.")
1893 (license l:bsd-2)))
1894
1895 (define-public perl-datetime-format-http
1896 (package
1897 (name "perl-datetime-format-http")
1898 (version "0.42")
1899 (source
1900 (origin
1901 (method url-fetch)
1902 (uri (string-append "mirror://cpan/authors/id/C/CK/CKRAS/"
1903 "DateTime-Format-HTTP-" version ".tar.gz"))
1904 (sha256
1905 (base32
1906 "0h6qqdg1yzqkdxp7hqlp0qa7d1y64nilgimxs79dys2ryjfpcknh"))))
1907 (build-system perl-build-system)
1908 (native-inputs
1909 `(("perl-module-build" ,perl-module-build)))
1910 (propagated-inputs
1911 `(("perl-datetime" ,perl-datetime)
1912 ("perl-http-date" ,perl-http-date)))
1913 (home-page "http://search.cpan.org/dist/DateTime-Format-HTTP")
1914 (synopsis "Date conversion routines")
1915 (description "This module provides functions that deal with the date
1916 formats used by the HTTP protocol.")
1917 (license l:perl-license)))
1918
1919 (define-public perl-digest-md5-file
1920 (package
1921 (name "perl-digest-md5-file")
1922 (version "0.08")
1923 (source
1924 (origin
1925 (method url-fetch)
1926 (uri (string-append "mirror://cpan/authors/id/D/DM/DMUEY/"
1927 "Digest-MD5-File-" version ".tar.gz"))
1928 (sha256
1929 (base32
1930 "060jzf45dlwysw5wsm7av1wvpl06xgk415kwwpvv89r6wda3md5d"))))
1931 (build-system perl-build-system)
1932 (propagated-inputs
1933 `(("perl-libwww" ,perl-libwww)))
1934 (home-page "http://search.cpan.org/dist/Digest-MD5-File")
1935 (synopsis "MD5 sums for files and urls")
1936 (description "Digest::MD5::File is a Perl extension for getting MD5 sums
1937 for files and urls.")
1938 (license l:perl-license)))
1939
1940 (define-public perl-encode-locale
1941 (package
1942 (name "perl-encode-locale")
1943 (version "1.05")
1944 (source (origin
1945 (method url-fetch)
1946 (uri (string-append
1947 "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
1948 version ".tar.gz"))
1949 (sha256
1950 (base32
1951 "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp"))))
1952 (build-system perl-build-system)
1953 (license l:perl-license)
1954 (synopsis "Perl locale encoding determination")
1955 (description
1956 "The POSIX locale system is used to specify both the language
1957 conventions requested by the user and the preferred character set to
1958 consume and output. The Encode::Locale module looks up the charset and
1959 encoding (called a CODESET in the locale jargon) and arranges for the
1960 Encode module to know this encoding under the name \"locale\". It means
1961 bytes obtained from the environment can be converted to Unicode strings
1962 by calling Encode::encode(locale => $bytes) and converted back again
1963 with Encode::decode(locale => $string).")
1964 (home-page "http://search.cpan.org/~gaas/Encode-Locale/")))
1965
1966 (define-public perl-feed-find
1967 (package
1968 (name "perl-feed-find")
1969 (version "0.07")
1970 (source (origin
1971 (method url-fetch)
1972 (uri (string-append "mirror://cpan/authors/id/B/BT/BTROTT/"
1973 "Feed-Find-" version ".tar.gz"))
1974 (sha256
1975 (base32
1976 "0sa33cm8ww55cymnl8j7b5yspi2y5xkkkgqqa4h6fs3wdqylz600"))))
1977 (build-system perl-build-system)
1978 (arguments
1979 ;; Tests expect to query files at http://stupidfool.org/perl/feeds/
1980 `(#:tests? #f))
1981 (inputs
1982 `(("perl-class-errorhandler" ,perl-class-errorhandler)
1983 ("perl-html-parser" ,perl-html-parser)
1984 ("perl-libwww" ,perl-libwww)
1985 ("perl-uri" ,perl-uri)))
1986 (home-page "http://search.cpan.org/dist/Feed-Find")
1987 (synopsis "Syndication feed auto-discovery")
1988 (description "@code{Feed::Find} implements feed auto-discovery for finding
1989 syndication feeds, given a URI. It will discover the following feed formats:
1990 RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
1991 (license l:perl-license)))
1992
1993 (define-public perl-file-listing
1994 (package
1995 (name "perl-file-listing")
1996 (version "6.04")
1997 (source (origin
1998 (method url-fetch)
1999 (uri (string-append
2000 "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
2001 version ".tar.gz"))
2002 (sha256
2003 (base32
2004 "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
2005 (build-system perl-build-system)
2006 (propagated-inputs
2007 `(("perl-http-date" ,perl-http-date)))
2008 (license l:perl-license)
2009 (synopsis "Perl directory listing parser")
2010 (description
2011 "The File::Listing module exports a single function called parse_dir(),
2012 which can be used to parse directory listings.")
2013 (home-page "http://search.cpan.org/~gaas/File-Listing/")))
2014
2015 (define-public perl-finance-quote
2016 (package
2017 (name "perl-finance-quote")
2018 (version "1.38")
2019 (source
2020 (origin
2021 (method url-fetch)
2022 (uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
2023 "Finance-Quote-" version ".tar.gz"))
2024 (sha256
2025 (base32
2026 "0zhqb27y4vdxn476s2kwm9zl2f970yjcyyybnjm9b406krr2fm59"))
2027 (patches (search-patches
2028 "perl-finance-quote-unuse-mozilla-ca.patch"))))
2029 (build-system perl-build-system)
2030 (propagated-inputs
2031 `(("perl-cgi" ,perl-cgi)
2032 ("perl-datetime" ,perl-datetime)
2033 ("perl-html-parser" ,perl-html-parser)
2034 ("perl-html-tableextract" ,perl-html-tableextract)
2035 ("perl-html-tree" ,perl-html-tree)
2036 ("perl-http-cookies" ,perl-http-cookies)
2037 ("perl-http-message" ,perl-http-message)
2038 ("perl-json" ,perl-json)
2039 ("perl-libwww" ,perl-libwww)
2040 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
2041 ("perl-uri" ,perl-uri)))
2042 (home-page "http://search.cpan.org/dist/Finance-Quote")
2043 (synopsis "Stock and mutual fund quotes")
2044 (description
2045 "Finance::Quote gets stock quotes from various internet sources, including
2046 Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
2047 (license l:gpl2)))
2048
2049 (define-public perl-gssapi
2050 (package
2051 (name "perl-gssapi")
2052 (version "0.28")
2053 (source
2054 (origin
2055 (method url-fetch)
2056 (uri (string-append "mirror://cpan/authors/id/A/AG/AGROLMS/"
2057 "GSSAPI-" version ".tar.gz"))
2058 (sha256
2059 (base32
2060 "1mkhwxjjlhr58pd770i9gnf7zy7jj092iv6jfbnb8bvnc5xjr3vx"))))
2061 (build-system perl-build-system)
2062 (inputs `(("gssapi" ,mit-krb5)))
2063 (arguments
2064 `(#:make-maker-flags
2065 `(,(string-append "--gssapiimpl=" (assoc-ref %build-inputs "gssapi")))))
2066 (home-page "http://search.cpan.org/dist/GSSAPI")
2067 (synopsis "Perl extension providing access to the GSSAPIv2 library")
2068 (description "This is a Perl extension for using GSSAPI C bindings as
2069 described in RFC 2744.")
2070 (license l:perl-license)))
2071
2072 (define-public perl-html-element-extended
2073 (package
2074 (name "perl-html-element-extended")
2075 (version "1.18")
2076 (source
2077 (origin
2078 (method url-fetch)
2079 (uri (string-append "mirror://cpan/authors/id/M/MS/MSISK/"
2080 "HTML-Element-Extended-" version ".tar.gz"))
2081 (sha256
2082 (base32
2083 "0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk"))))
2084 (build-system perl-build-system)
2085 (propagated-inputs
2086 `(("perl-html-tree" ,perl-html-tree)))
2087 (home-page "http://search.cpan.org/dist/HTML-Element-Extended")
2088 (synopsis "Manipulate tables of HTML::Element")
2089 (description
2090 "HTML::Element::Extended is a Perl extension for manipulating a table
2091 composed of HTML::Element style components.")
2092 (license l:perl-license)))
2093
2094 (define-public perl-html-form
2095 (package
2096 (name "perl-html-form")
2097 (version "6.03")
2098 (source
2099 (origin
2100 (method url-fetch)
2101 (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/"
2102 "HTML-Form-" version ".tar.gz"))
2103 (sha256
2104 (base32
2105 "0dpwr7yz6hjc3bcqgcbdzjjk9l58ycdjmbam9nfcmm85y2a1vh38"))))
2106 (build-system perl-build-system)
2107 (propagated-inputs
2108 `(("perl-html-parser" ,perl-html-parser)
2109 ("perl-html-tagset" ,perl-html-tagset)
2110 ("perl-http-message" ,perl-http-message)
2111 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
2112 ("perl-uri" ,perl-uri)))
2113 (home-page "http://search.cpan.org/dist/HTML-Form")
2114 (synopsis "Perl class representing an HTML form element")
2115 (description "Objects of the HTML::Form class represents a single HTML
2116 <form> ... </form> instance.")
2117 (license l:perl-license)))
2118
2119 (define-public perl-html-lint
2120 (package
2121 (name "perl-html-lint")
2122 (version "2.20")
2123 (source
2124 (origin
2125 (method url-fetch)
2126 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
2127 "HTML-Lint-" version ".tar.gz"))
2128 (sha256
2129 (base32
2130 "15vrqjnlb0f8rib1kqdf4islqy6i33h08wy7b1bkgd550p7lfjwk"))))
2131 (build-system perl-build-system)
2132 (propagated-inputs
2133 `(("perl-html-parser" ,perl-html-parser)
2134 ("perl-html-tagset" ,perl-html-tagset)
2135 ("perl-libwww" ,perl-libwww)))
2136 (home-page "http://search.cpan.org/dist/HTML-Lint")
2137 (synopsis "Check for HTML errors in a string or file")
2138 (description "HTML::Lint is a pure-Perl HTML parser and checker for
2139 syntactic legitmacy.")
2140 (license l:artistic2.0)))
2141
2142 (define-public perl-html-tableextract
2143 (package
2144 (name "perl-html-tableextract")
2145 (version "2.13")
2146 (source
2147 (origin
2148 (method url-fetch)
2149 (uri (string-append "https://cpan.metacpan.org/authors/id/M/MS/MSISK/"
2150 "HTML-TableExtract-" version ".tar.gz"))
2151 (sha256
2152 (base32
2153 "01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a"))))
2154 (build-system perl-build-system)
2155 (propagated-inputs
2156 `(("perl-html-element-extended" ,perl-html-element-extended)
2157 ("perl-html-parser" ,perl-html-parser)))
2158 (home-page "http://search.cpan.org/dist/HTML-TableExtract")
2159 (synopsis "Extract contents from HTML tables")
2160 (description
2161 "HTML::TableExtract is a Perl module for extracting the content contained
2162 in tables within an HTML document, either as text or encoded element trees.")
2163 (license l:perl-license)))
2164
2165 (define-public perl-html-tree
2166 (package
2167 (name "perl-html-tree")
2168 (version "5.03")
2169 (source
2170 (origin
2171 (method url-fetch)
2172 (uri (string-append "mirror://cpan/authors/id/C/CJ/CJM/"
2173 "HTML-Tree-" version ".tar.gz"))
2174 (sha256
2175 (base32
2176 "13qlqbpixw470gnck0xgny8hyjj576m8y24bba2p9ai2lvy76vbx"))))
2177 (build-system perl-build-system)
2178 (native-inputs
2179 `(("perl-module-build" ,perl-module-build)
2180 ("perl-test-fatal" ,perl-test-fatal)))
2181 (propagated-inputs
2182 `(("perl-html-parser" ,perl-html-parser)
2183 ("perl-html-tagset" ,perl-html-tagset)
2184 ("perl-libwww" ,perl-libwww)))
2185 (home-page "http://search.cpan.org/dist/HTML-Tree")
2186 (synopsis "Work with HTML in a DOM-like tree structure")
2187 (description "This distribution contains a suite of modules for
2188 representing, creating, and extracting information from HTML syntax trees.")
2189 (license l:perl-license)))
2190
2191 (define-public perl-html-parser
2192 (package
2193 (name "perl-html-parser")
2194 (version "3.72")
2195 (source (origin
2196 (method url-fetch)
2197 (uri (string-append
2198 "mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-"
2199 version ".tar.gz"))
2200 (sha256
2201 (base32
2202 "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c"))))
2203 (build-system perl-build-system)
2204 (inputs
2205 `(("perl-html-tagset" ,perl-html-tagset)
2206 ("perl-http-message" ,perl-http-message)))
2207 (license l:perl-license)
2208 (synopsis "Perl HTML parser class")
2209 (description
2210 "Objects of the HTML::Parser class will recognize markup and separate
2211 it from plain text (alias data content) in HTML documents. As different
2212 kinds of markup and text are recognized, the corresponding event handlers
2213 are invoked.")
2214 (home-page "http://search.cpan.org/~gaas/HTML-Parser/")))
2215
2216 (define-public perl-html-tagset
2217 (package
2218 (name "perl-html-tagset")
2219 (version "3.20")
2220 (source (origin
2221 (method url-fetch)
2222 (uri (string-append
2223 "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-"
2224 version ".tar.gz"))
2225 (sha256
2226 (base32
2227 "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd"))))
2228 (build-system perl-build-system)
2229 (license l:perl-license)
2230 (synopsis "Perl data tables useful in parsing HTML")
2231 (description
2232 "The HTML::Tagset module contains several data tables useful in various
2233 kinds of HTML parsing operations.")
2234 (home-page "http://search.cpan.org/dist/HTML-Tagset/")))
2235
2236 (define-public perl-html-template
2237 (package
2238 (name "perl-html-template")
2239 (version "2.95")
2240 (source (origin
2241 (method url-fetch)
2242 (uri (string-append "mirror://cpan/authors/id/W/WO/WONKO/"
2243 "HTML-Template-" version ".tar.gz"))
2244 (sha256
2245 (base32
2246 "07ahpfgidxsw2yb7y8i7bbr8s64aq6qgq832h9jswmksxbd0l43q"))))
2247 (build-system perl-build-system)
2248 (propagated-inputs
2249 `(("perl-cgi" ,perl-cgi)))
2250 (home-page "http://search.cpan.org/dist/HTML-Template")
2251 (synopsis "HTML-like templates")
2252 (description
2253 "This module attempts to make using HTML templates simple and natural.
2254 It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},
2255 @code{<TMPL_LOOP>}, @code{<TMPL_INCLUDE>}, @code{<TMPL_IF>},
2256 @code{<TMPL_ELSE>} and @code{<TMPL_UNLESS>}. The file written with HTML and
2257 these new tags is called a template. Using this module you fill in the values
2258 for the variables, loops and branches declared in the template. This allows
2259 you to separate design from the data.")
2260 (license l:perl-license)))
2261
2262 (define-public perl-http-body
2263 (package
2264 (name "perl-http-body")
2265 (version "1.22")
2266 (source
2267 (origin
2268 (method url-fetch)
2269 (uri (string-append "mirror://cpan/authors/id/G/GE/GETTY/"
2270 "HTTP-Body-" version ".tar.gz"))
2271 (sha256
2272 (base32
2273 "15vj488i62mdp4ps9k77h39prj70i7anb6b0j8nm7l9vbdc2q3gw"))))
2274 (build-system perl-build-system)
2275 (native-inputs
2276 `(("perl-test-deep" ,perl-test-deep)))
2277 (propagated-inputs
2278 `(("perl-file-temp" ,perl-file-temp)
2279 ("perl-http-message" ,perl-http-message))) ;For HTTP::Headers
2280 (home-page "http://search.cpan.org/dist/HTTP-Body")
2281 (synopsis "HTTP Body Parser")
2282 (description "HTTP::Body parses chunks of HTTP POST data and supports
2283 application/octet-stream, application/json, application/x-www-form-urlencoded,
2284 and multipart/form-data.")
2285 (license l:perl-license)))
2286
2287 (define-public perl-http-cookiejar
2288 (package
2289 (name "perl-http-cookiejar")
2290 (version "0.008")
2291 (source
2292 (origin
2293 (method url-fetch)
2294 (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
2295 "HTTP-CookieJar-" version ".tar.gz"))
2296 (sha256
2297 (base32
2298 "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
2299 (build-system perl-build-system)
2300 (native-inputs
2301 `(("perl-test-deep" ,perl-test-deep)
2302 ("perl-test-requires" ,perl-test-requires)
2303 ("perl-time-mock" ,perl-time-mock)
2304 ("perl-uri" ,perl-uri)))
2305 (inputs
2306 `(("perl-time-local" ,perl-time-local)
2307 ("perl-http-date" ,perl-http-date)))
2308 (home-page "http://search.cpan.org/dist/HTTP-CookieJar")
2309 (synopsis "Minimalist HTTP user agent cookie jar")
2310 (description "This module implements a minimalist HTTP user agent cookie
2311 jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
2312 (license l:asl2.0)))
2313
2314 (define-public perl-http-cookies
2315 (package
2316 (name "perl-http-cookies")
2317 (version "6.01")
2318 (source (origin
2319 (method url-fetch)
2320 (uri (string-append
2321 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Cookies-"
2322 version ".tar.gz"))
2323 (sha256
2324 (base32
2325 "087bqmg22dg3vj7gssh3pcsh9y1scimkbl5h1kc8jqyfhgisvlzm"))))
2326 (build-system perl-build-system)
2327 (propagated-inputs
2328 `(("perl-http-message" ,perl-http-message)))
2329 (license l:perl-license)
2330 (synopsis "Perl HTTP cookie jars")
2331 (description
2332 "The HTTP::Cookies class is for objects that represent a cookie jar,
2333 that is, a database of all the HTTP cookies that a given LWP::UserAgent
2334 object knows about.")
2335 (home-page "http://search.cpan.org/~gaas/HTTP-Cookies/")))
2336
2337 (define-public perl-http-daemon
2338 (package
2339 (name "perl-http-daemon")
2340 (version "6.01")
2341 (source (origin
2342 (method url-fetch)
2343 (uri (string-append
2344 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-"
2345 version ".tar.gz"))
2346 (sha256
2347 (base32
2348 "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
2349 (build-system perl-build-system)
2350 (propagated-inputs
2351 `(("perl-http-message" ,perl-http-message)
2352 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
2353 (license l:perl-license)
2354 (synopsis "Perl simple http server class")
2355 (description
2356 "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen
2357 on a socket for incoming requests. The HTTP::Daemon is a subclass of
2358 IO::Socket::INET, so you can perform socket operations directly on it too.")
2359 (home-page "http://search.cpan.org/~gaas/HTTP-Daemon/")))
2360
2361 (define-public perl-http-date
2362 (package
2363 (name "perl-http-date")
2364 (version "6.02")
2365 (source (origin
2366 (method url-fetch)
2367 (uri (string-append
2368 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Date-"
2369 version ".tar.gz"))
2370 (sha256
2371 (base32
2372 "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8"))))
2373 (build-system perl-build-system)
2374 (license l:perl-license)
2375 (synopsis "Perl date conversion routines")
2376 (description
2377 "The HTTP::Date module provides functions that deal with date formats
2378 used by the HTTP protocol (and then some more).")
2379 (home-page "http://search.cpan.org/~gaas/HTTP-Date/")))
2380
2381 (define-public perl-http-message
2382 (package
2383 (name "perl-http-message")
2384 (version "6.11")
2385 (source (origin
2386 (method url-fetch)
2387 (uri (string-append
2388 "mirror://cpan/authors/id/E/ET/ETHER/HTTP-Message-"
2389 version ".tar.gz"))
2390 (sha256
2391 (base32
2392 "06yq6cjx4vzl4if4ykap77xsrrd8aa7ish90k7cqi8g6g83nicz7"))))
2393 (build-system perl-build-system)
2394 (propagated-inputs
2395 `(("perl-encode-locale" ,perl-encode-locale)
2396 ("perl-http-date" ,perl-http-date)
2397 ("perl-io-html" ,perl-io-html)
2398 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
2399 ("perl-uri" ,perl-uri)))
2400 (license l:perl-license)
2401 (synopsis "Perl HTTP style message")
2402 (description
2403 "An HTTP::Message object contains some headers and a content body.")
2404 (home-page "http://search.cpan.org/~ether/HTTP-Message/")))
2405
2406 (define-public perl-http-negotiate
2407 (package
2408 (name "perl-http-negotiate")
2409 (version "6.01")
2410 (source (origin
2411 (method url-fetch)
2412 (uri (string-append
2413 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
2414 version ".tar.gz"))
2415 (sha256
2416 (base32
2417 "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
2418 (build-system perl-build-system)
2419 (propagated-inputs
2420 `(("perl-http-message" ,perl-http-message)))
2421 (license l:perl-license)
2422 (synopsis "Perl http content negotiation")
2423 (description
2424 "The HTTP::Negotiate module provides a complete implementation of the
2425 HTTP content negotiation algorithm specified in
2426 draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for
2427 the selection of a preferred content representation based upon attributes
2428 of the negotiable variants and the value of the various Accept* header
2429 fields in the request.")
2430 (home-page "http://search.cpan.org/~gaas/HTTP-Negotiate/")))
2431
2432 (define-public perl-http-parser
2433 (package
2434 (name "perl-http-parser")
2435 (version "0.06")
2436 (source
2437 (origin
2438 (method url-fetch)
2439 (uri (string-append "mirror://cpan/authors/id/E/ED/EDECA/"
2440 "HTTP-Parser-" version ".tar.gz"))
2441 (sha256
2442 (base32
2443 "0idwq3jk595xil65lmxz128ha7s3r2n5zknisddpgwnqrghs3igq"))))
2444 (build-system perl-build-system)
2445 (propagated-inputs
2446 `(("perl-http-message" ,perl-http-message)
2447 ("perl-uri" ,perl-uri)))
2448 (home-page "http://search.cpan.org/dist/HTTP-Parser")
2449 (synopsis "Parse HTTP/1.1 requests")
2450 (description "This is an HTTP request parser. It takes chunks of text as
2451 received and returns a 'hint' as to what is required, or returns the
2452 HTTP::Request when a complete request has been read. HTTP/1.1 chunking is
2453 supported.")
2454 (license l:perl-license)))
2455
2456 (define-public perl-http-parser-xs
2457 (package
2458 (name "perl-http-parser-xs")
2459 (version "0.17")
2460 (source
2461 (origin
2462 (method url-fetch)
2463 (uri (string-append "mirror://cpan/authors/id/K/KA/KAZUHO/"
2464 "HTTP-Parser-XS-" version ".tar.gz"))
2465 (sha256
2466 (base32
2467 "02d84xq1mm53c7jl33qyb7v5w4372vydp74z6qj0vc96wcrnhkkr"))))
2468 (build-system perl-build-system)
2469 (home-page "http://search.cpan.org/dist/HTTP-Parser-XS")
2470 (synopsis "Fast HTTP request parser")
2471 (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
2472 parser.")
2473 (license l:perl-license)))
2474
2475 (define-public perl-http-request-ascgi
2476 (package
2477 (name "perl-http-request-ascgi")
2478 (version "1.2")
2479 (source
2480 (origin
2481 (method url-fetch)
2482 (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
2483 "HTTP-Request-AsCGI-" version ".tar.gz"))
2484 (sha256
2485 (base32
2486 "1smwmiarwcgq7vjdblnb6ldi2x1s5sk5p15p7xvm5byiqq3znnwl"))))
2487 (build-system perl-build-system)
2488 (propagated-inputs
2489 `(("perl-class-accessor" ,perl-class-accessor)
2490 ("perl-http-message" ,perl-http-message)))
2491 (home-page "http://search.cpan.org/dist/HTTP-Request-AsCGI")
2492 (synopsis "Set up a CGI environment from an HTTP::Request")
2493 (description "This module provides a convenient way to set up a CGI
2494 environment from an HTTP::Request.")
2495 (license l:perl-license)))
2496
2497 (define-public perl-http-server-simple
2498 (package
2499 (name "perl-http-server-simple")
2500 (version "0.51")
2501 (source
2502 (origin
2503 (method url-fetch)
2504 (uri (string-append "mirror://cpan/authors/id/B/BP/BPS/"
2505 "HTTP-Server-Simple-" version ".tar.gz"))
2506 (sha256
2507 (base32
2508 "1yvd2g57z2kq00q5i3zzfi15k98qgbif3vghjsda6v612agmrp5r"))))
2509 (build-system perl-build-system)
2510 (propagated-inputs
2511 `(("perl-cgi" ,perl-cgi)))
2512 (arguments
2513 ;; See the discussion of a related tests issue at
2514 ;; https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00346.html
2515 `(#:tests? #f))
2516 (home-page "http://search.cpan.org/dist/HTTP-Server-Simple")
2517 (synopsis "Lightweight HTTP server")
2518 (description "HTTP::Server::Simple is a simple standalone HTTP daemon with
2519 no non-core module dependencies. It can be used for building a standalone
2520 http-based UI to your existing tools.")
2521 (license l:perl-license)))
2522
2523 (define-public perl-http-tiny
2524 (package
2525 (name "perl-http-tiny")
2526 (version "0.070")
2527 (source
2528 (origin
2529 (method url-fetch)
2530 (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
2531 "HTTP-Tiny-" version ".tar.gz"))
2532 (sha256
2533 (base32
2534 "0cvp5yqrni6qydpsa8fpkbm82zfwmy9js8jsvyj8gs3dx78qbwvl"))))
2535 (build-system perl-build-system)
2536 (inputs
2537 `(("perl-http-cookiejar" ,perl-http-cookiejar)
2538 ("perl-io-socket-ip" ,perl-io-socket-ip)
2539 ("perl-io-socket-ssl" ,perl-io-socket-ssl)
2540 ("perl-mozilla-ca" ,perl-mozilla-ca)
2541 ("perl-net-ssleay" ,perl-net-ssleay)))
2542 (home-page "http://search.cpan.org/dist/HTTP-Tiny")
2543 (synopsis "HTTP/1.1 client")
2544 (description "This is a very simple HTTP/1.1 client, designed for doing
2545 simple requests without the overhead of a large framework like LWP::UserAgent.
2546 It supports proxies and redirection. It also correctly resumes after EINTR.")
2547 (license l:perl-license)))
2548
2549 (define-public perl-io-html
2550 (package
2551 (name "perl-io-html")
2552 (version "1.00")
2553 (source (origin
2554 (method url-fetch)
2555 (uri (string-append
2556 "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
2557 version ".tar.gz"))
2558 (sha256
2559 (base32
2560 "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
2561 (build-system perl-build-system)
2562 (license l:perl-license)
2563 (synopsis "Perl module to open an HTML file with automatic charset detection")
2564 (description
2565 "IO::HTML provides an easy way to open a file containing HTML while
2566 automatically determining its encoding. It uses the HTML5 encoding sniffing
2567 algorithm specified in section 8.2.2.1 of the draft standard.")
2568 (home-page "http://search.cpan.org/~cjm/IO-HTML/")))
2569
2570 (define-public perl-io-socket-ip
2571 (package
2572 (name "perl-io-socket-ip")
2573 (version "0.36")
2574 (source
2575 (origin
2576 (method url-fetch)
2577 (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
2578 "IO-Socket-IP-" version ".tar.gz"))
2579 (sha256
2580 (base32
2581 "0ky20hmln6waipzqikizyw04vpszf70fgpshz7ib8zv8480ri456"))))
2582 (build-system perl-build-system)
2583 (native-inputs `(("perl-module-build" ,perl-module-build)))
2584 (home-page "http://search.cpan.org/dist/IO-Socket-IP")
2585 (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
2586 (description "This module provides a protocol-independent way to use IPv4
2587 and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
2588 (license l:perl-license)))
2589
2590 (define-public perl-io-socket-ssl
2591 (package
2592 (name "perl-io-socket-ssl")
2593 (version "2.038")
2594 (source (origin
2595 (method url-fetch)
2596 (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
2597 "IO-Socket-SSL-" version ".tar.gz"))
2598 (sha256
2599 (base32
2600 "11fiifxyvn7njc9p52wgygyw24jz7rh7gnz2ikjphr4l4x9f03rx"))
2601 (patches (search-patches
2602 "perl-io-socket-ssl-openssl-1.0.2f-fix.patch"))))
2603 (build-system perl-build-system)
2604 (propagated-inputs
2605 `(("perl-net-ssleay" ,perl-net-ssleay)
2606 ;; for IDN support
2607 ("perl-uri" ,perl-uri)))
2608 (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET")
2609 (description
2610 "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the
2611 necessary functionality into the familiar IO::Socket interface and providing
2612 secure defaults whenever possible. This way existing applications can be made
2613 SSL-aware without much effort, at least if you do blocking I/O and don't use
2614 select or poll.")
2615 (license l:perl-license)
2616 (home-page "https://github.com/noxxi/p5-io-socket-ssl")))
2617
2618 (define-public perl-libwww
2619 (package
2620 (name "perl-libwww")
2621 (version "6.15")
2622 (source (origin
2623 (method url-fetch)
2624 (uri (string-append
2625 "mirror://cpan/authors/id/E/ET/ETHER/libwww-perl-"
2626 version ".tar.gz"))
2627 (sha256
2628 (base32
2629 "08l3mpgcvm4ipn1zggymqgk402apf35xyds43i8c07hvq92rsd3g"))))
2630 (build-system perl-build-system)
2631 (propagated-inputs
2632 `(("perl-encode-locale" ,perl-encode-locale)
2633 ("perl-file-listing" ,perl-file-listing)
2634 ("perl-html-parser" ,perl-html-parser)
2635 ("perl-http-cookies" ,perl-http-cookies)
2636 ("perl-http-daemon" ,perl-http-daemon)
2637 ("perl-http-date" ,perl-http-date)
2638 ("perl-http-message" ,perl-http-message)
2639 ("perl-http-negotiate" ,perl-http-negotiate)
2640 ("perl-net-http" ,perl-net-http)
2641 ("perl-uri" ,perl-uri)
2642 ("perl-www-robotrules" ,perl-www-robotrules)))
2643 (license l:perl-license)
2644 (synopsis "Perl modules for the WWW")
2645 (description
2646 "The libwww-perl collection is a set of Perl modules which provides a
2647 simple and consistent application programming interface to the
2648 World-Wide Web. The main focus of the library is to provide classes
2649 and functions that allow you to write WWW clients. The library also
2650 contains modules that are of more general use and even classes that
2651 help you implement simple HTTP servers.")
2652 (home-page "http://search.cpan.org/dist/libwww-perl/")))
2653
2654 (define-public perl-lwp-mediatypes
2655 (package
2656 (name "perl-lwp-mediatypes")
2657 (version "6.02")
2658 (source (origin
2659 (method url-fetch)
2660 (uri (string-append
2661 "mirror://cpan/authors/id/G/GA/GAAS/LWP-MediaTypes-"
2662 version ".tar.gz"))
2663 (sha256
2664 (base32
2665 "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q"))))
2666 (build-system perl-build-system)
2667 (license l:perl-license)
2668 (synopsis "Perl module to guess the media type for a file or a URL")
2669 (description
2670 "The LWP::MediaTypes module provides functions for handling media (also
2671 known as MIME) types and encodings. The mapping from file extensions to
2672 media types is defined by the media.types file. If the ~/.media.types file
2673 exists it is used instead.")
2674 (home-page "http://search.cpan.org/~gaas/LWP-MediaTypes/")))
2675
2676 (define-public perl-lwp-protocol-https
2677 (package
2678 (name "perl-lwp-protocol-https")
2679 (version "6.06")
2680 (source
2681 (origin
2682 (method url-fetch)
2683 (uri (string-append "mirror://cpan/authors/id/M/MS/MSCHILLI/"
2684 "LWP-Protocol-https-" version ".tar.gz"))
2685 (sha256
2686 (base32
2687 "1vxdjqj4bwq56m9h1bqqwkk3c6jr76f2zqzvwa26yjng3p686v5q"))))
2688 (build-system perl-build-system)
2689 (propagated-inputs
2690 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
2691 ("perl-libwww" ,perl-libwww)
2692 ;; Users should instead make sure SSL_ca_path is set properly.
2693 ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
2694 ("perl-net-http" ,perl-net-http)))
2695 (home-page "http://search.cpan.org/dist/LWP-Protocol-https")
2696 (synopsis "HTTPS support for LWP::UserAgent")
2697 (description "The LWP::Protocol::https module provides support for using
2698 https schemed URLs with LWP.")
2699 (license l:perl-license)))
2700
2701 (define-public perl-lwp-useragent-determined
2702 (package
2703 (name "perl-lwp-useragent-determined")
2704 (version "1.07")
2705 (source
2706 (origin
2707 (method url-fetch)
2708 (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/"
2709 "LWP-UserAgent-Determined-" version ".tar.gz"))
2710 (sha256
2711 (base32
2712 "0lyvbpjng7yfvyha9rp2y2c6liz5hhplmd2grc8jlsfkih7dbn06"))))
2713 (build-system perl-build-system)
2714 (propagated-inputs
2715 `(("perl-libwww" ,perl-libwww)))
2716 (home-page "http://search.cpan.org/dist/LWP-UserAgent-Determined")
2717 (synopsis "Virtual browser that retries errors")
2718 (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
2719 except that when you use it to get a web page but run into a
2720 possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds
2721 and retry a few times.")
2722 (license l:perl-license)))
2723
2724 (define-public perl-net-amazon-s3
2725 (package
2726 (name "perl-net-amazon-s3")
2727 (version "0.60")
2728 (source
2729 (origin
2730 (method url-fetch)
2731 (uri (string-append "mirror://cpan/authors/id/P/PF/PFIG/"
2732 "Net-Amazon-S3-" version ".tar.gz"))
2733 (sha256
2734 (base32
2735 "10dcsq4s2kc9cb1vccx17r187c81drirc3s1hbxh3rb8489kg2b2"))
2736 (patches (search-patches
2737 "perl-net-amazon-s3-moose-warning.patch"))))
2738 (build-system perl-build-system)
2739 (native-inputs
2740 `(("perl-libwww" ,perl-libwww)
2741 ("perl-test-exception" ,perl-test-exception)))
2742 (propagated-inputs
2743 `(("perl-data-stream-bulk" ,perl-data-stream-bulk)
2744 ("perl-datetime-format-http" ,perl-datetime-format-http)
2745 ("perl-digest-hmac" ,perl-digest-hmac)
2746 ("perl-digest-md5-file" ,perl-digest-md5-file)
2747 ("perl-file-find-rule" ,perl-file-find-rule)
2748 ("perl-http-date" ,perl-http-date)
2749 ("perl-http-message" ,perl-http-message)
2750 ("perl-lwp-useragent-determined" ,perl-lwp-useragent-determined)
2751 ("perl-mime-types" ,perl-mime-types)
2752 ("perl-moose" ,perl-moose)
2753 ("perl-moosex-strictconstructor" ,perl-moosex-strictconstructor)
2754 ("perl-moosex-types-datetime-morecoercions"
2755 ,perl-moosex-types-datetime-morecoercions)
2756 ("perl-path-class" ,perl-path-class)
2757 ("perl-regexp-common" ,perl-regexp-common)
2758 ("perl-term-encoding" ,perl-term-encoding)
2759 ("perl-term-progressbar-simple" ,perl-term-progressbar-simple)
2760 ("perl-uri" ,perl-uri)
2761 ("perl-xml-libxml" ,perl-xml-libxml)))
2762 (home-page "http://search.cpan.org/dist/Net-Amazon-S3")
2763 (synopsis "Perl interface to Amazon S3")
2764 (description "This module provides a Perlish interface to Amazon S3.")
2765 (license l:perl-license)))
2766
2767 (define-public perl-net-http
2768 (package
2769 (name "perl-net-http")
2770 (version "6.07")
2771 (source (origin
2772 (method url-fetch)
2773 (uri (string-append
2774 "mirror://cpan/authors/id/M/MS/MSCHILLI/Net-HTTP-"
2775 version ".tar.gz"))
2776 (sha256
2777 (base32
2778 "0r034hhci0yqbrkrh1gv6vi5g3i0kpd1k84z62nk02asb8rf0ccz"))))
2779 (build-system perl-build-system)
2780 (propagated-inputs
2781 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
2782 ("perl-uri" ,perl-uri)))
2783 (license l:perl-license)
2784 (synopsis "Perl low-level HTTP connection (client)")
2785 (description
2786 "The Net::HTTP class is a low-level HTTP client. An instance of the
2787 Net::HTTP class represents a connection to an HTTP server. The HTTP protocol
2788 is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and
2789 HTTP/1.1.")
2790 (home-page "http://search.cpan.org/dist/Net-HTTP")))
2791
2792 (define-public perl-net-server
2793 (package
2794 (name "perl-net-server")
2795 (version "2.008")
2796 (source
2797 (origin
2798 (method url-fetch)
2799 (uri (string-append "mirror://cpan/authors/id/R/RH/RHANDOM/"
2800 "Net-Server-" version ".tar.gz"))
2801 (sha256
2802 (base32
2803 "182gfikn7r40kmm3d35m2qc6r8g0y1j8gxbn9ffaawf8xmm0a889"))))
2804 (build-system perl-build-system)
2805 (home-page "http://search.cpan.org/dist/Net-Server")
2806 (synopsis "Extensible Perl server engine")
2807 (description "Net::Server is an extensible, generic Perl server engine.
2808 It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
2809 It includes with it the ability to run as an inetd
2810 process (Net::Server::INET), a single connection server (Net::Server or
2811 Net::Server::Single), a forking server (Net::Server::Fork), a preforking
2812 server which maintains a constant number of preforked
2813 children (Net::Server::PreForkSimple), or as a managed preforking server which
2814 maintains the number of children based on server load (Net::Server::PreFork).
2815 In all but the inetd type, the server provides the ability to connect to one
2816 or to multiple server ports.")
2817 (license l:perl-license)))
2818
2819 (define-public perl-net-smtp-ssl
2820 (package
2821 (name "perl-net-smtp-ssl")
2822 (version "1.03")
2823 (source
2824 (origin
2825 (method url-fetch)
2826 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
2827 "Net-SMTP-SSL-" version ".tar.gz"))
2828 (sha256
2829 (base32
2830 "05y94mb1vdw32mvwb0cp2h4ggh32f8j8nwwfjb8kjwxvfkfhyp9h"))))
2831 (build-system perl-build-system)
2832 (propagated-inputs
2833 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
2834 (home-page "http://search.cpan.org/dist/Net-SMTP-SSL")
2835 (synopsis "SSL support for Net::SMTP")
2836 (description "SSL support for Net::SMTP.")
2837 (license l:perl-license)))
2838
2839 (define-public perl-plack
2840 (package
2841 (name "perl-plack")
2842 (version "1.0033")
2843 (source
2844 (origin
2845 (method url-fetch)
2846 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
2847 "Plack-" version ".tar.gz"))
2848 (sha256
2849 (base32
2850 "081jg0xddzpg2anmqi9i6d7vs6c8z7k557bf8xl6vgb3h95pin5w"))))
2851 (build-system perl-build-system)
2852 (native-inputs
2853 `(("perl-test-requires" ,perl-test-requires)
2854 ("perl-file-sharedir-install" ,perl-file-sharedir-install)))
2855 (propagated-inputs
2856 `(("perl-apache-logformat-compiler" ,perl-apache-logformat-compiler)
2857 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
2858 ("perl-devel-stacktrace-ashtml" ,perl-devel-stacktrace-ashtml)
2859 ("perl-file-sharedir" ,perl-file-sharedir)
2860 ("perl-hash-multivalue" ,perl-hash-multivalue)
2861 ("perl-http-body" ,perl-http-body)
2862 ("perl-http-message" ,perl-http-message)
2863 ("perl-http-tiny" ,perl-http-tiny)
2864 ("perl-libwww" ,perl-libwww)
2865 ("perl-stream-buffered" ,perl-stream-buffered)
2866 ("perl-test-tcp" ,perl-test-tcp)
2867 ("perl-try-tiny" ,perl-try-tiny)
2868 ("perl-uri" ,perl-uri)))
2869 (home-page "http://search.cpan.org/dist/Plack")
2870 (synopsis "Perl Superglue for Web frameworks and servers (PSGI toolkit)")
2871 (description "Plack is a set of tools for using the PSGI stack. It
2872 contains middleware components, a reference server, and utilities for Web
2873 application frameworks. Plack is like Ruby's Rack or Python's Paste for
2874 WSGI.")
2875 (license l:perl-license)))
2876
2877 (define-public perl-plack-middleware-fixmissingbodyinredirect
2878 (package
2879 (name "perl-plack-middleware-fixmissingbodyinredirect")
2880 (version "0.12")
2881 (source
2882 (origin
2883 (method url-fetch)
2884 (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
2885 "Plack-Middleware-FixMissingBodyInRedirect-"
2886 version ".tar.gz"))
2887 (sha256
2888 (base32
2889 "14dkrmccq7a5vpymx5dv8032gfcvhsw2i6v5sh3c4ym5ymlx08kc"))))
2890 (build-system perl-build-system)
2891 (native-inputs
2892 `(("perl-html-parser" ,perl-html-parser) ;for HTML::Entities
2893 ("perl-http-message" ,perl-http-message)
2894 ("perl-plack" ,perl-plack))) ;for Plack::Test
2895 (home-page
2896 "http://search.cpan.org/dist/Plack-Middleware-FixMissingBodyInRedirect")
2897 (synopsis "Plack::Middleware which sets body for redirect response")
2898 (description "This module sets the body in redirect response, if it's not
2899 already set.")
2900 (license l:perl-license)))
2901
2902 (define-public perl-plack-middleware-methodoverride
2903 (package
2904 (name "perl-plack-middleware-methodoverride")
2905 (version "0.11")
2906 (source
2907 (origin
2908 (method url-fetch)
2909 (uri (string-append "mirror://cpan/authors/id/D/DW/DWHEELER/"
2910 "Plack-Middleware-MethodOverride-"
2911 version ".tar.gz"))
2912 (sha256
2913 (base32
2914 "1hb8dx7i4vs74n0p737wrvpdnnw6argxrjpr6kj6432zabp8325z"))))
2915 (build-system perl-build-system)
2916 (native-inputs
2917 `(("perl-module-build" ,perl-module-build)))
2918 (propagated-inputs
2919 `(("perl-plack" ,perl-plack)))
2920 (home-page "http://search.cpan.org/dist/Plack-Middleware-MethodOverride")
2921 (synopsis "Override REST methods to Plack apps via POST")
2922 (description "This middleware allows for POST requests that pretend to be
2923 something else: by adding either a header named X-HTTP-Method-Override to the
2924 request, or a query parameter named x-tunneled-method to the URI, the client
2925 can say what method it actually meant.")
2926 (license l:perl-license)))
2927
2928 (define-public perl-plack-middleware-removeredundantbody
2929 (package
2930 (name "perl-plack-middleware-removeredundantbody")
2931 (version "0.05")
2932 (source
2933 (origin
2934 (method url-fetch)
2935 (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
2936 "Plack-Middleware-RemoveRedundantBody-"
2937 version ".tar.gz"))
2938 (sha256
2939 (base32
2940 "1n3wm0zi8dnk54jx937asl951lslj3jvw0fry4jpzsibg4f6wrx0"))))
2941 (build-system perl-build-system)
2942 (propagated-inputs
2943 `(("perl-plack" ,perl-plack)))
2944 (home-page
2945 "http://search.cpan.org/dist/Plack-Middleware-RemoveRedundantBody")
2946 (synopsis "Plack::Middleware which removes body for HTTP response")
2947 (description "This module removes the body in an HTTP response if it's not
2948 required.")
2949 (license l:perl-license)))
2950
2951 (define-public perl-plack-middleware-reverseproxy
2952 (package
2953 (name "perl-plack-middleware-reverseproxy")
2954 (version "0.15")
2955 (source
2956 (origin
2957 (method url-fetch)
2958 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
2959 "Plack-Middleware-ReverseProxy-"
2960 version ".tar.gz"))
2961 (sha256
2962 (base32
2963 "1zmsccdy6wr5hxzj07r1nsmaymyibk87p95z0wzknjw10lwmqs9f"))))
2964 (build-system perl-build-system)
2965 (propagated-inputs
2966 `(("perl-plack" ,perl-plack)))
2967 (home-page "http://search.cpan.org/dist/Plack-Middleware-ReverseProxy")
2968 (synopsis "Supports app to run as a reverse proxy backend")
2969 (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
2970 which are changed by reverse-proxy. You can specify the reverse proxy address
2971 and stop fake requests using 'enable_if' directive in your app.psgi.")
2972 (license l:perl-license)))
2973
2974 (define-public perl-plack-test-externalserver
2975 (package
2976 (name "perl-plack-test-externalserver")
2977 (version "0.01")
2978 (source
2979 (origin
2980 (method url-fetch)
2981 (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
2982 "Plack-Test-ExternalServer-" version ".tar.gz"))
2983 (sha256
2984 (base32
2985 "1dbg1p3rgvvbkkpvca5jlc2mzx8iqyiybk88al93pvbca65h1g7h"))))
2986 (build-system perl-build-system)
2987 (propagated-inputs
2988 `(("perl-plack" ,perl-plack)))
2989 (home-page "http://search.cpan.org/dist/Plack-Test-ExternalServer")
2990 (synopsis "Run HTTP tests on external live servers")
2991 (description "This module allows your to run your Plack::Test tests
2992 against an external server instead of just against a local application through
2993 either mocked HTTP or a locally spawned server.")
2994 (license l:perl-license)))
2995
2996 (define-public perl-test-tcp
2997 (package
2998 (name "perl-test-tcp")
2999 (version "2.06")
3000 (source
3001 (origin
3002 (method url-fetch)
3003 (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/"
3004 "Test-TCP-" version ".tar.gz"))
3005 (sha256
3006 (base32
3007 "0acjwm21y2an4f3fasci9qa0isakh9cgp74fk0bzcdi506xmcjbi"))))
3008 (build-system perl-build-system)
3009 (propagated-inputs
3010 `(("perl-test-sharedfork" ,perl-test-sharedfork)))
3011 (arguments `(#:tests? #f)) ;related to signaling in t/05_sigint.t
3012 (home-page "http://search.cpan.org/dist/Test-TCP")
3013 (synopsis "Testing TCP programs")
3014 (description "Test::TCP is test utilities for TCP/IP programs.")
3015 (license l:perl-license)))
3016
3017 (define-public perl-test-www-mechanize
3018 (package
3019 (name "perl-test-www-mechanize")
3020 (version "1.44")
3021 (source
3022 (origin
3023 (method url-fetch)
3024 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
3025 "Test-WWW-Mechanize-" version ".tar.gz"))
3026 (sha256
3027 (base32
3028 "062pj242vsc73bw11jqpap92ax9wzc9f2m4xhyp1wzrwkfchpl2q"))))
3029 (build-system perl-build-system)
3030 (native-inputs
3031 `(("perl-test-exception" ,perl-test-exception)))
3032 (propagated-inputs
3033 `(("perl-carp-assert-more" ,perl-carp-assert-more)
3034 ("perl-html-form" ,perl-html-form)
3035 ("perl-html-lint" ,perl-html-lint)
3036 ("perl-html-tree" ,perl-html-tree)
3037 ("perl-http-server-simple" ,perl-http-server-simple)
3038 ("perl-libwww" ,perl-libwww)
3039 ("perl-test-longstring" ,perl-test-longstring)
3040 ("perl-www-mechanize" ,perl-www-mechanize)))
3041 (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize")
3042 (synopsis "Testing-specific WWW::Mechanize subclass")
3043 (description "Test::WWW::Mechanize is a subclass of the Perl module
3044 WWW::Mechanize that incorporates features for web application testing.")
3045 (license l:artistic2.0)))
3046
3047 (define-public perl-test-www-mechanize-catalyst
3048 (package
3049 (name "perl-test-www-mechanize-catalyst")
3050 (version "0.60")
3051 (source
3052 (origin
3053 (method url-fetch)
3054 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
3055 "Test-WWW-Mechanize-Catalyst-" version ".tar.gz"))
3056 (sha256
3057 (base32
3058 "0nhhfrrai3ndziz873vpa1j0vljjnib4wqafd6yyvkf58ad7v0lv"))))
3059 (build-system perl-build-system)
3060 (native-inputs
3061 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
3062 ("perl-catalyst-plugin-session-state-cookie"
3063 ,perl-catalyst-plugin-session-state-cookie)
3064 ("perl-test-exception" ,perl-test-exception)
3065 ("perl-test-pod" ,perl-test-pod)
3066 ("perl-test-utf8" ,perl-test-utf8)))
3067 (propagated-inputs
3068 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
3069 ("perl-class-load" ,perl-class-load)
3070 ("perl-libwww" ,perl-libwww)
3071 ("perl-moose" ,perl-moose)
3072 ("perl-namespace-clean" ,perl-namespace-clean)
3073 ("perl-test-www-mechanize" ,perl-test-www-mechanize)
3074 ("perl-www-mechanize" ,perl-www-mechanize)))
3075 (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-Catalyst")
3076 (synopsis "Test::WWW::Mechanize for Catalyst")
3077 (description "The Test::WWW::Mechanize::Catalyst module meshes the
3078 Test::WWW:Mechanize module and the Catalyst web application framework to allow
3079 testing of Catalyst applications without needing to start up a web server.")
3080 (license l:perl-license)))
3081
3082 (define-public perl-test-www-mechanize-psgi
3083 (package
3084 (name "perl-test-www-mechanize-psgi")
3085 (version "0.35")
3086 (source
3087 (origin
3088 (method url-fetch)
3089 (uri (string-append "mirror://cpan/authors/id/L/LB/LBROCARD/"
3090 "Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
3091 (sha256
3092 (base32
3093 "1hih8s49zf38bisvhnhzrrj0zwyiivkrbs7nmmdqm1qqy27wv7pc"))))
3094 (build-system perl-build-system)
3095 (native-inputs
3096 `(("perl-test-pod" ,perl-test-pod)))
3097 (propagated-inputs
3098 `(("perl-plack" ,perl-plack)
3099 ("perl-test-www-mechanize" ,perl-test-www-mechanize)))
3100 (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-PSGI")
3101 (synopsis "Test PSGI programs using WWW::Mechanize")
3102 (description "PSGI is a specification to decouple web server environments
3103 from web application framework code. Test::WWW::Mechanize is a subclass of
3104 WWW::Mechanize that incorporates features for web application testing. The
3105 Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI
3106 applications.")
3107 (license l:perl-license)))
3108
3109 (define-public perl-uri
3110 (package
3111 (name "perl-uri")
3112 (version "1.71")
3113 (source (origin
3114 (method url-fetch)
3115 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
3116 "URI-" version ".tar.gz"))
3117 (sha256
3118 (base32
3119 "05a1ck1bhvqkkk690xhsxf7276dnagk96qkh2jy4prrrgw6wm3lw"))))
3120 (build-system perl-build-system)
3121 (license l:perl-license)
3122 (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
3123 (description
3124 "The URI module implements the URI class. Objects of this class
3125 represent \"Uniform Resource Identifier references\" as specified in RFC 2396
3126 and updated by RFC 2732.")
3127 (home-page "http://search.cpan.org/dist/URI/")))
3128
3129 (define-public perl-uri-fetch
3130 (package
3131 (name "perl-uri-fetch")
3132 (version "0.13")
3133 (source (origin
3134 (method url-fetch)
3135 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
3136 "URI-Fetch-" version ".tar.gz"))
3137 (sha256
3138 (base32
3139 "0rw6xiqm70s218aii9id3hf8j3pz6n22xnwd8v9m1ff2bnh63c0d"))))
3140 (build-system perl-build-system)
3141 (arguments
3142 `(#:tests? #f)) ; Tests require internet connection to succeed
3143 (inputs
3144 `(("perl-class-errorhandler" ,perl-class-errorhandler)
3145 ("perl-libwww" ,perl-libwww)
3146 ("perl-uri" ,perl-uri)))
3147 (home-page "http://search.cpan.org/dist/URI-Fetch")
3148 (synopsis "Smart URI fetching/caching")
3149 (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
3150 notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
3151 and time-saving way.")
3152 (license l:perl-license)))
3153
3154 (define-public perl-uri-find
3155 (package
3156 (name "perl-uri-find")
3157 (version "20140709")
3158 (source
3159 (origin
3160 (method url-fetch)
3161 (uri (string-append "mirror://cpan/authors/id/M/MS/MSCHWERN/"
3162 "URI-Find-" version ".tar.gz"))
3163 (sha256
3164 (base32
3165 "0czc4h182s7sx3k123m7qlg7yybnwxgh369hap3c3b6xgrglrhy0"))))
3166 (build-system perl-build-system)
3167 (native-inputs
3168 `(("perl-module-build" ,perl-module-build)))
3169 (propagated-inputs
3170 `(("perl-uri" ,perl-uri)))
3171 (home-page "http://search.cpan.org/dist/URI-Find")
3172 (synopsis "Find URIs in arbitrary text")
3173 (description "This module finds URIs and URLs (according to what URI.pm
3174 considers a URI) in plain text. It only finds URIs which include a
3175 scheme (http:// or the like), for something a bit less strict, consider
3176 URI::Find::Schemeless. For a command-line interface, urifind is provided.")
3177 (license l:perl-license)))
3178
3179 (define-public perl-uri-ws
3180 (package
3181 (name "perl-uri-ws")
3182 (version "0.03")
3183 (source
3184 (origin
3185 (method url-fetch)
3186 (uri (string-append "mirror://cpan/authors/id/P/PL/PLICEASE/"
3187 "URI-ws-" version ".tar.gz"))
3188 (sha256
3189 (base32
3190 "1vs1wm80sq685944g1l4a0fxcbccc00c0f9648yabdmcf90hwsvf"))))
3191 (build-system perl-build-system)
3192 (propagated-inputs
3193 `(("perl-uri" ,perl-uri)))
3194 (home-page "http://search.cpan.org/dist/URI-ws")
3195 (synopsis "WebSocket support for URI package")
3196 (description "With this module, the URI package provides the same set of
3197 methods for WebSocket URIs as it does for HTTP URIs.")
3198 (license l:perl-license)))
3199
3200 (define-public perl-uri-template
3201 (package
3202 (name "perl-uri-template")
3203 (version "0.22")
3204 (source (origin
3205 (method url-fetch)
3206 (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-"
3207 version ".tar.gz"))
3208 (sha256
3209 (base32
3210 "08kjjb4c0v9gqfrfnj1wkivylxl05finn11ra64dj136fhmnyrbg"))))
3211 (build-system perl-build-system)
3212 (inputs
3213 `(("perl-uri" ,perl-uri)))
3214 (native-inputs
3215 `(("perl-test-pod-coverage" ,perl-test-pod-coverage)
3216 ("perl-test-pod" ,perl-test-pod)
3217 ("perl-json" ,perl-json)))
3218 (home-page "http://search.cpan.org/dist/URI-Template")
3219 (synopsis "Object for handling URI templates")
3220 (description "This perl module provides a wrapper around URI templates as described in
3221 RFC 6570.")
3222 (license l:perl-license)))
3223
3224 (define-public perl-www-curl
3225 (package
3226 (name "perl-www-curl")
3227 (version "4.17")
3228 (source (origin
3229 (method url-fetch)
3230 (uri (string-append
3231 "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-"
3232 version".tar.gz"))
3233 (patches (search-patches "perl-www-curl-remove-symbol.patch"))
3234 (sha256
3235 (base32
3236 "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj"))))
3237 (build-system perl-build-system)
3238 (arguments
3239 '(#:tests? #f)) ;XXX: tests require network access
3240 (inputs `(("curl" ,curl)))
3241 (synopsis "Perl extension interface for libcurl")
3242 (description
3243 "This is a Perl extension interface for the libcurl file downloading
3244 library.")
3245 (license l:perl-license)
3246 (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm")))
3247
3248 (define-public perl-www-mechanize
3249 (package
3250 (name "perl-www-mechanize")
3251 (version "1.73")
3252 (source
3253 (origin
3254 (method url-fetch)
3255 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
3256 "WWW-Mechanize-" version ".tar.gz"))
3257 (sha256
3258 (base32
3259 "1zrw8aadhwy48q51x2z2rqlkwf17bya4j4h3hy89mw783j96rmg9"))))
3260 (build-system perl-build-system)
3261 (native-inputs ;only for tests
3262 `(("perl-cgi" ,perl-cgi)))
3263 (propagated-inputs
3264 `(("perl-html-form" ,perl-html-form)
3265 ("perl-html-parser" ,perl-html-parser)
3266 ("perl-http-message" ,perl-http-message)
3267 ("perl-http-server-simple" ,perl-http-server-simple)
3268 ("perl-libwww" ,perl-libwww)
3269 ("perl-test-warn" ,perl-test-warn)
3270 ("perl-uri" ,perl-uri)))
3271 (home-page "http://search.cpan.org/dist/WWW-Mechanize")
3272 (synopsis "Web browsing in a Perl object")
3273 (description "WWW::Mechanize is a Perl module for stateful programmatic
3274 web browsing, used for automating interaction with websites.")
3275 (license l:perl-license)))
3276
3277 (define-public perl-www-opensearch
3278 (package
3279 (name "perl-www-opensearch")
3280 (version "0.17")
3281 (source (origin
3282 (method url-fetch)
3283 (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/"
3284 "WWW-OpenSearch-" version ".tar.gz"))
3285 (sha256
3286 (base32
3287 "1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb"))))
3288 (build-system perl-build-system)
3289 (arguments
3290 `(#:tests? #f)) ; Tests require further modules to be packaged
3291 (inputs
3292 `(("perl-data-page" ,perl-data-page)
3293 ("perl-libwww" ,perl-libwww)
3294 ("perl-uri" ,perl-uri)
3295 ("perl-uri-template" ,perl-uri-template)
3296 ("perl-xml-feed" ,perl-xml-feed)
3297 ("perl-xml-libxml" ,perl-xml-libxml)))
3298 (home-page "http://search.cpan.org/dist/WWW-OpenSearch")
3299 (synopsis "Search A9 OpenSearch compatible engines")
3300 (description
3301 "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
3302 http://opensearch.a9.com} compatible search engines.")
3303 (license l:perl-license)))
3304
3305 (define-public perl-www-robotrules
3306 (package
3307 (name "perl-www-robotrules")
3308 (version "6.02")
3309 (source (origin
3310 (method url-fetch)
3311 (uri (string-append
3312 "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-"
3313 version ".tar.gz"))
3314 (sha256
3315 (base32
3316 "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6"))))
3317 (build-system perl-build-system)
3318 (propagated-inputs
3319 `(("perl-uri" ,perl-uri)))
3320 (license l:perl-license)
3321 (synopsis "Perl database of robots.txt-derived permissions")
3322 (description
3323 "The WWW::RobotRules module parses /robots.txt files as specified in
3324 \"A Standard for Robot Exclusion\", at
3325 <http://www.robotstxt.org/wc/norobots.html>. Webmasters can use the
3326 /robots.txt file to forbid conforming robots from accessing parts of
3327 their web site.")
3328 (home-page "http://search.cpan.org/~gaas/WWW-RobotRules/")))
3329
3330 (define-public python-feedparser
3331 (package
3332 (name "python-feedparser")
3333 (version "5.2.1")
3334 (source
3335 (origin
3336 (method url-fetch)
3337 (uri (pypi-uri "feedparser" version ".tar.bz2"))
3338 (sha256
3339 (base32
3340 "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
3341 (build-system python-build-system)
3342 (arguments
3343 '(#:tests? #f))
3344 (home-page
3345 "https://github.com/kurtmckee/feedparser")
3346 (synopsis "Parse feeds in Python")
3347 (description
3348 "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
3349 CDF, Atom 0.3, and Atom 1.0 feeds.")
3350 (license (list l:bsd-2 ; source code
3351 l:freebsd-doc)))) ; documentation
3352
3353 (define-public python2-feedparser
3354 (package-with-python2 python-feedparser))
3355
3356 (define-public r-httpuv
3357 (package
3358 (name "r-httpuv")
3359 (version "1.3.3")
3360 (source (origin
3361 (method url-fetch)
3362 (uri (cran-uri "httpuv" version))
3363 (sha256
3364 (base32
3365 "0aibs0hf38n8f6xxx4g2i2lzd6l5h92m5pscx2z834sdvhnladxv"))))
3366 (build-system r-build-system)
3367 (native-inputs `(("r-rcpp" ,r-rcpp)))
3368 (home-page "https://github.com/rstudio/httpuv")
3369 (synopsis "HTTP and WebSocket server library for R")
3370 (description
3371 "The httpuv package provides low-level socket and protocol support for
3372 handling HTTP and WebSocket requests directly from within R. It is primarily
3373 intended as a building block for other packages, rather than making it
3374 particularly easy to create complete web applications using httpuv alone.")
3375 ;; This package includes third-party code that was originally released
3376 ;; under various non-copyleft licenses. Full licensing information can be
3377 ;; obtained here: https://github.com/rstudio/httpuv/blob/master/LICENSE
3378 (license l:gpl3+)))
3379
3380 (define-public r-jsonlite
3381 (package
3382 (name "r-jsonlite")
3383 (version "1.4")
3384 (source (origin
3385 (method url-fetch)
3386 (uri (cran-uri "jsonlite" version))
3387 (sha256
3388 (base32
3389 "11rgkjp5qir79niad0aizjxvjzyvkl6l9nsrv3ikv446vllmrasn"))))
3390 (build-system r-build-system)
3391 (home-page "http://arxiv.org/abs/1403.2805")
3392 (synopsis "Robust, high performance JSON parser and generator for R")
3393 (description
3394 "The jsonlite package provides a fast JSON parser and generator optimized
3395 for statistical data and the web. It offers flexible, robust, high
3396 performance tools for working with JSON in R and is particularly powerful for
3397 building pipelines and interacting with a web API. In addition to converting
3398 JSON data from/to R objects, jsonlite contains functions to stream, validate,
3399 and prettify JSON data. The unit tests included with the package verify that
3400 all edge cases are encoded and decoded consistently for use with dynamic data
3401 in systems and applications.")
3402 (license l:expat)))
3403
3404 (define-public r-servr
3405 (package
3406 (name "r-servr")
3407 (version "0.5")
3408 (source (origin
3409 (method url-fetch)
3410 (uri (cran-uri "servr" version))
3411 (sha256
3412 (base32
3413 "1ixcl9xjc1k9zvl6v6bsw4kpramr1h53b4s46qg8kahkqy6kqd8a"))))
3414 (build-system r-build-system)
3415 (propagated-inputs
3416 `(("r-httpuv" ,r-httpuv)
3417 ("r-jsonlite" ,r-jsonlite)
3418 ("r-mime" ,r-mime)))
3419 (native-inputs
3420 `(("r-rcpp" ,r-rcpp)))
3421 (home-page "https://github.com/yihui/servr")
3422 (synopsis "Simple HTTP server to serve static files or dynamic documents")
3423 (description
3424 "Servr provides an HTTP server in R to serve static files, or dynamic
3425 documents that can be converted to HTML files (e.g., R Markdown) under a given
3426 directory.")
3427 (license l:expat)))
3428
3429 (define-public r-htmltools
3430 (package
3431 (name "r-htmltools")
3432 (version "0.3.5")
3433 (source (origin
3434 (method url-fetch)
3435 (uri (cran-uri "htmltools" version))
3436 (sha256
3437 (base32
3438 "0j9bf80grd6gwh7116m575pycv87c0wcwkxsz3gzzfs4aw3pxyr9"))))
3439 (build-system r-build-system)
3440 (arguments
3441 `(#:phases
3442 (modify-phases %standard-phases
3443 ;; See https://github.com/rstudio/htmltools/pull/68
3444 ;; The resource files are in the store and have mode 444. After
3445 ;; copying the files R fails to remove them again because it doesn't
3446 ;; have write access to them.
3447 (add-after 'unpack 'copy-files-without-mode
3448 (lambda _
3449 (substitute* "R/html_dependency.R"
3450 (("file.copy\\(from, to, " prefix)
3451 (string-append prefix
3452 "copy.mode = FALSE, ")))
3453 #t)))))
3454 (propagated-inputs
3455 `(("r-digest" ,r-digest)
3456 ("r-rcpp" ,r-rcpp)))
3457 (home-page "http://cran.r-project.org/web/packages/htmltools")
3458 (synopsis "R tools for HTML")
3459 (description
3460 "This package provides tools for HTML generation and output in R.")
3461 (license l:expat)))
3462
3463 (define-public r-htmlwidgets
3464 (package
3465 (name "r-htmlwidgets")
3466 (version "0.8")
3467 (source (origin
3468 (method url-fetch)
3469 (uri (cran-uri "htmlwidgets" version))
3470 (sha256
3471 (base32
3472 "1df3pwl34rvdbr9sgr5h27q9bmqpckvpwq4frl3d1v614y3vfclj"))))
3473 (build-system r-build-system)
3474 (propagated-inputs
3475 `(("r-htmltools" ,r-htmltools)
3476 ("r-jsonlite" ,r-jsonlite)
3477 ("r-yaml" ,r-yaml)))
3478 (home-page "https://github.com/ramnathv/htmlwidgets")
3479 (synopsis "HTML Widgets for R")
3480 (description
3481 "HTML widgets is a framework for creating HTML widgets that render in
3482 various contexts including the R console, R Markdown documents, and Shiny web
3483 applications.")
3484 (license l:expat)))
3485
3486 (define-public r-htmltable
3487 (package
3488 (name "r-htmltable")
3489 (version "1.9")
3490 (source
3491 (origin
3492 (method url-fetch)
3493 (uri (cran-uri "htmlTable" version))
3494 (sha256
3495 (base32
3496 "0ciic1f4iczq14j81fg7kxibn65sy8z1zxkvk1yxnxxg6dzplj2v"))))
3497 (properties `((upstream-name . "htmlTable")))
3498 (build-system r-build-system)
3499 (propagated-inputs
3500 `(("r-checkmate" ,r-checkmate)
3501 ("r-htmlwidgets" ,r-htmlwidgets)
3502 ("r-knitr" ,r-knitr)
3503 ("r-magrittr" ,r-magrittr)
3504 ("r-stringr" ,r-stringr)))
3505 (home-page "http://gforge.se/packages/")
3506 (synopsis "Advanced tables for Markdown/HTML")
3507 (description
3508 "This package provides functions to build tables with advanced layout
3509 elements such as row spanners, column spanners, table spanners, zebra
3510 striping, and more. While allowing advanced layout, the underlying
3511 CSS-structure is simple in order to maximize compatibility with word
3512 processors such as LibreOffice. The package also contains a few text
3513 formatting functions that help outputting text compatible with HTML or
3514 LaTeX.")
3515 (license l:gpl3+)))
3516
3517 (define-public r-curl
3518 (package
3519 (name "r-curl")
3520 (version "2.5")
3521 (source (origin
3522 (method url-fetch)
3523 (uri (cran-uri "curl" version))
3524 (sha256
3525 (base32
3526 "09p86i5f88gx1i7cidm1ka56g0jjkghqfam96p1jhwlh2fv6nrks"))))
3527 (build-system r-build-system)
3528 (arguments
3529 `(#:phases
3530 (modify-phases %standard-phases
3531 ;; The environment variable CURL_CA_BUNDLE is only respected when
3532 ;; running Windows, so we disable the platform checks.
3533 ;; This can be removed once the libcurl has been patched.
3534 (add-after 'unpack 'allow-CURL_CA_BUNDLE
3535 (lambda _
3536 (substitute* "R/onload.R"
3537 (("if \\(!grepl\\(\"mingw\".*")
3538 "if (FALSE)\n"))
3539 (substitute* "src/handle.c"
3540 (("#ifdef _WIN32") "#if 1"))
3541 #t)))))
3542 (inputs
3543 `(("libcurl" ,curl)))
3544 (home-page "https://github.com/jeroenooms/curl")
3545 (synopsis "HTTP client for R")
3546 (description
3547 "The @code{curl()} and @code{curl_download()} functions provide highly
3548 configurable drop-in replacements for base @code{url()} and
3549 @code{download.file()} with better performance, support for encryption, gzip
3550 compression, authentication, and other @code{libcurl} goodies. The core of
3551 the package implements a framework for performing fully customized requests
3552 where data can be processed either in memory, on disk, or streaming via the
3553 callback or connection interfaces.")
3554 (license l:expat)))
3555
3556 (define-public r-hwriter
3557 (package
3558 (name "r-hwriter")
3559 (version "1.3.2")
3560 (source
3561 (origin
3562 (method url-fetch)
3563 (uri (cran-uri "hwriter" version))
3564 (sha256
3565 (base32
3566 "0arjsz854rfkfqhgvpqbm9lfni97dcjs66isdsfvwfd2wz932dbb"))))
3567 (build-system r-build-system)
3568 (home-page "http://cran.r-project.org/web/packages/hwriter")
3569 (synopsis "Output R objects in HTML format")
3570 (description
3571 "This package provides easy-to-use and versatile functions to output R
3572 objects in HTML format.")
3573 (license l:lgpl2.1+)))
3574
3575 (define-public r-rjson
3576 (package
3577 (name "r-rjson")
3578 (version "0.2.15")
3579 (source
3580 (origin
3581 (method url-fetch)
3582 (uri (cran-uri "rjson" version))
3583 (sha256
3584 (base32
3585 "1vzjyvf57k1fjizlk28rby65y5lsww5qnfvgnhln74qwda7hvl3p"))))
3586 (build-system r-build-system)
3587 (home-page "http://cran.r-project.org/web/packages/rjson")
3588 (synopsis "JSON library for R")
3589 (description
3590 "This package provides functions to convert R objects into JSON objects
3591 and vice-versa.")
3592 (license l:gpl2+)))
3593
3594 (define-public gumbo-parser
3595 (package
3596 (name "gumbo-parser")
3597 (version "0.10.1")
3598 (source (origin
3599 (method url-fetch)
3600 (uri (string-append "https://github.com/google/"
3601 "gumbo-parser/archive/v" version ".tar.gz"))
3602 (file-name (string-append name "-" version ".tar.gz"))
3603 (sha256
3604 (base32
3605 "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8"))))
3606 (build-system gnu-build-system)
3607 (arguments
3608 `(#:tests? #f ; tests require bundling googletest sources
3609 #:phases
3610 (modify-phases %standard-phases
3611 (add-after 'unpack 'bootstrap
3612 (lambda _ (zero? (system* "sh" "autogen.sh")))))))
3613 ;; The release tarball lacks the generated files.
3614 (native-inputs
3615 `(("autoconf" ,autoconf)
3616 ("automake" ,automake)
3617 ("libtool" ,libtool)))
3618 (home-page "https://github.com/google/gumbo-parser")
3619 (synopsis "HTML5 parsing library")
3620 (description
3621 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as
3622 a pure C99 library.")
3623 (license l:asl2.0)))
3624
3625 (define-public uwsgi
3626 (package
3627 (name "uwsgi")
3628 (version "2.0.12")
3629 (source (origin
3630 (method url-fetch)
3631 (uri (string-append "http://projects.unbit.it/downloads/uwsgi-"
3632 version ".tar.gz"))
3633 (sha256
3634 (base32
3635 "02g46dnw5j1iw8fsq392bxbk8d21b9pdgb3ypcinv3b4jzdm2srh"))))
3636 (build-system gnu-build-system)
3637 (outputs '("out" "python"))
3638 (arguments
3639 '(;; XXX: The 'check' target runs cppcheck to do static code analysis.
3640 ;; But there is no obvious way to run the real tests.
3641 #:tests? #f
3642 #:phases
3643 (modify-phases %standard-phases
3644 (replace 'configure
3645 ;; Configuration is done by writing an ini file.
3646 (lambda* (#:key outputs #:allow-other-keys)
3647 (let* ((out (assoc-ref outputs "out"))
3648 (bindir (string-append out "/bin"))
3649 (plugindir (string-append out "/lib/uwsgi")))
3650 ;; The build phase outputs files to these directories directly.
3651 (mkdir-p bindir)
3652 (mkdir-p plugindir)
3653 ;; XXX: Enable other plugins.
3654 (call-with-output-file "buildconf/guix.ini"
3655 (lambda (port)
3656 (format port "[uwsgi]
3657 yaml = libyaml
3658 bin_name = ~a/uwsgi
3659 plugin_dir = ~a
3660
3661 inherit = base
3662 plugins = cgi,python
3663 embedded_plugins =
3664 " bindir plugindir))))
3665 (setenv "PROFILE" "guix")
3666 #t))
3667 (replace 'install
3668 ;; Move plugins into their own output.
3669 (lambda* (#:key outputs #:allow-other-keys)
3670 (let* ((out (assoc-ref outputs "out"))
3671 (plugindir (string-append out "/lib/uwsgi"))
3672 (python-plugin (string-append
3673 plugindir "/python_plugin.so")))
3674 (install-file python-plugin
3675 (string-append
3676 (assoc-ref outputs "python") "/lib/uwsgi"))
3677 (delete-file python-plugin)
3678 #t))))))
3679 (native-inputs
3680 `(("pkg-config" ,pkg-config)
3681 ("python" ,python-wrapper)))
3682 (inputs
3683 `(("jansson" ,jansson)
3684 ("libxml2" ,libxml2)
3685 ("libyaml" ,libyaml)
3686 ("openssl" ,openssl)
3687 ("pcre" ,pcre)
3688 ("zlib" ,zlib)
3689 ;; For plugins.
3690 ("python" ,python)))
3691 (home-page "https://uwsgi-docs.readthedocs.org/")
3692 (synopsis "Application container server")
3693 (description
3694 "uWSGI presents a complete stack for networked/clustered web applications,
3695 implementing message/object passing, caching, RPC and process management.
3696 It uses the uwsgi protocol for all the networking/interprocess communications.")
3697 (license l:gpl2+))) ; with linking exception
3698
3699 (define-public jq
3700 (package
3701 (name "jq")
3702 (version "1.5")
3703 (source (origin
3704 (method url-fetch)
3705 (uri (string-append "https://github.com/stedolan/" name
3706 "/releases/download/" name "-" version
3707 "/" name "-" version ".tar.gz"))
3708 (sha256
3709 (base32
3710 "0g29kyz4ykasdcrb0zmbrp2jqs9kv1wz9swx849i2d1ncknbzln4"))
3711 ;; This patch has been pushed and the vulnerability will be
3712 ;; fixed in the next release after 1.5.
3713 ;; https://github.com/stedolan/jq/issues/995
3714 (patches (search-patches "jq-CVE-2015-8863.patch"))))
3715 (inputs
3716 `(("oniguruma" ,oniguruma)))
3717 (native-inputs
3718 `(;; TODO fix gems to generate documentation
3719 ;;("ruby" ,ruby)
3720 ;;("bundler" ,bundler)
3721 ("valgrind" ,valgrind)))
3722 (build-system gnu-build-system)
3723 (home-page "http://stedolan.github.io/jq/")
3724 (synopsis "Command-line JSON processor")
3725 (description "jq is like sed for JSON data – you can use it to slice and
3726 filter and map and transform structured data with the same ease that sed, awk,
3727 grep and friends let you play with text. It is written in portable C. jq can
3728 mangle the data format that you have into the one that you want with very
3729 little effort, and the program to do so is often shorter and simpler than
3730 you'd expect.")
3731 (license (list l:expat l:cc-by3.0))))
3732
3733 (define-public uhttpmock
3734 (package
3735 (name "uhttpmock")
3736 (version "0.5.0")
3737 (source
3738 (origin
3739 (method url-fetch)
3740 (uri (string-append "http://tecnocode.co.uk/downloads/uhttpmock/"
3741 name "-" version ".tar.xz"))
3742 (sha256
3743 (base32
3744 "0vniyx341pnnmvxmqacc49k0g7h9a9nhknfslidrqmxj5lm1ini6"))))
3745 (build-system glib-or-gtk-build-system)
3746 (arguments
3747 `(#:phases
3748 (modify-phases %standard-phases
3749 (add-before 'check 'use-empty-ssl-cert-file
3750 (lambda _
3751 ;; Search for ca-certificates.crt files
3752 ;; during the check phase.
3753 (setenv "SSL_CERT_FILE" "/dev/null")
3754 #t)))))
3755 (native-inputs
3756 `(("gobject-introspection" ,gobject-introspection)
3757 ;; For check phase.
3758 ("glib-networking" ,glib-networking)
3759 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3760 ("pkg-config" ,pkg-config)))
3761 (inputs
3762 `(("libsoup" ,libsoup)))
3763 (home-page "https://gitlab.com/groups/uhttpmock")
3764 (synopsis "Library for mocking web service APIs which use HTTP or HTTPS")
3765 (description
3766 "Uhttpmock is a project for mocking web service APIs which use HTTP or
3767 HTTPS. It provides a library, libuhttpmock, which implements recording and
3768 playback of HTTP request/response traces.")
3769 (license l:lgpl2.1+)))
3770
3771 (define-public woof
3772 (package
3773 (name "woof")
3774 (version "2012-05-31")
3775 (source (origin
3776 (method url-fetch)
3777 (uri (string-append
3778 "http://www.home.unix-ag.org/simon/woof-"
3779 version ".py"))
3780 (sha256
3781 (base32
3782 "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq"))))
3783 (build-system trivial-build-system)
3784 (arguments
3785 '(#:modules ((guix build utils))
3786 #:builder
3787 (begin
3788 (use-modules (guix build utils))
3789 (let* ((source (assoc-ref %build-inputs "source"))
3790 (out (assoc-ref %outputs "out"))
3791 (bin (string-append out "/bin"))
3792 (python (assoc-ref %build-inputs "python")))
3793 (mkdir-p bin)
3794 (with-directory-excursion bin
3795 (copy-file source "woof")
3796 (patch-shebang "woof" (list (string-append python "/bin")))
3797 (chmod "woof" #o555))
3798 #t))))
3799 (inputs `(("python" ,python-2)))
3800 (home-page "http://www.home.unix-ag.org/simon/woof.html")
3801 (synopsis "Single file web server")
3802 (description "Woof (Web Offer One File) is a small simple web server that
3803 can easily be invoked on a single file. Your partner can access the file with
3804 tools they trust (e.g. wget).")
3805 (license l:gpl2+)))
3806
3807 (define netsurf-buildsystem
3808 (package
3809 (name "netsurf-buildsystem")
3810 (version "1.5")
3811 (source
3812 (origin
3813 (method url-fetch)
3814 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
3815 "buildsystem-" version ".tar.gz"))
3816 (sha256
3817 (base32
3818 "0wdgvasrjik1dgvvpqbppbpyfzkqd1v45x3g9rq7p67n773azinv"))))
3819 (build-system gnu-build-system)
3820 (inputs `(("perl" ,perl)))
3821 (arguments
3822 '(#:make-flags (list (string-append "PREFIX=" %output))
3823 #:tests? #f ;no tests
3824 #:phases (modify-phases %standard-phases
3825 (delete 'configure)
3826 (delete 'build))))
3827 (home-page "http://www.netsurf-browser.org")
3828 (synopsis "Build system for the Netsurf project")
3829 (description
3830 "This package provides the shared build system for Netsurf project
3831 libraries.")
3832 (license l:expat)))
3833
3834 (define netsurf-buildsystem-arguments
3835 `(#:make-flags `("COMPONENT_TYPE=lib-shared"
3836 "CC=gcc" "BUILD_CC=gcc"
3837 ,(string-append "PREFIX=" %output)
3838 ,(string-append "NSSHARED="
3839 (assoc-ref %build-inputs
3840 "netsurf-buildsystem")
3841 "/share/netsurf-buildsystem"))
3842 #:test-target "test"
3843 #:phases (modify-phases %standard-phases
3844 (delete 'configure))))
3845
3846 (define-public libparserutils
3847 (package
3848 (name "libparserutils")
3849 (version "0.2.3")
3850 (source
3851 (origin
3852 (method url-fetch)
3853 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
3854 name "-" version "-src.tar.gz"))
3855 (sha256
3856 (base32
3857 "01gzlsabgl6x0icd8758d9jqs8rrf9574bdkjainn04w3fs3znf5"))))
3858 (build-system gnu-build-system)
3859 (native-inputs
3860 `(("netsurf-buildsystem" ,netsurf-buildsystem)
3861 ("pkg-config" ,pkg-config)
3862 ("perl" ,perl))) ;for test harness
3863 (arguments netsurf-buildsystem-arguments)
3864 (home-page "http://www.netsurf-browser.org/projects/libparserutils/")
3865 (synopsis "Parser building library")
3866 (description
3867 "LibParserUtils is a library for building efficient parsers, written in
3868 C. It is developed as part of the NetSurf project.")
3869 (license l:expat)))
3870
3871 (define-public hubbub
3872 (package
3873 (name "hubbub")
3874 (version "0.3.3")
3875 (source
3876 (origin
3877 (method url-fetch)
3878 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
3879 "lib" name "-" version "-src.tar.gz"))
3880 (sha256
3881 (base32
3882 "101781iw32p47386fxqr01nrkywi12w17ajh02k2vlga4z8zyv86"))
3883 (patches (search-patches "hubbub-sort-entities.patch"))))
3884 (build-system gnu-build-system)
3885 (native-inputs
3886 `(("netsurf-buildsystem" ,netsurf-buildsystem)
3887 ("pkg-config" ,pkg-config)
3888 ("doxygen" ,doxygen)
3889 ("json-c" ,json-c)
3890 ("perl" ,perl)))
3891 (propagated-inputs
3892 `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
3893 (arguments netsurf-buildsystem-arguments)
3894 (home-page "http://www.netsurf-browser.org/projects/hubbub/")
3895 (synopsis "HTML5 compliant parsing library")
3896 (description
3897 "Hubbub is an HTML5 compliant parsing library, written in C, which can
3898 parse both valid and invalid web content. It is developed as part of the
3899 NetSurf project.")
3900 (license l:expat)))
3901
3902 (define-public libwapcaplet
3903 (package
3904 (name "libwapcaplet")
3905 (version "0.3.0")
3906 (source
3907 (origin
3908 (method url-fetch)
3909 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
3910 name "-" version "-src.tar.gz"))
3911 (sha256
3912 (base32
3913 "0cs1dd2afjgc3wf5gqg434hv6jdabrp9qvlpl4dp53nhkyfywna3"))))
3914 (build-system gnu-build-system)
3915 (native-inputs
3916 `(("netsurf-buildsystem" ,netsurf-buildsystem)
3917 ("pkg-config" ,pkg-config)
3918 ("check" ,check))) ;for tests
3919 (arguments netsurf-buildsystem-arguments)
3920 (home-page "http://www.netsurf-browser.org/projects/libwapcaplet/")
3921 (synopsis "String internment library")
3922 (description
3923 "LibWapcaplet provides a reference counted string internment system
3924 designed to store small strings and allow rapid comparison of them. It is
3925 developed as part of the Netsurf project.")
3926 (license l:expat)))
3927
3928 (define-public libcss
3929 (package
3930 (name "libcss")
3931 (version "0.6.0")
3932 (source
3933 (origin
3934 (method url-fetch)
3935 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
3936 name "-" version "-src.tar.gz"))
3937 (sha256
3938 (base32
3939 "0qp4p1q1dwgdra4pkrzd081zjzisxkgwx650ijx323j8bj725daf"))))
3940 (build-system gnu-build-system)
3941 (native-inputs
3942 `(("netsurf-buildsystem" ,netsurf-buildsystem)
3943 ("pkg-config" ,pkg-config)
3944 ("perl" ,perl)))
3945 (propagated-inputs ;needed for libcss.pc
3946 `(("libparserutils" ,libparserutils)
3947 ("libwapcaplet" ,libwapcaplet)))
3948 (arguments netsurf-buildsystem-arguments)
3949 (home-page "http://www.netsurf-browser.org/projects/libcss/")
3950 (synopsis "CSS parser and selection library")
3951 (description
3952 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,
3953 written in C. It is developed as part of the NetSurf project.")
3954 (license l:expat)))
3955
3956 (define-public libdom
3957 (package
3958 (name "libdom")
3959 (version "0.3.1")
3960 (source
3961 (origin
3962 (method url-fetch)
3963 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
3964 name "-" version "-src.tar.gz"))
3965 (sha256
3966 (base32
3967 "0qy7c8b229aiamyqqjgp6m1jlzc3fpl8s9dk33kxzkj70na8l7hv"))))
3968 (build-system gnu-build-system)
3969 (native-inputs
3970 `(("netsurf-buildsystem" ,netsurf-buildsystem)
3971 ("pkg-config" ,pkg-config)
3972 ("perl" ,perl) ;for test harness
3973 ("perl-libxml" ,perl-libxml)
3974 ("perl-switch" ,perl-switch)
3975 ("perl-xml-xpath" ,perl-xml-xpath)))
3976 (inputs
3977 `(("libparserutils" ,libparserutils)
3978 ("libwapcaplet" ,libwapcaplet)))
3979 (propagated-inputs
3980 `(("expat" ,expat) ;needed for headers and linking
3981 ("hubbub" ,hubbub))) ;for libdom.pc
3982 (arguments
3983 `(#:tests? #f ;TODO: re-enable. tests take a looong time.
3984 ,@netsurf-buildsystem-arguments))
3985 (home-page "http://www.netsurf-browser.org/projects/libdom/")
3986 (synopsis "Implementation of the W3C DOM")
3987 (description
3988 "LibDOM is an implementation of the W3C DOM, written in C. It is
3989 developed as part of the NetSurf project.")
3990 (license l:expat)))
3991
3992 (define-public libsvgtiny
3993 (package
3994 (name "libsvgtiny")
3995 (version "0.1.5")
3996 (source
3997 (origin
3998 (method url-fetch)
3999 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4000 name "-" version "-src.tar.gz"))
4001 (sha256
4002 (base32
4003 "0w5hab9x1saz4lq2s9w47x1r64fbzcsl5bvdjph9c9dq68qv3f8a"))))
4004 (build-system gnu-build-system)
4005 (native-inputs
4006 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4007 ("pkg-config" ,pkg-config)
4008 ("gperf" ,gperf-3.0)))
4009 (inputs
4010 `(("libwapcaplet" ,libwapcaplet)))
4011 (propagated-inputs
4012 `(("libdom" ,libdom))) ;for libsvgtiny.pc
4013 (arguments netsurf-buildsystem-arguments)
4014 (home-page "http://www.netsurf-browser.org/projects/libsvgtiny/")
4015 (synopsis "Library for parsing SVG files")
4016 (description
4017 "Libsvgtiny takes some SVG as input and returns a list of paths and texts
4018 which can be rendered easily, as defined in
4019 @url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf
4020 project.")
4021 (license l:expat)))
4022
4023 (define-public libnsbmp
4024 (package
4025 (name "libnsbmp")
4026 (version "0.1.4")
4027 (source
4028 (origin
4029 (method url-fetch)
4030 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4031 name "-" version "-src.tar.gz"))
4032 (sha256
4033 (base32
4034 "0y4a0gn4l6lq4z9183wix0mdsgalqyw24k19k8jr8sz4h3lb7jrb"))))
4035 (build-system gnu-build-system)
4036 (native-inputs
4037 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4038 (arguments netsurf-buildsystem-arguments)
4039 (home-page "http://www.netsurf-browser.org/projects/libnsbmp/")
4040 (synopsis "Decoding library for BMP and ICO files")
4041 (description
4042 "Libnsbmp is a decoding library for BMP and ICO image file formats,
4043 written in C. It is developed as part of the NetSurf project.")
4044 (license l:expat)))
4045
4046 (define-public libnsgif
4047 (package
4048 (name "libnsgif")
4049 (version "0.1.4")
4050 (source
4051 (origin
4052 (method url-fetch)
4053 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4054 name "-" version "-src.tar.gz"))
4055 (sha256
4056 (base32
4057 "1ldsyscsgqwc8g5481h9nqmwirpp1pp57hmss450hr0mqra26g0k"))))
4058 (build-system gnu-build-system)
4059 (native-inputs
4060 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4061 (arguments netsurf-buildsystem-arguments)
4062 (home-page "http://www.netsurf-browser.org/projects/libnsgif/")
4063 (synopsis "Decoding library for GIF files")
4064 (description
4065 "Libnsgif is a decoding library for the GIF image file format, written in
4066 C. It is developed as part of the NetSurf project.")
4067 (license l:expat)))
4068
4069 (define-public libnsutils
4070 (package
4071 (name "libnsutils")
4072 (version "0.0.3")
4073 (source
4074 (origin
4075 (method url-fetch)
4076 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4077 name "-" version "-src.tar.gz"))
4078 (sha256
4079 (base32
4080 "0wrxn4rcn7xrfnkmf60jafqn3n1kicgsdpnakd821q56bmqvzf0m"))))
4081 (build-system gnu-build-system)
4082 (native-inputs
4083 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4084 (arguments netsurf-buildsystem-arguments)
4085 (home-page "http://www.netsurf-browser.org/")
4086 (synopsis "Utility library for NetSurf")
4087 (description
4088 "Libnsutils provides a small number of useful utility routines. It is
4089 developed as part of the NetSurf project.")
4090 (license l:expat)))
4091
4092 (define-public libnspsl
4093 (package
4094 (name "libnspsl")
4095 (version "0.1.0")
4096 (source
4097 (origin
4098 (method url-fetch)
4099 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4100 name "-" version "-src.tar.gz"))
4101 (sha256
4102 (base32
4103 "0x3frscrp9bzxlm9ama5laxjr3zi8cg20r8lhsamw4x4zyyk145y"))))
4104 (build-system gnu-build-system)
4105 (native-inputs
4106 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
4107 (arguments netsurf-buildsystem-arguments)
4108 (home-page "http://www.netsurf-browser.org/")
4109 (synopsis "Library to generate a static Public Suffix List")
4110 (description
4111 "Libnspsl is a library to generate a static code representation of the
4112 Public Suffix List. It is developed as part of the NetSurf project.")
4113 (license l:expat)))
4114
4115 (define-public nsgenbind
4116 (package
4117 (name "nsgenbind")
4118 (version "0.4")
4119 (source
4120 (origin
4121 (method url-fetch)
4122 (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
4123 name "-" version "-src.tar.gz"))
4124 (sha256
4125 (base32
4126 "078gpbfcs96bgcba0ygha0ph9jzqr6ry5s3a8p6sl61px2908s66"))))
4127 (build-system gnu-build-system)
4128 (native-inputs
4129 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4130 ("bison" ,bison)
4131 ("flex" ,flex)))
4132 (arguments
4133 (substitute-keyword-arguments netsurf-buildsystem-arguments
4134 ((#:make-flags flags)
4135 `(delete "COMPONENT_TYPE=lib-shared" ,flags))))
4136 (home-page "http://www.netsurf-browser.org/")
4137 (synopsis "Generate JavaScript to DOM bindings")
4138 (description
4139 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from
4140 w3c webidl files and a binding configuration file.")
4141 (license l:expat)))
4142
4143 (define-public netsurf
4144 (package
4145 (name "netsurf")
4146 (version "3.6")
4147 (source
4148 (origin
4149 (method url-fetch)
4150 (uri (string-append "http://download.netsurf-browser.org/netsurf/"
4151 "releases/source/netsurf-" version "-src.tar.gz"))
4152 (sha256
4153 (base32
4154 "174sjx0566agckwmlj4w2cip5qbxdiafyhlp185a1qprxx84pbjr"))
4155 (patches (search-patches "netsurf-system-utf8proc.patch"
4156 "netsurf-y2038-tests.patch"
4157 "netsurf-longer-test-timeout.patch"))))
4158 (build-system glib-or-gtk-build-system)
4159 (native-inputs
4160 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4161 ("nsgenbind" ,nsgenbind)
4162 ("libidn" ,libidn) ;only for tests
4163 ("check" ,check)
4164 ("perl" ,perl)
4165 ("perl-html-parser" ,perl-html-parser)
4166 ("pkg-config" ,pkg-config)))
4167 (inputs
4168 `(("curl" ,curl)
4169 ("gtk+" ,gtk+-2)
4170 ("openssl" ,openssl)
4171 ("utf8proc" ,utf8proc)
4172 ("libpng" ,libpng)
4173 ("libjpeg" ,libjpeg)
4174 ("libcss" ,libcss)
4175 ("libdom" ,libdom)
4176 ("libnsbmp" ,libnsbmp)
4177 ("libnsgif" ,libnsgif)
4178 ("libnspsl" ,libnspsl)
4179 ("libnsutils" ,libnsutils)
4180 ("libsvgtiny" ,libsvgtiny)
4181 ("miscfiles" ,miscfiles)))
4182 (arguments
4183 `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
4184 ,(string-append "PREFIX=" %output)
4185 ,(string-append "NSSHARED="
4186 (assoc-ref %build-inputs
4187 "netsurf-buildsystem")
4188 "/share/netsurf-buildsystem"))
4189 #:test-target "test"
4190 #:modules ((ice-9 rdelim)
4191 (ice-9 match)
4192 (srfi srfi-1)
4193 (sxml simple)
4194 ,@%glib-or-gtk-build-system-modules)
4195 #:phases
4196 (modify-phases %standard-phases
4197 (delete 'configure)
4198 (add-after 'build 'adjust-welcome
4199 (lambda _
4200 ;; First, fix some unended tags and simple substitutions
4201 (substitute* "frontends/gtk/res/welcome.html"
4202 (("<(img|input)([^>]*)>" _ tag contents)
4203 (string-append "<" tag contents " />"))
4204 (("Licence") "License") ;prefer GNU spelling
4205 ((" open source") ", free software")
4206 (("web&nbsp;site") "website")
4207 ;; Prefer privacy-respecting default search engine
4208 (("www.google.co.uk") "www.duckduckgo.com/html")
4209 (("Google Search") "DuckDuckGo Search")
4210 (("name=\"btnG\"") ""))
4211 ;; Remove default links so it doesn't seem we're endorsing them
4212 (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
4213 (lambda (in out)
4214 ;; Leave the DOCTYPE header as is
4215 (display (read-line in 'concat) out)
4216 (sxml->xml
4217 (let rec ((sxml (xml->sxml in)))
4218 ;; We'd like to use sxml-match here, but it can't
4219 ;; match against generic tag symbols...
4220 (match sxml
4221 (`(div (@ (class "links")) . ,rest)
4222 '())
4223 ((x ...)
4224 (map rec x))
4225 (x x)))
4226 out)))
4227 #t))
4228 (add-before 'check 'patch-check
4229 (lambda* (#:key inputs #:allow-other-keys)
4230 (substitute* '("test/bloom.c" "test/hashtable.c")
4231 (("/usr/share/dict/words")
4232 (string-append (assoc-ref inputs "miscfiles") "/share/web2")))
4233 #t))
4234 (add-after 'install 'install-more
4235 (lambda* (#:key outputs #:allow-other-keys)
4236 (let* ((out (assoc-ref outputs "out"))
4237 (desktop (string-append out "/share/applications/"
4238 "netsurf.desktop")))
4239 (mkdir-p (dirname desktop))
4240 (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
4241 desktop)
4242 (substitute* desktop
4243 (("netsurf-gtk") (string-append out "/bin/netsurf"))
4244 (("netsurf.png") (string-append out "/share/netsurf/"
4245 "netsurf.xpm")))
4246 (install-file "Docs/netsurf-gtk.1"
4247 (string-append out "/share/man/man1/"))
4248 #t))))))
4249 (home-page "http://www.netsurf-browser.org")
4250 (synopsis "Web browser")
4251 (description
4252 "NetSurf is a lightweight web browser that has its own layout and
4253 rendering engine entirely written from scratch. It is small and capable of
4254 handling many of the web standards in use today.")
4255 (license l:gpl2+)))
4256
4257 (define-public surfraw
4258 (package
4259 (name "surfraw")
4260 (version "2.2.9")
4261 (source (origin
4262 (method url-fetch)
4263 (uri (string-append "https://surfraw.alioth.debian.org/dist/"
4264 name "-" version ".tar.gz"))
4265 (sha256
4266 (base32
4267 "1fy4ph5h9kp0jzj1m6pfylxnnmgdk0mmdppw76z9jhna4jndk5xa"))))
4268 (build-system gnu-build-system)
4269 (arguments
4270 `(#:phases
4271 (modify-phases %standard-phases
4272 (add-after 'install 'compress-elvi.1sr
4273 (lambda* (#:key outputs #:allow-other-keys)
4274 ;; The manpages of the elvis are symlinks to elvi.1sr.gz
4275 ;; but elvi.1sr does not get compressed by our manpage phase.
4276 (let* ((out (assoc-ref %outputs "out"))
4277 (man (string-append out "/share/man/man1")))
4278 (with-directory-excursion man
4279 (zero? (system* "gzip" "elvi.1sr")))))))))
4280 (inputs
4281 `(("perl" ,perl)
4282 ("perl-www-opensearch" ,perl-www-opensearch)
4283 ("perl-html-parser" ,perl-html-parser)
4284 ("perl-libwww" ,perl-libwww)))
4285 (synopsis "Unix command line interface to the www")
4286 (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
4287 provides a unix command line interface to a variety of popular www search engines
4288 and similar services.")
4289 (home-page "https://surfraw.alioth.debian.org/")
4290 (license l:public-domain)))
4291
4292 (define-public darkhttpd
4293 (package
4294 (name "darkhttpd")
4295 (version "1.12")
4296 (source
4297 (origin
4298 (method url-fetch)
4299 (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
4300 version ".tar.bz2"))
4301 (sha256
4302 (base32
4303 "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
4304 (build-system gnu-build-system)
4305 (arguments
4306 `(#:make-flags '("CC=gcc")
4307 #:tests? #f ; No test suite
4308 #:phases
4309 (modify-phases %standard-phases
4310 (delete 'configure)
4311 (replace 'install
4312 (lambda* (#:key outputs #:allow-other-keys)
4313 (install-file "darkhttpd"
4314 (string-append (assoc-ref outputs "out")
4315 "/bin"))
4316 #t)))))
4317 (synopsis "Simple static web server")
4318 (description "darkhttpd is a simple static web server. It is
4319 standalone and does not need inetd or ucspi-tcp. It does not need any
4320 config files---you only have to specify the www root.")
4321 (home-page "https://unix4lyfe.org/darkhttpd/")
4322 (license l:isc)))
4323
4324 (define-public goaccess
4325 (package
4326 (name "goaccess")
4327 (version "1.0.2")
4328 (source (origin
4329 (method url-fetch)
4330 (uri (string-append "http://tar.goaccess.io/goaccess-"
4331 version ".tar.gz"))
4332 (sha256
4333 (base32
4334 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
4335 (modules '((guix build utils)))
4336 (snippet
4337 '(substitute* "src/error.h"
4338 (("__DATE__") "\"1970-01-01\"")
4339 (("__TIME__") "\"00:00:00\"")))))
4340 (build-system gnu-build-system)
4341 (inputs
4342 ;; TODO: Add dependency on geoip-tools.
4343 `(("glib" ,glib)
4344 ("ncurses" ,ncurses)))
4345 (native-inputs
4346 `(("pkg-config" ,pkg-config)))
4347 (home-page "https://goaccess.io")
4348 (synopsis "Analyze Web server logs in real time")
4349 (description
4350 "GoAccess is a real-time web log analyzer and interactive viewer that
4351 runs in a terminal or through your browser. It provides fast and valuable
4352 HTTP statistics for system administrators that require a visual server report
4353 on the fly.")
4354 (license l:x11)))
4355
4356 (define-public httptunnel
4357 (package
4358 (name "httptunnel")
4359 (version "3.3")
4360 (source
4361 (origin
4362 (method url-fetch)
4363 (uri (string-append "http://www.nocrew.org/software/httptunnel/"
4364 name "-" version ".tar.gz"))
4365 (sha256
4366 (base32
4367 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
4368 (modules '((guix build utils)))
4369 (snippet
4370 ;; Remove non-free IETF RFC documentation.
4371 '(delete-file-recursively "doc"))))
4372 (build-system gnu-build-system)
4373 (arguments
4374 `(#:phases
4375 (modify-phases %standard-phases
4376 ;; The default configure phase tries to pass environment variables as
4377 ;; command-line arguments, which confuses the ./configure script.
4378 (replace 'configure
4379 (lambda* (#:key outputs #:allow-other-keys)
4380 (let* ((out (assoc-ref outputs "out")))
4381 (setenv "CONFIG_SHELL" (which "bash"))
4382 (zero? (system* "./configure"
4383 (string-append "--prefix=" out)))))))))
4384 (home-page "http://www.nocrew.org/software/httptunnel.html")
4385 (synopsis "Tunnel data connections through HTTP requests")
4386 (description "httptunnel creates a bidirectional virtual data connection
4387 tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be
4388 useful for users behind restrictive firewalls. As long as Web traffic is
4389 allowed, even through a HTTP-only proxy, httptunnel can be combined with other
4390 tools like SSH (Secure Shell) to reach the outside world.")
4391 (license l:gpl2+)))
4392
4393 (define-public stunnel
4394 (package
4395 (name "stunnel")
4396 (version "5.39")
4397 (source
4398 (origin
4399 (method url-fetch)
4400 (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
4401 version ".tar.gz"))
4402 (sha256
4403 (base32
4404 "1vjdn32iw11zqsygwxbjmqgs4644dk3ql1h8ap890ls6a1x0i318"))))
4405 (build-system gnu-build-system)
4406 (inputs `(("openssl" ,openssl)))
4407 (arguments
4408 `(#:configure-flags
4409 (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))))
4410 (home-page "https://www.stunnel.org")
4411 (synopsis "TLS proxy for clients or servers")
4412 (description "Stunnel is a proxy designed to add TLS encryption
4413 functionality to existing clients and servers without any changes in the
4414 programs' code. Its architecture is optimized for security, portability, and
4415 scalability (including load-balancing), making it suitable for large
4416 deployments.")
4417 (license l:gpl2+)))
4418
4419 (define-public xinetd
4420 (package
4421 (name "xinetd")
4422 (version "2.3.15")
4423 (source
4424 (origin
4425 (method url-fetch)
4426 (uri "https://github.com/xinetd-org/xinetd/archive/xinetd-2-3-15.tar.gz")
4427 (patches (search-patches "xinetd-CVE-2013-4342.patch" "xinetd-fix-fd-leak.patch"))
4428 (sha256
4429 (base32
4430 "0k59x52cbzp5fw0n8zn0y54j1ps0x9b72y8k5grzswjdmgs2a2v2"))))
4431 (build-system gnu-build-system)
4432 (arguments
4433 `(#:configure-flags '("--with-loadavg")
4434 #:tests? #f )) ; no tests
4435 (home-page "https://github.com/xinetd-org/xinetd")
4436 (synopsis "Internet services daemon")
4437 (description "@code{xinetd}, a more secure replacement for @code{inetd},
4438 listens for incoming requests over a network and launches the appropriate
4439 service for that request. Requests are made using port numbers as identifiers
4440 and xinetd usually launches another daemon to handle the request. It can be
4441 used to start services with both privileged and non-privileged port numbers.")
4442 (license (l:fsf-free "file://COPYRIGHT"))))
4443
4444 (define-public tidy-html
4445 (package
4446 (name "tidy-html")
4447 (version "5.4.0")
4448 (source
4449 (origin
4450 (method url-fetch)
4451 (uri (string-append "https://github.com/htacg/tidy-html5/archive/"
4452 version ".tar.gz"))
4453 (file-name (string-append name "-" version ".tar.gz"))
4454 (sha256
4455 (base32
4456 "0yhbgbjl45b4sjxwc394cjra6iy02q1pi66p28zy70lr6jvm9mx2"))))
4457 (build-system cmake-build-system)
4458 (outputs '("out"
4459 "static")) ; 1.0MiB of .a files
4460 (arguments
4461 `(#:tests? #f ; No tests available
4462 #:configure-flags (list "-DCMAKE_BUILD_TYPE=Release")
4463 #:phases
4464 (modify-phases %standard-phases
4465 (add-after 'install 'move-static-libraries
4466 (lambda* (#:key outputs #:allow-other-keys)
4467 ;; Move static libraries to the "static" output.
4468 (let* ((out (assoc-ref outputs "out"))
4469 (lib (string-append out "/lib"))
4470 (static (assoc-ref outputs "static"))
4471 (slib (string-append static "/lib")))
4472 (mkdir-p slib)
4473 (for-each (lambda (file)
4474 (install-file file slib)
4475 (delete-file file))
4476 (find-files lib "\\.a$"))
4477 #t))))))
4478 (native-inputs
4479 `(("libxslt" ,libxslt)))
4480 (home-page "http://www.html-tidy.org/")
4481 (synopsis "HTML Tidy with HTML5 support")
4482 (description
4483 "Tidy is a console application which corrects and cleans up
4484 HTML and XML documents by fixing markup errors and upgrading
4485 legacy code to modern standards.
4486
4487 Tidy also provides @code{libtidy}, a C static and dynamic library that
4488 developers can integrate into their applications to make use of the
4489 functions of Tidy.")
4490 (license l:bsd-3)))
4491
4492 (define-public hiawatha
4493 (package
4494 (name "hiawatha")
4495 (version "10.4")
4496 (source
4497 (origin
4498 (method url-fetch)
4499 (uri (string-append "https://www.hiawatha-webserver.org/files/"
4500 "hiawatha-" version ".tar.gz"))
4501 (modules '((guix build utils)))
4502 (snippet
4503 ;; We use our packaged mbedtls, so delete the included copy.
4504 '(delete-file-recursively "mbedtls"))
4505 (sha256
4506 (base32
4507 "0m2llzm72s29c32abnj03532m85fawvi8ybjpx6s3mgvx2yvq3p4"))))
4508 (build-system cmake-build-system)
4509 (arguments
4510 `(#:tests? #f ; No tests included
4511 #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
4512 (string-append "-DENABLE_TOMAHAWK=on")
4513 (string-append "-DWEBROOT_DIR="
4514 (assoc-ref %outputs "out")
4515 "/share/hiawatha/html"))
4516 #:phases
4517 (modify-phases %standard-phases
4518 (add-after 'install 'remove-empty-dirs
4519 (lambda* (#:key outputs #:allow-other-keys)
4520 (let* ((out (assoc-ref outputs "out")))
4521 ;; The directories in "var" are empty, remove them.
4522 (delete-file-recursively (string-append out "/var"))
4523 #t)))
4524 (add-after 'install 'wrap
4525 (lambda* (#:key inputs outputs #:allow-other-keys)
4526 ;; Make sure 'hiawatha' finds 'mbedtls'.
4527 (let* ((out (assoc-ref outputs "out"))
4528 (sbin (string-append out "/sbin"))
4529 (mbed (assoc-ref inputs "mbedtls-apache")))
4530 (wrap-program (string-append sbin "/hiawatha")
4531 `("PATH" ":" prefix (,mbed)))))))))
4532 (inputs
4533 ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha"
4534 `(("mbedtls-apache" ,mbedtls-apache) ;Hiawatha includes this version.
4535 ("zlib" ,zlib)
4536 ("libxslt" ,libxslt)
4537 ("libxml2" ,libxml2)))
4538 (home-page "https://www.hiawatha-webserver.org")
4539 (synopsis "Webserver with focus on security")
4540 (description
4541 "Hiawatha has been written with security in mind.
4542 Features include the ability to stop SQL injections, XSS and CSRF attacks and
4543 exploit attempts.")
4544 (license l:gpl2)))
4545
4546 (define-public python-httpbin
4547 (package
4548 (name "python-httpbin")
4549 (version "0.5.0")
4550 (source
4551 (origin
4552 (method url-fetch)
4553 (uri (pypi-uri "httpbin" version))
4554 (sha256
4555 (base32
4556 "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
4557 (build-system python-build-system)
4558 (propagated-inputs
4559 `(("python-decorator" ,python-decorator)
4560 ("python-flask" ,python-flask)
4561 ("python-itsdangerous" ,python-itsdangerous)
4562 ("python-markupsafe" ,python-markupsafe)
4563 ("python-six" ,python-six)))
4564 (home-page "https://github.com/Runscope/httpbin")
4565 (synopsis "HTTP request and response service")
4566 (description "Testing an HTTP Library can become difficult sometimes.
4567 @code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
4568 response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
4569 JSON-encoded.")
4570 (license l:isc)))
4571
4572 (define-public python2-httpbin
4573 (package-with-python2 python-httpbin))
4574
4575 (define-public python-pytest-httpbin
4576 (package
4577 (name "python-pytest-httpbin")
4578 (version "0.2.3")
4579 (source
4580 (origin
4581 (method url-fetch)
4582 (uri (pypi-uri "pytest-httpbin" version))
4583 (sha256
4584 (base32
4585 "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
4586 (build-system python-build-system)
4587 (propagated-inputs
4588 `(("python-six" ,python-six)
4589 ("python-httpbin" ,python-httpbin)
4590 ("python-pytest" ,python-pytest)))
4591 (home-page
4592 "https://github.com/kevin1024/pytest-httpbin")
4593 (synopsis
4594 "Test your HTTP library against a local copy of httpbin")
4595 (description
4596 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
4597 into your tests. It automatically starts up a HTTP server in a separate thread running
4598 @code{httpbin} and provides your test with the URL in the fixture.")
4599 (license l:expat)))
4600
4601 (define-public python2-pytest-httpbin
4602 (package-with-python2 python-pytest-httpbin))
4603
4604 (define-public http-parser
4605 (package
4606 (name "http-parser")
4607 (version "2.7.1")
4608 (source (origin
4609 (method url-fetch)
4610 (uri (string-append "https://github.com/nodejs/http-parser/"
4611 "archive/v" version ".tar.gz"))
4612 (file-name (string-append name "-" version ".tar.gz"))
4613 (sha256
4614 (base32
4615 "1cw6nf8xy4jhib1w0jd2y0gpqjbdasg8b7pkl2k2vpp54k9rlh3h"))))
4616 (build-system gnu-build-system)
4617 (arguments
4618 `(#:test-target "test"
4619 #:make-flags
4620 (list (string-append "PREFIX="
4621 (assoc-ref %outputs "out"))
4622 "CC=gcc" "library")
4623 #:phases
4624 (modify-phases %standard-phases
4625 (delete 'configure))))
4626 (home-page "https://github.com/nodejs/http-parser")
4627 (synopsis "HTTP request/response parser for C")
4628 (description "This is a parser for HTTP messages written in C. It parses
4629 both requests and responses. The parser is designed to be used in
4630 high-performance HTTP applications. It does not make any syscalls nor
4631 allocations, it does not buffer data, it can be interrupted at anytime.
4632 Depending on your architecture, it only requires about 40 bytes of data per
4633 message stream (in a web server that is per connection).")
4634 (license l:expat)))
4635
4636 (define-public python2-httpretty
4637 (package
4638 (name "python2-httpretty")
4639 (version "0.8.14")
4640 (source
4641 (origin
4642 (method url-fetch)
4643 (uri (pypi-uri "httpretty" version))
4644 (sha256
4645 (base32
4646 "0vlp5qkyw3pxwwsg7xmdcfh1csvypvaz4m6abida8s4xmjxpdhc3"))))
4647 (build-system python-build-system)
4648 (native-inputs
4649 `(("python-sphinx-rtd-theme" ,python2-sphinx-rtd-theme)
4650 ("python-sphinx" ,python2-sphinx)
4651 ("python-coverage" ,python2-coverage)
4652 ("python-tornado" ,python2-tornado)
4653 ("python-urllib3" ,python2-urllib3)
4654 ("python-sure" ,python2-sure)
4655 ("python-steadymark" ,python2-steadymark)
4656 ("python-requests" ,python2-requests)
4657 ("python-rednose" ,python2-rednose)
4658 ("python-nose-randomly" ,python2-nose-randomly)
4659 ("python-misaka" ,python2-misaka)
4660 ("python-pytest-httpbin" ,python2-pytest-httpbin)
4661 ("python-nose" ,python2-nose)))
4662 (arguments
4663 `(#:tests? #f
4664 ;; Requires mock>=1.3.0 which requires a more up-to-date
4665 ;; python-pbr. After updating these trying to build the
4666 ;; package leads to failures in python-flake8 and other
4667 ;; packages. The cascade of updates and failures this
4668 ;; leads to, seems to not be worth having the test run.
4669 #:python ,python-2
4670 #:phases
4671 (modify-phases %standard-phases
4672 (add-before 'build 'patch-test-requirements
4673 (lambda* (#:key inputs #:allow-other-keys)
4674 ;; Update requirements from dependecy==version
4675 ;; to dependency>=version
4676 (substitute* "development.txt"
4677 (("==") ">="))
4678 #t)))))
4679 (home-page "http://github.com/gabrielfalcao/httpretty")
4680 (synopsis "HTTP client mock for Python")
4681 (description "@code{httpretty} is a helper for faking web requests,
4682 inspired by Ruby's @code{fakeweb}.")
4683 (license l:expat)))
4684
4685 (define-public jo
4686 (package
4687 (name "jo")
4688 (version "1.1")
4689 (source
4690 (origin
4691 (method url-fetch)
4692 (uri (string-append "https://github.com/jpmens/jo/releases/download/v"
4693 version "/jo-" version ".tar.gz"))
4694 (sha256
4695 (base32
4696 "0pysickpxrbl53c122h6swvz8sck68q3j0ql38wvbz70q9k4gvb3"))))
4697 (build-system gnu-build-system)
4698 (home-page "https://github.com/jpmens/jo")
4699 (synopsis "Output JSON from a shell")
4700 (description "jo is a command-line utility to create JSON objects or
4701 arrays. It creates a JSON string on stdout from words provided as
4702 command-line arguments or read from stdin.")
4703 (license (list l:gpl2+
4704 l:expat)))) ; json.c, json.h