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