Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lang/python/pillow/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
5 changes: 3 additions & 2 deletions lang/python/pipx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -36,6 +36,7 @@ define Package/pipx
+python3-urllib \
+python3-venv \
+python3-argcomplete \
+python3-filelock \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: series ordering β€” this +python3-filelock dependency is introduced by f89a445 "pipx: bump to 1.16.6", but the package it points at is only created two commits later in aa24335 "python-filelock: add package". At f89a445 and ddaa718 the tree references a python3-filelock that does not exist in the feed, which breaks bisect.

Reordering so python-filelock: add package lands first (before the pipx bump) makes every commit in the series self-consistent. Nothing else in the series depends on the current order.


Generated by Claude Code

+python3-packaging \
+python3-platformdirs \
+python3-userpath
Expand Down
36 changes: 36 additions & 0 deletions lang/python/pipx/patches/001-drop-docutils-manpage-build.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
From d1724588f0eacf71513e111ece880265231e6bb4 Mon Sep 17 00:00:00 2001
From: Alexandru Ardelean <alex@shruggie.ro>
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 <alex@shruggie.ro>
---
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",
8 changes: 8 additions & 0 deletions lang/python/pipx/test.sh
Original file line number Diff line number Diff line change
@@ -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; }
Comment on lines +7 to +8

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

>/dev/null 2>&1 throws away exactly what makes a runtime test useful in CI: the comment above says pipx environment "prints pipx's path configuration", but nothing is printed, and on failure the redirect also swallows the traceback/stderr, so the log shows only FAIL: 'pipx environment' errored with no cause. This is the same reasoning as the feed's "no quiet mode in test scripts" rule.

It's also a deviation from the rest of lang/python β€” no other */test.sh in that directory redirects command output to /dev/null (cf. python-pip/test.sh and python-awscli/test.sh, which both keep the output in the log).

Suggested change
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; }
pipx environment || { echo "FAIL: 'pipx environment' errored"; exit 1; }
pipx environment --value PIPX_HOME || { echo "FAIL: 'pipx environment --value' errored"; exit 1; }

Generated by Claude Code

42 changes: 42 additions & 0 deletions lang/python/python-filelock/Makefile
Original file line number Diff line number Diff line change
@@ -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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PKG_LICENSE:=MIT looks wrong for filelock β€” upstream tox-dev/filelock ships the Unlicense (public domain dedication), and its PyPI classifier is License :: OSI Approved :: The Unlicense (Unlicense), not MIT. PKG_LICENSE_FILES:=LICENSE is right either way, only the SPDX id looks off.

I could not fetch the upstream LICENSE from this session to confirm, so please double-check before changing it. Unlicense is already an accepted value in this feed β€” see python-pyelftools/Makefile:15.


Generated by Claude Code

PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>

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))
21 changes: 21 additions & 0 deletions lang/python/python-filelock/test.sh
Original file line number Diff line number Diff line change
@@ -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