diff --git a/gnuradio-3.10.11.0-boost-1.87.patch b/gnuradio-3.10.11.0-boost-1.87.patch new file mode 100644 index 0000000..3bd9df3 --- /dev/null +++ b/gnuradio-3.10.11.0-boost-1.87.patch @@ -0,0 +1,146 @@ +From 111a4ff8b868791dae74d8cdf8c1e0684840f51a Mon Sep 17 00:00:00 2001 +From: Landry Breuil +Date: Wed, 27 Nov 2024 14:16:08 +0100 +Subject: [PATCH] gr-network: fix build with boost 1.87 + +- stop using asio..query +- replace deprecated io_context.reset() by restart() +- drop unneeded io_context.reset() calls +- stop using asio::buffer_cast + +Signed-off-by: Landry Breuil +--- + gr-network/lib/socket_pdu_impl.cc | 25 ++++++++++++++++++------- + gr-network/lib/tcp_sink_impl.cc | 9 +++------ + gr-network/lib/udp_sink_impl.cc | 8 +++----- + gr-network/lib/udp_source_impl.cc | 3 +-- + 4 files changed, 25 insertions(+), 20 deletions(-) + +diff --git a/gr-network/lib/socket_pdu_impl.cc b/gr-network/lib/socket_pdu_impl.cc +index ef2ce6b4828..7cfef6812eb 100644 +--- a/gr-network/lib/socket_pdu_impl.cc ++++ b/gr-network/lib/socket_pdu_impl.cc +@@ -54,9 +54,12 @@ socket_pdu_impl::socket_pdu_impl(std::string type, + d_tcp_endpoint = asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port_num); + } else if ((type == "TCP_SERVER") || (type == "TCP_CLIENT")) { + asio::ip::tcp::resolver resolver(d_io_context); +- asio::ip::tcp::resolver::query query( +- asio::ip::tcp::v4(), addr, port, asio::ip::resolver_query_base::passive); +- d_tcp_endpoint = *resolver.resolve(query); ++ d_tcp_endpoint = *(resolver ++ .resolve(asio::ip::tcp::v4(), ++ addr, ++ port, ++ asio::ip::resolver_query_base::passive) ++ .cbegin()); + } else if ((type == "UDP_SERVER") && + ((addr.empty()) || (addr == "0.0.0.0"))) { // Bind on all interfaces + int port_num = atoi(port.c_str()); +@@ -66,13 +69,21 @@ socket_pdu_impl::socket_pdu_impl(std::string type, + d_udp_endpoint = asio::ip::udp::endpoint(asio::ip::udp::v4(), port_num); + } else if ((type == "UDP_SERVER") || (type == "UDP_CLIENT")) { + asio::ip::udp::resolver resolver(d_io_context); +- asio::ip::udp::resolver::query query( +- asio::ip::udp::v4(), addr, port, asio::ip::resolver_query_base::passive); + + if (type == "UDP_SERVER") +- d_udp_endpoint = *resolver.resolve(query); ++ d_udp_endpoint = *(resolver ++ .resolve(asio::ip::udp::v4(), ++ addr, ++ port, ++ asio::ip::resolver_query_base::passive) ++ .cbegin()); + else +- d_udp_endpoint_other = *resolver.resolve(query); ++ d_udp_endpoint_other = *(resolver ++ .resolve(asio::ip::udp::v4(), ++ addr, ++ port, ++ asio::ip::resolver_query_base::passive) ++ .cbegin()); + } + + if (type == "TCP_SERVER") { +diff --git a/gr-network/lib/tcp_sink_impl.cc b/gr-network/lib/tcp_sink_impl.cc +index bbbc053db20..b7120ad87e4 100644 +--- a/gr-network/lib/tcp_sink_impl.cc ++++ b/gr-network/lib/tcp_sink_impl.cc +@@ -63,10 +63,8 @@ bool tcp_sink_impl::start() + + std::string s_port = std::to_string(d_port); + asio::ip::tcp::resolver resolver(d_io_context); +- asio::ip::tcp::resolver::query query( +- d_host, s_port, asio::ip::resolver_query_base::passive); +- +- d_endpoint = *resolver.resolve(query, err); ++ d_endpoint = *( ++ resolver.resolve(d_host, s_port, asio::ip::tcp::resolver::passive).cbegin()); + + if (err) { + throw std::runtime_error( +@@ -159,7 +157,7 @@ void tcp_sink_impl::connect(bool initial_connection) + d_acceptor = new asio::ip::tcp::acceptor( + d_io_context, asio::ip::tcp::endpoint(asio::ip::tcp::v4(), d_port)); + } else { +- d_io_context.reset(); ++ d_io_context.restart(); + } + + if (d_tcpsocket) { +@@ -194,7 +192,6 @@ bool tcp_sink_impl::stop() + d_tcpsocket = NULL; + } + +- d_io_context.reset(); + d_io_context.stop(); + + if (d_acceptor) { +diff --git a/gr-network/lib/udp_sink_impl.cc b/gr-network/lib/udp_sink_impl.cc +index bbdb96f8bb5..3e2462a5e9b 100644 +--- a/gr-network/lib/udp_sink_impl.cc ++++ b/gr-network/lib/udp_sink_impl.cc +@@ -125,11 +125,10 @@ bool udp_sink_impl::start() + std::string str_port = std::to_string(d_port); + std::string str_host = d_host.empty() ? std::string("localhost") : d_host; + asio::ip::udp::resolver resolver(d_io_context); +- asio::ip::udp::resolver::query query( +- str_host, str_port, asio::ip::resolver_query_base::passive); +- + asio::error_code err; +- d_endpoint = *resolver.resolve(query, err); ++ d_endpoint = ++ *(resolver.resolve(str_host, str_port, asio::ip::tcp::resolver::passive, err) ++ .cbegin()); + + if (err) { + throw std::runtime_error(std::string("[UDP Sink] Unable to resolve host/IP: ") + +@@ -177,7 +176,6 @@ bool udp_sink_impl::stop() + delete d_udpsocket; + d_udpsocket = nullptr; + +- d_io_context.reset(); + d_io_context.stop(); + } + +diff --git a/gr-network/lib/udp_source_impl.cc b/gr-network/lib/udp_source_impl.cc +index 37f38a9b72d..774f348b90c 100644 +--- a/gr-network/lib/udp_source_impl.cc ++++ b/gr-network/lib/udp_source_impl.cc +@@ -163,7 +163,6 @@ bool udp_source_impl::stop() + delete d_udpsocket; + d_udpsocket = nullptr; + +- d_io_context.reset(); + d_io_context.stop(); + } + +@@ -275,7 +274,7 @@ int udp_source_impl::work(int noutput_items, + // Get the data and add it to our local queue. We have to maintain a + // local queue in case we read more bytes than noutput_items is asking + // for. In that case we'll only return noutput_items bytes +- const char* read_data = asio::buffer_cast(d_read_buffer.data()); ++ const char* read_data = static_cast(d_read_buffer.data().data()); + + // Discard bytes if the input is longer than the buffer + if (bytes_read > d_localqueue_writer->bufsize()) { diff --git a/gnuradio.spec b/gnuradio.spec index cc88b33..c5ce4d2 100644 --- a/gnuradio.spec +++ b/gnuradio.spec @@ -1,6 +1,6 @@ Name: gnuradio Version: 3.10.11.0 -Release: 2mamba +Release: 3mamba Summary: GNU Radio – the Free and Open Software Radio Ecosystem Group: Applications/Communication Vendor: openmamba @@ -8,6 +8,7 @@ Distribution: openmamba Packager: Silvan Calarco URL: https://www.gnuradio.org/ Source: https://github.com/gnuradio/gnuradio.git/v%{version}/gnuradio-%{version}.tar.bz2 +Patch0: gnuradio-3.10.11.0-boost-1.87.patch License: GPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel @@ -34,8 +35,8 @@ BuildRequires: libstdc++6-devel BuildRequires: libunwind-devel BuildRequires: libvolk-devel ## AUTOBUILDREQ-END +BuildRequires: libvolk-devel >= 0:3.2.0-1mamba BuildRequires: libspdlog-devel >= 0:1.15.0-1mamba -BuildRequires: libvolk-devel >= 3.1.0-1mamba BuildRequires: cmake Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} @@ -67,12 +68,11 @@ Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description -n python-%{name} This package contains the Python bindings to %{name}. -%debug_package - %prep %setup -q #-D -T #:<< _EOF +%patch 0 -p1 -b .boost-1.87 %build %cmake -d build \ @@ -176,6 +176,9 @@ This package contains the Python bindings to %{name}. %{_docdir}/gnuradio-%{version}/README.* %changelog +* Mon Feb 17 2025 Automatic Build System 3.10.11.0-3mamba +- rebuilt by autoport with build requirements: libvolk-devel>=0:3.2.0-1mamba + * Sun Dec 22 2024 Automatic Build System 3.10.11.0-2mamba - rebuilt by autoport with build requirements: libspdlog-devel>=0:1.15.0-1mamba