gnu: emacs-dash: Update to 2.17.0.
[jackhill/guix/guix.git] / gnu / packages / networking.scm
index 2f7f675..7d81b44 100644 (file)
@@ -4,9 +4,9 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
-;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -14,7 +14,7 @@
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2019 Tonton <tonton@riseup.net>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
+;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +65,8 @@
   #:use-module (guix build-system go)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system trivial)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
+  #:use-module (gnu packages openldap)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -155,7 +169,7 @@ or, more generally, MAC addresses of the same category of hardware.")
             (substitute* "src/Makefile"
               (("^TESTS = .*") "TESTS = \n"))
             #t)))))
-    (home-page "http://www.remlab.net/miredo/")
+    (home-page "https://www.remlab.net/miredo/")
     (synopsis "Teredo IPv6 tunneling software")
     (description
      "Miredo is an implementation (client, relay, server) of the Teredo
@@ -166,7 +180,7 @@ residing in IPv4-only networks, even when they are behind a NAT device.")
 (define-public socat
   (package
     (name "socat")
-    (version "1.7.3.3")
+    (version "1.7.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -174,9 +188,9 @@ residing in IPv4-only networks, even when they are behind a NAT device.")
                     version ".tar.bz2"))
               (sha256
                (base32
-                "0jnhjijyq74g3wa4ph0am83z6vq7qna7ac0xqjma8s4197z3zmhd"))))
+                "1z7xgnwiqpcv1j6aghhj9nqbx7cg3gpc4n9j7vi9hm7nhv5788wp"))))
     (build-system gnu-build-system)
