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