commit:     22bb061841749f56c4a903048501bdb234b67339
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 27 04:43:14 2025 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Thu Nov 27 05:03:39 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=22bb0618

dev-python/charset-normalizer: add native extension support

Uses mypyc to accelerate charset_normalizer.md; mypy is not available on
all arches and also not for pypy.

Closes: https://bugs.gentoo.org/911128
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 .../charset-normalizer-3.4.4-r1.ebuild             | 45 ++++++++++++++++++++++
 dev-python/charset-normalizer/metadata.xml         |  1 -
 profiles/arch/alpha/package.use.mask               |  4 ++
 profiles/arch/hppa/package.use.mask                |  4 ++
 profiles/arch/mips/package.use.mask                |  4 ++
 5 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/dev-python/charset-normalizer/charset-normalizer-3.4.4-r1.ebuild 
b/dev-python/charset-normalizer/charset-normalizer-3.4.4-r1.ebuild
new file mode 100644
index 000000000000..78e011177782
--- /dev/null
+++ b/dev-python/charset-normalizer/charset-normalizer-3.4.4-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+DISTUTILS_EXT=1
+PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer
+PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="The Real First Universal Charset Detector"
+HOMEPAGE="
+       https://pypi.org/project/charset-normalizer/
+       https://github.com/jawah/charset_normalizer/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="+native-extensions"
+
+BDEPEND="
+       native-extensions? (
+               $(python_gen_cond_dep '
+                       dev-python/mypy[${PYTHON_USEDEP}]
+               ' python3.{11..14})
+       )
+       dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_compile() {
+       local -x CHARSET_NORMALIZER_USE_MYPYC=$(usex native-extensions 1 0)
+
+       distutils-r1_python_compile
+}
+
+python_test() {
+       epytest -o addopts=
+}

diff --git a/dev-python/charset-normalizer/metadata.xml 
b/dev-python/charset-normalizer/metadata.xml
index 687e12988cd0..5fc9281fe60c 100644
--- a/dev-python/charset-normalizer/metadata.xml
+++ b/dev-python/charset-normalizer/metadata.xml
@@ -4,7 +4,6 @@
        <maintainer type="project">
                <email>[email protected]</email>
        </maintainer>
-       <stabilize-allarches/>
        <upstream>
                <remote-id type="github">jawah/charset_normalizer</remote-id>
                <remote-id type="pypi">charset-normalizer</remote-id>

diff --git a/profiles/arch/alpha/package.use.mask 
b/profiles/arch/alpha/package.use.mask
index ad1350522ab2..ba81087d9659 100644
--- a/profiles/arch/alpha/package.use.mask
+++ b/profiles/arch/alpha/package.use.mask
@@ -1,6 +1,10 @@
 # Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Eli Schwartz <[email protected]> (2025-11-27)
+# Needs dev-python/mypy for mypyc, not keyworded here
+dev-python/charset-normalizer native-extensions
+
 # Viorel Munteanu <[email protected]> (2025-11-09)
 # Needs media-video/pipewire, not keyworded here
 net-misc/tigervnc wayland

diff --git a/profiles/arch/hppa/package.use.mask 
b/profiles/arch/hppa/package.use.mask
index 58102ca6d2d5..7b59257dbc1e 100644
--- a/profiles/arch/hppa/package.use.mask
+++ b/profiles/arch/hppa/package.use.mask
@@ -4,6 +4,10 @@
 # NOTE: When masking a USE flag due to missing keywords, please file a keyword
 # request bug for the hppa arch.
 
+# Eli Schwartz <[email protected]> (2025-11-27)
+# Needs dev-python/mypy for mypyc, not keyworded here
+dev-python/charset-normalizer native-extensions
+
 # Ionen Wolkens <[email protected]> (2025-11-20)
 # Needs llvm-core/clang which is not keyworded here
 dev-qt/qttools qdoc

diff --git a/profiles/arch/mips/package.use.mask 
b/profiles/arch/mips/package.use.mask
index bb4e2d4ded95..f961bf00f954 100644
--- a/profiles/arch/mips/package.use.mask
+++ b/profiles/arch/mips/package.use.mask
@@ -1,6 +1,10 @@
 # Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
+# Eli Schwartz <[email protected]> (2025-11-27)
+# Needs dev-python/mypy for mypyc, not keyworded here
+dev-python/charset-normalizer native-extensions
+
 # Sam James <[email protected]> (2025-11-15)
 # sys-block/thin-provisioning-tools not keyworded here
 sys-fs/lvm2 thin

Reply via email to