Loading pkgs/development/python-modules/cx-freeze/default.nix +107 −28 Original line number Diff line number Diff line Loading @@ -2,39 +2,48 @@ lib, stdenv, buildPythonPackage, distutils, fetchPypi, pythonOlder, ncurses, packaging, fetchFromGitHub, # build-system setuptools, # dependencies filelock, patchelf, packaging, tomli, importlib-metadata, typing-extensions, distutils, pythonOlder, ncurses, patchelf, dmgbuild, # tests ensureNewerSourcesForZipFilesHook, pytest-mock, pytestCheckHook, versionCheckHook, writableTmpDirAsHomeHook, }: buildPythonPackage rec { pname = "cx-freeze"; version = "8.0.0"; version = "8.2.0"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { pname = "cx_freeze"; inherit version; hash = "sha256-gOH4e7FS7Q+X98ZDXgI31Eqt6Zl5knxGJ3cTIqJdVQ0="; src = fetchFromGitHub { owner = "marcelotduarte"; repo = "cx_Freeze"; tag = version; hash = "sha256-xrSMW7z3XblwAuaC18Rju/XuBZvU+5+xAW+MO6u32EE="; }; postPatch = '' sed -i /patchelf/d pyproject.toml # Build system requirements substituteInPlace pyproject.toml \ --replace-fail "setuptools>=70.1,<76" "setuptools" ''; patches = [ # ValueError: '/nix/store/33ajdw6s479bg0ydhk0zqrxi6p989gbl-python3.12-pytest-8.3.5/lib/python3.12/site-packages' # is not in the subpath of '/nix/store/fqm9bqqlmaqqr02qbalm1bazp810qfiw-python3-3.12.9' ./fix-tests-relative-path.patch ]; build-system = [ setuptools Loading @@ -42,9 +51,12 @@ buildPythonPackage rec { buildInputs = [ ncurses ]; pythonRemoveDeps = [ "patchelf" ]; dependencies = [ distutils filelock packaging setuptools ] Loading @@ -52,11 +64,11 @@ buildPythonPackage rec { tomli ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata typing-extensions ] ++ lib.optional stdenv.hostPlatform.isLinux filelock ++ lib.optional stdenv.hostPlatform.isDarwin dmgbuild; ++ lib.optionals stdenv.hostPlatform.isDarwin [ dmgbuild ]; makeWrapperArgs = [ "--prefix" Loading @@ -65,14 +77,81 @@ buildPythonPackage rec { (lib.makeBinPath [ patchelf ]) ]; # Fails to find Console even though it exists on python 3.x doCheck = false; pythonImportsCheck = [ "cx_Freeze" ]; nativeCheckInputs = [ pytest-mock pytestCheckHook writableTmpDirAsHomeHook versionCheckHook ]; versionCheckProgram = "${placeholder "out"}/bin/cxfreeze"; versionCheckProgramArg = "--version"; preCheck = '' rm -rf cx_Freeze ''; disabledTests = [ # Require internet access "test_bdist_appimage_target_name" "test_bdist_appimage_target_name_and_version" "test_bdist_appimage_target_name_and_version_none" # Try to install a module: ValueError: ZIP does not support timestamps before 1980 "test___main__" "test_bdist_appimage_simple" "test_bdist_appimage_skip_build" "test_bdist_deb_simple_pyproject" "test_bdist_rpm_simple_pyproject" "test_build" "test_build_constants" "test_build_exe_advanced" "test_build_exe_asmodule" "test_ctypes" "test_cxfreeze" "test_cxfreeze_debug_verbose" "test_cxfreeze_deprecated_behavior" "test_cxfreeze_deprecated_option" "test_cxfreeze_include_path" "test_cxfreeze_target_name_not_isidentifier" "test_excludes" "test_executable_namespace" "test_executable_rename" "test_executables" "test_freezer_zip_filename" "test_install" "test_install_pyproject" "test_multiprocessing" "test_not_found_icon" "test_parser" "test_sqlite" "test_ssl" "test_tz" "test_valid_icon" "test_zip_exclude_packages" "test_zip_include_packages" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # error: Path /nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/libpython3.12.dylib # is not a path referenced from DarwinFile "test_bdist_dmg" "test_bdist_dmg_custom_layout" "test_bdist_mac" "test_plist_items" # AssertionError: assert names != [] "test_freezer_default_bin_includes" ]; meta = with lib; { meta = { description = "Set of scripts and modules for freezing Python scripts into executables"; homepage = "https://marcelotduarte.github.io/cx_Freeze/"; homepage = "https://marcelotduarte.github.io/cx_Freeze"; changelog = "https://github.com/marcelotduarte/cx_Freeze/releases/tag/${version}"; license = licenses.psfl; license = lib.licenses.psfl; maintainers = [ ]; mainProgram = "cxfreeze"; }; Loading pkgs/development/python-modules/cx-freeze/fix-tests-relative-path.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/tests/conftest.py b/tests/conftest.py index 04400a17..1facf55d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -46,9 +46,7 @@ class TempPackage: # environment self.system_path: Path = Path(os.getcwd()) self.system_prefix: Path = Path(sys.prefix) - self.relative_site = Path(pytest.__file__).parent.parent.relative_to( - self.system_prefix - ) + self.relative_site = Path(pytest.__file__).resolve().parent.parent # make a temporary directory and set it as current name = request.node.name Loading
pkgs/development/python-modules/cx-freeze/default.nix +107 −28 Original line number Diff line number Diff line Loading @@ -2,39 +2,48 @@ lib, stdenv, buildPythonPackage, distutils, fetchPypi, pythonOlder, ncurses, packaging, fetchFromGitHub, # build-system setuptools, # dependencies filelock, patchelf, packaging, tomli, importlib-metadata, typing-extensions, distutils, pythonOlder, ncurses, patchelf, dmgbuild, # tests ensureNewerSourcesForZipFilesHook, pytest-mock, pytestCheckHook, versionCheckHook, writableTmpDirAsHomeHook, }: buildPythonPackage rec { pname = "cx-freeze"; version = "8.0.0"; version = "8.2.0"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { pname = "cx_freeze"; inherit version; hash = "sha256-gOH4e7FS7Q+X98ZDXgI31Eqt6Zl5knxGJ3cTIqJdVQ0="; src = fetchFromGitHub { owner = "marcelotduarte"; repo = "cx_Freeze"; tag = version; hash = "sha256-xrSMW7z3XblwAuaC18Rju/XuBZvU+5+xAW+MO6u32EE="; }; postPatch = '' sed -i /patchelf/d pyproject.toml # Build system requirements substituteInPlace pyproject.toml \ --replace-fail "setuptools>=70.1,<76" "setuptools" ''; patches = [ # ValueError: '/nix/store/33ajdw6s479bg0ydhk0zqrxi6p989gbl-python3.12-pytest-8.3.5/lib/python3.12/site-packages' # is not in the subpath of '/nix/store/fqm9bqqlmaqqr02qbalm1bazp810qfiw-python3-3.12.9' ./fix-tests-relative-path.patch ]; build-system = [ setuptools Loading @@ -42,9 +51,12 @@ buildPythonPackage rec { buildInputs = [ ncurses ]; pythonRemoveDeps = [ "patchelf" ]; dependencies = [ distutils filelock packaging setuptools ] Loading @@ -52,11 +64,11 @@ buildPythonPackage rec { tomli ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata typing-extensions ] ++ lib.optional stdenv.hostPlatform.isLinux filelock ++ lib.optional stdenv.hostPlatform.isDarwin dmgbuild; ++ lib.optionals stdenv.hostPlatform.isDarwin [ dmgbuild ]; makeWrapperArgs = [ "--prefix" Loading @@ -65,14 +77,81 @@ buildPythonPackage rec { (lib.makeBinPath [ patchelf ]) ]; # Fails to find Console even though it exists on python 3.x doCheck = false; pythonImportsCheck = [ "cx_Freeze" ]; nativeCheckInputs = [ pytest-mock pytestCheckHook writableTmpDirAsHomeHook versionCheckHook ]; versionCheckProgram = "${placeholder "out"}/bin/cxfreeze"; versionCheckProgramArg = "--version"; preCheck = '' rm -rf cx_Freeze ''; disabledTests = [ # Require internet access "test_bdist_appimage_target_name" "test_bdist_appimage_target_name_and_version" "test_bdist_appimage_target_name_and_version_none" # Try to install a module: ValueError: ZIP does not support timestamps before 1980 "test___main__" "test_bdist_appimage_simple" "test_bdist_appimage_skip_build" "test_bdist_deb_simple_pyproject" "test_bdist_rpm_simple_pyproject" "test_build" "test_build_constants" "test_build_exe_advanced" "test_build_exe_asmodule" "test_ctypes" "test_cxfreeze" "test_cxfreeze_debug_verbose" "test_cxfreeze_deprecated_behavior" "test_cxfreeze_deprecated_option" "test_cxfreeze_include_path" "test_cxfreeze_target_name_not_isidentifier" "test_excludes" "test_executable_namespace" "test_executable_rename" "test_executables" "test_freezer_zip_filename" "test_install" "test_install_pyproject" "test_multiprocessing" "test_not_found_icon" "test_parser" "test_sqlite" "test_ssl" "test_tz" "test_valid_icon" "test_zip_exclude_packages" "test_zip_include_packages" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # error: Path /nix/store/xzjghvsg4fhr2vv6h4scihsdrgk4i76w-python3-3.12.9/lib/libpython3.12.dylib # is not a path referenced from DarwinFile "test_bdist_dmg" "test_bdist_dmg_custom_layout" "test_bdist_mac" "test_plist_items" # AssertionError: assert names != [] "test_freezer_default_bin_includes" ]; meta = with lib; { meta = { description = "Set of scripts and modules for freezing Python scripts into executables"; homepage = "https://marcelotduarte.github.io/cx_Freeze/"; homepage = "https://marcelotduarte.github.io/cx_Freeze"; changelog = "https://github.com/marcelotduarte/cx_Freeze/releases/tag/${version}"; license = licenses.psfl; license = lib.licenses.psfl; maintainers = [ ]; mainProgram = "cxfreeze"; }; Loading
pkgs/development/python-modules/cx-freeze/fix-tests-relative-path.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/tests/conftest.py b/tests/conftest.py index 04400a17..1facf55d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -46,9 +46,7 @@ class TempPackage: # environment self.system_path: Path = Path(os.getcwd()) self.system_prefix: Path = Path(sys.prefix) - self.relative_site = Path(pytest.__file__).parent.parent.relative_to( - self.system_prefix - ) + self.relative_site = Path(pytest.__file__).resolve().parent.parent # make a temporary directory and set it as current name = request.node.name