git: 14b58f68ba84 - main - x11-fonts/py-shaperglot: Update to 1.0.2

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Wed, 09 Apr 2025 17:49:53 UTC
The branch main has been updated by sunpoet:

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

commit 14b58f68ba84cf8eca2244a504d41ac12ee5de76
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-04-09 17:44:41 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-04-09 17:44:41 +0000

    x11-fonts/py-shaperglot: Update to 1.0.2
    
    Changes:        https://github.com/googlefonts/shaperglot/releases
---
 x11-fonts/py-shaperglot/Makefile                   |  28 +--
 x11-fonts/py-shaperglot/Makefile.crates            | 130 ++++++++++
 x11-fonts/py-shaperglot/distinfo                   | 266 ++++++++++++++++++++-
 x11-fonts/py-shaperglot/files/patch-protoc         |  23 ++
 x11-fonts/py-shaperglot/files/patch-pyproject.toml |  14 +-
 5 files changed, 434 insertions(+), 27 deletions(-)

diff --git a/x11-fonts/py-shaperglot/Makefile b/x11-fonts/py-shaperglot/Makefile
index 252fb3bc0a1a..09ba6e97c9cb 100644
--- a/x11-fonts/py-shaperglot/Makefile
+++ b/x11-fonts/py-shaperglot/Makefile
@@ -1,32 +1,28 @@
 PORTNAME=	shaperglot
-PORTVERSION=	0.6.4
+PORTVERSION=	1.0.2
 CATEGORIES=	x11-fonts python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTFILES=	shaperglot-${PORTVERSION}${EXTRACT_SUFX}
 
 MAINTAINER=	sunpoet@FreeBSD.org
 COMMENT=	Test font files for OpenType language support
 WWW=		https://github.com/googlefonts/shaperglot
 
 LICENSE=	APACHE20
-LICENSE_FILE=	${WRKSRC}/LICENSE.md
 
-BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=61:devel/py-setuptools@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8.0.4:devel/py-setuptools-scm@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gflanguages>=0.6.5:x11-fonts/py-gflanguages@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}num2words>=0.5<0.6:devel/py-num2words@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}protobuf>=3.20.3,1:devel/py-protobuf@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}strictyaml>=0:devel/py-strictyaml@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}termcolor>=2.4.0:devel/py-termcolor@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}ufo2ft>=0:x11-fonts/py-ufo2ft@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}vharfbuzz>=0<1:print/py-vharfbuzz@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}youseedee>=0:textproc/py-youseedee@${PY_FLAVOR}
+BUILD_DEPENDS=	protoc:devel/protobuf \
+		${PYTHON_PKGNAMEPREFIX}maturin>=1.8.2<2.0:devel/py-maturin@${PY_FLAVOR}
 
-USES=		python
+USES=		cargo python
 USE_PYTHON=	autoplist concurrent pep517
 
-NO_ARCH=	yes
+CARGO_BUILD=	no
+CARGO_CARGOLOCK=${WRKSRC}/shaperglot-py/Cargo.lock
+CARGO_CARGOTOML=${WRKSRC}/shaperglot-py/Cargo.toml
+CARGO_INSTALL=	no
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/cargo-crates/google-fonts-languages-0.7.3/build.rs
 
 .include <bsd.port.mk>
