From d94ccbdd12ed948ec8adbd4a1826683f0d30e745 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 11 Jul 2024 23:39:09 +0200 Subject: [PATCH] passExtensions.pass-audit: get rid of pythonEnv It seems a little odd to first generate an interpreter pointing to an environment and then building a package from it. This commit alters the build process so that * dependencies are listed explicitly as in any normal python build. * a PYTHONPATH is then generated out of all dependencies and $out. This is injected into the package's entrypoint, the `audit.bash`. --- .../pass/extensions/audit/default.nix | 29 +++++++++---------- .../security/pass/extensions/default.nix | 6 ++-- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/pkgs/tools/security/pass/extensions/audit/default.nix b/pkgs/tools/security/pass/extensions/audit/default.nix index c8e24356797d..d3f196a20563 100644 --- a/pkgs/tools/security/pass/extensions/audit/default.nix +++ b/pkgs/tools/security/pass/extensions/audit/default.nix @@ -3,19 +3,11 @@ stdenv, pass, fetchFromGitHub, - pythonPackages, + python3, gnupg, }: -let - pythonEnv = pythonPackages.python.withPackages (p: [ - p.requests - p.setuptools - p.zxcvbn - ]); - -in -pythonPackages.buildPythonApplication rec { +python3.pkgs.buildPythonApplication rec { pname = "pass-audit"; version = "1.2"; pyproject = true; @@ -34,7 +26,7 @@ pythonPackages.buildPythonApplication rec { postPatch = '' substituteInPlace audit.bash \ - --replace-fail 'python3' "${pythonEnv.interpreter}" + --replace-fail python3 "${lib.getExe python3}" rm Makefile patchShebangs audit.bash ''; @@ -44,26 +36,31 @@ pythonPackages.buildPythonApplication rec { "man" ]; - build-system = with pythonPackages; [ setuptools ]; - dependencies = [ pythonEnv ]; + build-system = with python3.pkgs; [ setuptools ]; + dependencies = with python3.pkgs; [ + requests + setuptools + zxcvbn + ]; # Tests freeze on darwin with: pass-audit-1.1 (checkPhase): EOFError doCheck = !stdenv.isDarwin; nativeCheckInputs = [ - pythonPackages.green + python3.pkgs.green pass gnupg ]; checkPhase = '' - ${pythonEnv.interpreter} -m green -q + python3 -m green -q ''; postInstall = '' mkdir -p $out/lib/password-store/extensions install -m777 audit.bash $out/lib/password-store/extensions/audit.bash cp -r share $out/ + buildPythonPath "$out $dependencies" wrapProgram $out/lib/password-store/extensions/audit.bash \ - --prefix PYTHONPATH : "$out/${pythonEnv.sitePackages}" \ + --prefix PYTHONPATH : "$PYTHONPATH" \ --run "export COMMAND" ''; diff --git a/pkgs/tools/security/pass/extensions/default.nix b/pkgs/tools/security/pass/extensions/default.nix index b9c45a1096d3..dfb5dfa35bd0 100644 --- a/pkgs/tools/security/pass/extensions/default.nix +++ b/pkgs/tools/security/pass/extensions/default.nix @@ -1,13 +1,11 @@ { pkgs, ... }: let - inherit (pkgs) callPackage python3Packages; + inherit (pkgs) callPackage; in { - pass-audit = callPackage ./audit { - pythonPackages = python3Packages; - }; + pass-audit = callPackage ./audit {}; pass-checkup = callPackage ./checkup.nix {}; pass-import = callPackage ./import.nix {}; pass-otp = callPackage ./otp.nix {};