summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffery To <jeffery.to@gmail.com>2020-05-21 20:02:13 +0800
committerJeffery To <jeffery.to@gmail.com>2020-05-21 20:02:13 +0800
commit70a7f736c5d6fb9ebec1acc8b3e8ca77704361bf (patch)
tree0a0f2eb6aa9830d2035381a33a87e95c24da6a9a
parentba6e5fc393f0f843c786e949a389c8a2835eb490 (diff)
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 <jeffery.to@gmail.com>
-rw-r--r--lang/python/python3-version.mk2
-rw-r--r--lang/python/python3/files/python3-package-setuptools.mk3
-rw-r--r--lang/python/python3/patches-setuptools/004-site-patch.patch14
3 files changed, 18 insertions, 1 deletions
diff --git a/lang/python/python3-version.mk b/lang/python/python3-version.mk
index 5a521f373..0a9f0ea85 100644
--- a/lang/python/python3-version.mk
+++ b/lang/python/python3-version.mk
@@ -12,7 +12,7 @@ PYTHON3_VERSION_MICRO:=3
PYTHON3_VERSION:=$(PYTHON3_VERSION_MAJOR).$(PYTHON3_VERSION_MINOR)
-PYTHON3_SETUPTOOLS_PKG_RELEASE:=1
+PYTHON3_SETUPTOOLS_PKG_RELEASE:=2
PYTHON3_PIP_PKG_RELEASE:=3
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 64a86b81d..3a562c262 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 000000000..39b8c9026
--- /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 = ""
+