From 6ef46bb9194b5d3f5fc17471d8869bcae729d215 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Thu, 2 Mar 2023 23:35:00 +0800 Subject: [PATCH 01/24] python: Unset Python environment variables This will prevent the user's environment variables from affecting host Python, removing the need to manually override these variables. It is also not necessary to set PYTHONPATH (when not working on target Python packages) because the given directories are already included in Python's search path by default. Signed-off-by: Jeffery To --- lang/python/python3-host.mk | 50 +++++++++++++++++++++++++++++++--- lang/python/python3-package.mk | 1 - 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/lang/python/python3-host.mk b/lang/python/python3-host.mk index 8a05c332cf..fdf6658fd8 100644 --- a/lang/python/python3-host.mk +++ b/lang/python/python3-host.mk @@ -12,6 +12,51 @@ python3_mk_path:=$(dir $(lastword $(MAKEFILE_LIST))) include $(python3_mk_path)python3-version.mk +# Unset environment variables + +# https://docs.python.org/3/using/cmdline.html#environment-variables +unexport \ + PYTHONHOME \ + PYTHONPATH \ + PYTHONSAFEPATH \ + PYTHONPLATLIBDIR \ + PYTHONSTARTUP \ + PYTHONOPTIMIZE \ + PYTHONBREAKPOINT \ + PYTHONDEBUG \ + PYTHONINSPECT \ + PYTHONUNBUFFERED \ + PYTHONVERBOSE \ + PYTHONCASEOK \ + PYTHONDONTWRITEBYTECODE \ + PYTHONPYCACHEPREFIX \ + PYTHONHASHSEED \ + PYTHONINTMAXSTRDIGITS \ + PYTHONIOENCODING \ + PYTHONNOUSERSITE \ + PYTHONUSERBASE \ + PYTHONEXECUTABLE \ + PYTHONWARNINGS \ + PYTHONFAULTHANDLER \ + PYTHONTRACEMALLOC \ + PYTHONPROFILEIMPORTTIME \ + PYTHONASYNCIODEBUG \ + PYTHONMALLOC \ + PYTHONMALLOCSTATS \ + PYTHONLEGACYWINDOWSFSENCODING \ + PYTHONLEGACYWINDOWSSTDIO \ + PYTHONCOERCECLOCALE \ + PYTHONDEVMODE \ + PYTHONUTF8 \ + PYTHONWARNDEFAULTENCODING \ + PYTHONNODEBUGRANGES + +# https://docs.python.org/3/using/cmdline.html#debug-mode-variables +unexport \ + PYTHONTHREADDEBUG \ + PYTHONDUMPREFS \ + PYTHONDUMPREFSFILE + HOST_PYTHON3_DIR:=$(STAGING_DIR_HOSTPKG) HOST_PYTHON3_INC_DIR:=$(HOST_PYTHON3_DIR)/include/python$(PYTHON3_VERSION) HOST_PYTHON3_LIB_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION) @@ -31,10 +76,7 @@ HOST_PYTHON3_VARS = \ LDSHARED="$(HOSTCC) -shared" \ CFLAGS="$(HOST_CFLAGS)" \ CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \ - LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath$(comma)$(STAGING_DIR_HOSTPKG)/lib" \ - PYTHONPATH="$(HOST_PYTHON3PATH)" \ - PYTHONDONTWRITEBYTECODE=0 \ - PYTHONOPTIMIZE="" + LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath$(comma)$(STAGING_DIR_HOSTPKG)/lib" # $(1) => directory of python script # $(2) => python script and its arguments diff --git a/lang/python/python3-package.mk b/lang/python/python3-package.mk index a24892ac57..8477d8c75d 100644 --- a/lang/python/python3-package.mk +++ b/lang/python/python3-package.mk @@ -42,7 +42,6 @@ PYTHON3_VARS = \ __PYVENV_LAUNCHER__="/usr/bin/$(PYTHON3)" \ PYTHONPATH="$(PYTHON3PATH)" \ PYTHONDONTWRITEBYTECODE=1 \ - PYTHONOPTIMIZE="" \ _python_sysroot="$(STAGING_DIR)" \ _python_prefix="/usr" \ _python_exec_prefix="/usr" From fe78c07a316b1722b8d35b63772a7067dfd87c5e Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sat, 25 Feb 2023 19:42:39 +0800 Subject: [PATCH 02/24] python: Add pyproject.toml-based builds for host Python packages Using pip to install host packages with pyproject.toml-based (PEP 517) builds is problematic: * If build isolation is used, pip will create an isolated build environment, install any build dependencies for the requested package, then build the requested package. It does not appear currently possible to have pip install the build dependencies with hash-checking mode enabled[1]. * If build isolation is not used, any build dependencies must be installed in the build environment before invoking pip to build the requested package[2]. This would require creating a package dependency resolution system to install build dependencies, and any dependencies of dependencies, in the correct order. * It is very difficult to patch the packages installed by pip. This adds a new include file (python3-host-build.mk) with recipes to install host Python packages with pyproject.toml-based builds. This is backwards-compatible with packages that require running setup.py. Besides addressing the above issues (the OpenWrt build system already resolves dependencies between packages, checks all source downloads against known hashes, and supports patching packages), host packages also: * Capture package licensing and maintainer information * Enable uscan checking for package updates/CVEs * Are a known concept for OpenWrt packagers/developers The existing functionality of using host pip to install packages will remain for now, but should be considered deprecated and expected to be removed in the future. This also updates Py3Build/CheckHostPipVersionMatch for the case where the host-pip-requirements directory does not exist or is empty. [1]: https://pip.pypa.io/en/stable/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020 [2]: https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-build-isolation Signed-off-by: Jeffery To --- lang/python/python3-host-build.mk | 99 +++++++++++++++++++++++++++++++ lang/python/python3-host.mk | 11 ---- lang/python/python3-package.mk | 11 ++-- 3 files changed, 106 insertions(+), 15 deletions(-) create mode 100644 lang/python/python3-host-build.mk diff --git a/lang/python/python3-host-build.mk b/lang/python/python3-host-build.mk new file mode 100644 index 0000000000..738d157287 --- /dev/null +++ b/lang/python/python3-host-build.mk @@ -0,0 +1,99 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +python3_mk_path:=$(dir $(lastword $(MAKEFILE_LIST))) +include $(python3_mk_path)python3-host.mk + +PYTHON3_HOST_BUILD?=1 + +PYTHON3_HOST_BUILD_CONFIG_SETTINGS?= +PYTHON3_HOST_BUILD_VARS?= +PYTHON3_HOST_BUILD_ARGS?= +PYTHON3_HOST_BUILD_PATH?= + +PYTHON3_HOST_INSTALL_VARS?= + +PYTHON3_HOST_WHEEL_NAME?=$(subst -,_,$(if $(PYPI_SOURCE_NAME),$(PYPI_SOURCE_NAME),$(PKG_NAME))) +PYTHON3_HOST_WHEEL_VERSION?=$(PKG_VERSION) + +PYTHON3_HOST_BUILD_DIR?=$(HOST_BUILD_DIR)/$(PYTHON3_HOST_BUILD_PATH) + + +PYTHON3_HOST_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR))) +PYTHON3_HOST_STAGING_DIR:=$(TMP_DIR)/host-stage-$(PYTHON3_HOST_DIR_NAME) +PYTHON3_HOST_STAGING_FILES_LIST_DIR:=$(HOST_BUILD_PREFIX)/stamp +PYTHON3_HOST_STAGING_FILES_LIST:=$(PYTHON3_HOST_STAGING_FILES_LIST_DIR)/$(PYTHON3_HOST_DIR_NAME).list + +define Py3Host/Compile/Bootstrap + $(call HostPython3/Run, \ + $(HOST_BUILD_DIR), \ + -m flit_core.wheel \ + --outdir "$(PYTHON3_HOST_BUILD_DIR)"/openwrt-build \ + "$(PYTHON3_HOST_BUILD_DIR)" \ + ) +endef + +define Py3Host/Compile + $(call HostPython3/Run, \ + $(HOST_BUILD_DIR), \ + -m build \ + --no-isolation \ + --outdir "$(PYTHON3_HOST_BUILD_DIR)"/openwrt-build \ + --wheel \ + $(foreach setting,$(PYTHON3_HOST_BUILD_CONFIG_SETTINGS),--config-setting=$(setting)) \ + $(PYTHON3_HOST_BUILD_ARGS) \ + "$(PYTHON3_HOST_BUILD_DIR)" \ + , \ + $(PYTHON3_HOST_BUILD_VARS) \ + ) +endef + +define Py3Host/Install/Installer + $(call HostPython3/Run, \ + $(HOST_BUILD_DIR), \ + -m installer \ + --destdir "$(1)" \ + --prefix "" \ + "$(PYTHON3_HOST_BUILD_DIR)"/openwrt-build/$(PYTHON3_HOST_WHEEL_NAME)-$(PYTHON3_HOST_WHEEL_VERSION)-*.whl \ + , \ + $(PYTHON3_HOST_INSTALL_VARS) \ + ) +endef + +define Py3Host/Install + rm -rf "$(PYTHON3_HOST_STAGING_DIR)" + mkdir -p "$(PYTHON3_HOST_STAGING_DIR)" "$(PYTHON3_HOST_STAGING_FILES_LIST_DIR)" + + $(call Py3Host/Install/Installer,$(PYTHON3_HOST_STAGING_DIR)) + + $(call Py3Host/Uninstall,$(1)) + + cd "$(PYTHON3_HOST_STAGING_DIR)" && find ./ > "$(PYTHON3_HOST_STAGING_DIR).files" + + $(call locked, \ + mv "$(PYTHON3_HOST_STAGING_DIR).files" "$(PYTHON3_HOST_STAGING_FILES_LIST)" && \ + $(CP) "$(PYTHON3_HOST_STAGING_DIR)"/* "$(1)/", \ + host-staging-dir \ + ) + + rm -rf "$(PYTHON3_HOST_STAGING_DIR)" +endef + +define Py3Host/Uninstall + if [ -f "$(PYTHON3_HOST_STAGING_FILES_LIST)" ]; then \ + "$(SCRIPT_DIR)/clean-package.sh" \ + "$(PYTHON3_HOST_STAGING_FILES_LIST)" \ + "$(1)" ; \ + rm -f "$(PYTHON3_HOST_STAGING_FILES_LIST)" ; \ + fi +endef + +ifeq ($(strip $(PYTHON3_HOST_BUILD)),1) + Host/Compile=$(Py3Host/Compile) + Host/Install=$(Py3Host/Install) + Host/Uninstall=$(call Py3Host/Uninstall,$(HOST_BUILD_PREFIX)) +endif diff --git a/lang/python/python3-host.mk b/lang/python/python3-host.mk index fdf6658fd8..8dc5e732fd 100644 --- a/lang/python/python3-host.mk +++ b/lang/python/python3-host.mk @@ -118,14 +118,3 @@ define HostPython3/PipInstall pip \ ) endef - -# $(1) => build subdir -# $(2) => additional arguments to setup.py -# $(3) => additional variables -define HostPython3/ModSetup - $(call SetupPyShim,$(HOST_BUILD_DIR)/$(strip $(1))) - $(call HostPython3/Run, \ - $(HOST_BUILD_DIR)/$(strip $(1)), \ - setup.py $(2), \ - $(3) PY_PKG_VERSION=$(PKG_VERSION)) -endef diff --git a/lang/python/python3-package.mk b/lang/python/python3-package.mk index 8477d8c75d..f2336b8fcf 100644 --- a/lang/python/python3-package.mk +++ b/lang/python/python3-package.mk @@ -206,10 +206,13 @@ endef ifneq ($(strip $(PYPI_NAME)),) define Py3Build/CheckHostPipVersionMatch - if grep -q "$(PYPI_NAME)==" $(python3_mk_path)host-pip-requirements/*.txt ; then \ - if ! grep -q "$(PYPI_NAME)==$(PKG_VERSION)" $(python3_mk_path)host-pip-requirements/*.txt ; then \ - printf "\nPlease update version of $(PYPI_NAME) to $(PKG_VERSION) in 'host-pip-requirements'/\n\n" ; \ - exit 1 ; \ + if [ -d "$(python3_mk_path)host-pip-requirements" ] && \ + [ -n "$$$$($(FIND) $(python3_mk_path)host-pip-requirements -maxdepth 1 -mindepth 1 -name '*.txt' -print -quit 2>/dev/null)" ]; then \ + if grep -q "$(PYPI_NAME)==" $(python3_mk_path)host-pip-requirements/*.txt ; then \ + if ! grep -q "$(PYPI_NAME)==$(PKG_VERSION)" $(python3_mk_path)host-pip-requirements/*.txt ; then \ + printf "\nPlease update version of $(PYPI_NAME) to $(PKG_VERSION) in 'host-pip-requirements'/\n\n" ; \ + exit 1 ; \ + fi \ fi \ fi endef From 2f37a616afe3f537aa23f8953ed55fc9e5f5fa25 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Mon, 27 Feb 2023 20:20:15 +0800 Subject: [PATCH 03/24] python-flit-core: Add host-only package From the README: This provides a PEP 517 build backend for packages using Flit. The only public interface is the API specified by PEP 517, at flit_core.buildapi. Signed-off-by: Jeffery To --- lang/python/python-flit-core/Makefile | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 lang/python/python-flit-core/Makefile diff --git a/lang/python/python-flit-core/Makefile b/lang/python/python-flit-core/Makefile new file mode 100644 index 0000000000..42274d6d8c --- /dev/null +++ b/lang/python/python-flit-core/Makefile @@ -0,0 +1,60 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-flit-core +PKG_VERSION:=3.8.0 +PKG_RELEASE:=1 + +PYPI_NAME:=flit-core +PYPI_SOURCE_NAME:=flit_core +PKG_HASH:=b305b30c99526df5e63d6022dd2310a0a941a187bd3884f4c8ef0418df6c39f3 + +PKG_LICENSE:=BSD-3-Clause +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-flit-core + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Distribution-building parts of Flit + URL:=https://github.com/pypa/flit + DEPENDS:=+python3-light +python3-email +python3-logging + BUILDONLY:=1 +endef + +define Package/python3-flit-core/description +This provides a PEP 517 build backend for packages using Flit. The only +public interface is the API specified by PEP 517, at flit_core.buildapi. +endef + +define Py3Host/Install/Installer + $(call HostPython3/Run, \ + $(HOST_BUILD_DIR), \ + bootstrap_install.py \ + --installdir "$(1)/lib/python$(PYTHON3_VERSION)/site-packages" \ + "$(PYTHON3_HOST_BUILD_DIR)"/openwrt-build/$(PYPI_SOURCE_NAME)-$(PKG_VERSION)-*.whl \ + ) +endef + +Host/Compile=$(Py3Host/Compile/Bootstrap) + +$(eval $(call Py3Package,python3-flit-core)) +$(eval $(call BuildPackage,python3-flit-core)) +$(eval $(call BuildPackage,python3-flit-core-src)) +$(eval $(call HostBuild)) From 37caea7c93bbdbf3ce1d44cdc762b1d920a59e57 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Mon, 27 Feb 2023 22:15:30 +0800 Subject: [PATCH 04/24] python-installer: Add host-only package From the README: This is a low-level library for installing a Python package from a wheel distribution. It provides basic functionality and abstractions for handling wheels and installing packages from wheels. Signed-off-by: Jeffery To --- lang/python/python-installer/Makefile | 53 +++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 lang/python/python-installer/Makefile diff --git a/lang/python/python-installer/Makefile b/lang/python/python-installer/Makefile new file mode 100644 index 0000000000..898a74a3dd --- /dev/null +++ b/lang/python/python-installer/Makefile @@ -0,0 +1,53 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-installer +PKG_VERSION:=0.7.0 +PKG_RELEASE:=1 + +PYPI_NAME:=installer +PKG_HASH:=a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-flit-core/host + +PYTHON3_HOST_INSTALL_VARS:=PYTHONPATH=src + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-installer + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=A library for installing Python wheels + URL:=https://github.com/pypa/installer + DEPENDS:=+python3-light +python3-email + BUILDONLY:=1 +endef + +define Package/python3-installer/description +This is a low-level library for installing a Python package from a wheel +distribution. It provides basic functionality and abstractions for +handling wheels and installing packages from wheels. +endef + +Host/Compile=$(Py3Host/Compile/Bootstrap) + +$(eval $(call Py3Package,python3-installer)) +$(eval $(call BuildPackage,python3-installer)) +$(eval $(call BuildPackage,python3-installer-src)) +$(eval $(call HostBuild)) From e9dd1a1dfc0dc924a1e9d7ea448ca27591574557 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Feb 2023 14:36:12 +0800 Subject: [PATCH 05/24] python-packaging: Update to 23.0, add host build This also adds myself as maintainer, and marks the target package as BROKEN (for now) as the update requires proper support for pyproject.toml-based builds. Signed-off-by: Jeffery To --- lang/python/python-packaging/Makefile | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lang/python/python-packaging/Makefile b/lang/python/python-packaging/Makefile index 6a0eaad75f..c727c20aab 100644 --- a/lang/python/python-packaging/Makefile +++ b/lang/python/python-packaging/Makefile @@ -7,19 +7,24 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-packaging -PKG_VERSION:=20.9 +PKG_VERSION:=23.0 PKG_RELEASE:=1 PYPI_NAME:=packaging -PKG_HASH:=5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5 +PKG_HASH:=b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97 -PKG_MAINTAINER:=Jan Pavlinec +PKG_MAINTAINER:=Jan Pavlinec , Jeffery To PKG_LICENSE:=Apache-2.0 BSD-2-Clause PKG_LICENSE_FILES:=LICENSE.APACHE LICENSE.BSD +PKG_BUILD_DEPENDS:=python-flit-core/host +HOST_BUILD_DEPENDS:=python3/host python-flit-core/host python-installer/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk include ../python3-package.mk +include ../python3-host-build.mk define Package/python3-packaging SECTION:=lang @@ -27,7 +32,7 @@ define Package/python3-packaging SUBMENU:=Python TITLE:=Core utilities for Python packages URL:=https://github.com/pypa/packaging - DEPENDS:=+python3-light +python3-pyparsing +python3-six +python3-logging +python3-distutils +python3-urllib + DEPENDS:=+python3-light +python3-logging +python3-urllib @BROKEN endef define Package/python3-packaging/description @@ -35,6 +40,9 @@ define Package/python3-packaging/description markers, requirements, tags, utilities. endef +Host/Compile=$(Py3Host/Compile/Bootstrap) + $(eval $(call Py3Package,python3-packaging)) $(eval $(call BuildPackage,python3-packaging)) $(eval $(call BuildPackage,python3-packaging-src)) +$(eval $(call HostBuild)) From 7d171049fde47161c67b2c2e905b833bc66613f0 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Mon, 20 Feb 2023 00:45:10 +0800 Subject: [PATCH 06/24] python-tomli: Add new host-only package From the README: Tomli is a Python library for parsing TOML. Tomli is fully compatible with TOML v1.0.0. Signed-off-by: Jeffery To --- lang/python/python-tomli/Makefile | 50 +++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lang/python/python-tomli/Makefile diff --git a/lang/python/python-tomli/Makefile b/lang/python/python-tomli/Makefile new file mode 100644 index 0000000000..db615e39ba --- /dev/null +++ b/lang/python/python-tomli/Makefile @@ -0,0 +1,50 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-tomli +PKG_VERSION:=2.0.1 +PKG_RELEASE:=1 + +PYPI_NAME:=tomli +PKG_HASH:=de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-flit-core/host python-installer/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-tomli + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=A lil' TOML parser + URL:=https://github.com/hukkin/tomli + DEPENDS:=+python3-light + BUILDONLY:=1 +endef + +define Package/python3-tomli/description +Tomli is a Python library for parsing TOML. Tomli is fully compatible +with TOML v1.0.0. +endef + +Host/Compile=$(Py3Host/Compile/Bootstrap) + +$(eval $(call Py3Package,python3-tomli)) +$(eval $(call BuildPackage,python3-tomli)) +$(eval $(call BuildPackage,python3-tomli-src)) +$(eval $(call HostBuild)) From f6d68782d99c6f1ddb1472e4eedc902e947de2f3 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Feb 2023 15:05:07 +0800 Subject: [PATCH 07/24] python-pyproject-hooks: Add new host-only package From the README: This is a low-level library for calling build-backends in pyproject.toml-based project. It provides the basic functionality to help write tooling that generates distribution files from Python projects. Signed-off-by: Jeffery To --- lang/python/python-pyproject-hooks/Makefile | 52 +++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 lang/python/python-pyproject-hooks/Makefile diff --git a/lang/python/python-pyproject-hooks/Makefile b/lang/python/python-pyproject-hooks/Makefile new file mode 100644 index 0000000000..50b3780ede --- /dev/null +++ b/lang/python/python-pyproject-hooks/Makefile @@ -0,0 +1,52 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-pyproject-hooks +PKG_VERSION:=1.0.0 +PKG_RELEASE:=1 + +PYPI_NAME:=pyproject_hooks +PKG_HASH:=f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-flit-core/host python-installer/host python-tomli/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-pyproject-hooks + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Wrappers to call pyproject.toml-based build backend hooks + URL:=https://github.com/pypa/pyproject-hooks + DEPENDS:=+python3-light + BUILDONLY:=1 +endef + +define Package/python3-pyproject-hooks/description +This is a low-level library for calling build-backends in +pyproject.toml-based project. It provides the basic functionality to +help write tooling that generates distribution files from Python +projects. +endef + +Host/Compile=$(Py3Host/Compile/Bootstrap) + +$(eval $(call Py3Package,python3-pyproject-hooks)) +$(eval $(call BuildPackage,python3-pyproject-hooks)) +$(eval $(call BuildPackage,python3-pyproject-hooks-src)) +$(eval $(call HostBuild)) From 34fb0202f9abeb77691b18279b75640a015e871f Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Feb 2023 15:50:07 +0800 Subject: [PATCH 08/24] python-build: Add new host-only package From the documentation: A simple, correct PEP 517 build frontend. build will invoke the PEP 517 hooks to build a distribution package. It is a simple build tool and does not perform any dependency management. Signed-off-by: Jeffery To --- lang/python/python-build/Makefile | 58 +++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 lang/python/python-build/Makefile diff --git a/lang/python/python-build/Makefile b/lang/python/python-build/Makefile new file mode 100644 index 0000000000..e60023725e --- /dev/null +++ b/lang/python/python-build/Makefile @@ -0,0 +1,58 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-build +PKG_VERSION:=0.10.0 +PKG_RELEASE:=1 + +PYPI_NAME:=build +PKG_HASH:=d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca2c9269 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-installer/host \ + python-flit-core/host \ + python-packaging/host \ + python-pyproject-hooks/host \ + python-tomli/host + +PYTHON3_HOST_BUILD_VARS:=PYTHONPATH=src + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-build + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=A simple, correct Python build frontend + URL:=https://github.com/pypa/build + DEPENDS:=+python3-light +python3-logging + BUILDONLY:=1 +endef + +define Package/python3-build/description +A simple, correct PEP 517 build frontend. + +build will invoke the PEP 517 hooks to build a distribution package. It +is a simple build tool and does not perform any dependency management. +endef + +$(eval $(call Py3Package,python3-build)) +$(eval $(call BuildPackage,python3-build)) +$(eval $(call BuildPackage,python3-build-src)) +$(eval $(call HostBuild)) From afd6f8e44524a4452927c702ab272f7248b5bb17 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Feb 2023 16:19:23 +0800 Subject: [PATCH 09/24] python-wheel: Add new host-only package From the README: This library is the reference implementation of the Python wheel packaging standard, as defined in PEP 427. Signed-off-by: Jeffery To --- lang/python/python-wheel/Makefile | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 lang/python/python-wheel/Makefile diff --git a/lang/python/python-wheel/Makefile b/lang/python/python-wheel/Makefile new file mode 100644 index 0000000000..abf604a9d1 --- /dev/null +++ b/lang/python/python-wheel/Makefile @@ -0,0 +1,48 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-wheel +PKG_VERSION:=0.40.0 +PKG_RELEASE:=1 + +PYPI_NAME:=wheel +PKG_HASH:=cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-flit-core/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-wheel + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=A built-package format for Python + URL:=https://github.com/pypa/wheel + DEPENDS:=+python3-light +python3-email +python3-logging +python3-setuptools + BUILDONLY:=1 +endef + +define Package/python3-wheel/description +This library is the reference implementation of the Python wheel +packaging standard, as defined in PEP 427. +endef + +$(eval $(call Py3Package,python3-wheel)) +$(eval $(call BuildPackage,python3-wheel)) +$(eval $(call BuildPackage,python3-wheel-src)) +$(eval $(call HostBuild)) From dcf551fbcf49146186302f7267fecfacebeede53 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sat, 25 Feb 2023 19:49:25 +0800 Subject: [PATCH 10/24] python-cython: Add new host-only package The host build replaces the use of the host pip requirements file. This also updates the dependants of Cython to depend on the host build. Signed-off-by: Jeffery To --- lang/python/borgbackup/Makefile | 4 +- lang/python/host-pip-requirements/Cython.txt | 1 - lang/python/numpy/Makefile | 4 +- lang/python/python-cython/Makefile | 57 ++++++++++++++++++++ lang/python/python-yaml/Makefile | 4 +- utils/setools/Makefile | 4 +- 6 files changed, 65 insertions(+), 9 deletions(-) delete mode 100644 lang/python/host-pip-requirements/Cython.txt create mode 100644 lang/python/python-cython/Makefile diff --git a/lang/python/borgbackup/Makefile b/lang/python/borgbackup/Makefile index 9a825a3706..a8629deef1 100644 --- a/lang/python/borgbackup/Makefile +++ b/lang/python/borgbackup/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=borgbackup PKG_VERSION:=1.2.4 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=borgbackup PKG_HASH:=a4bd54e9469e81b7a30a6711423115abc818d9cd844ecb1ca0e6104bc5374da8 @@ -57,7 +57,7 @@ define Package/borgbackup/description The data deduplication technique used makes Borg suitable for daily backups since only changes are stored. The authenticated encryption technique makes it suitable for backups to not fully trusted targets. endef -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=Cython +PKG_BUILD_DEPENDS:=python-cython/host # borg setup.py shall find these via pkg-config, but depends on python pkgconfig PyPi module # which quickly becomes a nightmare to build, since it build-depends on poetry which is not diff --git a/lang/python/host-pip-requirements/Cython.txt b/lang/python/host-pip-requirements/Cython.txt deleted file mode 100644 index 5de50dd853..0000000000 --- a/lang/python/host-pip-requirements/Cython.txt +++ /dev/null @@ -1 +0,0 @@ -Cython==0.29.32 --hash=sha256:8733cf4758b79304f2a4e39ebfac5e92341bce47bcceb26c1254398b2f8c1af7 diff --git a/lang/python/numpy/Makefile b/lang/python/numpy/Makefile index 3124ca8f14..35aab8d796 100644 --- a/lang/python/numpy/Makefile +++ b/lang/python/numpy/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=numpy PKG_VERSION:=1.23.3 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=2 PYPI_NAME:=$(PKG_NAME) PKG_HASH:=51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd @@ -21,7 +21,7 @@ PKG_CPE_ID:=cpe:/a:numpy:numpy PKG_CONFIG_DEPENDS:= \ CONFIG_NUMPY_OPENBLAS_SUPPORT -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=Cython +PKG_BUILD_DEPENDS:=python-cython/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-cython/Makefile b/lang/python/python-cython/Makefile new file mode 100644 index 0000000000..99ad7d9398 --- /dev/null +++ b/lang/python/python-cython/Makefile @@ -0,0 +1,57 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-cython +PKG_VERSION:=0.29.33 +PKG_RELEASE:=1 + +PYPI_NAME:=Cython +PKG_HASH:=5040764c4a4d2ce964a395da24f0d1ae58144995dab92c6b96f44c3f4d72286a + +PKG_LICENSE:=Apache-2.0 +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-cython + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Cython compiler for writing C extensions + URL:=https://cython.org/ + DEPENDS:=+python3 + BUILDONLY:=1 +endef + +define Package/python3-cython/description +Cython is a language that makes writing C extensions for Python as easy +as Python itself. Cython is based on Pyrex, but supports more cutting +edge functionality and optimizations. + +The Cython language is very close to the Python language, but Cython +additionally supports calling C functions and declaring C types on +variables and class attributes. This allows the compiler to generate +very efficient C code from Cython code. + +This makes Cython the ideal language for wrapping external C libraries, +and for fast C modules that speed up the execution of Python code. +endef + +$(eval $(call Py3Package,python3-cython)) +$(eval $(call BuildPackage,python3-cython)) +$(eval $(call BuildPackage,python3-cython-src)) +$(eval $(call HostBuild)) diff --git a/lang/python/python-yaml/Makefile b/lang/python/python-yaml/Makefile index 1f471e03ba..4c2cbd7be4 100644 --- a/lang/python/python-yaml/Makefile +++ b/lang/python/python-yaml/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-yaml PKG_VERSION:=6.0 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=2 PYPI_NAME:=PyYAML PKG_HASH:=68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2 @@ -19,7 +19,7 @@ PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE PKG_CPE_ID:=cpe:/a:pyyaml_project:pyyaml -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=Cython +PKG_BUILD_DEPENDS:=python-cython/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/utils/setools/Makefile b/utils/setools/Makefile index 8b1b2eb8bd..2e6d3f915d 100644 --- a/utils/setools/Makefile +++ b/utils/setools/Makefile @@ -7,14 +7,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=setools PKG_VERSION:=4.4.0 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://github.com/SELinuxProject/setools/releases/download/$(PKG_VERSION) PKG_HASH:=f3786677e40b7f16a226f48f233dcf835e700739614a7dbed2ff61cc9607814e PKG_BUILD_DIR:=$(BUILD_DIR)/setools -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=Cython # Cython>=0.27 +PKG_BUILD_DEPENDS:=python-cython/host # Cython>=0.27 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later From 790beee4305f735e72bd0315fc0f2d428ec6b82b Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sat, 25 Feb 2023 19:55:59 +0800 Subject: [PATCH 11/24] python-ply: Add host build The host build replaces the use of the host pip requirements file. This also updates the dependants of ply to depend on the host build. Signed-off-by: Jeffery To --- lang/python/host-pip-requirements/ply.txt | 1 - lang/python/python-ply/Makefile | 7 ++++++- lang/python/python-pycparser/Makefile | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) delete mode 100644 lang/python/host-pip-requirements/ply.txt diff --git a/lang/python/host-pip-requirements/ply.txt b/lang/python/host-pip-requirements/ply.txt deleted file mode 100644 index 807e19e141..0000000000 --- a/lang/python/host-pip-requirements/ply.txt +++ /dev/null @@ -1 +0,0 @@ -ply==3.11 --hash=sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3 diff --git a/lang/python/python-ply/Makefile b/lang/python/python-ply/Makefile index 6a0b283eb8..002bfa96ef 100644 --- a/lang/python/python-ply/Makefile +++ b/lang/python/python-ply/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015-2018 OpenWrt.org +# Copyright (C) 2015-2016, 2018, 2023 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -18,9 +18,13 @@ PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=README.md PKG_MAINTAINER:=Jeffery To +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk include ../python3-package.mk +include ../python3-host-build.mk define Package/python3-ply SECTION:=lang @@ -39,3 +43,4 @@ endef $(eval $(call Py3Package,python3-ply)) $(eval $(call BuildPackage,python3-ply)) $(eval $(call BuildPackage,python3-ply-src)) +$(eval $(call HostBuild)) diff --git a/lang/python/python-pycparser/Makefile b/lang/python/python-pycparser/Makefile index c0da351577..e3720a963c 100644 --- a/lang/python/python-pycparser/Makefile +++ b/lang/python/python-pycparser/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pycparser PKG_VERSION:=2.21 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=pycparser PKG_HASH:=e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 @@ -18,7 +18,7 @@ PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Jeffery To -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=ply # ply==3.10 +PKG_BUILD_DEPENDS:=python-ply/host # ply==3.10 include ../pypi.mk include $(INCLUDE_DIR)/package.mk From 8f32fd202e2369ad5f8c33e45fb2d2f846613631 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sat, 25 Feb 2023 19:59:40 +0800 Subject: [PATCH 12/24] python-pycparser: Add host build Signed-off-by: Jeffery To --- lang/python/python-pycparser/Makefile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lang/python/python-pycparser/Makefile b/lang/python/python-pycparser/Makefile index e3720a963c..5085372dc4 100644 --- a/lang/python/python-pycparser/Makefile +++ b/lang/python/python-pycparser/Makefile @@ -19,10 +19,18 @@ PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Jeffery To PKG_BUILD_DEPENDS:=python-ply/host # ply==3.10 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-wheel/host \ + python-ply/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk include ../python3-package.mk +include ../python3-host-build.mk define Package/python3-pycparser SECTION:=lang @@ -44,3 +52,4 @@ endef $(eval $(call Py3Package,python3-pycparser)) $(eval $(call BuildPackage,python3-pycparser)) $(eval $(call BuildPackage,python3-pycparser-src)) +$(eval $(call HostBuild)) From aabe27a3793dab740a486611c656b56db68f95da Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sat, 25 Feb 2023 21:21:53 +0800 Subject: [PATCH 13/24] python-cffi: Update to 1.15.1, add host build The host build replaces the use of the host pip requirements file. This also updates the dependants of cffi to depend on the host build. Signed-off-by: Jeffery To --- lang/python/bcrypt/Makefile | 5 ++--- lang/python/host-pip-requirements/cffi.txt | 2 -- lang/python/python-augeas/Makefile | 4 ++-- lang/python/python-cffi/Makefile | 18 ++++++++++++++---- lang/python/python-cryptography/Makefile | 8 +++----- lang/python/python-pycares/Makefile | 6 ++---- lang/python/python-pynacl/Makefile | 6 ++---- 7 files changed, 25 insertions(+), 24 deletions(-) delete mode 100644 lang/python/host-pip-requirements/cffi.txt diff --git a/lang/python/bcrypt/Makefile b/lang/python/bcrypt/Makefile index 62312343f8..9e49ce333a 100644 --- a/lang/python/bcrypt/Makefile +++ b/lang/python/bcrypt/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bcrypt PKG_VERSION:=3.1.7 -PKG_RELEASE:=4 +PKG_RELEASE:=5 PYPI_NAME:=$(PKG_NAME) PKG_HASH:=0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42 @@ -15,8 +15,7 @@ PKG_HASH:=0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE -PKG_BUILD_DEPENDS:=libffi/host -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=cffi # cffi>=1.1 +PKG_BUILD_DEPENDS:=libffi/host python-cffi/host # cffi>=1.1 include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/host-pip-requirements/cffi.txt b/lang/python/host-pip-requirements/cffi.txt deleted file mode 100644 index 94ef13b55a..0000000000 --- a/lang/python/host-pip-requirements/cffi.txt +++ /dev/null @@ -1,2 +0,0 @@ -cffi==1.15.0 --hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 -pycparser==2.21 --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 diff --git a/lang/python/python-augeas/Makefile b/lang/python/python-augeas/Makefile index dab2d5e91e..e366d429bf 100644 --- a/lang/python/python-augeas/Makefile +++ b/lang/python/python-augeas/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-augeas PKG_VERSION:=1.1.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=python-augeas PKG_HASH:=5194a49e86b40ffc57055f73d833f87e39dce6fce934683e7d0d5bbb8eff3b8c @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=LGPL-2.1-or-later PKG_LICENSE_FILES:=COPYING -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=cffi # cffi>=1.0.0 +PKG_BUILD_DEPENDS:=python-cffi/host # cffi>=1.0.0 include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-cffi/Makefile b/lang/python/python-cffi/Makefile index 41549e9223..b14ef8099e 100644 --- a/lang/python/python-cffi/Makefile +++ b/lang/python/python-cffi/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015-2018 OpenWrt.org +# Copyright (C) 2015-2016, 2018-2021, 2023 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,19 +8,28 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-cffi -PKG_VERSION:=1.15.0 -PKG_RELEASE:=$(AUTORELEASE) +PKG_VERSION:=1.15.1 +PKG_RELEASE:=1 PYPI_NAME:=cffi -PKG_HASH:=920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 +PKG_HASH:=d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Jeffery To +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-wheel/host \ + python-pycparser/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk include ../python3-package.mk +include ../python3-host-build.mk define Package/python3-cffi SECTION:=lang @@ -41,3 +50,4 @@ endef $(eval $(call Py3Package,python3-cffi)) $(eval $(call BuildPackage,python3-cffi)) $(eval $(call BuildPackage,python3-cffi-src)) +$(eval $(call HostBuild)) diff --git a/lang/python/python-cryptography/Makefile b/lang/python/python-cryptography/Makefile index f9805d1b38..eca9394584 100644 --- a/lang/python/python-cryptography/Makefile +++ b/lang/python/python-cryptography/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015-2018 OpenWrt.org +# Copyright (C) 2015-2016, 2018-2023 Jeffery To # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-cryptography PKG_VERSION:=3.4.8 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PYPI_NAME:=cryptography PKG_HASH:=94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c @@ -18,9 +18,7 @@ PKG_LICENSE:=Apache-2.0 BSD-3-Clause PKG_LICENSE_FILES:=LICENSE.APACHE LICENSE.BSD PKG_MAINTAINER:=Jeffery To -PKG_BUILD_DEPENDS:=libffi/host - -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=cffi # cffi>=1.12 +PKG_BUILD_DEPENDS:=libffi/host python-cffi/host # cffi>=1.12 include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-pycares/Makefile b/lang/python/python-pycares/Makefile index 2eed1c2b10..c3516f73f4 100644 --- a/lang/python/python-pycares/Makefile +++ b/lang/python/python-pycares/Makefile @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pycares PKG_VERSION:=4.3.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=pycares PKG_HASH:=c542696f6dac978e9d99192384745a65f80a7d9450501151e4a7563e06010d45 @@ -12,9 +12,7 @@ PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Fabian Lipken -PKG_BUILD_DEPENDS:=libffi/host - -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=cffi # cffi>=1.5.0 +PKG_BUILD_DEPENDS:=libffi/host python-cffi/host # cffi>=1.5.0 include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-pynacl/Makefile b/lang/python/python-pynacl/Makefile index 6635f4935e..d3469cc43d 100644 --- a/lang/python/python-pynacl/Makefile +++ b/lang/python/python-pynacl/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pynacl PKG_VERSION:=1.5.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=PyNaCl PKG_HASH:=8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba @@ -11,9 +11,7 @@ PKG_MAINTAINER:=Javier Marcet PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE -PKG_BUILD_DEPENDS:=libffi/host - -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=cffi # cffi>=1.4.1 +PKG_BUILD_DEPENDS:=libffi/host python-cffi/host # cffi>=1.4.1 PYTHON3_PKG_SETUP_VARS:= SODIUM_INSTALL=system From abf3f3d77c53f3c8fb564b38120366f286d5a5ed Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Feb 2023 16:54:39 +0800 Subject: [PATCH 14/24] python-typing-extensions: Add host build Signed-off-by: Jeffery To --- lang/python/python-typing-extensions/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lang/python/python-typing-extensions/Makefile b/lang/python/python-typing-extensions/Makefile index b60c9ad10c..5f511d54bb 100644 --- a/lang/python/python-typing-extensions/Makefile +++ b/lang/python/python-typing-extensions/Makefile @@ -19,9 +19,13 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=PSF-2.0 PKG_LICENSE_FILES:=LICENSE +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk include ../python3-package.mk +include ../python3-host-build.mk define Package/python3-typing-extensions SUBMENU:=Python @@ -40,3 +44,4 @@ endef $(eval $(call Py3Package,python3-typing-extensions)) $(eval $(call BuildPackage,python3-typing-extensions)) $(eval $(call BuildPackage,python3-typing-extensions-src)) +$(eval $(call HostBuild)) From 3ee4e7297cf07b644bac3dfafc508da5f31bf63d Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 17 Feb 2023 08:49:36 +0800 Subject: [PATCH 15/24] python-setuptools-scm: Add new host-only package The host build replaces the use of the host pip requirements file. This also updates the dependants of setuptools-scm to depend on the host build. This also removes the toml host pip requirements file as toml is not used by any other package. Signed-off-by: Jeffery To --- .../host-pip-requirements/setuptools-scm.txt | 1 - lang/python/host-pip-requirements/toml.txt | 1 - lang/python/python-apipkg/Makefile | 4 +- lang/python/python-bidict/Makefile | 4 +- lang/python/python-dateutil/Makefile | 4 +- lang/python/python-execnet/Makefile | 4 +- lang/python/python-iniconfig/Makefile | 4 +- lang/python/python-jsonschema/Makefile | 4 +- lang/python/python-pluggy/Makefile | 4 +- lang/python/python-psutil/Makefile | 4 +- lang/python/python-py/Makefile | 4 +- lang/python/python-pytest-forked/Makefile | 4 +- lang/python/python-pytest-xdist/Makefile | 4 +- lang/python/python-pytest/Makefile | 4 +- lang/python/python-setuptools-scm/Makefile | 68 +++++++++++++++++++ lang/python/python-zipp/Makefile | 4 +- net/onionshare-cli/Makefile | 4 +- utils/apparmor/Makefile | 7 +- 18 files changed, 98 insertions(+), 35 deletions(-) delete mode 100644 lang/python/host-pip-requirements/setuptools-scm.txt delete mode 100644 lang/python/host-pip-requirements/toml.txt create mode 100644 lang/python/python-setuptools-scm/Makefile diff --git a/lang/python/host-pip-requirements/setuptools-scm.txt b/lang/python/host-pip-requirements/setuptools-scm.txt deleted file mode 100644 index 83b57e1d31..0000000000 --- a/lang/python/host-pip-requirements/setuptools-scm.txt +++ /dev/null @@ -1 +0,0 @@ -setuptools-scm==6.0.1 --hash=sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92 diff --git a/lang/python/host-pip-requirements/toml.txt b/lang/python/host-pip-requirements/toml.txt deleted file mode 100644 index 108bf1007e..0000000000 --- a/lang/python/host-pip-requirements/toml.txt +++ /dev/null @@ -1 +0,0 @@ -toml==0.10.2 --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f diff --git a/lang/python/python-apipkg/Makefile b/lang/python/python-apipkg/Makefile index 2e905a8932..b337818312 100644 --- a/lang/python/python-apipkg/Makefile +++ b/lang/python/python-apipkg/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-apipkg PKG_VERSION:=1.5 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PYPI_NAME:=apipkg PKG_HASH:=37228cda29411948b422fae072f57e31d3396d2ee1c9783775980ee9c9990af6 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-bidict/Makefile b/lang/python/python-bidict/Makefile index b6735b82fa..f95eb07e98 100644 --- a/lang/python/python-bidict/Makefile +++ b/lang/python/python-bidict/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-bidict PKG_VERSION:=0.21.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=bidict PKG_HASH:=4fa46f7ff96dc244abfc437383d987404ae861df797e2fd5b190e233c302be09 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MPL-2.0 PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-dateutil/Makefile b/lang/python/python-dateutil/Makefile index 394a307b6f..57e8a95aa8 100644 --- a/lang/python/python-dateutil/Makefile +++ b/lang/python/python-dateutil/Makefile @@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-dateutil PKG_VERSION:=2.8.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_LICENSE:=BSD-2-Clause PYPI_NAME:=$(PKG_NAME) PKG_HASH:=0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 PKG_MAINTAINER:=Alexandru Ardelean -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-execnet/Makefile b/lang/python/python-execnet/Makefile index 1b45788d47..b82b4fd9f6 100644 --- a/lang/python/python-execnet/Makefile +++ b/lang/python/python-execnet/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-execnet PKG_VERSION:=1.8.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=execnet PKG_HASH:=b73c5565e517f24b62dea8a5ceac178c661c4309d3aa0c3e420856c072c411b4 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-iniconfig/Makefile b/lang/python/python-iniconfig/Makefile index 5d5da76172..98cd0cd7a0 100644 --- a/lang/python/python-iniconfig/Makefile +++ b/lang/python/python-iniconfig/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-iniconfig PKG_VERSION:=1.1.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=iniconfig PKG_HASH:=bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-jsonschema/Makefile b/lang/python/python-jsonschema/Makefile index 4167ef29c0..67121c7a5d 100644 --- a/lang/python/python-jsonschema/Makefile +++ b/lang/python/python-jsonschema/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-jsonschema PKG_VERSION:=4.17.3 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=jsonschema PKG_HASH:=0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d @@ -11,7 +11,7 @@ PKG_MAINTAINER:=Javier Marcet PKG_LICENSE:=MIT PKG_LICENSE_FILES:=COPYING -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-pluggy/Makefile b/lang/python/python-pluggy/Makefile index f9d3c39d61..31820e35e6 100644 --- a/lang/python/python-pluggy/Makefile +++ b/lang/python/python-pluggy/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pluggy PKG_VERSION:=0.13.1 -PKG_RELEASE:=4 +PKG_RELEASE:=5 PYPI_NAME:=pluggy PKG_HASH:=15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-psutil/Makefile b/lang/python/python-psutil/Makefile index 59b4f0fd14..07baf6693f 100644 --- a/lang/python/python-psutil/Makefile +++ b/lang/python/python-psutil/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-psutil PKG_VERSION:=5.9.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=psutil PKG_HASH:=869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-py/Makefile b/lang/python/python-py/Makefile index ca20dbba6c..c909e10e83 100644 --- a/lang/python/python-py/Makefile +++ b/lang/python/python-py/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-py PKG_VERSION:=1.10.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=py PKG_HASH:=21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-pytest-forked/Makefile b/lang/python/python-pytest-forked/Makefile index dba2daa8fb..55edae8f59 100644 --- a/lang/python/python-pytest-forked/Makefile +++ b/lang/python/python-pytest-forked/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pytest-forked PKG_VERSION:=1.3.0 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PYPI_NAME:=pytest-forked PKG_HASH:=6aa9ac7e00ad1a539c41bec6d21011332de671e938c7637378ec9710204e37ca @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-pytest-xdist/Makefile b/lang/python/python-pytest-xdist/Makefile index c73229bee5..2aaf5551a4 100644 --- a/lang/python/python-pytest-xdist/Makefile +++ b/lang/python/python-pytest-xdist/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pytest-xdist PKG_VERSION:=2.2.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=pytest-xdist PKG_HASH:=718887296892f92683f6a51f25a3ae584993b06f7076ce1e1fd482e59a8220a2 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-pytest/Makefile b/lang/python/python-pytest/Makefile index 7a91b4f637..108cb7f0c1 100644 --- a/lang/python/python-pytest/Makefile +++ b/lang/python/python-pytest/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pytest PKG_VERSION:=6.2.3 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=pytest PKG_HASH:=671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634 @@ -18,7 +18,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-setuptools-scm/Makefile b/lang/python/python-setuptools-scm/Makefile new file mode 100644 index 0000000000..c9a0ec78d9 --- /dev/null +++ b/lang/python/python-setuptools-scm/Makefile @@ -0,0 +1,68 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-setuptools-scm +PKG_VERSION:=7.1.0 +PKG_RELEASE:=1 + +PYPI_NAME:=setuptools-scm +PYPI_SOURCE_NAME:=setuptools_scm +PKG_HASH:=6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-wheel/host \ + python-packaging/host \ + python-tomli/host \ + python-typing-extensions/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-setuptools-scm + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=the blessed package to manage your versions by scm tags + URL:=https://github.com/pypa/setuptools_scm + DEPENDS:= \ + +python3-light \ + +python3-logging \ + +python3-packaging \ + +python3-setuptools \ + +python3-tomli \ + +python3-typing-extensions + BUILDONLY:=1 +endef + +define Package/python3-setuptools-scm/description +setuptools_scm extracts Python package versions from git or hg metadata +instead of declaring them as the version argument or in a SCM managed +file. + +Additionally setuptools_scm provides setuptools with a list of files +that are managed by the SCM (i.e. it automatically adds all of the +SCM-managed files to the sdist). Unwanted files must be excluded by +discarding them via MANIFEST.in. +endef + +$(eval $(call Py3Package,python3-setuptools-scm)) +$(eval $(call BuildPackage,python3-setuptools-scm)) +$(eval $(call BuildPackage,python3-setuptools-scm-src)) +$(eval $(call HostBuild)) diff --git a/lang/python/python-zipp/Makefile b/lang/python/python-zipp/Makefile index 17c442952f..3d48b31c31 100644 --- a/lang/python/python-zipp/Makefile +++ b/lang/python/python-zipp/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-zipp PKG_VERSION:=3.4.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=zipp PKG_HASH:=3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76 @@ -11,7 +11,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm toml # setuptools_scm[toml] >= 3.4.1 +PKG_BUILD_DEPENDS:=python-setuptools-scm/host # setuptools_scm[toml] >= 3.4.1 include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/net/onionshare-cli/Makefile b/net/onionshare-cli/Makefile index 60e7b3b122..9acbec99fc 100644 --- a/net/onionshare-cli/Makefile +++ b/net/onionshare-cli/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=onionshare-cli PKG_VERSION:=2.3.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=onionshare-cli PYPI_SOURCE_NAME:=onionshare_cli @@ -19,7 +19,7 @@ PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE_FILES:=LICENSE -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm toml +PKG_BUILD_DEPENDS:=python-setuptools-scm/host include ../../lang/python/pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/utils/apparmor/Makefile b/utils/apparmor/Makefile index a77a17b800..f812d2a2e3 100644 --- a/utils/apparmor/Makefile +++ b/utils/apparmor/Makefile @@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=apparmor PKG_VERSION:=3.0.3 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=5 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://gitlab.com/apparmor/apparmor/-/archive/v$(PKG_VERSION) @@ -15,8 +15,7 @@ PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Oskari Rauta -PKG_BUILD_DEPENDS:=swig/host -HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm +PKG_BUILD_DEPENDS:=swig/host python-setuptools-scm/host include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk @@ -131,8 +130,6 @@ define Build/Compile endef define Build/Install - # Make sure we have python's setup tools installed - $(call Py3Build/InstallBuildDepends) $(INSTALL_DIR) $(PKG_INSTALL_DIR)-libapparmor $(PKG_INSTALL_DIR)-utils $(PKG_INSTALL_DIR)-profiles # Installing libapparmor +$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \ From 82766de815963cf8fec3e6b3e0d6f97435aef755 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Feb 2023 19:31:50 +0800 Subject: [PATCH 16/24] python-poetry-core: Add new host-only package From the README: A PEP 517 build backend implementation developed for Poetry. This project is intended to be a light weight, fully compliant, self-contained package allowing PEP 517 compatible build frontends to build Poetry managed projects. Signed-off-by: Jeffery To --- lang/python/python-poetry-core/Makefile | 51 +++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 lang/python/python-poetry-core/Makefile diff --git a/lang/python/python-poetry-core/Makefile b/lang/python/python-poetry-core/Makefile new file mode 100644 index 0000000000..6cdb6d285d --- /dev/null +++ b/lang/python/python-poetry-core/Makefile @@ -0,0 +1,51 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-poetry-core +PKG_VERSION:=1.5.2 +PKG_RELEASE:=1 + +PYPI_NAME:=poetry-core +PYPI_SOURCE_NAME:=poetry_core +PKG_HASH:=c6556c3b1ec5b8668e6ef5a4494726bc41d31907339425e194e78a6178436c14 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-poetry-core + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Poetry PEP 517 Build Backend + URL:=https://github.com/python-poetry/poetry-core + DEPENDS:=+python3 + BUILDONLY:=1 +endef + +define Package/python3-poetry-core/description +A PEP 517 build backend implementation developed for Poetry. This +project is intended to be a light weight, fully compliant, +self-contained package allowing PEP 517 compatible build frontends to +build Poetry managed projects. +endef + +$(eval $(call Py3Package,python3-poetry-core)) +$(eval $(call BuildPackage,python3-poetry-core)) +$(eval $(call BuildPackage,python3-poetry-core-src)) +$(eval $(call HostBuild)) From bbc9b144700accb5041e34c27ab53265c1290495 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Feb 2023 19:39:38 +0800 Subject: [PATCH 17/24] python-flit-scm: Add new host-only package From the README: A PEP 518 build backend that uses setuptools_scm to generate a version file from your version control system, then flit_core to build the package. Signed-off-by: Jeffery To --- lang/python/python-flit-scm/Makefile | 56 ++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 lang/python/python-flit-scm/Makefile diff --git a/lang/python/python-flit-scm/Makefile b/lang/python/python-flit-scm/Makefile new file mode 100644 index 0000000000..57660f79bb --- /dev/null +++ b/lang/python/python-flit-scm/Makefile @@ -0,0 +1,56 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-flit-scm +PKG_VERSION:=1.7.0 +PKG_RELEASE:=1 + +PYPI_NAME:=flit-scm +PYPI_SOURCE_NAME:=flit_scm +PKG_HASH:=961bd6fb24f31bba75333c234145fff88e6de0a90fc0f7e5e7c79deca69f6bb2 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-flit-core/host \ + python-setuptools-scm/host \ + python-tomli/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-flit-scm + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=A PEP 518 build backend that uses setuptools_scm and flit + URL:=https://gitlab.com/WillDaSilva/flit_scm + DEPENDS:=+python3-light +python3-flit-core +python3-setuptools-scm +python3-tomli + BUILDONLY:=1 +endef + +define Package/python3-flit-scm/description +A PEP 518 build backend that uses setuptools_scm to generate a version +file from your version control system, then flit_core to build the +package. +endef + +$(eval $(call Py3Package,python3-flit-scm)) +$(eval $(call BuildPackage,python3-flit-scm)) +$(eval $(call BuildPackage,python3-flit-scm-src)) +$(eval $(call HostBuild)) From 4465e57e5d8ce0cc9a153a0666c5a38d00fa2e8a Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 1 Mar 2023 01:29:40 +0800 Subject: [PATCH 18/24] python-editables: Add new host-only package From the README: A Python library for creating "editable wheels" This library supports the building of wheels which, when installed, will expose packages in a local directory on sys.path in "editable mode". In other words, changes to the package source will be reflected in the package visible to Python, without needing a reinstall. Signed-off-by: Jeffery To --- lang/python/python-editables/Makefile | 52 +++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 lang/python/python-editables/Makefile diff --git a/lang/python/python-editables/Makefile b/lang/python/python-editables/Makefile new file mode 100644 index 0000000000..dc0547ed31 --- /dev/null +++ b/lang/python/python-editables/Makefile @@ -0,0 +1,52 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-editables +PKG_VERSION:=0.3 +PKG_RELEASE:=1 + +PYPI_NAME:=editables +PKG_HASH:=167524e377358ed1f1374e61c268f0d7a4bf7dbd046c656f7b410cde16161b1a + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-editables + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Editable installations + URL:=https://github.com/pfmoore/editables + DEPENDS:=+python3-light + BUILDONLY:=1 +endef + +define Package/python3-editables/description +A Python library for creating "editable wheels" + +This library supports the building of wheels which, when installed, will +expose packages in a local directory on sys.path in "editable mode". In +other words, changes to the package source will be reflected in the +package visible to Python, without needing a reinstall. +endef + +$(eval $(call Py3Package,python3-editables)) +$(eval $(call BuildPackage,python3-editables)) +$(eval $(call BuildPackage,python3-editables-src)) +$(eval $(call HostBuild)) From a1cfdba19cde26fa79c8558f0b4a396d690c6c1a Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 1 Mar 2023 01:44:39 +0800 Subject: [PATCH 19/24] python-pathspec: Add new host-only package From the README: pathspec is a utility library for pattern matching of file paths. So far this only includes Git's wildmatch pattern matching which itself is derived from Rsync's wildmatch. Git uses wildmatch for its gitignore files. Signed-off-by: Jeffery To --- lang/python/python-pathspec/Makefile | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lang/python/python-pathspec/Makefile diff --git a/lang/python/python-pathspec/Makefile b/lang/python/python-pathspec/Makefile new file mode 100644 index 0000000000..86bde00b89 --- /dev/null +++ b/lang/python/python-pathspec/Makefile @@ -0,0 +1,50 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-pathspec +PKG_VERSION:=0.11.1 +PKG_RELEASE:=1 + +PYPI_NAME:=pathspec +PKG_HASH:=2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687 + +PKG_LICENSE:=MPL-2.0 +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-flit-core/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-pathspec + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=gitignore style pattern matching of file paths + URL:=https://github.com/cpburnz/python-pathspec + DEPENDS:=+python3-light + BUILDONLY:=1 +endef + +define Package/python3-pathspec/description +pathspec is a utility library for pattern matching of file paths. So far +this only includes Git's wildmatch pattern matching which itself is +derived from Rsync's wildmatch. Git uses wildmatch for its gitignore +files. +endef + +$(eval $(call Py3Package,python3-pathspec)) +$(eval $(call BuildPackage,python3-pathspec)) +$(eval $(call BuildPackage,python3-pathspec-src)) +$(eval $(call HostBuild)) From b453daa336edba33d6f8a4faaf1f1bdb6856c539 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sun, 19 Feb 2023 17:19:44 +0800 Subject: [PATCH 20/24] python-pluggy: Update to 1.0.0, add host build, add myself as maintainer This also marks python3-pytest as BROKEN (for now) as the in-tree version is not compatible with this version of pluggy. Signed-off-by: Jeffery To --- lang/python/python-pluggy/Makefile | 17 +++++++++++++---- lang/python/python-pytest/Makefile | 3 ++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lang/python/python-pluggy/Makefile b/lang/python/python-pluggy/Makefile index 31820e35e6..d035c9abec 100644 --- a/lang/python/python-pluggy/Makefile +++ b/lang/python/python-pluggy/Makefile @@ -8,21 +8,29 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pluggy -PKG_VERSION:=0.13.1 -PKG_RELEASE:=5 +PKG_VERSION:=1.0.0 +PKG_RELEASE:=1 PYPI_NAME:=pluggy -PKG_HASH:=15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0 +PKG_HASH:=4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159 -PKG_MAINTAINER:=Jan Pavlinec +PKG_MAINTAINER:=Jan Pavlinec , Jeffery To PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE PKG_BUILD_DEPENDS:=python-setuptools-scm/host +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-wheel/host \ + python-setuptools-scm/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk include ../python3-package.mk +include ../python3-host-build.mk define Package/python3-pluggy SUBMENU:=Python @@ -40,3 +48,4 @@ endef $(eval $(call Py3Package,python3-pluggy)) $(eval $(call BuildPackage,python3-pluggy)) $(eval $(call BuildPackage,python3-pluggy-src)) +$(eval $(call HostBuild)) diff --git a/lang/python/python-pytest/Makefile b/lang/python/python-pytest/Makefile index 108cb7f0c1..bbd8f8819b 100644 --- a/lang/python/python-pytest/Makefile +++ b/lang/python/python-pytest/Makefile @@ -38,7 +38,8 @@ define Package/python3-pytest +python3-pluggy \ +python3-packaging \ +python3-toml \ - +python3-iniconfig + +python3-iniconfig \ + @BROKEN endef define Package/python3-pytest/description From 5e832f44fc5d36fcb5b1f52f2bec60ccd3466efa Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 1 Mar 2023 01:50:34 +0800 Subject: [PATCH 21/24] python-hatchling: Add new host-only package From the README: This is the extensible, standards compliant build backend used by Hatch. Signed-off-by: Jeffery To --- lang/python/python-hatchling/Makefile | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 lang/python/python-hatchling/Makefile diff --git a/lang/python/python-hatchling/Makefile b/lang/python/python-hatchling/Makefile new file mode 100644 index 0000000000..6ba6c63c18 --- /dev/null +++ b/lang/python/python-hatchling/Makefile @@ -0,0 +1,62 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-hatchling +PKG_VERSION:=1.13.0 +PKG_RELEASE:=1 + +PYPI_NAME:=hatchling +PKG_HASH:=f8d275a2cc720735286b7c2e2bc35da05761e6d3695c2fa416550395f10c53c7 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-editables/host \ + python-packaging/host \ + python-pathspec/host \ + python-pluggy/host \ + python-tomli/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-hatchling + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Modern, extensible Python build backend + URL:=https://hatch.pypa.io/latest/ + DEPENDS:= \ + +python3-light \ + +python3-email \ + +python3-editables \ + +python3-packaging \ + +python3-pathspec \ + +python3-pluggy \ + +python3-tomli + BUILDONLY:=1 +endef + +define Package/python3-hatchling/description +This is the extensible, standards compliant build backend used by Hatch. +endef + +$(eval $(call Py3Package,python3-hatchling)) +$(eval $(call BuildPackage,python3-hatchling)) +$(eval $(call BuildPackage,python3-hatchling-src)) +$(eval $(call HostBuild)) From fb48859907be034284890e63901893c32db26b8c Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 1 Mar 2023 01:55:46 +0800 Subject: [PATCH 22/24] python-hatch-vcs: Add new host-only package From the README: This provides a plugin for Hatch that uses your preferred version control system (like Git) to determine project versions. Signed-off-by: Jeffery To --- lang/python/python-hatch-vcs/Makefile | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lang/python/python-hatch-vcs/Makefile diff --git a/lang/python/python-hatch-vcs/Makefile b/lang/python/python-hatch-vcs/Makefile new file mode 100644 index 0000000000..39f890985a --- /dev/null +++ b/lang/python/python-hatch-vcs/Makefile @@ -0,0 +1,54 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-hatch-vcs +PKG_VERSION:=0.3.0 +PKG_RELEASE:=1 + +PYPI_NAME:=hatch-vcs +PYPI_SOURCE_NAME:=hatch_vcs +PKG_HASH:=cec5107cfce482c67f8bc96f18bbc320c9aa0d068180e14ad317bbee5a153fee + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-hatchling/host \ + python-setuptools-scm/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-hatch-vcs + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Hatch plugin for versioning with your preferred VCS + URL:=https://github.com/ofek/hatch-vcs + DEPENDS:=+python3-light +python3-hatchling +python3-setuptools-scm + BUILDONLY:=1 +endef + +define Package/python3-hatch-vcs/description +This provides a plugin for Hatch that uses your preferred version +control system (like Git) to determine project versions. +endef + +$(eval $(call Py3Package,python3-hatch-vcs)) +$(eval $(call BuildPackage,python3-hatch-vcs)) +$(eval $(call BuildPackage,python3-hatch-vcs-src)) +$(eval $(call HostBuild)) From 6294cf26c7eaf76b97da8c1e29b86b31316fa054 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Wed, 1 Mar 2023 02:02:57 +0800 Subject: [PATCH 23/24] python-hatch-fancy-pypi-readme: Add new host-only package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the README: hatch-fancy-pypi-readme is a Hatch metadata plugin for everyone who cares about the first impression of their project’s PyPI landing page. It allows you to define your PyPI project description in terms of concatenated fragments that are based on static strings, files, and most importantly: parts of files defined using cut-off points or regular expressions. Once you’ve assembled your readme, you can additionally run regular expression-based substitutions over it. For instance to make relative links absolute or to linkify users and issue numbers in your changelog. Signed-off-by: Jeffery To --- .../python-hatch-fancy-pypi-readme/Makefile | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 lang/python/python-hatch-fancy-pypi-readme/Makefile diff --git a/lang/python/python-hatch-fancy-pypi-readme/Makefile b/lang/python/python-hatch-fancy-pypi-readme/Makefile new file mode 100644 index 0000000000..4a2ab871d3 --- /dev/null +++ b/lang/python/python-hatch-fancy-pypi-readme/Makefile @@ -0,0 +1,62 @@ +# +# Copyright (C) 2023 Jeffery To +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-hatch-fancy-pypi-readme +PKG_VERSION:=22.8.0 +PKG_RELEASE:=1 + +PYPI_NAME:=hatch-fancy-pypi-readme +PYPI_SOURCE_NAME:=hatch_fancy_pypi_readme +PKG_HASH:=da91282ca09601c18aded8e378daf8b578c70214866f0971156ee9bb9ce6c26a + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Jeffery To + +PKG_HOST_ONLY:=1 +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-build/host \ + python-installer/host \ + python-hatchling/host \ + python-tomli/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-hatch-fancy-pypi-readme + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Fancy PyPI READMEs with Hatch + URL:=https://github.com/hynek/hatch-fancy-pypi-readme + DEPENDS:=+python3-light +python3-hatchling +python3-tomli + BUILDONLY:=1 +endef + +define Package/python3-hatch-fancy-pypi-readme/description +hatch-fancy-pypi-readme is a Hatch metadata plugin for everyone who +cares about the first impression of their project’s PyPI landing page. +It allows you to define your PyPI project description in terms of +concatenated fragments that are based on static strings, files, and most +importantly: parts of files defined using cut-off points or regular +expressions. + +Once you’ve assembled your readme, you can additionally run regular +expression-based substitutions over it. For instance to make relative +links absolute or to linkify users and issue numbers in your changelog. +endef + +$(eval $(call Py3Package,python3-hatch-fancy-pypi-readme)) +$(eval $(call BuildPackage,python3-hatch-fancy-pypi-readme)) +$(eval $(call BuildPackage,python3-hatch-fancy-pypi-readme-src)) +$(eval $(call HostBuild)) From 8c2abb74031e2403dde83536a8e7f13c63cdd4ab Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Mon, 20 Feb 2023 19:10:39 +0800 Subject: [PATCH 24/24] python: Better host pip options pip by default will read system-wide and per-user configuration files[1]. Setting PIP_CONFIG_FILE=/dev/null instructs pip to not read any config files[2]. pip will spawn child processes of itself to do work, but not all options are passed down to the child processes[3]. Setting global options as environment variables[4] ensures they are passed down to any child processes. [1]: https://pip.pypa.io/en/stable/topics/configuration/#configuration-files [2]: https://pip.pypa.io/en/stable/topics/configuration/#pip-config-file [3]: https://github.com/pypa/pip/issues/9081#issue-733819665 [4]: https://pip.pypa.io/en/stable/topics/configuration/#environment-variables Signed-off-by: Jeffery To --- lang/python/python3-host.mk | 9 +++++++-- lang/python/python3/Makefile | 8 ++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lang/python/python3-host.mk b/lang/python/python3-host.mk index 8dc5e732fd..54f9bde1e1 100644 --- a/lang/python/python3-host.mk +++ b/lang/python/python3-host.mk @@ -93,6 +93,11 @@ HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION) HOST_PYTHON3_PIP_CACHE_DIR:=$(DL_DIR)/pip-cache +HOST_PYTHON3_PIP_VARS:= \ + PIP_CACHE_DIR="$(HOST_PYTHON3_PIP_CACHE_DIR)" \ + PIP_CONFIG_FILE=/dev/null \ + PIP_DISABLE_PIP_VERSION_CHECK=1 + define SetupPyShim if [ -f $(1)/pyproject.toml ] && [ ! -f $(1)/setup.py ] ; then \ $(CP) $(python3_mk_path)setup.py.shim $(1)setup.py ; \ @@ -104,11 +109,11 @@ endef define HostPython3/PipInstall $(call locked, \ $(HOST_PYTHON3_VARS) \ + $(HOST_PYTHON3_PIP_VARS) \ $(HOST_PYTHON3_PIP) \ - --cache-dir "$(HOST_PYTHON3_PIP_CACHE_DIR)" \ - --disable-pip-version-check \ install \ --no-binary :all: \ + --progress-bar off \ --require-hashes \ $(1) \ $(if $(CONFIG_PYTHON3_HOST_PIP_CACHE_WORLD_READABLE), \ diff --git a/lang/python/python3/Makefile b/lang/python/python3/Makefile index aa2f2624f0..b666c41121 100644 --- a/lang/python/python3/Makefile +++ b/lang/python/python3/Makefile @@ -179,11 +179,11 @@ endif ifeq ($(PYTHON3_SETUPTOOLS_BUILD),1) define Build/Compile/python3-setuptools + $(HOST_PYTHON3_PIP_VARS) \ $(HOST_PYTHON3_PIP) \ - --disable-pip-version-check \ - --cache-dir "$(DL_DIR)/pip-cache" \ install \ --ignore-installed \ + --progress-bar off \ --root=$(PKG_BUILD_DIR)/install-setuptools \ --prefix=/usr \ $(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/setuptools-$(PYTHON3_SETUPTOOLS_VERSION)-py3-none-any.whl @@ -197,11 +197,11 @@ endif # CONFIG_PACKAGE_python3-setuptools ifdef CONFIG_PACKAGE_python3-pip define Build/Compile/python3-pip + $(HOST_PYTHON3_PIP_VARS) \ $(HOST_PYTHON3_PIP) \ - --disable-pip-version-check \ - --cache-dir "$(DL_DIR)/pip-cache" \ install \ --ignore-installed \ + --progress-bar off \ --root=$(PKG_BUILD_DIR)/install-pip \ --prefix=/usr \ $(PKG_BUILD_DIR)/Lib/ensurepip/_bundled/pip-$(PYTHON3_PIP_VERSION)-py3-none-any.whl