gnu: r-shinydashboard: Update to 0.7.0.
[jackhill/guix/guix.git] / gnu / packages / web.scm
index eb32573..2b50856 100644 (file)
@@ -3,7 +3,8 @@
 ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; 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 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
@@ -13,9 +14,9 @@
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
 ;;; 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 ng0 <ng0@infotropique.org>
+;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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 © 2016 Bake Timmons <b3timmons@speedymail.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -23,6 +24,7 @@
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,6 +60,7 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system scons)
   #:use-module (gnu packages)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system scons)
   #:use-module (gnu packages)
+  #:use-module (gnu packages adns)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cran)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cran)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages java)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages java)
   #:use-module (gnu packages javascript)
+  #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
+  #:use-module (gnu packages lisp)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
 (define-public httpd
   (package
     (name "httpd")
 (define-public httpd
   (package
     (name "httpd")
-    (version "2.4.27")
+    (version "2.4.33")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/httpd/httpd-"
                                  version ".tar.bz2"))
              (sha256
               (base32
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/httpd/httpd-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0fn1778mxhf78np2d8qlycg1c2ak18rxax41plahasca4clc3z3i"))
-             (patches (search-patches "httpd-CVE-2017-9798.patch"))))
+               "01bghiq4pbgjbgd6gic0nb8bbk6mfpwx3gcsbf21f3dhb4c520ny"))))
     (build-system gnu-build-system)
     (native-inputs `(("pcre" ,pcre "bin")))       ;for 'pcre-config'
     (inputs `(("apr" ,apr)
     (build-system gnu-build-system)
     (native-inputs `(("pcre" ,pcre "bin")))       ;for 'pcre-config'
     (inputs `(("apr" ,apr)
@@ -145,22 +150,53 @@ and its related documentation.")
     (license l:asl2.0)
     (home-page "https://httpd.apache.org/")))
 
     (license l:asl2.0)
     (home-page "https://httpd.apache.org/")))
 
