darktable: fix build by using Saxon XSLT processor

The build was failing due to inconsistent ID generation in XSLT
transformations. The generate_prefs.xsl uses generate-id() which
produces different IDs between function declarations and their usage
when using libxslt.

Switching to Saxon XSLT processor resolves this issue as it handles
generate-id() more consistently.

(cherry picked from commit 3bed64fa4e)
https://hydra.nixos.org/build/303791497
This commit is contained in:
Jörg Thalheim
2025-07-21 13:15:29 +02:00
committed by Vladimír Čunát
parent 6fc8e96d63
commit 89399783f5

View File

@@ -2,6 +2,7 @@
lib,
stdenv,
fetchurl,
runCommand,
# nativeBuildInputs
cmake,
@@ -12,6 +13,7 @@
perl,
pkg-config,
wrapGAppsHook3,
saxon,
# buildInputs
SDL2,
@@ -52,7 +54,6 @@
libtiff,
libwebp,
libxml2,
libxslt,
lua,
util-linux,
openexr,
@@ -79,6 +80,17 @@
gitUpdater,
}:
let
# Create a wrapper for saxon to provide saxon-xslt command
saxon-xslt = runCommand "saxon-xslt" { } ''
mkdir -p $out/bin
cat > $out/bin/saxon-xslt << 'EOF'
#!/bin/sh
exec ${saxon}/bin/saxon "$@"
EOF
chmod +x $out/bin/saxon-xslt
'';
in
stdenv.mkDerivation rec {
version = "5.0.1";
pname = "darktable";
@@ -97,6 +109,7 @@ stdenv.mkDerivation rec {
perl
pkg-config
wrapGAppsHook3
saxon-xslt # Use Saxon instead of libxslt to fix XSLT generate-id() consistency issues
];
buildInputs = [
@@ -137,7 +150,6 @@ stdenv.mkDerivation rec {
libtiff
libwebp
libxml2
libxslt
lua
openexr
openjpeg