summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-11-21 10:24:06 +0100
committerLudovic Courtès <ludo@gnu.org>2018-11-21 17:38:00 +0100
commite1f791276144bc1737ab855226d3e66e58909f14 (patch)
tree25a76f303c1e924fb3fb0d90f44ffccd66c8471e
parent4cf879fefbce0a4e960f8c90e1f8b598d7a6e3df (diff)
downloadguix-e1f791276144bc1737ab855226d3e66e58909f14.tar.gz
gnu: casync: Fix build with glibc 2.28.
* gnu/packages/patches/casync-renameat2-declaration.patch: New file.
* gnu/packages/sync.scm (casync)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/casync-renameat2-declaration.patch27
-rw-r--r--gnu/packages/sync.scm3
3 files changed, 30 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 358222729a..aeff3f8298 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -607,6 +607,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/cairo-setjmp-wrapper.patch		\
   %D%/packages/patches/calibre-no-updates-dialog.patch		\
   %D%/packages/patches/calibre-use-packaged-feedparser.patch	\
+  %D%/packages/patches/casync-renameat2-declaration.patch	\
   %D%/packages/patches/catdoc-CVE-2017-11110.patch		\
   %D%/packages/patches/cdparanoia-fpic.patch			\
   %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch 	\
diff --git a/gnu/packages/patches/casync-renameat2-declaration.patch b/gnu/packages/patches/casync-renameat2-declaration.patch
new file mode 100644
index 0000000000..74c2ca7b3c
--- /dev/null
+++ b/gnu/packages/patches/casync-renameat2-declaration.patch
@@ -0,0 +1,27 @@
+Fix build failure on glibc 2.28 where 'renameat2' would end up being
+declared twice: <https://github.com/systemd/casync/issues/166>.
+
+From 625244ca47e8ee1375d2d0092271bfd13b0913ea Mon Sep 17 00:00:00 2001
+From: Daniel Mack <daniel@zonque.org>
+Date: Tue, 13 Nov 2018 17:52:48 +0100
+Subject: [PATCH] meson.build: pass -D_GNU_SOURCE when checking for functions
+
+As described in #166, -D_GNU_SOURCE needs to be passed to the meson function
+availability checker. h/t to @tomeon for providing a link to the solution as
+well.
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index f42ed16..c0f741e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -78,6 +78,6 @@ foreach ident : [
+         ['copy_file_range',   '''#include <sys/syscall.h>
+                                  #include <unistd.h>'''],
+ ]
+-        have = cc.has_function(ident[0], prefix : ident[1])
++        have = cc.has_function(ident[0], args : '-D_GNU_SOURCE', prefix : ident[1])
+         conf.set10('HAVE_' + ident[0].to_upper(), have)
+ endforeach
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index e0b0af3d96..60e66437a8 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -214,7 +214,8 @@ and does not hamper local file system performance.")
               (sha256
                (base32
                 "0znkp3fcksrykcsv06y2mjvf2lbwmin25snmvfa8i5qfm3f4rm88"))
-              (file-name (string-append name "-" version "-checkout"))))
+              (file-name (string-append name "-" version "-checkout"))
+              (patches (search-patches "casync-renameat2-declaration.patch"))))
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)