commit:     7d043cbaeda9ad1128fe8130ca31738371e02233
Author:     Jérôme Carretero <cJ-gentoo <AT> zougloub <DOT> eu>
AuthorDate: Fri Feb 17 19:08:41 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Feb 27 15:43:19 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d043cba

dev-python/fonttools: add pypy3 to PYTHON_COMPAT

Signed-off-by: Jérôme Carretero <cJ-gentoo <AT> zougloub.eu>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../fonttools/files/fonttools-4.38.0-pypy3.patch   | 34 +++++++++++
 dev-python/fonttools/fonttools-4.38.0-r1.ebuild    | 70 ++++++++++++++++++++++
 2 files changed, 104 insertions(+)

diff --git a/dev-python/fonttools/files/fonttools-4.38.0-pypy3.patch 
b/dev-python/fonttools/files/fonttools-4.38.0-pypy3.patch
new file mode 100644
index 000000000000..4a85cde3891e
--- /dev/null
+++ b/dev-python/fonttools/files/fonttools-4.38.0-pypy3.patch
@@ -0,0 +1,34 @@
+url: https://github.com/fonttools/fonttools/issues/2996
+
+commit ca9d98d94c3ba98db934f0d1e3a77134171f2262
+Author: Jérôme Carretero <[email protected]>
+Date:   Fri Feb 17 19:24:46 2023 -0500
+
+    Fixup pypy3 compatibility
+
+diff --git a/Lib/fontTools/misc/macCreatorType.py 
b/Lib/fontTools/misc/macCreatorType.py
+index 6b191054b..f680f238d 100644
+--- a/Lib/fontTools/misc/macCreatorType.py
++++ b/Lib/fontTools/misc/macCreatorType.py
+@@ -24,7 +24,7 @@ def getMacCreatorAndType(path):
+       """
+       if xattr is not None:
+               try:
+-                      finderInfo = xattr.getxattr(path, 
'com.apple.FinderInfo')
++                      finderInfo = xattr.getxattr(str(path), 
'com.apple.FinderInfo')
+               except (KeyError, IOError):
+                       pass
+               else:
+diff --git a/Lib/fontTools/subset/svg.py b/Lib/fontTools/subset/svg.py
+index 4ed2cbd20..4a8823928 100644
+--- a/Lib/fontTools/subset/svg.py
++++ b/Lib/fontTools/subset/svg.py
+@@ -77,7 +77,7 @@ def iter_referenced_ids(tree: etree.Element) -> 
Iterator[str]:
+ 
+         attrs = el.attrib
+         if "style" in attrs:
+-            attrs = {**attrs, **parse_css_declarations(el.attrib["style"])}
++            attrs = {**dict(attrs), 
**dict(parse_css_declarations(el.attrib["style"]))}
+         for attr in ("fill", "clip-path"):
+             if attr in attrs:
+                 value = attrs[attr]

diff --git a/dev-python/fonttools/fonttools-4.38.0-r1.ebuild 
b/dev-python/fonttools/fonttools-4.38.0-r1.ebuild
new file mode 100644
index 000000000000..d401fb8fb46d
--- /dev/null
+++ b/dev-python/fonttools/fonttools-4.38.0-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} pypy3 )
+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 ~ia64 ~loong ~m68k ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+       >=dev-python/fs-2.4.9[${PYTHON_USEDEP}]
+"
+BDEPEND="
+       dev-python/cython[${PYTHON_USEDEP}]
+       test? (
+               app-arch/brotli[python,${PYTHON_USEDEP}]
+               app-arch/zopfli
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/fonttools-4.38.0-pypy3.patch"
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+       # When dev-python/pytest-shutil is installed, we get weird import 
errors.
+       # This is due to incomplete nesting in the Tests/ tree:
+       #
+       #   Tests/feaLib/__init__.py
+       #   Tests/ufoLib/__init__.py
+       #   Tests/svgLib/path/__init__.py
+       #   Tests/otlLib/__init__.py
+       #   Tests/varLib/__init__.py
+       #
+       # This tree requires an __init__.py in Tests/svgLib/ too, bug #701148.
+       touch Tests/svgLib/__init__.py || die
+
+       distutils-r1_python_prepare_all
+}
+
+src_configure() {
+       export FONTTOOLS_WITH_CYTHON=1
+}
+
+src_test() {
+       # virtualx used when matplotlib is installed causing plot module tests 
to run
+       virtx distutils-r1_src_test
+}
+
+python_test() {
+       epytest Tests fontTools || die "Tests failed with ${EPYTHON}"
+}

Reply via email to