-    (arguments '(#:tests? #f))                    ;no 'check' phase
+    (arguments '(#:tests? #f))          ; no test suite
     (inputs `(("openssl" ,openssl)))
     (home-page "http://www.dest-unreach.org/socat/")
     (synopsis
@@ -276,15 +290,15 @@ transparently check connection attempts against an access control list.")
   (package
     (name "zeromq")
     (version "4.3.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/zeromq/libzmq/releases/"
-                           "download/v" version "/zeromq-" version ".tar.gz"))
-       (sha256
-        (base32 "0qzp80ky4y2k7k1ya09v9gkivvfbz2km813snrb8jhnn634bbmzb"))))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/zeromq/libzmq/releases"
+                                  "/download/v" version "/zeromq-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0qzp80ky4y2k7k1ya09v9gkivvfbz2km813snrb8jhnn634bbmzb"))))
     (build-system gnu-build-system)
-    (home-page "http://zeromq.org")
+    (home-page "https://zeromq.org")
     (synopsis "Library for message-based applications")
     (description
      "The 0MQ lightweight messaging kernel is a library which extends the
@@ -298,7 +312,7 @@ more.")
 (define-public czmq
   (package
     (name "czmq")
-    (version "4.1.1")
+    (version "4.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -307,21 +321,19 @@ more.")
                     "/" name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1h5hrcsc30fcwb032vy5gxkq4j4vv1y4dj460rfs1hhxi0cz83zh"))))
+                "1szciz62sk3fm4ga9qjpxz0n0lazvphm32km95bq92ncng12kayg"))))
     (build-system gnu-build-system)
     (arguments
-     '(;; TODO Tests fail for some reason:
-       ;;  * zauth: OK
-       ;;  * zbeacon: OK (skipping test, no UDP broadcasting)
-       ;; E: (czmq_selftest) 18-02-24 16:25:52 No broadcast interface found, (ZSYS_INTERFACE=lo)
-       ;; make[2]: *** [Makefile:2245: check-local] Segmentation fault
-       ;; make[2]: Leaving directory '/tmp/guix-build-czmq-4.1.0.drv-0/czmq-4.1.0'
-       ;; make[1]: *** [Makefile:2032: check-am] Error 2
-       ;; make[1]: Leaving directory '/tmp/guix-build-czmq-4.1.0.drv-0/czmq-4.1.0'
-       ;; make: *** [Makefile:1588: check-recursive] Error 1
-       ;; phase `check' failed after 19.4 seconds
-       #:tests? #f
-       #:configure-flags '("--enable-drafts")))
+     '(#:configure-flags '("--enable-drafts")
+       #:phases (modify-phases %standard-phases
+                  (add-before 'check 'patch-tests
+                    (lambda _
+                      ;; XXX FIXME: Disable the zproc test, which fails on some
+                      ;; hardware: <https://github.com/zeromq/czmq/issues/2007>.
+                      (substitute* "src/czmq_selftest.c"
+                        (("\\{ \"zproc\", zproc_test.*")
+                         ""))
+                      #t)))))
     (inputs
      `(("zeromq" ,zeromq)))
     (home-page "http://zeromq.org")
@@ -332,33 +344,35 @@ between different versions of ØMQ.")
     (license license:mpl2.0)))
 
 (define-public cppzmq
-  (let ((revision "0")
-        (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4"))
-    (package
-      (name "cppzmq")
-      (version (string-append "4.2.2-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/zeromq/cppzmq")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (build-system cmake-build-system)
-      (arguments '(#:tests? #f)) ; No tests.
-      (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (inputs
-       `(("zeromq" ,zeromq)))
-      (home-page "http://zeromq.org")
-      (synopsis "C++ bindings for the ØMQ messaging library")
-      (description
-       "This package provides header-only C++ bindings for ØMQ.  The header
+  (package
+    (name "cppzmq")
+    (version "4.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zeromq/cppzmq")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "19acx2bzi4n6fdnfgkja1nds7m1bwg8lw5vfcijrx9fv75pa7m8h"))
+              (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     '(;; FIXME: The test suite requires downloading Catch and custom
+       ;; CMake targets, and refuses to use the system version.
+       ;; See <https://github.com/zeromq/cppzmq/issues/334>.
+       #:tests? #f
+       #:configure-flags '("-DCPPZMQ_BUILD_TESTS=OFF")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("zeromq" ,zeromq)))
+    (home-page "http://zeromq.org")
+    (synopsis "C++ bindings for the ØMQ messaging library")
+    (description
+     "This package provides header-only C++ bindings for ØMQ.  The header
 files contain direct mappings of the abstractions provided by the ØMQ C API.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public librdkafka
   (package
@@ -420,14 +434,14 @@ receiving NDP messages.")
 (define-public ethtool
   (package
     (name "ethtool")
-    (version "4.19")
+    (version "5.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/software/network/"
                                   "ethtool/ethtool-" version ".tar.xz"))
               (sha256
                (base32
-                "1j6hyr809af2m3gqm11hdfwks5kljqy1ikspq3d9rhj29qv6r2mi"))))
+                "0srbqp4a3x9ryrbm5q854375y04ni8j0bmsrl89nmsyn4x4ixy12"))))
     (build-system gnu-build-system)
     (home-page "https://www.kernel.org/pub/software/network/ethtool/")
     (synopsis "Display or change Ethernet device settings")
@@ -540,7 +554,7 @@ test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
               ("zlib" ,zlib)))
     (native-inputs `(("check" ,check)
                      ("pkg-config" ,pkg-config)))
-    (home-page "http://code.kryo.se/iodine/")
+    (home-page "https://code.kryo.se/iodine/")
     (synopsis "Tunnel IPv4 data through a DNS server")
     (description "Iodine tunnels IPv4 data through a DNS server.  This
 can be useful in different situations where internet access is firewalled, but
@@ -552,14 +566,14 @@ and up to 1 Mbit/s downstream.")
 (define-public whois
   (package
     (name "whois")
-    (version "5.5.1")
+    (version "5.5.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://debian/pool/main/w/whois/"
                            "whois_" version ".tar.xz"))
        (sha256
-        (base32 "10mc7iqhdnvd1kk8gnnhihd5ga2rw3sz69n3nd6x8fb65qpq13gf"))))
+        (base32 "0kpi981zjczvdcxfcq455c529vlaxa73x8kbm530z5b01h0fk8fb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
@@ -594,14 +608,14 @@ of the same name.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "3.0.3")
+    (version "3.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0711jilp9sbgi46d105m3galw8n4wk5yncawi08031qxg2f754mg"))))
+        (base32 "0ygdxpz0i4jxp55fg9x4xcan093wycjb66yas073gviz9kpj6naz"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -850,6 +864,47 @@ prints timing information for each step of the HTTP request (DNS lookup,
 TCP connection, TLS handshake and so on) in the terminal.")
     (license license:expat)))
 
+(define-public squid
+  (package
+    (name "squid")
+    (version "4.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.squid-cache.org/Versions/v4/squid-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "07sz0adv8nkhy797675bpra7lvdkwjq9isw1ddgylhlazl511w4q"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-true-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "test-suite/testheaders.sh"
+               (("/bin/true")
+                (string-append (assoc-ref inputs "coreutils")
+                               "/bin/true")))
+             #t)))))
+    (inputs
+     `(("perl" ,perl)
+       ("openldap" ,openldap)
+       ("linux-pam" ,linux-pam)
+       ("libcap" ,libcap)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("expat" ,expat)
+       ("libxml2" ,libxml2)
+       ("openssl" ,openssl)))
+    (native-inputs
+     `(("cppunit" ,cppunit)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Web caching proxy")
+    (description "Squid is a caching proxy for the Web supporting HTTP, HTTPS,
+FTP, and more.  It reduces bandwidth and improves response times by caching and
+reusing frequently-requested web pages.")
+    (home-page "http://www.squid-cache.org/")
+    (license license:gpl2+)))
+
 (define-public bwm-ng
   (package
     (name "bwm-ng")
@@ -887,15 +942,14 @@ live network and disk I/O bandwidth monitor.")
 (define-public aircrack-ng
   (package
     (name "aircrack-ng")
-    (version "1.5.2")
+    (version "1.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.aircrack-ng.org/aircrack-ng-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0hc2x17bxk2n00z8jj5jfwq3z41681fd19n018724il0cpkjyncy"))))
+        (base32 "0ix2k64qg7x3w0bzdsbk1m50kcpq1ws59g3zkwiafvpwdr4gs2sg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -978,15 +1032,15 @@ non-existing entropy of some access points.")
 (define-public reaver
   (package
     (name "reaver")
-    (version "1.6.5")
+    (version "1.6.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/t6x/reaver-wps-fork-t6x/releases/"
-                    "download/v" version "/" name "-" version ".tar.xz"))
+                    "download/v" version "/reaver-" version ".tar.xz"))
               (sha256
                (base32
-                "0sva3g0kwgv143n9l3lg4qp5iiqz7nk76nr0hwivsnglbhk9sbil"))))
+                "00k7mc81ifv0wma7k4v18mj498badbw5yls6c28qin3d1gda0ag3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -1009,7 +1063,7 @@ non-existing entropy of some access points.")
                          (find-files "." "README.*"))
                (install-file "reaver.1" man1)
                #t))))
-       #:tests? #f)) ; there are no tests
+       #:tests? #f))                    ; there are no tests
     (inputs
      `(("libpcap" ,libpcap)))
     (propagated-inputs
@@ -1026,16 +1080,17 @@ reconfigured.")
 (define-public perl-danga-socket
   (package
     (name "perl-danga-socket")
-    (version "1.61")
+    (version "1.62")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/B/BR/BRADFITZ/"
+       (uri (string-append "mirror://cpan/authors/id/N/NM/NML/"
                            "Danga-Socket-" version ".tar.gz"))
        (sha256
-        (base32
-         "0nciapvxnc922ms304af0vavz1kgyr45ard8wc659k9srqar4hwf"))))
+        (base32 "0x4bvirmf0kphks19jwgva00zz73zx344218dfaiv8gigrw3yg4m"))))
     (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-tcp" ,perl-test-tcp)))
     (propagated-inputs
      `(("perl-sys-syscall" ,perl-sys-syscall)))
     (home-page "https://metacpan.org/release/Danga-Socket")
@@ -1077,7 +1132,7 @@ private (reserved).")
 (define-public perl-net-dns
  (package
   (name "perl-net-dns")
-  (version "1.20")
+  (version "1.21")
   (source
     (origin
       (method url-fetch)
@@ -1088,7 +1143,7 @@ private (reserved).")
         (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
                        version ".tar.gz")))
       (sha256
-       (base32 "06z09igd42s0kg2ps5k7vpypg77zswfryqzbyalbllvjd0mnknbz"))))
+       (base32 "0yknrsh0wqr9s43c0wf3dyzrsi2r7k0v75hay74gqkq850xy3vyx"))))
   (build-system perl-build-system)
   (inputs
     `(("perl-digest-hmac" ,perl-digest-hmac)))
@@ -1229,6 +1284,14 @@ It is intended primarily for use in testing.")
         (base32
           "0ln5f57vc8388kyh9vhx2infrdzfhbpgyby74h1qsnhwds95m0vh"))))
   (build-system perl-build-system)
