summaryrefslogtreecommitdiff
path: root/gnu/packages/networking.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r--gnu/packages/networking.scm165
1 files changed, 135 insertions, 30 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 87cabee645..05f348ad0f 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -33,6 +33,8 @@
;;; 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>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -60,6 +62,7 @@
#: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 (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages adns)
@@ -72,6 +75,7 @@
#: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 dejagnu)
@@ -95,6 +99,7 @@
#: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)
@@ -553,7 +558,7 @@ and up to 1 Mbit/s downstream.")
(define-public whois
(package
(name "whois")
- (version "5.5.2")
+ (version "5.5.3")
(source
(origin
(method url-fetch)
@@ -561,7 +566,7 @@ and up to 1 Mbit/s downstream.")
"whois_" version ".tar.xz"))
(sha256
(base32
- "1h55zs3cj4w9b0hq0x3z7s2mn46v0jyc39gz320ra4hwr0xlsnf0"))))
+ "0imb87iz17a530fg1x9wnsm4bvr61hxydv29chfwzh015af3zhsm"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
@@ -1942,27 +1947,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.
@@ -2520,10 +2522,58 @@ communication over HTTP.")
(home-page "https://github.com/Corvusoft/restbed")
(license license:agpl3+))))
+(define fmt-restinio
+ (package
+ (inherit fmt)
+ (arguments
+ '(#:configure-flags '("-DCMAKE_CXX_FLAGS=-fPIC")))))
+
+(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-restinio)
+ ("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
@@ -2532,26 +2582,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-restinio)))
(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
@@ -2682,21 +2742,19 @@ module @code{batman-adv}, for Layer 2.")
(define-public pagekite
(package
(name "pagekite")
- (version "1.0.0.190721")
+ (version "1.5.0.191126")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://pagekite.net/pk/src/pagekite-"
- version ".tar.gz"))
+ (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 "0y4vaqd3pjr6if8jcnhjwignkxgrajmnx1rd1p37anj8xjg7l8zh"))))
+ (base32 "0mncfjfrr13sm84g5z49qxg5cy791h5qxphjsl77x91zs3m36c8l"))))
(build-system python-build-system)
(arguments
- ;; Python 3 support is a work-in-progress and should come soon:
- ;; https://github.com/pagekite/PyPagekite/issues/40
- ;; https://github.com/pagekite/PyPagekite/pull/71
- `(#:python ,python-2
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'install 'install-man-page
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -2708,7 +2766,8 @@ module @code{batman-adv}, for Layer 2.")
(install-file "doc/pagekite.1" (string-append man "/man1"))
#t))))))
(inputs
- `(("python2-socksipychain" ,python2-socksipychain)))
+ `(("python-six" ,python-six)
+ ("python-socksipychain" ,python-socksipychain)))
(home-page "https://pagekite.net/")
(synopsis "Make localhost servers publicly visible")
(description
@@ -2717,3 +2776,49 @@ 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+)))