;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
;;; 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, 2020 Leo Famulari <leo@famulari.name>
;;; 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 © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
+;;; Copyright © 2020 Hamzeh Nasajpour <h.nasajpour@pantherx.org>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
- #:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (ice-9 match))
+(define-public axel
+ (package
+ (name "axel")
+ (version "2.17.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/axel-download-accelerator/axel/"
+ "releases/download/v" version "/"
+ "axel-" version ".tar.xz"))
+ (sha256
+ (base32 "0m1smb9rmw9w2fcfcf0162qyffx6a1x0j612sg3fydflandlsdpi"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libressl" ,libressl)))
+ (home-page "https://github.com/axel-download-accelerator/axel")
+ (synopsis "Light command line download accelerator")
+ (description
+ "Axel tries to accelerate the download process by using multiple
+connections per file, and can also balance the load between different
+servers. It tries to be as light as possible, so it might be useful
+on byte-critical systems. It supports HTTP, HTTPS, FTP and FTPS
+protocols.")
+ (license license:gpl2+)))
+
;; This package does not have a release yet.
;; But this is required to provide a feature in PipeWire.
(define-public libcamera
(define-public libnice
(package
(name "libnice")
- (version "0.1.17")
+ (version "0.1.18")
(source
(origin
(method url-fetch)
(string-append "https://libnice.freedesktop.org/releases/"
name "-" version ".tar.gz"))
(sha256
- (base32 "09lm0rxwvbr53svi3inaharlq96iwbs3s6957z69qp4bqpga0lhr"))))
+ (base32 "1x3kj9b3dy9m2h6j96wgywfamas1j8k2ca43k5v82kmml9dx5asy"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
"-Dgtk_doc=enabled")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-test
+ (lambda _
+ (substitute* "tests/meson.build"
+ ;; ‘test-set-port-range.c:66:main: assertion failed:
+ ;; (nice_agent_gather_candidates (agent, stream1))’
+ (("'test-set-port-range'") "#"))
+ #t))
(add-after 'install 'move-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
("gtk-doc" ,gtk-doc)
("pkg-config" ,pkg-config)))
(inputs
- `(("gnutls" ,gnutls)
- ("gstreamer" ,gstreamer)
+ `(("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
("libnsl" ,libnsl)))
(propagated-inputs
`(("glib" ,glib)
- ("glib-networking" ,glib-networking)))
+ ("glib-networking" ,glib-networking)
+ ("gnutls" ,gnutls)))
(synopsis "GLib ICE implementation")
(description "LibNice is a library that implements the Interactive
Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445). It provides a
(define-public rtmpdump
(package
(name "rtmpdump")
- (version "2.3")
+ (version "2.4")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://rtmpdump.mplayerhq.hu/download/"
- name "-" version ".tgz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.ffmpeg.org/rtmpdump")
+ (commit "c28f1bab7822de97353849e7787b59e50bbb1428")))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0b2b49a57kpz9gi8dx1x3cs8b0gjx8x0c89x0q96kkl2knlvff7g"))))
+ (base32 "1n3kdip83nvvs4sin30zpcdr5q711mqhq2lxrv5vgbc6lskpwzlj"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; No tests
+ `(#:tests? #f ; no tests
#:make-flags
(list
+ ;; The ‘validate-runpath’ phase fails to find librtmp.so.0.
+ (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib")
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'omit-static-library
+ (lambda _
+ (substitute* "librtmp/Makefile"
+ (("cp librtmp\\.a .*") ; don't install it
+ "")
+ (("librtmp\\.a ") ; don't build it
+ ""))
+ #t))
(delete 'configure))))
(inputs
`(("openssl" ,openssl-1.0)
(define-public srt
(package
(name "srt")
- (version "1.4.1")
+ (version "1.4.2")
(source
(origin
(method git-fetch)
(uri
(git-reference
- (url "https://github.com/Haivision/srt.git")
+ (url "https://github.com/Haivision/srt")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "01xaq44j95kbgqfl41pnybvqy0yq6wd4wdw88ckylzf0nzp977xz"))))
+ (base32 "01nx3a35hzq2x0dvp2n2b86phpdy1z83kdraag7aq3hmc7f8iagg"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list
(string-append "-DCMAKE_INSTALL_BINDIR="
(assoc-ref %outputs "out") "/bin")
- (string-append "-DCMAKE_INSTALL_LIBDIR="
- (assoc-ref %outputs "out") "/lib")
- (string-append "-DINSTALL_SHARED_DIR="
- (assoc-ref %outputs "out") "/lib")
- (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
- (assoc-ref %outputs "out") "/include")
- "-DENABLE_UNITTESTS=ON"
- "-DENABLE_CODE_COVERAGE=ON")))
+ "-DCMAKE_INSTALL_INCLUDEDIR=include"
+ "-DENABLE_STATIC=OFF"
+ "-DENABLE_UNITTESTS=ON")))
(native-inputs
- `(("git" ,git-minimal)
- ("gtest" ,googletest)
+ `(("gtest" ,googletest)
("pkg-config" ,pkg-config)
("tclsh" ,tcl)))
(propagated-inputs
(home-page "https://www.srtalliance.org/")
(license license:mpl2.0)))
+;; FFmpeg, GStreamer, and VLC don't support SRT 1.4.2 yet.
+(define-public srt-1.4.1
+ (package
+ (inherit srt)
+ (name "srt")
+ (version "1.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/Haivision/srt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "01xaq44j95kbgqfl41pnybvqy0yq6wd4wdw88ckylzf0nzp977xz"))))))
+
(define-public lksctp-tools
(package
(name "lksctp-tools")
(method git-fetch)
(uri
(git-reference
- (url "https://github.com/sctp/lksctp-tools.git")
+ (url "https://github.com/sctp/lksctp-tools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
;; Others.
license:gpl2+))))
+(define-public knockd
+ (package
+ (name "knockd")
+ (version "0.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.zeroflux.org/proj/knock/files/knock-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "193qcpsy7v51c6awhg9652l5blyz8vp6n7y6fi7l4rhh6af4ff4r"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libpcap" ,libpcap)))
+ (home-page "https://www.zeroflux.org/projects/knock")
+ (synopsis "Small port-knock daemon")
+ (description "@command{knockd} is a port-knock daemon. It listens to all traffic on
+an ethernet or PPP interface, looking for special \"knock\" sequences of @dfn{port-hits}
+(UDP/TCP packets sent to a server port). This port need not be open, since knockd listens
+at the link-layer level.")
+ (license license:gpl2+)))
+
(define-public nng
(package
(name "nng")
- (version "1.3.0")
+ (version "1.3.2")
(source
(origin
(method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/nanomsg/nng.git")
- (commit (string-append "v" version))))
+ (uri (git-reference
+ (url "https://github.com/nanomsg/nng")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "042kmqzvdhv8fqmjr9kyi7rirm6akmpidfav6j14zhrab221n06j"))))
+ (base32 "0a4jg8alh2h0rw6fb4dqpvk4hgl2a7h76mq7g34fy89qh9sgg1a4"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
- (list
- "-DNNG_ENABLE_COVERAGE=ON"
- "-DNNG_ENABLE_TLS=ON")
+ (list "-DNNG_ENABLE_COVERAGE=ON"
+ "-DNNG_ENABLE_TLS=ON"
+ "-DBUILD_SHARED_LIBS=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests
(method git-fetch)
(uri
(git-reference
- (url "https://github.com/nanomsg/nanomsg.git")
+ (url "https://github.com/nanomsg/nanomsg")
(commit version)))
(file-name (git-file-name name version))
(sha256
(define-public blueman
(package
(name "blueman")
- (version "2.1.3")
+ (version "2.1.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/blueman-project/blueman/releases"
"/download/" version "/blueman-" version ".tar.xz"))
(sha256
- (base32 "1pngqbwapbvywhkmflapqvs0wa0af7d1a87wy56l5hg2r462xl1v"))))
+ (base32 "1nk46s1s8yrlqv37sc7la05nnn7sdgqhkrcdm98qin34llwkv70x"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags (list "--enable-polkit"
(license (license:non-copyleft "file://DISCLAIMER"
"See the file DISCLAIMER in the distribution."))))
-
(define-public zeromq
(package
(name "zeromq")
- (version "4.3.2")
+ (version "4.3.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/zeromq/libzmq/releases"
"/download/v" version "/zeromq-" version ".tar.gz"))
(sha256
(base32
- "0qzp80ky4y2k7k1ya09v9gkivvfbz2km813snrb8jhnn634bbmzb"))))
+ "18km71p77jm1w7wly2a5mxvphjb0f2l6s08cg382x55f6zdqb4lx"))))
(build-system gnu-build-system)
+ (arguments '(#:configure-flags '("--disable-static")))
(home-page "https://zeromq.org")
(synopsis "Library for message-based applications")
(description
#: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"
+ ;; Disable the zproc test, which fails on some hardware
+ ;; (see: https://github.com/zeromq/czmq/issues/2007).
(("\\{ \"zproc\", zproc_test.*")
+ "")
+ ;; Also disable the zarmour test, which fails as well
+ ;; (see: https://github.com/zeromq/czmq/issues/2125).
+ (("\\{ \"zarmour\", zarmour_test.*")
""))
#t)))))
(inputs
(define-public ethtool
(package
(name "ethtool")
- (version "5.8")
+ (version "5.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/network/"
"ethtool/ethtool-" version ".tar.xz"))
(sha256
(base32
- "0ikmz36bdfwxscsfcgjmyzg70hwr8i3wpdhcp1vmk3q4ip858frg"))))
+ "0vwam1ay184z237vnl8ivb0rdjjbljp9pj3kjzhc6yzq180k4aai"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
#:test-target "test"))
(inputs `(("net-tools" ,net-tools)
("zlib" ,zlib)))
- (native-inputs `(("check" ,check)
+ (native-inputs `(("check" ,check-0.14)
("pkg-config" ,pkg-config)))
(home-page "https://code.kryo.se/iodine/")
(synopsis "Tunnel IPv4 data through a DNS server")
(define-public wireshark
(package
(name "wireshark")
- (version "3.2.5")
+ (version "3.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.wireshark.org/download/src/wireshark-"
version ".tar.xz"))
(sha256
- (base32 "0h69m9maq6w5gik4gamv4kfqrr37hmi4kpwh225y1k36awm0b2dx"))))
+ (base32 "1bm8jj2rviis9j9l6nixvhxcfx362y9iphkxssgmiz2kj6yypr37"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-failing-test
- ;; Test 31/32 fails with errors like "Program reassemble_test is
- ;; not available". Skipping it for now.
+ ;; Skip test suite failing with "Program reassemble_test is not
+ ;; available" and alike errors. Also skip test suite failing with
+ ;; "AssertionError: Program extcap/sdjournal is not available"
+ ;; error.'
(lambda _
(substitute* "CMakeLists.txt"
- (("suite_unittests" all) (string-append "# " all)))
+ (("suite_unittests" all) (string-append "# " all))
+ (("suite_extcaps" all) (string-append "# " all)))
#t)))
;; Build process chokes during `validate-runpath' phase.
;;
(define-public go-sctp
;; docker-libnetwork-cmd-proxy requires this exact commit.
- (let ((commit "07191f837fedd2f13d1ec7b5f885f0f3ec54b1cb")
- (revision "1"))
+ ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf.
+ (let ((commit "6e2cb1366111dcf547c13531e3a263a067715847")
+ (revision "2"))
(package
(name "go-sctp")
(version (git-version "0.0.0" revision commit))
(file-name (git-file-name name version))
(sha256
(base32
- "1mk9ncm10gwi5pn5wcw4skbyf4qg7n5qdf1mim4gf3mrckvi6g6h"))))
+ "1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb"))))
(build-system go-build-system)
(arguments
- `(#:import-path "github.com/ishidawataru/sctp"))
+ `(#:tests? #f ; Test suite is flakey.
+ #:import-path "github.com/ishidawataru/sctp"))
(home-page "https://github.com/ishidawataru/sctp")
(synopsis "SCTP library for the Go programming language")
(description "This library provides methods for using the stream control
(define-public squid
(package
(name "squid")
- (version "4.12")
+ (version "4.13")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.squid-cache.org/Versions/v4/squid-"
version ".tar.xz"))
(sha256
- (base32 "05z34ysy2zn7as11vd365xxhh36bm1ysiwcbr0i0f0nwng406apl"))))
+ (base32 "1q1ywpic6s7dfjj3cwzcfgscc4zq0aih462gyas7j1z683ss14b8"))))
(build-system gnu-build-system)
(arguments
- '(#:phases
+ '(#:configure-flags
+ ;; disable -march=native in build for reproducibility; see
+ ;; https://wiki.squid-cache.org/KnowledgeBase/IllegalInstructionError
+ (list "--disable-arch-native")
+ #:phases
(modify-phases %standard-phases
(add-before 'build 'fix-true-path
(lambda* (#:key inputs #:allow-other-keys)
(define-public perl-net-dns
(package
(name "perl-net-dns")
- (version "1.24")
+ (version "1.28")
(source
(origin
(method url-fetch)
(string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
version ".tar.gz")))
(sha256
- (base32 "0qyy5k4k0llqjjmkkfg96919gqybdc1z5fy9047n9imidjxc59hi"))))
+ (base32 "0kh2qbhxv005pqb35mdk2bld7cg7xnxl12qvdwv30sgd91aqica7"))))
(build-system perl-build-system)
(inputs
`(("perl-digest-hmac" ,perl-digest-hmac)))
(define-public enet
(package
(name "enet")
- (version "1.3.15")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://enet.bespin.org/download/"
- "enet-" version ".tar.gz"))
- (sha256
- (base32
- "1yxxf9bkx6dx3j8j70fj17c05likyfibb1419ls74hp58qrzdgas"))))
+ (version "1.3.17")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://enet.bespin.org/download/"
+ "enet-" version ".tar.gz"))
+ (sha256
+ (base32 "1p6f9mby86af6cs7pv6h48032ip9g32c05cb7d9mimam8lchz3x3"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public iperf
(package
(name "iperf")
- (version "3.7")
+ (version "3.9")
(source (origin
(method url-fetch)
(uri (string-append "http://downloads.es.net/pub/iperf"
"/iperf-" version ".tar.gz"))
(sha256
(base32
- "033is7b5grfbiil98jxlz4ixp9shm44x6hy8flpsyz1i4h108inq"))))
+ "0f601avdmzpwsa3lbi0ppjhkrdipm5wifhhxy5czf99370k3mdi4"))))
(build-system gnu-build-system)
(synopsis "TCP, UDP and SCTP bandwidth measurement tool")
(description
(define-public mtr
(package
(name "mtr")
- (version "0.93")
+ (version "0.94")
(source
(origin
(method url-fetch)
(uri (string-append "ftp://ftp.bitwizard.nl/mtr/"
"mtr-" version ".tar.gz"))
(sha256
- (base32 "03gid8g4r6a9r40855s4345xm1bylj2kfqkicjwxpmvvccyng712"))))
+ (base32 "1glxvlqskcmjkxlqk9i12hcfaxb389cx2n8ji7776gmix3aq4z1z"))))
(build-system gnu-build-system)
(inputs
`(("libcap" ,libcap)
(define-public net-snmp
(package
(name "net-snmp")
- (version "5.8")
+ (version "5.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/net-snmp/net-snmp/"
version "/net-snmp-" version ".tar.gz"))
(sha256
(base32
- "1pvajzj9gmj56dmwix0ywmkmy2pglh6nny646hkm7ghfhh03bz5j"))
+ "0wb0vyafpspw3mcifkjjmf17r1r80kjvslycscb8nvaxz1k3lc04"))
(modules '((guix build utils)))
(snippet
'(begin
" -NET")))
#t)))))
(inputs
- `(("perl" ,perl)
+ `(("libnl" ,libnl)
+ ("ncurses" ,ncurses) ; for the ‘apps’
("openssl" ,openssl)
- ("libnl" ,libnl)))
- ;; These inputs are only needed for tests.
+ ("perl" ,perl)))
(native-inputs
- `(("net-tools" ,net-tools)
+ `(("pkg-config" ,pkg-config)
+
+ ;; For tests only.
+ ("net-tools" ,net-tools)
("coreutils" ,coreutils)
("grep" ,grep)))
(home-page "http://www.net-snmp.org/")
("pcre2" ,pcre2)
("sobjectizer" ,sobjectizer)))
(propagated-inputs
- `(("asio", asio)
+ `(("asio" ,asio)
("fmt" ,fmt)
- ("http-parser", http-parser)))
+ ("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.
(define-public batctl
(package
(name "batctl")
- (version "2020.1")
+ (version "2020.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://downloads.open-mesh.org/batman/releases/batman-adv-"
version "/batctl-" version ".tar.gz"))
(sha256
- (base32 "0fy252q1my3a57v6pfz8i97h6zv7v03di01dhwjkj47pqnx1rqm3"))))
+ (base32 "05rrpfbpdhxn5zgdps849qls2ifis6a94cjryb60d4y1nc2n0d7w"))))
(inputs
`(("libnl" ,libnl)))
(native-inputs
(define-public pagekite
(package
(name "pagekite")
- (version "1.5.2.200603")
+ (version "1.5.2.200725")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "08rcyr54dssnpand6y26f8x9cjmd91hr44my08kxw70s5iqiwizv"))))
+ (base32 "0lig1i42bn9isw848vnml5qhcaa04x1dr2hb075bm0a3439kv3rr"))))
(build-system python-build-system)
(arguments
`(#:phases
(define-public lldpd
(package
(name "lldpd")
- (version "1.0.5")
+ (version "1.0.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-"
version ".tar.gz"))
(sha256
- (base32
- "16fbqrs3l976gdslx647nds8x7sz4h5h3h4l4yxzrayvyh9b5lrd"))
+ (base32 "1qc7k83zpcq27hpjv1lmgrj4la2zy1gspwk5jas43j49siwr3xqx"))
(modules '((guix build utils)))
(snippet
'(begin
"--with-privsep-group=nogroup"
"--localstatedir=/var"
"--enable-pie"
+ "--disable-static"
"--without-embedded-libevent"
(string-append "--with-systemdsystemunitdir="
(assoc-ref %outputs "out")
This package contains a command-line tool for computing and verifying hashcash
stamps.")
(license license:public-domain)))
+
+(define-public nbd
+ (package
+ (name "nbd")
+ (version "3.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/nbd/nbd/3.20/nbd-" version
+ ".tar.xz"))
+ (sha256
+ (base32
+ "1kfnyx52nna2mnw264njk1dl2zc8m78sz031yp65mbmpi99v7qg0"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("glib" ,glib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (home-page "https://nbd.sourceforge.io/")
+ (synopsis "NBD client and server")
+ (description "This package provides the NBD (Network Block Devices)
+client and server. It allows you to use remote block devices over a TCP/IP
+network.")
+ (license license:gpl2)))
+
+(define-public yggdrasil
+ (package
+ (name "yggdrasil")
+ (version "0.3.15")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/yggdrasil-network/yggdrasil-go")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0gk7gy8yq5nrnblv4imxzzm2hac4ri0hlw19ajfbc1zll5kj32gf"))
+ (patches (search-patches "yggdrasil-extra-config.patch"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/yggdrasil-network/yggdrasil-go"
+ ;; TODO: figure out how tests are run
+ #:tests? #f
+ #:install-source? #f
+ #:phases (modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (for-each
+ (lambda (c)
+ (invoke
+ "go" "build" "-v" "-ldflags=-s -w"
+ (string-append
+ "github.com/yggdrasil-network/yggdrasil-go/cmd/" c)))
+ (list "yggdrasil" "yggdrasilctl"))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/"))
+ (doc (string-append out "/share/doc/yggdrasil/")))
+ (mkdir-p bin)
+ (for-each
+ (lambda (f)
+ (install-file f bin))
+ (list "yggdrasil" "yggdrasilctl"))
+ (mkdir-p doc)
+ (copy-recursively
+ (string-append
+ "src/github.com/yggdrasil-network/yggdrasil-go/"
+ "doc/yggdrasil-network.github.io")
+ doc))
+ #t)))))
+ ;; https://github.com/kardianos/minwinsvc is windows only
+ (propagated-inputs
+ `(("go-github-com-arceliar-phony" ,go-github-com-arceliar-phony)
+ ("go-github-com-cheggaaa-pb" ,go-github-com-cheggaaa-pb)
+ ("go-github-com-gologme-log" ,go-github-com-gologme-log)
+ ("go-github-com-hashicorp-go-syslog" ,go-github-com-hashicorp-go-syslog)
+ ("go-github-com-hjson-hjson-go" ,go-github-com-hjson-hjson-go)
+ ("go-github-com-kardianos-minwinsvc" ,go-github-com-kardianos-minwinsvc)
+ ("go-github-com-mitchellh-mapstructure"
+ ,go-github-com-mitchellh-mapstructure)
+ ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
+ ("go-golang-org-x-net" ,go-golang-org-x-net)
+ ("go-golang-org-x-text" ,go-golang-org-x-text)
+ ("go-golang-zx2c4-com-wireguard" ,go-golang-zx2c4-com-wireguard)
+ ("go-netlink" ,go-netlink)
+ ("go-netns" ,go-netns)))
+ (home-page "https://yggdrasil-network.github.io/blog.html")
+ (synopsis
+ "Experiment in scalable routing as an encrypted IPv6 overlay network")
+ (description
+ "Yggdrasil is an early-stage implementation of a fully end-to-end encrypted
+IPv6 network. It is lightweight, self-arranging, supported on multiple
+platforms and allows pretty much any IPv6-capable application to communicate
+securely with other Yggdrasil nodes. Yggdrasil does not require you to have
+IPv6 Internet connectivity - it also works over IPv4.")
+ (license
+ ;; As a special exception to the GNU Lesser General Public License
+ ;; version 3 ("LGPL3"), the copyright holders of this Library give you
+ ;; permission to convey to a third party a Combined Work that links
+ ;; statically or dynamically to this Library without providing any Minimal
+ ;; Corresponding Source or Minimal Application Code as set out in 4d or
+ ;; providing the installation information set out in section 4e, provided
+ ;; that you comply with the other provisions of LGPL3 and provided that you
+ ;; meet, for the Application the terms and conditions of the license(s)
+ ;; which apply to the Application. Except as stated in this special
+ ;; exception, the provisions of LGPL3 will continue to comply in full to
+ ;; this Library. If you modify this Library, you may apply this exception
+ ;; to your version of this Library, but you are not obliged to do so. If
+ ;; you do not wish to do so, delete this exception statement from your
+ ;; version. This exception does not (and cannot) modify any license terms
+ ;; which apply to the Application, with which you must still comply
+ license:lgpl3)))