summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2025-06-07 06:09:24 +0200
committerMichał Górny <mgorny@gentoo.org>2025-06-07 08:13:22 +0200
commit35009ce0293f717503c8d41f7db9b81593d34a63 (patch)
treedca0663207d1d63fa68c6e82a032d2a7d5869d21 /dev-python
parentab798e9a2590d6e2174d5e186f4ebc4bf4441d2e (diff)
downloadgentoo-35009ce0293f717503c8d41f7db9b81593d34a63.tar.gz
gentoo-35009ce0293f717503c8d41f7db9b81593d34a63.tar.bz2
gentoo-35009ce0293f717503c8d41f7db9b81593d34a63.zip
dev-python/fonttools: Bump to 4.58.2
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/fonttools/Manifest1
-rw-r--r--dev-python/fonttools/files/fonttools-4.58.2-py313.patch42
-rw-r--r--dev-python/fonttools/fonttools-4.58.2.ebuild74
3 files changed, 117 insertions, 0 deletions
diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest
index 9a83081ab985..2f26d10793ca 100644
--- a/dev-python/fonttools/Manifest
+++ b/dev-python/fonttools/Manifest
@@ -2,3 +2,4 @@ DIST fonttools-4.56.0.gh.tar.gz 3900744 BLAKE2B f75ad562092cadbf2a844fedf47e1b05
DIST fonttools-4.57.0.gh.tar.gz 3932468 BLAKE2B 7bfcf6aa3b5cffbba7cdabe14a580dc40677a1d80a2d69750925d7e06c1885df9cd586a228c0d06707acdc9870e92241cce373f0eb27f93a4f887ba14631470c SHA512 7e3ef7149b8e6af5953a827e0a078390e67b919ba9752a03672d876f6de3d0d395b2e061c0f87e5d9298c13c74a1f0162d99151c364dfab487eec2ab9adced75
DIST fonttools-4.58.0.gh.tar.gz 3955467 BLAKE2B 0094284f90685a4e8051c84374325413269ab0207f0ecc25d3129776a226de05a82adcbf1812cc3f18b8950b49f310f7a96295812a33c8e3fecd6aa48d768efb SHA512 8d32cffb2a83b0fb2eda89a8352b7e235595c8d159adb4075941da46c3715701c1d12d0f5e0fe663c587f5c888658ab1d7b2a54cb857355848627a1c25acd0ae
DIST fonttools-4.58.1.gh.tar.gz 3959551 BLAKE2B bb3a958a359654bee709efe8d21c6e7f13c62c730aa33fdcbe2866318fe91f14ee7e6b63951f17b5ff1faa3e2b96ee934bd7e5b063242d88980d649653a682ce SHA512 f5b810668dca7ffca943fc362616784d1aecbd8f036925b2f8acb2d80997c26cf8c8127814f31f1a62bcf062d83c4a8b76ee022a146d5c2b8693cd1750732545
+DIST fonttools-4.58.2.gh.tar.gz 3964058 BLAKE2B 0e367e65cd19d109db11e81020814b3b07dd7fb82068fd162ad04a7a7ee64d641991908c946f09f853b6e797b09f87bafb8870ab84750cc3d3e525083946d5d5 SHA512 f78026457be3d75be89ec6788309fc5cab9d9987b5c438bffe7059a78b5d688b6fb9a94dca9636f4c28d44a60f36cdd24bbdf1d32197d63e79b99f3108ce32a5
diff --git a/dev-python/fonttools/files/fonttools-4.58.2-py313.patch b/dev-python/fonttools/files/fonttools-4.58.2-py313.patch
new file mode 100644
index 000000000000..f4afa98b65ea
--- /dev/null
+++ b/dev-python/fonttools/files/fonttools-4.58.2-py313.patch
@@ -0,0 +1,42 @@
+From c9d720cfeb4e5bdabbed68050154f7f9486eac37 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 7 Jun 2025 07:51:13 +0200
+Subject: [PATCH] fix iterable check for Python 3.13.4 and newer
+
+Fix the `feaLib/ast.py` snippet used to check whether a type is iterable
+to work correctly with Python 3.13.4. The snippet wrongly assumed
+that a generator expression will raise immediately when the RHS of `in`
+is not iterable. This is no longer the case with Python 3.13.4,
+and such a generator only raises when you actually start iterating.
+Use a plain `for` expression to start iterating and catch the problem
+more reliably.
+
+Fixes #3854
+---
+ Lib/fontTools/feaLib/ast.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Lib/fontTools/feaLib/ast.py b/Lib/fontTools/feaLib/ast.py
+index efcce8c68..18e5a891d 100644
+--- a/Lib/fontTools/feaLib/ast.py
++++ b/Lib/fontTools/feaLib/ast.py
+@@ -719,7 +719,8 @@ class ChainContextPosStatement(Statement):
+ for i, lookup in enumerate(lookups):
+ if lookup:
+ try:
+- (_ for _ in lookup)
++ for _ in lookup:
++ break
+ except TypeError:
+ self.lookups[i] = [lookup]
+
+@@ -777,7 +778,8 @@ class ChainContextSubstStatement(Statement):
+ for i, lookup in enumerate(lookups):
+ if lookup:
+ try:
+- (_ for _ in lookup)
++ for _ in lookup:
++ break
+ except TypeError:
+ self.lookups[i] = [lookup]
+
diff --git a/dev-python/fonttools/fonttools-4.58.2.ebuild b/dev-python/fonttools/fonttools-4.58.2.ebuild
new file mode 100644
index 000000000000..6754ed213b4b
--- /dev/null
+++ b/dev-python/fonttools/fonttools-4.58.2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( pypy3_11 python3_{11..13} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
+HOMEPAGE="
+ https://github.com/fonttools/fonttools/
+ https://pypi.org/project/fonttools/
+"
+SRC_URI="
+ https://github.com/fonttools/fonttools/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+RDEPEND="
+ >=dev-python/fs-2.4.9[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+ test? (
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ dev-python/munkres[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ app-arch/zopfli
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/fonttools/fonttools/pull/3855
+ "${FILESDIR}/${P}-py313.patch"
+)
+
+python_compile() {
+ local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions)
+ [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # virtualx used when matplotlib is installed causing plot module tests to run
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # flaky test
+ Tests/ttLib/woff2_test.py::WOFF2ReaderTest::test_get_normal_tables
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ nonfatal epytest \
+ -p rerunfailures --reruns=5 \
+ Tests fontTools || die -n "Tests failed with ${EPYTHON}"
+}