Commit | Line | Data |
---|---|---|
29a2ccd3 | 1 | ;;; GNU Guix --- Functional package management for GNU |
c9ea41ff | 2 | ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> |
29a2ccd3 | 3 | ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de> |
3246cc91 | 4 | ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> |
c9d512fa | 5 | ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> |
29a2ccd3 AP |
6 | ;;; |
7 | ;;; This file is part of GNU Guix. | |
8 | ;;; | |
9 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
10 | ;;; under the terms of the GNU General Public License as published by | |
11 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
12 | ;;; your option) any later version. | |
13 | ;;; | |
14 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
15 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | ;;; GNU General Public License for more details. | |
18 | ;;; | |
19 | ;;; You should have received a copy of the GNU General Public License | |
20 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
21 | ||
22 | (define-module (gnu packages web) | |
c9d512fa | 23 | #:use-module (ice-9 match) |
b5b73a82 | 24 | #:use-module ((guix licenses) #:prefix l:) |
29a2ccd3 AP |
25 | #:use-module (guix packages) |
26 | #:use-module (guix download) | |
833efa0d | 27 | #:use-module (guix git-download) |
29a2ccd3 | 28 | #:use-module (guix build-system gnu) |
c2337213 LC |
29 | #:use-module (guix build-system perl) |
30 | #:use-module (guix build-system cmake) | |
29a2ccd3 | 31 | #:use-module (gnu packages apr) |
b777d784 JD |
32 | #:use-module (gnu packages asciidoc) |
33 | #:use-module (gnu packages docbook) | |
833efa0d LC |
34 | #:use-module (gnu packages autotools) |
35 | #:use-module ((gnu packages compression) #:select (zlib)) | |
29a2ccd3 | 36 | #:use-module (gnu packages openssl) |
488e8863 EB |
37 | #:use-module (gnu packages gettext) |
38 | #:use-module (gnu packages icu4c) | |
39 | #:use-module (gnu packages which) | |
c9ea41ff | 40 | #:use-module (gnu packages pcre) |
b777d784 | 41 | #:use-module (gnu packages xml) |
d22d72fc | 42 | #:use-module (gnu packages curl) |
c9ea41ff | 43 | #:use-module (gnu packages perl)) |
29a2ccd3 AP |
44 | |
45 | (define-public httpd | |
46 | (package | |
47 | (name "httpd") | |
48 | (version "2.4.6") | |
49 | (source (origin | |
50 | (method url-fetch) | |
51 | (uri (string-append "mirror://apache/httpd/httpd-" | |
52 | version ".tar.bz2")) | |
53 | (sha256 | |
54 | (base32 | |
55 | "1sig08xxq1kqxr2a42ndwr9g4mm6zdqnxldhxraym2y0xcjkd7yw")))) | |
56 | (build-system gnu-build-system) | |
57 | (inputs `(("apr" ,apr) | |
58 | ("apr-util" ,apr-util) | |
59 | ("openssl" ,openssl) | |
60 | ("pcre" ,pcre))) | |
61 | (arguments | |
62 | `(#:test-target "test" | |
63 | #:configure-flags (list "--enable-rewrite" | |
64 | "--enable-userdir" | |
65 | "--enable-vhost-alias" | |
66 | "--enable-ssl" | |
67 | "--enable-mime-magic" | |
68 | (string-append "--sysconfdir=" | |
69 | (assoc-ref %outputs "out") | |
70 | "/etc/httpd")))) | |
71 | (synopsis "Featureful HTTP server") | |
72 | (description | |
73 | "The Apache HTTP Server Project is a collaborative software development | |
74 | effort aimed at creating a robust, commercial-grade, featureful, and | |
35b9e423 EB |
75 | freely-available source code implementation of an HTTP (Web) server. The |
76 | project is jointly managed by a group of volunteers located around the world, | |
77 | using the Internet and the Web to communicate, plan, and develop the server | |
78 | and its related documentation.") | |
29a2ccd3 AP |
79 | (license l:asl2.0) |
80 | (home-page "https://httpd.apache.org/"))) | |
c9ea41ff | 81 | |
c9d512fa MW |
82 | (define-public nginx |
83 | (package | |
84 | (name "nginx") | |
85 | (version "1.6.2") | |
86 | (source (origin | |
87 | (method url-fetch) | |
88 | (uri (string-append "http://nginx.org/download/nginx-" | |
89 | version ".tar.gz")) | |
90 | (sha256 | |
91 | (base32 | |
92 | "060s77qxhkn02fjkcndsr0xppj2bppjzkj0gn84svrykb4lqqq5m")))) | |
93 | (build-system gnu-build-system) | |
94 | (inputs `(("pcre" ,pcre) | |
95 | ("openssl" ,openssl) | |
96 | ("zlib" ,zlib))) | |
97 | (arguments | |
98 | `(#:tests? #f ; no test target | |
99 | #:phases | |
100 | (alist-cons-before | |
101 | 'configure 'patch-/bin/sh | |
102 | (lambda _ | |
103 | (substitute* "auto/feature" | |
104 | (("/bin/sh") (which "bash")))) | |
105 | (alist-replace | |
106 | 'configure | |
107 | (lambda* (#:key outputs #:allow-other-keys) | |
108 | (let ((flags | |
109 | (list (string-append "--prefix=" (assoc-ref outputs "out")) | |
110 | "--with-http_ssl_module" | |
111 | "--with-pcre-jit" | |
112 | "--with-ipv6" | |
113 | "--with-debug" | |
114 | ;; Even when not cross-building, we pass the | |
115 | ;; --crossbuild option to avoid customizing for the | |
116 | ;; kernel version on the build machine. | |
117 | ,(let ((system "Linux") ; uname -s | |
118 | (release "2.6.32") ; uname -r | |
119 | ;; uname -m | |
120 | (machine (match (or (%current-target-system) | |
121 | (%current-system)) | |
122 | ("x86_64-linux" "x86_64") | |
123 | ("i686-linux" "i686") | |
124 | ("mips64el-linux" "mips64")))) | |
125 | (string-append "--crossbuild=" | |
126 | system ":" release ":" machine))))) | |
127 | (setenv "CC" "gcc") | |
128 | (format #t "environment variable `CC' set to `gcc'~%") | |
129 | (format #t "configure flags: ~s~%" flags) | |
130 | (zero? (apply system* "./configure" flags)))) | |
131 | %standard-phases)))) | |
132 | (home-page "http://nginx.org") | |
133 | (synopsis "HTTP and reverse proxy server") | |
134 | (description | |
135 | "Nginx (\"engine X\") is a high-performance web and reverse proxy server | |
136 | created by Igor Sysoev. It can be used both as a standalone web server | |
137 | and as a proxy to reduce the load on back-end HTTP or mail servers.") | |
138 | ;; Almost all of nginx is distributed under the bsd-2 license. | |
139 | ;; The exceptions are: | |
140 | ;; * The 'nginx-http-push' module is covered by the expat license. | |
141 | ;; * The 'nginx-development-kit' module is mostly covered by bsd-3, | |
142 | ;; except for two source files which are bsd-4 licensed. | |
143 | (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4)))) | |
144 | ||
f6ad09ae LC |
145 | (define-public json-c |
146 | (package | |
147 | (name "json-c") | |
148 | (version "0.12") | |
149 | (source (origin | |
150 | (method url-fetch) | |
151 | (uri (string-append "https://s3.amazonaws.com/json-c_releases/releases/json-c-" | |
152 | version ".tar.gz")) | |
153 | (sha256 | |
154 | (base32 | |
155 | "0gwzic3ifg2d0w32ya3agpxh8i083cgvf7kmc51cnbgqnfr02300")) | |
156 | (modules '((guix build utils))) | |
157 | (snippet | |
158 | '(begin | |
159 | ;; Somehow 'config.h.in' is older than | |
160 | ;; 'aclocal.m4', which would trigger a rule to | |
161 | ;; run 'autoheader'. | |
162 | (set-file-time "config.h.in" | |
163 | (stat "aclocal.m4")) | |
164 | ||
165 | ;; Don't try to build with -Werror. | |
166 | (substitute* (find-files "." "Makefile\\.in") | |
167 | (("-Werror") "")))))) | |
168 | (build-system gnu-build-system) | |
169 | (arguments '(#:parallel-build? #f | |
170 | #:parallel-tests? #f)) | |
171 | (home-page "https://github.com/json-c/json-c/wiki") | |
172 | (synopsis "JSON implementation in C") | |
173 | (description | |
174 | "JSON-C implements a reference counting object model that allows you to | |
175 | easily construct JSON objects in C, output them as JSON formatted strings and | |
176 | parse JSON formatted strings back into the C representation of JSON objects.") | |
177 | (license l:x11))) | |
178 | ||
833efa0d LC |
179 | (define-public libwebsockets |
180 | (package | |
181 | (name "libwebsockets") | |
c2337213 | 182 | (version "1.3") |
833efa0d LC |
183 | (source (origin |
184 | ;; The project does not publish tarballs, so we have to take | |
185 | ;; things from Git. | |
186 | (method git-fetch) | |
187 | (uri (git-reference | |
188 | (url "git://git.libwebsockets.org/libwebsockets") | |
189 | (commit (string-append "v" version | |
c2337213 | 190 | "-chrome37-firefox30")))) |
833efa0d LC |
191 | (sha256 |
192 | (base32 | |
c2337213 | 193 | "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4")) |
833efa0d LC |
194 | (file-name (string-append name "-" version)))) |
195 | ||
c2337213 | 196 | (build-system cmake-build-system) |
833efa0d | 197 | (arguments |
c2337213 LC |
198 | ;; XXX: The thing lacks a 'make test' target, because CMakeLists.txt |
199 | ;; doesn't use 'add_test', and it's unclear how to run the test suite. | |
200 | '(#:tests? #f)) | |
833efa0d | 201 | |
c2337213 | 202 | (native-inputs `(("perl" ,perl))) ; to build the HTML doc |
833efa0d LC |
203 | (inputs `(("zlib" ,zlib) |
204 | ("openssl" ,openssl))) | |
205 | (synopsis "WebSockets library written in C") | |
206 | (description | |
35b9e423 | 207 | "Libwebsockets is a library that allows C programs to establish client |
833efa0d LC |
208 | and server WebSockets connections---a protocol layered above HTTP that allows |
209 | for efficient socket-like bidirectional reliable communication channels.") | |
210 | (home-page "http://libwebsockets.org/") | |
211 | ||
212 | ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'. | |
213 | (license l:lgpl2.1))) | |
214 | ||
488e8863 EB |
215 | (define-public libpsl |
216 | (package | |
217 | (name "libpsl") | |
218 | (version "0.6.0") | |
219 | (source (origin | |
220 | (method url-fetch) | |
221 | (uri (string-append "https://github.com/rockdaboot/libpsl/" | |
222 | "archive/" version ".tar.gz")) | |
223 | (sha256 | |
224 | (base32 | |
5220e620 MW |
225 | "10s7xxxx6pp4ydp3san69sa6q379ih3pv92fyi565ggmlw8igv7a")) |
226 | (file-name (string-append name "-" version ".tar.gz")))) | |
488e8863 EB |
227 | (build-system gnu-build-system) |
228 | (inputs `(("icu4c" ,icu4c))) | |
229 | ;; The release tarball lacks the generated files. | |
230 | (native-inputs `(("autoconf" ,autoconf) | |
231 | ("automake" ,automake) | |
232 | ("gettext" ,gnu-gettext) | |
233 | ("which" ,which) | |
3246cc91 | 234 | ("libtool" ,libtool))) |
488e8863 EB |
235 | (arguments |
236 | `(#:phases (alist-cons-before | |
237 | 'bootstrap 'fix-autogen-shebang | |
238 | (lambda _ | |
239 | (substitute* "autogen.sh" | |
240 | ;; Removing -e as it causes the whole script to fail when | |
241 | ;; `which gtkdocize` fails. | |
242 | (("# !/bin/sh -e") (string-append "#!" (which "sh"))))) | |
243 | (alist-cons-before | |
244 | 'patch-usr-bin-file 'bootstrap | |
245 | (lambda _ | |
246 | (zero? (system* "./autogen.sh"))) | |
247 | %standard-phases)))) | |
248 | (home-page "https://github.com/rockdaboot/libpsl") | |
249 | (synopsis "C library for the Publix Suffix List") | |
250 | (description | |
251 | "A \"public suffix\" is a domain name under which Internet users can | |
252 | directly register own names. | |
253 | ||
254 | Browsers and other web clients can use it to avoid privacy-leaking | |
255 | \"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain | |
256 | highlighting parts of the domain in a user interface, and sorting domain lists | |
257 | by site. | |
258 | ||
259 | Libpsl has built-in PSL data for fast access, allows to load PSL data from | |
260 | files, checks if a given domain is a public suffix, provides immediate cookie | |
261 | domain verification, finds the longest public part of a given domain, finds | |
262 | the shortest private part of a given domain, works with international | |
263 | domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008 | |
264 | UTS#46") | |
265 | (license l:x11))) | |
266 | ||
c9ea41ff AE |
267 | (define-public perl-html-tagset |
268 | (package | |
269 | (name "perl-html-tagset") | |
270 | (version "3.20") | |
271 | (source (origin | |
272 | (method url-fetch) | |
273 | (uri (string-append | |
274 | "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-" | |
275 | version ".tar.gz")) | |
276 | (sha256 | |
277 | (base32 | |
278 | "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd")))) | |
279 | (build-system perl-build-system) | |
280 | (license (package-license perl)) | |
281 | (synopsis "Perl data tables useful in parsing HTML") | |
282 | (description | |
283 | "The HTML::Tagset module contains several data tables useful in various | |
284 | kinds of HTML parsing operations.") | |
285 | (home-page "http://search.cpan.org/dist/HTML-Tagset/"))) | |
286 | ||
8ec0d3fb AE |
287 | (define-public perl-html-parser |
288 | (package | |
289 | (name "perl-html-parser") | |
290 | (version "3.71") | |
291 | (source (origin | |
292 | (method url-fetch) | |
293 | (uri (string-append | |
294 | "mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-" | |
295 | version ".tar.gz")) | |
296 | (sha256 | |
297 | (base32 | |
298 | "00nqzdgl7c3jilx7mil19k5jwcw3as14pvkjgxi97zyk94vqp4dy")))) | |
299 | (build-system perl-build-system) | |
300 | (inputs | |
301 | `(("perl-html-tagset" ,perl-html-tagset))) | |
302 | (license (package-license perl)) | |
303 | (synopsis "Perl HTML parser class") | |
304 | (description | |
305 | "Objects of the HTML::Parser class will recognize markup and separate | |
306 | it from plain text (alias data content) in HTML documents. As different | |
307 | kinds of markup and text are recognized, the corresponding event handlers | |
308 | are invoked.") | |
309 | (home-page "http://search.cpan.org/~gaas/HTML-Parser/"))) | |
ae2aa18d AE |
310 | |
311 | (define-public perl-http-date | |
312 | (package | |
313 | (name "perl-http-date") | |
314 | (version "6.02") | |
315 | (source (origin | |
316 | (method url-fetch) | |
317 | (uri (string-append | |
318 | "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Date-" | |
319 | version ".tar.gz")) | |
320 | (sha256 | |
321 | (base32 | |
322 | "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8")))) | |
323 | (build-system perl-build-system) | |
324 | (license (package-license perl)) | |
325 | (synopsis "Perl date conversion routines") | |
326 | (description | |
327 | "The HTTP::Date module provides functions that deal with date formats | |
328 | used by the HTTP protocol (and then some more).") | |
329 | (home-page "http://search.cpan.org/~gaas/HTTP-Date/"))) | |
fea5ebb1 AE |
330 | |
331 | (define-public perl-uri | |
332 | (package | |
333 | (name "perl-uri") | |
334 | (version "1.60") | |
335 | (source (origin | |
336 | (method url-fetch) | |
337 | (uri (string-append | |
338 | "mirror://cpan/authors/id/G/GA/GAAS/URI-" | |
339 | version ".tar.gz")) | |
340 | (sha256 | |
341 | (base32 | |
342 | "0xr31mf7lfrwhyvlx4pzp6p7alls5gi4bj8pk5g89f5cckfd74hz")))) | |
343 | (build-system perl-build-system) | |
344 | (license (package-license perl)) | |
345 | (synopsis "Perl Uniform Resource Identifiers (absolute and relative)") | |
346 | (description | |
347 | "The URI module implements the URI class. Objects of this class | |
348 | represent \"Uniform Resource Identifier references\" as specified in RFC 2396 | |
349 | (and updated by RFC 2732).") | |
350 | (home-page "http://search.cpan.org/~gaas/URI/"))) | |
24b3c053 AE |
351 | |
352 | (define-public perl-lwp-mediatypes | |
353 | (package | |
354 | (name "perl-lwp-mediatypes") | |
355 | (version "6.02") | |
356 | (source (origin | |
357 | (method url-fetch) | |
358 | (uri (string-append | |
359 | "mirror://cpan/authors/id/G/GA/GAAS/LWP-MediaTypes-" | |
360 | version ".tar.gz")) | |
361 | (sha256 | |
362 | (base32 | |
363 | "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q")))) | |
364 | (build-system perl-build-system) | |
365 | (license (package-license perl)) | |
366 | (synopsis "Perl module to guess the media type for a file or a URL") | |
367 | (description | |
368 | "The LWP::MediaTypes module provides functions for handling media (also | |
369 | known as MIME) types and encodings. The mapping from file extensions to | |
370 | media types is defined by the media.types file. If the ~/.media.types file | |
371 | exists it is used instead.") | |
372 | (home-page "http://search.cpan.org/~gaas/LWP-MediaTypes/"))) | |
e426106b AE |
373 | |
374 | (define-public perl-io-html | |
375 | (package | |
376 | (name "perl-io-html") | |
377 | (version "1.00") | |
378 | (source (origin | |
379 | (method url-fetch) | |
380 | (uri (string-append | |
381 | "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-" | |
382 | version ".tar.gz")) | |
383 | (sha256 | |
384 | (base32 | |
385 | "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4")))) | |
386 | (build-system perl-build-system) | |
387 | (license (package-license perl)) | |
388 | (synopsis "Perl module to open an HTML file with automatic charset detection") | |
389 | (description | |
390 | "IO::HTML provides an easy way to open a file containing HTML while | |
391 | automatically determining its encoding. It uses the HTML5 encoding sniffing | |
392 | algorithm specified in section 8.2.2.1 of the draft standard.") | |
393 | (home-page "http://search.cpan.org/~cjm/IO-HTML/"))) | |
91318a9e AE |
394 | |
395 | (define-public perl-http-message | |
396 | (package | |
397 | (name "perl-http-message") | |
398 | (version "6.06") | |
399 | (source (origin | |
400 | (method url-fetch) | |
401 | (uri (string-append | |
402 | "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Message-" | |
403 | version ".tar.gz")) | |
404 | (sha256 | |
405 | (base32 | |
406 | "0qxdrcak97azjvqyx1anpb2ky6vp6vc37x0wcfjdqfajkh09fzh8")))) | |
407 | (build-system perl-build-system) | |
daee66fc | 408 | (propagated-inputs |
91318a9e | 409 | `(("perl-http-date" ,perl-http-date) |
f852114e AE |
410 | ("perl-uri" ,perl-uri))) |
411 | (inputs | |
412 | `(("perl-io-html" ,perl-io-html) | |
daee66fc | 413 | ("perl-lwp-mediatypes" ,perl-lwp-mediatypes))) |
91318a9e AE |
414 | (license (package-license perl)) |
415 | (synopsis "Perl HTTP style message") | |
416 | (description | |
417 | "An HTTP::Message object contains some headers and a content body.") | |
418 | (home-page "http://search.cpan.org/~gaas/HTTP-Message/"))) | |
b3d18aff AE |
419 | |
420 | (define-public perl-http-cookies | |
421 | (package | |
422 | (name "perl-http-cookies") | |
423 | (version "6.01") | |
424 | (source (origin | |
425 | (method url-fetch) | |
426 | (uri (string-append | |
427 | "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Cookies-" | |
428 | version ".tar.gz")) | |
429 | (sha256 | |
430 | (base32 | |
431 | "087bqmg22dg3vj7gssh3pcsh9y1scimkbl5h1kc8jqyfhgisvlzm")))) | |
432 | (build-system perl-build-system) | |
800de8da | 433 | (propagated-inputs |
f852114e | 434 | `(("perl-http-message" ,perl-http-message))) |
b3d18aff AE |
435 | (license (package-license perl)) |
436 | (synopsis "Perl HTTP cookie jars") | |
437 | (description | |
438 | "The HTTP::Cookies class is for objects that represent a cookie jar, | |
439 | that is, a database of all the HTTP cookies that a given LWP::UserAgent | |
440 | object knows about.") | |
441 | (home-page "http://search.cpan.org/~gaas/HTTP-Cookies/"))) | |
3f41e6b3 AE |
442 | |
443 | (define-public perl-http-daemon | |
444 | (package | |
445 | (name "perl-http-daemon") | |
446 | (version "6.01") | |
447 | (source (origin | |
448 | (method url-fetch) | |
449 | (uri (string-append | |
450 | "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-" | |
451 | version ".tar.gz")) | |
452 | (sha256 | |
453 | (base32 | |
454 | "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3")))) | |
455 | (build-system perl-build-system) | |
6e8cf5c9 | 456 | (propagated-inputs |
f852114e | 457 | `(("perl-http-message" ,perl-http-message) |
6e8cf5c9 | 458 | ("perl-lwp-mediatypes" ,perl-lwp-mediatypes))) |
3f41e6b3 AE |
459 | (license (package-license perl)) |
460 | (synopsis "Perl simple http server class") | |
461 | (description | |
462 | "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen | |
463 | on a socket for incoming requests. The HTTP::Daemon is a subclass of | |
464 | IO::Socket::INET, so you can perform socket operations directly on it too.") | |
465 | (home-page "http://search.cpan.org/~gaas/HTTP-Daemon/"))) | |
e7444ee2 AE |
466 | |
467 | (define-public perl-http-negotiate | |
468 | (package | |
469 | (name "perl-http-negotiate") | |
470 | (version "6.01") | |
471 | (source (origin | |
472 | (method url-fetch) | |
473 | (uri (string-append | |
474 | "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-" | |
475 | version ".tar.gz")) | |
476 | (sha256 | |
477 | (base32 | |
478 | "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw")))) | |
479 | (build-system perl-build-system) | |
d0bb5f77 AE |
480 | (propagated-inputs |
481 | `(("perl-http-message" ,perl-http-message))) | |
e7444ee2 AE |
482 | (license (package-license perl)) |
483 | (synopsis "Perl http content negotiation") | |
484 | (description | |
485 | "The HTTP::Negotiate module provides a complete implementation of the | |
486 | HTTP content negotiation algorithm specified in | |
487 | draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for | |
488 | the selection of a preferred content representation based upon attributes | |
489 | of the negotiable variants and the value of the various Accept* header | |
490 | fields in the request.") | |
491 | (home-page "http://search.cpan.org/~gaas/HTTP-Negotiate/"))) | |
a3eb919f AE |
492 | |
493 | (define-public perl-www-robotrules | |
494 | (package | |
495 | (name "perl-www-robotrules") | |
496 | (version "6.02") | |
497 | (source (origin | |
498 | (method url-fetch) | |
499 | (uri (string-append | |
500 | "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-" | |
501 | version ".tar.gz")) | |
502 | (sha256 | |
503 | (base32 | |
504 | "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6")))) | |
505 | (build-system perl-build-system) | |
3adf5888 | 506 | (propagated-inputs |
a3eb919f AE |
507 | `(("perl-uri" ,perl-uri))) |
508 | (license (package-license perl)) | |
509 | (synopsis "Perl database of robots.txt-derived permissions") | |
510 | (description | |
511 | "The WWW::RobotRules module parses /robots.txt files as specified in | |
512 | \"A Standard for Robot Exclusion\", at | |
513 | <http://www.robotstxt.org/wc/norobots.html>. Webmasters can use the | |
514 | /robots.txt file to forbid conforming robots from accessing parts of | |
515 | their web site.") | |
516 | (home-page "http://search.cpan.org/~gaas/WWW-RobotRules/"))) | |
677078b4 AE |
517 | |
518 | (define-public perl-net-http | |
519 | (package | |
520 | (name "perl-net-http") | |
521 | (version "6.06") | |
522 | (source (origin | |
523 | (method url-fetch) | |
524 | (uri (string-append | |
525 | "mirror://cpan/authors/id/G/GA/GAAS/Net-HTTP-" | |
526 | version ".tar.gz")) | |
527 | (sha256 | |
528 | (base32 | |
529 | "1m1rvniffadq99gsy25298ia3lixwymr6kan64jd3ylyi7nkqkhx")))) | |
530 | (build-system perl-build-system) | |
531 | (license (package-license perl)) | |
532 | (synopsis "Perl low-level HTTP connection (client)") | |
533 | (description | |
534 | "The Net::HTTP class is a low-level HTTP client. An instance of the | |
535 | Net::HTTP class represents a connection to an HTTP server. The HTTP protocol | |
536 | is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and | |
537 | HTTP/1.1.") | |
538 | (home-page "http://search.cpan.org/~gaas/Net-HTTP/"))) | |
56aa03b0 AE |
539 | |
540 | (define-public perl-file-listing | |
541 | (package | |
542 | (name "perl-file-listing") | |
543 | (version "6.04") | |
544 | (source (origin | |
545 | (method url-fetch) | |
546 | (uri (string-append | |
547 | "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-" | |
548 | version ".tar.gz")) | |
549 | (sha256 | |
550 | (base32 | |
551 | "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y")))) | |
552 | (build-system perl-build-system) | |
846972eb | 553 | (propagated-inputs |
56aa03b0 AE |
554 | `(("perl-http-date" ,perl-http-date))) |
555 | (license (package-license perl)) | |
556 | (synopsis "Perl directory listing parser") | |
557 | (description | |
558 | "The File::Listing module exports a single function called parse_dir(), | |
559 | which can be used to parse directory listings.") | |
560 | (home-page "http://search.cpan.org/~gaas/File-Listing/"))) | |
09a8778f AE |
561 | |
562 | (define-public perl-encode-locale | |
563 | (package | |
564 | (name "perl-encode-locale") | |
565 | (version "1.03") | |
566 | (source (origin | |
567 | (method url-fetch) | |
568 | (uri (string-append | |
569 | "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-" | |
570 | version ".tar.gz")) | |
571 | (sha256 | |
572 | (base32 | |
573 | "0m9d1vdphlyzybgmdanipwd9ndfvyjgk3hzw250r299jjgh3fqzp")))) | |
574 | (build-system perl-build-system) | |
575 | (license (package-license perl)) | |
576 | (synopsis "Perl locale encoding determination") | |
577 | (description | |
578 | "The POSIX locale system is used to specify both the language | |
579 | conventions requested by the user and the preferred character set to consume | |
580 | and output. The Encode::Locale module looks up the charset and encoding | |
581 | (called a CODESET in the locale jargon) and arranges for the Encode module | |
582 | to know this encoding under the name \"locale\". It means bytes obtained | |
583 | from the environment can be converted to Unicode strings by calling | |
584 | Encode::encode(locale => $bytes) and converted back again with | |
585 | Encode::decode(locale => $string).") | |
586 | (home-page "http://search.cpan.org/~gaas/Encode-Locale/"))) | |
374a9a85 AE |
587 | |
588 | (define-public perl-libwww | |
589 | (package | |
590 | (name "perl-libwww") | |
591 | (version "6.05") | |
592 | (source (origin | |
593 | (method url-fetch) | |
594 | (uri (string-append | |
595 | "mirror://cpan/authors/id/G/GA/GAAS/libwww-perl-" | |
596 | version ".tar.gz")) | |
597 | (sha256 | |
598 | (base32 | |
599 | "08wgwyz7748pv5cyngxia0xl6nragfnhrp4p9s78xhgfyygpj9bv")))) | |
600 | (build-system perl-build-system) | |
d42daec0 | 601 | (propagated-inputs |
374a9a85 AE |
602 | `(("perl-encode-locale" ,perl-encode-locale) |
603 | ("perl-file-listing" ,perl-file-listing) | |
604 | ("perl-html-parser" ,perl-html-parser) | |
605 | ("perl-http-cookies" ,perl-http-cookies) | |
374a9a85 | 606 | ("perl-http-daemon" ,perl-http-daemon) |
374a9a85 | 607 | ("perl-http-negotiate" ,perl-http-negotiate) |
374a9a85 | 608 | ("perl-net-http" ,perl-net-http) |
374a9a85 AE |
609 | ("perl-www-robotrules" ,perl-www-robotrules))) |
610 | (license (package-license perl)) | |
611 | (synopsis "Perl modules for the WWW") | |
612 | (description | |
613 | "The libwww-perl collection is a set of Perl modules which provides a | |
614 | simple and consistent application programming interface to the | |
615 | World-Wide Web. The main focus of the library is to provide classes | |
35b9e423 EB |
616 | and functions that allow you to write WWW clients. The library also |
617 | contains modules that are of more general use and even classes that | |
374a9a85 AE |
618 | help you implement simple HTTP servers.") |
619 | (home-page "http://search.cpan.org/~gaas/libwww-perl/"))) | |
b777d784 JD |
620 | |
621 | (define-public tinyproxy | |
622 | (package | |
623 | (name "tinyproxy") | |
624 | (version "1.8.3") | |
625 | (source (origin | |
626 | (method url-fetch) | |
627 | (uri (string-append | |
35b9e423 EB |
628 | "http://www.samba.org/~obnox/" name "/download/" |
629 | name "-" version ".tar.bz2")) | |
b777d784 JD |
630 | (sha256 |
631 | (base32 | |
632 | "0vl9igw7vm924rs6d6bkib7zfclxnlf9s8rmml1sfwj7xda9nmdy")))) | |
633 | (build-system gnu-build-system) | |
634 | (arguments | |
635 | `(#:configure-flags | |
636 | (list | |
637 | ;; For the log file, etc. | |
638 | "--localstatedir=/var") | |
639 | #:phases | |
640 | (alist-cons-before | |
641 | 'build 'pre-build | |
642 | (lambda* (#:key inputs #:allow-other-keys #:rest args) | |
6217ca12 JD |
643 | ;; Uncommenting the next two lines may assist in debugging |
644 | ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v")) | |
645 | ;; (setenv "XML_DEBUG_CATALOG" "1") | |
2a8d4401 | 646 | #t) |
b777d784 JD |
647 | %standard-phases))) |
648 | ;; All of the below are used to generate the documentation | |
649 | ;; (Should they be propagated inputs of asciidoc ??) | |
650 | (native-inputs `(("asciidoc" ,asciidoc) | |
651 | ("libxml2" ,libxml2) | |
652 | ("docbook-xml" ,docbook-xml) | |
653 | ("docbook-xsl" ,docbook-xsl) | |
654 | ("libxslt" ,libxslt))) | |
655 | (home-page "https://banu.com/tinyproxy/") | |
656 | (synopsis "Light-weight HTTP/HTTPS proxy daemon") | |
657 | (description "Tinyproxy is a light-weight HTTP/HTTPS proxy | |
35b9e423 | 658 | daemon. Designed from the ground up to be fast and yet small, it is an ideal |
b777d784 JD |
659 | solution for use cases such as embedded deployments where a full featured HTTP |
660 | proxy is required, but the system resources for a larger proxy are | |
35b9e423 | 661 | unavailable.") |
b777d784 | 662 | (license l:gpl2+))) |
d22d72fc LC |
663 | |
664 | (define-public perl-www-curl | |
665 | (package | |
666 | (name "perl-www-curl") | |
667 | (version "4.17") | |
668 | (source (origin | |
669 | (method url-fetch) | |
670 | (uri (string-append | |
671 | "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-" | |
672 | version".tar.gz")) | |
673 | (sha256 | |
674 | (base32 | |
675 | "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj")))) | |
676 | (build-system perl-build-system) | |
677 | (arguments | |
678 | '(#:tests? #f)) ;XXX: tests require network access | |
679 | (inputs `(("curl" ,curl))) | |
680 | (synopsis "Perl extension interface for libcurl") | |
681 | (description | |
682 | "This is a Perl extension interface for the libcurl file downloading | |
683 | library.") | |
684 | (license (package-license perl)) | |
685 | (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm"))) | |
3484d052 EB |
686 | |
687 | (define-public perl-io-socket-ssl | |
688 | (package | |
689 | (name "perl-io-socket-ssl") | |
690 | (version "2.002") | |
691 | (source (origin | |
692 | (method url-fetch) | |
693 | (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/" | |
694 | "IO-Socket-SSL-" version ".tar.gz")) | |
695 | (sha256 | |
696 | (base32 | |
697 | "1mph52lw6x5v44wf8mw00llzi8pp6k5c4jnrnrvlacrlfv260jb8")))) | |
698 | (build-system perl-build-system) | |
699 | (propagated-inputs `(("perl-net-ssleay" ,perl-net-ssleay))) | |
700 | (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET") | |
701 | (description | |
702 | "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the | |
703 | necessary functionality into the familiar IO::Socket interface and providing | |
704 | secure defaults whenever possible. This way existing applications can be made | |
705 | SSL-aware without much effort, at least if you do blocking I/O and don't use | |
706 | select or poll.") | |
707 | (license (package-license perl)) | |
708 | (home-page "https://github.com/noxxi/p5-io-socket-ssl"))) |