gnu: varnish: Use absolute file name of "rm".
[jackhill/guix/guix.git] / gnu / packages / web.scm
index e032313..26c2e91 100644 (file)
@@ -6,11 +6,11 @@
 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
+;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
+;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -60,6 +63,7 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system scons)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages check)
@@ -72,6 +76,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages gd)
   #:use-module (gnu packages gettext)
@@ -82,6 +87,7 @@
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages java)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openstack)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages python)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages curl)
 (define-public httpd
   (package
     (name "httpd")
-    (version "2.4.33")
+    (version "2.4.34")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/httpd/httpd-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "01bghiq4pbgjbgd6gic0nb8bbk6mfpwx3gcsbf21f3dhb4c520ny"))))
+               "1w1q2smdgf6ln0x741lk5pv5r0gzrxj2iza1vslhifzy65bcjlzs"))))
     (build-system gnu-build-system)
     (native-inputs `(("pcre" ,pcre "bin")))       ;for 'pcre-config'
     (inputs `(("apr" ,apr)
@@ -453,7 +462,7 @@ servers that may need it).")
        ("perl-net-server" ,perl-net-server)
        ("perl-plack" ,perl-plack)
        ("perl-test-tcp" ,perl-test-tcp)))
-    (home-page "http://search.cpan.org/dist/Starman")
+    (home-page "https://metacpan.org/release/Starman")
     (synopsis "PSGI/Plack web server")
     (description "Starman is a PSGI perl web server that has unique features
 such as high performance, preforking, signal support, superdaemon awareness,
@@ -686,8 +695,8 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.")
          (add-after 'wrap-program 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (with-directory-excursion "data"
-               (zero? (system* (string-append (assoc-ref outputs "out") "/bin/ktImportText")
-                               "ec.tsv"))))))))
+               (invoke (string-append (assoc-ref outputs "out") "/bin/ktImportText")
+                       "ec.tsv")))))))
    (inputs
     `(("perl" ,perl)))
    (home-page "https://github.com/marbl/Krona/wiki")
@@ -712,7 +721,14 @@ current version of any major web browser.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z"))))
+               "13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z"))
+             (modules '((guix build utils)))
+             (snippet
+              '(begin
+                 ;; Remove code using the problematic JSON license (see
+                 ;; <https://www.gnu.org/licenses/license-list.html#JSON>).
+                 (delete-file-recursively "bin/jsonchecker")
+                 #t))))
     (build-system cmake-build-system)
     (arguments
      `(,@(if (string-prefix? "aarch64" (or (%current-target-system)
@@ -745,6 +761,14 @@ style API.")
                (base32
                 "0nmcqpaiq4pv7dymyg3n3jsd57yhp5npxl26a1hzw3m3lmj37drz"))))
     (build-system cmake-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'patch-source-shebangs 'patch-tests
+           (lambda _
+             (substitute* "test/parsing/run_tests.sh"
+               (("`which echo`") (which "echo")))
+             #t)))))
     (home-page "https://lloyd.github.io/yajl/")
     (synopsis "C library for parsing JSON")
     (description
@@ -791,7 +815,7 @@ for efficient socket-like bidirectional reliable communication channels.")
 (define-public libpsl
   (package
     (name "libpsl")
-    (version "0.20.1")
+    (version "0.20.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rockdaboot/libpsl/"
@@ -799,7 +823,7 @@ for efficient socket-like bidirectional reliable communication channels.")
                                   "/libpsl-" version ".tar.gz"))
               (sha256
                (base32
-                "17r18y25ka2ck2ykfidbg4a7jpyzmkqwrzplgqjp7mwd2l9rc6cm"))))
+                "03sn3fbcrmgl9x2f1gc6rbrdlbrnwbhrnkgi733gqb95cvmhmzgq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -851,7 +875,7 @@ UTS#46.")
                       ;; source tree.
                       (copy-recursively "build/gnuauto" ".")
                       (setenv "AUTOMAKE" "automake --foreign")
-                      (zero? (system* "autoreconf" "-vfi")))))))
+                      (invoke "autoreconf" "-vfi"))))))
     (native-inputs
      `(("automake" ,automake)
        ("autoconf" ,autoconf)
@@ -865,7 +889,7 @@ used to validate and fix HTML data.")
 (define-public tinyproxy
   (package
     (name "tinyproxy")
-    (version "1.8.4")
+    (version "1.10.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/tinyproxy/tinyproxy/"
@@ -873,7 +897,7 @@ used to validate and fix HTML data.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "002hi97687czhfkwsjkr174yvlp10224qi6gd5s53z230bgls7x4"))))
+                "10jnk6y2swld25mm47mjc0nkffyzsfysnsxwr7cs0ns1kil8ggjr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -888,9 +912,6 @@ used to validate and fix HTML data.")
              ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
              ;; (setenv "XML_DEBUG_CATALOG" "1")
              #t)))))
-    ;; All of the below are used to generate the documentation
-    ;; (Should they be propagated inputs of asciidoc ??)
-    (native-inputs `(("asciidoc" ,asciidoc)))
     (home-page "https://tinyproxy.github.io/")
     (synopsis "Light-weight HTTP/HTTPS proxy daemon")
     (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
@@ -1021,17 +1042,16 @@ hash/signatures.")
 (define-public libyaml
   (package
     (name "libyaml")
-    (version "0.1.6")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "http://pyyaml.org/download/libyaml/yaml-"
              version ".tar.gz"))
-       (patches (search-patches "libyaml-CVE-2014-9130.patch"))
        (sha256
         (base32
-         "0j9731s5zjb8mjx7wzf6vh7bsqi38ay564x6s9nri2nh9cdrg9kx"))))
+         "0a87931cx5m14a1x8rbjix3nz7agrcgndf4h392vm62a4rby9240"))))
     (build-system gnu-build-system)
     (home-page "http://pyyaml.org/wiki/LibYAML")
     (synopsis "YAML 1.1 parser and emitter written in C")
@@ -1232,11 +1252,9 @@ minimum to provide high performance operation.")
            (delete 'configure)
            (add-after 'unpack 'unpack-libsass-and-set-path
              (lambda* (#:key inputs #:allow-other-keys)
-               (and (zero? (system* "tar" "xvf" (assoc-ref inputs "libsass")))
-                    (begin
-                      (setenv "SASS_LIBSASS_PATH"
-                              (string-append (getcwd) "/libsass-" ,version))
-                      #t)))))))
+               (invoke "tar" "xvf" (assoc-ref inputs "libsass"))
+               (setenv "SASS_LIBSASS_PATH"
+                       (string-append (getcwd) "/libsass-" ,version)))))))
       (inputs
        `(("libsass" ,libsass)))
       (synopsis "CSS pre-processor")
@@ -1268,7 +1286,7 @@ language known as SASS.")
     (propagated-inputs
      `(("perl-posix-strftime-compiler" ,perl-posix-strftime-compiler)))
     (arguments `(#:tests? #f))          ;TODO: Timezone test failures
-    (home-page "http://search.cpan.org/dist/Apache-LogFormat-Compiler")
+    (home-page "https://metacpan.org/release/Apache-LogFormat-Compiler")
     (synopsis "Compile a log format string to perl-code")
     (description "This module provides methods to compile a log format string
 to perl-code, for faster generation of access_log lines.")
@@ -1297,7 +1315,7 @@ to perl-code, for faster generation of access_log lines.")
     (propagated-inputs
      `(("perl-digest-hmac" ,perl-digest-hmac)
        ("perl-gssapi" ,perl-gssapi)))
-    (home-page "http://search.cpan.org/dist/Authen-SASL")
+    (home-page "https://metacpan.org/release/Authen-SASL")
     (synopsis "SASL authentication framework")
     (description "Authen::SASL provides an SASL authentication framework.")
     (license l:perl-license)))
