diff --git a/pkgs/by-name/co/cowsql/37.patch b/pkgs/by-name/co/cowsql/37.patch new file mode 100644 index 000000000000..9f7eb84afc35 --- /dev/null +++ b/pkgs/by-name/co/cowsql/37.patch @@ -0,0 +1,57 @@ +From c0d7c99632ea2ee01066988708cbb41f335cbdc3 Mon Sep 17 00:00:00 2001 +From: Brahmajit Das +Date: Sat, 14 Jun 2025 00:18:38 +0530 +Subject: [PATCH] src/lib/serialize.h: don't define double as float_t + +libuv with commit 85b526f makes uv.h include math.h for the definitions +of NAN/INFINITY. That header also defines the ISO C standard float_t +type. Now that that definition is in scope, the cowsql definition in +src/lib/serialize.h conflicts with it. + +Fixes: 451cff63b29366237a9502823299b05bbff8662b +Closes: https://github.com/cowsql/cowsql/issues/35 +Signed-off-by: Brahmajit Das +--- + src/lib/serialize.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/lib/serialize.h b/src/lib/serialize.h +index 9fbd49c..a7f9147 100644 +--- a/src/lib/serialize.h ++++ b/src/lib/serialize.h +@@ -37,7 +37,7 @@ static_assert(sizeof(double) == sizeof(uint64_t), + * Basic type aliases to used by macro-based processing. + */ + typedef const char *text_t; +-typedef double float_t; ++typedef double cowsql_float; + typedef uv_buf_t blob_t; + + /** +@@ -143,7 +143,7 @@ COWSQL_INLINE size_t int64__sizeof(const int64_t *value) + return sizeof(int64_t); + } + +-COWSQL_INLINE size_t float__sizeof(const float_t *value) ++COWSQL_INLINE size_t float__sizeof(const cowsql_float *value) + { + (void)value; + return sizeof(double); +@@ -190,7 +190,7 @@ COWSQL_INLINE void int64__encode(const int64_t *value, void **cursor) + *cursor += sizeof(int64_t); + } + +-COWSQL_INLINE void float__encode(const float_t *value, void **cursor) ++COWSQL_INLINE void float__encode(const cowsql_float *value, void **cursor) + { + *(uint64_t *)(*cursor) = ByteFlipLe64(*(uint64_t *)value); + *cursor += sizeof(uint64_t); +@@ -273,7 +273,7 @@ COWSQL_INLINE int int64__decode(struct cursor *cursor, int64_t *value) + return 0; + } + +-COWSQL_INLINE int float__decode(struct cursor *cursor, float_t *value) ++COWSQL_INLINE int float__decode(struct cursor *cursor, cowsql_float *value) + { + size_t n = sizeof(double); + if (n > cursor->cap) { diff --git a/pkgs/by-name/co/cowsql/package.nix b/pkgs/by-name/co/cowsql/package.nix index e9fd022b8b74..f7e19e77757e 100644 --- a/pkgs/by-name/co/cowsql/package.nix +++ b/pkgs/by-name/co/cowsql/package.nix @@ -22,6 +22,12 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-rwTa9owtnkyI9OpUKLk6V7WbAkqlYucpGzPnHHvKW/A="; }; + patches = [ + # fix libuv changes. review removal in > 1.15.8 + # https://github.com/cowsql/cowsql/pull/37 + ./37.patch + ]; + nativeBuildInputs = [ autoreconfHook pkg-config