* [gentoo-commits] repo/gentoo:master commit in: net-wireless/gnuradio/files/, net-wireless/gnuradio/
@ 2018-02-18 3:48 Richard Farina
0 siblings, 0 replies; 6+ messages in thread
From: Richard Farina @ 2018-02-18 3:48 UTC (permalink / raw
To: gentoo-commits
commit: 9e5358e83eedcbd65ee25fa87dd6c503d1a832d0
Author: Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 18 02:25:06 2018 +0000
Commit: Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Sun Feb 18 03:48:02 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9e5358e8
net-wireless/gnuradio: add support for wx:3.0
Package-Manager: Portage-2.3.24, Repoman-2.3.6
.../gnuradio/files/gnuradio-wxpy3.0-compat.patch | 50 +++++
net-wireless/gnuradio/gnuradio-3.7.11-r2.ebuild | 238 +++++++++++++++++++++
2 files changed, 288 insertions(+)
diff --git a/net-wireless/gnuradio/files/gnuradio-wxpy3.0-compat.patch b/net-wireless/gnuradio/files/gnuradio-wxpy3.0-compat.patch
new file mode 100644
index 00000000000..60eb7c7bbbe
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-wxpy3.0-compat.patch
@@ -0,0 +1,50 @@
+Description: Update for wxPython 3.0
+ wx.InitAllImageHandlers() issues a deprecation warning with wxPython 3.0
+ and is a no-op with wxPython 2.8.
+ Deprecated constants like wxSAVE are gone from the C++ API, so wx.SAVE, etc
+ are also likely to go from wxPython soon.
+ The alias "wx.Color" is gone in wxPython 3.0 - only "wx.Colour" is now
+ supported, so update docstring to use the correct class name.
+Author: Olly Betts <olly@survex.com>
+Forwarded: no
+Last-Update: 2014-08-21
+
+--- a/gr-wxgui/python/wxgui/plot.py
++++ b/gr-wxgui/python/wxgui/plot.py
+@@ -522,7 +522,7 @@
+ self,
+ "Choose a file with extension bmp, gif, xbm, xpm, png, or jpg", ".", "",
+ "BMP files (*.bmp)|*.bmp|XBM files (*.xbm)|*.xbm|XPM file (*.xpm)|*.xpm|PNG files (*.png)|*.png|JPG files (*.jpg)|*.jpg",
+- wx.SAVE|wx.OVERWRITE_PROMPT
++ wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT
+ )
+ try:
+ while 1:
+@@ -1820,7 +1820,6 @@
+
+ class MyApp(wx.App):
+ def OnInit(self):
+- wx.InitAllImageHandlers()
+ frame = TestFrame(None, -1, "PlotCanvas")
+ #frame.Show(True)
+ self.SetTopWindow(frame)
+--- a/gr-wxgui/python/wxgui/plotter/gltext.py
++++ b/gr-wxgui/python/wxgui/plotter/gltext.py
+@@ -50,7 +50,7 @@
+ """
+ text (String) - Text
+ font (wx.Font) - Font to draw with (None = System default)
+- foreground (wx.Color) - Color of the text
++ foreground (wx.Colour)- Color of the text
+ or (wx.Bitmap)- Bitmap to overlay the text with
+ centered (bool) - Center the text
+
+@@ -317,7 +317,7 @@
+ text (string) - displayed text
+ font (wx.Font) - if None, system default font will be used with font_size
+ font_size (int) - font size in points
+- foreground (wx.Color) - Color of the text
++ foreground (wx.Colour) - Color of the text
+ or (wx.Bitmap) - Bitmap to overlay the text with
+ centered (bool) - should the text drawn centered towards position?
+
diff --git a/net-wireless/gnuradio/gnuradio-3.7.11-r2.ebuild b/net-wireless/gnuradio/gnuradio-3.7.11-r2.ebuild
new file mode 100644
index 00000000000..acadae1e43c
--- /dev/null
+++ b/net-wireless/gnuradio/gnuradio-3.7.11-r2.ebuild
@@ -0,0 +1,238 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+CMAKE_BUILD_TYPE="None"
+inherit cmake-utils fdo-mime gnome2-utils python-single-r1 eutils
+
+DESCRIPTION="Toolkit that provides signal processing blocks to implement software radios"
+HOMEPAGE="http://gnuradio.org/"
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="http://gnuradio.org/git/gnuradio.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="http://gnuradio.org/releases/gnuradio/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+IUSE="+audio +alsa atsc +analog +digital channels doc dtv examples fcd fec +filter grc jack log noaa oss pager performance-counters portaudio +qt4 sdl test trellis uhd vocoder +utils wavelet wxwidgets zeromq"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ audio? ( || ( alsa oss jack portaudio ) )
+ alsa? ( audio )
+ oss? ( audio )
+ jack? ( audio )
+ portaudio? ( audio )
+ analog? ( filter )
+ digital? ( filter analog )
+ dtv? ( fec )
+ pager? ( filter analog )
+ qt4? ( filter )
+ uhd? ( filter analog )
+ fcd? ( || ( alsa oss ) )
+ wavelet? ( analog )
+ wxwidgets? ( filter analog )"
+
+# bug #348206
+# comedi? ( >=sci-electronics/comedilib-0.8 )
+# boost-1.52.0 is blacklisted, bug #461578, upstream #513, boost #7669
+RDEPEND="${PYTHON_DEPS}
+ >=dev-lang/orc-0.4.12
+ dev-libs/boost:0=[${PYTHON_USEDEP}]
+ !<=dev-libs/boost-1.52.0-r6:0/1.52
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/fftw:3.0=
+ alsa? (
+ media-libs/alsa-lib[${PYTHON_USEDEP}]
+ )
+ fcd? ( virtual/libusb:1 )
+ filter? ( sci-libs/scipy )
+ grc? (
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.10:2[${PYTHON_USEDEP}]
+ )
+ jack? (
+ media-sound/jack-audio-connection-kit
+ )
+ log? ( dev-libs/log4cpp )
+ portaudio? (
+ >=media-libs/portaudio-19_pre
+ )
+ qt4? (
+ >=dev-python/PyQt4-4.4[X,opengl,${PYTHON_USEDEP}]
+ >=dev-python/pyqwt-5.2:5[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-4.4:4
+ >=dev-qt/qtgui-4.4:4
+ x11-libs/qwt:6[qt4(+)]
+ )
+ sdl? ( >=media-libs/libsdl-1.2.0 )
+ uhd? ( >=net-wireless/uhd-3.9.6:=[${PYTHON_USEDEP}] )
+ utils? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ vocoder? ( media-sound/gsm )
+ wavelet? (
+ >=sci-libs/gsl-1.10
+ )
+ wxwidgets? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/wxpython:3.0[${PYTHON_USEDEP}]
+ )
+ zeromq? ( >=net-libs/zeromq-2.1.11 )
+ "
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.2
+ >=dev-lang/swig-3.0.5
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=app-doc/doxygen-1.5.7.1
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ grc? ( x11-misc/xdg-utils )
+ oss? ( virtual/os-headers )
+ test? ( >=dev-util/cppunit-1.9.14 )
+ zeromq? ( net-libs/cppzmq )
+"
+
+src_prepare() {
+ gnome2_environment_reset #534582
+
+ epatch "${FILESDIR}"/gnuradio-wxpy3.0-compat.patch
+ # Useless UI element would require qt3support, bug #365019
+ sed -i '/qPixmapFromMimeSource/d' "${S}"/gr-qtgui/lib/spectrumdisplayform.ui || die
+ #default
+}
+
+src_configure() {
+ # SYSCONFDIR/GR_PREFSDIR default to install below CMAKE_INSTALL_PREFIX
+ #audio provider is still automagic
+ #zeromq missing deps isn't fatal
+ mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DENABLE_GNURADIO_RUNTIME=ON
+ -DENABLE_VOLK=ON
+ -DENABLE_PYTHON=ON
+ -DENABLE_GR_BLOCKS=ON
+ -DENABLE_GR_FFT=ON
+ -DENABLE_GR_AUDIO=ON
+ $(cmake-utils_use_enable alsa GR_AUDIO_ALSA) \
+ $(cmake-utils_use_enable analog GR_ANALOG) \
+ $(cmake-utils_use_enable atsc GR_ATSC) \
+ $(cmake-utils_use_enable channels GR_CHANNELS) \
+ $(cmake-utils_use_enable digital GR_DIGITAL) \
+ $(cmake-utils_use_enable doc DOXYGEN) \
+ $(cmake-utils_use_enable doc SPHINX) \
+ $(cmake-utils_use_enable dtv GR_DTV) \
+ $(cmake-utils_use_enable fcd GR_FCD) \
+ $(cmake-utils_use_enable fec GR_FEC) \
+ $(cmake-utils_use_enable filter GR_FILTER) \
+ $(cmake-utils_use_enable grc GRC) \
+ $(cmake-utils_use_enable jack GR_AUDIO_JACK) \
+ $(cmake-utils_use_enable log GR_LOG) \
+ $(cmake-utils_use_enable noaa GR_NOAA) \
+ $(cmake-utils_use_enable oss GR_AUDIO_OSS) \
+ $(cmake-utils_use_enable pager GR_PAGER) \
+ $(cmake-utils_use_enable performance-counters ENABLE_PERFORMANCE_COUNTERS) \
+ $(cmake-utils_use_enable portaudio GR_AUDIO_PORTAUDIO) \
+ $(cmake-utils_use_enable test TESTING) \
+ $(cmake-utils_use_enable trellis GR_TRELLIS) \
+ $(cmake-utils_use_enable uhd GR_UHD) \
+ $(cmake-utils_use_enable utils GR_UTILS) \
+ $(cmake-utils_use_enable vocoder GR_VOCODER) \
+ $(cmake-utils_use_enable wavelet GR_WAVELET) \
+ $(cmake-utils_use_enable wxwidgets GR_WXGUI) \
+ $(cmake-utils_use_enable qt4 GR_QTGUI) \
+ $(cmake-utils_use_enable sdl GR_VIDEO_SDL) \
+ $(cmake-utils_use_enable zeromq GR_ZEROMQ) \
+ -DENABLE_GR_CORE=ON \
+ -DSYSCONFDIR="${EPREFIX}"/etc \
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DGR_PKG_DOC_DIR="${EPREFIX}/usr/share/doc/${PF}"
+ )
+ use vocoder && mycmakeargs+=( -DGR_USE_SYSTEM_LIBGSM=TRUE )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if use examples ; then
+ dodir /usr/share/doc/${PF}/
+ mv "${ED}"/usr/share/${PN}/examples "${ED}"/usr/share/doc/${PF}/ || die
+ docompress -x /usr/share/doc/${PF}/examples
+ else
+ # It seems that the examples are always installed
+ rm -rf "${ED}"/usr/share/${PN}/examples || die
+ fi
+
+ if use doc || use examples; then
+ #this doesn't appear useful
+ rm -rf "${ED}"/usr/share/doc/${PF}/xml || die
+ fi
+
+ # We install the mimetypes to the correct locations from the ebuild
+ rm -rf "${ED}"/usr/share/${PN}/grc/freedesktop || die
+ rm -f "${ED}"/usr/libexec/${PN}/grc_setup_freedesktop || die
+
+ # Install icons, menu items and mime-types for GRC
+ if use grc ; then
+ local fd_path="${S}/grc/scripts/freedesktop"
+ insinto /usr/share/mime/packages
+ doins "${fd_path}/${PN}-grc.xml"
+
+ domenu "${fd_path}/"*.desktop
+ doicon "${fd_path}/"*.png
+ fi
+
+ python_fix_shebang "${ED}"
+}
+
+src_test()
+{
+ ctest -E qtgui
+}
+
+pkg_postinst()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource install --noupdate --context mimetypes --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" application-gnuradio-grc \
+ || die "icon resource installation failed"
+ xdg-icon-resource install --noupdate --context apps --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" gnuradio-grc \
+ || die "icon resource installation failed"
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
+
+pkg_postrm()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource uninstall --noupdate --context mimetypes --size ${size} \
+ application-gnuradio-grc || ewarn "icon uninstall failed"
+ xdg-icon-resource uninstall --noupdate --context apps --size ${size} \
+ gnuradio-grc || ewarn "icon uninstall failed"
+
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/gnuradio/files/, net-wireless/gnuradio/
@ 2020-09-21 18:46 Rick Farina
0 siblings, 0 replies; 6+ messages in thread
From: Rick Farina @ 2020-09-21 18:46 UTC (permalink / raw
To: gentoo-commits
commit: 57432a383a28675ad96e1617ad4766ce68e4c734
Author: Rick Farina <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 21 18:46:27 2020 +0000
Commit: Rick Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 18:46:36 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57432a38
net-wireless/gnuradio: bug #739332
Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Rick Farina <zerochaos <AT> gentoo.org>
.../files/gnuradio-3.8.2.0-lamda-gr-qtgui.patch | 250 +++++++++++++++++
.../files/gnuradio-3.8.2.0-lamda-gr-uhd.patch | 98 +++++++
.../gnuradio-3.8.2.0-lamda-most-components.patch | 290 ++++++++++++++++++++
.../gnuradio-3.8.2.0-lamda-set-msg-handlers.patch | 298 +++++++++++++++++++++
net-wireless/gnuradio/gnuradio-3.8.2.0.ebuild | 7 +
5 files changed, 943 insertions(+)
diff --git a/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-gr-qtgui.patch b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-gr-qtgui.patch
new file mode 100644
index 00000000000..0057b38836c
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-gr-qtgui.patch
@@ -0,0 +1,250 @@
+From faa5e19e15f77a0ba5e7f854df6517c280034369 Mon Sep 17 00:00:00 2001
+From: Johannes Demel <demel@ant.uni-bremen.de>
+Date: Sat, 9 May 2020 15:28:58 +0200
+Subject: [PATCH] msg_handler: Use lambdas in gr-qtgui
+
+gr-qtgui uses lambdas instead of `boost::bind` to register message
+handlers now. This component makes quite heavy use of message handlers.
+---
+ gr-qtgui/lib/const_sink_c_impl.cc | 3 +--
+ gr-qtgui/lib/edit_box_msg_impl.cc | 2 +-
+ gr-qtgui/lib/freq_sink_c_impl.cc | 6 +++---
+ gr-qtgui/lib/freq_sink_f_impl.cc | 6 +++---
+ gr-qtgui/lib/histogram_sink_f_impl.cc | 3 +--
+ gr-qtgui/lib/sink_c_impl.cc | 2 +-
+ gr-qtgui/lib/sink_f_impl.cc | 2 +-
+ gr-qtgui/lib/time_raster_sink_b_impl.cc | 3 +--
+ gr-qtgui/lib/time_raster_sink_f_impl.cc | 3 +--
+ gr-qtgui/lib/time_sink_c_impl.cc | 2 +-
+ gr-qtgui/lib/time_sink_f_impl.cc | 2 +-
+ gr-qtgui/lib/waterfall_sink_c_impl.cc | 9 +++------
+ gr-qtgui/lib/waterfall_sink_f_impl.cc | 9 +++------
+ 13 files changed, 21 insertions(+), 31 deletions(-)
+
+diff --git a/gr-qtgui/lib/const_sink_c_impl.cc b/gr-qtgui/lib/const_sink_c_impl.cc
+index 852f6ee109..e4b01907f1 100644
+--- a/gr-qtgui/lib/const_sink_c_impl.cc
++++ b/gr-qtgui/lib/const_sink_c_impl.cc
+@@ -69,8 +69,7 @@ const_sink_c_impl::const_sink_c_impl(int size,
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"),
+- boost::bind(&const_sink_c_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ for (int i = 0; i < d_nconnections; i++) {
+ d_residbufs_real.push_back(
+diff --git a/gr-qtgui/lib/edit_box_msg_impl.cc b/gr-qtgui/lib/edit_box_msg_impl.cc
+index 8713aa820e..04f860785a 100644
+--- a/gr-qtgui/lib/edit_box_msg_impl.cc
++++ b/gr-qtgui/lib/edit_box_msg_impl.cc
+@@ -158,7 +158,7 @@ edit_box_msg_impl::edit_box_msg_impl(data_type_t type,
+ message_port_register_out(d_port);
+ message_port_register_in(pmt::mp("val"));
+
+- set_msg_handler(pmt::mp("val"), boost::bind(&edit_box_msg_impl::set_value, this, _1));
++ set_msg_handler(pmt::mp("val"), [this](pmt::pmt_t msg) { this->set_value(msg); });
+ }
+
+ edit_box_msg_impl::~edit_box_msg_impl()
+diff --git a/gr-qtgui/lib/freq_sink_c_impl.cc b/gr-qtgui/lib/freq_sink_c_impl.cc
+index 3a34df6ec6..137bccc3c3 100644
+--- a/gr-qtgui/lib/freq_sink_c_impl.cc
++++ b/gr-qtgui/lib/freq_sink_c_impl.cc
+@@ -82,17 +82,17 @@ freq_sink_c_impl::freq_sink_c_impl(int fftsize,
+
+ // setup bw input port
+ message_port_register_in(d_port_bw);
+- set_msg_handler(d_port_bw, boost::bind(&freq_sink_c_impl::handle_set_bw, this, _1));
++ set_msg_handler(d_port_bw, [this](pmt::pmt_t msg) { this->handle_set_bw(msg); });
+
+ // setup output message port to post frequency when display is
+ // double-clicked
+ message_port_register_out(d_port);
+ message_port_register_in(d_port);
+- set_msg_handler(d_port, boost::bind(&freq_sink_c_impl::handle_set_freq, this, _1));
++ set_msg_handler(d_port, [this](pmt::pmt_t msg) { this->handle_set_freq(msg); });
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"), boost::bind(&freq_sink_c_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ d_main_gui = NULL;
+
+diff --git a/gr-qtgui/lib/freq_sink_f_impl.cc b/gr-qtgui/lib/freq_sink_f_impl.cc
+index c14bfc31fd..0b1757c03c 100644
+--- a/gr-qtgui/lib/freq_sink_f_impl.cc
++++ b/gr-qtgui/lib/freq_sink_f_impl.cc
+@@ -82,17 +82,17 @@ freq_sink_f_impl::freq_sink_f_impl(int fftsize,
+
+ // setup bw input port
+ message_port_register_in(d_port_bw);
+- set_msg_handler(d_port_bw, boost::bind(&freq_sink_f_impl::handle_set_bw, this, _1));
++ set_msg_handler(d_port_bw, [this](pmt::pmt_t msg) { this->handle_set_bw(msg); });
+
+ // setup output message port to post frequency when display is
+ // double-clicked
+ message_port_register_out(d_port);
+ message_port_register_in(d_port);
+- set_msg_handler(d_port, boost::bind(&freq_sink_f_impl::handle_set_freq, this, _1));
++ set_msg_handler(d_port, [this](pmt::pmt_t msg) { this->handle_set_freq(msg); });
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"), boost::bind(&freq_sink_f_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ d_main_gui = NULL;
+
+diff --git a/gr-qtgui/lib/histogram_sink_f_impl.cc b/gr-qtgui/lib/histogram_sink_f_impl.cc
+index d16de932ca..fd357bf40a 100644
+--- a/gr-qtgui/lib/histogram_sink_f_impl.cc
++++ b/gr-qtgui/lib/histogram_sink_f_impl.cc
+@@ -81,8 +81,7 @@ histogram_sink_f_impl::histogram_sink_f_impl(int size,
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"),
+- boost::bind(&histogram_sink_f_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ // +1 for the PDU buffer
+ for (int i = 0; i < d_nconnections + 1; i++) {
+diff --git a/gr-qtgui/lib/sink_c_impl.cc b/gr-qtgui/lib/sink_c_impl.cc
+index d3feb9d16c..8f7ff36ba2 100644
+--- a/gr-qtgui/lib/sink_c_impl.cc
++++ b/gr-qtgui/lib/sink_c_impl.cc
+@@ -96,7 +96,7 @@ sink_c_impl::sink_c_impl(int fftsize,
+ // double-clicked
+ message_port_register_out(d_port);
+ message_port_register_in(d_port);
+- set_msg_handler(d_port, boost::bind(&sink_c_impl::handle_set_freq, this, _1));
++ set_msg_handler(d_port, [this](pmt::pmt_t msg) { this->handle_set_freq(msg); });
+
+ d_main_gui = NULL;
+
+diff --git a/gr-qtgui/lib/sink_f_impl.cc b/gr-qtgui/lib/sink_f_impl.cc
+index 418b630b78..0b1eccad12 100644
+--- a/gr-qtgui/lib/sink_f_impl.cc
++++ b/gr-qtgui/lib/sink_f_impl.cc
+@@ -95,7 +95,7 @@ sink_f_impl::sink_f_impl(int fftsize,
+ // double-clicked
+ message_port_register_out(d_port);
+ message_port_register_in(d_port);
+- set_msg_handler(d_port, boost::bind(&sink_f_impl::handle_set_freq, this, _1));
++ set_msg_handler(d_port, [this](pmt::pmt_t msg) { this->handle_set_freq(msg); });
+
+ d_main_gui = NULL;
+
+diff --git a/gr-qtgui/lib/time_raster_sink_b_impl.cc b/gr-qtgui/lib/time_raster_sink_b_impl.cc
+index 045c216b00..063ed09d0c 100644
+--- a/gr-qtgui/lib/time_raster_sink_b_impl.cc
++++ b/gr-qtgui/lib/time_raster_sink_b_impl.cc
+@@ -83,8 +83,7 @@ time_raster_sink_b_impl::time_raster_sink_b_impl(double samp_rate,
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"),
+- boost::bind(&time_raster_sink_b_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ d_scale = 1.0f;
+
+diff --git a/gr-qtgui/lib/time_raster_sink_f_impl.cc b/gr-qtgui/lib/time_raster_sink_f_impl.cc
+index d186f319da..df94d217bd 100644
+--- a/gr-qtgui/lib/time_raster_sink_f_impl.cc
++++ b/gr-qtgui/lib/time_raster_sink_f_impl.cc
+@@ -83,8 +83,7 @@ time_raster_sink_f_impl::time_raster_sink_f_impl(double samp_rate,
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"),
+- boost::bind(&time_raster_sink_f_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ d_icols = static_cast<int>(ceil(d_cols));
+ d_tmpflt = (float*)volk_malloc(d_icols * sizeof(float), volk_get_alignment());
+diff --git a/gr-qtgui/lib/time_sink_c_impl.cc b/gr-qtgui/lib/time_sink_c_impl.cc
+index b73a1c1ad3..26dc5d2e32 100644
+--- a/gr-qtgui/lib/time_sink_c_impl.cc
++++ b/gr-qtgui/lib/time_sink_c_impl.cc
+@@ -80,7 +80,7 @@ time_sink_c_impl::time_sink_c_impl(int size,
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"), boost::bind(&time_sink_c_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ // +2 for the PDU message buffers
+ for (unsigned int n = 0; n < d_nconnections + 2; n++) {
+diff --git a/gr-qtgui/lib/time_sink_f_impl.cc b/gr-qtgui/lib/time_sink_f_impl.cc
+index df13998d75..8f41d02143 100644
+--- a/gr-qtgui/lib/time_sink_f_impl.cc
++++ b/gr-qtgui/lib/time_sink_f_impl.cc
+@@ -80,7 +80,7 @@ time_sink_f_impl::time_sink_f_impl(int size,
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"), boost::bind(&time_sink_f_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+
+ // +1 for the PDU buffer
+ for (unsigned int n = 0; n < d_nconnections + 1; n++) {
+diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.cc b/gr-qtgui/lib/waterfall_sink_c_impl.cc
+index fcf2ed98bc..20cebbcbda 100644
+--- a/gr-qtgui/lib/waterfall_sink_c_impl.cc
++++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc
+@@ -117,20 +117,17 @@ waterfall_sink_c_impl::waterfall_sink_c_impl(int fftsize,
+
+ // setup bw input port
+ message_port_register_in(d_port_bw);
+- set_msg_handler(d_port_bw,
+- boost::bind(&waterfall_sink_c_impl::handle_set_bw, this, _1));
++ set_msg_handler(d_port_bw, [this](pmt::pmt_t msg) { this->handle_set_bw(msg); });
+
+ // setup output message port to post frequency when display is
+ // double-clicked
+ message_port_register_out(d_port);
+ message_port_register_in(d_port);
+- set_msg_handler(d_port,
+- boost::bind(&waterfall_sink_c_impl::handle_set_freq, this, _1));
++ set_msg_handler(d_port, [this](pmt::pmt_t msg) { this->handle_set_freq(msg); });
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"),
+- boost::bind(&waterfall_sink_c_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+ }
+
+ waterfall_sink_c_impl::~waterfall_sink_c_impl()
+diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.cc b/gr-qtgui/lib/waterfall_sink_f_impl.cc
+index aa1037a472..4ba6427f08 100644
+--- a/gr-qtgui/lib/waterfall_sink_f_impl.cc
++++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc
+@@ -115,20 +115,17 @@ waterfall_sink_f_impl::waterfall_sink_f_impl(int fftsize,
+
+ // setup bw input port
+ message_port_register_in(d_port_bw);
+- set_msg_handler(d_port_bw,
+- boost::bind(&waterfall_sink_f_impl::handle_set_bw, this, _1));
++ set_msg_handler(d_port_bw, [this](pmt::pmt_t msg) { this->handle_set_bw(msg); });
+
+ // setup output message port to post frequency when display is
+ // double-clicked
+ message_port_register_out(d_port);
+ message_port_register_in(d_port);
+- set_msg_handler(d_port,
+- boost::bind(&waterfall_sink_f_impl::handle_set_freq, this, _1));
++ set_msg_handler(d_port, [this](pmt::pmt_t msg) { this->handle_set_freq(msg); });
+
+ // setup PDU handling input port
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"),
+- boost::bind(&waterfall_sink_f_impl::handle_pdus, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handle_pdus(msg); });
+ }
+
+ waterfall_sink_f_impl::~waterfall_sink_f_impl()
diff --git a/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-gr-uhd.patch b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-gr-uhd.patch
new file mode 100644
index 00000000000..56787372af0
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-gr-uhd.patch
@@ -0,0 +1,98 @@
+From 591c2c16355eb065ff3f51f23d9d6026be188132 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marcus=20M=C3=BCller?= <mmueller@gnuradio.org>
+Date: Sat, 22 Aug 2020 14:06:22 +0200
+Subject: [PATCH] msg_handler: Use lambdas in gr-uhd
+
+---
+ gr-uhd/lib/amsg_source_impl.cc | 3 +--
+ gr-uhd/lib/usrp_block_impl.cc | 10 ++++++----
+ gr-uhd/lib/usrp_block_impl.h | 1 -
+ gr-uhd/lib/usrp_source_impl.cc | 6 ++++--
+ 4 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/gr-uhd/lib/amsg_source_impl.cc b/gr-uhd/lib/amsg_source_impl.cc
+index 46d47a5826..e1de62e028 100644
+--- a/gr-uhd/lib/amsg_source_impl.cc
++++ b/gr-uhd/lib/amsg_source_impl.cc
+@@ -22,7 +22,6 @@
+
+ #include "amsg_source_impl.h"
+ #include "gr_uhd_common.h"
+-#include <boost/bind.hpp>
+
+ namespace gr {
+ namespace uhd {
+@@ -44,7 +43,7 @@ amsg_source_impl::amsg_source_impl(const ::uhd::device_addr_t& device_addr,
+ : _msgq(msgq), _running(true)
+ {
+ _dev = ::uhd::usrp::multi_usrp::make(device_addr);
+- _amsg_thread = gr::thread::thread(boost::bind(&amsg_source_impl::recv_loop, this));
++ _amsg_thread = gr::thread::thread([this]() { this->recv_loop(); });
+ }
+
+ amsg_source_impl::~amsg_source_impl()
+diff --git a/gr-uhd/lib/usrp_block_impl.cc b/gr-uhd/lib/usrp_block_impl.cc
+index e5e1dd9161..8344809837 100644
+--- a/gr-uhd/lib/usrp_block_impl.cc
++++ b/gr-uhd/lib/usrp_block_impl.cc
+@@ -21,7 +21,7 @@
+ */
+
+ #include "usrp_block_impl.h"
+-#include <boost/make_shared.hpp>
++#include <functional>
+
+ using namespace gr::uhd;
+
+@@ -139,10 +139,11 @@ usrp_block_impl::usrp_block_impl(const ::uhd::device_addr_t& device_addr,
+ set_msg_handler(pmt::mp("command"),
+ [this](pmt::pmt_t msg) { this->msg_handler_command(msg); });
+
+-// cuz we lazy:
++ // because we're highly efficient and adverse to work
++ namespace ph = std::placeholders;
+ #define REGISTER_CMD_HANDLER(key, _handler) \
+- register_msg_cmd_handler(key, \
+- boost::bind(&usrp_block_impl::_handler, this, _1, _2, _3))
++ register_msg_cmd_handler( \
++ key, std::bind(&usrp_block_impl::_handler, this, ph::_1, ph::_2, ph::_3))
+ // Register default command handlers:
+ REGISTER_CMD_HANDLER(cmd_freq_key(), _cmd_handler_freq);
+ REGISTER_CMD_HANDLER(cmd_gain_key(), _cmd_handler_gain);
+@@ -153,6 +154,7 @@ usrp_block_impl::usrp_block_impl(const ::uhd::device_addr_t& device_addr,
+ REGISTER_CMD_HANDLER(cmd_rate_key(), _cmd_handler_rate);
+ REGISTER_CMD_HANDLER(cmd_bandwidth_key(), _cmd_handler_bw);
+ REGISTER_CMD_HANDLER(cmd_antenna_key(), _cmd_handler_antenna);
++#undef REGISTER_CMD_HANDLER
+ }
+
+ usrp_block_impl::~usrp_block_impl()
+diff --git a/gr-uhd/lib/usrp_block_impl.h b/gr-uhd/lib/usrp_block_impl.h
+index 1dbc3813bd..479b7dcd65 100644
+--- a/gr-uhd/lib/usrp_block_impl.h
++++ b/gr-uhd/lib/usrp_block_impl.h
+@@ -26,7 +26,6 @@
+ #include <gnuradio/uhd/usrp_block.h>
+ #include <pmt/pmt.h>
+ #include <uhd/usrp/multi_usrp.hpp>
+-#include <boost/bind.hpp>
+ #include <boost/dynamic_bitset.hpp>
+
+
+diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc
+index a2ff0821bd..1e8ef020ab 100644
+--- a/gr-uhd/lib/usrp_source_impl.cc
++++ b/gr-uhd/lib/usrp_source_impl.cc
+@@ -57,8 +57,10 @@ usrp_source_impl::usrp_source_impl(const ::uhd::device_addr_t& device_addr,
+
+ _samp_rate = this->get_samp_rate();
+ _samps_per_packet = 1;
+- register_msg_cmd_handler(cmd_tag_key(),
+- boost::bind(&usrp_source_impl::_cmd_handler_tag, this, _1));
++ register_msg_cmd_handler(
++ cmd_tag_key(), [this](const pmt::pmt_t& val, int chan, const pmt::pmt_t& msg) {
++ this->_cmd_handler_tag(val);
++ });
+ }
+
+ usrp_source_impl::~usrp_source_impl() {}
diff --git a/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-most-components.patch b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-most-components.patch
new file mode 100644
index 00000000000..ea687a7ed87
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-most-components.patch
@@ -0,0 +1,290 @@
+From c6e3632952bd3e86e4d8437d7619e7fececb524e Mon Sep 17 00:00:00 2001
+From: Johannes Demel <demel@ant.uni-bremen.de>
+Date: Sat, 9 May 2020 15:14:37 +0200
+Subject: [PATCH] msg_handler: Use lambdas in most components
+
+With this commit, all components except gr-qtgui use lambdas instead of
+`boost::bind` to register msg handlers.
+---
+ gr-digital/lib/chunks_to_symbols_impl.cc | 6 ++----
+ gr-digital/lib/constellation_receiver_cb_impl.cc | 10 ++++------
+ gr-digital/lib/costas_loop_cc_impl.cc | 2 +-
+ gr-digital/lib/crc32_async_bb_impl.cc | 4 ++--
+ gr-digital/lib/header_payload_demux_impl.cc | 5 ++---
+ gr-digital/lib/protocol_formatter_async_impl.cc | 3 +--
+ gr-fec/lib/async_decoder_impl.cc | 5 ++---
+ gr-fec/lib/async_encoder_impl.cc | 5 ++---
+ gr-fec/lib/depuncture_bb_impl.cc | 2 +-
+ gr-fec/lib/puncture_bb_impl.cc | 2 +-
+ gr-fec/lib/puncture_ff_impl.cc | 2 +-
+ gr-filter/lib/freq_xlating_fir_filter_impl.cc | 8 ++------
+ gr-filter/lib/mmse_resampler_cc_impl.cc | 2 +-
+ gr-filter/lib/mmse_resampler_ff_impl.cc | 2 +-
+ gr-uhd/lib/usrp_block_impl.cc | 2 +-
+ gr-zeromq/lib/pub_msg_sink_impl.cc | 2 +-
+ gr-zeromq/lib/push_msg_sink_impl.cc | 2 +-
+ 17 files changed, 26 insertions(+), 38 deletions(-)
+
+diff --git a/gr-digital/lib/chunks_to_symbols_impl.cc b/gr-digital/lib/chunks_to_symbols_impl.cc
+index 26d590a66e..c2cc99b0c8 100644
+--- a/gr-digital/lib/chunks_to_symbols_impl.cc
++++ b/gr-digital/lib/chunks_to_symbols_impl.cc
+@@ -51,10 +51,8 @@ chunks_to_symbols_impl<IN_T, OUT_T>::chunks_to_symbols_impl(
+ d_symbol_table(symbol_table)
+ {
+ this->message_port_register_in(pmt::mp("set_symbol_table"));
+- this->set_msg_handler(
+- pmt::mp("set_symbol_table"),
+- boost::bind(
+- &chunks_to_symbols_impl<IN_T, OUT_T>::handle_set_symbol_table, this, _1));
++ this->set_msg_handler(pmt::mp("set_symbol_table"),
++ [this](pmt::pmt_t msg) { this->handle_set_symbol_table(msg); });
+ }
+
+ template <class IN_T, class OUT_T>
+diff --git a/gr-digital/lib/constellation_receiver_cb_impl.cc b/gr-digital/lib/constellation_receiver_cb_impl.cc
+index 7fb7559d5e..1c160ff1bb 100644
+--- a/gr-digital/lib/constellation_receiver_cb_impl.cc
++++ b/gr-digital/lib/constellation_receiver_cb_impl.cc
+@@ -61,14 +61,12 @@ constellation_receiver_cb_impl::constellation_receiver_cb_impl(
+ "This receiver only works with constellations of dimension 1.");
+
+ message_port_register_in(pmt::mp("set_constellation"));
+- set_msg_handler(
+- pmt::mp("set_constellation"),
+- boost::bind(&constellation_receiver_cb_impl::handle_set_constellation, this, _1));
++ set_msg_handler(pmt::mp("set_constellation"),
++ [this](pmt::pmt_t msg) { this->handle_set_constellation(msg); });
+
+ message_port_register_in(pmt::mp("rotate_phase"));
+- set_msg_handler(
+- pmt::mp("rotate_phase"),
+- boost::bind(&constellation_receiver_cb_impl::handle_rotate_phase, this, _1));
++ set_msg_handler(pmt::mp("rotate_phase"),
++ [this](pmt::pmt_t msg) { this->handle_rotate_phase(msg); });
+ }
+
+ constellation_receiver_cb_impl::~constellation_receiver_cb_impl() {}
+diff --git a/gr-digital/lib/costas_loop_cc_impl.cc b/gr-digital/lib/costas_loop_cc_impl.cc
+index c3b30834eb..b1a0e67caa 100644
+--- a/gr-digital/lib/costas_loop_cc_impl.cc
++++ b/gr-digital/lib/costas_loop_cc_impl.cc
+@@ -82,7 +82,7 @@ costas_loop_cc_impl::costas_loop_cc_impl(float loop_bw, int order, bool use_snr)
+
+ message_port_register_in(pmt::mp("noise"));
+ set_msg_handler(pmt::mp("noise"),
+- boost::bind(&costas_loop_cc_impl::handle_set_noise, this, _1));
++ [this](pmt::pmt_t msg) { this->handle_set_noise(msg); });
+ }
+
+ costas_loop_cc_impl::~costas_loop_cc_impl() {}
+diff --git a/gr-digital/lib/crc32_async_bb_impl.cc b/gr-digital/lib/crc32_async_bb_impl.cc
+index bffbb2a737..230decc2ae 100644
+--- a/gr-digital/lib/crc32_async_bb_impl.cc
++++ b/gr-digital/lib/crc32_async_bb_impl.cc
+@@ -48,9 +48,9 @@ crc32_async_bb_impl::crc32_async_bb_impl(bool check)
+ message_port_register_out(d_out_port);
+
+ if (check)
+- set_msg_handler(d_in_port, boost::bind(&crc32_async_bb_impl::check, this, _1));
++ set_msg_handler(d_in_port, [this](pmt::pmt_t msg) { this->check(msg); });
+ else
+- set_msg_handler(d_in_port, boost::bind(&crc32_async_bb_impl::calc, this, _1));
++ set_msg_handler(d_in_port, [this](pmt::pmt_t msg) { this->calc(msg); });
+ }
+
+ crc32_async_bb_impl::~crc32_async_bb_impl() {}
+diff --git a/gr-digital/lib/header_payload_demux_impl.cc b/gr-digital/lib/header_payload_demux_impl.cc
+index 98c805fb20..5dc65f422b 100644
+--- a/gr-digital/lib/header_payload_demux_impl.cc
++++ b/gr-digital/lib/header_payload_demux_impl.cc
+@@ -150,9 +150,8 @@ header_payload_demux_impl::header_payload_demux_impl(
+ }
+ set_tag_propagation_policy(TPP_DONT);
+ message_port_register_in(msg_port_id());
+- set_msg_handler(
+- msg_port_id(),
+- boost::bind(&header_payload_demux_impl::parse_header_data_msg, this, _1));
++ set_msg_handler(msg_port_id(),
++ [this](pmt::pmt_t msg) { this->parse_header_data_msg(msg); });
+ for (size_t i = 0; i < special_tags.size(); i++) {
+ d_special_tags.push_back(pmt::string_to_symbol(special_tags[i]));
+ d_special_tags_last_value.push_back(pmt::PMT_NIL);
+diff --git a/gr-digital/lib/protocol_formatter_async_impl.cc b/gr-digital/lib/protocol_formatter_async_impl.cc
+index 84b693745d..08e324ecfb 100644
+--- a/gr-digital/lib/protocol_formatter_async_impl.cc
++++ b/gr-digital/lib/protocol_formatter_async_impl.cc
+@@ -54,8 +54,7 @@ protocol_formatter_async_impl::protocol_formatter_async_impl(
+ message_port_register_out(d_hdr_port);
+ message_port_register_out(d_pld_port);
+
+- set_msg_handler(d_in_port,
+- boost::bind(&protocol_formatter_async_impl::append, this, _1));
++ set_msg_handler(d_in_port, [this](pmt::pmt_t msg) { this->append(msg); });
+ }
+
+ protocol_formatter_async_impl::~protocol_formatter_async_impl() {}
+diff --git a/gr-fec/lib/async_decoder_impl.cc b/gr-fec/lib/async_decoder_impl.cc
+index e7a668c832..c907b297a5 100644
+--- a/gr-fec/lib/async_decoder_impl.cc
++++ b/gr-fec/lib/async_decoder_impl.cc
+@@ -64,11 +64,10 @@ async_decoder_impl::async_decoder_impl(generic_decoder::sptr my_decoder,
+
+ if (d_packed) {
+ d_pack = new blocks::kernel::pack_k_bits(8);
+- set_msg_handler(d_in_port,
+- boost::bind(&async_decoder_impl::decode_packed, this, _1));
++ set_msg_handler(d_in_port, [this](pmt::pmt_t msg) { this->decode_packed(msg); });
+ } else {
+ set_msg_handler(d_in_port,
+- boost::bind(&async_decoder_impl::decode_unpacked, this, _1));
++ [this](pmt::pmt_t msg) { this->decode_unpacked(msg); });
+ }
+
+ // The maximum frame size is set by the initial frame size of the decoder.
+diff --git a/gr-fec/lib/async_encoder_impl.cc b/gr-fec/lib/async_encoder_impl.cc
+index 811d55601f..2e8fd62d12 100644
+--- a/gr-fec/lib/async_encoder_impl.cc
++++ b/gr-fec/lib/async_encoder_impl.cc
+@@ -63,8 +63,7 @@ async_encoder_impl::async_encoder_impl(generic_encoder::sptr my_encoder,
+ message_port_register_out(d_out_port);
+
+ if (d_packed) {
+- set_msg_handler(d_in_port,
+- boost::bind(&async_encoder_impl::encode_packed, this, _1));
++ set_msg_handler(d_in_port, [this](pmt::pmt_t msg) { this->encode_packed(msg); });
+
+ d_unpack = new blocks::kernel::unpack_k_bits(8);
+
+@@ -74,7 +73,7 @@ async_encoder_impl::async_encoder_impl(generic_encoder::sptr my_encoder,
+
+ } else {
+ set_msg_handler(d_in_port,
+- boost::bind(&async_encoder_impl::encode_unpacked, this, _1));
++ [this](pmt::pmt_t msg) { this->encode_unpacked(msg); });
+ }
+
+ if (d_packed || (strncmp(d_encoder->get_input_conversion(), "pack", 4) == 0)) {
+diff --git a/gr-fec/lib/depuncture_bb_impl.cc b/gr-fec/lib/depuncture_bb_impl.cc
+index 27d00bb5bb..59ed44dd8a 100644
+--- a/gr-fec/lib/depuncture_bb_impl.cc
++++ b/gr-fec/lib/depuncture_bb_impl.cc
+@@ -74,7 +74,7 @@ depuncture_bb_impl::depuncture_bb_impl(int puncsize, int puncpat, int delay, cha
+ set_fixed_rate(true);
+ set_relative_rate((uint64_t)d_puncsize, (uint64_t)(d_puncsize - d_puncholes));
+ set_output_multiple(d_puncsize);
+- // set_msg_handler(boost::bind(&depuncture_bb_impl::catch_msg, this, _1));
++ // set_msg_handler(<portname>, [this](pmt::pmt_t msg) { this->catch_msg(msg); });
+ }
+
+ depuncture_bb_impl::~depuncture_bb_impl() {}
+diff --git a/gr-fec/lib/puncture_bb_impl.cc b/gr-fec/lib/puncture_bb_impl.cc
+index a365d6a69f..1f328c2214 100644
+--- a/gr-fec/lib/puncture_bb_impl.cc
++++ b/gr-fec/lib/puncture_bb_impl.cc
+@@ -72,7 +72,7 @@ puncture_bb_impl::puncture_bb_impl(int puncsize, int puncpat, int delay)
+ set_fixed_rate(true);
+ set_relative_rate((uint64_t)(d_puncsize - d_puncholes), (uint64_t)d_puncsize);
+ set_output_multiple(d_puncsize - d_puncholes);
+- // set_msg_handler(boost::bind(&puncture_bb_impl::catch_msg, this, _1));
++ // set_msg_handler(<portname>, [this](pmt::pmt_t msg) { this->catch_msg(msg); });
+ }
+
+ puncture_bb_impl::~puncture_bb_impl() {}
+diff --git a/gr-fec/lib/puncture_ff_impl.cc b/gr-fec/lib/puncture_ff_impl.cc
+index c95288d691..31c686ea4c 100644
+--- a/gr-fec/lib/puncture_ff_impl.cc
++++ b/gr-fec/lib/puncture_ff_impl.cc
+@@ -72,7 +72,7 @@ puncture_ff_impl::puncture_ff_impl(int puncsize, int puncpat, int delay)
+ set_fixed_rate(true);
+ set_relative_rate((uint64_t)(d_puncsize - d_puncholes), (uint64_t)d_puncsize);
+ set_output_multiple(d_puncsize - d_puncholes);
+- // set_msg_handler(boost::bind(&puncture_ff_impl::catch_msg, this, _1));
++ // set_msg_handler(<portname>, [this](pmt::pmt_t msg) { this->catch_msg(msg); });
+ }
+
+ puncture_ff_impl::~puncture_ff_impl() {}
+diff --git a/gr-filter/lib/freq_xlating_fir_filter_impl.cc b/gr-filter/lib/freq_xlating_fir_filter_impl.cc
+index 8ddc967ba1..1050fb82a5 100644
+--- a/gr-filter/lib/freq_xlating_fir_filter_impl.cc
++++ b/gr-filter/lib/freq_xlating_fir_filter_impl.cc
+@@ -67,12 +67,8 @@ freq_xlating_fir_filter_impl<IN_T, OUT_T, TAP_T>::freq_xlating_fir_filter_impl(
+ this->build_composite_fir();
+
+ this->message_port_register_in(pmt::mp("freq"));
+- this->set_msg_handler(
+- pmt::mp("freq"),
+- boost::bind(
+- &freq_xlating_fir_filter_impl<IN_T, OUT_T, TAP_T>::handle_set_center_freq,
+- this,
+- _1));
++ this->set_msg_handler(pmt::mp("freq"),
++ [this](pmt::pmt_t msg) { this->handle_set_center_freq(msg); });
+ }
+
+ template <class IN_T, class OUT_T, class TAP_T>
+diff --git a/gr-filter/lib/mmse_resampler_cc_impl.cc b/gr-filter/lib/mmse_resampler_cc_impl.cc
+index 59f9eacfab..9ca62082ce 100644
+--- a/gr-filter/lib/mmse_resampler_cc_impl.cc
++++ b/gr-filter/lib/mmse_resampler_cc_impl.cc
+@@ -53,7 +53,7 @@ mmse_resampler_cc_impl::mmse_resampler_cc_impl(float phase_shift, float resamp_r
+ set_inverse_relative_rate(d_mu_inc);
+ message_port_register_in(pmt::intern("msg_in"));
+ set_msg_handler(pmt::intern("msg_in"),
+- boost::bind(&mmse_resampler_cc_impl::handle_msg, this, _1));
++ [this](pmt::pmt_t msg) { this->handle_msg(msg); });
+ }
+
+ mmse_resampler_cc_impl::~mmse_resampler_cc_impl() { delete d_resamp; }
+diff --git a/gr-filter/lib/mmse_resampler_ff_impl.cc b/gr-filter/lib/mmse_resampler_ff_impl.cc
+index 342d9f7678..312a6a8755 100644
+--- a/gr-filter/lib/mmse_resampler_ff_impl.cc
++++ b/gr-filter/lib/mmse_resampler_ff_impl.cc
+@@ -54,7 +54,7 @@ mmse_resampler_ff_impl::mmse_resampler_ff_impl(float phase_shift, float resamp_r
+
+ message_port_register_in(pmt::intern("msg_in"));
+ set_msg_handler(pmt::intern("msg_in"),
+- boost::bind(&mmse_resampler_ff_impl::handle_msg, this, _1));
++ [this](pmt::pmt_t msg) { this->handle_msg(msg); });
+ }
+
+ mmse_resampler_ff_impl::~mmse_resampler_ff_impl() { delete d_resamp; }
+diff --git a/gr-uhd/lib/usrp_block_impl.cc b/gr-uhd/lib/usrp_block_impl.cc
+index 4f030159ff..e5e1dd9161 100644
+--- a/gr-uhd/lib/usrp_block_impl.cc
++++ b/gr-uhd/lib/usrp_block_impl.cc
+@@ -137,7 +137,7 @@ usrp_block_impl::usrp_block_impl(const ::uhd::device_addr_t& device_addr,
+ // Set up message ports:
+ message_port_register_in(pmt::mp("command"));
+ set_msg_handler(pmt::mp("command"),
+- boost::bind(&usrp_block_impl::msg_handler_command, this, _1));
++ [this](pmt::pmt_t msg) { this->msg_handler_command(msg); });
+
+ // cuz we lazy:
+ #define REGISTER_CMD_HANDLER(key, _handler) \
+diff --git a/gr-zeromq/lib/pub_msg_sink_impl.cc b/gr-zeromq/lib/pub_msg_sink_impl.cc
+index b5da7421ef..3973b8f835 100644
+--- a/gr-zeromq/lib/pub_msg_sink_impl.cc
++++ b/gr-zeromq/lib/pub_msg_sink_impl.cc
+@@ -62,7 +62,7 @@ pub_msg_sink_impl::pub_msg_sink_impl(char* address, int timeout, bool bind)
+ }
+
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"), boost::bind(&pub_msg_sink_impl::handler, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handler(msg); });
+ }
+
+ pub_msg_sink_impl::~pub_msg_sink_impl()
+diff --git a/gr-zeromq/lib/push_msg_sink_impl.cc b/gr-zeromq/lib/push_msg_sink_impl.cc
+index 4140781ab9..fee734753b 100644
+--- a/gr-zeromq/lib/push_msg_sink_impl.cc
++++ b/gr-zeromq/lib/push_msg_sink_impl.cc
+@@ -62,7 +62,7 @@ push_msg_sink_impl::push_msg_sink_impl(char* address, int timeout, bool bind)
+ }
+
+ message_port_register_in(pmt::mp("in"));
+- set_msg_handler(pmt::mp("in"), boost::bind(&push_msg_sink_impl::handler, this, _1));
++ set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handler(msg); });
+ }
+
+ push_msg_sink_impl::~push_msg_sink_impl()
diff --git a/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-set-msg-handlers.patch b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-set-msg-handlers.patch
new file mode 100644
index 00000000000..2d91fe2cce2
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.8.2.0-lamda-set-msg-handlers.patch
@@ -0,0 +1,298 @@
+From 7c841011f9316d4aae068b444c995829e09278d7 Mon Sep 17 00:00:00 2001
+From: Johannes Demel <demel@ant.uni-bremen.de>
+Date: Sat, 9 May 2020 14:25:32 +0200
+Subject: [PATCH] msg_handler: Use lambdas to set msg handlers
+
+With this commit, all calls to `set_msg_handler` in `gr-blocks` use
+lambdas. This helps to use `std::function` instead of `boost::function`.
+---
+ gnuradio-runtime/lib/block.cc | 3 +--
+ gr-blocks/lib/copy_impl.cc | 2 +-
+ gr-blocks/lib/message_debug_impl.cc | 6 +++---
+ gr-blocks/lib/message_strobe_impl.cc | 3 +--
+ gr-blocks/lib/message_strobe_random_impl.cc | 3 +--
+ gr-blocks/lib/multiply_matrix_impl.cc | 7 ++-----
+ gr-blocks/lib/mute_impl.cc | 2 +-
+ gr-blocks/lib/nop_impl.cc | 3 +--
+ gr-blocks/lib/pdu_filter_impl.cc | 2 +-
+ gr-blocks/lib/pdu_remove_impl.cc | 2 +-
+ gr-blocks/lib/pdu_set_impl.cc | 3 ++-
+ gr-blocks/lib/random_pdu_impl.cc | 2 +-
+ gr-blocks/lib/repeat_impl.cc | 2 +-
+ gr-blocks/lib/socket_pdu_impl.cc | 8 ++++----
+ gr-blocks/lib/tagged_stream_multiply_length_impl.cc | 5 ++---
+ gr-blocks/lib/tuntap_pdu_impl.cc | 2 +-
+ 16 files changed, 24 insertions(+), 31 deletions(-)
+
+diff --git a/gnuradio-runtime/lib/block.cc b/gnuradio-runtime/lib/block.cc
+index 5914283908..beec8c470c 100644
+--- a/gnuradio-runtime/lib/block.cc
++++ b/gnuradio-runtime/lib/block.cc
+@@ -61,9 +61,8 @@ block::block(const std::string& name,
+ {
+ global_block_registry.register_primitive(alias(), this);
+ message_port_register_in(d_system_port);
+- set_msg_handler(d_system_port, boost::bind(&block::system_handler, this, _1));
+-
+ configure_default_loggers(d_logger, d_debug_logger, symbol_name());
++ set_msg_handler(d_system_port, [this](pmt::pmt_t msg) { this->system_handler(msg); });
+ }
+
+ block::~block() { global_block_registry.unregister_primitive(symbol_name()); }
+diff --git a/gr-blocks/lib/copy_impl.cc b/gr-blocks/lib/copy_impl.cc
+index c377e57b1e..4c97d07a76 100644
+--- a/gr-blocks/lib/copy_impl.cc
++++ b/gr-blocks/lib/copy_impl.cc
+@@ -44,7 +44,7 @@ copy_impl::copy_impl(size_t itemsize)
+ d_enabled(true)
+ {
+ message_port_register_in(pmt::mp("en"));
+- set_msg_handler(pmt::mp("en"), boost::bind(©_impl::handle_enable, this, _1));
++ set_msg_handler(pmt::mp("en"), [this](pmt::pmt_t msg) { this->handle_enable(msg); });
+ }
+
+ copy_impl::~copy_impl() {}
+diff --git a/gr-blocks/lib/message_debug_impl.cc b/gr-blocks/lib/message_debug_impl.cc
+index a8c84aa509..719fbd818a 100644
+--- a/gr-blocks/lib/message_debug_impl.cc
++++ b/gr-blocks/lib/message_debug_impl.cc
+@@ -90,14 +90,14 @@ message_debug_impl::message_debug_impl()
+ : block("message_debug", io_signature::make(0, 0, 0), io_signature::make(0, 0, 0))
+ {
+ message_port_register_in(pmt::mp("print"));
+- set_msg_handler(pmt::mp("print"), boost::bind(&message_debug_impl::print, this, _1));
++ set_msg_handler(pmt::mp("print"), [this](pmt::pmt_t msg) { this->print(msg); });
+
+ message_port_register_in(pmt::mp("store"));
+- set_msg_handler(pmt::mp("store"), boost::bind(&message_debug_impl::store, this, _1));
++ set_msg_handler(pmt::mp("store"), [this](pmt::pmt_t msg) { this->store(msg); });
+
+ message_port_register_in(pmt::mp("print_pdu"));
+ set_msg_handler(pmt::mp("print_pdu"),
+- boost::bind(&message_debug_impl::print_pdu, this, _1));
++ [this](pmt::pmt_t msg) { this->print_pdu(msg); });
+ }
+
+ message_debug_impl::~message_debug_impl() {}
+diff --git a/gr-blocks/lib/message_strobe_impl.cc b/gr-blocks/lib/message_strobe_impl.cc
+index 038eeae5a1..67a95be8f2 100644
+--- a/gr-blocks/lib/message_strobe_impl.cc
++++ b/gr-blocks/lib/message_strobe_impl.cc
+@@ -53,8 +53,7 @@ message_strobe_impl::message_strobe_impl(pmt::pmt_t msg, long period_ms)
+ message_port_register_out(d_port);
+
+ message_port_register_in(pmt::mp("set_msg"));
+- set_msg_handler(pmt::mp("set_msg"),
+- boost::bind(&message_strobe_impl::set_msg, this, _1));
++ set_msg_handler(pmt::mp("set_msg"), [this](pmt::pmt_t msg) { this->set_msg(msg); });
+ }
+
+ message_strobe_impl::~message_strobe_impl() {}
+diff --git a/gr-blocks/lib/message_strobe_random_impl.cc b/gr-blocks/lib/message_strobe_random_impl.cc
+index 0ab5d6adc7..1b8deca952 100644
+--- a/gr-blocks/lib/message_strobe_random_impl.cc
++++ b/gr-blocks/lib/message_strobe_random_impl.cc
+@@ -74,8 +74,7 @@ message_strobe_random_impl::message_strobe_random_impl(
+ new gr::thread::thread(boost::bind(&message_strobe_random_impl::run, this)));
+
+ message_port_register_in(pmt::mp("set_msg"));
+- set_msg_handler(pmt::mp("set_msg"),
+- boost::bind(&message_strobe_random_impl::set_msg, this, _1));
++ set_msg_handler(pmt::mp("set_msg"), [this](pmt::pmt_t msg) { this->set_msg(msg); });
+ }
+
+ long message_strobe_random_impl::next_delay()
+diff --git a/gr-blocks/lib/multiply_matrix_impl.cc b/gr-blocks/lib/multiply_matrix_impl.cc
+index e1b9c746c6..03e7894536 100644
+--- a/gr-blocks/lib/multiply_matrix_impl.cc
++++ b/gr-blocks/lib/multiply_matrix_impl.cc
+@@ -235,9 +235,7 @@ multiply_matrix_impl<gr_complex>::multiply_matrix_impl(
+
+ pmt::pmt_t port_name = pmt::string_to_symbol("set_A");
+ message_port_register_in(port_name);
+- set_msg_handler(
+- port_name,
+- boost::bind(&multiply_matrix_impl<gr_complex>::msg_handler_A, this, _1));
++ set_msg_handler(port_name, [this](pmt::pmt_t msg) { this->msg_handler_A(msg); });
+ }
+
+ template <>
+@@ -256,8 +254,7 @@ multiply_matrix_impl<float>::multiply_matrix_impl(
+
+ pmt::pmt_t port_name = pmt::string_to_symbol("set_A");
+ message_port_register_in(port_name);
+- set_msg_handler(port_name,
+- boost::bind(&multiply_matrix_impl<float>::msg_handler_A, this, _1));
++ set_msg_handler(port_name, [this](pmt::pmt_t msg) { this->msg_handler_A(msg); });
+ }
+
+
+diff --git a/gr-blocks/lib/mute_impl.cc b/gr-blocks/lib/mute_impl.cc
+index bd65ce2075..c9a1d200c8 100644
+--- a/gr-blocks/lib/mute_impl.cc
++++ b/gr-blocks/lib/mute_impl.cc
+@@ -48,7 +48,7 @@ mute_impl<T>::mute_impl(bool mute)
+ {
+ this->message_port_register_in(pmt::intern("set_mute"));
+ this->set_msg_handler(pmt::intern("set_mute"),
+- boost::bind(&mute_impl<T>::set_mute_pmt, this, _1));
++ [this](pmt::pmt_t msg) { this->set_mute_pmt(msg); });
+ }
+
+ template <class T>
+diff --git a/gr-blocks/lib/nop_impl.cc b/gr-blocks/lib/nop_impl.cc
+index db216d97a4..4e1e887f42 100644
+--- a/gr-blocks/lib/nop_impl.cc
++++ b/gr-blocks/lib/nop_impl.cc
+@@ -26,7 +26,6 @@
+
+ #include "nop_impl.h"
+ #include <gnuradio/io_signature.h>
+-#include <boost/bind.hpp>
+
+ namespace gr {
+ namespace blocks {
+@@ -45,7 +44,7 @@ nop_impl::nop_impl(size_t sizeof_stream_item)
+ // Arrange to have count_received_msgs called when messages are received.
+ message_port_register_in(pmt::mp("port"));
+ set_msg_handler(pmt::mp("port"),
+- boost::bind(&nop_impl::count_received_msgs, this, _1));
++ [this](pmt::pmt_t msg) { this->count_received_msgs(msg); });
+ }
+
+ nop_impl::~nop_impl() {}
+diff --git a/gr-blocks/lib/pdu_filter_impl.cc b/gr-blocks/lib/pdu_filter_impl.cc
+index b0748eec02..760027a78c 100644
+--- a/gr-blocks/lib/pdu_filter_impl.cc
++++ b/gr-blocks/lib/pdu_filter_impl.cc
+@@ -45,7 +45,7 @@ pdu_filter_impl::pdu_filter_impl(pmt::pmt_t k, pmt::pmt_t v, bool invert)
+ message_port_register_out(pdu::pdu_port_id());
+ message_port_register_in(pdu::pdu_port_id());
+ set_msg_handler(pdu::pdu_port_id(),
+- boost::bind(&pdu_filter_impl::handle_msg, this, _1));
++ [this](pmt::pmt_t msg) { this->handle_msg(msg); });
+ }
+
+ void pdu_filter_impl::handle_msg(pmt::pmt_t pdu)
+diff --git a/gr-blocks/lib/pdu_remove_impl.cc b/gr-blocks/lib/pdu_remove_impl.cc
+index 19cc4dc76a..58277ca0d0 100644
+--- a/gr-blocks/lib/pdu_remove_impl.cc
++++ b/gr-blocks/lib/pdu_remove_impl.cc
+@@ -43,7 +43,7 @@ pdu_remove_impl::pdu_remove_impl(pmt::pmt_t k)
+ message_port_register_out(pdu::pdu_port_id());
+ message_port_register_in(pdu::pdu_port_id());
+ set_msg_handler(pdu::pdu_port_id(),
+- boost::bind(&pdu_remove_impl::handle_msg, this, _1));
++ [this](pmt::pmt_t msg) { this->handle_msg(msg); });
+ }
+
+ void pdu_remove_impl::handle_msg(pmt::pmt_t pdu)
+diff --git a/gr-blocks/lib/pdu_set_impl.cc b/gr-blocks/lib/pdu_set_impl.cc
+index 40fbc3cd83..61f1bb1284 100644
+--- a/gr-blocks/lib/pdu_set_impl.cc
++++ b/gr-blocks/lib/pdu_set_impl.cc
+@@ -43,7 +43,8 @@ pdu_set_impl::pdu_set_impl(pmt::pmt_t k, pmt::pmt_t v)
+ {
+ message_port_register_out(pdu::pdu_port_id());
+ message_port_register_in(pdu::pdu_port_id());
+- set_msg_handler(pdu::pdu_port_id(), boost::bind(&pdu_set_impl::handle_msg, this, _1));
++ set_msg_handler(pdu::pdu_port_id(),
++ [this](pmt::pmt_t msg) { this->handle_msg(msg); });
+ }
+
+ void pdu_set_impl::handle_msg(pmt::pmt_t pdu)
+diff --git a/gr-blocks/lib/random_pdu_impl.cc b/gr-blocks/lib/random_pdu_impl.cc
+index 75d825aefa..5207a779d6 100644
+--- a/gr-blocks/lib/random_pdu_impl.cc
++++ b/gr-blocks/lib/random_pdu_impl.cc
+@@ -53,7 +53,7 @@ random_pdu_impl::random_pdu_impl(int min_items,
+ message_port_register_out(pdu::pdu_port_id());
+ message_port_register_in(pmt::mp("generate"));
+ set_msg_handler(pmt::mp("generate"),
+- boost::bind(&random_pdu_impl::generate_pdu, this, _1));
++ [this](pmt::pmt_t msg) { this->generate_pdu(msg); });
+ if (length_modulo < 1)
+ throw std::runtime_error("length_module must be >= 1");
+ if (max_items < length_modulo)
+diff --git a/gr-blocks/lib/repeat_impl.cc b/gr-blocks/lib/repeat_impl.cc
+index 189fbc8948..7262b11a2e 100644
+--- a/gr-blocks/lib/repeat_impl.cc
++++ b/gr-blocks/lib/repeat_impl.cc
+@@ -45,7 +45,7 @@ repeat_impl::repeat_impl(size_t itemsize, int interp)
+ {
+ message_port_register_in(pmt::mp("interpolation"));
+ set_msg_handler(pmt::mp("interpolation"),
+- boost::bind(&repeat_impl::msg_set_interpolation, this, _1));
++ [this](pmt::pmt_t msg) { this->msg_set_interpolation(msg); });
+ }
+
+ void repeat_impl::msg_set_interpolation(pmt::pmt_t msg)
+diff --git a/gr-blocks/lib/socket_pdu_impl.cc b/gr-blocks/lib/socket_pdu_impl.cc
+index df69f07ad2..edf572e76c 100644
+--- a/gr-blocks/lib/socket_pdu_impl.cc
++++ b/gr-blocks/lib/socket_pdu_impl.cc
+@@ -101,7 +101,7 @@ socket_pdu_impl::socket_pdu_impl(std::string type,
+ start_tcp_accept();
+
+ set_msg_handler(pdu::pdu_port_id(),
+- boost::bind(&socket_pdu_impl::tcp_server_send, this, _1));
++ [this](pmt::pmt_t msg) { this->tcp_server_send(msg); });
+ } else if (type == "TCP_CLIENT") {
+ boost::system::error_code error = boost::asio::error::host_not_found;
+ d_tcp_socket.reset(new boost::asio::ip::tcp::socket(d_io_service));
+@@ -111,7 +111,7 @@ socket_pdu_impl::socket_pdu_impl(std::string type,
+ d_tcp_socket->set_option(boost::asio::ip::tcp::no_delay(d_tcp_no_delay));
+
+ set_msg_handler(pdu::pdu_port_id(),
+- boost::bind(&socket_pdu_impl::tcp_client_send, this, _1));
++ [this](pmt::pmt_t msg) { this->tcp_client_send(msg); });
+
+ d_tcp_socket->async_read_some(
+ boost::asio::buffer(d_rxbuf),
+@@ -131,7 +131,7 @@ socket_pdu_impl::socket_pdu_impl(std::string type,
+ boost::asio::placeholders::bytes_transferred));
+
+ set_msg_handler(pdu::pdu_port_id(),
+- boost::bind(&socket_pdu_impl::udp_send, this, _1));
++ [this](pmt::pmt_t msg) { this->udp_send(msg); });
+ } else if (type == "UDP_CLIENT") {
+ d_udp_socket.reset(
+ new boost::asio::ip::udp::socket(d_io_service, d_udp_endpoint));
+@@ -144,7 +144,7 @@ socket_pdu_impl::socket_pdu_impl(std::string type,
+ boost::asio::placeholders::bytes_transferred));
+
+ set_msg_handler(pdu::pdu_port_id(),
+- boost::bind(&socket_pdu_impl::udp_send, this, _1));
++ [this](pmt::pmt_t msg) { this->udp_send(msg); });
+ } else
+ throw std::runtime_error("gr::blocks:socket_pdu: unknown socket type");
+
+diff --git a/gr-blocks/lib/tagged_stream_multiply_length_impl.cc b/gr-blocks/lib/tagged_stream_multiply_length_impl.cc
+index 30f4c46dc6..2266c01fe3 100644
+--- a/gr-blocks/lib/tagged_stream_multiply_length_impl.cc
++++ b/gr-blocks/lib/tagged_stream_multiply_length_impl.cc
+@@ -49,9 +49,8 @@ tagged_stream_multiply_length_impl::tagged_stream_multiply_length_impl(
+ set_tag_propagation_policy(TPP_DONT);
+ set_relative_rate(1, 1);
+ message_port_register_in(pmt::intern("set_scalar"));
+- set_msg_handler(
+- pmt::intern("set_scalar"),
+- boost::bind(&tagged_stream_multiply_length_impl::set_scalar_pmt, this, _1));
++ set_msg_handler(pmt::intern("set_scalar"),
++ [this](pmt::pmt_t msg) { this->set_scalar_pmt(msg); });
+ }
+
+ tagged_stream_multiply_length_impl::~tagged_stream_multiply_length_impl() {}
+diff --git a/gr-blocks/lib/tuntap_pdu_impl.cc b/gr-blocks/lib/tuntap_pdu_impl.cc
+index 4343ae1dc3..19742235d9 100644
+--- a/gr-blocks/lib/tuntap_pdu_impl.cc
++++ b/gr-blocks/lib/tuntap_pdu_impl.cc
+@@ -96,7 +96,7 @@ tuntap_pdu_impl::tuntap_pdu_impl(std::string dev, int MTU, bool istunflag)
+
+ // set up input message port
+ message_port_register_in(pdu::pdu_port_id());
+- set_msg_handler(pdu::pdu_port_id(), boost::bind(&tuntap_pdu_impl::send, this, _1));
++ set_msg_handler(pdu::pdu_port_id(), [this](pmt::pmt_t msg) { this->send(msg); });
+ }
+
+ int tuntap_pdu_impl::tun_alloc(char* dev, int flags)
diff --git a/net-wireless/gnuradio/gnuradio-3.8.2.0.ebuild b/net-wireless/gnuradio/gnuradio-3.8.2.0.ebuild
index 43237bbd9cc..601ceea4ed9 100644
--- a/net-wireless/gnuradio/gnuradio-3.8.2.0.ebuild
+++ b/net-wireless/gnuradio/gnuradio-3.8.2.0.ebuild
@@ -114,6 +114,13 @@ DEPEND="${RDEPEND}
zeromq? ( net-libs/cppzmq )
"
+PATCHES=(
+ "${FILESDIR}/gnuradio-3.8.2.0-lamda-gr-qtgui.patch"
+ "${FILESDIR}/gnuradio-3.8.2.0-lamda-gr-uhd.patch"
+ "${FILESDIR}/gnuradio-3.8.2.0-lamda-most-components.patch"
+ "${FILESDIR}/gnuradio-3.8.2.0-lamda-set-msg-handlers.patch"
+)
+
src_prepare() {
xdg_environment_reset #534582
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/gnuradio/files/, net-wireless/gnuradio/
@ 2022-08-17 12:33 Thomas Beierlein
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Beierlein @ 2022-08-17 12:33 UTC (permalink / raw
To: gentoo-commits
commit: 801713036d2f629e3fd6fae8b9e812a6038d9705
Author: Huang Rui <vowstar <AT> gmail <DOT> com>
AuthorDate: Sun Aug 7 15:02:38 2022 +0000
Commit: Thomas Beierlein <tomjbe <AT> gentoo <DOT> org>
CommitDate: Wed Aug 17 12:32:51 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80171303
net-wireless/gnuradio: fix 3.10.3.0 build problems
Fix static assertion failed : Cannot format an argument
Fix error: ‘HUGE_VAL’ was not declared in this scope
Signed-off-by: Huang Rui <vowstar <AT> gmail.com>
Closes: https://bugs.gentoo.org/858659
Closes: https://bugs.gentoo.org/858665
Closes: https://github.com/gentoo/gentoo/pull/26775
Signed-off-by: Thomas Beierlein <tomjbe <AT> gentoo.org>
.../files/gnuradio-3.10.3.0-fix-fmt-v9.patch | 145 +++++++++++++++++++++
.../files/gnuradio-3.10.3.0-fix-gcc12.patch | 50 +++++++
net-wireless/gnuradio/gnuradio-3.10.3.0.ebuild | 5 +
3 files changed, 200 insertions(+)
diff --git a/net-wireless/gnuradio/files/gnuradio-3.10.3.0-fix-fmt-v9.patch b/net-wireless/gnuradio/files/gnuradio-3.10.3.0-fix-fmt-v9.patch
new file mode 100644
index 000000000000..7b17021213d8
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.10.3.0-fix-fmt-v9.patch
@@ -0,0 +1,145 @@
+From e63ee41fd455cdd39ae983c258d8632c3ea57fc6 Mon Sep 17 00:00:00 2001
+From: Huang Rui <vowstar@gmail.com>
+Date: Sun, 7 Aug 2022 22:06:30 +0800
+Subject: [PATCH] Fix build failures with libfmt-9.0.0
+
+libfmt-9.0.0 require explicit tagging of ARG types. This commit
+adds those tags for the types that are currently formatted via fmt.
+
+Bug: https://bugs.gentoo.org/858659
+Closes: https://github.com/gnuradio/gnuradio/issues/6052
+Signed-off-by: Huang Rui <vowstar@gmail.com>
+---
+ gnuradio-runtime/lib/flat_flowgraph.cc | 25 ++++++++++++++++++++++
+ gnuradio-runtime/lib/flowgraph.cc | 10 +++++++++
+ gnuradio-runtime/lib/hier_block2_detail.cc | 19 ++++++++++++++++
+ gr-analog/lib/sig_source_impl.cc | 10 +++++++++
+ gr-uhd/lib/usrp_block_impl.cc | 7 ++++++
+ 5 files changed, 71 insertions(+)
+
+diff --git a/gnuradio-runtime/lib/flat_flowgraph.cc b/gnuradio-runtime/lib/flat_flowgraph.cc
+index 42875fb4c32..ac7c8ce9109 100644
+--- a/gnuradio-runtime/lib/flat_flowgraph.cc
++++ b/gnuradio-runtime/lib/flat_flowgraph.cc
+@@ -25,6 +25,31 @@
+ #include <map>
+ #include <numeric>
+
++#if FMT_VERSION >= 90000
++#include <fmt/ostream.h>
++template <>
++struct fmt::formatter<gr::edge> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<gr::msg_endpoint> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<gr::basic_block>> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<gr::block_detail>> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<gr::buffer_reader>> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<gr::buffer>> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<pmt::pmt_base>> : ostream_formatter {
++};
++#endif // FMT_VERSION >= 90000
++
+ namespace gr {
+
+
+diff --git a/gnuradio-runtime/lib/flowgraph.cc b/gnuradio-runtime/lib/flowgraph.cc
+index 0bc04adc22c..6c63b834a89 100644
+--- a/gnuradio-runtime/lib/flowgraph.cc
++++ b/gnuradio-runtime/lib/flowgraph.cc
+@@ -20,6 +20,16 @@
+ // TODO: Replace with GNU Radio logging
+ #include <iostream>
+
++#if FMT_VERSION >= 90000
++#include <fmt/ostream.h>
++template <>
++struct fmt::formatter<std::shared_ptr<gr::basic_block>> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<pmt::pmt_base>> : ostream_formatter {
++};
++#endif // FMT_VERSION >= 90000
++
+ namespace gr {
+
+ edge::~edge() {}
+diff --git a/gnuradio-runtime/lib/hier_block2_detail.cc b/gnuradio-runtime/lib/hier_block2_detail.cc
+index 5cb42030dca..d3e27aee5b4 100644
+--- a/gnuradio-runtime/lib/hier_block2_detail.cc
++++ b/gnuradio-runtime/lib/hier_block2_detail.cc
+@@ -22,6 +22,25 @@
+ // TODO: Replace with GNU Radio logging
+ #include <iostream>
+
++#if FMT_VERSION >= 90000
++#include <fmt/ostream.h>
++template <>
++struct fmt::formatter<gr::edge> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<gr::endpoint> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<gr::msg_endpoint> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<gr::basic_block>> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<std::shared_ptr<pmt::pmt_base>> : ostream_formatter {
++};
++#endif // FMT_VERSION >= 90000
++
+ namespace gr {
+
+ hier_block2_detail::hier_block2_detail(hier_block2* owner)
+diff --git a/gr-analog/lib/sig_source_impl.cc b/gr-analog/lib/sig_source_impl.cc
+index 0e1db81648a..afa6d779cb0 100644
+--- a/gr-analog/lib/sig_source_impl.cc
++++ b/gr-analog/lib/sig_source_impl.cc
+@@ -21,6 +21,16 @@
+ #include <algorithm>
+ #include <stdexcept>
+
++#if FMT_VERSION >= 90000
++#include <fmt/ostream.h>
++template <>
++struct fmt::formatter<std::shared_ptr<pmt::pmt_base>> : ostream_formatter {
++};
++template <>
++struct fmt::formatter<gr::analog::gr_waveform_t&> : ostream_formatter {
++};
++#endif // FMT_VERSION >= 90000
++
+ namespace gr {
+ namespace analog {
+
+diff --git a/gr-uhd/lib/usrp_block_impl.cc b/gr-uhd/lib/usrp_block_impl.cc
+index cb6dccfcdea..b11b82a9e70 100644
+--- a/gr-uhd/lib/usrp_block_impl.cc
++++ b/gr-uhd/lib/usrp_block_impl.cc
+@@ -12,6 +12,13 @@
+ #include <chrono>
+ #include <thread>
+
++#if FMT_VERSION >= 90000
++#include <fmt/ostream.h>
++template <>
++struct fmt::formatter<std::shared_ptr<pmt::pmt_base>> : ostream_formatter {
++};
++#endif // FMT_VERSION >= 90000
++
+ using namespace gr::uhd;
+ using namespace std::chrono_literals;
+
diff --git a/net-wireless/gnuradio/files/gnuradio-3.10.3.0-fix-gcc12.patch b/net-wireless/gnuradio/files/gnuradio-3.10.3.0-fix-gcc12.patch
new file mode 100644
index 000000000000..5db69aa60a75
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.10.3.0-fix-gcc12.patch
@@ -0,0 +1,50 @@
+From 9bf18900418e1d16e30072765bff1cbffdf8c0a9 Mon Sep 17 00:00:00 2001
+From: danielnachun <daniel.nachun@gmail.com>
+Date: Fri, 8 Jul 2022 12:53:47 -0700
+Subject: [PATCH] add missing includes
+
+Signed-off-by: danielnachun <daniel.nachun@gmail.com>
+---
+ gr-qtgui/lib/FrequencyDisplayPlot.cc | 2 +-
+ gr-qtgui/lib/VectorDisplayPlot.cc | 2 ++
+ gr-qtgui/lib/WaterfallDisplayPlot.cc | 1 +
+ 3 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.cc b/gr-qtgui/lib/FrequencyDisplayPlot.cc
+index f6f673e7ec6..2171f26e7d8 100644
+--- a/gr-qtgui/lib/FrequencyDisplayPlot.cc
++++ b/gr-qtgui/lib/FrequencyDisplayPlot.cc
+@@ -16,7 +16,7 @@
+ #include <gnuradio/qtgui/qtgui_types.h>
+ #include <qwt_scale_draw.h>
+ #include <QColor>
+-
++#include <cmath>
+
+ /***********************************************************************
+ * Widget to provide mouse pointer coordinate text
+diff --git a/gr-qtgui/lib/VectorDisplayPlot.cc b/gr-qtgui/lib/VectorDisplayPlot.cc
+index d5c2ecc27e5..2e5f3f422b9 100644
+--- a/gr-qtgui/lib/VectorDisplayPlot.cc
++++ b/gr-qtgui/lib/VectorDisplayPlot.cc
+@@ -25,6 +25,8 @@
+ #include <qwt_legend_label.h>
+ #endif /* QWT_VERSION < 0x060100 */
+
++#include <cmath>
++
+ /***********************************************************************
+ * Widget to provide mouse pointer coordinate text
+ **********************************************************************/
+diff --git a/gr-qtgui/lib/WaterfallDisplayPlot.cc b/gr-qtgui/lib/WaterfallDisplayPlot.cc
+index 69d82fdae86..d999fe046da 100644
+--- a/gr-qtgui/lib/WaterfallDisplayPlot.cc
++++ b/gr-qtgui/lib/WaterfallDisplayPlot.cc
+@@ -28,6 +28,7 @@
+ #endif /* QWT_VERSION < 0x060100 */
+
+ #include <QDebug>
++#include <cmath>
+
+ /***********************************************************************
+ * Text scale widget to provide Y (time) axis text
diff --git a/net-wireless/gnuradio/gnuradio-3.10.3.0.ebuild b/net-wireless/gnuradio/gnuradio-3.10.3.0.ebuild
index 87023a4ce0be..f9e22ca10894 100644
--- a/net-wireless/gnuradio/gnuradio-3.10.3.0.ebuild
+++ b/net-wireless/gnuradio/gnuradio-3.10.3.0.ebuild
@@ -130,6 +130,11 @@ DEPEND="${RDEPEND}
zeromq? ( net-libs/cppzmq )
"
+PATCHES=(
+ "${FILESDIR}/${PN}-3.10.3.0-fix-fmt-v9.patch" #858659
+ "${FILESDIR}/${PN}-3.10.3.0-fix-gcc12.patch" #858665
+)
+
src_prepare() {
xdg_environment_reset #534582
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/gnuradio/files/, net-wireless/gnuradio/
@ 2022-10-22 8:10 Thomas Beierlein
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Beierlein @ 2022-10-22 8:10 UTC (permalink / raw
To: gentoo-commits
commit: 15c69a630577d3a7e84cf8180d75f7a6be49acce
Author: Thomas Beierlein <tomjbe <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 22 08:09:57 2022 +0000
Commit: Thomas Beierlein <tomjbe <AT> gentoo <DOT> org>
CommitDate: Sat Oct 22 08:09:57 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15c69a63
net-wireless/gnuradio: add 3.10.4.0
Signed-off-by: Thomas Beierlein <tomjbe <AT> gentoo.org>
net-wireless/gnuradio/Manifest | 1 +
.../gnuradio-3.10.4.0-fix-blockinterleaving.patch | 26 +++
net-wireless/gnuradio/gnuradio-3.10.4.0.ebuild | 248 +++++++++++++++++++++
3 files changed, 275 insertions(+)
diff --git a/net-wireless/gnuradio/Manifest b/net-wireless/gnuradio/Manifest
index 8c0e375821c2..1acde078ff8f 100644
--- a/net-wireless/gnuradio/Manifest
+++ b/net-wireless/gnuradio/Manifest
@@ -1,2 +1,3 @@
DIST gnuradio-3.10.3.0.tar.gz 4376594 BLAKE2B 676c16dda6c4b01ca922fe942e1572653c57dd8f6240ad74af2b10351470ad53ecc5c4a7347e04cb1c898388c48f561f7871c39140f77c50f9217963355793a6 SHA512 fe4cd2204257b65129f148bbdd6a1c192559b8824a131bd99cc2ac854e1880ee4fa07b702170452b3b6070df34d99db27ef0fe064c50e6e5a6335e61e38e6645
+DIST gnuradio-3.10.4.0.tar.gz 4392284 BLAKE2B 2a5766708534966bcea1e1ab57ae703b0b453278da5042c65ddcf5bda39dee084ee8f77d414e2c8ab3eae2397680f7591c456404a6cefc08b28a7d1f5d25534d SHA512 a8690016513df3928cb2f63eef190c7306bc3cc452dfeafab2e47b43aa1dd3f61515df49832e99530535f94deabfb614388a27212b09e1c816782f3fdd4915eb
DIST gnuradio-3.8.5.0.tar.gz 3399660 BLAKE2B 19e3eecb40d7cdafe6fe551d3d36c0fcd34bb92ceb316537f4ebdc1c90d3c649daa1383f3642e2f64bba23026ed6638168fa77da0f21db03330b066e3108c880 SHA512 9b367c8afeb278b90e8ddd835e0ba301f07a53da26791e74913c812bde251daaa8f9611f21969938b215c9a110c9e69dfb6ec8b6d0db9c64013707c57596819a
diff --git a/net-wireless/gnuradio/files/gnuradio-3.10.4.0-fix-blockinterleaving.patch b/net-wireless/gnuradio/files/gnuradio-3.10.4.0-fix-blockinterleaving.patch
new file mode 100644
index 000000000000..b2c8270338c5
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.10.4.0-fix-blockinterleaving.patch
@@ -0,0 +1,26 @@
+diff --git a/gr-blocks/include/gnuradio/blocks/blockinterleaving.h b/gr-blocks/include/gnuradio/blocks/blockinterleaving.h
+index 9d4e0f2..f6b8bc6 100644
+--- a/gr-blocks/include/gnuradio/blocks/blockinterleaving.h
++++ b/gr-blocks/include/gnuradio/blocks/blockinterleaving.h
+@@ -12,7 +12,8 @@
+ #define INCLUDED_GR_BLOCKS_BLOCKINTERLEAVING_H
+
+ #include <gnuradio/blocks/api.h>
+-
++#include <cstddef>
++#include <vector>
+
+ namespace gr {
+ namespace blocks {
+diff --git a/gr-blocks/lib/blockinterleaving.cc b/gr-blocks/lib/blockinterleaving.cc
+index fc5873e..768ad9e 100644
+--- a/gr-blocks/lib/blockinterleaving.cc
++++ b/gr-blocks/lib/blockinterleaving.cc
+@@ -12,6 +12,7 @@
+ #include <spdlog/fmt/fmt.h>
+ #include <algorithm>
+ #include <numeric>
++#include <vector>
+
+ namespace gr {
+ namespace blocks {
diff --git a/net-wireless/gnuradio/gnuradio-3.10.4.0.ebuild b/net-wireless/gnuradio/gnuradio-3.10.4.0.ebuild
new file mode 100644
index 000000000000..85f8829152e8
--- /dev/null
+++ b/net-wireless/gnuradio/gnuradio-3.10.4.0.ebuild
@@ -0,0 +1,248 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..10} )
+
+CMAKE_BUILD_TYPE="None"
+inherit cmake python-single-r1 virtualx xdg-utils
+
+DESCRIPTION="Toolkit that provides signal processing blocks to implement software radios"
+HOMEPAGE="https://www.gnuradio.org/"
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+
+if [[ ${PV} =~ "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/gnuradio/gnuradio.git"
+ EGIT_BRANCH="maint-3.10"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/gnuradio/gnuradio/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~riscv ~x86"
+fi
+
+IUSE="+audio +alsa +analog +digital channels ctrlport doc dtv examples fec +filter grc iio jack modtool network oss performance-counters portaudio +qt5 sdl soapy test trellis uhd vocoder +utils wavelet zeromq"
+
+#RESTRICT="!test? ( test )"
+#Tests are known broken right now
+RESTRICT="test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ audio? ( || ( alsa oss jack portaudio ) )
+ alsa? ( audio )
+ jack? ( audio )
+ oss? ( audio )
+ portaudio? ( audio )
+ analog? ( filter )
+ channels? ( filter analog qt5 )
+ digital? ( filter analog )
+ dtv? ( filter analog fec )
+ modtool? ( utils )
+ qt5? ( filter )
+ trellis? ( analog digital )
+ uhd? ( filter analog )
+ vocoder? ( filter analog )
+ wavelet? ( analog )
+"
+
+RDEPEND="${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-libs/boost:=[python,${PYTHON_USEDEP}]')
+ dev-libs/log4cpp:=
+ $(python_gen_cond_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ $(python_gen_cond_dep 'dev-python/jsonschema[${PYTHON_USEDEP}]')
+ dev-libs/spdlog
+ dev-libs/libfmt:=
+ sci-libs/fftw:3.0=
+ sci-libs/mpir:=
+ sci-libs/volk:=
+ media-libs/libsndfile
+ sys-libs/libunwind
+ alsa? ( media-libs/alsa-lib:= )
+ ctrlport? (
+ $(python_gen_cond_dep 'dev-python/thrift[${PYTHON_USEDEP}]')
+ )
+ fec? (
+ sci-libs/gsl:=
+ dev-python/scipy
+ )
+ filter? (
+ dev-python/scipy
+ $(python_gen_cond_dep 'dev-python/pyqtgraph[${PYTHON_USEDEP}]')
+ )
+ grc? (
+ $(python_gen_cond_dep 'dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]')
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection]
+ )
+ iio? (
+ net-libs/libiio:=
+ net-libs/libad9361-iio:=
+ !net-wireless/gr-iio
+ )
+ jack? ( virtual/jack )
+ portaudio? ( >=media-libs/portaudio-19_pre )
+ qt5? (
+ $(python_gen_cond_dep 'dev-python/PyQt5[opengl,${PYTHON_USEDEP}]')
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ x11-libs/qwt:6[qt5(+)]
+ dev-qt/qtwidgets:5
+ )
+ soapy? (
+ $(python_gen_cond_dep 'net-wireless/soapysdr[${PYTHON_USEDEP}]')
+ )
+ sdl? ( >=media-libs/libsdl-1.2.0 )
+ trellis? ( dev-python/scipy )
+ uhd? (
+ $(python_gen_cond_dep '>=net-wireless/uhd-3.9.6:=[${PYTHON_SINGLE_USEDEP}]')
+ )
+ utils? (
+ $(python_gen_cond_dep 'dev-python/click[${PYTHON_USEDEP}]
+ dev-python/click-plugins[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]')
+ )
+ vocoder? (
+ media-sound/gsm
+ >=media-libs/codec2-0.8.1:=
+ )
+ wavelet? (
+ sci-libs/gsl:=
+ dev-libs/gmp:=
+ sci-libs/lapack
+ )
+ zeromq? ( >=net-libs/zeromq-2.1.11:= )
+"
+
+DEPEND="${RDEPEND}
+ app-text/docbook-xml-dtd:4.2
+ $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')
+ $(python_gen_cond_dep 'dev-python/pygccxml[${PYTHON_USEDEP}]')
+ virtual/pkgconfig
+ doc? (
+ >=app-doc/doxygen-1.5.7.1
+ dev-libs/mathjax
+ )
+ grc? ( x11-misc/xdg-utils )
+ oss? ( virtual/os-headers )
+ test? ( >=dev-util/cppunit-1.9.14 )
+ zeromq? ( net-libs/cppzmq )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.10.3.0-fix-fmt-v9.patch" #858659
+ "${FILESDIR}/${PN}-3.10.4.0-fix-blockinterleaving.patch"
+)
+
+src_prepare() {
+ xdg_environment_reset #534582
+
+ use !alsa && sed -i 's#version.h#version-nonexistent.h#' cmake/Modules/FindALSA.cmake
+ use !jack && sed -i 's#jack.h#jack-nonexistent.h#' cmake/Modules/FindJACK.cmake
+ use !oss && sed -i 's#soundcard.h#oss-nonexistent.h#g' cmake/Modules/FindOSS.cmake
+ use !portaudio && sed -i 's#portaudio.h#portaudio-nonexistent.h#g' cmake/Modules/FindPORTAUDIO.cmake
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DENABLE_GNURADIO_RUNTIME=ON
+ -DENABLE_PYTHON=ON
+ -DENABLE_GR_BLOCKS=ON
+ -DENABLE_GR_ANALOG="$(usex analog)"
+ -DENABLE_GR_AUDIO=ON
+ -DENABLE_GR_CHANNELS="$(usex channels)"
+ -DENABLE_GR_CTRLPORT="$(usex ctrlport)"
+ -DENABLE_GR_DIGITAL="$(usex digital)"
+ -DENABLE_DOXYGEN="$(usex doc)"
+ -DENABLE_GR_DTV="$(usex dtv)"
+ -DENABLE_GR_FEC="$(usex fec)"
+ -DENABLE_GR_FFT=ON
+ -DENABLE_GR_FILTER="$(usex filter)"
+ -DENABLE_GRC="$(usex grc)"
+ -DENABLE_GR_IIO="$(usex iio)"
+ -DENABLE_GR_MODTOOL="$(usex modtool)"
+ -DENABLE_GR_BLOCKTOOL="$(usex modtool)"
+ -DENABLE_GR_NETWORK="$(usex network)"
+ -DENABLE_GR_PDU=ON
+ -DENABLE_PERFORMANCE_COUNTERS="$(usex performance-counters)"
+ -DENABLE_TESTING="$(usex test)"
+ -DENABLE_GR_QTGUI="$(usex qt5)"
+ -DENABLE_GR_SOAPY="$(usex soapy)"
+ -DENABLE_GR_TRELLIS="$(usex trellis)"
+ -DENABLE_GR_UHD="$(usex uhd)"
+ -DENABLE_GR_UTILS="$(usex utils)"
+ -DENABLE_GR_VIDEO_SDL="$(usex sdl)"
+ -DENABLE_GR_VOCODER="$(usex vocoder)"
+ -DENABLE_GR_WAVELET="$(usex wavelet)"
+ -DENABLE_GR_ZEROMQ="$(usex zeromq)"
+ -DSYSCONFDIR="${EPREFIX}"/etc
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DGR_PYTHON_DIR="$(python_get_sitedir)"
+ -DGR_PKG_DOC_DIR="${EPREFIX}/usr/share/doc/${PF}"
+ -DMATHJAX2_ROOT="${EPREFIX}/usr/share/mathjax"
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if use examples ; then
+ dodir /usr/share/doc/${PF}/
+ mv "${ED}"/usr/share/${PN}/examples "${ED}"/usr/share/doc/${PF}/ || die
+ docompress -x /usr/share/doc/${PF}/examples
+ else
+ # It seems that the examples are always installed
+ rm -rf "${ED}"/usr/share/${PN}/examples || die
+ fi
+
+ if use doc || use examples; then
+ #this doesn't appear useful
+ rm -rf "${ED}"/usr/share/doc/${PF}/xml || die
+ fi
+
+ # Remove duplicated icons, MIME and desktop files and installation script
+ rm -rf "${ED}"/usr/share/${PN}/grc/freedesktop || die
+ rm -f "${ED}"/usr/libexec/${PN}/grc_setup_freedesktop || die
+
+ # Install icons, menu items and mime-types for GRC
+ #if use grc ; then
+ # local fd_path="${S}/grc/scripts/freedesktop"
+ # insinto /usr/share/mime/packages
+ # doins "${fd_path}/${PN}-grc.xml"
+
+ # domenu "${fd_path}/"*.desktop
+ # doicon "${fd_path}/"*.png
+ #fi
+
+ python_fix_shebang "${ED}"
+ # Remove incorrectly byte-compiled Python files and replace
+ find "${ED}"/usr/lib* -name "*.py[co]" -exec rm {} \; || die
+ python_optimize
+}
+
+src_test() {
+ virtx cmake_src_test
+}
+
+pkg_postinst() {
+ if use grc ; then
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use grc ; then
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ fi
+}
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/gnuradio/files/, net-wireless/gnuradio/
@ 2024-01-25 3:40 Rick Farina
0 siblings, 0 replies; 6+ messages in thread
From: Rick Farina @ 2024-01-25 3:40 UTC (permalink / raw
To: gentoo-commits
commit: 668954e8975de950a0b7efaab0572eadbf1902ae
Author: Rick Farina <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 25 03:39:40 2024 +0000
Commit: Rick Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Thu Jan 25 03:40:33 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=668954e8
net-wireless/gnuradio: add filter bugfix
Found by re-enabling tests, which I'm now sharing with everyone
Signed-off-by: Rick Farina <zerochaos <AT> gentoo.org>
net-wireless/gnuradio/files/PR7093.patch | 76 ++++++++++++++++++++++
...3.10.9.2.ebuild => gnuradio-3.10.9.2-r1.ebuild} | 8 +--
net-wireless/gnuradio/gnuradio-9999.ebuild | 6 +-
3 files changed, 82 insertions(+), 8 deletions(-)
diff --git a/net-wireless/gnuradio/files/PR7093.patch b/net-wireless/gnuradio/files/PR7093.patch
new file mode 100644
index 000000000000..98581054d49d
--- /dev/null
+++ b/net-wireless/gnuradio/files/PR7093.patch
@@ -0,0 +1,76 @@
+From 677d22b5226a3edb274c252cc3aa727a16de3c68 Mon Sep 17 00:00:00 2001
+From: Clayton Smith <argilo@gmail.com>
+Date: Tue, 23 Jan 2024 18:28:46 -0500
+Subject: [PATCH] filter: Fix undefined behaviour in fir_filter_with_buffer
+
+Signed-off-by: Clayton Smith <argilo@gmail.com>
+---
+ gr-filter/lib/fir_filter_with_buffer.cc | 9 ++++++---
+ gr-filter/lib/qa_fir_filter_with_buffer.cc | 6 +++---
+ 2 files changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/gr-filter/lib/fir_filter_with_buffer.cc b/gr-filter/lib/fir_filter_with_buffer.cc
+index 4fc571ec57d..f6cb3b20854 100644
+--- a/gr-filter/lib/fir_filter_with_buffer.cc
++++ b/gr-filter/lib/fir_filter_with_buffer.cc
+@@ -52,7 +52,8 @@ void fir_filter_with_buffer_fff::set_taps(const std::vector<float>& taps)
+ for (int i = 0; i < d_naligned; i++) {
+ d_aligned_taps[i].clear();
+ d_aligned_taps[i].resize(d_ntaps + d_naligned - 1);
+- std::copy(std::begin(d_taps), std::end(d_taps), &d_aligned_taps[i][i]);
++ std::copy(
++ std::begin(d_taps), std::end(d_taps), std::begin(d_aligned_taps[i]) + i);
+ }
+
+ d_idx = 0;
+@@ -157,7 +158,8 @@ void fir_filter_with_buffer_ccc::set_taps(const std::vector<gr_complex>& taps)
+ for (int i = 0; i < d_naligned; i++) {
+ d_aligned_taps[i].clear();
+ d_aligned_taps[i].resize(d_ntaps + d_naligned - 1);
+- std::copy(std::begin(d_taps), std::end(d_taps), &d_aligned_taps[i][i]);
++ std::copy(
++ std::begin(d_taps), std::end(d_taps), std::begin(d_aligned_taps[i]) + i);
+ }
+
+ d_idx = 0;
+@@ -261,7 +263,8 @@ void fir_filter_with_buffer_ccf::set_taps(const std::vector<float>& taps)
+ for (int i = 0; i < d_naligned; i++) {
+ d_aligned_taps[i].clear();
+ d_aligned_taps[i].resize(d_ntaps + d_naligned - 1);
+- std::copy(std::begin(d_taps), std::end(d_taps), &d_aligned_taps[i][i]);
++ std::copy(
++ std::begin(d_taps), std::end(d_taps), std::begin(d_aligned_taps[i]) + i);
+ }
+
+ d_idx = 0;
+diff --git a/gr-filter/lib/qa_fir_filter_with_buffer.cc b/gr-filter/lib/qa_fir_filter_with_buffer.cc
+index 32f5c6780fc..72cdd9fa1c0 100644
+--- a/gr-filter/lib/qa_fir_filter_with_buffer.cc
++++ b/gr-filter/lib/qa_fir_filter_with_buffer.cc
+@@ -107,7 +107,7 @@ void test_decimate(unsigned int decimate)
+ }
+
+ // build filter
+- vector<tap_type> f1_taps(&taps[0], &taps[n]);
++ vector<tap_type> f1_taps(taps.begin(), taps.begin() + n);
+ kernel::fir_filter_with_buffer_fff f1(f1_taps);
+
+ // zero the output, then do the filtering
+@@ -198,7 +198,7 @@ void test_decimate(unsigned int decimate)
+ }
+
+ // build filter
+- vector<tap_type> f1_taps(&taps[0], &taps[n]);
++ vector<tap_type> f1_taps(taps.begin(), taps.begin() + n);
+ kernel::fir_filter_with_buffer_ccc f1(f1_taps);
+
+ // zero the output, then do the filtering
+@@ -287,7 +287,7 @@ void test_decimate(unsigned int decimate)
+ }
+
+ // build filter
+- vector<tap_type> f1_taps(&taps[0], &taps[n]);
++ vector<tap_type> f1_taps(taps.begin(), taps.begin() + n);
+ kernel::fir_filter_with_buffer_ccf f1(f1_taps);
+
+ // zero the output, then do the filtering
diff --git a/net-wireless/gnuradio/gnuradio-3.10.9.2.ebuild b/net-wireless/gnuradio/gnuradio-3.10.9.2-r1.ebuild
similarity index 98%
rename from net-wireless/gnuradio/gnuradio-3.10.9.2.ebuild
rename to net-wireless/gnuradio/gnuradio-3.10.9.2-r1.ebuild
index 68eff59630d3..bbbc55d8c42e 100644
--- a/net-wireless/gnuradio/gnuradio-3.10.9.2.ebuild
+++ b/net-wireless/gnuradio/gnuradio-3.10.9.2-r1.ebuild
@@ -23,9 +23,7 @@ fi
IUSE="+audio +alsa +analog +digital channels ctrlport doc dtv examples fec +filter grc iio jack modtool network oss performance-counters portaudio +qt5 sdl soapy test trellis uhd vocoder +utils wavelet zeromq"
-#RESTRICT="!test? ( test )"
-# https://github.com/gnuradio/gnuradio/issues/7085
-RESTRICT="test"
+RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
audio? ( || ( alsa oss jack portaudio ) )
@@ -131,6 +129,8 @@ DEPEND="${RDEPEND}
zeromq? ( net-libs/cppzmq )
"
+PATCHES=( "${FILESDIR}/PR7093.patch" )
+
src_prepare() {
xdg_environment_reset #534582
@@ -225,7 +225,7 @@ src_install() {
src_test() {
# skip test which needs internet
- virtx cmake_src_test -E metainfo_test
+ virtx cmake_src_test -E metainfo_test --output-on-failure
}
pkg_postinst() {
diff --git a/net-wireless/gnuradio/gnuradio-9999.ebuild b/net-wireless/gnuradio/gnuradio-9999.ebuild
index 68eff59630d3..6270b80fb9f0 100644
--- a/net-wireless/gnuradio/gnuradio-9999.ebuild
+++ b/net-wireless/gnuradio/gnuradio-9999.ebuild
@@ -23,9 +23,7 @@ fi
IUSE="+audio +alsa +analog +digital channels ctrlport doc dtv examples fec +filter grc iio jack modtool network oss performance-counters portaudio +qt5 sdl soapy test trellis uhd vocoder +utils wavelet zeromq"
-#RESTRICT="!test? ( test )"
-# https://github.com/gnuradio/gnuradio/issues/7085
-RESTRICT="test"
+RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
audio? ( || ( alsa oss jack portaudio ) )
@@ -225,7 +223,7 @@ src_install() {
src_test() {
# skip test which needs internet
- virtx cmake_src_test -E metainfo_test
+ virtx cmake_src_test -E metainfo_test --output-on-failure
}
pkg_postinst() {
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/gnuradio/files/, net-wireless/gnuradio/
@ 2025-01-08 9:24 Sam James
0 siblings, 0 replies; 6+ messages in thread
From: Sam James @ 2025-01-08 9:24 UTC (permalink / raw
To: gentoo-commits
commit: f61d916a311ab33f4baac7053d0ad3d28b87d6ee
Author: Z. Liu <zhixu.liu <AT> gmail <DOT> com>
AuthorDate: Mon Jan 6 04:28:29 2025 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jan 8 09:24:27 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f61d916a
net-wireless/gnuradio: fix build w/ libfmt-11.0
patch from upstream
Closes: https://bugs.gentoo.org/947618
Signed-off-by: Z. Liu <zhixu.liu <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/40002
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../files/gnuradio-3.10.9.2-libfmt-11.patch | 50 ++++++++++++++++++++++
net-wireless/gnuradio/gnuradio-3.10.9.2-r6.ebuild | 7 ++-
2 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/net-wireless/gnuradio/files/gnuradio-3.10.9.2-libfmt-11.patch b/net-wireless/gnuradio/files/gnuradio-3.10.9.2-libfmt-11.patch
new file mode 100644
index 000000000000..60304a36ea16
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.10.9.2-libfmt-11.patch
@@ -0,0 +1,50 @@
+From 19b070051c1c2b5fb6f2da8fb6422b27418c3dfa Mon Sep 17 00:00:00 2001
+From: Kefu Chai <tchaikov@gmail.com>
+Date: Mon, 15 Jul 2024 09:27:16 +0800
+Subject: [PATCH] blocks,runtime: io_signature: include spdlog/*/ranges.h for
+ using fmt::join()
+
+fmt::join() was moved into fmt/ranges.h since fmt 11, so let's
+include the corresponding header in spdlog for using it.
+
+Signed-off-by: Kefu Chai <tchaikov@gmail.com>
+---
+ gnuradio-runtime/lib/io_signature.cc | 5 +++++
+ gr-blocks/lib/message_debug_impl.cc | 5 +++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/gnuradio-runtime/lib/io_signature.cc b/gnuradio-runtime/lib/io_signature.cc
+index 812f444f8..76bb2aba6 100644
+--- a/gnuradio-runtime/lib/io_signature.cc
++++ b/gnuradio-runtime/lib/io_signature.cc
+@@ -16,6 +16,11 @@
+ #include <spdlog/tweakme.h>
+
+ #include <spdlog/fmt/fmt.h>
++#if __has_include(<spdlog/fmt/ranges.h>)
++#include <spdlog/fmt/ranges.h>
++#elif __has_include(<spdlog/fmt/bundled/ranges.h>)
++#include <spdlog/fmt/bundled/ranges.h>
++#endif
+ #include <string_view>
+ #include <algorithm>
+ #include <memory>
+diff --git a/gr-blocks/lib/message_debug_impl.cc b/gr-blocks/lib/message_debug_impl.cc
+index 41d312e43..373287b02 100644
+--- a/gr-blocks/lib/message_debug_impl.cc
++++ b/gr-blocks/lib/message_debug_impl.cc
+@@ -19,6 +19,11 @@
+ #include <pmt/pmt.h>
+ #include <spdlog/common.h>
+ #include <spdlog/fmt/fmt.h>
++#if __has_include(<spdlog/fmt/ranges.h>)
++#include <spdlog/fmt/ranges.h>
++#elif __has_include(<spdlog/fmt/bundled/ranges.h>)
++#include <spdlog/fmt/bundled/ranges.h>
++#endif
+ #include <functional>
+ #include <utility>
+ #include <vector>
+--
+2.45.2
+
diff --git a/net-wireless/gnuradio/gnuradio-3.10.9.2-r6.ebuild b/net-wireless/gnuradio/gnuradio-3.10.9.2-r6.ebuild
index f4eaff739bf2..e2b0ef2bca50 100644
--- a/net-wireless/gnuradio/gnuradio-3.10.9.2-r6.ebuild
+++ b/net-wireless/gnuradio/gnuradio-3.10.9.2-r6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -131,7 +131,10 @@ DEPEND="${RDEPEND}
zeromq? ( net-libs/cppzmq )
"
-PATCHES=( "${FILESDIR}/PR7093.patch" )
+PATCHES=(
+ "${FILESDIR}/PR7093.patch"
+ "${FILESDIR}"/${PN}-3.10.9.2-libfmt-11.patch
+)
src_prepare() {
xdg_environment_reset #534582
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-01-08 9:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-22 8:10 [gentoo-commits] repo/gentoo:master commit in: net-wireless/gnuradio/files/, net-wireless/gnuradio/ Thomas Beierlein
-- strict thread matches above, loose matches on Subject: below --
2025-01-08 9:24 Sam James
2024-01-25 3:40 Rick Farina
2022-08-17 12:33 Thomas Beierlein
2020-09-21 18:46 Rick Farina
2018-02-18 3:48 Richard Farina
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox