From 9ec32f289c4816643439f380065348c700e6a3cb Mon Sep 17 00:00:00 2001 From: Anton Bolshakov Date: Mon, 16 Feb 2026 16:11:13 +0800 Subject: [PATCH] gr-gsm: boost patch --- net-wireless/gr-gsm/files/652.patch | 61 ++++++++++++++++++++++ net-wireless/gr-gsm/files/pyqt6.patch | 42 +++++++++++++++ net-wireless/gr-gsm/gr-gsm-20240927.ebuild | 4 +- 3 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 net-wireless/gr-gsm/files/652.patch create mode 100644 net-wireless/gr-gsm/files/pyqt6.patch diff --git a/net-wireless/gr-gsm/files/652.patch b/net-wireless/gr-gsm/files/652.patch new file mode 100644 index 000000000..396312961 --- /dev/null +++ b/net-wireless/gr-gsm/files/652.patch @@ -0,0 +1,61 @@ +diff '--color=auto' -Naur ./gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff.orig/include/gsm/misc_utils/udp_socket.h gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff/include/gsm/misc_utils/udp_socket.h +--- a/include/gsm/misc_utils/udp_socket.h 2024-09-27 06:26:03.000000000 +0800 ++++ b/include/gsm/misc_utils/udp_socket.h 2026-02-16 15:19:45.912805313 +0800 +@@ -36,7 +36,7 @@ + class udp_socket + { + private: +- boost::asio::io_service d_io_service; ++ boost::asio::io_context d_io_context; + std::vector d_rxbuf; + gr::thread::thread d_thread; + bool d_started; +diff '--color=auto' -Naur ./gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff.orig/lib/misc_utils/udp_socket.cc gr-gsm-a5e61786ad9b57f12a97a83c7d4c1743b5eb34ff/lib/misc_utils/udp_socket.cc +--- a/lib/misc_utils/udp_socket.cc 2024-09-27 06:26:03.000000000 +0800 ++++ b/lib/misc_utils/udp_socket.cc 2026-02-16 15:21:37.091666320 +0800 +@@ -47,20 +47,17 @@ + d_rxbuf.resize(mtu); + + // Resolve remote host address +- udp::resolver resolver(d_io_service); ++ udp::resolver resolver(d_io_context); + +- udp::resolver::query rx_query( +- udp::v4(), bind_addr, src_port, +- boost::asio::ip::resolver_query_base::passive); +- udp::resolver::query tx_query( +- udp::v4(), remote_addr, dst_port, +- boost::asio::ip::resolver_query_base::passive); ++ auto rx_results = resolver.resolve(udp::v4(), bind_addr, src_port, udp::resolver::passive); ++ auto tx_results = resolver.resolve(udp::v4(), remote_addr, dst_port, udp::resolver::passive); + +- d_udp_endpoint_rx = *resolver.resolve(rx_query); +- d_udp_endpoint_tx = *resolver.resolve(tx_query); ++ // Get the endpoints from the results ++ d_udp_endpoint_rx = *rx_results.begin(); ++ d_udp_endpoint_tx = *tx_results.begin(); + + // Create a socket +- d_udp_socket.reset(new udp::socket(d_io_service, d_udp_endpoint_rx)); ++ d_udp_socket.reset(new udp::socket(d_io_context, d_udp_endpoint_rx)); + + // Setup read handler + d_udp_socket->async_receive_from( +@@ -77,7 +74,7 @@ + udp_socket::~udp_socket() + { + // Stop server +- d_io_service.stop(); ++ d_io_context.stop(); + d_thread.interrupt(); + d_thread.join(); + } +@@ -85,7 +82,7 @@ + void + udp_socket::run_io_service(void) + { +- d_io_service.run(); ++ d_io_context.run(); + } + + void diff --git a/net-wireless/gr-gsm/files/pyqt6.patch b/net-wireless/gr-gsm/files/pyqt6.patch new file mode 100644 index 000000000..a7397df8f --- /dev/null +++ b/net-wireless/gr-gsm/files/pyqt6.patch @@ -0,0 +1,42 @@ +--- a/python/gsm/receiver/multiarfcns_receiver.py.orig 2024-09-27 06:26:03.000000000 +0800 ++++ b/python/gsm/receiver/multiarfcns_receiver.py 2026-02-16 15:40:47.365695771 +0800 +@@ -10,7 +10,7 @@ + # Copyright: Deligrim + # Description: Multi Arfcns GSM Receiver + # GNU Radio version: 3.8.2.0 +-from PyQt5 import Qt ++from PyQt6 import QtWidgets + from gnuradio import qtgui + import sip + from gnuradio.filter import firdes +@@ -22,7 +22,7 @@ + import gnuradio.gsm.arfcn as arfcn + import math + +-class multiarfcns_receiver(gr.hier_block2, Qt.QWidget): ++class multiarfcns_receiver(gr.hier_block2, QtWidgets): + def __init__(self, arfcns=[725,661], center_freq=935e6, osr=4, tseq=1, wide_samp_rate=2e6, gui=False): + gr.hier_block2.__init__( + self, "Multi Arfcns GSM Receiver", +@@ -33,9 +33,9 @@ + self.message_port_register_hier_out("out_cx") + + +- Qt.QWidget.__init__(self) +- self.top_layout = Qt.QVBoxLayout() +- self.top_grid_layout = Qt.QGridLayout() ++ QWidget.__init__(self) ++ self.top_layout = QtWidgets.QVBoxLayout() ++ self.top_grid_layout = QtWidgets.QGridLayout() + self.top_layout.addLayout(self.top_grid_layout) + self.setLayout(self.top_layout) + +@@ -114,7 +114,7 @@ + + qtgui_waterfall_sink_x.set_intensity_range(-90, -30) + +- _qtgui_waterfall_sink_x_win = sip.wrapinstance(qtgui_waterfall_sink_x.pyqwidget(), Qt.QWidget) ++ _qtgui_waterfall_sink_x_win = sip.wrapinstance(qtgui_waterfall_sink_x.pyqwidget(), QWidget) + self.qtgui_waterfall_sinks_x_win.append(_qtgui_waterfall_sink_x_win) + + self.top_grid_layout.addWidget(_qtgui_waterfall_sink_x_win, int(i/3), i%3, 1, 1) diff --git a/net-wireless/gr-gsm/gr-gsm-20240927.ebuild b/net-wireless/gr-gsm/gr-gsm-20240927.ebuild index a99870659..910378394 100644 --- a/net-wireless/gr-gsm/gr-gsm-20240927.ebuild +++ b/net-wireless/gr-gsm/gr-gsm-20240927.ebuild @@ -25,7 +25,7 @@ IUSE="doc" #if(NOT LIBOSMOCORE_FOUND OR NOT LIBOSMOCODEC_FOUND OR NOT LIBOSMOGSM_FOUND) # set(LOCAL_OSMOCOM ON) DEPEND="${PYTHON_DEPS} - >=net-wireless/gnuradio-3.10.0:= + >=net-wireless/gnuradio-3.10.0:=[qt5] net-wireless/gr-osmosdr dev-libs/boost:= dev-libs/log4cpp:= @@ -38,6 +38,8 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}" src_prepare() { #fixme below sed -i "s|\${GR_DOC_DIR}\/\${CMAKE_PROJECT_NAME}|${EPREFIX}/usr/share/doc/${PF}|g" CMakeLists.txt + eapply "${FILESDIR}"/652.patch +# eapply "${FILESDIR}"/pyqt6.patch cmake_src_prepare }