@@ -1323,7 +1341,7 @@ to perl-code, for faster generation of access_log lines.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-data-visitor" ,perl-data-visitor)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Action-RenderView")
+    (home-page "https://metacpan.org/release/Catalyst-Action-RenderView")
     (synopsis "Sensible default Catalyst action")
     (description "This Catalyst action implements a sensible default end
 action, which will forward to the first available view.")
@@ -1356,7 +1374,7 @@ action, which will forward to the first available view.")
        ("perl-params-validate" ,perl-params-validate)
        ("perl-uri-find" ,perl-uri-find)
        ("perl-xml-simple" ,perl-xml-simple)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Action-REST")
+    (home-page "https://metacpan.org/release/Catalyst-Action-REST")
     (synopsis "Automated REST Method Dispatching")
     (description "This Action handles doing automatic method dispatching for
 REST requests.  It takes a normal Catalyst action, and changes the dispatch to
@@ -1394,7 +1412,7 @@ regular method.")
        ("perl-dbix-class" ,perl-dbix-class)
        ("perl-catalyst-model-dbic-schema" ,perl-catalyst-model-dbic-schema)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Authentication-Store-DBIx-Class")
+     "https://metacpan.org/release/Catalyst-Authentication-Store-DBIx-Class")
     (synopsis "Storage class for Catalyst authentication using DBIx::Class")
     (description "The Catalyst::Authentication::Store::DBIx::Class class
 provides access to authentication information stored in a database via
@@ -1421,7 +1439,7 @@ DBIx::Class.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-moose" ,perl-moose)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Component-InstancePerContext")
+     "https://metacpan.org/release/Catalyst-Component-InstancePerContext")
     (synopsis "Create only one instance of Moose component per context")
     (description "Catalyst::Component::InstancePerContext returns a new
 instance of a component on each request.")
@@ -1459,7 +1477,7 @@ instance of a component on each request.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-path-class" ,perl-path-class)
        ("perl-template-toolkit" ,perl-template-toolkit)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Devel")
+    (home-page "https://metacpan.org/release/Catalyst-Devel")
     (synopsis "Catalyst Development Tools")
     (description "The Catalyst-Devel distribution includes a variety of
 modules useful for the development of Catalyst applications, but not required
@@ -1489,7 +1507,7 @@ modules.")
     (propagated-inputs
      `(("perl-moose" ,perl-moose)
        ("perl-text-simpletable" ,perl-text-simpletable)))
-    (home-page "http://search.cpan.org/dist/Catalyst-DispatchType-Regex")
+    (home-page "https://metacpan.org/release/Catalyst-DispatchType-Regex")
     (synopsis "Regex DispatchType for Catalyst")
     (description "Dispatch type managing path-matching behaviour using
 regexes.  Regex dispatch types have been deprecated and removed from Catalyst
@@ -1539,7 +1557,7 @@ when the dispatch type is first seen in your application.")
      ("perl-namespace-clean" ,perl-namespace-clean)
      ("perl-tie-ixhash" ,perl-tie-ixhash)
      ("perl-try-tiny" ,perl-try-tiny)))
-  (home-page "http://search.cpan.org/dist/Catalyst-Model-DBIC-Schema")
+  (home-page "https://metacpan.org/release/Catalyst-Model-DBIC-Schema")
   (synopsis "DBIx::Class::Schema Model Class")
   (description "This is a Catalyst Model for DBIx::Class::Schema-based
 Models.")
@@ -1563,7 +1581,7 @@ Models.")
        ("perl-datetime" ,perl-datetime)
        ("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-AccessLog")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-AccessLog")
     (synopsis "Request logging from within Catalyst")
     (description "This Catalyst plugin enables you to create \"access logs\"
 from within a Catalyst application instead of requiring a webserver to do it
@@ -1598,7 +1616,7 @@ for you.  It will work even with Catalyst debug logging turned off.")
        ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
        ("perl-test-exception" ,perl-test-exception)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Authentication")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Authentication")
     (synopsis "Infrastructure plugin for the Catalyst authentication framework")
     (description "The authentication plugin provides generic user support for
 Catalyst apps.  It is the basis for both authentication (checking the user is
@@ -1630,7 +1648,7 @@ system authorises them to do).")
        ("perl-set-object" ,perl-set-object)
        ("perl-universal-isa" ,perl-universal-isa)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Plugin-Authorization-Roles")
+     "https://metacpan.org/release/Catalyst-Plugin-Authorization-Roles")
     (synopsis "Role-based authorization for Catalyst")
     (description "Catalyst::Plugin::Authorization::Roles provides role-based
 authorization for Catalyst based on Catalyst::Plugin::Authentication.")
@@ -1654,7 +1672,7 @@ authorization for Catalyst based on Catalyst::Plugin::Authentication.")
        ("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-gd-securityimage" ,perl-gd-securityimage)
        ("perl-http-date" ,perl-http-date)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Captcha")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Captcha")
     (synopsis "Captchas for Catalyst")
     (description "This plugin creates and validates Captcha images for
 Catalyst.")
@@ -1682,7 +1700,7 @@ Catalyst.")
        ("perl-config-any" ,perl-config-any)
        ("perl-data-visitor" ,perl-data-visitor)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-ConfigLoader")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-ConfigLoader")
     (synopsis "Load config files of various types")
     (description "This module will attempt to load find and load configuration
 files of various types.  Currently it supports YAML, JSON, XML, INI and Perl
@@ -1715,7 +1733,7 @@ formats.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-object-signature" ,perl-object-signature)
        ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Session")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Session")
     (synopsis "Catalyst generic session plugin")
     (description "This plugin links the two pieces required for session
 management in web applications together: the state, and the store.")
@@ -1744,7 +1762,7 @@ management in web applications together: the state, and the store.")
        ("perl-mro-compat" ,perl-mro-compat)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Plugin-Session-State-Cookie")
+     "https://metacpan.org/release/Catalyst-Plugin-Session-State-Cookie")
     (synopsis "Maintain session IDs using cookies")
     (description "In order for Catalyst::Plugin::Session to work, the session
 ID needs to be stored on the client, and the session data needs to be stored
@@ -1775,7 +1793,7 @@ cookie mechanism.")
        ("perl-mro-compat" ,perl-mro-compat)
        ("perl-path-class" ,perl-path-class)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Plugin-Session-Store-FastMmap")
+     "https://metacpan.org/release/Catalyst-Plugin-Session-Store-FastMmap")
     (synopsis "FastMmap session storage backend")
     (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
 storage plugin for Catalyst that uses an mmap'ed file to act as a shared
@@ -1801,7 +1819,7 @@ memory interprocess cache.  It is based on Cache::FastMmap.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-devel-stacktrace" ,perl-devel-stacktrace)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-StackTrace")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-StackTrace")
     (synopsis "Stack trace on the Catalyst debug screen")
     (description "This plugin enhances the standard Catalyst debug screen by
 including a stack trace of your application up to the point where the error
@@ -1830,7 +1848,7 @@ number, file name, and code context surrounding the line number.")
        ("perl-moose" ,perl-moose)
        ("perl-moosex-types" ,perl-moosex-types)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Static-Simple")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Static-Simple")
     (synopsis "Simple serving of static pages")
     (description "The Static::Simple plugin is designed to make serving static
 content in your application during development quick and easy, without
@@ -1844,31 +1862,27 @@ MIME type directly to the browser, without being processed through Catalyst.")
 (define-public perl-catalyst-runtime
   (package
     (name "perl-catalyst-runtime")
-    (version "5.90115")
+    (version "5.90118")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
+       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Catalyst-Runtime-" version ".tar.gz"))
        (sha256
         (base32
-         "0kh3ng6pjpxmndq9vrn515f70x7h44ish5bsgjwj4pjvchcyivzm"))))
+         "0cws3szx3vvh0372qdx8fypgv6qphcc3v81rbq30sl1ghby7ksd3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     `(("perl-test-fatal" ,perl-test-fatal)))
     (propagated-inputs
      `(("perl-cgi-simple" ,perl-cgi-simple)
        ("perl-cgi-struct" ,perl-cgi-struct)
        ("perl-class-c3-adopt-next" ,perl-class-c3-adopt-next)
-       ("perl-class-data-inheritable" ,perl-class-data-inheritable)
        ("perl-class-date" ,perl-class-date)
        ("perl-class-load" ,perl-class-load)
        ("perl-data-dump" ,perl-data-dump)
        ("perl-http-body" ,perl-http-body)
        ("perl-http-message" ,perl-http-message)
-       ("perl-http-request-ascgi" ,perl-http-request-ascgi)
-       ("perl-io-stringy" ,perl-io-stringy)
        ("perl-json-maybexs" ,perl-json-maybexs)
        ("perl-libwww" ,perl-libwww)
        ("perl-module-pluggable" ,perl-module-pluggable)
@@ -1877,8 +1891,6 @@ MIME type directly to the browser, without being processed through Catalyst.")
         ,perl-moosex-emulate-class-accessor-fast)
        ("perl-moosex-getopt" ,perl-moosex-getopt)
        ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)
-       ("perl-moosex-role-withoverloading" ,perl-moosex-role-withoverloading)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-path-class" ,perl-path-class)
        ("perl-plack" ,perl-plack)
@@ -1899,7 +1911,7 @@ MIME type directly to the browser, without being processed through Catalyst.")
        ("perl-try-tiny" ,perl-try-tiny)
        ("perl-uri" ,perl-uri)
        ("perl-uri-ws" ,perl-uri-ws)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Runtime")
+    (home-page "https://metacpan.org/release/Catalyst-Runtime")
     (synopsis "The Catalyst Framework Runtime")
     (description "Catalyst is a modern framework for making web applications.
 It is designed to make it easy to manage the various tasks you need to do to
@@ -1931,7 +1943,7 @@ run an application on the web, either by doing them itself, or by letting you
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("perl-uri" ,perl-uri)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-TraitFor-Request-ProxyBase")
+     "https://metacpan.org/release/Catalyst-TraitFor-Request-ProxyBase")
     (synopsis "Replace request base with value passed by HTTP proxy")
     (description "This module is a Moose::Role which allows you more
 flexibility in your application's deployment configurations when deployed
@@ -1959,7 +1971,7 @@ replaced with the contents of the X-Request-Base header.")
        ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)
        ("perl-text-csv" ,perl-text-csv)
        ("perl-xml-simple" ,perl-xml-simple)))
-    (home-page "http://search.cpan.org/dist/Catalyst-View-Download")
+    (home-page "https://metacpan.org/release/Catalyst-View-Download")
     (synopsis "Download data in many formats")
     (description "The purpose of this module is to provide a method for
 downloading data into many supportable formats.  For example, downloading a
@@ -1986,7 +1998,7 @@ table based report in a variety of formats (CSV, HTML, etc.).")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-json-maybexs" ,perl-json-maybexs)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-View-JSON")
+    (home-page "https://metacpan.org/release/Catalyst-View-JSON")
     (synopsis "Catalyst JSON view")
     (description "Catalyst::View::JSON is a Catalyst View handler that returns
 stash data in JSON format.")
@@ -2013,7 +2025,7 @@ stash data in JSON format.")
      ("perl-path-class" ,perl-path-class)
      ("perl-template-timer" ,perl-template-timer)
      ("perl-template-toolkit" ,perl-template-toolkit)))
-  (home-page "http://search.cpan.org/dist/Catalyst-View-TT")
+  (home-page "https://metacpan.org/release/Catalyst-View-TT")
   (synopsis "Template View Class")
   (description "This module is a Catalyst view class for the Template
 Toolkit.")
@@ -2043,7 +2055,7 @@ Toolkit.")
        ("perl-moosex-traits-pluggable" ,perl-moosex-traits-pluggable)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("perl-list-moreutils" ,perl-list-moreutils)))
-    (home-page "http://search.cpan.org/dist/CatalystX-Component-Traits")
+    (home-page "https://metacpan.org/release/CatalystX-Component-Traits")
     (synopsis "Trait Loading and Resolution for Catalyst Components")
     (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
 Catalyst component base class that reads the optional \"traits\" parameter
@@ -2069,7 +2081,7 @@ MooseX::Traits::Pluggable.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-moose" ,perl-moose)
        ("perl-moosex-relatedclassroles" ,perl-moosex-relatedclassroles)))
-    (home-page "http://search.cpan.org/dist/CatalystX-RoleApplicator")
+    (home-page "https://metacpan.org/release/CatalystX-RoleApplicator")
     (synopsis "Apply roles to Catalyst classes")
     (description "CatalystX::RoleApplicator applies roles to Catalyst
 application classes.")
@@ -2078,7 +2090,7 @@ application classes.")
 (define-public perl-catalystx-script-server-starman
   (package
     (name "perl-catalystx-script-server-starman")
-    (version "0.02")
+    (version "0.03")
     (source
      (origin
        (method url-fetch)
@@ -2087,7 +2099,7 @@ application classes.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0h02mpkc4cmi3jpvcd7iw7xyzx55bqvvl1qkf967gqkvpklm0qx5"))))
+         "08jvibq4v8xjj0c3cr93h0w8w0c88ajwjn37xjy7ygxl9krlffp6"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)
@@ -2097,7 +2109,7 @@ application classes.")
        ("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("starman" ,starman)))
-    (home-page "http://search.cpan.org/dist/CatalystX-Script-Server-Starman")
+    (home-page "https://metacpan.org/release/CatalystX-Script-Server-Starman")
     (synopsis "Catalyst development server with Starman")
     (description "This module provides a Catalyst extension to replace the
 development server with Starman.")
@@ -2106,7 +2118,7 @@ development server with Starman.")
 (define-public perl-cgi
   (package
     (name "perl-cgi")
-    (version "4.35")
+    (version "4.38")
     (source
      (origin
        (method url-fetch)
@@ -2114,7 +2126,7 @@ development server with Starman.")
                            "CGI-" version ".tar.gz"))
        (sha256
         (base32
-         "07gwnlc7vq58fjwmfsrv0hfyirqqdrpjhf89caq34rjrkz2wsd0b"))))
+         "1m779315rzj4mpgscw209a2wk18iwg2n8zibn8aak4mv56jz8n4c"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-deep" ,perl-test-deep)
@@ -2122,7 +2134,7 @@ development server with Starman.")
        ("perl-test-warn" ,perl-test-warn)))
     (propagated-inputs
      `(("perl-html-parser" ,perl-html-parser)))
-    (home-page "http://search.cpan.org/dist/CGI")
+    (home-page "https://metacpan.org/release/CGI")
     (synopsis "Handle Common Gateway Interface requests and responses")
     (description "CGI.pm is a stable, complete and mature solution for
 processing and preparing HTTP requests and responses.  Major features include
@@ -2131,6 +2143,30 @@ string generation and manipulation, and processing and preparing HTTP
 headers.")
     (license l:perl-license)))
 
+(define-public perl-cgi-formbuilder
+  (package
+    (name "perl-cgi-formbuilder")
+    (version "3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/"
+             "CGI-FormBuilder-" version ".tar.gz"))
+       (sha256
+        (base32
+         "163ixq9kninqq094z2rnkg9pv3bcmvjphlww4vksfrzhq3h9pjdf"))))
+    (build-system perl-build-system)
+    (inputs `(("perl-cgi" ,perl-cgi)))
+    (home-page
+     "https://metacpan.org/release/CGI-FormBuilder")
+    (synopsis
+     "Generate and process stateful forms")
+    (description
+     "@code{CGI::FormBuilder} provides an easy way to generate and process CGI
+form-based applications.")
+    (license l:perl-license)))
+
 (define-public perl-cgi-session
   (package
     (name "perl-cgi-session")
@@ -2150,7 +2186,7 @@ headers.")
      `(("perl-module-build" ,perl-module-build)))
     (inputs `(("perl-cgi" ,perl-cgi)))
     (home-page
-     "http://search.cpan.org/dist/CGI-Session")
+     "https://metacpan.org/release/CGI-Session")
     (synopsis
      "Persistent session data in CGI applications")
     (description
@@ -2161,20 +2197,22 @@ HTTP requests.")
 (define-public perl-cgi-simple
   (package
     (name "perl-cgi-simple")
-    (version "1.115")
+    (version "1.15")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/S/SZ/SZABGAB/"
+       (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
                            "CGI-Simple-" version ".tar.gz"))
        (sha256
         (base32
-         "1nkyb1m1g5r47xykflf68dplanih5p15njv82frbgbsms34kp1sg"))))
+         "013dcy9k4sj9alkksk5aqz65ryxw0rxgg71c7w666y941gd8n46q"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-io-stringy" ,perl-io-stringy))) ;for IO::Scalar
-    (home-page "http://search.cpan.org/dist/CGI-Simple")
+     `(("perl-io-stringy" ,perl-io-stringy) ; for IO::Scalar
+       ("perl-module-build" ,perl-module-build)
+       ("perl-test-exception" ,perl-test-exception)
+       ("perl-test-nowarnings" ,perl-test-nowarnings)))
+    (home-page "https://metacpan.org/release/CGI-Simple")
     (synopsis "CGI interface that is CGI.pm compliant")
     (description "CGI::Simple provides a relatively lightweight drop in
 replacement for CGI.pm.  It shares an identical OO interface to CGI.pm for
@@ -2196,7 +2234,7 @@ parameter parsing, file upload, cookie handling and header generation.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-deep" ,perl-test-deep)))
-    (home-page "http://search.cpan.org/dist/CGI-Struct")
+    (home-page "https://metacpan.org/release/CGI-Struct")
     (synopsis "Build structures from CGI data")
     (description "This is a module for building structured data from CGI
 inputs, in a manner reminiscent of how PHP does.")
@@ -2220,7 +2258,7 @@ inputs, in a manner reminiscent of how PHP does.")
     (propagated-inputs
      `(("perl-datetime" ,perl-datetime)
        ("perl-http-date" ,perl-http-date)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-HTTP")
+    (home-page "https://metacpan.org/release/DateTime-Format-HTTP")
     (synopsis "Date conversion routines")
     (description "This module provides functions that deal with the date
 formats used by the HTTP protocol.")
@@ -2241,7 +2279,7 @@ formats used by the HTTP protocol.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/Digest-MD5-File")
+    (home-page "https://metacpan.org/release/Digest-MD5-File")
     (synopsis "MD5 sums for files and urls")
     (description "Digest::MD5::File is a Perl extension for getting MD5 sums
 for files and urls.")
@@ -2271,7 +2309,7 @@ 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/")))
+    (home-page "https://metacpan.org/release/Encode-Locale")))
 
 (define-public perl-feed-find
   (package
@@ -2297,7 +2335,7 @@ with Encode::decode(locale => $string).")
        ("perl-html-parser" ,perl-html-parser)
        ("perl-libwww" ,perl-libwww)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/Feed-Find")
+    (home-page "https://metacpan.org/release/Feed-Find")
     (synopsis "Syndication feed auto-discovery")
     (description "@code{Feed::Find} implements feed auto-discovery for finding
 syndication feeds, given a URI.  It will discover the following feed formats:
@@ -2324,7 +2362,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
     (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/")))
+    (home-page "https://metacpan.org/release/File-Listing")))
 
 (define-public perl-finance-quote
   (package
@@ -2353,7 +2391,7 @@ which can be used to parse directory listings.")
       ("perl-libwww" ,perl-libwww)
       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
       ("perl-uri" ,perl-uri)))
-   (home-page "http://search.cpan.org/dist/Finance-Quote")
+   (home-page "https://metacpan.org/release/Finance-Quote")
    (synopsis "Stock and mutual fund quotes")
    (description
     "Finance::Quote gets stock quotes from various internet sources, including
@@ -2377,7 +2415,7 @@ Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
     (arguments
      `(#:make-maker-flags
        `(,(string-append "--gssapiimpl=" (assoc-ref %build-inputs "gssapi")))))
-    (home-page "http://search.cpan.org/dist/GSSAPI")
+    (home-page "https://metacpan.org/release/GSSAPI")
     (synopsis "Perl extension providing access to the GSSAPIv2 library")
     (description "This is a Perl extension for using GSSAPI C bindings as
 described in RFC 2744.")
@@ -2398,7 +2436,7 @@ described in RFC 2744.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-html-tree" ,perl-html-tree)))
-    (home-page "http://search.cpan.org/dist/HTML-Element-Extended")
+    (home-page "https://metacpan.org/release/HTML-Element-Extended")
     (synopsis "Manipulate tables of HTML::Element")
     (description
      "HTML::Element::Extended is a Perl extension for manipulating a table
@@ -2424,7 +2462,7 @@ composed of HTML::Element style components.")
        ("perl-http-message" ,perl-http-message)
        ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/HTML-Form")
+    (home-page "https://metacpan.org/release/HTML-Form")
     (synopsis "Perl class representing an HTML form element")
     (description "Objects of the HTML::Form class represents a single HTML
 <form> ... </form> instance.")
@@ -2455,7 +2493,7 @@ composed of HTML::Element style components.")
     (inputs
      `(("perl-html-parser" ,perl-html-parser)))
     (home-page
-     "http://search.cpan.org/dist/HTML-Scrubber")
+     "https://metacpan.org/release/HTML-Scrubber")
     (synopsis
      "Perl extension for scrubbing/sanitizing html")
     (description
@@ -2479,7 +2517,7 @@ composed of HTML::Element style components.")
      `(("perl-html-parser" ,perl-html-parser)
        ("perl-html-tagset" ,perl-html-tagset)
        ("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/HTML-Lint")
+    (home-page "https://metacpan.org/release/HTML-Lint")
     (synopsis "Check for HTML errors in a string or file")
     (description "HTML::Lint is a pure-Perl HTML parser and checker for
 syntactic legitmacy.")
@@ -2501,7 +2539,7 @@ syntactic legitmacy.")
     (propagated-inputs
      `(("perl-html-element-extended" ,perl-html-element-extended)
        ("perl-html-parser" ,perl-html-parser)))
-    (home-page "http://search.cpan.org/dist/HTML-TableExtract")
+    (home-page "https://metacpan.org/release/HTML-TableExtract")
     (synopsis "Extract contents from HTML tables")
     (description
      "HTML::TableExtract is a Perl module for extracting the content contained
@@ -2528,7 +2566,7 @@ in tables within an HTML document, either as text or encoded element trees.")
      `(("perl-html-parser" ,perl-html-parser)
        ("perl-html-tagset" ,perl-html-tagset)
        ("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/HTML-Tree")
+    (home-page "https://metacpan.org/release/HTML-Tree")
     (synopsis "Work with HTML in a DOM-like tree structure")
     (description "This distribution contains a suite of modules for
 representing, creating, and extracting information from HTML syntax trees.")
@@ -2557,7 +2595,7 @@ representing, creating, and extracting information from HTML syntax trees.")
 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/")))
+    (home-page "https://metacpan.org/release/HTML-Parser")))
 
 (define-public perl-html-tagset
   (package
@@ -2577,7 +2615,7 @@ are invoked.")
     (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/")))
+    (home-page "https://metacpan.org/release/HTML-Tagset")))
 
 (define-public perl-html-template
   (package
@@ -2593,7 +2631,7 @@ kinds of HTML parsing operations.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-cgi" ,perl-cgi)))
-    (home-page "http://search.cpan.org/dist/HTML-Template")
+    (home-page "https://metacpan.org/release/HTML-Template")
     (synopsis "HTML-like templates")
     (description
      "This module attempts to make using HTML templates simple and natural.
@@ -2623,7 +2661,7 @@ you to separate design from the data.")
     (propagated-inputs
      `(("perl-file-temp" ,perl-file-temp)
        ("perl-http-message" ,perl-http-message))) ;For HTTP::Headers
-    (home-page "http://search.cpan.org/dist/HTTP-Body")
+    (home-page "https://metacpan.org/release/HTTP-Body")
     (synopsis "HTTP Body Parser")
     (description "HTTP::Body parses chunks of HTTP POST data and supports
 application/octet-stream, application/json, application/x-www-form-urlencoded,
@@ -2651,7 +2689,7 @@ and multipart/form-data.")
     (inputs
      `(("perl-time-local" ,perl-time-local)
        ("perl-http-date" ,perl-http-date)))
-    (home-page "http://search.cpan.org/dist/HTTP-CookieJar")
+    (home-page "https://metacpan.org/release/HTTP-CookieJar")
     (synopsis "Minimalist HTTP user agent cookie jar")
     (description "This module implements a minimalist HTTP user agent cookie
 jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
@@ -2678,7 +2716,7 @@ jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
      "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/")))
+    (home-page "https://metacpan.org/release/GAAS/HTTP-Cookies-6.01")))
 
 (define-public perl-http-daemon
   (package
@@ -2702,7 +2740,7 @@ object knows about.")
      "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/")))
+    (home-page "https://metacpan.org/release/HTTP-Daemon")))
 
 (define-public perl-http-date
   (package
@@ -2722,7 +2760,7 @@ IO::Socket::INET, so you can perform socket operations directly on it too.")
     (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/")))
+    (home-page "https://metacpan.org/release/HTTP-Date")))
 
 (define-public perl-http-message
   (package
@@ -2749,7 +2787,7 @@ used by the HTTP protocol (and then some more).")
     (synopsis "Perl HTTP style message")
     (description
      "An HTTP::Message object contains some headers and a content body.")
-    (home-page "http://search.cpan.org/~ether/HTTP-Message/")))
+    (home-page "https://metacpan.org/release/ETHER/HTTP-Message-6.11")))
 
 (define-public perl-http-negotiate
   (package
@@ -2775,7 +2813,7 @@ 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/")))
+    (home-page "https://metacpan.org/release/HTTP-Negotiate")))
 
 (define-public perl-http-parser
   (package
@@ -2793,7 +2831,7 @@ fields in the request.")
     (propagated-inputs
      `(("perl-http-message" ,perl-http-message)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/HTTP-Parser")
+    (home-page "https://metacpan.org/release/HTTP-Parser")
     (synopsis "Parse HTTP/1.1 requests")
     (description "This is an HTTP request parser.  It takes chunks of text as
 received and returns a 'hint' as to what is required, or returns the
@@ -2816,7 +2854,7 @@ supported.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/HTTP-Parser-XS")
+    (home-page "https://metacpan.org/release/HTTP-Parser-XS")
     (synopsis "Fast HTTP request parser")
     (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
 parser.")
@@ -2838,7 +2876,7 @@ parser.")
     (propagated-inputs
      `(("perl-class-accessor" ,perl-class-accessor)
        ("perl-http-message" ,perl-http-message)))
-    (home-page "http://search.cpan.org/dist/HTTP-Request-AsCGI")
+    (home-page "https://metacpan.org/release/HTTP-Request-AsCGI")
     (synopsis "Set up a CGI environment from an HTTP::Request")
     (description "This module provides a convenient way to set up a CGI
 environment from an HTTP::Request.")
@@ -2872,7 +2910,7 @@ environment from an HTTP::Request.")
                                (string-append (getcwd) ":"
                                               (getenv "PERL5LIB")))
                        #t)))))
-    (home-page "http://search.cpan.org/dist/HTTP-Server-Simple")
+    (home-page "https://metacpan.org/release/HTTP-Server-Simple")
     (synopsis "Lightweight HTTP server")
     (description "HTTP::Server::Simple is a simple standalone HTTP daemon with
 no non-core module dependencies.  It can be used for building a standalone
@@ -2882,7 +2920,7 @@ http-based UI to your existing tools.")
 (define-public perl-http-tiny
   (package
     (name "perl-http-tiny")
-    (version "0.070")
+    (version "0.076")
     (source
      (origin
        (method url-fetch)
@@ -2890,7 +2928,7 @@ http-based UI to your existing tools.")
                            "HTTP-Tiny-" version ".tar.gz"))
        (sha256
         (base32
-         "0cvp5yqrni6qydpsa8fpkbm82zfwmy9js8jsvyj8gs3dx78qbwvl"))))
+         "11wkxxqj3ff84rgj9q2gzkdgscwp3fzj205846k9ycqinlpsmgfx"))))
     (build-system perl-build-system)
     (inputs
      `(("perl-http-cookiejar" ,perl-http-cookiejar)
@@ -2898,7 +2936,7 @@ http-based UI to your existing tools.")
        ("perl-io-socket-ssl" ,perl-io-socket-ssl)
        ("perl-mozilla-ca" ,perl-mozilla-ca)
        ("perl-net-ssleay" ,perl-net-ssleay)))
-    (home-page "http://search.cpan.org/dist/HTTP-Tiny")
+    (home-page "https://metacpan.org/release/HTTP-Tiny")
     (synopsis "HTTP/1.1 client")
     (description "This is a very simple HTTP/1.1 client, designed for doing
 simple requests without the overhead of a large framework like LWP::UserAgent.
@@ -2924,7 +2962,7 @@ It supports proxies and redirection.  It also correctly resumes after EINTR.")
      "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/")))
+    (home-page "https://metacpan.org/release/IO-HTML")))
 
 (define-public perl-io-socket-ip
   (package
@@ -2940,7 +2978,7 @@ algorithm specified in section 8.2.2.1 of the draft standard.")
          "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/IO-Socket-IP")
+    (home-page "https://metacpan.org/release/IO-Socket-IP")
     (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
     (description "This module provides a protocol-independent way to use IPv4
 and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
@@ -2977,7 +3015,7 @@ select or poll.")
 (define-public perl-libwww
   (package
     (name "perl-libwww")
-    (version "6.15")
+    (version "6.35")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -2985,8 +3023,12 @@ select or poll.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "08l3mpgcvm4ipn1zggymqgk402apf35xyds43i8c07hvq92rsd3g"))))
+               "0lsrr8r61b67f9wrynkhdhldw5yic4d7cd78zi52q59jgf6mg8nx"))))
     (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-fatal" ,perl-test-fatal)
+       ("perl-test-needs" ,perl-test-needs)
+       ("perl-test-requiresinternet", perl-test-requiresinternet)))
     (propagated-inputs
      `(("perl-encode-locale" ,perl-encode-locale)
        ("perl-file-listing" ,perl-file-listing)
@@ -2997,6 +3039,7 @@ select or poll.")
        ("perl-http-message" ,perl-http-message)
        ("perl-http-negotiate" ,perl-http-negotiate)
        ("perl-net-http" ,perl-net-http)
+       ("perl-try-tiny" ,perl-try-tiny)
        ("perl-uri" ,perl-uri)
        ("perl-www-robotrules" ,perl-www-robotrules)))
     (license l:perl-license)
@@ -3008,7 +3051,7 @@ 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/dist/libwww-perl/")))
+    (home-page "https://metacpan.org/release/libwww-perl")))
 
 (define-public perl-lwp-online
   (package
@@ -3029,7 +3072,7 @@ help you implement simple HTTP servers.")
        ("perl-uri" ,perl-uri)))
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/LWP-Online/")
+    (home-page "https://metacpan.org/release/LWP-Online")
     (synopsis "Checks whether your process has access to the web")
     (description "This module attempts to answer, as accurately as it can, one
 of the nastiest technical questions there is: am I on the internet?
@@ -3059,28 +3102,31 @@ not have DNS.  We might not have a network card at all!")
 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/")))
+    (home-page "https://metacpan.org/release/LWP-MediaTypes")))
 
 (define-public perl-lwp-protocol-https
   (package
     (name "perl-lwp-protocol-https")
-    (version "6.06")
+    (version "6.07")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/M/MS/MSCHILLI/"
+       (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
                            "LWP-Protocol-https-" version ".tar.gz"))
        (sha256
         (base32
-         "1vxdjqj4bwq56m9h1bqqwkk3c6jr76f2zqzvwa26yjng3p686v5q"))))
+         "1rxrpwylfw1afah0nk96kgkwjbl2p1a7lwx50iipg8c4rx3cjb2j"))))
     (build-system perl-build-system)
+    (native-inputs
+     ;; For tests.
+     `(("perl-test-requiresinternet" ,perl-test-requiresinternet)))
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
        ("perl-libwww" ,perl-libwww)
        ;; Users should instead make sure SSL_ca_path is set properly.
        ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
        ("perl-net-http" ,perl-net-http)))
