gnu: Add libwhich.
[jackhill/guix/guix.git] / gnu / packages / web.scm
CommitLineData
29a2ccd3 1;;; GNU Guix --- Functional package management for GNU
be6bfa7d 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
29a2ccd3 3;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
895363e4 4;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
5fb205c6 5;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
9b17c4f7 6;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
d2c0f030 7;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
38012ed5 8;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
f1452776 9;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
d8f1c074 10;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
67c2fc01 11;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
ec672946 12;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
20387778 13;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
7ffbbea0 14;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
bd9fe0f0 15;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
0ee23de9 16;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
47956fa0 17;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
a382860b 18;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
2e5438e0 19;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
b881dc6d 20;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
864042c5 21;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
bbd804b2 22;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
3c8ba11a 23;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
efc8f7d0 24;;; Copyright © 2017 Petter <petter@mykolab.ch>
412d0072 25;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
a67f0946 26;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
aa10ad7d 27;;; Copyright © 2017, 2019, 2020 Christopher Baines <mail@cbaines.net>
cfdbf2a5 28;;; Copyright © 2018, 2019 Julien Lepiller <julien@lepiller.eu>
d6a4dfec 29;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
4c9aa15e 30;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
67cf0702 31;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
078e2edf 32;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
ed132a57 33;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
dcfa0acd 34;;; Copyright © 2019 Brendan Tildesley <mail@brendan.scot>
1aa2c255 35;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
582de58c 36;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
e8134442 37;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
078784ce 38;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
8e8855f9 39;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
e8449034 40;;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
cda98245 41;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
eb642f3d 42;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
a74e2318 43;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
11111003 44;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
eebaed2b 45;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
ce3e95d7 46;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
29a2ccd3
AP
47;;;
48;;; This file is part of GNU Guix.
49;;;
50;;; GNU Guix is free software; you can redistribute it and/or modify it
51;;; under the terms of the GNU General Public License as published by
52;;; the Free Software Foundation; either version 3 of the License, or (at
53;;; your option) any later version.
54;;;
55;;; GNU Guix is distributed in the hope that it will be useful, but
56;;; WITHOUT ANY WARRANTY; without even the implied warranty of
57;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58;;; GNU General Public License for more details.
59;;;
60;;; You should have received a copy of the GNU General Public License
61;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
62
63(define-module (gnu packages web)
c9d512fa 64 #:use-module (ice-9 match)
c2dd07ab 65 #:use-module ((guix licenses) #:prefix license:)
29a2ccd3
AP
66 #:use-module (guix packages)
67 #:use-module (guix download)
1683e486 68 #:use-module (guix gexp)
833efa0d 69 #:use-module (guix git-download)
18cb3df8 70 #:use-module (guix cvs-download)
834dc830 71 #:use-module (guix hg-download)
b8ae816b 72 #:use-module (guix utils)
29a2ccd3 73 #:use-module (guix build-system gnu)
7ffbbea0 74 #:use-module (guix build-system glib-or-gtk)
c2337213
LC
75 #:use-module (guix build-system perl)
76 #:use-module (guix build-system cmake)
0ee23de9 77 #:use-module (guix build-system trivial)
da069d7e 78 #:use-module (guix build-system python)
91072287 79 #:use-module (guix build-system ant)
82cc8253 80 #:use-module (guix build-system scons)
0f3624f8 81 #:use-module (guix build-system go)
38e62c81 82 #:use-module (gnu packages)
8d07936a 83 #:use-module (gnu packages admin)
0ae079ec 84 #:use-module (gnu packages adns)
29a2ccd3 85 #:use-module (gnu packages apr)
f33ee234 86 #:use-module (gnu packages boost)
5a0096a3 87 #:use-module (gnu packages check)
99828fa7 88 #:use-module (gnu packages documentation)
b777d784 89 #:use-module (gnu packages docbook)
1683e486
CB
90 #:use-module (gnu packages emacs)
91 #:use-module (gnu packages emacs-xyz)
833efa0d 92 #:use-module (gnu packages autotools)
ce0614dd 93 #:use-module (gnu packages compression)
9d0c291e 94 #:use-module (gnu packages curl)
bb470bd3 95 #:use-module (gnu packages cyrus-sasl)
f643a6e9 96 #:use-module (gnu packages databases)
22df7001
EB
97 #:use-module (gnu packages bison)
98 #:use-module (gnu packages flex)
a74e2318 99 #:use-module (gnu packages fontutils)
15dd85f0 100 #:use-module (gnu packages freedesktop)
89e34644 101 #:use-module (gnu packages kerberos)
6a4d5634 102 #:use-module (gnu packages gcc)
57c2680e 103 #:use-module (gnu packages gd)
488e8863 104 #:use-module (gnu packages gettext)
7ffbbea0
RS
105 #:use-module (gnu packages glib)
106 #:use-module (gnu packages gnome)
4fc282b3 107 #:use-module (gnu packages gnu-doc)
b881dc6d 108 #:use-module (gnu packages gnupg)
0f3624f8 109 #:use-module (gnu packages golang)
22df7001 110 #:use-module (gnu packages gperf)
fbaf9376 111 #:use-module (gnu packages gtk)
d6a4dfec 112 #:use-module (gnu packages guile)
0791437f 113 #:use-module (gnu packages guile-xyz)
11111003 114 #:use-module (gnu packages hurd)
7ac2cab8 115 #:use-module (gnu packages java)
0ae079ec 116 #:use-module (gnu packages jemalloc)
22df7001 117 #:use-module (gnu packages image)
909dcf5b 118 #:use-module (gnu packages imagemagick)
565df8a2 119 #:use-module (gnu packages kde)
0ae079ec 120 #:use-module (gnu packages libevent)
fbaf9376 121 #:use-module (gnu packages libidn)
0cf9f9b1 122 #:use-module (gnu packages libunistring)
9b17c4f7 123 #:use-module (gnu packages libunwind)
8d07936a 124 #:use-module (gnu packages linux)
ba42da24 125 #:use-module (gnu packages lisp-xyz)
bb470bd3 126 #:use-module (gnu packages lua)
909dcf5b 127 #:use-module (gnu packages markup)
8cecd22e 128 #:use-module (gnu packages ncurses)
aff0cce9 129 #:use-module (gnu packages nss)
9b17c4f7 130 #:use-module (gnu packages openldap)
a67f0946 131 #:use-module (gnu packages openstack)
ce0614dd 132 #:use-module (gnu packages base)
d6a4dfec 133 #:use-module (gnu packages package-management)
bd9fe0f0 134 #:use-module (gnu packages perl)
5ccde207 135 #:use-module (gnu packages perl-check)
ed865936 136 #:use-module (gnu packages python)
1b2f753d 137 #:use-module (gnu packages python-web)
44d10b1f 138 #:use-module (gnu packages python-xyz)
c9ea41ff 139 #:use-module (gnu packages pcre)
bb470bd3 140 #:use-module (gnu packages pkg-config)
412d0072 141 #:use-module (gnu packages qt)
da682825 142 #:use-module (gnu packages readline)
4d83157c 143 #:use-module (gnu packages re2c)
9d0c291e 144 #:use-module (gnu packages sphinx)
cc2b77df 145 #:use-module (gnu packages texinfo)
ec672946 146 #:use-module (gnu packages textutils)
a359c9c1 147 #:use-module (gnu packages tls)
9d0c291e
MB
148 #:use-module (gnu packages valgrind)
149 #:use-module (gnu packages version-control)
33d13088 150 #:use-module (gnu packages vim)
edc85fd6
FP
151 #:use-module (gnu packages xml)
152 #:use-module ((srfi srfi-1) #:select (delete-duplicates)))
29a2ccd3
AP
153
154(define-public httpd
155 (package
156 (name "httpd")
8549e47e 157 (version "2.4.43")
29a2ccd3
AP
158 (source (origin
159 (method url-fetch)
160 (uri (string-append "mirror://apache/httpd/httpd-"
161 version ".tar.bz2"))
162 (sha256
163 (base32
8549e47e 164 "0hqgw47r3p3521ygkkqs8s30s5crm683081avj6330gwncm6b5x4"))))
29a2ccd3 165 (build-system gnu-build-system)
74c8b174 166 (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
29a2ccd3
AP
167 (inputs `(("apr" ,apr)
168 ("apr-util" ,apr-util)
169 ("openssl" ,openssl)
50b7a6a0 170 ("perl" ,perl))) ; needed to run bin/apxs
29a2ccd3
AP
171 (arguments
172 `(#:test-target "test"
173 #:configure-flags (list "--enable-rewrite"
174 "--enable-userdir"
175 "--enable-vhost-alias"
176 "--enable-ssl"
177 "--enable-mime-magic"
178 (string-append "--sysconfdir="
179 (assoc-ref %outputs "out")
180 "/etc/httpd"))))
181 (synopsis "Featureful HTTP server")
182 (description
183 "The Apache HTTP Server Project is a collaborative software development
184effort aimed at creating a robust, commercial-grade, featureful, and
35b9e423
EB
185freely-available source code implementation of an HTTP (Web) server. The
186project is jointly managed by a group of volunteers located around the world,
187using the Internet and the Web to communicate, plan, and develop the server
188and its related documentation.")
c2dd07ab 189 (license license:asl2.0)
29a2ccd3 190 (home-page "https://httpd.apache.org/")))
c9ea41ff 191
98cf8ca8
CB
192(define-public mod-wsgi
193 (package
194 (name "mod-wsgi")
195 (version "4.5.22")
196 (source (origin
bff44abb
TGR
197 (method git-fetch)
198 (uri (git-reference
199 (url "https://github.com/GrahamDumpleton/mod_wsgi.git")
200 (commit version)))
201 (file-name (git-file-name name version))
98cf8ca8
CB
202 (sha256
203 (base32
bff44abb 204 "1q90xw2cbhka5gcd6yc69iir73x4gm7fm75qpkins2ryfl6w1q3f"))))
98cf8ca8
CB
205 (build-system gnu-build-system)
206 (arguments
bff44abb 207 '(#:tests? #f ; TODO: can't figure out if there are tests
98cf8ca8
CB
208 #:make-flags (list
209 (string-append "DESTDIR="
210 (assoc-ref %outputs "out"))
211 "LIBEXECDIR=/modules")))
212 (inputs
213 `(("httpd" ,httpd)
214 ("python" ,python-wrapper)))
215 (synopsis "Apache HTTPD module for Python WSGI applications")
216 (description
217 "The mod_wsgi module for the Apache HTTPD Server adds support for running
218applications that support the Python @acronym{WSGI, Web Server Gateway
219Interface} specification.")
c2dd07ab 220 (license license:asl2.0)
98cf8ca8
CB
221 (home-page "https://modwsgi.readthedocs.io/")))
222
c9d512fa
MW
223(define-public nginx
224 (package
225 (name "nginx")
fd46742d
TGR
226 ;; Track the ‘mainline’ branch. Upstream considers it more reliable than
227 ;; ’stable’ and recommends that “in general you deploy the NGINX mainline
228 ;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
229 ;; Consider updating the nginx-documentation package together with this one.
9dc6e542 230 (version "1.17.9")
c9d512fa
MW
231 (source (origin
232 (method url-fetch)
59fed2b6 233 (uri (string-append "https://nginx.org/download/nginx-"
c9d512fa
MW
234 version ".tar.gz"))
235 (sha256
236 (base32
9dc6e542 237 "12dnrdxwnlid0wr797vdxj9z1fmxnk7ib55bznvl2g3mbi05vmkx"))))
c9d512fa 238 (build-system gnu-build-system)
03e8f9ed
TGR
239 (inputs `(("openssl" ,openssl)
240 ("pcre" ,pcre)
c9d512fa
MW
241 ("zlib" ,zlib)))
242 (arguments
243 `(#:tests? #f ; no test target
244 #:phases
a71c315b 245 (modify-phases %standard-phases
3a4de6b2 246 (add-before 'configure 'patch-/bin/sh
a71c315b
DT
247 (lambda _
248 (substitute* "auto/feature"
bb2f8bbc 249 (("/bin/sh") (which "sh")))
59fed2b6 250 #t))
3a4de6b2 251 (replace 'configure
249ab8cc 252 ;; The configure script is hand-written, not from GNU autotools.
a71c315b
DT
253 (lambda* (#:key outputs #:allow-other-keys)
254 (let ((flags
255 (list (string-append "--prefix=" (assoc-ref outputs "out"))
256 "--with-http_ssl_module"
26ac5c90 257 "--with-http_v2_module"
a71c315b 258 "--with-pcre-jit"
a71c315b
DT
259 "--with-debug"
260 ;; Even when not cross-building, we pass the
261 ;; --crossbuild option to avoid customizing for the
262 ;; kernel version on the build machine.
263 ,(let ((system "Linux") ; uname -s
63c295d2 264 (release "3.2.0") ; uname -r
a71c315b
DT
265 ;; uname -m
266 (machine (match (or (%current-target-system)
267 (%current-system))
268 ("x86_64-linux" "x86_64")
269 ("i686-linux" "i686")
4788deea
MW
270 ("mips64el-linux" "mips64")
271 ;; Prevent errors when querying
272 ;; this package on unsupported
273 ;; platforms, e.g. when running
274 ;; "guix package --search="
275 (_ "UNSUPPORTED"))))
a71c315b
DT
276 (string-append "--crossbuild="
277 system ":" release ":" machine)))))
278 (setenv "CC" "gcc")
279 (format #t "environment variable `CC' set to `gcc'~%")
280 (format #t "configure flags: ~s~%" flags)
6d286d82
TGR
281 (apply invoke "./configure" flags)
282 #t)))
249ab8cc
TGR
283 (add-after 'install 'install-man-page
284 (lambda* (#:key outputs #:allow-other-keys)
285 (let* ((out (assoc-ref outputs "out"))
286 (man (string-append out "/share/man")))
287 (install-file "objs/nginx.8" (string-append man "/man8"))
288 #t)))
3a4de6b2 289 (add-after 'install 'fix-root-dirs
59446b20
DT
290 (lambda* (#:key outputs #:allow-other-keys)
291 ;; 'make install' puts things in strange places, so we need to
292 ;; clean it up ourselves.
293 (let* ((out (assoc-ref outputs "out"))
294 (share (string-append out "/share/nginx")))
295 ;; This directory is empty, so get rid of it.
296 (rmdir (string-append out "/logs"))
297 ;; Example configuration and HTML files belong in
298 ;; /share.
299 (mkdir-p share)
300 (rename-file (string-append out "/conf")
301 (string-append share "/conf"))
302 (rename-file (string-append out "/html")
6d286d82
TGR
303 (string-append share "/html"))
304 #t))))))
59fed2b6 305 (home-page "https://nginx.org")
c9d512fa
MW
306 (synopsis "HTTP and reverse proxy server")
307 (description
308 "Nginx (\"engine X\") is a high-performance web and reverse proxy server
e43e1c1f 309created by Igor Sysoev. It can be used both as a stand-alone web server
c9d512fa
MW
310and as a proxy to reduce the load on back-end HTTP or mail servers.")
311 ;; Almost all of nginx is distributed under the bsd-2 license.
312 ;; The exceptions are:
313 ;; * The 'nginx-http-push' module is covered by the expat license.
314 ;; * The 'nginx-development-kit' module is mostly covered by bsd-3,
315 ;; except for two source files which are bsd-4 licensed.
c2dd07ab 316 (license (list license:bsd-2 license:expat license:bsd-3 license:bsd-4))))
c9d512fa 317
834dc830
CB
318(define nginx-xslscript
319 (let ((revision 11)
320 (changeset "01dc9ba12e1b"))
321 (package
322 (name "nginx-xslscript")
323 (version
324 (simple-format #f "2014-03-31-~A-~A" revision changeset))
325 (source (origin
326 (method hg-fetch)
327 (uri (hg-reference
328 (url "http://hg.nginx.org/xslscript")
329 (changeset changeset)))
330 (file-name (string-append name "-" version))
331 (sha256
332 (base32
333 "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
334 (build-system gnu-build-system)
335 (arguments
336 '(#:tests? #f ; No test suite
337 #:phases
338 (modify-phases %standard-phases
339 (delete 'configure)
340 (delete 'build)
341 (replace 'install
342 (lambda* (#:key outputs #:allow-other-keys)
343 (let ((out-bin (string-append
344 (assoc-ref outputs "out")
345 "/bin")))
346 (mkdir-p out-bin)
347 (copy-file "xslscript.pl"
348 (string-append
349 out-bin
350 "/xslscript.pl"))
351 #t))))))
352 (home-page "http://hg.nginx.org/xslscript")
353 (synopsis "XSLScript with NGinx specific modifications")
354 (description
355 "XSLScript is a terse notation for writing complex XSLT stylesheets.
356This is modified version, specifically intended for use with the NGinx
357documentation.")
c2dd07ab 358 (license license:bsd-2))))
834dc830
CB
359
360(define-public nginx-documentation
266cd19e
TGR
361 ;; This documentation should be relevant for nginx@1.15.9.
362 (let ((revision 2345)
363 (changeset "7ef11708457e"))
834dc830
CB
364 (package
365 (name "nginx-documentation")
366 (version
266cd19e 367 (simple-format #f "2019-03-01-~A-~A" revision changeset))
834dc830
CB
368 (source
369 (origin (method hg-fetch)
370 (uri (hg-reference
371 (url "http://hg.nginx.org/nginx.org")
372 (changeset changeset)))
373 (file-name (string-append name "-" version))
374 (sha256
375 (base32
266cd19e 376 "15975jvh53mnsgi4hhgrwdwy3by23v4kxnhy2vnkziq8v7wkmy4y"))))
834dc830
CB
377 (build-system gnu-build-system)
378 (arguments
67f00252 379 '(#:tests? #f ; no test suite
834dc830
CB
380 #:phases
381 (modify-phases %standard-phases
67f00252 382 (delete 'configure) ; no configure script
834dc830
CB
383 (replace 'build
384 (lambda* (#:key outputs #:allow-other-keys)
385 (let ((output (assoc-ref outputs "out")))
386 (substitute* "umasked.sh"
387 ((" /bin/sh") (string-append " " (which "sh"))))
388 ;; The documentation includes a banner, which makes sense on
389 ;; the NGinx website, but doesn't make much sense when
390 ;; viewing locally. Therefore, modify the CSS to remove the
391 ;; banner.
392 (substitute* "xslt/style.xslt"
393 (("#banner \\{ background: black;")
266cd19e 394 "#banner { display: none;"))
6d286d82
TGR
395 (invoke "make")
396 #t)))
834dc830
CB
397 (replace 'install
398 (lambda* (#:key outputs #:allow-other-keys)
399 (let ((output (assoc-ref outputs "out")))
400 (mkdir-p output)
401 (copy-recursively "libxslt" output)
402 #t))))))
403 (native-inputs
404 `(("libxml2" ,libxml2)
405 ("libxslt" ,libxslt)
406 ("nginx-xslscript" ,nginx-xslscript)))
407 (home-page "https://nginx.org")
684ca67d 408 (synopsis "Documentation for the nginx web server")
834dc830
CB
409 (description
410 "This package provides HTML documentation for the nginx web server.")
c2dd07ab 411 (license license:bsd-2))))
834dc830 412
edc85fd6
FP
413(define-public nginx-accept-language-module
414 ;; Upstream has never made a release; use current commit instead.
415 (let ((commit "2f69842f83dac77f7d98b41a2b31b13b87aeaba7")
416 (revision "1"))
417 (package
418 (name "nginx-accept-language-module")
419 (version (git-version "0.0.0" ;upstream has no version number
420 revision commit))
421 (source
422 (origin
423 (method git-fetch)
424 (uri (git-reference
425 (url "https://github.com/giom/nginx_accept_language_module.git")
426 (commit commit)))
427 (file-name (git-file-name name version))
428 (sha256
429 (base32 "1hjysrl15kh5233w7apq298cc2bp4q1z5mvaqcka9pdl90m0vhbw"))))
430 (build-system gnu-build-system)
431 (inputs `(("openssl" ,openssl)
432 ("pcre" ,pcre)
433 ("nginx-sources" ,(package-source nginx))
434 ("zlib" ,zlib)))
435 (arguments
436 `(#:tests? #f ; no test target
437 #:make-flags (list "modules")
438 #:modules ((guix build utils)
439 (guix build gnu-build-system)
440 (ice-9 popen)
441 (ice-9 regex)
442 (ice-9 textual-ports))
443 #:phases
444 (modify-phases %standard-phases
445 (add-after 'unpack 'unpack-nginx-sources
446 (lambda* (#:key inputs native-inputs #:allow-other-keys)
447 (begin
448 ;; The nginx source code is part of the module’s source.
449 (format #t "decompressing nginx source code~%")
e8449034
FP
450 (let ((tar (assoc-ref inputs "tar"))
451 (nginx-srcs (assoc-ref inputs "nginx-sources")))
452 (invoke (string-append tar "/bin/tar")
453 "xvf" nginx-srcs "--strip-components=1"))
edc85fd6
FP
454 #t)))
455 (add-after 'unpack 'convert-to-dynamic-module
456 (lambda _
457 (begin
458 (with-atomic-file-replacement "config"
459 (lambda (in out)
460 ;; cf. https://www.nginx.com/resources/wiki/extending/new_config/
461 (format out "ngx_module_type=HTTP~%")
462 (format out "ngx_module_name=\
463ngx_http_accept_language_module~%")
464 (let* ((str (get-string-all in))
465 (rx (make-regexp
466 "NGX_ADDON_SRCS=\"\\$NGX_ADDON_SRCS (.*)\""))
467 (m (regexp-exec rx str))
468 (srcs (match:substring m 1)))
469 (format out (string-append "ngx_module_srcs=\""
470 srcs "\"~%")))
471 (format out ". auto/module~%")
472 (format out "ngx_addon_name=$ngx_module_name~%"))))))
473 (add-before 'configure 'patch-/bin/sh
474 (lambda _
475 (substitute* "auto/feature"
476 (("/bin/sh") (which "sh")))
477 #t))
478 (replace 'configure
479 ;; This phase is largely copied from the nginx package.
480 (lambda* (#:key outputs #:allow-other-keys)
481 (let ((flags
482 (list ;; A copy of nginx’ flags follows, otherwise we
483 ;; get a binary compatibility error. FIXME: Code
484 ;; duplication is bad.
485 (string-append "--prefix=" (assoc-ref outputs "out"))
486 "--with-http_ssl_module"
487 "--with-http_v2_module"
488 "--with-pcre-jit"
489 "--with-debug"
490 ;; Even when not cross-building, we pass the
491 ;; --crossbuild option to avoid customizing for the
492 ;; kernel version on the build machine.
493 ,(let ((system "Linux") ; uname -s
494 (release "3.2.0") ; uname -r
495 ;; uname -m
496 (machine (match (or (%current-target-system)
497 (%current-system))
498 ("x86_64-linux" "x86_64")
499 ("i686-linux" "i686")
500 ("mips64el-linux" "mips64")
501 ;; Prevent errors when querying
502 ;; this package on unsupported
503 ;; platforms, e.g. when running
504 ;; "guix package --search="
505 (_ "UNSUPPORTED"))))
506 (string-append "--crossbuild="
507 system ":" release ":" machine))
508 ;; The following are the args decribed on
509 ;; <https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus>.
510 ;; Enabling --with-compat here and in the nginx package
511 ;; would ensure binary compatibility even when using
512 ;; different configure options from the main nginx
513 ;; package. This is not needed for Guix.
514 ;; "--with-compat"
515 "--add-dynamic-module=.")))
516 (setenv "CC" "gcc")
517 (format #t "environment variable `CC' set to `gcc'~%")
518 (format #t "configure flags: ~s~%" flags)
519 (apply invoke "./configure" flags)
520 #t)))
521 (replace 'install
522 (lambda* (#:key outputs #:allow-other-keys)
523 (let* ((out (assoc-ref outputs "out"))
524 (modules-dir (string-append out "/etc/nginx/modules"))
525 (doc-dir (string-append
526 out "/share/doc/nginx-accept-language-module")))
527 (mkdir-p modules-dir)
528 (copy-file "objs/ngx_http_accept_language_module.so"
529 (string-append
530 modules-dir "/ngx_http_accept_language_module.so"))
531 (mkdir-p doc-dir)
532 (copy-file "README.textile"
533 (string-append doc-dir "/README.textile"))
534 #t))))))
535 (home-page
536 "https://www.nginx.com/resources/wiki/modules/accept_language/")
537 (synopsis "Nginx module for parsing the Accept-Language HTTP header")
538 (description
539 "This nginx module parses the Accept-Language field in HTTP headers and
540chooses the most suitable locale for the user from the list of locales
541supported at your website.")
542 (license (delete-duplicates
543 (cons license:bsd-2 ;license of nginx-accept-language-module
544 ;; The module’s code is linked statically with nginx,
545 ;; therefore nginx’ other licenses may also apply to its
546 ;; binary:
547 (package-license nginx)))))))
548
9b17c4f7
RW
549(define-public lighttpd
550 (package
551 (name "lighttpd")
552 (version "1.4.55")
553 (source (origin
554 (method url-fetch)
555 (uri (string-append "https://download.lighttpd.net/lighttpd/"
556 "releases-" (version-major+minor version) ".x/"
557 "lighttpd-" version ".tar.xz"))
558 (sha256
559 (base32
560 "09z947730yjh438wrqb3z1c5hr1dbb11a8sr92g3vk6mr7lm02va"))))
561 (build-system gnu-build-system)
562 (arguments
563 `(#:configure-flags
564 (list "--with-krb5"
565 "--with-ldap"
566 "--with-libev"
567 "--with-libunwind"
568 "--with-openssl"
569 "--with-pam"
570 "--with-sasl")
571 #:phases
572 (modify-phases %standard-phases
573 (add-after 'unpack 'embed-/bin/sh-reference
574 (lambda _
575 (substitute* "src/mod_ssi.c"
576 (("/bin/sh") (which "sh")))
577 #t))
578 (add-after 'unpack 'fix-tests
579 (lambda _
580 (setenv "SHELL" (which "sh"))
581 ;; gethostbyaddr fails
582 (substitute* "tests/LightyTest.pm"
583 (("\\{HOSTNAME\\} = \\$name;")
584 "{HOSTNAME} = \"127.0.0.1\";"))
585 #t)))))
586 (inputs
587 `(("cyrus-sasl" ,cyrus-sasl)
588 ("libev" ,libev)
589 ("libunwind" ,libunwind)
590 ("linux-pam" ,linux-pam)
591 ("mit-krb5" ,mit-krb5)
592 ("openldap" ,openldap)
593 ("openssl" ,openssl)
594 ("pcre" ,pcre)
595 ("pcre:bin" ,pcre "bin")
596 ("zlib" ,zlib)))
597 (native-inputs
598 `(("perl" ,perl) ; for tests
599 ("pkg-config" ,pkg-config)
600 ("which" ,which)))
601 (home-page "https://www.lighttpd.net/")
602 (synopsis "Lightweight HTTP and reverse proxy server")
603 (description
604 "Lighttpd is a secure, fast, compliant, and very flexible web-server that
605has been optimized for high-performance environments. It has a very low
606memory footprint compared to other webservers. Its features include FastCGI,
607CGI, authentication, output compression, URL rewriting and many more.")
608 (license license:bsd-3)))
609
ab519cfa
RW
610(define-public fcgi
611 (package
612 (name "fcgi")
c7164ad6 613 (version "2.4.2")
ab519cfa
RW
614 (source
615 (origin
c7164ad6 616 (method git-fetch)
d1b50439 617 ;; Upstream has disappeared.
c7164ad6
TGR
618 (uri (git-reference
619 (url "https://github.com/FastCGI-Archives/fcgi2")
620 (commit version)))
621 (file-name (git-file-name name version))
ab519cfa 622 (sha256
c7164ad6 623 (base32 "1jhz6jfwv5kawa8kajvg18nfwc1b30f38zc0lggszd1vcmrwqkz1"))))
ab519cfa 624 (build-system gnu-build-system)
0ff55f9d
RW
625 ;; Parallel building is not supported.
626 (arguments `(#:parallel-build? #f))
c7164ad6
TGR
627 (native-inputs
628 `(("autoconf" ,autoconf)
629 ("automake" ,automake)
630 ("libtool" ,libtool)))
d1b50439
TGR
631 ;; This is an archived fork of the original home page, www.fastcgi.com.
632 (home-page "https://fastcgi-archives.github.io/")
ab519cfa 633 (synopsis "Language-independent, high-performant extension to CGI")
5ade9bc7 634 (description "FastCGI is a language-independent, scalable extension to CGI
ab519cfa
RW
635that provides high performance without the limitations of server specific
636APIs.")
637 ;; This package is released under the Open Market License, a variant of
638 ;; the Expat license, incompatible with the GPL.
c2dd07ab 639 (license (license:non-copyleft "file://LICENSE.TERMS"))))
ab519cfa 640
9bad4043
RW
641(define-public fcgiwrap
642 (package
643 (name "fcgiwrap")
644 (version "1.1.0")
645 (source
646 (origin
20ab34c1
TGR
647 (method git-fetch)
648 (uri (git-reference
649 (url "https://github.com/gnosek/fcgiwrap.git")
650 (commit version)))
651 (file-name (git-file-name name version))
9bad4043 652 (sha256
20ab34c1 653 (base32 "1ryw66h9aazi83amk8l7ha8k5g0c7qvk5g6jv376a1ws9xk2qw6f"))))
9bad4043
RW
654 (build-system gnu-build-system)
655 (arguments
20ab34c1 656 `(#:tests? #f ; no tests included
8325e1f8
TGR
657 #:make-flags (list "CC=gcc")
658 #:phases
659 (modify-phases %standard-phases
660 (add-after 'unpack 'fix-CFLAGS
661 ;; Remove broken options unconditionally added to CFLAGS.
662 (lambda _
663 (substitute* "configure.ac"
664 ((" -Werror") ""))
665 #t)))))
9bad4043
RW
666 (native-inputs
667 `(("autoconf" ,autoconf)
668 ("automake" ,automake)
669 ("pkg-config" ,pkg-config)))
670 (inputs
671 `(("fcgi" ,fcgi)))
672 (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
673 (synopsis "Simple server for running CGI applications over FastCGI")
674 (description "Fcgiwrap is a simple server for running CGI applications
675over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
676servers that may need it).")
c2dd07ab 677 (license license:expat)))
9bad4043 678
a641b579
EB
679(define-public starman
680 (package
681 (name "starman")
a201b097 682 (version "0.4015")
a641b579
EB
683 (source
684 (origin
685 (method url-fetch)
686 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
687 "Starman-" version ".tar.gz"))
688 (sha256
a201b097 689 (base32 "1y1kn4929k299fbf6sw9lxcsdlq9fvq777p6yrzk591rr9xhkx8h"))))
a641b579
EB
690 (build-system perl-build-system)
691 (native-inputs
692 `(("perl-libwww" ,perl-libwww)
693 ("perl-module-build-tiny" ,perl-module-build-tiny)
694 ("perl-test-requires" ,perl-test-requires)))
695 (propagated-inputs
696 `(("perl-data-dump" ,perl-data-dump)
697 ("perl-http-date" ,perl-http-date)
698 ("perl-http-message" ,perl-http-message)
699 ("perl-http-parser-xs" ,perl-http-parser-xs)
700 ("perl-net-server" ,perl-net-server)
701 ("perl-plack" ,perl-plack)
702 ("perl-test-tcp" ,perl-test-tcp)))
9aba9b12 703 (home-page "https://metacpan.org/release/Starman")
a641b579
EB
704 (synopsis "PSGI/Plack web server")
705 (description "Starman is a PSGI perl web server that has unique features
706such as high performance, preforking, signal support, superdaemon awareness,
707and UNIX socket support.")
c2dd07ab 708 (license license:perl-license)))
a641b579 709
7ac2cab8
MB
710(define-public icedtea-web
711 (package
712 (name "icedtea-web")
713 (version "1.6.2")
714 (source (origin
715 (method url-fetch)
716 (uri (string-append
717 "http://icedtea.wildebeest.org/download/source/"
718 name "-" version ".tar.gz"))
719 (sha256
720 (base32
721 "004kwrngyxxlrlzby4vzxjr0xcyngcdc9dfgnvi61ffnjr006ryf"))))
722 (build-system gnu-build-system)
723 (arguments
724 `(#:configure-flags
725 (list "--disable-plugin" ;NPAPI plugins are obsolete nowadays.
726 (string-append "BIN_BASH=" (assoc-ref %build-inputs "bash")
727 "/bin/bash")
728 (string-append "--with-jdk-home=" (assoc-ref %build-inputs "jdk")))))
729 (outputs '("out" "doc"))
730 (native-inputs
731 `(("pkg-config" ,pkg-config)
732 ("zip" ,zip)))
733 (inputs
734 `(("gtk+" ,gtk+)
735 ("jdk" ,icedtea "jdk")))
736 (home-page "http://icedtea.classpath.org/wiki/IcedTea-Web")
737 (synopsis "Java Web Start")
738 (description
739 "IcedTea-Web is an implementation of the @dfn{Java Network Launching
740Protocol}, also known as Java Web Start. This package provides tools and
741libraries for working with JNLP applets.")
742 ;; The program is mainly GPL2+, with some individual files under LGPL2.1+
743 ;; or dual licenses.
c2dd07ab 744 (license license:gpl2+)))
7ac2cab8 745
2b0bba49
RW
746(define-public jansson
747 (package
748 (name "jansson")
a556679e 749 (version "2.12")
2b0bba49
RW
750 (source (origin
751 (method url-fetch)
752 (uri
753 (string-append "http://www.digip.org/jansson/releases/jansson-"
a556679e 754 version ".tar.bz2"))
2b0bba49
RW
755 (sha256
756 (base32
a556679e 757 "1lp1mv8pjp5yziws66cy0dhpcam4bbjqhffk13v4vgdybp674pb4"))))
2b0bba49 758 (build-system gnu-build-system)
cc2e0566
MB
759 (arguments
760 `(#:configure-flags '("--disable-static")))
2b0bba49
RW
761 (home-page "http://www.digip.org/jansson/")
762 (synopsis "JSON C library")
763 (description
764 "Jansson is a C library for encoding, decoding and manipulating JSON
765data.")
c2dd07ab 766 (license license:expat)))
2b0bba49 767
f6ad09ae
LC
768(define-public json-c
769 (package
770 (name "json-c")
c0ef8ae2 771 (version "0.13.1")
f6ad09ae
LC
772 (source (origin
773 (method url-fetch)
a124bbd2
SB
774 (uri (string-append
775 "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
776 version ".tar.gz"))
f6ad09ae
LC
777 (sha256
778 (base32
c0ef8ae2 779 "0ws8dz9nk8q2c0gbf66kg2r6mrkl7kamd3gpdv9zsyrz9n6n0zmq"))
f6ad09ae
LC
780 (modules '((guix build utils)))
781 (snippet
782 '(begin
783 ;; Somehow 'config.h.in' is older than
784 ;; 'aclocal.m4', which would trigger a rule to
785 ;; run 'autoheader'.
786 (set-file-time "config.h.in"
787 (stat "aclocal.m4"))
6cbee49d 788 #t))))
f6ad09ae 789 (build-system gnu-build-system)
f6ad09ae
LC
790 (home-page "https://github.com/json-c/json-c/wiki")
791 (synopsis "JSON implementation in C")
792 (description
793 "JSON-C implements a reference counting object model that allows you to
e46e70ac
TGR
794easily construct JSON objects in C, output them as JSON-formatted strings and
795parse JSON-formatted strings back into the C representation of JSON objects.
796It aims to conform to RFC 7159.")
c2dd07ab 797 (license license:x11)))
f6ad09ae 798
e46e70ac
TGR
799;; TODO: remove this old version when all dependents have been updated.
800(define-public json-c-0.12
801 (package
802 (inherit json-c)
803 (version "0.12.1")
804 (source (origin
805 (method url-fetch)
806 (uri (string-append
807 "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
808 version ".tar.gz"))
809 (sha256
810 (base32 "08qibrq29a5v7g23wi5icy6l4fbfw90h9ccps6vq0bcklx8n84ra"))
811 (modules '((guix build utils)))
812 (snippet
813 '(begin
814 ;; Somehow 'config.h.in' is older than
815 ;; 'aclocal.m4', which would trigger a rule to
816 ;; run 'autoheader'.
817 (set-file-time "config.h.in"
818 (stat "aclocal.m4"))
819
820 ;; Don't try to build with -Werror.
821 (substitute* (find-files "." "Makefile\\.in")
6cbee49d
MW
822 (("-Werror") ""))
823 #t))))))
e46e70ac 824
078e2edf
AV
825(define-public json-parser
826 (package
827 (name "json-parser")
828 (version "1.1.0")
829 (source (origin
830 ;; do not use auto-generated tarballs
831 (method git-fetch)
832 (uri (git-reference
833 (url "https://github.com/udp/json-parser.git")
834 (commit (string-append "v" version))))
835 (file-name (git-file-name name version))
836 (sha256
837 (base32
838 "1ls7z4fx0sq633s5bc0j1gh36sv087gmrgr7rza22wjq2d4606yf"))))
839 ;; FIXME: we should build the python bindings in a separate package
840 (build-system gnu-build-system)
841 ;; the tests are written for the python bindings which are not built here
842 (arguments '(#:tests? #f))
843 (home-page "https://github.com/udp/json-parser")
844 (synopsis "JSON parser written in ANSI C")
845 (description "This package provides a very low footprint JSON parser
846written in portable ANSI C.
847
848@itemize
849@item BSD licensed with no dependencies (i.e. just drop the C file into your
850project)
851@item Never recurses or allocates more memory than it needs
852@item Very simple API with operator sugar for C++
853@end itemize")
c2dd07ab 854 (license license:bsd-2)))
078e2edf 855
412d0072
PL
856(define-public qjson
857 (package
858 (name "qjson")
859 (version "0.9.0")
860 (source (origin
082504ad
TGR
861 (method git-fetch)
862 (uri (git-reference
863 (url "https://github.com/flavio/qjson.git")
864 (commit version)))
865 (file-name (git-file-name name version))
412d0072
PL
866 (sha256
867 (base32
082504ad 868 "1f4wnxzx0qdmxzc7hqk28m0sva7z9p9xmxm6aifvjlp0ha6pmfxs"))))
412d0072
PL
869 (build-system cmake-build-system)
870 (arguments
082504ad 871 ;; The tests require a running X server.
412d0072
PL
872 `(#:configure-flags '("-DQJSON_BUILD_TESTS=ON"
873 "-DCMAKE_CXX_FLAGS=-std=gnu++11 -fPIC")
874 #:phases
875 (modify-phases %standard-phases
876 (add-after 'unpack 'disable-broken-test
877 (lambda _
878 ;; FIXME: One test fails. See
879 ;; https://github.com/flavio/qjson/issues/105
880 (substitute* "tests/scanner/testscanner.cpp"
881 (("QTest::newRow\\(\"too large exponential\"\\)" line)
882 (string-append "//" line)))
883 #t))
884 (add-before 'check 'render-offscreen
885 (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
886 (inputs
887 `(("qtbase" ,qtbase)))
888 (home-page "http://qjson.sourceforge.net")
889 (synopsis "Library that maps JSON data to QVariant objects")
890 (description "QJson is a Qt-based library that maps JSON data to
891@code{QVariant} objects. JSON arrays will be mapped to @code{QVariantList}
892instances, while JSON's objects will be mapped to @code{QVariantMap}.")
893 ;; Only version 2.1 of the license
c2dd07ab 894 (license license:lgpl2.1)))
412d0072 895
565df8a2
HG
896(define-public qoauth
897 (package
898 (name "qoauth")
899 (version "2.0.0")
900 (source (origin
901 (method git-fetch)
902 (uri (git-reference
903 (url "https://github.com/ayoy/qoauth.git")
904 (commit (string-append "v" version))))
905 (file-name (git-file-name name version))
906 (sha256
907 (base32
908 "1b2jdqs526ac635yb2whm049spcsk7almnnr6r5b4yqhq922anw3"))))
909 (build-system gnu-build-system)
910 (inputs
911 `(("qca" ,qca)
912 ("qtbase" ,qtbase)))
913 (arguments
914 '(#:phases
915 (modify-phases %standard-phases
916 (add-after 'unpack 'patch-code
917 (lambda _
918 (make-file-writable "src/qoauth.pc")
919 (substitute* "src/src.pro"
920 (("/lib64") "/lib"))
921 #t))
922 (delete 'configure) ; no configure script
923 (delete 'check) ; no test target
924 (add-before 'build 'qmake
925 (lambda _
926 (let ((qca (assoc-ref %build-inputs "qca")))
927 (invoke
928 "qmake"
929 (string-append "PREFIX=" (assoc-ref %outputs "out"))
930 (string-append "QMAKE_INCDIR+=" qca "/include/Qca-qt5/QtCrypto")
931 (string-append "LIBS+=-L" qca "/lib")
932 (string-append "LIBS+=-lqca-qt5"))))))))
933 (home-page "https://github.com/ayoy/qoauth")
934 (synopsis "Qt-based C++ library for OAuth authorization scheme")
935 (description "QOAuth is an attempt to support interaction with
936OAuth-powered network services in a Qt way, i.e. simply, clearly and
937efficiently. It gives the application developer no more than 4 methods.")
938 (license license:lgpl2.1+)))
939
bd9fe0f0
BW
940(define-public krona-tools
941 (package
942 (name "krona-tools")
9712ef8d 943 (version "2.7")
bd9fe0f0
BW
944 (source (origin
945 (method url-fetch)
946 (uri (string-append
947 "https://github.com/marbl/Krona/releases/download/v"
948 version "/KronaTools-" version ".tar"))
949 (sha256
950 (base32
9712ef8d 951 "0wvgllcqscsfb4xc09y3fqhx8i38pmr4w55vjs5y79wx56n710iq"))))
bd9fe0f0
BW
952 (build-system perl-build-system)
953 (arguments
5d52ac74 954 `(#:phases
bd9fe0f0
BW
955 (modify-phases %standard-phases
956 ;; There is no configure or build steps.
957 (delete 'configure)
9712ef8d 958 (delete 'build)
bd9fe0f0
BW
959 ;; Install script "install.pl" expects the build directory to remain
960 ;; after installation, creating symlinks etc., so re-implement it
961 ;; here.
962 (replace 'install
963 (lambda* (#:key outputs #:allow-other-keys)
964 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
965 (perl (string-append (assoc-ref outputs "out")
5d52ac74 966 "/lib/perl5/site_perl/krona-tools/lib")))
bd9fe0f0
BW
967 (mkdir-p bin)
968 (for-each
969 (lambda (script)
970 (let* ((executable (string-append "scripts/" script ".pl")))
971 ;; Prefix executables with 'kt' as install script does.
972 (copy-file executable (string-append bin "/kt" script))))
973 '("ClassifyBLAST"
974 "GetContigMagnitudes"
9712ef8d
BW
975 "GetLCA"
976 "GetTaxIDFromAcc"
977 "GetTaxInfo"
bd9fe0f0
BW
978 "ImportBLAST"
979 "ImportDiskUsage"
980 "ImportEC"
981 "ImportFCP"
982 "ImportGalaxy"
983 "ImportKrona"
984 "ImportMETAREP-BLAST"
985 "ImportMETAREP-EC"
986 "ImportMGRAST"
987 "ImportPhymmBL"
988 "ImportRDP"
989 "ImportRDPComparison"
990 "ImportTaxonomy"
991 "ImportText"
992 "ImportXML"))
9712ef8d
BW
993 (for-each
994 (lambda (directory)
995 (copy-recursively directory
996 (string-append perl "/../" directory)))
997 (list "data" "img" "taxonomy" "src"))
bd9fe0f0
BW
998 (install-file "lib/KronaTools.pm" perl))))
999 (add-after 'install 'wrap-program
1000 (lambda* (#:key inputs outputs #:allow-other-keys)
1001 (let* ((out (assoc-ref outputs "out"))
1002 (path (getenv "PERL5LIB")))
1003 (for-each
1004 (lambda (executable)
1005 (wrap-program executable
1006 `("PERL5LIB" ":" prefix
5d52ac74
BW
1007 (,(string-append out "/lib/perl5/site_perl/krona-tools/lib")))))
1008 (find-files (string-append out "/bin/") ".*")))))
1009 (delete 'check)
1010 (add-after 'wrap-program 'check
1011 (lambda* (#:key inputs outputs #:allow-other-keys)
1012 (with-directory-excursion "data"
aa077155
TGR
1013 (invoke (string-append (assoc-ref outputs "out") "/bin/ktImportText")
1014 "ec.tsv")))))))
bd9fe0f0
BW
1015 (inputs
1016 `(("perl" ,perl)))
1017 (home-page "https://github.com/marbl/Krona/wiki")
1018 (synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
1019 (description
1020 "Krona is a flexible tool for exploring the relative proportions of
1021hierarchical data, such as metagenomic classifications, using a radial,
1022space-filling display. It is implemented using HTML5 and JavaScript, allowing
1023charts to be explored locally or served over the Internet, requiring only a
1024current version of any major web browser.")
c2dd07ab 1025 (license license:bsd-3)))
bd9fe0f0 1026
ccb8da26
RW
1027(define-public rapidjson
1028 (package
1029 (name "rapidjson")
d0386db4 1030 (version "1.1.0")
ccb8da26 1031 (source (origin
df9f515e
MB
1032 (method git-fetch)
1033 (uri (git-reference
1034 (url "https://github.com/Tencent/rapidjson.git")
1035 (commit (string-append "v" version))))
1036 (file-name (git-file-name name version))
1037 (sha256
1038 (base32
1039 "1jixgb8w97l9gdh3inihz7avz7i770gy2j2irvvlyrq3wi41f5ab"))
c1f4073f 1040 (patches (search-patches "rapidjson-gcc-compat.patch"))
df9f515e
MB
1041 (modules '((guix build utils)))
1042 (snippet
1043 '(begin
1044 ;; Remove code using the problematic JSON license (see
1045 ;; <https://www.gnu.org/licenses/license-list.html#JSON>).
1046 (delete-file-recursively "bin/jsonchecker")
1047 #t))))
ccb8da26 1048 (build-system cmake-build-system)
4fbed749 1049 (arguments
df9f515e
MB
1050 (if (string-prefix? "aarch64" (or (%current-target-system)
1051 (%current-system)))
1052 '(#:phases
1053 (modify-phases %standard-phases
1054 (add-after 'unpack 'patch-aarch-march-detection
1055 (lambda _
1056 (substitute* (find-files "." "^CMakeLists\\.txt$")
1057 (("native") "armv8-a"))
1058 #t))))
82924965
MB
1059 ;; Disable CPU optimization for reproducibility.
1060 '(#:configure-flags '("-DRAPIDJSON_ENABLE_INSTRUMENTATION_OPT=OFF"))))
22656b24 1061 (home-page "https://github.com/Tencent/rapidjson")
ccb8da26
RW
1062 (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
1063 (description
1064 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM
1065style API.")
c2dd07ab 1066 (license license:expat)))
ccb8da26 1067
d8f1c074
ED
1068(define-public libyajl
1069 (package
1070 (name "libyajl")
1071 (version "2.1.0")
1072 (source (origin
2772debc
TGR
1073 (method git-fetch)
1074 (uri (git-reference
1075 (url "https://github.com/lloyd/yajl.git")
1076 (commit version)))
1077 (file-name (git-file-name name version))
d8f1c074
ED
1078 (sha256
1079 (base32
2772debc 1080 "00yj06drb6izcxfxfqlhimlrb089kka0w0x8k27pyzyiq7qzcvml"))))
d8f1c074 1081 (build-system cmake-build-system)
532126e9
EF
1082 (arguments
1083 '(#:phases
1084 (modify-phases %standard-phases
1085 (add-after 'patch-source-shebangs 'patch-tests
1086 (lambda _
1087 (substitute* "test/parsing/run_tests.sh"
1088 (("`which echo`") (which "echo")))
1089 #t)))))
d8f1c074
ED
1090 (home-page "https://lloyd.github.io/yajl/")
1091 (synopsis "C library for parsing JSON")
1092 (description
1093 "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON
1094parser written in ANSI C and a small validating JSON generator.")
c2dd07ab 1095 (license license:isc)))
d8f1c074 1096
833efa0d
LC
1097(define-public libwebsockets
1098 (package
1099 (name "libwebsockets")
c2337213 1100 (version "1.3")
833efa0d
LC
1101 (source (origin
1102 ;; The project does not publish tarballs, so we have to take
1103 ;; things from Git.
1104 (method git-fetch)
1105 (uri (git-reference
5f13bf09 1106 (url "https://github.com/warmcat/libwebsockets.git")
833efa0d 1107 (commit (string-append "v" version
c2337213 1108 "-chrome37-firefox30"))))
833efa0d
LC
1109 (sha256
1110 (base32
c2337213 1111 "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
833efa0d
LC
1112 (file-name (string-append name "-" version))))
1113
c2337213 1114 (build-system cmake-build-system)
833efa0d 1115 (arguments
c2337213
LC
1116 ;; XXX: The thing lacks a 'make test' target, because CMakeLists.txt
1117 ;; doesn't use 'add_test', and it's unclear how to run the test suite.
1118 '(#:tests? #f))
833efa0d 1119
c2337213 1120 (native-inputs `(("perl" ,perl))) ; to build the HTML doc
833efa0d
LC
1121 (inputs `(("zlib" ,zlib)
1122 ("openssl" ,openssl)))
1123 (synopsis "WebSockets library written in C")
1124 (description
35b9e423 1125 "Libwebsockets is a library that allows C programs to establish client
833efa0d
LC
1126and server WebSockets connections---a protocol layered above HTTP that allows
1127for efficient socket-like bidirectional reliable communication channels.")
1bc64532 1128 (home-page "https://libwebsockets.org")
833efa0d
LC
1129
1130 ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
c2dd07ab 1131 (license license:lgpl2.1)))
833efa0d 1132
4d83157c
VC
1133(define-public wabt
1134 (package
1135 (name "wabt")
e6010e89 1136 (version "1.0.12")
4d83157c
VC
1137 (source
1138 (origin
1139 (method git-fetch)
1140 (uri (git-reference
1141 (url "https://github.com/WebAssembly/wabt")
1142 (commit version)))
1143 (file-name (git-file-name name version))
1144 (sha256
e6010e89 1145 (base32 "1zlv3740wkqj4mn6sr84h0x6wk2lcp4pwwmqsh5yyqp1j1glbsa0"))))
4d83157c
VC
1146 (build-system cmake-build-system)
1147 (arguments
1148 `(#:configure-flags '("-DBUILD_TESTS=OFF")
1149 #:tests? #f))
1150 (inputs `(("python" ,python-2)
1151 ("re2c" ,re2c)))
1152 (home-page "https://github.com/WebAssembly/wabt")
1153 (synopsis "WebAssembly Binary Toolkit")
1154 (description "WABT (pronounced: wabbit) is a suite of tools for
1155WebAssembly, including:
1156
3603f553
TGR
1157@enumerate
1158@item @command{wat2wasm} translates from WebAssembly text format to the
1159WebAssembly binary format
1160@item @command{wasm2wat} is the inverse; it translates from the binary format
1161back to the text format (also known as a .wat)
1162@item @command{wasm-objdump} prints information about a wasm binary, similarly
1163to @command{objdump}.
1164@item @command{wasm-interp} decodes ands run a WebAssembly binary file using a
1165stack-based interpreter
1166@item @command{wat-desugar} parses .wat text form as supported by the spec
1167interpreter (s-expressions, flat syntax, or mixed) and prints the canonical
1168flat format
1169@item @command{wasm2c} converts a WebAssembly binary file to a C source and
1170header file.
1171@end enumerate
4d83157c
VC
1172
1173These tools are intended for use in (or for development of) toolchains or
1174other systems that want to manipulate WebAssembly files.")
1175 (license license:asl2.0)))
1176
f33ee234
JK
1177(define-public websocketpp
1178 (package
1179 (name "websocketpp")
1180 (version "0.8.1")
1181 (source
1182 (origin
1183 (method git-fetch)
1184 (uri (git-reference
1185 (url "https://github.com/zaphoyd/websocketpp.git")
1186 (commit version)))
1187 (file-name (git-file-name name version))
1188 (sha256
4427417b
GLV
1189 (base32 "12ffczcrryh74c1xssww35ic6yiy2l2xgdd30lshiq9wnzl2brgy"))
1190 (patches (search-patches "websocketpp-fix-for-boost-1.70.patch"))))
f33ee234
JK
1191 (build-system cmake-build-system)
1192 (inputs `(("boost" ,boost)
1193 ("openssl" ,openssl)))
1194 (arguments '(#:configure-flags '("-DBUILD_TESTS=ON")
1195 #:phases
1196 (modify-phases %standard-phases
1197 (add-after 'install 'remove-tests
1198 (lambda* (#:key outputs #:allow-other-keys)
1199 (let* ((install-dir (assoc-ref outputs "out"))
1200 (bin-dir (string-append install-dir "/bin")))
1201 (delete-file-recursively bin-dir)
1202 #t))))))
1203 (home-page "https://www.zaphoyd.com/websocketpp/")
1204 (synopsis "C++ library implementing the WebSocket protocol")
1205 (description "WebSocket++ is a C++ library that can be used to implement
1206WebSocket functionality. The goals of the project are to provide a WebSocket
1207implementation that is simple, portable, flexible, lightweight, low level, and
1208high performance.")
1209 (license license:bsd-3)))
1210
cda98245
TL
1211(define-public wslay
1212 (package
1213 (name "wslay")
1214 (version "1.1.0")
1215 (source
1216 (origin
1217 (method git-fetch)
1218 (uri (git-reference
1219 (url "https://github.com/tatsuhiro-t/wslay.git")
1220 (commit (string-append "release-" version))))
1221 (file-name (git-file-name name version))
1222 (sha256
1223 (base32 "0ak9a6hsanhys40yhv7c2gqkfghpm6jx36j1pnml8ajvgaky5q98"))))
1224 (build-system gnu-build-system)
90d192b2
TGR
1225 (arguments
1226 ;; Parallel builds don't reliably succeed.
1227 `(#:parallel-build? #f))
cda98245
TL
1228 (native-inputs
1229 `(("autoconf" ,autoconf)
1230 ("automake" ,automake)
90d192b2 1231 ("cunit" ,cunit) ; for tests
cda98245
TL
1232 ("libtool" ,libtool)
1233 ("pkg-config" ,pkg-config)
1234 ("python-sphinx" ,python-sphinx)))
1235 (home-page "https://tatsuhiro-t.github.io/wslay/")
1236 (synopsis "C WebSocket library")
1237 (description "@code{Wslay} is an event-based C library for the WebSocket
1238protocol version 13, described in RFC 6455. Besides a high-level API it
1239provides callbacks for sending and receiving frames directly. @code{Wslay}
1240only supports the data transfer part of WebSocket protocol and does not
1241perform the opening handshake in HTTP.")
1242 (license license:expat)))
1243
488e8863
EB
1244(define-public libpsl
1245 (package
1246 (name "libpsl")
111adbd3 1247 (version "0.21.0")
488e8863
EB
1248 (source (origin
1249 (method url-fetch)
1250 (uri (string-append "https://github.com/rockdaboot/libpsl/"
6c277c89
EF
1251 "releases/download/libpsl-" version
1252 "/libpsl-" version ".tar.gz"))
488e8863
EB
1253 (sha256
1254 (base32
111adbd3 1255 "04pfagb7ppq3yibx4lhazd1v9nwkxdfkyy2rgcrmrf3mldsirga1"))))
488e8863 1256 (build-system gnu-build-system)
0cf9f9b1 1257 (native-inputs
f7e25e2e
MB
1258 `(("pkg-config" ,pkg-config)
1259
1260 ;; For tests.
1261 ("python" ,python-wrapper)))
6c277c89 1262 (inputs
0cf9f9b1 1263 `(("libidn2" ,libidn2)
f7e25e2e 1264 ("libunistring" ,libunistring)))
488e8863
EB
1265 (home-page "https://github.com/rockdaboot/libpsl")
1266 (synopsis "C library for the Publix Suffix List")
1267 (description
1268 "A \"public suffix\" is a domain name under which Internet users can
1269directly register own names.
1270
1271Browsers and other web clients can use it to avoid privacy-leaking
1272\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain
1273highlighting parts of the domain in a user interface, and sorting domain lists
1274by site.
1275
a74ae84a 1276Libpsl has built-in PSL data for fast access, allowing to load PSL data from
488e8863
EB
1277files, checks if a given domain is a public suffix, provides immediate cookie
1278domain verification, finds the longest public part of a given domain, finds
1279the shortest private part of a given domain, works with international
1280domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
e881752c 1281UTS#46.")
c2dd07ab 1282 (license license:x11)))
488e8863 1283
18cb3df8
DT
1284(define-public tidy
1285 (package
1286 (name "tidy")
1287 (version "20091223")
1288 (source (origin
1289 (method cvs-fetch)
1290 (uri (cvs-reference
1291 (root-directory
1292 ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
1293 (module "tidy")
1294 (revision "2009-12-23")))
716a39bc 1295 (file-name (string-append name "-" version "-checkout"))
18cb3df8
DT
1296 (sha256
1297 (base32
4d853910 1298 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))
fc1adab1 1299 (patches (search-patches "tidy-CVE-2015-5522+5523.patch"))))
18cb3df8
DT
1300 (build-system gnu-build-system)
1301 (arguments
917239ff 1302 '(#:phases (modify-phases %standard-phases
189be331 1303 (replace 'bootstrap
917239ff
TGR
1304 (lambda* (#:key inputs #:allow-other-keys)
1305 ;; configure.in and Makefile.am aren't in the root of the
1306 ;; source tree.
1307 (copy-recursively "build/gnuauto" ".")
1308 (setenv "AUTOMAKE" "automake --foreign")
b5d58705 1309 (invoke "autoreconf" "-vfi"))))))
18cb3df8
DT
1310 (native-inputs
1311 `(("automake" ,automake)
1312 ("autoconf" ,autoconf)
1313 ("libtool" ,libtool)))
1314 (synopsis "HTML validator and tidier")
1315 (description "HTML Tidy is a command-line tool and C library that can be
1316used to validate and fix HTML data.")
1317 (home-page "http://tidy.sourceforge.net/")
c2dd07ab 1318 (license (license:x11-style "file:///include/tidy.h"))))
18cb3df8 1319
8142aff3 1320(define-public tinyproxy
c9ea41ff 1321 (package
8142aff3 1322 (name "tinyproxy")
419aa05e 1323 (version "1.10.0")
8142aff3
EB
1324 (source (origin
1325 (method url-fetch)
b5076461
EF
1326 (uri (string-append "https://github.com/tinyproxy/tinyproxy/"
1327 "releases/download/" version "/tinyproxy-"
1328 version ".tar.xz"))
8142aff3
EB
1329 (sha256
1330 (base32
419aa05e 1331 "10jnk6y2swld25mm47mjc0nkffyzsfysnsxwr7cs0ns1kil8ggjr"))))
8142aff3
EB
1332 (build-system gnu-build-system)
1333 (arguments
1334 `(#:configure-flags
1335 (list
1336 ;; For the log file, etc.
1337 "--localstatedir=/var")
1338 #:phases
dc1d3cde
KK
1339 (modify-phases %standard-phases
1340 (add-before 'build 'pre-build
1341 (lambda* (#:key inputs #:allow-other-keys #:rest args)
1342 ;; Uncommenting the next two lines may assist in debugging
1343 ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
1344 ;; (setenv "XML_DEBUG_CATALOG" "1")
1345 #t)))))
b5076461 1346 (home-page "https://tinyproxy.github.io/")
8142aff3
EB
1347 (synopsis "Light-weight HTTP/HTTPS proxy daemon")
1348 (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
1349daemon. Designed from the ground up to be fast and yet small, it is an ideal
1350solution for use cases such as embedded deployments where a full featured HTTP
1351proxy is required, but the system resources for a larger proxy are
1352unavailable.")
c2dd07ab 1353 (license license:gpl2+)))
8142aff3
EB
1354
1355(define-public polipo
1356 (package
1357 (name "polipo")
1358 (version "1.1.1")
1359 (source
1360 (origin
1361 (method url-fetch)
1362 (uri (string-append
1363 "http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/polipo-"
1364 version ".tar.gz"))
1365 (sha256
1366 (base32
1367 "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2"))))
1368 (native-inputs `(("texinfo" ,texinfo)))
1369 (build-system gnu-build-system)
1370 (arguments
9bd259d8
TGR
1371 `(#:phases (modify-phases %standard-phases
1372 (delete 'configure))
8142aff3
EB
1373 #:make-flags (let ((out (assoc-ref %outputs "out")))
1374 (list (string-append "PREFIX=" out)
1375 (string-append "LOCAL_ROOT="
1376 out "/share/polipo/www")
1377 "CC=gcc"))
1378 ;; No 'check' target.
1379 #:tests? #f))
59e884a2 1380 (home-page "https://www.pps.univ-paris-diderot.fr/~jch/software/polipo/")
8142aff3
EB
1381 (synopsis "Small caching web proxy")
1382 (description
1383 "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy
1384server). It was primarily designed to be used by one person or a small group
1385of people.")
c2dd07ab 1386 (license license:expat)))
8142aff3 1387
a67f0946
RH
1388(define-public websockify
1389 (package
1390 (name "websockify")
1391 (version "0.8.0")
1392 (source (origin
34920d2a
TGR
1393 (method git-fetch)
1394 (uri (git-reference
1395 (url "https://github.com/novnc/websockify.git")
1396 (commit (string-append "v" version))))
1397 (file-name (git-file-name name version))
a67f0946
RH
1398 (sha256
1399 (base32
34920d2a 1400 "0pcic8qs0gdwrfjgfaf893jyddaw97wcjm2mmvwn0xyhmy8mbmw1"))))
a67f0946
RH
1401 (build-system python-build-system)
1402 (arguments
1403 `(#:tests? #f)) ; FIXME: 2 out of 6 tests fail with "ImportError: No module
1404 ; named 'stubout'". The tests can be run by replacing the check phase with
1405 ; the command "python setup.py nosetests --verbosity=3".
1406 (native-inputs `(; Required for tests:
c695fb76
TGR
1407 ("python-mox3" ,python-mox3)
1408 ("python-nose" ,python-nose)))
1409 (propagated-inputs `(("python-numpy" ,python-numpy)))
a67f0946
RH
1410 (home-page "https://github.com/novnc/websockify")
1411 (synopsis "WebSockets support for any application/server")
1412 (description "Websockify translates WebSockets traffic to normal socket
1413traffic. Websockify accepts the WebSockets handshake, parses it, and then
1414begins forwarding traffic between the client and the target in both
1415directions.")
c2dd07ab 1416 (license license:lgpl3)))
a67f0946 1417
b881dc6d
BT
1418(define-public wwwoffle
1419 (package
1420 (name "wwwoffle")
1421 (version "2.9j")
1422 (source (origin
1423 (method url-fetch)
1424 (uri (string-append "https://www.gedanken.org.uk/software/"
1425 "wwwoffle/download/wwwoffle-"
1426 version ".tgz"))
1427 (sha256
1428 (base32
1429 "1ihil1xq9dp21hf108khxbw6f3baq0w5c0j3af038y6lkmad4vdi"))))
1430 (build-system gnu-build-system)
1431 (arguments
1432 `(#:configure-flags '("--with-gnutls")
1433 #:tests? #f)) ; no test target
1434 (native-inputs `(("flex" ,flex)))
1435 (inputs `(("gnutls" ,gnutls)
c695fb76 1436 ("libcrypt" ,libgcrypt)))
b881dc6d
BT
1437 (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
1438 (synopsis "Caching web proxy optimized for intermittent internet links")
1439 (description "WWWOFFLE is a proxy web server that is especially good for
1440intermittent internet links. It can cache HTTP, HTTPS, FTP, and finger
1441protocols, and supports browsing and requesting pages while offline, indexing,
1442modifying pages and incoming and outgoing headers, monitoring pages for
1443changes, and much more.")
c2dd07ab 1444 (license license:gpl2+)))
b881dc6d 1445
1622637b
KK
1446(define-public liboauth
1447 (package
1448 (name "liboauth")
1449 (version "1.0.3")
1450 (source (origin
1451 (method url-fetch)
1452 (uri (string-append "mirror://sourceforge/liboauth/liboauth-"
1453 version ".tar.gz"))
1454 (sha256
1455 (base32
1456 "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"))))
1457 (build-system gnu-build-system)
1458 (arguments '(#:configure-flags '("--enable-nss")))
1459 (native-inputs `(("pkg-config" ,pkg-config)))
1460 (propagated-inputs
1461 `(("curl" ,curl)
1462 ("nss" ,nss)))
1463 (home-page "https://sourceforge.net/projects/liboauth")
1819fd2c 1464 (synopsis "C library implementing the OAuth API")
1622637b 1465 (description
1819fd2c
KK
1466 "liboauth is a collection of C functions implementing the OAuth API.
1467liboauth provides functions to escape and encode strings according to OAuth
1468specifications and offers high-level functionality built on top to sign
1622637b
KK
1469requests or verify signatures using either NSS or OpenSSL for calculating the
1470hash/signatures.")
1471 ;; Source code may be distributed under either license.
c2dd07ab 1472 (license (list license:expat license:gpl2+))))
1622637b 1473
8142aff3
EB
1474(define-public libyaml
1475 (package
1476 (name "libyaml")
ab5fc6a9 1477 (version "0.1.7")
8142aff3
EB
1478 (source
1479 (origin
1480 (method url-fetch)
1481 (uri (string-append
1482 "http://pyyaml.org/download/libyaml/yaml-"
1483 version ".tar.gz"))
1484 (sha256
1485 (base32
ab5fc6a9 1486 "0a87931cx5m14a1x8rbjix3nz7agrcgndf4h392vm62a4rby9240"))))
8142aff3
EB
1487 (build-system gnu-build-system)
1488 (home-page "http://pyyaml.org/wiki/LibYAML")
1489 (synopsis "YAML 1.1 parser and emitter written in C")
1490 (description
1491 "LibYAML is a YAML 1.1 parser and emitter written in C.")
c2dd07ab 1492 (license license:expat)))
8142aff3 1493
3c95873a
TS
1494(define-public libyaml-2.1
1495 (package
1496 (inherit libyaml)
1497 (version "0.2.1")
1498 (source
1499 (origin
1500 (method url-fetch)
1501 (uri (string-append
1502 "http://pyyaml.org/download/libyaml/yaml-"
1503 version ".tar.gz"))
1504 (sha256
1505 (base32
1506 "1karpcfgacgppa82wm2drcfn2kb6q2wqfykf5nrhy20sci2i2a3q"))))))
1507
8142aff3
EB
1508(define-public libquvi-scripts
1509 (package
1510 (name "libquvi-scripts")
1511 (version "0.4.21")
1512 (source
1513 (origin
1514 (method url-fetch)
1515 (uri (string-append
de67e922
LF
1516 "mirror://sourceforge/quvi/" (version-major+minor version) "/"
1517 name "/" name "-" version ".tar.xz"))
8142aff3
EB
1518 (sha256
1519 (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
1520 (build-system gnu-build-system)
1521 (home-page "http://quvi.sourceforge.net/")
1522 (synopsis "Media stream URL parser")
1523 (description "This package contains support scripts called by libquvi to
1524parse media stream properties.")
c2dd07ab 1525 (license license:lgpl2.1+)))
8142aff3
EB
1526
1527(define-public libquvi
1528 (package
1529 (name "libquvi")
1530 (version "0.4.1")
1531 (source
1532 (origin
1533 (method url-fetch)
1534 (uri (string-append
de67e922
LF
1535 "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/"
1536 name "-" version ".tar.xz"))
8142aff3
EB
1537 (sha256
1538 (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
1539 (build-system gnu-build-system)
1540 (native-inputs `(("pkg-config" ,pkg-config)))
1541 (inputs
1542 `(("curl" ,curl)
1543 ("cyrus-sasl" ,cyrus-sasl)
1544 ("libquvi-scripts" ,libquvi-scripts)
1545 ("lua" ,lua-5.1)
1546 ("openssl" ,openssl)
1547 ("zlib" ,zlib)))
1548 (arguments
1549 ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
1550 '(#:configure-flags
1551 (let ((lua (assoc-ref %build-inputs "lua")))
1552 (list
1553 (string-append "liblua_CFLAGS=-I" lua "/include")
1554 (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
1555 (home-page "http://quvi.sourceforge.net/")
1556 (synopsis "Media stream URL parser")
1557 (description "libquvi is a library with a C API for parsing media stream
1558URLs and extracting their actual media files.")
c2dd07ab 1559 (license license:lgpl2.1+)))
8142aff3
EB
1560
1561(define-public quvi
1562 (package
1563 (name "quvi")
1564 (version "0.4.2")
1565 (source
1566 (origin
1567 (method url-fetch)
1568 (uri (string-append
de67e922
LF
1569 "mirror://sourceforge/" name "/" (version-major+minor version)
1570 "/" name "/" name "-" version ".tar.xz"))
8142aff3
EB
1571 (sha256
1572 (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
1573 (build-system gnu-build-system)
1574 (native-inputs `(("pkg-config" ,pkg-config)))
1575 (inputs
1576 `(("curl" ,curl)
1577 ("libquvi" ,libquvi)))
1578 (home-page "http://quvi.sourceforge.net/")
1579 (synopsis "Media stream URL parser")
1580 (description "quvi is a command-line-tool suite to extract media files
1581from streaming URLs. It is a command-line wrapper for the libquvi library.")
c2dd07ab 1582 (license license:lgpl2.1+)))
8142aff3 1583
ed865936
MW
1584(define-public serf
1585 (package
1586 (name "serf")
244d4f48 1587 (version "1.3.9")
ed865936
MW
1588 (source
1589 (origin
1590 (method url-fetch)
6d22653e 1591 (uri (string-append "https://archive.apache.org/dist/serf/serf-"
ed865936
MW
1592 version ".tar.bz2"))
1593 (sha256
244d4f48 1594 (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
82cc8253 1595 (build-system scons-build-system)
ed865936
MW
1596 (propagated-inputs
1597 `(("apr" ,apr)
1598 ("apr-util" ,apr-util)
1599 ("openssl" ,openssl)))
1600 (inputs
1601 `(;; TODO: Fix build with gss.
1602 ;;("gss" ,gss)
1603 ("zlib" ,zlib)))
1604 (arguments
82cc8253
AI
1605 `(#:scons ,scons-python2
1606 #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
1607 (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
1608 (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl"))
1609 ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss"))
1610 (string-append "ZLIB=" (assoc-ref %build-inputs "zlib"))
1611 (string-append "PREFIX=" %output))
4da18166 1612 #:phases
ed865936 1613 (modify-phases %standard-phases
ed865936
MW
1614 (add-after 'unpack 'scons-propagate-environment
1615 (lambda _
1616 ;; By design, SCons does not, by default, propagate
1617 ;; environment variables to subprocesses. See:
1618 ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
1619 ;; Here, we modify the SConstruct file to arrange for
1620 ;; environment variables to be propagated.
1621 (substitute* "SConstruct"
1622 (("^env = Environment\\(")
1623 "env = Environment(ENV=os.environ, "))))
decb4c26
MB
1624 (add-before 'check 'disable-broken-tests
1625 (lambda _
1626 ;; These tests rely on SSL certificates that expired 2017-04-18.
1627 ;; While there are newer certs available upstream, we don't want
1628 ;; this package to suddenly "expire" some time in the future.
1629 ;; https://bugs.gnu.org/26671
1630 (let ((broken-tests
1631 '("test_ssl_trust_rootca"
1632 "test_ssl_certificate_chain_with_anchor"
1633 "test_ssl_certificate_chain_all_from_server"
1634 "test_ssl_no_servercert_callback_allok"
1635 "test_ssl_large_response"
1636 "test_ssl_large_request"
1637 "test_ssl_client_certificate"
1638 "test_ssl_future_server_cert"
1639 "test_setup_ssltunnel"
1640 "test_ssltunnel_basic_auth"
1641 "test_ssltunnel_basic_auth_server_has_keepalive_off"
1642 "test_ssltunnel_basic_auth_proxy_has_keepalive_off"
1643 "test_ssltunnel_basic_auth_proxy_close_conn_on_200resp"
1644 "test_ssltunnel_digest_auth")))
1645 (for-each
1646 (lambda (test)
1647 (substitute* "test/test_context.c"
1648 (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) "")))
1649 broken-tests)
82cc8253 1650 #t))))))
6d22653e 1651 (home-page "https://serf.apache.org/")
ed865936
MW
1652 (synopsis "High-performance asynchronous HTTP client library")
1653 (description
1654 "serf is a C-based HTTP client library built upon the Apache Portable
1655Runtime (APR) library. It multiplexes connections, running the read/write
1656communication asynchronously. Memory copies and transformations are kept to a
1657minimum to provide high performance operation.")
1658 ;; Most of the code is covered by the Apache License, Version 2.0, but the
1659 ;; bundled CuTest framework uses a different non-copyleft license.
c2dd07ab 1660 (license (list license:asl2.0 (license:non-copyleft "file://test/CuTest-README.txt")))))
ed865936 1661
7fe1be18
CB
1662(define-public libsass
1663 (package
1664 (name "libsass")
bed24ecf 1665 ;; When updating, check whether sassc/libsass-3.5 is still needed.
65e2feee 1666 (version "3.6.3")
7fe1be18
CB
1667 (source (origin
1668 (method git-fetch)
1669 (uri (git-reference
1670 (url "https://github.com/sass/libsass.git")
1671 (commit version)))
1672 (file-name (git-file-name name version))
1673 (sha256
1674 (base32
65e2feee 1675 "1vn0q343d1vxz5q0xb6f9dzjah8z6j0s6x0lwvwdd55xa8z7rsnh"))))
7fe1be18
CB
1676 (build-system gnu-build-system)
1677 (arguments
1678 `(#:phases
1679 (modify-phases %standard-phases
1680 (add-before 'bootstrap 'set-LIBSASS_VERSION
1681 (lambda _
1682 (setenv "LIBSASS_VERSION" ,version)
1683 #t)))))
1684 (native-inputs
1685 `(("autoconf" ,autoconf)
1686 ("automake" ,automake)
1687 ("libtool" ,libtool)))
1688 (home-page "https://sass-lang.com/libsass")
1689 (synopsis "SASS Compiler, implemented as a C/C++ library")
1690 (description
1691 "LibSass is a @acronym{SASS,Syntactically awesome style sheets} compiler
1692library designed for portability and efficiency. To actually compile SASS
1693stylesheets, you'll need to use another program that uses this library,
1694@var{sassc} for example.")
c2dd07ab 1695 (license license:expat)))
7fe1be18 1696
385a44be 1697(define-public sassc
8c150157
CB
1698 (package
1699 (name "sassc")
fc4eb87d 1700 (version "3.6.1")
8c150157
CB
1701 (source (origin
1702 (method git-fetch)
1703 (uri (git-reference
1704 (url "https://github.com/sass/sassc.git")
1705 (commit version)))
1706 (file-name (git-file-name name version))
1707 (sha256
1708 (base32
fc4eb87d 1709 "1sxm54mkhs9m4vnl7vn11y17mhzamc403hv3966j1c7p2rbzg5pv"))))
8c150157
CB
1710 (build-system gnu-build-system)
1711 (arguments
1712 `(#:make-flags
1713 (list "CC=gcc"
1714 (string-append "PREFIX=" (assoc-ref %outputs "out")))
3497086b 1715 #:tests? #f ; no test suite
8c150157
CB
1716 #:phases
1717 (modify-phases %standard-phases
1718 (add-after 'unpack 'patch-Makefile
1719 (lambda _
1720 (substitute* "Makefile"
1721 (("build-shared: \\$\\(RESOURCES\\) \\$\\(OBJECTS\\) \\$\\(LIB_SHARED\\)")
1722 "build-shared: $(RESOURCES) $(OBJECTS)")
1723 (("\\$\\(SASSC_EXE\\): libsass build")
1724 "$(SASSC_EXE): build")
1725 (("install: libsass-install-\\$\\(BUILD\\) \\\\")
1726 "install: \\"))
1727 #t))
3497086b 1728 ;; This phase fails for some reason.
8c150157 1729 (delete 'bootstrap)
3497086b 1730 ;; There is no configure script.
8c150157
CB
1731 (delete 'configure)
1732 (add-before 'build 'setup-environment
1733 (lambda _
1734 (setenv "BUILD" "shared")
1735 (setenv "SASSC_VERSION" ,version)
1736 #t)))))
1737 (inputs
1738 `(("libsass" ,libsass)))
1739 (synopsis "CSS pre-processor")
1740 (description "SassC is a compiler written in C for the CSS pre-processor
385a44be 1741language known as SASS.")
3497086b 1742 (home-page "https://sass-lang.com/libsass")
c2dd07ab 1743 (license license:expat)))
385a44be 1744
bed24ecf
TGR
1745(define-public sassc/libsass-3.5
1746 ;; Newer libsass versions suffor from a memory leak when building (some?)
1747 ;; GTK themes <https://github.com/sass/libsass/issues/3033>.
1748 (package
1749 (inherit sassc)
1750 (name "sassc")
1751 (inputs
1752 `(("libsass" ,
1753 (package
1754 (inherit libsass)
1755 (name "libsass")
1756 (version "3.5.5")
1757 (source
1758 (origin
1759 (method git-fetch)
1760 (uri (git-reference
1761 (url "https://github.com/sass/libsass.git")
1762 (commit version)))
1763 (file-name (git-file-name name version))
1764 (sha256
1765 (base32
52d9cad4
TGR
1766 "0830pjcvhzxh6yixj82x5k5r1xnadjqzi16kp53213icbly0r9ma"))))))))
1767 (properties '((hidden? . #t)))))
bed24ecf 1768
8142aff3 1769\f
dc1c804a
EB
1770(define-public perl-apache-logformat-compiler
1771 (package
1772 (name "perl-apache-logformat-compiler")
af6533d4 1773 (version "0.36")
dc1c804a
EB
1774 (source
1775 (origin
1776 (method url-fetch)
1777 (uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/"
1778 "Apache-LogFormat-Compiler-" version ".tar.gz"))
1779 (sha256
af6533d4 1780 (base32 "05xcl7j65vakx7x79jqjikyw0nzf60bc2w6hhc0q5sklxq1ral4l"))))
dc1c804a
EB
1781 (build-system perl-build-system)
1782 (native-inputs
1783 `(("perl-http-message" ,perl-http-message)
96473656 1784 ("perl-module-build-tiny" ,perl-module-build-tiny)
dc1c804a
EB
1785 ("perl-test-mocktime" ,perl-test-mocktime)
1786 ("perl-try-tiny" ,perl-try-tiny)
1787 ("perl-uri" ,perl-uri)))
1788 (propagated-inputs
1789 `(("perl-posix-strftime-compiler" ,perl-posix-strftime-compiler)))
96473656 1790 (arguments `(#:tests? #f)) ; TODO: Timezone test failures
9aba9b12 1791 (home-page "https://metacpan.org/release/Apache-LogFormat-Compiler")
dc1c804a
EB
1792 (synopsis "Compile a log format string to perl-code")
1793 (description "This module provides methods to compile a log format string
1794to perl-code, for faster generation of access_log lines.")
c2dd07ab 1795 (license license:perl-license)))
dc1c804a 1796
c6ee18ab
EB
1797(define-public perl-authen-sasl
1798 (package
1799 (name "perl-authen-sasl")
1800 (version "2.16")
1801 (source
1802 (origin
1803 (method url-fetch)
1804 (uri (string-append "mirror://cpan/authors/id/G/GB/GBARR/"
1805 "Authen-SASL-" version ".tar.gz"))
1806 (sha256
1807 (base32
1808 "02afhlrdq5hh5g8b32fa79fqq5i76qzwfqqvfi9zi57h31szl536"))))
1809 (build-system perl-build-system)
f61d39ac
LF
1810 (arguments
1811 '(#:phases
1812 (modify-phases %standard-phases
1813 (add-after 'unpack 'set-env
1814 ;; Fix the build with Perl 5.26.0. Try removing this phase for later
1815 ;; versions of perl-authen-sasl.
1816 (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
c6ee18ab
EB
1817 (propagated-inputs
1818 `(("perl-digest-hmac" ,perl-digest-hmac)
1819 ("perl-gssapi" ,perl-gssapi)))
9aba9b12 1820 (home-page "https://metacpan.org/release/Authen-SASL")
c6ee18ab
EB
1821 (synopsis "SASL authentication framework")
1822 (description "Authen::SASL provides an SASL authentication framework.")
c2dd07ab 1823 (license license:perl-license)))
c6ee18ab 1824
cd39d814
EB
1825(define-public perl-catalyst-action-renderview
1826 (package
1827 (name "perl-catalyst-action-renderview")
1828 (version "0.16")
1829 (source
1830 (origin
1831 (method url-fetch)
1832 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
1833 "Catalyst-Action-RenderView-"
1834 version ".tar.gz"))
1835 (sha256
1836 (base32
1837 "0j1rrld13cjk7ks92b5hv3xw4rfm2lvmksb4rlzd8mx0a0wj0rc5"))))
1838 (build-system perl-build-system)
1839 (native-inputs
2f837cf7
MB
1840 `(("perl-http-request-ascgi" ,perl-http-request-ascgi)
1841 ("perl-module-install" ,perl-module-install)))
cd39d814
EB
1842 (propagated-inputs
1843 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1844 ("perl-data-visitor" ,perl-data-visitor)
1845 ("perl-mro-compat" ,perl-mro-compat)))
9aba9b12 1846 (home-page "https://metacpan.org/release/Catalyst-Action-RenderView")
cd39d814
EB
1847 (synopsis "Sensible default Catalyst action")
1848 (description "This Catalyst action implements a sensible default end
1849action, which will forward to the first available view.")
c2dd07ab 1850 (license license:perl-license)))
cd39d814 1851
aaef00bf
EB
1852(define-public perl-catalyst-action-rest
1853 (package
1854 (name "perl-catalyst-action-rest")
2f67ac37 1855 (version "1.21")
aaef00bf
EB
1856 (source (origin
1857 (method url-fetch)
d0b9c34f 1858 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
aaef00bf
EB
1859 "Catalyst-Action-REST-" version ".tar.gz"))
1860 (sha256
1861 (base32
2f67ac37 1862 "086bykggzalbjfk0islac4b48g9s2ypj7y81d6ns1lq0aax1py6c"))))
aaef00bf
EB
1863 (build-system perl-build-system)
1864 (native-inputs
2f837cf7
MB
1865 `(("perl-test-requires" ,perl-test-requires)
1866 ("perl-module-install" ,perl-module-install)))
aaef00bf
EB
1867 (propagated-inputs
1868 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1869 ("perl-class-inspector" ,perl-class-inspector)
abafd66d
EF
1870 ("perl-config-general" ,perl-config-general)
1871 ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
aaef00bf
EB
1872 ("perl-libwww" ,perl-libwww)
1873 ("perl-moose" ,perl-moose)
1874 ("perl-mro-compat" ,perl-mro-compat)
1875 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1876 ("perl-params-validate" ,perl-params-validate)
abafd66d
EF
1877 ("perl-uri-find" ,perl-uri-find)
1878 ("perl-xml-simple" ,perl-xml-simple)))
9aba9b12 1879 (home-page "https://metacpan.org/release/Catalyst-Action-REST")
aaef00bf
EB
1880 (synopsis "Automated REST Method Dispatching")
1881 (description "This Action handles doing automatic method dispatching for
1882REST requests. It takes a normal Catalyst action, and changes the dispatch to
1883append an underscore and method name. First it will try dispatching to an
1884action with the generated name, and failing that it will try to dispatch to a
1885regular method.")
c2dd07ab 1886 (license license:perl-license)))
aaef00bf 1887
6e545bbf
EB
1888(define-public perl-catalyst-authentication-store-dbix-class
1889 (package
1890 (name "perl-catalyst-authentication-store-dbix-class")
1891 (version "0.1506")
1892 (source
1893 (origin
1894 (method url-fetch)
1895 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
1896 "Catalyst-Authentication-Store-DBIx-Class-"
1897 version ".tar.gz"))
1898 (sha256
1899 (base32
1900 "0i5ja7690fs9nhxcij6lw51j804sm8s06m5mvk1n8pi8jljrymvw"))))
1901 (build-system perl-build-system)
1902 (native-inputs
1903 `(("perl-catalyst-plugin-authorization-roles"
1904 ,perl-catalyst-plugin-authorization-roles)
1905 ("perl-catalyst-plugin-session-state-cookie"
1906 ,perl-catalyst-plugin-session-state-cookie)
1907 ("perl-dbd-sqlite" ,perl-dbd-sqlite)
2f837cf7 1908 ("perl-module-install" ,perl-module-install)
6e545bbf
EB
1909 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
1910 (propagated-inputs
1911 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1912 ("perl-catalyst-plugin-authentication"
1913 ,perl-catalyst-plugin-authentication)
1914 ("perl-dbix-class" ,perl-dbix-class)
1915 ("perl-catalyst-model-dbic-schema" ,perl-catalyst-model-dbic-schema)))
1916 (home-page
9aba9b12 1917 "https://metacpan.org/release/Catalyst-Authentication-Store-DBIx-Class")
6e545bbf
EB
1918 (synopsis "Storage class for Catalyst authentication using DBIx::Class")
1919 (description "The Catalyst::Authentication::Store::DBIx::Class class
1920provides access to authentication information stored in a database via
1921DBIx::Class.")
c2dd07ab 1922 (license license:perl-license)))
6e545bbf 1923
040a52fd
EB
1924(define-public perl-catalyst-component-instancepercontext
1925 (package
1926 (name "perl-catalyst-component-instancepercontext")
1927 (version "0.001001")
1928 (source
1929 (origin
1930 (method url-fetch)
1931 (uri (string-append "mirror://cpan/authors/id/G/GR/GRODITI/"
1932 "Catalyst-Component-InstancePerContext-"
1933 version ".tar.gz"))
1934 (sha256
1935 (base32
1936 "0wfj4vnn2cvk6jh62amwlg050p37fcwdgrn9amcz24z6w4qgjqvz"))))
1937 (build-system perl-build-system)
2f837cf7
MB
1938 (native-inputs
1939 `(("perl-module-install" ,perl-module-install)))
040a52fd
EB
1940 (propagated-inputs
1941 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
1942 ("perl-moose" ,perl-moose)))
1943 (home-page
9aba9b12 1944 "https://metacpan.org/release/Catalyst-Component-InstancePerContext")
040a52fd
EB
1945 (synopsis "Create only one instance of Moose component per context")
1946 (description "Catalyst::Component::InstancePerContext returns a new
1947instance of a component on each request.")
c2dd07ab 1948 (license license:perl-license)))
040a52fd 1949
bdec3223
EB
1950(define-public perl-catalyst-devel
1951 (package
1952 (name "perl-catalyst-devel")
9d7a3562 1953 (version "1.40")
bdec3223
EB
1954 (source
1955 (origin
1956 (method url-fetch)
9d7a3562 1957 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
bdec3223
EB
1958 "Catalyst-Devel-" version ".tar.gz"))
1959 (sha256
9d7a3562 1960 (base32 "1fqnw6cizpxnfr87rpid8w1wpi1p1lxg6imfjpixqn7s055hcpwc"))))
bdec3223
EB
1961 (build-system perl-build-system)
1962 (native-inputs
1963 `(("perl-test-fatal" ,perl-test-fatal)))
1964 (propagated-inputs
1965 `(("perl-catalyst-action-renderview" ,perl-catalyst-action-renderview)
1966 ("perl-catalyst-plugin-configloader" ,perl-catalyst-plugin-configloader)
1967 ("perl-catalyst-plugin-static-simple" ,perl-catalyst-plugin-static-simple)
1968 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
1969 ("perl-config-general" ,perl-config-general)
1970 ("perl-file-changenotify" ,perl-file-changenotify)
1971 ("perl-file-copy-recursive" ,perl-file-copy-recursive)
1972 ("perl-file-sharedir" ,perl-file-sharedir)
1973 ("perl-module-install" ,perl-module-install)
1974 ("perl-moose" ,perl-moose)
1975 ("perl-moosex-emulate-class-accessor-fast"
1976 ,perl-moosex-emulate-class-accessor-fast)
1977 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1978 ("perl-namespace-clean" ,perl-namespace-clean)
1979 ("perl-path-class" ,perl-path-class)
1980 ("perl-template-toolkit" ,perl-template-toolkit)))
9aba9b12 1981 (home-page "https://metacpan.org/release/Catalyst-Devel")
bdec3223
EB
1982 (synopsis "Catalyst Development Tools")
1983 (description "The Catalyst-Devel distribution includes a variety of
1984modules useful for the development of Catalyst applications, but not required
1985to run them. Catalyst-Devel includes the Catalyst::Helper system, which
1986autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install
1987extension for Catalyst; and requirements for a variety of development-related
1988modules.")
c2dd07ab 1989 (license license:perl-license)))
bdec3223 1990
9473af1d
EB
1991(define-public perl-catalyst-dispatchtype-regex
1992 (package
1993 (name "perl-catalyst-dispatchtype-regex")
1994 (version "5.90035")
1995 (source
1996 (origin
1997 (method url-fetch)
1998 (uri (string-append "mirror://cpan/authors/id/M/MG/MGRIMES/"
1999 "Catalyst-DispatchType-Regex-" version ".tar.gz"))
2000 (sha256
2001 (base32
2002 "06jq1lmpq88rmp9zik5gqczg234xac0hiyc3l698iif7zsgcyb80"))))
2003 (build-system perl-build-system)
2004 (native-inputs
2005 `(("perl-module-build" ,perl-module-build) ;needs Module::Build >= 0.4004
2006 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2007 ("perl-catalyst-runtime" ,perl-catalyst-runtime)))
2008 (propagated-inputs
2009 `(("perl-moose" ,perl-moose)
2010 ("perl-text-simpletable" ,perl-text-simpletable)))
9aba9b12 2011 (home-page "https://metacpan.org/release/Catalyst-DispatchType-Regex")
9473af1d
EB
2012 (synopsis "Regex DispatchType for Catalyst")
2013 (description "Dispatch type managing path-matching behaviour using
2014regexes. Regex dispatch types have been deprecated and removed from Catalyst
2015core. It is recommend that you use Chained methods or other techniques
2016instead. As part of the refactoring, the dispatch priority of Regex vs Regexp
2017vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by
2018when the dispatch type is first seen in your application.")
c2dd07ab 2019 (license license:perl-license)))
9473af1d 2020
f643a6e9
EB
2021(define-public perl-catalyst-model-dbic-schema
2022 (package
2023 (name "perl-catalyst-model-dbic-schema")
2024 (version "0.65")
2025 (source
2026 (origin
2027 (method url-fetch)
2028 (uri (string-append "mirror://cpan/authors/id/G/GB/GBJK/"
2029 "Catalyst-Model-DBIC-Schema-"
2030 version ".tar.gz"))
2031 (sha256
2032 (base32
2033 "1spfjcjc0b9dv3k2gbanqj1m1cqzyxb32p76dhdwizzpbvpi3a96"))))
2034 (build-system perl-build-system)
2035 (native-inputs
2036 `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
2f837cf7 2037 ("perl-module-install" ,perl-module-install)
f643a6e9
EB
2038 ("perl-test-exception" ,perl-test-exception)
2039 ("perl-test-requires" ,perl-test-requires)))
2040 (propagated-inputs
2041 `(("perl-carp-clan" ,perl-carp-clan)
2042 ("perl-catalyst-component-instancepercontext"
2043 ,perl-catalyst-component-instancepercontext)
2044 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2045 ("perl-catalystx-component-traits" ,perl-catalystx-component-traits)
2046 ("perl-dbix-class" ,perl-dbix-class)
2047 ("perl-dbix-class-cursor-cached" ,perl-dbix-class-cursor-cached)
2048 ("perl-dbix-class-schema-loader" ,perl-dbix-class-schema-loader)
2049 ("perl-hash-merge" ,perl-hash-merge)
2050 ("perl-list-moreutils" ,perl-list-moreutils)
2051 ("perl-module-runtime" ,perl-module-runtime)
2052 ("perl-moose" ,perl-moose)
2053 ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
2054 ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
2055 ("perl-moosex-types" ,perl-moosex-types)
2056 ("perl-moosex-types-loadableclass" ,perl-moosex-types-loadableclass)
2057 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2058 ("perl-namespace-clean" ,perl-namespace-clean)
2059 ("perl-tie-ixhash" ,perl-tie-ixhash)
2060 ("perl-try-tiny" ,perl-try-tiny)))
9aba9b12 2061 (home-page "https://metacpan.org/release/Catalyst-Model-DBIC-Schema")
f643a6e9
EB
2062 (synopsis "DBIx::Class::Schema Model Class")
2063 (description "This is a Catalyst Model for DBIx::Class::Schema-based
2064Models.")
c2dd07ab 2065 (license license:perl-license)))
f643a6e9 2066
0a74d78d
EB
2067(define-public perl-catalyst-plugin-accesslog
2068 (package
2069 (name "perl-catalyst-plugin-accesslog")
9fc41452 2070 (version "1.10")
0a74d78d
EB
2071 (source
2072 (origin
2073 (method url-fetch)
2074 (uri (string-append "mirror://cpan/authors/id/A/AR/ARODLAND/"
2075 "Catalyst-Plugin-AccessLog-" version ".tar.gz"))
2076 (sha256
2077 (base32
9fc41452 2078 "0811rj45q4v2y8wka3wb9d5m4vbyhcmkvddf2wz4x69awzjbhgc7"))))
0a74d78d
EB
2079 (build-system perl-build-system)
2080 (propagated-inputs
2081 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2082 ("perl-datetime" ,perl-datetime)
2083 ("perl-moose" ,perl-moose)
2084 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
9aba9b12 2085 (home-page "https://metacpan.org/release/Catalyst-Plugin-AccessLog")
0a74d78d
EB
2086 (synopsis "Request logging from within Catalyst")
2087 (description "This Catalyst plugin enables you to create \"access logs\"
2088from within a Catalyst application instead of requiring a webserver to do it
2089for you. It will work even with Catalyst debug logging turned off.")
c2dd07ab 2090 (license license:perl-license)))
0a74d78d 2091
4b4fe57d
EB
2092(define-public perl-catalyst-plugin-authentication
2093 (package
2094 (name "perl-catalyst-plugin-authentication")
2095 (version "0.10023")
2096 (source
2097 (origin
2098 (method url-fetch)
2099 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
2100 "Catalyst-Plugin-Authentication-"
2101 version ".tar.gz"))
2102 (sha256
2103 (base32
2104 "0v6hb4r1wv3djrnqvnjcn3xx1scgqzx8nyjdg9lfc1ybvamrl0rn"))))
2105 (build-system perl-build-system)
2f837cf7
MB
2106 (native-inputs
2107 `(("perl-module-install" ,perl-module-install)))
4b4fe57d
EB
2108 (propagated-inputs
2109 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
2110 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2111 ("perl-class-inspector" ,perl-class-inspector)
2112 ("perl-moose" ,perl-moose)
2113 ("perl-moosex-emulate-class-accessor-fast"
2114 ,perl-moosex-emulate-class-accessor-fast)
2115 ("perl-mro-compat" ,perl-mro-compat)
2116 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2117 ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
2118 ("perl-test-exception" ,perl-test-exception)
2119 ("perl-try-tiny" ,perl-try-tiny)))
9aba9b12 2120 (home-page "https://metacpan.org/release/Catalyst-Plugin-Authentication")
4b4fe57d
EB
2121 (synopsis "Infrastructure plugin for the Catalyst authentication framework")
2122 (description "The authentication plugin provides generic user support for
e881752c 2123Catalyst apps. It is the basis for both authentication (checking the user is
4b4fe57d
EB
2124who they claim to be), and authorization (allowing the user to do what the
2125system authorises them to do).")
c2dd07ab 2126 (license license:perl-license)))
4b4fe57d 2127
514214cb
EB
2128(define-public perl-catalyst-plugin-authorization-roles
2129 (package
2130 (name "perl-catalyst-plugin-authorization-roles")
2131 (version "0.09")
2132 (source
2133 (origin
2134 (method url-fetch)
2135 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
2136 "Catalyst-Plugin-Authorization-Roles-"
2137 version ".tar.gz"))
2138 (sha256
2139 (base32
2140 "0l83lkwmq0lngwh8b1rv3r719pn8w1gdbyhjqm74rnd0wbjl8h7f"))))
2141 (build-system perl-build-system)
2142 (native-inputs
2f837cf7
MB
2143 `(("perl-module-install" ,perl-module-install)
2144 ("perl-test-exception" ,perl-test-exception)))
514214cb
EB
2145 (propagated-inputs
2146 `(("perl-catalyst-plugin-authentication"
2147 ,perl-catalyst-plugin-authentication)
2148 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2149 ("perl-set-object" ,perl-set-object)
2150 ("perl-universal-isa" ,perl-universal-isa)))
2151 (home-page
9aba9b12 2152 "https://metacpan.org/release/Catalyst-Plugin-Authorization-Roles")
514214cb
EB
2153 (synopsis "Role-based authorization for Catalyst")
2154 (description "Catalyst::Plugin::Authorization::Roles provides role-based
2155authorization for Catalyst based on Catalyst::Plugin::Authentication.")
c2dd07ab 2156 (license license:perl-license)))
514214cb 2157
57c2680e
EB
2158(define-public perl-catalyst-plugin-captcha
2159 (package
2160 (name "perl-catalyst-plugin-captcha")
2161 (version "0.04")
2162 (source
2163 (origin
2164 (method url-fetch)
2165 (uri (string-append "mirror://cpan/authors/id/D/DI/DIEGOK/"
2166 "Catalyst-Plugin-Captcha-" version ".tar.gz"))
2167 (sha256
2168 (base32
2169 "0llyj3v5nx9cx46jdbbvxf1lc9s9cxq5ml22xmx3wkb201r5qgaa"))))
2170 (build-system perl-build-system)
2171 (propagated-inputs
2172 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
2173 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2174 ("perl-gd-securityimage" ,perl-gd-securityimage)
2175 ("perl-http-date" ,perl-http-date)))
9aba9b12 2176 (home-page "https://metacpan.org/release/Catalyst-Plugin-Captcha")
57c2680e
EB
2177 (synopsis "Captchas for Catalyst")
2178 (description "This plugin creates and validates Captcha images for
2179Catalyst.")
c2dd07ab 2180 (license license:perl-license)))
57c2680e 2181
7c4eaa56
EB
2182(define-public perl-catalyst-plugin-configloader
2183 (package
2184 (name "perl-catalyst-plugin-configloader")
2185 (version "0.34")
2186 (source
2187 (origin
2188 (method url-fetch)
2189 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
2190 "Catalyst-Plugin-ConfigLoader-"
2191 version ".tar.gz"))
2192 (sha256
2193 (base32
2194 "19j7p4v7mbx6wrmpvmrnd974apx7hdl2s095ga3b9zcbdrl77h5q"))))
2195 (build-system perl-build-system)
2196 (native-inputs
2f837cf7
MB
2197 `(("perl-path-class" ,perl-path-class)
2198 ("perl-module-install" ,perl-module-install)))
7c4eaa56
EB
2199 (propagated-inputs
2200 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2201 ("perl-config-any" ,perl-config-any)
2202 ("perl-data-visitor" ,perl-data-visitor)
2203 ("perl-mro-compat" ,perl-mro-compat)))
9aba9b12 2204 (home-page "https://metacpan.org/release/Catalyst-Plugin-ConfigLoader")
7c4eaa56
EB
2205 (synopsis "Load config files of various types")
2206 (description "This module will attempt to load find and load configuration
2207files of various types. Currently it supports YAML, JSON, XML, INI and Perl
2208formats.")
c2dd07ab 2209 (license license:perl-license)))
7c4eaa56 2210
3d4644e4
EB
2211(define-public perl-catalyst-plugin-session
2212 (package
2213 (name "perl-catalyst-plugin-session")
7f5a010b 2214 (version "0.41")
3d4644e4
EB
2215 (source
2216 (origin
2217 (method url-fetch)
2218 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
2219 "Catalyst-Plugin-Session-" version ".tar.gz"))
2220 (sha256
7f5a010b 2221 (base32 "0a451997zc2vjx7rvndgx1ldbrpic8sfbddyvncynh0zr8bhlqc5"))))
3d4644e4
EB
2222 (build-system perl-build-system)
2223 (native-inputs
2f837cf7
MB
2224 `(("perl-module-install" ,perl-module-install)
2225 ("perl-test-deep" ,perl-test-deep)
3d4644e4
EB
2226 ("perl-test-exception" ,perl-test-exception)))
2227 (propagated-inputs
2228 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2229 ("perl-moose" ,perl-moose)
2230 ("perl-moosex-emulate-class-accessor-fast"
2231 ,perl-moosex-emulate-class-accessor-fast)
e8b20020 2232 ("perl-mro-compat" ,perl-mro-compat)
3d4644e4
EB
2233 ("perl-namespace-clean" ,perl-namespace-clean)
2234 ("perl-object-signature" ,perl-object-signature)
2235 ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
9aba9b12 2236 (home-page "https://metacpan.org/release/Catalyst-Plugin-Session")
3d4644e4
EB
2237 (synopsis "Catalyst generic session plugin")
2238 (description "This plugin links the two pieces required for session
2239management in web applications together: the state, and the store.")
c2dd07ab 2240 (license license:perl-license)))
3d4644e4 2241
be734479
EB
2242(define-public perl-catalyst-plugin-session-state-cookie
2243 (package
2244 (name "perl-catalyst-plugin-session-state-cookie")
2245 (version "0.17")
2246 (source
2247 (origin
2248 (method url-fetch)
2249 (uri (string-append "mirror://cpan/authors/id/M/MS/MSTROUT/"
2250 "Catalyst-Plugin-Session-State-Cookie-"
2251 version ".tar.gz"))
2252 (sha256
2253 (base32
2254 "1rvxbfnpf9x2pc2zgpazlcgdlr2dijmxgmcs0m5nazs0w6xikssb"))))
2255 (build-system perl-build-system)
2f837cf7
MB
2256 (native-inputs
2257 `(("perl-module-install" ,perl-module-install)))
be734479
EB
2258 (propagated-inputs
2259 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
2260 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2261 ("perl-moose" ,perl-moose)
2262 ("perl-mro-compat" ,perl-mro-compat)
2263 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
2264 (home-page
9aba9b12 2265 "https://metacpan.org/release/Catalyst-Plugin-Session-State-Cookie")
be734479
EB
2266 (synopsis "Maintain session IDs using cookies")
2267 (description "In order for Catalyst::Plugin::Session to work, the session
2268ID needs to be stored on the client, and the session data needs to be stored
2269on the server. This plugin stores the session ID on the client using the
2270cookie mechanism.")
c2dd07ab 2271 (license license:perl-license)))
be734479 2272
47533b6f
EB
2273(define-public perl-catalyst-plugin-session-store-fastmmap
2274 (package
2275 (name "perl-catalyst-plugin-session-store-fastmmap")
2276 (version "0.16")
2277 (source
2278 (origin
2279 (method url-fetch)
2280 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
2281 "Catalyst-Plugin-Session-Store-FastMmap-"
2282 version ".tar.gz"))
2283 (sha256
2284 (base32
2285 "0x3j6zv3wr41jlwr6yb2jpmcx019ibyn11y8653ffnwhpzbpzsxs"))))
2286 (build-system perl-build-system)
2287 (propagated-inputs
2288 `(("perl-cache-fastmmap" ,perl-cache-fastmmap)
2289 ("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
2290 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2291 ("perl-moosex-emulate-class-accessor-fast"
2292 ,perl-moosex-emulate-class-accessor-fast)
2293 ("perl-mro-compat" ,perl-mro-compat)
2294 ("perl-path-class" ,perl-path-class)))
2295 (home-page
9aba9b12 2296 "https://metacpan.org/release/Catalyst-Plugin-Session-Store-FastMmap")
e881752c 2297 (synopsis "FastMmap session storage backend")
47533b6f
EB
2298 (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
2299storage plugin for Catalyst that uses an mmap'ed file to act as a shared
2300memory interprocess cache. It is based on Cache::FastMmap.")
c2dd07ab 2301 (license license:perl-license)))
47533b6f 2302
996f4110
EB
2303(define-public perl-catalyst-plugin-stacktrace
2304 (package
2305 (name "perl-catalyst-plugin-stacktrace")
2306 (version "0.12")
2307 (source
2308 (origin
2309 (method url-fetch)
2310 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
2311 "Catalyst-Plugin-StackTrace-" version ".tar.gz"))
2312 (sha256
2313 (base32
2314 "1b2ksz74cpigxqzf63rddar3vfmnbpwpdcbs11v0ml89pb8ar79j"))))
2315 (build-system perl-build-system)
2f837cf7
MB
2316 (native-inputs
2317 `(("perl-module-install" ,perl-module-install)))
996f4110
EB
2318 (propagated-inputs
2319 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2320 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
2321 ("perl-mro-compat" ,perl-mro-compat)))
9aba9b12 2322 (home-page "https://metacpan.org/release/Catalyst-Plugin-StackTrace")
996f4110
EB
2323 (synopsis "Stack trace on the Catalyst debug screen")
2324 (description "This plugin enhances the standard Catalyst debug screen by
69b4ffcf 2325including a stack trace of your application up to the point where the error
996f4110
EB
2326occurred. Each stack frame is displayed along with the package name, line
2327number, file name, and code context surrounding the line number.")
c2dd07ab 2328 (license license:perl-license)))
996f4110 2329
4cb5426c
EB
2330(define-public perl-catalyst-plugin-static-simple
2331 (package
2332 (name "perl-catalyst-plugin-static-simple")
3dae7a05 2333 (version "0.36")
4cb5426c
EB
2334 (source
2335 (origin
2336 (method url-fetch)
3dae7a05 2337 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
4cb5426c
EB
2338 "Catalyst-Plugin-Static-Simple-" version ".tar.gz"))
2339 (sha256
2340 (base32
3dae7a05 2341 "0m4l627p2fvzr4i6sgdxhdvsx4wpa6qmaibsbxlg5x5yjs7k7drn"))))
4cb5426c 2342 (build-system perl-build-system)
2f837cf7
MB
2343 (native-inputs
2344 `(("perl-module-install" ,perl-module-install)))
4cb5426c
EB
2345 (propagated-inputs
2346 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2347 ("perl-mime-types" ,perl-mime-types)
2348 ("perl-moose" ,perl-moose)
2349 ("perl-moosex-types" ,perl-moosex-types)
2350 ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
9aba9b12 2351 (home-page "https://metacpan.org/release/Catalyst-Plugin-Static-Simple")
4cb5426c
EB
2352 (synopsis "Simple serving of static pages")
2353 (description "The Static::Simple plugin is designed to make serving static
2354content in your application during development quick and easy, without
2355requiring a single line of code from you. This plugin detects static files by
2356looking at the file extension in the URL (such as .css or .png or .js). The
2357plugin uses the lightweight MIME::Types module to map file extensions to
2358IANA-registered MIME types, and will serve your static files with the correct
2359MIME type directly to the browser, without being processed through Catalyst.")
c2dd07ab 2360 (license license:perl-license)))
4cb5426c 2361
91f06299
EB
2362(define-public perl-catalyst-runtime
2363 (package
2364 (name "perl-catalyst-runtime")
624ed47d 2365 (version "5.90124")
91f06299
EB
2366 (source
2367 (origin
2368 (method url-fetch)
624ed47d 2369 (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
91f06299
EB
2370 "Catalyst-Runtime-" version ".tar.gz"))
2371 (sha256
2372 (base32
624ed47d 2373 "001yk1i0xwn4v308qx15nvnp6v9qfdigdlvz1rgw5zpnq7kwnq1a"))))
91f06299
EB
2374 (build-system perl-build-system)
2375 (native-inputs
b544dde3 2376 `(("perl-test-fatal" ,perl-test-fatal)))
91f06299
EB
2377 (propagated-inputs
2378 `(("perl-cgi-simple" ,perl-cgi-simple)
2379 ("perl-cgi-struct" ,perl-cgi-struct)
2380 ("perl-class-c3-adopt-next" ,perl-class-c3-adopt-next)
91f06299
EB
2381 ("perl-class-date" ,perl-class-date)
2382 ("perl-class-load" ,perl-class-load)
2383 ("perl-data-dump" ,perl-data-dump)
2384 ("perl-http-body" ,perl-http-body)
2385 ("perl-http-message" ,perl-http-message)
91f06299
EB
2386 ("perl-json-maybexs" ,perl-json-maybexs)
2387 ("perl-libwww" ,perl-libwww)
a2190ccc 2388 ("perl-module-pluggable" ,perl-module-pluggable)
91f06299
EB
2389 ("perl-moose" ,perl-moose)
2390 ("perl-moosex-emulate-class-accessor-fast"
2391 ,perl-moosex-emulate-class-accessor-fast)
2392 ("perl-moosex-getopt" ,perl-moosex-getopt)
2393 ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)
91f06299
EB
2394 ("perl-namespace-clean" ,perl-namespace-clean)
2395 ("perl-path-class" ,perl-path-class)
624ed47d 2396 ("perl-perlio-utf8-strict" ,perl-perlio-utf8_strict)
91f06299
EB
2397 ("perl-plack" ,perl-plack)
2398 ("perl-plack-middleware-fixmissingbodyinredirect"
2399 ,perl-plack-middleware-fixmissingbodyinredirect)
2400 ("perl-plack-middleware-methodoverride"
2401 ,perl-plack-middleware-methodoverride)
2402 ("perl-plack-middleware-removeredundantbody"
2403 ,perl-plack-middleware-removeredundantbody)
2404 ("perl-plack-middleware-reverseproxy"
2405 ,perl-plack-middleware-reverseproxy)
2406 ("perl-plack-test-externalserver" ,perl-plack-test-externalserver)
2407 ("perl-safe-isa" ,perl-safe-isa)
2408 ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
2409 ("perl-text-simpletable" ,perl-text-simpletable)
2410 ("perl-tree-simple" ,perl-tree-simple)
2411 ("perl-tree-simple-visitorfactory" ,perl-tree-simple-visitorfactory)
2412 ("perl-try-tiny" ,perl-try-tiny)
2413 ("perl-uri" ,perl-uri)
2414 ("perl-uri-ws" ,perl-uri-ws)))
9aba9b12 2415 (home-page "https://metacpan.org/release/Catalyst-Runtime")
91f06299
EB
2416 (synopsis "The Catalyst Framework Runtime")
2417 (description "Catalyst is a modern framework for making web applications.
2418It is designed to make it easy to manage the various tasks you need to do to
2419run an application on the web, either by doing them itself, or by letting you
2420\"plug in\" existing Perl modules that do what you need.")
c2dd07ab 2421 (license license:perl-license)))
91f06299 2422
b902eb1c
EB
2423(define-public perl-catalyst-traitfor-request-proxybase
2424 (package
2425 (name "perl-catalyst-traitfor-request-proxybase")
2426 (version "0.000005")
2427 (source
2428 (origin
2429 (method url-fetch)
2430 (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
2431 "Catalyst-TraitFor-Request-ProxyBase-"
2432 version ".tar.gz"))
2433 (sha256
2434 (base32
2435 "02kir63d5cs2ipj3fn1qlmmx3gqi1xqzrxfr4pv5vjhjgsm0zgx7"))))
2436 (build-system perl-build-system)
2437 (native-inputs
2438 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2439 ("perl-catalystx-roleapplicator" ,perl-catalystx-roleapplicator)
2f837cf7
MB
2440 ("perl-http-message" ,perl-http-message)
2441 ("perl-module-install" ,perl-module-install)))
b902eb1c
EB
2442 (propagated-inputs
2443 `(("perl-moose" ,perl-moose)
2444 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2445 ("perl-uri" ,perl-uri)))
2446 (home-page
9aba9b12 2447 "https://metacpan.org/release/Catalyst-TraitFor-Request-ProxyBase")
b902eb1c
EB
2448 (synopsis "Replace request base with value passed by HTTP proxy")
2449 (description "This module is a Moose::Role which allows you more
2450flexibility in your application's deployment configurations when deployed
2451behind a proxy. Using this module, the request base ($c->req->base) is
2452replaced with the contents of the X-Request-Base header.")
c2dd07ab 2453 (license license:perl-license)))
b902eb1c 2454
83261658
EB
2455(define-public perl-catalyst-view-download
2456 (package
2457 (name "perl-catalyst-view-download")
2458 (version "0.09")
2459 (source
2460 (origin
2461 (method url-fetch)
2462 (uri (string-append "mirror://cpan/authors/id/G/GA/GAUDEON/"
2463 "Catalyst-View-Download-" version ".tar.gz"))
2464 (sha256
2465 (base32
2466 "1qgq6y9iwfbhbkbgpw9czang2ami6z8jk1zlagrzdisy4igqzkvs"))))
2467 (build-system perl-build-system)
2468 (native-inputs
2469 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2f837cf7 2470 ("perl-module-install" ,perl-module-install)
83261658
EB
2471 ("perl-test-simple" ,perl-test-simple)
2472 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)
2473 ("perl-text-csv" ,perl-text-csv)
2474 ("perl-xml-simple" ,perl-xml-simple)))
9aba9b12 2475 (home-page "https://metacpan.org/release/Catalyst-View-Download")
83261658
EB
2476 (synopsis "Download data in many formats")
2477 (description "The purpose of this module is to provide a method for
2478downloading data into many supportable formats. For example, downloading a
e881752c 2479table based report in a variety of formats (CSV, HTML, etc.).")
c2dd07ab 2480 (license license:perl-license)))
83261658 2481
c985cfe6
EB
2482(define-public perl-catalyst-view-json
2483 (package
2484 (name "perl-catalyst-view-json")
e5efdbce 2485 (version "0.37")
c985cfe6
EB
2486 (source
2487 (origin
2488 (method url-fetch)
e5efdbce 2489 (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
c985cfe6
EB
2490 "Catalyst-View-JSON-" version ".tar.gz"))
2491 (sha256
2492 (base32
e5efdbce 2493 "1v4xkzazs743sc7cd1kxkbi99cf00a4dadyyancckcbpi9p3znn5"))))
c985cfe6
EB
2494 (build-system perl-build-system)
2495 (native-inputs
2f837cf7
MB
2496 `(("perl-module-install" ,perl-module-install)
2497 ("perl-yaml" ,perl-yaml)))
c985cfe6
EB
2498 (inputs
2499 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2500 ("perl-json-maybexs" ,perl-json-maybexs)
2501 ("perl-mro-compat" ,perl-mro-compat)))
9aba9b12 2502 (home-page "https://metacpan.org/release/Catalyst-View-JSON")
c985cfe6
EB
2503 (synopsis "Catalyst JSON view")
2504 (description "Catalyst::View::JSON is a Catalyst View handler that returns
2505stash data in JSON format.")
c2dd07ab 2506 (license license:perl-license)))
c985cfe6 2507
5c2c9ab2
EB
2508(define-public perl-catalyst-view-tt
2509 (package
2510 (name "perl-catalyst-view-tt")
776ca1cb 2511 (version "0.44")
5c2c9ab2
EB
2512 (source
2513 (origin
2514 (method url-fetch)
94692757 2515 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
5c2c9ab2
EB
2516 "Catalyst-View-TT-" version ".tar.gz"))
2517 (sha256
2518 (base32
776ca1cb 2519 "06d1zg4nbb6kcyjbnyxrkf8z4zlscxr8650d94f7187jygfl8rvh"))))
5c2c9ab2
EB
2520 (build-system perl-build-system)
2521 (propagated-inputs
2522 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2523 ("perl-class-accessor" ,perl-class-accessor)
776ca1cb 2524 ("perl-data-dump" ,perl-data-dump)
5c2c9ab2
EB
2525 ("perl-mro-compat" ,perl-mro-compat)
2526 ("perl-path-class" ,perl-path-class)
2527 ("perl-template-timer" ,perl-template-timer)
2528 ("perl-template-toolkit" ,perl-template-toolkit)))
9aba9b12 2529 (home-page "https://metacpan.org/release/Catalyst-View-TT")
5c2c9ab2
EB
2530 (synopsis "Template View Class")
2531 (description "This module is a Catalyst view class for the Template
2532Toolkit.")
c2dd07ab 2533 (license license:perl-license)))
5c2c9ab2 2534
89a2aa36
EB
2535(define-public perl-catalystx-component-traits
2536 (package
2537 (name "perl-catalystx-component-traits")
2538 (version "0.19")
2539 (source
2540 (origin
2541 (method url-fetch)
2542 (uri (string-append "mirror://cpan/authors/id/R/RK/RKITOVER/"
2543 "CatalystX-Component-Traits-" version ".tar.gz"))
2544 (sha256
2545 (base32
2546 "0iq4ci8m6g2c4g01fvdl568y7pjz28f3widk986v3pyhr7ll8j88"))))
2547 (build-system perl-build-system)
2548 (native-inputs
2549 `(("perl-moose" ,perl-moose)
2550 ("perl-catalyst-runtime" ,perl-catalyst-runtime)
2551 ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)))
2552 (propagated-inputs
2553 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2554 ("perl-class-load" ,perl-class-load)
2555 ("perl-moose" ,perl-moose)
2556 ("perl-moosex-traits-pluggable" ,perl-moosex-traits-pluggable)
2557 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2558 ("perl-list-moreutils" ,perl-list-moreutils)))
9aba9b12 2559 (home-page "https://metacpan.org/release/CatalystX-Component-Traits")
89a2aa36
EB
2560 (synopsis "Trait Loading and Resolution for Catalyst Components")
2561 (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
2562Catalyst component base class that reads the optional \"traits\" parameter
2563from app and component config and instantiates the component subclass with
2564those traits using \"new_with_traits\" in MooseX::Traits from
2565MooseX::Traits::Pluggable.")
c2dd07ab 2566 (license license:perl-license)))
89a2aa36 2567
227687ae
EB
2568(define-public perl-catalystx-roleapplicator
2569 (package
2570 (name "perl-catalystx-roleapplicator")
2571 (version "0.005")
2572 (source
2573 (origin
2574 (method url-fetch)
2575 (uri (string-append "mirror://cpan/authors/id/H/HD/HDP/"
2576 "CatalystX-RoleApplicator-" version ".tar.gz"))
2577 (sha256
2578 (base32
2579 "0vwaapxn8g5hs2xp63c4dwv9jmapmji4272fakssvgc9frklg3p2"))))
2580 (build-system perl-build-system)
2581 (propagated-inputs
2582 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2583 ("perl-moose" ,perl-moose)
2584 ("perl-moosex-relatedclassroles" ,perl-moosex-relatedclassroles)))
9aba9b12 2585 (home-page "https://metacpan.org/release/CatalystX-RoleApplicator")
227687ae
EB
2586 (synopsis "Apply roles to Catalyst classes")
2587 (description "CatalystX::RoleApplicator applies roles to Catalyst
2588application classes.")
c2dd07ab 2589 (license license:perl-license)))
227687ae 2590
ca8e6196
EB
2591(define-public perl-catalystx-script-server-starman
2592 (package
2593 (name "perl-catalystx-script-server-starman")
17fe49b6 2594 (version "0.03")
ca8e6196
EB
2595 (source
2596 (origin
2597 (method url-fetch)
2598 (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
2599 "CatalystX-Script-Server-Starman-"
2600 version ".tar.gz"))
2601 (sha256
2602 (base32
17fe49b6 2603 "08jvibq4v8xjj0c3cr93h0w8w0c88ajwjn37xjy7ygxl9krlffp6"))))
ca8e6196
EB
2604 (build-system perl-build-system)
2605 (native-inputs
2f837cf7
MB
2606 `(("perl-module-install" ,perl-module-install)
2607 ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
ca8e6196
EB
2608 (propagated-inputs
2609 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
2610 ("perl-moose" ,perl-moose)
2611 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
2612 ("starman" ,starman)))
9aba9b12 2613 (home-page "https://metacpan.org/release/CatalystX-Script-Server-Starman")
ca8e6196
EB
2614 (synopsis "Catalyst development server with Starman")
2615 (description "This module provides a Catalyst extension to replace the
2616development server with Starman.")
c2dd07ab 2617 (license license:perl-license)))
ca8e6196 2618
7b158c4e
EB
2619(define-public perl-cgi
2620 (package
2621 (name "perl-cgi")
bec7e21f 2622 (version "4.46")
7b158c4e
EB
2623 (source
2624 (origin
2625 (method url-fetch)
2626 (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/"
2627 "CGI-" version ".tar.gz"))
2628 (sha256
2629 (base32
bec7e21f 2630 "16225vmdsfa2y7i1ydv7634nd0qxxb0ccwnfszjq58rwqgfri2bq"))))
7b158c4e
EB
2631 (build-system perl-build-system)
2632 (native-inputs
2633 `(("perl-test-deep" ,perl-test-deep)
2634 ("perl-test-nowarnings" ,perl-test-nowarnings)
2635 ("perl-test-warn" ,perl-test-warn)))
2636 (propagated-inputs
2637 `(("perl-html-parser" ,perl-html-parser)))
9aba9b12 2638 (home-page "https://metacpan.org/release/CGI")
7b158c4e
EB
2639 (synopsis "Handle Common Gateway Interface requests and responses")
2640 (description "CGI.pm is a stable, complete and mature solution for
2641processing and preparing HTTP requests and responses. Major features include
2642processing form submissions, file uploads, reading and writing cookies, query
2643string generation and manipulation, and processing and preparing HTTP
2644headers.")
c2dd07ab 2645 (license license:perl-license)))
7b158c4e 2646
f52de1e1
PG
2647(define-public perl-cgi-formbuilder
2648 (package
2649 (name "perl-cgi-formbuilder")
2650 (version "3.10")
2651 (source
2652 (origin
2653 (method url-fetch)
2654 (uri (string-append
2655 "https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/"
2656 "CGI-FormBuilder-" version ".tar.gz"))
2657 (sha256
2658 (base32
2659 "163ixq9kninqq094z2rnkg9pv3bcmvjphlww4vksfrzhq3h9pjdf"))))
2660 (build-system perl-build-system)
2661 (inputs `(("perl-cgi" ,perl-cgi)))
2662 (home-page
2663 "https://metacpan.org/release/CGI-FormBuilder")
2664 (synopsis
2665 "Generate and process stateful forms")
2666 (description
2667 "@code{CGI::FormBuilder} provides an easy way to generate and process CGI
2668form-based applications.")
c2dd07ab 2669 (license license:perl-license)))
f52de1e1 2670
f0539b66
CB
2671(define-public perl-cgi-session
2672 (package
2673 (name "perl-cgi-session")
2674 (version "4.48")
2675 (source
2676 (origin
2677 (method url-fetch)
2678 (uri (string-append
2679 "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-"
2680 version
2681 ".tar.gz"))
2682 (sha256
2683 (base32
2684 "1xsl2pz1jrh127pq0b01yffnj4mnp9nvkp88h5mndrscq9hn8xa6"))))
2685 (build-system perl-build-system)
2686 (native-inputs
2687 `(("perl-module-build" ,perl-module-build)))
2688 (inputs `(("perl-cgi" ,perl-cgi)))
2689 (home-page
9aba9b12 2690 "https://metacpan.org/release/CGI-Session")
f0539b66
CB
2691 (synopsis
2692 "Persistent session data in CGI applications")
2693 (description
2694 "@code{CGI::Session} provides modular session management system across
2695HTTP requests.")
c2dd07ab 2696 (license license:perl-license)))
f0539b66 2697
0148aa55
EB
2698(define-public perl-cgi-simple
2699 (package
2700 (name "perl-cgi-simple")
d45b9289 2701 (version "1.22")
0148aa55
EB
2702 (source
2703 (origin
2704 (method url-fetch)
1829f7ef 2705 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
0148aa55
EB
2706 "CGI-Simple-" version ".tar.gz"))
2707 (sha256
d45b9289 2708 (base32 "13c7iwnnavky10ab87pi8jc1kqph03s0rhvj7myn7szhbfisc4gn"))))
0148aa55
EB
2709 (build-system perl-build-system)
2710 (native-inputs
1829f7ef
TGR
2711 `(("perl-io-stringy" ,perl-io-stringy) ; for IO::Scalar
2712 ("perl-module-build" ,perl-module-build)
2713 ("perl-test-exception" ,perl-test-exception)
2714 ("perl-test-nowarnings" ,perl-test-nowarnings)))
9aba9b12 2715 (home-page "https://metacpan.org/release/CGI-Simple")
0148aa55
EB
2716 (synopsis "CGI interface that is CGI.pm compliant")
2717 (description "CGI::Simple provides a relatively lightweight drop in
2718replacement for CGI.pm. It shares an identical OO interface to CGI.pm for
2719parameter parsing, file upload, cookie handling and header generation.")
c2dd07ab 2720 (license license:perl-license)))
0148aa55 2721
76b8b86c
EB
2722(define-public perl-cgi-struct
2723 (package
2724 (name "perl-cgi-struct")
2725 (version "1.21")
2726 (source
2727 (origin
2728 (method url-fetch)
2729 (uri (string-append "mirror://cpan/authors/id/F/FU/FULLERMD/"
2730 "CGI-Struct-" version ".tar.gz"))
2731 (sha256
2732 (base32
2733 "0v4xq2qpryr7i6jngw1wpn8yr2kiib10yxp4aih90vfdznkqsgfi"))))
2734 (build-system perl-build-system)
2735 (native-inputs
2736 `(("perl-test-deep" ,perl-test-deep)))
9aba9b12 2737 (home-page "https://metacpan.org/release/CGI-Struct")
76b8b86c
EB
2738 (synopsis "Build structures from CGI data")
2739 (description "This is a module for building structured data from CGI
2740inputs, in a manner reminiscent of how PHP does.")
c2dd07ab 2741 (license license:bsd-2)))
76b8b86c 2742
9151712c
EB
2743(define-public perl-datetime-format-http
2744 (package
2745 (name "perl-datetime-format-http")
2746 (version "0.42")
2747 (source
2748 (origin
2749 (method url-fetch)
2750 (uri (string-append "mirror://cpan/authors/id/C/CK/CKRAS/"
2751 "DateTime-Format-HTTP-" version ".tar.gz"))
2752 (sha256
2753 (base32
2754 "0h6qqdg1yzqkdxp7hqlp0qa7d1y64nilgimxs79dys2ryjfpcknh"))))
2755 (build-system perl-build-system)
a2190ccc
EB
2756 (native-inputs
2757 `(("perl-module-build" ,perl-module-build)))
9151712c
EB
2758 (propagated-inputs
2759 `(("perl-datetime" ,perl-datetime)
2760 ("perl-http-date" ,perl-http-date)))
9aba9b12 2761 (home-page "https://metacpan.org/release/DateTime-Format-HTTP")
9151712c
EB
2762 (synopsis "Date conversion routines")
2763 (description "This module provides functions that deal with the date
2764formats used by the HTTP protocol.")
c2dd07ab 2765 (license license:perl-license)))
9151712c 2766
0a24e9b8
EB
2767(define-public perl-digest-md5-file
2768 (package
2769 (name "perl-digest-md5-file")
2770 (version "0.08")
2771 (source
2772 (origin
2773 (method url-fetch)
2774 (uri (string-append "mirror://cpan/authors/id/D/DM/DMUEY/"
2775 "Digest-MD5-File-" version ".tar.gz"))
2776 (sha256
2777 (base32
2778 "060jzf45dlwysw5wsm7av1wvpl06xgk415kwwpvv89r6wda3md5d"))))
2779 (build-system perl-build-system)
2780 (propagated-inputs
2781 `(("perl-libwww" ,perl-libwww)))
9aba9b12 2782 (home-page "https://metacpan.org/release/Digest-MD5-File")
0a24e9b8
EB
2783 (synopsis "MD5 sums for files and urls")
2784 (description "Digest::MD5::File is a Perl extension for getting MD5 sums
2785for files and urls.")
c2dd07ab 2786 (license license:perl-license)))
0a24e9b8 2787
8142aff3
EB
2788(define-public perl-encode-locale
2789 (package
2790 (name "perl-encode-locale")
85b9c18b 2791 (version "1.05")
c9ea41ff
AE
2792 (source (origin
2793 (method url-fetch)
2794 (uri (string-append
8142aff3 2795 "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
c9ea41ff
AE
2796 version ".tar.gz"))
2797 (sha256
2798 (base32
85b9c18b 2799 "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp"))))
c9ea41ff 2800 (build-system perl-build-system)
c2dd07ab 2801 (license license:perl-license)
8142aff3 2802 (synopsis "Perl locale encoding determination")
c9ea41ff 2803 (description
8142aff3 2804 "The POSIX locale system is used to specify both the language
7c125ce0
AK
2805conventions requested by the user and the preferred character set to
2806consume and output. The Encode::Locale module looks up the charset and
2807encoding (called a CODESET in the locale jargon) and arranges for the
2808Encode module to know this encoding under the name \"locale\". It means
2809bytes obtained from the environment can be converted to Unicode strings
2810by calling Encode::encode(locale => $bytes) and converted back again
2811with Encode::decode(locale => $string).")
9aba9b12 2812 (home-page "https://metacpan.org/release/Encode-Locale")))
8142aff3 2813
46173a0d 2814(define-public perl-feed-find
2815 (package
2816 (name "perl-feed-find")
2817 (version "0.07")
2818 (source (origin
2819 (method url-fetch)
2820 (uri (string-append "mirror://cpan/authors/id/B/BT/BTROTT/"
2821 "Feed-Find-" version ".tar.gz"))
2822 (sha256
2823 (base32
2824 "0sa33cm8ww55cymnl8j7b5yspi2y5xkkkgqqa4h6fs3wdqylz600"))))
2825 (build-system perl-build-system)
2826 (arguments
2827 ;; Tests expect to query files at http://stupidfool.org/perl/feeds/
70629b6d
LF
2828 `(#:tests? #f
2829 #:phases
2830 (modify-phases %standard-phases
2831 (add-after 'unpack 'set-env
2832 (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1"))))))
46173a0d 2833 (inputs
2834 `(("perl-class-errorhandler" ,perl-class-errorhandler)
2835 ("perl-html-parser" ,perl-html-parser)
2836 ("perl-libwww" ,perl-libwww)
2837 ("perl-uri" ,perl-uri)))
9aba9b12 2838 (home-page "https://metacpan.org/release/Feed-Find")
46173a0d 2839 (synopsis "Syndication feed auto-discovery")
2840 (description "@code{Feed::Find} implements feed auto-discovery for finding
2841syndication feeds, given a URI. It will discover the following feed formats:
2842RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
c2dd07ab 2843 (license license:perl-license)))
46173a0d 2844
8142aff3
EB
2845(define-public perl-file-listing
2846 (package
2847 (name "perl-file-listing")
2848 (version "6.04")
2849 (source (origin
2850 (method url-fetch)
2851 (uri (string-append
2852 "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
2853 version ".tar.gz"))
2854 (sha256
2855 (base32
2856 "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
2857 (build-system perl-build-system)
2858 (propagated-inputs
2859 `(("perl-http-date" ,perl-http-date)))
c2dd07ab 2860 (license license:perl-license)
8142aff3
EB
2861 (synopsis "Perl directory listing parser")
2862 (description
2863 "The File::Listing module exports a single function called parse_dir(),
2864which can be used to parse directory listings.")
9aba9b12 2865 (home-page "https://metacpan.org/release/File-Listing")))
c9ea41ff 2866
8b459932
EB
2867(define-public perl-finance-quote
2868 (package
2869 (name "perl-finance-quote")
5bbe07a0 2870 (version "1.47")
8b459932
EB
2871 (source
2872 (origin
2873 (method url-fetch)
2874 (uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
2875 "Finance-Quote-" version ".tar.gz"))
2876 (sha256
5bbe07a0 2877 (base32 "0gzbq85738f299jaw4nj3ljnka380j2y6yspmyl71rgfypqjvbr7"))
fc1adab1
AK
2878 (patches (search-patches
2879 "perl-finance-quote-unuse-mozilla-ca.patch"))))
8b459932
EB
2880 (build-system perl-build-system)
2881 (propagated-inputs
a2190ccc
EB
2882 `(("perl-cgi" ,perl-cgi)
2883 ("perl-datetime" ,perl-datetime)
8b459932
EB
2884 ("perl-html-parser" ,perl-html-parser)
2885 ("perl-html-tableextract" ,perl-html-tableextract)
2886 ("perl-html-tree" ,perl-html-tree)
2887 ("perl-http-cookies" ,perl-http-cookies)
2888 ("perl-http-message" ,perl-http-message)
2889 ("perl-json" ,perl-json)
2890 ("perl-libwww" ,perl-libwww)
2891 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
2892 ("perl-uri" ,perl-uri)))
9aba9b12 2893 (home-page "https://metacpan.org/release/Finance-Quote")
8b459932
EB
2894 (synopsis "Stock and mutual fund quotes")
2895 (description
2896 "Finance::Quote gets stock quotes from various internet sources, including
2897Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
c2dd07ab 2898 (license license:gpl2)))
8b459932 2899
9fe938c1
EB
2900(define-public perl-gssapi
2901 (package
2902 (name "perl-gssapi")
2903 (version "0.28")
2904 (source
2905 (origin
2906 (method url-fetch)
2907 (uri (string-append "mirror://cpan/authors/id/A/AG/AGROLMS/"
2908 "GSSAPI-" version ".tar.gz"))
2909 (sha256
2910 (base32
2911 "1mkhwxjjlhr58pd770i9gnf7zy7jj092iv6jfbnb8bvnc5xjr3vx"))))
2912 (build-system perl-build-system)
2913 (inputs `(("gssapi" ,mit-krb5)))
2914 (arguments
2915 `(#:make-maker-flags
2916 `(,(string-append "--gssapiimpl=" (assoc-ref %build-inputs "gssapi")))))
9aba9b12 2917 (home-page "https://metacpan.org/release/GSSAPI")
9fe938c1
EB
2918 (synopsis "Perl extension providing access to the GSSAPIv2 library")
2919 (description "This is a Perl extension for using GSSAPI C bindings as
2920described in RFC 2744.")
c2dd07ab 2921 (license license:perl-license)))
9fe938c1 2922
c1b9e7e7
EB
2923(define-public perl-html-element-extended
2924 (package
2925 (name "perl-html-element-extended")
2926 (version "1.18")
2927 (source
2928 (origin
2929 (method url-fetch)
2930 (uri (string-append "mirror://cpan/authors/id/M/MS/MSISK/"
2931 "HTML-Element-Extended-" version ".tar.gz"))
2932 (sha256
2933 (base32
2934 "0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk"))))
2935 (build-system perl-build-system)
2936 (propagated-inputs
2937 `(("perl-html-tree" ,perl-html-tree)))
9aba9b12 2938 (home-page "https://metacpan.org/release/HTML-Element-Extended")
c1b9e7e7
EB
2939 (synopsis "Manipulate tables of HTML::Element")
2940 (description
2941 "HTML::Element::Extended is a Perl extension for manipulating a table
2942composed of HTML::Element style components.")
c2dd07ab 2943 (license license:perl-license)))
c1b9e7e7 2944
bab57fcd
EB
2945(define-public perl-html-form
2946 (package
2947 (name "perl-html-form")
d1b0e1fd 2948 (version "6.05")
bab57fcd
EB
2949 (source
2950 (origin
2951 (method url-fetch)
cf1b1ab0 2952 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
bab57fcd
EB
2953 "HTML-Form-" version ".tar.gz"))
2954 (sha256
d1b0e1fd 2955 (base32 "14i4ldyvdvhdhvfhh9kiq6z853q2f84biq8vcpv1k5w2r80wdiin"))))
bab57fcd
EB
2956 (build-system perl-build-system)
2957 (propagated-inputs
2958 `(("perl-html-parser" ,perl-html-parser)
2959 ("perl-html-tagset" ,perl-html-tagset)
2960 ("perl-http-message" ,perl-http-message)
2961 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
2962 ("perl-uri" ,perl-uri)))
9aba9b12 2963 (home-page "https://metacpan.org/release/HTML-Form")
bab57fcd
EB
2964 (synopsis "Perl class representing an HTML form element")
2965 (description "Objects of the HTML::Form class represents a single HTML
2966<form> ... </form> instance.")
c2dd07ab 2967 (license license:perl-license)))
bab57fcd 2968
4f0ee1b4
CB
2969(define-public perl-html-scrubber
2970 (package
2971 (name "perl-html-scrubber")
b57c6c42 2972 (version "0.17")
4f0ee1b4
CB
2973 (source
2974 (origin
2975 (method url-fetch)
2976 (uri (string-append
2977 "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-"
2978 version
2979 ".tar.gz"))
2980 (sha256
2981 (base32
b57c6c42 2982 "06p7w4zd42b2yh541mlzyqj40lwmvvn3fyqi8big4mf34la7m2jm"))))
4f0ee1b4
CB
2983 (build-system perl-build-system)
2984 (native-inputs
2985 `(("perl-module-build" ,perl-module-build)
2986 ("perl-test-cpan-meta" ,perl-test-cpan-meta)
b57c6c42 2987 ("perl-test-differences" ,perl-test-differences)
4f0ee1b4
CB
2988 ("perl-test-eol" ,perl-test-eol)
2989 ("perl-test-memory-cycle" ,perl-test-memory-cycle)
2990 ("perl-test-notabs" ,perl-test-notabs)))
2991 (inputs
2992 `(("perl-html-parser" ,perl-html-parser)))
2993 (home-page
9aba9b12 2994 "https://metacpan.org/release/HTML-Scrubber")
4f0ee1b4
CB
2995 (synopsis
2996 "Perl extension for scrubbing/sanitizing html")
2997 (description
2998 "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML.")
c2dd07ab 2999 (license license:perl-license)))
4f0ee1b4 3000
0cd2ab30
EB
3001(define-public perl-html-lint
3002 (package
3003 (name "perl-html-lint")
98db1c9b 3004 (version "2.32")
0cd2ab30
EB
3005 (source
3006 (origin
3007 (method url-fetch)
3008 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
3009 "HTML-Lint-" version ".tar.gz"))
3010 (sha256
98db1c9b 3011 (base32 "0lk02xpfxcg7ij4dvpsa4wjlzhmiizj0jfr3rwmdpbj69nvc93br"))))
0cd2ab30
EB
3012 (build-system perl-build-system)
3013 (propagated-inputs
3014 `(("perl-html-parser" ,perl-html-parser)
3015 ("perl-html-tagset" ,perl-html-tagset)
3016 ("perl-libwww" ,perl-libwww)))
9aba9b12 3017 (home-page "https://metacpan.org/release/HTML-Lint")
0cd2ab30
EB
3018 (synopsis "Check for HTML errors in a string or file")
3019 (description "HTML::Lint is a pure-Perl HTML parser and checker for
3020syntactic legitmacy.")
c2dd07ab 3021 (license license:artistic2.0)))
0cd2ab30 3022
9cf6c9fc
EB
3023(define-public perl-html-tableextract
3024 (package
3025 (name "perl-html-tableextract")
3026 (version "2.13")
3027 (source
3028 (origin
3029 (method url-fetch)
3030 (uri (string-append "https://cpan.metacpan.org/authors/id/M/MS/MSISK/"
3031 "HTML-TableExtract-" version ".tar.gz"))
3032 (sha256
3033 (base32
3034 "01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a"))))
3035 (build-system perl-build-system)
3036 (propagated-inputs
3037 `(("perl-html-element-extended" ,perl-html-element-extended)
3038 ("perl-html-parser" ,perl-html-parser)))
9aba9b12 3039 (home-page "https://metacpan.org/release/HTML-TableExtract")
9cf6c9fc
EB
3040 (synopsis "Extract contents from HTML tables")
3041 (description
3042 "HTML::TableExtract is a Perl module for extracting the content contained
3043in tables within an HTML document, either as text or encoded element trees.")
c2dd07ab 3044 (license license:perl-license)))
9cf6c9fc 3045
ddc36cd8
EB
3046(define-public perl-html-tree
3047 (package
3048 (name "perl-html-tree")
6106d195 3049 (version "5.07")
ddc36cd8
EB
3050 (source
3051 (origin
3052 (method url-fetch)
86d1e079 3053 (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/"
ddc36cd8
EB
3054 "HTML-Tree-" version ".tar.gz"))
3055 (sha256
3056 (base32
6106d195 3057 "1gyvm4qlwm9y6hczkpnrdfl303ggbybr0nqxdjw09hii8yw4sdzh"))))
ddc36cd8
EB
3058 (build-system perl-build-system)
3059 (native-inputs
a2190ccc
EB
3060 `(("perl-module-build" ,perl-module-build)
3061 ("perl-test-fatal" ,perl-test-fatal)))
ddc36cd8
EB
3062 (propagated-inputs
3063 `(("perl-html-parser" ,perl-html-parser)
3064 ("perl-html-tagset" ,perl-html-tagset)
3065 ("perl-libwww" ,perl-libwww)))
9aba9b12 3066 (home-page "https://metacpan.org/release/HTML-Tree")
ddc36cd8
EB
3067 (synopsis "Work with HTML in a DOM-like tree structure")
3068 (description "This distribution contains a suite of modules for
3069representing, creating, and extracting information from HTML syntax trees.")
c2dd07ab 3070 (license license:perl-license)))
ddc36cd8 3071
8ec0d3fb
AE
3072(define-public perl-html-parser
3073 (package
3074 (name "perl-html-parser")
3700b27d 3075 (version "3.72")
8ec0d3fb
AE
3076 (source (origin
3077 (method url-fetch)
3078 (uri (string-append
3079 "mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-"
3080 version ".tar.gz"))
3081 (sha256
3082 (base32
3700b27d 3083 "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c"))))
8ec0d3fb
AE
3084 (build-system perl-build-system)
3085 (inputs
3700b27d
EF
3086 `(("perl-html-tagset" ,perl-html-tagset)
3087 ("perl-http-message" ,perl-http-message)))
c2dd07ab 3088 (license license:perl-license)
8ec0d3fb
AE
3089 (synopsis "Perl HTML parser class")
3090 (description
3091 "Objects of the HTML::Parser class will recognize markup and separate
3092it from plain text (alias data content) in HTML documents. As different
3093kinds of markup and text are recognized, the corresponding event handlers
3094are invoked.")
9aba9b12 3095 (home-page "https://metacpan.org/release/HTML-Parser")))
ae2aa18d 3096
8142aff3 3097(define-public perl-html-tagset
ae2aa18d 3098 (package
8142aff3
EB
3099 (name "perl-html-tagset")
3100 (version "3.20")
ae2aa18d
AE
3101 (source (origin
3102 (method url-fetch)
3103 (uri (string-append
8142aff3 3104 "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-"
ae2aa18d
AE
3105 version ".tar.gz"))
3106 (sha256
3107 (base32
8142aff3 3108 "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd"))))
ae2aa18d 3109 (build-system perl-build-system)
c2dd07ab 3110 (license license:perl-license)
8142aff3 3111 (synopsis "Perl data tables useful in parsing HTML")
ae2aa18d 3112 (description
8142aff3
EB
3113 "The HTML::Tagset module contains several data tables useful in various
3114kinds of HTML parsing operations.")
9aba9b12 3115 (home-page "https://metacpan.org/release/HTML-Tagset")))
fea5ebb1 3116
a05996e0
RW
3117(define-public perl-html-template
3118 (package
3119 (name "perl-html-template")
0762a1db 3120 (version "2.97")
a05996e0
RW
3121 (source (origin
3122 (method url-fetch)
0762a1db 3123 (uri (string-append "mirror://cpan/authors/id/S/SA/SAMTREGAR/"
a05996e0
RW
3124 "HTML-Template-" version ".tar.gz"))
3125 (sha256
3126 (base32
0762a1db 3127 "17qjw8swj2q4b1ic285pndgrkmvpsqw0j68nhqzpk1daydhsyiv5"))))
a05996e0 3128 (build-system perl-build-system)
a2190ccc
EB
3129 (propagated-inputs
3130 `(("perl-cgi" ,perl-cgi)))
9aba9b12 3131 (home-page "https://metacpan.org/release/HTML-Template")
a05996e0
RW
3132 (synopsis "HTML-like templates")
3133 (description
3134 "This module attempts to make using HTML templates simple and natural.
3135It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},
3136@code{<TMPL_LOOP>}, @code{<TMPL_INCLUDE>}, @code{<TMPL_IF>},
3137@code{<TMPL_ELSE>} and @code{<TMPL_UNLESS>}. The file written with HTML and
3138these new tags is called a template. Using this module you fill in the values
3139for the variables, loops and branches declared in the template. This allows
3140you to separate design from the data.")
c2dd07ab 3141 (license license:perl-license)))
a05996e0 3142
5ec8ec83
EB
3143(define-public perl-http-body
3144 (package
3145 (name "perl-http-body")
1bb8ca40 3146 (version "1.22")
5ec8ec83
EB
3147 (source
3148 (origin
3149 (method url-fetch)
3150 (uri (string-append "mirror://cpan/authors/id/G/GE/GETTY/"
3151 "HTTP-Body-" version ".tar.gz"))
3152 (sha256
3153 (base32
1bb8ca40 3154 "15vj488i62mdp4ps9k77h39prj70i7anb6b0j8nm7l9vbdc2q3gw"))))
5ec8ec83
EB
3155 (build-system perl-build-system)
3156 (native-inputs
3157 `(("perl-test-deep" ,perl-test-deep)))
3158 (propagated-inputs
3159 `(("perl-file-temp" ,perl-file-temp)
3160 ("perl-http-message" ,perl-http-message))) ;For HTTP::Headers
9aba9b12 3161 (home-page "https://metacpan.org/release/HTTP-Body")
5ec8ec83
EB
3162 (synopsis "HTTP Body Parser")
3163 (description "HTTP::Body parses chunks of HTTP POST data and supports
3164application/octet-stream, application/json, application/x-www-form-urlencoded,
3165and multipart/form-data.")
c2dd07ab 3166 (license license:perl-license)))
5ec8ec83 3167
c8a316a3
EB
3168(define-public perl-http-cookiejar
3169 (package
3170 (name "perl-http-cookiejar")
1ade054c 3171 (version "0.008")
c8a316a3
EB
3172 (source
3173 (origin
3174 (method url-fetch)
3175 (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
3176 "HTTP-CookieJar-" version ".tar.gz"))
3177 (sha256
3178 (base32
1ade054c 3179 "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
c8a316a3
EB
3180 (build-system perl-build-system)
3181 (native-inputs
3182 `(("perl-test-deep" ,perl-test-deep)
3183 ("perl-test-requires" ,perl-test-requires)
1ade054c
EF
3184 ("perl-time-mock" ,perl-time-mock)
3185 ("perl-uri" ,perl-uri)))
c8a316a3
EB
3186 (inputs
3187 `(("perl-time-local" ,perl-time-local)
3188 ("perl-http-date" ,perl-http-date)))
9aba9b12 3189 (home-page "https://metacpan.org/release/HTTP-CookieJar")
c8a316a3
EB
3190 (synopsis "Minimalist HTTP user agent cookie jar")
3191 (description "This module implements a minimalist HTTP user agent cookie
3192jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
c2dd07ab 3193 (license license:asl2.0)))
c8a316a3 3194
8142aff3 3195(define-public perl-http-cookies
fea5ebb1 3196 (package
8142aff3 3197 (name "perl-http-cookies")
b1bbdd7d 3198 (version "6.06")
fea5ebb1
AE
3199 (source (origin
3200 (method url-fetch)
3201 (uri (string-append
8ff5b8aa 3202 "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-"
fea5ebb1
AE
3203 version ".tar.gz"))
3204 (sha256
3205 (base32
b1bbdd7d 3206 "13rnz3233vbsfariya4njiyfaj6k94j6bvlyh3dmfmh24hpqgx77"))))
fea5ebb1 3207 (build-system perl-build-system)
8142aff3
EB
3208 (propagated-inputs
3209 `(("perl-http-message" ,perl-http-message)))
c2dd07ab 3210 (license license:perl-license)
8142aff3 3211 (synopsis "Perl HTTP cookie jars")
fea5ebb1 3212 (description
8142aff3
EB
3213 "The HTTP::Cookies class is for objects that represent a cookie jar,
3214that is, a database of all the HTTP cookies that a given LWP::UserAgent
3215object knows about.")
9aba9b12 3216 (home-page "https://metacpan.org/release/GAAS/HTTP-Cookies-6.01")))
24b3c053 3217
8142aff3 3218(define-public perl-http-daemon
24b3c053 3219 (package
8142aff3
EB
3220 (name "perl-http-daemon")
3221 (version "6.01")
24b3c053
AE
3222 (source (origin
3223 (method url-fetch)
3224 (uri (string-append
8142aff3 3225 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-"
24b3c053
AE
3226 version ".tar.gz"))
3227 (sha256
3228 (base32
8142aff3 3229 "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
24b3c053 3230 (build-system perl-build-system)
8142aff3
EB
3231 (propagated-inputs
3232 `(("perl-http-message" ,perl-http-message)
3233 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
c2dd07ab 3234 (license license:perl-license)
8142aff3 3235 (synopsis "Perl simple http server class")
24b3c053 3236 (description
8142aff3
EB
3237 "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen
3238on a socket for incoming requests. The HTTP::Daemon is a subclass of
3239IO::Socket::INET, so you can perform socket operations directly on it too.")
9aba9b12 3240 (home-page "https://metacpan.org/release/HTTP-Daemon")))
e426106b 3241
8142aff3 3242(define-public perl-http-date
e426106b 3243 (package
8142aff3 3244 (name "perl-http-date")
80b26d6c 3245 (version "6.05")
e426106b
AE
3246 (source (origin
3247 (method url-fetch)
3248 (uri (string-append
80b26d6c 3249 "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Date-"
e426106b
AE
3250 version ".tar.gz"))
3251 (sha256
3252 (base32
80b26d6c 3253 "0awjdbz7x0jd5pna55dwxhs3k6xp3sw6b2zg3p2yndxxvya64p9n"))))
e426106b 3254 (build-system perl-build-system)
c2dd07ab 3255 (license license:perl-license)
8142aff3 3256 (synopsis "Perl date conversion routines")
e426106b 3257 (description
8142aff3
EB
3258 "The HTTP::Date module provides functions that deal with date formats
3259used by the HTTP protocol (and then some more).")
9aba9b12 3260 (home-page "https://metacpan.org/release/HTTP-Date")))
91318a9e 3261
ce3e95d7
PG
3262(define-public perl-http-lite
3263 (package
3264 (name "perl-http-lite")
3265 (version "2.44")
3266 (source
3267 (origin
3268 (method url-fetch)
3269 (uri (string-append
3270 "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-"
3271 version ".tar.gz"))
3272 (sha256
3273 (base32
3274 "0z77nflj8zdcfg70kc93glq5kmd6qxn2nf7h70x4xhfg25wkvr1q"))))
3275 (build-system perl-build-system)
3276 (native-inputs `(("perl-cgi" ,perl-cgi)))
3277 (home-page "https://metacpan.org/release/HTTP-Lite")
3278 (synopsis "Lightweight HTTP implementation")
3279 (description "@code{HTTP::Lite} is a stand-alone lightweight
3280HTTP/1.1 implementation for perl. It is intended for use in
3281situations where it is desirable to install the minimal number of
3282modules to achieve HTTP support. @code{HTTP::Lite} is ideal for
3283CGI (or mod_perl) programs or for bundling for redistribution with
3284larger packages where only HTTP GET and POST functionality are
3285necessary. @code{HTTP::Lite} is compliant with the Host header,
3286necessary for name based virtual hosting, and supports proxies.
3287Additionally, @code{HTTP::Lite} supports a callback to allow
3288processing of request data as it arrives.")
3289 (license license:perl-license)))
3290
91318a9e
AE
3291(define-public perl-http-message
3292 (package
3293 (name "perl-http-message")
ff292a77 3294 (version "6.18")
91318a9e
AE
3295 (source (origin
3296 (method url-fetch)
3297 (uri (string-append
b824534b 3298 "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-"
91318a9e
AE
3299 version ".tar.gz"))
3300 (sha256
3301 (base32
ff292a77 3302 "04lih0fn89jpyk74c4aq1rzq18h8v4zd3x0lik2r9dl8sdqd2q6h"))))
91318a9e 3303 (build-system perl-build-system)
b824534b
TGR
3304 (native-inputs
3305 `(("perl-try-tiny" ,perl-try-tiny)))
daee66fc 3306 (propagated-inputs
a8a7227b
EF
3307 `(("perl-encode-locale" ,perl-encode-locale)
3308 ("perl-http-date" ,perl-http-date)
d8450272
EB
3309 ("perl-io-html" ,perl-io-html)
3310 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
f852114e 3311 ("perl-uri" ,perl-uri)))
c2dd07ab 3312 (license license:perl-license)
91318a9e
AE
3313 (synopsis "Perl HTTP style message")
3314 (description
3315 "An HTTP::Message object contains some headers and a content body.")
9aba9b12 3316 (home-page "https://metacpan.org/release/ETHER/HTTP-Message-6.11")))
b3d18aff 3317
8142aff3 3318(define-public perl-http-negotiate
b3d18aff 3319 (package
8142aff3 3320 (name "perl-http-negotiate")
b3d18aff
AE
3321 (version "6.01")
3322 (source (origin
3323 (method url-fetch)
3324 (uri (string-append
8142aff3 3325 "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
b3d18aff
AE
3326 version ".tar.gz"))
3327 (sha256
3328 (base32
8142aff3 3329 "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
b3d18aff 3330 (build-system perl-build-system)
800de8da 3331 (propagated-inputs
f852114e 3332 `(("perl-http-message" ,perl-http-message)))
c2dd07ab 3333 (license license:perl-license)
8142aff3 3334 (synopsis "Perl http content negotiation")
b3d18aff 3335 (description
8142aff3
EB
3336 "The HTTP::Negotiate module provides a complete implementation of the
3337HTTP content negotiation algorithm specified in
3338draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for
3339the selection of a preferred content representation based upon attributes
3340of the negotiable variants and the value of the various Accept* header
3341fields in the request.")
9aba9b12 3342 (home-page "https://metacpan.org/release/HTTP-Negotiate")))
3f41e6b3 3343
d3182b42
EB
3344(define-public perl-http-parser
3345 (package
3346 (name "perl-http-parser")
3347 (version "0.06")
3348 (source
3349 (origin
3350 (method url-fetch)
3351 (uri (string-append "mirror://cpan/authors/id/E/ED/EDECA/"
3352 "HTTP-Parser-" version ".tar.gz"))
3353 (sha256
3354 (base32
3355 "0idwq3jk595xil65lmxz128ha7s3r2n5zknisddpgwnqrghs3igq"))))
3356 (build-system perl-build-system)
3357 (propagated-inputs
3358 `(("perl-http-message" ,perl-http-message)
3359 ("perl-uri" ,perl-uri)))
9aba9b12 3360 (home-page "https://metacpan.org/release/HTTP-Parser")
d3182b42
EB
3361 (synopsis "Parse HTTP/1.1 requests")
3362 (description "This is an HTTP request parser. It takes chunks of text as
36a4366d 3363received and returns a @code{hint} as to what is required, or returns the
d3182b42
EB
3364HTTP::Request when a complete request has been read. HTTP/1.1 chunking is
3365supported.")
c2dd07ab 3366 (license license:perl-license)))
d3182b42 3367
8ab39c2d
EB
3368(define-public perl-http-parser-xs
3369 (package
3370 (name "perl-http-parser-xs")
3371 (version "0.17")
3372 (source
3373 (origin
3374 (method url-fetch)
3375 (uri (string-append "mirror://cpan/authors/id/K/KA/KAZUHO/"
3376 "HTTP-Parser-XS-" version ".tar.gz"))
3377 (sha256
3378 (base32
3379 "02d84xq1mm53c7jl33qyb7v5w4372vydp74z6qj0vc96wcrnhkkr"))))
3380 (build-system perl-build-system)
9dab5017
MB
3381 (native-inputs
3382 `(("perl-module-install" ,perl-module-install)))
9aba9b12 3383 (home-page "https://metacpan.org/release/HTTP-Parser-XS")
8ab39c2d
EB
3384 (synopsis "Fast HTTP request parser")
3385 (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
3386parser.")
c2dd07ab 3387 (license license:perl-license)))
8ab39c2d 3388
724d2227
EB
3389(define-public perl-http-request-ascgi
3390 (package
3391 (name "perl-http-request-ascgi")
3392 (version "1.2")
3393 (source
3394 (origin
3395 (method url-fetch)
3396 (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
3397 "HTTP-Request-AsCGI-" version ".tar.gz"))
3398 (sha256
3399 (base32
3400 "1smwmiarwcgq7vjdblnb6ldi2x1s5sk5p15p7xvm5byiqq3znnwl"))))
3401 (build-system perl-build-system)
3402 (propagated-inputs
3403 `(("perl-class-accessor" ,perl-class-accessor)
3404 ("perl-http-message" ,perl-http-message)))
9aba9b12 3405 (home-page "https://metacpan.org/release/HTTP-Request-AsCGI")
724d2227
EB
3406 (synopsis "Set up a CGI environment from an HTTP::Request")
3407 (description "This module provides a convenient way to set up a CGI
3408environment from an HTTP::Request.")
c2dd07ab 3409 (license license:perl-license)))
724d2227 3410
c94c7eef
EB
3411(define-public perl-http-server-simple
3412 (package
3413 (name "perl-http-server-simple")
6f8d1f72 3414 (version "0.52")
c94c7eef
EB
3415 (source
3416 (origin
3417 (method url-fetch)
08af1a42 3418 (uri (string-append "mirror://cpan/authors/id/B/BP/BPS/"
c94c7eef
EB
3419 "HTTP-Server-Simple-" version ".tar.gz"))
3420 (sha256
3421 (base32
6f8d1f72 3422 "0k6bg7k6mjixfzxdkkdrhqvaqmdhjszx0zsk8g0bimiby6j9z4yq"))))
c94c7eef 3423 (build-system perl-build-system)
a2190ccc
EB
3424 (propagated-inputs
3425 `(("perl-cgi" ,perl-cgi)))
c94c7eef
EB
3426 (arguments
3427 ;; See the discussion of a related tests issue at
3428 ;; https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00346.html
23212bf9
LC
3429 `(#:tests? #f
3430
3431 #:phases (modify-phases %standard-phases
3432 (add-before 'configure 'set-search-path
3433 (lambda _
3434 ;; Work around "dotless @INC" build failure.
3435 (setenv "PERL5LIB"
3436 (string-append (getcwd) ":"
3437 (getenv "PERL5LIB")))
3438 #t)))))
9aba9b12 3439 (home-page "https://metacpan.org/release/HTTP-Server-Simple")
c94c7eef
EB
3440 (synopsis "Lightweight HTTP server")
3441 (description "HTTP::Server::Simple is a simple standalone HTTP daemon with
3442no non-core module dependencies. It can be used for building a standalone
3443http-based UI to your existing tools.")
c2dd07ab 3444 (license license:perl-license)))
c94c7eef 3445
c3c03beb
EB
3446(define-public perl-http-tiny
3447 (package
3448 (name "perl-http-tiny")
34362ff6 3449 (version "0.076")
c3c03beb
EB
3450 (source
3451 (origin
3452 (method url-fetch)
3453 (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
3454 "HTTP-Tiny-" version ".tar.gz"))
3455 (sha256
3456 (base32
34362ff6 3457 "11wkxxqj3ff84rgj9q2gzkdgscwp3fzj205846k9ycqinlpsmgfx"))))
c3c03beb
EB
3458 (build-system perl-build-system)
3459 (inputs
3460 `(("perl-http-cookiejar" ,perl-http-cookiejar)
3461 ("perl-io-socket-ip" ,perl-io-socket-ip)
3462 ("perl-io-socket-ssl" ,perl-io-socket-ssl)
ee264bbf 3463 ("perl-mozilla-ca" ,perl-mozilla-ca)
c3c03beb 3464 ("perl-net-ssleay" ,perl-net-ssleay)))
9aba9b12 3465 (home-page "https://metacpan.org/release/HTTP-Tiny")
c3c03beb
EB
3466 (synopsis "HTTP/1.1 client")
3467 (description "This is a very simple HTTP/1.1 client, designed for doing
3468simple requests without the overhead of a large framework like LWP::UserAgent.
3469It supports proxies and redirection. It also correctly resumes after EINTR.")
c2dd07ab 3470 (license license:perl-license)))
c3c03beb 3471
41c685f5
CB
3472(define-public perl-http-tinyish
3473 (package
3474 (name "perl-http-tinyish")
3475 (version "0.15")
3476 (source
3477 (origin
3478 (method url-fetch)
3479 (uri (string-append
3480 "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-"
3481 version
3482 ".tar.gz"))
3483 (sha256
3484 (base32
3485 "199sa722amvwhq0czjfb7psj3hbqmvni5vxkrm579r5943pg0rax"))))
3486 (build-system perl-build-system)
3487 (propagated-inputs
3488 `(("perl-file-which" ,perl-file-which)
3489 ("perl-ipc-run3" ,perl-ipc-run3)))
3490 (home-page "https://metacpan.org/release/HTTP-Tinyish")
3491 (synopsis "@code{HTTP::Tiny} compatible HTTP client wrappers")
3492 (description
3493 "@code{HTTP::Tinyish} is a wrapper module for @acronym{LWP,libwww-perl},
3494@code{HTTP::Tiny}, curl and wget.
3495
3496It provides an API compatible to HTTP::Tiny.")
c2dd07ab 3497 (license license:perl-license)))
41c685f5 3498
8142aff3 3499(define-public perl-io-html
3f41e6b3 3500 (package
8142aff3
EB
3501 (name "perl-io-html")
3502 (version "1.00")
3f41e6b3
AE
3503 (source (origin
3504 (method url-fetch)
3505 (uri (string-append
8142aff3 3506 "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
3f41e6b3
AE
3507 version ".tar.gz"))
3508 (sha256
3509 (base32
8142aff3 3510 "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
3f41e6b3 3511 (build-system perl-build-system)
c2dd07ab 3512 (license license:perl-license)
8142aff3 3513 (synopsis "Perl module to open an HTML file with automatic charset detection")
3f41e6b3 3514 (description
8142aff3
EB
3515 "IO::HTML provides an easy way to open a file containing HTML while
3516automatically determining its encoding. It uses the HTML5 encoding sniffing
3517algorithm specified in section 8.2.2.1 of the draft standard.")
9aba9b12 3518 (home-page "https://metacpan.org/release/IO-HTML")))
e7444ee2 3519
2b63ebc1
EB
3520(define-public perl-io-socket-ip
3521 (package
3522 (name "perl-io-socket-ip")
55b7cd10 3523 (version "0.39")
2b63ebc1
EB
3524 (source
3525 (origin
3526 (method url-fetch)
3527 (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
3528 "IO-Socket-IP-" version ".tar.gz"))
3529 (sha256
3530 (base32
55b7cd10 3531 "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
2b63ebc1 3532 (build-system perl-build-system)
a2190ccc 3533 (native-inputs `(("perl-module-build" ,perl-module-build)))
9aba9b12 3534 (home-page "https://metacpan.org/release/IO-Socket-IP")
2b63ebc1
EB
3535 (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
3536 (description "This module provides a protocol-independent way to use IPv4
3537and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
c2dd07ab 3538 (license license:perl-license)))
2b63ebc1 3539
8142aff3 3540(define-public perl-io-socket-ssl
e7444ee2 3541 (package
8142aff3 3542 (name "perl-io-socket-ssl")
2916deb9 3543 (version "2.066")
8142aff3
EB
3544 (source (origin
3545 (method url-fetch)
3546 (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
3547 "IO-Socket-SSL-" version ".tar.gz"))
3548 (sha256
3549 (base32
2916deb9 3550 "1kgbws7dwp2hh16qid7169dfkhmcwg7dz9ffbm6k0id5h53hciqd"))
fc1adab1
AK
3551 (patches (search-patches
3552 "perl-io-socket-ssl-openssl-1.0.2f-fix.patch"))))
8142aff3 3553 (build-system perl-build-system)
578aeea6 3554 (propagated-inputs
3555 `(("perl-net-ssleay" ,perl-net-ssleay)
3556 ;; for IDN support
3557 ("perl-uri" ,perl-uri)))
8142aff3
EB
3558 (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET")
3559 (description
3560 "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the
3561necessary functionality into the familiar IO::Socket interface and providing
3562secure defaults whenever possible. This way existing applications can be made
3563SSL-aware without much effort, at least if you do blocking I/O and don't use
3564select or poll.")
c2dd07ab 3565 (license license:perl-license)
8142aff3
EB
3566 (home-page "https://github.com/noxxi/p5-io-socket-ssl")))
3567
3568(define-public perl-libwww
3569 (package
3570 (name "perl-libwww")
ff68988a 3571 (version "6.41")
e7444ee2
AE
3572 (source (origin
3573 (method url-fetch)
3574 (uri (string-append
38a3f4df 3575 "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-"
e7444ee2
AE
3576 version ".tar.gz"))
3577 (sha256
3578 (base32
ff68988a 3579 "0jh67946fwd33ap3xy8df0421d2mr6lmhalhkf1p7dx2b7fil9wf"))))
e7444ee2 3580 (build-system perl-build-system)
1b08647e
TGR
3581 (native-inputs
3582 `(("perl-test-fatal" ,perl-test-fatal)
3583 ("perl-test-needs" ,perl-test-needs)
b42b5afd 3584 ("perl-test-requiresinternet" ,perl-test-requiresinternet)))
d0bb5f77 3585 (propagated-inputs
8142aff3
EB
3586 `(("perl-encode-locale" ,perl-encode-locale)
3587 ("perl-file-listing" ,perl-file-listing)
3588 ("perl-html-parser" ,perl-html-parser)
3589 ("perl-http-cookies" ,perl-http-cookies)
3590 ("perl-http-daemon" ,perl-http-daemon)
fb332b15
EF
3591 ("perl-http-date" ,perl-http-date)
3592 ("perl-http-message" ,perl-http-message)
8142aff3
EB
3593 ("perl-http-negotiate" ,perl-http-negotiate)
3594 ("perl-net-http" ,perl-net-http)
1b08647e 3595 ("perl-try-tiny" ,perl-try-tiny)
fb332b15 3596 ("perl-uri" ,perl-uri)
8142aff3 3597 ("perl-www-robotrules" ,perl-www-robotrules)))
c2dd07ab 3598 (license license:perl-license)
8142aff3 3599 (synopsis "Perl modules for the WWW")
e7444ee2 3600 (description
8142aff3
EB
3601 "The libwww-perl collection is a set of Perl modules which provides a
3602simple and consistent application programming interface to the
3603World-Wide Web. The main focus of the library is to provide classes
3604and functions that allow you to write WWW clients. The library also
3605contains modules that are of more general use and even classes that
3606help you implement simple HTTP servers.")
9aba9b12 3607 (home-page "https://metacpan.org/release/libwww-perl")))
a3eb919f 3608
efc8f7d0
P
3609(define-public perl-lwp-online
3610 (package
3611 (name "perl-lwp-online")
3612 (version "1.08")
3613 (source
3614 (origin
3615 (method url-fetch)
3616 (uri (string-append
3617 "mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-"
3618 version ".tar.gz"))
3619 (sha256
3620 (base32
3621 "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2"))))
3622 (build-system perl-build-system)
3623 (propagated-inputs
3624 `(("perl-libwww" ,perl-libwww)
3625 ("perl-uri" ,perl-uri)))
3626 (native-inputs
3627 `(("perl-module-install" ,perl-module-install)))
9aba9b12 3628 (home-page "https://metacpan.org/release/LWP-Online")
efc8f7d0
P
3629 (synopsis "Checks whether your process has access to the web")
3630 (description "This module attempts to answer, as accurately as it can, one
3631of the nastiest technical questions there is: am I on the internet?
3632
3633A host of networking and security issues make this problem very difficult.
3634There are firewalls, proxies (both well behaved and badly behaved). We might
3635not have DNS. We might not have a network card at all!")
c2dd07ab 3636 (license license:perl-license)))
efc8f7d0 3637
8142aff3 3638(define-public perl-lwp-mediatypes
a3eb919f 3639 (package
8142aff3 3640 (name "perl-lwp-mediatypes")
631d4dd4 3641 (version "6.04")
a3eb919f
AE
3642 (source (origin
3643 (method url-fetch)
3644 (uri (string-append
631d4dd4 3645 "mirror://cpan/authors/id/O/OA/OALDERS/LWP-MediaTypes-"
a3eb919f
AE
3646 version ".tar.gz"))
3647 (sha256
3648 (base32
631d4dd4 3649 "1n8rg6csv3dsvymg06cmxipimr6cb1g9r903ghm1qsmiv89cl6wg"))))
a3eb919f 3650 (build-system perl-build-system)
631d4dd4
MB
3651 (native-inputs
3652 `(("perl-test-fatal" ,perl-test-fatal)))
c2dd07ab 3653 (license license:perl-license)
8142aff3 3654 (synopsis "Perl module to guess the media type for a file or a URL")
a3eb919f 3655 (description
8142aff3
EB
3656 "The LWP::MediaTypes module provides functions for handling media (also
3657known as MIME) types and encodings. The mapping from file extensions to
3658media types is defined by the media.types file. If the ~/.media.types file
3659exists it is used instead.")
9aba9b12 3660 (home-page "https://metacpan.org/release/LWP-MediaTypes")))
677078b4 3661
bdcfd18e
EB
3662(define-public perl-lwp-protocol-https
3663 (package
3664 (name "perl-lwp-protocol-https")
80f75509 3665 (version "6.07")
bdcfd18e
EB
3666 (source
3667 (origin
3668 (method url-fetch)
80f75509 3669 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
bdcfd18e
EB
3670 "LWP-Protocol-https-" version ".tar.gz"))
3671 (sha256
3672 (base32
80f75509 3673 "1rxrpwylfw1afah0nk96kgkwjbl2p1a7lwx50iipg8c4rx3cjb2j"))))
bdcfd18e 3674 (build-system perl-build-system)
80f75509
TGR
3675 (native-inputs
3676 ;; For tests.
3677 `(("perl-test-requiresinternet" ,perl-test-requiresinternet)))
bdcfd18e
EB
3678 (propagated-inputs
3679 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
3680 ("perl-libwww" ,perl-libwww)
3681 ;; Users should instead make sure SSL_ca_path is set properly.
3682 ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
3683 ("perl-net-http" ,perl-net-http)))
9aba9b12 3684 (home-page "https://metacpan.org/release/LWP-Protocol-https")
bdcfd18e
EB
3685 (synopsis "HTTPS support for LWP::UserAgent")
3686 (description "The LWP::Protocol::https module provides support for using
3687https schemed URLs with LWP.")
c2dd07ab 3688 (license license:perl-license)))
bdcfd18e 3689
32dad069
EB
3690(define-public perl-lwp-useragent-cached
3691 (package
3692 (name "perl-lwp-useragent-cached")
3693 (version "0.08")
3694 (source
3695 (origin
3696 (method url-fetch)
3697 (uri (string-append "mirror://cpan/authors/id/O/OL/OLEG/"
3698 "LWP-UserAgent-Cached-" version ".tar.gz"))
3699 (sha256
3700 (base32
3701 "1hw7wy7f82kl61xjwkgmhv1ixgg56dhgfr45wxn6ahc0qys5mkix"))))
3702 (build-system perl-build-system)
3703 (propagated-inputs
3704 `(("perl-libwww" ,perl-libwww)))
3705 (home-page "https://metacpan.org/release/LWP-UserAgent-Cached")
3706 (synopsis "Simple caching for LWP::UserAgent")
3707 (description "LWP::UserAgent::Cached is an LWP::UserAgent subclass with
3708cache support. It returns responses from the local filesystem if available
3709instead of making an HTTP request.")
3710 (license license:perl-license)))
3711
6a58b092
EB
3712(define-public perl-lwp-useragent-determined
3713 (package
3714 (name "perl-lwp-useragent-determined")
3715 (version "1.07")
3716 (source
3717 (origin
3718 (method url-fetch)
3719 (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/"
3720 "LWP-UserAgent-Determined-" version ".tar.gz"))
3721 (sha256
3722 (base32
3723 "0lyvbpjng7yfvyha9rp2y2c6liz5hhplmd2grc8jlsfkih7dbn06"))))
3724 (build-system perl-build-system)
3725 (propagated-inputs
3726 `(("perl-libwww" ,perl-libwww)))
9aba9b12 3727 (home-page "https://metacpan.org/release/LWP-UserAgent-Determined")
6a58b092
EB
3728 (synopsis "Virtual browser that retries errors")
3729 (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
3730except that when you use it to get a web page but run into a
3731possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds
3732and retry a few times.")
c2dd07ab 3733 (license license:perl-license)))
6a58b092 3734
38e62c81
EB
3735(define-public perl-net-amazon-s3
3736 (package
3737 (name "perl-net-amazon-s3")
3738 (version "0.60")
3739 (source
3740 (origin
3741 (method url-fetch)
3742 (uri (string-append "mirror://cpan/authors/id/P/PF/PFIG/"
3743 "Net-Amazon-S3-" version ".tar.gz"))
3744 (sha256
3745 (base32
3746 "10dcsq4s2kc9cb1vccx17r187c81drirc3s1hbxh3rb8489kg2b2"))
fc1adab1
AK
3747 (patches (search-patches
3748 "perl-net-amazon-s3-moose-warning.patch"))))
38e62c81
EB
3749 (build-system perl-build-system)
3750 (native-inputs
3751 `(("perl-libwww" ,perl-libwww)
3752 ("perl-test-exception" ,perl-test-exception)))
3753 (propagated-inputs
3754 `(("perl-data-stream-bulk" ,perl-data-stream-bulk)
3755 ("perl-datetime-format-http" ,perl-datetime-format-http)
3756 ("perl-digest-hmac" ,perl-digest-hmac)
3757 ("perl-digest-md5-file" ,perl-digest-md5-file)
3758 ("perl-file-find-rule" ,perl-file-find-rule)
3759 ("perl-http-date" ,perl-http-date)
3760 ("perl-http-message" ,perl-http-message)
3761 ("perl-lwp-useragent-determined" ,perl-lwp-useragent-determined)
3762 ("perl-mime-types" ,perl-mime-types)
3763 ("perl-moose" ,perl-moose)
3764 ("perl-moosex-strictconstructor" ,perl-moosex-strictconstructor)
3765 ("perl-moosex-types-datetime-morecoercions"
3766 ,perl-moosex-types-datetime-morecoercions)
3767 ("perl-path-class" ,perl-path-class)
3768 ("perl-regexp-common" ,perl-regexp-common)
3769 ("perl-term-encoding" ,perl-term-encoding)
3770 ("perl-term-progressbar-simple" ,perl-term-progressbar-simple)
3771 ("perl-uri" ,perl-uri)
3772 ("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 3773 (home-page "https://metacpan.org/release/Net-Amazon-S3")
38e62c81
EB
3774 (synopsis "Perl interface to Amazon S3")
3775 (description "This module provides a Perlish interface to Amazon S3.")
c2dd07ab 3776 (license license:perl-license)))
38e62c81 3777
677078b4
AE
3778(define-public perl-net-http
3779 (package
3780 (name "perl-net-http")
1bb4122c 3781 (version "6.19")
677078b4
AE
3782 (source (origin
3783 (method url-fetch)
3784 (uri (string-append
d35135fa
TGR
3785 "mirror://cpan/authors/id/O/OA/OALDERS/"
3786 "Net-HTTP-" version ".tar.gz"))
677078b4
AE
3787 (sha256
3788 (base32
1bb4122c 3789 "1i1gbcwdzx74whn5vn6xbr2cp7frldfz2rfrcjp2qljr770nxdsj"))))
677078b4 3790 (build-system perl-build-system)
0eb3b5bd
EB
3791 (propagated-inputs
3792 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
3793 ("perl-uri" ,perl-uri)))
c2dd07ab 3794 (license license:perl-license)
677078b4
AE
3795 (synopsis "Perl low-level HTTP connection (client)")
3796 (description
3797 "The Net::HTTP class is a low-level HTTP client. An instance of the
3798Net::HTTP class represents a connection to an HTTP server. The HTTP protocol
3799is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and
3800HTTP/1.1.")
9aba9b12 3801 (home-page "https://metacpan.org/release/Net-HTTP")))
56aa03b0 3802
be22d5fc
EB
3803(define-public perl-net-server
3804 (package
3805 (name "perl-net-server")
7eb09e39 3806 (version "2.009")
be22d5fc
EB
3807 (source
3808 (origin
3809 (method url-fetch)
3810 (uri (string-append "mirror://cpan/authors/id/R/RH/RHANDOM/"
3811 "Net-Server-" version ".tar.gz"))
3812 (sha256
3813 (base32
7eb09e39 3814 "0gw1k9gcw7habbkxvsfa2gz34brlbwcidk6khgsf1qjm0dbccrw2"))))
be22d5fc 3815 (build-system perl-build-system)
9aba9b12 3816 (home-page "https://metacpan.org/release/Net-Server")
be22d5fc
EB
3817 (synopsis "Extensible Perl server engine")
3818 (description "Net::Server is an extensible, generic Perl server engine.
3819It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
3820It includes with it the ability to run as an inetd
3821process (Net::Server::INET), a single connection server (Net::Server or
3822Net::Server::Single), a forking server (Net::Server::Fork), a preforking
3823server which maintains a constant number of preforked
3824children (Net::Server::PreForkSimple), or as a managed preforking server which
3825maintains the number of children based on server load (Net::Server::PreFork).
3826In all but the inetd type, the server provides the ability to connect to one
3827or to multiple server ports.")
c2dd07ab 3828 (license license:perl-license)))
be22d5fc 3829
b1096f3d
EB
3830(define-public perl-net-smtp-ssl
3831 (package
3832 (name "perl-net-smtp-ssl")
12505bae 3833 (version "1.04")
b1096f3d
EB
3834 (source
3835 (origin
3836 (method url-fetch)
21085261 3837 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
b1096f3d
EB
3838 "Net-SMTP-SSL-" version ".tar.gz"))
3839 (sha256
21085261 3840 (base32
12505bae 3841 "001a6dcfahf7kkyirqkc8jd4fh4fkal7n7vm9c4dblqrvmdc8abv"))))
b1096f3d
EB
3842 (build-system perl-build-system)
3843 (propagated-inputs
3844 `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
9aba9b12 3845 (home-page "https://metacpan.org/release/Net-SMTP-SSL")
b1096f3d 3846 (synopsis "SSL support for Net::SMTP")
e881752c 3847 (description "SSL support for Net::SMTP.")
c2dd07ab 3848 (license license:perl-license)))
b1096f3d 3849
5933549d
EB
3850(define-public perl-plack
3851 (package
3852 (name "perl-plack")
3853 (version "1.0033")
3854 (source
3855 (origin
3856 (method url-fetch)
3857 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
3858 "Plack-" version ".tar.gz"))
3859 (sha256
3860 (base32
3861 "081jg0xddzpg2anmqi9i6d7vs6c8z7k557bf8xl6vgb3h95pin5w"))))
3862 (build-system perl-build-system)
3863 (native-inputs
3864 `(("perl-test-requires" ,perl-test-requires)
3865 ("perl-file-sharedir-install" ,perl-file-sharedir-install)))
3866 (propagated-inputs
3867 `(("perl-apache-logformat-compiler" ,perl-apache-logformat-compiler)
3868 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
3869 ("perl-devel-stacktrace-ashtml" ,perl-devel-stacktrace-ashtml)
3870 ("perl-file-sharedir" ,perl-file-sharedir)
3871 ("perl-hash-multivalue" ,perl-hash-multivalue)
3872 ("perl-http-body" ,perl-http-body)
3873 ("perl-http-message" ,perl-http-message)
3874 ("perl-http-tiny" ,perl-http-tiny)
3875 ("perl-libwww" ,perl-libwww)
3876 ("perl-stream-buffered" ,perl-stream-buffered)
3877 ("perl-test-tcp" ,perl-test-tcp)
3878 ("perl-try-tiny" ,perl-try-tiny)
3879 ("perl-uri" ,perl-uri)))
9aba9b12 3880 (home-page "https://metacpan.org/release/Plack")
5933549d
EB
3881 (synopsis "Perl Superglue for Web frameworks and servers (PSGI toolkit)")
3882 (description "Plack is a set of tools for using the PSGI stack. It
3883contains middleware components, a reference server, and utilities for Web
3884application frameworks. Plack is like Ruby's Rack or Python's Paste for
3885WSGI.")
c2dd07ab 3886 (license license:perl-license)))
5933549d 3887
b968bf75
SB
3888(define-public perl-plack-middleware-deflater
3889 (package
3890 (name "perl-plack-middleware-deflater")
3891 (version "0.12")
3892 (source
3893 (origin
3894 (method url-fetch)
3895 (uri (string-append
3896 "mirror://cpan/authors/id/K/KA/KAZEBURO/"
3897 "Plack-Middleware-Deflater-" version ".tar.gz"))
3898 (sha256
3899 (base32
3900 "0xf2visi16hgwgyp9q0cjr10ikbn474hjia5mj8mb2scvbkrbni8"))))
3901 (build-system perl-build-system)
3902 (native-inputs
3903 `(("perl-module-install" ,perl-module-install)
3904 ("perl-test-requires" ,perl-test-requires)))
3905 (propagated-inputs
3906 `(("perl-plack" ,perl-plack)))
3907 (home-page "https://metacpan.org/release/Plack-Middleware-Deflater")
3908 (synopsis "Compress response body with Gzip or Deflate")
3909 (description
3910 "Plack::Middleware::Deflater is a middleware to encode your response body
3911in gzip or deflate, based on \"Accept-Encoding\" HTTP request header. It
3912would save the bandwidth a little bit but should increase the Plack server
3913load, so ideally you should handle this on the frontend reverse proxy
3914servers.")
c2dd07ab 3915 (license license:perl-license)))
b968bf75 3916
acd1f73a
EB
3917(define-public perl-plack-middleware-fixmissingbodyinredirect
3918 (package
3919 (name "perl-plack-middleware-fixmissingbodyinredirect")
3920 (version "0.12")
3921 (source
3922 (origin
3923 (method url-fetch)
3924 (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
3925 "Plack-Middleware-FixMissingBodyInRedirect-"
3926 version ".tar.gz"))
3927 (sha256
3928 (base32
3929 "14dkrmccq7a5vpymx5dv8032gfcvhsw2i6v5sh3c4ym5ymlx08kc"))))
3930 (build-system perl-build-system)
3931 (native-inputs
3932 `(("perl-html-parser" ,perl-html-parser) ;for HTML::Entities
3933 ("perl-http-message" ,perl-http-message)
3934 ("perl-plack" ,perl-plack))) ;for Plack::Test
3935 (home-page
9aba9b12 3936 "https://metacpan.org/release/Plack-Middleware-FixMissingBodyInRedirect")
acd1f73a
EB
3937 (synopsis "Plack::Middleware which sets body for redirect response")
3938 (description "This module sets the body in redirect response, if it's not
3939already set.")
c2dd07ab 3940 (license license:perl-license)))
acd1f73a 3941
03d874d0
EB
3942(define-public perl-plack-middleware-methodoverride
3943 (package
3944 (name "perl-plack-middleware-methodoverride")
6b455f8c 3945 (version "0.20")
03d874d0
EB
3946 (source
3947 (origin
3948 (method url-fetch)
6b455f8c 3949 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
03d874d0
EB
3950 "Plack-Middleware-MethodOverride-"
3951 version ".tar.gz"))
3952 (sha256
6b455f8c 3953 (base32 "1wdmmav3rbhv49zpw311zrxxqmg1fz3f3q9src0ypgs8zcp5myyv"))))
03d874d0 3954 (build-system perl-build-system)
a2190ccc
EB
3955 (native-inputs
3956 `(("perl-module-build" ,perl-module-build)))
03d874d0
EB
3957 (propagated-inputs
3958 `(("perl-plack" ,perl-plack)))
9aba9b12 3959 (home-page "https://metacpan.org/release/Plack-Middleware-MethodOverride")
03d874d0
EB
3960 (synopsis "Override REST methods to Plack apps via POST")
3961 (description "This middleware allows for POST requests that pretend to be
3962something else: by adding either a header named X-HTTP-Method-Override to the
3963request, or a query parameter named x-tunneled-method to the URI, the client
3964can say what method it actually meant.")
c2dd07ab 3965 (license license:perl-license)))
03d874d0 3966
13e330be
EB
3967(define-public perl-plack-middleware-removeredundantbody
3968 (package
3969 (name "perl-plack-middleware-removeredundantbody")
f44678f6 3970 (version "0.07")
13e330be
EB
3971 (source
3972 (origin
3973 (method url-fetch)
3974 (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
3975 "Plack-Middleware-RemoveRedundantBody-"
3976 version ".tar.gz"))
3977 (sha256
f44678f6 3978 (base32 "1hz3kgb5vw4r02gfk9i911f5ykvz55lrsx45bdcllk2bszal3f34"))))
13e330be
EB
3979 (build-system perl-build-system)
3980 (propagated-inputs
3981 `(("perl-plack" ,perl-plack)))
3982 (home-page
9aba9b12 3983 "https://metacpan.org/release/Plack-Middleware-RemoveRedundantBody")
13e330be
EB
3984 (synopsis "Plack::Middleware which removes body for HTTP response")
3985 (description "This module removes the body in an HTTP response if it's not
3986required.")
c2dd07ab 3987 (license license:perl-license)))
13e330be 3988
ca157ba9
EB
3989(define-public perl-plack-middleware-reverseproxy
3990 (package
3991 (name "perl-plack-middleware-reverseproxy")
5793d9fd 3992 (version "0.16")
ca157ba9
EB
3993 (source
3994 (origin
3995 (method url-fetch)
3996 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
3997 "Plack-Middleware-ReverseProxy-"
3998 version ".tar.gz"))
3999 (sha256
5793d9fd 4000 (base32 "0a512n62pnk5ayj3zdzyj50iy1qi8nwh6ygks2h7nrh7gp9k2jc7"))))
ca157ba9 4001 (build-system perl-build-system)
55cca6ac
MB
4002 (native-inputs
4003 `(("perl-module-install" ,perl-module-install)))
ca157ba9
EB
4004 (propagated-inputs
4005 `(("perl-plack" ,perl-plack)))
9aba9b12 4006 (home-page "https://metacpan.org/release/Plack-Middleware-ReverseProxy")
ca157ba9
EB
4007 (synopsis "Supports app to run as a reverse proxy backend")
4008 (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
4009which are changed by reverse-proxy. You can specify the reverse proxy address
36a4366d 4010and stop fake requests using @code{enable_if} directive in your app.psgi.")
c2dd07ab 4011 (license license:perl-license)))
ca157ba9 4012
64b16bf7
EB
4013(define-public perl-plack-test-externalserver
4014 (package
4015 (name "perl-plack-test-externalserver")
22c31e07 4016 (version "0.02")
64b16bf7
EB
4017 (source
4018 (origin
4019 (method url-fetch)
5ca9cb1e 4020 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
64b16bf7
EB
4021 "Plack-Test-ExternalServer-" version ".tar.gz"))
4022 (sha256
22c31e07 4023 (base32 "1l1yj1l25679x7cbpd27ii7s1f1ajpkspif9xqnl21hczrbmrbsv"))))
64b16bf7
EB
4024 (build-system perl-build-system)
4025 (propagated-inputs
4026 `(("perl-plack" ,perl-plack)))
9aba9b12 4027 (home-page "https://metacpan.org/release/Plack-Test-ExternalServer")
64b16bf7
EB
4028 (synopsis "Run HTTP tests on external live servers")
4029 (description "This module allows your to run your Plack::Test tests
4030against an external server instead of just against a local application through
4031either mocked HTTP or a locally spawned server.")
c2dd07ab 4032 (license license:perl-license)))
64b16bf7 4033
bb8bfe5e
EB
4034(define-public perl-test-tcp
4035 (package
4036 (name "perl-test-tcp")
d71bbfea 4037 (version "2.21")
bb8bfe5e
EB
4038 (source
4039 (origin
4040 (method url-fetch)
d71bbfea 4041 (uri (string-append "mirror://cpan/authors/id/K/KA/KAZUHO/"
bb8bfe5e
EB
4042 "Test-TCP-" version ".tar.gz"))
4043 (sha256
d71bbfea 4044 (base32 "1djnaw1yli0kcd7azchqnp59l62f6mp13q50xyrjirpaxhd51j32"))))
bb8bfe5e
EB
4045 (build-system perl-build-system)
4046 (propagated-inputs
4047 `(("perl-test-sharedfork" ,perl-test-sharedfork)))
4048 (arguments `(#:tests? #f)) ;related to signaling in t/05_sigint.t
9aba9b12 4049 (home-page "https://metacpan.org/release/Test-TCP")
bb8bfe5e
EB
4050 (synopsis "Testing TCP programs")
4051 (description "Test::TCP is test utilities for TCP/IP programs.")
c2dd07ab 4052 (license license:perl-license)))
bb8bfe5e 4053
0d991d2c
EB
4054(define-public perl-test-www-mechanize
4055 (package
4056 (name "perl-test-www-mechanize")
73125149 4057 (version "1.52")
0d991d2c
EB
4058 (source
4059 (origin
4060 (method url-fetch)
4061 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
4062 "Test-WWW-Mechanize-" version ".tar.gz"))
4063 (sha256
73125149 4064 (base32 "1jsywlbxhqw39ij7s8vmgff5vys58vlfaq27072awacnxc65aal4"))))
0d991d2c 4065 (build-system perl-build-system)
0d991d2c
EB
4066 (propagated-inputs
4067 `(("perl-carp-assert-more" ,perl-carp-assert-more)
4068 ("perl-html-form" ,perl-html-form)
4069 ("perl-html-lint" ,perl-html-lint)
0d991d2c
EB
4070 ("perl-http-server-simple" ,perl-http-server-simple)
4071 ("perl-libwww" ,perl-libwww)
4072 ("perl-test-longstring" ,perl-test-longstring)
4073 ("perl-www-mechanize" ,perl-www-mechanize)))
9aba9b12 4074 (home-page "https://metacpan.org/release/Test-WWW-Mechanize")
0d991d2c
EB
4075 (synopsis "Testing-specific WWW::Mechanize subclass")
4076 (description "Test::WWW::Mechanize is a subclass of the Perl module
4077WWW::Mechanize that incorporates features for web application testing.")
c2dd07ab 4078 (license license:artistic2.0)))
0d991d2c 4079
13b2552c
EB
4080(define-public perl-test-www-mechanize-catalyst
4081 (package
4082 (name "perl-test-www-mechanize-catalyst")
5cfb647c 4083 (version "0.62")
13b2552c
EB
4084 (source
4085 (origin
4086 (method url-fetch)
5cfb647c 4087 (uri (string-append "mirror://cpan/authors/id/M/MS/MSTROUT/"
13b2552c
EB
4088 "Test-WWW-Mechanize-Catalyst-" version ".tar.gz"))
4089 (sha256
5cfb647c 4090 (base32 "1cdc2q16vs6fb335pzaislz2rx1ph9acaxyp7v5hv9xbwwddwfqq"))))
13b2552c
EB
4091 (build-system perl-build-system)
4092 (native-inputs
4093 `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
4094 ("perl-catalyst-plugin-session-state-cookie"
4095 ,perl-catalyst-plugin-session-state-cookie)
2f837cf7 4096 ("perl-module-install" ,perl-module-install)
13b2552c
EB
4097 ("perl-test-exception" ,perl-test-exception)
4098 ("perl-test-pod" ,perl-test-pod)
4099 ("perl-test-utf8" ,perl-test-utf8)))
4100 (propagated-inputs
4101 `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
4102 ("perl-class-load" ,perl-class-load)
4103 ("perl-libwww" ,perl-libwww)
4104 ("perl-moose" ,perl-moose)
4105 ("perl-namespace-clean" ,perl-namespace-clean)
4106 ("perl-test-www-mechanize" ,perl-test-www-mechanize)
4107 ("perl-www-mechanize" ,perl-www-mechanize)))
9aba9b12 4108 (home-page "https://metacpan.org/release/Test-WWW-Mechanize-Catalyst")
13b2552c
EB
4109 (synopsis "Test::WWW::Mechanize for Catalyst")
4110 (description "The Test::WWW::Mechanize::Catalyst module meshes the
4111Test::WWW:Mechanize module and the Catalyst web application framework to allow
4112testing of Catalyst applications without needing to start up a web server.")
c2dd07ab 4113 (license license:perl-license)))
13b2552c 4114
715a0c51
EB
4115(define-public perl-test-www-mechanize-psgi
4116 (package
4117 (name "perl-test-www-mechanize-psgi")
895d0461 4118 (version "0.38")
715a0c51
EB
4119 (source
4120 (origin
4121 (method url-fetch)
d298e765 4122 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
715a0c51
EB
4123 "Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
4124 (sha256
4125 (base32
895d0461 4126 "0fsh2i05kf1kfavv2r9kmnjl7qlyqrd11ikc0qcqzzxsqzzjkg9r"))))
715a0c51
EB
4127 (build-system perl-build-system)
4128 (native-inputs
4129 `(("perl-test-pod" ,perl-test-pod)))
4130 (propagated-inputs
4131 `(("perl-plack" ,perl-plack)
4132 ("perl-test-www-mechanize" ,perl-test-www-mechanize)))
9aba9b12 4133 (home-page "https://metacpan.org/release/Test-WWW-Mechanize-PSGI")
715a0c51
EB
4134 (synopsis "Test PSGI programs using WWW::Mechanize")
4135 (description "PSGI is a specification to decouple web server environments
4136from web application framework code. Test::WWW::Mechanize is a subclass of
4137WWW::Mechanize that incorporates features for web application testing. The
4138Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI
4139applications.")
c2dd07ab 4140 (license license:perl-license)))
715a0c51 4141
8142aff3 4142(define-public perl-uri
374a9a85 4143 (package
8142aff3 4144 (name "perl-uri")
201a25a3 4145 (version "1.76")
374a9a85
AE
4146 (source (origin
4147 (method url-fetch)
201a25a3 4148 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
9acf97f2 4149 "URI-" version ".tar.gz"))
374a9a85
AE
4150 (sha256
4151 (base32
201a25a3 4152 "0gj1aj18k43kmzc3y1zhj5giinf8rksacf757r475xfna0fqxjdj"))))
374a9a85 4153 (build-system perl-build-system)
5fff9d9d
TGR
4154 (native-inputs
4155 ;; For tests.
4156 `(("perl-test-needs" ,perl-test-needs)))
c2dd07ab 4157 (license license:perl-license)
8142aff3 4158 (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
374a9a85 4159 (description
8142aff3
EB
4160 "The URI module implements the URI class. Objects of this class
4161represent \"Uniform Resource Identifier references\" as specified in RFC 2396
4162and updated by RFC 2732.")
9aba9b12 4163 (home-page "https://metacpan.org/release/URI")))
d22d72fc 4164
b51b2bf3 4165(define-public perl-uri-fetch
4166 (package
4167 (name "perl-uri-fetch")
4168 (version "0.13")
4169 (source (origin
4170 (method url-fetch)
4171 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
4172 "URI-Fetch-" version ".tar.gz"))
4173 (sha256
4174 (base32
4175 "0rw6xiqm70s218aii9id3hf8j3pz6n22xnwd8v9m1ff2bnh63c0d"))))
4176 (build-system perl-build-system)
4177 (arguments
4178 `(#:tests? #f)) ; Tests require internet connection to succeed
4179 (inputs
4180 `(("perl-class-errorhandler" ,perl-class-errorhandler)
4181 ("perl-libwww" ,perl-libwww)
4182 ("perl-uri" ,perl-uri)))
9aba9b12 4183 (home-page "https://metacpan.org/release/URI-Fetch")
b51b2bf3 4184 (synopsis "Smart URI fetching/caching")
4185 (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
4186notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
4187and time-saving way.")
c2dd07ab 4188 (license license:perl-license)))
b51b2bf3 4189
5bb82fd0
EB
4190(define-public perl-uri-find
4191 (package
4192 (name "perl-uri-find")
c2d1b935 4193 (version "20160806")
5bb82fd0
EB
4194 (source
4195 (origin
4196 (method url-fetch)
4197 (uri (string-append "mirror://cpan/authors/id/M/MS/MSCHWERN/"
4198 "URI-Find-" version ".tar.gz"))
4199 (sha256
4200 (base32
c2d1b935 4201 "1mk3jv8x0mcq3ajrn9garnxd0jc7sw4pkwqi88r5apqvlljs84z2"))))
5bb82fd0 4202 (build-system perl-build-system)
a2190ccc
EB
4203 (native-inputs
4204 `(("perl-module-build" ,perl-module-build)))
5bb82fd0
EB
4205 (propagated-inputs
4206 `(("perl-uri" ,perl-uri)))
9aba9b12 4207 (home-page "https://metacpan.org/release/URI-Find")
5bb82fd0
EB
4208 (synopsis "Find URIs in arbitrary text")
4209 (description "This module finds URIs and URLs (according to what URI.pm
4210considers a URI) in plain text. It only finds URIs which include a
4211scheme (http:// or the like), for something a bit less strict, consider
4212URI::Find::Schemeless. For a command-line interface, urifind is provided.")
c2dd07ab 4213 (license license:perl-license)))
5bb82fd0 4214
36a100a1
EB
4215(define-public perl-uri-ws
4216 (package
4217 (name "perl-uri-ws")
4218 (version "0.03")
4219 (source
4220 (origin
4221 (method url-fetch)
4222 (uri (string-append "mirror://cpan/authors/id/P/PL/PLICEASE/"
4223 "URI-ws-" version ".tar.gz"))
4224 (sha256
4225 (base32
4226 "1vs1wm80sq685944g1l4a0fxcbccc00c0f9648yabdmcf90hwsvf"))))
4227 (build-system perl-build-system)
4228 (propagated-inputs
4229 `(("perl-uri" ,perl-uri)))
9aba9b12 4230 (home-page "https://metacpan.org/release/URI-ws")
36a100a1
EB
4231 (synopsis "WebSocket support for URI package")
4232 (description "With this module, the URI package provides the same set of
4233methods for WebSocket URIs as it does for HTTP URIs.")
c2dd07ab 4234 (license license:perl-license)))
36a100a1 4235
105d4ee2 4236(define-public perl-uri-template
4237 (package
4238 (name "perl-uri-template")
84cd5bd7 4239 (version "0.24")
105d4ee2 4240 (source (origin
4241 (method url-fetch)
4242 (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-"
4243 version ".tar.gz"))
4244 (sha256
4245 (base32
84cd5bd7 4246 "1phibcmam2hklrddzj79l43va1gcqpyszbw21ynxq53ynmhjvbk8"))))
105d4ee2 4247 (build-system perl-build-system)
4248 (inputs
4249 `(("perl-uri" ,perl-uri)))
4250 (native-inputs
4251 `(("perl-test-pod-coverage" ,perl-test-pod-coverage)
4252 ("perl-test-pod" ,perl-test-pod)
9dab5017 4253 ("perl-module-install" ,perl-module-install)
105d4ee2 4254 ("perl-json" ,perl-json)))
9aba9b12 4255 (home-page "https://metacpan.org/release/URI-Template")
105d4ee2 4256 (synopsis "Object for handling URI templates")
4257 (description "This perl module provides a wrapper around URI templates as described in
4258RFC 6570.")
c2dd07ab 4259 (license license:perl-license)))
105d4ee2 4260
d22d72fc
LC
4261(define-public perl-www-curl
4262 (package
4263 (name "perl-www-curl")
4264 (version "4.17")
4265 (source (origin
4266 (method url-fetch)
4267 (uri (string-append
4268 "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-"
4269 version".tar.gz"))
a19da406 4270 (patches (search-patches "perl-www-curl-remove-symbol.patch"))
d22d72fc
LC
4271 (sha256
4272 (base32
4273 "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj"))))
4274 (build-system perl-build-system)
4275 (arguments
a56bf101
LC
4276 '(#:tests? #f ;XXX: tests require network access
4277
4278 #:phases (modify-phases %standard-phases
4279 (add-before 'configure 'set-search-path
4280 (lambda _
4281 ;; Work around "dotless @INC" build failure.
4282 (setenv "PERL5LIB"
4283 (string-append (getcwd) ":"
4284 (getenv "PERL5LIB")))
4285 #t)))))
9dab5017
MB
4286 (native-inputs
4287 `(("perl-module-install" ,perl-module-install)))
d22d72fc
LC
4288 (inputs `(("curl" ,curl)))
4289 (synopsis "Perl extension interface for libcurl")
4290 (description
4291 "This is a Perl extension interface for the libcurl file downloading
4292library.")
c2dd07ab 4293 (license license:perl-license)
9aba9b12 4294 (home-page "https://metacpan.org/release/WWW-Curl")))
3484d052 4295
0b1ed725
EB
4296(define-public perl-www-mechanize
4297 (package
4298 (name "perl-www-mechanize")
1c769c97 4299 (version "1.91")
0b1ed725
EB
4300 (source
4301 (origin
4302 (method url-fetch)
128c9b92 4303 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
0b1ed725
EB
4304 "WWW-Mechanize-" version ".tar.gz"))
4305 (sha256
1c769c97 4306 (base32 "0cb14m1vhaf0mgn2fqwi5hm72xhfi77hpq2g57swgy0w83x7m27b"))))
0b1ed725 4307 (build-system perl-build-system)
a2190ccc 4308 (native-inputs ;only for tests
68d5906c
MB
4309 `(("perl-cgi" ,perl-cgi)
4310 ("perl-test-deep" ,perl-test-deep)
4311 ("perl-test-fatal" ,perl-test-fatal)
4312 ("perl-test-output" ,perl-test-output)
4313 ("perl-test-warnings" ,perl-test-warnings)))
0b1ed725
EB
4314 (propagated-inputs
4315 `(("perl-html-form" ,perl-html-form)
4316 ("perl-html-parser" ,perl-html-parser)
68d5906c 4317 ("perl-html-tree" ,perl-html-tree)
0b1ed725
EB
4318 ("perl-http-message" ,perl-http-message)
4319 ("perl-http-server-simple" ,perl-http-server-simple)
4320 ("perl-libwww" ,perl-libwww)
4321 ("perl-test-warn" ,perl-test-warn)
4322 ("perl-uri" ,perl-uri)))
9aba9b12 4323 (home-page "https://metacpan.org/release/WWW-Mechanize")
0b1ed725
EB
4324 (synopsis "Web browsing in a Perl object")
4325 (description "WWW::Mechanize is a Perl module for stateful programmatic
4326web browsing, used for automating interaction with websites.")
c2dd07ab 4327 (license license:perl-license)))
0b1ed725 4328
823c8292 4329(define-public perl-www-opensearch
4330 (package
4331 (name "perl-www-opensearch")
4332 (version "0.17")
4333 (source (origin
4334 (method url-fetch)
4335 (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/"
4336 "WWW-OpenSearch-" version ".tar.gz"))
4337 (sha256
4338 (base32
4339 "1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb"))))
4340 (build-system perl-build-system)
88d5889c 4341 (native-inputs
3fe666aa
MB
4342 `(("perl-class-errorhandler" ,perl-class-errorhandler)
4343 ("perl-datetime" ,perl-datetime)
4344 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
4345 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
4346 ("perl-feed-find" ,perl-feed-find)
4347 ("perl-module-install" ,perl-module-install)
4348 ("perl-module-pluggable" ,perl-module-pluggable)
4349 ("perl-uri-fetch" ,perl-uri-fetch)
4350 ("perl-test-simple" ,perl-test-simple)
4351 ("perl-xml-atom" ,perl-xml-atom)
4352 ("perl-xml-rss" ,perl-xml-rss)))
823c8292 4353 (inputs
4354 `(("perl-data-page" ,perl-data-page)
4355 ("perl-libwww" ,perl-libwww)
4356 ("perl-uri" ,perl-uri)
4357 ("perl-uri-template" ,perl-uri-template)
4358 ("perl-xml-feed" ,perl-xml-feed)
4359 ("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 4360 (home-page "https://metacpan.org/release/WWW-OpenSearch")
823c8292 4361 (synopsis "Search A9 OpenSearch compatible engines")
4362 (description
4363 "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
4364http://opensearch.a9.com} compatible search engines.")
c2dd07ab 4365 (license license:perl-license)))
823c8292 4366
8142aff3 4367(define-public perl-www-robotrules
3484d052 4368 (package
8142aff3
EB
4369 (name "perl-www-robotrules")
4370 (version "6.02")
3484d052 4371 (source (origin
8142aff3
EB
4372 (method url-fetch)
4373 (uri (string-append
4374 "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-"
4375 version ".tar.gz"))
4376 (sha256
4377 (base32
4378 "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6"))))
3484d052 4379 (build-system perl-build-system)
8142aff3
EB
4380 (propagated-inputs
4381 `(("perl-uri" ,perl-uri)))
c2dd07ab 4382 (license license:perl-license)
8142aff3 4383 (synopsis "Perl database of robots.txt-derived permissions")
5eb86b64 4384 (description
8142aff3
EB
4385 "The WWW::RobotRules module parses /robots.txt files as specified in
4386\"A Standard for Robot Exclusion\", at
4387<http://www.robotstxt.org/wc/norobots.html>. Webmasters can use the
4388/robots.txt file to forbid conforming robots from accessing parts of
4389their web site.")
9aba9b12 4390 (home-page "https://metacpan.org/release/WWW-RobotRules")))
a359c9c1 4391
da069d7e 4392(define-public python-feedparser
4393 (package
4394 (name "python-feedparser")
4395 (version "5.2.1")
4396 (source
4397 (origin
4398 (method url-fetch)
4399 (uri (pypi-uri "feedparser" version ".tar.bz2"))
4400 (sha256
4401 (base32
4402 "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
4403 (build-system python-build-system)
92c3ef2c
LF
4404 (arguments
4405 '(#:tests? #f))
da069d7e 4406 (home-page
4407 "https://github.com/kurtmckee/feedparser")
4408 (synopsis "Parse feeds in Python")
4409 (description
4410 "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
4411CDF, Atom 0.3, and Atom 1.0 feeds.")
c2dd07ab
BT
4412 (license (list license:bsd-2 ; source code
4413 license:freebsd-doc)))) ; documentation
da069d7e 4414
4415(define-public python2-feedparser
5c31f4aa 4416 (package-with-python2 python-feedparser))
da069d7e 4417
1683e486 4418(define-public guix-data-service
0a76a4e0
CB
4419 (let ((commit "d1c243f7fd8902f359ff06fb78dce663cf4297ce")
4420 (revision "19"))
1683e486
CB
4421 (package
4422 (name "guix-data-service")
4423 (version (string-append "0.0.1-" revision "." (string-take commit 7)))
4424 (source (origin
4425 (method git-fetch)
4426 (uri (git-reference
4427 (url "https://git.savannah.gnu.org/git/guix/data-service.git")
4428 (commit commit)))
4429 (file-name (git-file-name name version))
4430 (sha256
4431 (base32
0a76a4e0 4432 "1ji8d4vwmv7j9h7z96hvzi3zvik594yngjrdal37w13fbxy2v6sw"))))
1683e486
CB
4433 (build-system gnu-build-system)
4434 (arguments
353f5f7a 4435 '(#:modules ((guix build utils)
1683e486 4436 (guix build gnu-build-system)
0a76a4e0
CB
4437 (ice-9 ftw)
4438 (ice-9 match)
1683e486
CB
4439 (ice-9 rdelim)
4440 (ice-9 popen))
353f5f7a 4441 #:test-target "check-with-tmp-database"
1683e486
CB
4442 #:phases
4443 (modify-phases %standard-phases
1683e486
CB
4444 (add-before 'build 'set-GUILE_AUTO_COMPILE
4445 (lambda _
4446 ;; To avoid errors relating to guild
4447 (setenv "GUILE_AUTO_COMPILE" "0")
4448 #t))
4449 (add-after 'install 'wrap-executable
4450 (lambda* (#:key inputs outputs #:allow-other-keys)
4451 (let* ((out (assoc-ref outputs "out"))
4452 (bin (string-append out "/bin"))
4453 (guile (assoc-ref inputs "guile"))
4454 (guile-effective-version
4455 (read-line
4456 (open-pipe* OPEN_READ
4457 (string-append guile "/bin/guile")
4458 "-c" "(display (effective-version))")))
4459 (scm (string-append out "/share/guile/site/"
4460 guile-effective-version))
4461 (go (string-append out "/lib/guile/"
4462 guile-effective-version
4463 "/site-ccache")))
4464 (for-each
4465 (lambda (file)
0a76a4e0
CB
4466 (simple-format (current-error-port)
4467 "wrapping: ~A\n"
4468 (string-append bin "/" file))
1683e486
CB
4469 (wrap-program (string-append bin "/" file)
4470 `("PATH" ":" prefix
0a76a4e0
CB
4471 ,(cons*
4472 bin
4473 (map (lambda (input)
4474 (string-append
4475 (assoc-ref inputs input)
4476 "/bin"))
4477 '("ephemeralpg"
4478 "util-linux"
4479 "postgresql"))))
1683e486
CB
4480 `("GUILE_LOAD_PATH" ":" prefix
4481 (,scm ,(getenv "GUILE_LOAD_PATH")))
4482 `("GUILE_LOAD_COMPILED_PATH" ":" prefix
4483 (,go ,(getenv "GUILE_LOAD_COMPILED_PATH")))))
0a76a4e0
CB
4484 (scandir bin
4485 (match-lambda
4486 ((or "." "..") #f)
4487 (_ #t))))
1683e486
CB
4488 #t)))
4489 (delete 'strip)))) ; As the .go files aren't compatible
4490 (inputs
67d21e2b
CB
4491 `(("guix" ,guile3.0-guix)
4492 ("guile-fibers" ,guile3.0-fibers)
4493 ("guile-json" ,guile3.0-json)
4494 ("guile-email" ,guile3.0-email)
4495 ("guile-squee" ,guile3.0-squee)
0a76a4e0
CB
4496 ("ephemeralpg" ,ephemeralpg)
4497 ("util-linux" ,util-linux)
4498 ("postgresql" ,postgresql-11)
1683e486
CB
4499 ("sqitch" ,sqitch)))
4500 (native-inputs
67d21e2b 4501 `(("guile" ,guile-3.0)
1683e486
CB
4502 ("autoconf" ,autoconf)
4503 ("automake" ,automake)
a1136b6d
CB
4504 ("emacs-minimal" ,emacs-minimal)
4505 ("emacs-htmlize" ,emacs-htmlize)
1683e486
CB
4506 ("pkg-config" ,pkg-config)))
4507 (synopsis "Store and provide data about GNU Guix")
4508 (description
4509 "The Guix Data Service stores data about GNU Guix, and provides this
4510through a web interface. It supports listening to the guix-commits mailing
4511list to find out about new revisions, then loads the data from these in to a
4512PostgreSQL database.")
4513 (home-page "http://data.guix.gnu.org/")
4514 (license license:agpl3+))))
4515
e1c63590
RW
4516(define-public gumbo-parser
4517 (package
4518 (name "gumbo-parser")
4519 (version "0.10.1")
4520 (source (origin
ed1bbc16
EF
4521 (method git-fetch)
4522 (uri (git-reference
4523 (url "https://github.com/google/gumbo-parser")
4524 (commit (string-append "v" version))))
4525 (file-name (git-file-name name version))
e1c63590
RW
4526 (sha256
4527 (base32
ed1bbc16 4528 "0xslckwdh2i0g2qjsb6rnm8mjmbagvziz0hjlf7d1lbljfms1iw1"))))
e1c63590
RW
4529 (build-system gnu-build-system)
4530 (arguments
189be331 4531 `(#:tests? #f)) ;tests require bundling googletest sources
e1c63590
RW
4532 ;; The release tarball lacks the generated files.
4533 (native-inputs
4534 `(("autoconf" ,autoconf)
4535 ("automake" ,automake)
4536 ("libtool" ,libtool)))
4537 (home-page "https://github.com/google/gumbo-parser")
4538 (synopsis "HTML5 parsing library")
4539 (description
4540 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as
4541a pure C99 library.")
c2dd07ab 4542 (license license:asl2.0)))
67c2fc01
SB
4543
4544(define-public uwsgi
4545 (package
4546 (name "uwsgi")
853687cf 4547 (version "2.0.18")
67c2fc01
SB
4548 (source (origin
4549 (method url-fetch)
d41ad1d5 4550 (uri (string-append "https://projects.unbit.it/downloads/uwsgi-"
67c2fc01
SB
4551 version ".tar.gz"))
4552 (sha256
4553 (base32
853687cf 4554 "10zmk4npknigmbqcq1wmhd461dk93159px172112vyq0i19sqwj9"))))
67c2fc01
SB
4555 (build-system gnu-build-system)
4556 (outputs '("out" "python"))
4557 (arguments
4558 '(;; XXX: The 'check' target runs cppcheck to do static code analysis.
4559 ;; But there is no obvious way to run the real tests.
4560 #:tests? #f
4561 #:phases
4562 (modify-phases %standard-phases
4563 (replace 'configure
4564 ;; Configuration is done by writing an ini file.
4565 (lambda* (#:key outputs #:allow-other-keys)
4566 (let* ((out (assoc-ref outputs "out"))
4567 (bindir (string-append out "/bin"))
4568 (plugindir (string-append out "/lib/uwsgi")))
4569 ;; The build phase outputs files to these directories directly.
4570 (mkdir-p bindir)
4571 (mkdir-p plugindir)
4572 ;; XXX: Enable other plugins.
4573 (call-with-output-file "buildconf/guix.ini"
4574 (lambda (port)
4575 (format port "[uwsgi]
4576yaml = libyaml
4577bin_name = ~a/uwsgi
4578plugin_dir = ~a
4579
4580inherit = base
4581plugins = cgi,python
4582embedded_plugins =
4583" bindir plugindir))))
4584 (setenv "PROFILE" "guix")
4585 #t))
4586 (replace 'install
4587 ;; Move plugins into their own output.
4588 (lambda* (#:key outputs #:allow-other-keys)
4589 (let* ((out (assoc-ref outputs "out"))
4590 (plugindir (string-append out "/lib/uwsgi"))
4591 (python-plugin (string-append
4592 plugindir "/python_plugin.so")))
4593 (install-file python-plugin
4594 (string-append
4595 (assoc-ref outputs "python") "/lib/uwsgi"))
4596 (delete-file python-plugin)
4597 #t))))))
4598 (native-inputs
4599 `(("pkg-config" ,pkg-config)
4600 ("python" ,python-wrapper)))
4601 (inputs
4602 `(("jansson" ,jansson)
4603 ("libxml2" ,libxml2)
4604 ("libyaml" ,libyaml)
4605 ("openssl" ,openssl)
4606 ("pcre" ,pcre)
4607 ("zlib" ,zlib)
4608 ;; For plugins.
4609 ("python" ,python)))
4610 (home-page "https://uwsgi-docs.readthedocs.org/")
4611 (synopsis "Application container server")
4612 (description
4613 "uWSGI presents a complete stack for networked/clustered web applications,
4614implementing message/object passing, caching, RPC and process management.
4615It uses the uwsgi protocol for all the networking/interprocess communications.")
c2dd07ab 4616 (license license:gpl2+))) ; with linking exception
ec672946
JL
4617
4618(define-public jq
4619 (package
4620 (name "jq")
418dd6ad 4621 (version "1.6")
8731a4aa
TGR
4622 (source
4623 (origin
4624 (method url-fetch)
4625 (uri (string-append "https://github.com/stedolan/jq"
4626 "/releases/download/jq-" version
4627 "/jq-" version ".tar.gz"))
4628 (sha256
4629 (base32 "0wmapfskhzfwranf6515nzmm84r7kwljgfs7dg6bjgxakbicis2x"))
4630 (modules '((guix build utils)))
4631 (snippet
4632 '(begin
4633 ;; Remove bundled onigurama.
4634 (delete-file-recursively "modules")
4635 #t))))
ec672946
JL
4636 (inputs
4637 `(("oniguruma" ,oniguruma)))
4638 (native-inputs
4639 `(;; TODO fix gems to generate documentation
4640 ;;("ruby" ,ruby)
4641 ;;("bundler" ,bundler)
4642 ("valgrind" ,valgrind)))
4643 (build-system gnu-build-system)
a4fdde47 4644 (home-page "https://stedolan.github.io/jq/")
ec672946
JL
4645 (synopsis "Command-line JSON processor")
4646 (description "jq is like sed for JSON data – you can use it to slice and
4647filter and map and transform structured data with the same ease that sed, awk,
4648grep and friends let you play with text. It is written in portable C. jq can
4649mangle the data format that you have into the one that you want with very
4650little effort, and the program to do so is often shorter and simpler than
4651you'd expect.")
c2dd07ab 4652 (license (list license:expat license:cc-by3.0))))
7ffbbea0
RS
4653
4654(define-public uhttpmock
4655 (package
4656 (name "uhttpmock")
581ae110 4657 (version "0.5.1")
7ffbbea0
RS
4658 (source
4659 (origin
4660 (method url-fetch)
4661 (uri (string-append "http://tecnocode.co.uk/downloads/uhttpmock/"
4662 name "-" version ".tar.xz"))
4663 (sha256
4664 (base32
581ae110 4665 "163py4klka423x7li2b685gmg3a6hjf074mlff2ajhmi3l0lm8x6"))))
7ffbbea0 4666 (build-system glib-or-gtk-build-system)
7ffbbea0
RS
4667 (native-inputs
4668 `(("gobject-introspection" ,gobject-introspection)
4669 ;; For check phase.
4670 ("glib-networking" ,glib-networking)
4671 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4672 ("pkg-config" ,pkg-config)))
4673 (inputs
4674 `(("libsoup" ,libsoup)))
4675 (home-page "https://gitlab.com/groups/uhttpmock")
4676 (synopsis "Library for mocking web service APIs which use HTTP or HTTPS")
4677 (description
4678 "Uhttpmock is a project for mocking web service APIs which use HTTP or
4679HTTPS. It provides a library, libuhttpmock, which implements recording and
4680playback of HTTP request/response traces.")
c2dd07ab 4681 (license license:lgpl2.1+)))
0ee23de9
CL
4682
4683(define-public woof
4684 (package
4685 (name "woof")
4686 (version "2012-05-31")
4687 (source (origin
4688 (method url-fetch)
4689 (uri (string-append
4690 "http://www.home.unix-ag.org/simon/woof-"
4691 version ".py"))
4692 (sha256
4693 (base32
4694 "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq"))))
4695 (build-system trivial-build-system)
4696 (arguments
4697 '(#:modules ((guix build utils))
4698 #:builder
4699 (begin
4700 (use-modules (guix build utils))
4701 (let* ((source (assoc-ref %build-inputs "source"))
4702 (out (assoc-ref %outputs "out"))
4703 (bin (string-append out "/bin"))
4704 (python (assoc-ref %build-inputs "python")))
4705 (mkdir-p bin)
4706 (with-directory-excursion bin
4707 (copy-file source "woof")
4708 (patch-shebang "woof" (list (string-append python "/bin")))
4709 (chmod "woof" #o555))
4710 #t))))
4711 (inputs `(("python" ,python-2)))
4712 (home-page "http://www.home.unix-ag.org/simon/woof.html")
4713 (synopsis "Single file web server")
4714 (description "Woof (Web Offer One File) is a small simple web server that
4715can easily be invoked on a single file. Your partner can access the file with
4716tools they trust (e.g. wget).")
c2dd07ab 4717 (license license:gpl2+)))
22df7001 4718
ef61177d
EB
4719(define netsurf-buildsystem
4720 (package
4721 (name "netsurf-buildsystem")
fa4131f2 4722 (version "1.7")
ef61177d
EB
4723 (source
4724 (origin
4725 (method url-fetch)
cf10627b 4726 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
ef61177d
EB
4727 "buildsystem-" version ".tar.gz"))
4728 (sha256
4729 (base32
fa4131f2 4730 "1q23aaycv35ma5471l1gxib8lfq2s9kprrkaqgfc926d04rlbmhw"))))
ef61177d
EB
4731 (build-system gnu-build-system)
4732 (inputs `(("perl" ,perl)))
4733 (arguments
4734 '(#:make-flags (list (string-append "PREFIX=" %output))
4735 #:tests? #f ;no tests
4736 #:phases (modify-phases %standard-phases
4737 (delete 'configure)
4738 (delete 'build))))
cf10627b 4739 (home-page "https://www.netsurf-browser.org")
ef61177d
EB
4740 (synopsis "Build system for the Netsurf project")
4741 (description
4742 "This package provides the shared build system for Netsurf project
4743libraries.")
c2dd07ab 4744 (license license:expat)))
ef61177d
EB
4745
4746(define netsurf-buildsystem-arguments
4747 `(#:make-flags `("COMPONENT_TYPE=lib-shared"
4748 "CC=gcc" "BUILD_CC=gcc"
4749 ,(string-append "PREFIX=" %output)
4750 ,(string-append "NSSHARED="
4751 (assoc-ref %build-inputs
4752 "netsurf-buildsystem")
4753 "/share/netsurf-buildsystem"))
4754 #:test-target "test"
4755 #:phases (modify-phases %standard-phases
4756 (delete 'configure))))
4757
4758(define-public libparserutils
4759 (package
4760 (name "libparserutils")
ea9b34c2 4761 (version "0.2.4")
ef61177d
EB
4762 (source
4763 (origin
4764 (method url-fetch)
cf10627b 4765 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
ef61177d
EB
4766 name "-" version "-src.tar.gz"))
4767 (sha256
4768 (base32
ea9b34c2 4769 "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
ef61177d
EB
4770 (build-system gnu-build-system)
4771 (native-inputs
4772 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4773 ("pkg-config" ,pkg-config)
4774 ("perl" ,perl))) ;for test harness
4775 (arguments netsurf-buildsystem-arguments)
cf10627b 4776 (home-page "https://www.netsurf-browser.org/projects/libparserutils/")
ef61177d
EB
4777 (synopsis "Parser building library")
4778 (description
4779 "LibParserUtils is a library for building efficient parsers, written in
4780C. It is developed as part of the NetSurf project.")
c2dd07ab 4781 (license license:expat)))
ef61177d 4782
43bfbf13
EB
4783(define-public hubbub
4784 (package
4785 (name "hubbub")
33abd527 4786 (version "0.3.6")
43bfbf13
EB
4787 (source
4788 (origin
4789 (method url-fetch)
cf10627b 4790 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
33abd527 4791 "libhubbub-" version "-src.tar.gz"))
43bfbf13
EB
4792 (sha256
4793 (base32
33abd527 4794 "1x3v7xvagx85v9h3pypzc86rcxs4mij87mmcqkp8pq50q6awfmnp"))
43bfbf13
EB
4795 (patches (search-patches "hubbub-sort-entities.patch"))))
4796 (build-system gnu-build-system)
4797 (native-inputs
4798 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4799 ("pkg-config" ,pkg-config)
4800 ("doxygen" ,doxygen)
e46e70ac 4801 ("json-c" ,json-c-0.12) ; check whether json-c-0.12 can be removed
43bfbf13
EB
4802 ("perl" ,perl)))
4803 (propagated-inputs
4804 `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
4805 (arguments netsurf-buildsystem-arguments)
cf10627b 4806 (home-page "https://www.netsurf-browser.org/projects/hubbub/")
43bfbf13
EB
4807 (synopsis "HTML5 compliant parsing library")
4808 (description
4809 "Hubbub is an HTML5 compliant parsing library, written in C, which can
4810parse both valid and invalid web content. It is developed as part of the
4811NetSurf project.")
c2dd07ab 4812 (license license:expat)))
43bfbf13 4813
909dcf5b
CB
4814(define-public ikiwiki
4815 (package
4816 (name "ikiwiki")
da6539d1 4817 (version "3.20200202.3")
909dcf5b
CB
4818 (source
4819 (origin
add3e168
PG
4820 (method git-fetch)
4821 (uri (git-reference
4822 (url "git://git.ikiwiki.info/")
4823 (commit version)))
4824 (file-name (git-file-name name version))
909dcf5b
CB
4825 (sha256
4826 (base32
da6539d1 4827 "0fphyqzlk9y8v9s89ypsmrnbhyymzrpc2w0liy0n4knc7kk2pabq"))
add3e168
PG
4828 (snippet
4829 '(begin
4830 ;; The POT file requires write permission during the build
4831 ;; phase.
4832 (chmod "po/ikiwiki.pot" #o644)
4833 #t))))
909dcf5b
CB
4834 (build-system perl-build-system)
4835 (arguments
1aa2c255 4836 `(#:phases
909dcf5b 4837 (modify-phases %standard-phases
f4dd3032
CB
4838 (add-after 'unpack 'include-PERL5LIB-in-wrapper
4839 (lambda _
4840 (substitute* "IkiWiki/Wrapper.pm"
4841 (("^@wrapper\\_hooks")
4842 (string-append
4843 "@wrapper_hooks\n"
4844 " addenv(\"PERL5LIB\", \""
4845 (getenv "PERL5LIB")
4846 "\");")))))
2933cdf8 4847 (add-after 'patch-source-shebangs 'patch-Makefiles
631bc3a6
PG
4848 (lambda _
4849 (substitute* "Makefile.PL"
2933cdf8
PG
4850 (("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
4851 (with-directory-excursion "po"
4852 (substitute* "Makefile"
4853 (("PERL5LIB=") "PERL5LIB=${PERL5LIB}:")))
631bc3a6 4854 #t))
add3e168
PG
4855 (add-before 'build 'set-modification-times
4856 ;; The wiki '--refresh' steps, which are executed during
4857 ;; the check phase, require recent timestamps on files in
4858 ;; the 'doc' and 'underlays' directories.
4859 (lambda _
4860 (invoke "find" "doc" "underlays" "-type" "f" "-exec"
4861 "touch" "{}" "+")
631bc3a6 4862 #t))
909dcf5b
CB
4863 (add-after 'install 'wrap-programs
4864 (lambda* (#:key outputs #:allow-other-keys)
4865 (let* ((out (assoc-ref outputs "out"))
4866 (bin (string-append out "/bin/"))
4867 (path (getenv "PERL5LIB")))
4868 (for-each (lambda (file)
4869 (wrap-program file
4870 `("PERL5LIB" ":" prefix (,path))))
4871 (find-files bin))
4872 #t))))))
4873 (native-inputs
4874 `(("which" ,which)
909dcf5b
CB
4875 ("gettext" ,gettext-minimal)
4876 ("subversion" ,subversion)
4877 ("git" ,git)
4878 ("bazaar" ,bazaar)
4879 ("cvs" ,cvs)
4880 ("mercurial" ,mercurial)))
4881 (inputs
4882 `(("python" ,python-wrapper)
cf47084a 4883 ("perl-authen-passphrase" ,perl-authen-passphrase)
0b88f7e7 4884 ("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
909dcf5b
CB
4885 ("perl-cgi-session" ,perl-cgi-session)
4886 ("perl-cgi-simple" ,perl-cgi-simple)
0b88f7e7 4887 ("perl-db-file" ,perl-db-file)
cf47084a 4888 ("perl-file-mimeinfo" ,perl-file-mimeinfo)
732ffac3 4889 ("perl-html-tagset" ,perl-html-tagset)
0b88f7e7 4890 ("perl-image-magick" ,perl-image-magick)
cf47084a 4891 ("perl-mail-sendmail" ,perl-mail-sendmail)
b7392ecb
PG
4892 ("perl-timedate" ,perl-timedate)
4893 ("perl-xml-sax" ,perl-xml-sax)
cf47084a 4894 ("perl-xml-simple" ,perl-xml-simple)
2933cdf8
PG
4895 ("perl-xml-twig" ,perl-xml-twig)
4896 ("po4a" ,po4a)))
b7392ecb
PG
4897 (propagated-inputs
4898 `(("perl-html-parser" ,perl-html-parser)
909dcf5b
CB
4899 ("perl-html-scrubber" ,perl-html-scrubber)
4900 ("perl-html-template" ,perl-html-template)
0b88f7e7
PG
4901 ("perl-json" ,perl-json)
4902 ("perl-text-markdown-discount" ,perl-text-markdown-discount)
4903 ("perl-uri" ,perl-uri)
909dcf5b
CB
4904 ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
4905 (home-page "https://ikiwiki.info/")
4906 (synopsis "Wiki compiler, capable of generating HTML")
4907 (description
4908 "Ikiwiki is a wiki compiler, capable of generating a static set of web
4909pages, but also incorporating dynamic features like a web based editor and
4910commenting.")
c2dd07ab 4911 (license license:gpl2+)))
909dcf5b 4912
5a0096a3
EB
4913(define-public libwapcaplet
4914 (package
4915 (name "libwapcaplet")
c033093b 4916 (version "0.4.2")
5a0096a3
EB
4917 (source
4918 (origin
4919 (method url-fetch)
cf10627b 4920 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
c033093b 4921 "libwapcaplet-" version "-src.tar.gz"))
5a0096a3
EB
4922 (sha256
4923 (base32
c033093b 4924 "1fjwzbn7j8bi1b9bvwxsy3i2cr6byq2s2d29866801pjnf528g86"))))
5a0096a3
EB
4925 (build-system gnu-build-system)
4926 (native-inputs
4927 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4928 ("pkg-config" ,pkg-config)
4929 ("check" ,check))) ;for tests
4930 (arguments netsurf-buildsystem-arguments)
cf10627b 4931 (home-page "https://www.netsurf-browser.org/projects/libwapcaplet/")
5a0096a3
EB
4932 (synopsis "String internment library")
4933 (description
4934 "LibWapcaplet provides a reference counted string internment system
4935designed to store small strings and allow rapid comparison of them. It is
4936developed as part of the Netsurf project.")
c2dd07ab 4937 (license license:expat)))
5a0096a3 4938
0527b43d
EB
4939(define-public libcss
4940 (package
4941 (name "libcss")
816edf33 4942 (version "0.9.0")
0527b43d
EB
4943 (source
4944 (origin
4945 (method url-fetch)
cf10627b 4946 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
816edf33 4947 "libcss-" version "-src.tar.gz"))
0527b43d
EB
4948 (sha256
4949 (base32
816edf33 4950 "1vw9j3d2mr4wbvs8fyqmgslkbxknvac10456775hflxxcivbm3xr"))))
0527b43d
EB
4951 (build-system gnu-build-system)
4952 (native-inputs
4953 `(("netsurf-buildsystem" ,netsurf-buildsystem)
4954 ("pkg-config" ,pkg-config)
4955 ("perl" ,perl)))
4956 (propagated-inputs ;needed for libcss.pc
4957 `(("libparserutils" ,libparserutils)
4958 ("libwapcaplet" ,libwapcaplet)))
4959 (arguments netsurf-buildsystem-arguments)
cf10627b 4960 (home-page "https://www.netsurf-browser.org/projects/libcss/")
0527b43d
EB
4961 (synopsis "CSS parser and selection library")
4962 (description
4963 "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,
4964written in C. It is developed as part of the NetSurf project.")
c2dd07ab 4965 (license license:expat)))
0527b43d 4966
eb642f3d
AT
4967(define-public libcyaml
4968 (package
4969 (name "libcyaml")
4970 (version "1.0.1")
4971 (source
4972 (origin
4973 (method git-fetch)
4974 (uri (git-reference
4975 (url "https://github.com/tlsa/libcyaml.git")
4976 (commit (string-append "v" version))))
4977 (file-name (git-file-name name version))
4978 (sha256
4979 (base32 "0h5ydyqdl8kzh526np3jsi0pm7ks16nh1hjkdsjcd6pacw7y6i6z"))))
4980 (build-system gnu-build-system)
4981 (arguments
4982 `(#:make-flags
4983 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
4984 (string-append "CC=gcc"))
4985 #:phases
4986 (modify-phases %standard-phases
4987 (delete 'configure) ; no configure script
4988 (replace 'check
4989 (lambda _
4990 (setenv "CC" "gcc")
4991 (invoke "make" "test"))))))
4992 (inputs
4993 `(("libyaml" ,libyaml)))
4994 (native-inputs
4995 `(("git", git)
4996 ("pkg-config", pkg-config)))
4997 (synopsis "C library for reading and writing YAML")
4998 (description
4999 "LibCYAML is a C library written in ISO C11 for reading and writing
5000structured YAML documents. The fundamental idea behind CYAML is to allow
5001applications to construct schemas which describe both the permissible
5002structure of the YAML documents to read/write, and the C data structure(s)
5003in which the loaded data is arranged in memory.")
5004 (home-page "https://github.com/tlsa/libcyaml")
5005 (license license:isc)))
5006
ccb88298
EB
5007(define-public libdom
5008 (package
5009 (name "libdom")
2dd9b643 5010 (version "0.4.0")
ccb88298
EB
5011 (source
5012 (origin
5013 (method url-fetch)
cf10627b 5014 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
2dd9b643 5015 "libdom-" version "-src.tar.gz"))
ccb88298
EB
5016 (sha256
5017 (base32
2dd9b643 5018 "1ixkqsl3f7dl1kajksm0c231w1v5xy8z6hm3v67hgm9nh4qcvfcy"))))
ccb88298
EB
5019 (build-system gnu-build-system)
5020 (native-inputs
5021 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5022 ("pkg-config" ,pkg-config)
5023 ("perl" ,perl) ;for test harness
5024 ("perl-libxml" ,perl-libxml)
5025 ("perl-switch" ,perl-switch)
5026 ("perl-xml-xpath" ,perl-xml-xpath)))
5027 (inputs
5028 `(("libparserutils" ,libparserutils)
5029 ("libwapcaplet" ,libwapcaplet)))
5030 (propagated-inputs
5031 `(("expat" ,expat) ;needed for headers and linking
5032 ("hubbub" ,hubbub))) ;for libdom.pc
5033 (arguments
5034 `(#:tests? #f ;TODO: re-enable. tests take a looong time.
5035 ,@netsurf-buildsystem-arguments))
cf10627b 5036 (home-page "https://www.netsurf-browser.org/projects/libdom/")
ccb88298
EB
5037 (synopsis "Implementation of the W3C DOM")
5038 (description
5039 "LibDOM is an implementation of the W3C DOM, written in C. It is
5040developed as part of the NetSurf project.")
c2dd07ab 5041 (license license:expat)))
ccb88298 5042
6fae2256
EB
5043(define-public libsvgtiny
5044 (package
5045 (name "libsvgtiny")
bb38628f 5046 (version "0.1.7")
6fae2256
EB
5047 (source
5048 (origin
5049 (method url-fetch)
cf10627b 5050 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
6fae2256
EB
5051 name "-" version "-src.tar.gz"))
5052 (sha256
5053 (base32
bb38628f 5054 "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
6fae2256
EB
5055 (build-system gnu-build-system)
5056 (native-inputs
5057 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5058 ("pkg-config" ,pkg-config)
b1554326 5059 ("gperf" ,gperf-3.0)))
6fae2256
EB
5060 (inputs
5061 `(("libwapcaplet" ,libwapcaplet)))
5062 (propagated-inputs
5063 `(("libdom" ,libdom))) ;for libsvgtiny.pc
5064 (arguments netsurf-buildsystem-arguments)
cf10627b 5065 (home-page "https://www.netsurf-browser.org/projects/libsvgtiny/")
6fae2256
EB
5066 (synopsis "Library for parsing SVG files")
5067 (description
5068 "Libsvgtiny takes some SVG as input and returns a list of paths and texts
5069which can be rendered easily, as defined in
5070@url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf
5071project.")
c2dd07ab 5072 (license license:expat)))
6fae2256 5073
4018a533
EB
5074(define-public libnsbmp
5075 (package
5076 (name "libnsbmp")
ef2198ac 5077 (version "0.1.5")
4018a533
EB
5078 (source
5079 (origin
5080 (method url-fetch)
cf10627b 5081 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
4018a533
EB
5082 name "-" version "-src.tar.gz"))
5083 (sha256
5084 (base32
ef2198ac 5085 "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35"))))
4018a533
EB
5086 (build-system gnu-build-system)
5087 (native-inputs
5088 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5089 (arguments netsurf-buildsystem-arguments)
cf10627b 5090 (home-page "https://www.netsurf-browser.org/projects/libnsbmp/")
4018a533
EB
5091 (synopsis "Decoding library for BMP and ICO files")
5092 (description
5093 "Libnsbmp is a decoding library for BMP and ICO image file formats,
5094written in C. It is developed as part of the NetSurf project.")
c2dd07ab 5095 (license license:expat)))
4018a533 5096
ea1c8b31
EB
5097(define-public libnsgif
5098 (package
5099 (name "libnsgif")
1dc02e72 5100 (version "0.2.1")
ea1c8b31
EB
5101 (source
5102 (origin
5103 (method url-fetch)
cf10627b 5104 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
ea1c8b31
EB
5105 name "-" version "-src.tar.gz"))
5106 (sha256
5107 (base32
1dc02e72 5108 "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
ea1c8b31
EB
5109 (build-system gnu-build-system)
5110 (native-inputs
5111 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5112 (arguments netsurf-buildsystem-arguments)
cf10627b 5113 (home-page "https://www.netsurf-browser.org/projects/libnsgif/")
ea1c8b31
EB
5114 (synopsis "Decoding library for GIF files")
5115 (description
5116 "Libnsgif is a decoding library for the GIF image file format, written in
5117C. It is developed as part of the NetSurf project.")
c2dd07ab 5118 (license license:expat)))
ea1c8b31 5119
2c618972
EB
5120(define-public libnslog
5121 (package
5122 (name "libnslog")
5123 (version "0.1.2")
5124 (source
5125 (origin
5126 (method url-fetch)
cf10627b 5127 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
2c618972
EB
5128 "libnslog-" version "-src.tar.gz"))
5129 (sha256
5130 (base32
5131 "1ggs6xvxp8fbg5w8pifalipm458ygr9ab6j2yvj8fnnmxwvdh4jd"))))
5132 (build-system gnu-build-system)
5133 (native-inputs
5134 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5135 ("pkg-config" ,pkg-config)
7357b3d7 5136 ("check" ,check-0.12) ; For tests
2c618972
EB
5137 ("bison" ,bison)
5138 ("flex" ,flex)))
5139 (arguments netsurf-buildsystem-arguments)
cf10627b 5140 (home-page "https://www.netsurf-browser.org/")
2c618972
EB
5141 (synopsis "Logging library")
5142 (description
5143 "Libnslog provides a category-based logging library which supports
5144complex logging filters, multiple log levels, and provides context through to
5145client applications. It is developed as part of the NetSurf project.")
5146 (license license:expat)))
5147
54b7f149
EB
5148(define-public libnsutils
5149 (package
5150 (name "libnsutils")
3e1035d7 5151 (version "0.0.5")
54b7f149
EB
5152 (source
5153 (origin
5154 (method url-fetch)
cf10627b 5155 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
54b7f149
EB
5156 name "-" version "-src.tar.gz"))
5157 (sha256
5158 (base32
3e1035d7 5159 "09w1rixps1iiq6wirjwxmd6h87llvjzvw565rahjb3rlyhcplfqf"))))
54b7f149
EB
5160 (build-system gnu-build-system)
5161 (native-inputs
5162 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5163 (arguments netsurf-buildsystem-arguments)
cf10627b 5164 (home-page "https://www.netsurf-browser.org/")
54b7f149
EB
5165 (synopsis "Utility library for NetSurf")
5166 (description
5167 "Libnsutils provides a small number of useful utility routines. It is
5168developed as part of the NetSurf project.")
c2dd07ab 5169 (license license:expat)))
54b7f149 5170
02a7a0ca
EB
5171(define-public libnspsl
5172 (package
5173 (name "libnspsl")
0a7473f1 5174 (version "0.1.5")
02a7a0ca
EB
5175 (source
5176 (origin
5177 (method url-fetch)
cf10627b 5178 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
0a7473f1 5179 "libnspsl-" version "-src.tar.gz"))
02a7a0ca
EB
5180 (sha256
5181 (base32
0a7473f1 5182 "0siq8zjfxv75i9fw6q5hkaijpdm1w3zskd5qk6vsvz8cqan4vifd"))))
02a7a0ca
EB
5183 (build-system gnu-build-system)
5184 (native-inputs
5185 `(("netsurf-buildsystem" ,netsurf-buildsystem)))
5186 (arguments netsurf-buildsystem-arguments)
cf10627b 5187 (home-page "https://www.netsurf-browser.org/")
02a7a0ca
EB
5188 (synopsis "Library to generate a static Public Suffix List")
5189 (description
5190 "Libnspsl is a library to generate a static code representation of the
5191Public Suffix List. It is developed as part of the NetSurf project.")
c2dd07ab 5192 (license license:expat)))
02a7a0ca 5193
1f6ec9d2
EB
5194(define-public nsgenbind
5195 (package
5196 (name "nsgenbind")
595d4ab1 5197 (version "0.7")
1f6ec9d2
EB
5198 (source
5199 (origin
5200 (method url-fetch)
cf10627b 5201 (uri (string-append "https://download.netsurf-browser.org/libs/releases/"
595d4ab1 5202 "nsgenbind-" version "-src.tar.gz"))
1f6ec9d2
EB
5203 (sha256
5204 (base32
595d4ab1 5205 "0rplmky4afsjwiwh7grkmcdmzg86zksa55j93dvq92f91yljwqqq"))))
1f6ec9d2
EB
5206 (build-system gnu-build-system)
5207 (native-inputs
5208 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5209 ("bison" ,bison)
5210 ("flex" ,flex)))
5211 (arguments
5212 (substitute-keyword-arguments netsurf-buildsystem-arguments
5213 ((#:make-flags flags)
5214 `(delete "COMPONENT_TYPE=lib-shared" ,flags))))
cf10627b 5215 (home-page "https://www.netsurf-browser.org/")
1f6ec9d2
EB
5216 (synopsis "Generate JavaScript to DOM bindings")
5217 (description
5218 "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from
5219w3c webidl files and a binding configuration file.")
c2dd07ab 5220 (license license:expat)))
1f6ec9d2 5221
fbaf9376
LF
5222(define-public netsurf
5223 (package
5224 (name "netsurf")
33d13088 5225 (version "3.9")
fbaf9376
LF
5226 (source
5227 (origin
5228 (method url-fetch)
cf10627b 5229 (uri (string-append "https://download.netsurf-browser.org/netsurf/"
fbaf9376
LF
5230 "releases/source/netsurf-" version "-src.tar.gz"))
5231 (sha256
5232 (base32
33d13088 5233 "1hzcm2s2wh5sapgr000lg63hcdbj6hyajxl43xa1x80kc5piqbyp"))
fbaf9376
LF
5234 (patches (search-patches "netsurf-system-utf8proc.patch"
5235 "netsurf-y2038-tests.patch"
f9e140a2
EB
5236 "netsurf-longer-test-timeout.patch"
5237 "netsurf-message-timestamp.patch"))))
fbaf9376
LF
5238 (build-system glib-or-gtk-build-system)
5239 (native-inputs
5240 `(("netsurf-buildsystem" ,netsurf-buildsystem)
5241 ("nsgenbind" ,nsgenbind)
5242 ("libidn" ,libidn) ;only for tests
5243 ("check" ,check)
5244 ("perl" ,perl)
5245 ("perl-html-parser" ,perl-html-parser)
33d13088
EB
5246 ("pkg-config" ,pkg-config)
5247 ("xxd" ,xxd)))
fbaf9376
LF
5248 (inputs
5249 `(("curl" ,curl)
20387778 5250 ("gtk+" ,gtk+)
fbaf9376
LF
5251 ("openssl" ,openssl)
5252 ("utf8proc" ,utf8proc)
5253 ("libpng" ,libpng)
4bd428a7 5254 ("libjpeg" ,libjpeg-turbo)
fbaf9376
LF
5255 ("libcss" ,libcss)
5256 ("libdom" ,libdom)
5257 ("libnsbmp" ,libnsbmp)
5258 ("libnsgif" ,libnsgif)
9e43348e 5259 ("libnslog" ,libnslog)
fbaf9376
LF
5260 ("libnspsl" ,libnspsl)
5261 ("libnsutils" ,libnsutils)
5262 ("libsvgtiny" ,libsvgtiny)
5263 ("miscfiles" ,miscfiles)))
5264 (arguments
5265 `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
20387778 5266 "TARGET=gtk3"
fbaf9376
LF
5267 ,(string-append "PREFIX=" %output)
5268 ,(string-append "NSSHARED="
5269 (assoc-ref %build-inputs
5270 "netsurf-buildsystem")
5271 "/share/netsurf-buildsystem"))
5272 #:test-target "test"
5273 #:modules ((ice-9 rdelim)
5274 (ice-9 match)
5275 (srfi srfi-1)
5276 (sxml simple)
5277 ,@%glib-or-gtk-build-system-modules)
5278 #:phases
5279 (modify-phases %standard-phases
5280 (delete 'configure)
5281 (add-after 'build 'adjust-welcome
5282 (lambda _
fbaf9376 5283 (substitute* "frontends/gtk/res/welcome.html"
31afa654 5284 ;; Close some XHTML tags.
fbaf9376
LF
5285 (("<(img|input)([^>]*)>" _ tag contents)
5286 (string-append "<" tag contents " />"))
31afa654 5287 ;; Increase freedom.
fbaf9376 5288 ((" open source") ", free software")
31afa654 5289 ;; Prefer a more privacy-respecting default search engine.
fbaf9376
LF
5290 (("www.google.co.uk") "www.duckduckgo.com/html")
5291 (("Google Search") "DuckDuckGo Search")
5292 (("name=\"btnG\"") ""))
31afa654 5293 ;; Remove default links so it doesn't seem we're endorsing them.
fbaf9376
LF
5294 (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
5295 (lambda (in out)
31afa654 5296 ;; Leave the DOCTYPE header as is.
fbaf9376
LF
5297 (display (read-line in 'concat) out)
5298 (sxml->xml
f1452776
EB
5299 (let rec ((sxml (xml->sxml in
5300 #:default-entity-handler
5301 (lambda (port name)
5302 (string-append "<ENTITY>"
5303 (symbol->string name)
5304 "</ENTITY>")))))
fbaf9376
LF
5305 ;; We'd like to use sxml-match here, but it can't
5306 ;; match against generic tag symbols...
5307 (match sxml
5308 (`(div (@ (class "links")) . ,rest)
5309 '())
f1452776
EB
5310 (`(ENTITY ,ent)
5311 `(*ENTITY* ,ent))
fbaf9376
LF
5312 ((x ...)
5313 (map rec x))
5314 (x x)))
5315 out)))
5316 #t))
5317 (add-before 'check 'patch-check
5318 (lambda* (#:key inputs #:allow-other-keys)
5319 (substitute* '("test/bloom.c" "test/hashtable.c")
5320 (("/usr/share/dict/words")
5321 (string-append (assoc-ref inputs "miscfiles") "/share/web2")))
5322 #t))
5323 (add-after 'install 'install-more
5324 (lambda* (#:key outputs #:allow-other-keys)
5325 (let* ((out (assoc-ref outputs "out"))
5326 (desktop (string-append out "/share/applications/"
5327 "netsurf.desktop")))
5328 (mkdir-p (dirname desktop))
5329 (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
5330 desktop)
5331 (substitute* desktop
341976e5 5332 (("netsurf-gtk") (string-append out "/bin/netsurf-gtk3"))
fbaf9376
LF
5333 (("netsurf.png") (string-append out "/share/netsurf/"
5334 "netsurf.xpm")))
d8799bd0 5335 (install-file "docs/netsurf-gtk.1"
fbaf9376
LF
5336 (string-append out "/share/man/man1/"))
5337 #t))))))
cf10627b 5338 (home-page "https://www.netsurf-browser.org")
fbaf9376
LF
5339 (synopsis "Web browser")
5340 (description
5341 "NetSurf is a lightweight web browser that has its own layout and
5342rendering engine entirely written from scratch. It is small and capable of
5343handling many of the web standards in use today.")
c2dd07ab 5344 (license license:gpl2+)))
fbaf9376 5345
e56e5b12 5346(define-public surfraw
5347 (package
5348 (name "surfraw")
58d20bf0
TGR
5349 (version "2.3.0")
5350 (source
5351 (origin
5352 (method url-fetch)
5353 (uri (string-append "https://gitlab.com/surfraw/Surfraw/uploads/"
5354 "2de827b2786ef2fe43b6f07913ca7b7f/"
5355 "surfraw-" version ".tar.gz"))
5356 (sha256
5357 (base32 "099nbif0x5cbcf18snc58nx1a3q7z0v9br9p2jiq9pcc7ic2015d"))))
e56e5b12 5358 (build-system gnu-build-system)
e81fd90e 5359 (arguments
5360 `(#:phases
5361 (modify-phases %standard-phases
72687ca5
MM
5362 (add-before 'configure 'patch-perl
5363 (lambda* (#:key inputs #:allow-other-keys)
5364 (let ((perl (assoc-ref inputs "perl")))
5365 (substitute* "surfraw.IN"
5366 (("perl -e")
5367 (string-append perl "/bin/perl -e")))
5368 #t)))
e81fd90e 5369 (add-after 'install 'compress-elvi.1sr
5370 (lambda* (#:key outputs #:allow-other-keys)
5371 ;; The manpages of the elvis are symlinks to elvi.1sr.gz
5372 ;; but elvi.1sr does not get compressed by our manpage phase.
5373 (let* ((out (assoc-ref %outputs "out"))
5374 (man (string-append out "/share/man/man1")))
5375 (with-directory-excursion man
2cdc7191 5376 (invoke "gzip" "elvi.1sr"))))))))
e56e5b12 5377 (inputs
5378 `(("perl" ,perl)
5379 ("perl-www-opensearch" ,perl-www-opensearch)
5380 ("perl-html-parser" ,perl-html-parser)
5381 ("perl-libwww" ,perl-libwww)))
5382 (synopsis "Unix command line interface to the www")
5383 (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
5384provides a unix command line interface to a variety of popular www search engines
5385and similar services.")
5386 (home-page "https://surfraw.alioth.debian.org/")
c2dd07ab 5387 (license license:public-domain)))
797a5cf5
AI
5388
5389(define-public darkhttpd
5390 (package
5391 (name "darkhttpd")
5392 (version "1.12")
5393 (source
5394 (origin
a7a4345d
AI
5395 (method url-fetch)
5396 (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
5397 version ".tar.bz2"))
797a5cf5
AI
5398 (sha256
5399 (base32
a7a4345d 5400 "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
797a5cf5
AI
5401 (build-system gnu-build-system)
5402 (arguments
5403 `(#:make-flags '("CC=gcc")
5404 #:tests? #f ; No test suite
5405 #:phases
5406 (modify-phases %standard-phases
5407 (delete 'configure)
5408 (replace 'install
5409 (lambda* (#:key outputs #:allow-other-keys)
5410 (install-file "darkhttpd"
5411 (string-append (assoc-ref outputs "out")
5412 "/bin"))
5413 #t)))))
5414 (synopsis "Simple static web server")
5415 (description "darkhttpd is a simple static web server. It is
5416standalone and does not need inetd or ucspi-tcp. It does not need any
5417config files---you only have to specify the www root.")
5418 (home-page "https://unix4lyfe.org/darkhttpd/")
c2dd07ab 5419 (license license:isc)))
8cecd22e
LC
5420
5421(define-public goaccess
5422 (package
5423 (name "goaccess")
5424 (version "1.0.2")
5425 (source (origin
5426 (method url-fetch)
5427 (uri (string-append "http://tar.goaccess.io/goaccess-"
5428 version ".tar.gz"))
5429 (sha256
5430 (base32
5431 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
5432 (modules '((guix build utils)))
6cbee49d
MW
5433 (snippet '(begin
5434 (substitute* "src/error.h"
5435 (("__DATE__") "\"1970-01-01\"")
2857e527
MW
5436 (("__TIME__") "\"00:00:00\""))
5437 #t))))
8cecd22e
LC
5438 (build-system gnu-build-system)
5439 (inputs
5440 ;; TODO: Add dependency on geoip-tools.
5441 `(("glib" ,glib)
5442 ("ncurses" ,ncurses)))
5443 (native-inputs
5444 `(("pkg-config" ,pkg-config)))
5445 (home-page "https://goaccess.io")
5446 (synopsis "Analyze Web server logs in real time")
5447 (description
5448 "GoAccess is a real-time web log analyzer and interactive viewer that
5449runs in a terminal or through your browser. It provides fast and valuable
5450HTTP statistics for system administrators that require a visual server report
5451on the fly.")
c2dd07ab 5452 (license license:x11)))
bb6e6415
TGR
5453
5454(define-public httptunnel
5455 (package
5456 (name "httptunnel")
5457 (version "3.3")
5458 (source
5459 (origin
5460 (method url-fetch)
5461 (uri (string-append "http://www.nocrew.org/software/httptunnel/"
5462 name "-" version ".tar.gz"))
5463 (sha256
5464 (base32
5465 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
5466 (modules '((guix build utils)))
6cbee49d
MW
5467 (snippet '(begin
5468 ;; Remove non-free IETF RFC documentation.
2857e527
MW
5469 (delete-file-recursively "doc")
5470 #t))))
bb6e6415
TGR
5471 (build-system gnu-build-system)
5472 (arguments
5473 `(#:phases
5474 (modify-phases %standard-phases
5475 ;; The default configure phase tries to pass environment variables as
5476 ;; command-line arguments, which confuses the ./configure script.
5477 (replace 'configure
5478 (lambda* (#:key outputs #:allow-other-keys)
5479 (let* ((out (assoc-ref outputs "out")))
5480 (setenv "CONFIG_SHELL" (which "bash"))
16b5dafc
TGR
5481 (invoke "./configure"
5482 (string-append "--prefix=" out))))))))
bb6e6415
TGR
5483 (home-page "http://www.nocrew.org/software/httptunnel.html")
5484 (synopsis "Tunnel data connections through HTTP requests")
5485 (description "httptunnel creates a bidirectional virtual data connection
5486tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be
5487useful for users behind restrictive firewalls. As long as Web traffic is
5488allowed, even through a HTTP-only proxy, httptunnel can be combined with other
5489tools like SSH (Secure Shell) to reach the outside world.")
c2dd07ab 5490 (license license:gpl2+)))
864042c5
TD
5491
5492(define-public stunnel
5493 (package
5494 (name "stunnel")
2e5438e0 5495 (version "5.56")
864042c5
TD
5496 (source
5497 (origin
5498 (method url-fetch)
5499 (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
5500 version ".tar.gz"))
5501 (sha256
2e5438e0 5502 (base32 "08kb4gi9fzqngrczykvba6xhaxhq9m4wmdbhxvgrva5rasrvz13k"))))
864042c5 5503 (build-system gnu-build-system)
8d07936a
TGR
5504 (native-inputs
5505 ;; For tests.
5506 `(("iproute" ,iproute)
5507 ("netcat" ,netcat)
5508 ("procps" ,procps)))
864042c5
TD
5509 (inputs `(("openssl" ,openssl)))
5510 (arguments
5511 `(#:configure-flags
8d07936a
TGR
5512 (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
5513 #:phases
5514 (modify-phases %standard-phases
5515 (add-after 'unpack 'patch-output-directories
5516 (lambda _
5517 ;; Some (not all) Makefiles have a hard-coded incorrect docdir.
5518 (substitute* (list "Makefile.in"
5519 "doc/Makefile.in"
5520 "tools/Makefile.in")
5521 (("/doc/stunnel")
5522 (string-append "/doc/" ,name "-" ,version)))
5523 #t))
5524 (add-before 'check 'patch-tests
5525 (lambda _
5526 (substitute* "tests/make_test"
5527 (("/bin/sh ")
5528 (string-append (which "sh") " ")))
5529 #t)))))
864042c5
TD
5530 (home-page "https://www.stunnel.org")
5531 (synopsis "TLS proxy for clients or servers")
5532 (description "Stunnel is a proxy designed to add TLS encryption
5533functionality to existing clients and servers without any changes in the
5534programs' code. Its architecture is optimized for security, portability, and
5535scalability (including load-balancing), making it suitable for large
5536deployments.")
c2dd07ab 5537 (license license:gpl2+)))
59ae241f 5538
da682825
MB
5539(define-public varnish
5540 (package
5541 (name "varnish")
5542 (home-page "https://varnish-cache.org/")
c7f06b2b 5543 (version "6.4.0")
da682825
MB
5544 (source (origin
5545 (method url-fetch)
5546 (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
5547 (sha256
5548 (base32
c7f06b2b 5549 "1hkn98vbxk7rc1sd08367qn6rcv8wkxgwbmm1x46y50vi0nvldpn"))))
da682825
MB
5550 (build-system gnu-build-system)
5551 (arguments
5552 `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
5553 ;; Use absolute path of GCC so it's found at runtime.
5554 (string-append "PTHREAD_CC="
5555 (assoc-ref %build-inputs "gcc")
5556 "/bin/gcc")
5557 "--localstatedir=/var")
5558 #:phases
5559 (modify-phases %standard-phases
5f33e906 5560 (add-after 'unpack 'use-absolute-file-names
da682825
MB
5561 (lambda _
5562 (substitute* '("bin/varnishtest/vtc_varnish.c"
5563 "bin/varnishtest/vtc_process.c"
d8fbfbf5
MB
5564 "bin/varnishd/mgt/mgt_vcc.c"
5565 "bin/varnishtest/tests/u00014.vtc")
da682825 5566 (("/bin/sh") (which "sh")))
5f33e906
MB
5567 (substitute* "bin/varnishd/mgt/mgt_shmem.c"
5568 (("rm -rf") (string-append (which "rm") " -rf")))
05109e8e
MB
5569 (substitute* "bin/varnishtest/vtc_main.c"
5570 (("/bin/rm") (which "rm")))
da682825
MB
5571 #t))
5572 (add-before 'install 'patch-Makefile
5573 (lambda _
5574 (substitute* "Makefile"
5575 ;; Do not create /var/varnish during install.
5576 (("^install-data-am: install-data-local") "install-data-am: "))
5577 #t))
5578 (add-after 'install 'wrap-varnishd
5579 ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
5580 ;; environment variables to avoid propagating them to profiles.
5581 (lambda* (#:key inputs outputs #:allow-other-keys)
5582 (let* ((out (assoc-ref outputs "out"))
5583 (varnishd (string-append out "/sbin/varnishd"))
5584 (PATH (string-append (assoc-ref inputs "binutils") "/bin"))
5585 (LIBRARY_PATH (string-append (assoc-ref inputs "libc") "/lib")))
5586 (wrap-program varnishd
5587 ;; Add binutils to PATH so gcc finds the 'as' executable.
5588 `("PATH" ":" prefix (,PATH))
5589 ;; Make sure 'crti.o' et.al is found.
5590 `("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))
5591 #t))))))
5592 (native-inputs
5593 `(("pkg-config" ,pkg-config)
cb94d5e1 5594 ("python-sphinx" ,python-sphinx)
da682825
MB
5595 ("rst2man" ,python-docutils)))
5596 (inputs
5597 `(("jemalloc" ,jemalloc)
5598 ("ncurses" ,ncurses)
5599 ("pcre" ,pcre)
5600 ("python" ,python-wrapper)
5601 ("readline" ,readline)))
5602 (synopsis "Web application accelerator")
5603 (description
5604 "Varnish is a high-performance HTTP accelerator. It acts as a caching
5605reverse proxy and load balancer. You install it in front of any server that
5606speaks HTTP and configure it to cache the contents through an extensive
5607configuration language.")
c2dd07ab
BT
5608 (license (list license:bsd-2 ;main distribution
5609 license:zlib ;lib/libvgz/*
5610 license:public-domain ;bin/varnishncsa/as64.c, include/miniobj.h
5611 license:bsd-3)))) ;include/vqueue.h, lib/libvarnishcompat/daemon.c
da682825 5612
ddf1ace0
MB
5613(define-public varnish-modules
5614 (package
5615 (name "varnish-modules")
5616 (home-page "https://github.com/varnish/varnish-modules")
5617 (version "0.15.0")
5618 (source (origin
5619 (method url-fetch)
5620 (uri (string-append "https://download.varnish-software.com"
5621 "/varnish-modules/varnish-modules-"
5622 version ".tar.gz"))
5623 (sha256
5624 (base32
5625 "09li9lqa1kb275w1rby2zldyg8r9cfcl4qyv53qyd9xbzilrz751"))))
5626 (build-system gnu-build-system)
5627 (native-inputs
5628 `(("pkg-config" ,pkg-config)))
5629 (inputs
5630 `(("python" ,python)
5631 ("varnish" ,varnish)))
5632 (synopsis "Collection of Varnish modules")
5633 (description
5634 "This package provides a collection of modules (@dfn{vmods}) for the Varnish
5635cache server, extending the @dfn{Varnish Configuration Language} (VCL) with
5636additional capabilities.")
c2dd07ab 5637 (license license:bsd-2)))
ddf1ace0 5638
59ae241f
TD
5639(define-public xinetd
5640 (package
5641 (name "xinetd")
e00d5b6b
TGR
5642 ;; This is the maintenance fork currently used by openSUSE and Debian.
5643 (version "2.3.15.4")
59ae241f
TD
5644 (source
5645 (origin
fba9a660
TGR
5646 (method git-fetch)
5647 (uri (git-reference
e00d5b6b
TGR
5648 (url "https://github.com/openSUSE/xinetd.git")
5649 (commit version)))
fba9a660 5650 (file-name (git-file-name name version))
59ae241f 5651 (sha256
e00d5b6b 5652 (base32 "0lrp3lcj6azhjplwxws2rx40bkyp6i6bp7n77ndcisb7ninad30q"))))
59ae241f
TD
5653 (build-system gnu-build-system)
5654 (arguments
5655 `(#:configure-flags '("--with-loadavg")
9c22b131 5656 #:tests? #f)) ; no tests
e00d5b6b
TGR
5657 (native-inputs
5658 `(("autoconf" ,autoconf)
5659 ("automake" ,automake)
5660 ("libtool" ,libtool)
5661 ("pkg-config" ,pkg-config)))
5662 (home-page "https://github.com/openSUSE/xinetd")
59ae241f
TD
5663 (synopsis "Internet services daemon")
5664 (description "@code{xinetd}, a more secure replacement for @code{inetd},
5665listens for incoming requests over a network and launches the appropriate
5666service for that request. Requests are made using port numbers as identifiers
5667and xinetd usually launches another daemon to handle the request. It can be
5668used to start services with both privileged and non-privileged port numbers.")
c2dd07ab 5669 (license (license:fsf-free "file://COPYRIGHT"))))
1ad3c7f2 5670
5671(define-public tidy-html
5672 (package
5673 (name "tidy-html")
a0bd6fff 5674 (version "5.6.0")
1ad3c7f2 5675 (source
5676 (origin
93ab7e8d
EF
5677 (method git-fetch)
5678 (uri (git-reference
5679 (url "https://github.com/htacg/tidy-html5")
5680 (commit version)))
5681 (file-name (git-file-name name version))
1ad3c7f2 5682 (sha256
5683 (base32
93ab7e8d 5684 "0w175c5d1babq0w1zzdzw9gl6iqbgyq58v8587s7srp05y3hwy9k"))))
1ad3c7f2 5685 (build-system cmake-build-system)
5686 (outputs '("out"
93ab7e8d 5687 "static")) ; 1.3MiB of .a files
1ad3c7f2 5688 (arguments
3def739d
TGR
5689 `(#:tests? #f ; no tests available
5690 #:build-type "Release"
1ad3c7f2 5691 #:phases
5692 (modify-phases %standard-phases
5693 (add-after 'install 'move-static-libraries
5694 (lambda* (#:key outputs #:allow-other-keys)
5695 ;; Move static libraries to the "static" output.
5696 (let* ((out (assoc-ref outputs "out"))
5697 (lib (string-append out "/lib"))
5698 (static (assoc-ref outputs "static"))
5699 (slib (string-append static "/lib")))
5700 (mkdir-p slib)
5701 (for-each (lambda (file)
5702 (install-file file slib)
5703 (delete-file file))
5704 (find-files lib "\\.a$"))
5705 #t))))))
5706 (native-inputs
5707 `(("libxslt" ,libxslt)))
5708 (home-page "http://www.html-tidy.org/")
5709 (synopsis "HTML Tidy with HTML5 support")
5710 (description
5711 "Tidy is a console application which corrects and cleans up
5712HTML and XML documents by fixing markup errors and upgrading
5713legacy code to modern standards.
5714
5715Tidy also provides @code{libtidy}, a C static and dynamic library that
5716developers can integrate into their applications to make use of the
5717functions of Tidy.")
c2dd07ab 5718 (license license:bsd-3)))
0491a3b2 5719
3190c307 5720(define-public hiawatha
5721 (package
5722 (name "hiawatha")
da32d7e3 5723 (version "10.10")
3190c307 5724 (source
5725 (origin
5726 (method url-fetch)
5727 (uri (string-append "https://www.hiawatha-webserver.org/files/"
5728 "hiawatha-" version ".tar.gz"))
5729 (modules '((guix build utils)))
6cbee49d 5730 (snippet '(begin
8e87aa04
TGR
5731 ;; We use packaged libraries, so delete the bundled copies.
5732 (for-each delete-file-recursively
73179915 5733 (list "extra/nghttp2.tgz" "mbedtls"))
6cbee49d 5734 #t))
3190c307 5735 (sha256
da32d7e3 5736 (base32 "1nd46cx1qp5lh2kwnn2mlwk9zm8jm7pgf90xs9vpwr7saxbnzr5m"))))
3190c307 5737 (build-system cmake-build-system)
5738 (arguments
8e87aa04 5739 `(#:tests? #f ; no tests included
3190c307 5740 #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
aff91b0d
TGR
5741 (string-append "-DENABLE_HTTP2=on")
5742 (string-append "-DUSE_SYSTEM_NGHTTP2=on")
3190c307 5743 (string-append "-DENABLE_TOMAHAWK=on")
d8b04232
TGR
5744 (string-append "-DLOG_DIR=/var/log/hiawatha")
5745 (string-append "-DPID_DIR=/run")
3190c307 5746 (string-append "-DWEBROOT_DIR="
5747 (assoc-ref %outputs "out")
d8b04232
TGR
5748 "/share/hiawatha/html")
5749 (string-append "-DWORK_DIR=/var/lib/hiawatha"))
3190c307 5750 #:phases
5751 (modify-phases %standard-phases
d8b04232
TGR
5752 (add-after 'unpack 'install-no-empty-directories
5753 (lambda _
5754 (substitute* "CMakeLists.txt"
5755 (("install\\(DIRECTORY DESTINATION" match)
5756 (string-append "#" match)))
5757 #t))
3190c307 5758 (add-after 'install 'wrap
5759 (lambda* (#:key inputs outputs #:allow-other-keys)
5760 ;; Make sure 'hiawatha' finds 'mbedtls'.
5761 (let* ((out (assoc-ref outputs "out"))
5762 (sbin (string-append out "/sbin"))
5763 (mbed (assoc-ref inputs "mbedtls-apache")))
5764 (wrap-program (string-append sbin "/hiawatha")
5765 `("PATH" ":" prefix (,mbed)))))))))
5766 (inputs
8e87aa04 5767 ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
aff91b0d
TGR
5768 `(("libxslt" ,libxslt)
5769 ("libxml2" ,libxml2)
5770 ("mbedtls-apache" ,mbedtls-for-hiawatha)
5771 ("nghttp2" ,nghttp2 "lib")
5772 ("zlib" ,zlib)))
3190c307 5773 (home-page "https://www.hiawatha-webserver.org")
5774 (synopsis "Webserver with focus on security")
5775 (description
d4f6f78e 5776 "Hiawatha has been written with security in mind.
5777Features include the ability to stop SQL injections, XSS and CSRF attacks and
5778exploit attempts.")
c2dd07ab 5779 (license license:gpl2)))
ce949c10
MFM
5780
5781(define-public python-httpbin
5782 (package
5783 (name "python-httpbin")
5784 (version "0.5.0")
5785 (source
5786 (origin
5787 (method url-fetch)
5788 (uri (pypi-uri "httpbin" version))
5789 (sha256
5790 (base32
5791 "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
5792 (build-system python-build-system)
5793 (propagated-inputs
5794 `(("python-decorator" ,python-decorator)
5795 ("python-flask" ,python-flask)
5796 ("python-itsdangerous" ,python-itsdangerous)
5797 ("python-markupsafe" ,python-markupsafe)
5798 ("python-six" ,python-six)))
5799 (home-page "https://github.com/Runscope/httpbin")
5800 (synopsis "HTTP request and response service")
5801 (description "Testing an HTTP Library can become difficult sometimes.
5802@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
5803response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
5804JSON-encoded.")
c2dd07ab 5805 (license license:isc)))
ce949c10
MFM
5806
5807(define-public python2-httpbin
5808 (package-with-python2 python-httpbin))
86ab1120
MFM
5809
5810(define-public python-pytest-httpbin
5811 (package
5812 (name "python-pytest-httpbin")
5813 (version "0.2.3")
5814 (source
5815 (origin
5816 (method url-fetch)
5817 (uri (pypi-uri "pytest-httpbin" version))
5818 (sha256
5819 (base32
5820 "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
5821 (build-system python-build-system)
5822 (propagated-inputs
5823 `(("python-six" ,python-six)
5824 ("python-httpbin" ,python-httpbin)
5825 ("python-pytest" ,python-pytest)))
5826 (home-page
5827 "https://github.com/kevin1024/pytest-httpbin")
5828 (synopsis
5829 "Test your HTTP library against a local copy of httpbin")
5830 (description
5831 "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
5832into your tests. It automatically starts up a HTTP server in a separate thread running
5833@code{httpbin} and provides your test with the URL in the fixture.")
c2dd07ab 5834 (license license:expat)))
86ab1120
MFM
5835
5836(define-public python2-pytest-httpbin
5837 (package-with-python2 python-pytest-httpbin))
751f8582
RW
5838
5839(define-public http-parser
5840 (package
5841 (name "http-parser")
d8bdda1e 5842 (version "2.9.3")
304db092 5843 (home-page "https://github.com/nodejs/http-parser")
751f8582 5844 (source (origin
304db092
MB
5845 (method git-fetch)
5846 (uri (git-reference (url home-page)
5847 (commit (string-append "v" version))))
5848 (file-name (git-file-name name version))
633360e0
NB
5849 (patches
5850 ;; When parsing URLs, treat an empty port (eg
5851 ;; `http://hostname:/`) as if it were unspecified. This patch is
5852 ;; applied to Fedora's http-parser and to libgit2's bundled version.
5853 (list
5854 (origin
5855 (method url-fetch)
5856 (uri (string-append
5857 "https://src.fedoraproject.org/rpms/http-parser/raw/"
5858 "e89b4c4e2874c19079a5a1a2d2ccc61b551aa289/"
5859 "f/0001-url-treat-empty-port-as-default.patch"))
5860 (sha256
5861 (base32
5862 "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g")))))
751f8582
RW
5863 (sha256
5864 (base32
d8bdda1e 5865 "189zi61vczqgmqjd2myjcjbbi5icrk7ccs0kn6nj8hxqiv5j3811"))))
751f8582
RW
5866 (build-system gnu-build-system)
5867 (arguments
5868 `(#:test-target "test"
5869 #:make-flags
5870 (list (string-append "PREFIX="
5871 (assoc-ref %outputs "out"))
078784ce
MO
5872 "library"
5873 ,@(if (%current-target-system)
5874 '()
5875 '("CC=gcc")))
751f8582
RW
5876 #:phases
5877 (modify-phases %standard-phases
078784ce
MO
5878 ,@(if (%current-target-system)
5879 '((replace 'configure
5880 (lambda* (#:key target #:allow-other-keys)
5881 (substitute* (find-files "." "Makefile")
5882 (("CC\\?=.*$")
5883 (string-append "CC=" target "-gcc\n"))
5884 (("AR\\?=.*$")
5885 (string-append "AR=" target "-ar\n")))
5886 #t)))
5887 '((delete 'configure))))))
751f8582
RW
5888 (synopsis "HTTP request/response parser for C")
5889 (description "This is a parser for HTTP messages written in C. It parses
5890both requests and responses. The parser is designed to be used in
5891high-performance HTTP applications. It does not make any syscalls nor
5892allocations, it does not buffer data, it can be interrupted at anytime.
5893Depending on your architecture, it only requires about 40 bytes of data per
5894message stream (in a web server that is per connection).")
c2dd07ab 5895 (license license:expat)))
40b784b4 5896
5e869bde
TGR
5897(define-public python-httpretty
5898 (package
5899 (name "python-httpretty")
5900 (version "0.9.6")
5901 (source
5902 (origin
5903 (method url-fetch)
5904 (uri (pypi-uri "httpretty" version))
5905 (sha256
5906 (base32 "1p1rb4mpngh0632xrmdfhvc8yink519yfkqz97d2ww3y0x2jvd81"))))
5907 (build-system python-build-system)
5908 (propagated-inputs
5909 `(("python-six" ,python-six)))
5910 (native-inputs
5911 `(("python-coverage" ,python-coverage)
5912 ("python-httplib2" ,python-httplib2)
5913 ("python-mock" ,python-mock)
5914 ("python-nose" ,python-nose)
5915 ("python-nose-randomly" ,python-nose-randomly)
5916 ("python-rednose" ,python-rednose)
5917 ("python-requests" ,python-requests)
5918 ("python-sure" ,python-sure)
5919 ("python-tornado" ,python-tornado)
5920 ("python-urllib3" ,python-urllib3)))
5921 (home-page "https://httpretty.readthedocs.io")
5922 (synopsis "HTTP client mock for Python")
5923 (description "@code{httpretty} is a helper for faking web requests,
5924inspired by Ruby's @code{fakeweb}.")
c2dd07ab 5925 (license license:expat)))
0ac04232
AI
5926
5927(define-public jo
5928 (package
5929 (name "jo")
dd39f16e 5930 (version "1.3")
0ac04232
AI
5931 (source
5932 (origin
5933 (method url-fetch)
f0e68593 5934 (uri (string-append "https://github.com/jpmens/jo/releases/download/"
0ac04232
AI
5935 version "/jo-" version ".tar.gz"))
5936 (sha256
5937 (base32
dd39f16e 5938 "0r6yb8pjsbcqfyac4240a0sj93pb91fv385bpk395cx3f5bcj9fy"))))
0ac04232
AI
5939 (build-system gnu-build-system)
5940 (home-page "https://github.com/jpmens/jo")
5941 (synopsis "Output JSON from a shell")
5942 (description "jo is a command-line utility to create JSON objects or
5943arrays. It creates a JSON string on stdout from words provided as
5944command-line arguments or read from stdin.")
c2dd07ab
BT
5945 (license (list license:gpl2+
5946 license:expat)))) ; json.c, json.h
95c36822
OP
5947
5948(define-public python-internetarchive
5949 (package
5950 (name "python-internetarchive")
38a9b4b7 5951 (version "1.8.5")
95c36822
OP
5952 (source
5953 (origin
38a9b4b7
OP
5954 (method git-fetch)
5955 (uri (git-reference
5956 (url "https://github.com/jjjake/internetarchive")
5957 (commit (string-append "v" version))))
5958 (file-name (git-file-name name version))
95c36822
OP
5959 (sha256
5960 (base32
38a9b4b7
OP
5961 "0ih7hplv92wbv6cmgc1gs0v35qkajwicalwcq8vcljw30plr24fp"))
5962 (modules '((guix build utils)))
5963 (snippet
5964 '(begin
5965 ;; Python 3.7 removed `_pattern_type'.
5966 (for-each (lambda (file)
5967 (chmod file #o644)
5968 (substitute* file
5969 (("^import re\n" line)
5970 (string-append line "re._pattern_type = re.Pattern\n"))))
5971 (find-files "." "\\.py$"))
5972 #t))))
95c36822
OP
5973 (build-system python-build-system)
5974 (arguments
2cdf78df 5975 `(#:phases
95c36822
OP
5976 (modify-phases %standard-phases
5977 (delete 'check)
5978 (add-after 'install 'check
2cdf78df
OP
5979 (lambda* (#:key inputs outputs #:allow-other-keys)
5980 (add-installed-pythonpath inputs outputs)
5981 (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
5982 ":" (getenv "PATH")))
b8150fa0
TGR
5983 (invoke "py.test" "-v" "-k"
5984 (string-append
5985 ;; These tests attempt to make a connection to
5986 ;; an external web service.
5987 "not test_get_item_with_kwargs"
5988 " and not test_ia")))))))
95c36822
OP
5989 (propagated-inputs
5990 `(("python-requests" ,python-requests)
5991 ("python-jsonpatch" ,python-jsonpatch-0.4)
5992 ("python-docopt" ,python-docopt)
5993 ("python-clint" ,python-clint)
5994 ("python-six" ,python-six)
5995 ("python-schema" ,python-schema-0.5)
5996 ("python-backports-csv" ,python-backports-csv)))
5997 (native-inputs
928da609 5998 `(("python-pytest" ,python-pytest)
95c36822
OP
5999 ("python-pytest-capturelog" ,python-pytest-capturelog)
6000 ("python-responses" ,python-responses)))
6001 (home-page "https://github.com/jjjake/internetarchive")
6002 (synopsis "Command-line interface to archive.org")
6003 (description "@code{ia} is a command-line tool for using
6004@url{archive.org} from the command-line. It also emplements the
1bb50856 6005internetarchive python module for programmatic access to archive.org.")
c2dd07ab 6006 (license license:agpl3+)))
95c36822 6007
036f1eed
OP
6008(define-public python-clf
6009 (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
6010 (package
6011 (name "python-clf")
6012 (version "0.5.7")
6013 (source
6014 (origin
6015 (method url-fetch)
6016 (uri (pypi-uri "clf" version))
6017 (sha256
6018 (base32
6019 "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb"))))
6020 (build-system python-build-system)
6021 (propagated-inputs
6022 `(("python-docopt" ,python-docopt)
6023 ("python-pygments" ,python-pygments)
6024 ("python-requests" ,python-requests)
6025 ("python-nose" ,python-nose)
6026 ("python-lxml" ,python-lxml)
6027 ("python-pyaml" ,python-pyaml)))
6028 (inputs
6029 `(("test-clf"
6030 ,(origin
6031 (method url-fetch)
6032 (uri (string-append "https://raw.githubusercontent.com"
6033 "/ncrocfer/clf/" commit-test-clf
6034 "/test_clf.py"))
6035 (sha256
6036 (base32
6037 "19lr5zdzsmxgkg7wrjq1yzkiahd03wi4k3dskssyhmjls8c10nqd"))))))
6038 (arguments
6039 '(#:phases
6040 (modify-phases %standard-phases
6041 (add-after 'unpack 'get-tests
6042 (lambda _
a145d7e9
TGR
6043 (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")
6044 #t))
036f1eed
OP
6045 (replace 'check
6046 (lambda _
a145d7e9
TGR
6047 (invoke "nosetests"
6048 ;; These tests require an Internet connection.
6049 "--exclude=test_browse"
6050 "--exclude=test_command"
6051 "--exclude=test_search"))))))
036f1eed
OP
6052 (home-page "https://github.com/ncrocfer/clf")
6053 (synopsis "Search code snippets on @url{https://commandlinefu.com}")
6054 (description "@code{clf} is a command line tool for searching code
6055snippets on @url{https://commandlinefu.com}.")
c2dd07ab 6056 (license license:expat))))
036f1eed
OP
6057
6058(define-public python2-clf
6059 (package-with-python2 python-clf))
6060
52d445f1
AI
6061(define-public rss-bridge
6062 (package
6063 (name "rss-bridge")
78bd9c52 6064 (version "2019-09-12")
52d445f1
AI
6065 (source
6066 (origin
a382860b
AI
6067 (method git-fetch)
6068 (uri (git-reference
6069 (url "https://github.com/RSS-Bridge/rss-bridge")
6070 (commit version)))
6071 (file-name (git-file-name name version))
52d445f1 6072 (sha256
78bd9c52 6073 (base32 "1mx7f3l45nqhcrng531l4cq8kpzm164hhbwn26g5akb2pamdlnra"))))
52d445f1 6074 (build-system trivial-build-system)
52d445f1
AI
6075 (arguments
6076 '(#:modules ((guix build utils))
6077 #:builder
6078 (begin
6079 (use-modules (guix build utils)
6080 (ice-9 match))
6081 (let* ((out (assoc-ref %outputs "out"))
6082 (share-rss-bridge (string-append out "/share/rss-bridge")))
52d445f1 6083 (mkdir-p share-rss-bridge)
a382860b
AI
6084 (copy-recursively (assoc-ref %build-inputs "source") share-rss-bridge)
6085 #t))))
52d445f1
AI
6086 (home-page "https://github.com/RSS-Bridge/rss-bridge")
6087 (synopsis "Generate Atom feeds for social networking websites")
6088 (description "rss-bridge generates Atom feeds for social networking
6089websites lacking feeds. Supported websites include Facebook, Twitter,
6090Instagram and YouTube.")
c2dd07ab 6091 (license (list license:public-domain
78bd9c52 6092 license:expat)))) ; vendor/simplehtmldom/simple_html_dom.php
a00379e7
AI
6093
6094(define-public linkchecker
6095 (package
6096 (name "linkchecker")
15dd85f0 6097 (version "9.4.0")
a00379e7
AI
6098 (source
6099 (origin
15dd85f0
TGR
6100 (method git-fetch)
6101 (uri (git-reference
6102 (url "https://github.com/linkchecker/linkchecker")
6103 (commit (string-append "v" version))))
dd7bc92a 6104 (patches
60ecacde 6105 (search-patches "linkchecker-tests-require-network.patch"))
774f8bbe 6106 (file-name (git-file-name name version))
a00379e7
AI
6107 (sha256
6108 (base32
15dd85f0 6109 "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
a00379e7
AI
6110 (build-system python-build-system)
6111 (inputs
15dd85f0
TGR
6112 `(("python2-dnspython" ,python2-dnspython)
6113 ("python2-pyxdg" ,python2-pyxdg)
6114 ("python2-requests" ,python2-requests)))
dd7bc92a
CB
6115 (native-inputs
6116 `(("gettext" ,gettext-minimal)
6117 ("python2-pytest" ,python2-pytest)
6118 ("python2-miniboa" ,python2-miniboa)
6119 ("python2-parameterized" ,python2-parameterized)))
a00379e7 6120 (arguments
dd7bc92a
CB
6121 `(#:python ,python-2
6122 #:phases
6123 (modify-phases %standard-phases
6124 ;; Move the 'check phase to after 'install, so that the installed
6125 ;; library can be used
6126 (delete 'check)
6127 (add-after 'install 'check
6128 (lambda* (#:key outputs #:allow-other-keys)
6129 (let ((out (assoc-ref outputs "out")))
6130 ;; Set PYTHONPATH so that the installed linkchecker is used
6131 (setenv "PYTHONPATH"
6132 (string-append out "/lib/python2.7/site-packages"
6133 ":"
6134 (getenv "PYTHONPATH")))
6135 ;; Remove this directory to avoid it being used when running
6136 ;; the tests
6137 (delete-file-recursively "linkcheck")
6138
6139 (invoke "py.test" "tests"))
6140 #t)))))
a00379e7
AI
6141 (home-page "https://linkcheck.github.io/linkchecker")
6142 (synopsis "Check websites for broken links")
6143 (description "LinkChecker is a website validator. It checks for broken
6144links in websites. It is recursive and multithreaded providing output in
6145colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It
6146supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local
6147file links.")
c2dd07ab
BT
6148 (license (list license:gpl2+
6149 license:bsd-2 ; linkcheck/better_exchook2.py
6150 license:bsd-3 ; linkcheck/colorama.py
6151 license:psfl ; linkcheck/gzip2.py
6152 license:expat)))) ; linkcheck/mem.py
ac713461 6153
6154(define-public cadaver
6155 (package
6156 (name "cadaver")
6157 (version "0.23.3")
6158 (source
6159 (origin
6160 (method url-fetch)
6161 (uri (string-append "http://www.webdav.org/cadaver/"
6162 name "-" version ".tar.gz"))
6163 (sha256
6164 (base32
6165 "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
6166 (build-system gnu-build-system)
6167 ;; TODO: Unbundle libneon and make build succeed with new neon.
6168 (arguments
6169 `(#:configure-flags (list "--with-ssl=openssl")
6170 #:tests? #f)) ;No tests included
6171 (native-inputs
f2d97d57 6172 `(("gettext" ,gettext-minimal)
ac713461 6173 ("pkg-config" ,pkg-config)
6174 ("intltool" ,intltool)))
6175 (inputs
6176 `(("expat" ,expat)
0c2e94f2 6177 ("openssl" ,openssl-1.0)))
10b99ddf 6178 (home-page "http://www.webdav.org/cadaver/")
ac713461 6179 (synopsis "Command-line WebDAV client")
6180 (description
10b99ddf 6181 "Cadaver is a command-line WebDAV client for Unix. It supports
ac713461 6182file upload, download, on-screen display, namespace operations (move/copy),
6183collection creation and deletion, and locking operations.")
c2dd07ab 6184 (license license:gpl2)))
3aa440ca 6185
6186(define-public python-py-ubjson
6187 (package
6188 (name "python-py-ubjson")
6189 (version "0.10.0")
6190 (source
6191 (origin
6192 (method url-fetch)
6193 (uri (pypi-uri "py-ubjson" version))
6194 (sha256
6195 (base32
6196 "03l9m9w5ip4hw0y69wlys5gzsfb7zcq3a77blj88grgiqhn5vm5n"))))
6197 (build-system python-build-system)
6198 (home-page "https://github.com/Iotic-Labs/py-ubjson")
6199 (synopsis "Universal Binary JSON encoder/decoder")
6200 (description
6201 "Py-ubjson is a Python module providing an Universal Binary JSON
6202encoder/decoder based on the draft-12 specification for UBJSON.")
c2dd07ab 6203 (license license:asl2.0)))
91072287
JL
6204
6205(define-public java-tomcat
6206 (package
6207 (name "java-tomcat")
eebaed2b 6208 (version "8.5.53")
91072287
JL
6209 (source (origin
6210 (method url-fetch)
6211 (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
6212 version "/src/apache-tomcat-" version "-src.tar.gz"))
6213 (sha256
6214 (base32
eebaed2b 6215 "15lwq3clf21hzk7mma70sffpxjqn8ww5mjq6zhmwcp4m17m22z26"))
8dae9c92
BH
6216 (modules '((guix build utils)))
6217 ;; Delete bundled jars.
6218 (snippet
6219 '(begin
6220 (for-each delete-file (find-files "." "\\.jar$"))
39775121 6221 (for-each delete-file (find-files "." "\\.bat$"))
8dae9c92 6222 #t))))
91072287
JL
6223 (build-system ant-build-system)
6224 (inputs
39775121
BH
6225 `(("java-commons-daemon" ,java-commons-daemon)
6226 ("java-ecj" ,java-ecj)))
91072287 6227 (arguments
39775121 6228 `(#:build-target "deploy"
91072287
JL
6229 #:tests? #f; requires downloading some files.
6230 #:phases
6231 (modify-phases %standard-phases
6232 (add-after 'unpack 'prevent-download
6233 (lambda _
6234 ;; This directory must exist
6235 (mkdir "downloads")
6236 ;; We patch build.xml so it doesn't download any dependency, because
6237 ;; we already have all of them.
6238 (substitute* "build.xml"
6239 (("download-compile,") "")
6240 (("depends=\"validate\"") "depends=\"build-prepare\"")
6241 ((",download-validate") ""))
6242 #t))
49a8684d
BH
6243 (add-after 'unpack 'strip-timestamps
6244 (lambda _
6245 (substitute* "build.xml"
6246 (("<filter token=\"YEAR\" value=.*")
6247 "<filter token=\"YEAR\" value=\"1970\"/>")
6248 (("<filter token=\"VERSION_BUILT\" value=.*")
6249 "<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
6250 #t))
39775121
BH
6251 (add-after 'unpack 'modify-deploy
6252 (lambda _
6253 ;; The Tomcat build downloads and copies these files to the
6254 ;; bin and lib directory.
6255 ;; We instead symlink to the input (see below).
6256 (substitute* "build.xml"
6257 (("<copy tofile=\"\\$\\{tomcat.build\\}/bin/commons-daemon.jar.*") "")
6258 (("<copy file=\"\\$\\{jdt.jar\\}\" todir=\"\\$\\{tomcat.build\\}/lib\"/>")
6259 ""))
6260 #t))
6261 (add-after 'install 'symlink-commons-daemon
6262 (lambda* (#:key inputs outputs #:allow-other-keys)
6263 (let* ((commons-daemon (assoc-ref inputs "java-commons-daemon"))
6264 (files (find-files commons-daemon "commons-daemon-.*\\.jar"))
6265 (daemon-jar (car files))
6266 (out-bin (string-append (assoc-ref outputs "out") "/bin"))
6267 (target (string-append out-bin "/commons-daemon.jar")))
6268 (symlink daemon-jar target)
6269 #t)))
6270 (add-after 'install 'symlink-java-ecj
6271 (lambda* (#:key inputs outputs #:allow-other-keys)
6272 (let* ((java-ecj (assoc-ref inputs "java-ecj"))
6273 (files (find-files java-ecj "ecj.*\\.jar"))
6274 (java-ecj-jar (car files))
6275 (out-lib (string-append (assoc-ref outputs "out") "/lib"))
6276 (target (string-append out-lib "/java-ecj.jar")))
6277 (symlink java-ecj-jar target)
6278 #t)))
91072287
JL
6279 (add-after 'unpack 'generate-properties
6280 (lambda _
6281 ;; This could have been passed to make-flags, but getcwd returns
6282 ;; a different directory then.
6283 (with-output-to-file "build.properties"
6284 (lambda _
6285 (display
6286 (string-append "base.path=" (getcwd) "/downloads\n"))))
6287 #t))
6288 (replace 'install
39775121
BH
6289 (lambda* (#:key outputs #:allow-other-keys)
6290 (let ((out (assoc-ref outputs "out")))
6291 (copy-recursively "output/build" out))
6292 #t)))))
eebaed2b 6293 (properties '((cpe-name . "tomcat")))
91072287
JL
6294 (home-page "https://tomcat.apache.org")
6295 (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
6296WebSocket")
6297 (description "Apache Tomcat is a free implementation of the Java
6298Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
6299technologies.")
c2dd07ab 6300 (license license:asl2.0)))
339bef37
JL
6301
6302(define-public java-eclipse-jetty-test-helper
6303 (package
6304 (name "java-eclipse-jetty-test-helper")
6305 (version "4.2")
6306 (source (origin
2fea2b64
EF
6307 (method git-fetch)
6308 (uri (git-reference
6309 (url "https://github.com/eclipse/jetty.toolchain/")
6310 (commit (string-append "jetty-test-helper-" version))))
6311 (file-name (git-file-name name version))
339bef37
JL
6312 (sha256
6313 (base32
2fea2b64 6314 "1g7cdh03nfwbdxzvwm84ysgvw08xx7431lsjryj2gmf3lrqpizgb"))))
339bef37
JL
6315 (build-system ant-build-system)
6316 (arguments
6317 `(#:jar-name "eclipse-jetty-test-helper.jar"
6318 #:source-dir "src/main/java"
6319 #:test-dir "src/test"
6320 #:jdk ,icedtea-8
6321 #:phases
6322 (modify-phases %standard-phases
6323 (add-before 'configure 'chdir
6324 (lambda _
176662a1
BH
6325 (chdir "jetty-test-helper")
6326 #t))
339bef37
JL
6327 (add-before 'build 'fix-paths
6328 (lambda _
6329 ;; TODO:
6330 ;; This file assumes that the build directory is named "target"
6331 ;; but it is not the case with our ant-build-system. Once we have
6332 ;; maven though, we will have to rebuild this package because this
6333 ;; assumption is correct with maven-build-system.
6334 (substitute*
6335 "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
6336 (("\"target\"") "\"build\"")
6337 (("\"tests\"") "\"test-classes\""))
6338 ;; Tests assume we are building with maven, so that the build
6339 ;; directory is named "target", and not "build".
6340 (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
6341 (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
6342 "MavenTestingUtilsTest.java")
6343 (("target/tests") "build/test-classes")
6344 (("\"target") "\"build")))
6345 #t)))))
6346 (inputs
6347 `(("junit" ,java-junit)
6348 ("hamcrest" ,java-hamcrest-all)))
6349 (home-page "https://www.eclipse.org/jetty/")
6350 (synopsis "Helper classes for jetty tests")
47656925 6351 (description "This package contains helper classes for testing the Jetty
339bef37
JL
6352Web Server.")
6353 ;; This program is licensed under both epl and asl.
c2dd07ab 6354 (license (list license:epl1.0 license:asl2.0))))
1f985e44
JL
6355
6356(define-public java-eclipse-jetty-perf-helper
6357 (package
6358 (inherit java-eclipse-jetty-test-helper)
6359 (name "java-eclipse-jetty-perf-helper")
6360 (arguments
6361 `(#:jar-name "eclipse-jetty-perf-helper.jar"
6362 #:source-dir "src/main/java"
6363 #:tests? #f; no tests
6364 #:jdk ,icedtea-8
6365 #:phases
6366 (modify-phases %standard-phases
6367 (add-before 'configure 'chdir
6368 (lambda _
6369 (chdir "jetty-perf-helper")
6370 #t)))))
6371 (inputs
6372 `(("hdrhistogram" ,java-hdrhistogram)))))
1657d62a
JL
6373
6374(define-public java-eclipse-jetty-util
6375 (package
6376 (name "java-eclipse-jetty-util")
6377 (version "9.4.6")
6378 (source (origin
6379 (method url-fetch)
6380 (uri (string-append "https://github.com/eclipse/jetty.project/"
6381 "archive/jetty-" version ".v20170531.tar.gz"))
6382 (sha256
6383 (base32
6384 "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
6385 (build-system ant-build-system)
6386 (arguments
6387 `(#:jar-name "eclipse-jetty-util.jar"
6388 #:source-dir "src/main/java"
6389 #:test-exclude
6390 (list "**/Abstract*.java"
6391 ;; requires network
6392 "**/InetAddressSetTest.java"
6393 ;; Assumes we are using maven
6394 "**/TypeUtilTest.java"
6395 ;; Error on the style of log
6396 "**/StdErrLogTest.java")
6397 #:jdk ,icedtea-8
6398 #:phases
6399 (modify-phases %standard-phases
6400 (add-before 'configure 'chdir
6401 (lambda _
6402 (chdir "jetty-util")
6403 #t)))))
6404 (inputs
6405 `(("slf4j" ,java-slf4j-api)
53ba191b 6406 ("servlet" ,java-javaee-servletapi)))
1657d62a
JL
6407 (native-inputs
6408 `(("junit" ,java-junit)
6409 ("hamcrest" ,java-hamcrest-all)
6410 ("perf-helper" ,java-eclipse-jetty-perf-helper)
6411 ("test-helper" ,java-eclipse-jetty-test-helper)))
6412 (home-page "https://www.eclipse.org/jetty/")
6413 (synopsis "Utility classes for Jetty")
6414 (description "The Jetty Web Server provides an HTTP server and Servlet
6415container capable of serving static and dynamic content either from a standalone
6416or embedded instantiation. This package provides utility classes.")
c2dd07ab 6417 (license (list license:epl1.0 license:asl2.0))))
5010671d
JL
6418
6419;; This version is required by maven-wagon
6420(define-public java-eclipse-jetty-util-9.2
6421 (package
6422 (inherit java-eclipse-jetty-util)
6423 (version "9.2.22")
6424 (source (origin
6425 (method url-fetch)
6426 (uri (string-append "https://github.com/eclipse/jetty.project/"
6427 "archive/jetty-" version ".v20170606.tar.gz"))
6428 (sha256
6429 (base32
6430 "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
6431 (arguments
6432 `(#:jar-name "eclipse-jetty-util.jar"
6433 #:source-dir "src/main/java"
6434 #:jdk ,icedtea-8
6435 #:test-exclude
6436 (list "**/Abstract*.java"
6437 ;; requires network
6438 "**/InetAddressSetTest.java"
6439 ;; Assumes we are using maven
6440 "**/TypeUtilTest.java"
6441 ;; We don't have an implementation for slf4j
6442 "**/LogTest.java"
6443 ;; Error on the style of log
6444 "**/StdErrLogTest.java")
6445 #:phases
6446 (modify-phases %standard-phases
6447 (add-before 'configure 'chdir
6448 (lambda _
6449 (chdir "jetty-util")
6450 #t))
6451 (add-before 'build 'fix-test-sources
6452 (lambda _
6453 ;; We need to fix issues caused by changes in newer versions of
6454 ;; jetty-test-helper
6455 (let ((src "src/test/java/org/eclipse/jetty/util/resource"))
6456 (substitute* (string-append src "/AbstractFSResourceTest.java")
6457 (("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
6458 (("testdir.getFile\\(\"foo\"\\)")
6459 "testdir.getPathFile(\"foo\").toFile()")
6460 (("testdir.getFile\\(name\\)")
6461 "testdir.getPathFile(name).toFile()")))
6462 #t)))))))
b510b7f5
JL
6463
6464(define-public java-eclipse-jetty-io
6465 (package
6466 (inherit java-eclipse-jetty-util)
6467 (name "java-eclipse-jetty-io")
6468 (arguments
6469 `(#:jar-name "eclipse-jetty-io.jar"
6470 #:source-dir "src/main/java"
6471 #:jdk ,icedtea-8
6472 #:test-exclude (list "**/Abstract*.java"
6473 ;; Abstract class
6474 "**/EndPointTest.java")
6475 #:phases
6476 (modify-phases %standard-phases
6477 (add-before 'configure 'chdir
6478 (lambda _
6479 (chdir "jetty-io")
6480 #t)))))
6481 (inputs
6482 `(("slf4j" ,java-slf4j-api)
4b472f6a 6483 ("servlet" ,java-javaee-servletapi)
b510b7f5
JL
6484 ("util" ,java-eclipse-jetty-util)))
6485 (synopsis "Jetty :: IO Utility")
6486 (description "The Jetty Web Server provides an HTTP server and Servlet
6487container capable of serving static and dynamic content either from a standalone
6488or embedded instantiation. This package provides IO-related utility classes.")))
b90012fd
JL
6489
6490(define-public java-eclipse-jetty-io-9.2
6491 (package
6492 (inherit java-eclipse-jetty-io)
6493 (version (package-version java-eclipse-jetty-util-9.2))
6494 (source (package-source java-eclipse-jetty-util-9.2))
6495 (inputs
6496 `(("util" ,java-eclipse-jetty-util-9.2)
6497 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6498 (native-inputs
6499 `(("mockito" ,java-mockito-1)
6500 ("cglib" ,java-cglib)
6501 ("objenesis" ,java-objenesis)
6502 ("asm" ,java-asm)
6503 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
4a1376d3
JL
6504
6505(define-public java-eclipse-jetty-http
6506 (package
6507 (inherit java-eclipse-jetty-util)
6508 (name "java-eclipse-jetty-http")
6509 (arguments
6510 `(#:jar-name "eclipse-jetty-http.jar"
6511 #:source-dir "src/main/java"
6512 #:jdk ,icedtea-8
6513 #:phases
6514 (modify-phases %standard-phases
6515 (add-before 'configure 'chdir
6516 (lambda _
6517 (chdir "jetty-http")
6518 #t))
6519 (add-before 'build 'copy-resources
6520 (lambda _
6521 (mkdir-p "build/classes")
6522 (copy-recursively "src/main/resources/" "build/classes/")
6523 #t)))))
6524 (inputs
6525 `(("slf4j" ,java-slf4j-api)
4b472f6a 6526 ("servlet" ,java-javaee-servletapi)
4a1376d3
JL
6527 ("io" ,java-eclipse-jetty-io)
6528 ("util" ,java-eclipse-jetty-util)))
6529 (synopsis "Jetty :: Http Utility")
6530 (description "The Jetty Web Server provides an HTTP server and Servlet
6531container capable of serving static and dynamic content either from a standalone
6532or embedded instantiation. This package provides HTTP-related utility classes.")))
821869fc
JL
6533
6534(define-public java-eclipse-jetty-http-9.2
6535 (package
6536 (inherit java-eclipse-jetty-http)
6537 (version (package-version java-eclipse-jetty-util-9.2))
6538 (source (package-source java-eclipse-jetty-util-9.2))
6539 (inputs
6540 `(("util" ,java-eclipse-jetty-util-9.2)
6541 ("io" ,java-eclipse-jetty-io-9.2)
6542 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
4b172061
JL
6543
6544(define-public java-eclipse-jetty-jmx
6545 (package
6546 (inherit java-eclipse-jetty-util)
6547 (name "java-eclipse-jetty-jmx")
6548 (arguments
6549 `(#:jar-name "eclipse-jetty-jmx.jar"
6550 #:source-dir "src/main/java"
6551 #:jdk ,icedtea-8
6552 #:tests? #f; FIXME: requires com.openpojo.validation
6553 #:phases
6554 (modify-phases %standard-phases
6555 (add-before 'configure 'chdir
6556 (lambda _
6557 (chdir "jetty-jmx")
6558 #t)))))
6559 (inputs
6560 `(("slf4j" ,java-slf4j-api)
4b472f6a 6561 ("servlet" ,java-javaee-servletapi)
4b172061
JL
6562 ("util" ,java-eclipse-jetty-util)))
6563 (synopsis "Jetty :: JMX Management")
6564 (description "The Jetty Web Server provides an HTTP server and Servlet
6565container capable of serving static and dynamic content either from a standalone
6566or embedded instantiation. This package provides the JMX management.")))
812c712f
JL
6567
6568(define-public java-eclipse-jetty-jmx-9.2
6569 (package
6570 (inherit java-eclipse-jetty-jmx)
6571 (version (package-version java-eclipse-jetty-util-9.2))
6572 (source (package-source java-eclipse-jetty-util-9.2))
6573 (inputs
6574 `(("util" ,java-eclipse-jetty-util-9.2)
6575 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
5d38f7e4
JL
6576
6577(define java-eclipse-jetty-http-test-classes
6578 (package
6579 (inherit java-eclipse-jetty-util)
6580 (name "java-eclipse-jetty-http-test-classes")
6581 (arguments
6582 `(#:jar-name "eclipse-jetty-http.jar"
6583 #:source-dir "src/test"
6584 #:tests? #f
6585 #:jdk ,icedtea-8
6586 #:phases
6587 (modify-phases %standard-phases
6588 (add-before 'configure 'chdir
6589 (lambda _
1c492480
BH
6590 (chdir "jetty-http")
6591 #t)))))
5d38f7e4
JL
6592 (inputs
6593 `(("slf4j" ,java-slf4j-api)
53ba191b 6594 ("java-javaee-servletapi" ,java-javaee-servletapi)
5d38f7e4
JL
6595 ("http" ,java-eclipse-jetty-http)
6596 ("io" ,java-eclipse-jetty-io)
6597 ("util" ,java-eclipse-jetty-util)))))
6598
e36e2bee
JL
6599(define java-eclipse-jetty-http-test-classes-9.2
6600 (package
6601 (inherit java-eclipse-jetty-http-test-classes)
6602 (version (package-version java-eclipse-jetty-util-9.2))
6603 (source (package-source java-eclipse-jetty-util-9.2))
6604 (inputs
6605 `(("http" ,java-eclipse-jetty-http-9.2)
6606 ,@(package-inputs java-eclipse-jetty-http-9.2)))))
6607
5d38f7e4
JL
6608(define-public java-eclipse-jetty-server
6609 (package
6610 (inherit java-eclipse-jetty-util)
6611 (name "java-eclipse-jetty-server")
6612 (arguments
6613 `(#:jar-name "eclipse-jetty-server.jar"
6614 #:source-dir "src/main/java"
6615 #:jdk ,icedtea-8
6616 #:tests? #f; requires a mockito version we don't have
6617 #:phases
6618 (modify-phases %standard-phases
6619 (add-before 'configure 'chdir
6620 (lambda _
6621 (chdir "jetty-server")
6622 #t))
6623 (add-before 'build 'fix-source
6624 (lambda _
6625 ;; Explicit casts to prevent build failures
6626 (substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
6627 (("append\\(LazyList")
6628 "append((CharSequence)LazyList"))
6629 (substitute*
6630 "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
6631 (((string-append
6632 "Class<\\? extends EventListener> clazz = _classLoader==null"
6633 "\\?Loader.loadClass\\(ContextHandler.class,className\\):"
6634 "_classLoader.loadClass\\(className\\);"))
6635 (string-append "Class<? extends EventListener> clazz = "
6636 "(Class<? extends EventListener>) "
6637 "(_classLoader==null?Loader.loadClass("
6638 "ContextHandler.class,className):"
6639 "_classLoader.loadClass(className));")))
6640 #t)))))
6641 (inputs
6642 `(("slf4j" ,java-slf4j-api)
4b472f6a 6643 ("servlet" ,java-javaee-servletapi)
5d38f7e4
JL
6644 ("http" ,java-eclipse-jetty-http)
6645 ("io" ,java-eclipse-jetty-io)
6646 ("jmx" ,java-eclipse-jetty-jmx)
6647 ("util" ,java-eclipse-jetty-util)))
6648 (native-inputs
6649 `(("test-classes" ,java-eclipse-jetty-http-test-classes)
6650 ,@(package-native-inputs java-eclipse-jetty-util)))
6651 (synopsis "Core jetty server artifact")
6652 (description "The Jetty Web Server provides an HTTP server and Servlet
6653container capable of serving static and dynamic content either from a standalone
6654or embedded instantiation. This package provides the core jetty server
6655artifact.")))
e36e2bee
JL
6656
6657(define-public java-eclipse-jetty-server-9.2
6658 (package
6659 (inherit java-eclipse-jetty-server)
6660 (version (package-version java-eclipse-jetty-util-9.2))
6661 (source (package-source java-eclipse-jetty-util-9.2))
6662 (inputs
6663 `(("util" ,java-eclipse-jetty-util-9.2)
6664 ("jmx" ,java-eclipse-jetty-jmx-9.2)
6665 ("io" ,java-eclipse-jetty-io-9.2)
6666 ("http" ,java-eclipse-jetty-http-9.2)
6667 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6668 (native-inputs
6669 `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
6670 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
8528e20d
JL
6671
6672(define-public java-eclipse-jetty-security
6673 (package
6674 (inherit java-eclipse-jetty-util)
6675 (name "java-eclipse-jetty-security")
6676 (arguments
6677 `(#:jar-name "eclipse-jetty-security.jar"
6678 #:source-dir "src/main/java"
6679 #:jdk ,icedtea-8
4c9aa15e 6680 #:test-exclude (list "**/ConstraintTest.*") ; This test fails
8528e20d
JL
6681 #:phases
6682 (modify-phases %standard-phases
6683 (add-before 'configure 'chdir
6684 (lambda _
6685 (chdir "jetty-security")
6686 #t)))))
6687 (inputs
6688 `(("slf4j" ,java-slf4j-api)
53ba191b 6689 ("servlet" ,java-javaee-servletapi)
8528e20d
JL
6690 ("http" ,java-eclipse-jetty-http)
6691 ("server" ,java-eclipse-jetty-server)
6692 ("util" ,java-eclipse-jetty-util)))
6693 (native-inputs
6694 `(("io" ,java-eclipse-jetty-io)
6695 ,@(package-native-inputs java-eclipse-jetty-util)))
6696 (synopsis "Jetty security infrastructure")
6697 (description "The Jetty Web Server provides an HTTP server and Servlet
6698container capable of serving static and dynamic content either from a standalone
6699or embedded instantiation. This package provides the core jetty security
6700infrastructure")))
fa2a23a1
JL
6701
6702(define-public java-eclipse-jetty-security-9.2
6703 (package
6704 (inherit java-eclipse-jetty-security)
6705 (version (package-version java-eclipse-jetty-util-9.2))
6706 (source (package-source java-eclipse-jetty-util-9.2))
6707 (inputs
6708 `(("util" ,java-eclipse-jetty-util-9.2)
6709 ("http" ,java-eclipse-jetty-http-9.2)
6710 ("server" ,java-eclipse-jetty-server-9.2)
6711 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6712 (native-inputs
6713 `(("io" ,java-eclipse-jetty-io-9.2)
6714 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
fb680f88
JL
6715
6716(define-public java-eclipse-jetty-servlet
6717 (package
6718 (inherit java-eclipse-jetty-util)
6719 (name "java-eclipse-jetty-servlet")
6720 (arguments
6721 `(#:jar-name "eclipse-jetty-servlet.jar"
6722 #:source-dir "src/main/java"
6723 #:jdk ,icedtea-8
6724 #:phases
6725 (modify-phases %standard-phases
6726 (add-before 'configure 'chdir
6727 (lambda _
6728 (chdir "jetty-servlet")
6729 #t)))))
6730 (inputs
6731 `(("slf4j" ,java-slf4j-api)
53ba191b 6732 ("java-javaee-servletapi" ,java-javaee-servletapi)
fb680f88
JL
6733 ("http" ,java-eclipse-jetty-http)
6734 ("http-test" ,java-eclipse-jetty-http-test-classes)
6735 ("io" ,java-eclipse-jetty-io)
6736 ("jmx" ,java-eclipse-jetty-jmx)
6737 ("security" ,java-eclipse-jetty-security)
6738 ("server" ,java-eclipse-jetty-server)
6739 ("util" ,java-eclipse-jetty-util)))
6740 (synopsis "Jetty Servlet Container")
6741 (description "The Jetty Web Server provides an HTTP server and Servlet
6742container capable of serving static and dynamic content either from a standalone
6743or embedded instantiation. This package provides the core jetty servlet
6744container.")))
213bb981
JL
6745
6746(define-public java-eclipse-jetty-servlet-9.2
6747 (package
6748 (inherit java-eclipse-jetty-servlet)
6749 (version (package-version java-eclipse-jetty-util-9.2))
6750 (source (package-source java-eclipse-jetty-util-9.2))
6751 (arguments
6752 `(#:jar-name "eclipse-jetty-servlet.jar"
6753 #:source-dir "src/main/java"
6754 #:jdk ,icedtea-8
6755 #:tests? #f; doesn't work
6756 #:phases
6757 (modify-phases %standard-phases
6758 (add-before 'configure 'chdir
6759 (lambda _
6760 (chdir "jetty-servlet")
6761 #t)))))
6762 (inputs
6763 `(("util" ,java-eclipse-jetty-util-9.2)
6764 ("jmx" ,java-eclipse-jetty-jmx-9.2)
6765 ("io" ,java-eclipse-jetty-io-9.2)
6766 ("http" ,java-eclipse-jetty-http-9.2)
6767 ("security" ,java-eclipse-jetty-security-9.2)
6768 ("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
6769 ("server" ,java-eclipse-jetty-server-9.2)
6770 ,@(package-inputs java-eclipse-jetty-util-9.2)))))
0a9bdd95 6771
f69a1d04
JL
6772(define-public java-eclipse-jetty-xml
6773 (package
6774 (inherit java-eclipse-jetty-util)
6775 (name "java-eclipse-jetty-xml")
6776 (arguments
6777 `(#:jar-name "eclipse-jetty-xml.jar"
6778 #:source-dir "src/main/java"
6779 #:jdk ,icedtea-8
6780 #:tests? #f; most tests require network
6781 #:phases
6782 (modify-phases %standard-phases
6783 (add-before 'configure 'chdir
6784 (lambda _
6785 (chdir "jetty-xml")
6786 #t)))))
6787 (inputs
6788 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
6789 (native-inputs
6790 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
6791 ,@(package-native-inputs java-eclipse-jetty-util)))))
6792
38b57575
JL
6793(define-public java-eclipse-jetty-xml-9.2
6794 (package
6795 (inherit java-eclipse-jetty-xml)
6796 (version (package-version java-eclipse-jetty-util-9.2))
6797 (source (package-source java-eclipse-jetty-util-9.2))
6798 (arguments
6799 `(#:jar-name "eclipse-jetty-xml.jar"
6800 #:source-dir "src/main/java"
6801 #:jdk ,icedtea-8
6802 #:tests? #f; most tests require network
6803 #:phases
6804 (modify-phases %standard-phases
6805 (add-before 'configure 'chdir
6806 (lambda _
6807 (chdir "jetty-xml")
6808 #t)))))
6809 (inputs
6810 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6811 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6812 (native-inputs
6813 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6814 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6815
d7365118
JL
6816(define-public java-eclipse-jetty-webapp
6817 (package
6818 (inherit java-eclipse-jetty-util)
6819 (name "java-eclipse-jetty-webapp")
6820 (arguments
6821 `(#:jar-name "eclipse-jetty-webapp.jar"
6822 #:source-dir "src/main/java"
6823 #:jdk ,icedtea-8
6824 ;; One test fails
6825 #:test-exclude (list "**/WebAppContextTest.java")
6826 #:phases
6827 (modify-phases %standard-phases
6828 (add-before 'configure 'chdir
6829 (lambda _
6830 (chdir "jetty-webapp")
6831 #t)))))
6832 (inputs
6833 `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
6834 ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
6835 ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
6836 ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
6837 ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
6838 ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
4b472f6a 6839 ("java-javaee-servletapi" ,java-javaee-servletapi)))
d7365118
JL
6840 (native-inputs
6841 `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
6842 ,@(package-native-inputs java-eclipse-jetty-util)))))
6843
087583a7
JL
6844(define-public java-eclipse-jetty-webapp-9.2
6845 (package
6846 (inherit java-eclipse-jetty-webapp)
6847 (version (package-version java-eclipse-jetty-util-9.2))
6848 (source (package-source java-eclipse-jetty-util-9.2))
6849 (arguments
6850 `(#:jar-name "eclipse-jetty-webapp.jar"
6851 #:source-dir "src/main/java"
6852 #:jdk ,icedtea-8
6853 #:test-exclude (list "**/WebAppContextTest.java")
6854 #:phases
6855 (modify-phases %standard-phases
6856 (add-before 'configure 'chdir
6857 (lambda _
6858 (chdir "jetty-webapp")
6859 #t)))))
6860 (inputs
6861 `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
6862 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
6863 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
6864 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
6865 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
6866 ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
53ba191b 6867 ("java-javaee-servletapi" ,java-javaee-servletapi)
087583a7
JL
6868 ,@(package-inputs java-eclipse-jetty-util-9.2)))
6869 (native-inputs
6870 `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
6871 ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
6872
c2b3857e
JL
6873(define-public java-jsoup
6874 (package
6875 (name "java-jsoup")
6876 (version "1.10.3")
6877 (source (origin
7414698e
EF
6878 (method git-fetch)
6879 (uri (git-reference
6880 (url "https://github.com/jhy/jsoup")
6881 (commit (string-append "jsoup-" version))))
6882 (file-name (git-file-name name version))
c2b3857e
JL
6883 (sha256
6884 (base32
7414698e 6885 "1hdpdx0x140r5x3yc251v7dj1h4j5a7nh9k885aw9q5vvz49lkf4"))))
c2b3857e
JL
6886 (build-system ant-build-system)
6887 (arguments
6888 `(#:jar-name "jsoup.jar"
6889 #:source-dir "src/main/java"
6890 #:phases
6891 (modify-phases %standard-phases
6892 (add-before 'build 'copy-resources
6893 (lambda _
6894 (let ((classes-dir (string-append (getcwd) "/build/classes")))
6895 (with-directory-excursion "src/main/java"
6896 (for-each (lambda (file)
6897 (let ((dist (string-append classes-dir "/" file)))
6898 (mkdir-p (dirname dist))
6899 (copy-file file dist)))
6900 (find-files "." ".*.properties"))))
6901 #t)))))
6902 (native-inputs
6903 `(("java-junit" ,java-junit)
6904 ("java-hamcrest-core" ,java-hamcrest-core)
6905 ("java-gson" ,java-gson)))
6906 (home-page "https://jsoup.org")
6907 (synopsis "HTML parser")
6908 (description "Jsoup is a Java library for working with real-world HTML. It
6909provides a very convenient API for extracting and manipulating data, using the
6910best of DOM, CSS, and jQuery-like methods.")
c2dd07ab 6911 (license license:expat)))
c2b3857e 6912
cfdbf2a5
JL
6913(define-public java-signpost-core
6914 (package
6915 (name "java-signpost-core")
6916 (version "1.2.1.2")
6917 (source (origin
6918 (method git-fetch)
6919 (uri (git-reference
6920 (url "https://github.com/mttkay/signpost")
6921 (commit version)))
6922 (file-name (git-file-name name version))
6923 (sha256
6924 (base32
6925 "1l04yj2znch3hpyw90c4g4jan453w7d88l84bgl0c72i2kbb8z7h"))))
6926 (build-system ant-build-system)
6927 (arguments
6928 `(#:jar-name "signpost-core.jar"
6929 #:source-dir "signpost-core/src/main/java"
6930 #:test-dir "signpost-core/src/test"
6931 ;; Tests all fail with InstantiationException from mockito
6932 #:tests? #f))
6933 (propagated-inputs
6934 `(("java-commons-codec" ,java-commons-codec)))
6935 (home-page "https://github.com/mttkay/signpost")
6936 (synopsis "Lightweight client-side OAuth library for Java")
6937 (description "Signpost is the easy and intuitive solution for signing
6938HTTP messages on the Java platform in conformance with the OAuth Core 1.0a
6939standard. Signpost follows a modular and flexible design, allowing you to
6940combine it with different HTTP messaging layers.")
6941 (license license:asl2.0)))
6942
0a9bdd95
P
6943(define-public tidyp
6944 (package
6945 (name "tidyp")
6946 (version "1.04")
6947 (source
6948 (origin
6949 (method url-fetch)
6950 (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
6951 version ".tar.gz"))
6952 (sha256
6953 (base32
6954 "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
6955 (build-system gnu-build-system)
6956 ;; ./test-thing.sh tries to run ./testall.sh, which is not included.
6957 (arguments `(#:tests? #f))
6958 (home-page "http://www.tidyp.com/")
6959 (synopsis "Validate HTML")
6960 (description "Tidyp is a program that can validate your HTML, as well as
6961modify it to be more clean and standard. tidyp does not validate HTML 5.
6962
6963libtidyp is the library on which the program is based. It can be used by any
6964other program that can interface to it. The Perl module @code{HTML::Tidy} is
6965based on this library, allowing Perl programmers to easily validate HTML.")
6966 ;; See htmldoc/license.html
c2dd07ab 6967 (license license:bsd-3)))
7a04dddd
P
6968
6969(define-public perl-html-tidy
6970 (package
6971 (name "perl-html-tidy")
6972 (version "1.60")
6973 (source
6974 (origin
6975 (method url-fetch)
6976 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
6977 version ".tar.gz"))
6978 (sha256
6979 (base32
6980 "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
6981 (build-system perl-build-system)
6982 (arguments
6983 '(#:phases
6984 (modify-phases %standard-phases
6985 (add-after 'unpack 'fix-tidyp-paths
6986 (lambda* (#:key inputs #:allow-other-keys)
6987 (substitute* "Makefile.PL"
6988 (("^my \\$inc = \"" line)
6989 (string-append line
6990 "-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
6991 (("-L/usr/lib")
6992 (string-append
6993 "-L" (assoc-ref inputs "tidyp") "/lib")))
6994 #t)))))
6995 (inputs
6996 `(("perl-libwww" ,perl-libwww)
6997 ("tidyp" ,tidyp)))
6998 (native-inputs
6999 `(("perl-test-exception" ,perl-test-exception)))
9aba9b12 7000 (home-page "https://metacpan.org/release/HTML-Tidy")
7a04dddd
P
7001 (synopsis "(X)HTML validation in a Perl object")
7002 (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
7003object. It's meant as a replacement for @code{HTML::Lint}, which is written
7004in Perl but is not nearly as capable as @code{HTML::Tidy}.")
c2dd07ab 7005 (license license:artistic2.0)))
6101cad4 7006
7007(define-public geomyidae
7008 (package
7009 (name "geomyidae")
c10c9b67 7010 (version "0.34")
6101cad4 7011 (source
7012 (origin
429947ef
TGR
7013 (method git-fetch)
7014 (uri (git-reference
7015 (url "git://r-36.net/geomyidae")
7016 (commit (string-append "v" version))))
7017 (file-name (git-file-name name version))
6101cad4 7018 (sha256
c10c9b67 7019 (base32 "02afgrk36wkdkflyqr2xgh49v9zq6ma454jshk7igvhpxfb5l3ks"))))
6101cad4 7020 (build-system gnu-build-system)
7021 (arguments
7022 `(#:make-flags (list "CC=gcc"
7023 (string-append "PREFIX="
7024 (assoc-ref %outputs "out")))
429947ef 7025 #:tests? #f ; no tests
6101cad4 7026 #:phases (modify-phases %standard-phases
7027 (delete 'configure))))
e0d6d1d5 7028 (home-page "http://r-36.net/scm/geomyidae/file/README.html")
6101cad4 7029 (synopsis "Small Gopher server")
7030 (description
7031 "Geomyidae is a server for distributed hypertext protocol Gopher. Its
7032features include:
7033
7034@enumerate
7035@item Gopher menus (see @file{index.gph} for an example);
7036@item directory listings (if no @file{index.gph} was found);
7037@item CGI support (@file{.cgi} files are executed);
7038@item search support in CGI files;
7039@item logging with multiple log levels.
7040@end enumerate\n")
c2dd07ab 7041 (license license:expat)))
3bedac50
JL
7042
7043(define-public cat-avatar-generator
7044 (package
7045 (name "cat-avatar-generator")
7046 (version "1")
7047 (source (origin
7048 (method git-fetch)
7049 (uri (git-reference
7050 (url "https://framagit.org/Deevad/cat-avatar-generator.git")
7051 (commit "71c0c662742cafe8afd2d2d50ec84243113e35ad")))
7052 (file-name (string-append name "-" version))
7053 (sha256
7054 (base32
7055 "0s7b5whqsmfa57prbgl66ym551kg6ly0z14h5dgrlx4lqm70y2yw"))))
7056 (build-system trivial-build-system)
7057 (arguments
895363e4 7058 `(#:modules ((guix build utils))
3bedac50
JL
7059 #:builder
7060 (begin
7061 (use-modules (guix build utils)
7062 (srfi srfi-1)
7063 (srfi srfi-26))
895363e4 7064
3bedac50
JL
7065 (let ((source (assoc-ref %build-inputs "source"))
7066 (php-dir (string-append %output "/share/web/" ,name "/")))
7067 ;; The cache directory must not be in the store, but in a writable
7068 ;; location. The webserver will give us this location.
7069 (copy-recursively source php-dir)
7070 (substitute* (string-append php-dir "/cat-avatar-generator.php")
7071 (("\\$cachepath = .*")
7072 "if(isset($_SERVER['CACHE_DIR']))
7073$cachepath = $_SERVER['CACHE_DIR'];
7074else
e3cfef22
MW
7075die('You need to set the CACHE_DIR variable first.');"))
7076 #t))))
3bedac50
JL
7077 (home-page "https://framagit.org/Deevad/cat-avatar-generator")
7078 (synopsis "Random avatar generator")
7079 (description "Cat avatar generator is a generator of cat pictures optimised
7080to generate random avatars, or defined avatar from a \"seed\". This is a
7081derivation by David Revoy from the original MonsterID by Andreas Gohr.")
7082 ;; expat for the code, CC-BY 4.0 for the artwork
c2dd07ab
BT
7083 (license (list license:expat
7084 license:cc-by4.0))))
0ae079ec
TGR
7085
7086(define-public nghttp2
7087 (package
7088 (name "nghttp2")
f09ef814 7089 (version "1.40.0")
0ae079ec
TGR
7090 (source
7091 (origin
7092 (method url-fetch)
7093 (uri (string-append "https://github.com/nghttp2/nghttp2/"
7094 "releases/download/v" version "/"
97e53dcc 7095 "nghttp2-" version ".tar.xz"))
0ae079ec
TGR
7096 (sha256
7097 (base32
f09ef814 7098 "0wwhwv7cvi1vxpdjwvg0kpa4jzhszclpnwrwfcw728zz53a47z09"))))
0ae079ec
TGR
7099 (build-system gnu-build-system)
7100 (outputs (list "out"
7101 "lib")) ; only libnghttp2
7102 (native-inputs
7103 `(("pkg-config" ,pkg-config)
7104
7105 ;; Required by tests.
7106 ("cunit" ,cunit)
875fe4b6 7107 ("tzdata" ,tzdata-for-tests)))
0ae079ec
TGR
7108 (inputs
7109 ;; Required to build the tools (i.e. without ‘--enable-lib-only’).
7110 `(("c-ares" ,c-ares)
7111 ("jansson" ,jansson) ; for HPACK tools
11111003
JN
7112 ,@(if (hurd-target?) '()
7113 `(("jemalloc" ,jemalloc))) ; fight nghttpd{,x} heap fragmentation
0ae079ec
TGR
7114 ("libev" ,libev)
7115 ("libxml2" ,libxml2) ; for ‘nghttp -a’
7116 ("openssl" ,openssl)))
7117 (arguments
7118 `(#:configure-flags
7119 (list (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
7120 "--enable-app" ; build all the tools
7121 "--enable-hpack-tools" ; ...all the tools
7122 "--disable-examples"
7123 "--disable-static") ; don't bother building .a files
7124 #:phases
7125 (modify-phases %standard-phases
7126 (add-after 'unpack 'break-circular-reference
7127 ;; libnghttp2.pc by default retains a reference to the ‘out’ output,
7128 ;; which is not allowed. Break this cycle. While we could install
7129 ;; only the library to ‘out’ and move everything else to a separate
7130 ;; output, this would inconvenience the majority of (human) users.
7131 (lambda* (#:key outputs #:allow-other-keys)
7132 (substitute* "lib/libnghttp2.pc.in"
7133 (("@prefix@")
7134 (assoc-ref outputs "lib")))
7135 #t))
7136 (add-before 'check 'set-timezone-directory
8e8855f9
PML
7137 (lambda* (#:key inputs native-inputs #:allow-other-keys)
7138 (setenv "TZDIR" (string-append
7139 (assoc-ref (or native-inputs inputs) "tzdata")
7140 "/share/zoneinfo"))
0ae079ec
TGR
7141 #t)))))
7142 (home-page "https://nghttp2.org/")
7143 (synopsis "HTTP/2 protocol client, proxy, server, and library")
7144 (description
7145 "nghttp2 implements the Hypertext Transfer Protocol, version
71462 (@dfn{HTTP/2}).
7147
7148A reusable C library provides the HTTP/2 framing layer, with several tools built
7149on top of it:
7150
7151@itemize
7152@item @command{nghttp}, a command-line HTTP/2 client. It exposes many advanced
7153and low-level aspects of the protocol and is useful for debugging.
7154@item @command{nghttpd}, a fast, multi-threaded HTTP/2 static web server that
7155serves files from a local directory.
7156@item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be
7157deployed in front of existing web servers that don't support HTTP/2.
7158Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for
4ba51e22 7159backwards compatibility with clients that don't speak HTTP/2.
0ae079ec
TGR
7160@item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.
7161@item HTTP/2 uses a header compression method called @dfn{HPACK}.
7162nghttp2 provides a HPACK encoder and decoder as part of its public API.
7163@item @command{deflatehd} converts JSON data or HTTP/1-style header fields to
7164compressed JSON header blocks.
7165@item @command{inflatehd} converts such compressed headers back to JSON pairs.
7166@end itemize\n")
c2dd07ab 7167 (license license:expat)))
d6a4dfec
PAR
7168
7169(define-public hpcguix-web
0ae85052
RJ
7170 (let ((commit "9de63562b06b4aef3a3afe5ecb18d3c91e57ee74")
7171 (revision "5"))
d6a4dfec
PAR
7172 (package
7173 (name "hpcguix-web")
b3ca2d88 7174 (version (git-version "0.0.1" revision commit))
d6a4dfec
PAR
7175 (source (origin
7176 (method git-fetch)
7177 (uri (git-reference
7178 (url "https://github.com/UMCUGenetics/hpcguix-web.git")
7179 (commit commit)))
7180 (file-name (git-file-name name version))
7181 (sha256
7182 (base32
0ae85052 7183 "0wjgj2s7v2cyz6dx24c111rxs99i84sfvxl4ch8brnh02j2606jz"))))
d6a4dfec
PAR
7184 (build-system gnu-build-system)
7185 (arguments
7186 `(#:modules ((guix build gnu-build-system)
7187 (guix build utils)
7188 (srfi srfi-26)
7189 (ice-9 popen)
7190 (ice-9 rdelim))
d6a4dfec
PAR
7191 #:phases
7192 (modify-phases %standard-phases
2fef54fd 7193 (add-before 'configure 'set-variables
d6a4dfec 7194 (lambda _
2fef54fd 7195 ;; This prevents a few warnings
d6a4dfec
PAR
7196 (setenv "GUILE_AUTO_COMPILE" "0")
7197 (setenv "XDG_CACHE_HOME" (getcwd))
2fef54fd 7198 #t))
d6a4dfec
PAR
7199 (add-after 'install 'wrap-program
7200 (lambda* (#:key inputs outputs #:allow-other-keys)
7201 (let* ((out (assoc-ref outputs "out"))
7202 (guix (assoc-ref inputs "guix"))
7203 (guile (assoc-ref inputs "guile"))
b3ca2d88
LC
7204 (gcrypt (assoc-ref inputs "guile-gcrypt"))
7205 (git (assoc-ref inputs "guile-git"))
7206 (bs (assoc-ref inputs "guile-bytestructures"))
d6a4dfec
PAR
7207 (json (assoc-ref inputs "guile-json"))
7208 (guile-cm (assoc-ref inputs
7209 "guile-commonmark"))
b3ca2d88 7210 (deps (list guile gcrypt git bs guile-cm guix json))
d6a4dfec
PAR
7211 (effective
7212 (read-line
7213 (open-pipe* OPEN_READ
7214 (string-append guile "/bin/guile")
7215 "-c" "(display (effective-version))")))
7216 (path (string-join
7217 (map (cut string-append <>
7218 "/share/guile/site/"
7219 effective)
7220 deps)
7221 ":"))
7222 (gopath (string-join
7223 (map (cut string-append <>
7224 "/lib/guile/" effective
7225 "/site-ccache")
7226 deps)
7227 ":")))
7228 (wrap-program (string-append out "/bin/run")
7229 `("GUILE_LOAD_PATH" ":" prefix (,path))
7230 `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
7231
7232 #t))))))
7233 (native-inputs
7234 `(("autoconf" ,autoconf)
7235 ("automake" ,automake)
7236 ("uglify-js" ,uglify-js)
7237 ("pkg-config" ,pkg-config)))
7238 (inputs
7239 `(("guix" ,guix)))
7240 (propagated-inputs
b6bee63b 7241 `(("guile" ,guile-3.0)
d6a4dfec 7242 ("guile-commonmark" ,guile-commonmark)
4b035659 7243 ("guile-json" ,guile-json-3)))
d98fb560 7244 (home-page "https://github.com/UMCUGenetics/hpcguix-web")
d6a4dfec
PAR
7245 (synopsis "Web interface for cluster deployments of Guix")
7246 (description "Hpcguix-web provides a web interface to the list of packages
7247provided by Guix. The list of packages is searchable and provides
7248instructions on how to use Guix in a shared HPC environment.")
c2dd07ab 7249 (license license:agpl3+))))
ed132a57
NG
7250
7251(define-public httrack
7252 (package
7253 (name "httrack")
7254 (version "3.49.2")
7255 (source (origin
7256 (method url-fetch)
7257 (uri (string-append "https://mirror.httrack.com/historical/"
7258 "httrack-" version ".tar.gz"))
7259 (sha256
7260 (base32
7261 "09a0gm67nml86qby1k1gh7rdxamnrnzwr6l9r5iiq94favjs0xrl"))))
7262 (build-system gnu-build-system)
7263 (inputs
7264 `(("libressl" ,libressl)
7265 ("zlib" ,zlib)))
7266 (home-page "https://www.httrack.com/")
7267 (synopsis "Easy-to-use offline browser utility")
7268 (description "HTTrack allows you to download a World Wide Web site from
7269the Internet to a local directory, building recursively all directories,
7270getting HTML, images, and other files from the server to your computer.
7271
7272HTTrack arranges the original site's relative link-structure. Simply open
8fc83d98 7273a page of the @emph{mirrored} website in your browser, and you can browse the
ed132a57
NG
7274site from link to link, as if you were viewing it online. HTTrack can also
7275update an existing mirrored site, and resume interrupted downloads.
7276
7277HTTrack is fully configurable, and has an integrated help system.")
c2dd07ab 7278 (license license:gpl3+)))
582de58c
HG
7279
7280(define-public anonip
7281 (package
7282 (name "anonip")
7283 (version "1.0.0")
7284 (source (origin
7285 (method url-fetch)
7286 (uri (pypi-uri "anonip" version))
7287 (sha256
7288 (base32
7289 "0ckn9nnfhpdnz8b92q8pkysdqj6pdh71ckfqvfj0z01cq0hzbhd2"))))
7290 (build-system python-build-system)
7291 (home-page "https://github.com/DigitaleGesellschaft/Anonip")
7292 (synopsis "Anonymize IP addresses in log files")
7293 (description
7294 "Anonip masks the last bits of IPv4 and IPv6 addresses in log files.
7295That way most of the relevant information is preserved, while the IP address
7296does not match a particular individuum anymore.
7297
7298Depending on your Web server, the log entries may be piped to Anonip directly
7299or via a FIFO (named pipe). Thus the unmasked IP addresses will never be
7300written to any file.
7301
7302It's also possible to rewrite existing log files.
7303
7304Anonip can also be uses as a Python module in your own Python application.")
7305 (license license:bsd-3)))
0f3624f8
AI
7306
7307(define-public poussetaches
7308 (package
7309 (name "poussetaches")
9d280ef2 7310 (version "0.0.2")
0f3624f8
AI
7311 (source
7312 (origin
7313 (method git-fetch)
7314 (uri (git-reference
7315 (url "https://github.com/tsileo/poussetaches")
7316 (commit version)))
7317 (file-name (git-file-name name version))
7318 (sha256
7319 (base32
9d280ef2 7320 "0kckcwvqklavd855np9aq5js6mg84isrlwchr504yigwma0sm7hm"))))
0f3624f8
AI
7321 (build-system go-build-system)
7322 (propagated-inputs
7323 `(("go-github-com-robfig-cron" ,go-github-com-robfig-cron)
561d391b 7324 ("go-golang-org-x-time" ,go-golang-org-x-time)))
0f3624f8
AI
7325 (arguments
7326 `(#:import-path "github.com/tsileo/poussetaches"))
7327 (home-page "https://github.com/tsileo/poussetaches")
7328 (synopsis "Lightweight asynchronous task execution service")
7329 (description "Poussetaches (which literally means \"push tasks\" in
7330French) is a lightweight asynchronous task execution service that aims to
7331replace Celery and RabbitMQ for small Python applications.
7332
7333The app posts base64-encoded payload to poussetaches and specifies the
7334endpoint that will be used to trigger the task. Poussetaches makes HTTP
7335requests with the registered payload until the right status code is
7336returned.")
7337 (license license:isc)))
d900e1f6
AG
7338
7339(define-public htmlcxx
7340 (package
7341 (name "htmlcxx")
7342 (version "0.87")
7343 (source
7344 (origin
7345 (method url-fetch)
7346 (uri
7347 (string-append "mirror://sourceforge/htmlcxx/v"
7348 version "/htmlcxx-" version ".tar.gz"))
7349 (sha256
7350 (base32 "1j3mzjlczjrk4ahc43s6kzpvzypzjmqz4sillnca5yadrwwgjf2x"))))
7351 (build-system gnu-build-system)
7352 (home-page "http://htmlcxx.sourceforge.net/")
7353 (synopsis "Simple non-validating CSS1 and HTML parser for C++")
7354 (description "htmlcxx is a simple non-validating CSS1 and HTML parser for
7355C++. Although there are several other HTML parsers available, htmlcxx has some
7356characteristics that make it unique:
7357@itemize
7358@item STL like navigation of DOM tree, using excelent's tree.hh library from
7359Kasper Peeters
7360@item It is possible to reproduce exactly, character by character, the original
7361document from the parse tree
7362@item Bundled CSS parser
7363@item Optional parsing of attributes
7364@item C++ code that looks like C++ (not so true anymore)
7365@item Offsets of tags/elements in the original document are stored in the nodes
7366of the DOM tree
7367@end itemize")
7368 (license (list license:lgpl2.0
7369 license:gpl2
7370 license:asl2.0))))
a74e2318
PN
7371
7372(define-public librocket
7373 (package
7374 (name "librocket")
7375 (version "1.3.0.0")
7376 (source
7377 (origin
7378 (method git-fetch)
7379 (uri
7380 (git-reference
7381 (url "https://github.com/libRocket/libRocket")
7382 (commit (string-append "release-" version))))
7383 (file-name (git-file-name name version))
7384 (sha256
7385 (base32 "1n6gq007vqijyfasfnfg6c8d2rc9qarl4bhzbgkz062m4h5izlfs"))))
7386 (build-system cmake-build-system)
7387 (arguments
7388 `(#:tests? #f ; No tests.
7389 #:phases
7390 (modify-phases %standard-phases
7391 (add-after 'unpack 'chdir
7392 (lambda _
7393 (chdir "Build"))))))
7394 (inputs
7395 `(("freetype" ,freetype)))
7396 (home-page "https://github.com/libRocket/libRocket") ; http://librocket.com/ is down.
7397 (synopsis "HTML/CSS user interface library")
7398 (description "libRocket is a C++ user interface package based on the HTML
7399and CSS standards. libRocket uses the open standards XHTML1.0 and
7400CSS2.0 (while borrowing features from HTML5 and CSS3), and extends them with
7401features suited towards real-time applications. It is designed as a complete
7402solution for any project's interface needs:
7403
7404@itemize
7405@item Dynamic layout system.
7406@item Efficient application-wide styling, with a custom-built templating engine.
7407@item Fully featured control set: buttons, sliders, drop-downs, etc.
7408@item Runtime visual debugging suite.
7409@item Easily integrated and extensible with Python or Lua scripting.
7410@end itemize\n")
7411 (license license:expat)))