Merge pull request #20657 from jefferyto/python-pyproject-host

python: Add pyproject.toml-based builds for host Python packages, add host packages
This commit is contained in:
Jeffery To 2023-03-31 15:51:55 +08:00 committed by GitHub
commit c3996aff3a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 1107 additions and 106 deletions

View file

@ -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

View file

@ -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

View file

@ -1 +0,0 @@
Cython==0.29.32 --hash=sha256:8733cf4758b79304f2a4e39ebfac5e92341bce47bcceb26c1254398b2f8c1af7

View file

@ -1,2 +0,0 @@
cffi==1.15.0 --hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954
pycparser==2.21 --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206

View file

@ -1 +0,0 @@
ply==3.11 --hash=sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3

View file

@ -1 +0,0 @@
setuptools-scm==6.0.1 --hash=sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92

View file

@ -1 +0,0 @@
toml==0.10.2 --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f

View file

@ -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

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <ardeleanalex@gmail.com>
HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
PKG_BUILD_DEPENDS:=python-setuptools-scm/host
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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 projects 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 youve 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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <javier@marcet.info>
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

View file

@ -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 <jan.pavlinec1@gmail.com>
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>, Jeffery To <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -8,21 +8,29 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pluggy
PKG_VERSION:=0.13.1
PKG_RELEASE:=4
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PYPI_NAME:=pluggy
PKG_HASH:=15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0
PKG_HASH:=4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>, Jeffery To <jeffery.to@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <dynasticorpheus@gmail.com>
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

View file

@ -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,11 +18,19 @@ PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=ply # ply==3.10
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))

View file

@ -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 <javier@marcet.info>
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

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <jan.pavlinec1@gmail.com>
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
@ -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

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -19,9 +19,13 @@ PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>
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))

View file

@ -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 <jeffery.to@gmail.com>
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))

View file

@ -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

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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

View file

@ -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
@ -51,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 ; \
@ -62,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), \
@ -76,14 +123,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

View file

@ -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"
@ -207,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

View file

@ -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

View file

@ -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 <jan.pavlinec1@gmail.com>
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

View file

@ -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 <oskari.rauta@gmail.com>
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) \

View file

@ -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 <mike@flyn.org>
PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later