-    (home-page "http://search.cpan.org/dist/LWP-Protocol-https")
+    (home-page "https://metacpan.org/release/LWP-Protocol-https")
     (synopsis "HTTPS support for LWP::UserAgent")
     (description "The LWP::Protocol::https module provides support for using
 https schemed URLs with LWP.")
@@ -3101,7 +3147,7 @@ https schemed URLs with LWP.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/LWP-UserAgent-Determined")
+    (home-page "https://metacpan.org/release/LWP-UserAgent-Determined")
     (synopsis "Virtual browser that retries errors")
     (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
 except that when you use it to get a web page but run into a
@@ -3147,7 +3193,7 @@ and retry a few times.")
        ("perl-term-progressbar-simple" ,perl-term-progressbar-simple)
        ("perl-uri" ,perl-uri)
        ("perl-xml-libxml" ,perl-xml-libxml)))
-    (home-page "http://search.cpan.org/dist/Net-Amazon-S3")
+    (home-page "https://metacpan.org/release/Net-Amazon-S3")
     (synopsis "Perl interface to Amazon S3")
     (description "This module provides a Perlish interface to Amazon S3.")
     (license l:perl-license)))
@@ -3155,15 +3201,15 @@ and retry a few times.")
 (define-public perl-net-http
   (package
     (name "perl-net-http")
-    (version "6.07")
+    (version "6.18")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/M/MS/MSCHILLI/Net-HTTP-"
-                   version ".tar.gz"))
+                   "mirror://cpan/authors/id/O/OA/OALDERS/"
+                   "Net-HTTP-" version ".tar.gz"))
              (sha256
               (base32
-               "0r034hhci0yqbrkrh1gv6vi5g3i0kpd1k84z62nk02asb8rf0ccz"))))
+               "074mp9s37q1j290xa3qj1wwgalzla328i2zpnh73xkmdnwnxyhky"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
@@ -3175,7 +3221,7 @@ and retry a few times.")
 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/dist/Net-HTTP")))
