at 24.11-pre 63 lines 1.4 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchPypi, 5 pythonOlder, 6 ncurses, 7 importlib-metadata, 8 setuptools, 9 wheel, 10 patchelf, 11}: 12 13buildPythonPackage rec { 14 pname = "cx-freeze"; 15 version = "6.15.16"; 16 pyproject = true; 17 18 disabled = pythonOlder "3.8"; 19 20 src = fetchPypi { 21 pname = "cx_Freeze"; 22 inherit version; 23 hash = "sha256-xjmRiG/ypTGfjw0HwDSaa74aZbXzIPi5JDiI5jyaSiI="; 24 }; 25 26 nativeBuildInputs = [ 27 setuptools 28 wheel 29 ]; 30 31 propagatedBuildInputs = [ 32 importlib-metadata # upstream has this for 3.8 as well 33 ncurses 34 setuptools 35 ]; 36 37 postPatch = '' 38 # timestamp need to come after 1980 for zipfiles and nix store is set to epoch 39 substituteInPlace cx_Freeze/freezer.py \ 40 --replace "st.st_mtime" "time.time()" 41 42 sed -i /patchelf/d pyproject.toml 43 ''; 44 45 makeWrapperArgs = [ 46 "--prefix" 47 "PATH" 48 ":" 49 (lib.makeBinPath [ patchelf ]) 50 ]; 51 52 # fails to find Console even though it exists on python 3.x 53 doCheck = false; 54 55 meta = with lib; { 56 description = "A set of scripts and modules for freezing Python scripts into executables"; 57 homepage = "https://marcelotduarte.github.io/cx_Freeze/"; 58 changelog = "https://github.com/marcelotduarte/cx_Freeze/releases/tag/${version}"; 59 license = licenses.psfl; 60 maintainers = with maintainers; [ ]; 61 mainProgram = "cxfreeze"; 62 }; 63}