~ruther/guix-local

b64d3bb6d45757b2b280b5c6fd45990989c2fcfd — Maxim Cournoyer 4 years ago f19ea27
gnu: network-manager: Update to 1.32.12.

* gnu/packages/gnome.scm (network-manager): Update to 1.32.12.
[origin]: Remove snippet field.
[meson]: New argument.
[phases]: Remove trailing #t.
{pre-configure}: Adjust; disable failing jansson test.
* gnu/packages/patches/network-manager-plugin-path.patch: Adjust patch.
2 files changed, 57 insertions(+), 65 deletions(-)

M gnu/packages/gnome.scm
M gnu/packages/patches/network-manager-plugin-path.patch
M gnu/packages/gnome.scm => gnu/packages/gnome.scm +27 -26
@@ 7760,7 7760,7 @@ users.")
(define-public network-manager
  (package
    (name "network-manager")
    (version "1.24.0")
    (version "1.32.12")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/NetworkManager/"


@@ 7769,18 7769,15 @@ users.")
              (patches (search-patches "network-manager-plugin-path.patch"))
              (sha256
               (base32
                "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
              (modules '((guix build utils)))
              (snippet
               '(begin
                  (substitute* "src/devices/wwan/nm-modem-manager.c"
                    (("systemd") "elogind"))
                  #t))))
                "0jzmz0zw64dgvdn2g7pppr7bkywpbxcbdb1viv6p7zh2lnh3dax8"))))
    (build-system meson-build-system)
    (outputs '("out"
               "doc")) ; 8 MiB of gtk-doc HTML
               "doc"))                  ; 8 MiB of gtk-doc HTML
    (arguments
     `(#:configure-flags
     ;; Use meson-0.59, otherwise the custom rpaths are not registered
     ;; correctly (see: https://github.com/mesonbuild/meson/issues/9492).
     `(#:meson ,meson-0.59
       #:configure-flags
       (let ((out      (assoc-ref %outputs "out"))
             (dhclient (search-input-file %build-inputs "/sbin/dhclient")))
         (list


@@ 7818,33 7815,38 @@ users.")
             ;; cope with being already in the Guix build jail as that jail
             ;; lacks some features that they would like to proxy over (like
             ;; a /sys mount).
             (substitute* "src/platform/tests/meson.build"
             (substitute* "src/core/tests/meson.build"
               ((".*test-l3cfg.*") ""))
             (substitute* "src/core/devices/tests/meson.build"
               ((".*test-acd.*") "")
               ((".*test-lldp.*") ""))
             (substitute* "src/core/platform/tests/meson.build"
               ((".*test-address-linux.*") "")
               ((".*test-cleanup-linux.*") "")
               ((".*test-link-linux.*") "")
               ((".*test-route-linux.*") ""))
             (substitute* "src/devices/tests/meson.build"
               ((".*test-acd.*") "")
               ((".*test-lldp.*") ""))
             #t))
               ((".*test-lldp.*") "")
               ((".*test-route-linux.*") "")
               ((".*test-tc-linux.*") ""))
             ;; FIXME: The jansson check fails (see:
             ;; https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/837
             (substitute* "src/libnm-core-impl/tests/test-setting.c"
               (("g_assert\\(nm_json_vt\\(\\)\\);")
                "return TRUE;"))))
         (add-after 'unpack 'patch-docbook-xml
           (lambda* (#:key inputs #:allow-other-keys)
             (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
                                          "/xml/dtd/docbook")))
               (substitute* (find-files "." ".*\\.(xsl|xml)")
                 (("http://.*/docbookx\\.dtd")
                  (string-append xmldoc "/docbookx.dtd")))
               #t)))
                  (string-append xmldoc "/docbookx.dtd"))))))
         (add-before 'check 'pre-check
           (lambda _
             ;; For the missing /etc/machine-id.
             (setenv "DBUS_FATAL_WARNINGS" "0")
             #t))
             (setenv "DBUS_FATAL_WARNINGS" "0")))
         (add-before 'install 'no-polkit-magic
           ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
           (lambda _
             (setenv "PKEXEC_UID" "something")
             #t))
             (setenv "PKEXEC_UID" "something")))
         (add-after 'install 'move-doc
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out"))


@@ 7855,8 7857,7 @@ users.")
                                             (string-append doc directory))
                           (delete-file-recursively
                            (string-append out directory)))
                         '("/share/doc" "/share/gtk-doc"))
               #t))))))
                         '("/share/doc" "/share/gtk-doc"))))))))
    (propagated-inputs
     `(("glib" ,glib)))
    (native-inputs


@@ 7894,8 7895,8 @@ users.")
       ("libsoup" ,libsoup)
       ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
       ("modem-manager" ,modem-manager)
       ("newt" ,newt)                       ;for the 'nmtui' console interface
       ("openresolv" ,openresolv)           ; alternative resolv.conf manager
       ("newt" ,newt)                   ;for the 'nmtui' console interface
       ("openresolv" ,openresolv)       ; alternative resolv.conf manager
       ("polkit" ,polkit)
       ("ppp" ,ppp)
       ("readline" ,readline)

M gnu/packages/patches/network-manager-plugin-path.patch => gnu/packages/patches/network-manager-plugin-path.patch +30 -39
@@ 3,49 3,40 @@ From: =?UTF-8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@gnu.org>
Date: Wed, 3 Jul 2019 13:31:54 +0200
Subject: [PATCH] respect NM_VPN_PLUGIN_DIR

---
 src/vpn/nm-vpn-manager.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/vpn/nm-vpn-manager.c b/src/vpn/nm-vpn-manager.c
index d063916..d779166 100644
--- a/src/vpn/nm-vpn-manager.c
+++ b/src/vpn/nm-vpn-manager.c
@@ -223,6 +223,7 @@ nm_vpn_manager_init (NMVpnManager *self)
 	GSList *infos, *info;
 	const char *conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc ();
 	const char *conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib ();
+	const char *conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user ();
--- a/src/core/vpn/nm-vpn-manager.c	2021-10-29 13:20:01.062917840 -0400
+++ b/src/core/vpn/nm-vpn-manager.c	2021-10-29 13:26:46.094397018 -0400
@@ -211,6 +211,7 @@
     GSList *             infos, *info;
     const char *         conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc();
     const char *         conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib();
+    const char *         conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user ();
 
 	/* Watch the VPN directory for changes */
 	file = g_file_new_for_path (conf_dir_lib);
@@ -241,6 +242,14 @@ nm_vpn_manager_init (NMVpnManager *self)
 		                                         G_CALLBACK (vpn_dir_changed), self);
 	}
     /* Watch the VPN directory for changes */
     file              = g_file_new_for_path(conf_dir_lib);
@@ -229,6 +230,14 @@
             g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self);
     }
 
+	file = g_file_new_for_path (conf_dir_user);
+	priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL);
+	g_object_unref (file);
+	if (priv->monitor_etc) {
+		priv->monitor_id_etc = g_signal_connect (priv->monitor_etc, "changed",
+		                                         G_CALLBACK (vpn_dir_changed), self);
+	}
+    file              = g_file_new_for_path (conf_dir_user);
+    priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL);
+    g_object_unref (file);
+    if (priv->monitor_etc) {
+        priv->monitor_id_etc =
+            g_signal_connect (priv->monitor_etc, "changed", G_CALLBACK (vpn_dir_changed), self);
+    }
+
 	/* first read conf_dir_lib. The name files are not really user configuration, but
 	 * plugin configuration. Hence we expect ~newer~ plugins to install their files
 	 * in /usr/lib/NetworkManager. We want to prefer those files.
@@ -255,6 +264,11 @@ nm_vpn_manager_init (NMVpnManager *self)
 		try_add_plugin (self, info->data);
 	g_slist_free_full (infos, g_object_unref);
     /* first read conf_dir_lib. The name files are not really user configuration, but
      * plugin configuration. Hence we expect ~newer~ plugins to install their files
      * in /usr/lib/NetworkManager. We want to prefer those files.
@@ -243,6 +252,11 @@
         try_add_plugin(self, info->data);
     g_slist_free_full(infos, g_object_unref);
 
+	infos = _nm_vpn_plugin_info_list_load_dir (conf_dir_user, TRUE, 0, NULL, NULL);
+	for (info = infos; info; info = info->next)
+		try_add_plugin (self, info->data);
+	g_slist_free_full (infos, g_object_unref);
+    infos = _nm_vpn_plugin_info_list_load_dir(conf_dir_user, TRUE, 0, NULL, NULL);
+    for (info = infos; info; info = info->next)
+            try_add_plugin (self, info->data);
+    g_slist_free_full (infos, g_object_unref);
+
 	priv->active_services = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, NULL);
     priv->active_services = g_hash_table_new_full(nm_str_hash, g_str_equal, g_free, NULL);
 }
 
-- 
2.22.0