From 6ef46bb9194b5d3f5fc17471d8869bcae729d215 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Thu, 2 Mar 2023 23:35:00 +0800 Subject: [PATCH 01/28] 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 8a05c332c..fdf6658fd 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 a24892ac5..8477d8c75 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/28] 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 000000000..738d15728 --- /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 fdf6658fd..8dc5e732f 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 8477d8c75..f2336b8fc 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/28] 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 000000000..42274d6d8 --- /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 692fe359a9afab6a388907491f0169e155b9e0cd Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Thu, 30 Mar 2023 20:13:21 +0200 Subject: [PATCH 04/28] banip: update to 0.8.2-6 * restored some accidently removed init stuff in last commit Signed-off-by: Dirk Brenken --- net/banip/Makefile | 2 +- net/banip/files/banip.init | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/net/banip/Makefile b/net/banip/Makefile index 38df1fcf4..65fa9e270 100644 --- a/net/banip/Makefile +++ b/net/banip/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=banip PKG_VERSION:=0.8.2 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/banip/files/banip.init b/net/banip/files/banip.init index 6c7628033..d8faafdaa 100755 --- a/net/banip/files/banip.init +++ b/net/banip/files/banip.init @@ -74,8 +74,10 @@ status() { } status_service() { + local actual="${1}" + [ -z "$(command -v "f_system")" ] && . "${ban_funlib}" - f_getstatus + [ -n "${actual}" ] && f_actual || f_getstatus } report() { From 49782b3db407e4c870934ea379f8412befc326ff Mon Sep 17 00:00:00 2001 From: Oskari Rauta Date: Tue, 28 Mar 2023 21:46:20 +0300 Subject: [PATCH 05/28] rust: update to 1.68.1 also add new variable CARGO_VARS to make it possible to pass environment variables for cargo process. This is necessary when for example, cross-compiling netavark. Signed-off-by: Oskari Rauta --- lang/rust/Makefile | 4 ++-- lang/rust/rust-package.mk | 3 ++- lang/rust/rust-values.mk | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lang/rust/Makefile b/lang/rust/Makefile index ca5437aeb..dcee587ac 100644 --- a/lang/rust/Makefile +++ b/lang/rust/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=rust -PKG_VERSION:=1.68.0 +PKG_VERSION:=1.68.1 PKG_RELEASE:=1 PKG_SOURCE:=rustc-$(PKG_VERSION)-src.tar.gz PKG_SOURCE_URL:=https://static.rust-lang.org/dist/ -PKG_HASH:=eaf4d8b19f23a232a4770fb53ab5e7acdedec11da1d02b0e5d491ca92ca96d62 +PKG_HASH:=ccb051df5701d4c588e3d0558f83e73e7eea0a9b165dab3e39dd2db8a6a25d03 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/rustc-$(PKG_VERSION)-src PKG_MAINTAINER:=Luca Barbato diff --git a/lang/rust/rust-package.mk b/lang/rust/rust-package.mk index 4e39009cc..6ab0e2399 100644 --- a/lang/rust/rust-package.mk +++ b/lang/rust/rust-package.mk @@ -27,7 +27,8 @@ define Build/Compile/Cargo CARGO_HOME=$(CARGO_HOME) \ TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUST_CFLAGS)" \ TARGET_CC=$(TARGET_CC_NOCACHE) \ - CC=$(HOSTCC) \ + CC=$(HOSTCC_NOCACHE) \ + $(CARGO_VARS) \ cargo install -v \ --profile stripped \ --target $(RUSTC_TARGET_ARCH) \ diff --git a/lang/rust/rust-values.mk b/lang/rust/rust-values.mk index c9eb26f08..daebec2d6 100644 --- a/lang/rust/rust-values.mk +++ b/lang/rust/rust-values.mk @@ -6,6 +6,7 @@ CONFIG_HOST_SUFFIX:=$(word 4, $(subst -, ,$(GNU_HOST_NAME))) RUSTC_HOST_ARCH:=$(HOST_ARCH)-unknown-linux-$(CONFIG_HOST_SUFFIX) CARGO_HOME:=$(STAGING_DIR_HOSTPKG)/cargo +CARGO_VARS:= ifeq ($(CONFIG_USE_MUSL),y) # Force linking of the SSP library for musl From 37caea7c93bbdbf3ce1d44cdc762b1d920a59e57 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Mon, 27 Feb 2023 22:15:30 +0800 Subject: [PATCH 06/28] 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 000000000..898a74a3d --- /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 07/28] 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 6a0eaad75..c727c20aa 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 08/28] 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 000000000..db615e39b --- /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 09/28] 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 000000000..50b3780ed --- /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 10/28] 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 000000000..e60023725 --- /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 11/28] 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 000000000..abf604a9d --- /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 12/28] 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 9a825a370..a8629deef 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 5de50dd85..000000000 --- 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 3124ca8f1..35aab8d79 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 000000000..99ad7d939 --- /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 1f471e03b..4c2cbd7be 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 8b1b2eb8b..2e6d3f915 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 13/28] 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 807e19e14..000000000 --- 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 6a0b283eb..002bfa96e 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 c0da35157..e3720a963 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 14/28] 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 e3720a963..5085372dc 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 15/28] 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 62312343f..9e49ce333 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 94ef13b55..000000000 --- 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 dab2d5e91..e366d429b 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 41549e922..b14ef8099 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 f9805d1b3..eca939458 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 2eed1c2b1..c3516f73f 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 6635f4935..d3469cc43 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 16/28] 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 b60c9ad10..5f511d54b 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 17/28] 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 83b57e1d3..000000000 --- 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 108bf1007..000000000 --- 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 2e905a893..b33781831 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 b6735b82f..f95eb07e9 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 394a307b6..57e8a95aa 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 1b45788d4..b82b4fd9f 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 5d5da7617..98cd0cd7a 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 4167ef29c..67121c7a5 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 f9d3c39d6..31820e35e 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 59b4f0fd1..07baf6693 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 ca20dbba6..c909e10e8 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 dba2daa8f..55edae8f5 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 c73229bee..2aaf5551a 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 7a91b4f63..108cb7f0c 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 000000000..c9a0ec78d --- /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 17c442952..3d48b31c3 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 60e7b3b12..9acbec99f 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 a77a17b80..f812d2a2e 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 18/28] 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 000000000..6cdb6d285 --- /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 19/28] 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 000000000..57660f79b --- /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 20/28] 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 000000000..dc0547ed3 --- /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 21/28] 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 000000000..86bde00b8 --- /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 22/28] 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 31820e35e..d035c9abe 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 108cb7f0c..bbd8f8819 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 23/28] 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 000000000..6ba6c63c1 --- /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 24/28] 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 000000000..39f890985 --- /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 25/28] 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 000000000..4a2ab871d --- /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 26/28] 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 8dc5e732f..54f9bde1e 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 aa2f2624f..b666c4112 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 From 0944c8e84751a0397b111fc5013ffad180583c27 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 27 Mar 2023 19:59:34 -0500 Subject: [PATCH 27/28] libdmapsharing: update to 3.9.12 This version now requires libsoup3, rather than libsoup. Signed-off-by: W. Michael Petullo --- libs/libdmapsharing/Makefile | 6 +++--- libs/libdmapsharing/patches/001-disable_pixbuf.patch | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/libdmapsharing/Makefile b/libs/libdmapsharing/Makefile index 84031cc8d..b56515ab4 100644 --- a/libs/libdmapsharing/Makefile +++ b/libs/libdmapsharing/Makefile @@ -10,12 +10,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libdmapsharing -PKG_VERSION:=3.9.10 +PKG_VERSION:=3.9.12 PKG_RELEASE:=1 PKG_SOURCE:=libdmapsharing-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.flyn.org/projects/libdmapsharing/ -PKG_HASH:=e216425d61a109f08f0ac93065f4603d1e61ebd85c09802c03a9ecce5bb35094 +PKG_HASH:=aa47e405c5059ff35ff6fc447e497dc1ff15558859a57710a664350314abf750 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=LGPL-2.1-or-later @@ -32,7 +32,7 @@ include $(INCLUDE_DIR)/nls.mk define Package/libdmapsharing SECTION:=libs CATEGORY:=Libraries - DEPENDS:=+libsoup +mdnsresponder +gstreamer1-plugins-base +gst1-mod-app + DEPENDS:=+libsoup3 +mdnsresponder +gstreamer1-plugins-base +gst1-mod-app TITLE:=libdmapsharing URL:=https://www.flyn.org/projects/libdmapsharing/ endef diff --git a/libs/libdmapsharing/patches/001-disable_pixbuf.patch b/libs/libdmapsharing/patches/001-disable_pixbuf.patch index 47d4a0c31..11b2567ff 100644 --- a/libs/libdmapsharing/patches/001-disable_pixbuf.patch +++ b/libs/libdmapsharing/patches/001-disable_pixbuf.patch @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -125,15 +125,7 @@ fi +@@ -126,15 +126,7 @@ fi AC_SUBST(GOBJECT_CFLAGS) AC_SUBST(GOBJECT_LIBS) From f9997b80647c4c254d3cba3c529413dfc2d646eb Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 27 Mar 2023 20:00:08 -0500 Subject: [PATCH 28/28] dmapd: update to 0.0.95 Signed-off-by: W. Michael Petullo --- net/dmapd/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/dmapd/Makefile b/net/dmapd/Makefile index b5d6d1844..f073bcce3 100644 --- a/net/dmapd/Makefile +++ b/net/dmapd/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dmapd -PKG_VERSION:=0.0.91 -PKG_RELEASE:=$(AUTORELEASE) +PKG_VERSION:=0.0.95 +PKG_RELEASE:=1 PKG_MAINTAINER:=W. Michael Petullo @@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=COPYING PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.flyn.org/projects/dmapd -PKG_HASH:=494647918e15ef1b6b9aa1e3bff35fad26d0c17e13c65ab87a7b0d3f8ceced02 +PKG_HASH:=c2c387518ee012e2f2613770c1e7e7eeb5e58fb4605ed645f1db2aced1585a52 PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1