diff options
author | Arthur Zamarin <arthurzam@gentoo.org> | 2024-05-18 19:38:50 +0300 |
---|---|---|
committer | Arthur Zamarin <arthurzam@gentoo.org> | 2024-05-18 19:40:32 +0300 |
commit | 822c415662f1587768dd4c038f2019bae123c94b (patch) | |
tree | 0426591809f2dbc52c236c00696ce38257467d9a | |
parent | dev-python/paste: Enable py3.13 (diff) | |
download | gentoo-822c415662f1587768dd4c038f2019bae123c94b.tar.gz gentoo-822c415662f1587768dd4c038f2019bae123c94b.tar.bz2 gentoo-822c415662f1587768dd4c038f2019bae123c94b.zip |
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@gentoo.org>
-rw-r--r-- | dev-python/tree-sitter/files/tree-sitter-0.22.2-fix-32-bit.patch | 27 | ||||
-rw-r--r-- | dev-python/tree-sitter/tree-sitter-0.22.2-r1.ebuild (renamed from dev-python/tree-sitter/tree-sitter-0.22.2.ebuild) | 4 |
2 files changed, 30 insertions, 1 deletions
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 <chronobserver@disroot.org> +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 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() { |