+    (home-page "https://metacpan.org/release/Net-HTTP")))
 
 (define-public perl-net-server
   (package
@@ -3190,7 +3236,7 @@ HTTP/1.1.")
         (base32
          "0gw1k9gcw7habbkxvsfa2gz34brlbwcidk6khgsf1qjm0dbccrw2"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Net-Server")
+    (home-page "https://metacpan.org/release/Net-Server")
     (synopsis "Extensible Perl server engine")
     (description "Net::Server is an extensible, generic Perl server engine.
 It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
@@ -3219,7 +3265,7 @@ or to multiple server ports.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
-    (home-page "http://search.cpan.org/dist/Net-SMTP-SSL")
+    (home-page "https://metacpan.org/release/Net-SMTP-SSL")
     (synopsis "SSL support for Net::SMTP")
     (description "SSL support for Net::SMTP.")
     (license l:perl-license)))
@@ -3254,7 +3300,7 @@ or to multiple server ports.")
        ("perl-test-tcp" ,perl-test-tcp)
        ("perl-try-tiny" ,perl-try-tiny)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/Plack")
+    (home-page "https://metacpan.org/release/Plack")
     (synopsis "Perl Superglue for Web frameworks and servers (PSGI toolkit)")
     (description "Plack is a set of tools for using the PSGI stack.  It
 contains middleware components, a reference server, and utilities for Web
@@ -3281,7 +3327,7 @@ WSGI.")
        ("perl-http-message" ,perl-http-message)
        ("perl-plack" ,perl-plack)))     ;for Plack::Test
     (home-page
-     "http://search.cpan.org/dist/Plack-Middleware-FixMissingBodyInRedirect")
+     "https://metacpan.org/release/Plack-Middleware-FixMissingBodyInRedirect")
     (synopsis "Plack::Middleware which sets body for redirect response")
     (description "This module sets the body in redirect response, if it's not
 already set.")
@@ -3305,7 +3351,7 @@ already set.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
-    (home-page "http://search.cpan.org/dist/Plack-Middleware-MethodOverride")
+    (home-page "https://metacpan.org/release/Plack-Middleware-MethodOverride")
     (synopsis "Override REST methods to Plack apps via POST")
     (description "This middleware allows for POST requests that pretend to be
 something else: by adding either a header named X-HTTP-Method-Override to the
@@ -3330,7 +3376,7 @@ can say what method it actually meant.")
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
     (home-page
-     "http://search.cpan.org/dist/Plack-Middleware-RemoveRedundantBody")
+     "https://metacpan.org/release/Plack-Middleware-RemoveRedundantBody")
     (synopsis "Plack::Middleware which removes body for HTTP response")
     (description "This module removes the body in an HTTP response if it's not
 required.")
@@ -3354,7 +3400,7 @@ required.")
      `(("perl-module-install" ,perl-module-install)))
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
-    (home-page "http://search.cpan.org/dist/Plack-Middleware-ReverseProxy")
+    (home-page "https://metacpan.org/release/Plack-Middleware-ReverseProxy")
     (synopsis "Supports app to run as a reverse proxy backend")
     (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
 which are changed by reverse-proxy.  You can specify the reverse proxy address
@@ -3376,7 +3422,7 @@ and stop fake requests using 'enable_if' directive in your app.psgi.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
-    (home-page "http://search.cpan.org/dist/Plack-Test-ExternalServer")
+    (home-page "https://metacpan.org/release/Plack-Test-ExternalServer")
     (synopsis "Run HTTP tests on external live servers")
     (description "This module allows your to run your Plack::Test tests
 against an external server instead of just against a local application through
@@ -3399,7 +3445,7 @@ either mocked HTTP or a locally spawned server.")
     (propagated-inputs
      `(("perl-test-sharedfork" ,perl-test-sharedfork)))
     (arguments `(#:tests? #f))          ;related to signaling in t/05_sigint.t
-    (home-page "http://search.cpan.org/dist/Test-TCP")
+    (home-page "https://metacpan.org/release/Test-TCP")
     (synopsis "Testing TCP programs")
     (description "Test::TCP is test utilities for TCP/IP programs.")
     (license l:perl-license)))
@@ -3425,7 +3471,7 @@ either mocked HTTP or a locally spawned server.")
        ("perl-libwww" ,perl-libwww)
        ("perl-test-longstring" ,perl-test-longstring)
        ("perl-www-mechanize" ,perl-www-mechanize)))
-    (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize")
+    (home-page "https://metacpan.org/release/Test-WWW-Mechanize")
     (synopsis "Testing-specific WWW::Mechanize subclass")
     (description "Test::WWW::Mechanize is a subclass of the Perl module
 WWW::Mechanize that incorporates features for web application testing.")
@@ -3460,7 +3506,7 @@ WWW::Mechanize that incorporates features for web application testing.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-test-www-mechanize" ,perl-test-www-mechanize)
        ("perl-www-mechanize" ,perl-www-mechanize)))
-    (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-Catalyst")
+    (home-page "https://metacpan.org/release/Test-WWW-Mechanize-Catalyst")
     (synopsis "Test::WWW::Mechanize for Catalyst")
     (description "The Test::WWW::Mechanize::Catalyst module meshes the
 Test::WWW:Mechanize module and the Catalyst web application framework to allow
@@ -3485,7 +3531,7 @@ testing of Catalyst applications without needing to start up a web server.")
     (propagated-inputs
      `(("perl-plack" ,perl-plack)
        ("perl-test-www-mechanize" ,perl-test-www-mechanize)))
-    (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-PSGI")
+    (home-page "https://metacpan.org/release/Test-WWW-Mechanize-PSGI")
     (synopsis "Test PSGI programs using WWW::Mechanize")
     (description "PSGI is a specification to decouple web server environments
 from web application framework code.  Test::WWW::Mechanize is a subclass of
@@ -3515,7 +3561,7 @@ applications.")
      "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/dist/URI/")))