+  (arguments
+   '(#:phases
+     (modify-phases %standard-phases
+       (add-after 'unpack 'dont-link-with-nsl ; Borrowed from Debian.
+         (lambda _
+           (substitute* "Makefile.PL"
+             (("-lnsl") ""))
+           #t)))))
   (inputs
     `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
       ("perl-socket6" ,perl-socket6)))
@@ -1482,14 +1545,14 @@ that block port 22.")
 (define-public iperf
   (package
     (name "iperf")
-    (version "3.1.7")
+    (version "3.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://downloads.es.net/pub/iperf"
                                   "/iperf-" version ".tar.gz"))
               (sha256
                 (base32
-                 "0kvk8d0a3dcxc8fisyprbn01y8akxj4sx8ld5dh508p9dx077vx4"))))
+                 "033is7b5grfbiil98jxlz4ixp9shm44x6hy8flpsyz1i4h108inq"))))
     (build-system gnu-build-system)
     (synopsis "TCP, UDP and SCTP bandwidth measurement tool")
     (description
@@ -1497,7 +1560,7 @@ that block port 22.")
 supports tuning of various parameters related to timing, buffers and
 protocols (TCP, UDP, SCTP with IPv4 and IPv6).  For each test it reports
 the bandwidth, loss, and other parameters.")
-    (home-page "http://software.es.net/iperf/")
+    (home-page "https://software.es.net/iperf/")
     (license (list license:bsd-3             ; Main distribution.
                    license:ncsa              ; src/{units,iperf_locale,tcp_window_size}.c
                    license:expat             ; src/{cjson,net}.[ch]
@@ -1586,7 +1649,7 @@ procedure calls (RPCs).")
 (define-public openvswitch
   (package
     (name "openvswitch")
-    (version "2.11.1")
+    (version "2.12.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1594,7 +1657,7 @@ procedure calls (RPCs).")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1p5mv44jaslvrr1ym15smqna19y0gi4vqcsyj58625vv9bj6laf1"))))
+                "1y78ix5inhhcvicbvyy2ij38am1215nr55vydhab3d4065q45z8k"))))
     (build-system gnu-build-system)
     (arguments
      '(;; FIXME: many tests fail with:
@@ -1666,7 +1729,7 @@ networks.")
 (define-public speedtest-cli
   (package
     (name "speedtest-cli")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method git-fetch)
@@ -1675,7 +1738,7 @@ networks.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0swm7nbk99w2xf1cb0l3c8y1vm4rqw6785p5j04alyb0g98vqa4b"))))
+        (base32 "1456yly6iym2c9bl6pi4sz8xbw34bm2dxm1vzpydsd6jazwpmy26"))))
     (build-system python-build-system)
     (home-page "https://github.com/sivel/speedtest-cli")
     (synopsis "Internet bandwidth tester")
@@ -1703,7 +1766,7 @@ speedtest.net.")
      "This is a tftp client derived from OpenBSD tftp with some extra options
 added and bugs fixed.  The source includes readline support but it is not
 enabled due to license conflicts between the BSD advertising clause and the GPL.")
-    (home-page "http://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
+    (home-page "https://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
     ;; Some source files are distributed under a 3-clause BSD license, and
     ;; others under a 4-clause BSD license. Refer to the files in the source
     ;; distribution for clarification.
@@ -1726,7 +1789,7 @@ enabled due to license conflicts between the BSD advertising clause and the GPL.
     (arguments
      `(#:tests? #f)) ; No tests are included
     (inputs
-     `(("openssl" ,openssl))) ; For the DES library
+     `(("openssl" ,openssl-1.0)))       ;for the DES library
     (home-page "https://www.lysator.liu.se/~pen/pidentd/")
     (synopsis "Small Ident Daemon")
     (description
@@ -1939,27 +2002,24 @@ can be whipped up with little effort.")
 (define-public mtr
   (package
     (name "mtr")
-    (version "0.92")
+    (version "0.93")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "ftp://ftp.bitwizard.nl/" name "/"
-                           name "-" version ".tar.gz"))
+       (uri (string-append "ftp://ftp.bitwizard.nl/mtr/"
+                           "mtr-" version ".tar.gz"))
        (sha256
-        (base32 "10j3ds3p27jygys4x08kj8fi3zlsgiv72xsfazkah6plwawrv5zj"))))
+        (base32 "03gid8g4r6a9r40855s4345xm1bylj2kfqkicjwxpmvvccyng712"))))
     (build-system gnu-build-system)
     (inputs
      `(("libcap" ,libcap)
        ("ncurses" ,ncurses)))
-    (native-inputs
-     ;; The 0.92 release tarball still requires the ‘autoheader’ tool.
-     `(("autoconf" ,autoconf)))
     (arguments
      `(#:tests? #f))                    ; tests require network access
     (home-page "https://www.bitwizard.nl/mtr/")
     (synopsis "Network diagnostic tool")
     (description
-     "@dfn{mtr} (My TraceRoute) combines the functionality of the
+     "@acronym{mtr, My TraceRoute} combines the functionality of the
 @command{traceroute} and @command{ping} programs in a single network diagnostic
 tool.  @command{mtr} can use several network protocols to detect intermediate
 routers (or @dfn{hops}) between the local host and a user-specified destination.
@@ -1970,14 +2030,14 @@ displays the results in real time.")
 (define-public strongswan
   (package
     (name "strongswan")
-    (version "5.8.0")
+    (version "5.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.strongswan.org/strongswan-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "0cq9m86ydd2i0awxkv4a256f4926p2f9pzlisyskl9fngl6f3c8m"))))
+        (base32 "03j3fx357bh89n44a5v9wdc92azdx2d37j7jmlyr4z1kwzdhv446"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -2000,7 +2060,7 @@ displays the results in real time.")
              #t)))
        #:configure-flags
        (list
-        ;; Disable bsd-4 licensed plugins
+        ;; Disable bsd-4 licensed plugins.
         "--disable-des"
         "--disable-blowfish")))
     (inputs
@@ -2118,6 +2178,12 @@ remotely.")
                (base32
                 "0qz2730bng1gs9xbqxhkw88qbsmszgmmrl2g9k6xrg6r3bqvsdc7"))))
     (build-system gnu-build-system)
+    (arguments
+     `(;; Ensure the kernel headers are treated as system headers to suppress
+       ;; harmless -Werror=pedantic warnings.
+       #:make-flags (list (string-append "C_INCLUDE_PATH="
+                                         (assoc-ref %build-inputs "kernel-headers")
+                                         "/include"))))
     (inputs `(("zeromq" ,zeromq)
               ("czmq" ,czmq)
               ("libsodium" ,libsodium)))
@@ -2321,7 +2387,7 @@ SNMP v3 using both IPv4 and IPv6.")
 (define-public ubridge
   (package
     (name "ubridge")
-    (version "0.9.15")
+    (version "0.9.16")
     (source
      (origin
        (method git-fetch)
@@ -2330,7 +2396,7 @@ SNMP v3 using both IPv4 and IPv6.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0fl07zyall04map6v2l1bclqh8y3rrhsx61s2v0sr8b00j201jg4"))))
+        (base32 "1bind7ylgxs743vfdmpdrpp4iamy461bc3i7nxza91kj7hyyjz6h"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -2389,8 +2455,7 @@ Ethernet and TAP interfaces is supported.  Packet capture is also supported.")
                      (string-append (assoc-ref inputs "curl") "/include:"
                                     (assoc-ref inputs "libpcap") "/include:"
                                     (assoc-ref inputs "openssl") "/include:"
-                                    (assoc-ref inputs "zlib") "/include:"
-                                    (getenv "C_INCLUDE_PATH")))
+                                    (assoc-ref inputs "zlib") "/include"))
              #t)))))
     (home-page "https://github.com/ZerBea/hcxtools")
     (synopsis "Capture wlan traffic to hashcat and John the Ripper")
@@ -2512,10 +2577,52 @@ communication over HTTP.")
       (home-page "https://github.com/Corvusoft/restbed")
       (license license:agpl3+))))
 
+(define-public restinio
+  (package
+    (name "restinio")
+    (version "0.6.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Stiffstream/restinio.git")
+                    (commit (string-append "v." version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c25kpx652nng8m1sqf5an2c3c4g3k6zj85mkkaxzk88iwfzq1s8"))))
+    (build-system cmake-build-system)
+    (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
+     `(("zlib" ,zlib)
+       ("catch2" ,catch-framework2)
+       ("openssl" ,openssl)
+       ("boost" ,boost)
+       ("pcre" ,pcre)
+       ("pcre2" ,pcre2)
+       ("sobjectizer" ,sobjectizer)))
+    (propagated-inputs
+     `(("asio", asio)
+       ("fmt" ,fmt)
+       ("http-parser", http-parser)))
+    (arguments
+     `(#:configure-flags '("-DRESTINIO_INSTALL=on")
+       #:tests? #f ; TODO: The tests are called from the root CMakelist, need RESTINIO_TEST=on.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "dev/restinio")
+             #t)))))
+    (home-page "https://stiffstream.com/en/products/restinio.html")
+    (synopsis "C++14 library that gives you an embedded HTTP/Websocket server")
+    (description "RESTinio is a header-only C++14 library that gives you an embedded
+HTTP/Websocket server.  It is based on standalone version of ASIO
+and targeted primarily for asynchronous processing of HTTP-requests.")
+    (license license:bsd-3)))
+
 (define-public opendht
   (package
     (name "opendht")
-    (version "1.8.1")
+    (version "2.0.0beta2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2524,26 +2631,36 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0vninb5mak27wigajslyvr05vq7wbrwqhbr4wzl2nmqcb20wmlq2"))))
-    (build-system gnu-build-system)
+                "02ix0rvvyhq22gd5djcq84qz08ji7ln93faf23b27zjzni2klzv5"))))
+    ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
+    (build-system cmake-build-system)
     (inputs
      `(("gnutls" ,gnutls)
        ("nettle" ,nettle)
        ("readline" ,readline)
        ("jsoncpp" ,jsoncpp)
-       ("restbed" ,restbed)))
+       ("openssl" ,openssl)
+       ("fmt" ,fmt)))
     (propagated-inputs
-     `(("argon2" ,argon2)               ; TODO: Needed for the pkg-config .pc file to work?
+     `(("argon2" ,argon2)  ; TODO: Needed for the pkg-config .pc file to work?
        ("msgpack" ,msgpack)))           ;included in several installed headers
     (native-inputs
      `(("autoconf" ,autoconf)
        ("pkg-config" ,pkg-config)
+       ("restinio" ,restinio)
        ("automake" ,automake)
-       ("libtool" ,libtool)))
+       ("libtool" ,libtool)
+       ("cppunit" ,cppunit)))
     (arguments
-     `(#:configure-flags '("--disable-tools"
-                           "--disable-python"
-                           "--with-argon2")))
+     `(#:tests? #f                      ; Tests require network connection.
+       #:configure-flags
+       '(;; "-DOPENDHT_TESTS=on"
+         "-DOPENDHT_TOOLS=off"
+         "-DOPENDHT_PYTHON=off"
+         "-DOPENDHT_PROXY_SERVER=on"
+         "-DOPENDHT_PUSH_NOTIFICATIONS=on"
+         "-DOPENDHT_PROXY_SERVER_IDENTITY=on"
+         "-DOPENDHT_PROXY_CLIENT=on")))
     (home-page "https://github.com/savoirfairelinux/opendht/")
     (synopsis "Distributed Hash Table (DHT) library")
     (description "OpenDHT is a Distributed Hash Table (DHT) library.  It may
@@ -2578,3 +2695,288 @@ communication.")
     (description "FRRouting (FRR) is an IP routing protocol suite which includes
 protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ")
     (license license:gpl2+)))
