py-websockets update

Stuart Henderson <[email protected]> Thu, 30 Jul 2026 17:22:52 +0100
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
here's an update for py-websockets:
https://websockets.readthedocs.io/en/stable/project/changelog.html

ok?  (do you still want to be listed as maintainer George?)

Index: Makefile
===================================================================
RCS file: /cvs/ports/net/py-websockets/Makefile,v
diff -u -p -r1.8 Makefile
--- Makefile	29 Apr 2025 10:39:08 -0000	1.8
+++ Makefile	30 Jul 2026 16:19:24 -0000
@@ -1,13 +1,15 @@
 COMMENT =	Python library for building WebSocket servers and clients
 
-MODPY_DISTV =	13.1
+MODPY_DISTV =	17.0
+GH_ACCOUNT =	python-websockets
+GH_PROJECT =	websockets
+GH_TAGNAME =	${MODPY_DISTV}
+PKGNAME =	py-${DISTNAME}
 
-DISTNAME =		websockets-${MODPY_DISTV}
-PKGNAME =		py-${DISTNAME}
-REVISION =		1
-
-CATEGORIES =		net
+CATEGORIES =	net
 
+# https://github.com/python-websockets/websockets
+# https://websockets.readthedocs.io/en/stable/project/changelog.html
 HOMEPAGE =		https://websockets.readthedocs.io/en/stable/
 
 MAINTAINER =		George Rosamond <[email protected]>
@@ -18,12 +20,12 @@ PERMIT_PACKAGE =	Yes
 WANTLIB +=		pthread
 
 MODULES =		lang/python
-
-MODPY_PI =		Yes
 MODPY_PYBUILD =		setuptools
 
-# some test-related files are missing from the sdist on pypi; they are
-# present in github and mostly work
-NO_TEST =		Yes
+PORTHOME =		${WRKDIR}
+TEST_DEPENDS =		security/mitmproxy \
+			devel/py-trio
+# needs unported https://pypi.org/project/python-socks/
+MODPY_PYTEST_ARGS =	-k 'not SocksProxyClientTests'
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/net/py-websockets/distinfo,v
diff -u -p -r1.3 distinfo
--- distinfo	19 Oct 2024 10:56:04 -0000	1.3
+++ distinfo	30 Jul 2026 16:19:24 -0000
@@ -1,2 +1,2 @@
-SHA256 (websockets-13.1.tar.gz) = o7M2YIfBvAonlREe3K3duLO1lQnV211+o/3Wn5VKiHg=
-SIZE (websockets-13.1.tar.gz) = 158549
+SHA256 (websockets-17.0.tar.gz) = 0BEX3vK/FBWttE2jTwj8DOIX12zogXejB9uzFSXeYcc=
+SIZE (websockets-17.0.tar.gz) = 518980
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/py-websockets/pkg/PLIST,v
diff -u -p -r1.6 PLIST
--- pkg/PLIST	23 Oct 2025 13:20:08 -0000	1.6
+++ pkg/PLIST	30 Jul 2026 16:19:24 -0000
@@ -1,9 +1,11 @@
 @pkgpath net/py-websockets,python3
+bin/websockets
 lib/python${MODPY_VERSION}/site-packages/websockets/
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/METADATA
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/RECORD
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/WHEEL
+lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/entry_points.txt
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/licenses/
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/licenses/LICENSE
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/top_level.txt
@@ -16,6 +18,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}__main__.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}auth.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}auth.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}cli.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}cli.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -28,14 +32,14 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}frames.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}headers.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}headers.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http11.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http11.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}imports.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}imports.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}protocol.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}protocol.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}proxy.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}proxy.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}streams.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -53,25 +57,23 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}/
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}async_timeout.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}async_timeout.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}compatibility.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}compatibility.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/async_timeout.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/client.py
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/compatibility.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/connection.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/messages.py
+lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/router.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/auth.py
+lib/python${MODPY_VERSION}/site-packages/websockets/cli.py
 lib/python${MODPY_VERSION}/site-packages/websockets/client.py
 lib/python${MODPY_VERSION}/site-packages/websockets/connection.py
 lib/python${MODPY_VERSION}/site-packages/websockets/datastructures.py
@@ -89,7 +91,6 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/extensions/permessage_deflate.py
 lib/python${MODPY_VERSION}/site-packages/websockets/frames.py
 lib/python${MODPY_VERSION}/site-packages/websockets/headers.py
-lib/python${MODPY_VERSION}/site-packages/websockets/http.py
 lib/python${MODPY_VERSION}/site-packages/websockets/http11.py
 lib/python${MODPY_VERSION}/site-packages/websockets/imports.py
 lib/python${MODPY_VERSION}/site-packages/websockets/legacy/
@@ -122,6 +123,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/legacy/protocol.py
 lib/python${MODPY_VERSION}/site-packages/websockets/legacy/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/protocol.py
+lib/python${MODPY_VERSION}/site-packages/websockets/proxy.py
 lib/python${MODPY_VERSION}/site-packages/websockets/py.typed
 lib/python${MODPY_VERSION}/site-packages/websockets/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/speedups.c
@@ -139,6 +141,8 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -146,8 +150,32 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/client.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/connection.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/messages.py
+lib/python${MODPY_VERSION}/site-packages/websockets/sync/router.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/utils.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/__init__.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/client.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/connection.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/messages.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/router.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/server.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/utils.py
 lib/python${MODPY_VERSION}/site-packages/websockets/typing.py
 lib/python${MODPY_VERSION}/site-packages/websockets/uri.py
 lib/python${MODPY_VERSION}/site-packages/websockets/utils.py