+    (home-page "https://metacpan.org/release/URI")))
 
 (define-public perl-uri-fetch
   (package
@@ -3535,7 +3581,7 @@ and updated by RFC 2732.")
      `(("perl-class-errorhandler" ,perl-class-errorhandler)
        ("perl-libwww" ,perl-libwww)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/URI-Fetch")
+    (home-page "https://metacpan.org/release/URI-Fetch")
     (synopsis "Smart URI fetching/caching")
     (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
 notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
@@ -3559,7 +3605,7 @@ and time-saving way.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/URI-Find")
+    (home-page "https://metacpan.org/release/URI-Find")
     (synopsis "Find URIs in arbitrary text")
     (description "This module finds URIs and URLs (according to what URI.pm
 considers a URI) in plain text.  It only finds URIs which include a
@@ -3582,7 +3628,7 @@ URI::Find::Schemeless.  For a command-line interface, urifind is provided.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/URI-ws")
+    (home-page "https://metacpan.org/release/URI-ws")
     (synopsis "WebSocket support for URI package")
     (description "With this module, the URI package provides the same set of
 methods for WebSocket URIs as it does for HTTP URIs.")
@@ -3591,14 +3637,14 @@ methods for WebSocket URIs as it does for HTTP URIs.")
 (define-public perl-uri-template
   (package
     (name "perl-uri-template")
-    (version "0.22")
+    (version "0.23")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "08kjjb4c0v9gqfrfnj1wkivylxl05finn11ra64dj136fhmnyrbg"))))
+                "0nnijyv4n5qfg7l94j7fmvqy9cbq3gl9sz9anmgsiprmkmpk419j"))))
     (build-system perl-build-system)
     (inputs
      `(("perl-uri" ,perl-uri)))
@@ -3607,7 +3653,7 @@ methods for WebSocket URIs as it does for HTTP URIs.")
        ("perl-test-pod" ,perl-test-pod)
        ("perl-module-install" ,perl-module-install)
        ("perl-json" ,perl-json)))
-    (home-page "http://search.cpan.org/dist/URI-Template")
+    (home-page "https://metacpan.org/release/URI-Template")
     (synopsis "Object for handling URI templates")
     (description "This perl module provides a wrapper around URI templates as described in
 RFC 6570.")
@@ -3646,7 +3692,7 @@ RFC 6570.")
      "This is a Perl extension interface for the libcurl file downloading
 library.")
     (license l:perl-license)
-    (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm")))
+    (home-page "https://metacpan.org/release/WWW-Curl")))
 
 (define-public perl-www-mechanize
   (package
@@ -3676,7 +3722,7 @@ library.")
        ("perl-libwww" ,perl-libwww)
        ("perl-test-warn" ,perl-test-warn)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/WWW-Mechanize")
+    (home-page "https://metacpan.org/release/WWW-Mechanize")
     (synopsis "Web browsing in a Perl object")
     (description "WWW::Mechanize is a Perl module for stateful programmatic
 web browsing, used for automating interaction with websites.")
@@ -3713,7 +3759,7 @@ web browsing, used for automating interaction with websites.")
        ("perl-uri-template" ,perl-uri-template)
        ("perl-xml-feed" ,perl-xml-feed)
        ("perl-xml-libxml" ,perl-xml-libxml)))
-    (home-page "http://search.cpan.org/dist/WWW-OpenSearch")
+    (home-page "https://metacpan.org/release/WWW-OpenSearch")
     (synopsis "Search A9 OpenSearch compatible engines")
     (description
      "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
@@ -3743,7 +3789,7 @@ http://opensearch.a9.com} compatible search engines.")
 <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/")))
+    (home-page "https://metacpan.org/release/WWW-RobotRules")))
 
 (define-public python-feedparser
   (package
@@ -3774,15 +3820,17 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
 (define-public r-httpuv
   (package
     (name "r-httpuv")
-    (version "1.4.3")
+    (version "1.4.5")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httpuv" version))
               (sha256
                (base32
-                "15ghxcyg9h0za3qy077fnn3izbpihskvaqwsppm2s43a771imsf6"))))
+                "1ddpcarzf694h0gy5pdz7l5glqfv4hr9dmxb4vw7yqd0bga174gi"))))
     (build-system r-build-system)
-    (native-inputs `(("r-rcpp" ,r-rcpp)))
+    (native-inputs
+     `(("r-rcpp" ,r-rcpp)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("r-bh" ,r-bh)
        ("r-later" ,r-later)
@@ -3826,21 +3874,19 @@ in systems and applications.")
 (define-public r-servr
   (package
     (name "r-servr")
-    (version "0.9")
+    (version "0.10")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "servr" version))
               (sha256
                (base32
-                "0bs0i5mjfzxfshqz8i30nhn7kvgwly4fqn5bfq6dqfdrn7biai2x"))))
+                "0yz3igqsiyqnjj1ngh199zicg3spx4kbmvl0wc8i8xahk6l9g06v"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-httpuv" ,r-httpuv)
        ("r-jsonlite" ,r-jsonlite)
        ("r-mime" ,r-mime)
        ("r-xfun" ,r-xfun)))
