diff options
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r-- | gnu/packages/networking.scm | 208 |
1 files changed, 121 insertions, 87 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 739bd1a35a..f351dfe095 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2017, 2021 Stefan Reichör <stefan@xsteve.at> @@ -43,7 +43,10 @@ ;;; Copyright © 2021 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li> ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Milkey Mouse <milkeymouse@meme.institute> +;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -265,65 +268,83 @@ Android, and ChromeOS.") (license license:lgpl2.1+))) (define-public libnice - (package - (name "libnice") - (version "0.1.18") - (source - (origin - (method url-fetch) - (uri - (string-append "https://libnice.freedesktop.org/releases/" - name "-" version ".tar.gz")) - (sha256 - (base32 "1x3kj9b3dy9m2h6j96wgywfamas1j8k2ca43k5v82kmml9dx5asy")))) - (build-system meson-build-system) - (outputs '("out" "doc")) - (arguments - `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas - #:configure-flags - (list - "-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")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share")) - (rename-file - (string-append out "/share/gtk-doc") - (string-append doc "/share/gtk-doc")) - #t)))))) - (native-inputs - `(("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) - ("pkg-config" ,pkg-config))) - (inputs - `(("gstreamer" ,gstreamer) - ("gst-plugins-base" ,gst-plugins-base) - ("libnsl" ,libnsl))) - (propagated-inputs - `(("glib" ,glib) - ("glib-networking" ,glib-networking) - ("gnutls" ,gnutls))) - (synopsis "GLib ICE implementation") - (description "LibNice is a library that implements the Interactive + ;; The latest release is old and randomly fails tests with GStreamer 1.18.5, + ;; such as: "test-bind: ../libnice-0.1.18/stun/tests/test-bind.c:234: + ;; bad_responses: Assertion `len >= 20' failed" + (let ((revision "0") + (commit "47a96334448838c43d7e72f4ef51b317befbfae1")) + (package + (name "libnice") + (version (git-version "0.1.18" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/libnice/libnice") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19ypjazslmsb9vqs2wyyzvi72h5jbn16dbng7pxh485djdrmgcg4")))) + (build-system meson-build-system) + (outputs '("out" "doc")) + (arguments + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:configure-flags + (list + "-Dgtk_doc=enabled") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + (substitute* "tests/meson.build" + ;; ‘test-set-port-range.c:66:main: assertion failed: + ;; (nice_agent_gather_candidates (agent, stream1))’ + (("'test-set-port-range'" all) + (string-append "# " all)) + ;; The following test is disabled as it fails in a + ;; nondeterministic fashion (see: + ;; https://gitlab.freedesktop.org/libnice/libnice/-/issues/151). + (("'test-bsd'" all) + (string-append "# " all))) + (substitute* "stun/tests/meson.build" + ;; test-bind.c:234: bad_responses: Assertion `len >= 20' + ;; failed (see: + ;; https://gitlab.freedesktop.org/libnice/libnice/-/issues/150). + (("'bind', ") + "")))) + (add-after 'install 'move-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc")))))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("graphviz" ,graphviz) + ("gtk-doc" ,gtk-doc/stable) + ("pkg-config" ,pkg-config))) + (inputs + `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("libnsl" ,libnsl))) + (propagated-inputs + `(("glib" ,glib) + ("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 GLib-based library, libnice, as well as GStreamer elements to use it.") - (home-page "https://libnice.freedesktop.org/") - (license - ;; This project is dual-licensed. - (list - license:lgpl2.1+ - license:mpl1.1)))) + (home-page "https://libnice.freedesktop.org/") + (license + ;; This project is dual-licensed. + (list + license:lgpl2.1+ + license:mpl1.1))))) (define-public rtmpdump ;; There are no tags in the repository, and the project is unlikely to @@ -669,24 +690,24 @@ systems with no further dependencies.") "blueman-manager.in" "blueman-mechanism.in" "blueman-rfcomm-watcher.in" "blueman-sendto.in" "blueman-services.in" "blueman-tray.in") - (("@PYTHON@") (string-append (assoc-ref inputs "python") - "/bin/python" - ,(version-major+minor - (package-version python)))))))) + (("@PYTHON@") + (search-input-file inputs + (string-append + "/bin/python" + ,(version-major+minor + (package-version python))))))))) ;; Fix loading of external programs. (add-after 'unpack 'patch-external-programs (lambda* (#:key inputs #:allow-other-keys) (substitute* '("blueman/main/NetConf.py" "blueman/main/PPPConnection.py") (("/usr/sbin/bluetoothd") - (string-append (assoc-ref inputs "bluez") - "/libexec/bluetooth/bluetoothd")) + (search-input-directory inputs + "/libexec/bluetooth/bluetoothd")) (("/sbin/iptables") - (string-append (assoc-ref inputs "iptables") - "/sbin/iptables")) + (search-input-file inputs "/sbin/iptables")) (("/usr/sbin/pppd") - (string-append (assoc-ref inputs "ppp") - "/sbin/pppd"))))) + (search-input-file inputs "/sbin/pppd"))))) ;; Fix loading of pulseaudio libraries. (add-after 'unpack 'patch-pulseaudio-libraries (lambda* (#:key inputs #:allow-other-keys) @@ -711,7 +732,7 @@ systems with no further dependencies.") (for-each (lambda (program) (wrap-program program - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,lib)) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,lib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))) (append (map (lambda (prog) (string-append bin prog)) @@ -729,7 +750,7 @@ systems with no further dependencies.") (inputs `(("bluez" ,bluez) ("dbus" ,dbus) - ("gdkpixbuf" ,gdk-pixbuf+svg) + ("librsvg" ,librsvg) ("glib" ,glib) ("gtk+" ,gtk+) ("iproute2" ,iproute) @@ -974,7 +995,17 @@ or server shell scripts with network connections.") version ".tar.gz")) (sha256 (base32 - "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm")))) + "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm")) + (modules '((guix build utils))) + (snippet + ;; 'sys_errlist' & co. are gone in glibc 2.33; work around it. + '(substitute* "percent_m.c" + (("sys_errlist\\[errno\\]") + "strerror (errno)") + (("errno < sys_nerr") + "(1)") + (("errno >= sys_nerr") + "(0)"))))) (build-system gnu-build-system) (arguments `(#:phases @@ -1764,8 +1795,7 @@ TCP connection, TLS handshake and so on) in the terminal.") (lambda* (#:key inputs #:allow-other-keys) (substitute* "test-suite/testheaders.sh" (("/bin/true") - (string-append (assoc-ref inputs "coreutils") - "/bin/true")))))))) + (search-input-file inputs "/bin/true")))))))) (inputs `(("perl" ,perl) ("openldap" ,openldap) @@ -1847,7 +1877,8 @@ live network and disk I/O bandwidth monitor.") ("zlib" ,zlib))) (arguments `(#:configure-flags - (list "--with-experimental=yes" ; build wesside-ng, etc. + (list "CFLAGS=-fcommon" + "--with-experimental=yes" ; build wesside-ng, etc. "--with-gcrypt") ; openssl's the default #:phases (modify-phases %standard-phases (add-before 'bootstrap 'patch-evalrev @@ -1860,8 +1891,8 @@ live network and disk I/O bandwidth monitor.") #t)) (add-after 'build 'absolutize-tools (lambda* (#:key inputs #:allow-other-keys) - (let ((ethtool (string-append (assoc-ref inputs "ethtool") - "/sbin/ethtool"))) + (let ((ethtool (search-input-file inputs + "/sbin/ethtool"))) (substitute* "scripts/airmon-ng" (("ethtool ") (string-append ethtool " "))) @@ -2250,8 +2281,13 @@ sockets in Perl.") `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ - (invoke "ctest" "-E" "url-test")))))) + ;; TODO(core-updates): Make this unconditional. + ,(if (%current-target-system) + '(lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "ctest" "-E" "url-test"))) + '(lambda _ + (invoke "ctest" "-E" "url-test"))))))) (synopsis "Library providing automatic proxy configuration management") (description "Libproxy handles the details of HTTP/HTTPS proxy configuration for applications across all scenarios. Applications using @@ -3420,7 +3456,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (build-system cmake-build-system) (inputs `(("argon2" ,argon2) - ("nettle" ,nettle-3.7) + ("nettle" ,nettle) ("readline" ,readline) ("jsoncpp" ,jsoncpp) ("openssl" ,openssl) ;required for the DHT proxy @@ -3480,7 +3516,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (rename-file (string-append out "/bin") (string-append tools "/bin")) (wrap-program (string-append tools "/bin/dhtcluster") - `("PYTHONPATH" prefix (,site-packages))))))))) + `("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 @@ -3672,8 +3708,9 @@ written (and providing API) in C. Current implementation covers YANG 1.0 (RFC #:phases (modify-phases %standard-phases (delete 'configure)) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - (string-append "PKG_CONFIG=" (assoc-ref %build-inputs "pkg-config") - "/bin/pkg-config") + (string-append "PKG_CONFIG=" + (search-input-file %build-inputs + "/bin/pkg-config")) ,(string-append "CC=" (cc-for-target))))) (home-page "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki") (synopsis "Management tool for the mesh networking BATMAN protocol") @@ -3703,11 +3740,8 @@ module @code{batman-adv}, for Layer 2.") (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (man (string-append out "/share/man"))) - (invoke "make" - (string-append "PYTHONPATH=" (getenv "PYTHONPATH")) - "doc/pagekite.1") - (install-file "doc/pagekite.1" (string-append man "/man1")) - #t)))))) + (invoke "make" "doc/pagekite.1") + (install-file "doc/pagekite.1" (string-append man "/man1")))))))) (inputs `(("python-six" ,python-six) ("python-socksipychain" ,python-socksipychain))) |