summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-06-11 18:55:14 +0100
committerSam James <sam@gentoo.org>2024-06-11 18:55:20 +0100
commit0c2c5e8a704527b0d86548796f074b26bf339cda (patch)
treeffd0b3f90b847963e02e1854cbb048d9c8709343 /sci-libs
parentdev-python/pygobject: enable py3.13 (diff)
downloadgentoo-0c2c5e8a704527b0d86548796f074b26bf339cda.tar.gz
gentoo-0c2c5e8a704527b0d86548796f074b26bf339cda.tar.bz2
gentoo-0c2c5e8a704527b0d86548796f074b26bf339cda.zip
sci-libs/libsigrok: enable py3.13
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/libsigrok/files/libsigrok-0.5.2-py313.patch46
-rw-r--r--sci-libs/libsigrok/libsigrok-0.5.2-r5.ebuild158
-rw-r--r--sci-libs/libsigrok/libsigrok-9999.ebuild25
3 files changed, 220 insertions, 9 deletions
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 <redacted>
+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 <redacted>
+--- 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) \