Browse Source

Merge pull request #9060 from jefferyto/python-setuptools-reproducible

python-setuptools: Add reproducibility patches from Debian
lilik-openwrt-22.03
Rosen Penev 5 years ago
committed by GitHub
parent
commit
10dd4f4720
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 114 additions and 2 deletions
  1. +1
    -1
      lang/python/python-version.mk
  2. +10
    -0
      lang/python/python/Makefile
  3. +16
    -0
      lang/python/python/patches-setuptools/001-reproducible.patch
  4. +16
    -0
      lang/python/python/patches-setuptools/002-sorted-requires.patch
  5. +14
    -0
      lang/python/python/patches-setuptools/003-PKG-INFO-output-reproducible.patch
  6. +1
    -1
      lang/python/python3-version.mk
  7. +10
    -0
      lang/python/python3/Makefile
  8. +16
    -0
      lang/python/python3/patches-setuptools/001-reproducible.patch
  9. +16
    -0
      lang/python/python3/patches-setuptools/002-sorted-requires.patch
  10. +14
    -0
      lang/python/python3/patches-setuptools/003-PKG-INFO-output-reproducible.patch

+ 1
- 1
lang/python/python-version.mk View File

@ -8,7 +8,7 @@
PYTHON_VERSION:=2.7
PYTHON_VERSION_MICRO:=16
PYTHON_SETUPTOOLS_PKG_RELEASE:=2
PYTHON_SETUPTOOLS_PKG_RELEASE:=3
PYTHON_PIP_PKG_RELEASE:=2
PYTHON_SETUPTOOLS_VERSION:=40.6.2


+ 10
- 0
lang/python/python/Makefile View File

