summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2017-12-10 15:41:05 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2017-12-10 16:01:09 +0100
commitd945b3e53b14b7e09229e26d5e343482be1dd3e5 (patch)
tree6deef532da282f7a4372499011981617c765b0e2 /pkgs/development/interpreters
parent926aaa48702a1a18c1179b72a8832f25842401ca (diff)
downloadnixpkgs-d945b3e53b14b7e09229e26d5e343482be1dd3e5.tar
nixpkgs-d945b3e53b14b7e09229e26d5e343482be1dd3e5.tar.gz
nixpkgs-d945b3e53b14b7e09229e26d5e343482be1dd3e5.tar.bz2
nixpkgs-d945b3e53b14b7e09229e26d5e343482be1dd3e5.tar.lz
nixpkgs-d945b3e53b14b7e09229e26d5e343482be1dd3e5.tar.xz
nixpkgs-d945b3e53b14b7e09229e26d5e343482be1dd3e5.tar.zst
nixpkgs-d945b3e53b14b7e09229e26d5e343482be1dd3e5.zip
buildPythonPackage: remove bytecode from bin folder
When a Python script has the extension `.py`, bytecode is generated.
Typically, executables in bin have no extension, so no bytecode is
generated. However, some packages do provide executables with
extensions, and thus bytecode is generated.
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r--pkgs/development/interpreters/python/mk-python-derivation.nix11
1 files changed, 11 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix
index a0cac7d1ddd..1fd6745093b 100644
--- a/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -40,6 +40,12 @@
 # Skip wrapping of python programs altogether
 , dontWrapPythonPrograms ? false
 
+# Remove bytecode from bin folder.
+# When a Python script has the extension `.py`, bytecode is generated
+# Typically, executables in bin have no extension, so no bytecode is generated.
+# However, some packages do provide executables with extensions, and thus bytecode is generated.
+, removeBinBytecode ? true
+
 , meta ? {}
 
 , passthru ? {}
@@ -77,6 +83,11 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs [
 
   postFixup = lib.optionalString (!dontWrapPythonPrograms) ''
     wrapPythonPrograms
+  '' + lib.optionalString removeBinBytecode ''
+    if [ -d "$out/bin" ]; then
+      rm -rf "$out/bin/__pycache__"                 # Python 3
+      find "$out/bin" -type f -name "*.pyc" -delete # Python 2
+    fi
   '' + lib.optionalString catchConflicts ''
     # 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.