From dfd0be8cd2d8d2c7156e4a74a2ca426315351460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Tue, 27 Jan 2026 20:52:41 +0100 Subject: [PATCH] buildFHSEnv: don't overwrite env vars to /usr prefix Overwriting needlessly breaks using buildFHSEnv programs inside other derivations / build envs. Fix it by prepending the FHS paths instead. (I think the FHS paths should have the lowest priority, by suffixing them, but prefixing is a less disruptive change, so do that for now.) Test setup: $ NIXPKGS_ALLOW_UNFREE=1 nix-build -A quartus-prime-lite Before: $ NIX_CFLAGS_COMPILE="-I /path" NIX_CFLAGS_LINK="-L /path" NIX_LDFLAGS="-L /path" PKG_CONFIG_PATH=/path ACLOCAL_PATH=/path ./result/bin/quartus-prime-lite bash -c 'printf "NIX_CFLAGS_COMPILE=$NIX_CFLAGS_COMPILE\nNIX_CFLAGS_LINK=$NIX_CFLAGS_LINK\nNIX_LDFLAGS=$NIX_LDFLAGS\nPKG_CONFIG_PATH=$PKG_CONFIG_PATH\nACLOCAL_PATH=$ACLOCAL_PATH\n"' NIX_CFLAGS_COMPILE=-idirafter /usr/include NIX_CFLAGS_LINK=-L/usr/lib -L/usr/lib32 NIX_LDFLAGS=-L/usr/lib -L/usr/lib32 PKG_CONFIG_PATH=/usr/lib/pkgconfig ACLOCAL_PATH=/usr/share/aclocal After: $ NIX_CFLAGS_COMPILE="-I /path" NIX_CFLAGS_LINK="-L /path" NIX_LDFLAGS="-L /path" PKG_CONFIG_PATH=/path ACLOCAL_PATH=/path ./result/bin/quartus-prime-lite bash -c 'printf "NIX_CFLAGS_COMPILE=$NIX_CFLAGS_COMPILE\nNIX_CFLAGS_LINK=$NIX_CFLAGS_LINK\nNIX_LDFLAGS=$NIX_LDFLAGS\nPKG_CONFIG_PATH=$PKG_CONFIG_PATH\nACLOCAL_PATH=$ACLOCAL_PATH\n"' NIX_CFLAGS_COMPILE=-idirafter /usr/include -I /path NIX_CFLAGS_LINK=-L/usr/lib -L/usr/lib32 -L /path NIX_LDFLAGS=-L/usr/lib -L/usr/lib32 -L /path PKG_CONFIG_PATH=/usr/lib/pkgconfig:/path ACLOCAL_PATH=/usr/share/aclocal:/path (I also included GST_PLUGIN_SYSTEM_PATH_1_0, although it's not a "build" oriented variable.) --- .../build-fhsenv-bubblewrap/buildFHSEnv.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix b/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix index de9afda8d1bb..34d1e9c2fa1f 100644 --- a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix +++ b/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix @@ -125,15 +125,16 @@ let unset NIX_ENFORCE_PURITY export NIX_BINTOOLS_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1 export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1 - export NIX_CFLAGS_COMPILE='-idirafter /usr/include' - export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32' - export NIX_LDFLAGS='-L/usr/lib -L/usr/lib32' - export PKG_CONFIG_PATH=/usr/lib/pkgconfig - export ACLOCAL_PATH=/usr/share/aclocal + export NIX_CFLAGS_COMPILE="-idirafter /usr/include"''${NIX_CFLAGS_COMPILE:+" $NIX_CFLAGS_COMPILE"} + export NIX_CFLAGS_LINK="-L/usr/lib -L/usr/lib32"''${NIX_CFLAGS_LINK:+" $NIX_CFLAGS_LINK"} + export NIX_LDFLAGS="-L/usr/lib -L/usr/lib32"''${NIX_LDFLAGS:+" $NIX_LDFLAGS"} + export PKG_CONFIG_PATH=/usr/lib/pkgconfig''${PKG_CONFIG_PATH:+":$PKG_CONFIG_PATH"} + export ACLOCAL_PATH=/usr/share/aclocal''${ACLOCAL_PATH:+":$ACLOCAL_PATH"} # GStreamer searches for plugins relative to its real binary's location # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/bd97973ce0f2c5495bcda5cccd4f7ef7dcb7febc - export GST_PLUGIN_SYSTEM_PATH_1_0=/usr/lib/gstreamer-1.0:/usr/lib32/gstreamer-1.0 + export GST_PLUGIN_SYSTEM_PATH_1_0=/usr/lib/gstreamer-1.0:/usr/lib32/gstreamer-1.0''${GST_PLUGIN_SYSTEM_PATH_1_0:+":$GST_PLUGIN_SYSTEM_PATH_1_0"} + ${profile} '';