From cf5b39f8c3ac90d6ca01cea041683586c190d9a1 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sun, 5 Apr 2026 15:23:27 +0300 Subject: [PATCH 01/12] python-orjson: update to 3.11.8, add test.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update to 3.11.8 to fix the build error with Python 3.14 ``` --- stderr error: the configured Python interpreter version (3.14) is newer than PyO3's maximum supported version (3.13) = help: please check if an updated version of PyO3 is available. Current version: 0.23.0-dev = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI warning: build failed, waiting for other jobs to finish... 💥 maturin failed ``` orjson imports uuid.py at module init to look up uuid.UUID type; python3-uuid is a separate package not included in python3-light, causing a segfault when python3-uuid is absent. Add it as an explicit dependency to fix the crash on all architectures. Crash is: ``` importing orjson... Fatal Python error: Segmentation fault Current thread 0xecf37c64 [python3] (most recent call first): File "", line 491 in _call_with_frames_removed File "", line 1061 in exec_module File "", line 938 in _load_unlocked File "", line 1342 in _find_and_load_unlocked File "", line 1371 in _find_and_load File "/usr/lib/python3.14/site-packages/orjson/__init__.py", line 8 in File "", line 491 in _call_with_frames_removed File "", line 759 in exec_module File "", line 938 in _load_unlocked File "", line 1342 in _find_and_load_unlocked File "", line 1371 in _find_and_load File "", line 5 in Current thread's C stack trace (most recent call first): Segmentation fault (core dumped) Test failed ``` Signed-off-by: Alexandru Ardelean --- lang/python/python-orjson/Makefile | 5 ++-- lang/python/python-orjson/test.sh | 38 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 lang/python/python-orjson/test.sh diff --git a/lang/python/python-orjson/Makefile b/lang/python/python-orjson/Makefile index 7d584204a9709..e1ef7f04249c5 100644 --- a/lang/python/python-orjson/Makefile +++ b/lang/python/python-orjson/Makefile @@ -1,11 +1,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-orjson -PKG_VERSION:=3.10.12 +PKG_VERSION:=3.11.8 PKG_RELEASE:=1 PYPI_NAME:=orjson -PKG_HASH:=0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff +PKG_HASH:=96163d9cdc5a202703e9ad1b9ae757d5f0ca62f4fa0cc93d1f27b0e180cc404e PKG_MAINTAINER:=Timothy Ace PKG_LICENSE:=Apache-2.0 MIT @@ -26,6 +26,7 @@ define Package/python3-orjson URL:=https://github.com/ijl/orjson DEPENDS:= \ +python3-light \ + +python3-uuid \ $(RUST_ARCH_DEPENDS) endef diff --git a/lang/python/python-orjson/test.sh b/lang/python/python-orjson/test.sh new file mode 100644 index 0000000000000..0854b353e903e --- /dev/null +++ b/lang/python/python-orjson/test.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +[ "$1" = python3-orjson ] || exit 0 + +python3 - << 'EOF' +import faulthandler +faulthandler.enable() + +print("importing orjson...", flush=True) +import orjson +print("import OK", flush=True) + +# Basic encode/decode +data = {"key": "value", "number": 42, "flag": True, "empty": None} +encoded = orjson.dumps(data) +assert isinstance(encoded, bytes) +decoded = orjson.loads(encoded) +assert decoded == data +print("basic encode/decode OK", flush=True) + +# List roundtrip +lst = [1, 2, 3, "hello"] +assert orjson.loads(orjson.dumps(lst)) == lst +print("list roundtrip OK", flush=True) + +# Nested structures +nested = {"a": {"b": {"c": 1}}} +assert orjson.loads(orjson.dumps(nested)) == nested +print("nested OK", flush=True) + +# OPT_SORT_KEYS option +obj = {"z": 1, "a": 2, "m": 3} +sorted_json = orjson.dumps(obj, option=orjson.OPT_SORT_KEYS) +assert sorted_json == b'{"a":2,"m":3,"z":1}' +print("sort_keys OK", flush=True) + +print("orjson OK") +EOF From c2ebcc7e9baa6b66f571fae777802d8b28563e5b Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Wed, 8 Apr 2026 09:48:02 +0300 Subject: [PATCH 02/12] python-pip: update to 26.0.1 Refresh all patches for pip 26.0.1: - 001 (pyproject-hooks-pyc-fix): vendored pyproject_hooks switched from single to double quotes and multiline block format; restructure to minimal diff (keep unchanged context lines as context) - 002 (pip-runner-pyc-fix): get_runnable_pip() shifted ~20 lines; Set[str] -> set[str] in trailing context; refresh offsets - 003 (disable-pip-version-check): option definition moved ~174 lines; refresh line number pip 26 also dropped the version-specific binary (e.g. pip3.14). Update the install rule to use pip3 as the primary binary and symlink pip/pip$(VERSION) to it. Signed-off-by: Alexandru Ardelean --- lang/python/python-pip/Makefile | 11 +++++---- .../patches/001-pyproject-hooks-pyc-fix.patch | 23 +++++++++++-------- .../patches/002-pip-runner-pyc-fix.patch | 4 ++-- .../003-disable-pip-version-check.patch | 2 +- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/lang/python/python-pip/Makefile b/lang/python/python-pip/Makefile index fff0f7018e37e..658f6ea83fad4 100644 --- a/lang/python/python-pip/Makefile +++ b/lang/python/python-pip/Makefile @@ -8,17 +8,19 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pip -PKG_VERSION:=23.3.1 +PKG_VERSION:=26.0.1 PKG_RELEASE:=1 PYPI_NAME:=pip -PKG_HASH:=1fcaa041308d01f14575f6d0d2ea4b75a3e2871fe4f9c694976f908768e14174 +PKG_HASH:=c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE.txt PKG_MAINTAINER:=Alexandru Ardelean PKG_CPE_ID:=cpe:/a:pypa:pip +PKG_BUILD_DEPENDS:=python-setuptools/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk include ../python3-package.mk @@ -43,9 +45,8 @@ endef define Py3Package/python3-pip/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pip$(PYTHON3_VERSION) $(1)/usr/bin/ - $(LN) pip$(PYTHON3_VERSION) $(1)/usr/bin/pip3 - $(LN) pip$(PYTHON3_VERSION) $(1)/usr/bin/pip + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pip3 $(1)/usr/bin/ + $(LN) pip3 $(1)/usr/bin/pip $(INSTALL_DIR) $(1)/etc $(INSTALL_DATA) ./files/pip.conf $(1)/etc/ diff --git a/lang/python/python-pip/patches/001-pyproject-hooks-pyc-fix.patch b/lang/python/python-pip/patches/001-pyproject-hooks-pyc-fix.patch index e9eafab969dac..b32733134ccc2 100644 --- a/lang/python/python-pip/patches/001-pyproject-hooks-pyc-fix.patch +++ b/lang/python/python-pip/patches/001-pyproject-hooks-pyc-fix.patch @@ -1,19 +1,22 @@ --- a/src/pip/_vendor/pyproject_hooks/_in_process/__init__.py +++ b/src/pip/_vendor/pyproject_hooks/_in_process/__init__.py -@@ -11,8 +11,14 @@ try: +@@ -11,11 +11,17 @@ try: except AttributeError: # Python 3.8 compatibility def _in_proc_script_path(): -- return resources.path(__package__, '_in_process.py') -+ filename = '_in_process.pyc' -+ if resources.is_resource(__package__, '_in_process.py'): -+ filename = '_in_process.py' +- return resources.path(__package__, "_in_process.py") ++ filename = "_in_process.pyc" ++ if resources.is_resource(__package__, "_in_process.py"): ++ filename = "_in_process.py" + return resources.path(__package__, filename) + else: + def _in_proc_script_path(): -+ filename = '_in_process.pyc' -+ if resources.files(__package__).joinpath('_in_process.py').is_file(): -+ filename = '_in_process.py' ++ filename = "_in_process.pyc" ++ if resources.files(__package__).joinpath("_in_process.py").is_file(): ++ filename = "_in_process.py" return resources.as_file( -- resources.files(__package__).joinpath('_in_process.py')) -+ resources.files(__package__).joinpath(filename)) +- resources.files(__package__).joinpath("_in_process.py") ++ resources.files(__package__).joinpath(filename) + ) diff --git a/lang/python/python-pip/patches/002-pip-runner-pyc-fix.patch b/lang/python/python-pip/patches/002-pip-runner-pyc-fix.patch index 8f68049a8b284..c7d80688893d7 100644 --- a/lang/python/python-pip/patches/002-pip-runner-pyc-fix.patch +++ b/lang/python/python-pip/patches/002-pip-runner-pyc-fix.patch @@ -1,6 +1,6 @@ --- a/src/pip/_internal/build_env.py +++ b/src/pip/_internal/build_env.py -@@ -54,7 +54,11 @@ def get_runnable_pip() -> str: +@@ -74,7 +74,11 @@ def get_runnable_pip() -> str: # case, we can use that directly. return str(source) @@ -12,4 +12,4 @@ + return os.fsdecode(source / filename) - def _get_system_sitepackages() -> Set[str]: + def _get_system_sitepackages() -> set[str]: diff --git a/lang/python/python-pip/patches/003-disable-pip-version-check.patch b/lang/python/python-pip/patches/003-disable-pip-version-check.patch index 99a0258aa6088..f08530edad91e 100644 --- a/lang/python/python-pip/patches/003-disable-pip-version-check.patch +++ b/lang/python/python-pip/patches/003-disable-pip-version-check.patch @@ -9,7 +9,7 @@ Patch-Name: disable-pip-version-check.patch --- a/src/pip/_internal/cli/cmdoptions.py +++ b/src/pip/_internal/cli/cmdoptions.py -@@ -895,7 +895,7 @@ disable_pip_version_check: Callable[..., +@@ -1069,7 +1069,7 @@ disable_pip_version_check: Callable[..., "--disable-pip-version-check", dest="disable_pip_version_check", action="store_true", From 5a7fbc8303e7981d2f54337f8ac8e0d05707fc60 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 20:34:52 +0300 Subject: [PATCH 03/12] python-asgiref: bump to 3.11.1 Changelog: https://github.com/django/asgiref/blob/main/CHANGELOG.txt Multiple minor/patch releases since 3.7.2 with bug fixes and Python 3.13+ compatibility improvements. Resets PKG_RELEASE to 1. Add test.sh to verify async_to_sync and sync_to_async adapters. Signed-off-by: Alexandru Ardelean --- lang/python/python-asgiref/Makefile | 6 +++--- lang/python/python-asgiref/test.sh | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100755 lang/python/python-asgiref/test.sh diff --git a/lang/python/python-asgiref/Makefile b/lang/python/python-asgiref/Makefile index d2ad9ae963081..69848879952db 100644 --- a/lang/python/python-asgiref/Makefile +++ b/lang/python/python-asgiref/Makefile @@ -1,11 +1,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-asgiref -PKG_VERSION:=3.7.2 -PKG_RELEASE:=2 +PKG_VERSION:=3.11.1 +PKG_RELEASE:=1 PYPI_NAME:=asgiref -PKG_HASH:=9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed +PKG_HASH:=5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce PKG_BUILD_DEPENDS:=python-setuptools/host diff --git a/lang/python/python-asgiref/test.sh b/lang/python/python-asgiref/test.sh new file mode 100755 index 0000000000000..9c436420d48dd --- /dev/null +++ b/lang/python/python-asgiref/test.sh @@ -0,0 +1,24 @@ +#!/bin/sh +[ "$1" = python3-asgiref ] || exit 0 +python3 - << 'EOF' +import asgiref +assert asgiref.__version__, "asgiref version is empty" + +from asgiref.sync import async_to_sync, sync_to_async +import asyncio + +async def async_add(a, b): + return a + b + +result = async_to_sync(async_add)(3, 4) +assert result == 7, f"async_to_sync failed: {result}" + +def sync_mul(a, b): + return a * b + +async def run(): + result = await sync_to_async(sync_mul)(6, 7) + assert result == 42, f"sync_to_async failed: {result}" + +asyncio.run(run()) +EOF From 062e0cecdd86098030ee6b6e31dfe4f053a9d002 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 20:34:52 +0300 Subject: [PATCH 04/12] python-cachelib: bump to 0.13.0 Changelog: https://github.com/pallets-eco/cachelib/blob/main/CHANGES.rst Minor release with improvements to cache backends. Add test.sh to verify SimpleCache and NullCache operations. Signed-off-by: Alexandru Ardelean --- lang/python/python-cachelib/Makefile | 4 ++-- lang/python/python-cachelib/test.sh | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100755 lang/python/python-cachelib/test.sh diff --git a/lang/python/python-cachelib/Makefile b/lang/python/python-cachelib/Makefile index 6fcef3b4383e6..7d4107b48973a 100644 --- a/lang/python/python-cachelib/Makefile +++ b/lang/python/python-cachelib/Makefile @@ -5,11 +5,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-cachelib -PKG_VERSION:=0.10.2 +PKG_VERSION:=0.13.0 PKG_RELEASE:=1 PYPI_NAME:=cachelib -PKG_HASH:=593faeee62a7c037d50fc835617a01b887503f972fb52b188ae7e50e9cb69740 +PKG_HASH:=209d8996e3c57595bee274ff97116d1d73c4980b2fd9a34c7846cd07fd2e1a48 PKG_MAINTAINER:=Stepan Henek PKG_LICENSE:=BSD-3-Clause diff --git a/lang/python/python-cachelib/test.sh b/lang/python/python-cachelib/test.sh new file mode 100755 index 0000000000000..4d6a0de95e217 --- /dev/null +++ b/lang/python/python-cachelib/test.sh @@ -0,0 +1,21 @@ +#!/bin/sh +[ "$1" = python3-cachelib ] || exit 0 +python3 - << 'EOF' +from cachelib import SimpleCache, NullCache + +cache = SimpleCache() +cache.set("key", "value") +assert cache.get("key") == "value", "SimpleCache set/get failed" +assert cache.get("missing") is None +cache.delete("key") +assert cache.get("key") is None, "delete failed" + +cache.set("a", 1) +cache.set("b", 2) +cache.clear() +assert cache.get("a") is None, "clear failed" + +null = NullCache() +null.set("k", "v") +assert null.get("k") is None, "NullCache should not store" +EOF From 362d823329696108ab8937af18c1fd4ab7c82b2e Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 20:34:52 +0300 Subject: [PATCH 05/12] python-dns: bump to 2.8.0 Changelog: https://github.com/rthalley/dnspython/blob/master/CHANGELOG.rst Multiple minor releases since 2.4.1 adding new record types, improved DNSSEC support, and bug fixes. Add test.sh to verify DNS name parsing and rdatatype lookups. Signed-off-by: Alexandru Ardelean --- lang/python/python-dns/Makefile | 6 +++--- lang/python/python-dns/test.sh | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100755 lang/python/python-dns/test.sh diff --git a/lang/python/python-dns/Makefile b/lang/python/python-dns/Makefile index 03fbffee67a09..5ac612fd94272 100644 --- a/lang/python/python-dns/Makefile +++ b/lang/python/python-dns/Makefile @@ -8,17 +8,17 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-dns -PKG_VERSION:=2.4.1 +PKG_VERSION:=2.8.0 PKG_RELEASE:=1 PYPI_NAME:=dnspython -PKG_HASH:=c33971c79af5be968bb897e95c2448e11a645ee84d93b265ce0b7aabe5dfdca8 +PKG_HASH:=181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f PKG_LICENSE:=ISC PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Josef Schlehofer -PKG_BUILD_DEPENDS:=python-poetry-core/host +PKG_BUILD_DEPENDS:=python-hatchling/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk diff --git a/lang/python/python-dns/test.sh b/lang/python/python-dns/test.sh new file mode 100755 index 0000000000000..413fa9978f58f --- /dev/null +++ b/lang/python/python-dns/test.sh @@ -0,0 +1,22 @@ +#!/bin/sh +[ "$1" = python3-dns ] || exit 0 +python3 - << 'EOF' +import dns +import dns.name +import dns.rdatatype +import dns.rdata +import dns.rdataset +import dns.message +import dns.resolver + +n = dns.name.from_text("www.example.com.") +assert str(n) == "www.example.com.", f"unexpected name: {n}" +assert n.is_absolute() + +parent = dns.name.from_text("example.com.") +assert n.is_subdomain(parent) + +rdtype = dns.rdatatype.from_text("A") +assert rdtype == dns.rdatatype.A +assert dns.rdatatype.to_text(rdtype) == "A" +EOF From f5fd23b57513b511f5fd467dba543eace8e3b61f Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 20:34:52 +0300 Subject: [PATCH 06/12] python-pathspec: bump to 1.0.4 Changelog: https://github.com/cpburnz/python-pathspec/blob/master/CHANGELOG.rst First stable 1.x release with API refinements and bug fixes. Add test.sh to verify gitignore-style pattern matching. Signed-off-by: Alexandru Ardelean --- lang/python/python-pathspec/Makefile | 4 ++-- lang/python/python-pathspec/test.sh | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100755 lang/python/python-pathspec/test.sh diff --git a/lang/python/python-pathspec/Makefile b/lang/python/python-pathspec/Makefile index 9a0e0bf39a54a..07a806894700d 100644 --- a/lang/python/python-pathspec/Makefile +++ b/lang/python/python-pathspec/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pathspec -PKG_VERSION:=0.12.1 +PKG_VERSION:=1.0.4 PKG_RELEASE:=1 PYPI_NAME:=pathspec -PKG_HASH:=a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 +PKG_HASH:=0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645 PKG_LICENSE:=MPL-2.0 PKG_LICENSE_FILES:=LICENSE diff --git a/lang/python/python-pathspec/test.sh b/lang/python/python-pathspec/test.sh new file mode 100755 index 0000000000000..7b8278802e156 --- /dev/null +++ b/lang/python/python-pathspec/test.sh @@ -0,0 +1,12 @@ +#!/bin/sh +[ "$1" = python3-pathspec ] || exit 0 +python3 - << 'EOF' +import pathspec +assert pathspec.__version__, "pathspec version is empty" + +spec = pathspec.PathSpec.from_lines("gitwildmatch", ["*.py", "!test_*.py", "build/"]) +assert spec.match_file("foo.py") +assert not spec.match_file("test_foo.py") +assert spec.match_file("build/output.txt") +assert not spec.match_file("foo.txt") +EOF From c0213d52af45cf2e134e8d1db4b709ae96dead9f Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 23:29:08 +0300 Subject: [PATCH 07/12] python-pyasn1-modules: update to 0.4.2 Update package to 0.4.2. Changelog: - 0.3.0: Updated ASN.1 module imports to use RFC-based names - 0.4.0: Added support for newer RFC modules and improved compatibility - 0.4.1: Minor bug fixes - 0.4.2: Latest stable release Add PYPI_SOURCE_NAME since PyPI switched sdist filename to use underscores (pyasn1_modules-0.4.2.tar.gz). Add test.sh to verify basic functionality. Signed-off-by: Alexandru Ardelean --- lang/python/python-pyasn1-modules/Makefile | 7 ++++--- lang/python/python-pyasn1-modules/test.sh | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 lang/python/python-pyasn1-modules/test.sh diff --git a/lang/python/python-pyasn1-modules/Makefile b/lang/python/python-pyasn1-modules/Makefile index 71a9b1f61b4e9..d65c3d7223d36 100644 --- a/lang/python/python-pyasn1-modules/Makefile +++ b/lang/python/python-pyasn1-modules/Makefile @@ -8,11 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pyasn1-modules -PKG_VERSION:=0.2.8 -PKG_RELEASE:=2 +PKG_VERSION:=0.4.2 +PKG_RELEASE:=1 PYPI_NAME:=pyasn1-modules -PKG_HASH:=905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e +PYPI_SOURCE_NAME:=pyasn1_modules +PKG_HASH:=677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6 PKG_LICENSE:=BSD-2-Clause PKG_LICENSE_FILES:=LICENSE.txt diff --git a/lang/python/python-pyasn1-modules/test.sh b/lang/python/python-pyasn1-modules/test.sh new file mode 100644 index 0000000000000..ee404d9c37a3d --- /dev/null +++ b/lang/python/python-pyasn1-modules/test.sh @@ -0,0 +1,20 @@ +#!/bin/sh +[ "$1" = python3-pyasn1-modules ] || exit 0 + +python3 - << 'EOF' +import pyasn1_modules +from pyasn1_modules import pem, rfc2314, rfc2459, rfc2986, rfc5280 +from pyasn1.codec.der.decoder import decode as der_decode +from pyasn1.type import univ + +# Basic OID parsing (common in ASN.1 modules) +oid = univ.ObjectIdentifier((1, 2, 840, 113549, 1, 1, 1)) +assert str(oid) == '1.2.840.113549.1.1.1' + +# Verify key RFC modules are importable and have expected attributes +assert hasattr(rfc2459, 'Certificate') +assert hasattr(rfc5280, 'Certificate') +assert hasattr(rfc2986, 'CertificationRequest') + +print("pyasn1-modules OK") +EOF From 9785dc89ecfb3d6d274cecbbd1ddd6790bd27273 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 23:29:14 +0300 Subject: [PATCH 08/12] python-jsonschema-specifications: bump to 2025.9.1 Update package to 2025.9.1. Signed-off-by: Alexandru Ardelean --- lang/python/python-jsonschema-specifications/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-jsonschema-specifications/Makefile b/lang/python/python-jsonschema-specifications/Makefile index 1d358c23d3fe3..ce098368f35c3 100644 --- a/lang/python/python-jsonschema-specifications/Makefile +++ b/lang/python/python-jsonschema-specifications/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-jsonschema-specifications -PKG_VERSION:=2023.11.2 +PKG_VERSION:=2025.9.1 PKG_RELEASE:=1 PYPI_NAME:=jsonschema-specifications PYPI_SOURCE_NAME:=jsonschema_specifications -PKG_HASH:=9472fc4fea474cd74bea4a2b190daeccb5a9e4db2ea80efcf7a1b582fc9a81b8 +PKG_HASH:=b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d PKG_LICENSE:=MIT PKG_LICENSE_FILES:=COPYING From 2b8992a144790d1afec138b7c7aaa880c083a84e Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 23:29:17 +0300 Subject: [PATCH 09/12] python-async-timeout: update to 5.0.1 Update package to 5.0.1. Add PYPI_SOURCE_NAME since PyPI switched sdist filename to use underscores (async_timeout-5.0.1.tar.gz). Add test.sh to verify timeout context manager functionality. Signed-off-by: Alexandru Ardelean --- lang/python/python-async-timeout/Makefile | 8 +++--- lang/python/python-async-timeout/test.sh | 32 +++++++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 lang/python/python-async-timeout/test.sh diff --git a/lang/python/python-async-timeout/Makefile b/lang/python/python-async-timeout/Makefile index f6d0a4c89633c..6bb9d7a954150 100644 --- a/lang/python/python-async-timeout/Makefile +++ b/lang/python/python-async-timeout/Makefile @@ -8,11 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-async-timeout -PKG_VERSION:=4.0.2 +PKG_VERSION:=5.0.1 PKG_RELEASE:=1 PYPI_NAME:=async-timeout -PKG_HASH:=2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15 +PYPI_SOURCE_NAME:=async_timeout +PKG_HASH:=d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 PKG_MAINTAINER:=Josef Schlehofer PKG_LICENSE:=Apache-2.0 @@ -30,7 +31,8 @@ define Package/python3-async-timeout URL:=https://github.com/aio-libs/async-timeout DEPENDS:= \ +python3-light \ - +python3-asyncio + +python3-asyncio \ + +python3-logging endef define Package/python3-async-timeout/description diff --git a/lang/python/python-async-timeout/test.sh b/lang/python/python-async-timeout/test.sh new file mode 100644 index 0000000000000..03ac5ffbe9b2e --- /dev/null +++ b/lang/python/python-async-timeout/test.sh @@ -0,0 +1,32 @@ +#!/bin/sh +[ "$1" = python3-async-timeout ] || exit 0 + +python3 - << 'EOF' +import asyncio +import async_timeout + +async def test_no_timeout(): + async with async_timeout.timeout(10): + await asyncio.sleep(0) + print("no_timeout OK") + +async def test_timeout_fires(): + try: + async with async_timeout.timeout(0.01): + await asyncio.sleep(1) + assert False, "Should have timed out" + except asyncio.TimeoutError: + print("timeout_fires OK") + +async def test_timeout_none(): + async with async_timeout.timeout(None): + await asyncio.sleep(0) + print("timeout_none OK") + +async def main(): + await test_no_timeout() + await test_timeout_fires() + await test_timeout_none() + +asyncio.run(main()) +EOF From 0514eb8326a9cc0c0c60139bed4b58b3a8cbd62a Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 4 Apr 2026 23:29:20 +0300 Subject: [PATCH 10/12] python-pytest-xdist: update to 3.8.0 Update package to 3.8.0. Add PYPI_SOURCE_NAME since PyPI switched sdist filename to use underscores (pytest_xdist-3.8.0.tar.gz). Add test.sh to verify basic plugin functionality. Signed-off-by: Alexandru Ardelean --- lang/python/python-pytest-xdist/Makefile | 5 +++-- lang/python/python-pytest-xdist/test.sh | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 lang/python/python-pytest-xdist/test.sh diff --git a/lang/python/python-pytest-xdist/Makefile b/lang/python/python-pytest-xdist/Makefile index 041f1ac013682..3ffd04bd6489b 100644 --- a/lang/python/python-pytest-xdist/Makefile +++ b/lang/python/python-pytest-xdist/Makefile @@ -8,11 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pytest-xdist -PKG_VERSION:=3.3.1 +PKG_VERSION:=3.8.0 PKG_RELEASE:=1 PYPI_NAME:=pytest-xdist -PKG_HASH:=d5ee0520eb1b7bcca50a60a518ab7a7707992812c578198f8b44fdfac78e8c93 +PYPI_SOURCE_NAME:=pytest_xdist +PKG_HASH:=7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1 PKG_MAINTAINER:=Alexandru Ardelean PKG_LICENSE:=MIT diff --git a/lang/python/python-pytest-xdist/test.sh b/lang/python/python-pytest-xdist/test.sh new file mode 100644 index 0000000000000..d6a21688c88db --- /dev/null +++ b/lang/python/python-pytest-xdist/test.sh @@ -0,0 +1,18 @@ +#!/bin/sh +[ "$1" = python3-pytest-xdist ] || exit 0 + +python3 - << 'EOF' +import xdist +import xdist.plugin +import xdist.scheduler + +# Verify version +assert xdist.__version__, "xdist version is empty" + +# Verify key scheduler classes are importable +from xdist.scheduler import LoadScheduling, EachScheduling +sched = LoadScheduling.__name__ +assert sched == 'LoadScheduling' + +print("pytest-xdist OK") +EOF From b0d6ad167bdb6f3cd01ade01713c1a447802cb8d Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Sun, 29 Mar 2026 21:46:15 +0100 Subject: [PATCH 11/12] tor: update to 0.4.9.6 stable Minor release, see the changelog [1] for what's new. [1] https://gitlab.torproject.org/tpo/core/tor/-/blob/tor-0.4.9.6/ChangeLog Signed-off-by: Rui Salvaterra --- net/tor/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/tor/Makefile b/net/tor/Makefile index 412879dceed62..069640ed06f82 100644 --- a/net/tor/Makefile +++ b/net/tor/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tor -PKG_VERSION:=0.4.9.5 +PKG_VERSION:=0.4.9.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://dist.torproject.org/ \ https://archive.torproject.org/tor-package-archive -PKG_HASH:=c949c2f86b348e64891976f6b1e49c177655b23df97193049bf1b8cd3099e179 +PKG_HASH:=a89aba97052e9963a654b40df2d46be07e8a6b6e24e5437917fd81acd90a7017 PKG_MAINTAINER:=Rui Salvaterra PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE From 5bdf4cc7f18a4bfe82d85d119e7eb324c2a892bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 7 Apr 2026 23:06:36 +0200 Subject: [PATCH 12/12] tailscale: update to 1.96.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changelog: https://tailscale.com/changelog#2026-03-27 Changelog: https://tailscale.com/changelog#2026-03-19 Changelog: https://tailscale.com/changelog#2026-03-18 Signed-off-by: Sandro Jäckel --- net/tailscale/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/tailscale/Makefile b/net/tailscale/Makefile index 81c2143a00601..5fb3d1e82c3de 100644 --- a/net/tailscale/Makefile +++ b/net/tailscale/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tailscale -PKG_VERSION:=1.94.2 +PKG_VERSION:=1.96.4 PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/tailscale/tailscale/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c45975beb4cb7bab8047cfba77ec8b170570d184f3c806258844f3e49c60d7aa +PKG_HASH:=57b70731af7ae0ed167519924905fd032ddd8559a65bc8a3329d9da495f0feb2 PKG_MAINTAINER:=Zephyr Lykos , \ Sandro Jäckel