From dcf551fbcf49146186302f7267fecfacebeede53 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Sat, 25 Feb 2023 19:49:25 +0800 Subject: [PATCH] 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 -- 2.30.2