-    (native-inputs
-     `(("r-rcpp" ,r-rcpp)))
     (home-page "https://github.com/yihui/servr")
     (synopsis "Simple HTTP server to serve static files or dynamic documents")
     (description
@@ -3909,14 +3955,14 @@ applications.")
 (define-public r-htmltable
   (package
     (name "r-htmltable")
-    (version "1.11.2")
+    (version "1.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "htmlTable" version))
        (sha256
         (base32
-         "1lbpi0kkk8b41w10scmlf27dg5azcv51a4q3p5bpqyphrnqp78k4"))))
+         "1n5136vb7mi4rxl5jgwdmdhn4mwv2pcqyw2mrj406ih4hy6hpxa2"))))
     (properties `((upstream-name . "htmlTable")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4000,14 +4046,14 @@ objects in HTML format.")
 (define-public r-rjson
   (package
     (name "r-rjson")
-    (version "0.2.18")
+    (version "0.2.20")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rjson" version))
        (sha256
         (base32
-         "18myz05ana8zlyqxi6i4xjs5vmafxln8459ab3ws5kk59c1ardfn"))))
+         "0v1zvdd3svnavklh7y5xbwrrkbvx6053r4c5hgnk7hz7bqg7qa1s"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/rjson")
     (synopsis "JSON library for R")
@@ -4046,14 +4092,14 @@ a pure C99 library.")
 (define-public uwsgi
   (package
     (name "uwsgi")
-    (version "2.0.17")
+    (version "2.0.17.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://projects.unbit.it/downloads/uwsgi-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1wlbaairsmhp6bx5wv282q9pgh6w7w6yrb8vxjznfaxrinsfkhix"))))
+                "0xxjb9dyivq5531birvxq2gnyxf2x5q7gz54440acra6qwsq4cfj"))))
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (arguments
@@ -4228,7 +4274,7 @@ tools they trust (e.g. wget).")
 (define netsurf-buildsystem
   (package
     (name "netsurf-buildsystem")
-    (version "1.6")
+    (version "1.7")
     (source
      (origin
        (method url-fetch)
@@ -4236,7 +4282,7 @@ tools they trust (e.g. wget).")
                            "buildsystem-" version ".tar.gz"))
        (sha256
         (base32
-         "0p5k708lcq8dip9xxck6hml32bjrbyipprm22bbsvdnsc0pqm71x"))))
+         "1q23aaycv35ma5471l1gxib8lfq2s9kprrkaqgfc926d04rlbmhw"))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)))
     (arguments
@@ -4267,7 +4313,7 @@ libraries.")
 (define-public libparserutils
   (package
     (name "libparserutils")
-    (version "0.2.3")
+    (version "0.2.4")
     (source
      (origin
        (method url-fetch)
@@ -4275,7 +4321,7 @@ libraries.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "01gzlsabgl6x0icd8758d9jqs8rrf9574bdkjainn04w3fs3znf5"))))
+         "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
@@ -4292,7 +4338,7 @@ C.  It is developed as part of the NetSurf project.")
 (define-public hubbub
   (package
     (name "hubbub")
-    (version "0.3.4")
+    (version "0.3.5")
     (source
      (origin
        (method url-fetch)
@@ -4300,7 +4346,7 @@ C.  It is developed as part of the NetSurf project.")
                            "lib" name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1shi4hv8drn9zy8f2f6yhnz2dqnpg5jkybvqhzggfjx1q35fbxz3"))
+         "13yq1k96a7972x4r71i9bcsz9yiglj0yx7lj0ziq5r94w5my70ma"))
        (patches (search-patches "hubbub-sort-entities.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -4354,6 +4400,11 @@ NetSurf project.")
                  "        addenv(\"PERL5LIB\", \""
                  (getenv "PERL5LIB")
                  "\");")))))
+         (add-after 'patch-source-shebangs 'patch-Makefile
+           (lambda _
+             (substitute* "Makefile.PL"
+               (("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
+             #t))
          (add-after 'install 'wrap-programs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
@@ -4378,16 +4429,17 @@ NetSurf project.")
        ("mercurial" ,mercurial)))
     (inputs
      `(("python" ,python-wrapper)
+       ("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
        ("perl-cgi-session" ,perl-cgi-session)
        ("perl-cgi-simple" ,perl-cgi-simple)
-       ("perl-json" ,perl-json)
-       ("perl-image-magick" ,perl-image-magick)
-       ("perl-uri" ,perl-uri)
+       ("perl-db-file" ,perl-db-file)
        ("perl-html-parser" ,perl-html-parser)
-       ("perl-uri" ,perl-uri)
-       ("perl-text-markdown-discount" ,perl-text-markdown-discount)
        ("perl-html-scrubber" ,perl-html-scrubber)
        ("perl-html-template" ,perl-html-template)
+       ("perl-image-magick" ,perl-image-magick)
+       ("perl-json" ,perl-json)
+       ("perl-text-markdown-discount" ,perl-text-markdown-discount)
+       ("perl-uri" ,perl-uri)
        ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
     (home-page "https://ikiwiki.info/")
     (synopsis "Wiki compiler, capable of generating HTML")
@@ -4400,7 +4452,7 @@ commenting.")
 (define-public libwapcaplet
   (package
     (name "libwapcaplet")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
@@ -4408,7 +4460,7 @@ commenting.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "15yr0pl6qa6biy36qkmd949ydbjzpqiaccpx3sprh4jknabsk1vv"))))
+         "134pljlm8kby1yy49826f0ixnpig8iqak6xpyl3aivagnsjnxzy8"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
@@ -4426,7 +4478,7 @@ developed as part of the Netsurf project.")
 (define-public libcss
   (package
     (name "libcss")
-    (version "0.7.0")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
@@ -4434,7 +4486,7 @@ developed as part of the Netsurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "16mns3h8vj7iw8myvgnw58q84irvbjlvfkxh8mdw6fbkjvaa7cnz"))))
+         "0pxdqbxn6brj03nv57bsvac5n70k4scn3r5msaw0jgn2k06lk81m"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
@@ -4454,7 +4506,7 @@ written in C.  It is developed as part of the NetSurf project.")
 (define-public libdom
   (package
     (name "libdom")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
@@ -4462,7 +4514,7 @@ written in C.  It is developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1zb7x2qwm6p11lph6j2vcyp4a0a8i1klkqilnk5vb4qmlzzpcv7i"))))
+         "1919757mdl3gii2pl6kzm8b1cal0h06r5nqd2y0kny6hc5yrhsp0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
@@ -4490,7 +4542,7 @@ developed as part of the NetSurf project.")
 (define-public libsvgtiny
   (package
     (name "libsvgtiny")
-    (version "0.1.6")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
@@ -4498,7 +4550,7 @@ developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "12ppy2r7m21ykrjgbf067cgi6dn48fkj7i4b7m64xl4dc13y0ah6"))))
+         "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
@@ -4521,7 +4573,7 @@ project.")
 (define-public libnsbmp
   (package
     (name "libnsbmp")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
@@ -4529,7 +4581,7 @@ project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "0y4a0gn4l6lq4z9183wix0mdsgalqyw24k19k8jr8sz4h3lb7jrb"))))
+         "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)))
@@ -4544,7 +4596,7 @@ written in C.  It is developed as part of the NetSurf project.")
 (define-public libnsgif
   (package
     (name "libnsgif")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -4552,7 +4604,7 @@ written in C.  It is developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1phwf0m24m6nd7096fw14hanl4f8gr9bcppi834lbik04agxk38a"))))
+         "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)))
@@ -4567,7 +4619,7 @@ C.  It is developed as part of the NetSurf project.")
 (define-public libnsutils
   (package
     (name "libnsutils")
-    (version "0.0.3")
+    (version "0.0.5")
     (source
      (origin
        (method url-fetch)
@@ -4575,7 +4627,7 @@ C.  It is developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "0wrxn4rcn7xrfnkmf60jafqn3n1kicgsdpnakd821q56bmqvzf0m"))))
+         "09w1rixps1iiq6wirjwxmd6h87llvjzvw565rahjb3rlyhcplfqf"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)))
@@ -4590,7 +4642,7 @@ developed as part of the NetSurf project.")
 (define-public libnspsl
   (package
     (name "libnspsl")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
@@ -4598,7 +4650,7 @@ developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "0wim5hwzwrfrvvap096whf79m2mnfivbqhqlh03ci9d89xb1w0y9"))))
+         "1rsk1k2a495axxgv8060s0p1phhhcxrv75252kllbkvr8id5kqld"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)))
@@ -4613,7 +4665,7 @@ Public Suffix List.  It is developed as part of the NetSurf project.")
 (define-public nsgenbind
   (package
     (name "nsgenbind")
-    (version "0.5")
+    (version "0.6")
     (source
      (origin
        (method url-fetch)
@@ -4621,7 +4673,7 @@ Public Suffix List.  It is developed as part of the NetSurf project.")
                            name "-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1iwjpdaan0njlhb9ir6a2q5vpxfmkqfldkvnqszqdz50b44vd1jv"))))
+         "0v1cb1rz5fix9ql31nzmglj7sybya6d12b2fkaypm1avcca59xwj"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
@@ -4641,7 +4693,7 @@ w3c webidl files and a binding configuration file.")
 (define-public netsurf
   (package
     (name "netsurf")
-    (version "3.7")
+    (version "3.8")
     (source
      (origin
        (method url-fetch)
@@ -4649,10 +4701,11 @@ w3c webidl files and a binding configuration file.")
                            "releases/source/netsurf-" version "-src.tar.gz"))
        (sha256
         (base32
-         "05kynfzzwd4fc03vbqdjpghh5xnk2yrh43w7vikak89vla30mhpg"))
+         "0hjm1h4m1i913y4mhkl7yqdifn8k70fwi58zdh6faypawzryc3m0"))
        (patches (search-patches "netsurf-system-utf8proc.patch"
                                 "netsurf-y2038-tests.patch"
-                                "netsurf-longer-test-timeout.patch"))))
+                                "netsurf-longer-test-timeout.patch"
+                                "netsurf-message-timestamp.patch"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
@@ -4781,7 +4834,7 @@ handling many of the web standards in use today.")
              (let* ((out (assoc-ref %outputs "out"))
                     (man (string-append out "/share/man/man1")))
                (with-directory-excursion man
-                 (zero? (system* "gzip" "elvi.1sr")))))))))
+                 (invoke "gzip" "elvi.1sr"))))))))
     (inputs
      `(("perl" ,perl)
        ("perl-www-opensearch" ,perl-www-opensearch)
@@ -4886,8 +4939,8 @@ on the fly.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out")))
                (setenv "CONFIG_SHELL" (which "bash"))
-               (zero? (system* "./configure"
-                               (string-append "--prefix=" out)))))))))
+               (invoke "./configure"
+                       (string-append "--prefix=" out))))))))
     (home-page "http://www.nocrew.org/software/httptunnel.html")
     (synopsis "Tunnel data connections through HTTP requests")
     (description "httptunnel creates a bidirectional virtual data connection
@@ -4900,7 +4953,7 @@ tools like SSH (Secure Shell) to reach the outside world.")
 (define-public stunnel
   (package
   (name "stunnel")
-  (version "5.45")
+  (version "5.48")
   (source
     (origin
       (method url-fetch)
@@ -4908,12 +4961,34 @@ tools like SSH (Secure Shell) to reach the outside world.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "1qrfb418skdcm7b3v30ixng1ng907f4rfv54zvgz8jwakf1l90jl"))))
+        "1pxqn9ixl80nrhfq12igyi874653jclji56hh9w24snf0aixa48h"))))
   (build-system gnu-build-system)
