diff options
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r-- | gnu/packages/networking.scm | 207 |
1 files changed, 174 insertions, 33 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 11344216aa..af49b25e7c 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") @@ -1343,13 +1444,13 @@ definitions and structure manipulators for Perl.") (define-public perl-net-dns-resolver-programmable (package (name "perl-net-dns-resolver-programmable") - (version "v0.003") + (version "0.003") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/" - "Net-DNS-Resolver-Programmable-" version ".tar.gz")) + "Net-DNS-Resolver-Programmable-v" version ".tar.gz")) (sha256 (base32 "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d")) @@ -1765,12 +1866,12 @@ gone wild and are suddenly taking up your bandwidth.") (source (origin (method url-fetch) - (uri (string-append "https://github.com/nzbget/nzbget/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://github.com/nzbget/nzbget/releases" + "/download/v" version + "/nzbget-" version "-src.tar.gz")) (sha256 (base32 - "0l3dzxz7d7jf6cyach41zirvsx1x0vs4nh053c0miycv7zjyrly7")) + "0lwd0pfrs4a5ms193hgz2qiyf7grrc925dw6y0nfc0gkp27db9b5")) (modules '((guix build utils))) (snippet ;; Reported upstream as <https://github.com/nzbget/nzbget/pull/414>. @@ -1807,7 +1908,7 @@ procedure calls (RPCs).") (define-public openvswitch (package (name "openvswitch") - (version "2.12.0") + (version "2.13.0") (source (origin (method url-fetch) (uri (string-append @@ -1815,7 +1916,7 @@ procedure calls (RPCs).") version ".tar.gz")) (sha256 (base32 - "1y78ix5inhhcvicbvyy2ij38am1215nr55vydhab3d4065q45z8k")))) + "0cd5vmfr6zwgcnkwys6rag6cmz68v0librpaplianv734xs74pyx")))) (build-system gnu-build-system) (arguments '(;; FIXME: many tests fail with: @@ -1842,11 +1943,9 @@ procedure calls (RPCs).") (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) - ("python" ,python-2) + ("python" ,python-wrapper) ;; for testing ("util-linux" ,util-linux))) - (propagated-inputs - `(("python-six" ,python2-six))) (inputs `(("libcap-ng" ,libcap-ng) ("openssl" ,openssl))) @@ -1936,13 +2035,14 @@ enabled due to license conflicts between the BSD advertising clause and the GPL. (version "3.0.19") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ptrrkssn/pidentd/archive/" - "v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ptrrkssn/pidentd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0y3kd1bkydqkpc1qdff24yswysamsqivvadjy0468qri5730izgc")))) + "1k4rr0b4ygxssbnsykzjvz4hjhazzz4j5arlilyc1iq7b1wzsk7i")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; No tests are included @@ -1951,7 +2051,7 @@ enabled due to license conflicts between the BSD advertising clause and the GPL. (home-page "https://www.lysator.liu.se/~pen/pidentd/") (synopsis "Small Ident Daemon") (description - "@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a + "@dfn{Pidentd} (Peter's Ident Daemon) is an identd, which implements a identification server. Pidentd looks up specific TCP/IP connections and returns the user name and other information about the connection.") (license license:public-domain))) @@ -2121,33 +2221,28 @@ interface and a programmable text output for scripting.") (define-public libnet (package (name "libnet") - (version "1.2-rc3") + (version "1.2") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sam-github/libnet") - (commit (string-append "libnet-" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://github.com/libnet/libnet/releases/download" + "/v" version "/libnet-" version ".tar.gz")) (sha256 (base32 - "0cy8w4g5rv963v4p6iq3333kxgdddx2lywp70xf62553a25xhhs4")))) + "19ys9vxk6fg70yzzdxsphfr0rwzgxxhr9b3ykhpg7rfray0qd96a")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "libnet") #t)) (add-before 'build 'build-doc (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "-C" "doc" "doc" make-flags)))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("doxygen" ,doxygen))) - (home-page "https://sourceforge.net/projects/libnet-dev/") + `(;; To build the documentation, Doxygen and Perl is required. + ("doxygen" ,doxygen) + ("perl" ,perl))) + (home-page "https://github.com/libnet/libnet") (synopsis "Framework for low-level network packet construction") (description "Libnet provides a fairly portable framework for network packet @@ -2937,7 +3032,7 @@ module @code{batman-adv}, for Layer 2.") (define-public pagekite (package (name "pagekite") - (version "1.5.0.200327") + (version "1.5.2.200603") (source (origin (method git-fetch) @@ -2946,7 +3041,7 @@ module @code{batman-adv}, for Layer 2.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vw7kjwxqd3qvm7kpxgjzl6797y0i1f16yfkfad84qpx2ij0gvdm")))) + (base32 "08rcyr54dssnpand6y26f8x9cjmd91hr44my08kxw70s5iqiwizv")))) (build-system python-build-system) (arguments `(#:phases @@ -3192,3 +3287,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))) |