about summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
authorFrederik Rietdijk <freddyrietdijk@fridh.nl>2017-12-11 09:45:50 +0100
committerGitHub <noreply@github.com>2017-12-11 09:45:50 +0100
commit44f46a32930b08fcdf42e3670d5c476e191be1a5 (patch)
treec1bd997404a4d71e78ec16d1ba12a8e027b8c3d2 /pkgs/development/interpreters
parent9f1ab7cac7186adb1494e0ac31b7da2419f98cdd (diff)
parentd945b3e53b14b7e09229e26d5e343482be1dd3e5 (diff)
downloadnixlib-44f46a32930b08fcdf42e3670d5c476e191be1a5.tar
nixlib-44f46a32930b08fcdf42e3670d5c476e191be1a5.tar.gz
nixlib-44f46a32930b08fcdf42e3670d5c476e191be1a5.tar.bz2
nixlib-44f46a32930b08fcdf42e3670d5c476e191be1a5.tar.lz
nixlib-44f46a32930b08fcdf42e3670d5c476e191be1a5.tar.xz
nixlib-44f46a32930b08fcdf42e3670d5c476e191be1a5.tar.zst
nixlib-44f46a32930b08fcdf42e3670d5c476e191be1a5.zip
Merge pull request #32542 from FRidh/bytecode
buildPythonPackage: remove bytecode from bin folder
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 a0cac7d1ddda..1fd6745093bb 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.