diff --git a/pkgs/tools/text/xml/xmlstarlet/default.nix b/pkgs/tools/text/xml/xmlstarlet/default.nix index d76e9d1449647..8f382d3bcd5db 100644 --- a/pkgs/tools/text/xml/xmlstarlet/default.nix +++ b/pkgs/tools/text/xml/xmlstarlet/default.nix @@ -12,6 +12,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config ]; buildInputs = [ libxml2 libxslt ]; + patches = [ + # Fixes an incompatible function pointer error with clang 16. + ./fix-incompatible-function-pointer.patch + ]; + preConfigure = '' export LIBXSLT_PREFIX=${libxslt.dev} diff --git a/pkgs/tools/text/xml/xmlstarlet/fix-incompatible-function-pointer.patch b/pkgs/tools/text/xml/xmlstarlet/fix-incompatible-function-pointer.patch new file mode 100644 index 0000000000000..a0818731c217c --- /dev/null +++ b/pkgs/tools/text/xml/xmlstarlet/fix-incompatible-function-pointer.patch @@ -0,0 +1,11 @@ +--- a/src/xml_elem.c 2012-08-12 09:18:59.000000000 -0600 ++++ b/src/xml_elem.c 2023-07-11 13:17:14.220809280 -0600 +@@ -186,7 +186,7 @@ + * put @name into @data->array[@data->offset] + */ + static void +-hash_key_put(void *payload, void *data, xmlChar *name) ++hash_key_put(void *payload, void *data, const xmlChar *name) + { + ArrayDest *dest = data; + dest->array[dest->offset++] = name;