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.scm208
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)))