diff options
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r-- | gnu/packages/networking.scm | 114 |
1 files changed, 82 insertions, 32 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index e71ada9733..62c4d7a392 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2018 Tonton <tonton@riseup.net> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org> -;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2018, 2020, 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> @@ -3463,7 +3463,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (define-public opendht (package (name "opendht") - (version "2.2.0rc4") ;jami requires >= 2.2.0 + (version "2.2.0rc7") ;jami requires >= 2.2.0 (source (origin (method git-fetch) (uri (git-reference @@ -3472,8 +3472,9 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (file-name (git-file-name name version)) (sha256 (base32 - "1wc0f6cnvnlmhxnx64nxqgsx93k4g7ljdaqjl40ml74jg3nqrzcl")))) + "0wkynjzwzl5q46hy1yb9npi5hvknnj17rjkax5v3acqjmd0y48h9")))) ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug? + (outputs '("out" "tools" "debug")) (build-system cmake-build-system) (inputs `(("argon2" ,argon2) @@ -3490,23 +3491,79 @@ and targeted primarily for asynchronous processing of HTTP-requests.") `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) + ("python" ,python) + ("python-cython" ,python-cython) ("libtool" ,libtool) ("cppunit" ,cppunit))) (arguments - `(#:tests? #f ; Tests require network connection. + `(#:imported-modules ((guix build python-build-system) ;for site-packages + ,@%cmake-build-system-modules) + #:modules (((guix build python-build-system) #:prefix python:) + (guix build cmake-build-system) + (guix build utils)) + #:tests? #f ; Tests require network connection. #:configure-flags - '(;;"-DOPENDHT_TESTS=on" - "-DOPENDHT_TOOLS=off" - "-DOPENDHT_PYTHON=off" + '( ;;"-DOPENDHT_TESTS=on" + "-DOPENDHT_STATIC=off" + "-DOPENDHT_TOOLS=on" + "-DOPENDHT_PYTHON=on" "-DOPENDHT_PROXY_SERVER=on" "-DOPENDHT_PUSH_NOTIFICATIONS=on" "-DOPENDHT_PROXY_SERVER_IDENTITY=on" - "-DOPENDHT_PROXY_CLIENT=on"))) + "-DOPENDHT_PROXY_CLIENT=on") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-python-installation-prefix + ;; Specify the installation prefix for the compiled Python module + ;; that would otherwise attempt to installs itself to Python's own + ;; site-packages directory. + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "python/CMakeLists.txt" + (("--root=\\\\\\$ENV\\{DESTDIR\\}") + (string-append "--root=/ --single-version-externally-managed " + "--prefix=${CMAKE_INSTALL_PREFIX}"))))) + (add-after 'unpack 'specify-runpath-for-python-module + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "python/setup.py.in" + (("extra_link_args=\\[(.*)\\]" _ args) + (string-append "extra_link_args=[" args + ", '-Wl,-rpath=" out "/lib']")))))) + (add-after 'install 'move-and-wrap-tools + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (tools (assoc-ref outputs "tools")) + (site-packages (python:site-packages inputs outputs))) + (mkdir tools) + (rename-file (string-append out "/bin") + (string-append tools "/bin")) + (wrap-program (string-append tools "/bin/dhtcluster") + `("PYTHONPATH" prefix (,site-packages))))))))) (home-page "https://github.com/savoirfairelinux/opendht/") - (synopsis "Distributed Hash Table (DHT) library") - (description "OpenDHT is a Distributed Hash Table (DHT) library. It may -be used to manage peer-to-peer network connections as needed for real time -communication.") + (synopsis "Lightweight Distributed Hash Table (DHT) library") + (description "OpenDHT provides an easy to use distributed in-memory data +store. Every node in the network can read and write values to the store. +Values are distributed over the network, with redundancy. It includes the +following features: +@itemize +@item Lightweight and scalable, designed for large networks and small devices; +@item High resilience to network disruption; +@item Public key cryptography layer providing optional data signature and +encryption (using GnuTLS); +@item IPv4 and IPv6 support; +@item Clean and powerful C++14 map API; +@item Bindings for C, Rust & Python 3; +@item REST API with an optional HTTP client and server with push notification +support. +@end itemize +The following tools are also included: +@table @command +@item dhtnode +A command line tool to run a DHT node and perform operations supported by the +library (get, put, etc.) with text values. +@item dhtchat +A very simple IM client working over the DHT. +@end table") (license license:gpl3+))) (define-public frrouting @@ -3542,28 +3599,26 @@ protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ") (define-public iwd (package (name "iwd") - (version "0.21") + (version "1.14") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.kernel.org/pub/scm/network/wireless/iwd.git") - (commit version))) - (file-name (git-file-name name version)) + ;; FIXME: We're using the bootstrapped sources because + ;; otherwise using an external ell library is impossible. + ;; How to bootstrap with Guix? + (method url-fetch) + (uri (string-append "https://www.kernel.org/pub/linux/network" + "/wireless/iwd-" version ".tar.xz")) (sha256 (base32 - "001dikinsa6kshwscjbvwipavzwpqnpvx9fpshcn63gbvbhyd393")))) + "02vz4lyd6vq3vcii357ljqprnas78zb8j670a0gblrm6kganmgi1")))) (build-system gnu-build-system) (inputs `(("dbus" ,dbus) ("ell" ,ell) ("readline" ,readline))) (native-inputs - `(("asciidoc" ,asciidoc) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkgconfig" ,pkg-config) + `(("pkgconfig" ,pkg-config) ("python" ,python) + ("rst2man" ,python-docutils) ("openssl" ,openssl))) (arguments `(#:configure-flags @@ -3573,22 +3628,17 @@ protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ") "--enable-hwsim" "--enable-tools" "--enable-wired" - "--enable-docs" "--localstatedir=/var" (string-append "--with-dbus-datadir=" dbus "/share/") (string-append "--with-dbus-busdir=" dbus "/share/dbus-1/system-services"))) #:phases (modify-phases %standard-phases - (add-before 'bootstrap 'pre-bootstrap + (add-after 'configure 'patch-Makefile (lambda _ - (substitute* "Makefile.am" - ;; Test disabled because it needs the kernel module - ;; 'pkcs8_key_parser' loaded. - (("unit\\/test-eapol.*? ") "") + (substitute* "Makefile" ;; Don't try to 'mkdir /var'. - (("\\$\\(MKDIR_P\\) -m 700") "true")) - #t))))) + (("\\$\\(MKDIR_P\\) -m 700") "true"))))))) (home-page "https://git.kernel.org/pub/scm/network/wireless/iwd.git/") (synopsis "Internet Wireless Daemon") (description "iwd is a wireless daemon for Linux that aims to replace WPA |