commit: 7555ce916fa2da02861ab5b2c6d8d89e644104b2
Author: Thomas Beierlein <tomjbe <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 17 14:19:24 2025 +0000
Commit: Thomas Beierlein <tomjbe <AT> gentoo <DOT> org>
CommitDate: Wed Dec 17 14:19:43 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7555ce91
net-wireless/urh: add 2.10.0, 9999
* Supports Qt6 now officially
Signed-off-by: Thomas Beierlein <tomjbe <AT> gentoo.org>
net-wireless/urh/Manifest | 1 +
net-wireless/urh/urh-2.10.0.ebuild | 81 ++++++++++++++++++++++++++++++++++++++
net-wireless/urh/urh-9999.ebuild | 81 ++++++++++++++++++++++++++++++++++++++
3 files changed, 163 insertions(+)
diff --git a/net-wireless/urh/Manifest b/net-wireless/urh/Manifest
index ac57c86cd96b..8c4f16ec3f17 100644
--- a/net-wireless/urh/Manifest
+++ b/net-wireless/urh/Manifest
@@ -1 +1,2 @@
+DIST urh-2.10.0.gh.tar.gz 13186145 BLAKE2B
4d68080279dea9763180a586169b07279fecd9b2df98a509db5e578432f1082a20b94e04fae3f2ed1f32621b4c683bde546e158d9ca369e2bc68c061e473b9ea
SHA512
0e46c7f74b1108ed32128cb1b3034b62ec03595057e5822c7e27e9340d2b81cc6240376bef3d3ba5b03e47396ccdfd737cb911788a1f36be2be30928e101fc57
DIST urh-2.9.8_p20251123.tgz 14465110 BLAKE2B
b976581832048b2e0c848d3cc23e2d1dcae0c6369e12c27954483ad75101a89b3eb8beb5dfb33cc6564d0c0a1a2f16cee4039f9c47adc6d20a3a3ef0060fbf69
SHA512
42e78cc57d62c44fc7a8beb9e4dc84c4de2c08d8c4488b4a49e05c9796d7cb82fc3958db60d3dd65e03c29215c3b27d8df349ff967410e2c90e7f87869081a66
diff --git a/net-wireless/urh/urh-2.10.0.ebuild
b/net-wireless/urh/urh-2.10.0.ebuild
new file mode 100644
index 000000000000..c35aef5aa941
--- /dev/null
+++ b/net-wireless/urh/urh-2.10.0.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Universal Radio Hacker: investigate wireless protocols like a
boss"
+HOMEPAGE="https://github.com/jopohl/urh"
+
+if [ "${PV}" = "9999" ]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/jopohl/urh.git"
+else
+ SRC_URI="https://github.com/jopohl/${PN}/archive/v${PV}.tar.gz ->
${P}.gh.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="airspy audio bladerf hackrf limesdr plutosdr rtlsdr sdrplay uhd"
+
+DEPEND="${PYTHON_DEPS}
+ net-wireless/gnuradio[zeromq]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pyzmq[${PYTHON_USEDEP}]
+ dev-python/cython[${PYTHON_USEDEP}]
+ airspy? ( net-wireless/airspy:= )
+ audio? ( dev-python/pyaudio[${PYTHON_USEDEP}] )
+ bladerf? ( net-wireless/bladerf:= )
+ hackrf? ( net-libs/libhackrf:= )
+ limesdr? ( net-wireless/limesuite )
+ plutosdr? ( net-libs/libiio:= )
+ rtlsdr? ( net-wireless/rtl-sdr:= )
+ sdrplay? ( <net-wireless/sdrplay-3.0.0:= )
+ uhd? ( net-wireless/uhd:= )"
+RDEPEND="${DEPEND}
+ dev-python/pyqt6[${PYTHON_USEDEP},testlib]
+ net-wireless/gr-osmosdr"
+
+distutils_enable_tests pytest
+
+PATCHES=( "${FILESDIR}/${PN}-2.9.7-no-numpy-setup.patch" )
+
+python_configure_all() {
+ DISTUTILS_ARGS=(
+ $(use_with airspy)
+ $(use_with bladerf)
+ $(use_with hackrf)
+ $(use_with limesdr)
+ $(use_with plutosdr)
+ $(use_with rtlsdr)
+ $(use_with sdrplay)
+ $(use_with uhd usrp)
+ )
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ # Why are these disabled?
+ # import errors AND hangs forever after
'tests/test_spectrogram.py::TestSpectrogram::test_cancel_filtering'
+ # import errors
'tests/test_continuous_modulator.py::TestContinuousModulator::test_modulate_continuously'
+ # import errors
'tests/test_send_recv_dialog_gui.py::TestSendRecvDialog::test_continuous_send_dialog'
+ # import errors
'tests/test_spectrogram.py::TestSpectrogram::test_channel_separation_with_negative_frequency'
+ local EPYTEST_DESELECT=(
+
'tests/test_spectrogram.py::TestSpectrogram::test_cancel_filtering'
+
'tests/test_continuous_modulator.py::TestContinuousModulator::test_modulate_continuously'
+
'tests/test_send_recv_dialog_gui.py::TestSendRecvDialog::test_continuous_send_dialog'
+
'tests/test_spectrogram.py::TestSpectrogram::test_channel_separation_with_negative_frequency'
+
+ )
+ cd "${T}" || die
+ epytest -s --pyargs urh.cythonext "${S}/tests" || die
+}
diff --git a/net-wireless/urh/urh-9999.ebuild b/net-wireless/urh/urh-9999.ebuild
new file mode 100644
index 000000000000..c35aef5aa941
--- /dev/null
+++ b/net-wireless/urh/urh-9999.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Universal Radio Hacker: investigate wireless protocols like a
boss"
+HOMEPAGE="https://github.com/jopohl/urh"
+
+if [ "${PV}" = "9999" ]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/jopohl/urh.git"
+else
+ SRC_URI="https://github.com/jopohl/${PN}/archive/v${PV}.tar.gz ->
${P}.gh.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="airspy audio bladerf hackrf limesdr plutosdr rtlsdr sdrplay uhd"
+
+DEPEND="${PYTHON_DEPS}
+ net-wireless/gnuradio[zeromq]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pyzmq[${PYTHON_USEDEP}]
+ dev-python/cython[${PYTHON_USEDEP}]
+ airspy? ( net-wireless/airspy:= )
+ audio? ( dev-python/pyaudio[${PYTHON_USEDEP}] )
+ bladerf? ( net-wireless/bladerf:= )
+ hackrf? ( net-libs/libhackrf:= )
+ limesdr? ( net-wireless/limesuite )
+ plutosdr? ( net-libs/libiio:= )
+ rtlsdr? ( net-wireless/rtl-sdr:= )
+ sdrplay? ( <net-wireless/sdrplay-3.0.0:= )
+ uhd? ( net-wireless/uhd:= )"
+RDEPEND="${DEPEND}
+ dev-python/pyqt6[${PYTHON_USEDEP},testlib]
+ net-wireless/gr-osmosdr"
+
+distutils_enable_tests pytest
+
+PATCHES=( "${FILESDIR}/${PN}-2.9.7-no-numpy-setup.patch" )
+
+python_configure_all() {
+ DISTUTILS_ARGS=(
+ $(use_with airspy)
+ $(use_with bladerf)
+ $(use_with hackrf)
+ $(use_with limesdr)
+ $(use_with plutosdr)
+ $(use_with rtlsdr)
+ $(use_with sdrplay)
+ $(use_with uhd usrp)
+ )
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ # Why are these disabled?
+ # import errors AND hangs forever after
'tests/test_spectrogram.py::TestSpectrogram::test_cancel_filtering'
+ # import errors
'tests/test_continuous_modulator.py::TestContinuousModulator::test_modulate_continuously'
+ # import errors
'tests/test_send_recv_dialog_gui.py::TestSendRecvDialog::test_continuous_send_dialog'
+ # import errors
'tests/test_spectrogram.py::TestSpectrogram::test_channel_separation_with_negative_frequency'
+ local EPYTEST_DESELECT=(
+
'tests/test_spectrogram.py::TestSpectrogram::test_cancel_filtering'
+
'tests/test_continuous_modulator.py::TestContinuousModulator::test_modulate_continuously'
+
'tests/test_send_recv_dialog_gui.py::TestSendRecvDialog::test_continuous_send_dialog'
+
'tests/test_spectrogram.py::TestSpectrogram::test_channel_separation_with_negative_frequency'
+
+ )
+ cd "${T}" || die
+ epytest -s --pyargs urh.cythonext "${S}/tests" || die
+}