From 2d0e6729959b0c9d0114abc61baa57ac52546c93 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 14 Sep 2025 00:58:43 +0200 Subject: [PATCH] diagrams-builder: wrap all available backend executables This way, we no longer need to track what backends we expect to be enabled which the diagrams-builder wrapper derivation doesn't control. --- .../graphics/diagrams-builder/default.nix | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/graphics/diagrams-builder/default.nix b/pkgs/tools/graphics/diagrams-builder/default.nix index e7435f5ebd36..132b840c20db 100644 --- a/pkgs/tools/graphics/diagrams-builder/default.nix +++ b/pkgs/tools/graphics/diagrams-builder/default.nix @@ -25,18 +25,26 @@ let wrappedGhc = ghcWithPackages (self: [ diagrams-builder ] ++ extraPackages self); ghc = lib.getExe' wrappedGhc "ghc"; - exeWrapper = backend: '' - makeWrapper \ - "${diagrams-builder}/bin/diagrams-builder-${backend}" "$out/bin/diagrams-builder-${backend}" \ - --set NIX_GHC ${ghc} \ - --set NIX_GHC_LIBDIR "$(${ghc} --print-libdir)" - ''; + exeWrapper = + backend: + let + exe = "${diagrams-builder}/bin/diagrams-builder-${backend}"; + in + '' + test ! -x "${exe}" || \ + makeWrapper "${exe}" \ + "$out/bin/diagrams-builder-${backend}" \ + --set NIX_GHC ${ghc} \ + --set NIX_GHC_LIBDIR "$(${ghc} --print-libdir)" + ''; - backends = [ + # Needs to match executable, suffix, not flag name + allBackends = [ "svg" "ps" - # See ../../../development/haskell-modules/configuration-common.nix:/diagrams-builder.= - # "cairo" + "cairo" + "rasterific" + "pgf" ]; in @@ -46,7 +54,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ makeWrapper ]; - buildCommand = lib.concatStringsSep "\n" (map exeWrapper backends); + buildCommand = lib.concatStringsSep "\n" (map exeWrapper allBackends); # Will be faster to build the wrapper locally then to fetch it from a binary cache. preferLocalBuild = true;