+
+(define-public iwd
+  (package
+    (name "iwd")
+    (version "0.21")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.kernel.org/pub/scm/network/wireless/iwd.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "001dikinsa6kshwscjbvwipavzwpqnpvx9fpshcn63gbvbhyd393"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("dbus" ,dbus)
+       ("libtool" ,libtool)
+       ("ell" ,ell)
+       ("readline" ,readline)))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkgconfig" ,pkg-config)
+       ("python" ,python)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:configure-flags
+       (let ((dbus (assoc-ref %outputs "out")))
+         (list "--disable-systemd-service"
+               "--enable-external-ell"
+               "--enable-hwsim"
+               "--enable-tools"
+               "--enable-wired"
+               "--enable-docs"
+               "--localstatedir=/var"
+               (string-append "--with-dbus-datadir=" dbus "/share/")
+               (string-append "--with-dbus-busdir="
+                              dbus "/share/dbus-1/system-services")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'pre-bootstrap
+           (lambda _
+             (substitute* "Makefile.am"
+               ;; Test disabled because it needs the kernel module
+               ;; 'pkcs8_key_parser' loaded.
+               (("unit\\/test-eapol.*? ") "")
+               ;; Don't try to 'mkdir /var'.
+               (("\\$\\(MKDIR_P\\) -m 700") "true"))
+             #t)))))
+    (home-page "https://git.kernel.org/pub/scm/network/wireless/iwd.git/")
+    (synopsis "Internet Wireless Daemon")
+    (description "iwd is a wireless daemon for Linux that aims to replace WPA
+Supplicant.  It optimizes resource utilization by not depending on any external
+libraries and instead utilizing features provided by the Linux kernel to the
+maximum extent possible.")
+    (license license:lgpl2.1+)))
+
+(define-public batctl
+  (package
+   (name "batctl")
+   (version "2020.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append "https://downloads.open-mesh.org/batman/releases/batman-adv-"
+                         version "/batctl-" version ".tar.gz"))
+     (sha256
+      (base32 "01414ywhlb2b9ng9d5kd5rr1s7wzvi234j8hj6ra2spn92qykvv0"))))
+   (inputs
+    `(("libnl" ,libnl)))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:tests? #f
+      ;; Batctl only has a makefile. Thus we disable tests and
+      ;; configuration, passing in a few make-flags.
+      #:phases (modify-phases %standard-phases (delete 'configure))
+      #:make-flags
+      (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+            (string-append "PKG_CONFIG=" (assoc-ref %build-inputs "pkg-config")
+                           "/bin/pkg-config")
+            "CC=gcc")))
+   (home-page "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki")
+   (synopsis "Management tool for the mesh networking BATMAN protocol")
+   (description "This package provides a control tool for the
+B.A.T.M.A.N. mesh networking routing protocol provided by the Linux kernel
+module @code{batman-adv}, for Layer 2.")
+   (license license:gpl2+)))
+
+(define-public pagekite
+  (package
+    (name "pagekite")
+    (version "1.5.0.191126")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pagekite/PyPagekite.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0mncfjfrr13sm84g5z49qxg5cy791h5qxphjsl77x91zs3m36c8l"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-man-page
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man (string-append out "/share/man")))
+               (invoke "make"
+                       (string-append "PYTHONPATH=" (getenv "PYTHONPATH"))
+                       "doc/pagekite.1")
+               (install-file "doc/pagekite.1" (string-append man "/man1"))
+               #t))))))
+    (inputs
+     `(("python-six" ,python-six)
+       ("python-socksipychain" ,python-socksipychain)))
+    (home-page "https://pagekite.net/")
+    (synopsis "Make localhost servers publicly visible")
+    (description
+     "PageKite implements a tunneled reverse proxy which makes it easy to make
+a service (such as an HTTP or SSH server) on localhost visible to the wider
+Internet, even behind NAT or restrictive firewalls.  A managed front-end relay
+service is available at @url{https://pagekite.net/}, or you can run your own.")
+    (license license:agpl3+)))
+
+(define-public ipcalc
+  (package
+    (name "ipcalc")
+    (version "0.41")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://jodies.de/ipcalc-archive/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12if9sm8h2ac0pgwkw835cgyqjxm6h27k4kfn2vfas9krrqwbafx"))))
+    (inputs `(("perl" ,perl)
+              ("tar" ,tar)
+              ("gzip" ,gzip)
+              ("tarball" ,source)))
+    (build-system trivial-build-system) ;no Makefile.PL
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (use-modules (srfi srfi-1))
+         (let* ((source (assoc-ref %build-inputs "source"))
+                (perl (string-append (assoc-ref %build-inputs "perl")
+                                     "/bin"))
+                (tar (assoc-ref %build-inputs "tar"))
+                (gz  (assoc-ref %build-inputs "gzip"))
+                (out (assoc-ref %outputs "out"))
+                (bin (string-append out "/bin"))
+                (doc (string-append out "/share/doc/ipcalc")))
+           (setenv "PATH" (string-append gz "/bin"))
+           (invoke (string-append tar "/bin/tar") "xvf" source)
+           (chdir (string-append ,name "-" ,version))
+
+           (install-file "ipcalc" bin)
+           (patch-shebang (string-append bin "/ipcalc") (list perl))
+           #t))))
+    (synopsis "Simple IP network calculator")
+    (description "ipcalc takes an IP address and netmask and calculates the
+resulting broadcast, network, Cisco wildcard mask, and host range.  By giving
+a second netmask, you can design subnets and supernets.  It is also intended
+to be a teaching tool and presents the subnetting results as
+easy-to-understand binary values.")
+    (home-page "http://jodies.de/ipcalc")
+    (license license:gpl2+)))
+
+(define-public tunctl
+  (package
+    (name "tunctl")
+    (version "1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/tunctl/tunctl/" version "/"
+                           "tunctl-" version ".tar.gz"))
+       (sha256
+        (base32 "1zsgn7w6l2zh2q0j6qaw8wsx981qcr536qlz1lgb3b5zqr66qama"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)            ;there is no configure.ac file
+         (delete 'configure)            ;there is no configure script
+         (delete 'check)                ;there are no tests
+         (replace 'build
+           (lambda _
+             (setenv "CC" "gcc")
+             (invoke "make" "tunctl")))
+         ;; TODO: Requires docbook2x to generate man page from SGML.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "tunctl" bin))
+             #t)))))
+    (home-page "http://tunctl.sourceforge.net")
+    (synopsis  "Utility to set up and maintain TUN/TAP network interfaces")
+    (description "Tunctl is used to set up and maintain persistent TUN/TAP
+network interfaces, enabling user applications to simulate network traffic.
+Such interfaces are useful for VPN software, virtualization, emulation,
+simulation, and a number of other applications.")
+    (license license:gpl2)))
+
+(define-public vde2
+  (package
+    (name "vde2")
+    (version "2.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "mirror://sourceforge/vde/vde2/2.3.2/vde2-2.3.2.tar.gz")
+       (sha256
+        (base32 "14xga0ib6p1wrv3hkl4sa89yzjxv7f1vfqaxsch87j6scdm59pr2"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:parallel-build? #f))           ; Build fails if #t.
+    (inputs
+     `(("python" ,python)
+       ("libpcap" ,libpcap)
+       ("openssl" ,openssl-1.0)))       ; Build fails with 1.1.
+    (home-page "https://github.com/virtualsquare/vde-2")
+    (synopsis "Virtual Distributed Ethernet")
+    (description "VDE is a set of programs to provide virtual software-defined
+Ethernet network interface controllers across multiple virtual or
+physical, local or remote devices.  The VDE architecture provides
+virtual counterparts to hardware components such as switches and
+cables.")
+    (license (list license:gpl2
+                   license:lgpl2.1       ; libvdeplug
+                   (license:non-copyleft ; slirpvde
+                    "file://COPYING.slirpvde"
+                    "See COPYING.slirpvde in the distribution.")))))
+
+(define-public haproxy
+  (package
+    (name "haproxy")
+    (version "2.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.haproxy.org/download/"
+                                  (version-major+minor version)
+                                  "/src/haproxy-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0n8bw3d6gikr8c56ycrvksp1sl0b4yfzp19867cxkl3l0daqwrxv"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (let* ((out (assoc-ref %outputs "out")))
+         (list (string-append "PREFIX=" out)
+               (string-append "DOCDIR=" out "/share/" ,name)
+               "TARGET=linux-glibc"
+               "USE_LUA=1"
+               "USE_OPENSSL=1"
+               "USE_ZLIB=1"
+               "USE_PCRE_2=1"))
+       #:tests? #f  ; there are only regression tests, using varnishtest
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs
+     `(("lua" ,lua)
+       ("openssl" ,openssl)
+       ("pcre2" ,pcre2)
+       ("zlib" ,zlib)))
+    (home-page "https://www.haproxy.org/")
+    (synopsis "Reliable, high performance TCP/HTTP load balancer")
+    (description "HAProxy is a free, very fast and reliable solution offering
+high availability, load balancing, and proxying for TCP and HTTP-based
+applications.  It is particularly suited for web sites crawling under very
+high loads while needing persistence or Layer7 processing.  Supporting tens of
+thousands of connections is clearly realistic with today's hardware.")
+    (license (list license:gpl2+
+                   license:lgpl2.1
+                   license:lgpl2.1+))))