diff --git a/lang/python/pillow/Makefile b/lang/python/pillow/Makefile index ad86947233d3e..e5c6e98f9d88c 100644 --- a/lang/python/pillow/Makefile +++ b/lang/python/pillow/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pillow -PKG_VERSION:=12.2.0 -PKG_RELEASE:=2 +PKG_VERSION:=12.3.0 +PKG_RELEASE:=1 PYPI_NAME:=Pillow PYPI_SOURCE_NAME:=pillow -PKG_HASH:=a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5 +PKG_HASH:=3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce PKG_BUILD_DEPENDS:=python-setuptools/host diff --git a/lang/python/pipx/Makefile b/lang/python/pipx/Makefile index eb6e0e4590b6a..199edd78de156 100644 --- a/lang/python/pipx/Makefile +++ b/lang/python/pipx/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pipx -PKG_VERSION:=1.13.0 +PKG_VERSION:=1.16.6 PKG_RELEASE:=1 PYPI_NAME:=pipx -PKG_HASH:=d754c19d070893aab5d1ddb3d622ef57ec082b79f53c2664183165dbd2868c0e +PKG_HASH:=1a2ace67be16262a3bc8d1d6eedc5d6b63119b2b9e4eadc1b280d8e9c25fd722 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE @@ -36,6 +36,7 @@ define Package/pipx +python3-urllib \ +python3-venv \ +python3-argcomplete \ + +python3-filelock \ +python3-packaging \ +python3-platformdirs \ +python3-userpath diff --git a/lang/python/pipx/patches/001-drop-docutils-manpage-build.patch b/lang/python/pipx/patches/001-drop-docutils-manpage-build.patch new file mode 100644 index 0000000000000..4af62eb95b9d6 --- /dev/null +++ b/lang/python/pipx/patches/001-drop-docutils-manpage-build.patch @@ -0,0 +1,36 @@ +From d1724588f0eacf71513e111ece880265231e6bb4 Mon Sep 17 00:00:00 2001 +From: Alexandru Ardelean +Date: Tue, 11 Aug 2026 12:00:00 +0300 +Subject: [PATCH] Drop the docutils man-page build hook + +pipx's custom hatch build hook (hatch_build.py) unconditionally imports +docutils to render docs/man/pipx.1.rst into a man page during the wheel +build, pulling docutils>=0.21 into build-system.requires. OpenWrt does not +ship the man page and has no docutils host tool, so disable the custom hook +and drop the requirement; the CLI wheel then builds without docutils. + +Signed-off-by: Alexandru Ardelean +--- + pyproject.toml | 3 --- + 1 file changed, 3 deletions(-) + +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,7 +1,6 @@ + [build-system] + build-backend = "hatchling.build" + requires = [ +- "docutils>=0.21", + "hatch-vcs>=0.4", + "hatchling>=1.27", + ] +@@ -113,9 +112,7 @@ zipapp = [ + + [tool.hatch] + version.source = "vcs" +-build.hooks.custom = {} + build.hooks.vcs.version-file = "src/pipx/version.py" +-build.targets.wheel.shared-data = { "build/man" = "share/man/man1" } + build.targets.sdist.include = [ + "/*.md", + "/docs/man", diff --git a/lang/python/pipx/test.sh b/lang/python/pipx/test.sh new file mode 100755 index 0000000000000..37fe35c855558 --- /dev/null +++ b/lang/python/pipx/test.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +[ "$1" = pipx ] || exit 0 + +# 'pipx environment' resolves and prints pipx's path configuration with no +# network access, proving the CLI entry point runs end-to-end. +pipx environment >/dev/null 2>&1 || { echo "FAIL: 'pipx environment' errored"; exit 1; } +pipx environment --value PIPX_HOME >/dev/null 2>&1 || { echo "FAIL: 'pipx environment --value' errored"; exit 1; } diff --git a/lang/python/python-filelock/Makefile b/lang/python/python-filelock/Makefile new file mode 100644 index 0000000000000..3e3564413ee83 --- /dev/null +++ b/lang/python/python-filelock/Makefile @@ -0,0 +1,42 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-filelock +PKG_VERSION:=3.32.2 +PKG_RELEASE:=1 + +PYPI_NAME:=filelock +PKG_HASH:=c33351e1f49cae33414acbc6d56784e6ecee82514ec90795da1161fc4836b5b8 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Alexandru Ardelean + +PKG_BUILD_DEPENDS:=python-hatchling/host python-hatch-vcs/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include ../python3-package.mk + +define Package/python3-filelock + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=A platform independent file lock + URL:=https://github.com/tox-dev/filelock + DEPENDS:=+python3-light +python3-asyncio +python3-logging +python3-uuid +endef + +define Package/python3-filelock/description +A platform independent file lock that supports the with-statement and +provides a simple way to synchronise access to a resource across +processes and threads. +endef + +$(eval $(call Py3Package,python3-filelock)) +$(eval $(call BuildPackage,python3-filelock)) +$(eval $(call BuildPackage,python3-filelock-src)) diff --git a/lang/python/python-filelock/test.sh b/lang/python/python-filelock/test.sh new file mode 100755 index 0000000000000..fb38e58a6fed5 --- /dev/null +++ b/lang/python/python-filelock/test.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +[ "$1" = python3-filelock ] || exit 0 + +python3 - "$2" << 'EOF' +import os +import sys +import tempfile + +import filelock + +# Assert the packaged version and exercise a real lock acquire/release cycle +# through the fcntl backend, which is the code path used on the target. +assert filelock.__version__ == sys.argv[1], (filelock.__version__, sys.argv[1]) + +lockpath = os.path.join(tempfile.gettempdir(), "test-python3-filelock.lock") +lock = filelock.FileLock(lockpath) +with lock: + assert lock.is_locked +assert not lock.is_locked +EOF