+(define-public mod-wsgi
+  (package
+    (name "mod-wsgi")
+    (version "4.5.22")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/GrahamDumpleton/mod_wsgi/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0n1yhmrfp8mjbsngmyjl937c6rc0069p6wdi1lknrbn1q42hzw6q"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ;; TODO: Can't figure out if there are tests
+       #:make-flags (list
+                     (string-append "DESTDIR="
+                                    (assoc-ref %outputs "out"))
+                     "LIBEXECDIR=/modules")))
+    (inputs
+     `(("httpd" ,httpd)
+       ("python" ,python-wrapper)))
+    (synopsis "Apache HTTPD module for Python WSGI applications")
+    (description
+     "The mod_wsgi module for the Apache HTTPD Server adds support for running
+applications that support the Python @acronym{WSGI, Web Server Gateway
+Interface} specification.")
+    (license l:asl2.0)
+    (home-page "https://modwsgi.readthedocs.io/")))
+
 (define-public nginx
   (package
     (name "nginx")
 (define-public nginx
   (package
     (name "nginx")
-    ;; Consider updating the nginx-docs package if the nginx package is
+    ;; Consider updating the nginx-documentation package if the nginx package is
     ;; updated.
     ;; updated.
-    (version "1.12.2")
+    (version "1.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "05h4rwja7170z0l979yjghy9i9ichllwhicylzpmmyyml6fkfprh"))))
+                "1d9c0avfpbwvzyg53b59ks8shpnrxnbnshcd7ziizflsyv5vw5ax"))))
     (build-system gnu-build-system)
     (build-system gnu-build-system)
-    (inputs `(("pcre" ,pcre)
-              ("openssl" ,openssl)
+    (inputs `(("openssl" ,openssl)
+              ("pcre" ,pcre)
               ("zlib" ,zlib)))
     (arguments
      `(#:tests? #f                      ; no test target
               ("zlib" ,zlib)))
     (arguments
      `(#:tests? #f                      ; no test target
@@ -184,7 +220,7 @@ and its related documentation.")
                           ;; --crossbuild option to avoid customizing for the
                           ;; kernel version on the build machine.
                           ,(let ((system "Linux")    ; uname -s
                           ;; --crossbuild option to avoid customizing for the
                           ;; kernel version on the build machine.
                           ,(let ((system "Linux")    ; uname -s
-                                 (release "2.6.32")  ; uname -r
+                                 (release "3.2.0")   ; uname -r
                                  ;; uname -m
                                  (machine (match (or (%current-target-system)
                                                      (%current-system))
                                  ;; uname -m
                                  (machine (match (or (%current-target-system)
                                                      (%current-system))
@@ -201,7 +237,8 @@ and its related documentation.")
                (setenv "CC" "gcc")
                (format #t "environment variable `CC' set to `gcc'~%")
                (format #t "configure flags: ~s~%" flags)
                (setenv "CC" "gcc")
                (format #t "environment variable `CC' set to `gcc'~%")
                (format #t "configure flags: ~s~%" flags)
-               (zero? (apply system* "./configure" flags)))))
+               (apply invoke "./configure" flags)
+               #t)))
          (add-after 'install 'install-man-page
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
          (add-after 'install 'install-man-page
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -222,12 +259,13 @@ and its related documentation.")
                (rename-file (string-append out "/conf")
                             (string-append share "/conf"))
                (rename-file (string-append out "/html")
                (rename-file (string-append out "/conf")
                             (string-append share "/conf"))
                (rename-file (string-append out "/html")
-                            (string-append share "/html"))))))))
+                            (string-append share "/html"))
+               #t))))))
     (home-page "https://nginx.org")
     (synopsis "HTTP and reverse proxy server")
     (description
      "Nginx (\"engine X\") is a high-performance web and reverse proxy server
     (home-page "https://nginx.org")
     (synopsis "HTTP and reverse proxy server")
     (description
      "Nginx (\"engine X\") is a high-performance web and reverse proxy server
-created by Igor Sysoev.  It can be used both as a standalone web server
+created by Igor Sysoev.  It can be used both as a stand-alone web server
 and as a proxy to reduce the load on back-end HTTP or mail servers.")
     ;; Almost all of nginx is distributed under the bsd-2 license.
     ;; The exceptions are:
 and as a proxy to reduce the load on back-end HTTP or mail servers.")
     ;; Almost all of nginx is distributed under the bsd-2 license.
     ;; The exceptions are:
@@ -279,13 +317,13 @@ documentation.")
       (license l:bsd-2))))
 
 (define-public nginx-documentation
       (license l:bsd-2))))
 
 (define-public nginx-documentation
-  ;; This documentation should be relevant for nginx-1.12.0
-  (let ((revision 1961)
-        (changeset "dd4b6c564e10"))
+  ;; This documentation should be relevant for nginx@1.13.11.
+  (let ((revision 2131)
+        (changeset "dbaf3950f8e9"))
     (package
       (name "nginx-documentation")
       (version
     (package
       (name "nginx-documentation")
       (version
-       (simple-format #f "2017-04-12-~A-~A" revision changeset))
+       (simple-format #f "2018-04-04-~A-~A" revision changeset))
       (source
        (origin (method hg-fetch)
                (uri (hg-reference
       (source
        (origin (method hg-fetch)
                (uri (hg-reference
@@ -294,13 +332,13 @@ documentation.")
                (file-name (string-append name "-" version))
                (sha256
                 (base32
                (file-name (string-append name "-" version))
                (sha256
                 (base32
-                 "0rycfnnm2xkm777769h1zib428q45j64mx8nzzfzs4v07jbfc8m5"))))
+                 "0acdjsdaqixzh9g9s6db552v4pan4nqrllyqapay9ns9yzh1hrp7"))))
       (build-system gnu-build-system)
       (arguments
       (build-system gnu-build-system)
       (arguments
-       '(#:tests? #f  ; No test suite
+       '(#:tests? #f                    ; no test suite
          #:phases
          (modify-phases %standard-phases
          #:phases
          (modify-phases %standard-phases
-           (delete 'configure)
+           (delete 'configure)          ; no configure script
            (replace 'build
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((output (assoc-ref outputs "out")))
            (replace 'build
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((output (assoc-ref outputs "out")))
@@ -314,7 +352,8 @@ documentation.")
                    (("#banner           \\{ background:     black;")
                     "#banner           { background:     black;
                             display:     none;"))
                    (("#banner           \\{ background:     black;")
                     "#banner           { background:     black;
                             display:     none;"))
-                 (zero? (system* "make")))))
+                 (invoke "make")
+                 #t)))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((output (assoc-ref outputs "out")))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((output (assoc-ref outputs "out")))
@@ -326,7 +365,7 @@ documentation.")
          ("libxslt" ,libxslt)
          ("nginx-xslscript" ,nginx-xslscript)))
       (home-page "https://nginx.org")
          ("libxslt" ,libxslt)
          ("nginx-xslscript" ,nginx-xslscript)))
       (home-page "https://nginx.org")
-      (synopsis "Documentation for nginx web server")
+      (synopsis "Documentation for the nginx web server")
       (description
        "This package provides HTML documentation for the nginx web server.")
       (license l:bsd-2))))
       (description
        "This package provides HTML documentation for the nginx web server.")
       (license l:bsd-2))))
@@ -465,7 +504,7 @@ libraries for working with JNLP applets.")
 (define-public jansson
   (package
     (name "jansson")
 (define-public jansson
   (package
     (name "jansson")
-    (version "2.9")
+    (version "2.10")
     (source (origin
              (method url-fetch)
              (uri
     (source (origin
              (method url-fetch)
              (uri
@@ -473,7 +512,7 @@ libraries for working with JNLP applets.")
                              version ".tar.gz"))
              (sha256
               (base32
                              version ".tar.gz"))
              (sha256
               (base32
-               "19fjgfwjfj99rqa3kf96x5rssj88siazggksgrikd6h4r9sd1l0a"))))
+               "0iv4rxsnamqm3ldpg7dyhjq0x9cp023nc7ac820jdd3pwb8ml8bq"))))
     (build-system gnu-build-system)
     (home-page "http://www.digip.org/jansson/")
     (synopsis "JSON C library")
     (build-system gnu-build-system)
     (home-page "http://www.digip.org/jansson/")
     (synopsis "JSON C library")
@@ -485,7 +524,7 @@ data.")
 (define-public json-c
   (package
     (name "json-c")
 (define-public json-c
   (package
     (name "json-c")
-    (version "0.12.1")
+    (version "0.13")
     (source (origin
              (method url-fetch)
              (uri (string-append
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -493,7 +532,7 @@ data.")
                    version ".tar.gz"))
              (sha256
               (base32
                    version ".tar.gz"))
              (sha256
               (base32
-               "08qibrq29a5v7g23wi5icy6l4fbfw90h9ccps6vq0bcklx8n84ra"))
+               "0kf2594kxcfga6x0mvwzj2qg8pgxhjkibc16ghnw85mdx45ph5h3"))
              (modules '((guix build utils)))
              (snippet
               '(begin
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -513,10 +552,36 @@ data.")
     (synopsis "JSON implementation in C")
     (description
      "JSON-C implements a reference counting object model that allows you to
     (synopsis "JSON implementation in C")
     (description
      "JSON-C implements a reference counting object model that allows you to
-easily construct JSON objects in C, output them as JSON formatted strings and
-parse JSON formatted strings back into the C representation of JSON objects.")
+easily construct JSON objects in C, output them as JSON-formatted strings and
+parse JSON-formatted strings back into the C representation of JSON objects.
+It aims to conform to RFC 7159.")
     (license l:x11)))
 
     (license l:x11)))
 
+;; TODO: remove this old version when all dependents have been updated.
+(define-public json-c-0.12
+  (package
+    (inherit json-c)
+    (version "0.12.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
+                   version ".tar.gz"))
+             (sha256
+              (base32 "08qibrq29a5v7g23wi5icy6l4fbfw90h9ccps6vq0bcklx8n84ra"))
+             (modules '((guix build utils)))
+             (snippet
+              '(begin
+                 ;; Somehow 'config.h.in' is older than
+                 ;; 'aclocal.m4', which would trigger a rule to
+                 ;; run 'autoheader'.
+                 (set-file-time "config.h.in"
+                                (stat "aclocal.m4"))
+
+                 ;; Don't try to build with -Werror.
+                 (substitute* (find-files "." "Makefile\\.in")
+                   (("-Werror") ""))))))))
+
 (define-public qjson
   (package
     (name "qjson")
 (define-public qjson
   (package
     (name "qjson")
@@ -735,7 +800,7 @@ for efficient socket-like bidirectional reliable communication channels.")
 (define-public libpsl
   (package
     (name "libpsl")
 (define-public libpsl
   (package
     (name "libpsl")
-    (version "0.19.1")
+    (version "0.20.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rockdaboot/libpsl/"
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rockdaboot/libpsl/"
@@ -743,7 +808,7 @@ for efficient socket-like bidirectional reliable communication channels.")
                                   "/libpsl-" version ".tar.gz"))
               (sha256
                (base32
                                   "/libpsl-" version ".tar.gz"))
               (sha256
                (base32
-                "0ydwi9m39qv6k7zagqx2kzxzf59ipxj9r0c71xmwngdx3fslclbk"))))
+                "17r18y25ka2ck2ykfidbg4a7jpyzmkqwrzplgqjp7mwd2l9rc6cm"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -781,6 +846,7 @@ UTS#46.")
                      ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
                     (module "tidy")
                     (revision "2009-12-23")))
                      ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
                     (module "tidy")
                     (revision "2009-12-23")))
+              (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
                 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))
               (sha256
                (base32
                 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))
@@ -894,9 +960,9 @@ of people.")
      ; named 'stubout'". The tests can be run by replacing the check phase with
      ; the command "python setup.py nosetests --verbosity=3".
     (native-inputs `(; Required for tests:
      ; named 'stubout'". The tests can be run by replacing the check phase with
      ; the command "python setup.py nosetests --verbosity=3".
     (native-inputs `(; Required for tests:
-                     ("python-mox3"python-mox3)
-                     ("python-nose"python-nose)))
-    (propagated-inputs `(("python-numpy"python-numpy)))
+                     ("python-mox3" ,python-mox3)
+                     ("python-nose" ,python-nose)))
+    (propagated-inputs `(("python-numpy" ,python-numpy)))
     (home-page "https://github.com/novnc/websockify")
     (synopsis "WebSockets support for any application/server")
     (description "Websockify translates WebSockets traffic to normal socket
     (home-page "https://github.com/novnc/websockify")
     (synopsis "WebSockets support for any application/server")
     (description "Websockify translates WebSockets traffic to normal socket
@@ -923,7 +989,7 @@ directions.")
        #:tests? #f))                         ; no test target
     (native-inputs `(("flex" ,flex)))
     (inputs `(("gnutls" ,gnutls)
        #:tests? #f))                         ; no test target
     (native-inputs `(("flex" ,flex)))
     (inputs `(("gnutls" ,gnutls)
-              ("libcrypt"libgcrypt)))
+              ("libcrypt" ,libgcrypt)))
     (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
     (synopsis "Caching web proxy optimized for intermittent internet links")
     (description "WWWOFFLE is a proxy web server that is especially good for
     (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
     (synopsis "Caching web proxy optimized for intermittent internet links")
     (description "WWWOFFLE is a proxy web server that is especially good for
@@ -2787,7 +2853,7 @@ environment from an HTTP::Request.")
 (define-public perl-http-server-simple
   (package
     (name "perl-http-server-simple")
 (define-public perl-http-server-simple
   (package
     (name "perl-http-server-simple")
-    (version "0.51")
+    (version "0.52")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -2795,7 +2861,7 @@ environment from an HTTP::Request.")
                            "HTTP-Server-Simple-" version ".tar.gz"))
        (sha256
         (base32
                            "HTTP-Server-Simple-" version ".tar.gz"))
        (sha256
         (base32
-         "1yvd2g57z2kq00q5i3zzfi15k98qgbif3vghjsda6v612agmrp5r"))))
+         "0k6bg7k6mjixfzxdkkdrhqvaqmdhjszx0zsk8g0bimiby6j9z4yq"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-cgi" ,perl-cgi)))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-cgi" ,perl-cgi)))
@@ -2869,7 +2935,7 @@ algorithm specified in section 8.2.2.1 of the draft standard.")
 (define-public perl-io-socket-ip
   (package
     (name "perl-io-socket-ip")
 (define-public perl-io-socket-ip
   (package
     (name "perl-io-socket-ip")
-    (version "0.36")
+    (version "0.39")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -2877,7 +2943,7 @@ algorithm specified in section 8.2.2.1 of the draft standard.")
                            "IO-Socket-IP-" version ".tar.gz"))
        (sha256
         (base32
                            "IO-Socket-IP-" version ".tar.gz"))
        (sha256
         (base32
-         "0ky20hmln6waipzqikizyw04vpszf70fgpshz7ib8zv8480ri456"))))
+         "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
     (home-page "http://search.cpan.org/dist/IO-Socket-IP")
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
     (home-page "http://search.cpan.org/dist/IO-Socket-IP")
@@ -3147,7 +3213,7 @@ or to multiple server ports.")
 (define-public perl-net-smtp-ssl
   (package
     (name "perl-net-smtp-ssl")
 (define-public perl-net-smtp-ssl
   (package
     (name "perl-net-smtp-ssl")
-    (version "1.03")
+    (version "1.04")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -3155,7 +3221,7 @@ or to multiple server ports.")
                            "Net-SMTP-SSL-" version ".tar.gz"))
        (sha256
         (base32
                            "Net-SMTP-SSL-" version ".tar.gz"))
        (sha256
         (base32
-         "05y94mb1vdw32mvwb0cp2h4ggh32f8j8nwwfjb8kjwxvfkfhyp9h"))))
+         "001a6dcfahf7kkyirqkc8jd4fh4fkal7n7vm9c4dblqrvmdc8abv"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
@@ -3442,15 +3508,18 @@ applications.")
 (define-public perl-uri
   (package
     (name "perl-uri")
 (define-public perl-uri
   (package
     (name "perl-uri")
-    (version "1.71")
+    (version "1.73")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                                  "URI-" version ".tar.gz"))
              (sha256
               (base32
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                                  "URI-" version ".tar.gz"))
              (sha256
               (base32
-               "05a1ck1bhvqkkk690xhsxf7276dnagk96qkh2jy4prrrgw6wm3lw"))))
+               "04z4xwiryrbxxi48bwbkgq9q9pwfgqry3wp0ramcrwv3dx5ap9yc"))))
     (build-system perl-build-system)
     (build-system perl-build-system)
+    (native-inputs
+     ;; For tests.
+     `(("perl-test-needs" ,perl-test-needs)))
     (license l:perl-license)
     (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
     (description
     (license l:perl-license)
     (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
     (description
@@ -3593,7 +3662,7 @@ library.")
 (define-public perl-www-mechanize
   (package
     (name "perl-www-mechanize")
 (define-public perl-www-mechanize
   (package
     (name "perl-www-mechanize")
-    (version "1.86")
+    (version "1.88")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -3601,7 +3670,7 @@ library.")
                            "WWW-Mechanize-" version ".tar.gz"))
        (sha256
         (base32
                            "WWW-Mechanize-" version ".tar.gz"))
        (sha256
         (base32
-         "0sfl6b7mx8nannnh3ys5jk44d1s1b2d1mffrnrphkzzykaw6hm0f"))))
+         "0yd8a1zsfpbv5wr79x3iqmik9gvcd10iam9dfrdan4dri9vpxn9n"))))
     (build-system perl-build-system)
     (native-inputs                      ;only for tests
      `(("perl-cgi" ,perl-cgi)
     (build-system perl-build-system)
     (native-inputs                      ;only for tests
      `(("perl-cgi" ,perl-cgi)
@@ -3716,13 +3785,13 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
 (define-public r-httpuv
   (package
     (name "r-httpuv")
 (define-public r-httpuv
   (package
     (name "r-httpuv")
-    (version "1.3.5")
+    (version "1.3.6.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httpuv" version))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httpuv" version))
               (sha256
                (base32
-                "1sg4f223zfyd265b28rlhsn3b6mqflcpnmya98cjmjncmy9vjdj3"))))
+                "0h3hkw575b211bxma23inbq1565wkhiapgasd539h219apqs534f"))))
     (build-system r-build-system)
     (native-inputs `(("r-rcpp" ,r-rcpp)))
     (home-page "https://github.com/rstudio/httpuv")
     (build-system r-build-system)
     (native-inputs `(("r-rcpp" ,r-rcpp)))
     (home-page "https://github.com/rstudio/httpuv")
@@ -3764,18 +3833,19 @@ in systems and applications.")
 (define-public r-servr
   (package
     (name "r-servr")
 (define-public r-servr
   (package
     (name "r-servr")
-    (version "0.8")
+    (version "0.9")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "servr" version))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (cran-uri "servr" version))
               (sha256
                (base32
-                "05pz4ychqp4cqywcdavdi8jj3y09gmam097d2idjnlcg9x61h2s9"))))
+                "0bs0i5mjfzxfshqz8i30nhn7kvgwly4fqn5bfq6dqfdrn7biai2x"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-httpuv" ,r-httpuv)
        ("r-jsonlite" ,r-jsonlite)
     (build-system r-build-system)
     (propagated-inputs
      `(("r-httpuv" ,r-httpuv)
        ("r-jsonlite" ,r-jsonlite)
-       ("r-mime" ,r-mime)))
+       ("r-mime" ,r-mime)
+       ("r-xfun" ,r-xfun)))
     (native-inputs
      `(("r-rcpp" ,r-rcpp)))
     (home-page "https://github.com/yihui/servr")
     (native-inputs
      `(("r-rcpp" ,r-rcpp)))
     (home-page "https://github.com/yihui/servr")
@@ -3814,7 +3884,7 @@ directory.")
     (propagated-inputs
      `(("r-digest" ,r-digest)
        ("r-rcpp" ,r-rcpp)))
     (propagated-inputs
      `(("r-digest" ,r-digest)
        ("r-rcpp" ,r-rcpp)))
-    (home-page "http://cran.r-project.org/web/packages/htmltools")
+    (home-page "https://cran.r-project.org/web/packages/htmltools")
     (synopsis "R tools for HTML")
     (description
      "This package provides tools for HTML generation and output in R.")
     (synopsis "R tools for HTML")
     (description
      "This package provides tools for HTML generation and output in R.")
@@ -3823,13 +3893,13 @@ directory.")
 (define-public r-htmlwidgets
   (package
     (name "r-htmlwidgets")
 (define-public r-htmlwidgets
   (package
     (name "r-htmlwidgets")
-    (version "0.9")
+    (version "1.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "htmlwidgets" version))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (cran-uri "htmlwidgets" version))
               (sha256
                (base32
-                "0plqkfqys1ca3ki7sb7yc6gwjpi7yy4g3mzh7hfy8s6qri0vam0i"))))
+                "04c4d0mfcy3dkdlbxnaccpdgxvyxfdwfmmh5djim6v9hyg0j2z8s"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-htmltools" ,r-htmltools)
     (build-system r-build-system)
     (propagated-inputs
      `(("r-htmltools" ,r-htmltools)
@@ -3846,21 +3916,23 @@ applications.")
 (define-public r-htmltable
   (package
     (name "r-htmltable")
 (define-public r-htmltable
   (package
     (name "r-htmltable")
-    (version "1.9")
+    (version "1.11.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "htmlTable" version))
        (sha256
         (base32
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "htmlTable" version))
        (sha256
         (base32
-         "0ciic1f4iczq14j81fg7kxibn65sy8z1zxkvk1yxnxxg6dzplj2v"))))
+         "1lbpi0kkk8b41w10scmlf27dg5azcv51a4q3p5bpqyphrnqp78k4"))))
     (properties `((upstream-name . "htmlTable")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-checkmate" ,r-checkmate)
     (properties `((upstream-name . "htmlTable")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-checkmate" ,r-checkmate)
+       ("r-htmltools" ,r-htmltools)
        ("r-htmlwidgets" ,r-htmlwidgets)
        ("r-knitr" ,r-knitr)
        ("r-magrittr" ,r-magrittr)
        ("r-htmlwidgets" ,r-htmlwidgets)
        ("r-knitr" ,r-knitr)
        ("r-magrittr" ,r-magrittr)
+       ("r-rstudioapi" ,r-rstudioapi)
        ("r-stringr" ,r-stringr)))
     (home-page "http://gforge.se/packages/")
     (synopsis "Advanced tables for Markdown/HTML")
        ("r-stringr" ,r-stringr)))
     (home-page "http://gforge.se/packages/")
     (synopsis "Advanced tables for Markdown/HTML")
@@ -3877,13 +3949,13 @@ LaTeX.")
 (define-public r-curl
   (package
     (name "r-curl")
 (define-public r-curl
   (package
     (name "r-curl")
-    (version "3.0")
+    (version "3.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "curl" version))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (cran-uri "curl" version))
               (sha256
                (base32
-                "01m52jz2q38yc32xbnmpm48hck2xj9fyhxq262p04y67gjpf7y3v"))))
+                "15hmy71310hnf9yqvz0icx4cq939gv6iqaifzlfdh2ia8akawdhn"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -3925,7 +3997,7 @@ callback or connection interfaces.")
         (base32
          "0arjsz854rfkfqhgvpqbm9lfni97dcjs66isdsfvwfd2wz932dbb"))))
     (build-system r-build-system)
         (base32
          "0arjsz854rfkfqhgvpqbm9lfni97dcjs66isdsfvwfd2wz932dbb"))))
     (build-system r-build-system)
-    (home-page "http://cran.r-project.org/web/packages/hwriter")
+    (home-page "https://cran.r-project.org/web/packages/hwriter")
     (synopsis "Output R objects in HTML format")
     (description
      "This package provides easy-to-use and versatile functions to output R
     (synopsis "Output R objects in HTML format")
     (description
      "This package provides easy-to-use and versatile functions to output R
@@ -3944,7 +4016,7 @@ objects in HTML format.")
         (base32
          "1vzjyvf57k1fjizlk28rby65y5lsww5qnfvgnhln74qwda7hvl3p"))))
     (build-system r-build-system)
         (base32
          "1vzjyvf57k1fjizlk28rby65y5lsww5qnfvgnhln74qwda7hvl3p"))))
     (build-system r-build-system)
-    (home-page "http://cran.r-project.org/web/packages/rjson")
+    (home-page "https://cran.r-project.org/web/packages/rjson")
     (synopsis "JSON library for R")
     (description
      "This package provides functions to convert R objects into JSON objects
     (synopsis "JSON library for R")
     (description
      "This package provides functions to convert R objects into JSON objects
@@ -3985,14 +4057,14 @@ a pure C99 library.")
 (define-public uwsgi
   (package
     (name "uwsgi")
 (define-public uwsgi
   (package
     (name "uwsgi")
-    (version "2.0.12")
+    (version "2.0.17")
     (source (origin
               (method url-fetch)
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://projects.unbit.it/downloads/uwsgi-"
+              (uri (string-append "https://projects.unbit.it/downloads/uwsgi-"
                                   version ".tar.gz"))
               (sha256
                (base32
                                   version ".tar.gz"))
               (sha256
                (base32
-                "02g46dnw5j1iw8fsq392bxbk8d21b9pdgb3ypcinv3b4jzdm2srh"))))
+                "1wlbaairsmhp6bx5wv282q9pgh6w7w6yrb8vxjznfaxrinsfkhix"))))
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (arguments
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (arguments
@@ -4093,7 +4165,7 @@ you'd expect.")
 (define-public uhttpmock
   (package
     (name "uhttpmock")
 (define-public uhttpmock
   (package
     (name "uhttpmock")
-    (version "0.5.0")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -4101,7 +4173,7 @@ you'd expect.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0vniyx341pnnmvxmqacc49k0g7h9a9nhknfslidrqmxj5lm1ini6"))))
+         "163py4klka423x7li2b685gmg3a6hjf074mlff2ajhmi3l0lm8x6"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
@@ -4246,7 +4318,7 @@ C.  It is developed as part of the NetSurf project.")
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
        ("pkg-config" ,pkg-config)
        ("doxygen" ,doxygen)
      `(("netsurf-buildsystem" ,netsurf-buildsystem)
        ("pkg-config" ,pkg-config)
        ("doxygen" ,doxygen)
-       ("json-c" ,json-c)
+       ("json-c" ,json-c-0.12)      ; check whether json-c-0.12 can be removed
        ("perl" ,perl)))
     (propagated-inputs
      `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
        ("perl" ,perl)))
     (propagated-inputs
      `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
@@ -4706,6 +4778,13 @@ handling many of the web standards in use today.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'patch-perl
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((perl (assoc-ref inputs "perl")))
+               (substitute* "surfraw.IN"
+                 (("perl -e")
+                  (string-append perl "/bin/perl -e")))
+               #t)))
          (add-after 'install 'compress-elvi.1sr
            (lambda* (#:key outputs #:allow-other-keys)
              ;; The manpages of the elvis are symlinks to elvi.1sr.gz
          (add-after 'install 'compress-elvi.1sr
            (lambda* (#:key outputs #:allow-other-keys)
              ;; The manpages of the elvis are symlinks to elvi.1sr.gz
@@ -4830,7 +4909,7 @@ tools like SSH (Secure Shell) to reach the outside world.")
 (define-public stunnel
   (package
   (name "stunnel")
 (define-public stunnel
   (package
   (name "stunnel")
-  (version "5.39")
+  (version "5.44")
   (source
     (origin
       (method url-fetch)
   (source
     (origin
       (method url-fetch)
@@ -4838,7 +4917,7 @@ tools like SSH (Secure Shell) to reach the outside world.")
                           version ".tar.gz"))
       (sha256
        (base32
                           version ".tar.gz"))
       (sha256
        (base32
-        "1vjdn32iw11zqsygwxbjmqgs4644dk3ql1h8ap890ls6a1x0i318"))))
+        "1692y69wl7j6yjgnrrzclgzb34bxsaxjzl1dfy47vms7pdfk42lr"))))
   (build-system gnu-build-system)
   (inputs `(("openssl" ,openssl)))
   (arguments
   (build-system gnu-build-system)
   (inputs `(("openssl" ,openssl)))
   (arguments
@@ -4860,15 +4939,18 @@ deployments.")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
-       (uri "https://github.com/xinetd-org/xinetd/archive/xinetd-2-3-15.tar.gz")
-       (patches (search-patches "xinetd-CVE-2013-4342.patch" "xinetd-fix-fd-leak.patch"))
+       (uri
+        (string-append "https://github.com/xinetd-org/xinetd/archive/xinetd-"
+                       (string-join (string-split version #\.) "-") ".tar.gz"))
+       (patches (search-patches "xinetd-CVE-2013-4342.patch"
+                                "xinetd-fix-fd-leak.patch"))
        (sha256
         (base32
          "0k59x52cbzp5fw0n8zn0y54j1ps0x9b72y8k5grzswjdmgs2a2v2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-loadavg")
        (sha256
         (base32
          "0k59x52cbzp5fw0n8zn0y54j1ps0x9b72y8k5grzswjdmgs2a2v2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-loadavg")
-       #:tests? #f )) ; no tests
+       #:tests? #f))                    ; no tests
     (home-page "https://github.com/xinetd-org/xinetd")
     (synopsis "Internet services daemon")
     (description "@code{xinetd}, a more secure replacement for @code{inetd},
     (home-page "https://github.com/xinetd-org/xinetd")
     (synopsis "Internet services daemon")
     (description "@code{xinetd}, a more secure replacement for @code{inetd},
@@ -4893,10 +4975,10 @@ used to start services with both privileged and non-privileged port numbers.")
          "0n29wcgw32rhnraj9j21ibhwi0xagmmcskhbaz8ihxly7nx3p9h8"))))
     (build-system cmake-build-system)
     (outputs '("out"
          "0n29wcgw32rhnraj9j21ibhwi0xagmmcskhbaz8ihxly7nx3p9h8"))))
     (build-system cmake-build-system)
     (outputs '("out"
-               "static")) ; 1.0MiB of .a files
+               "static"))               ; 1.0MiB of .a files
     (arguments
     (arguments
-     `(#:tests? #f ; No tests available
-       #:configure-flags (list "-DCMAKE_BUILD_TYPE=Release")
+     `(#:tests? #f                      ; no tests available
+       #:build-type "Release"
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'move-static-libraries
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'move-static-libraries
@@ -4929,7 +5011,7 @@ functions of Tidy.")
 (define-public hiawatha
   (package
     (name "hiawatha")
 (define-public hiawatha
   (package
     (name "hiawatha")
-    (version "10.4")
+    (version "10.7")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -4941,7 +5023,7 @@ functions of Tidy.")
         '(delete-file-recursively "mbedtls"))
        (sha256
         (base32
         '(delete-file-recursively "mbedtls"))
        (sha256
         (base32
-         "0m2llzm72s29c32abnj03532m85fawvi8ybjpx6s3mgvx2yvq3p4"))))
+         "0x2zfc8kc6c7rl4gwymwmg13w1c60biv6c6c9fvzpnl59bc9jgin"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; No tests included
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; No tests included
@@ -5041,7 +5123,7 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
 (define-public http-parser
   (package
     (name "http-parser")
 (define-public http-parser
   (package
     (name "http-parser")
-    (version "2.7.1")
+    (version "2.8.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/nodejs/http-parser/"
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/nodejs/http-parser/"
@@ -5049,7 +5131,7 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1cw6nf8xy4jhib1w0jd2y0gpqjbdasg8b7pkl2k2vpp54k9rlh3h"))))
+                "15ids8k2f0xhnnxh4m85w2f78pg5ndiwrpl24kyssznnp1l5yqai"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -5178,7 +5260,7 @@ command-line arguments or read from stdin.")
        ("python-schema" ,python-schema-0.5)
        ("python-backports-csv" ,python-backports-csv)))
     (native-inputs
        ("python-schema" ,python-schema-0.5)
        ("python-backports-csv" ,python-backports-csv)))
     (native-inputs
-     `(("python-pytest-3.0" ,python-pytest-3.0)
+     `(("python-pytest" ,python-pytest)
        ("python-pytest-capturelog" ,python-pytest-capturelog)
        ("python-responses" ,python-responses)))
     (home-page "https://github.com/jjjake/internetarchive")
        ("python-pytest-capturelog" ,python-pytest-capturelog)
        ("python-responses" ,python-responses)))
     (home-page "https://github.com/jjjake/internetarchive")
@@ -5349,6 +5431,47 @@ extensive prebuilt widgets make it possible to build beautiful,
 responsive, and powerful applications with minimal effort.")
     (license l:artistic2.0)))
 
 responsive, and powerful applications with minimal effort.")
     (license l:artistic2.0)))
 
+(define-public r-shinydashboard
+  (package
+    (name "r-shinydashboard")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "shinydashboard" version))
+              (sha256
+               (base32
+                "10yqcqqcxgfqwkmscqwvvgr710im583qsqnsqkfpisjvkqp10yqb"))))
+    (build-system r-build-system)
+    ;; The directory inst/AdminLTE/ contains a minified JavaScript file.
+    ;; Regenerate it from the included sources.
+    (arguments
+     `(#:modules ((guix build utils)
+                  (guix build r-build-system)
+                  (ice-9 popen))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'generate-minified-javascript
+           (lambda _
+             (with-directory-excursion "inst/AdminLTE"
+               (delete-file "app.min.js")
+               (let ((minified (open-pipe* OPEN_READ "uglify-js" "app.js")))
+                 (call-with-output-file "app.min.js"
+                   (lambda (port)
+                     (dump-port minified port))))))))))
+    (propagated-inputs
+     `(("r-htmltools" ,r-htmltools)
+       ("r-shiny" ,r-shiny)))
+    (native-inputs
+     `(("uglify-js" ,uglify-js)))
+    (home-page "http://rstudio.github.io/shinydashboard/")
+    (synopsis "Create dashboards with shiny")
+    (description "This package provides an extension to the Shiny web
+application framework for R, making it easy to create attractive dashboards.")
+    ;; This package includes software that was released under the Expat
+    ;; license, but the whole package is released under GPL version 2 or
+    ;; later.
+    (license l:gpl2+)))
+
 (define-public r-crosstalk
   (package
     (name "r-crosstalk")
 (define-public r-crosstalk
   (package
     (name "r-crosstalk")
@@ -5390,7 +5513,7 @@ files).  It currently supports linked brushing and filtering.")
     (properties `((upstream-name . "Rook")))
     (build-system r-build-system)
     (propagated-inputs `(("r-brew" ,r-brew)))
     (properties `((upstream-name . "Rook")))
     (build-system r-build-system)
     (propagated-inputs `(("r-brew" ,r-brew)))
-    (home-page "http://cran.r-project.org/web/packages/Rook")
+    (home-page "https://cran.r-project.org/web/packages/Rook")
     (synopsis "Web server interface for R")
     (description
      "This package contains the Rook specification and convenience software
     (synopsis "Web server interface for R")
     (description
      "This package contains the Rook specification and convenience software
@@ -5403,7 +5526,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.")
 (define-public rss-bridge
   (package
     (name "rss-bridge")
 (define-public rss-bridge
   (package
     (name "rss-bridge")
-    (version "2017-08-03")
+    (version "2018-03-11")
     (source
      (origin
        (method url-fetch)
     (source
      (origin
        (method url-fetch)
@@ -5412,7 +5535,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "05s16y552hbyj91s7bnlkx1bi64s6aw0fjy29az8via3i3b21yhl"))))
+         "1ix15ck45yb659k63mhwxwia6qnm9nn8jw0bga85abrvk1rchjdn"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("gzip" ,gzip)
     (build-system trivial-build-system)
     (native-inputs
      `(("gzip" ,gzip)
@@ -5537,14 +5660,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
 (define-public java-tomcat
   (package
     (name "java-tomcat")
 (define-public java-tomcat
   (package
     (name "java-tomcat")
-    (version "8.5.23")
+    (version "8.5.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
                                   version "/src/apache-tomcat-" version "-src.tar.gz"))
               (sha256
                (base32
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
                                   version "/src/apache-tomcat-" version "-src.tar.gz"))
               (sha256
                (base32
-                "1m6b1dikib46kbgz9gf0p6svi00nsw62b9kgjzn6sda151skbbza"))))
+                "0q2bc3sajrmcx3z3vhhwp78y47ryc2ky8ssbdmfk24zvqdb76hvl"))))
     (build-system ant-build-system)
     (inputs
      `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
     (build-system ant-build-system)
     (inputs
      `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
@@ -6050,6 +6173,44 @@ container.")))
        ("server" ,java-eclipse-jetty-server-9.2)
        ,@(package-inputs java-eclipse-jetty-util-9.2)))))
 
        ("server" ,java-eclipse-jetty-server-9.2)
        ,@(package-inputs java-eclipse-jetty-util-9.2)))))
 
+(define-public java-jsoup
+  (package
+    (name "java-jsoup")
+    (version "1.10.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/jhy/jsoup/archive/jsoup-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0xbzw7rjv7s4nz1xk9b2cnin6zkpaldmc3svk71waa7hhjgp0a20"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jsoup.jar"
+       #:source-dir "src/main/java"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (let ((classes-dir (string-append (getcwd) "/build/classes")))
+               (with-directory-excursion "src/main/java"
+                 (for-each (lambda (file)
+                             (let ((dist (string-append classes-dir "/" file)))
+                               (mkdir-p (dirname dist))
+                               (copy-file file dist)))
+                   (find-files "." ".*.properties"))))
+             #t)))))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)
+       ("java-gson" ,java-gson)))
+    (home-page "https://jsoup.org")
+    (synopsis "HTML parser")
+    (description "Jsoup is a Java library for working with real-world HTML.  It
+provides a very convenient API for extracting and manipulating data, using the
+best of DOM, CSS, and jQuery-like methods.")
+    (license l:expat)))
+
 (define-public tidyp
   (package
     (name "tidyp")
 (define-public tidyp
   (package
     (name "tidyp")
@@ -6113,3 +6274,162 @@ based on this library, allowing Perl programmers to easily validate HTML.")
 object.  It's meant as a replacement for @code{HTML::Lint}, which is written
 in Perl but is not nearly as capable as @code{HTML::Tidy}.")
     (license l:artistic2.0)))
 object.  It's meant as a replacement for @code{HTML::Lint}, which is written
 in Perl but is not nearly as capable as @code{HTML::Tidy}.")
     (license l:artistic2.0)))
+
+(define-public geomyidae
+  (package
+    (name "geomyidae")
+    (version "0.31")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://git.r-36.net/geomyidae/snapshot/"
+                           "geomyidae-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1ih7220c6mgq4r7blm4kx3pxbl53sph58lqgwci6cmi3c0sq5c3x"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc"
+                          (string-append "PREFIX="
+                                         (assoc-ref %outputs "out")))
+       #:tests? #f                                ;no tests
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure))))
+    (home-page "http://git.r-36.net/geomyidae")
+    (synopsis "Small Gopher server")
+    (description
+     "Geomyidae is a server for distributed hypertext protocol Gopher.  Its
+features include:
+
+@enumerate
+@item Gopher menus (see @file{index.gph} for an example);
+@item directory listings (if no @file{index.gph} was found);
+@item CGI support (@file{.cgi} files are executed);
+@item search support in CGI files;
+@item logging with multiple log levels.
+@end enumerate\n")
+    (license l:expat)))
+
+(define-public cat-avatar-generator
+  (package
+    (name "cat-avatar-generator")
+    (version "1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://framagit.org/Deevad/cat-avatar-generator.git")
+                     (commit "71c0c662742cafe8afd2d2d50ec84243113e35ad")))
+              (file-name (string-append name "-" version))
+              (sha256
+               (base32
+                "0s7b5whqsmfa57prbgl66ym551kg6ly0z14h5dgrlx4lqm70y2yw"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils)
+                  (srfi srfi-1)
+                  (srfi srfi-26))
+       #:builder
+       (begin
+         (use-modules (guix build utils)
+                      (srfi srfi-1)
+                      (srfi srfi-26))
+         (let ((source (assoc-ref %build-inputs "source"))
+               (php-dir (string-append %output "/share/web/" ,name "/")))
+           ;; The cache directory must not be in the store, but in a writable
+           ;; location.  The webserver will give us this location.
+           (copy-recursively source php-dir)
+           (substitute* (string-append php-dir "/cat-avatar-generator.php")
+             (("\\$cachepath = .*")
+              "if(isset($_SERVER['CACHE_DIR']))
+$cachepath = $_SERVER['CACHE_DIR'];
+else
+die('You need to set the CACHE_DIR variable first.');"))))))
+    (home-page "https://framagit.org/Deevad/cat-avatar-generator")
+    (synopsis "Random avatar generator")
+    (description "Cat avatar generator is a generator of cat pictures optimised
+to generate random avatars, or defined avatar from a \"seed\".  This is a
+derivation by David Revoy from the original MonsterID by Andreas Gohr.")
+    ;; expat for the code, CC-BY 4.0 for the artwork
+    (license (list l:expat
+                   l:cc-by4.0))))
+
+(define-public nghttp2
+  (package
+    (name "nghttp2")
+    (version "1.31.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/nghttp2/nghttp2/"
+                           "releases/download/v" version "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "00z1687m4wi2gbgkijbv099l9hs1sjlyzbhh8jhn0xssx4xcifb5"))))
+    (build-system gnu-build-system)
+    (outputs (list "out"
+                   "lib"))              ; only libnghttp2
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+
+       ;; Required by tests.
+       ("cunit" ,cunit)
+       ("tzdata" ,tzdata-for-tests)))
+    (inputs
+     ;; Required to build the tools (i.e. without ‘--enable-lib-only’).
+     `(("c-ares" ,c-ares)
+       ("jansson" ,jansson)             ; for HPACK tools
+       ("jemalloc" ,jemalloc)           ; fight nghttpd{,x} heap fragmentation
+       ("libev" ,libev)
+       ("libxml2" ,libxml2)             ; for ‘nghttp -a’
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
+             "--enable-app"             ; build all the tools
+             "--enable-hpack-tools"     ; ...all the tools
+             "--disable-examples"
+             "--disable-static")        ; don't bother building .a files
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'break-circular-reference
+           ;; libnghttp2.pc by default retains a reference to the ‘out’ output,
+           ;; which is not allowed.  Break this cycle.  While we could install
+           ;; only the library to ‘out’ and move everything else to a separate
+           ;; output, this would inconvenience the majority of (human) users.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "lib/libnghttp2.pc.in"
+               (("@prefix@")
+                (assoc-ref outputs "lib")))
+             #t))
+         (add-before 'check 'set-timezone-directory
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
+                                            "/share/zoneinfo"))
+             #t)))))
+    (home-page "https://nghttp2.org/")
+    (synopsis "HTTP/2 protocol client, proxy, server, and library")
+    (description
+     "nghttp2 implements the Hypertext Transfer Protocol, version
+2 (@dfn{HTTP/2}).
+
+A reusable C library provides the HTTP/2 framing layer, with several tools built
+on top of it:
+
+@itemize
+@item @command{nghttp}, a command-line HTTP/2 client.  It exposes many advanced
+and low-level aspects of the protocol and is useful for debugging.
+@item @command{nghttpd}, a fast, multi-threaded HTTP/2 static web server that
+serves files from a local directory.
+@item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be
+deployed in front of existing web servers that don't support HTTP/2.
+Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for
+backwards compatibilty with clients that don't speak HTTP/2.
+@item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.
+@item HTTP/2 uses a header compression method called @dfn{HPACK}.
+nghttp2 provides a HPACK encoder and decoder as part of its public API.
+@item @command{deflatehd} converts JSON data or HTTP/1-style header fields to
+compressed JSON header blocks.
+@item @command{inflatehd} converts such compressed headers back to JSON pairs.
+@end itemize\n")
+    (license l:expat)))