diff options
-rw-r--r-- | pkgs/development/libraries/libbsd/cdefs.patch | 222 | ||||
-rw-r--r-- | pkgs/development/libraries/libbsd/default.nix | 10 | ||||
-rw-r--r-- | pkgs/development/libraries/libbsd/features.patch | 26 |
3 files changed, 256 insertions, 2 deletions
diff --git a/pkgs/development/libraries/libbsd/cdefs.patch b/pkgs/development/libraries/libbsd/cdefs.patch new file mode 100644 index 00000000000..81822654aeb --- /dev/null +++ b/pkgs/development/libraries/libbsd/cdefs.patch @@ -0,0 +1,222 @@ +From 11ec8f1e5dfa1c10e0c9fb94879b6f5b96ba52dd Mon Sep 17 00:00:00 2001 +From: Guillem Jover <guillem@hadrons.org> +Date: Tue, 6 Mar 2018 01:41:35 +0100 +Subject: Handle systems missing <sys/cdefs.h> + +This is a non-portable header, and we cannot expect it to be provided by +the system libc (e.g. musl). We just need and rely on declaration that +we have defined ourselves in our own <bsd/sys/cdefs.h>. So we switch to +only ever assume that. + +Fixes: https://bugs.freedesktop.org/105281 +--- + include/bsd/libutil.h | 4 ++++ + include/bsd/md5.h | 4 ++++ + include/bsd/nlist.h | 4 ++++ + include/bsd/readpassphrase.h | 4 ++++ + include/bsd/stdlib.h | 4 ++++ + include/bsd/string.h | 4 ++++ + include/bsd/stringlist.h | 5 +++++ + include/bsd/sys/queue.h | 4 ++++ + include/bsd/sys/tree.h | 4 ++++ + include/bsd/timeconv.h | 4 ++++ + include/bsd/vis.h | 4 ++++ + include/bsd/wchar.h | 4 ++++ + 12 files changed, 49 insertions(+) + +diff --git a/include/bsd/libutil.h b/include/bsd/libutil.h +index 45b3b15..ccca29a 100644 +--- a/include/bsd/libutil.h ++++ b/include/bsd/libutil.h +@@ -40,7 +40,11 @@ + #define LIBBSD_LIBUTIL_H + + #include <features.h> ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <sys/types.h> + #include <stdint.h> + #include <stdio.h> +diff --git a/include/bsd/md5.h b/include/bsd/md5.h +index 5f3ae46..bf36a30 100644 +--- a/include/bsd/md5.h ++++ b/include/bsd/md5.h +@@ -27,7 +27,11 @@ typedef struct MD5Context { + uint8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */ + } MD5_CTX; + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <sys/types.h> + + __BEGIN_DECLS +diff --git a/include/bsd/nlist.h b/include/bsd/nlist.h +index cb297e8..8767117 100644 +--- a/include/bsd/nlist.h ++++ b/include/bsd/nlist.h +@@ -27,7 +27,11 @@ + #ifndef LIBBSD_NLIST_H + #define LIBBSD_NLIST_H + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + + struct nlist { + union { +diff --git a/include/bsd/readpassphrase.h b/include/bsd/readpassphrase.h +index 14744b8..5eb8021 100644 +--- a/include/bsd/readpassphrase.h ++++ b/include/bsd/readpassphrase.h +@@ -31,7 +31,11 @@ + #define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */ + #define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */ + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <sys/types.h> + + __BEGIN_DECLS +diff --git a/include/bsd/stdlib.h b/include/bsd/stdlib.h +index ebc9638..8d33d1f 100644 +--- a/include/bsd/stdlib.h ++++ b/include/bsd/stdlib.h +@@ -42,7 +42,11 @@ + #ifndef LIBBSD_STDLIB_H + #define LIBBSD_STDLIB_H + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <sys/stat.h> + #include <stdint.h> + +diff --git a/include/bsd/string.h b/include/bsd/string.h +index 6798bf6..29097f6 100644 +--- a/include/bsd/string.h ++++ b/include/bsd/string.h +@@ -33,7 +33,11 @@ + #ifndef LIBBSD_STRING_H + #define LIBBSD_STRING_H + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <sys/types.h> + + __BEGIN_DECLS +diff --git a/include/bsd/stringlist.h b/include/bsd/stringlist.h +index ff30cac..dd71496 100644 +--- a/include/bsd/stringlist.h ++++ b/include/bsd/stringlist.h +@@ -31,7 +31,12 @@ + + #ifndef LIBBSD_STRINGLIST_H + #define LIBBSD_STRINGLIST_H ++ ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <sys/types.h> + + /* +diff --git a/include/bsd/sys/queue.h b/include/bsd/sys/queue.h +index 4a94ea7..ac00026 100644 +--- a/include/bsd/sys/queue.h ++++ b/include/bsd/sys/queue.h +@@ -33,7 +33,11 @@ + #ifndef LIBBSD_SYS_QUEUE_H + #define LIBBSD_SYS_QUEUE_H + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + + /* + * This file defines four types of data structures: singly-linked lists, +diff --git a/include/bsd/sys/tree.h b/include/bsd/sys/tree.h +index 628bec0..325b382 100644 +--- a/include/bsd/sys/tree.h ++++ b/include/bsd/sys/tree.h +@@ -30,7 +30,11 @@ + #ifndef LIBBSD_SYS_TREE_H + #define LIBBSD_SYS_TREE_H + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + + /* + * This file defines data structures for different types of trees: +diff --git a/include/bsd/timeconv.h b/include/bsd/timeconv.h +index e2a2c55..a426bd3 100644 +--- a/include/bsd/timeconv.h ++++ b/include/bsd/timeconv.h +@@ -41,7 +41,11 @@ + #ifndef LIBBSD_TIMECONV_H + #define LIBBSD_TIMECONV_H + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <stdint.h> + #include <time.h> + +diff --git a/include/bsd/vis.h b/include/bsd/vis.h +index 970dfdd..ab5430c 100644 +--- a/include/bsd/vis.h ++++ b/include/bsd/vis.h +@@ -72,7 +72,11 @@ + */ + #define UNVIS_END 1 /* no more characters */ + ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + + __BEGIN_DECLS + char *vis(char *, int, int, int); +diff --git a/include/bsd/wchar.h b/include/bsd/wchar.h +index 33a500e..7216503 100644 +--- a/include/bsd/wchar.h ++++ b/include/bsd/wchar.h +@@ -40,7 +40,11 @@ + #define LIBBSD_WCHAR_H + + #include <stddef.h> ++#ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> ++#else ++#include <bsd/sys/cdefs.h> ++#endif + #include <sys/types.h> + + __BEGIN_DECLS +-- +cgit v1.1 + diff --git a/pkgs/development/libraries/libbsd/default.nix b/pkgs/development/libraries/libbsd/default.nix index 52d038e3d6b..ff9412ceb58 100644 --- a/pkgs/development/libraries/libbsd/default.nix +++ b/pkgs/development/libraries/libbsd/default.nix @@ -15,8 +15,14 @@ stdenv.mkDerivation rec { patches = stdenv.lib.optional stdenv.isDarwin ./darwin.patch # Suitable for all, but limited to musl to avoid rebuilds - # https://cgit.freedesktop.org/libbsd/patch/?id=1f8a3f7bccfc84b195218ad0086ebd57049c3490 - ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./non-glibc.patch; + ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + # https://cgit.freedesktop.org/libbsd/commit/?id=1f8a3f7bccfc84b195218ad0086ebd57049c3490 + ./non-glibc.patch + # https://cgit.freedesktop.org/libbsd/commit/?id=11ec8f1e5dfa1c10e0c9fb94879b6f5b96ba52dd + ./cdefs.patch + # https://cgit.freedesktop.org/libbsd/commit/?id=b20272f5a966333b49fdf2bda797e2a9f0227404 + ./features.patch + ]; meta = with stdenv.lib; { description = "Common functions found on BSD systems"; diff --git a/pkgs/development/libraries/libbsd/features.patch b/pkgs/development/libraries/libbsd/features.patch new file mode 100644 index 00000000000..66bd1e9232b --- /dev/null +++ b/pkgs/development/libraries/libbsd/features.patch @@ -0,0 +1,26 @@ +From b20272f5a966333b49fdf2bda797e2a9f0227404 Mon Sep 17 00:00:00 2001 +From: Guillem Jover <guillem@hadrons.org> +Date: Tue, 6 Mar 2018 01:42:52 +0100 +Subject: Remove <features.h> inclusion from <bsd/libutil.h> + +This is a non-portable header, and we should not assume it is present. +Let the first system header pull it in if needed. +--- + include/bsd/libutil.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/include/bsd/libutil.h b/include/bsd/libutil.h +index ccca29a..e5f148a 100644 +--- a/include/bsd/libutil.h ++++ b/include/bsd/libutil.h +@@ -39,7 +39,6 @@ + #ifndef LIBBSD_LIBUTIL_H + #define LIBBSD_LIBUTIL_H + +-#include <features.h> + #ifdef LIBBSD_OVERLAY + #include <sys/cdefs.h> + #else +-- +cgit v1.1 + |