aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/gnome.scm247
-rw-r--r--gnu/packages/patches/network-manager-plugin-path.patch38
2 files changed, 145 insertions, 140 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5c7338c955..6aeda7a7f1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7908,7 +7908,7 @@ users.")
(define-public network-manager
(package
(name "network-manager")
- (version "1.32.12")
+ (version "1.40.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/NetworkManager/"
@@ -7918,138 +7918,135 @@ users.")
"network-manager-meson.patch"))
(sha256
(base32
- "0jzmz0zw64dgvdn2g7pppr7bkywpbxcbdb1viv6p7zh2lnh3dax8"))))
+ "00zwx7cvl8p8xv5h8yvlj2r5wycbvbqia7z4hjmmvjicpiby1rxf"))))
(build-system meson-build-system)
(outputs '("out"
"doc")) ; 8 MiB of gtk-doc HTML
(arguments
- `(#:configure-flags
- (let ((out (assoc-ref %outputs "out"))
- (dhclient (search-input-file %build-inputs "/sbin/dhclient")))
- (list
- ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
- ;; component.
- (string-append "-Dc_link_args=-Wl,-rpath="
- out "/lib:"
- out "/lib/NetworkManager/" ,version)
- "-Dsystemd_journal=false"
- "-Dsession_tracking=elogind"
- "-Dsuspend_resume=elogind"
- "-Dsystemdsystemunitdir=no"
- "-Dsession_tracking_consolekit=false"
- "-Ddhcpcd=no"
- "-Ddhcpcanon=no"
- "-Dcrypto=gnutls"
- "-Diwd=true"
- "-Dlibaudit=yes"
- "-Dqt=false"
- "-Ddocs=true"
- "--sysconfdir=/etc"
- "--localstatedir=/var"
- (string-append "-Dudev_dir="
- out "/lib/udev")
- (string-append "-Ddbus_conf_dir="
- out "/etc/dbus-1/system.d")
-
- (string-append "-Ddhclient=" dhclient)))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/libnm-glib-aux/nm-json-aux.c"
- (("(handle = dlopen\\()soname" _ head)
- (string-append
- head "\"" (search-input-file inputs
- "lib/libjansson.so") "\"")))))
- (add-before 'configure 'pre-configure
- (lambda _
- ;; These tests try to test aspects of network-manager's
- ;; functionality within restricted containers, but they don't
- ;; 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/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-lldp.*") "")
- ((".*test-route-linux.*") "")
- ((".*test-tc-linux.*") ""))))
- (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"))))))
- (add-before 'check 'pre-check
- (lambda _
- ;; For the missing /etc/machine-id.
- (setenv "DBUS_FATAL_WARNINGS" "0")))
- (add-before 'install 'no-polkit-magic
- ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
- (lambda _
- (setenv "PKEXEC_UID" "something")))
- (add-after 'install 'move-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc")))
- (mkdir-p (string-append doc "/share"))
- (for-each (lambda (directory)
- (copy-recursively (string-append out directory)
- (string-append doc directory))
- (delete-file-recursively
- (string-append out directory)))
- '("/share/doc" "/share/gtk-doc"))))))))
+ (list
+ #:configure-flags
+ #~(list
+ ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
+ ;; component.
+ (string-append "-Dc_link_args=-Wl,-rpath="
+ #$output "/lib:"
+ #$output "/lib/NetworkManager/" #$version)
+ "-Dsystemd_journal=false"
+ "-Dsession_tracking=elogind"
+ "-Dsuspend_resume=elogind"
+ "-Dsystemdsystemunitdir=no"
+ "-Dsession_tracking_consolekit=false"
+ "-Ddhcpcd=no"
+ "-Ddhcpcanon=no"
+ "-Dcrypto=gnutls"
+ "-Diwd=true"
+ "-Dlibaudit=yes"
+ "-Dqt=false"
+ "-Ddocs=true"
+ "--sysconfdir=/etc"
+ "--localstatedir=/var"
+ (string-append "-Dudev_dir="
+ #$output "/lib/udev")
+ (string-append "-Ddbus_conf_dir="
+ #$output "/etc/dbus-1/system.d")
+
+ (string-append "-Ddhclient=" (search-input-file %build-inputs
+ "/sbin/dhclient")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/libnm-glib-aux/nm-json-aux.c"
+ (("(handle = dlopen\\()soname" _ head)
+ (string-append
+ head "\"" (search-input-file inputs
+ "lib/libjansson.so") "\"")))))
+ (add-before 'configure 'pre-configure
+ (lambda _
+ ;; These tests try to test aspects of network-manager's
+ ;; functionality within restricted containers, but they don't
+ ;; 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/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-lldp.*") "")
+ ((".*test-route-linux.*") "")
+ ((".*test-tc-linux.*") ""))))
+ (add-after 'unpack 'patch-docbook-xml
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "." ".*\\.(xsl|xml)")
+ (("http://.*/docbookx\\.dtd")
+ (search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; For the missing /etc/machine-id.
+ (setenv "DBUS_FATAL_WARNINGS" "0")))
+ (add-before 'install 'no-polkit-magic
+ ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
+ (lambda _
+ (setenv "PKEXEC_UID" "something")))
+ (add-after 'install 'move-doc
+ (lambda _
+ (mkdir-p (string-append #$output:doc "/share"))
+ (for-each (lambda (directory)
+ (copy-recursively (string-append #$output directory)
+ (string-append #$output:doc
+ directory))
+ (delete-file-recursively
+ (string-append #$output directory)))
+ '("/share/doc" "/share/gtk-doc")))))))
(propagated-inputs
(list glib))
(native-inputs
- `(("glib:bin" ,glib "bin") ; for gdbus-codegen
- ("gtk-doc" ,gtk-doc/stable)
- ("gobject-introspection" ,gobject-introspection)
- ("docbook-xml" ,docbook-xml)
- ("docbook-xsl" ,docbook-xsl)
- ("intltool" ,intltool)
- ("libxslt" ,libxslt)
- ("libxml2" ,libxml2)
- ("pkg-config" ,pkg-config)
- ("vala" ,vala)
- ;; For testing.
- ("python" ,python-wrapper)
- ("python-dbus" ,python-dbus)
- ("python-pygobject" ,python-pygobject)))
+ (list `(,glib "bin") ; for gdbus-codegen
+ gtk-doc/stable
+ gobject-introspection
+ docbook-xml
+ docbook-xsl
+ intltool
+ libxslt
+ libxml2
+ pkg-config
+ vala
+ ;; For testing.
+ python-wrapper
+ python-dbus
+ python-pygobject))
(inputs
- `(("curl" ,curl)
- ("cyrus-sasl" ,cyrus-sasl)
- ("dbus-glib" ,dbus-glib)
- ("dnsmasq" ,dnsmasq)
- ("eudev" ,eudev)
- ("gnutls" ,gnutls)
- ("iptables" ,iptables)
- ("isc-dhcp" ,isc-dhcp)
- ("iwd" ,iwd) ; wpa_supplicant alternative
- ("jansson" ,jansson)
- ("libaudit" ,audit)
- ("libgcrypt" ,libgcrypt)
- ("libgudev" ,libgudev)
- ("libndp" ,libndp)
- ("libnl" ,libnl)
- ("libselinux" ,libselinux)
- ("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
- ("polkit" ,polkit)
- ("ppp" ,ppp)
- ("readline" ,readline)
- ("util-linux" ,util-linux)
- ("elogind" ,elogind)))
+ (list curl
+ cyrus-sasl
+ dbus-glib
+ dnsmasq
+ eudev
+ gnutls
+ iptables
+ isc-dhcp
+ iwd ; wpa_supplicant alternative
+ jansson
+ audit
+ libgcrypt
+ libgudev
+ libndp
+ libnl
+ libselinux
+ libsoup
+ mobile-broadband-provider-info
+ modem-manager
+ newt ;for the 'nmtui' console interface
+ openresolv ; alternative resolv.conf manager
+ polkit
+ ppp
+ readline
+ util-linux
+ elogind))
(synopsis "Network connection manager")
(home-page "https://wiki.gnome.org/Projects/NetworkManager")
(description
diff --git a/gnu/packages/patches/network-manager-plugin-path.patch b/gnu/packages/patches/network-manager-plugin-path.patch
index ec6767aaac..cd2447cf03 100644
--- a/gnu/packages/patches/network-manager-plugin-path.patch
+++ b/gnu/packages/patches/network-manager-plugin-path.patch
@@ -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
Subject: [PATCH] respect NM_VPN_PLUGIN_DIR
---- 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 ();
+Rebased by Maxim Cournoyer on 2022/08/23.
+
+diff --git a/src/core/vpn/nm-vpn-manager.c b/src/core/vpn/nm-vpn-manager.c
+index 6bf8edaee5..9bd960ba86 100644
+--- a/src/core/vpn/nm-vpn-manager.c
++++ b/src/core/vpn/nm-vpn-manager.c
+@@ -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 */
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);
}
-+ 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);
++ 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);
++ 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.
-@@ -243,6 +252,11 @@
+@@ -243,6 +252,11 @@ nm_vpn_manager_init(NMVpnManager *self)
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);
++ 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);
}