diff options
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r-- | gnu/packages/networking.scm | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 75017c060c..1e6f70e1ff 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,6 +64,7 @@ #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) + #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system trivial) @@ -85,6 +87,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages dejagnu) + #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages freedesktop) @@ -297,6 +300,34 @@ specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts residing in IPv4-only networks, even when they are behind a NAT device.") (license license:gpl2+))) +(define-public ndisc6 + (package + (name "ndisc6") + (version "1.0.4") + (source (origin + (method url-fetch) + (uri (string-append "https://www.remlab.net/files/ndisc6/ndisc6-" + version ".tar.bz2")) + (sha256 + (base32 + "07swyar1hl83zxmd7fqwb2q0c0slvrswkcfp3nz5lknrk15dmcdb")))) + (build-system gnu-build-system) + (home-page "https://www.remlab.net/ndisc6/") + (synopsis "IPv6 diagnostic tools") + (description + "NDisc6 is a collection of tools for IPv6 networking diagnostics. +It includes the following programs: + +@itemize +@item @command{ndisc6}: ICMPv6 Neighbor Discovery tool. +@item @command{rdisc6}: ICMPv6 Router Discovery tool. +@item @command{tcptraceroute6}: IPv6 traceroute over TCP. +@item @command{traceroute6}: IPv6 traceroute over UDP. +@item @command{rdnssd}: Recursive DNS Servers discovery daemon. +@end itemize") + ;; The user can choose version 2 or 3 of the GPL, not later versions. + (license (list license:gpl2 license:gpl3)))) + (define-public socat (package (name "socat") @@ -653,6 +684,76 @@ interfaces, with a simple and efficient view on the command line. It is intended as a substitute for the PPPStatus and EthStatus projects.") (license license:gpl2+))) +(define-public iputils + (package + (name "iputils") + (version "20190709") + (home-page "https://github.com/iputils/iputils") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "s" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "iputils-libcap-compat.patch")) + (sha256 + (base32 + "04bp4af15adp79ipxmiakfp0ij6hx5qam266flzbr94pr8z8l693")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-DBUILD_RARPD=true") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-docbook-url + (lambda* (#:key inputs #:allow-other-keys) + (let* ((docbook-xsl (assoc-ref inputs "docbook-xsl")) + (uri (string-append docbook-xsl "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl)))) + (for-each + (lambda (file) + (substitute* file + (("http://docbook\\.sourceforge\\.net/release/xsl-ns/current") + uri))) + (cons "doc/meson.build" + (find-files "doc" "\\.xsl$"))) + #t)))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml" ,docbook-xml-5) + ("libxml2" ,libxml2) ;for XML_CATALOG_FILES + ("xsltproc" ,libxslt))) + (inputs + `(("libcap" ,libcap) + ("libidn2" ,libidn2) + ("openssl" ,openssl))) + (synopsis "Collection of network utilities") + (description + "This package contains a variety of tools for dealing with network +configuration, troubleshooting, or servers. Utilities included are: + +@itemize @bullet +@item @command{arping}: Ping hosts using the @dfn{Adress Resolution Protocol}. +@item @command{clockdiff}: Compute time difference between network hosts +using ICMP TSTAMP messages. +@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries. +@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays +and packet loss across network paths. +@item @command{rarpd}: Answer RARP requests from clients. +@item @command{rdisc}: Populate network routing tables with information from +the ICMP router discovery protocol. +@item @command{tftpd}: Trivial file transfer protocol server. +@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and +discover MTU along the way. +@end itemize") + ;; The various utilities are covered by different licenses, see LICENSE + ;; for details. + (license (list license:gpl2+ ;arping, rarpd, tracepath + license:bsd-3 ;clockdiff, ninfod, ping, tftpd + (license:non-copyleft + "https://spdx.org/licenses/Rdisc.html" + "Sun Microsystems license, see rdisc.c for details"))))) + (define-public nload (package (name "nload") @@ -3187,3 +3288,49 @@ CDP. The goal of LLDP is to provide an inter-vendor compatible mechanism to deliver Link-Layer notifications to adjacent network devices. @code{lldpd} is an implementation of LLDP. It also supports some proprietary protocols.") (license license:isc))) + +(define-public hashcash + (package + (name "hashcash") + (version "1.22") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.hashcash.org/source/hashcash-" + version ".tgz")) + (sha256 + (base32 + "15kqaimwb2y8wvzpn73021bvay9mz1gqqfc40gk4hj6f84nz34h1")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list (string-append "CC=" ,(cc-for-target))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + ;; No tests available. + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((outdir (assoc-ref outputs "out")) + (bindir (string-append outdir "/bin")) + (mandir (string-append outdir "/share/man/man1")) + (docdir (string-append outdir "/share/doc/hashcash-" ,version))) + ;; Install manually, as we don't need the `sha1' binary + (install-file "hashcash" bindir) + (install-file "hashcash.1" mandir) + (install-file "README" docdir) + (install-file "LICENSE" docdir) + (install-file "CHANGELOG" docdir) + #t)))))) + (home-page "https://www.hashcash.org/") + (synopsis "Denial-of-service countermeasure") + (description "Hashcash is a proof-of-work algorithm, which has been used +as a denial-of-service countermeasure technique in a number of systems. + +A hashcash stamp constitutes a proof-of-work which takes a parametrizable +amount of work to compute for the sender. The recipient can verify received +hashcash stamps efficiently. + +This package contains a command-line tool for computing and verifying hashcash +stamps.") + (license license:public-domain))) |