commit: 822c415662f1587768dd4c038f2019bae123c94b Author: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org> AuthorDate: Sat May 18 16:38:50 2024 +0000 Commit: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org> CommitDate: Sat May 18 16:40:32 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=822c4156
dev-python/tree-sitter: fix 32 bit We had issues loading any language on 32 bit systems, which was fixed in this upstream commit. Upstream: https://github.com/tree-sitter/py-tree-sitter/commit/85e49483b6d2b49953568d95cfa03e539bfb8179 Bug: https://bugs.gentoo.org/932078 Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org> .../files/tree-sitter-0.22.2-fix-32-bit.patch | 27 ++++++++++++++++++++++ ...-0.22.2.ebuild => tree-sitter-0.22.2-r1.ebuild} | 4 +++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/dev-python/tree-sitter/files/tree-sitter-0.22.2-fix-32-bit.patch b/dev-python/tree-sitter/files/tree-sitter-0.22.2-fix-32-bit.patch new file mode 100644 index 000000000000..c7d86953fa21 --- /dev/null +++ b/dev-python/tree-sitter/files/tree-sitter-0.22.2-fix-32-bit.patch @@ -0,0 +1,27 @@ +https://github.com/tree-sitter/py-tree-sitter/commit/85e49483b6d2b49953568d95cfa03e539bfb8179 +From: ObserverOfTime <[email protected]> +fix(language): use uintptr_t + +--- a/tests/test_language.py ++++ b/tests/test_language.py +@@ -18,7 +18,6 @@ def setUp(self): + self.rust = tree_sitter_rust.language() + + def test_init_invalid(self): +- self.assertRaises(ValueError, Language, -1) + self.assertRaises(ValueError, Language, 42) + + def test_properties(self): +--- a/tree_sitter/binding/language.c ++++ b/tree_sitter/binding/language.c +@@ -5,8 +5,8 @@ int language_init(Language *self, PyObject *args, PyObject *Py_UNUSED(kwargs)) { + if (!PyArg_ParseTuple(args, "O:__init__", &language)) { + return -1; + } +- Py_ssize_t language_id = PyLong_AsSsize_t(language); +- if (language_id < 1 || (language_id % sizeof(TSLanguage *)) != 0) { ++ Py_uintptr_t language_id = PyLong_AsSize_t(language); ++ if (language_id == 0 || (language_id % sizeof(TSLanguage *)) != 0) { + if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ValueError, "invalid language ID"); + } diff --git a/dev-python/tree-sitter/tree-sitter-0.22.2.ebuild b/dev-python/tree-sitter/tree-sitter-0.22.2-r1.ebuild similarity index 90% rename from dev-python/tree-sitter/tree-sitter-0.22.2.ebuild rename to dev-python/tree-sitter/tree-sitter-0.22.2-r1.ebuild index 85c88a0273ea..5560b9fb2c6f 100644 --- a/dev-python/tree-sitter/tree-sitter-0.22.2.ebuild +++ b/dev-python/tree-sitter/tree-sitter-0.22.2-r1.ebuild @@ -44,7 +44,9 @@ BDEPEND=" distutils_enable_tests pytest PATCHES=( - "${FILESDIR}"/tree-sitter-0.22.2-unbundle.patch + "${FILESDIR}"/${PN}-0.22.2-unbundle.patch + # Fix 32-bit build, upstream, drop on next bump + "${FILESDIR}"/${P}-fix-32-bit.patch ) src_unpack() {
