python: Move catch_conflicts.py into subdirectory (#23600)

Python does add the script's directory into "sys.path". For the case of
"catch_conflicts.py" this means "/nix/store" is added to "sys.path". This can
result in very long delays if the store contains a lot of entries.
wip/yesman
Johannes Bornhold 7 years ago committed by Vladimír Čunát
parent f44ea1fec2
commit 76213d102c
  1. 13
      pkgs/development/interpreters/python/catch_conflicts/README.md
  2. 0
      pkgs/development/interpreters/python/catch_conflicts/catch_conflicts.py
  3. 9
      pkgs/development/interpreters/python/mk-python-derivation.nix

@ -0,0 +1,13 @@
catch_conflicts.py
==================
The file catch_conflicts.py is in a subdirectory because, if it isn't, the
/nix/store/ directory is added to sys.path causing a delay when building.
Pointers:
- https://docs.python.org/3/library/sys.html#sys.path
- https://github.com/NixOS/nixpkgs/pull/23600

@ -79,9 +79,10 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs ["disabled"] // {
postFixup = ''
wrapPythonPrograms
'' + lib.optionalString catchConflicts ''
# check if we have two packages with the same name in closure and fail
# this shouldn't happen, something went wrong with dependencies specs
${python.interpreter} ${./catch_conflicts.py}
# Check if we have two packages with the same name in the closure and fail.
# If this happens, something went wrong with the dependencies specs.
# Intentionally kept in a subdirectory, see catch_conflicts/README.md.
${python.interpreter} ${./catch_conflicts}/catch_conflicts.py
'' + attrs.postFixup or '''';
passthru = {
@ -98,5 +99,3 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs ["disabled"] // {
isBuildPythonPackage = python.meta.platforms;
};
})

Loading…
Cancel
Save