From 7a2e2458a6b6b367c96bd3ea0124c77da9fc9cc8 Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Tue, 5 Sep 2023 00:11:56 -0400 Subject: [PATCH] mariadb-connector-odbc: fix build with clang 16 on Darwin * Use libkrb5 on Darwin; * Use nixpkgs zlib instead of vendored zlib to fix call to undeclared function `close`; and * Include `unistd.h` for `sleep`. --- .../libraries/unixODBCDrivers/default.nix | 9 ++++++++- .../mariadb-connector-odbc-unistd.patch | 12 ++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/unixODBCDrivers/mariadb-connector-odbc-unistd.patch diff --git a/pkgs/development/libraries/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix index d29ea557b1f2b..e2a891fb58f9d 100644 --- a/pkgs/development/libraries/unixODBCDrivers/default.nix +++ b/pkgs/development/libraries/unixODBCDrivers/default.nix @@ -41,8 +41,14 @@ fetchSubmodules = true; }; + patches = [ + # Fix `call to undeclared function 'sleep'` with clang 16 + ./mariadb-connector-odbc-unistd.patch + ]; + nativeBuildInputs = [ cmake ]; - buildInputs = [ unixODBC openssl libiconv ]; + buildInputs = [ unixODBC openssl libiconv zlib ] + ++ lib.optionals stdenv.isDarwin [ libkrb5 ]; preConfigure = '' # we don't want to build a .pkg @@ -52,6 +58,7 @@ ''; cmakeFlags = [ + "-DWITH_EXTERNAL_ZLIB=ON" "-DODBC_LIB_DIR=${lib.getLib unixODBC}/lib" "-DODBC_INCLUDE_DIR=${lib.getDev unixODBC}/include" "-DWITH_OPENSSL=ON" diff --git a/pkgs/development/libraries/unixODBCDrivers/mariadb-connector-odbc-unistd.patch b/pkgs/development/libraries/unixODBCDrivers/mariadb-connector-odbc-unistd.patch new file mode 100644 index 0000000000000..8c976885eb626 --- /dev/null +++ b/pkgs/development/libraries/unixODBCDrivers/mariadb-connector-odbc-unistd.patch @@ -0,0 +1,12 @@ +diff -ur a/test/use_result.c b/test/use_result.c +--- a/test/use_result.c 1969-12-31 19:00:01.000000000 -0500 ++++ b/test/use_result.c 2023-09-05 00:08:12.979889343 -0400 +@@ -23,6 +23,8 @@ + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include ++ + #include "tap.h" + + SQLINTEGER my_max_rows= 100;