From 5822e39d24f120842da4c0e3a255740636707e78 Mon Sep 17 00:00:00 2001 From: Nicholas Serra Date: Thu, 29 Apr 2021 13:11:58 -0400 Subject: [PATCH 1/4] Set strict_timestamps=False when zip is called for isolated environment --- src/pip/_internal/build_env.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pip/_internal/build_env.py b/src/pip/_internal/build_env.py index cdf04324107..d93f940eddf 100644 --- a/src/pip/_internal/build_env.py +++ b/src/pip/_internal/build_env.py @@ -58,7 +58,7 @@ def _create_standalone_pip() -> Iterator[str]: with TempDirectory(kind="standalone-pip") as tmp_dir: pip_zip = os.path.join(tmp_dir.path, "__env_pip__.zip") - with zipfile.ZipFile(pip_zip, "w") as zf: + with zipfile.ZipFile(pip_zip, "w", strict_timestamps=False) as zf: for child in source.rglob("*"): zf.write(child, child.relative_to(source.parent).as_posix()) yield os.path.join(pip_zip, "pip") From 1ee1aca7de1bf99238c8a38d0e21fded068a2216 Mon Sep 17 00:00:00 2001 From: Nicholas Serra Date: Thu, 29 Apr 2021 13:15:46 -0400 Subject: [PATCH 2/4] 9910 news --- news/9910.bugfix.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 news/9910.bugfix.rst diff --git a/news/9910.bugfix.rst b/news/9910.bugfix.rst new file mode 100644 index 00000000000..911181d18bb --- /dev/null +++ b/news/9910.bugfix.rst @@ -0,0 +1 @@ +Fix for ValueError('ZIP does not support timestamps before 1980') on GitHub package install. From beeb89c29440958bcc9049a604f234814e06098d Mon Sep 17 00:00:00 2001 From: Nicholas Serra Date: Fri, 30 Apr 2021 13:21:46 -0400 Subject: [PATCH 3/4] Update news/9910.bugfix.rst Co-authored-by: Tzu-ping Chung --- news/9910.bugfix.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/news/9910.bugfix.rst b/news/9910.bugfix.rst index 911181d18bb..ece2f3fdfa9 100644 --- a/news/9910.bugfix.rst +++ b/news/9910.bugfix.rst @@ -1 +1 @@ -Fix for ValueError('ZIP does not support timestamps before 1980') on GitHub package install. +Allow ZIP to archive files with timestamps earlier than 1980. From 346edd64bc373aac3af278c454d7210663b83dc8 Mon Sep 17 00:00:00 2001 From: Nicholas Serra Date: Sun, 9 May 2021 11:46:47 -0400 Subject: [PATCH 4/4] Update src/pip/_internal/build_env.py Co-authored-by: Tzu-ping Chung --- src/pip/_internal/build_env.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pip/_internal/build_env.py b/src/pip/_internal/build_env.py index d93f940eddf..7dd1f42e51d 100644 --- a/src/pip/_internal/build_env.py +++ b/src/pip/_internal/build_env.py @@ -58,7 +58,10 @@ def _create_standalone_pip() -> Iterator[str]: with TempDirectory(kind="standalone-pip") as tmp_dir: pip_zip = os.path.join(tmp_dir.path, "__env_pip__.zip") - with zipfile.ZipFile(pip_zip, "w", strict_timestamps=False) as zf: + kwargs = {} + if sys.version_info >= (3, 8): + kwargs["strict_timestamps"] = False + with zipfile.ZipFile(pip_zip, "w", **kwargs) as zf: for child in source.rglob("*"): zf.write(child, child.relative_to(source.parent).as_posix()) yield os.path.join(pip_zip, "pip")