diff --git a/x11-fonts/py-shaperglot/Makefile.crates b/x11-fonts/py-shaperglot/Makefile.crates
new file mode 100644
index 000000000000..099a7d218a1f
--- /dev/null
+++ b/x11-fonts/py-shaperglot/Makefile.crates
@@ -0,0 +1,130 @@
+CARGO_CRATES=	aho-corasick-1.1.3 \
+		ambassador-0.4.1 \
+		anstream-0.6.18 \
+		anstyle-1.0.10 \
+		anstyle-parse-0.2.6 \
+		anstyle-query-1.1.2 \
+		anstyle-wincon-3.0.7 \
+		anyhow-1.0.97 \
+		autocfg-1.4.0 \
+		bitflags-2.9.0 \
+		bumpalo-3.17.0 \
+		bytemuck-1.22.0 \
+		bytemuck_derive-1.9.3 \
+		bytes-1.10.1 \
+		cfg-if-1.0.0 \
+		clap-4.5.34 \
+		clap_builder-4.5.34 \
+		clap_derive-4.5.32 \
+		clap_lex-0.7.4 \
+		colorchoice-1.0.3 \
+		colored-3.0.0 \
+		console_error_panic_hook-0.1.7 \
+		core_maths-0.1.1 \
+		either-1.15.0 \
+		equivalent-1.0.2 \
+		errno-0.3.10 \
+		fastrand-2.3.0 \
+		fixedbitset-0.5.7 \
+		font-types-0.8.4 \
+		getrandom-0.3.2 \
+		glob-0.3.2 \
+		google-fonts-languages-0.7.3 \
+		hashbrown-0.12.3 \
+		hashbrown-0.15.2 \
+		heck-0.5.0 \
+		home-0.5.11 \
+		indexmap-1.9.3 \
+		indexmap-2.8.0 \
+		indoc-2.0.6 \
+		is_terminal_polyfill-1.70.1 \
+		itertools-0.10.5 \
+		itertools-0.13.0 \
+		itertools-0.14.0 \
+		itoa-1.0.15 \
+		js-sys-0.3.77 \
+		libc-0.2.171 \
+		libm-0.2.11 \
+		linux-raw-sys-0.4.15 \
+		linux-raw-sys-0.9.3 \
+		log-0.4.27 \
+		memchr-2.7.4 \
+		memoffset-0.9.1 \
+		multimap-0.10.0 \
+		once_cell-1.21.3 \
+		petgraph-0.7.1 \
+		portable-atomic-1.11.0 \
+		prettyplease-0.2.31 \
+		proc-macro2-1.0.94 \
+		prost-0.13.5 \
+		prost-build-0.13.5 \
+		prost-derive-0.13.5 \
+		prost-types-0.13.5 \
+		protobuf-3.7.2 \
+		protobuf-parse-3.7.2 \
+		protobuf-support-3.7.2 \
+		pyo3-0.23.5 \
+		pyo3-build-config-0.23.5 \
+		pyo3-ffi-0.23.5 \
+		pyo3-macros-0.23.5 \
+		pyo3-macros-backend-0.23.5 \
+		pythonize-0.23.0 \
+		quote-1.0.40 \
+		r-efi-5.2.0 \
+		read-fonts-0.25.3 \
+		read-fonts-0.26.0 \
+		regex-1.11.1 \
+		regex-automata-0.4.9 \
+		regex-syntax-0.8.5 \
+		rustix-0.38.44 \
+		rustix-1.0.3 \
+		rustversion-1.0.20 \
+		rustybuzz-0.20.1 \
+		ryu-1.0.20 \
+		serde-1.0.219 \
+		serde_derive-1.0.219 \
+		serde_json-1.0.140 \
+		serde_spanned-0.6.8 \
+		skrifa-0.26.6 \
+		smallvec-1.14.0 \
+		strsim-0.11.1 \
+		syn-1.0.109 \
+		syn-2.0.100 \
+		target-lexicon-0.12.16 \
+		tempfile-3.19.1 \
+		thiserror-1.0.69 \
+		thiserror-impl-1.0.69 \
+		tinyvec-1.9.0 \
+		tinyvec_macros-0.1.1 \
+		toml-0.8.20 \
+		toml_datetime-0.6.8 \
+		toml_edit-0.22.24 \
+		ttf-parser-0.25.1 \
+		unicode-bidi-mirroring-0.4.0 \
+		unicode-ccc-0.4.0 \
+		unicode-ident-1.0.18 \
+		unicode-joining-type-1.0.0 \
+		unicode-normalization-0.1.24 \
+		unicode-properties-0.1.3 \
+		unicode-script-0.5.7 \
+		unindent-0.2.4 \
+		utf8parse-0.2.2 \
+		wasi-0.14.2+wasi-0.2.4 \
+		wasm-bindgen-0.2.100 \
+		wasm-bindgen-backend-0.2.100 \
+		wasm-bindgen-macro-0.2.100 \
+		wasm-bindgen-macro-support-0.2.100 \
+		wasm-bindgen-shared-0.2.100 \
+		which-4.4.2 \
+		windows-sys-0.59.0 \
+		windows-targets-0.52.6 \
+		windows_aarch64_gnullvm-0.52.6 \
+		windows_aarch64_msvc-0.52.6 \
+		windows_i686_gnu-0.52.6 \
+		windows_i686_gnullvm-0.52.6 \
+		windows_i686_msvc-0.52.6 \
+		windows_x86_64_gnu-0.52.6 \
+		windows_x86_64_gnullvm-0.52.6 \
+		windows_x86_64_msvc-0.52.6 \
+		winnow-0.7.4 \
+		wit-bindgen-rt-0.39.0
diff --git a/x11-fonts/py-shaperglot/distinfo b/x11-fonts/py-shaperglot/distinfo
index f99a56e74667..878997d2d90e 100644
--- a/x11-fonts/py-shaperglot/distinfo
+++ b/x11-fonts/py-shaperglot/distinfo
@@ -1,3 +1,263 @@
-TIMESTAMP = 1729653380
-SHA256 (shaperglot-0.6.4.tar.gz) = 2ca4e909ffe693b445c626b773d04bff67ae585478b685900706f1bc8dabede1
-SIZE (shaperglot-0.6.4.tar.gz) = 220631
+TIMESTAMP = 1744215567
+SHA256 (shaperglot-1.0.2.tar.gz) = 16ad831120f721af403bcaeb559507aa5b4a56d3c5224dfcd32d0aaa7119930d
+SIZE (shaperglot-1.0.2.tar.gz) = 37069
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/ambassador-0.4.1.crate) = 6b27ba24e4d8a188489d5a03c7fabc167a60809a383cdb4d15feb37479cd2a48
+SIZE (rust/crates/ambassador-0.4.1.crate) = 28792
+SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b
+SIZE (rust/crates/anstream-0.6.18.crate) = 29681
+SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9
+SIZE (rust/crates/anstyle-1.0.10.crate) = 15725
+SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9
+SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343
+SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c
+SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969
+SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e
+SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400
+SHA256 (rust/crates/anyhow-1.0.97.crate) = dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f
+SIZE (rust/crates/anyhow-1.0.97.crate) = 52221
+SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
+SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
+SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd
+SIZE (rust/crates/bitflags-2.9.0.crate) = 47654
+SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf
+SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975
+SHA256 (rust/crates/bytemuck-1.22.0.crate) = b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540
+SIZE (rust/crates/bytemuck-1.22.0.crate) = 52451
+SHA256 (rust/crates/bytemuck_derive-1.9.3.crate) = 7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1
+SIZE (rust/crates/bytemuck_derive-1.9.3.crate) = 23555
+SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
+SIZE (rust/crates/bytes-1.10.1.crate) = 76779
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clap-4.5.34.crate) = e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff
+SIZE (rust/crates/clap-4.5.34.crate) = 56980
+SHA256 (rust/crates/clap_builder-4.5.34.crate) = 83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489
+SIZE (rust/crates/clap_builder-4.5.34.crate) = 168417
+SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7
+SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441
+SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6
+SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858
+SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990
+SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923
+SHA256 (rust/crates/colored-3.0.0.crate) = fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e
+SIZE (rust/crates/colored-3.0.0.crate) = 34497
+SHA256 (rust/crates/console_error_panic_hook-0.1.7.crate) = a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc
+SIZE (rust/crates/console_error_panic_hook-0.1.7.crate) = 507196
+SHA256 (rust/crates/core_maths-0.1.1.crate) = 77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30
+SIZE (rust/crates/core_maths-0.1.1.crate) = 6528
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d
+SIZE (rust/crates/errno-0.3.10.crate) = 11824
+SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
+SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
+SHA256 (rust/crates/fixedbitset-0.5.7.crate) = 1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99
+SIZE (rust/crates/fixedbitset-0.5.7.crate) = 26537
+SHA256 (rust/crates/font-types-0.8.4.crate) = 1fa6a5e5a77b5f3f7f9e32879f484aa5b3632ddfbe568a16266c904a6f32cdaf
+SIZE (rust/crates/font-types-0.8.4.crate) = 24646
+SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0
+SIZE (rust/crates/getrandom-0.3.2.crate) = 49140
+SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2
+SIZE (rust/crates/glob-0.3.2.crate) = 22359
+SHA256 (rust/crates/google-fonts-languages-0.7.3.crate) = 46660dfb52a0e3d47ae4ab9024a7e1b25ebd1fe695fc9afdfa8c73e94b7cf764
+SIZE (rust/crates/google-fonts-languages-0.7.3.crate) = 809901
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289
+SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/home-0.5.11.crate) = 589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf
+SIZE (rust/crates/home-0.5.11.crate) = 9926
+SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99
+SIZE (rust/crates/indexmap-1.9.3.crate) = 54653
+SHA256 (rust/crates/indexmap-2.8.0.crate) = 3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058
+SIZE (rust/crates/indexmap-2.8.0.crate) = 89670
+SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd
+SIZE (rust/crates/indoc-2.0.6.crate) = 17164
+SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
+SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
+SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
+SIZE (rust/crates/itertools-0.10.5.crate) = 115354
+SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186
+SIZE (rust/crates/itertools-0.13.0.crate) = 146261
+SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285
+SIZE (rust/crates/itertools-0.14.0.crate) = 152715
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f
+SIZE (rust/crates/js-sys-0.3.77.crate) = 55538
+SHA256 (rust/crates/libc-0.2.171.crate) = c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6
+SIZE (rust/crates/libc-0.2.171.crate) = 785246
+SHA256 (rust/crates/libm-0.2.11.crate) = 8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa
+SIZE (rust/crates/libm-0.2.11.crate) = 111477
+SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab
+SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898
+SHA256 (rust/crates/linux-raw-sys-0.9.3.crate) = fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413
+SIZE (rust/crates/linux-raw-sys-0.9.3.crate) = 2311047
+SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
+SIZE (rust/crates/log-0.4.27.crate) = 48120
+SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
+SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/multimap-0.10.0.crate) = defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03
+SIZE (rust/crates/multimap-0.10.0.crate) = 14359
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/petgraph-0.7.1.crate) = 3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772
+SIZE (rust/crates/petgraph-0.7.1.crate) = 736025
+SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e
+SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258
+SHA256 (rust/crates/prettyplease-0.2.31.crate) = 5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb
+SIZE (rust/crates/prettyplease-0.2.31.crate) = 72021
+SHA256 (rust/crates/proc-macro2-1.0.94.crate) = a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84
+SIZE (rust/crates/proc-macro2-1.0.94.crate) = 52391
+SHA256 (rust/crates/prost-0.13.5.crate) = 2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5
+SIZE (rust/crates/prost-0.13.5.crate) = 32469
+SHA256 (rust/crates/prost-build-0.13.5.crate) = be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf
+SIZE (rust/crates/prost-build-0.13.5.crate) = 47493
+SHA256 (rust/crates/prost-derive-0.13.5.crate) = 8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d
+SIZE (rust/crates/prost-derive-0.13.5.crate) = 20600
+SHA256 (rust/crates/prost-types-0.13.5.crate) = 52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16
+SIZE (rust/crates/prost-types-0.13.5.crate) = 49145
+SHA256 (rust/crates/protobuf-3.7.2.crate) = d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4
+SIZE (rust/crates/protobuf-3.7.2.crate) = 211978
+SHA256 (rust/crates/protobuf-parse-3.7.2.crate) = b4aeaa1f2460f1d348eeaeed86aea999ce98c1bded6f089ff8514c9d9dbdc973
+SIZE (rust/crates/protobuf-parse-3.7.2.crate) = 68279
+SHA256 (rust/crates/protobuf-support-3.7.2.crate) = 3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6
+SIZE (rust/crates/protobuf-support-3.7.2.crate) = 11725
+SHA256 (rust/crates/pyo3-0.23.5.crate) = 7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872
+SIZE (rust/crates/pyo3-0.23.5.crate) = 1088533
+SHA256 (rust/crates/pyo3-build-config-0.23.5.crate) = 94f6cbe86ef3bf18998d9df6e0f3fc1050a8c5efa409bf712e661a4366e010fb
+SIZE (rust/crates/pyo3-build-config-0.23.5.crate) = 33885
+SHA256 (rust/crates/pyo3-ffi-0.23.5.crate) = e9f1b4c431c0bb1c8fb0a338709859eed0d030ff6daa34368d3b152a63dfdd8d
+SIZE (rust/crates/pyo3-ffi-0.23.5.crate) = 74867
+SHA256 (rust/crates/pyo3-macros-0.23.5.crate) = fbc2201328f63c4710f68abdf653c89d8dbc2858b88c5d88b0ff38a75288a9da
+SIZE (rust/crates/pyo3-macros-0.23.5.crate) = 8856
+SHA256 (rust/crates/pyo3-macros-backend-0.23.5.crate) = fca6726ad0f3da9c9de093d6f116a93c1a38e417ed73bf138472cf4064f72028
+SIZE (rust/crates/pyo3-macros-backend-0.23.5.crate) = 70938
+SHA256 (rust/crates/pythonize-0.23.0.crate) = 91a6ee7a084f913f98d70cdc3ebec07e852b735ae3059a1500db2661265da9ff
+SIZE (rust/crates/pythonize-0.23.0.crate) = 16177
+SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
+SIZE (rust/crates/quote-1.0.40.crate) = 31063
+SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5
+SIZE (rust/crates/r-efi-5.2.0.crate) = 64764
+SHA256 (rust/crates/read-fonts-0.25.3.crate) = f6f9e8a4f503e5c8750e4cd3b32a4e090035c46374b305a15c70bad833dca05f
+SIZE (rust/crates/read-fonts-0.25.3.crate) = 342224
+SHA256 (rust/crates/read-fonts-0.26.0.crate) = e047d914728204f5c7109357a172fdafc257d69e9f5e053297944ee12dd8aa71
+SIZE (rust/crates/read-fonts-0.26.0.crate) = 350455
+SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
+SIZE (rust/crates/regex-1.11.1.crate) = 254170
+SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
+SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
+SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
+SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154
+SIZE (rust/crates/rustix-0.38.44.crate) = 379347
+SHA256 (rust/crates/rustix-1.0.3.crate) = e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96
+SIZE (rust/crates/rustix-1.0.3.crate) = 413960
+SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2
+SIZE (rust/crates/rustversion-1.0.20.crate) = 20666
+SHA256 (rust/crates/rustybuzz-0.20.1.crate) = fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702
+SIZE (rust/crates/rustybuzz-0.20.1.crate) = 272721
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
+SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6
+SIZE (rust/crates/serde-1.0.219.crate) = 78983
+SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
+SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
+SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373
+SIZE (rust/crates/serde_json-1.0.140.crate) = 154852
+SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1
+SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330
+SHA256 (rust/crates/skrifa-0.26.6.crate) = 8cc1aa86c26dbb1b63875a7180aa0819709b33348eb5b1491e4321fae388179d
+SIZE (rust/crates/skrifa-0.26.6.crate) = 261208
+SHA256 (rust/crates/smallvec-1.14.0.crate) = 7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd
+SIZE (rust/crates/smallvec-1.14.0.crate) = 35561
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.100.crate) = b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0
+SIZE (rust/crates/syn-2.0.100.crate) = 297947
+SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1
+SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488
+SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf
+SIZE (rust/crates/tempfile-3.19.1.crate) = 39634
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71
+SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137
+SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
+SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
+SHA256 (rust/crates/toml-0.8.20.crate) = cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148
+SIZE (rust/crates/toml-0.8.20.crate) = 51095
+SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41
+SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028
+SHA256 (rust/crates/toml_edit-0.22.24.crate) = 17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474
+SIZE (rust/crates/toml_edit-0.22.24.crate) = 106399
+SHA256 (rust/crates/ttf-parser-0.25.1.crate) = d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31
+SIZE (rust/crates/ttf-parser-0.25.1.crate) = 201121
+SHA256 (rust/crates/unicode-bidi-mirroring-0.4.0.crate) = 5dfa6e8c60bb66d49db113e0125ee8711b7647b5579dc7f5f19c42357ed039fe
+SIZE (rust/crates/unicode-bidi-mirroring-0.4.0.crate) = 8169
+SHA256 (rust/crates/unicode-ccc-0.4.0.crate) = ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e
+SIZE (rust/crates/unicode-ccc-0.4.0.crate) = 8942
+SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
+SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743
+SHA256 (rust/crates/unicode-joining-type-1.0.0.crate) = d8d00a78170970967fdb83f9d49b92f959ab2bb829186b113e4f4604ad98e180
+SIZE (rust/crates/unicode-joining-type-1.0.0.crate) = 18167
+SHA256 (rust/crates/unicode-normalization-0.1.24.crate) = 5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956
+SIZE (rust/crates/unicode-normalization-0.1.24.crate) = 126536
+SHA256 (rust/crates/unicode-properties-0.1.3.crate) = e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0
+SIZE (rust/crates/unicode-properties-0.1.3.crate) = 42252
+SHA256 (rust/crates/unicode-script-0.5.7.crate) = 9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f
+SIZE (rust/crates/unicode-script-0.5.7.crate) = 47080
+SHA256 (rust/crates/unindent-0.2.4.crate) = 7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3
+SIZE (rust/crates/unindent-0.2.4.crate) = 7422
+SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
+SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3
+SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921
+SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5
+SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6
+SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407
+SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d
+SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570
+SHA256 (rust/crates/which-4.4.2.crate) = 87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7
+SIZE (rust/crates/which-4.4.2.crate) = 15953
+SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
+SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/winnow-0.7.4.crate) = 0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36
+SIZE (rust/crates/winnow-0.7.4.crate) = 173588
+SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
+SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
diff --git a/x11-fonts/py-shaperglot/files/patch-protoc b/x11-fonts/py-shaperglot/files/patch-protoc
new file mode 100644
index 000000000000..49cf03c6b4b7
--- /dev/null
+++ b/x11-fonts/py-shaperglot/files/patch-protoc
@@ -0,0 +1,23 @@
+--- cargo-crates/google-fonts-languages-0.7.3/build.rs.orig	2006-07-24 01:21:28 UTC
++++ cargo-crates/google-fonts-languages-0.7.3/build.rs
+@@ -21,7 +21,7 @@ fn main() {
+     // Now we use the prost crate to compile them, so that we can
+     // generate Rust structs.
+     let mut config = prost_build::Config::new();
+-    config.protoc_executable(protoc_bin_vendored::protoc_bin_path().unwrap());
++    config.protoc_executable("%%LOCALBASE%%/bin/protoc");
+     // config.boxed(".google.languages_public.LanguageProto.sample_text");
+     // config.boxed(".google.languages_public.LanguageProto.exemplar_chars");
+ 
+--- cargo-crates/google-fonts-languages-0.7.3/Cargo.toml.orig	1970-01-01 00:00:01 UTC
++++ cargo-crates/google-fonts-languages-0.7.3/Cargo.toml
+@@ -65,9 +65,6 @@ version = "3.7.1"
+ [build-dependencies.protobuf-support]
+ version = "3.7.1"
+ 
+-[build-dependencies.protoc-bin-vendored]
+-version = "3.1.0"
+-
+ [build-dependencies.quote]
+ version = "1.0"
+ 
diff --git a/x11-fonts/py-shaperglot/files/patch-pyproject.toml b/x11-fonts/py-shaperglot/files/patch-pyproject.toml
index e1797d732b92..7289ea9f11eb 100644
--- a/x11-fonts/py-shaperglot/files/patch-pyproject.toml
+++ b/x11-fonts/py-shaperglot/files/patch-pyproject.toml
@@ -1,11 +1,9 @@
---- pyproject.toml.orig	2024-09-16 12:44:56 UTC
+--- pyproject.toml.orig	1970-01-01 00:00:00 UTC
 +++ pyproject.toml
-@@ -43,7 +43,7 @@ repository = "https://github.com/simoncozens/shaperglo
- repository = "https://github.com/simoncozens/shaperglot"
- 
+@@ -1,5 +1,5 @@
  [build-system]
--requires = ["setuptools>=75.0.0", "setuptools_scm[toml]>=8.1.0"]
-+requires = ["setuptools>=61", "setuptools_scm[toml]>=8.0.4"]
- build-backend = "setuptools.build_meta"
+-requires = ["maturin>=1.8.3,<2.0"]
++requires = ["maturin>=1.8.2,<2.0"]
+ build-backend = "maturin"
  
- [tool.setuptools.packages.find]
+ [project]