From b698c5b82a23cc9c85a176ea415ca309e4f3ff86 Mon Sep 17 00:00:00 2001 From: Nickolaj Jepsen Date: Mon, 1 Dec 2025 13:19:48 +0100 Subject: [PATCH] fix: set LD_LIBRARY_PATH for python applications --- legacy_modules/dev/python.nix | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/legacy_modules/dev/python.nix b/legacy_modules/dev/python.nix index 28242cf..4ef0e4c 100644 --- a/legacy_modules/dev/python.nix +++ b/legacy_modules/dev/python.nix @@ -1,20 +1,28 @@ { pkgs, + lib, pkgsUnstable, ... -}: { +}: let + # Sets LD_LIBRARY_PATH for various python-based tools + # Some python packages requires shared libraries to build C extensions. + mkWrapLDLibraryPath = pkg: let + mainProgram = pkg.meta.mainProgram or pkg.pname or (lib.getName pkg); + in pkgs.symlinkJoin { + name = "${pkg.name}-wrapped"; + paths = [pkg]; + nativeBuildInputs = [pkgs.makeWrapper]; + postBuild = '' + wrapProgram $out/bin/${mainProgram} \ + --run "export LD_LIBRARY_PATH=\$NIX_LD_LIBRARY_PATH" + ''; + }; +in { environment.systemPackages = [ - (pkgs.symlinkJoin { - name = "uv"; - paths = [pkgsUnstable.uv]; - nativeBuildInputs = [pkgs.makeWrapper]; - postBuild = '' - wrapProgram $out/bin/uv \ - --run "export LD_LIBRARY_PATH=\$NIX_LD_LIBRARY_PATH" - ''; - }) - pkgsUnstable.rye - pkgs.python3 + (mkWrapLDLibraryPath pkgsUnstable.uv) + (mkWrapLDLibraryPath pkgsUnstable.rye) + (mkWrapLDLibraryPath pkgs.python3) + (mkWrapLDLibraryPath pkgsUnstable.prek) ]; # uv tool adds executable to $HOME/.local/bin, so add it to PATH