summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-10-03 15:22:44 +0200
committerLudovic Courtès <ludo@gnu.org>2018-10-03 15:23:56 +0200
commit944a3a8b8e36e1e1b9632a774c9ae4e63647d21c (patch)
tree882f9112f0600e5b6cd9f32b55479ff2716e375e
parentffec356a29a58d97ec34e1152aa3136e78471dc6 (diff)
downloadguix-944a3a8b8e36e1e1b9632a774c9ae4e63647d21c.tar.gz
gnu: recutils: Adjust Gnulib to libc 2.28.
Fixes <https://bugs.gnu.org/32776>.

* gnu/packages/databases.scm (recutils)[modules, snippet]: New fields.
-rw-r--r--gnu/packages/databases.scm18
1 files changed, 17 insertions, 1 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index b6e5012677..fecf661833 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -923,7 +923,23 @@ organized in a hash table or B+ tree.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93"))))
+                "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Adjust the bundled gnulib to work with glibc 2.28.  See e.g.
+                  ;; "m4-gnulib-libio.patch".  This is a phase rather than patch
+                  ;; or snippet to work around <https://bugs.gnu.org/32347>.
+                  (substitute* (find-files "lib" "\\.c$")
+                    (("#if defined _IO_ftrylockfile")
+                     "#if defined _IO_EOF_SEEN"))
+                  (substitute* "lib/stdio-impl.h"
+                    (("^/\\* BSD stdio derived implementations")
+                     (string-append "#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN\n"
+                                    "# define _IO_IN_BACKUP 0x100\n"
+                                    "#endif\n\n"
+                                    "/* BSD stdio derived implementations")))
+                  #t))))
     (build-system gnu-build-system)
 
     ;; Running tests in parallel leads to test failures and crashes in