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