From 0c2c5e8a704527b0d86548796f074b26bf339cda Mon Sep 17 00:00:00 2001 From: Sam James Date: Tue, 11 Jun 2024 18:55:14 +0100 Subject: sci-libs/libsigrok: enable py3.13 Signed-off-by: Sam James --- .../libsigrok/files/libsigrok-0.5.2-py313.patch | 46 ++++++ sci-libs/libsigrok/libsigrok-0.5.2-r5.ebuild | 158 +++++++++++++++++++++ sci-libs/libsigrok/libsigrok-9999.ebuild | 25 ++-- 3 files changed, 220 insertions(+), 9 deletions(-) create mode 100644 sci-libs/libsigrok/files/libsigrok-0.5.2-py313.patch create mode 100644 sci-libs/libsigrok/libsigrok-0.5.2-r5.ebuild (limited to 'sci-libs') diff --git a/sci-libs/libsigrok/files/libsigrok-0.5.2-py313.patch b/sci-libs/libsigrok/files/libsigrok-0.5.2-py313.patch new file mode 100644 index 000000000000..a4c1be8de96a --- /dev/null +++ b/sci-libs/libsigrok/files/libsigrok-0.5.2-py313.patch @@ -0,0 +1,46 @@ +http://sigrok.org/gitweb/?p=libsigrok.git;a=commit;h=5bc8174531df86991ba8aa6d12942923925d9e72 + +From: Gerhard Sittig +Date: Mon, 2 Oct 2023 16:33:08 +0000 (+0200) +Subject: bindings/python: rephrase for Python 3.9 deprecation (call API) +X-Git-Url: http://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=5bc8174531df86991ba8aa6d12942923925d9e72;hp=1711287ee9e5e4d37cab1cf9fcda5c98f732a137 + +bindings/python: rephrase for Python 3.9 deprecation (call API) + +The PyEval_CallObject() routine was deprecated in Python 3.9, use +PyObject_CallObject() instead which has existed since at least 3.0. + +There are also PyEval_InitThreads() deprecation warnings, but these +originate from SWIG generated code and are outside of our control. +Requires SWIG version 4.1 to silence these. + +Tested-By: Sascha Silbe +--- a/bindings/python/sigrok/core/classes.i ++++ b/bindings/python/sigrok/core/classes.i +@@ -134,7 +134,7 @@ typedef guint pyg_flags_type; + + auto arglist = Py_BuildValue("(OO)", log_obj, string_obj); + +- auto result = PyEval_CallObject($input, arglist); ++ auto result = PyObject_CallObject($input, arglist); + + Py_XDECREF(arglist); + Py_XDECREF(log_obj); +@@ -177,7 +177,7 @@ typedef guint pyg_flags_type; + $1 = [=] () { + const auto gstate = PyGILState_Ensure(); + +- const auto result = PyEval_CallObject($input, nullptr); ++ const auto result = PyObject_CallObject($input, nullptr); + const bool completed = !PyErr_Occurred(); + const bool valid_result = (completed && result == Py_None); + +@@ -221,7 +221,7 @@ typedef guint pyg_flags_type; + + auto arglist = Py_BuildValue("(OO)", device_obj, packet_obj); + +- auto result = PyEval_CallObject($input, arglist); ++ auto result = PyObject_CallObject($input, arglist); + + Py_XDECREF(arglist); + Py_XDECREF(device_obj); diff --git a/sci-libs/libsigrok/libsigrok-0.5.2-r5.ebuild b/sci-libs/libsigrok/libsigrok-0.5.2-r5.ebuild new file mode 100644 index 000000000000..ea6a56fc8bb3 --- /dev/null +++ b/sci-libs/libsigrok/libsigrok-0.5.2-r5.ebuild @@ -0,0 +1,158 @@ +# 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-r1 java-pkg-opt-2 udev xdg-utils + +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 ~arm ~arm64 ~x86" +fi + +DESCRIPTION="Basic hardware drivers for logic analyzers and input/output file format support" +HOMEPAGE="https://sigrok.org/wiki/Libsigrok" + +LICENSE="GPL-3" +SLOT="0/4" +IUSE="bluetooth +cxx ftdi hidapi java parport python serial static-libs test +udev usb" +REQUIRED_USE="java? ( cxx ) + python? ( cxx ${PYTHON_REQUIRED_USE} )" + +RESTRICT="!test? ( test )" + +# We also support librevisa, but that isn't in the tree ... +LIB_DEPEND=" + >=dev-libs/glib-2.32.0[static-libs(+)] + >=dev-libs/libzip-0.8:=[static-libs(+)] + bluetooth? ( >=net-wireless/bluez-4.0:= ) + cxx? ( dev-cpp/glibmm:2[static-libs(+)] ) + ftdi? ( dev-embedded/libftdi:1[static-libs(+)] ) + hidapi? ( >=dev-libs/hidapi-0.8.0 ) + parport? ( sys-libs/libieee1284[static-libs(+)] ) + python? ( + ${PYTHON_DEPS} + >=dev-python/pygobject-3.0.0[${PYTHON_USEDEP}] + ) + serial? ( >=dev-libs/libserialport-0.1.1[static-libs(+)] ) + usb? ( virtual/libusb:1[static-libs(+)] ) +" +RDEPEND=" + java? ( >=virtual/jre-1.8:* ) + !static-libs? ( ${LIB_DEPEND//\[static-libs(+)]} ) + static-libs? ( ${LIB_DEPEND} ) +" +DEPEND="${LIB_DEPEND//\[static-libs(+)]} + cxx? ( app-text/doxygen ) + java? ( + >=dev-lang/swig-3.0.6 + >=virtual/jdk-1.8:* + ) + python? ( + >=dev-lang/swig-3.0.6 + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + ) + test? ( >=dev-libs/check-0.9.4 ) + virtual/pkgconfig +" + +S="${WORKDIR}"/${P} + +PATCHES=( + # https://sigrok.org/bugzilla/show_bug.cgi?id=1527 + "${FILESDIR}/${P}-swig-4.patch" + # https://sigrok.org/bugzilla/show_bug.cgi?id=1526 + "${FILESDIR}/${P}-check-0.15.patch" + # https://bugs.gentoo.org/878395 + "${FILESDIR}/${PN}-0.5.2-swig-4.1.patch" + + "${FILESDIR}/${P}-py313.patch" +) + +pkg_setup() { + use python && python_setup + java-pkg-opt-2_pkg_setup +} + +src_unpack() { + [[ ${PV} == *9999* ]] && git-r3_src_unpack || default +} + +sigrok_src_prepare() { + eautoreconf +} + +src_prepare() { + default + sigrok_src_prepare + use python && python_copy_sources +} + +sigrok_src_configure() { + econf \ + $(use_with bluetooth libbluez) \ + $(use_with ftdi libftdi) \ + $(use_with hidapi libhidapi) \ + $(use_with parport libieee1284) \ + $(use_with serial libserialport) \ + $(use_with usb libusb) \ + $(use_enable cxx) \ + $(use_enable java) \ + $(use_enable static-libs static) \ + "${@}" +} + +each_python_configure() { + cd "${BUILD_DIR}" + sigrok_src_configure --disable-ruby --enable-python +} + +src_configure() { + sigrok_src_configure --disable-ruby --disable-python + use python && python_foreach_impl each_python_configure +} + +each_python_compile() { + cd "${BUILD_DIR}" + emake python-build +} + +src_compile() { + default + use python && python_foreach_impl each_python_compile +} + +src_test() { + emake check +} + +each_python_install() { + cd "${BUILD_DIR}" + emake python-install DESTDIR="${D}" + python_optimize +} + +src_install() { + default + use python && python_foreach_impl each_python_install + use udev && udev_dorules contrib/*.rules + find "${D}" -name '*.la' -type f -delete || die +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_mimeinfo_database_update + udev_reload +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_mimeinfo_database_update + udev_reload +} diff --git a/sci-libs/libsigrok/libsigrok-9999.ebuild b/sci-libs/libsigrok/libsigrok-9999.ebuild index b0fe1e16dc1d..589e3d9a56dd 100644 --- a/sci-libs/libsigrok/libsigrok-9999.ebuild +++ b/sci-libs/libsigrok/libsigrok-9999.ebuild @@ -3,24 +3,24 @@ EAPI="8" -PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_COMPAT=( python3_{10..13} ) -inherit python-r1 java-pkg-opt-2 udev xdg-utils +inherit autotools python-r1 java-pkg-opt-2 udev xdg-utils if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="git://sigrok.org/${PN}" - inherit git-r3 autotools + inherit git-r3 else SRC_URI="https://sigrok.org/download/source/${PN}/${P}.tar.gz" - KEYWORDS="~amd64 ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~x86" fi DESCRIPTION="Basic hardware drivers for logic analyzers and input/output file format support" HOMEPAGE="https://sigrok.org/wiki/Libsigrok" LICENSE="GPL-3" -SLOT="0/9999" -IUSE="bluetooth +cxx ftdi hidapi java nettle parport python serial static-libs test +udev usb" +SLOT="0/4" +IUSE="bluetooth +cxx ftdi hidapi java parport python serial static-libs test +udev usb" REQUIRED_USE="java? ( cxx ) python? ( cxx ${PYTHON_REQUIRED_USE} )" @@ -34,7 +34,6 @@ LIB_DEPEND=" cxx? ( dev-cpp/glibmm:2[static-libs(+)] ) ftdi? ( dev-embedded/libftdi:1[static-libs(+)] ) hidapi? ( >=dev-libs/hidapi-0.8.0 ) - nettle? ( dev-libs/nettle:=[static-libs(+)] ) parport? ( sys-libs/libieee1284[static-libs(+)] ) python? ( ${PYTHON_DEPS} @@ -65,6 +64,15 @@ DEPEND="${LIB_DEPEND//\[static-libs(+)]} S="${WORKDIR}"/${P} +PATCHES=( + # https://sigrok.org/bugzilla/show_bug.cgi?id=1527 + "${FILESDIR}/${P}-swig-4.patch" + # https://sigrok.org/bugzilla/show_bug.cgi?id=1526 + "${FILESDIR}/${P}-check-0.15.patch" + # https://bugs.gentoo.org/878395 + "${FILESDIR}/${PN}-0.5.2-swig-4.1.patch" +) + pkg_setup() { use python && python_setup java-pkg-opt-2_pkg_setup @@ -75,7 +83,7 @@ src_unpack() { } sigrok_src_prepare() { - [[ ${PV} == *9999* ]] && eautoreconf + eautoreconf } src_prepare() { @@ -89,7 +97,6 @@ sigrok_src_configure() { $(use_with bluetooth libbluez) \ $(use_with ftdi libftdi) \ $(use_with hidapi libhidapi) \ - $(use_with nettle libnettle) \ $(use_with parport libieee1284) \ $(use_with serial libserialport) \ $(use_with usb libusb) \ -- cgit v1.2.3-65-gdbad