+  (native-inputs
+   ;; For tests.
+   `(("iproute" ,iproute)
+     ("netcat" ,netcat)
+     ("procps" ,procps)))
   (inputs `(("openssl" ,openssl)))
   (arguments
    `(#:configure-flags
-     (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))))
+     (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
+     #:phases
+     (modify-phases %standard-phases
+       (add-after 'unpack 'patch-output-directories
+         (lambda _
+           ;; Some (not all) Makefiles have a hard-coded incorrect docdir.
+           (substitute* (list "Makefile.in"
+                              "doc/Makefile.in"
+                              "tools/Makefile.in")
+             (("/doc/stunnel")
+              (string-append "/doc/" ,name "-" ,version)))
+           #t))
+       (add-before 'check 'patch-tests
+         (lambda _
+           (substitute* "tests/make_test"
+             (("/bin/sh ")
+              (string-append (which "sh") " ")))
+           #t)))))
   (home-page "https://www.stunnel.org")
   (synopsis "TLS proxy for clients or servers")
   (description "Stunnel is a proxy designed to add TLS encryption
@@ -4923,6 +4998,102 @@ scalability (including load-balancing), making it suitable for large
 deployments.")
   (license l:gpl2+)))
 
+(define-public varnish
+  (package
+    (name "varnish")
+    (home-page "https://varnish-cache.org/")
+    (version "6.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
+              (sha256
+               (base32
+                "1vhbdch33m6ig4ijy57zvrramhs9n7cba85wd8rizgxjjnf87cn7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
+                               ;; Use absolute path of GCC so it's found at runtime.
+                               (string-append "PTHREAD_CC="
+                                              (assoc-ref %build-inputs "gcc")
+                                              "/bin/gcc")
+                               "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'use-absolute-file-names
+           (lambda _
+             (substitute* '("bin/varnishtest/vtc_varnish.c"
+                            "bin/varnishtest/vtc_process.c"
+                            "bin/varnishd/mgt/mgt_vcc.c")
+               (("/bin/sh") (which "sh")))
+             (substitute* "bin/varnishd/mgt/mgt_shmem.c"
+               (("rm -rf") (string-append (which "rm") " -rf")))
+             #t))
+         (add-before 'install 'patch-Makefile
+           (lambda _
+             (substitute* "Makefile"
+               ;; Do not create /var/varnish during install.
+               (("^install-data-am: install-data-local") "install-data-am: "))
+             #t))
+         (add-after 'install 'wrap-varnishd
+           ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
+           ;; environment variables to avoid propagating them to profiles.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (varnishd (string-append out "/sbin/varnishd"))
+                    (PATH (string-append (assoc-ref inputs "binutils") "/bin"))
+                    (LIBRARY_PATH (string-append (assoc-ref inputs "libc") "/lib")))
+               (wrap-program varnishd
+                 ;; Add binutils to PATH so gcc finds the 'as' executable.
+                 `("PATH" ":" prefix (,PATH))
+                 ;; Make sure 'crti.o' et.al is found.
+                 `("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("rst2man" ,python-docutils)))
+    (inputs
+     `(("jemalloc" ,jemalloc)
+       ("ncurses" ,ncurses)
+       ("pcre" ,pcre)
+       ("python" ,python-wrapper)
+       ("readline" ,readline)))
+    (synopsis "Web application accelerator")
+    (description
+     "Varnish is a high-performance HTTP accelerator.  It acts as a caching
+reverse proxy and load balancer.  You install it in front of any server that
+speaks HTTP and configure it to cache the contents through an extensive
+configuration language.")
+    (license (list l:bsd-2           ;main distribution
+                   l:zlib            ;lib/libvgz/*
+                   l:public-domain   ;bin/varnishncsa/as64.c, include/miniobj.h
+                   l:bsd-3))))       ;include/vqueue.h, lib/libvarnishcompat/daemon.c
+
+(define-public varnish-modules
+  (package
+    (name "varnish-modules")
+    (home-page "https://github.com/varnish/varnish-modules")
+    (version "0.15.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://download.varnish-software.com"
+                                  "/varnish-modules/varnish-modules-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "09li9lqa1kb275w1rby2zldyg8r9cfcl4qyv53qyd9xbzilrz751"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python" ,python)
+       ("varnish" ,varnish)))
+    (synopsis "Collection of Varnish modules")
+    (description
+     "This package provides a collection of modules (@dfn{vmods}) for the Varnish
+cache server, extending the @dfn{Varnish Configuration Language} (VCL) with
+additional capabilities.")
+    (license l:bsd-2)))
+
 (define-public xinetd
   (package
     (name "xinetd")
@@ -5237,12 +5408,12 @@ command-line arguments or read from stdin.")
              (add-installed-pythonpath inputs outputs)
              (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
                                            ":" (getenv "PATH")))
-             (zero? (system* "py.test" "-v" "-k"
-                             (string-append
-                              ;; These tests attempt to make a connection to
-                              ;; an external web service.
-                              "not test_get_item_with_kwargs"
-                              " and not test_ia"))))))))
+             (invoke "py.test" "-v" "-k"
+                     (string-append
+                      ;; These tests attempt to make a connection to
+                      ;; an external web service.
+                      "not test_get_item_with_kwargs"
+                      " and not test_ia")))))))
     (propagated-inputs
      `(("python-requests" ,python-requests)
        ("python-jsonpatch" ,python-jsonpatch-0.4)
@@ -5303,14 +5474,15 @@ internetarchive python module for programatic access to archive.org.")
          (modify-phases %standard-phases
            (add-after 'unpack 'get-tests
              (lambda _
-               (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")))
+               (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")
+               #t))
            (replace 'check
              (lambda _
-               (zero? (system* "nosetests"
-                               ;; These tests require internet connection
-                               "--exclude=test_browse"
-                               "--exclude=test_command"
-                               "--exclude=test_search")))))))
+               (invoke "nosetests"
+                       ;; These tests require an Internet connection.
+                       "--exclude=test_browse"
+                       "--exclude=test_command"
+                       "--exclude=test_search"))))))
       (home-page "https://github.com/ncrocfer/clf")
       (synopsis "Search code snippets on @url{https://commandlinefu.com}")
       (description "@code{clf} is a command line tool for searching code
@@ -5323,16 +5495,17 @@ snippets on @url{https://commandlinefu.com}.")
 (define-public r-shiny
   (package
     (name "r-shiny")
-    (version "1.0.3")
+    (version "1.1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/rstudio/shiny/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rstudio/shiny.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0z2v2s4hd44mvzjn7r70549kdzkrrch9nxhp27r6x2cy6micizm3"))))
+         "041q2gzvzs13syfhbirmkik96asdji8dxnnbs63j7v1ks97hrvvz"))))
     (build-system r-build-system)
     (arguments
      `(#:modules ((guix build r-build-system)
@@ -5397,7 +5570,8 @@ snippets on @url{https://commandlinefu.com}.")
                               "jquery.min.js")))))
              #t)))))
     (propagated-inputs
-     `(("r-httpuv" ,r-httpuv)
+     `(("r-crayon" ,r-crayon)
+       ("r-httpuv" ,r-httpuv)
        ("r-mime" ,r-mime)
        ("r-jsonlite" ,r-jsonlite)
        ("r-xtable" ,r-xtable)
@@ -5545,8 +5719,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.")
                                  %build-inputs))
            (mkdir-p share-rss-bridge)
            (invoke "tar" "xvf" (assoc-ref %build-inputs "source")
-                   "--strip-components" "1" "-C" share-rss-bridge)
-           #t))))
+                   "--strip-components" "1" "-C" share-rss-bridge)))))
     (home-page "https://github.com/RSS-Bridge/rss-bridge")
     (synopsis "Generate Atom feeds for social networking websites")
     (description "rss-bridge generates Atom feeds for social networking
@@ -5558,28 +5731,23 @@ Instagram and YouTube.")
 (define-public linkchecker
   (package
     (name "linkchecker")
-    (version "9.3")
+    (version "9.4.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "LinkChecker" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/linkchecker/linkchecker")
+             (commit (string-append "v" version))))
        (sha256
         (base32
-         "0v8pavf0bx33xnz1kwflv0r7lxxwj7vg3syxhy2wzza0wh6sc2pf"))))
+         "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
     (build-system python-build-system)
     (inputs
-     `(("python2-requests" ,python2-requests)))
+     `(("python2-dnspython" ,python2-dnspython)
+       ("python2-pyxdg" ,python2-pyxdg)
+       ("python2-requests" ,python2-requests)))
     (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         ;; Remove faulty python-requests version check. This has been fixed
-         ;; upstream, and can be removed in version 9.4.
-         (add-after 'unpack 'remove-python-requests-version
-           (lambda _
-             (substitute* "linkcheck/__init__.py"
-               (("requests.__version__ <= '2.2.0'") "False"))
-             #t)))))
+     `(#:python ,python-2))
     (home-page "https://linkcheck.github.io/linkchecker")
     (synopsis "Check websites for broken links")
     (description "LinkChecker is a website validator.  It checks for broken
@@ -5588,15 +5756,10 @@ colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph.  It
 supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local
 file links.")
     (license (list l:gpl2+
-                   l:bsd-2 ; linkcheck/better_exchook2.py
-                   l:bsd-3 ; linkcheck/colorama.py
-                   l:psfl  ; linkcheck/gzip2.py
-                   l:expat ; linkcheck/mem.py
-                   ;; FIXME: Unbundle dnspython and miniboa
-                   ;; This issue has been raised upstream
-                   ;; https://github.com/wummel/linkchecker/issues/729
-                   l:isc   ; third_party/dnspython
-                   l:asl2.0)))) ; third_party/miniboa
+                   l:bsd-2              ; linkcheck/better_exchook2.py
+                   l:bsd-3              ; linkcheck/colorama.py
+                   l:psfl               ; linkcheck/gzip2.py
+                   l:expat))))          ; linkcheck/mem.py
 
 (define-public cadaver
   (package
@@ -5652,14 +5815,20 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
 (define-public java-tomcat
   (package
     (name "java-tomcat")
-    (version "8.5.28")
+    (version "8.5.32")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
                                   version "/src/apache-tomcat-" version "-src.tar.gz"))
               (sha256
                (base32
-                "0q2bc3sajrmcx3z3vhhwp78y47ryc2ky8ssbdmfk24zvqdb76hvl"))))
+                "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6"))
+              (modules '((guix build utils)))
+              ;; Delete bundled jars.
+              (snippet
+               '(begin
+                  (for-each delete-file (find-files "." "\\.jar$"))
+                  #t))))
     (build-system ant-build-system)
     (inputs
      `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
@@ -5681,6 +5850,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
                (("depends=\"validate\"") "depends=\"build-prepare\"")
                ((",download-validate") ""))
              #t))
+         (add-after 'unpack 'strip-timestamps
+           (lambda _
+             (substitute* "build.xml"
+               (("<filter token=\"YEAR\" value=.*")
+                "<filter token=\"YEAR\" value=\"1970\"/>")
+               (("<filter token=\"VERSION_BUILT\" value=.*")
+                "<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
+             #t))
          (add-after 'unpack 'generate-properties
            (lambda _
              ;; This could have been passed to make-flags, but getcwd returns
@@ -5878,7 +6055,7 @@ or embedded instantiation.  This package provides utility classes.")
              #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)
+       ("servlet" ,java-javaee-servletapi)
        ("util" ,java-eclipse-jetty-util)))
     (synopsis "Jetty :: IO Utility")
     (description "The Jetty Web Server provides an HTTP server and Servlet
@@ -5921,7 +6098,7 @@ or embedded instantiation.  This package provides IO-related utility classes."))
              #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)
+       ("servlet" ,java-javaee-servletapi)
        ("io" ,java-eclipse-jetty-io)
        ("util" ,java-eclipse-jetty-util)))
     (synopsis "Jetty :: Http Utility")
@@ -5956,7 +6133,7 @@ or embedded instantiation.  This package provides HTTP-related utility classes."
              #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)
+       ("servlet" ,java-javaee-servletapi)
        ("util" ,java-eclipse-jetty-util)))
     (synopsis "Jetty :: JMX Management")
     (description "The Jetty Web Server provides an HTTP server and Servlet
@@ -6037,7 +6214,7 @@ or embedded instantiation.  This package provides the JMX management.")))
              #t)))))
     (inputs
      `(("slf4j" ,java-slf4j-api)
-       ("servlet" ,java-tomcat)
+       ("servlet" ,java-javaee-servletapi)
        ("http" ,java-eclipse-jetty-http)
        ("io" ,java-eclipse-jetty-io)
        ("jmx" ,java-eclipse-jetty-jmx)
@@ -6074,6 +6251,7 @@ artifact.")))
      `(#:jar-name "eclipse-jetty-security.jar"
        #:source-dir "src/main/java"
        #:jdk ,icedtea-8
+       #:test-exclude (list "**/ConstraintTest.*") ; This test fails
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'chdir
@@ -6165,6 +6343,107 @@ container.")))
        ("server" ,java-eclipse-jetty-server-9.2)
        ,@(package-inputs java-eclipse-jetty-util-9.2)))))
 
