aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/networking.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r--gnu/packages/networking.scm104
1 files changed, 98 insertions, 6 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 6416c97625..9b472500bc 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -62,6 +62,8 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
+;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
+;;; Copyright © 2024 Alexey Abramov <levenson@mmer.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -125,7 +127,11 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@@ -832,7 +838,7 @@ at the link-layer level.")
(substitute* "src/supplemental/websocket/CMakeLists.txt"
(("nng_test\\(wssfile_test\\)") "")))))))
(native-inputs (list oksh))
- (inputs (list mbedtls-apache))
+ (inputs (list mbedtls-lts))
(synopsis "Lightweight messaging library")
(description "NNG project is a rewrite of the scalability protocols library
known as libnanomsg, and adds significant new capabilities, while retaining
@@ -4551,7 +4557,7 @@ network.")
(define-public ngtcp2
(package
(name "ngtcp2")
- (version "1.1.0")
+ (version "1.2.0")
(source
(origin
(method url-fetch)
@@ -4559,7 +4565,7 @@ network.")
"releases/download/v" version "/"
"ngtcp2-" version ".tar.xz"))
(sha256
- (base32 "1pppl6s25hz91w6321g1q7dqvfy4vccz9mmc5r8sfdvdc95fngl0"))))
+ (base32 "158acn01df6sxqjqx4h948phpcgc2da88aiqn9p2jqgqph48brxh"))))
(build-system gnu-build-system)
(arguments
(list
@@ -4670,6 +4676,91 @@ IPv6 Internet connectivity - it also works over IPv4.")
;; which apply to the Application, with which you must still comply
license:lgpl3)))
+(define-public nebula
+ (package
+ (name "nebula")
+ (version "1.8.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/slackhq/nebula")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ly1axgmskrkmxhzymqis6gxf2wd7rvhycm94wfb8k0hirndvg5m"))
+ ;; Remove windows-related binary blobs and files
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ (delete-file-recursively "dist/windows")
+ (delete-file-recursively "wintun")))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.20
+ #:import-path "github.com/slackhq/nebula"
+ #:install-source? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ ;; Suggested option to provide build time flags is not supported
+ ;; in Guix for go-build-system.
+ ;; -ldflags "-X main.Build=SOMEVERSION"
+ (substitute* (string-append "src/" import-path "/cmd/nebula/main.go")
+ (("Version: ")
+ (string-append "Version: " #$version)))
+ ;; Build nebula and nebula-cert
+ (let* ((dir "github.com/slackhq/nebula")
+ (nebula-cmd (string-append dir "/cmd/nebula"))
+ (cert-cmd (string-append dir "/cmd/nebula-cert")))
+ (invoke "go" "build" nebula-cmd)
+ (invoke "go" "build" cert-cmd))))
+ (replace 'install
+ (lambda _
+ (let* ((out #$output)
+ (bindir (string-append out "/bin")))
+ (install-file "nebula" bindir)
+ (install-file "nebula-cert" bindir)))))))
+ (inputs
+ (list go-dario-cat-mergo
+ go-github-com-anmitsu-go-shlex
+ go-github-com-armon-go-radix
+ go-github-com-cespare-xxhash
+ go-github-com-cyberdelia-go-metrics-graphite
+ go-github-com-flynn-noise
+ go-github-com-gogo-protobuf
+ go-github-com-google-gopacket
+ go-github-com-miekg-dns
+ go-github-com-nbrownus-go-metrics-prometheus
+ go-github-com-prometheus-client-golang
+ go-github-com-prometheus-client-model
+ go-github-com-prometheus-procfs
+ go-github-com-rcrowley-go-metrics
+ go-github-com-sirupsen-logrus
+ go-github-com-skip2-go-qrcode
+ go-github-com-songgao-water
+ go-github-com-stretchr-testify
+ go-golang-org-x-crypto
+ go-golang-org-x-net
+ go-golang-org-x-sys
+ go-golang-org-x-term
+ go-google-golang-org-protobuf
+ go-gopkg-in-yaml-v2
+ go-netlink
+ go-netns))
+ (home-page "https://github.com/slackhq/nebula")
+ (synopsis "Scalable, peer-to-peer overlay networking tool")
+ (description
+ "Nebula is a peer-to-peer networking tool based on the
+@url{https://noiseprotocol.org/, Noise Protocol Framework}. It is not a fully
+decentralized network, but instead uses central discovery nodes and a
+certificate authority to facilitate direct, encrypted peer-to-peer connections
+from behind most firewalls and @acronym{NAT, Network Address Translation}
+layers.")
+ (license license:expat)))
+
(define-public netdiscover
(package
(name "netdiscover")
@@ -4701,7 +4792,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send
(define-public phantomsocks
(package
(name "phantomsocks")
- (version "0.0.0-20231031033204-8b0ac27fc450")
+ (version "0.0.0-20240125140126-2576269ca69a")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4710,10 +4801,10 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send
(file-name (git-file-name name version))
(sha256
(base32
- "1q4i8pgj6hzry9wzlczx729dmmgqdqfb26rfaim2ngmp1dyy9drl"))))
+ "1kbcr6580a9pi0a3wssnfr3mnxqq2k9w1fg4khikn82lqaljab2f"))))
(build-system go-build-system)
(arguments
- (list #:go go-1.20
+ (list #:go go-1.21
#:install-source? #f
#:import-path "github.com/macronut/phantomsocks"
#:build-flags #~'("-tags" #$(if (target-linux?)
@@ -4779,6 +4870,7 @@ implementations.")
(home-page "https://www.chiark.greenend.org.uk/~sgtatham/putty/")
(license license:expat)))
+
(define-public vnstat
(package
(name "vnstat")