summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-09-09 05:50:20 +0100
committerSam James <sam@gentoo.org>2023-09-09 05:50:20 +0100
commitfda90fa78d2d4dfefea184f8fa66a0fbcac88e99 (patch)
treeec17577087e63f846cdff0110db79b003167c162 /dev-python/jq
parentnet-analyzer/ssh-audit: drop 2.5.0 (diff)
downloadgentoo-fda90fa78d2d4dfefea184f8fa66a0fbcac88e99.tar.gz
gentoo-fda90fa78d2d4dfefea184f8fa66a0fbcac88e99.tar.bz2
gentoo-fda90fa78d2d4dfefea184f8fa66a0fbcac88e99.zip
dev-python/jq: backport cython-3 fix
Closes: https://bugs.gentoo.org/898684 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-python/jq')
-rw-r--r--dev-python/jq/files/jq-1.5.0-cython3.patch20
-rw-r--r--dev-python/jq/jq-1.5.0-r1.ebuild44
2 files changed, 64 insertions, 0 deletions
diff --git a/dev-python/jq/files/jq-1.5.0-cython3.patch b/dev-python/jq/files/jq-1.5.0-cython3.patch
new file mode 100644
index 000000000000..b4b66b65139c
--- /dev/null
+++ b/dev-python/jq/files/jq-1.5.0-cython3.patch
@@ -0,0 +1,20 @@
+https://bugs.gentoo.org/898684
+https://github.com/mwilliamson/jq.py/commit/c2c7ed1f25b51947ebb690f6b8464c78fe83bb2b
+
+From c2c7ed1f25b51947ebb690f6b8464c78fe83bb2b Mon Sep 17 00:00:00 2001
+From: Michael Williamson <mike@zwobble.org>
+Date: Thu, 31 Aug 2023 23:11:28 +0100
+Subject: [PATCH] Add explicit noexcept to _store_error for Cython 3
+ compatibility
+
+--- a/jq.pyx
++++ b/jq.pyx
+@@ -172,7 +172,7 @@ cdef jq_state* _compile(object program_bytes, object args) except NULL:
+ return jq
+
+
+-cdef void _store_error(void* store_ptr, jv error):
++cdef void _store_error(void* store_ptr, jv error) noexcept:
+ # TODO: handle errors not of JV_KIND_STRING
+ cdef _ErrorStore store = <_ErrorStore>store_ptr
+ if jv_get_kind(error) == JV_KIND_STRING:
diff --git a/dev-python/jq/jq-1.5.0-r1.ebuild b/dev-python/jq/jq-1.5.0-r1.ebuild
new file mode 100644
index 000000000000..cabe52d95c3b
--- /dev/null
+++ b/dev-python/jq/jq-1.5.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1
+
+MY_P="jq.py-${PV}"
+DESCRIPTION="Python bindings for jq"
+HOMEPAGE="
+ https://github.com/mwilliamson/jq.py/
+ https://pypi.org/project/jq/
+"
+SRC_URI="
+ https://github.com/mwilliamson/jq.py/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-cython3.patch
+)
+
+distutils_enable_tests pytest
+
+python_compile() {
+ # TODO: export JQPY_USE_SYSTEM_LIBS=1 on next release
+
+ # Cython compilation isn't part of setup.py, so do it manually
+ "${EPYTHON}" -m cython -3 jq.pyx -o jq.c || die
+ distutils-r1_python_compile
+}