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