diff options
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r-- | gnu/packages/networking.scm | 256 |
1 files changed, 150 insertions, 106 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 1eb6bffcb6..760b23f977 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -23,10 +23,10 @@ ;;; Copyright © 2018, 2019 Tonton <tonton@riseup.net> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org> -;;; Copyright © 2018, 2020, 2021 Marius Bakke <marius@gnu.org> +;;; Copyright © 2018, 2020-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> -;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si> @@ -67,6 +67,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) @@ -127,6 +128,7 @@ #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) @@ -179,7 +181,7 @@ runs on top of IP or UDP, and supports both v4 and v6 versions.") (define-public axel (package (name "axel") - (version "2.17.10") + (version "2.17.11") (source (origin (method url-fetch) @@ -187,7 +189,7 @@ runs on top of IP or UDP, and supports both v4 and v6 versions.") "releases/download/v" version "/" "axel-" version ".tar.xz")) (sha256 - (base32 "0kmlqk04sgkshsll4r9w3k0rvrgz0gpk987618r50khwl484zss6")))) + (base32 "1yfcsi0zv07bvhj8klgna3y1ycc4jhaija1b3rzzv0i4d4c2q2sq")))) (build-system gnu-build-system) (native-inputs (list gettext-minimal pkg-config)) @@ -909,6 +911,42 @@ addresses used in the wired Ethernet networks. This daemon can also be useful for making transparent firewalls.") (license license:gpl2))) +(define-public pproxy + (package + (name "pproxy") + (version "2.7.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "pproxy" version)) + (sha256 + (base32 + "1j4nv72i77i2j5nl9ymzpk4m98qih3naihfrqjghrc9b7g0krdzs")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "tests" + (for-each (lambda (file) + (invoke "python" file)) + ;; XXX: The api_ tests require network access + ;; so we only run the cipher tests for now. + (find-files "." "^cipher_.*\\.py$"))))))))) + (inputs + (list python-asyncssh + python-daemon + python-pycryptodome + python-uvloop)) + (home-page "https://github.com/qwj/python-proxy") + (synopsis "Multi-protocol network proxy") + (description + "@command{pproxy} is an asynchronuous proxy server implemented with +Python 3 @code{asyncio}. Among the supported protocols are HTTP, SOCKS +and SSH, and it can use both TCP and UDP as transport mechanisms.") + (license license:expat))) + (define-public socat (package (name "socat") @@ -1439,7 +1477,7 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.5.10") + (version "5.5.11") (source (origin (method git-fetch) @@ -1448,7 +1486,7 @@ and up to 1 Mbit/s downstream.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "179hgmh9yqk8jq26ybik4cr3lgryd5p6kdwccc3r7mfssk3yp8lz")))) + (base32 "0wys0aixzq6mzvg7p6jb0d5rkkg23pjcgcsx86p7hjidxdvnbwzr")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -1484,14 +1522,14 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "3.6.0") + (version "3.6.1") (source (origin (method url-fetch) (uri (string-append "https://www.wireshark.org/download/src/wireshark-" version ".tar.xz")) (sha256 - (base32 "01nzzqig1z7ix4xb7ycs7wq3qqwq3ipdwp7rznynzmmibgyggj4w")))) + (base32 "0f2sjbbwmmz9zr8vphxy0panfji5vv8vazm688mqxy3bzflfsd04")))) (build-system cmake-build-system) (arguments `(#:phases @@ -1518,37 +1556,37 @@ of the same name.") ;; For now, we disable this phase. #:validate-runpath? #f)) (inputs - `(("c-ares" ,c-ares) - ("glib" ,glib) - ("gnutls" ,gnutls) - ("brotli" ,brotli) - ("libcap" ,libcap) - ("libgcrypt" ,libgcrypt) - ("libnl" ,libnl) - ("libpcap" ,libpcap) - ("libssh" ,libssh) - ("libxml2" ,libxml2) - ("lz4" ,lz4) - ("lua" ,lua-5.2) ;Lua 5.3 unsupported - ("krb5" ,mit-krb5) - ("nghttp2:lib" ,nghttp2 "lib") - ("minizip" ,minizip) - ("qtbase" ,qtbase-5) - ("qtmultimedia" ,qtmultimedia) - ("qtsvg" ,qtsvg) - ("sbc" ,sbc) - ("snappy" ,snappy) - ("zlib" ,zlib) - ("zstd:lib" ,zstd "lib"))) + (list c-ares + glib + gnutls + brotli + libcap + libgcrypt + libnl + libpcap + libssh + libxml2 + lz4 + lua-5.2 ;Lua 5.3 unsupported + mit-krb5 + `(,nghttp2 "lib") + minizip + qtbase-5 + qtmultimedia + qtsvg + sbc + snappy + zlib + `(,zstd "lib"))) (native-inputs - `(("bison" ,bison) - ("doxygen" ,doxygen) - ("flex" ,flex) - ("gettext" ,gettext-minimal) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("qttools" ,qttools))) + (list bison + doxygen + flex + gettext-minimal + perl + pkg-config + python-wrapper + qttools)) (synopsis "Network traffic analyzer") (description "Wireshark is a network protocol analyzer, or @dfn{packet sniffer}, that lets you capture and interactively browse the contents of @@ -2620,7 +2658,10 @@ speedtest.net.") (base32 "12vidchglhyc20znq5wdsbhi9mqg90jnl7qr9qs8hbvaz4fkdvmg")))) (build-system gnu-build-system) - (arguments `(#:tests? #f)) ; no test target + (arguments + (list #:tests? #f ; no test target + #:configure-flags + #~(list "CFLAGS=-fcommon"))) ; XXX fix 5.2 build with GCC 10 (synopsis "HPA's tftp client") (description "This is a tftp client derived from OpenBSD tftp with some extra options @@ -2824,14 +2865,14 @@ can be whipped up with little effort.") (define-public mtr (package (name "mtr") - (version "0.94") + (version "0.95") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.bitwizard.nl/mtr/" "mtr-" version ".tar.gz")) (sha256 - (base32 "1glxvlqskcmjkxlqk9i12hcfaxb389cx2n8ji7776gmix3aq4z1z")))) + (base32 "0haanralbvd12pvkyihgkmx9ld74dnzm1s7mzparfandl416ibff")))) (build-system gnu-build-system) (inputs (list libcap ncurses)) @@ -3357,11 +3398,14 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (license license:bsd-3))) (define-public opendht - (let ((commit "6c58d4f2e9b7f1de15db8d3a736c8cf1ea5f2886") - (revision "1")) + ;; The version/commit is kept in sync with what Jami uses in its daemon + ;; contrib build system (see: + ;; https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/opendht/rules.mak). + (let ((commit "dbbfdaab0f4119abf79646313e0dbc52881dcd56") + (revision "0")) (package (name "opendht") - (version (git-version "2.3.0" revision commit)) + (version (git-version "2.3.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -3370,21 +3414,65 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (file-name (git-file-name name version)) (sha256 (base32 - "06l0z1dmxyjh8gdrmxyq4vnfnv3x400bhx0lxm7l90f8zc5r2bim")))) - ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug? + "07x8vw999qpfl6qwj5k5l2mcjy1vp32sd567f6imbsnh9vlx2bdv")))) (outputs '("out" "tools" "debug")) - (build-system cmake-build-system) - (inputs - (list argon2 - nettle - readline - jsoncpp - openssl ;required for the DHT proxy - fmt)) + (build-system gnu-build-system) + (arguments + (list + #:imported-modules `((guix build python-build-system) ;for site-packages + ,@%gnu-build-system-modules) + #:modules '(((guix build python-build-system) #:prefix python:) + (guix build gnu-build-system) + (guix build utils)) + #:tests? #f ;tests require networking + #:configure-flags + #~(list "--enable-tests" + "--enable-proxy-server" + "--enable-push-notifications" + "--enable-proxy-server-identity" + "--enable-proxy-client") + #: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 _ + (substitute* "python/Makefile.am" + (("--root=\\$\\(DESTDIR)/") + (string-append "--root=/ --single-version-externally-managed " + "--prefix=" #$output))))) + (add-after 'unpack 'specify-runpath-for-python-module + (lambda _ + (substitute* "python/setup.py.in" + (("extra_link_args=\\[(.*)\\]" _ args) + (string-append "extra_link_args=[" args + ", '-Wl,-rpath=" #$output "/lib']"))))) + (add-after 'install 'move-and-wrap-tools + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((tools (assoc-ref outputs "tools")) + (dhtcluster (string-append tools "/bin/dhtcluster")) + (site-packages (python:site-packages inputs outputs))) + (mkdir tools) + (rename-file (string-append #$output "/bin") + (string-append tools "/bin")) + ;; TODO: Contribute a patch to python/Makefile.am to + ;; automate this. + (copy-file "python/tools/dhtcluster.py" dhtcluster) + (chmod dhtcluster #o555) + (wrap-program dhtcluster + `("GUIX_PYTHONPATH" prefix (,site-packages))))))))) + (inputs (list bash-minimal fmt readline)) (propagated-inputs - (list gnutls ;included in opendht/crypto.h - msgpack ;included in several installed headers - restinio)) ;included in opendht/http.h + (list msgpack ;included in several installed headers + restinio ;included in opendht/http.h + ;; The following are listed in the 'Requires.private' field of + ;; opendht.pc: + argon2 + gnutls + jsoncpp + nettle + openssl)) ;required for the DHT proxy (native-inputs (list autoconf automake @@ -3393,50 +3481,6 @@ and targeted primarily for asynchronous processing of HTTP-requests.") python-cython libtool cppunit)) - (arguments - `(#: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_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") - #: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") - `("GUIX_PYTHONPATH" prefix (,site-packages))))))))) (home-page "https://github.com/savoirfairelinux/opendht/") (synopsis "Lightweight Distributed Hash Table (DHT) library") (description "OpenDHT provides an easy to use distributed in-memory data @@ -3484,7 +3528,7 @@ A very simple IM client working over the DHT. (home-page "https://frrouting.org/") (synopsis "IP routing protocol suite") (description "FRRouting (FRR) is an IP routing protocol suite which includes -protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ") +protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP.") (license license:gpl2+))) (define-public bird @@ -3521,7 +3565,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.") (define-public iwd (package (name "iwd") - (version "1.15") + (version "1.20") (source (origin ;; FIXME: We're using the bootstrapped sources because ;; otherwise using an external ell library is impossible. @@ -3531,7 +3575,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.") "/wireless/iwd-" version ".tar.xz")) (sha256 (base32 - "0ngng9a9ra5w0mp2813yy2ihfibyx10ns6v5icdcp99db608xax7")))) + "03q5scahyg86h4bdxqxm32shyssgpmfp5b3183j01ig7mg6f4lbx")))) (build-system gnu-build-system) (inputs (list dbus ell readline)) @@ -3973,14 +4017,14 @@ stamps.") (define-public nbd (package (name "nbd") - (version "3.22") + (version "3.23") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/nbd/nbd/" version "/nbd-" version ".tar.xz")) (sha256 - (base32 "1ljx6vb3lja5p0lr28vmjp27n9d6krlvq49bhqbcm2ns8vxd1vh6")))) + (base32 "1d2phi0m9x32p9zddv9fpkhj1rbhlvq93wsn9niy7i3aavn71x6y")))) (build-system gnu-build-system) (inputs (list glib)) |