python-packages: Disable parallel build when host pip is needed 12653/head
authorJeffery To <jeffery.to@gmail.com>
Mon, 29 Jun 2020 20:41:15 +0000 (04:41 +0800)
committerJeffery To <jeffery.to@gmail.com>
Tue, 30 Jun 2020 07:43:01 +0000 (15:43 +0800)
This adds PKG_BUILD_PARALLEL:=0 to packages that depend on host Python
packages (HOST_PYTHON3_PACKAGE_BUILD_DEPENDS), because installing
packages with multiple concurrent pip processes can lead to errors or
unexpected results[1].

This also:

* Move HOST_PYTHON3_PACKAGE_BUILD_DEPENDS definitions to before
  python3-package.mk is included

* Update Python folder readme to include PKG_BUILD_PARALLEL:=0

[1]: https://github.com/pypa/pip/issues/2361

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
12 files changed:
lang/python/README.md
lang/python/bcrypt/Makefile
lang/python/numpy/Makefile
lang/python/python-cryptography/Makefile
lang/python/python-jsonschema/Makefile
lang/python/python-pluggy/Makefile
lang/python/python-py/Makefile
lang/python/python-pycparser/Makefile
lang/python/python-pynacl/Makefile
lang/python/python-pytest/Makefile
lang/python/python-zipp/Makefile
net/seafile-seahub/Makefile

index 4bceb978d7334dd83242f633e30e90e29c500b07..ac3bf51c76bd70d2b2aafaab27be46a6dc79532a 100644 (file)
@@ -332,8 +332,11 @@ These can be installed via pip and ideally they should only be installed like th
 
 Which is why [for example] if you need python cffi on the host build, it's easier to just add it via:
 ```
+PKG_BUILD_PARALLEL:=0
 HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="cffi==$(PKG_VERSION)"
 ```
 [cffi is one of those packages that needs a host-side package installed].
 
 This works reasonably well in the current OpenWrt build system, as binaries get built for this package and get installed in the staging-dir `$(STAGING_DIR)/usr/lib/pythonX.Y/site-packages`.
