summary refs log tree commit diff
path: root/gnu/packages/networking.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/networking.scm')
-rw-r--r--gnu/packages/networking.scm189
1 files changed, 104 insertions, 85 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 4c0c87115f..1d6a12bc55 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,78 @@ 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-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'" 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 +685,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 +727,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 +745,7 @@ systems with no further dependencies.")
     (inputs
      `(("bluez" ,bluez)
        ("dbus" ,dbus)
-       ("gdkpixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("iproute2" ,iproute)
@@ -1764,8 +1780,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 +1862,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 +1876,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 +2266,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
@@ -3441,7 +3462,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
@@ -3693,8 +3714,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")
@@ -3724,11 +3746,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)))