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