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