+(define-public java-eclipse-jetty-xml
+  (package
+    (inherit java-eclipse-jetty-util)
+    (name "java-eclipse-jetty-xml")
+    (arguments
+     `(#:jar-name "eclipse-jetty-xml.jar"
+       #:source-dir "src/main/java"
+       #:jdk ,icedtea-8
+       #:tests? #f; most tests require network
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "jetty-xml")
+             #t)))))
+    (inputs
+     `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
+    (native-inputs
+     `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
+       ,@(package-native-inputs java-eclipse-jetty-util)))))
+
+(define-public java-eclipse-jetty-xml-9.2
+  (package
+    (inherit java-eclipse-jetty-xml)
+    (version (package-version java-eclipse-jetty-util-9.2))
+    (source (package-source java-eclipse-jetty-util-9.2))
+    (arguments
+     `(#:jar-name "eclipse-jetty-xml.jar"
+       #:source-dir "src/main/java"
+       #:jdk ,icedtea-8
+       #:tests? #f; most tests require network
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "jetty-xml")
+             #t)))))
+    (inputs
+     `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
+       ,@(package-inputs java-eclipse-jetty-util-9.2)))
+    (native-inputs
+     `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
+       ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+
+(define-public java-eclipse-jetty-webapp
+  (package
+    (inherit java-eclipse-jetty-util)
+    (name "java-eclipse-jetty-webapp")
+    (arguments
+     `(#:jar-name "eclipse-jetty-webapp.jar"
+       #:source-dir "src/main/java"
+       #:jdk ,icedtea-8
+       ;; One test fails
+       #:test-exclude (list "**/WebAppContextTest.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "jetty-webapp")
+             #t)))))
+    (inputs
+     `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
+       ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
+       ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
+       ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
+       ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
+       ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
+       ("java-javaee-servletapi" ,java-javaee-servletapi)))
+    (native-inputs
+     `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
+       ,@(package-native-inputs java-eclipse-jetty-util)))))
+
+(define-public java-eclipse-jetty-webapp-9.2
+  (package
+    (inherit java-eclipse-jetty-webapp)
+    (version (package-version java-eclipse-jetty-util-9.2))
+    (source (package-source java-eclipse-jetty-util-9.2))
+    (arguments
+     `(#:jar-name "eclipse-jetty-webapp.jar"
+       #:source-dir "src/main/java"
+       #:jdk ,icedtea-8
+       #:test-exclude (list "**/WebAppContextTest.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "jetty-webapp")
+             #t)))))
+    (inputs
+     `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
+       ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
+       ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
+       ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
+       ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
+       ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
+       ("java-tomcat" ,java-tomcat)
+       ,@(package-inputs java-eclipse-jetty-util-9.2)))
+    (native-inputs
+     `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
+       ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+
 (define-public java-jsoup
   (package
     (name "java-jsoup")
@@ -6260,7 +6539,7 @@ based on this library, allowing Perl programmers to easily validate HTML.")
        ("tidyp" ,tidyp)))
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)))
-    (home-page "http://search.cpan.org/dist/HTML-Tidy/")
+    (home-page "https://metacpan.org/release/HTML-Tidy")
     (synopsis "(X)HTML validation in a Perl object")
     (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
 object.  It's meant as a replacement for @code{HTML::Lint}, which is written
@@ -6426,3 +6705,108 @@ compressed JSON header blocks.
 @item @command{inflatehd} converts such compressed headers back to JSON pairs.
 @end itemize\n")
     (license l:expat)))
+
+(define-public hpcguix-web
+  (let ((commit "53e09ea59ec0380b41a4cbda32df8bdb9a10004d")
+        (revision "3"))
+    (package
+      (name "hpcguix-web")
+      (version (git-version "0.0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/UMCUGenetics/hpcguix-web.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1ah4pn9697vazhbvd45n4b1rrkx2nbhnw384cr0b941q3sz1dfyc"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules ((guix build gnu-build-system)
+                    (guix build utils)
+                    (srfi srfi-26)
+                    (ice-9 popen)
+                    (ice-9 rdelim))
+
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'autoconf
+             (lambda _
+               (setenv "GUILE_AUTO_COMPILE" "0")
+               (setenv "XDG_CACHE_HOME" (getcwd))
+               (invoke "autoreconf" "-vif")))
+           (add-after 'install 'wrap-program
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out      (assoc-ref outputs "out"))
+                      (guix     (assoc-ref inputs "guix"))
+                      (guile    (assoc-ref inputs "guile"))
+                      (gcrypt   (assoc-ref inputs "guile-gcrypt"))
+                      (git      (assoc-ref inputs "guile-git"))
+                      (bs       (assoc-ref inputs "guile-bytestructures"))
+                      (json     (assoc-ref inputs "guile-json"))
+                      (guile-cm (assoc-ref inputs
+                                           "guile-commonmark"))
+                      (deps (list guile gcrypt git bs guile-cm guix json))
+                      (effective
+                       (read-line
+                        (open-pipe* OPEN_READ
+                                    (string-append guile "/bin/guile")
+                                    "-c" "(display (effective-version))")))
+                      (path   (string-join
+                               (map (cut string-append <>
+                                         "/share/guile/site/"
+                                         effective)
+                                    deps)
+                               ":"))
+                      (gopath (string-join
+                               (map (cut string-append <>
+                                         "/lib/guile/" effective
+                                         "/site-ccache")
+                                    deps)
+                               ":")))
+                 (wrap-program (string-append out "/bin/run")
+                   `("GUILE_LOAD_PATH" ":" prefix (,path))
+                   `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
+
+                 #t))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("uglify-js" ,uglify-js)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       `(("guix" ,guix)))
+      (propagated-inputs
+       `(("guile" ,guile-2.2)
+         ("guile-commonmark" ,guile-commonmark)
+         ("guile-json" ,guile-json)))
+    (home-page "https://github.com/UMCUGenetics/hpcguix-web")
+      (synopsis "Web interface for cluster deployments of Guix")
+      (description "Hpcguix-web provides a web interface to the list of packages
+provided by Guix.  The list of packages is searchable and provides
+instructions on how to use Guix in a shared HPC environment.")
+    (license l:agpl3+))))
+
+(define-public r-miniui
+  (package
+    (name "r-miniui")
+    (version "0.1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "miniUI" version))
+       (sha256
+        (base32
+         "1h5h2sc57h95d6bsgs95l26911g38hvjc1v50bc31xl9689l2as5"))))
+    (properties `((upstream-name . "miniUI")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-htmltools" ,r-htmltools)
+       ("r-shiny" ,r-shiny)))
+    (home-page "https://cran.r-project.org/web/packages/miniUI/")
+    (synopsis "Shiny UI widgets for small screens")
+    (description
+     "This package provides UI widget and layout functions for writing Shiny apps that
+work well on small screens.")
+    (license l:gpl3)))