summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/gnome.scm3
-rw-r--r--gnu/packages/patches/network-manager-gettid.patch20
2 files changed, 22 insertions, 1 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 37873e42bc..464f2ad818 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5822,7 +5822,8 @@ users.")
               (uri (string-append "mirror://gnome/sources/NetworkManager/"
                                   (version-major+minor version) "/"
                                   "NetworkManager-" version ".tar.xz"))
-              (patches (search-patches "nm-plugin-path.patch"))
+              (patches (search-patches "nm-plugin-path.patch"
+                                       "network-manager-gettid.patch"))
               (sha256
                (base32
                 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
diff --git a/gnu/packages/patches/network-manager-gettid.patch b/gnu/packages/patches/network-manager-gettid.patch
new file mode 100644
index 0000000000..d50b5f8102
--- /dev/null
+++ b/gnu/packages/patches/network-manager-gettid.patch
@@ -0,0 +1,20 @@
+glibc 2.30 added gettid() which conflicts with the implementation in
+NetworkManager.  Remove for 1.17.1 and later versions.
+
+Adapted from upstream:
+https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/10276322bde8f015e48ac06f6a7509f514eb46f0
+
+--- a/src/systemd/sd-adapt/nm-sd-adapt.h
++++ b/src/systemd/sd-adapt/nm-sd-adapt.h
+@@ -181,9 +181,10 @@
+ #endif
+ }
+ 
+-static inline pid_t gettid(void) {
++static inline pid_t _nm_gettid(void) {
+         return (pid_t) syscall(SYS_gettid);
+ }
++#define gettid() _nm_gettid ()
+ 
+ /* we build with C11 and thus <uchar.h> provides char32_t,char16_t. */
+ #define HAVE_CHAR32_T 1