+
+`PKG_BUILD_PARALLEL:=0` is necessary because installing packages with multiple concurrent pip processes can lead to [errors or unexpected results](https://github.com/pypa/pip/issues/2361).
index 0f56c4d5197e229f7ebfdae3356e1f012de8de01..3a8bdf7d920592d2c4bdef1bf47387a81598ad74 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bcrypt
 PKG_VERSION:=3.1.7
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=$(PKG_NAME)
 PKG_HASH:=0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42
@@ -16,6 +16,7 @@ PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_BUILD_DEPENDS:=libffi/host
+PKG_BUILD_PARALLEL:=0
 HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="cffi>=1.1"
 
 include ../pypi.mk
index 9bbf1fb5b11e2590a8cbaa71d09fb2af8d24e0e6..42335ae0747789ba2b54fb2076b71dc764cbcb4c 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=numpy
 PKG_VERSION:=1.18.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=$(PKG_NAME)
 PKG_HASH:=34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b
@@ -20,7 +20,8 @@ PKG_CPE_ID:=cpe:/a:numpy:numpy
 
 # yes, zip... sigh
 PYPI_SOURCE_EXT:=zip
-HOST_PYTHON3_PACKAGE_BUILD_DEPENDS="Cython==0.29.19"
+PKG_BUILD_PARALLEL:=0
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="Cython==0.29.19"
 
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
index a02784303073c9d832ec2c656dde2465bf292fe6..e5a9a1e03e9e1d93b4d3bfa2916b713789cb0b92 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-cryptography
 PKG_VERSION:=2.9.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=cryptography
 PKG_HASH:=a0c30272fb4ddda5f5ffc1089d7405b7a71b0b0f51993cb4e5dbb4590b2fc229
@@ -19,6 +19,7 @@ PKG_LICENSE_FILES:=LICENSE.APACHE LICENSE.BSD
 PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>, Alexandru Ardelean <ardeleanalex@gmail.com>
 
 PKG_BUILD_DEPENDS:=libffi/host
+PKG_BUILD_PARALLEL:=0
 
 HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="cffi>=1.8,!=1.11.3"
 
index 0e3c7b6b680379848ae600d7eec692282e355516..efcb76fc6a34586ad0304cadbafcab523cc71ac8 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-jsonschema
 PKG_VERSION:=3.2.0
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PYPI_NAME:=jsonschema
 PKG_HASH:=c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a
@@ -11,7 +11,8 @@ PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
 
-HOST_PYTHON3_PACKAGE_BUILD_DEPENDS=setuptools_scm
+PKG_BUILD_PARALLEL:=0
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools_scm
 
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
index 8d79e0e22fc8fe933475e9a8b4c72315002307f9..4ed250eae954757c8659122fccf24fa9b245f54f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pluggy
 PKG_VERSION:=0.13.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=pluggy
 PKG_HASH:=15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0
@@ -18,12 +18,13 @@ PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
+PKG_BUILD_PARALLEL:=0
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
+
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
 include ../python3-package.mk
 
-HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
-
 define Package/python3-pluggy
   SUBMENU:=Python
   SECTION:=lang
index 1ed1a09e0c8440353baa72febd7115efb99422dd..8d7925453a2c1c7bdc8da17a34f8118188adc316 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-py
 PKG_VERSION:=1.8.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=py
 PKG_HASH:=5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa
@@ -18,12 +18,13 @@ PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
+PKG_BUILD_PARALLEL:=0
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
+
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
 include ../python3-package.mk
 
-HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
-
 define Package/python3-py
   SUBMENU:=Python
   SECTION:=lang
index b8f63fc37f98c8f4e39e79eb382b1248d40de8e7..ce19a5ba7aa07366fc13818aedf3fd0fbdfbf9f3 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pycparser
 PKG_VERSION:=2.20
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=pycparser
 PKG_HASH:=2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0
@@ -18,6 +18,7 @@ PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
 PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 
+PKG_BUILD_PARALLEL:=0
 HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="ply==3.10"
 
 include ../pypi.mk
index fe2c4555dbceaa2f87f4b815a0e885c28d818e9d..69ed754dd4d126ac24eee99a1a2679e8829d6df5 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pynacl
 PKG_VERSION:=1.4.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=PyNaCl
 PKG_HASH:=54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505
@@ -12,6 +12,7 @@ PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_BUILD_DEPENDS:=libffi/host
+PKG_BUILD_PARALLEL:=0
 
 HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="cffi>=1.4.1"
 
index df1aa0ade5ead0665c1baaa241d7c14da312e67f..8b1dadcb17fa919bd26aa7661b6a2006dbc2291b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pytest
 PKG_VERSION:=5.4.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=pytest
 PKG_HASH:=eb2b5e935f6a019317e455b6da83dd8650ac9ffd2ee73a7b657a30873d67a698
@@ -18,6 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
+PKG_BUILD_PARALLEL:=0
 HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
 
 include ../pypi.mk
index 19d9e12c1c5efe6e13bf70ef55f57784ef92642c..fede7f14fb7be612fd521bc37024aad7bd53ca4a 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-zipp
 PKG_VERSION:=3.1.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PYPI_NAME:=zipp
 PKG_HASH:=c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96
@@ -11,6 +11,9 @@ PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
+PKG_BUILD_PARALLEL:=0
+HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="setuptools_scm[toml] >= 3.4.1"
+
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
 include ../python3-package.mk
@@ -24,8 +27,6 @@ define Package/python3-zipp
   DEPENDS:=+python3-light
 endef
 
-HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="setuptools_scm[toml] >= 3.4.1"
-
 define Package/python3-zipp/description
   Backport of pathlib-compatible object wrapper for zip files
 endef
index ab1888bf3759b9624fbbe512cd02ef0162f75ea5..28396aaa6014b90a1d0296f7599ab66dc2baef6e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-seahub
 PKG_VERSION:=7.1.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/haiwen/seahub/tar.gz/v$(PKG_VERSION)-server?
@@ -23,7 +23,7 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/seahub-$(PKG_VERSION)-server
 
 HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:="Django~=1.11"
 
-PKG_BUILD_PARALLEL:=1
+PKG_BUILD_PARALLEL:=0
 PYTHON3_PKG_BUILD:=0
 
 include $(INCLUDE_DIR)/package.mk