From 6dac29693f3c6f3feb35018d31868f9db522d285 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Thu, 21 May 2020 20:02:13 +0800 Subject: [PATCH] python3-setuptools: Fix error when installing from source When a Python package is installed from source (i.e. using setup.py) into a custom location (with --home), setuptools may want to create a site.py file in the custom location. This file is created based on the source code of site-patch.py, a file bundled with setuptools. Because the normal OpenWrt setuptools package does not contain Python source code, this file is missing and the installation will end with an error. This copies site-patch.py to site-patch.py.txt so that it will be included in python3-setuptools, and patches setuptools to look for this file. See https://github.com/openwrt/packages/issues/12223 Signed-off-by: Jeffery To (cherry picked from commit 70a7f736c5d6fb9ebec1acc8b3e8ca77704361bf) --- lang/python/python3-version.mk | 2 +- .../python3/files/python3-package-setuptools.mk | 3 +++ .../patches-setuptools/004-site-patch.patch | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 lang/python/python3/patches-setuptools/004-site-patch.patch diff --git a/lang/python/python3-version.mk b/lang/python/python3-version.mk index 5e7c4e95d7..6d25f29cb5 100644 --- a/lang/python/python3-version.mk +++ b/lang/python/python3-version.mk @@ -12,7 +12,7 @@ PYTHON3_VERSION_MICRO:=7 PYTHON3_VERSION:=$(PYTHON3_VERSION_MAJOR).$(PYTHON3_VERSION_MINOR) -PYTHON3_SETUPTOOLS_PKG_RELEASE:=1 +PYTHON3_SETUPTOOLS_PKG_RELEASE:=2 PYTHON3_PIP_PKG_RELEASE:=2 PYTHON3_SETUPTOOLS_VERSION:=41.2.0 diff --git a/lang/python/python3/files/python3-package-setuptools.mk b/lang/python/python3/files/python3-package-setuptools.mk index 64a86b81d6..3a562c2621 100644 --- a/lang/python/python3/files/python3-package-setuptools.mk +++ b/lang/python/python3/files/python3-package-setuptools.mk @@ -24,6 +24,9 @@ define Py3Package/python3-setuptools/install $(PKG_BUILD_DIR)/install-setuptools/usr/lib/python$(PYTHON3_VERSION)/site-packages/setuptools-$(PYTHON3_SETUPTOOLS_VERSION).dist-info \ $(PKG_BUILD_DIR)/install-setuptools/usr/lib/python$(PYTHON3_VERSION)/site-packages/easy_install.py \ $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages + $(CP) \ + $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/setuptools/site-patch.py \ + $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/setuptools/site-patch.py.txt find $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/ -path '*/__pycache__/*' -delete find $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/ -type d -name __pycache__ -delete endef diff --git a/lang/python/python3/patches-setuptools/004-site-patch.patch b/lang/python/python3/patches-setuptools/004-site-patch.patch new file mode 100644 index 0000000000..39b8c90268 --- /dev/null +++ b/lang/python/python3/patches-setuptools/004-site-patch.patch @@ -0,0 +1,14 @@ +--- a/setuptools/command/easy_install.py ++++ b/setuptools/command/easy_install.py +@@ -1315,7 +1315,10 @@ class easy_install(Command): + return # already did it, or don't need to + + sitepy = os.path.join(self.install_dir, "site.py") +- source = resource_string("setuptools", "site-patch.py") ++ try: ++ source = resource_string("setuptools", "site-patch.py") ++ except FileNotFoundError: ++ source = resource_string("setuptools", "site-patch.py.txt") + source = source.decode('utf-8') + current = "" + -- 2.30.2