821 lines
		
	
	
	
		
			32 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
			
		
		
	
	
			821 lines
		
	
	
	
		
			32 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
| ;;; GNU Guix --- Functional package management for GNU
 | ||
| ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 | ||
| ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
 | ||
| ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | ||
| ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 | ||
| ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | ||
| ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 | ||
| ;;;
 | ||
| ;;; This file is part of GNU Guix.
 | ||
| ;;;
 | ||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it
 | ||
| ;;; under the terms of the GNU General Public License as published by
 | ||
| ;;; the Free Software Foundation; either version 3 of the License, or (at
 | ||
| ;;; your option) any later version.
 | ||
| ;;;
 | ||
| ;;; GNU Guix is distributed in the hope that it will be useful, but
 | ||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
 | ||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | ||
| ;;; GNU General Public License for more details.
 | ||
| ;;;
 | ||
| ;;; You should have received a copy of the GNU General Public License
 | ||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | ||
| 
 | ||
| (define-module (gnu packages web)
 | ||
|   #:use-module (ice-9 match)
 | ||
|   #:use-module ((guix licenses) #:prefix l:)
 | ||
|   #:use-module (guix packages)
 | ||
|   #:use-module (guix download)
 | ||
|   #:use-module (guix git-download)
 | ||
|   #:use-module (guix cvs-download)
 | ||
|   #:use-module (guix build-system gnu)
 | ||
|   #:use-module (guix build-system perl)
 | ||
|   #:use-module (guix build-system cmake)
 | ||
|   #:use-module (gnu packages apr)
 | ||
|   #:use-module (gnu packages asciidoc)
 | ||
|   #:use-module (gnu packages docbook)
 | ||
|   #:use-module (gnu packages autotools)
 | ||
|   #:use-module ((gnu packages compression) #:select (zlib))
 | ||
|   #:use-module (gnu packages openssl)
 | ||
|   #:use-module (gnu packages gettext)
 | ||
|   #:use-module (gnu packages icu4c)
 | ||
|   #:use-module (gnu packages which)
 | ||
|   #:use-module (gnu packages pcre)
 | ||
|   #:use-module (gnu packages xml)
 | ||
|   #:use-module (gnu packages curl)
 | ||
|   #:use-module (gnu packages perl)
 | ||
|   #:use-module (gnu packages texinfo))
 | ||
| 
 | ||
| (define-public httpd
 | ||
|   (package
 | ||
|     (name "httpd")
 | ||
|     (version "2.4.12")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append "mirror://apache/httpd/httpd-"
 | ||
|                                  version ".tar.bz2"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "1r7a63ka41vlswrqbb21vall6sc7svwgd497kb6dh8a6zvnkjvdd"))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (inputs `(("apr" ,apr)
 | ||
|               ("apr-util" ,apr-util)
 | ||
|               ("openssl" ,openssl)
 | ||
|               ("pcre" ,pcre)
 | ||
|               ("perl" ,perl))) ; needed to run bin/apxs
 | ||
|     (arguments
 | ||
|      `(#:test-target "test"
 | ||
|        #:configure-flags (list "--enable-rewrite"
 | ||
|                                "--enable-userdir"
 | ||
|                                "--enable-vhost-alias"
 | ||
|                                "--enable-ssl"
 | ||
|                                "--enable-mime-magic"
 | ||
|                                (string-append "--sysconfdir="
 | ||
|                                               (assoc-ref %outputs "out")
 | ||
|                                               "/etc/httpd"))))
 | ||
|     (synopsis "Featureful HTTP server")
 | ||
|     (description
 | ||
|      "The Apache HTTP Server Project is a collaborative software development
 | ||
| effort aimed at creating a robust, commercial-grade, featureful, and
 | ||
| freely-available source code implementation of an HTTP (Web) server.  The
 | ||
| project is jointly managed by a group of volunteers located around the world,
 | ||
| using the Internet and the Web to communicate, plan, and develop the server
 | ||
| and its related documentation.")
 | ||
|     (license l:asl2.0)
 | ||
|     (home-page "https://httpd.apache.org/")))
 | ||
| 
 | ||
