python3Packages.pip: allow setting reproducible temporary directory via NIX_PIP_INSTALL_TMPDIR
This commit is contained in:
parent
ae1584dc98
commit
aedbade43e
|
@ -11,7 +11,9 @@ pipInstallPhase() {
|
|||
export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH"
|
||||
|
||||
pushd dist || return 1
|
||||
@pythonInterpreter@ -m pip install ./*.whl --no-index --prefix="$out" --no-cache $pipInstallFlags --build tmpbuild
|
||||
mkdir tmpbuild
|
||||
NIX_PIP_INSTALL_TMPDIR=tmpbuild @pythonInterpreter@ -m pip install ./*.whl --no-index --prefix="$out" --no-cache $pipInstallFlags
|
||||
rm -rf tmpbuild
|
||||
popd || return 1
|
||||
|
||||
runHook postInstall
|
||||
|
|
|
@ -25,6 +25,10 @@ buildPythonPackage rec {
|
|||
name = "${pname}-${version}-source";
|
||||
};
|
||||
|
||||
# Remove when solved https://github.com/NixOS/nixpkgs/issues/81441
|
||||
# Also update pkgs/development/interpreters/python/hooks/pip-install-hook.sh accordingly
|
||||
patches = [ ./reproducible.patch ];
|
||||
|
||||
nativeBuildInputs = [ bootstrapped-pip ];
|
||||
|
||||
# pip detects that we already have bootstrapped_pip "installed", so we need
|
||||
|
|
13
pkgs/development/python-modules/pip/reproducible.patch
Normal file
13
pkgs/development/python-modules/pip/reproducible.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/pip/_internal/operations/install/wheel.py b/src/pip/_internal/operations/install/wheel.py
|
||||
index e7315ee4..4e36b03d 100644
|
||||
--- a/src/pip/_internal/operations/install/wheel.py
|
||||
+++ b/src/pip/_internal/operations/install/wheel.py
|
||||
@@ -615,6 +615,8 @@ def install_wheel(
|
||||
direct_url=None, # type: Optional[DirectUrl]
|
||||
):
|
||||
# type: (...) -> None
|
||||
+ _temp_dir_for_testing = (
|
||||
+ _temp_dir_for_testing or os.environ.get("NIX_PIP_INSTALL_TMPDIR"))
|
||||
with TempDirectory(
|
||||
path=_temp_dir_for_testing, kind="unpacked-wheel"
|
||||
) as unpacked_dir, ZipFile(wheel_path, allowZip64=True) as z:
|
Loading…
Reference in a new issue