diff options
3 files changed, 97 insertions, 2 deletions
diff --git a/sci-libs/libsigrokdecode/files/libsigrokdecode-0.5.3-py3.13.patch b/sci-libs/libsigrokdecode/files/libsigrokdecode-0.5.3-py3.13.patch new file mode 100644 index 000000000000..89078b3ba70e --- /dev/null +++ b/sci-libs/libsigrokdecode/files/libsigrokdecode-0.5.3-py3.13.patch @@ -0,0 +1,37 @@ +http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff;h=0c35c5c5845d05e5f624c99d58af992d2f004446 + +From: Sascha Silbe <redacted> +Date: Mon, 23 Oct 2023 20:21:38 +0000 (+0200) +Subject: srd: drop deprecated PyEval_InitThreads() on Python 3.9+ +X-Git-Url: http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff_plain;h=0c35c5c5845d05e5f624c99d58af992d2f004446 + +srd: drop deprecated PyEval_InitThreads() on Python 3.9+ + +`PyEval_InitThreads()` is called implicitly during `Py_InitializeEx()` +since Python 3.7. It has been deprecated since 3.9 and dropped in +3.13. + +[ gsi: touch up comment style ] +--- + +diff --git a/srd.c b/srd.c +index 35ec5f2..10dfaf6 100644 +--- a/srd.c ++++ b/srd.c +@@ -302,8 +302,14 @@ SRD_API int srd_init(const char *path) + g_strfreev(dir_list); + } + +- /* Initialize the Python GIL (this also happens to acquire it). */ ++#if PY_VERSION_HEX < 0x03090000 ++ /* ++ * Initialize and acquire the Python GIL. In Python 3.7+ this ++ * will be done implicitly as part of the Py_InitializeEx() ++ * call above. PyEval_InitThreads() was deprecated in 3.9. ++ */ + PyEval_InitThreads(); ++#endif + + /* Release the GIL (ignore return value, we don't need it here). */ + (void)PyEval_SaveThread(); + diff --git a/sci-libs/libsigrokdecode/libsigrokdecode-0.5.3-r3.ebuild b/sci-libs/libsigrokdecode/libsigrokdecode-0.5.3-r3.ebuild new file mode 100644 index 000000000000..0e58fddc4fb2 --- /dev/null +++ b/sci-libs/libsigrokdecode/libsigrokdecode-0.5.3-r3.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +PYTHON_COMPAT=( python3_{10..13} ) +inherit autotools python-single-r1 + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="git://sigrok.org/${PN}" + inherit git-r3 +else + SRC_URI="https://sigrok.org/download/source/${PN}/${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Provide (streaming) protocol decoding functionality" +HOMEPAGE="https://sigrok.org/wiki/Libsigrokdecode" + +LICENSE="GPL-3" +SLOT="0/4" +IUSE="static-libs" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="${PYTHON_DEPS} + >=dev-libs/glib-2.34.0 +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${P}-py3.13.patch +) + +src_prepare() { + default + + # bug #794592 + sed -i -e "s/\[SRD_PKGLIBS\],\$/& [python-${EPYTHON#python}-embed], [python-${EPYTHON#python}],/" configure.ac || die + + eautoreconf +} + +src_configure() { + econf $(use_enable static-libs static) PYTHON3="${PYTHON}" +} + +src_test() { + emake check +} + +src_install() { + default + python_optimize "${D}"/usr/share/libsigrokdecode/decoders + find "${D}" -name '*.la' -type f -delete || die +} diff --git a/sci-libs/libsigrokdecode/libsigrokdecode-9999.ebuild b/sci-libs/libsigrokdecode/libsigrokdecode-9999.ebuild index 384f455def9b..193ac833026d 100644 --- a/sci-libs/libsigrokdecode/libsigrokdecode-9999.ebuild +++ b/sci-libs/libsigrokdecode/libsigrokdecode-9999.ebuild @@ -3,7 +3,7 @@ EAPI="8" -PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_COMPAT=( python3_{10..13} ) inherit autotools python-single-r1 if [[ ${PV} == *9999* ]]; then @@ -18,7 +18,7 @@ DESCRIPTION="Provide (streaming) protocol decoding functionality" HOMEPAGE="https://sigrok.org/wiki/Libsigrokdecode" LICENSE="GPL-3" -SLOT="0/9999" +SLOT="0/4" IUSE="static-libs" REQUIRED_USE="${PYTHON_REQUIRED_USE}" |