@ -174,6 +174,7 @@ define Build/Compile/python-setuptools
--ignore-installed \
--root=$(PKG_BUILD_DIR)/install-setuptools --prefix=. \
$(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/setuptools-$(PYTHON_SETUPTOOLS_VERSION)-py2.py3-none-any.whl
$(call PatchDir,$(PKG_BUILD_DIR)/install-setuptools/lib/python$(PYTHON_VERSION)/site-packages,./patches-setuptools,)
endef
endif # CONFIG_PACKAGE_python-setuptools
@ -183,6 +184,7 @@ define Build/Compile/python-pip
--ignore-installed \
--root=$(PKG_BUILD_DIR)/install-pip --prefix=. \
$(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/pip-$(PYTHON_PIP_VERSION)-py2.py3-none-any.whl
$(call PatchDir,$(PKG_BUILD_DIR)/install-pip/lib/python$(PYTHON_VERSION)/site-packages,./patches-pip,)
endef
endif # CONFIG_PACKAGE_python-pip
@ -304,6 +306,14 @@ define Host/Install
$(MAKE) -C $(HOST_BUILD_DIR) install
$(INSTALL_DIR) $(HOST_PYTHON_DIR)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON_DIR)/bin/pgen2
ifeq ($(wildcard $(HOST_PYTHON_PKG_DIR)/.setuptools-patched),)
$(call HostPatchDir,$(HOST_PYTHON_PKG_DIR),./patches-setuptools,)
touch $(HOST_PYTHON_PKG_DIR)/.setuptools-patched
endif
ifeq ($(wildcard $(HOST_PYTHON_PKG_DIR)/.pip-patched),)
$(call HostPatchDir,$(HOST_PYTHON_PKG_DIR),./patches-pip,)
touch $(HOST_PYTHON_PKG_DIR)/.pip-patched
endif
endef
$(eval $(call HostBuild))


+ 16
- 0
lang/python/python/patches-setuptools/001-reproducible.patch View File

@ -0,0 +1,16 @@
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848136
https://sources.debian.org/patches/python-setuptools/40.8.0-1/reproducible.diff/
Index: b/setuptools/command/easy_install.py
===================================================================
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -436,7 +436,7 @@ consider to install to another location,
for spec in self.args:
self.easy_install(spec, not self.no_deps)
if self.record:
- outputs = self.outputs
+ outputs = list(sorted(self.outputs))
if self.root: # strip any package prefix
root_len = len(self.root)
for counter in range(len(outputs)):

+ 16
- 0
lang/python/python/patches-setuptools/002-sorted-requires.patch View File

@ -0,0 +1,16 @@
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804249
https://sources.debian.org/patches/python-setuptools/40.8.0-1/sorted-requires.diff/
Index: b/setuptools/command/egg_info.py
===================================================================
--- a/setuptools/command/egg_info.py
+++ b/setuptools/command/egg_info.py
@@ -621,7 +621,7 @@ def warn_depends_obsolete(cmd, basename,
def _write_requirements(stream, reqs):
lines = yield_lines(reqs or ())
append_cr = lambda line: line + '\n'
- lines = map(append_cr, lines)
+ lines = map(append_cr, sorted(lines))
stream.writelines(lines)

+ 14
- 0
lang/python/python/patches-setuptools/003-PKG-INFO-output-reproducible.patch View File

@ -0,0 +1,14 @@
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=894215
https://sources.debian.org/patches/python-setuptools/40.8.0-1/PKG-INFO-output-reproducible.diff/
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -191,7 +191,7 @@ def write_pkg_file(self, file):
self.long_description_content_type
)
if self.provides_extras:
- for extra in self.provides_extras:
+ for extra in sorted(self.provides_extras):
write_field('Provides-Extra', extra)

+ 1
- 1
lang/python/python3-version.mk View File

@ -12,7 +12,7 @@ PYTHON3_VERSION_MICRO:=2
PYTHON3_VERSION:=$(PYTHON3_VERSION_MAJOR).$(PYTHON3_VERSION_MINOR)
PYTHON3_SETUPTOOLS_PKG_RELEASE:=2
PYTHON3_SETUPTOOLS_PKG_RELEASE:=3
PYTHON3_PIP_PKG_RELEASE:=2
PYTHON3_SETUPTOOLS_VERSION:=40.6.2


+ 10
- 0
lang/python/python3/Makefile View File

@ -178,6 +178,7 @@ define Build/Compile/python3-setuptools
--ignore-installed \
--root=$(PKG_BUILD_DIR)/install-setuptools --prefix=. \
$(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/setuptools-$(PYTHON3_SETUPTOOLS_VERSION)-py2.py3-none-any.whl
$(call PatchDir,$(PKG_BUILD_DIR)/install-setuptools/lib/python$(PYTHON3_VERSION)/site-packages,./patches-setuptools,)
endef
endif # CONFIG_PACKAGE_python3-setuptools
@ -187,6 +188,7 @@ define Build/Compile/python3-pip
--ignore-installed \
--root=$(PKG_BUILD_DIR)/install-pip --prefix=. \
$(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/pip-$(PYTHON3_PIP_VERSION)-py2.py3-none-any.whl
$(call PatchDir,$(PKG_BUILD_DIR)/install-pip/lib/python$(PYTHON3_VERSION)/site-packages,./patches-pip,)
endef
endif # CONFIG_PACKAGE_python3-pip
@ -299,6 +301,14 @@ define Host/Install
$(MAKE) -C $(HOST_BUILD_DIR) install
$(INSTALL_DIR) $(HOST_PYTHON3_DIR)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON3_DIR)/bin/pgen3
ifeq ($(wildcard $(HOST_PYTHON3_PKG_DIR)/.setuptools-patched),)
$(call HostPatchDir,$(HOST_PYTHON3_PKG_DIR),./patches-setuptools,)
touch $(HOST_PYTHON3_PKG_DIR)/.setuptools-patched
endif
ifeq ($(wildcard $(HOST_PYTHON3_PKG_DIR)/.pip-patched),)
$(call HostPatchDir,$(HOST_PYTHON3_PKG_DIR),./patches-pip,)
touch $(HOST_PYTHON3_PKG_DIR)/.pip-patched
endif
endef
$(eval $(call HostBuild))


+ 16
- 0
lang/python/python3/patches-setuptools/001-reproducible.patch View File

@ -0,0 +1,16 @@
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848136
https://sources.debian.org/patches/python-setuptools/40.8.0-1/reproducible.diff/
Index: b/setuptools/command/easy_install.py
===================================================================
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -436,7 +436,7 @@ consider to install to another location,
for spec in self.args:
self.easy_install(spec, not self.no_deps)
if self.record:
- outputs = self.outputs
+ outputs = list(sorted(self.outputs))
if self.root: # strip any package prefix
root_len = len(self.root)
for counter in range(len(outputs)):

+ 16
- 0
lang/python/python3/patches-setuptools/002-sorted-requires.patch View File

@ -0,0 +1,16 @@
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804249
https://sources.debian.org/patches/python-setuptools/40.8.0-1/sorted-requires.diff/
Index: b/setuptools/command/egg_info.py
===================================================================
--- a/setuptools/command/egg_info.py
+++ b/setuptools/command/egg_info.py
@@ -621,7 +621,7 @@ def warn_depends_obsolete(cmd, basename,
def _write_requirements(stream, reqs):
lines = yield_lines(reqs or ())
append_cr = lambda line: line + '\n'
- lines = map(append_cr, lines)
+ lines = map(append_cr, sorted(lines))
stream.writelines(lines)

+ 14
- 0
lang/python/python3/patches-setuptools/003-PKG-INFO-output-reproducible.patch View File

@ -0,0 +1,14 @@
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=894215
https://sources.debian.org/patches/python-setuptools/40.8.0-1/PKG-INFO-output-reproducible.diff/
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -191,7 +191,7 @@ def write_pkg_file(self, file):
self.long_description_content_type
)
if self.provides_extras:
- for extra in self.provides_extras:
+ for extra in sorted(self.provides_extras):
write_field('Provides-Extra', extra)

Loading…
Cancel
Save