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