cpython: fix permissions on venv activation scripts

Previously these ended up without u+w permissions which meant they could
not be regenerated, which was hugely annoying when these venvs were for
example created and recreated in a nix-shell.
launchpad/nixpkgs/master
Martin Weinelt 3 years ago
parent 13725621d4
commit 4fa69858d9
No known key found for this signature in database
GPG Key ID: 87C1E9888F856759
  1. 4
      pkgs/development/interpreters/python/cpython/default.nix
  2. 13
      pkgs/development/interpreters/python/cpython/virtualenv-permissions.patch

@ -190,6 +190,10 @@ in with passthru; stdenv.mkDerivation {
# (since it will do a futile invocation of gcc (!) to find
# libuuid, slowing down program startup a lot).
(./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch")
# Make sure that the virtualenv activation scripts are
# owner-writable, so venvs can be recreated without permission
# errors.
./virtualenv-permissions.patch
] ++ optionals mimetypesSupport [
# Make the mimetypes module refer to the right file
./mimetypes.patch

@ -0,0 +1,13 @@
diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
index caa7285..ad666ac 100644
--- a/Lib/venv/__init__.py
+++ b/Lib/venv/__init__.py
@@ -379,7 +379,7 @@ class EnvBuilder:
if data is not None:
with open(dstfile, 'wb') as f:
f.write(data)
- shutil.copymode(srcfile, dstfile)
+ os.chmod(dstfile, 0o644)
def create(env_dir, system_site_packages=False, clear=False,
Loading…
Cancel
Save