summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-12-06 18:21:48 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-01-08 21:56:02 +0100
commit12818a0656817e95a80aace01089042c0b0e7e22 (patch)
tree5171530c3c9bdc703c13205bcfa2e173862981c6
parent46c3a08b2ee8d5abae9f8fb42ff68dbf211dd261 (diff)
downloadguix-12818a0656817e95a80aace01089042c0b0e7e22.tar.gz
gnu: network-manager: Fix build with glibc 2.30.
* gnu/packages/patches/network-manager-gettid.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/gnome.scm (network-manager)[source](patches): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnome.scm3
-rw-r--r--gnu/packages/patches/network-manager-gettid.patch20
3 files changed, 23 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 234d283ee6..2b17423483 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1197,6 +1197,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/netsurf-system-utf8proc.patch		\
   %D%/packages/patches/netsurf-y2038-tests.patch		\
   %D%/packages/patches/netsurf-longer-test-timeout.patch	\
+  %D%/packages/patches/network-manager-gettid.patch		\
   %D%/packages/patches/nfs-utils-missing-headers.patch		\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
   %D%/packages/patches/nm-plugin-path.patch			\
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