| (define-public nginx
 | ||
|   (package
 | ||
|     (name "nginx")
 | ||
|     (version "1.6.2")
 | ||
|     (source (origin
 | ||
|               (method url-fetch)
 | ||
|               (uri (string-append "http://nginx.org/download/nginx-"
 | ||
|                                   version ".tar.gz"))
 | ||
|               (sha256
 | ||
|                (base32
 | ||
|                 "060s77qxhkn02fjkcndsr0xppj2bppjzkj0gn84svrykb4lqqq5m"))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (inputs `(("pcre" ,pcre)
 | ||
|               ("openssl" ,openssl)
 | ||
|               ("zlib" ,zlib)))
 | ||
|     (arguments
 | ||
|      `(#:tests? #f                      ; no test target
 | ||
|        #:phases
 | ||
|        (alist-cons-before
 | ||
|         'configure 'patch-/bin/sh
 | ||
|         (lambda _
 | ||
|           (substitute* "auto/feature"
 | ||
|             (("/bin/sh") (which "bash"))))
 | ||
|         (alist-replace
 | ||
|          'configure
 | ||
|          (lambda* (#:key outputs #:allow-other-keys)
 | ||
|            (let ((flags
 | ||
|                   (list (string-append "--prefix=" (assoc-ref outputs "out"))
 | ||
|                         "--with-http_ssl_module"
 | ||
|                         "--with-pcre-jit"
 | ||
|                         "--with-ipv6"
 | ||
|                         "--with-debug"
 | ||
|                         ;; Even when not cross-building, we pass the
 | ||
|                         ;; --crossbuild option to avoid customizing for the
 | ||
|                         ;; kernel version on the build machine.
 | ||
|                         ,(let ((system "Linux")    ; uname -s
 | ||
|                                (release "2.6.32")  ; uname -r
 | ||
|                                ;; uname -m
 | ||
|                                (machine (match (or (%current-target-system)
 | ||
|                                                    (%current-system))
 | ||
|                                           ("x86_64-linux"   "x86_64")
 | ||
|                                           ("i686-linux"     "i686")
 | ||
|                                           ("mips64el-linux" "mips64"))))
 | ||
|                            (string-append "--crossbuild="
 | ||
|                                           system ":" release ":" machine)))))
 | ||
|              (setenv "CC" "gcc")
 | ||
|              (format #t "environment variable `CC' set to `gcc'~%")
 | ||
|              (format #t "configure flags: ~s~%" flags)
 | ||
|              (zero? (apply system* "./configure" flags))))
 | ||
|          %standard-phases))))
 | ||
|     (home-page "http://nginx.org")
 | ||
|     (synopsis "HTTP and reverse proxy server")
 | ||
|     (description
 | ||
|      "Nginx (\"engine X\") is a high-performance web and reverse proxy server
 | ||
| created by Igor Sysoev.  It can be used both as a standalone web server
 | ||
| and as a proxy to reduce the load on back-end HTTP or mail servers.")
 | ||
|     ;; Almost all of nginx is distributed under the bsd-2 license.
 | ||
|     ;; The exceptions are:
 | ||
|     ;;   * The 'nginx-http-push' module is covered by the expat license.
 | ||
|     ;;   * The 'nginx-development-kit' module is mostly covered by bsd-3,
 | ||
|     ;;     except for two source files which are bsd-4 licensed.
 | ||
|     (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4))))
 | ||
| 
 | ||
| (define-public jansson
 | ||
|   (package
 | ||
|     (name "jansson")
 | ||
|     (version "2.7")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri
 | ||
|               (string-append "http://www.digip.org/jansson/releases/jansson-"
 | ||
|                              version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "1mvq9p85khsl818i4vbszyfab0fd45mdrwrxjkzw05mk1xcyc1br"))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (home-page "http://www.digip.org/jansson/")
 | ||
|     (synopsis "JSON C library")
 | ||
|     (description
 | ||
|      "Jansson is a C library for encoding, decoding and manipulating JSON
 | ||
| data.")
 | ||
|     (license l:expat)))
 | ||
| 
 | ||
| (define-public json-c
 | ||
|   (package
 | ||
|     (name "json-c")
 | ||
|     (version "0.12")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
 | ||
|                                  version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "0gwzic3ifg2d0w32ya3agpxh8i083cgvf7kmc51cnbgqnfr02300"))
 | ||
|              (modules '((guix build utils)))
 | ||
|              (snippet
 | ||
|               '(begin
 | ||
|                  ;; Somehow 'config.h.in' is older than
 | ||
|                  ;; 'aclocal.m4', which would trigger a rule to
 | ||
|                  ;; run 'autoheader'.
 | ||
|                  (set-file-time "config.h.in"
 | ||
|                                 (stat "aclocal.m4"))
 | ||
| 
 | ||
|                  ;; Don't try to build with -Werror.
 | ||
|                  (substitute* (find-files "." "Makefile\\.in")
 | ||
|                    (("-Werror") ""))))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (arguments '(#:parallel-build? #f
 | ||
|                  #:parallel-tests? #f))
 | ||
|     (home-page "https://github.com/json-c/json-c/wiki")
 | ||
|     (synopsis "JSON implementation in C")
 | ||
|     (description
 | ||
|      "JSON-C implements a reference counting object model that allows you to
 | ||
| easily construct JSON objects in C, output them as JSON formatted strings and
 | ||
| parse JSON formatted strings back into the C representation of JSON objects.")
 | ||
|     (license l:x11)))
 | ||
| 
 | ||
| (define-public libwebsockets
 | ||
|   (package
 | ||
|     (name "libwebsockets")
 | ||
|     (version "1.3")
 | ||
|     (source (origin
 | ||
|               ;; The project does not publish tarballs, so we have to take
 | ||
|               ;; things from Git.
 | ||
|               (method git-fetch)
 | ||
|               (uri (git-reference
 | ||
|                     (url "git://git.libwebsockets.org/libwebsockets")
 | ||
|                     (commit (string-append "v" version
 | ||
|                                            "-chrome37-firefox30"))))
 | ||
|               (sha256
 | ||
|                (base32
 | ||
|                 "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
 | ||
|               (file-name (string-append name "-" version))))
 | ||
| 
 | ||
|     (build-system cmake-build-system)
 | ||
|     (arguments
 | ||
|      ;; XXX: The thing lacks a 'make test' target, because CMakeLists.txt
 | ||
|      ;; doesn't use 'add_test', and it's unclear how to run the test suite.
 | ||
|      '(#:tests? #f))
 | ||
| 
 | ||
|     (native-inputs `(("perl" ,perl)))             ; to build the HTML doc
 | ||
|     (inputs `(("zlib" ,zlib)
 | ||
|               ("openssl" ,openssl)))
 | ||
|     (synopsis "WebSockets library written in C")
 | ||
|     (description
 | ||
|      "Libwebsockets is a library that allows C programs to establish client
 | ||
| and server WebSockets connections---a protocol layered above HTTP that allows
 | ||
| for efficient socket-like bidirectional reliable communication channels.")
 | ||
|     (home-page "http://libwebsockets.org/")
 | ||
| 
 | ||
|     ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
 | ||
|     (license l:lgpl2.1)))
 | ||
| 
 | ||
| (define-public libpsl
 | ||
|   (package
 | ||
|     (name "libpsl")
 | ||
|     (version "0.6.0")
 | ||
|     (source (origin
 | ||
|               (method url-fetch)
 | ||
|               (uri (string-append "https://github.com/rockdaboot/libpsl/"
 | ||
|                                   "archive/" version ".tar.gz"))
 | ||
|               (sha256
 | ||
|                (base32
 | ||
|                 "10s7xxxx6pp4ydp3san69sa6q379ih3pv92fyi565ggmlw8igv7a"))
 | ||
|               (file-name (string-append name "-" version ".tar.gz"))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (inputs `(("icu4c" ,icu4c)))
 | ||
|     ;; The release tarball lacks the generated files.
 | ||
|     (native-inputs `(("autoconf" ,autoconf)
 | ||
|                      ("automake" ,automake)
 | ||
|                      ("gettext"  ,gnu-gettext)
 | ||
|                      ("which"    ,which)
 | ||
|                      ("libtool"  ,libtool)))
 | ||
|     (arguments
 | ||
|      `(#:phases (alist-cons-before
 | ||
|                  'bootstrap 'fix-autogen-shebang
 | ||
|                  (lambda _
 | ||
|                    (substitute* "autogen.sh"
 | ||
|                      ;; Removing -e as it causes the whole script to fail when
 | ||
|                      ;; `which gtkdocize` fails.
 | ||
|                      (("# !/bin/sh -e") (string-append "#!" (which "sh")))))
 | ||
|                  (alist-cons-before
 | ||
|                   'patch-usr-bin-file 'bootstrap
 | ||
|                   (lambda _
 | ||
|                     (zero? (system* "./autogen.sh")))
 | ||
|                   %standard-phases))))
 | ||
|     (home-page "https://github.com/rockdaboot/libpsl")
 | ||
|     (synopsis "C library for the Publix Suffix List")
 | ||
|     (description
 | ||
|      "A \"public suffix\" is a domain name under which Internet users can
 | ||
| directly register own names.
 | ||
| 
 | ||
| Browsers and other web clients can use it to avoid privacy-leaking
 | ||
| \"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain
 | ||
| highlighting parts of the domain in a user interface, and sorting domain lists
 | ||
| by site.
 | ||
| 
 | ||
| Libpsl has built-in PSL data for fast access, allows to load PSL data from
 | ||
| files, checks if a given domain is a public suffix, provides immediate cookie
 | ||
| domain verification, finds the longest public part of a given domain, finds
 | ||
| the shortest private part of a given domain, works with international
 | ||
| domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
 | ||
| UTS#46")
 | ||
|     (license l:x11)))
 | ||
| 
 | ||
| (define-public tidy
 | ||
|   (package
 | ||
|     (name "tidy")
 | ||
|     (version "20091223")
 | ||
|     (source (origin
 | ||
|               (method cvs-fetch)
 | ||
|               (uri (cvs-reference
 | ||
|                     (root-directory
 | ||
|                      ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
 | ||
|                     (module "tidy")
 | ||
|                     (revision "2009-12-23")))
 | ||
|               (sha256
 | ||
|                (base32
 | ||
|                 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (arguments
 | ||
|      '(#:phases (alist-cons-after
 | ||
|                  'unpack 'bootstrap
 | ||
|                  (lambda* (#:key inputs #:allow-other-keys)
 | ||
|                    ;; configure.in and Makefile.am aren't in the root of the
 | ||
|                    ;; source tree.
 | ||
|                    (copy-recursively "build/gnuauto" ".")
 | ||
|                    (setenv "AUTOMAKE" "automake --foreign")
 | ||
|                    (zero? (system* "autoreconf" "-vfi")))
 | ||
|                  %standard-phases)))
 | ||
|     (native-inputs
 | ||
|      `(("automake" ,automake)
 | ||
|        ("autoconf" ,autoconf)
 | ||
|        ("libtool" ,libtool)))
 | ||
|     (synopsis "HTML validator and tidier")
 | ||
|     (description "HTML Tidy is a command-line tool and C library that can be
 | ||
| used to validate and fix HTML data.")
 | ||
|     (home-page "http://tidy.sourceforge.net/")
 | ||
|     (license (l:x11-style "file:///include/tidy.h"))))
 | ||
| 
 | ||
| (define-public perl-html-tagset
 | ||
|   (package
 | ||
|     (name "perl-html-tagset")
 | ||
|     (version "3.20")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl data tables useful in parsing HTML")
 | ||
|     (description
 | ||
|      "The HTML::Tagset module contains several data tables useful in various
 | ||
| kinds of HTML parsing operations.")
 | ||
|     (home-page "http://search.cpan.org/dist/HTML-Tagset/")))
 | ||
| 
 | ||
| (define-public perl-html-parser
 | ||
|   (package
 | ||
|     (name "perl-html-parser")
 | ||
|     (version "3.71")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "00nqzdgl7c3jilx7mil19k5jwcw3as14pvkjgxi97zyk94vqp4dy"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (inputs
 | ||
|      `(("perl-html-tagset" ,perl-html-tagset)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl HTML parser class")
 | ||
|     (description
 | ||
|      "Objects of the HTML::Parser class will recognize markup and separate
 | ||
| it from plain text (alias data content) in HTML documents.  As different
 | ||
| kinds of markup and text are recognized, the corresponding event handlers
 | ||
| are invoked.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/HTML-Parser/")))
 | ||
| 
 | ||
| (define-public perl-http-date
 | ||
|   (package
 | ||
|     (name "perl-http-date")
 | ||
|     (version "6.02")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Date-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl date conversion routines")
 | ||
|     (description
 | ||
|      "The HTTP::Date module provides functions that deal with date formats
 | ||
| used by the HTTP protocol (and then some more).")
 | ||
|     (home-page "http://search.cpan.org/~gaas/HTTP-Date/")))
 | ||
| 
 | ||
| (define-public perl-uri
 | ||
|   (package
 | ||
|     (name "perl-uri")
 | ||
|     (version "1.60")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/URI-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "0xr31mf7lfrwhyvlx4pzp6p7alls5gi4bj8pk5g89f5cckfd74hz"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
 | ||
|     (description
 | ||
|      "The URI module implements the URI class.  Objects of this class
 | ||
| represent \"Uniform Resource Identifier references\" as specified in RFC 2396
 | ||
| (and updated by RFC 2732).")
 | ||
|     (home-page "http://search.cpan.org/~gaas/URI/")))
 | ||
| 
 | ||
| (define-public perl-lwp-mediatypes
 | ||
|   (package
 | ||
|     (name "perl-lwp-mediatypes")
 | ||
|     (version "6.02")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/LWP-MediaTypes-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl module to guess the media type for a file or a URL")
 | ||
|     (description
 | ||
|      "The LWP::MediaTypes module provides functions for handling media (also
 | ||
| known as MIME) types and encodings.  The mapping from file extensions to
 | ||
| media types is defined by the media.types file.  If the ~/.media.types file
 | ||
| exists it is used instead.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/LWP-MediaTypes/")))
 | ||
| 
 | ||
| (define-public perl-io-html
 | ||
|   (package
 | ||
|     (name "perl-io-html")
 | ||
|     (version "1.00")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl module to open an HTML file with automatic charset detection")
 | ||
|     (description
 | ||
|      "IO::HTML provides an easy way to open a file containing HTML while
 | ||
| automatically determining its encoding.  It uses the HTML5 encoding sniffing
 | ||
| algorithm specified in section 8.2.2.1 of the draft standard.")
 | ||
|     (home-page "http://search.cpan.org/~cjm/IO-HTML/")))
 | ||
| 
 | ||
| (define-public perl-http-message
 | ||
|   (package
 | ||
|     (name "perl-http-message")
 | ||
|     (version "6.06")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Message-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "0qxdrcak97azjvqyx1anpb2ky6vp6vc37x0wcfjdqfajkh09fzh8"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs
 | ||
|      `(("perl-http-date" ,perl-http-date)
 | ||
|        ("perl-uri" ,perl-uri)))
 | ||
|     (inputs
 | ||
|      `(("perl-io-html" ,perl-io-html)
 | ||
|        ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl HTTP style message")
 | ||
|     (description
 | ||
|      "An HTTP::Message object contains some headers and a content body.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/HTTP-Message/")))
 | ||
| 
 | ||
| (define-public perl-http-cookies
 | ||
|   (package
 | ||
|     (name "perl-http-cookies")
 | ||
|     (version "6.01")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Cookies-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "087bqmg22dg3vj7gssh3pcsh9y1scimkbl5h1kc8jqyfhgisvlzm"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs
 | ||
|      `(("perl-http-message" ,perl-http-message)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl HTTP cookie jars")
 | ||
|     (description
 | ||
|      "The HTTP::Cookies class is for objects that represent a cookie jar,
 | ||
| that is, a database of all the HTTP cookies that a given LWP::UserAgent
 | ||
| object knows about.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/HTTP-Cookies/")))
 | ||
| 
 | ||
| (define-public perl-http-daemon
 | ||
|   (package
 | ||
|     (name "perl-http-daemon")
 | ||
|     (version "6.01")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs
 | ||
|      `(("perl-http-message" ,perl-http-message)
 | ||
|        ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl simple http server class")
 | ||
|     (description
 | ||
|      "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen
 | ||
| on a socket for incoming requests.  The HTTP::Daemon is a subclass of
 | ||
| IO::Socket::INET, so you can perform socket operations directly on it too.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/HTTP-Daemon/")))
 | ||
| 
 | ||
| (define-public perl-http-negotiate
 | ||
|   (package
 | ||
|     (name "perl-http-negotiate")
 | ||
|     (version "6.01")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs
 | ||
|      `(("perl-http-message" ,perl-http-message)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl http content negotiation")
 | ||
|     (description
 | ||
|      "The HTTP::Negotiate module provides a complete implementation of the
 | ||
| HTTP content negotiation algorithm specified in
 | ||
| draft-ietf-http-v11-spec-00.ps chapter 12.  Content negotiation allows for
 | ||
| the selection of a preferred content representation based upon attributes
 | ||
| of the negotiable variants and the value of the various Accept* header
 | ||
| fields in the request.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/HTTP-Negotiate/")))
 | ||
| 
 | ||
| (define-public perl-www-robotrules
 | ||
|   (package
 | ||
|     (name "perl-www-robotrules")
 | ||
|     (version "6.02")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs
 | ||
|      `(("perl-uri" ,perl-uri)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl database of robots.txt-derived permissions")
 | ||
|     (description
 | ||
|      "The WWW::RobotRules module parses /robots.txt files as specified in
 | ||
| \"A Standard for Robot Exclusion\", at
 | ||
| <http://www.robotstxt.org/wc/norobots.html>.  Webmasters can use the
 | ||
| /robots.txt file to forbid conforming robots from accessing parts of
 | ||
| their web site.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/WWW-RobotRules/")))
 | ||
| 
 | ||
| (define-public perl-net-http
 | ||
|   (package
 | ||
|     (name "perl-net-http")
 | ||
|     (version "6.06")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/Net-HTTP-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "1m1rvniffadq99gsy25298ia3lixwymr6kan64jd3ylyi7nkqkhx"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl low-level HTTP connection (client)")
 | ||
|     (description
 | ||
|      "The Net::HTTP class is a low-level HTTP client.  An instance of the
 | ||
| Net::HTTP class represents a connection to an HTTP server.  The HTTP protocol
 | ||
| is described in RFC 2616.  The Net::HTTP class supports HTTP/1.0 and
 | ||
| HTTP/1.1.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/Net-HTTP/")))
 | ||
| 
 | ||
| (define-public perl-file-listing
 | ||
|   (package
 | ||
|     (name "perl-file-listing")
 | ||
|     (version "6.04")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs
 | ||
|      `(("perl-http-date" ,perl-http-date)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl directory listing parser")
 | ||
|     (description
 | ||
|      "The File::Listing module exports a single function called parse_dir(),
 | ||
| which can be used to parse directory listings.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/File-Listing/")))
 | ||
| 
 | ||
| (define-public perl-encode-locale
 | ||
|   (package
 | ||
|     (name "perl-encode-locale")
 | ||
|     (version "1.03")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "0m9d1vdphlyzybgmdanipwd9ndfvyjgk3hzw250r299jjgh3fqzp"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl locale encoding determination")
 | ||
|     (description
 | ||
|      "The POSIX locale system is used to specify both the language
 | ||
| conventions requested by the user and the preferred character set to consume
 | ||
| and output.  The Encode::Locale module looks up the charset and encoding
 | ||
| (called a CODESET in the locale jargon) and arranges for the Encode module
 | ||
| to know this encoding under the name \"locale\".  It means bytes obtained
 | ||
| from the environment can be converted to Unicode strings by calling
 | ||
| Encode::encode(locale => $bytes) and converted back again with
 | ||
| Encode::decode(locale => $string).")
 | ||
|     (home-page "http://search.cpan.org/~gaas/Encode-Locale/")))
 | ||
| 
 | ||
| (define-public perl-libwww
 | ||
|   (package
 | ||
|     (name "perl-libwww")
 | ||
|     (version "6.05")
 | ||
|     (source (origin
 | ||
|              (method url-fetch)
 | ||
|              (uri (string-append
 | ||
|                    "mirror://cpan/authors/id/G/GA/GAAS/libwww-perl-"
 | ||
|                    version ".tar.gz"))
 | ||
|              (sha256
 | ||
|               (base32
 | ||
|                "08wgwyz7748pv5cyngxia0xl6nragfnhrp4p9s78xhgfyygpj9bv"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs
 | ||
|      `(("perl-encode-locale" ,perl-encode-locale)
 | ||
|        ("perl-file-listing" ,perl-file-listing)
 | ||
|        ("perl-html-parser" ,perl-html-parser)
 | ||
|        ("perl-http-cookies" ,perl-http-cookies)
 | ||
|        ("perl-http-daemon" ,perl-http-daemon)
 | ||
|        ("perl-http-negotiate" ,perl-http-negotiate)
 | ||
|        ("perl-net-http" ,perl-net-http)
 | ||
|        ("perl-www-robotrules" ,perl-www-robotrules)))
 | ||
|     (license (package-license perl))
 | ||
|     (synopsis "Perl modules for the WWW")
 | ||
|     (description
 | ||
|      "The libwww-perl collection is a set of Perl modules which provides a
 | ||
| simple and consistent application programming interface to the
 | ||
| World-Wide Web.  The main focus of the library is to provide classes
 | ||
| and functions that allow you to write WWW clients.  The library also
 | ||
| contains modules that are of more general use and even classes that
 | ||
| help you implement simple HTTP servers.")
 | ||
|     (home-page "http://search.cpan.org/~gaas/libwww-perl/")))
 | ||
| 
 | ||
| (define-public tinyproxy
 | ||
|   (package
 | ||
|     (name "tinyproxy")
 | ||
|     (version "1.8.3")
 | ||
|     (source (origin
 | ||
|               (method url-fetch)
 | ||
|               (uri (string-append
 | ||
|                     "http://www.samba.org/~obnox/" name "/download/"
 | ||
|                     name "-" version ".tar.bz2"))
 | ||
|               (sha256
 | ||
|                (base32
 | ||
|                 "0vl9igw7vm924rs6d6bkib7zfclxnlf9s8rmml1sfwj7xda9nmdy"))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (arguments
 | ||
|      `(#:configure-flags
 | ||
|        (list
 | ||
|         ;; For the log file, etc.
 | ||
|         "--localstatedir=/var")
 | ||
|        #:phases
 | ||
|        (alist-cons-before
 | ||
|         'build 'pre-build
 | ||
|         (lambda* (#:key inputs #:allow-other-keys #:rest args)
 | ||
|           ;; Uncommenting the next two lines may assist in debugging
 | ||
|           ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
 | ||
|           ;; (setenv "XML_DEBUG_CATALOG" "1")
 | ||
|           #t)
 | ||
|         %standard-phases)))
 | ||
|     ;; All of the below are used to generate the documentation
 | ||
|     ;; (Should they be propagated inputs of asciidoc ??)
 | ||
|     (native-inputs `(("asciidoc" ,asciidoc)
 | ||
|                      ("libxml2" ,libxml2) 
 | ||
|                      ("docbook-xml" ,docbook-xml)
 | ||
|                      ("docbook-xsl" ,docbook-xsl)
 | ||
|                      ("libxslt" ,libxslt)))
 | ||
|     (home-page "https://banu.com/tinyproxy/")
 | ||
|     (synopsis "Light-weight HTTP/HTTPS proxy daemon")
 | ||
|     (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
 | ||
| daemon.  Designed from the ground up to be fast and yet small, it is an ideal
 | ||
| solution for use cases such as embedded deployments where a full featured HTTP
 | ||
| proxy is required, but the system resources for a larger proxy are
 | ||
| unavailable.")
 | ||
|     (license l:gpl2+)))
 | ||
| 
 | ||
| (define-public perl-www-curl
 | ||
|   (package
 | ||
|     (name "perl-www-curl")
 | ||
|     (version "4.17")
 | ||
|     (source (origin
 | ||
|               (method url-fetch)
 | ||
|               (uri (string-append
 | ||
|                     "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-"
 | ||
|                     version".tar.gz"))
 | ||
|               (sha256
 | ||
|                (base32
 | ||
|                 "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (arguments
 | ||
|      '(#:tests? #f))                        ;XXX: tests require network access
 | ||
|     (inputs `(("curl" ,curl)))
 | ||
|     (synopsis "Perl extension interface for libcurl")
 | ||
|     (description
 | ||
|      "This is a Perl extension interface for the libcurl file downloading
 | ||
| library.")
 | ||
|     (license (package-license perl))
 | ||
|     (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm")))
 | ||
| 
 | ||
| (define-public perl-io-socket-ssl
 | ||
|   (package
 | ||
|     (name "perl-io-socket-ssl")
 | ||
|     (version "2.002")
 | ||
|     (source (origin
 | ||
|               (method url-fetch)
 | ||
|               (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
 | ||
|                                   "IO-Socket-SSL-" version ".tar.gz"))
 | ||
|               (sha256
 | ||
|                (base32
 | ||
|                 "1mph52lw6x5v44wf8mw00llzi8pp6k5c4jnrnrvlacrlfv260jb8"))))
 | ||
|     (build-system perl-build-system)
 | ||
|     (propagated-inputs `(("perl-net-ssleay" ,perl-net-ssleay)))
 | ||
|     (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET")
 | ||
|     (description
 | ||
|      "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the
 | ||
| necessary functionality into the familiar IO::Socket interface and providing
 | ||
| secure defaults whenever possible.  This way existing applications can be made
 | ||
| SSL-aware without much effort, at least if you do blocking I/O and don't use
 | ||
| select or poll.")
 | ||
|     (license (package-license perl))
 | ||
|     (home-page "https://github.com/noxxi/p5-io-socket-ssl")))
 | ||
| 
 | ||
| (define-public polipo
 | ||
|   (package
 | ||
|     (name "polipo")
 | ||
|     (version "1.1.1")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method url-fetch)
 | ||
|        (uri (string-append
 | ||
|              "http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/polipo-"
 | ||
|              version ".tar.gz"))
 | ||
|        (sha256
 | ||
|         (base32
 | ||
|          "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2"))))
 | ||
|     (native-inputs `(("texinfo" ,texinfo)))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (arguments
 | ||
|      `(#:phases
 | ||
|        (alist-delete 'configure %standard-phases)
 | ||
|        #:make-flags (let ((out (assoc-ref %outputs "out")))
 | ||
|                       (list (string-append "PREFIX=" out)
 | ||
|                             (string-append "LOCAL_ROOT="
 | ||
|                                            out "/share/polipo/www")
 | ||
|                             "CC=gcc"))
 | ||
|        ;; No 'check' target.
 | ||
|        #:tests? #f))
 | ||
|     (home-page "http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/")
 | ||
|     (synopsis "Small caching web proxy")
 | ||
|     (description
 | ||
|      "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy
 | ||
| server).  It was primarily designed to be used by one person or a small group
 | ||
| of people.")
 | ||
|     (license l:expat)))
 | ||
| 
 | ||
| (define-public libyaml
 | ||
|   (package
 | ||
|     (name "libyaml")
 | ||
|     (version "0.1.5")
 | ||
|     (source
 | ||
|      (origin
 | ||
|        (method url-fetch)
 | ||
|        (uri (string-append
 | ||
|              "http://pyyaml.org/download/libyaml/yaml-"
 | ||
|              version ".tar.gz"))
 | ||
|        (sha256
 | ||
|         (base32
 | ||
|          "1vrv5ly58bkmcyc049ad180f2m8iav6l9h3v8l2fqdmrny7yx1zs"))))
 | ||
|     (build-system gnu-build-system)
 | ||
|     (home-page "http://pyyaml.org/wiki/LibYAML")
 | ||
|     (synopsis "YAML 1.1 parser and emitter written in C")
 | ||
|     (description
 | ||
|      "LibYAML is a YAML 1.1 parser and emitter written in C.")
 | ||
|     (license l:expat)))
 |