gnu: network-manager: Update to 1.40.0, use gexps and remove input labels.
* gnu/packages/gnome.scm (network-manager): Update to 1.40.0. [arguments]: Use gexps. [native-inputs, propagated-inputs]: Remove labels. * gnu/packages/patches/network-manager-plugin-path.patch: Rebase patch.master
parent
3c5394ca7b
commit
9539408e91
|
@ -7908,7 +7908,7 @@ users.")
|
||||||
(define-public network-manager
|
(define-public network-manager
|
||||||
(package
|
(package
|
||||||
(name "network-manager")
|
(name "network-manager")
|
||||||
(version "1.32.12")
|
(version "1.40.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/NetworkManager/"
|
(uri (string-append "mirror://gnome/sources/NetworkManager/"
|
||||||
|
@ -7918,138 +7918,135 @@ users.")
|
||||||
"network-manager-meson.patch"))
|
"network-manager-meson.patch"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0jzmz0zw64dgvdn2g7pppr7bkywpbxcbdb1viv6p7zh2lnh3dax8"))))
|
"00zwx7cvl8p8xv5h8yvlj2r5wycbvbqia7z4hjmmvjicpiby1rxf"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(outputs '("out"
|
(outputs '("out"
|
||||||
"doc")) ; 8 MiB of gtk-doc HTML
|
"doc")) ; 8 MiB of gtk-doc HTML
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
(list
|
||||||
(let ((out (assoc-ref %outputs "out"))
|
#:configure-flags
|
||||||
(dhclient (search-input-file %build-inputs "/sbin/dhclient")))
|
#~(list
|
||||||
(list
|
;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
|
||||||
;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
|
;; component.
|
||||||
;; component.
|
(string-append "-Dc_link_args=-Wl,-rpath="
|
||||||
(string-append "-Dc_link_args=-Wl,-rpath="
|
#$output "/lib:"
|
||||||
out "/lib:"
|
#$output "/lib/NetworkManager/" #$version)
|
||||||
out "/lib/NetworkManager/" ,version)
|
"-Dsystemd_journal=false"
|
||||||
"-Dsystemd_journal=false"
|
"-Dsession_tracking=elogind"
|
||||||
"-Dsession_tracking=elogind"
|
"-Dsuspend_resume=elogind"
|
||||||
"-Dsuspend_resume=elogind"
|
"-Dsystemdsystemunitdir=no"
|
||||||
"-Dsystemdsystemunitdir=no"
|
"-Dsession_tracking_consolekit=false"
|
||||||
"-Dsession_tracking_consolekit=false"
|
"-Ddhcpcd=no"
|
||||||
"-Ddhcpcd=no"
|
"-Ddhcpcanon=no"
|
||||||
"-Ddhcpcanon=no"
|
"-Dcrypto=gnutls"
|
||||||
"-Dcrypto=gnutls"
|
"-Diwd=true"
|
||||||
"-Diwd=true"
|
"-Dlibaudit=yes"
|
||||||
"-Dlibaudit=yes"
|
"-Dqt=false"
|
||||||
"-Dqt=false"
|
"-Ddocs=true"
|
||||||
"-Ddocs=true"
|
"--sysconfdir=/etc"
|
||||||
"--sysconfdir=/etc"
|
"--localstatedir=/var"
|
||||||
"--localstatedir=/var"
|
(string-append "-Dudev_dir="
|
||||||
(string-append "-Dudev_dir="
|
#$output "/lib/udev")
|
||||||
out "/lib/udev")
|
(string-append "-Ddbus_conf_dir="
|
||||||
(string-append "-Ddbus_conf_dir="
|
#$output "/etc/dbus-1/system.d")
|
||||||
out "/etc/dbus-1/system.d")
|
|
||||||
|
|
||||||
(string-append "-Ddhclient=" dhclient)))
|
(string-append "-Ddhclient=" (search-input-file %build-inputs
|
||||||
#:phases
|
"/sbin/dhclient")))
|
||||||
(modify-phases %standard-phases
|
#:phases
|
||||||
(add-after 'unpack 'patch-dlopen-call-to-libjansson.so
|
#~(modify-phases %standard-phases
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(add-after 'unpack 'patch-dlopen-call-to-libjansson.so
|
||||||
(substitute* "src/libnm-glib-aux/nm-json-aux.c"
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(("(handle = dlopen\\()soname" _ head)
|
(substitute* "src/libnm-glib-aux/nm-json-aux.c"
|
||||||
(string-append
|
(("(handle = dlopen\\()soname" _ head)
|
||||||
head "\"" (search-input-file inputs
|
(string-append
|
||||||
"lib/libjansson.so") "\"")))))
|
head "\"" (search-input-file inputs
|
||||||
(add-before 'configure 'pre-configure
|
"lib/libjansson.so") "\"")))))
|
||||||
(lambda _
|
(add-before 'configure 'pre-configure
|
||||||
;; These tests try to test aspects of network-manager's
|
(lambda _
|
||||||
;; functionality within restricted containers, but they don't
|
;; These tests try to test aspects of network-manager's
|
||||||
;; cope with being already in the Guix build jail as that jail
|
;; functionality within restricted containers, but they don't
|
||||||
;; lacks some features that they would like to proxy over (like
|
;; cope with being already in the Guix build jail as that jail
|
||||||
;; a /sys mount).
|
;; lacks some features that they would like to proxy over (like
|
||||||
(substitute* "src/core/tests/meson.build"
|
;; a /sys mount).
|
||||||
((".*test-l3cfg.*") ""))
|
(substitute* "src/core/tests/meson.build"
|
||||||
(substitute* "src/core/devices/tests/meson.build"
|
((".*test-l3cfg.*") ""))
|
||||||
((".*test-acd.*") "")
|
(substitute* "src/core/devices/tests/meson.build"
|
||||||
((".*test-lldp.*") ""))
|
((".*test-acd.*") "")
|
||||||
(substitute* "src/core/platform/tests/meson.build"
|
((".*test-lldp.*") ""))
|
||||||
((".*test-address-linux.*") "")
|
(substitute* "src/core/platform/tests/meson.build"
|
||||||
((".*test-cleanup-linux.*") "")
|
((".*test-address-linux.*") "")
|
||||||
((".*test-link-linux.*") "")
|
((".*test-cleanup-linux.*") "")
|
||||||
((".*test-lldp.*") "")
|
((".*test-link-linux.*") "")
|
||||||
((".*test-route-linux.*") "")
|
((".*test-lldp.*") "")
|
||||||
((".*test-tc-linux.*") ""))))
|
((".*test-route-linux.*") "")
|
||||||
(add-after 'unpack 'patch-docbook-xml
|
((".*test-tc-linux.*") ""))))
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(add-after 'unpack 'patch-docbook-xml
|
||||||
(let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
"/xml/dtd/docbook")))
|
(substitute* (find-files "." ".*\\.(xsl|xml)")
|
||||||
(substitute* (find-files "." ".*\\.(xsl|xml)")
|
(("http://.*/docbookx\\.dtd")
|
||||||
(("http://.*/docbookx\\.dtd")
|
(search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
|
||||||
(string-append xmldoc "/docbookx.dtd"))))))
|
(add-before 'check 'pre-check
|
||||||
(add-before 'check 'pre-check
|
(lambda _
|
||||||
(lambda _
|
;; For the missing /etc/machine-id.
|
||||||
;; For the missing /etc/machine-id.
|
(setenv "DBUS_FATAL_WARNINGS" "0")))
|
||||||
(setenv "DBUS_FATAL_WARNINGS" "0")))
|
(add-before 'install 'no-polkit-magic
|
||||||
(add-before 'install 'no-polkit-magic
|
;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
|
||||||
;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
|
(lambda _
|
||||||
(lambda _
|
(setenv "PKEXEC_UID" "something")))
|
||||||
(setenv "PKEXEC_UID" "something")))
|
(add-after 'install 'move-doc
|
||||||
(add-after 'install 'move-doc
|
(lambda _
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(mkdir-p (string-append #$output:doc "/share"))
|
||||||
(let ((out (assoc-ref outputs "out"))
|
(for-each (lambda (directory)
|
||||||
(doc (assoc-ref outputs "doc")))
|
(copy-recursively (string-append #$output directory)
|
||||||
(mkdir-p (string-append doc "/share"))
|
(string-append #$output:doc
|
||||||
(for-each (lambda (directory)
|
directory))
|
||||||
(copy-recursively (string-append out directory)
|
(delete-file-recursively
|
||||||
(string-append doc directory))
|
(string-append #$output directory)))
|
||||||
(delete-file-recursively
|
'("/share/doc" "/share/gtk-doc")))))))
|
||||||
(string-append out directory)))
|
|
||||||
'("/share/doc" "/share/gtk-doc"))))))))
|
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
(list glib))
|
(list glib))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("glib:bin" ,glib "bin") ; for gdbus-codegen
|
(list `(,glib "bin") ; for gdbus-codegen
|
||||||
("gtk-doc" ,gtk-doc/stable)
|
gtk-doc/stable
|
||||||
("gobject-introspection" ,gobject-introspection)
|
gobject-introspection
|
||||||
("docbook-xml" ,docbook-xml)
|
docbook-xml
|
||||||
("docbook-xsl" ,docbook-xsl)
|
docbook-xsl
|
||||||
("intltool" ,intltool)
|
intltool
|
||||||
("libxslt" ,libxslt)
|
libxslt
|
||||||
("libxml2" ,libxml2)
|
libxml2
|
||||||
("pkg-config" ,pkg-config)
|
pkg-config
|
||||||
("vala" ,vala)
|
vala
|
||||||
;; For testing.
|
;; For testing.
|
||||||
("python" ,python-wrapper)
|
python-wrapper
|
||||||
("python-dbus" ,python-dbus)
|
python-dbus
|
||||||
("python-pygobject" ,python-pygobject)))
|
python-pygobject))
|
||||||
(inputs
|
(inputs
|
||||||
`(("curl" ,curl)
|
(list curl
|
||||||
("cyrus-sasl" ,cyrus-sasl)
|
cyrus-sasl
|
||||||
("dbus-glib" ,dbus-glib)
|
dbus-glib
|
||||||
("dnsmasq" ,dnsmasq)
|
dnsmasq
|
||||||
("eudev" ,eudev)
|
eudev
|
||||||
("gnutls" ,gnutls)
|
gnutls
|
||||||
("iptables" ,iptables)
|
iptables
|
||||||
("isc-dhcp" ,isc-dhcp)
|
isc-dhcp
|
||||||
("iwd" ,iwd) ; wpa_supplicant alternative
|
iwd ; wpa_supplicant alternative
|
||||||
("jansson" ,jansson)
|
jansson
|
||||||
("libaudit" ,audit)
|
audit
|
||||||
("libgcrypt" ,libgcrypt)
|
libgcrypt
|
||||||
("libgudev" ,libgudev)
|
libgudev
|
||||||
("libndp" ,libndp)
|
libndp
|
||||||
("libnl" ,libnl)
|
libnl
|
||||||
("libselinux" ,libselinux)
|
libselinux
|
||||||
("libsoup" ,libsoup)
|
libsoup
|
||||||
("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
|
mobile-broadband-provider-info
|
||||||
("modem-manager" ,modem-manager)
|
modem-manager
|
||||||
("newt" ,newt) ;for the 'nmtui' console interface
|
newt ;for the 'nmtui' console interface
|
||||||
("openresolv" ,openresolv) ; alternative resolv.conf manager
|
openresolv ; alternative resolv.conf manager
|
||||||
("polkit" ,polkit)
|
polkit
|
||||||
("ppp" ,ppp)
|
ppp
|
||||||
("readline" ,readline)
|
readline
|
||||||
("util-linux" ,util-linux)
|
util-linux
|
||||||
("elogind" ,elogind)))
|
elogind))
|
||||||
(synopsis "Network connection manager")
|
(synopsis "Network connection manager")
|
||||||
(home-page "https://wiki.gnome.org/Projects/NetworkManager")
|
(home-page "https://wiki.gnome.org/Projects/NetworkManager")
|
||||||
(description
|
(description
|
||||||
|
|
|
@ -3,39 +3,47 @@ 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
|
Date: Wed, 3 Jul 2019 13:31:54 +0200
|
||||||
Subject: [PATCH] respect NM_VPN_PLUGIN_DIR
|
Subject: [PATCH] respect NM_VPN_PLUGIN_DIR
|
||||||
|
|
||||||
--- a/src/core/vpn/nm-vpn-manager.c 2021-10-29 13:20:01.062917840 -0400
|
Rebased by Maxim Cournoyer on 2022/08/23.
|
||||||
+++ b/src/core/vpn/nm-vpn-manager.c 2021-10-29 13:26:46.094397018 -0400
|
|
||||||
@@ -211,6 +211,7 @@
|
diff --git a/src/core/vpn/nm-vpn-manager.c b/src/core/vpn/nm-vpn-manager.c
|
||||||
GSList * infos, *info;
|
index 6bf8edaee5..9bd960ba86 100644
|
||||||
const char * conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc();
|
--- a/src/core/vpn/nm-vpn-manager.c
|
||||||
const char * conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib();
|
+++ b/src/core/vpn/nm-vpn-manager.c
|
||||||
+ const char * conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user ();
|
@@ -209,8 +209,9 @@ nm_vpn_manager_init(NMVpnManager *self)
|
||||||
|
NMVpnManagerPrivate *priv = NM_VPN_MANAGER_GET_PRIVATE(self);
|
||||||
|
GFile *file;
|
||||||
|
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_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 */
|
/* Watch the VPN directory for changes */
|
||||||
file = g_file_new_for_path(conf_dir_lib);
|
file = g_file_new_for_path(conf_dir_lib);
|
||||||
@@ -229,6 +230,14 @@
|
@@ -229,6 +230,14 @@ nm_vpn_manager_init(NMVpnManager *self)
|
||||||
g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self);
|
g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ file = g_file_new_for_path (conf_dir_user);
|
+ file = g_file_new_for_path(conf_dir_user);
|
||||||
+ priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL);
|
+ priv->monitor_etc = g_file_monitor_directory(file, G_FILE_MONITOR_NONE, NULL, NULL);
|
||||||
+ g_object_unref (file);
|
+ g_object_unref(file);
|
||||||
+ if (priv->monitor_etc) {
|
+ if (priv->monitor_etc) {
|
||||||
+ priv->monitor_id_etc =
|
+ priv->monitor_id_etc =
|
||||||
+ g_signal_connect (priv->monitor_etc, "changed", G_CALLBACK (vpn_dir_changed), self);
|
+ 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
|
/* 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
|
* plugin configuration. Hence we expect ~newer~ plugins to install their files
|
||||||
* in /usr/lib/NetworkManager. We want to prefer those files.
|
* in /usr/lib/NetworkManager. We want to prefer those files.
|
||||||
@@ -243,6 +252,11 @@
|
@@ -243,6 +252,11 @@ nm_vpn_manager_init(NMVpnManager *self)
|
||||||
try_add_plugin(self, info->data);
|
try_add_plugin(self, info->data);
|
||||||
g_slist_free_full(infos, g_object_unref);
|
g_slist_free_full(infos, g_object_unref);
|
||||||
|
|
||||||
+ infos = _nm_vpn_plugin_info_list_load_dir(conf_dir_user, TRUE, 0, NULL, NULL);
|
+ infos = _nm_vpn_plugin_info_list_load_dir(conf_dir_user, TRUE, 0, NULL, NULL);
|
||||||
+ for (info = infos; info; info = info->next)
|
+ for (info = infos; info; info = info->next)
|
||||||
+ try_add_plugin (self, info->data);
|
+ try_add_plugin(self, info->data);
|
||||||
+ g_slist_free_full (infos, g_object_unref);
|
+ 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);
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue