git: cf2e942e8c22 - main - security/py-utls: Update to 2026.7.8

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Sat, 11 Jul 2026 12:24:45 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cf2e942e8c229efe4c47d51e58bd88e9f3a76e21

commit cf2e942e8c229efe4c47d51e58bd88e9f3a76e21
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2026-07-11 11:47:35 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2026-07-11 12:21:26 +0000

    security/py-utls: Update to 2026.7.8
    
    Changes:        https://github.com/jawah/utls/releases
---
 security/py-utls/Makefile                   | 12 +++++--
 security/py-utls/Makefile.crates            | 26 +++++++-------
 security/py-utls/distinfo                   | 56 +++++++++++++++--------------
 security/py-utls/files/patch-pyproject.toml |  9 +++++
 4 files changed, 60 insertions(+), 43 deletions(-)

diff --git a/security/py-utls/Makefile b/security/py-utls/Makefile
index 65236656c7b1..1a2d2984a5fc 100644
--- a/security/py-utls/Makefile
+++ b/security/py-utls/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	utls
-PORTVERSION=	2026.5.30
+PORTVERSION=	2026.7.8
 CATEGORIES=	security python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -13,8 +13,7 @@ LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	git:devel/git \
-		${PYTHON_PKGNAMEPREFIX}maturin>=1.7<2.0:devel/py-maturin@${PY_FLAVOR}
-LIB_DEPENDS=	libcrypto.so:security/boringssl
+		${PYTHON_PKGNAMEPREFIX}maturin>=1.7:devel/py-maturin@${PY_FLAVOR}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}wassima>=1<3:security/py-wassima@${PY_FLAVOR}
 
 USES=		cargo llvm:build python
@@ -23,4 +22,11 @@ USE_PYTHON=	autoplist concurrent pep517
 CARGO_BUILD=	no
 CARGO_INSTALL=	no
 
+USE_GITHUB=	nodefault
+GH_TUPLE=	google:boringssl:e2a57cf:google_boringssl # https://github.com/cloudflare/boring/tree/931385ed41df448c82d150219f69af56e3c8399f/boring-sys/deps
+
+post-patch:
+	@${RMDIR} ${WRKDIR}/boring-931385ed41df448c82d150219f69af56e3c8399f/boring-sys/deps/boringssl/
+	@${LN} -s ${WRKDIR}/boringssl-e2a57cf ${WRKDIR}/boring-931385ed41df448c82d150219f69af56e3c8399f/boring-sys/deps/boringssl
+
 .include <bsd.port.mk>
diff --git a/security/py-utls/Makefile.crates b/security/py-utls/Makefile.crates
index a7abf1f7b1cc..ee635d0b3fc1 100644
--- a/security/py-utls/Makefile.crates
+++ b/security/py-utls/Makefile.crates
@@ -1,12 +1,11 @@
 CARGO_CRATES=	aho-corasick-1.1.4 \
 		alloc-no-stdlib-2.0.4 \
-		alloc-stdlib-0.2.2 \
+		alloc-stdlib-0.2.4 \
 		bindgen-0.72.1 \
-		bitflags-2.11.1 \
-		boring-sys-5.1.0 \
-		brotli-8.0.3 \
-		brotli-decompressor-5.0.1 \
-		cc-1.2.63 \
+		bitflags-2.13.0 \
+		brotli-8.0.4 \
+		brotli-decompressor-5.0.3 \
+		cc-1.2.66 \
 		cexpr-0.6.0 \
 		cfg-if-1.0.4 \
 		clang-sys-1.8.1 \
@@ -20,7 +19,7 @@ CARGO_CRATES=	aho-corasick-1.1.4 \
 		itertools-0.13.0 \
 		libc-0.2.186 \
 		libloading-0.8.9 \
-		memchr-2.8.1 \
+		memchr-2.8.3 \
 		minimal-lexical-0.2.1 \
 		nom-7.1.3 \
 		once_cell-1.21.4 \
@@ -32,14 +31,14 @@ CARGO_CRATES=	aho-corasick-1.1.4 \
 		pyo3-macros-0.28.3 \
 		pyo3-macros-backend-0.28.3 \
 		python3-dll-a-0.2.15 \
-		quote-1.0.45 \
-		regex-1.12.3 \
+		quote-1.0.46 \
+		regex-1.12.4 \
 		regex-automata-0.4.14 \
-		regex-syntax-0.8.10 \
-		rustc-hash-2.1.2 \
+		regex-syntax-0.8.11 \
+		rustc-hash-2.1.3 \
 		shlex-1.3.0 \
 		shlex-2.0.1 \
-		syn-2.0.117 \
+		syn-2.0.118 \
 		target-lexicon-0.13.5 \
 		thiserror-1.0.69 \
 		thiserror-impl-1.0.69 \
@@ -47,4 +46,5 @@ CARGO_CRATES=	aho-corasick-1.1.4 \
 		winapi-0.3.9 \
 		winapi-i686-pc-windows-gnu-0.4.0 \
 		winapi-x86_64-pc-windows-gnu-0.4.0 \
-		windows-link-0.2.1
+		windows-link-0.2.1 \
+		boring-sys@git+https://github.com/cloudflare/boring?rev=931385ed41df448c82d150219f69af56e3c8399f\#931385ed41df448c82d150219f69af56e3c8399f
diff --git a/security/py-utls/distinfo b/security/py-utls/distinfo
index b3df0433ac78..427fc322a8f2 100644
--- a/security/py-utls/distinfo
+++ b/security/py-utls/distinfo
@@ -1,24 +1,22 @@
-TIMESTAMP = 1782966048
-SHA256 (utls-2026.5.30.tar.gz) = 4d09c6b8b3891899a4ef20981bd4ca83428b83b796e78f8545b178c117bc1757
-SIZE (utls-2026.5.30.tar.gz) = 117093
+TIMESTAMP = 1783564138
+SHA256 (utls-2026.7.8.tar.gz) = 5e064d516862d4afc05138e096224fa5b805dc3591096a9d7f57a0fc026d9fd3
+SIZE (utls-2026.7.8.tar.gz) = 117702
 SHA256 (rust/crates/aho-corasick-1.1.4.crate) = ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301
 SIZE (rust/crates/aho-corasick-1.1.4.crate) = 184015
 SHA256 (rust/crates/alloc-no-stdlib-2.0.4.crate) = cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3
 SIZE (rust/crates/alloc-no-stdlib-2.0.4.crate) = 10105
-SHA256 (rust/crates/alloc-stdlib-0.2.2.crate) = 94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece
-SIZE (rust/crates/alloc-stdlib-0.2.2.crate) = 6693
+SHA256 (rust/crates/alloc-stdlib-0.2.4.crate) = 0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195
+SIZE (rust/crates/alloc-stdlib-0.2.4.crate) = 6730
 SHA256 (rust/crates/bindgen-0.72.1.crate) = 993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895
 SIZE (rust/crates/bindgen-0.72.1.crate) = 246071
-SHA256 (rust/crates/bitflags-2.11.1.crate) = c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3
-SIZE (rust/crates/bitflags-2.11.1.crate) = 49082
-SHA256 (rust/crates/boring-sys-5.1.0.crate) = bbc39169cb8fa025002661c8d9148ed38a896908e4d308bb0cb55303f66e95d4
-SIZE (rust/crates/boring-sys-5.1.0.crate) = 5157714
-SHA256 (rust/crates/brotli-8.0.3.crate) = 8119e4516436f5708bbc474a9d395bf12f1b5395e93a92a56e647ac3388c8610
-SIZE (rust/crates/brotli-8.0.3.crate) = 747341
-SHA256 (rust/crates/brotli-decompressor-5.0.1.crate) = 5962523e1b92ce1b5e793d9169b9943eece10d39f62550bc04bb605d75b94924
-SIZE (rust/crates/brotli-decompressor-5.0.1.crate) = 196653
-SHA256 (rust/crates/cc-1.2.63.crate) = 556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f
-SIZE (rust/crates/cc-1.2.63.crate) = 97259
+SHA256 (rust/crates/bitflags-2.13.0.crate) = b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8
+SIZE (rust/crates/bitflags-2.13.0.crate) = 51280
+SHA256 (rust/crates/brotli-8.0.4.crate) = 5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3
+SIZE (rust/crates/brotli-8.0.4.crate) = 751794
+SHA256 (rust/crates/brotli-decompressor-5.0.3.crate) = 3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583
+SIZE (rust/crates/brotli-decompressor-5.0.3.crate) = 197262
+SHA256 (rust/crates/cc-1.2.66.crate) = f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996
+SIZE (rust/crates/cc-1.2.66.crate) = 95653
 SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766
 SIZE (rust/crates/cexpr-0.6.0.crate) = 17966
 SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
@@ -45,8 +43,8 @@ SHA256 (rust/crates/libc-0.2.186.crate) = 68ab91017fe16c622486840e4c83c9a37afeff
 SIZE (rust/crates/libc-0.2.186.crate) = 821883
 SHA256 (rust/crates/libloading-0.8.9.crate) = d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55
 SIZE (rust/crates/libloading-0.8.9.crate) = 30222
-SHA256 (rust/crates/memchr-2.8.1.crate) = 6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8
-SIZE (rust/crates/memchr-2.8.1.crate) = 98743
+SHA256 (rust/crates/memchr-2.8.3.crate) = cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98
+SIZE (rust/crates/memchr-2.8.3.crate) = 99165
 SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
 SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
 SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
@@ -69,22 +67,22 @@ SHA256 (rust/crates/pyo3-macros-backend-0.28.3.crate) = c4cdc218d835738f81c2338f
 SIZE (rust/crates/pyo3-macros-backend-0.28.3.crate) = 88063
 SHA256 (rust/crates/python3-dll-a-0.2.15.crate) = d80ba7540edb18890d444c5aa8e1f1f99b1bdf26fb26ae383135325f4a36042b
 SIZE (rust/crates/python3-dll-a-0.2.15.crate) = 104255
-SHA256 (rust/crates/quote-1.0.45.crate) = 41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924
-SIZE (rust/crates/quote-1.0.45.crate) = 31564
-SHA256 (rust/crates/regex-1.12.3.crate) = e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276
-SIZE (rust/crates/regex-1.12.3.crate) = 153392
+SHA256 (rust/crates/quote-1.0.46.crate) = dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368
+SIZE (rust/crates/quote-1.0.46.crate) = 31628
+SHA256 (rust/crates/regex-1.12.4.crate) = f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba
+SIZE (rust/crates/regex-1.12.4.crate) = 153468
 SHA256 (rust/crates/regex-automata-0.4.14.crate) = 6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f
 SIZE (rust/crates/regex-automata-0.4.14.crate) = 618012
-SHA256 (rust/crates/regex-syntax-0.8.10.crate) = dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a
-SIZE (rust/crates/regex-syntax-0.8.10.crate) = 358781
-SHA256 (rust/crates/rustc-hash-2.1.2.crate) = 94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe
-SIZE (rust/crates/rustc-hash-2.1.2.crate) = 14754
+SHA256 (rust/crates/regex-syntax-0.8.11.crate) = d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4
+SIZE (rust/crates/regex-syntax-0.8.11.crate) = 359055
+SHA256 (rust/crates/rustc-hash-2.1.3.crate) = 6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d
+SIZE (rust/crates/rustc-hash-2.1.3.crate) = 14811
 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
 SIZE (rust/crates/shlex-1.3.0.crate) = 18713
 SHA256 (rust/crates/shlex-2.0.1.crate) = f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba
 SIZE (rust/crates/shlex-2.0.1.crate) = 19332
-SHA256 (rust/crates/syn-2.0.117.crate) = e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99
-SIZE (rust/crates/syn-2.0.117.crate) = 306011
+SHA256 (rust/crates/syn-2.0.118.crate) = 1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422
+SIZE (rust/crates/syn-2.0.118.crate) = 305533
 SHA256 (rust/crates/target-lexicon-0.13.5.crate) = adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca
 SIZE (rust/crates/target-lexicon-0.13.5.crate) = 26928
 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
@@ -101,3 +99,7 @@ SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1
 SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
 SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
 SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (cloudflare-boring-931385ed41df448c82d150219f69af56e3c8399f_GH0.tar.gz) = cc7b97c7a9fd7fd11a10c423652f3808102f464b5cc9daf55853c1600edf5a2e
+SIZE (cloudflare-boring-931385ed41df448c82d150219f69af56e3c8399f_GH0.tar.gz) = 319654
+SHA256 (google-boringssl-e2a57cf_GH0.tar.gz) = 31f64e261fc40c2b9dc6dcd3d7f7da9e23fca2ea22acafa953826af01802e7e3
+SIZE (google-boringssl-e2a57cf_GH0.tar.gz) = 70389184
diff --git a/security/py-utls/files/patch-pyproject.toml b/security/py-utls/files/patch-pyproject.toml
new file mode 100644
index 000000000000..b2df0f53aeb5
--- /dev/null
+++ b/security/py-utls/files/patch-pyproject.toml
@@ -0,0 +1,9 @@
+--- pyproject.toml.orig	2006-07-24 01:21:28 UTC
++++ pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = ["maturin>=1.7,<1.14"]
++requires = ["maturin>=1.7"]
+ build-backend = "maturin"
+ 
+ [project]