summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Zamarin <arthurzam@gentoo.org>2024-05-18 19:38:50 +0300
committerArthur Zamarin <arthurzam@gentoo.org>2024-05-18 19:40:32 +0300
commit822c415662f1587768dd4c038f2019bae123c94b (patch)
tree0426591809f2dbc52c236c00696ce38257467d9a
parentdev-python/paste: Enable py3.13 (diff)
downloadgentoo-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.patch27
-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() {