summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/web.scm710
1 files changed, 356 insertions, 354 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c977a1ee7d..07fcc21c31 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -325,158 +326,267 @@ 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
+(define-public tinyproxy
   (package
-    (name "perl-html-tagset")
-    (version "3.20")
+    (name "tinyproxy")
+    (version "1.8.3")
     (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/")))
+              (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-html-parser
+(define-public polipo
   (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")
+    (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
-     "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/")))
+     "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 perl-http-date
+(define-public libyaml
   (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")
+    (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
-     "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/")))
+     "LibYAML is a YAML 1.1 parser and emitter written in C.")
+    (license l:expat)))
 
-(define-public perl-uri
+(define-public libquvi-scripts
   (package
-    (name "perl-uri")
-    (version "1.60")
+    (name "libquvi-scripts")
+    (version "0.4.21")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/quvi/libquvi-scripts-" version ".tar.xz"))
+       (sha256
+        (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
+    (build-system gnu-build-system)
+    (home-page "http://quvi.sourceforge.net/")
+    (synopsis "Media stream URL parser")
+    (description "This package contains support scripts called by libquvi to
+parse media stream properties.")
+    (license l:lgpl2.1+)))
+
+(define-public libquvi
+  (package
+    (name "libquvi")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/quvi/libquvi-" version ".tar.xz"))
+       (sha256
+        (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("libquvi-scripts" ,libquvi-scripts)
+       ("lua" ,lua-5.1)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (arguments
+     ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
+     '(#:configure-flags
+       (let ((lua (assoc-ref %build-inputs "lua")))
+         (list
+          (string-append "liblua_CFLAGS=-I" lua "/include")
+          (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
+    (home-page "http://quvi.sourceforge.net/")
+    (synopsis "Media stream URL parser")
+    (description "libquvi is a library with a C API for parsing media stream
+URLs and extracting their actual media files.")
+    (license l:lgpl2.1+)))
+
+(define-public quvi
+  (package
+    (name "quvi")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/quvi/quvi-" version ".tar.xz"))
+       (sha256
+        (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("libquvi" ,libquvi)))
+    (home-page "http://quvi.sourceforge.net/")
+    (synopsis "Media stream URL parser")
+    (description "quvi is a command-line-tool suite to extract media files
+from streaming URLs.  It is a command-line wrapper for the libquvi library.")
+    (license l:lgpl2.1+)))
+
+
+(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/URI-"
+                   "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "0xr31mf7lfrwhyvlx4pzp6p7alls5gi4bj8pk5g89f5cckfd74hz"))))
+               "0m9d1vdphlyzybgmdanipwd9ndfvyjgk3hzw250r299jjgh3fqzp"))))
     (build-system perl-build-system)
     (license (package-license perl))
-    (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
+    (synopsis "Perl locale encoding determination")
     (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/")))
+     "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-lwp-mediatypes
+(define-public perl-file-listing
   (package
-    (name "perl-lwp-mediatypes")
-    (version "6.02")
+    (name "perl-file-listing")
+    (version "6.04")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/LWP-MediaTypes-"
+                   "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q"))))
+               "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
     (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-http-date" ,perl-http-date)))
     (license (package-license perl))
-    (synopsis "Perl module to guess the media type for a file or a URL")
+    (synopsis "Perl directory listing parser")
     (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/")))
+     "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-io-html
+(define-public perl-html-parser
   (package
-    (name "perl-io-html")
-    (version "1.00")
+    (name "perl-html-parser")
+    (version "3.71")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
+                   "mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
+               "00nqzdgl7c3jilx7mil19k5jwcw3as14pvkjgxi97zyk94vqp4dy"))))
     (build-system perl-build-system)
+    (inputs
+     `(("perl-html-tagset" ,perl-html-tagset)))
     (license (package-license perl))
-    (synopsis "Perl module to open an HTML file with automatic charset detection")
+    (synopsis "Perl HTML parser class")
     (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/")))
+     "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-message
+(define-public perl-html-tagset
   (package
-    (name "perl-http-message")
-    (version "6.06")
+    (name "perl-html-tagset")
+    (version "3.20")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Message-"
+                   "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "0qxdrcak97azjvqyx1anpb2ky6vp6vc37x0wcfjdqfajkh09fzh8"))))
+               "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd"))))
     (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")
+    (synopsis "Perl data tables useful in parsing HTML")
     (description
-     "An HTTP::Message object contains some headers and a content body.")
-    (home-page "http://search.cpan.org/~gaas/HTTP-Message/")))
+     "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-http-cookies
   (package
@@ -525,126 +635,120 @@ 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
+(define-public perl-http-date
   (package
-    (name "perl-http-negotiate")
-    (version "6.01")
+    (name "perl-http-date")
+    (version "6.02")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
+                   "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Date-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
+               "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8"))))
     (build-system perl-build-system)
-    (propagated-inputs
-     `(("perl-http-message" ,perl-http-message)))
     (license (package-license perl))
-    (synopsis "Perl http content negotiation")
+    (synopsis "Perl date conversion routines")
     (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/")))
+     "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-www-robotrules
+(define-public perl-http-message
   (package
-    (name "perl-www-robotrules")
-    (version "6.02")
+    (name "perl-http-message")
+    (version "6.06")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-"
+                   "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Message-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6"))))
+               "0qxdrcak97azjvqyx1anpb2ky6vp6vc37x0wcfjdqfajkh09fzh8"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-uri" ,perl-uri)))
+     `(("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 database of robots.txt-derived permissions")
+    (synopsis "Perl HTTP style message")
     (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/")))
+     "An HTTP::Message object contains some headers and a content body.")
+    (home-page "http://search.cpan.org/~gaas/HTTP-Message/")))
 
-(define-public perl-net-http
+(define-public perl-http-negotiate
   (package
-    (name "perl-net-http")
-    (version "6.06")
+    (name "perl-http-negotiate")
+    (version "6.01")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/Net-HTTP-"
+                   "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "1m1rvniffadq99gsy25298ia3lixwymr6kan64jd3ylyi7nkqkhx"))))
+               "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
     (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-http-message" ,perl-http-message)))
     (license (package-license perl))
-    (synopsis "Perl low-level HTTP connection (client)")
+    (synopsis "Perl http content negotiation")
     (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/")))
+     "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-file-listing
+(define-public perl-io-html
   (package
-    (name "perl-file-listing")
-    (version "6.04")
+    (name "perl-io-html")
+    (version "1.00")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
+                   "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
+               "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
     (build-system perl-build-system)
-    (propagated-inputs
-     `(("perl-http-date" ,perl-http-date)))
     (license (package-license perl))
-    (synopsis "Perl directory listing parser")
+    (synopsis "Perl module to open an HTML file with automatic charset detection")
     (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/")))
+     "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-encode-locale
+(define-public perl-io-socket-ssl
   (package
-    (name "perl-encode-locale")
-    (version "1.03")
+    (name "perl-io-socket-ssl")
+    (version "2.002")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
-                   version ".tar.gz"))
-             (sha256
-              (base32
-               "0m9d1vdphlyzybgmdanipwd9ndfvyjgk3hzw250r299jjgh3fqzp"))))
+              (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)
-    (license (package-license perl))
-    (synopsis "Perl locale encoding determination")
+    (propagated-inputs `(("perl-net-ssleay" ,perl-net-ssleay)))
+    (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET")
     (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/")))
+     "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 perl-libwww
   (package
@@ -679,48 +783,70 @@ 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
+(define-public perl-lwp-mediatypes
   (package
-    (name "tinyproxy")
-    (version "1.8.3")
+    (name "perl-lwp-mediatypes")
+    (version "6.02")
     (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+)))
+             (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-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-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-www-curl
   (package
@@ -745,151 +871,27 @@ 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
+(define-public perl-www-robotrules
   (package
-    (name "perl-io-socket-ssl")
-    (version "2.002")
+    (name "perl-www-robotrules")
+    (version "6.02")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
-                                  "IO-Socket-SSL-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1mph52lw6x5v44wf8mw00llzi8pp6k5c4jnrnrvlacrlfv260jb8"))))
+             (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-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.")
+    (propagated-inputs
+     `(("perl-uri" ,perl-uri)))
     (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")
+    (synopsis "Perl database of robots.txt-derived permissions")
     (description
-     "LibYAML is a YAML 1.1 parser and emitter written in C.")
-    (license l:expat)))
-
-(define-public libquvi-scripts
-  (package
-    (name "libquvi-scripts")
-    (version "0.4.21")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "mirror://sourceforge/quvi/libquvi-scripts-" version ".tar.xz"))
-       (sha256
-        (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
-    (build-system gnu-build-system)
-    (home-page "http://quvi.sourceforge.net/")
-    (synopsis "Media stream URL parser")
-    (description "This package contains support scripts called by libquvi to
-parse media stream properties.")
-    (license l:lgpl2.1+)))
-
-(define-public libquvi
-  (package
-    (name "libquvi")
-    (version "0.4.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "mirror://sourceforge/quvi/libquvi-" version ".tar.xz"))
-       (sha256
-        (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("curl" ,curl)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("libquvi-scripts" ,libquvi-scripts)
-       ("lua" ,lua-5.1)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
-    (arguments
-     ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
-     '(#:configure-flags
-       (let ((lua (assoc-ref %build-inputs "lua")))
-         (list
-          (string-append "liblua_CFLAGS=-I" lua "/include")
-          (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
-    (home-page "http://quvi.sourceforge.net/")
-    (synopsis "Media stream URL parser")
-    (description "libquvi is a library with a C API for parsing media stream
-URLs and extracting their actual media files.")
-    (license l:lgpl2.1+)))
-
-(define-public quvi
-  (package
-    (name "quvi")
-    (version "0.4.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "mirror://sourceforge/quvi/quvi-" version ".tar.xz"))
-       (sha256
-        (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("curl" ,curl)
-       ("libquvi" ,libquvi)))
-    (home-page "http://quvi.sourceforge.net/")
-    (synopsis "Media stream URL parser")
-    (description "quvi is a command-line-tool suite to extract media files
-from streaming URLs.  It is a command-line wrapper for the libquvi library.")
-    (license l:lgpl2.1+)))
+     "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/")))