pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc



Module Name:    pkgsrc
Committed By:   tnn
Date:           Sun Jan 16 18:06:28 UTC 2022

Modified Files:
        pkgsrc/ham: Makefile
        pkgsrc/ham/gnuradio-channels: Makefile PLIST
        pkgsrc/ham/gnuradio-companion: Makefile PLIST
        pkgsrc/ham/gnuradio-core: Makefile Makefile.common PLIST buildlink3.mk
            distinfo version.mk
        pkgsrc/ham/gnuradio-core/patches:
            patch-gnuradio-runtime_lib_constants.cc.in
        pkgsrc/ham/gnuradio-ctrlport: Makefile buildlink3.mk
        pkgsrc/ham/gnuradio-digital: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-doxygen: Makefile PLIST
        pkgsrc/ham/gnuradio-dtv: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-fec: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-network: Makefile PLIST
        pkgsrc/ham/gnuradio-qtgui: Makefile PLIST
        pkgsrc/ham/gnuradio-soapy-sdr: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-trellis: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-uhd: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-utils: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-video-sdl: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-vocoder: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-wavelet: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-zeromq: Makefile PLIST buildlink3.mk
        pkgsrc/ham/gnuradio-zeromq/files: zmq.hpp
        pkgsrc/meta-pkgs/gnuradio: Makefile
Added Files:
        pkgsrc/ham/gnuradio-core/patches: patch-cmake_Modules_GrPybind.cmake
            patch-gnuradio-runtime_CMakeLists.txt
            patch-gnuradio-runtime_lib_CMakeLists.txt
        pkgsrc/ham/gnuradio-pdu: DESCR Makefile PLIST buildlink3.mk

Log Message:
gnuradio: update to 3.10.0.0

- gr-pdu: Protocol Data Units library
- gr-iio: Linux industrial I/O library (but not packaged in pkgsrc)
- Custom Buffers Support
- switch from Log4CPP to spdlog


To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 pkgsrc/ham/Makefile
cvs rdiff -u -r1.33 -r1.34 pkgsrc/ham/gnuradio-channels/Makefile
cvs rdiff -u -r1.7 -r1.8 pkgsrc/ham/gnuradio-channels/PLIST
cvs rdiff -u -r1.52 -r1.53 pkgsrc/ham/gnuradio-companion/Makefile
cvs rdiff -u -r1.12 -r1.13 pkgsrc/ham/gnuradio-companion/PLIST
cvs rdiff -u -r1.89 -r1.90 pkgsrc/ham/gnuradio-core/Makefile
cvs rdiff -u -r1.35 -r1.36 pkgsrc/ham/gnuradio-core/Makefile.common
cvs rdiff -u -r1.34 -r1.35 pkgsrc/ham/gnuradio-core/PLIST
cvs rdiff -u -r1.33 -r1.34 pkgsrc/ham/gnuradio-core/buildlink3.mk
cvs rdiff -u -r1.45 -r1.46 pkgsrc/ham/gnuradio-core/distinfo
cvs rdiff -u -r1.4 -r1.5 pkgsrc/ham/gnuradio-core/version.mk
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/ham/gnuradio-core/patches/patch-cmake_Modules_GrPybind.cmake \
    pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_CMakeLists.txt \
    pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_CMakeLists.txt
cvs rdiff -u -r1.2 -r1.3 \
    pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_constants.cc.in
cvs rdiff -u -r1.34 -r1.35 pkgsrc/ham/gnuradio-ctrlport/Makefile
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-ctrlport/buildlink3.mk
cvs rdiff -u -r1.34 -r1.35 pkgsrc/ham/gnuradio-digital/Makefile
cvs rdiff -u -r1.12 -r1.13 pkgsrc/ham/gnuradio-digital/PLIST
cvs rdiff -u -r1.4 -r1.5 pkgsrc/ham/gnuradio-digital/buildlink3.mk
cvs rdiff -u -r1.50 -r1.51 pkgsrc/ham/gnuradio-doxygen/Makefile
cvs rdiff -u -r1.26 -r1.27 pkgsrc/ham/gnuradio-doxygen/PLIST
cvs rdiff -u -r1.36 -r1.37 pkgsrc/ham/gnuradio-dtv/Makefile
cvs rdiff -u -r1.11 -r1.12 pkgsrc/ham/gnuradio-dtv/PLIST
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-dtv/buildlink3.mk
cvs rdiff -u -r1.35 -r1.36 pkgsrc/ham/gnuradio-fec/Makefile
cvs rdiff -u -r1.12 -r1.13 pkgsrc/ham/gnuradio-fec/PLIST
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-fec/buildlink3.mk
cvs rdiff -u -r1.11 -r1.12 pkgsrc/ham/gnuradio-network/Makefile
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-network/PLIST
cvs rdiff -u -r0 -r1.1 pkgsrc/ham/gnuradio-pdu/DESCR \
    pkgsrc/ham/gnuradio-pdu/Makefile pkgsrc/ham/gnuradio-pdu/PLIST \
    pkgsrc/ham/gnuradio-pdu/buildlink3.mk
cvs rdiff -u -r1.44 -r1.45 pkgsrc/ham/gnuradio-qtgui/Makefile
cvs rdiff -u -r1.13 -r1.14 pkgsrc/ham/gnuradio-qtgui/PLIST
cvs rdiff -u -r1.6 -r1.7 pkgsrc/ham/gnuradio-soapy-sdr/Makefile
cvs rdiff -u -r1.2 -r1.3 pkgsrc/ham/gnuradio-soapy-sdr/PLIST
cvs rdiff -u -r1.1 -r1.2 pkgsrc/ham/gnuradio-soapy-sdr/buildlink3.mk
cvs rdiff -u -r1.52 -r1.53 pkgsrc/ham/gnuradio-trellis/Makefile
cvs rdiff -u -r1.13 -r1.14 pkgsrc/ham/gnuradio-trellis/PLIST
cvs rdiff -u -r1.4 -r1.5 pkgsrc/ham/gnuradio-trellis/buildlink3.mk
cvs rdiff -u -r1.35 -r1.36 pkgsrc/ham/gnuradio-uhd/Makefile
cvs rdiff -u -r1.9 -r1.10 pkgsrc/ham/gnuradio-uhd/PLIST
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-uhd/buildlink3.mk
cvs rdiff -u -r1.36 -r1.37 pkgsrc/ham/gnuradio-utils/Makefile
cvs rdiff -u -r1.5 -r1.6 pkgsrc/ham/gnuradio-utils/PLIST
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-utils/buildlink3.mk
cvs rdiff -u -r1.49 -r1.50 pkgsrc/ham/gnuradio-video-sdl/Makefile
cvs rdiff -u -r1.11 -r1.12 pkgsrc/ham/gnuradio-video-sdl/PLIST
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-video-sdl/buildlink3.mk
cvs rdiff -u -r1.34 -r1.35 pkgsrc/ham/gnuradio-vocoder/Makefile
cvs rdiff -u -r1.9 -r1.10 pkgsrc/ham/gnuradio-vocoder/PLIST
cvs rdiff -u -r1.4 -r1.5 pkgsrc/ham/gnuradio-vocoder/buildlink3.mk
cvs rdiff -u -r1.33 -r1.34 pkgsrc/ham/gnuradio-wavelet/Makefile
cvs rdiff -u -r1.7 -r1.8 pkgsrc/ham/gnuradio-wavelet/PLIST
cvs rdiff -u -r1.4 -r1.5 pkgsrc/ham/gnuradio-wavelet/buildlink3.mk
cvs rdiff -u -r1.36 -r1.37 pkgsrc/ham/gnuradio-zeromq/Makefile
cvs rdiff -u -r1.8 -r1.9 pkgsrc/ham/gnuradio-zeromq/PLIST
cvs rdiff -u -r1.3 -r1.4 pkgsrc/ham/gnuradio-zeromq/buildlink3.mk
cvs rdiff -u -r1.1 -r1.2 pkgsrc/ham/gnuradio-zeromq/files/zmq.hpp
cvs rdiff -u -r1.24 -r1.25 pkgsrc/meta-pkgs/gnuradio/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/ham/Makefile
diff -u pkgsrc/ham/Makefile:1.50 pkgsrc/ham/Makefile:1.51
--- pkgsrc/ham/Makefile:1.50    Sun Jun 27 08:12:28 2021
+++ pkgsrc/ham/Makefile Sun Jan 16 18:06:25 2022
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.50 2021/06/27 08:12:28 tnn Exp $
+# $NetBSD: Makefile,v 1.51 2022/01/16 18:06:25 tnn Exp $
 #
 
 COMMENT=       Wireless communication tools and applications
@@ -22,6 +22,7 @@ SUBDIR+=      gnuradio-doxygen
 SUBDIR+=       gnuradio-dtv
 SUBDIR+=       gnuradio-fec
 SUBDIR+=       gnuradio-network
+SUBDIR+=       gnuradio-pdu
 SUBDIR+=       gnuradio-qtgui
 SUBDIR+=       gnuradio-soapy-sdr
 SUBDIR+=       gnuradio-trellis

Index: pkgsrc/ham/gnuradio-channels/Makefile
diff -u pkgsrc/ham/gnuradio-channels/Makefile:1.33 pkgsrc/ham/gnuradio-channels/Makefile:1.34
--- pkgsrc/ham/gnuradio-channels/Makefile:1.33  Mon Jan 10 01:46:35 2022
+++ pkgsrc/ham/gnuradio-channels/Makefile       Sun Jan 16 18:06:25 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.33 2022/01/10 01:46:35 ryoon Exp $
+# $NetBSD: Makefile,v 1.34 2022/01/16 18:06:25 tnn Exp $
 
 PKGNAME=       gnuradio-channels-${VERSION}
-PKGREVISION=   1
 COMMENT=       Signal processing blocks to simulate channel models of GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-channels/PLIST
diff -u pkgsrc/ham/gnuradio-channels/PLIST:1.7 pkgsrc/ham/gnuradio-channels/PLIST:1.8
--- pkgsrc/ham/gnuradio-channels/PLIST:1.7      Sat Dec 11 14:57:49 2021
+++ pkgsrc/ham/gnuradio-channels/PLIST  Sun Jan 16 18:06:25 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.7 2021/12/11 14:57:49 tnn Exp $
+@comment $NetBSD: PLIST,v 1.8 2022/01/16 18:06:25 tnn Exp $
 include/gnuradio/channels/api.h
 include/gnuradio/channels/channel_model.h
 include/gnuradio/channels/channel_model2.h
@@ -9,7 +9,7 @@ lib/cmake/gnuradio/gnuradio-channelsConf
 lib/cmake/gnuradio/gnuradio-channelsTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-channelsTargets.cmake
 lib/libgnuradio-channels.so
-lib/libgnuradio-channels.so.3.9.4
+lib/libgnuradio-channels.so.3.10.0
 lib/libgnuradio-channels.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-channels.pc
 ${PYSITELIB}/gnuradio/channels/__init__.py

Index: pkgsrc/ham/gnuradio-companion/Makefile
diff -u pkgsrc/ham/gnuradio-companion/Makefile:1.52 pkgsrc/ham/gnuradio-companion/Makefile:1.53
--- pkgsrc/ham/gnuradio-companion/Makefile:1.52 Mon Jan 10 01:46:35 2022
+++ pkgsrc/ham/gnuradio-companion/Makefile      Sun Jan 16 18:06:25 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.52 2022/01/10 01:46:35 ryoon Exp $
+# $NetBSD: Makefile,v 1.53 2022/01/16 18:06:25 tnn Exp $
 
 PKGNAME=       gnuradio-companion-${VERSION}
-PKGREVISION=   1
 COMMENT=       User interface entry of GNU Radio
 
 #CONF_FILES+=  ${EGDIR}/grc.conf       ${PKG_SYSCONFDIR}/grc.conf

Index: pkgsrc/ham/gnuradio-companion/PLIST
diff -u pkgsrc/ham/gnuradio-companion/PLIST:1.12 pkgsrc/ham/gnuradio-companion/PLIST:1.13
--- pkgsrc/ham/gnuradio-companion/PLIST:1.12    Sat Dec 11 14:57:49 2021
+++ pkgsrc/ham/gnuradio-companion/PLIST Sun Jan 16 18:06:25 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.12 2021/12/11 14:57:49 tnn Exp $
+@comment $NetBSD: PLIST,v 1.13 2022/01/16 18:06:25 tnn Exp $
 bin/gnuradio-companion
 bin/grcc
 ${PYSITELIB}/gnuradio/grc/__init__.py
@@ -418,10 +418,6 @@ share/gnuradio/grc/blocks/blocks_or_xx.b
 share/gnuradio/grc/blocks/blocks_pack_k_bits_bb.block.yml
 share/gnuradio/grc/blocks/blocks_packed_to_unpacked_xx.block.yml
 share/gnuradio/grc/blocks/blocks_patterned_interleaver.block.yml
-share/gnuradio/grc/blocks/blocks_pdu_filter.block.yml
-share/gnuradio/grc/blocks/blocks_pdu_remove.block.yml
-share/gnuradio/grc/blocks/blocks_pdu_set.block.yml
-share/gnuradio/grc/blocks/blocks_pdu_to_tagged_stream.block.yml
 share/gnuradio/grc/blocks/blocks_peak_detector2_fb.block.yml
 share/gnuradio/grc/blocks/blocks_peak_detector_xb.block.yml
 share/gnuradio/grc/blocks/blocks_phase_shift.block.yml
@@ -429,7 +425,6 @@ share/gnuradio/grc/blocks/blocks_plateau
 share/gnuradio/grc/blocks/blocks_probe_rate.block.yml
 share/gnuradio/grc/blocks/blocks_probe_signal_vx.block.yml
 share/gnuradio/grc/blocks/blocks_probe_signal_x.block.yml
-share/gnuradio/grc/blocks/blocks_random_pdu.block.yml
 share/gnuradio/grc/blocks/blocks_regenerate_bb.block.yml
 share/gnuradio/grc/blocks/blocks_repack_bits_bb.block.yml
 share/gnuradio/grc/blocks/blocks_repeat.block.yml
@@ -440,7 +435,6 @@ share/gnuradio/grc/blocks/blocks_selecto
 share/gnuradio/grc/blocks/blocks_short_to_char.block.yml
 share/gnuradio/grc/blocks/blocks_short_to_float.block.yml
 share/gnuradio/grc/blocks/blocks_skiphead.block.yml
-share/gnuradio/grc/blocks/blocks_socket_pdu.block.yml
 share/gnuradio/grc/blocks/blocks_stream_demux.block.yml
 share/gnuradio/grc/blocks/blocks_stream_mux.block.yml
 share/gnuradio/grc/blocks/blocks_stream_to_streams.block.yml
@@ -459,17 +453,12 @@ share/gnuradio/grc/blocks/blocks_tagged_
 share/gnuradio/grc/blocks/blocks_tagged_stream_align.block.yml
 share/gnuradio/grc/blocks/blocks_tagged_stream_multiply_length.block.yml
 share/gnuradio/grc/blocks/blocks_tagged_stream_mux.block.yml
-share/gnuradio/grc/blocks/blocks_tagged_stream_to_pdu.block.yml
 share/gnuradio/grc/blocks/blocks_tags_strobe.block.yml
-share/gnuradio/grc/blocks/blocks_tcp_server_sink.block.yml
 share/gnuradio/grc/blocks/blocks_test_tag_variable_rate_ff.block.yml
 share/gnuradio/grc/blocks/blocks_threshold_ff.block.yml
 share/gnuradio/grc/blocks/blocks_throttle.block.yml
 share/gnuradio/grc/blocks/blocks_transcendental.block.yml
-share/gnuradio/grc/blocks/blocks_tuntap_pdu.block.yml
 share/gnuradio/grc/blocks/blocks_uchar_to_float.block.yml
-share/gnuradio/grc/blocks/blocks_udp_sink.block.yml
-share/gnuradio/grc/blocks/blocks_udp_source.block.yml
 share/gnuradio/grc/blocks/blocks_unpack_k_bits_bb.block.yml
 share/gnuradio/grc/blocks/blocks_unpacked_to_packed_xx.block.yml
 share/gnuradio/grc/blocks/blocks_var_to_msg.block.yml
@@ -506,7 +495,6 @@ share/gnuradio/grc/blocks/filter_iir_fil
 share/gnuradio/grc/blocks/filter_interp_fir_filter_xxx.block.yml
 share/gnuradio/grc/blocks/filter_ival_decimator.block.yml
 share/gnuradio/grc/blocks/filter_low_pass_filter.block.yml
-share/gnuradio/grc/blocks/filter_mmse_interpolator_xx.block.yml
 share/gnuradio/grc/blocks/filter_mmse_resampler_xx.block.yml
 share/gnuradio/grc/blocks/filter_pfb_arb_resampler.block.yml
 share/gnuradio/grc/blocks/filter_pfb_channelizer.block.yml

Index: pkgsrc/ham/gnuradio-core/Makefile
diff -u pkgsrc/ham/gnuradio-core/Makefile:1.89 pkgsrc/ham/gnuradio-core/Makefile:1.90
--- pkgsrc/ham/gnuradio-core/Makefile:1.89      Mon Jan 10 01:46:35 2022
+++ pkgsrc/ham/gnuradio-core/Makefile   Sun Jan 16 18:06:25 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.89 2022/01/10 01:46:35 ryoon Exp $
+# $NetBSD: Makefile,v 1.90 2022/01/16 18:06:25 tnn Exp $
 
 PKGNAME=       gnuradio-core-${VERSION}
-PKGREVISION=   1
 COMMENT=       Core part of GNU Radio, all others need this
 
 PLIST_MINUS=   # empty

Index: pkgsrc/ham/gnuradio-core/Makefile.common
diff -u pkgsrc/ham/gnuradio-core/Makefile.common:1.35 pkgsrc/ham/gnuradio-core/Makefile.common:1.36
--- pkgsrc/ham/gnuradio-core/Makefile.common:1.35       Sun Jun 27 08:08:59 2021
+++ pkgsrc/ham/gnuradio-core/Makefile.common    Sun Jan 16 18:06:25 2022
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.35 2021/06/27 08:08:59 tnn Exp $
+# $NetBSD: Makefile.common,v 1.36 2022/01/16 18:06:25 tnn Exp $
 # This Makefile fragment is included in the package Makefiles for
 # GNU Radio distributed packages (they all share common configure and build
 # settings).
@@ -81,8 +81,6 @@ CMAKE_ARGS+=  -DENABLE_GR_BLOCKS=ON
 CMAKE_ARGS+=   -DENABLE_GR_FFT=ON
 CMAKE_ARGS+=   -DENABLE_GR_FILTER=ON
 CMAKE_ARGS+=   -DENABLE_PYTHON=ON
-CMAKE_ARGS+=   -DENABLE_VOLK=ON -DENABLE_INTERNAL_VOLK=OFF
-CMAKE_ARGS+=   -DCMAKE_HAVE_PTHREADS_CREATE=OFF
 
 CMAKE_ARGS+=   -DLIB_SUFFIX=""
 
@@ -93,7 +91,6 @@ CMAKE_ARGS+=  -DCMAKE_INCLUDE_PATH=${PREF
 CMAKE_ARGS+=   -DCMAKE_LIBRARY_PATH=${PREFIX}/lib/portaudio2
 CMAKE_ARGS+=   -DCMAKE_INSTALL_RPATH=${PREFIX}/lib:${PREFIX}/lib/portaudio2
 CMAKE_ARGS+=   -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE
-CMAKE_ARGS+=   -DLIBUSB_INCLUDE_DIR=${PREFIX}/include/libusb-1.0
 CMAKE_ARGS+=   -Dpybind11_DIR=${PREFIX}/${PYSITELIB}/pybind11/share/cmake/pybind11
 
 CMAKE_ARGS+=   -DGR_LIBRARY_DIR=${PREFIX}/lib
@@ -140,15 +137,17 @@ do-install:
 .include       "../../devel/boost-libs/buildlink3.mk"
 .include       "../../devel/cppunit/buildlink3.mk"
 .include       "../../devel/gmp/buildlink3.mk"
+.include       "../../devel/spdlog/buildlink3.mk"
 BUILDLINK_API_DEPENDS.py-pybind11+=    ${PYPKGPREFIX}-pybind11>=2.6.0
 .include       "../../devel/py-pybind11/buildlink3.mk"
 .include       "../../graphics/cairo/buildlink3.mk"
 .include       "../../graphics/cairo-gobject/buildlink3.mk"
+# FIXME should be optional
+.include       "../../lang/libunwind/buildlink3.mk"
 .include       "../../lang/python/application.mk"
 .include       "../../math/py-numpy/buildlink3.mk"
 .include       "../../math/fftw/buildlink3.mk"
 .include       "../../math/gsl/buildlink3.mk"
 .include       "../../math/volk/buildlink3.mk"
-.include       "../../textproc/log4cpp/buildlink3.mk"
 .include       "../../textproc/icu/buildlink3.mk"
 .include       "../../x11/gtk3/buildlink3.mk"

Index: pkgsrc/ham/gnuradio-core/PLIST
diff -u pkgsrc/ham/gnuradio-core/PLIST:1.34 pkgsrc/ham/gnuradio-core/PLIST:1.35
--- pkgsrc/ham/gnuradio-core/PLIST:1.34 Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-core/PLIST      Sun Jan 16 18:06:25 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.34 2021/12/11 14:57:50 tnn Exp $
+@comment $NetBSD: PLIST,v 1.35 2022/01/16 18:06:25 tnn Exp $
 bin/gnuradio-config-info
 bin/gr_filter_design
 include/gnuradio/analog/agc.h
@@ -134,11 +134,6 @@ include/gnuradio/blocks/pack_k_bits.h
 include/gnuradio/blocks/pack_k_bits_bb.h
 include/gnuradio/blocks/packed_to_unpacked.h
 include/gnuradio/blocks/patterned_interleaver.h
-include/gnuradio/blocks/pdu.h
-include/gnuradio/blocks/pdu_filter.h
-include/gnuradio/blocks/pdu_remove.h
-include/gnuradio/blocks/pdu_set.h
-include/gnuradio/blocks/pdu_to_tagged_stream.h
 include/gnuradio/blocks/peak_detector.h
 include/gnuradio/blocks/peak_detector2_fb.h
 include/gnuradio/blocks/phase_shift.h
@@ -146,7 +141,6 @@ include/gnuradio/blocks/plateau_detector
 include/gnuradio/blocks/probe_rate.h
 include/gnuradio/blocks/probe_signal.h
 include/gnuradio/blocks/probe_signal_v.h
-include/gnuradio/blocks/random_pdu.h
 include/gnuradio/blocks/regenerate_bb.h
 include/gnuradio/blocks/repack_bits_bb.h
 include/gnuradio/blocks/repeat.h
@@ -159,7 +153,6 @@ include/gnuradio/blocks/selector.h
 include/gnuradio/blocks/short_to_char.h
 include/gnuradio/blocks/short_to_float.h
 include/gnuradio/blocks/skiphead.h
-include/gnuradio/blocks/socket_pdu.h
 include/gnuradio/blocks/stream_demux.h
 include/gnuradio/blocks/stream_mux.h
 include/gnuradio/blocks/stream_to_streams.h
@@ -176,18 +169,13 @@ include/gnuradio/blocks/tagged_file_sink
 include/gnuradio/blocks/tagged_stream_align.h
 include/gnuradio/blocks/tagged_stream_multiply_length.h
 include/gnuradio/blocks/tagged_stream_mux.h
-include/gnuradio/blocks/tagged_stream_to_pdu.h
 include/gnuradio/blocks/tags_strobe.h
-include/gnuradio/blocks/tcp_server_sink.h
 include/gnuradio/blocks/test_tag_variable_rate_ff.h
 include/gnuradio/blocks/threshold_ff.h
 include/gnuradio/blocks/throttle.h
 include/gnuradio/blocks/transcendental.h
 include/gnuradio/blocks/tsb_vector_sink.h
-include/gnuradio/blocks/tuntap_pdu.h
 include/gnuradio/blocks/uchar_to_float.h
-include/gnuradio/blocks/udp_sink.h
-include/gnuradio/blocks/udp_source.h
 include/gnuradio/blocks/unpack_k_bits.h
 include/gnuradio/blocks/unpack_k_bits_bb.h
 include/gnuradio/blocks/unpacked_to_packed.h
@@ -204,8 +192,14 @@ include/gnuradio/blocks/wavfile_sink.h
 include/gnuradio/blocks/wavfile_source.h
 include/gnuradio/blocks/xor_blk.h
 include/gnuradio/buffer.h
+include/gnuradio/buffer_double_mapped.h
+include/gnuradio/buffer_reader.h
+include/gnuradio/buffer_reader_sm.h
+include/gnuradio/buffer_single_mapped.h
+include/gnuradio/buffer_type.h
 include/gnuradio/config.h
 include/gnuradio/constants.h
+include/gnuradio/custom_lock.h
 include/gnuradio/endianness.h
 include/gnuradio/expj.h
 include/gnuradio/fft/api.h
@@ -244,8 +238,6 @@ include/gnuradio/filter/mmse_fir_interpo
 include/gnuradio/filter/mmse_fir_interpolator_ff.h
 include/gnuradio/filter/mmse_interp_differentiator_cc.h
 include/gnuradio/filter/mmse_interp_differentiator_ff.h
-include/gnuradio/filter/mmse_interpolator_cc.h
-include/gnuradio/filter/mmse_interpolator_ff.h
 include/gnuradio/filter/mmse_resampler_cc.h
 include/gnuradio/filter/mmse_resampler_ff.h
 include/gnuradio/filter/pfb_arb_resampler.h
@@ -269,6 +261,7 @@ include/gnuradio/fxpt_vco.h
 include/gnuradio/gr_complex.h
 include/gnuradio/hier_block2.h
 include/gnuradio/high_res_timer.h
+include/gnuradio/host_buffer.h
 include/gnuradio/integer_math.h
 include/gnuradio/io_signature.h
 include/gnuradio/logger.h
@@ -279,11 +272,11 @@ include/gnuradio/messages/msg_accepter_m
 include/gnuradio/messages/msg_passing.h
 include/gnuradio/messages/msg_producer.h
 include/gnuradio/messages/msg_queue.h
-include/gnuradio/misc.h
 include/gnuradio/msg_accepter.h
 include/gnuradio/msg_handler.h
 include/gnuradio/msg_queue.h
 include/gnuradio/nco.h
+include/gnuradio/pdu.h
 include/gnuradio/prefs.h
 include/gnuradio/pycallback_object.h
 include/gnuradio/random.h
@@ -304,7 +297,6 @@ include/gnuradio/sync_block.h
 include/gnuradio/sync_decimator.h
 include/gnuradio/sync_interpolator.h
 include/gnuradio/sys_paths.h
-include/gnuradio/tag_checker.h
 include/gnuradio/tagged_stream_block.h
 include/gnuradio/tags.h
 include/gnuradio/thread/thread.h
@@ -312,7 +304,9 @@ include/gnuradio/thread/thread_body_wrap
 include/gnuradio/thread/thread_group.h
 include/gnuradio/top_block.h
 include/gnuradio/tpb_detail.h
+include/gnuradio/transfer_type.h
 include/gnuradio/types.h
+include/gnuradio/xoroshiro128p.h
 include/pmt/api.h
 include/pmt/pmt.h
 include/pmt/pmt_pool.h
@@ -328,7 +322,6 @@ lib/cmake/gnuradio/FindGMP.cmake
 lib/cmake/gnuradio/FindGSM.cmake
 lib/cmake/gnuradio/FindGit.cmake
 lib/cmake/gnuradio/FindJACK.cmake
-lib/cmake/gnuradio/FindLOG4CPP.cmake
 lib/cmake/gnuradio/FindMPIR.cmake
 lib/cmake/gnuradio/FindMPLIB.cmake
 lib/cmake/gnuradio/FindMathJax2.cmake
@@ -339,12 +332,16 @@ lib/cmake/gnuradio/FindSNDFILE.cmake
 lib/cmake/gnuradio/FindTHRIFT.cmake
 lib/cmake/gnuradio/FindUHD.cmake
 lib/cmake/gnuradio/FindZeroMQ.cmake
+lib/cmake/gnuradio/Findlibad9361.cmake
+lib/cmake/gnuradio/Findlibiio.cmake
 lib/cmake/gnuradio/Findlibunwind.cmake
 lib/cmake/gnuradio/GnuradioConfig.cmake
 lib/cmake/gnuradio/GnuradioConfigVersion.cmake
 lib/cmake/gnuradio/GrBoost.cmake
 lib/cmake/gnuradio/GrBuildTypes.cmake
+lib/cmake/gnuradio/GrCompilerSettings.cmake
 lib/cmake/gnuradio/GrComponent.cmake
+lib/cmake/gnuradio/GrMinReq.cmake
 lib/cmake/gnuradio/GrMiscUtils.cmake
 lib/cmake/gnuradio/GrPlatform.cmake
 lib/cmake/gnuradio/GrPybind.cmake
@@ -374,25 +371,25 @@ lib/cmake/gnuradio/gnuradio-runtimeConfi
 lib/cmake/gnuradio/gnuradio-runtimeTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
 lib/libgnuradio-analog.so
-lib/libgnuradio-analog.so.3.9.4
+lib/libgnuradio-analog.so.3.10.0
 lib/libgnuradio-analog.so.${PKGVERSION}
 lib/libgnuradio-audio.so
-lib/libgnuradio-audio.so.3.9.4
+lib/libgnuradio-audio.so.3.10.0
 lib/libgnuradio-audio.so.${PKGVERSION}
 lib/libgnuradio-blocks.so
-lib/libgnuradio-blocks.so.3.9.4
+lib/libgnuradio-blocks.so.3.10.0
 lib/libgnuradio-blocks.so.${PKGVERSION}
 lib/libgnuradio-fft.so
-lib/libgnuradio-fft.so.3.9.4
+lib/libgnuradio-fft.so.3.10.0
 lib/libgnuradio-fft.so.${PKGVERSION}
 lib/libgnuradio-filter.so
-lib/libgnuradio-filter.so.3.9.4
+lib/libgnuradio-filter.so.3.10.0
 lib/libgnuradio-filter.so.${PKGVERSION}
 lib/libgnuradio-pmt.so
-lib/libgnuradio-pmt.so.3.9.4
+lib/libgnuradio-pmt.so.3.10.0
 lib/libgnuradio-pmt.so.${PKGVERSION}
 lib/libgnuradio-runtime.so
-lib/libgnuradio-runtime.so.3.9.4
+lib/libgnuradio-runtime.so.3.10.0
 lib/libgnuradio-runtime.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-analog.pc
 lib/pkgconfig/gnuradio-audio.pc
@@ -457,6 +454,9 @@ ${PYSITELIB}/gnuradio/blocks/msg_pair_to
 ${PYSITELIB}/gnuradio/blocks/parse_file_metadata.py
 ${PYSITELIB}/gnuradio/blocks/parse_file_metadata.pyc
 ${PYSITELIB}/gnuradio/blocks/parse_file_metadata.pyo
+${PYSITELIB}/gnuradio/blocks/pdu_compatibility.py
+${PYSITELIB}/gnuradio/blocks/pdu_compatibility.pyc
+${PYSITELIB}/gnuradio/blocks/pdu_compatibility.pyo
 ${PYSITELIB}/gnuradio/blocks/stream_to_vector_decimator.py
 ${PYSITELIB}/gnuradio/blocks/stream_to_vector_decimator.pyc
 ${PYSITELIB}/gnuradio/blocks/stream_to_vector_decimator.pyo
@@ -657,8 +657,3 @@ share/gnuradio/examples/tags/tagged_file
 share/gnuradio/examples/tags/test_file_tags.py
 share/gnuradio/examples/tags/test_tag_prop.grc
 share/gnuradio/examples/tags/uhd_burst_detector.py
-share/gnuradio/examples/volk_benchmark/README
-share/gnuradio/examples/volk_benchmark/volk_math.py
-share/gnuradio/examples/volk_benchmark/volk_plot.py
-share/gnuradio/examples/volk_benchmark/volk_test_funcs.py
-share/gnuradio/examples/volk_benchmark/volk_types.py

Index: pkgsrc/ham/gnuradio-core/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-core/buildlink3.mk:1.33 pkgsrc/ham/gnuradio-core/buildlink3.mk:1.34
--- pkgsrc/ham/gnuradio-core/buildlink3.mk:1.33 Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-core/buildlink3.mk      Sun Jan 16 18:06:25 2022
@@ -1,16 +1,16 @@
-# $NetBSD: buildlink3.mk,v 1.33 2021/12/11 14:57:50 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.34 2022/01/16 18:06:25 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-core
 
 .if !defined(GNURADIO_CORE_BUILDLINK3_MK)
 GNURADIO_CORE_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-core+=  gnuradio-core>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-core+=  gnuradio-core>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-core+=  gnuradio-core>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-core?=    ../../ham/gnuradio-core
 
 .include "../../devel/gmp/buildlink3.mk"
-.include "../../textproc/log4cpp/buildlink3.mk"
+.include "../../devel/spdlog/buildlink3.mk"
+.include "../../lang/libunwind/buildlink3.mk"
 .include "../../math/volk/buildlink3.mk"
 .endif # GNURADIO_CORE_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-core/distinfo
diff -u pkgsrc/ham/gnuradio-core/distinfo:1.45 pkgsrc/ham/gnuradio-core/distinfo:1.46
--- pkgsrc/ham/gnuradio-core/distinfo:1.45      Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-core/distinfo   Sun Jan 16 18:06:25 2022
@@ -1,8 +1,11 @@
-$NetBSD: distinfo,v 1.45 2021/12/11 14:57:50 tnn Exp $
+$NetBSD: distinfo,v 1.46 2022/01/16 18:06:25 tnn Exp $
 
-BLAKE2s (gnuradio-3.9.4.0.tar.gz) = 33705adfc5e619f88647e17c1cd05ea8c3bebeac88c4a528f5d01940fe3f71f6
-SHA512 (gnuradio-3.9.4.0.tar.gz) = 61c8a943f3cc0b33e4d4994b9e0bf5f79458bb21a2648fe6094dfb9b50edea7452f1bd35e6b1e566e331cf7fb4ea2a342d59bbd8798d5710d80eb037f427a183
-Size (gnuradio-3.9.4.0.tar.gz) = 4243680 bytes
-SHA1 (patch-gnuradio-runtime_lib_constants.cc.in) = 1c82722bc97a1f6b8d58a80d45ce096fb4267870
+BLAKE2s (gnuradio-3.10.0.0.tar.gz) = f6104b70a50ee7ed85e344b7e3f2311994ef077bc12367a2e5ad1eb00522a53d
+SHA512 (gnuradio-3.10.0.0.tar.gz) = d0cded792c85148385f3c2d3db5b25d1329b345ee2a0afee28ab2c7aca9fd381ef9c4ed115e2e38bf6fab602c04d6cc2376ece0983d61fe3b8b354efe8a92086
+Size (gnuradio-3.10.0.0.tar.gz) = 4313414 bytes
+SHA1 (patch-cmake_Modules_GrPybind.cmake) = e2b42c840ca985dc3b1c0cba3029002a088c8407
+SHA1 (patch-gnuradio-runtime_CMakeLists.txt) = a5b2b60c7fcc46b5784027e08e137480c0cf3307
+SHA1 (patch-gnuradio-runtime_lib_CMakeLists.txt) = 310d0432de07cf5c03fbd9fd34dcb42733cf6367
+SHA1 (patch-gnuradio-runtime_lib_constants.cc.in) = fef80a546c713c565c3851ee7289b4fa3a49e45b
 SHA1 (patch-gr-audio_lib_CMakeLists.txt) = 9adacb93a20b2be596a23985306cbfd5f93c80a8
 SHA1 (patch-gr-audio_lib_alsa_alsa__impl_h) = cfa9b629e5cf21198cfd53cf27a908b5874866f4

Index: pkgsrc/ham/gnuradio-core/version.mk
diff -u pkgsrc/ham/gnuradio-core/version.mk:1.4 pkgsrc/ham/gnuradio-core/version.mk:1.5
--- pkgsrc/ham/gnuradio-core/version.mk:1.4     Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-core/version.mk Sun Jan 16 18:06:25 2022
@@ -1,3 +1,3 @@
-# $NetBSD: version.mk,v 1.4 2021/12/11 14:57:50 tnn Exp $
+# $NetBSD: version.mk,v 1.5 2022/01/16 18:06:25 tnn Exp $
 
-VERSION=       3.9.4.0
+VERSION=       3.10.0.0

Index: pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_constants.cc.in
diff -u pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_constants.cc.in:1.2 pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_constants.cc.in:1.3
--- pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_constants.cc.in:1.2     Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_constants.cc.in Sun Jan 16 18:06:25 2022
@@ -1,14 +1,14 @@
-$NetBSD: patch-gnuradio-runtime_lib_constants.cc.in,v 1.2 2021/12/11 14:57:50 tnn Exp $
+$NetBSD: patch-gnuradio-runtime_lib_constants.cc.in,v 1.3 2022/01/16 18:06:25 tnn Exp $
 
 Override broken PREFIX detection.
 
---- gnuradio-runtime/lib/constants.cc.in.orig  2021-10-31 14:28:27.000000000 +0000
+--- gnuradio-runtime/lib/constants.cc.in.orig  2022-01-14 15:27:04.000000000 +0000
 +++ gnuradio-runtime/lib/constants.cc.in
-@@ -28,6 +28,7 @@ const std::string prefix()
+@@ -27,6 +27,7 @@ const std::string prefix()
      if (prefix != NULL)
          return prefix;
  
 +    return "@PREFIX@";
      path prefix_rel_lib = "@prefix_relative_to_lib@";
-     path gr_runtime_lib_path = boost::dll::this_line_location();
-     // Ensure that the lib path is absolute (see next comment)
+     path gr_runtime_lib_path = boost::dll::this_line_location().string();
+     // Canonize before decomposing path so result is reliable and without symlinks

Index: pkgsrc/ham/gnuradio-ctrlport/Makefile
diff -u pkgsrc/ham/gnuradio-ctrlport/Makefile:1.34 pkgsrc/ham/gnuradio-ctrlport/Makefile:1.35
--- pkgsrc/ham/gnuradio-ctrlport/Makefile:1.34  Mon Jan 10 01:46:35 2022
+++ pkgsrc/ham/gnuradio-ctrlport/Makefile       Sun Jan 16 18:06:25 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.34 2022/01/10 01:46:35 ryoon Exp $
+# $NetBSD: Makefile,v 1.35 2022/01/16 18:06:25 tnn Exp $
 
 PKGNAME=       gnuradio-ctrlport-${VERSION}
-PKGREVISION=   1
 COMMENT=       New set of hooks into GNU Radio to allow a remote client to attach
 .include       "../../ham/gnuradio-core/Makefile.common"
 .include       "../../ham/gnuradio-core/Nocore.mk"

Index: pkgsrc/ham/gnuradio-ctrlport/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-ctrlport/buildlink3.mk:1.3 pkgsrc/ham/gnuradio-ctrlport/buildlink3.mk:1.4
--- pkgsrc/ham/gnuradio-ctrlport/buildlink3.mk:1.3      Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-ctrlport/buildlink3.mk  Sun Jan 16 18:06:25 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.3 2021/12/11 14:57:50 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/01/16 18:06:25 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-ctrlport
 
 .if !defined(GNURADIO_CTRLPORT_BUILDLINK3_MK)
 GNURADIO_CTRLPORT_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-ctrlport+=      gnuradio-ctrlport>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-ctrlport+=      gnuradio-ctrlport>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-ctrlport+=      gnuradio-ctrlport>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-ctrlport?=                ../../ham/gnuradio-ctrlport
 .endif # GNURADIO_CTRLPORT_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-digital/Makefile
diff -u pkgsrc/ham/gnuradio-digital/Makefile:1.34 pkgsrc/ham/gnuradio-digital/Makefile:1.35
--- pkgsrc/ham/gnuradio-digital/Makefile:1.34   Mon Jan 10 01:46:35 2022
+++ pkgsrc/ham/gnuradio-digital/Makefile        Sun Jan 16 18:06:26 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.34 2022/01/10 01:46:35 ryoon Exp $
+# $NetBSD: Makefile,v 1.35 2022/01/16 18:06:26 tnn Exp $
 
 PKGNAME=       gnuradio-digital-${VERSION}
-PKGREVISION=   1
 COMMENT=       Digital related algorithms for GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-digital/PLIST
diff -u pkgsrc/ham/gnuradio-digital/PLIST:1.12 pkgsrc/ham/gnuradio-digital/PLIST:1.13
--- pkgsrc/ham/gnuradio-digital/PLIST:1.12      Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-digital/PLIST   Sun Jan 16 18:06:26 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.12 2021/12/11 14:57:50 tnn Exp $
+@comment $NetBSD: PLIST,v 1.13 2022/01/16 18:06:26 tnn Exp $
 include/gnuradio/digital/adaptive_algorithm.h
 include/gnuradio/digital/adaptive_algorithm_cma.h
 include/gnuradio/digital/adaptive_algorithm_lms.h
@@ -10,7 +10,6 @@ include/gnuradio/digital/burst_shaper.h
 include/gnuradio/digital/chunks_to_symbols.h
 include/gnuradio/digital/clock_recovery_mm_cc.h
 include/gnuradio/digital/clock_recovery_mm_ff.h
-include/gnuradio/digital/cma_equalizer_cc.h
 include/gnuradio/digital/constellation.h
 include/gnuradio/digital/constellation_decoder_cb.h
 include/gnuradio/digital/constellation_encoder_bc.h
@@ -25,7 +24,6 @@ include/gnuradio/digital/correlate_acces
 include/gnuradio/digital/costas_loop_cc.h
 include/gnuradio/digital/cpmmod_bc.h
 include/gnuradio/digital/crc16_async_bb.h
-include/gnuradio/digital/crc32.h
 include/gnuradio/digital/crc32_async_bb.h
 include/gnuradio/digital/crc32_bb.h
 include/gnuradio/digital/decision_feedback_equalizer.h
@@ -49,10 +47,8 @@ include/gnuradio/digital/header_format_d
 include/gnuradio/digital/header_format_ofdm.h
 include/gnuradio/digital/header_payload_demux.h
 include/gnuradio/digital/interpolating_resampler_type.h
-include/gnuradio/digital/kurtotic_equalizer_cc.h
 include/gnuradio/digital/lfsr.h
 include/gnuradio/digital/linear_equalizer.h
-include/gnuradio/digital/lms_dd_equalizer_cc.h
 include/gnuradio/digital/map_bb.h
 include/gnuradio/digital/metric_type.h
 include/gnuradio/digital/modulate_vector.h
@@ -82,9 +78,6 @@ include/gnuradio/digital/protocol_format
 include/gnuradio/digital/protocol_formatter_bb.h
 include/gnuradio/digital/protocol_parser_b.h
 include/gnuradio/digital/scrambler_bb.h
-include/gnuradio/digital/simple_correlator.h
-include/gnuradio/digital/simple_framer.h
-include/gnuradio/digital/simple_framer_sync.h
 include/gnuradio/digital/symbol_sync_cc.h
 include/gnuradio/digital/symbol_sync_ff.h
 include/gnuradio/digital/timing_error_detector_type.h
@@ -92,7 +85,7 @@ lib/cmake/gnuradio/gnuradio-digitalConfi
 lib/cmake/gnuradio/gnuradio-digitalTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-digitalTargets.cmake
 lib/libgnuradio-digital.so
-lib/libgnuradio-digital.so.3.9.4
+lib/libgnuradio-digital.so.3.10.0
 lib/libgnuradio-digital.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-digital.pc
 ${PYSITELIB}/gnuradio/digital/__init__.py
@@ -107,9 +100,6 @@ ${PYSITELIB}/gnuradio/digital/constellat
 ${PYSITELIB}/gnuradio/digital/cpm.py
 ${PYSITELIB}/gnuradio/digital/cpm.pyc
 ${PYSITELIB}/gnuradio/digital/cpm.pyo
-${PYSITELIB}/gnuradio/digital/crc.py
-${PYSITELIB}/gnuradio/digital/crc.pyc
-${PYSITELIB}/gnuradio/digital/crc.pyo
 ${PYSITELIB}/gnuradio/digital/digital_python.so
 ${PYSITELIB}/gnuradio/digital/generic_mod_demod.py
 ${PYSITELIB}/gnuradio/digital/generic_mod_demod.pyc
@@ -159,6 +149,9 @@ ${PYSITELIB}/gnuradio/digital/utils/alig
 ${PYSITELIB}/gnuradio/digital/utils/gray_code.py
 ${PYSITELIB}/gnuradio/digital/utils/gray_code.pyc
 ${PYSITELIB}/gnuradio/digital/utils/gray_code.pyo
+${PYSITELIB}/gnuradio/digital/utils/lfsr.py
+${PYSITELIB}/gnuradio/digital/utils/lfsr.pyc
+${PYSITELIB}/gnuradio/digital/utils/lfsr.pyo
 ${PYSITELIB}/gnuradio/digital/utils/mod_codes.py
 ${PYSITELIB}/gnuradio/digital/utils/mod_codes.pyc
 ${PYSITELIB}/gnuradio/digital/utils/mod_codes.pyo
@@ -229,7 +222,6 @@ share/gnuradio/grc/blocks/digital_binary
 share/gnuradio/grc/blocks/digital_burst_shaper.block.yml
 share/gnuradio/grc/blocks/digital_chunks_to_symbols.block.yml
 share/gnuradio/grc/blocks/digital_clock_recovery_mm_xx.block.yml
-share/gnuradio/grc/blocks/digital_cma_equalizer_cc.block.yml
 share/gnuradio/grc/blocks/digital_constellation.block.yml
 share/gnuradio/grc/blocks/digital_constellation_decoder_cb.block.yml
 share/gnuradio/grc/blocks/digital_constellation_encoder_bc.block.yml
@@ -238,7 +230,6 @@ share/gnuradio/grc/blocks/digital_conste
 share/gnuradio/grc/blocks/digital_constellation_rect.block.yml
 share/gnuradio/grc/blocks/digital_constellation_soft_decoder_cf.block.yml
 share/gnuradio/grc/blocks/digital_corr_est_cc.block.yml
-share/gnuradio/grc/blocks/digital_correlate_access_code_bb.block.yml
 share/gnuradio/grc/blocks/digital_correlate_access_code_tag_xx.block.yml
 share/gnuradio/grc/blocks/digital_correlate_access_code_xx_ts.block.yml
 share/gnuradio/grc/blocks/digital_costas_loop_cc.block.yml
@@ -262,9 +253,7 @@ share/gnuradio/grc/blocks/digital_gmskmo
 share/gnuradio/grc/blocks/digital_hdlc_deframer_bp.block.yml
 share/gnuradio/grc/blocks/digital_hdlc_framer_pb.block.yml
 share/gnuradio/grc/blocks/digital_header_payload_demux.block.yml
-share/gnuradio/grc/blocks/digital_kurtotic_equalizer_cc.block.yml
 share/gnuradio/grc/blocks/digital_linear_equalizer.block.yml
-share/gnuradio/grc/blocks/digital_lms_dd_equalizer_cc.block.yml
 share/gnuradio/grc/blocks/digital_map_bb.block.yml
 share/gnuradio/grc/blocks/digital_meas_evm_cc.block.yml
 share/gnuradio/grc/blocks/digital_modulate_vector.block.yml
@@ -295,7 +284,5 @@ share/gnuradio/grc/blocks/digital_psk_mo
 share/gnuradio/grc/blocks/digital_qam_demod.block.yml
 share/gnuradio/grc/blocks/digital_qam_mod.block.yml
 share/gnuradio/grc/blocks/digital_scrambler_bb.block.yml
-share/gnuradio/grc/blocks/digital_simple_correlator.block.yml
-share/gnuradio/grc/blocks/digital_simple_framer.block.yml
 share/gnuradio/grc/blocks/digital_symbol_sync_xx.block.yml
 share/gnuradio/grc/blocks/variable_header_format_default.block.yml

Index: pkgsrc/ham/gnuradio-digital/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-digital/buildlink3.mk:1.4 pkgsrc/ham/gnuradio-digital/buildlink3.mk:1.5
--- pkgsrc/ham/gnuradio-digital/buildlink3.mk:1.4       Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-digital/buildlink3.mk   Sun Jan 16 18:06:26 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.4 2021/12/11 14:57:50 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.5 2022/01/16 18:06:26 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-digital
 
 .if !defined(GNURADIO_DIGITAL_BUILDLINK3_MK)
 GNURADIO_DIGITAL_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-digital+=       gnuradio-digital>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-digital+=       gnuradio-digital>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-digital+=       gnuradio-digital>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-digital?=         ../../ham/gnuradio-digital
 .endif # GNURADIO_DIGITAL_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-doxygen/Makefile
diff -u pkgsrc/ham/gnuradio-doxygen/Makefile:1.50 pkgsrc/ham/gnuradio-doxygen/Makefile:1.51
--- pkgsrc/ham/gnuradio-doxygen/Makefile:1.50   Mon Jan 10 01:46:35 2022
+++ pkgsrc/ham/gnuradio-doxygen/Makefile        Sun Jan 16 18:06:26 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.50 2022/01/10 01:46:35 ryoon Exp $
+# $NetBSD: Makefile,v 1.51 2022/01/16 18:06:26 tnn Exp $
 
 PKGNAME=       gnuradio-doxygen-${VERSION}
-PKGREVISION=   1
 COMMENT=       Doxygen documentation of GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-doxygen/PLIST
diff -u pkgsrc/ham/gnuradio-doxygen/PLIST:1.26 pkgsrc/ham/gnuradio-doxygen/PLIST:1.27
--- pkgsrc/ham/gnuradio-doxygen/PLIST:1.26      Thu Dec 30 07:22:38 2021
+++ pkgsrc/ham/gnuradio-doxygen/PLIST   Sun Jan 16 18:06:26 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.26 2021/12/30 07:22:38 mef Exp $
+@comment $NetBSD: PLIST,v 1.27 2022/01/16 18:06:26 tnn Exp $
 share/doc/gnuradio-${PKGVERSION}/html/ConstellationDisplayPlot_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/ConstellationDisplayPlot_8h__dep__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/ConstellationDisplayPlot_8h__dep__incl.md5
@@ -223,6 +223,17 @@ share/doc/gnuradio-${PKGVERSION}/html/ad
 share/doc/gnuradio-${PKGVERSION}/html/add__const__v__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/add__const__v__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/add__const__v__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/add__system__time__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/additive__scrambler__bb_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/additive__scrambler__bb_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/additive__scrambler__bb_8h__incl.md5
@@ -454,6 +465,9 @@ share/doc/gnuradio-${PKGVERSION}/html/as
 share/doc/gnuradio-${PKGVERSION}/html/async__encoder__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h__dep__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/atsc__consts_8h__incl.svg
@@ -563,6 +577,11 @@ share/doc/gnuradio-${PKGVERSION}/html/at
 share/doc/gnuradio-${PKGVERSION}/html/atsc__pad__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/atsc__pad__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/atsc__pad__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/atsc__plinfo_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/atsc__plinfo_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/atsc__plinfo_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/atsc__plinfo_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/atsc__plinfo_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/atsc__randomizer_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/atsc__randomizer_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/atsc__randomizer_8h__incl.md5
@@ -629,6 +648,63 @@ share/doc/gnuradio-${PKGVERSION}/html/at
 share/doc/gnuradio-${PKGVERSION}/html/atsc__viterbi__decoder__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/atsc__viterbi__decoder__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/atsc__viterbi__decoder__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__sink__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__source_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__source__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/attr__updater__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/attributes_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/attributes_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/attributes_8h__dep__incl.map
@@ -745,16 +821,64 @@ share/doc/gnuradio-${PKGVERSION}/html/bl
 share/doc/gnuradio-${PKGVERSION}/html/blocks_8dox.html
 share/doc/gnuradio-${PKGVERSION}/html/buffer_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/buffer_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/buffer_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer_8h__dep__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/buffer_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/buffer_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/buffer_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/buffer_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__double__mapped_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/buffer__pydoc__template_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/buffer__pydoc__template_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/buffer__pydoc__template_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/buffer__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/buffer__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/buffer__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader__sm_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader__sm_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader__sm_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader__sm_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__reader__sm_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__single__mapped_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/buffer__type__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/build_2gnuradio-runtime_2python_2gnuradio_2gr_2bindings_2pydoc__macros_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/build_2gnuradio-runtime_2python_2gnuradio_2gr_2bindings_2pydoc__macros_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/build_2gnuradio-runtime_2python_2gnuradio_2gr_2bindings_2pydoc__macros_8h_source.html
@@ -1062,9 +1186,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classFFTAverageMenu-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classFFTAverageMenu.html
 share/doc/gnuradio-${PKGVERSION}/html/classFFTAverageMenu.js
-share/doc/gnuradio-${PKGVERSION}/html/classFFTSizeMenu-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classFFTSizeMenu.html
-share/doc/gnuradio-${PKGVERSION}/html/classFFTSizeMenu.js
 share/doc/gnuradio-${PKGVERSION}/html/classFFTWindowMenu-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classFFTWindowMenu.html
 share/doc/gnuradio-${PKGVERSION}/html/classFFTWindowMenu.js
@@ -1143,12 +1264,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classNumberUpdateEvent-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classNumberUpdateEvent.html
 share/doc/gnuradio-${PKGVERSION}/html/classNumberUpdateEvent.js
-share/doc/gnuradio-${PKGVERSION}/html/classOtherAction-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classOtherAction.html
-share/doc/gnuradio-${PKGVERSION}/html/classOtherAction.js
-share/doc/gnuradio-${PKGVERSION}/html/classOtherDualAction-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classOtherDualAction.html
-share/doc/gnuradio-${PKGVERSION}/html/classOtherDualAction.js
 share/doc/gnuradio-${PKGVERSION}/html/classPlotTimeRaster-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classPlotTimeRaster.html
 share/doc/gnuradio-${PKGVERSION}/html/classPlotTimeRaster.js
@@ -1658,18 +1773,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1patterned__interleaver-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1patterned__interleaver.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1patterned__interleaver.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__filter-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__filter.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__filter.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__remove-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__remove.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__remove.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__set-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__set.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__set.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__to__tagged__stream-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__to__tagged__stream.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1pdu__to__tagged__stream.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1peak__detector-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1peak__detector.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1peak__detector.js
@@ -1691,9 +1794,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1probe__signal__v-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1probe__signal__v.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1probe__signal__v.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1random__pdu-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1random__pdu.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1random__pdu.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1regenerate__bb-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1regenerate__bb.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1regenerate__bb.js
@@ -1730,9 +1830,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1skiphead-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1skiphead.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1skiphead.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1socket__pdu-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1socket__pdu.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1socket__pdu.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1stream__demux-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1stream__demux.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1stream__demux.js
@@ -1784,15 +1881,9 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tagged__stream__mux-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tagged__stream__mux.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tagged__stream__mux.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tagged__stream__to__pdu-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tagged__stream__to__pdu.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tagged__stream__to__pdu.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tags__strobe-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tags__strobe.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tags__strobe.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tcp__server__sink-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tcp__server__sink.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tcp__server__sink.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1test__tag__variable__rate__ff-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1test__tag__variable__rate__ff.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1test__tag__variable__rate__ff.js
@@ -1808,18 +1899,9 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tsb__vector__sink-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tsb__vector__sink.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tsb__vector__sink.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tuntap__pdu-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tuntap__pdu.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1tuntap__pdu.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1uchar__to__float-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1uchar__to__float.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1uchar__to__float.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1udp__sink-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1udp__sink.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1udp__sink.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1udp__source-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1udp__source.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1udp__source.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1unpack__k__bits__bb-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1unpack__k__bits__bb.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1blocks_1_1unpack__k__bits__bb.js
@@ -1862,9 +1944,21 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__double__mapped-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__double__mapped.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__double__mapped.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__reader-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__reader.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__reader.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__reader__sm-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__reader__sm.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__reader__sm.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__single__mapped-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__single__mapped.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__single__mapped.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__type__base-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__type__base.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1buffer__type__base.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1channels_1_1cfo__model-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1channels_1_1cfo__model.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1channels_1_1cfo__model.js
@@ -1889,6 +1983,12 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1channels_1_1sro__model-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1channels_1_1sro__model.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1channels_1_1sro__model.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1custom__lock-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1custom__lock.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1custom__lock.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1custom__lock__if-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1custom__lock__if.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1custom__lock__if.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1adaptive__algorithm-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1adaptive__algorithm.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1adaptive__algorithm.js
@@ -1919,9 +2019,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1clock__recovery__mm__ff-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1clock__recovery__mm__ff.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1clock__recovery__mm__ff.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1cma__equalizer__cc-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1cma__equalizer__cc.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1cma__equalizer__cc.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1constellation-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1constellation.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1constellation.js
@@ -2060,18 +2157,12 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1header__payload__demux-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1header__payload__demux.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1header__payload__demux.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1kurtotic__equalizer__cc-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1kurtotic__equalizer__cc.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1kurtotic__equalizer__cc.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1lfsr-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1lfsr.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1lfsr.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1linear__equalizer-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1linear__equalizer.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1linear__equalizer.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1lms__dd__equalizer__cc-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1lms__dd__equalizer__cc.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1lms__dd__equalizer__cc.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1map__bb-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1map__bb.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1map__bb.js
@@ -2171,12 +2262,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1scrambler__bb-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1scrambler__bb.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1scrambler__bb.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1simple__correlator-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1simple__correlator.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1simple__correlator.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1simple__framer-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1simple__framer.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1simple__framer.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1snr__est__m2m4-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1snr__est__m2m4.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1digital_1_1snr__est__m2m4.js
@@ -2342,6 +2427,9 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1dtv_1_1dvbt__viterbi__decoder-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1dtv_1_1dvbt__viterbi__decoder.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1dtv_1_1dvbt__viterbi__decoder.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1dtv_1_1plinfo-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1dtv_1_1plinfo.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1dtv_1_1plinfo.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1edge-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1edge.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1edge.js
@@ -2597,12 +2685,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interp__differentiator__ff-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interp__differentiator__ff.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interp__differentiator__ff.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interpolator__cc-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interpolator__cc.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interpolator__cc.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interpolator__ff-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interpolator__ff.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__interpolator__ff.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__resampler__cc-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__resampler__cc.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1filter_1_1mmse__resampler__cc.js
@@ -2660,15 +2742,87 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1hier__block2-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1hier__block2.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1hier__block2.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1host__buffer-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1host__buffer.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1host__buffer.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__sink-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__sink.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__sink.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__sink__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__sink__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__sink__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__source-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__source.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__source.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__source__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__source__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__source__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__updater-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__updater.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__updater.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__updater__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__updater__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1attr__updater__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1dds__control-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1dds__control.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1dds__control.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1dds__control__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1dds__control__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1dds__control__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__sink-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__sink.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__sink.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__sink__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__sink__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__sink__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__source-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__source.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__source.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__source__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__source__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1device__source__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__sink-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__sink.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__sink.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__sink__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__sink__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__sink__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__source-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__source.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__source.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__source__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__source__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms2__source__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink__f32c-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink__f32c.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink__f32c.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__sink__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source__f32c-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source__f32c.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source__f32c.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1fmcomms5__source__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1iio__param__t-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1iio__param__t.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1iio_1_1iio__param__t.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1io__signature-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1io__signature.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1io__signature.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logger-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logger.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logger.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logger__config-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logger__config.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logger__config.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logging-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logging.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1logging.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1message-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1message.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1message.js
@@ -2702,12 +2856,29 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1nco-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1nco.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1nco.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1socket__pdu-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1socket__pdu.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1socket__pdu.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1socket__pdu__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1socket__pdu__impl.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1socket__pdu__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1stream__pdu__base-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1stream__pdu__base.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1stream__pdu__base.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__connection-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__connection.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__connection.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__sink-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__sink.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__sink.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__sink__impl-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__sink__impl.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tcp__sink__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tuntap__pdu-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tuntap__pdu.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tuntap__pdu.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tuntap__pdu__impl-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1tuntap__pdu__impl.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1udp__sink-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1udp__sink.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1udp__sink.js
@@ -2720,6 +2891,42 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1udp__source__impl-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1udp__source__impl.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1network_1_1udp__source__impl.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1add__system__time-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1add__system__time.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1add__system__time.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__filter-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__filter.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__filter.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__remove-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__remove.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__remove.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__set-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__set.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__set.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__split-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__split.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__split.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__to__stream-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__to__stream.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__to__stream.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__to__tagged__stream-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__to__tagged__stream.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1pdu__to__tagged__stream.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1random__pdu-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1random__pdu.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1random__pdu.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1tagged__stream__to__pdu-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1tagged__stream__to__pdu.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1tagged__stream__to__pdu.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1tags__to__pdu-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1tags__to__pdu.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1tags__to__pdu.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1take__skip__to__pdu-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1take__skip__to__pdu.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1take__skip__to__pdu.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1time__delta-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1time__delta.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1pdu_1_1time__delta.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1prefs-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1prefs.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1prefs.js
@@ -2807,9 +3014,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1sync__interpolator-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1sync__interpolator.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1sync__interpolator.js
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1tag__checker-members.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1tag__checker.html
-share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1tag__checker.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1tagged__stream__block-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1tagged__stream__block.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1tagged__stream__block.js
@@ -2987,6 +3191,9 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1wavelet_1_1wvps__ff-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1wavelet_1_1wvps__ff.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1wavelet_1_1wvps__ff.js
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1xoroshiro128p__prng-members.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1xoroshiro128p__prng.html
+share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1xoroshiro128p__prng.js
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1zeromq_1_1pub__msg__sink-members.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1zeromq_1_1pub__msg__sink.html
 share/doc/gnuradio-${PKGVERSION}/html/classgr_1_1zeromq_1_1pub__msg__sink.js
@@ -3231,17 +3438,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cl
 share/doc/gnuradio-${PKGVERSION}/html/clock__recovery__mm__ff__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/clock__recovery__mm__ff__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/closed.png
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/cma__equalizer__cc__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/codec2_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/codec2_8h__dep__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/codec2_8h__dep__incl.md5
@@ -3731,12 +3927,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cr
 share/doc/gnuradio-${PKGVERSION}/html/crc16__async__bb__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/crc16__async__bb__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/crc16__async__bb__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/crc32_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/crc32_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/crc32_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/crc32_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/crc32_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/crc32_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/crc32__async__bb_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/crc32__async__bb_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/crc32__async__bb_8h__incl.md5
@@ -3759,12 +3949,6 @@ share/doc/gnuradio-${PKGVERSION}/html/cr
 share/doc/gnuradio-${PKGVERSION}/html/crc32__bb__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/crc32__bb__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/crc32__bb__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/crc32__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/crc32__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/crc32__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/crc32__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/crc32__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/crc32__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/ctcss__squelch__ff_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/ctcss__squelch__ff_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/ctcss__squelch__ff_8h__incl.md5
@@ -3854,6 +4038,14 @@ share/doc/gnuradio-${PKGVERSION}/html/ct
 share/doc/gnuradio-${PKGVERSION}/html/ctrlport__probe__psd__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/ctrlport__probe__psd__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/ctrlport__probe__psd__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/custom__lock_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/cvsd__decode__bs_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/cvsd__decode__bs_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/cvsd__decode__bs_8h__incl.md5
@@ -3898,6 +4090,25 @@ share/doc/gnuradio-${PKGVERSION}/html/dc
 share/doc/gnuradio-${PKGVERSION}/html/dc__blocker__ff__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/dc__blocker__ff__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/dc__blocker__ff__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/dds__control_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/dds__control__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/decision__feedback__equalizer_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/decision__feedback__equalizer_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/decision__feedback__equalizer_8h__incl.md5
@@ -3978,6 +4189,53 @@ share/doc/gnuradio-${PKGVERSION}/html/de
 share/doc/gnuradio-${PKGVERSION}/html/descrambler__bb__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/descrambler__bb__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/descrambler__bb__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__sink_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__sink__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__source_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__source__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/device__source__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/device__source__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/device__source__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/device__source__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/device__source__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/device__source__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/diff__coding__type_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/diff__coding__type_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/diff__coding__type_8h__dep__incl.map
@@ -4231,6 +4489,23 @@ share/doc/gnuradio-${PKGVERSION}/html/di
 share/doc/gnuradio-${PKGVERSION}/html/dir_000204.html
 share/doc/gnuradio-${PKGVERSION}/html/dir_000205.html
 share/doc/gnuradio-${PKGVERSION}/html/dir_000206.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000207.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000208.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000209.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000210.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000211.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000212.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000213.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000214.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000215.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000216.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000217.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000218.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000219.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000220.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000221.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000222.html
+share/doc/gnuradio-${PKGVERSION}/html/dir_000223.html
 share/doc/gnuradio-${PKGVERSION}/html/display__qt_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/display__qt_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/display__qt_8h__incl.md5
@@ -5200,6 +5475,108 @@ share/doc/gnuradio-${PKGVERSION}/html/fl
 share/doc/gnuradio-${PKGVERSION}/html/flowgraph__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/flowgraph__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/flowgraph__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__f32c__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__f32c__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__f32c__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__f32c__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__f32c__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__f32c__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__sink__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__f32c__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__f32c__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__f32c__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__f32c__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__f32c__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__f32c__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms2__source__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__f32c__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__f32c__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__f32c__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__f32c__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__f32c__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__f32c__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__sink__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__f32c__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__f32c__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__f32c__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__f32c__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__f32c__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__f32c__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/fmcomms5__source__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/fmdet__cf_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/fmdet__cf_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/fmdet__cf_8h__incl.md5
@@ -5460,6 +5837,7 @@ share/doc/gnuradio-${PKGVERSION}/html/fu
 share/doc/gnuradio-${PKGVERSION}/html/functions_func_u.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_func_v.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_func_w.html
+share/doc/gnuradio-${PKGVERSION}/html/functions_func_x.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_func_~.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_g.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_h.html
@@ -5479,9 +5857,11 @@ share/doc/gnuradio-${PKGVERSION}/html/fu
 share/doc/gnuradio-${PKGVERSION}/html/functions_t.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_type.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_type.js
+share/doc/gnuradio-${PKGVERSION}/html/functions_type_f.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_type_h.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_type_o.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_type_q.html
+share/doc/gnuradio-${PKGVERSION}/html/functions_type_r.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_type_s.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_type_t.html
 share/doc/gnuradio-${PKGVERSION}/html/functions_u.html
@@ -5708,6 +6088,7 @@ share/doc/gnuradio-${PKGVERSION}/html/gl
 share/doc/gnuradio-${PKGVERSION}/html/globals_defs_d.html
 share/doc/gnuradio-${PKGVERSION}/html/globals_defs_f.html
 share/doc/gnuradio-${PKGVERSION}/html/globals_defs_g.html
+share/doc/gnuradio-${PKGVERSION}/html/globals_defs_i.html
 share/doc/gnuradio-${PKGVERSION}/html/globals_defs_m.html
 share/doc/gnuradio-${PKGVERSION}/html/globals_defs_n.html
 share/doc/gnuradio-${PKGVERSION}/html/globals_defs_p.html
@@ -5856,28 +6237,6 @@ share/doc/gnuradio-${PKGVERSION}/html/gr
 share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2api_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2api_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2api_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__sink_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__sink_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__sink_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__sink_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__sink_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__source_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__source_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__source_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__source_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2include_2gnuradio_2blocks_2udp__source_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__sink__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__sink__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__sink__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__sink__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__sink__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__sink__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__source__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__source__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__source__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__source__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__source__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__source__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/gr-channels_2include_2gnuradio_2channels_2api_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/gr-channels_2include_2gnuradio_2channels_2api_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/gr-channels_2include_2gnuradio_2channels_2api_8h__dep__incl.map
@@ -5958,6 +6317,15 @@ share/doc/gnuradio-${PKGVERSION}/html/gr
 share/doc/gnuradio-${PKGVERSION}/html/gr-filter_2include_2gnuradio_2filter_2api_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/gr-filter_2include_2gnuradio_2filter_2api_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/gr-filter_2include_2gnuradio_2filter_2api_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/gr-iio_2include_2gnuradio_2iio_2api_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2api_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2api_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2api_8h__dep__incl.map
@@ -5967,34 +6335,15 @@ share/doc/gnuradio-${PKGVERSION}/html/gr
 share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2api_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2api_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2api_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h__dep__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h__dep__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h__dep__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__sink_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h__dep__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h__dep__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h__dep__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2include_2gnuradio_2network_2udp__source_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__sink__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__sink__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__sink__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__sink__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__sink__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__sink__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__source__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__source__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__source__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__source__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__source__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/gr-network_2python_2network_2bindings_2docstrings_2udp__source__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/gr-pdu_2include_2gnuradio_2pdu_2api_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/gr-qtgui_2include_2gnuradio_2qtgui_2api_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/gr-qtgui_2include_2gnuradio_2qtgui_2api_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/gr-qtgui_2include_2gnuradio_2qtgui_2api_8h__dep__incl.map
@@ -6208,6 +6557,8 @@ share/doc/gnuradio-${PKGVERSION}/html/gr
 share/doc/gnuradio-${PKGVERSION}/html/group__ofdm__blk.js
 share/doc/gnuradio-${PKGVERSION}/html/group__packet__operators__blk.html
 share/doc/gnuradio-${PKGVERSION}/html/group__packet__operators__blk.js
+share/doc/gnuradio-${PKGVERSION}/html/group__pdu__blk.html
+share/doc/gnuradio-${PKGVERSION}/html/group__pdu__blk.js
 share/doc/gnuradio-${PKGVERSION}/html/group__peak__detectors__blk.html
 share/doc/gnuradio-${PKGVERSION}/html/group__peak__detectors__blk.js
 share/doc/gnuradio-${PKGVERSION}/html/group__qtgui__blk.html
@@ -6444,6 +6795,20 @@ share/doc/gnuradio-${PKGVERSION}/html/hi
 share/doc/gnuradio-${PKGVERSION}/html/histogramdisplayform__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/histogramdisplayform__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/histogramdisplayform__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/host__buffer_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/host__buffer_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/host__buffer_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/host__buffer_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/host__buffer_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/iio__types_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/iir__filter_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/iir__filter_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/iir__filter_8h__incl.md5
@@ -6625,6 +6990,27 @@ share/doc/gnuradio-${PKGVERSION}/html/in
 share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_131.map
 share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_131.md5
 share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_131.svg
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_132.map
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_132.md5
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_132.svg
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_133.map
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_133.md5
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_133.svg
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_134.map
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_134.md5
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_134.svg
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_135.map
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_135.md5
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_135.svg
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_136.map
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_136.md5
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_136.svg
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_137.map
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_137.md5
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_137.svg
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_138.map
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_138.md5
+share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_138.svg
 share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_14.map
 share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_14.md5
 share/doc/gnuradio-${PKGVERSION}/html/inherit_graph_14.svg
@@ -7062,17 +7448,6 @@ share/doc/gnuradio-${PKGVERSION}/html/ke
 share/doc/gnuradio-${PKGVERSION}/html/keep__one__in__n__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/keep__one__in__n__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/keep__one__in__n__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/kurtotic__equalizer__cc__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/ldpc__G__matrix_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/ldpc__G__matrix_8h__dep__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/ldpc__G__matrix_8h__dep__incl.md5
@@ -7219,17 +7594,6 @@ share/doc/gnuradio-${PKGVERSION}/html/li
 share/doc/gnuradio-${PKGVERSION}/html/linear__equalizer__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/linear__equalizer__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/linear__equalizer__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/lms__dd__equalizer__cc__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/logger_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/logger_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/logger_8h__dep__incl.map
@@ -7412,12 +7776,6 @@ share/doc/gnuradio-${PKGVERSION}/html/mi
 share/doc/gnuradio-${PKGVERSION}/html/min__blk__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/min__blk__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/min__blk__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/misc_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/misc_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/misc_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/misc_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/misc_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/misc_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/mmse__fir__interpolator__cc_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/mmse__fir__interpolator__cc_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/mmse__fir__interpolator__cc_8h__incl.md5
@@ -7462,28 +7820,6 @@ share/doc/gnuradio-${PKGVERSION}/html/mm
 share/doc/gnuradio-${PKGVERSION}/html/mmse__interp__differentiator__ff__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/mmse__interp__differentiator__ff__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/mmse__interp__differentiator__ff__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__cc__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/mmse__interpolator__ff__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/mmse__resampler__cc_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/mmse__resampler__cc_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/mmse__resampler__cc_8h__incl.md5
@@ -7728,7 +8064,6 @@ share/doc/gnuradio-${PKGVERSION}/html/na
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1blocks.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1blocks_1_1kernel.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1blocks_1_1kernel.js
-share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1blocks_1_1pdu.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1channels.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1channels.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1digital.html
@@ -7746,10 +8081,16 @@ share/doc/gnuradio-${PKGVERSION}/html/na
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1filter.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1filter_1_1kernel.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1filter_1_1kernel.js
+share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1iio.html
+share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1iio.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1messages.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1messages.js
+share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1metadata__keys.html
+share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1msgport__names.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1network.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1network.js
+share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1pdu.html
+share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1pdu.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1qtgui.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1qtgui.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1soapy.html
@@ -7758,6 +8099,7 @@ share/doc/gnuradio-${PKGVERSION}/html/na
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1thread.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1trellis.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1trellis.js
+share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1types.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1uhd.html
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1uhd.js
 share/doc/gnuradio-${PKGVERSION}/html/namespacegr_1_1video__sdl.html
@@ -7949,6 +8291,9 @@ share/doc/gnuradio-${PKGVERSION}/html/na
 share/doc/gnuradio-${PKGVERSION}/html/navtreeindex8.js
 share/doc/gnuradio-${PKGVERSION}/html/navtreeindex80.js
 share/doc/gnuradio-${PKGVERSION}/html/navtreeindex81.js
+share/doc/gnuradio-${PKGVERSION}/html/navtreeindex82.js
+share/doc/gnuradio-${PKGVERSION}/html/navtreeindex83.js
+share/doc/gnuradio-${PKGVERSION}/html/navtreeindex84.js
 share/doc/gnuradio-${PKGVERSION}/html/navtreeindex9.js
 share/doc/gnuradio-${PKGVERSION}/html/nco_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/nco_8h__incl.map
@@ -8405,6 +8750,29 @@ share/doc/gnuradio-${PKGVERSION}/html/pd
 share/doc/gnuradio-${PKGVERSION}/html/pdu__set__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/pdu__set__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/pdu__set__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/pdu__split__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/pdu__to__stream__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/pdu__to__tagged__stream_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/pdu__to__tagged__stream_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/pdu__to__tagged__stream_8h__incl.md5
@@ -8642,6 +9010,18 @@ share/doc/gnuradio-${PKGVERSION}/html/pl
 share/doc/gnuradio-${PKGVERSION}/html/plot__waterfall_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/plot__waterfall_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/plot__waterfall_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/pluto__utils__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/pm__remez_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/pm__remez_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/pm__remez_8h__incl.map
@@ -8804,7 +9184,6 @@ share/doc/gnuradio-${PKGVERSION}/html/po
 share/doc/gnuradio-${PKGVERSION}/html/polyphase__filterbank__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/polyphase__filterbank__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/prefs_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/prefs_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/prefs_8h__dep__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/prefs_8h__dep__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/prefs_8h__dep__incl.svg
@@ -9285,16 +9664,34 @@ share/doc/gnuradio-${PKGVERSION}/html/rf
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__generic_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__generic_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__generic_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__block__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__ddc__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__duc__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__graph_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__graph_8h__dep__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__graph_8h__dep__incl.md5
@@ -9314,6 +9711,12 @@ share/doc/gnuradio-${PKGVERSION}/html/rf
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__radio__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__streamer_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__streamer_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__rx__streamer_8h__incl.md5
@@ -9330,6 +9733,12 @@ share/doc/gnuradio-${PKGVERSION}/html/rf
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__radio__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__streamer_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__streamer_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/rfnoc__tx__streamer_8h__incl.md5
@@ -9705,6 +10114,8 @@ share/doc/gnuradio-${PKGVERSION}/html/se
 share/doc/gnuradio-${PKGVERSION}/html/search/defines_0.js
 share/doc/gnuradio-${PKGVERSION}/html/search/defines_1.html
 share/doc/gnuradio-${PKGVERSION}/html/search/defines_1.js
+share/doc/gnuradio-${PKGVERSION}/html/search/defines_10.html
+share/doc/gnuradio-${PKGVERSION}/html/search/defines_10.js
 share/doc/gnuradio-${PKGVERSION}/html/search/defines_2.html
 share/doc/gnuradio-${PKGVERSION}/html/search/defines_2.js
 share/doc/gnuradio-${PKGVERSION}/html/search/defines_3.html
@@ -9779,6 +10190,8 @@ share/doc/gnuradio-${PKGVERSION}/html/se
 share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_11.js
 share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_12.html
 share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_12.js
+share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_13.html
+share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_13.js
 share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_2.html
 share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_2.js
 share/doc/gnuradio-${PKGVERSION}/html/search/enumvalues_3.html
@@ -10211,31 +10624,6 @@ share/doc/gnuradio-${PKGVERSION}/html/si
 share/doc/gnuradio-${PKGVERSION}/html/sig__source__waveform__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/sig__source__waveform__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/sig__source__waveform__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/simple__correlator__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__sync_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__sync_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/simple__framer__sync_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/simple__framer__sync__pydoc__template_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/simple__framer__sync__pydoc__template_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/simple__framer__sync__pydoc__template_8h__incl.map
@@ -10414,10 +10802,18 @@ share/doc/gnuradio-${PKGVERSION}/html/so
 share/doc/gnuradio-${PKGVERSION}/html/soapy__types_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/soapy__types_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h__dep__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__impl_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__pydoc__template_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__pydoc__template_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/socket__pdu__pydoc__template_8h__incl.map
@@ -10533,6 +10929,14 @@ share/doc/gnuradio-${PKGVERSION}/html/st
 share/doc/gnuradio-${PKGVERSION}/html/stream__mux__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/stream__mux__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/stream__mux__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/stream__pdu__base_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/stream__to__streams_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/stream__to__streams_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/stream__to__streams_8h__incl.md5
@@ -10605,9 +11009,15 @@ share/doc/gnuradio-${PKGVERSION}/html/st
 share/doc/gnuradio-${PKGVERSION}/html/structcallbackregister__base_1_1callback__base__t-members.html
 share/doc/gnuradio-${PKGVERSION}/html/structcallbackregister__base_1_1callback__base__t.html
 share/doc/gnuradio-${PKGVERSION}/html/structcallbackregister__base_1_1callback__base__t.js
+share/doc/gnuradio-${PKGVERSION}/html/structfmt_1_1formatter_3_01boost_1_1format_01_4-members.html
+share/doc/gnuradio-${PKGVERSION}/html/structfmt_1_1formatter_3_01boost_1_1format_01_4.html
+share/doc/gnuradio-${PKGVERSION}/html/structfmt_1_1formatter_3_01boost_1_1format_01_4.js
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1blocks_1_1wav__header__info-members.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1blocks_1_1wav__header__info.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1blocks_1_1wav__header__info.js
+share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1buftype-members.html
+share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1buftype.html
+share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1buftype.js
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1fec_1_1code_1_1block__data-members.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1fec_1_1code_1_1block__data.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1fec_1_1code_1_1block__data.js
@@ -10629,6 +11039,9 @@ share/doc/gnuradio-${PKGVERSION}/html/st
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1fft_1_1fft__outbuf_3_01float_00_01true_01_4-members.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1fft_1_1fft__outbuf_3_01float_00_01true_01_4.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1fft_1_1fft__outbuf_3_01float_00_01true_01_4.js
+share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1iio_1_1ctxInfo-members.html
+share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1iio_1_1ctxInfo.html
+share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1iio_1_1ctxInfo.js
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1soapy_1_1device__deleter-members.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1soapy_1_1device__deleter.html
 share/doc/gnuradio-${PKGVERSION}/html/structgr_1_1soapy_1_1device__deleter.js
@@ -10821,17 +11234,6 @@ share/doc/gnuradio-${PKGVERSION}/html/ta
 share/doc/gnuradio-${PKGVERSION}/html/tab_h.png
 share/doc/gnuradio-${PKGVERSION}/html/tab_s.png
 share/doc/gnuradio-${PKGVERSION}/html/tabs.css
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/tag__checker__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/tag__debug_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/tag__debug_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/tag__debug_8h__incl.md5
@@ -10981,17 +11383,38 @@ share/doc/gnuradio-${PKGVERSION}/html/ta
 share/doc/gnuradio-${PKGVERSION}/html/tags__strobe__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/tags__strobe__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/tags__strobe__pydoc__template_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink_8h_source.html
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink__pydoc__template_8h.html
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink__pydoc__template_8h.js
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink__pydoc__template_8h__incl.map
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink__pydoc__template_8h__incl.md5
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink__pydoc__template_8h__incl.svg
-share/doc/gnuradio-${PKGVERSION}/html/tcp__server__sink__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/tags__to__pdu__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/take__skip__to__pdu__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/tcp__connection_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/tcp__sink_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/tcp__sink_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/tcp__sink_8h__dep__incl.map
@@ -11098,6 +11521,17 @@ share/doc/gnuradio-${PKGVERSION}/html/ti
 share/doc/gnuradio-${PKGVERSION}/html/timeRasterGlobalData_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/timeRasterGlobalData_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/timeRasterGlobalData_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/time__delta_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/time__delta_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/time__delta_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/time__delta_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/time__delta_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/time__delta__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/time__delta__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/time__delta__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/time__delta__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/time__delta__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/time__delta__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/time__raster__sink__b_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/time__raster__sink__b_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/time__raster__sink__b_8h__incl.md5
@@ -11267,6 +11701,15 @@ share/doc/gnuradio-${PKGVERSION}/html/tr
 share/doc/gnuradio-${PKGVERSION}/html/transcendental__pydoc__template_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/transcendental__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/transcendental__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/transfer__type_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/trigger__mode_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/trigger__mode_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/trigger__mode_8h__dep__incl.map
@@ -11292,10 +11735,18 @@ share/doc/gnuradio-${PKGVERSION}/html/ts
 share/doc/gnuradio-${PKGVERSION}/html/tsb__vector__sink__pydoc__template_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/tsb__vector__sink__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h__dep__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__impl_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__impl_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__impl_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__impl_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__impl_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__pydoc__template_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__pydoc__template_8h.js
 share/doc/gnuradio-${PKGVERSION}/html/tuntap__pdu__pydoc__template_8h__incl.map
@@ -11328,16 +11779,44 @@ share/doc/gnuradio-${PKGVERSION}/html/ud
 share/doc/gnuradio-${PKGVERSION}/html/udp__header__types_8h__dep__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/udp__header__types_8h__dep__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/udp__header__types_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/udp__sink__impl_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/udp__sink__impl_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/udp__sink__impl_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/udp__sink__impl_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/udp__sink__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/udp__sink__pydoc__template_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h__dep__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/udp__source_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/udp__source__impl_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/udp__source__impl_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/udp__source__impl_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/udp__source__impl_8h__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/udp__source__impl_8h_source.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__source__pydoc__template_8h.html
+share/doc/gnuradio-${PKGVERSION}/html/udp__source__pydoc__template_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/udp__source__pydoc__template_8h__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/udp__source__pydoc__template_8h__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/udp__source__pydoc__template_8h__incl.svg
+share/doc/gnuradio-${PKGVERSION}/html/udp__source__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/uhd_8dox.html
 share/doc/gnuradio-${PKGVERSION}/html/uhd__types_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/uhd__types_8h__incl.map
@@ -11715,6 +12194,9 @@ share/doc/gnuradio-${PKGVERSION}/html/xo
 share/doc/gnuradio-${PKGVERSION}/html/xor__blk__pydoc__template_8h_source.html
 share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h.html
 share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h.js
+share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h__dep__incl.map
+share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h__dep__incl.md5
+share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h__dep__incl.svg
 share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h__incl.map
 share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h__incl.md5
 share/doc/gnuradio-${PKGVERSION}/html/xoroshiro128p_8h__incl.svg
@@ -11756,6 +12238,8 @@ share/doc/gnuradio-${PKGVERSION}/xml/add
 share/doc/gnuradio-${PKGVERSION}/xml/add__const__ss__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/add__const__v_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/add__const__v__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/add__system__time_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/add__system__time__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/additive__scrambler__bb_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/additive__scrambler__bb__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/agc2_8h.xml
@@ -11816,6 +12300,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/ats
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__interleaver__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__pad_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__pad__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/atsc__plinfo_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__randomizer_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__randomizer__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__rs__decoder_8h.xml
@@ -11828,6 +12313,15 @@ share/doc/gnuradio-${PKGVERSION}/xml/ats
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__trellis__encoder__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__viterbi__decoder_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/atsc__viterbi__decoder__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__sink_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__sink__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__sink__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__source_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__source__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__source__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__updater_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__updater__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/attr__updater__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/attributes_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/audio_8dox.xml
 share/doc/gnuradio-${PKGVERSION}/xml/awgn__bp_8h.xml
@@ -11848,7 +12342,13 @@ share/doc/gnuradio-${PKGVERSION}/xml/blo
 share/doc/gnuradio-${PKGVERSION}/xml/block__registry_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/blocks_8dox.xml
 share/doc/gnuradio-${PKGVERSION}/xml/buffer_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/buffer__double__mapped_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/buffer__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/buffer__reader_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/buffer__reader__sm_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/buffer__single__mapped_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/buffer__type_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/buffer__type__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/build_2gnuradio-runtime_2python_2gnuradio_2gr_2bindings_2pydoc__macros_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/build_2gnuradio-runtime_2python_2pmt_2bindings_2pydoc__macros_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/build_2gr-analog_2python_2analog_2bindings_2pydoc__macros_8h.xml
@@ -11917,7 +12417,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classEyeDisplayPlot.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classEyeDisplaysForm.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classFFTAverageMenu.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classFFTSizeMenu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classFFTWindowMenu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classFreqControlPanel.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classFreqDisplayForm.xml
@@ -11944,8 +12443,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classNumberDisplayForm.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classNumberLayoutMenu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classNumberUpdateEvent.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classOtherAction.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classOtherDualAction.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classPlotTimeRaster.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classPlotWaterfall.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classPopupMenu.xml
@@ -12116,10 +12613,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1pack__k__bits__bb.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1packed__to__unpacked.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1patterned__interleaver.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1pdu__filter.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1pdu__remove.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1pdu__set.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1pdu__to__tagged__stream.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1peak__detector.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1peak__detector2__fb.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1phase__shift.xml
@@ -12127,7 +12620,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1probe__rate.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1probe__signal.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1probe__signal__v.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1random__pdu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1regenerate__bb.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1repack__bits__bb.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1repeat.xml
@@ -12140,7 +12632,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1short__to__char.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1short__to__float.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1skiphead.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1socket__pdu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1stream__demux.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1stream__mux.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1stream__to__streams.xml
@@ -12158,18 +12649,13 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tagged__stream__align.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tagged__stream__multiply__length.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tagged__stream__mux.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tagged__stream__to__pdu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tags__strobe.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tcp__server__sink.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1test__tag__variable__rate__ff.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1threshold__ff.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1throttle.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1transcendental.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tsb__vector__sink.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1tuntap__pdu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1uchar__to__float.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1udp__sink.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1udp__source.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1unpack__k__bits__bb.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1unpacked__to__packed.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1vco__c.xml
@@ -12184,7 +12670,11 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1wavfile__source.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1blocks_1_1xor__blk.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1buffer.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1buffer__double__mapped.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1buffer__reader.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1buffer__reader__sm.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1buffer__single__mapped.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1buffer__type__base.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1channels_1_1cfo__model.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1channels_1_1channel__model.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1channels_1_1channel__model2.xml
@@ -12193,6 +12683,8 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1channels_1_1selective__fading__model.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1channels_1_1selective__fading__model2.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1channels_1_1sro__model.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1custom__lock.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1custom__lock__if.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1adaptive__algorithm.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1adaptive__algorithm__cma.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1adaptive__algorithm__lms.xml
@@ -12203,7 +12695,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1chunks__to__symbols.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1clock__recovery__mm__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1clock__recovery__mm__ff.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1cma__equalizer__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1constellation.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1constellation__16qam.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1constellation__8psk.xml
@@ -12250,10 +12741,8 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1header__format__default.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1header__format__ofdm.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1header__payload__demux.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1kurtotic__equalizer__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1lfsr.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1linear__equalizer.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1lms__dd__equalizer__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1map__bb.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1meas__evm__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1mpsk__snr__est.xml
@@ -12287,8 +12776,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1protocol__formatter__bb.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1protocol__parser__b.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1scrambler__bb.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1simple__correlator.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1simple__framer.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1snr__est__m2m4.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1symbol__sync__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1digital_1_1symbol__sync__ff.xml
@@ -12344,6 +12831,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1dtv_1_1dvbt__reference__signals.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1dtv_1_1dvbt__symbol__inner__interleaver.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1dtv_1_1dvbt__viterbi__decoder.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1dtv_1_1plinfo.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1edge.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1endpoint.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1fec_1_1async__decoder.xml
@@ -12429,8 +12917,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1mmse__fir__interpolator__ff.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1mmse__interp__differentiator__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1mmse__interp__differentiator__ff.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1mmse__interpolator__cc.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1mmse__interpolator__ff.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1mmse__resampler__cc.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1mmse__resampler__ff.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1filter_1_1pfb__arb__resampler__ccc.xml
@@ -12450,9 +12936,33 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1fxpt__nco.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1fxpt__vco.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1hier__block2.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1host__buffer.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1attr__sink.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1attr__sink__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1attr__source.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1attr__source__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1attr__updater.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1attr__updater__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1dds__control.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1dds__control__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1device__sink.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1device__sink__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1device__source.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1device__source__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms2__sink.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms2__sink__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms2__source.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms2__source__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms5__sink.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms5__sink__f32c.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms5__sink__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms5__source.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms5__source__f32c.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1fmcomms5__source__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1iio_1_1iio__param__t.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1io__signature.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1logger.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1logger__config.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1logging.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1message.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1messages_1_1msg__accepter.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1messages_1_1msg__accepter__msgq.xml
@@ -12464,12 +12974,30 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1msg__handler.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1msg__queue.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1nco.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1socket__pdu.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1socket__pdu__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1stream__pdu__base.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1tcp__connection.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1tcp__sink.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1tcp__sink__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1tuntap__pdu.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1tuntap__pdu__impl.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1udp__sink.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1udp__sink__impl.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1udp__source.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1network_1_1udp__source__impl.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1add__system__time.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1pdu__filter.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1pdu__remove.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1pdu__set.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1pdu__split.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1pdu__to__stream.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1pdu__to__tagged__stream.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1random__pdu.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1tagged__stream__to__pdu.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1tags__to__pdu.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1take__skip__to__pdu.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1pdu_1_1time__delta.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1prefs.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1qtgui_1_1ber__sink__b.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1qtgui_1_1const__sink__c.xml
@@ -12499,7 +13027,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1sync__block.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1sync__decimator.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1sync__interpolator.xml
-share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1tag__checker.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1tagged__stream__block.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1thread_1_1thread__body__wrapper.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1thread_1_1thread__group.xml
@@ -12559,6 +13086,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/cla
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1wavelet_1_1squash__ff.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1wavelet_1_1wavelet__ff.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1wavelet_1_1wvps__ff.xml
+share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1xoroshiro128p__prng.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1zeromq_1_1pub__msg__sink.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1zeromq_1_1pub__sink.xml
 share/doc/gnuradio-${PKGVERSION}/xml/classgr_1_1zeromq_1_1pull__msg__source.xml
@@ -12636,8 +13164,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/clo
 share/doc/gnuradio-${PKGVERSION}/xml/clock__recovery__mm__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/clock__recovery__mm__ff_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/clock__recovery__mm__ff__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/cma__equalizer__cc_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/cma__equalizer__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/codec2_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/codec2__decode__ps_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/codec2__decode__ps__pydoc__template_8h.xml
@@ -12726,12 +13252,10 @@ share/doc/gnuradio-${PKGVERSION}/xml/cpm
 share/doc/gnuradio-${PKGVERSION}/xml/cpmmod__bc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/crc16__async__bb_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/crc16__async__bb__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/crc32_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/crc32__async__bb_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/crc32__async__bb__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/crc32__bb_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/crc32__bb__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/crc32__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ctcss__squelch__ff_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ctcss__squelch__ff__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ctrlport_8dox.xml
@@ -12749,6 +13273,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/ctr
 share/doc/gnuradio-${PKGVERSION}/xml/ctrlport__probe__c__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ctrlport__probe__psd_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ctrlport__probe__psd__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/custom__lock_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/cvsd__decode__bs_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/cvsd__decode__bs__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/cvsd__encode__sb_8h.xml
@@ -12757,6 +13282,9 @@ share/doc/gnuradio-${PKGVERSION}/xml/dc_
 share/doc/gnuradio-${PKGVERSION}/xml/dc__blocker__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/dc__blocker__ff_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/dc__blocker__ff__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dds__control_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dds__control__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dds__control__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/decision__feedback__equalizer_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/decision__feedback__equalizer__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/decode__ccsds__27__fb_8h.xml
@@ -12771,6 +13299,12 @@ share/doc/gnuradio-${PKGVERSION}/xml/dep
 share/doc/gnuradio-${PKGVERSION}/xml/depuncture__bb__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/descrambler__bb_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/descrambler__bb__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/device__sink_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/device__sink__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/device__sink__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/device__source_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/device__source__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/device__source__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/diff__coding__type_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/diff__coding__type__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/diff__decoder__bb_8h.xml
@@ -12987,6 +13521,23 @@ share/doc/gnuradio-${PKGVERSION}/xml/dir
 share/doc/gnuradio-${PKGVERSION}/xml/dir_000204.xml
 share/doc/gnuradio-${PKGVERSION}/xml/dir_000205.xml
 share/doc/gnuradio-${PKGVERSION}/xml/dir_000206.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000207.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000208.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000209.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000210.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000211.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000212.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000213.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000214.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000215.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000216.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000217.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000218.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000219.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000220.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000221.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000222.xml
+share/doc/gnuradio-${PKGVERSION}/xml/dir_000223.xml
 share/doc/gnuradio-${PKGVERSION}/xml/display__qt_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/displayform_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/displayform__pydoc__template_8h.xml
@@ -13159,6 +13710,22 @@ share/doc/gnuradio-${PKGVERSION}/xml/flo
 share/doc/gnuradio-${PKGVERSION}/xml/float__to__uchar__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/flowgraph_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/flowgraph__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__sink_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__sink__f32c__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__sink__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__sink__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__source_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__source__f32c__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__source__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms2__source__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__sink_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__sink__f32c__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__sink__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__sink__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__source_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__source__f32c__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__source__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/fmcomms5__source__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/fmdet__cf_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/fmdet__cf__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/form__menus_8h.xml
@@ -13230,10 +13797,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/gr-
 share/doc/gnuradio-${PKGVERSION}/xml/gr-audio_2python_2audio_2bindings_2docstrings_2sink__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-audio_2python_2audio_2bindings_2docstrings_2source__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-blocks_2include_2gnuradio_2blocks_2api_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-blocks_2include_2gnuradio_2blocks_2udp__sink_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-blocks_2include_2gnuradio_2blocks_2udp__source_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__sink__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-blocks_2python_2blocks_2bindings_2docstrings_2udp__source__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-channels_2include_2gnuradio_2channels_2api_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-digital_2include_2gnuradio_2digital_2api_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-dtv_2include_2gnuradio_2dtv_2api_8h.xml
@@ -13244,11 +13807,9 @@ share/doc/gnuradio-${PKGVERSION}/xml/gr-
 share/doc/gnuradio-${PKGVERSION}/xml/gr-fec_2python_2fec_2bindings_2docstrings_2viterbi__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-fft_2include_2gnuradio_2fft_2api_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-filter_2include_2gnuradio_2filter_2api_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/gr-iio_2include_2gnuradio_2iio_2api_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-network_2include_2gnuradio_2network_2api_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-network_2include_2gnuradio_2network_2udp__sink_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-network_2include_2gnuradio_2network_2udp__source_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-network_2python_2network_2bindings_2docstrings_2udp__sink__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/gr-network_2python_2network_2bindings_2docstrings_2udp__source__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/gr-pdu_2include_2gnuradio_2pdu_2api_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-qtgui_2include_2gnuradio_2qtgui_2api_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-soapy_2include_2gnuradio_2soapy_2api_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/gr-soapy_2include_2gnuradio_2soapy_2block_8h.xml
@@ -13301,6 +13862,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/gro
 share/doc/gnuradio-${PKGVERSION}/xml/group__networking__tools__blk.xml
 share/doc/gnuradio-${PKGVERSION}/xml/group__ofdm__blk.xml
 share/doc/gnuradio-${PKGVERSION}/xml/group__packet__operators__blk.xml
+share/doc/gnuradio-${PKGVERSION}/xml/group__pdu__blk.xml
 share/doc/gnuradio-${PKGVERSION}/xml/group__peak__detectors__blk.xml
 share/doc/gnuradio-${PKGVERSION}/xml/group__qtgui__blk.xml
 share/doc/gnuradio-${PKGVERSION}/xml/group__resamplers__blk.xml
@@ -13347,6 +13909,8 @@ share/doc/gnuradio-${PKGVERSION}/xml/his
 share/doc/gnuradio-${PKGVERSION}/xml/histogram__sink__f__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/histogramdisplayform_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/histogramdisplayform__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/host__buffer_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/iio__types_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/iir__filter_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/iir__filter__ccc_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/iir__filter__ccc__pydoc__template_8h.xml
@@ -13389,8 +13953,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/kee
 share/doc/gnuradio-${PKGVERSION}/xml/keep__m__in__n__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/keep__one__in__n_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/keep__one__in__n__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/kurtotic__equalizer__cc_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/kurtotic__equalizer__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ldpc__G__matrix_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ldpc__G__matrix__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ldpc__H__matrix_8h.xml
@@ -13416,8 +13978,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/lfs
 share/doc/gnuradio-${PKGVERSION}/xml/license_8dox.xml
 share/doc/gnuradio-${PKGVERSION}/xml/linear__equalizer_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/linear__equalizer__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/lms__dd__equalizer__cc_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/lms__dd__equalizer__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/logger_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/logger__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/magphase__to__complex_8h.xml
@@ -13448,7 +14008,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/met
 share/doc/gnuradio-${PKGVERSION}/xml/metrics__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/min__blk_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/min__blk__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/misc_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__fir__interpolator__cc_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__fir__interpolator__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__fir__interpolator__ff_8h.xml
@@ -13457,10 +14016,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/mms
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__interp__differentiator__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__interp__differentiator__ff_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__interp__differentiator__ff__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/mmse__interpolator__cc_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/mmse__interpolator__cc__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/mmse__interpolator__ff_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/mmse__interpolator__ff__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__resampler__cc_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__resampler__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/mmse__resampler__ff_8h.xml
@@ -13499,11 +14054,12 @@ share/doc/gnuradio-${PKGVERSION}/xml/mut
 share/doc/gnuradio-${PKGVERSION}/xml/mute__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespaceGNURadio.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespaceUi.xml
-share/doc/gnuradio-${PKGVERSION}/xml/namespace_0d81.xml
+share/doc/gnuradio-${PKGVERSION}/xml/namespace_0d87.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespaceapache.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespaceapache_1_1thrift.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespaceapache_1_1thrift_1_1server.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespaceboost.xml
+share/doc/gnuradio-${PKGVERSION}/xml/namespacefmt.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegnuradio.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegnuradio_1_1detail.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr.xml
@@ -13513,7 +14069,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/nam
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1audio_1_1osx.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1blocks.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1blocks_1_1kernel.xml
-share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1blocks_1_1pdu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1channels.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1digital.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1dtv.xml
@@ -13523,12 +14078,17 @@ share/doc/gnuradio-${PKGVERSION}/xml/nam
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1fft.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1filter.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1filter_1_1kernel.xml
+share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1iio.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1messages.xml
+share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1metadata__keys.xml
+share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1msgport__names.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1network.xml
+share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1pdu.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1qtgui.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1soapy.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1thread.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1trellis.xml
+share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1types.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1uhd.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1video__sdl.xml
 share/doc/gnuradio-${PKGVERSION}/xml/namespacegr_1_1vocoder.xml
@@ -13632,6 +14192,10 @@ share/doc/gnuradio-${PKGVERSION}/xml/pdu
 share/doc/gnuradio-${PKGVERSION}/xml/pdu__remove__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/pdu__set_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/pdu__set__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/pdu__split_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/pdu__split__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/pdu__to__stream_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/pdu__to__stream__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/pdu__to__tagged__stream_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/pdu__to__tagged__stream__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/peak__detector2__fb_8h.xml
@@ -13674,6 +14238,8 @@ share/doc/gnuradio-${PKGVERSION}/xml/pll
 share/doc/gnuradio-${PKGVERSION}/xml/pll__refout__cc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/plot__raster_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/plot__waterfall_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/pluto__utils_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/pluto__utils__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/pm__remez_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/pm__remez__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/pmt_8h.xml
@@ -13787,14 +14353,19 @@ share/doc/gnuradio-${PKGVERSION}/xml/req
 share/doc/gnuradio-${PKGVERSION}/xml/req__source__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__block_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__block__generic_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__block__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__ddc_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__ddc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__duc_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__duc__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__graph_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__graph__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__rx__radio_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__rx__radio__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__rx__streamer_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__rx__streamer__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__tx__radio_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__tx__radio__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__tx__streamer_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rfnoc__tx__streamer__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/rms__cf_8h.xml
@@ -13852,11 +14423,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/sig
 share/doc/gnuradio-${PKGVERSION}/xml/sig__source__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/sig__source__waveform_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/sig__source__waveform__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/simple__correlator_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/simple__correlator__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/simple__framer_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/simple__framer__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/simple__framer__sync_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/simple__framer__sync__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/simple__squelch__cc_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/simple__squelch__cc__pydoc__template_8h.xml
@@ -13888,6 +14454,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/ski
 share/doc/gnuradio-${PKGVERSION}/xml/soapy__common_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/soapy__types_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/socket__pdu_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/socket__pdu__impl_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/socket__pdu__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/source__impl_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/spectrumUpdateEvents_8h.xml
@@ -13906,6 +14473,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/str
 share/doc/gnuradio-${PKGVERSION}/xml/stream__demux__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/stream__mux_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/stream__mux__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/stream__pdu__base_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/stream__to__streams_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/stream__to__streams__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/stream__to__tagged__stream_8h.xml
@@ -13920,7 +14488,9 @@ share/doc/gnuradio-${PKGVERSION}/xml/str
 share/doc/gnuradio-${PKGVERSION}/xml/stretch__ff__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structcallbackregister__base.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structcallbackregister__base_1_1callback__base__t.xml
+share/doc/gnuradio-${PKGVERSION}/xml/structfmt_1_1formatter_3_01boost_1_1format_01_4.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1blocks_1_1wav__header__info.xml
+share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1buftype.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1fec_1_1code_1_1block__data.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1fec_1_1code_1_1matrix.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1fec_1_1viterbi__state.xml
@@ -13928,6 +14498,7 @@ share/doc/gnuradio-${PKGVERSION}/xml/str
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1fft_1_1fft__inbuf_3_01float_00_01false_01_4.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1fft_1_1fft__outbuf.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1fft_1_1fft__outbuf_3_01float_00_01true_01_4.xml
+share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1iio_1_1ctxInfo.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1soapy_1_1device__deleter.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1tag__t.xml
 share/doc/gnuradio-${PKGVERSION}/xml/structgr_1_1tpb__detail.xml
@@ -13983,8 +14554,6 @@ share/doc/gnuradio-${PKGVERSION}/xml/syn
 share/doc/gnuradio-${PKGVERSION}/xml/sync__interpolator__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/sys__paths_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/sys__paths__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/tag__checker_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/tag__checker__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tag__debug_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tag__debug__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tag__gate_8h.xml
@@ -14011,8 +14580,11 @@ share/doc/gnuradio-${PKGVERSION}/xml/tag
 share/doc/gnuradio-${PKGVERSION}/xml/tags__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tags__strobe_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tags__strobe__pydoc__template_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/tcp__server__sink_8h.xml
-share/doc/gnuradio-${PKGVERSION}/xml/tcp__server__sink__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/tags__to__pdu_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/tags__to__pdu__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/take__skip__to__pdu_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/take__skip__to__pdu__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/tcp__connection_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tcp__sink_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tcp__sink__impl_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tcp__sink__pydoc__template_8h.xml
@@ -14029,6 +14601,8 @@ share/doc/gnuradio-${PKGVERSION}/xml/thr
 share/doc/gnuradio-${PKGVERSION}/xml/throttle_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/throttle__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/timeRasterGlobalData_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/time__delta_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/time__delta__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/time__raster__sink__b_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/time__raster__sink__b__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/time__raster__sink__f_8h.xml
@@ -14057,18 +14631,24 @@ share/doc/gnuradio-${PKGVERSION}/xml/tpc
 share/doc/gnuradio-${PKGVERSION}/xml/tpc__encoder__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/transcendental_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/transcendental__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/transfer__type_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/trigger__mode_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/trigger__mode__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tsb__vector__sink_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tsb__vector__sink__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tuntap__pdu_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/tuntap__pdu__impl_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/tuntap__pdu__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/types_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/uchar__to__float_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/uchar__to__float__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/udp__header__types_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/udp__sink_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/udp__sink__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/udp__sink__pydoc__template_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/udp__source_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/udp__source__impl_8h.xml
+share/doc/gnuradio-${PKGVERSION}/xml/udp__source__pydoc__template_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/uhd_8dox.xml
 share/doc/gnuradio-${PKGVERSION}/xml/uhd__types_8h.xml
 share/doc/gnuradio-${PKGVERSION}/xml/ulaw__decode__bs_8h.xml

Index: pkgsrc/ham/gnuradio-dtv/Makefile
diff -u pkgsrc/ham/gnuradio-dtv/Makefile:1.36 pkgsrc/ham/gnuradio-dtv/Makefile:1.37
--- pkgsrc/ham/gnuradio-dtv/Makefile:1.36       Mon Jan 10 01:46:35 2022
+++ pkgsrc/ham/gnuradio-dtv/Makefile    Sun Jan 16 18:06:26 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.36 2022/01/10 01:46:35 ryoon Exp $
+# $NetBSD: Makefile,v 1.37 2022/01/16 18:06:26 tnn Exp $
 
 PKGNAME=       gnuradio-dtv-${VERSION}
-PKGREVISION=   1
 COMMENT=       Various digital television standards of GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-dtv/PLIST
diff -u pkgsrc/ham/gnuradio-dtv/PLIST:1.11 pkgsrc/ham/gnuradio-dtv/PLIST:1.12
--- pkgsrc/ham/gnuradio-dtv/PLIST:1.11  Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-dtv/PLIST       Sun Jan 16 18:06:26 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.11 2021/12/11 14:57:50 tnn Exp $
+@comment $NetBSD: PLIST,v 1.12 2022/01/16 18:06:26 tnn Exp $
 include/gnuradio/dtv/api.h
 include/gnuradio/dtv/atsc_consts.h
 include/gnuradio/dtv/atsc_deinterleaver.h
@@ -10,6 +10,7 @@ include/gnuradio/dtv/atsc_fpll.h
 include/gnuradio/dtv/atsc_fs_checker.h
 include/gnuradio/dtv/atsc_interleaver.h
 include/gnuradio/dtv/atsc_pad.h
+include/gnuradio/dtv/atsc_plinfo.h
 include/gnuradio/dtv/atsc_randomizer.h
 include/gnuradio/dtv/atsc_rs_decoder.h
 include/gnuradio/dtv/atsc_rs_encoder.h
@@ -62,7 +63,7 @@ lib/cmake/gnuradio/gnuradio-dtvConfig.cm
 lib/cmake/gnuradio/gnuradio-dtvTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-dtvTargets.cmake
 lib/libgnuradio-dtv.so
-lib/libgnuradio-dtv.so.3.9.4
+lib/libgnuradio-dtv.so.3.10.0
 lib/libgnuradio-dtv.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-dtv.pc
 ${PYSITELIB}/gnuradio/dtv/__init__.py

Index: pkgsrc/ham/gnuradio-dtv/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-dtv/buildlink3.mk:1.3 pkgsrc/ham/gnuradio-dtv/buildlink3.mk:1.4
--- pkgsrc/ham/gnuradio-dtv/buildlink3.mk:1.3   Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-dtv/buildlink3.mk       Sun Jan 16 18:06:26 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.3 2021/12/11 14:57:50 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/01/16 18:06:26 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-dtv
 
 .if !defined(GNURADIO_DTV_BUILDLINK3_MK)
 GNURADIO_DTV_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-dtv+=   gnuradio-dtv>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-dtv+=   gnuradio-dtv>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-dtv+=   gnuradio-dtv>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-dtv?=     ../../ham/gnuradio-dtv
 .endif # GNURADIO_DTV_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-fec/Makefile
diff -u pkgsrc/ham/gnuradio-fec/Makefile:1.35 pkgsrc/ham/gnuradio-fec/Makefile:1.36
--- pkgsrc/ham/gnuradio-fec/Makefile:1.35       Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-fec/Makefile    Sun Jan 16 18:06:26 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.35 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.36 2022/01/16 18:06:26 tnn Exp $
 
 PKGNAME=       gnuradio-fec-${VERSION}
-PKGREVISION=   1
 COMMENT=       Forward Error Correction blocks, utilities, & examples of GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-fec/PLIST
diff -u pkgsrc/ham/gnuradio-fec/PLIST:1.12 pkgsrc/ham/gnuradio-fec/PLIST:1.13
--- pkgsrc/ham/gnuradio-fec/PLIST:1.12  Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-fec/PLIST       Sun Jan 16 18:06:26 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.12 2021/12/11 14:57:50 tnn Exp $
+@comment $NetBSD: PLIST,v 1.13 2022/01/16 18:06:26 tnn Exp $
 bin/polar_channel_construction
 include/gnuradio/fec/alist.h
 include/gnuradio/fec/api.h
@@ -54,7 +54,7 @@ lib/cmake/gnuradio/gnuradio-fecConfig.cm
 lib/cmake/gnuradio/gnuradio-fecTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-fecTargets.cmake
 lib/libgnuradio-fec.so
-lib/libgnuradio-fec.so.3.9.4
+lib/libgnuradio-fec.so.3.10.0
 lib/libgnuradio-fec.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-fec.pc
 ${PYSITELIB}/gnuradio/fec/LDPC/Generate_LDPC_matrix.py

Index: pkgsrc/ham/gnuradio-fec/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-fec/buildlink3.mk:1.3 pkgsrc/ham/gnuradio-fec/buildlink3.mk:1.4
--- pkgsrc/ham/gnuradio-fec/buildlink3.mk:1.3   Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-fec/buildlink3.mk       Sun Jan 16 18:06:26 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.3 2021/12/11 14:57:50 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/01/16 18:06:26 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-fec
 
 .if !defined(GNURADIO_FEC_BUILDLINK3_MK)
 GNURADIO_FEC_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-fec+=   gnuradio-fec>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-fec+=   gnuradio-fec>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-fec+=   gnuradio-fec>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-fec?=     ../../ham/gnuradio-fec
 .endif # GNURADIO_FEC_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-network/Makefile
diff -u pkgsrc/ham/gnuradio-network/Makefile:1.11 pkgsrc/ham/gnuradio-network/Makefile:1.12
--- pkgsrc/ham/gnuradio-network/Makefile:1.11   Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-network/Makefile        Sun Jan 16 18:06:26 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.11 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.12 2022/01/16 18:06:26 tnn Exp $
 
 PKGNAME=       gnuradio-network-${VERSION}
-PKGREVISION=   1
 COMMENT=       Network blocks for GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-network/PLIST
diff -u pkgsrc/ham/gnuradio-network/PLIST:1.3 pkgsrc/ham/gnuradio-network/PLIST:1.4
--- pkgsrc/ham/gnuradio-network/PLIST:1.3       Sat Dec 11 14:57:50 2021
+++ pkgsrc/ham/gnuradio-network/PLIST   Sun Jan 16 18:06:26 2022
@@ -1,7 +1,9 @@
-@comment $NetBSD: PLIST,v 1.3 2021/12/11 14:57:50 tnn Exp $
+@comment $NetBSD: PLIST,v 1.4 2022/01/16 18:06:26 tnn Exp $
 include/gnuradio/network/api.h
 include/gnuradio/network/packet_headers.h
+include/gnuradio/network/socket_pdu.h
 include/gnuradio/network/tcp_sink.h
+include/gnuradio/network/tuntap_pdu.h
 include/gnuradio/network/udp_header_types.h
 include/gnuradio/network/udp_sink.h
 include/gnuradio/network/udp_source.h
@@ -9,7 +11,7 @@ lib/cmake/gnuradio/gnuradio-networkConfi
 lib/cmake/gnuradio/gnuradio-networkTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-networkTargets.cmake
 lib/libgnuradio-network.so
-lib/libgnuradio-network.so.3.9.4
+lib/libgnuradio-network.so.3.10.0
 lib/libgnuradio-network.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-network.pc
 ${PYSITELIB}/gnuradio/network/__init__.py
@@ -31,7 +33,9 @@ share/gnuradio/examples/network/test_udp
 share/gnuradio/examples/network/test_udp_source.grc
 share/gnuradio/examples/network/test_udp_source_ipv6.grc
 share/gnuradio/examples/network/test_udp_source_seq.grc
+share/gnuradio/grc/blocks/network_socket_pdu.block.yml
 share/gnuradio/grc/blocks/network_tcp_sink.block.yml
 share/gnuradio/grc/blocks/network_tcp_source.block.yml
+share/gnuradio/grc/blocks/network_tuntap_pdu.block.yml
 share/gnuradio/grc/blocks/network_udp_sink.block.yml
 share/gnuradio/grc/blocks/network_udp_source.block.yml

Index: pkgsrc/ham/gnuradio-qtgui/Makefile
diff -u pkgsrc/ham/gnuradio-qtgui/Makefile:1.44 pkgsrc/ham/gnuradio-qtgui/Makefile:1.45
--- pkgsrc/ham/gnuradio-qtgui/Makefile:1.44     Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-qtgui/Makefile  Sun Jan 16 18:06:26 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.44 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.45 2022/01/16 18:06:26 tnn Exp $
 
 PKGNAME=       gnuradio-qtgui-${VERSION}
-PKGREVISION=   1
 COMMENT=       Qt GUI module of GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-qtgui/PLIST
diff -u pkgsrc/ham/gnuradio-qtgui/PLIST:1.13 pkgsrc/ham/gnuradio-qtgui/PLIST:1.14
--- pkgsrc/ham/gnuradio-qtgui/PLIST:1.13        Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-qtgui/PLIST     Sun Jan 16 18:06:26 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.13 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.14 2022/01/16 18:06:26 tnn Exp $
 include/gnuradio/qtgui/ConstellationDisplayPlot.h
 include/gnuradio/qtgui/DisplayPlot.h
 include/gnuradio/qtgui/EyeDisplayPlot.h
@@ -54,7 +54,7 @@ lib/cmake/gnuradio/gnuradio-qtguiConfig.
 lib/cmake/gnuradio/gnuradio-qtguiTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-qtguiTargets.cmake
 lib/libgnuradio-qtgui.so
-lib/libgnuradio-qtgui.so.3.9.4
+lib/libgnuradio-qtgui.so.3.10.0
 lib/libgnuradio-qtgui.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-qtgui.pc
 ${PYSITELIB}/gnuradio/qtgui/__init__.py

Index: pkgsrc/ham/gnuradio-soapy-sdr/Makefile
diff -u pkgsrc/ham/gnuradio-soapy-sdr/Makefile:1.6 pkgsrc/ham/gnuradio-soapy-sdr/Makefile:1.7
--- pkgsrc/ham/gnuradio-soapy-sdr/Makefile:1.6  Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-soapy-sdr/Makefile      Sun Jan 16 18:06:26 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.6 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.7 2022/01/16 18:06:26 tnn Exp $
 
 PKGNAME=       gnuradio-soapy-sdr-${VERSION}
-PKGREVISION=   1
 COMMENT=       GNU Radio bindings for SoapySDR
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-soapy-sdr/PLIST
diff -u pkgsrc/ham/gnuradio-soapy-sdr/PLIST:1.2 pkgsrc/ham/gnuradio-soapy-sdr/PLIST:1.3
--- pkgsrc/ham/gnuradio-soapy-sdr/PLIST:1.2     Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-soapy-sdr/PLIST Sun Jan 16 18:06:26 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.2 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.3 2022/01/16 18:06:26 tnn Exp $
 include/gnuradio/soapy/api.h
 include/gnuradio/soapy/block.h
 include/gnuradio/soapy/sink.h
@@ -8,7 +8,7 @@ lib/cmake/gnuradio/gnuradio-soapyConfig.
 lib/cmake/gnuradio/gnuradio-soapyTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-soapyTargets.cmake
 lib/libgnuradio-soapy.so
-lib/libgnuradio-soapy.so.3.9.4
+lib/libgnuradio-soapy.so.3.10.0
 lib/libgnuradio-soapy.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-soapy.pc
 ${PYSITELIB}/gnuradio/soapy/__init__.py

Index: pkgsrc/ham/gnuradio-soapy-sdr/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-soapy-sdr/buildlink3.mk:1.1 pkgsrc/ham/gnuradio-soapy-sdr/buildlink3.mk:1.2
--- pkgsrc/ham/gnuradio-soapy-sdr/buildlink3.mk:1.1     Sun Jun 27 08:11:54 2021
+++ pkgsrc/ham/gnuradio-soapy-sdr/buildlink3.mk Sun Jan 16 18:06:26 2022
@@ -1,11 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.1 2021/06/27 08:11:54 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.2 2022/01/16 18:06:26 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-soapy-sdr
 
 .if !defined(GNURADIO_SOAPY_SDR_BUILDLINK3_MK)
 GNURADIO_SOAPY_SDR_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-soapy-sdr+=     gnuradio-soapy-sdr>=3.9.2.0
+BUILDLINK_API_DEPENDS.gnuradio-soapy-sdr+=     gnuradio-soapy-sdr>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-soapy-sdr?=       ../../ham/gnuradio-soapy-sdr
 
 .include       "../../ham/soapy-sdr/buildlink3.mk"

Index: pkgsrc/ham/gnuradio-trellis/Makefile
diff -u pkgsrc/ham/gnuradio-trellis/Makefile:1.52 pkgsrc/ham/gnuradio-trellis/Makefile:1.53
--- pkgsrc/ham/gnuradio-trellis/Makefile:1.52   Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-trellis/Makefile        Sun Jan 16 18:06:27 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.52 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.53 2022/01/16 18:06:27 tnn Exp $
 
 PKGNAME=       gnuradio-trellis-${VERSION}
-PKGREVISION=   1
 COMMENT=       Trellis-based encoding and decoding algorithms for GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-trellis/PLIST
diff -u pkgsrc/ham/gnuradio-trellis/PLIST:1.13 pkgsrc/ham/gnuradio-trellis/PLIST:1.14
--- pkgsrc/ham/gnuradio-trellis/PLIST:1.13      Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-trellis/PLIST   Sun Jan 16 18:06:27 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.13 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.14 2022/01/16 18:06:27 tnn Exp $
 include/gnuradio/trellis/api.h
 include/gnuradio/trellis/base.h
 include/gnuradio/trellis/calc_metric.h
@@ -25,7 +25,7 @@ lib/cmake/gnuradio/gnuradio-trellisConfi
 lib/cmake/gnuradio/gnuradio-trellisTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-trellisTargets.cmake
 lib/libgnuradio-trellis.so
-lib/libgnuradio-trellis.so.3.9.4
+lib/libgnuradio-trellis.so.3.10.0
 lib/libgnuradio-trellis.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-trellis.pc
 ${PYSITELIB}/gnuradio/trellis/__init__.py

Index: pkgsrc/ham/gnuradio-trellis/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-trellis/buildlink3.mk:1.4 pkgsrc/ham/gnuradio-trellis/buildlink3.mk:1.5
--- pkgsrc/ham/gnuradio-trellis/buildlink3.mk:1.4       Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-trellis/buildlink3.mk   Sun Jan 16 18:06:27 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.4 2021/12/11 14:57:51 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.5 2022/01/16 18:06:27 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-trellis
 
 .if !defined(GNURADIO_TRELLIS_BUILDLINK3_MK)
 GNURADIO_TRELLIS_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-trellis+=       gnuradio-trellis>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-trellis+=       gnuradio-trellis>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-trellis+=       gnuradio-trellis>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-trellis?=         ../../ham/gnuradio-trellis
 .endif # GNURADIO_TRELLIS_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-uhd/Makefile
diff -u pkgsrc/ham/gnuradio-uhd/Makefile:1.35 pkgsrc/ham/gnuradio-uhd/Makefile:1.36
--- pkgsrc/ham/gnuradio-uhd/Makefile:1.35       Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-uhd/Makefile    Sun Jan 16 18:06:27 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.35 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.36 2022/01/16 18:06:27 tnn Exp $
 
 PKGNAME=       gnuradio-uhd-${VERSION}
-PKGREVISION=   1
 COMMENT=       Uhd-based encoding and decoding algorithms for GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-uhd/PLIST
diff -u pkgsrc/ham/gnuradio-uhd/PLIST:1.9 pkgsrc/ham/gnuradio-uhd/PLIST:1.10
--- pkgsrc/ham/gnuradio-uhd/PLIST:1.9   Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-uhd/PLIST       Sun Jan 16 18:06:27 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.9 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.10 2022/01/16 18:06:27 tnn Exp $
 bin/uhd_fft
 bin/uhd_rx_cfile
 bin/uhd_rx_nogui
@@ -13,7 +13,7 @@ lib/cmake/gnuradio/gnuradio-uhdConfig.cm
 lib/cmake/gnuradio/gnuradio-uhdTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-uhdTargets.cmake
 lib/libgnuradio-uhd.so
-lib/libgnuradio-uhd.so.3.9.4
+lib/libgnuradio-uhd.so.3.10.0
 lib/libgnuradio-uhd.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-uhd.pc
 ${PYSITELIB}/gnuradio/uhd/__init__.py

Index: pkgsrc/ham/gnuradio-uhd/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-uhd/buildlink3.mk:1.3 pkgsrc/ham/gnuradio-uhd/buildlink3.mk:1.4
--- pkgsrc/ham/gnuradio-uhd/buildlink3.mk:1.3   Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-uhd/buildlink3.mk       Sun Jan 16 18:06:27 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.3 2021/12/11 14:57:51 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/01/16 18:06:27 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-uhd
 
 .if !defined(GNURADIO_UHD_BUILDLINK3_MK)
 GNURADIO_UHD_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-uhd+=   gnuradio-uhd>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-uhd+=   gnuradio-uhd>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-uhd+=   gnuradio-uhd>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-uhd?=     ../../ham/gnuradio-uhd
 .endif # GNURADIO_UHD_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-utils/Makefile
diff -u pkgsrc/ham/gnuradio-utils/Makefile:1.36 pkgsrc/ham/gnuradio-utils/Makefile:1.37
--- pkgsrc/ham/gnuradio-utils/Makefile:1.36     Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-utils/Makefile  Sun Jan 16 18:06:27 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.36 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.37 2022/01/16 18:06:27 tnn Exp $
 
 PKGNAME=       gnuradio-utils-${VERSION}
-PKGREVISION=   1
 COMMENT=       Utilities in GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-utils/PLIST
diff -u pkgsrc/ham/gnuradio-utils/PLIST:1.5 pkgsrc/ham/gnuradio-utils/PLIST:1.6
--- pkgsrc/ham/gnuradio-utils/PLIST:1.5 Wed Apr  7 16:14:09 2021
+++ pkgsrc/ham/gnuradio-utils/PLIST     Sun Jan 16 18:06:27 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.5 2021/04/07 16:14:09 tnn Exp $
+@comment $NetBSD: PLIST,v 1.6 2022/01/16 18:06:27 tnn Exp $
 bin/gr_modtool
 bin/gr_plot
 bin/gr_plot_const
@@ -172,12 +172,11 @@ ${PYSITELIB}/gnuradio/pyqt_plot.py
 ${PYSITELIB}/gnuradio/pyqt_plot.pyc
 ${PYSITELIB}/gnuradio/pyqt_plot.pyo
 share/gnuradio/examples/modtool.conf
-share/gnuradio/modtool/templates/gr-newmod/.gitignore
 share/gnuradio/modtool/templates/gr-newmod/CMakeLists.txt
 share/gnuradio/modtool/templates/gr-newmod/MANIFEST.md
 share/gnuradio/modtool/templates/gr-newmod/apps/CMakeLists.txt
 share/gnuradio/modtool/templates/gr-newmod/cmake/Modules/CMakeParseArgumentsCopy.cmake
-share/gnuradio/modtool/templates/gr-newmod/cmake/Modules/howtoConfig.cmake
+share/gnuradio/modtool/templates/gr-newmod/cmake/Modules/gnuradio-howtoConfig.cmake
 share/gnuradio/modtool/templates/gr-newmod/cmake/Modules/targetConfig.cmake.in
 share/gnuradio/modtool/templates/gr-newmod/cmake/cmake_uninstall.cmake.in
 share/gnuradio/modtool/templates/gr-newmod/docs/CMakeLists.txt
@@ -193,20 +192,22 @@ share/gnuradio/modtool/templates/gr-newm
 share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/doxyxml/generated/index.py
 share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/doxyxml/generated/indexsuper.py
 share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/doxyxml/text.py
+share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/other/doxypy.py
 share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/other/group_defs.dox
 share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/other/main_page.dox
 share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/pydoc_macros.h
 share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/update_pydoc.py
 share/gnuradio/modtool/templates/gr-newmod/examples/README
 share/gnuradio/modtool/templates/gr-newmod/grc/CMakeLists.txt
-share/gnuradio/modtool/templates/gr-newmod/include/howto/CMakeLists.txt
-share/gnuradio/modtool/templates/gr-newmod/include/howto/api.h
+share/gnuradio/modtool/templates/gr-newmod/include/gnuradio/howto/CMakeLists.txt
+share/gnuradio/modtool/templates/gr-newmod/include/gnuradio/howto/api.h
 share/gnuradio/modtool/templates/gr-newmod/lib/CMakeLists.txt
-share/gnuradio/modtool/templates/gr-newmod/python/CMakeLists.txt
-share/gnuradio/modtool/templates/gr-newmod/python/__init__.py
-share/gnuradio/modtool/templates/gr-newmod/python/bindings/CMakeLists.txt
-share/gnuradio/modtool/templates/gr-newmod/python/bindings/README.md
-share/gnuradio/modtool/templates/gr-newmod/python/bindings/bind_oot_file.py
-share/gnuradio/modtool/templates/gr-newmod/python/bindings/docstrings/README.md
-share/gnuradio/modtool/templates/gr-newmod/python/bindings/header_utils.py
-share/gnuradio/modtool/templates/gr-newmod/python/bindings/python_bindings.cc
+share/gnuradio/modtool/templates/gr-newmod/python/howto/.gitignore
+share/gnuradio/modtool/templates/gr-newmod/python/howto/CMakeLists.txt
+share/gnuradio/modtool/templates/gr-newmod/python/howto/__init__.py
+share/gnuradio/modtool/templates/gr-newmod/python/howto/bindings/CMakeLists.txt
+share/gnuradio/modtool/templates/gr-newmod/python/howto/bindings/README.md
+share/gnuradio/modtool/templates/gr-newmod/python/howto/bindings/bind_oot_file.py
+share/gnuradio/modtool/templates/gr-newmod/python/howto/bindings/docstrings/README.md
+share/gnuradio/modtool/templates/gr-newmod/python/howto/bindings/header_utils.py
+share/gnuradio/modtool/templates/gr-newmod/python/howto/bindings/python_bindings.cc

Index: pkgsrc/ham/gnuradio-utils/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-utils/buildlink3.mk:1.3 pkgsrc/ham/gnuradio-utils/buildlink3.mk:1.4
--- pkgsrc/ham/gnuradio-utils/buildlink3.mk:1.3 Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-utils/buildlink3.mk     Sun Jan 16 18:06:27 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.3 2021/12/11 14:57:51 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/01/16 18:06:27 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-utils
 
 .if !defined(GNURADIO_UTILS_BUILDLINK3_MK)
 GNURADIO_UTILS_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-utils+= gnuradio-utils>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-utils+= gnuradio-utils>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-utils+= gnuradio-utils>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-utils?=   ../../ham/gnuradio-utils
 .endif # GNURADIO_UTILS_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-video-sdl/Makefile
diff -u pkgsrc/ham/gnuradio-video-sdl/Makefile:1.49 pkgsrc/ham/gnuradio-video-sdl/Makefile:1.50
--- pkgsrc/ham/gnuradio-video-sdl/Makefile:1.49 Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-video-sdl/Makefile      Sun Jan 16 18:06:27 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.49 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.50 2022/01/16 18:06:27 tnn Exp $
 
 PKGNAME=       gnuradio-video-sdl-${VERSION}
-PKGREVISION=   1
 COMMENT=       SDL (Simple DirectMedia Layer) bindings for GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-video-sdl/PLIST
diff -u pkgsrc/ham/gnuradio-video-sdl/PLIST:1.11 pkgsrc/ham/gnuradio-video-sdl/PLIST:1.12
--- pkgsrc/ham/gnuradio-video-sdl/PLIST:1.11    Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-video-sdl/PLIST Sun Jan 16 18:06:27 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.11 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.12 2022/01/16 18:06:27 tnn Exp $
 include/gnuradio/video_sdl/api.h
 include/gnuradio/video_sdl/sink_s.h
 include/gnuradio/video_sdl/sink_uc.h
@@ -6,7 +6,7 @@ lib/cmake/gnuradio/gnuradio-video-sdlCon
 lib/cmake/gnuradio/gnuradio-video-sdlTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-video-sdlTargets.cmake
 lib/libgnuradio-video-sdl.so
-lib/libgnuradio-video-sdl.so.3.9.4
+lib/libgnuradio-video-sdl.so.3.10.0
 lib/libgnuradio-video-sdl.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-video-sdl.pc
 ${PYSITELIB}/gnuradio/video_sdl/__init__.py

Index: pkgsrc/ham/gnuradio-video-sdl/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-video-sdl/buildlink3.mk:1.3 pkgsrc/ham/gnuradio-video-sdl/buildlink3.mk:1.4
--- pkgsrc/ham/gnuradio-video-sdl/buildlink3.mk:1.3     Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-video-sdl/buildlink3.mk Sun Jan 16 18:06:27 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.3 2021/12/11 14:57:51 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/01/16 18:06:27 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-video-sdl
 
 .if !defined(GNURADIO_VIDEO_SDL_BUILDLINK3_MK)
 GNURADIO_VIDEO_SDL_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-video-sdl+=     gnuradio-video-sdl>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-video-sdl+=     gnuradio-video-sdl>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-video-sdl+=     gnuradio-video-sdl>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-video-sdl?=       ../../ham/gnuradio-video-sdl
 .endif # GNURADIO_VIDEO_SDL_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-vocoder/Makefile
diff -u pkgsrc/ham/gnuradio-vocoder/Makefile:1.34 pkgsrc/ham/gnuradio-vocoder/Makefile:1.35
--- pkgsrc/ham/gnuradio-vocoder/Makefile:1.34   Mon Jan 10 01:46:36 2022
+++ pkgsrc/ham/gnuradio-vocoder/Makefile        Sun Jan 16 18:06:27 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.34 2022/01/10 01:46:36 ryoon Exp $
+# $NetBSD: Makefile,v 1.35 2022/01/16 18:06:27 tnn Exp $
 
 PKGNAME=       gnuradio-vocoder-${VERSION}
-PKGREVISION=   1
 COMMENT=       All available vocoders in GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-vocoder/PLIST
diff -u pkgsrc/ham/gnuradio-vocoder/PLIST:1.9 pkgsrc/ham/gnuradio-vocoder/PLIST:1.10
--- pkgsrc/ham/gnuradio-vocoder/PLIST:1.9       Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-vocoder/PLIST   Sun Jan 16 18:06:27 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.9 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.10 2022/01/16 18:06:27 tnn Exp $
 include/gnuradio/vocoder/alaw_decode_bs.h
 include/gnuradio/vocoder/alaw_encode_sb.h
 include/gnuradio/vocoder/api.h
@@ -24,7 +24,7 @@ lib/cmake/gnuradio/gnuradio-vocoderConfi
 lib/cmake/gnuradio/gnuradio-vocoderTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-vocoderTargets.cmake
 lib/libgnuradio-vocoder.so
-lib/libgnuradio-vocoder.so.3.9.4
+lib/libgnuradio-vocoder.so.3.10.0
 lib/libgnuradio-vocoder.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-vocoder.pc
 ${PYSITELIB}/gnuradio/vocoder/__init__.py

Index: pkgsrc/ham/gnuradio-vocoder/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-vocoder/buildlink3.mk:1.4 pkgsrc/ham/gnuradio-vocoder/buildlink3.mk:1.5
--- pkgsrc/ham/gnuradio-vocoder/buildlink3.mk:1.4       Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-vocoder/buildlink3.mk   Sun Jan 16 18:06:27 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.4 2021/12/11 14:57:51 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.5 2022/01/16 18:06:27 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-vocoder
 
 .if !defined(GNURADIO_VOCODER_BUILDLINK3_MK)
 GNURADIO_VOCODER_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-vocoder+=       gnuradio-vocoder>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-vocoder+=       gnuradio-vocoder>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-vocoder+=       gnuradio-vocoder>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-vocoder?=         ../../ham/gnuradio-vocoder
 .endif # GNURADIO_VOCODER_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-wavelet/Makefile
diff -u pkgsrc/ham/gnuradio-wavelet/Makefile:1.33 pkgsrc/ham/gnuradio-wavelet/Makefile:1.34
--- pkgsrc/ham/gnuradio-wavelet/Makefile:1.33   Mon Jan 10 01:46:37 2022
+++ pkgsrc/ham/gnuradio-wavelet/Makefile        Sun Jan 16 18:06:27 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.33 2022/01/10 01:46:37 ryoon Exp $
+# $NetBSD: Makefile,v 1.34 2022/01/16 18:06:27 tnn Exp $
 
 PKGNAME=       gnuradio-wavelet-${VERSION}
-PKGREVISION=   1
 COMMENT=       Wavelet transform of GNU Radio
 
 .include       "../../ham/gnuradio-core/Makefile.common"

Index: pkgsrc/ham/gnuradio-wavelet/PLIST
diff -u pkgsrc/ham/gnuradio-wavelet/PLIST:1.7 pkgsrc/ham/gnuradio-wavelet/PLIST:1.8
--- pkgsrc/ham/gnuradio-wavelet/PLIST:1.7       Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-wavelet/PLIST   Sun Jan 16 18:06:27 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.7 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.8 2022/01/16 18:06:27 tnn Exp $
 include/gnuradio/wavelet/api.h
 include/gnuradio/wavelet/squash_ff.h
 include/gnuradio/wavelet/wavelet_ff.h
@@ -7,7 +7,7 @@ lib/cmake/gnuradio/gnuradio-waveletConfi
 lib/cmake/gnuradio/gnuradio-waveletTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-waveletTargets.cmake
 lib/libgnuradio-wavelet.so
-lib/libgnuradio-wavelet.so.3.9.4
+lib/libgnuradio-wavelet.so.3.10.0
 lib/libgnuradio-wavelet.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-wavelet.pc
 ${PYSITELIB}/gnuradio/wavelet/__init__.py

Index: pkgsrc/ham/gnuradio-wavelet/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-wavelet/buildlink3.mk:1.4 pkgsrc/ham/gnuradio-wavelet/buildlink3.mk:1.5
--- pkgsrc/ham/gnuradio-wavelet/buildlink3.mk:1.4       Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-wavelet/buildlink3.mk   Sun Jan 16 18:06:27 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.4 2021/12/11 14:57:51 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.5 2022/01/16 18:06:27 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-wavelet
 
 .if !defined(GNURADIO_WAVELET_BUILDLINK3_MK)
 GNURADIO_WAVELET_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-wavelet+=       gnuradio-wavelet>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-wavelet+=       gnuradio-wavelet>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-wavelet+=       gnuradio-wavelet>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-wavelet?=         ../../ham/gnuradio-wavelet
 .endif # GNURADIO_WAVELET_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-zeromq/Makefile
diff -u pkgsrc/ham/gnuradio-zeromq/Makefile:1.36 pkgsrc/ham/gnuradio-zeromq/Makefile:1.37
--- pkgsrc/ham/gnuradio-zeromq/Makefile:1.36    Mon Jan 10 01:46:37 2022
+++ pkgsrc/ham/gnuradio-zeromq/Makefile Sun Jan 16 18:06:27 2022
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.36 2022/01/10 01:46:37 ryoon Exp $
+# $NetBSD: Makefile,v 1.37 2022/01/16 18:06:27 tnn Exp $
 
 PKGNAME=       gnuradio-zeromq-${VERSION}
-PKGREVISION=   1
 COMMENT=       All of the zeromq blocks, utilities, and examples
 
 #  zmq.hpp: No such file or directory

Index: pkgsrc/ham/gnuradio-zeromq/PLIST
diff -u pkgsrc/ham/gnuradio-zeromq/PLIST:1.8 pkgsrc/ham/gnuradio-zeromq/PLIST:1.9
--- pkgsrc/ham/gnuradio-zeromq/PLIST:1.8        Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-zeromq/PLIST    Sun Jan 16 18:06:27 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.8 2021/12/11 14:57:51 tnn Exp $
+@comment $NetBSD: PLIST,v 1.9 2022/01/16 18:06:27 tnn Exp $
 include/gnuradio/zeromq/api.h
 include/gnuradio/zeromq/pub_msg_sink.h
 include/gnuradio/zeromq/pub_sink.h
@@ -16,7 +16,7 @@ lib/cmake/gnuradio/gnuradio-zeromqConfig
 lib/cmake/gnuradio/gnuradio-zeromqTargets-release.cmake
 lib/cmake/gnuradio/gnuradio-zeromqTargets.cmake
 lib/libgnuradio-zeromq.so
-lib/libgnuradio-zeromq.so.3.9.4
+lib/libgnuradio-zeromq.so.3.10.0
 lib/libgnuradio-zeromq.so.${PKGVERSION}
 lib/pkgconfig/gnuradio-zeromq.pc
 ${PYSITELIB}/gnuradio/zeromq/__init__.py

Index: pkgsrc/ham/gnuradio-zeromq/buildlink3.mk
diff -u pkgsrc/ham/gnuradio-zeromq/buildlink3.mk:1.3 pkgsrc/ham/gnuradio-zeromq/buildlink3.mk:1.4
--- pkgsrc/ham/gnuradio-zeromq/buildlink3.mk:1.3        Sat Dec 11 14:57:51 2021
+++ pkgsrc/ham/gnuradio-zeromq/buildlink3.mk    Sun Jan 16 18:06:27 2022
@@ -1,12 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.3 2021/12/11 14:57:51 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.4 2022/01/16 18:06:27 tnn Exp $
 
 BUILDLINK_TREE+=       gnuradio-zeromq
 
 .if !defined(GNURADIO_ZEROMQ_BUILDLINK3_MK)
 GNURADIO_ZEROMQ_BUILDLINK3_MK:=
 
-BUILDLINK_API_DEPENDS.gnuradio-zeromq+=        gnuradio-zeromq>=3.9.4.0
-BUILDLINK_ABI_DEPENDS.gnuradio-zeromq+=        gnuradio-zeromq>=3.9.4.0
+BUILDLINK_API_DEPENDS.gnuradio-zeromq+=        gnuradio-zeromq>=3.10.0.0
 BUILDLINK_PKGSRCDIR.gnuradio-zeromq?=  ../../ham/gnuradio-zeromq
 .endif # GNURADIO_ZEROMQ_BUILDLINK3_MK
 

Index: pkgsrc/ham/gnuradio-zeromq/files/zmq.hpp
diff -u pkgsrc/ham/gnuradio-zeromq/files/zmq.hpp:1.1 pkgsrc/ham/gnuradio-zeromq/files/zmq.hpp:1.2
--- pkgsrc/ham/gnuradio-zeromq/files/zmq.hpp:1.1        Mon Oct 13 12:51:10 2014
+++ pkgsrc/ham/gnuradio-zeromq/files/zmq.hpp    Sun Jan 16 18:06:27 2022
@@ -1,4 +1,5 @@
 /*
+    Copyright (c) 2016-2017 ZeroMQ community
     Copyright (c) 2009-2011 250bpm s.r.o.
     Copyright (c) 2011 Botond Ballo
     Copyright (c) 2007-2009 iMatix Corporation
@@ -25,35 +26,175 @@
 #ifndef __ZMQ_HPP_INCLUDED__
 #define __ZMQ_HPP_INCLUDED__
 
+#ifdef _WIN32
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#endif
+
+// included here for _HAS_CXX* macros
 #include <zmq.h>
 
-#include <algorithm>
+#if defined(_MSVC_LANG)
+#define CPPZMQ_LANG _MSVC_LANG
+#else
+#define CPPZMQ_LANG __cplusplus
+#endif
+// overwrite if specific language macros indicate higher version
+#if defined(_HAS_CXX14) && _HAS_CXX14 && CPPZMQ_LANG < 201402L
+#undef CPPZMQ_LANG
+#define CPPZMQ_LANG 201402L
+#endif
+#if defined(_HAS_CXX17) && _HAS_CXX17 && CPPZMQ_LANG < 201703L
+#undef CPPZMQ_LANG
+#define CPPZMQ_LANG 201703L
+#endif
+
+// macros defined if has a specific standard or greater
+#if CPPZMQ_LANG >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900)
+#define ZMQ_CPP11
+#endif
+#if CPPZMQ_LANG >= 201402L
+#define ZMQ_CPP14
+#endif
+#if CPPZMQ_LANG >= 201703L
+#define ZMQ_CPP17
+#endif
+
+#if defined(ZMQ_CPP14) && !defined(_MSC_VER)
+#define ZMQ_DEPRECATED(msg) [[deprecated(msg)]]
+#elif defined(_MSC_VER)
+#define ZMQ_DEPRECATED(msg) __declspec(deprecated(msg))
+#elif defined(__GNUC__)
+#define ZMQ_DEPRECATED(msg) __attribute__((deprecated(msg)))
+#else
+#define ZMQ_DEPRECATED(msg)
+#endif
+
+#if defined(ZMQ_CPP17)
+#define ZMQ_NODISCARD [[nodiscard]]
+#else
+#define ZMQ_NODISCARD
+#endif
+
+#if defined(ZMQ_CPP11)
+#define ZMQ_NOTHROW noexcept
+#define ZMQ_EXPLICIT explicit
+#define ZMQ_OVERRIDE override
+#define ZMQ_NULLPTR nullptr
+#define ZMQ_CONSTEXPR_FN constexpr
+#define ZMQ_CONSTEXPR_VAR constexpr
+#define ZMQ_CPP11_DEPRECATED(msg) ZMQ_DEPRECATED(msg)
+#else
+#define ZMQ_NOTHROW throw()
+#define ZMQ_EXPLICIT
+#define ZMQ_OVERRIDE
+#define ZMQ_NULLPTR 0
+#define ZMQ_CONSTEXPR_FN
+#define ZMQ_CONSTEXPR_VAR const
+#define ZMQ_CPP11_DEPRECATED(msg)
+#endif
+#if defined(ZMQ_CPP14) && (!defined(_MSC_VER) || _MSC_VER > 1900)
+#define ZMQ_EXTENDED_CONSTEXPR
+#endif
+#if defined(ZMQ_CPP17)
+#define ZMQ_INLINE_VAR inline
+#define ZMQ_CONSTEXPR_IF constexpr
+#else
+#define ZMQ_INLINE_VAR
+#define ZMQ_CONSTEXPR_IF
+#endif
+
 #include <cassert>
 #include <cstring>
-#include <string>
+
+#include <algorithm>
 #include <exception>
+#include <iomanip>
+#include <sstream>
+#include <string>
+#include <vector>
+#ifdef ZMQ_CPP11
+#include <array>
+#include <chrono>
+#include <tuple>
+#include <memory>
+#endif
+
+#if defined(__has_include) && defined(ZMQ_CPP17)
+#define CPPZMQ_HAS_INCLUDE_CPP17(X) __has_include(X)
+#else
+#define CPPZMQ_HAS_INCLUDE_CPP17(X) 0
+#endif
+
+#if CPPZMQ_HAS_INCLUDE_CPP17(<optional>) && !defined(CPPZMQ_HAS_OPTIONAL)
+#define CPPZMQ_HAS_OPTIONAL 1
+#endif
+#ifndef CPPZMQ_HAS_OPTIONAL
+#define CPPZMQ_HAS_OPTIONAL 0
+#elif CPPZMQ_HAS_OPTIONAL
+#include <optional>
+#endif
+
+#if CPPZMQ_HAS_INCLUDE_CPP17(<string_view>) && !defined(CPPZMQ_HAS_STRING_VIEW)
+#define CPPZMQ_HAS_STRING_VIEW 1
+#endif
+#ifndef CPPZMQ_HAS_STRING_VIEW
+#define CPPZMQ_HAS_STRING_VIEW 0
+#elif CPPZMQ_HAS_STRING_VIEW
+#include <string_view>
+#endif
+
+/*  Version macros for compile-time API version detection                     */
+#define CPPZMQ_VERSION_MAJOR 4
+#define CPPZMQ_VERSION_MINOR 8
+#define CPPZMQ_VERSION_PATCH 1
+
+#define CPPZMQ_VERSION                                                              \
+    ZMQ_MAKE_VERSION(CPPZMQ_VERSION_MAJOR, CPPZMQ_VERSION_MINOR,                    \
+                     CPPZMQ_VERSION_PATCH)
 
 //  Detect whether the compiler supports C++11 rvalue references.
-#if (defined(__GNUC__) && (__GNUC__ > 4 || \
-      (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && \
-      defined(__GXX_EXPERIMENTAL_CXX0X__))
-    #define ZMQ_HAS_RVALUE_REFS
-    #define ZMQ_DELETED_FUNCTION = delete
+#if (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2))   \
+     && defined(__GXX_EXPERIMENTAL_CXX0X__))
+#define ZMQ_HAS_RVALUE_REFS
+#define ZMQ_DELETED_FUNCTION = delete
 #elif defined(__clang__)
-    #if __has_feature(cxx_rvalue_references)
-        #define ZMQ_HAS_RVALUE_REFS
-    #endif
-
-    #if __has_feature(cxx_deleted_functions)
-        #define ZMQ_DELETED_FUNCTION = delete
-    #else
-        #define ZMQ_DELETED_FUNCTION
-    #endif
+#if __has_feature(cxx_rvalue_references)
+#define ZMQ_HAS_RVALUE_REFS
+#endif
+
+#if __has_feature(cxx_deleted_functions)
+#define ZMQ_DELETED_FUNCTION = delete
+#else
+#define ZMQ_DELETED_FUNCTION
+#endif
+#elif defined(_MSC_VER) && (_MSC_VER >= 1900)
+#define ZMQ_HAS_RVALUE_REFS
+#define ZMQ_DELETED_FUNCTION = delete
 #elif defined(_MSC_VER) && (_MSC_VER >= 1600)
-    #define ZMQ_HAS_RVALUE_REFS
-    #define ZMQ_DELETED_FUNCTION
+#define ZMQ_HAS_RVALUE_REFS
+#define ZMQ_DELETED_FUNCTION
+#else
+#define ZMQ_DELETED_FUNCTION
+#endif
+
+#if defined(ZMQ_CPP11) && !defined(__llvm__) && !defined(__INTEL_COMPILER)          \
+  && defined(__GNUC__) && __GNUC__ < 5
+#define ZMQ_CPP11_PARTIAL
+#elif defined(__GLIBCXX__) && __GLIBCXX__ < 20160805
+//the date here is the last date of gcc 4.9.4, which
+// effectively means libstdc++ from gcc 5.5 and higher won't trigger this branch
+#define ZMQ_CPP11_PARTIAL
+#endif
+
+#ifdef ZMQ_CPP11
+#ifdef ZMQ_CPP11_PARTIAL
+#define ZMQ_IS_TRIVIALLY_COPYABLE(T) __has_trivial_copy(T)
 #else
-    #define ZMQ_DELETED_FUNCTION
+#include <type_traits>
+#define ZMQ_IS_TRIVIALLY_COPYABLE(T) std::is_trivially_copyable<T>::value
+#endif
 #endif
 
 #if ZMQ_VERSION >= ZMQ_MAKE_VERSION(3, 3, 0)
@@ -63,533 +204,2510 @@
 #if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 1, 0)
 #define ZMQ_HAS_PROXY_STEERABLE
 /*  Socket event data  */
-typedef struct {
-    uint16_t event;  // id of the event as bitfield
-    int32_t  value ; // value is either error code, fd or reconnect interval
+typedef struct
+{
+    uint16_t event; // id of the event as bitfield
+    int32_t value;  // value is either error code, fd or reconnect interval
 } zmq_event_t;
 #endif
 
+// Avoid using deprecated message receive function when possible
+#if ZMQ_VERSION < ZMQ_MAKE_VERSION(3, 2, 0)
+#define zmq_msg_recv(msg, socket, flags) zmq_recvmsg(socket, msg, flags)
+#endif
+
+
 // In order to prevent unused variable warnings when building in non-debug
 // mode use this macro to make assertions.
 #ifndef NDEBUG
-#   define ZMQ_ASSERT(expression) assert(expression)
+#define ZMQ_ASSERT(expression) assert(expression)
 #else
-#   define ZMQ_ASSERT(expression) (void)(expression)
+#define ZMQ_ASSERT(expression) (void) (expression)
 #endif
 
 namespace zmq
 {
+#ifdef ZMQ_CPP11
+namespace detail
+{
+namespace ranges
+{
+using std::begin;
+using std::end;
+template<class T> auto begin(T &&r) -> decltype(begin(std::forward<T>(r)))
+{
+    return begin(std::forward<T>(r));
+}
+template<class T> auto end(T &&r) -> decltype(end(std::forward<T>(r)))
+{
+    return end(std::forward<T>(r));
+}
+} // namespace ranges
 
-    typedef zmq_free_fn free_fn;
-    typedef zmq_pollitem_t pollitem_t;
+template<class T> using void_t = void;
 
-    class error_t : public std::exception
-    {
-    public:
+template<class Iter>
+using iter_value_t = typename std::iterator_traits<Iter>::value_type;
 
-        error_t () : errnum (zmq_errno ()) {}
+template<class Range>
+using range_iter_t = decltype(
+  ranges::begin(std::declval<typename std::remove_reference<Range>::type &>()));
 
-        virtual const char *what () const throw ()
-        {
-            return zmq_strerror (errnum);
-        }
+template<class Range> using range_value_t = iter_value_t<range_iter_t<Range>>;
 
-        int num () const
-        {
-            return errnum;
-        }
+template<class T, class = void> struct is_range : std::false_type
+{
+};
 
-    private:
+template<class T>
+struct is_range<
+  T,
+  void_t<decltype(
+    ranges::begin(std::declval<typename std::remove_reference<T>::type &>())
+    == ranges::end(std::declval<typename std::remove_reference<T>::type &>()))>>
+    : std::true_type
+{
+};
 
-        int errnum;
-    };
+} // namespace detail
+#endif
 
-    inline int poll (zmq_pollitem_t *items_, int nitems_, long timeout_ = -1)
-    {
-        int rc = zmq_poll (items_, nitems_, timeout_);
-        if (rc < 0)
-            throw error_t ();
-        return rc;
-    }
+typedef zmq_free_fn free_fn;
+typedef zmq_pollitem_t pollitem_t;
 
-    inline void proxy (void *frontend, void *backend, void *capture)
-    {
-        int rc = zmq_proxy (frontend, backend, capture);
-        if (rc != 0)
-            throw error_t ();
-    }
-    
-#ifdef ZMQ_HAS_PROXY_STEERABLE
-    inline void proxy_steerable (void *frontend, void *backend, void *capture, void *control)
-    {
-        int rc = zmq_proxy_steerable (frontend, backend, capture, control);
-        if (rc != 0)
-            throw error_t ();
-    }
+// duplicate definition from libzmq 4.3.3
+#if defined _WIN32
+#if defined _WIN64
+typedef unsigned __int64 fd_t;
+#else
+typedef unsigned int fd_t;
 #endif
-    
-    inline void version (int *major_, int *minor_, int *patch_)
+#else
+typedef int fd_t;
+#endif
+
+class error_t : public std::exception
+{
+  public:
+    error_t() ZMQ_NOTHROW : errnum(zmq_errno()) {}
+    explicit error_t(int err) ZMQ_NOTHROW : errnum(err) {}
+    virtual const char *what() const ZMQ_NOTHROW ZMQ_OVERRIDE
     {
-        zmq_version (major_, minor_, patch_);
+        return zmq_strerror(errnum);
     }
+    int num() const ZMQ_NOTHROW { return errnum; }
 
-    class message_t
-    {
-        friend class socket_t;
+  private:
+    int errnum;
+};
 
-    public:
+namespace detail {
+inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_)
+{
+    int rc = zmq_poll(items_, static_cast<int>(nitems_), timeout_);
+    if (rc < 0)
+        throw error_t();
+    return rc;
+}
+}
 
-        inline message_t ()
-        {
-            int rc = zmq_msg_init (&msg);
-            if (rc != 0)
-                throw error_t ();
-        }
+#ifdef ZMQ_CPP11
+ZMQ_DEPRECATED("from 4.8.0, use poll taking std::chrono::duration instead of long")
+inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_)
+#else
+inline int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_ = -1)
+#endif
+{
+    return detail::poll(items_, nitems_, timeout_);
+}
 
-        inline explicit message_t (size_t size_)
-        {
-            int rc = zmq_msg_init_size (&msg, size_);
-            if (rc != 0)
-                throw error_t ();
-        }
+ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items")
+inline int poll(zmq_pollitem_t const *items_, size_t nitems_, long timeout_ = -1)
+{
+    return detail::poll(const_cast<zmq_pollitem_t *>(items_), nitems_, timeout_);
+}
 
-        inline message_t (void *data_, size_t size_, free_fn *ffn_,
-            void *hint_ = NULL)
-        {
-            int rc = zmq_msg_init_data (&msg, data_, size_, ffn_, hint_);
-            if (rc != 0)
-                throw error_t ();
-        }
+#ifdef ZMQ_CPP11
+ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items")
+inline int
+poll(zmq_pollitem_t const *items, size_t nitems, std::chrono::milliseconds timeout)
+{
+    return detail::poll(const_cast<zmq_pollitem_t *>(items), nitems,
+                static_cast<long>(timeout.count()));
+}
 
-#ifdef ZMQ_HAS_RVALUE_REFS
-        inline message_t (message_t &&rhs) : msg (rhs.msg)
-        {
-            int rc = zmq_msg_init (&rhs.msg);
-            if (rc != 0)
-                throw error_t ();
-        }
+ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items")
+inline int poll(std::vector<zmq_pollitem_t> const &items,
+                std::chrono::milliseconds timeout)
+{
+    return detail::poll(const_cast<zmq_pollitem_t *>(items.data()), items.size(),
+                static_cast<long>(timeout.count()));
+}
 
-        inline message_t &operator = (message_t &&rhs)
-        {
-            std::swap (msg, rhs.msg);
-            return *this;
-        }
-#endif
+ZMQ_DEPRECATED("from 4.3.1, use poll taking non-const items")
+inline int poll(std::vector<zmq_pollitem_t> const &items, long timeout_ = -1)
+{
+    return detail::poll(const_cast<zmq_pollitem_t *>(items.data()), items.size(), timeout_);
+}
 
-        inline ~message_t ()
-        {
-            int rc = zmq_msg_close (&msg);
-            ZMQ_ASSERT (rc == 0);
-        }
+inline int
+poll(zmq_pollitem_t *items, size_t nitems, std::chrono::milliseconds timeout = std::chrono::milliseconds{-1})
+{
+    return detail::poll(items, nitems, static_cast<long>(timeout.count()));
+}
 
-        inline void rebuild ()
-        {
-            int rc = zmq_msg_close (&msg);
-            if (rc != 0)
-                throw error_t ();
-            rc = zmq_msg_init (&msg);
-            if (rc != 0)
-                throw error_t ();
-        }
+inline int poll(std::vector<zmq_pollitem_t> &items,
+                std::chrono::milliseconds timeout = std::chrono::milliseconds{-1})
+{
+    return detail::poll(items.data(), items.size(), static_cast<long>(timeout.count()));
+}
 
-        inline void rebuild (size_t size_)
-        {
-            int rc = zmq_msg_close (&msg);
-            if (rc != 0)
-                throw error_t ();
-            rc = zmq_msg_init_size (&msg, size_);
-            if (rc != 0)
-                throw error_t ();
-        }
+ZMQ_DEPRECATED("from 4.3.1, use poll taking std::chrono::duration instead of long")
+inline int poll(std::vector<zmq_pollitem_t> &items, long timeout_)
+{
+    return detail::poll(items.data(), items.size(), timeout_);
+}
 
-        inline void rebuild (void *data_, size_t size_, free_fn *ffn_,
-            void *hint_ = NULL)
-        {
-            int rc = zmq_msg_close (&msg);
-            if (rc != 0)
-                throw error_t ();
-            rc = zmq_msg_init_data (&msg, data_, size_, ffn_, hint_);
-            if (rc != 0)
-                throw error_t ();
-        }
+template<std::size_t SIZE>
+inline int poll(std::array<zmq_pollitem_t, SIZE> &items,
+                std::chrono::milliseconds timeout = std::chrono::milliseconds{-1})
+{
+    return detail::poll(items.data(), items.size(), static_cast<long>(timeout.count()));
+}
+#endif
 
-        inline void move (message_t *msg_)
-        {
-            int rc = zmq_msg_move (&msg, &(msg_->msg));
-            if (rc != 0)
-                throw error_t ();
-        }
 
-        inline void copy (message_t *msg_)
-        {
-            int rc = zmq_msg_copy (&msg, &(msg_->msg));
-            if (rc != 0)
-                throw error_t ();
-        }
+inline void version(int *major_, int *minor_, int *patch_)
+{
+    zmq_version(major_, minor_, patch_);
+}
 
-        inline bool more ()
-        {
-            int rc = zmq_msg_more (&msg);
-            return rc != 0;
-        }
+#ifdef ZMQ_CPP11
+inline std::tuple<int, int, int> version()
+{
+    std::tuple<int, int, int> v;
+    zmq_version(&std::get<0>(v), &std::get<1>(v), &std::get<2>(v));
+    return v;
+}
 
-        inline void *data ()
-        {
-            return zmq_msg_data (&msg);
-        }
+#if !defined(ZMQ_CPP11_PARTIAL)
+namespace detail
+{
+template<class T> struct is_char_type
+{
+    // true if character type for string literals in C++11
+    static constexpr bool value =
+      std::is_same<T, char>::value || std::is_same<T, wchar_t>::value
+      || std::is_same<T, char16_t>::value || std::is_same<T, char32_t>::value;
+};
+}
+#endif
 
-        inline const void* data () const
-        {
-            return zmq_msg_data (const_cast<zmq_msg_t*>(&msg));
-        }
+#endif
 
-        inline size_t size () const
-        {
-            return zmq_msg_size (const_cast<zmq_msg_t*>(&msg));
-        }
+class message_t
+{
+  public:
+    message_t() ZMQ_NOTHROW
+    {
+        int rc = zmq_msg_init(&msg);
+        ZMQ_ASSERT(rc == 0);
+    }
 
-    private:
+    explicit message_t(size_t size_)
+    {
+        int rc = zmq_msg_init_size(&msg, size_);
+        if (rc != 0)
+            throw error_t();
+    }
 
-        //  The underlying message
-        zmq_msg_t msg;
+    template<class ForwardIter> message_t(ForwardIter first, ForwardIter last)
+    {
+        typedef typename std::iterator_traits<ForwardIter>::value_type value_t;
 
-        //  Disable implicit message copying, so that users won't use shared
-        //  messages (less efficient) without being aware of the fact.
-        message_t (const message_t&);
-        void operator = (const message_t&);
-    };
+        assert(std::distance(first, last) >= 0);
+        size_t const size_ =
+          static_cast<size_t>(std::distance(first, last)) * sizeof(value_t);
+        int const rc = zmq_msg_init_size(&msg, size_);
+        if (rc != 0)
+            throw error_t();
+        std::copy(first, last, data<value_t>());
+    }
 
-    class context_t
+    message_t(const void *data_, size_t size_)
     {
-        friend class socket_t;
-
-    public:
-        inline context_t ()
-        {
-            ptr = zmq_ctx_new ();
-            if (ptr == NULL)
-                throw error_t ();
+        int rc = zmq_msg_init_size(&msg, size_);
+        if (rc != 0)
+            throw error_t();
+        if (size_) {
+            // this constructor allows (nullptr, 0),
+            // memcpy with a null pointer is UB
+            memcpy(data(), data_, size_);
         }
+    }
 
+    message_t(void *data_, size_t size_, free_fn *ffn_, void *hint_ = ZMQ_NULLPTR)
+    {
+        int rc = zmq_msg_init_data(&msg, data_, size_, ffn_, hint_);
+        if (rc != 0)
+            throw error_t();
+    }
 
-        inline explicit context_t (int io_threads_, int max_sockets_ = ZMQ_MAX_SOCKETS_DFLT)
-        {
-            ptr = zmq_ctx_new ();
-            if (ptr == NULL)
-                throw error_t ();
+    // overload set of string-like types and generic containers
+#if defined(ZMQ_CPP11) && !defined(ZMQ_CPP11_PARTIAL)
+    // NOTE this constructor will include the null terminator
+    // when called with a string literal.
+    // An overload taking const char* can not be added because
+    // it would be preferred over this function and break compatiblity.
+    template<
+      class Char,
+      size_t N,
+      typename = typename std::enable_if<detail::is_char_type<Char>::value>::type>
+    ZMQ_DEPRECATED("from 4.7.0, use constructors taking iterators, (pointer, size) "
+                   "or strings instead")
+    explicit message_t(const Char (&data)[N]) :
+        message_t(detail::ranges::begin(data), detail::ranges::end(data))
+    {
+    }
 
-            int rc = zmq_ctx_set (ptr, ZMQ_IO_THREADS, io_threads_);
-            ZMQ_ASSERT (rc == 0);
+    template<class Range,
+             typename = typename std::enable_if<
+               detail::is_range<Range>::value
+               && ZMQ_IS_TRIVIALLY_COPYABLE(detail::range_value_t<Range>)
+               && !detail::is_char_type<detail::range_value_t<Range>>::value
+               && !std::is_same<Range, message_t>::value>::type>
+    explicit message_t(const Range &rng) :
+        message_t(detail::ranges::begin(rng), detail::ranges::end(rng))
+    {
+    }
 
-            rc = zmq_ctx_set (ptr, ZMQ_MAX_SOCKETS, max_sockets_);
-            ZMQ_ASSERT (rc == 0);
-        }
+    explicit message_t(const std::string &str) : message_t(str.data(), str.size()) {}
 
-#ifdef ZMQ_HAS_RVALUE_REFS
-        inline context_t (context_t &&rhs) : ptr (rhs.ptr)
-        {
-            rhs.ptr = NULL;
-        }
-        inline context_t &operator = (context_t &&rhs)
-        {
-            std::swap (ptr, rhs.ptr);
-            return *this;
-        }
+#if CPPZMQ_HAS_STRING_VIEW
+    explicit message_t(std::string_view str) : message_t(str.data(), str.size()) {}
 #endif
 
-        inline ~context_t ()
-        {
-            close();
-        }
+#endif
 
-        inline void close()
-        {
-            if (ptr == NULL)
-                return;
-            int rc = zmq_ctx_destroy (ptr);
-            ZMQ_ASSERT (rc == 0);
-            ptr = NULL;
-        }
+#ifdef ZMQ_HAS_RVALUE_REFS
+    message_t(message_t &&rhs) ZMQ_NOTHROW : msg(rhs.msg)
+    {
+        int rc = zmq_msg_init(&rhs.msg);
+        ZMQ_ASSERT(rc == 0);
+    }
 
-        //  Be careful with this, it's probably only useful for
-        //  using the C api together with an existing C++ api.
-        //  Normally you should never need to use this.
-        inline operator void* ()
-        {
-            return ptr;
-        }
+    message_t &operator=(message_t &&rhs) ZMQ_NOTHROW
+    {
+        std::swap(msg, rhs.msg);
+        return *this;
+    }
+#endif
 
-    private:
+    ~message_t() ZMQ_NOTHROW
+    {
+        int rc = zmq_msg_close(&msg);
+        ZMQ_ASSERT(rc == 0);
+    }
 
-        void *ptr;
+    void rebuild()
+    {
+        int rc = zmq_msg_close(&msg);
+        if (rc != 0)
+            throw error_t();
+        rc = zmq_msg_init(&msg);
+        ZMQ_ASSERT(rc == 0);
+    }
 
-        context_t (const context_t&);
-        void operator = (const context_t&);
-    };
+    void rebuild(size_t size_)
+    {
+        int rc = zmq_msg_close(&msg);
+        if (rc != 0)
+            throw error_t();
+        rc = zmq_msg_init_size(&msg, size_);
+        if (rc != 0)
+            throw error_t();
+    }
 
-    class socket_t
+    void rebuild(const void *data_, size_t size_)
     {
-        friend class monitor_t;
-    public:
+        int rc = zmq_msg_close(&msg);
+        if (rc != 0)
+            throw error_t();
+        rc = zmq_msg_init_size(&msg, size_);
+        if (rc != 0)
+            throw error_t();
+        memcpy(data(), data_, size_);
+    }
 
-        inline socket_t (context_t &context_, int type_)
-        {
-            ctxptr = context_.ptr;
-            ptr = zmq_socket (context_.ptr, type_);
-            if (ptr == NULL)
-                throw error_t ();
-        }
+    void rebuild(void *data_, size_t size_, free_fn *ffn_, void *hint_ = ZMQ_NULLPTR)
+    {
+        int rc = zmq_msg_close(&msg);
+        if (rc != 0)
+            throw error_t();
+        rc = zmq_msg_init_data(&msg, data_, size_, ffn_, hint_);
+        if (rc != 0)
+            throw error_t();
+    }
 
-#ifdef ZMQ_HAS_RVALUE_REFS
-        inline socket_t(socket_t&& rhs) : ptr(rhs.ptr)
-        {
-            rhs.ptr = NULL;
-        }
-        inline socket_t& operator=(socket_t&& rhs)
-        {
-            std::swap(ptr, rhs.ptr);
-            return *this;
-        }
-#endif
+    ZMQ_DEPRECATED("from 4.3.1, use move taking non-const reference instead")
+    void move(message_t const *msg_)
+    {
+        int rc = zmq_msg_move(&msg, const_cast<zmq_msg_t *>(msg_->handle()));
+        if (rc != 0)
+            throw error_t();
+    }
 
-        inline ~socket_t ()
-        {
-            close();
-        }
+    void move(message_t &msg_)
+    {
+        int rc = zmq_msg_move(&msg, msg_.handle());
+        if (rc != 0)
+            throw error_t();
+    }
 
-        inline operator void* ()
-        {
-            return ptr;
-        }
+    ZMQ_DEPRECATED("from 4.3.1, use copy taking non-const reference instead")
+    void copy(message_t const *msg_)
+    {
+        int rc = zmq_msg_copy(&msg, const_cast<zmq_msg_t *>(msg_->handle()));
+        if (rc != 0)
+            throw error_t();
+    }
 
-        inline void close()
-        {
-            if(ptr == NULL)
-                // already closed
-                return ;
-            int rc = zmq_close (ptr);
-            ZMQ_ASSERT (rc == 0);
-            ptr = 0 ;
-        }
+    void copy(message_t &msg_)
+    {
+        int rc = zmq_msg_copy(&msg, msg_.handle());
+        if (rc != 0)
+            throw error_t();
+    }
 
-        inline void setsockopt (int option_, const void *optval_,
-            size_t optvallen_)
-        {
-            int rc = zmq_setsockopt (ptr, option_, optval_, optvallen_);
-            if (rc != 0)
-                throw error_t ();
-        }
+    bool more() const ZMQ_NOTHROW
+    {
+        int rc = zmq_msg_more(const_cast<zmq_msg_t *>(&msg));
+        return rc != 0;
+    }
 
-        inline void getsockopt (int option_, void *optval_,
-            size_t *optvallen_)
-        {
-            int rc = zmq_getsockopt (ptr, option_, optval_, optvallen_);
-            if (rc != 0)
-                throw error_t ();
-        }
-        
-        inline void bind (const char *addr_)
-        {
-            int rc = zmq_bind (ptr, addr_);
-            if (rc != 0)
-                throw error_t ();
-        }
+    void *data() ZMQ_NOTHROW { return zmq_msg_data(&msg); }
 
-        inline void unbind (const char *addr_)
-        {
-            int rc = zmq_unbind (ptr, addr_);
-            if (rc != 0)
-                throw error_t ();
-        }
+    const void *data() const ZMQ_NOTHROW
+    {
+        return zmq_msg_data(const_cast<zmq_msg_t *>(&msg));
+    }
 
-        inline void connect (const char *addr_)
-        {
-            int rc = zmq_connect (ptr, addr_);
-            if (rc != 0)
-                throw error_t ();
-        }
+    size_t size() const ZMQ_NOTHROW
+    {
+        return zmq_msg_size(const_cast<zmq_msg_t *>(&msg));
+    }
 
-        inline void disconnect (const char *addr_)
-        {
-            int rc = zmq_disconnect (ptr, addr_);
-            if (rc != 0)
-                throw error_t ();
-        }
+    ZMQ_NODISCARD bool empty() const ZMQ_NOTHROW { return size() == 0u; }
 
-        inline bool connected()
-        {
-            return(ptr != NULL);
-        }
-        
-        inline size_t send (const void *buf_, size_t len_, int flags_ = 0)
-        {
-            int nbytes = zmq_send (ptr, buf_, len_, flags_);
-            if (nbytes >= 0)
-                return (size_t) nbytes;
-            if (zmq_errno () == EAGAIN)
-                return 0;
-            throw error_t ();
-        }
+    template<typename T> T *data() ZMQ_NOTHROW { return static_cast<T *>(data()); }
 
-        inline bool send (message_t &msg_, int flags_ = 0)
-        {
-            int nbytes = zmq_msg_send (&(msg_.msg), ptr, flags_);
-            if (nbytes >= 0)
-                return true;
-            if (zmq_errno () == EAGAIN)
-                return false;
-            throw error_t ();
+    template<typename T> T const *data() const ZMQ_NOTHROW
+    {
+        return static_cast<T const *>(data());
+    }
+
+    ZMQ_DEPRECATED("from 4.3.0, use operator== instead")
+    bool equal(const message_t *other) const ZMQ_NOTHROW { return *this == *other; }
+
+    bool operator==(const message_t &other) const ZMQ_NOTHROW
+    {
+        const size_t my_size = size();
+        return my_size == other.size() && 0 == memcmp(data(), other.data(), my_size);
+    }
+
+    bool operator!=(const message_t &other) const ZMQ_NOTHROW
+    {
+        return !(*this == other);
+    }
+
+#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(3, 2, 0)
+    int get(int property_)
+    {
+        int value = zmq_msg_get(&msg, property_);
+        if (value == -1)
+            throw error_t();
+        return value;
+    }
+#endif
+
+#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 1, 0)
+    const char *gets(const char *property_)
+    {
+        const char *value = zmq_msg_gets(&msg, property_);
+        if (value == ZMQ_NULLPTR)
+            throw error_t();
+        return value;
+    }
+#endif
+
+#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0)
+    uint32_t routing_id() const
+    {
+        return zmq_msg_routing_id(const_cast<zmq_msg_t *>(&msg));
+    }
+
+    void set_routing_id(uint32_t routing_id)
+    {
+        int rc = zmq_msg_set_routing_id(&msg, routing_id);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    const char *group() const
+    {
+        return zmq_msg_group(const_cast<zmq_msg_t *>(&msg));
+    }
+
+    void set_group(const char *group)
+    {
+        int rc = zmq_msg_set_group(&msg, group);
+        if (rc != 0)
+            throw error_t();
+    }
+#endif
+
+    // interpret message content as a string
+    std::string to_string() const
+    {
+        return std::string(static_cast<const char *>(data()), size());
+    }
+#if CPPZMQ_HAS_STRING_VIEW
+    // interpret message content as a string
+    std::string_view to_string_view() const noexcept
+    {
+        return std::string_view(static_cast<const char *>(data()), size());
+    }
+#endif
+
+    /** Dump content to string for debugging.
+    *   Ascii chars are readable, the rest is printed as hex.
+    *   Probably ridiculously slow.
+    *   Use to_string() or to_string_view() for
+    *   interpreting the message as a string.
+    */
+    std::string str() const
+    {
+        // Partly mutuated from the same method in zmq::multipart_t
+        std::stringstream os;
+
+        const unsigned char *msg_data = this->data<unsigned char>();
+        unsigned char byte;
+        size_t size = this->size();
+        int is_ascii[2] = {0, 0};
+
+        os << "zmq::message_t [size " << std::dec << std::setw(3)
+           << std::setfill('0') << size << "] (";
+        // Totally arbitrary
+        if (size >= 1000) {
+            os << "... too big to print)";
+        } else {
+            while (size--) {
+                byte = *msg_data++;
+
+                is_ascii[1] = (byte >= 32 && byte < 127);
+                if (is_ascii[1] != is_ascii[0])
+                    os << " "; // Separate text/non text
+
+                if (is_ascii[1]) {
+                    os << byte;
+                } else {
+                    os << std::hex << std::uppercase << std::setw(2)
+                       << std::setfill('0') << static_cast<short>(byte);
+                }
+                is_ascii[0] = is_ascii[1];
+            }
+            os << ")";
+        }
+        return os.str();
+    }
+
+    void swap(message_t &other) ZMQ_NOTHROW
+    {
+        // this assumes zmq::msg_t from libzmq is trivially relocatable
+        std::swap(msg, other.msg);
+    }
+
+    ZMQ_NODISCARD zmq_msg_t *handle() ZMQ_NOTHROW { return &msg; }
+    ZMQ_NODISCARD const zmq_msg_t *handle() const ZMQ_NOTHROW { return &msg; }
+
+  private:
+    //  The underlying message
+    zmq_msg_t msg;
+
+    //  Disable implicit message copying, so that users won't use shared
+    //  messages (less efficient) without being aware of the fact.
+    message_t(const message_t &) ZMQ_DELETED_FUNCTION;
+    void operator=(const message_t &) ZMQ_DELETED_FUNCTION;
+};
+
+inline void swap(message_t &a, message_t &b) ZMQ_NOTHROW
+{
+    a.swap(b);
+}
+
+#ifdef ZMQ_CPP11
+enum class ctxopt
+{
+#ifdef ZMQ_BLOCKY
+    blocky = ZMQ_BLOCKY,
+#endif
+#ifdef ZMQ_IO_THREADS
+    io_threads = ZMQ_IO_THREADS,
+#endif
+#ifdef ZMQ_THREAD_SCHED_POLICY
+    thread_sched_policy = ZMQ_THREAD_SCHED_POLICY,
+#endif
+#ifdef ZMQ_THREAD_PRIORITY
+    thread_priority = ZMQ_THREAD_PRIORITY,
+#endif
+#ifdef ZMQ_THREAD_AFFINITY_CPU_ADD
+    thread_affinity_cpu_add = ZMQ_THREAD_AFFINITY_CPU_ADD,
+#endif
+#ifdef ZMQ_THREAD_AFFINITY_CPU_REMOVE
+    thread_affinity_cpu_remove = ZMQ_THREAD_AFFINITY_CPU_REMOVE,
+#endif
+#ifdef ZMQ_THREAD_NAME_PREFIX
+    thread_name_prefix = ZMQ_THREAD_NAME_PREFIX,
+#endif
+#ifdef ZMQ_MAX_MSGSZ
+    max_msgsz = ZMQ_MAX_MSGSZ,
+#endif
+#ifdef ZMQ_ZERO_COPY_RECV
+    zero_copy_recv = ZMQ_ZERO_COPY_RECV,
+#endif
+#ifdef ZMQ_MAX_SOCKETS
+    max_sockets = ZMQ_MAX_SOCKETS,
+#endif
+#ifdef ZMQ_SOCKET_LIMIT
+    socket_limit = ZMQ_SOCKET_LIMIT,
+#endif
+#ifdef ZMQ_IPV6
+    ipv6 = ZMQ_IPV6,
+#endif
+#ifdef ZMQ_MSG_T_SIZE
+    msg_t_size = ZMQ_MSG_T_SIZE
+#endif
+};
+#endif
+
+class context_t
+{
+  public:
+    context_t()
+    {
+        ptr = zmq_ctx_new();
+        if (ptr == ZMQ_NULLPTR)
+            throw error_t();
+    }
+
+
+    explicit context_t(int io_threads_, int max_sockets_ = ZMQ_MAX_SOCKETS_DFLT)
+    {
+        ptr = zmq_ctx_new();
+        if (ptr == ZMQ_NULLPTR)
+            throw error_t();
+
+        int rc = zmq_ctx_set(ptr, ZMQ_IO_THREADS, io_threads_);
+        ZMQ_ASSERT(rc == 0);
+
+        rc = zmq_ctx_set(ptr, ZMQ_MAX_SOCKETS, max_sockets_);
+        ZMQ_ASSERT(rc == 0);
+    }
+
+#ifdef ZMQ_HAS_RVALUE_REFS
+    context_t(context_t &&rhs) ZMQ_NOTHROW : ptr(rhs.ptr) { rhs.ptr = ZMQ_NULLPTR; }
+    context_t &operator=(context_t &&rhs) ZMQ_NOTHROW
+    {
+        close();
+        std::swap(ptr, rhs.ptr);
+        return *this;
+    }
+#endif
+
+    ~context_t() ZMQ_NOTHROW { close(); }
+
+    ZMQ_CPP11_DEPRECATED("from 4.7.0, use set taking zmq::ctxopt instead")
+    int setctxopt(int option_, int optval_)
+    {
+        int rc = zmq_ctx_set(ptr, option_, optval_);
+        ZMQ_ASSERT(rc == 0);
+        return rc;
+    }
+
+    ZMQ_CPP11_DEPRECATED("from 4.7.0, use get taking zmq::ctxopt instead")
+    int getctxopt(int option_) { return zmq_ctx_get(ptr, option_); }
+
+#ifdef ZMQ_CPP11
+    void set(ctxopt option, int optval)
+    {
+        int rc = zmq_ctx_set(ptr, static_cast<int>(option), optval);
+        if (rc == -1)
+            throw error_t();
+    }
+
+    ZMQ_NODISCARD int get(ctxopt option)
+    {
+        int rc = zmq_ctx_get(ptr, static_cast<int>(option));
+        // some options have a default value of -1
+        // which is unfortunate, and may result in errors
+        // that don't make sense
+        if (rc == -1)
+            throw error_t();
+        return rc;
+    }
+#endif
+
+    // Terminates context (see also shutdown()).
+    void close() ZMQ_NOTHROW
+    {
+        if (ptr == ZMQ_NULLPTR)
+            return;
+
+        int rc;
+        do {
+            rc = zmq_ctx_term(ptr);
+        } while (rc == -1 && errno == EINTR);
+
+        ZMQ_ASSERT(rc == 0);
+        ptr = ZMQ_NULLPTR;
+    }
+
+    // Shutdown context in preparation for termination (close()).
+    // Causes all blocking socket operations and any further
+    // socket operations to return with ETERM.
+    void shutdown() ZMQ_NOTHROW
+    {
+        if (ptr == ZMQ_NULLPTR)
+            return;
+        int rc = zmq_ctx_shutdown(ptr);
+        ZMQ_ASSERT(rc == 0);
+    }
+
+    //  Be careful with this, it's probably only useful for
+    //  using the C api together with an existing C++ api.
+    //  Normally you should never need to use this.
+    ZMQ_EXPLICIT operator void *() ZMQ_NOTHROW { return ptr; }
+
+    ZMQ_EXPLICIT operator void const *() const ZMQ_NOTHROW { return ptr; }
+
+    ZMQ_NODISCARD void *handle() ZMQ_NOTHROW { return ptr; }
+
+    ZMQ_DEPRECATED("from 4.7.0, use handle() != nullptr instead")
+    operator bool() const ZMQ_NOTHROW { return ptr != ZMQ_NULLPTR; }
+
+    void swap(context_t &other) ZMQ_NOTHROW { std::swap(ptr, other.ptr); }
+
+  private:
+    void *ptr;
+
+    context_t(const context_t &) ZMQ_DELETED_FUNCTION;
+    void operator=(const context_t &) ZMQ_DELETED_FUNCTION;
+};
+
+inline void swap(context_t &a, context_t &b) ZMQ_NOTHROW
+{
+    a.swap(b);
+}
+
+#ifdef ZMQ_CPP11
+
+struct recv_buffer_size
+{
+    size_t size;             // number of bytes written to buffer
+    size_t untruncated_size; // untruncated message size in bytes
+
+    ZMQ_NODISCARD bool truncated() const noexcept
+    {
+        return size != untruncated_size;
+    }
+};
+
+#if CPPZMQ_HAS_OPTIONAL
+
+using send_result_t = std::optional<size_t>;
+using recv_result_t = std::optional<size_t>;
+using recv_buffer_result_t = std::optional<recv_buffer_size>;
+
+#else
+
+namespace detail
+{
+// A C++11 type emulating the most basic
+// operations of std::optional for trivial types
+template<class T> class trivial_optional
+{
+  public:
+    static_assert(std::is_trivial<T>::value, "T must be trivial");
+    using value_type = T;
+
+    trivial_optional() = default;
+    trivial_optional(T value) noexcept : _value(value), _has_value(true) {}
+
+    const T *operator->() const noexcept
+    {
+        assert(_has_value);
+        return &_value;
+    }
+    T *operator->() noexcept
+    {
+        assert(_has_value);
+        return &_value;
+    }
+
+    const T &operator*() const noexcept
+    {
+        assert(_has_value);
+        return _value;
+    }
+    T &operator*() noexcept
+    {
+        assert(_has_value);
+        return _value;
+    }
+
+    T &value()
+    {
+        if (!_has_value)
+            throw std::exception();
+        return _value;
+    }
+    const T &value() const
+    {
+        if (!_has_value)
+            throw std::exception();
+        return _value;
+    }
+
+    explicit operator bool() const noexcept { return _has_value; }
+    bool has_value() const noexcept { return _has_value; }
+
+  private:
+    T _value{};
+    bool _has_value{false};
+};
+} // namespace detail
+
+using send_result_t = detail::trivial_optional<size_t>;
+using recv_result_t = detail::trivial_optional<size_t>;
+using recv_buffer_result_t = detail::trivial_optional<recv_buffer_size>;
+
+#endif
+
+namespace detail
+{
+template<class T> constexpr T enum_bit_or(T a, T b) noexcept
+{
+    static_assert(std::is_enum<T>::value, "must be enum");
+    using U = typename std::underlying_type<T>::type;
+    return static_cast<T>(static_cast<U>(a) | static_cast<U>(b));
+}
+template<class T> constexpr T enum_bit_and(T a, T b) noexcept
+{
+    static_assert(std::is_enum<T>::value, "must be enum");
+    using U = typename std::underlying_type<T>::type;
+    return static_cast<T>(static_cast<U>(a) & static_cast<U>(b));
+}
+template<class T> constexpr T enum_bit_xor(T a, T b) noexcept
+{
+    static_assert(std::is_enum<T>::value, "must be enum");
+    using U = typename std::underlying_type<T>::type;
+    return static_cast<T>(static_cast<U>(a) ^ static_cast<U>(b));
+}
+template<class T> constexpr T enum_bit_not(T a) noexcept
+{
+    static_assert(std::is_enum<T>::value, "must be enum");
+    using U = typename std::underlying_type<T>::type;
+    return static_cast<T>(~static_cast<U>(a));
+}
+} // namespace detail
+
+// partially satisfies named requirement BitmaskType
+enum class send_flags : int
+{
+    none = 0,
+    dontwait = ZMQ_DONTWAIT,
+    sndmore = ZMQ_SNDMORE
+};
+
+constexpr send_flags operator|(send_flags a, send_flags b) noexcept
+{
+    return detail::enum_bit_or(a, b);
+}
+constexpr send_flags operator&(send_flags a, send_flags b) noexcept
+{
+    return detail::enum_bit_and(a, b);
+}
+constexpr send_flags operator^(send_flags a, send_flags b) noexcept
+{
+    return detail::enum_bit_xor(a, b);
+}
+constexpr send_flags operator~(send_flags a) noexcept
+{
+    return detail::enum_bit_not(a);
+}
+
+// partially satisfies named requirement BitmaskType
+enum class recv_flags : int
+{
+    none = 0,
+    dontwait = ZMQ_DONTWAIT
+};
+
+constexpr recv_flags operator|(recv_flags a, recv_flags b) noexcept
+{
+    return detail::enum_bit_or(a, b);
+}
+constexpr recv_flags operator&(recv_flags a, recv_flags b) noexcept
+{
+    return detail::enum_bit_and(a, b);
+}
+constexpr recv_flags operator^(recv_flags a, recv_flags b) noexcept
+{
+    return detail::enum_bit_xor(a, b);
+}
+constexpr recv_flags operator~(recv_flags a) noexcept
+{
+    return detail::enum_bit_not(a);
+}
+
+
+// mutable_buffer, const_buffer and buffer are based on
+// the Networking TS specification, draft:
+// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf
+
+class mutable_buffer
+{
+  public:
+    constexpr mutable_buffer() noexcept : _data(nullptr), _size(0) {}
+    constexpr mutable_buffer(void *p, size_t n) noexcept : _data(p), _size(n)
+    {
+#ifdef ZMQ_EXTENDED_CONSTEXPR
+        assert(p != nullptr || n == 0);
+#endif
+    }
+
+    constexpr void *data() const noexcept { return _data; }
+    constexpr size_t size() const noexcept { return _size; }
+    mutable_buffer &operator+=(size_t n) noexcept
+    {
+        // (std::min) is a workaround for when a min macro is defined
+        const auto shift = (std::min)(n, _size);
+        _data = static_cast<char *>(_data) + shift;
+        _size -= shift;
+        return *this;
+    }
+
+  private:
+    void *_data;
+    size_t _size;
+};
+
+inline mutable_buffer operator+(const mutable_buffer &mb, size_t n) noexcept
+{
+    return mutable_buffer(static_cast<char *>(mb.data()) + (std::min)(n, mb.size()),
+                          mb.size() - (std::min)(n, mb.size()));
+}
+inline mutable_buffer operator+(size_t n, const mutable_buffer &mb) noexcept
+{
+    return mb + n;
+}
+
+class const_buffer
+{
+  public:
+    constexpr const_buffer() noexcept : _data(nullptr), _size(0) {}
+    constexpr const_buffer(const void *p, size_t n) noexcept : _data(p), _size(n)
+    {
+#ifdef ZMQ_EXTENDED_CONSTEXPR
+        assert(p != nullptr || n == 0);
+#endif
+    }
+    constexpr const_buffer(const mutable_buffer &mb) noexcept :
+        _data(mb.data()), _size(mb.size())
+    {
+    }
+
+    constexpr const void *data() const noexcept { return _data; }
+    constexpr size_t size() const noexcept { return _size; }
+    const_buffer &operator+=(size_t n) noexcept
+    {
+        const auto shift = (std::min)(n, _size);
+        _data = static_cast<const char *>(_data) + shift;
+        _size -= shift;
+        return *this;
+    }
+
+  private:
+    const void *_data;
+    size_t _size;
+};
+
+inline const_buffer operator+(const const_buffer &cb, size_t n) noexcept
+{
+    return const_buffer(static_cast<const char *>(cb.data())
+                          + (std::min)(n, cb.size()),
+                        cb.size() - (std::min)(n, cb.size()));
+}
+inline const_buffer operator+(size_t n, const const_buffer &cb) noexcept
+{
+    return cb + n;
+}
+
+// buffer creation
+
+constexpr mutable_buffer buffer(void *p, size_t n) noexcept
+{
+    return mutable_buffer(p, n);
+}
+constexpr const_buffer buffer(const void *p, size_t n) noexcept
+{
+    return const_buffer(p, n);
+}
+constexpr mutable_buffer buffer(const mutable_buffer &mb) noexcept
+{
+    return mb;
+}
+inline mutable_buffer buffer(const mutable_buffer &mb, size_t n) noexcept
+{
+    return mutable_buffer(mb.data(), (std::min)(mb.size(), n));
+}
+constexpr const_buffer buffer(const const_buffer &cb) noexcept
+{
+    return cb;
+}
+inline const_buffer buffer(const const_buffer &cb, size_t n) noexcept
+{
+    return const_buffer(cb.data(), (std::min)(cb.size(), n));
+}
+
+namespace detail
+{
+template<class T> struct is_buffer
+{
+    static constexpr bool value =
+      std::is_same<T, const_buffer>::value || std::is_same<T, mutable_buffer>::value;
+};
+
+template<class T> struct is_pod_like
+{
+    // NOTE: The networking draft N4771 section 16.11 requires
+    // T in the buffer functions below to be
+    // trivially copyable OR standard layout.
+    // Here we decide to be conservative and require both.
+    static constexpr bool value =
+      ZMQ_IS_TRIVIALLY_COPYABLE(T) && std::is_standard_layout<T>::value;
+};
+
+template<class C> constexpr auto seq_size(const C &c) noexcept -> decltype(c.size())
+{
+    return c.size();
+}
+template<class T, size_t N>
+constexpr size_t seq_size(const T (&/*array*/)[N]) noexcept
+{
+    return N;
+}
+
+template<class Seq>
+auto buffer_contiguous_sequence(Seq &&seq) noexcept
+  -> decltype(buffer(std::addressof(*std::begin(seq)), size_t{}))
+{
+    using T = typename std::remove_cv<
+      typename std::remove_reference<decltype(*std::begin(seq))>::type>::type;
+    static_assert(detail::is_pod_like<T>::value, "T must be POD");
+
+    const auto size = seq_size(seq);
+    return buffer(size != 0u ? std::addressof(*std::begin(seq)) : nullptr,
+                  size * sizeof(T));
+}
+template<class Seq>
+auto buffer_contiguous_sequence(Seq &&seq, size_t n_bytes) noexcept
+  -> decltype(buffer_contiguous_sequence(seq))
+{
+    using T = typename std::remove_cv<
+      typename std::remove_reference<decltype(*std::begin(seq))>::type>::type;
+    static_assert(detail::is_pod_like<T>::value, "T must be POD");
+
+    const auto size = seq_size(seq);
+    return buffer(size != 0u ? std::addressof(*std::begin(seq)) : nullptr,
+                  (std::min)(size * sizeof(T), n_bytes));
+}
+
+} // namespace detail
+
+// C array
+template<class T, size_t N> mutable_buffer buffer(T (&data)[N]) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, size_t N>
+mutable_buffer buffer(T (&data)[N], size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+template<class T, size_t N> const_buffer buffer(const T (&data)[N]) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, size_t N>
+const_buffer buffer(const T (&data)[N], size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+// std::array
+template<class T, size_t N> mutable_buffer buffer(std::array<T, N> &data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, size_t N>
+mutable_buffer buffer(std::array<T, N> &data, size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+template<class T, size_t N>
+const_buffer buffer(std::array<const T, N> &data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, size_t N>
+const_buffer buffer(std::array<const T, N> &data, size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+template<class T, size_t N>
+const_buffer buffer(const std::array<T, N> &data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, size_t N>
+const_buffer buffer(const std::array<T, N> &data, size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+// std::vector
+template<class T, class Allocator>
+mutable_buffer buffer(std::vector<T, Allocator> &data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, class Allocator>
+mutable_buffer buffer(std::vector<T, Allocator> &data, size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+template<class T, class Allocator>
+const_buffer buffer(const std::vector<T, Allocator> &data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, class Allocator>
+const_buffer buffer(const std::vector<T, Allocator> &data, size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+// std::basic_string
+template<class T, class Traits, class Allocator>
+mutable_buffer buffer(std::basic_string<T, Traits, Allocator> &data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, class Traits, class Allocator>
+mutable_buffer buffer(std::basic_string<T, Traits, Allocator> &data,
+                      size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+template<class T, class Traits, class Allocator>
+const_buffer buffer(const std::basic_string<T, Traits, Allocator> &data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, class Traits, class Allocator>
+const_buffer buffer(const std::basic_string<T, Traits, Allocator> &data,
+                    size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+
+#if CPPZMQ_HAS_STRING_VIEW
+// std::basic_string_view
+template<class T, class Traits>
+const_buffer buffer(std::basic_string_view<T, Traits> data) noexcept
+{
+    return detail::buffer_contiguous_sequence(data);
+}
+template<class T, class Traits>
+const_buffer buffer(std::basic_string_view<T, Traits> data, size_t n_bytes) noexcept
+{
+    return detail::buffer_contiguous_sequence(data, n_bytes);
+}
+#endif
+
+// Buffer for a string literal (null terminated)
+// where the buffer size excludes the terminating character.
+// Equivalent to zmq::buffer(std::string_view("...")).
+template<class Char, size_t N>
+constexpr const_buffer str_buffer(const Char (&data)[N]) noexcept
+{
+    static_assert(detail::is_pod_like<Char>::value, "Char must be POD");
+#ifdef ZMQ_EXTENDED_CONSTEXPR
+    assert(data[N - 1] == Char{0});
+#endif
+    return const_buffer(static_cast<const Char *>(data), (N - 1) * sizeof(Char));
+}
+
+namespace literals
+{
+constexpr const_buffer operator"" _zbuf(const char *str, size_t len) noexcept
+{
+    return const_buffer(str, len * sizeof(char));
+}
+constexpr const_buffer operator"" _zbuf(const wchar_t *str, size_t len) noexcept
+{
+    return const_buffer(str, len * sizeof(wchar_t));
+}
+constexpr const_buffer operator"" _zbuf(const char16_t *str, size_t len) noexcept
+{
+    return const_buffer(str, len * sizeof(char16_t));
+}
+constexpr const_buffer operator"" _zbuf(const char32_t *str, size_t len) noexcept
+{
+    return const_buffer(str, len * sizeof(char32_t));
+}
+}
+
+#ifdef ZMQ_CPP11
+enum class socket_type : int
+{
+    req = ZMQ_REQ,
+    rep = ZMQ_REP,
+    dealer = ZMQ_DEALER,
+    router = ZMQ_ROUTER,
+    pub = ZMQ_PUB,
+    sub = ZMQ_SUB,
+    xpub = ZMQ_XPUB,
+    xsub = ZMQ_XSUB,
+    push = ZMQ_PUSH,
+    pull = ZMQ_PULL,
+#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0)
+    server = ZMQ_SERVER,
+    client = ZMQ_CLIENT,
+    radio = ZMQ_RADIO,
+    dish = ZMQ_DISH,
+    gather = ZMQ_GATHER,
+    scatter = ZMQ_SCATTER,
+    dgram = ZMQ_DGRAM,
+#endif
+#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 3)
+    peer = ZMQ_PEER,
+    channel = ZMQ_CHANNEL,
+#endif
+#if ZMQ_VERSION_MAJOR >= 4
+    stream = ZMQ_STREAM,
+#endif
+    pair = ZMQ_PAIR
+};
+#endif
+
+namespace sockopt
+{
+// There are two types of options,
+// integral type with known compiler time size (int, bool, int64_t, uint64_t)
+// and arrays with dynamic size (strings, binary data).
+
+// BoolUnit: if true accepts values of type bool (but passed as T into libzmq)
+template<int Opt, class T, bool BoolUnit = false> struct integral_option
+{
+};
+
+// NullTerm:
+// 0: binary data
+// 1: null-terminated string (`getsockopt` size includes null)
+// 2: binary (size 32) or Z85 encoder string of size 41 (null included)
+template<int Opt, int NullTerm = 1> struct array_option
+{
+};
+
+#define ZMQ_DEFINE_INTEGRAL_OPT(OPT, NAME, TYPE)                                    \
+    using NAME##_t = integral_option<OPT, TYPE, false>;                             \
+    ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {}
+#define ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(OPT, NAME, TYPE)                          \
+    using NAME##_t = integral_option<OPT, TYPE, true>;                              \
+    ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {}
+#define ZMQ_DEFINE_ARRAY_OPT(OPT, NAME)                                             \
+    using NAME##_t = array_option<OPT>;                                             \
+    ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {}
+#define ZMQ_DEFINE_ARRAY_OPT_BINARY(OPT, NAME)                                      \
+    using NAME##_t = array_option<OPT, 0>;                                          \
+    ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {}
+#define ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(OPT, NAME)                                  \
+    using NAME##_t = array_option<OPT, 2>;                                          \
+    ZMQ_INLINE_VAR ZMQ_CONSTEXPR_VAR NAME##_t NAME {}
+
+// deprecated, use zmq::fd_t
+using cppzmq_fd_t = ::zmq::fd_t;
+
+#ifdef ZMQ_AFFINITY
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_AFFINITY, affinity, uint64_t);
+#endif
+#ifdef ZMQ_BACKLOG
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_BACKLOG, backlog, int);
+#endif
+#ifdef ZMQ_BINDTODEVICE
+ZMQ_DEFINE_ARRAY_OPT_BINARY(ZMQ_BINDTODEVICE, bindtodevice);
+#endif
+#ifdef ZMQ_CONFLATE
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_CONFLATE, conflate, int);
+#endif
+#ifdef ZMQ_CONNECT_ROUTING_ID
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_CONNECT_ROUTING_ID, connect_routing_id);
+#endif
+#ifdef ZMQ_CONNECT_TIMEOUT
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_CONNECT_TIMEOUT, connect_timeout, int);
+#endif
+#ifdef ZMQ_CURVE_PUBLICKEY
+ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(ZMQ_CURVE_PUBLICKEY, curve_publickey);
+#endif
+#ifdef ZMQ_CURVE_SECRETKEY
+ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(ZMQ_CURVE_SECRETKEY, curve_secretkey);
+#endif
+#ifdef ZMQ_CURVE_SERVER
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_CURVE_SERVER, curve_server, int);
+#endif
+#ifdef ZMQ_CURVE_SERVERKEY
+ZMQ_DEFINE_ARRAY_OPT_BIN_OR_Z85(ZMQ_CURVE_SERVERKEY, curve_serverkey);
+#endif
+#ifdef ZMQ_EVENTS
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_EVENTS, events, int);
+#endif
+#ifdef ZMQ_FD
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_FD, fd, ::zmq::fd_t);
+#endif
+#ifdef ZMQ_GSSAPI_PLAINTEXT
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_GSSAPI_PLAINTEXT, gssapi_plaintext, int);
+#endif
+#ifdef ZMQ_GSSAPI_SERVER
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_GSSAPI_SERVER, gssapi_server, int);
+#endif
+#ifdef ZMQ_GSSAPI_SERVICE_PRINCIPAL
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_GSSAPI_SERVICE_PRINCIPAL, gssapi_service_principal);
+#endif
+#ifdef ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE,
+                        gssapi_service_principal_nametype,
+                        int);
+#endif
+#ifdef ZMQ_GSSAPI_PRINCIPAL
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_GSSAPI_PRINCIPAL, gssapi_principal);
+#endif
+#ifdef ZMQ_GSSAPI_PRINCIPAL_NAMETYPE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_GSSAPI_PRINCIPAL_NAMETYPE,
+                        gssapi_principal_nametype,
+                        int);
+#endif
+#ifdef ZMQ_HANDSHAKE_IVL
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HANDSHAKE_IVL, handshake_ivl, int);
+#endif
+#ifdef ZMQ_HEARTBEAT_IVL
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HEARTBEAT_IVL, heartbeat_ivl, int);
+#endif
+#ifdef ZMQ_HEARTBEAT_TIMEOUT
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HEARTBEAT_TIMEOUT, heartbeat_timeout, int);
+#endif
+#ifdef ZMQ_HEARTBEAT_TTL
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_HEARTBEAT_TTL, heartbeat_ttl, int);
+#endif
+#ifdef ZMQ_IMMEDIATE
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_IMMEDIATE, immediate, int);
+#endif
+#ifdef ZMQ_INVERT_MATCHING
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_INVERT_MATCHING, invert_matching, int);
+#endif
+#ifdef ZMQ_IPV6
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_IPV6, ipv6, int);
+#endif
+#ifdef ZMQ_LAST_ENDPOINT
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_LAST_ENDPOINT, last_endpoint);
+#endif
+#ifdef ZMQ_LINGER
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_LINGER, linger, int);
+#endif
+#ifdef ZMQ_MAXMSGSIZE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MAXMSGSIZE, maxmsgsize, int64_t);
+#endif
+#ifdef ZMQ_MECHANISM
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MECHANISM, mechanism, int);
+#endif
+#ifdef ZMQ_METADATA
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_METADATA, metadata);
+#endif
+#ifdef ZMQ_MULTICAST_HOPS
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MULTICAST_HOPS, multicast_hops, int);
+#endif
+#ifdef ZMQ_MULTICAST_LOOP
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_MULTICAST_LOOP, multicast_loop, int);
+#endif
+#ifdef ZMQ_MULTICAST_MAXTPDU
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_MULTICAST_MAXTPDU, multicast_maxtpdu, int);
+#endif
+#ifdef ZMQ_PLAIN_SERVER
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_PLAIN_SERVER, plain_server, int);
+#endif
+#ifdef ZMQ_PLAIN_PASSWORD
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_PLAIN_PASSWORD, plain_password);
+#endif
+#ifdef ZMQ_PLAIN_USERNAME
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_PLAIN_USERNAME, plain_username);
+#endif
+#ifdef ZMQ_USE_FD
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_USE_FD, use_fd, int);
+#endif
+#ifdef ZMQ_PROBE_ROUTER
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_PROBE_ROUTER, probe_router, int);
+#endif
+#ifdef ZMQ_RATE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RATE, rate, int);
+#endif
+#ifdef ZMQ_RCVBUF
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RCVBUF, rcvbuf, int);
+#endif
+#ifdef ZMQ_RCVHWM
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RCVHWM, rcvhwm, int);
+#endif
+#ifdef ZMQ_RCVMORE
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_RCVMORE, rcvmore, int);
+#endif
+#ifdef ZMQ_RCVTIMEO
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RCVTIMEO, rcvtimeo, int);
+#endif
+#ifdef ZMQ_RECONNECT_IVL
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RECONNECT_IVL, reconnect_ivl, int);
+#endif
+#ifdef ZMQ_RECONNECT_IVL_MAX
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RECONNECT_IVL_MAX, reconnect_ivl_max, int);
+#endif
+#ifdef ZMQ_RECOVERY_IVL
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_RECOVERY_IVL, recovery_ivl, int);
+#endif
+#ifdef ZMQ_REQ_CORRELATE
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_REQ_CORRELATE, req_correlate, int);
+#endif
+#ifdef ZMQ_REQ_RELAXED
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_REQ_RELAXED, req_relaxed, int);
+#endif
+#ifdef ZMQ_ROUTER_HANDOVER
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_ROUTER_HANDOVER, router_handover, int);
+#endif
+#ifdef ZMQ_ROUTER_MANDATORY
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_ROUTER_MANDATORY, router_mandatory, int);
+#endif
+#ifdef ZMQ_ROUTER_NOTIFY
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_ROUTER_NOTIFY, router_notify, int);
+#endif
+#ifdef ZMQ_ROUTING_ID
+ZMQ_DEFINE_ARRAY_OPT_BINARY(ZMQ_ROUTING_ID, routing_id);
+#endif
+#ifdef ZMQ_SNDBUF
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_SNDBUF, sndbuf, int);
+#endif
+#ifdef ZMQ_SNDHWM
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_SNDHWM, sndhwm, int);
+#endif
+#ifdef ZMQ_SNDTIMEO
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_SNDTIMEO, sndtimeo, int);
+#endif
+#ifdef ZMQ_SOCKS_PROXY
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_SOCKS_PROXY, socks_proxy);
+#endif
+#ifdef ZMQ_STREAM_NOTIFY
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_STREAM_NOTIFY, stream_notify, int);
+#endif
+#ifdef ZMQ_SUBSCRIBE
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_SUBSCRIBE, subscribe);
+#endif
+#ifdef ZMQ_TCP_KEEPALIVE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE, tcp_keepalive, int);
+#endif
+#ifdef ZMQ_TCP_KEEPALIVE_CNT
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE_CNT, tcp_keepalive_cnt, int);
+#endif
+#ifdef ZMQ_TCP_KEEPALIVE_IDLE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE_IDLE, tcp_keepalive_idle, int);
+#endif
+#ifdef ZMQ_TCP_KEEPALIVE_INTVL
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_KEEPALIVE_INTVL, tcp_keepalive_intvl, int);
+#endif
+#ifdef ZMQ_TCP_MAXRT
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TCP_MAXRT, tcp_maxrt, int);
+#endif
+#ifdef ZMQ_THREAD_SAFE
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_THREAD_SAFE, thread_safe, int);
+#endif
+#ifdef ZMQ_TOS
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TOS, tos, int);
+#endif
+#ifdef ZMQ_TYPE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TYPE, type, int);
+#ifdef ZMQ_CPP11
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_TYPE, socket_type, socket_type);
+#endif // ZMQ_CPP11
+#endif // ZMQ_TYPE
+#ifdef ZMQ_UNSUBSCRIBE
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_UNSUBSCRIBE, unsubscribe);
+#endif
+#ifdef ZMQ_VMCI_BUFFER_SIZE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_BUFFER_SIZE, vmci_buffer_size, uint64_t);
+#endif
+#ifdef ZMQ_VMCI_BUFFER_MIN_SIZE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_BUFFER_MIN_SIZE, vmci_buffer_min_size, uint64_t);
+#endif
+#ifdef ZMQ_VMCI_BUFFER_MAX_SIZE
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_BUFFER_MAX_SIZE, vmci_buffer_max_size, uint64_t);
+#endif
+#ifdef ZMQ_VMCI_CONNECT_TIMEOUT
+ZMQ_DEFINE_INTEGRAL_OPT(ZMQ_VMCI_CONNECT_TIMEOUT, vmci_connect_timeout, int);
+#endif
+#ifdef ZMQ_XPUB_VERBOSE
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_VERBOSE, xpub_verbose, int);
+#endif
+#ifdef ZMQ_XPUB_VERBOSER
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_VERBOSER, xpub_verboser, int);
+#endif
+#ifdef ZMQ_XPUB_MANUAL
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_MANUAL, xpub_manual, int);
+#endif
+#ifdef ZMQ_XPUB_NODROP
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_XPUB_NODROP, xpub_nodrop, int);
+#endif
+#ifdef ZMQ_XPUB_WELCOME_MSG
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_XPUB_WELCOME_MSG, xpub_welcome_msg);
+#endif
+#ifdef ZMQ_ZAP_ENFORCE_DOMAIN
+ZMQ_DEFINE_INTEGRAL_BOOL_UNIT_OPT(ZMQ_ZAP_ENFORCE_DOMAIN, zap_enforce_domain, int);
+#endif
+#ifdef ZMQ_ZAP_DOMAIN
+ZMQ_DEFINE_ARRAY_OPT(ZMQ_ZAP_DOMAIN, zap_domain);
+#endif
+
+} // namespace sockopt
+#endif // ZMQ_CPP11
+
+
+namespace detail
+{
+class socket_base
+{
+  public:
+    socket_base() ZMQ_NOTHROW : _handle(ZMQ_NULLPTR) {}
+    ZMQ_EXPLICIT socket_base(void *handle) ZMQ_NOTHROW : _handle(handle) {}
+
+    template<typename T>
+    ZMQ_CPP11_DEPRECATED("from 4.7.0, use `set` taking option from zmq::sockopt")
+    void setsockopt(int option_, T const &optval)
+    {
+        setsockopt(option_, &optval, sizeof(T));
+    }
+
+    ZMQ_CPP11_DEPRECATED("from 4.7.0, use `set` taking option from zmq::sockopt")
+    void setsockopt(int option_, const void *optval_, size_t optvallen_)
+    {
+        int rc = zmq_setsockopt(_handle, option_, optval_, optvallen_);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    ZMQ_CPP11_DEPRECATED("from 4.7.0, use `get` taking option from zmq::sockopt")
+    void getsockopt(int option_, void *optval_, size_t *optvallen_) const
+    {
+        int rc = zmq_getsockopt(_handle, option_, optval_, optvallen_);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    template<typename T>
+    ZMQ_CPP11_DEPRECATED("from 4.7.0, use `get` taking option from zmq::sockopt")
+    T getsockopt(int option_) const
+    {
+        T optval;
+        size_t optlen = sizeof(T);
+        getsockopt(option_, &optval, &optlen);
+        return optval;
+    }
+
+#ifdef ZMQ_CPP11
+    // Set integral socket option, e.g.
+    // `socket.set(zmq::sockopt::linger, 0)`
+    template<int Opt, class T, bool BoolUnit>
+    void set(sockopt::integral_option<Opt, T, BoolUnit>, const T &val)
+    {
+        static_assert(std::is_integral<T>::value, "T must be integral");
+        set_option(Opt, &val, sizeof val);
+    }
+
+    // Set integral socket option from boolean, e.g.
+    // `socket.set(zmq::sockopt::immediate, false)`
+    template<int Opt, class T>
+    void set(sockopt::integral_option<Opt, T, true>, bool val)
+    {
+        static_assert(std::is_integral<T>::value, "T must be integral");
+        T rep_val = val;
+        set_option(Opt, &rep_val, sizeof rep_val);
+    }
+
+    // Set array socket option, e.g.
+    // `socket.set(zmq::sockopt::plain_username, "foo123")`
+    template<int Opt, int NullTerm>
+    void set(sockopt::array_option<Opt, NullTerm>, const char *buf)
+    {
+        set_option(Opt, buf, std::strlen(buf));
+    }
+
+    // Set array socket option, e.g.
+    // `socket.set(zmq::sockopt::routing_id, zmq::buffer(id))`
+    template<int Opt, int NullTerm>
+    void set(sockopt::array_option<Opt, NullTerm>, const_buffer buf)
+    {
+        set_option(Opt, buf.data(), buf.size());
+    }
+
+    // Set array socket option, e.g.
+    // `socket.set(zmq::sockopt::routing_id, id_str)`
+    template<int Opt, int NullTerm>
+    void set(sockopt::array_option<Opt, NullTerm>, const std::string &buf)
+    {
+        set_option(Opt, buf.data(), buf.size());
+    }
+
+#if CPPZMQ_HAS_STRING_VIEW
+    // Set array socket option, e.g.
+    // `socket.set(zmq::sockopt::routing_id, id_str)`
+    template<int Opt, int NullTerm>
+    void set(sockopt::array_option<Opt, NullTerm>, std::string_view buf)
+    {
+        set_option(Opt, buf.data(), buf.size());
+    }
+#endif
+
+    // Get scalar socket option, e.g.
+    // `auto opt = socket.get(zmq::sockopt::linger)`
+    template<int Opt, class T, bool BoolUnit>
+    ZMQ_NODISCARD T get(sockopt::integral_option<Opt, T, BoolUnit>) const
+    {
+        static_assert(std::is_scalar<T>::value, "T must be scalar");
+        T val;
+        size_t size = sizeof val;
+        get_option(Opt, &val, &size);
+        assert(size == sizeof val);
+        return val;
+    }
+
+    // Get array socket option, writes to buf, returns option size in bytes, e.g.
+    // `size_t optsize = socket.get(zmq::sockopt::routing_id, zmq::buffer(id))`
+    template<int Opt, int NullTerm>
+    ZMQ_NODISCARD size_t get(sockopt::array_option<Opt, NullTerm>,
+                             mutable_buffer buf) const
+    {
+        size_t size = buf.size();
+        get_option(Opt, buf.data(), &size);
+        return size;
+    }
+
+    // Get array socket option as string (initializes the string buffer size to init_size) e.g.
+    // `auto s = socket.get(zmq::sockopt::routing_id)`
+    // Note: removes the null character from null-terminated string options,
+    // i.e. the string size excludes the null character.
+    template<int Opt, int NullTerm>
+    ZMQ_NODISCARD std::string get(sockopt::array_option<Opt, NullTerm>,
+                                  size_t init_size = 1024) const
+    {
+        if ZMQ_CONSTEXPR_IF (NullTerm == 2) {
+            if (init_size == 1024) {
+                init_size = 41; // get as Z85 string
+            }
         }
+        std::string str(init_size, '\0');
+        size_t size = get(sockopt::array_option<Opt>{}, buffer(str));
+        if ZMQ_CONSTEXPR_IF (NullTerm == 1) {
+            if (size > 0) {
+                assert(str[size - 1] == '\0');
+                --size;
+            }
+        } else if ZMQ_CONSTEXPR_IF (NullTerm == 2) {
+            assert(size == 32 || size == 41);
+            if (size == 41) {
+                assert(str[size - 1] == '\0');
+                --size;
+            }
+        }
+        str.resize(size);
+        return str;
+    }
+#endif
+
+    void bind(std::string const &addr) { bind(addr.c_str()); }
+
+    void bind(const char *addr_)
+    {
+        int rc = zmq_bind(_handle, addr_);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    void unbind(std::string const &addr) { unbind(addr.c_str()); }
+
+    void unbind(const char *addr_)
+    {
+        int rc = zmq_unbind(_handle, addr_);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    void connect(std::string const &addr) { connect(addr.c_str()); }
+
+    void connect(const char *addr_)
+    {
+        int rc = zmq_connect(_handle, addr_);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    void disconnect(std::string const &addr) { disconnect(addr.c_str()); }
+
+    void disconnect(const char *addr_)
+    {
+        int rc = zmq_disconnect(_handle, addr_);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    ZMQ_DEPRECATED("from 4.7.1, use handle() != nullptr or operator bool")
+    bool connected() const ZMQ_NOTHROW { return (_handle != ZMQ_NULLPTR); }
+
+    ZMQ_CPP11_DEPRECATED("from 4.3.1, use send taking a const_buffer and send_flags")
+    size_t send(const void *buf_, size_t len_, int flags_ = 0)
+    {
+        int nbytes = zmq_send(_handle, buf_, len_, flags_);
+        if (nbytes >= 0)
+            return static_cast<size_t>(nbytes);
+        if (zmq_errno() == EAGAIN)
+            return 0;
+        throw error_t();
+    }
+
+    ZMQ_CPP11_DEPRECATED("from 4.3.1, use send taking message_t and send_flags")
+    bool send(message_t &msg_,
+              int flags_ = 0) // default until removed
+    {
+        int nbytes = zmq_msg_send(msg_.handle(), _handle, flags_);
+        if (nbytes >= 0)
+            return true;
+        if (zmq_errno() == EAGAIN)
+            return false;
+        throw error_t();
+    }
+
+    template<typename T>
+    ZMQ_CPP11_DEPRECATED(
+      "from 4.4.1, use send taking message_t or buffer (for contiguous "
+      "ranges), and send_flags")
+    bool send(T first, T last, int flags_ = 0)
+    {
+        zmq::message_t msg(first, last);
+        int nbytes = zmq_msg_send(msg.handle(), _handle, flags_);
+        if (nbytes >= 0)
+            return true;
+        if (zmq_errno() == EAGAIN)
+            return false;
+        throw error_t();
+    }
+
+#ifdef ZMQ_HAS_RVALUE_REFS
+    ZMQ_CPP11_DEPRECATED("from 4.3.1, use send taking message_t and send_flags")
+    bool send(message_t &&msg_,
+              int flags_ = 0) // default until removed
+    {
+#ifdef ZMQ_CPP11
+        return send(msg_, static_cast<send_flags>(flags_)).has_value();
+#else
+        return send(msg_, flags_);
+#endif
+    }
+#endif
+
+#ifdef ZMQ_CPP11
+    send_result_t send(const_buffer buf, send_flags flags = send_flags::none)
+    {
+        const int nbytes =
+          zmq_send(_handle, buf.data(), buf.size(), static_cast<int>(flags));
+        if (nbytes >= 0)
+            return static_cast<size_t>(nbytes);
+        if (zmq_errno() == EAGAIN)
+            return {};
+        throw error_t();
+    }
+
+    send_result_t send(message_t &msg, send_flags flags)
+    {
+        int nbytes = zmq_msg_send(msg.handle(), _handle, static_cast<int>(flags));
+        if (nbytes >= 0)
+            return static_cast<size_t>(nbytes);
+        if (zmq_errno() == EAGAIN)
+            return {};
+        throw error_t();
+    }
+
+    send_result_t send(message_t &&msg, send_flags flags)
+    {
+        return send(msg, flags);
+    }
+#endif
+
+    ZMQ_CPP11_DEPRECATED(
+      "from 4.3.1, use recv taking a mutable_buffer and recv_flags")
+    size_t recv(void *buf_, size_t len_, int flags_ = 0)
+    {
+        int nbytes = zmq_recv(_handle, buf_, len_, flags_);
+        if (nbytes >= 0)
+            return static_cast<size_t>(nbytes);
+        if (zmq_errno() == EAGAIN)
+            return 0;
+        throw error_t();
+    }
+
+    ZMQ_CPP11_DEPRECATED(
+      "from 4.3.1, use recv taking a reference to message_t and recv_flags")
+    bool recv(message_t *msg_, int flags_ = 0)
+    {
+        int nbytes = zmq_msg_recv(msg_->handle(), _handle, flags_);
+        if (nbytes >= 0)
+            return true;
+        if (zmq_errno() == EAGAIN)
+            return false;
+        throw error_t();
+    }
+
+#ifdef ZMQ_CPP11
+    ZMQ_NODISCARD
+    recv_buffer_result_t recv(mutable_buffer buf,
+                              recv_flags flags = recv_flags::none)
+    {
+        const int nbytes =
+          zmq_recv(_handle, buf.data(), buf.size(), static_cast<int>(flags));
+        if (nbytes >= 0) {
+            return recv_buffer_size{
+              (std::min)(static_cast<size_t>(nbytes), buf.size()),
+              static_cast<size_t>(nbytes)};
+        }
+        if (zmq_errno() == EAGAIN)
+            return {};
+        throw error_t();
+    }
+
+    ZMQ_NODISCARD
+    recv_result_t recv(message_t &msg, recv_flags flags = recv_flags::none)
+    {
+        const int nbytes =
+          zmq_msg_recv(msg.handle(), _handle, static_cast<int>(flags));
+        if (nbytes >= 0) {
+            assert(msg.size() == static_cast<size_t>(nbytes));
+            return static_cast<size_t>(nbytes);
+        }
+        if (zmq_errno() == EAGAIN)
+            return {};
+        throw error_t();
+    }
+#endif
 
-        inline size_t recv (void *buf_, size_t len_, int flags_ = 0)
-        {
-            int nbytes = zmq_recv (ptr, buf_, len_, flags_);
-            if (nbytes >= 0)
-                return (size_t) nbytes;
-            if (zmq_errno () == EAGAIN)
-                return 0;
-            throw error_t ();
-        }
+#if defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 0)
+    void join(const char *group)
+    {
+        int rc = zmq_join(_handle, group);
+        if (rc != 0)
+            throw error_t();
+    }
 
-        inline bool recv (message_t *msg_, int flags_ = 0)
-        {
-            int nbytes = zmq_msg_recv (&(msg_->msg), ptr, flags_);
-            if (nbytes >= 0)
-                return true;
-            if (zmq_errno () == EAGAIN)
-                return false;
-            throw error_t ();
+    void leave(const char *group)
+    {
+        int rc = zmq_leave(_handle, group);
+        if (rc != 0)
+            throw error_t();
+    }
+#endif
+
+    ZMQ_NODISCARD void *handle() ZMQ_NOTHROW { return _handle; }
+    ZMQ_NODISCARD const void *handle() const ZMQ_NOTHROW { return _handle; }
+
+    ZMQ_EXPLICIT operator bool() const ZMQ_NOTHROW { return _handle != ZMQ_NULLPTR; }
+    // note: non-const operator bool can be removed once
+    // operator void* is removed from socket_t
+    ZMQ_EXPLICIT operator bool() ZMQ_NOTHROW { return _handle != ZMQ_NULLPTR; }
+
+  protected:
+    void *_handle;
+
+  private:
+    void set_option(int option_, const void *optval_, size_t optvallen_)
+    {
+        int rc = zmq_setsockopt(_handle, option_, optval_, optvallen_);
+        if (rc != 0)
+            throw error_t();
+    }
+
+    void get_option(int option_, void *optval_, size_t *optvallen_) const
+    {
+        int rc = zmq_getsockopt(_handle, option_, optval_, optvallen_);
+        if (rc != 0)
+            throw error_t();
+    }
+};
+} // namespace detail
+
+struct from_handle_t
+{
+    struct _private
+    {
+    }; // disabling use other than with from_handle
+    ZMQ_CONSTEXPR_FN ZMQ_EXPLICIT from_handle_t(_private /*p*/) ZMQ_NOTHROW {}
+};
+
+ZMQ_CONSTEXPR_VAR from_handle_t from_handle =
+  from_handle_t(from_handle_t::_private());
+
+// A non-owning nullable reference to a socket.
+// The reference is invalidated on socket close or destruction.
+class socket_ref : public detail::socket_base
+{
+  public:
+    socket_ref() ZMQ_NOTHROW : detail::socket_base() {}
+#ifdef ZMQ_CPP11
+    socket_ref(std::nullptr_t) ZMQ_NOTHROW : detail::socket_base() {}
+#endif
+    socket_ref(from_handle_t /*fh*/, void *handle) ZMQ_NOTHROW
+        : detail::socket_base(handle)
+    {
+    }
+};
+
+#ifdef ZMQ_CPP11
+inline bool operator==(socket_ref sr, std::nullptr_t /*p*/) ZMQ_NOTHROW
+{
+    return sr.handle() == nullptr;
+}
+inline bool operator==(std::nullptr_t /*p*/, socket_ref sr) ZMQ_NOTHROW
+{
+    return sr.handle() == nullptr;
+}
+inline bool operator!=(socket_ref sr, std::nullptr_t /*p*/) ZMQ_NOTHROW
+{
+    return !(sr == nullptr);
+}
+inline bool operator!=(std::nullptr_t /*p*/, socket_ref sr) ZMQ_NOTHROW
+{
+    return !(sr == nullptr);
+}
+#endif
+
+inline bool operator==(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW
+{
+    return std::equal_to<const void *>()(a.handle(), b.handle());
+}
+inline bool operator!=(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW
+{
+    return !(a == b);
+}
+inline bool operator<(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW
+{
+    return std::less<const void *>()(a.handle(), b.handle());
+}
+inline bool operator>(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW
+{
+    return b < a;
+}
+inline bool operator<=(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW
+{
+    return !(a > b);
+}
+inline bool operator>=(const detail::socket_base& a, const detail::socket_base& b) ZMQ_NOTHROW
+{
+    return !(a < b);
+}
+
+} // namespace zmq
+
+#ifdef ZMQ_CPP11
+namespace std
+{
+template<> struct hash<zmq::socket_ref>
+{
+    size_t operator()(zmq::socket_ref sr) const ZMQ_NOTHROW
+    {
+        return hash<void *>()(sr.handle());
+    }
+};
+} // namespace std
+#endif
+
+namespace zmq
+{
+class socket_t : public detail::socket_base
+{
+    friend class monitor_t;
+
+  public:
+    socket_t() ZMQ_NOTHROW : detail::socket_base(ZMQ_NULLPTR), ctxptr(ZMQ_NULLPTR) {}
+
+    socket_t(context_t &context_, int type_) :
+        detail::socket_base(zmq_socket(context_.handle(), type_)),
+        ctxptr(context_.handle())
+    {
+        if (_handle == ZMQ_NULLPTR)
+            throw error_t();
+    }
+
+#ifdef ZMQ_CPP11
+    socket_t(context_t &context_, socket_type type_) :
+        socket_t(context_, static_cast<int>(type_))
+    {
+    }
+#endif
+
+#ifdef ZMQ_HAS_RVALUE_REFS
+    socket_t(socket_t &&rhs) ZMQ_NOTHROW : detail::socket_base(rhs._handle),
+                                           ctxptr(rhs.ctxptr)
+    {
+        rhs._handle = ZMQ_NULLPTR;
+        rhs.ctxptr = ZMQ_NULLPTR;
+    }
+    socket_t &operator=(socket_t &&rhs) ZMQ_NOTHROW
+    {
+        close();
+        std::swap(_handle, rhs._handle);
+        std::swap(ctxptr, rhs.ctxptr);
+        return *this;
+    }
+#endif
+
+    ~socket_t() ZMQ_NOTHROW { close(); }
+
+    operator void *() ZMQ_NOTHROW { return _handle; }
+
+    operator void const *() const ZMQ_NOTHROW { return _handle; }
+
+    void close() ZMQ_NOTHROW
+    {
+        if (_handle == ZMQ_NULLPTR)
+            // already closed
+            return;
+        int rc = zmq_close(_handle);
+        ZMQ_ASSERT(rc == 0);
+        _handle = ZMQ_NULLPTR;
+        ctxptr = ZMQ_NULLPTR;
+    }
+
+    void swap(socket_t &other) ZMQ_NOTHROW
+    {
+        std::swap(_handle, other._handle);
+        std::swap(ctxptr, other.ctxptr);
+    }
+
+    operator socket_ref() ZMQ_NOTHROW { return socket_ref(from_handle, _handle); }
+
+  private:
+    void *ctxptr;
+
+    socket_t(const socket_t &) ZMQ_DELETED_FUNCTION;
+    void operator=(const socket_t &) ZMQ_DELETED_FUNCTION;
+
+    // used by monitor_t
+    socket_t(void *context_, int type_) :
+        detail::socket_base(zmq_socket(context_, type_)), ctxptr(context_)
+    {
+        if (_handle == ZMQ_NULLPTR)
+            throw error_t();
+        if (ctxptr == ZMQ_NULLPTR)
+            throw error_t();
+    }
+};
+
+inline void swap(socket_t &a, socket_t &b) ZMQ_NOTHROW
+{
+    a.swap(b);
+}
+
+ZMQ_DEPRECATED("from 4.3.1, use proxy taking socket_t objects")
+inline void proxy(void *frontend, void *backend, void *capture)
+{
+    int rc = zmq_proxy(frontend, backend, capture);
+    if (rc != 0)
+        throw error_t();
+}
+
+inline void
+proxy(socket_ref frontend, socket_ref backend, socket_ref capture = socket_ref())
+{
+    int rc = zmq_proxy(frontend.handle(), backend.handle(), capture.handle());
+    if (rc != 0)
+        throw error_t();
+}
+
+#ifdef ZMQ_HAS_PROXY_STEERABLE
+ZMQ_DEPRECATED("from 4.3.1, use proxy_steerable taking socket_t objects")
+inline void
+proxy_steerable(void *frontend, void *backend, void *capture, void *control)
+{
+    int rc = zmq_proxy_steerable(frontend, backend, capture, control);
+    if (rc != 0)
+        throw error_t();
+}
+
+inline void proxy_steerable(socket_ref frontend,
+                            socket_ref backend,
+                            socket_ref capture,
+                            socket_ref control)
+{
+    int rc = zmq_proxy_steerable(frontend.handle(), backend.handle(),
+                                 capture.handle(), control.handle());
+    if (rc != 0)
+        throw error_t();
+}
+#endif
+
+class monitor_t
+{
+  public:
+    monitor_t() : _socket(), _monitor_socket() {}
+
+    virtual ~monitor_t() { close(); }
+
+#ifdef ZMQ_HAS_RVALUE_REFS
+    monitor_t(monitor_t &&rhs) ZMQ_NOTHROW : _socket(), _monitor_socket()
+    {
+        std::swap(_socket, rhs._socket);
+        std::swap(_monitor_socket, rhs._monitor_socket);
+    }
+
+    monitor_t &operator=(monitor_t &&rhs) ZMQ_NOTHROW
+    {
+        close();
+        _socket = socket_ref();
+        std::swap(_socket, rhs._socket);
+        std::swap(_monitor_socket, rhs._monitor_socket);
+        return *this;
+    }
+#endif
+
+
+    void
+    monitor(socket_t &socket, std::string const &addr, int events = ZMQ_EVENT_ALL)
+    {
+        monitor(socket, addr.c_str(), events);
+    }
+
+    void monitor(socket_t &socket, const char *addr_, int events = ZMQ_EVENT_ALL)
+    {
+        init(socket, addr_, events);
+        while (true) {
+            check_event(-1);
         }
-        
-    private:
-        void *ptr;
-        void *ctxptr;
+    }
 
-        socket_t (const socket_t&) ZMQ_DELETED_FUNCTION;
-        void operator = (const socket_t&) ZMQ_DELETED_FUNCTION;
-    };
+    void init(socket_t &socket, std::string const &addr, int events = ZMQ_EVENT_ALL)
+    {
+        init(socket, addr.c_str(), events);
+    }
 
-    class monitor_t
+    void init(socket_t &socket, const char *addr_, int events = ZMQ_EVENT_ALL)
     {
-    public:
-        monitor_t() : socketPtr(NULL) {}
-        virtual ~monitor_t() {}
+        int rc = zmq_socket_monitor(socket.handle(), addr_, events);
+        if (rc != 0)
+            throw error_t();
+
+        _socket = socket;
+        _monitor_socket = socket_t(socket.ctxptr, ZMQ_PAIR);
+        _monitor_socket.connect(addr_);
+
+        on_monitor_started();
+    }
+
+    bool check_event(int timeout = 0)
+    {
+        assert(_monitor_socket);
+
+        zmq::message_t eventMsg;
+
+        zmq::pollitem_t items[] = {
+          {_monitor_socket.handle(), 0, ZMQ_POLLIN, 0},
+        };
+
+        #ifdef ZMQ_CPP11
+        zmq::poll(&items[0], 1, std::chrono::milliseconds(timeout));
+        #else
+        zmq::poll(&items[0], 1, timeout);
+        #endif
+
+        if (items[0].revents & ZMQ_POLLIN) {
+            int rc = zmq_msg_recv(eventMsg.handle(), _monitor_socket.handle(), 0);
+            if (rc == -1 && zmq_errno() == ETERM)
+                return false;
+            assert(rc != -1);
+
+        } else {
+            return false;
+        }
 
-        void monitor(socket_t &socket, const char *addr_, int events = ZMQ_EVENT_ALL)
-        {
-            int rc = zmq_socket_monitor(socket.ptr, addr_, events);
-            if (rc != 0)
-                throw error_t ();
-
-            socketPtr = socket.ptr;
-            void *s = zmq_socket (socket.ctxptr, ZMQ_PAIR);
-            assert (s);
-
-            rc = zmq_connect (s, addr_);
-            assert (rc == 0);
-            
-            on_monitor_started();
-            
-            while (true) {
-                zmq_msg_t eventMsg;
-                zmq_msg_init (&eventMsg);
-                rc = zmq_recvmsg (s, &eventMsg, 0);
-                if (rc == -1 && zmq_errno() == ETERM)
-                    break;
-                assert (rc != -1);
 #if ZMQ_VERSION_MAJOR >= 4
-                const char* data = static_cast<const char*>(zmq_msg_data(&eventMsg));
-                zmq_event_t msgEvent;
-                msgEvent.event = *(uint16_t*)data; data += sizeof(uint16_t);
-                msgEvent.value = *(int32_t*)data;
-                zmq_event_t* event = &msgEvent;
+        const char *data = static_cast<const char *>(eventMsg.data());
+        zmq_event_t msgEvent;
+        memcpy(&msgEvent.event, data, sizeof(uint16_t));
+        data += sizeof(uint16_t);
+        memcpy(&msgEvent.value, data, sizeof(int32_t));
+        zmq_event_t *event = &msgEvent;
 #else
-                zmq_event_t* event = static_cast<zmq_event_t*>(zmq_msg_data(&eventMsg));
+        zmq_event_t *event = static_cast<zmq_event_t *>(eventMsg.data());
 #endif
-                
+
 #ifdef ZMQ_NEW_MONITOR_EVENT_LAYOUT
-                zmq_msg_t addrMsg;
-                zmq_msg_init (&addrMsg);
-                rc = zmq_recvmsg (s, &addrMsg, 0);
-                if (rc == -1 && zmq_errno() == ETERM)
-                    break;
-                assert (rc != -1);
-                const char* str = static_cast<const char*>(zmq_msg_data (&addrMsg));
-                std::string address(str, str + zmq_msg_size(&addrMsg));
-                zmq_msg_close (&addrMsg);
+        zmq::message_t addrMsg;
+        int rc = zmq_msg_recv(addrMsg.handle(), _monitor_socket.handle(), 0);
+        if (rc == -1 && zmq_errno() == ETERM) {
+            return false;
+        }
+
+        assert(rc != -1);
+        std::string address = addrMsg.to_string();
 #else
-                // Bit of a hack, but all events in the zmq_event_t union have the same layout so this will work for all event types.
-                std::string address = event->data.connected.addr;
+        // Bit of a hack, but all events in the zmq_event_t union have the same layout so this will work for all event types.
+        std::string address = event->data.connected.addr;
 #endif
 
 #ifdef ZMQ_EVENT_MONITOR_STOPPED
-                if (event->event == ZMQ_EVENT_MONITOR_STOPPED)
-                    break;
+        if (event->event == ZMQ_EVENT_MONITOR_STOPPED) {
+            return false;
+        }
+
 #endif
 
-                switch (event->event) {
-                case ZMQ_EVENT_CONNECTED:
-                    on_event_connected(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_CONNECT_DELAYED:
-                    on_event_connect_delayed(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_CONNECT_RETRIED:
-                    on_event_connect_retried(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_LISTENING:
-                    on_event_listening(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_BIND_FAILED:
-                    on_event_bind_failed(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_ACCEPTED:
-                    on_event_accepted(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_ACCEPT_FAILED:
-                    on_event_accept_failed(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_CLOSED:
-                    on_event_closed(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_CLOSE_FAILED:
-                    on_event_close_failed(*event, address.c_str());
-                    break;
-                case ZMQ_EVENT_DISCONNECTED:
-                    on_event_disconnected(*event, address.c_str());
-                    break;
-                default:
-                    on_event_unknown(*event, address.c_str());
-                    break;
-                }
-                zmq_msg_close (&eventMsg);
-            }
-            zmq_close (s);
-            socketPtr = NULL;
+        switch (event->event) {
+            case ZMQ_EVENT_CONNECTED:
+                on_event_connected(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_CONNECT_DELAYED:
+                on_event_connect_delayed(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_CONNECT_RETRIED:
+                on_event_connect_retried(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_LISTENING:
+                on_event_listening(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_BIND_FAILED:
+                on_event_bind_failed(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_ACCEPTED:
+                on_event_accepted(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_ACCEPT_FAILED:
+                on_event_accept_failed(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_CLOSED:
+                on_event_closed(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_CLOSE_FAILED:
+                on_event_close_failed(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_DISCONNECTED:
+                on_event_disconnected(*event, address.c_str());
+                break;
+#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 0) || (defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3))
+            case ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL:
+                on_event_handshake_failed_no_detail(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL:
+                on_event_handshake_failed_protocol(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_HANDSHAKE_FAILED_AUTH:
+                on_event_handshake_failed_auth(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_HANDSHAKE_SUCCEEDED:
+                on_event_handshake_succeeded(*event, address.c_str());
+                break;
+#elif defined(ZMQ_BUILD_DRAFT_API) && ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 1)
+            case ZMQ_EVENT_HANDSHAKE_FAILED:
+                on_event_handshake_failed(*event, address.c_str());
+                break;
+            case ZMQ_EVENT_HANDSHAKE_SUCCEED:
+                on_event_handshake_succeed(*event, address.c_str());
+                break;
+#endif
+            default:
+                on_event_unknown(*event, address.c_str());
+                break;
         }
 
+        return true;
+    }
+
 #ifdef ZMQ_EVENT_MONITOR_STOPPED
-        void abort()
-        {
-            if (socketPtr)
-                zmq_socket_monitor(socketPtr, NULL, 0);
+    void abort()
+    {
+        if (_socket)
+            zmq_socket_monitor(_socket.handle(), ZMQ_NULLPTR, 0);
+
+        _socket = socket_ref();
+    }
+#endif
+    virtual void on_monitor_started() {}
+    virtual void on_event_connected(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_connect_delayed(const zmq_event_t &event_,
+                                          const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_connect_retried(const zmq_event_t &event_,
+                                          const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_listening(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_bind_failed(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_accepted(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_accept_failed(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_closed(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_close_failed(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_disconnected(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3)
+    virtual void on_event_handshake_failed_no_detail(const zmq_event_t &event_,
+                                                     const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_handshake_failed_protocol(const zmq_event_t &event_,
+                                                    const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_handshake_failed_auth(const zmq_event_t &event_,
+                                                const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_handshake_succeeded(const zmq_event_t &event_,
+                                              const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+#elif ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 1)
+    virtual void on_event_handshake_failed(const zmq_event_t &event_,
+                                           const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+    virtual void on_event_handshake_succeed(const zmq_event_t &event_,
+                                            const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+#endif
+    virtual void on_event_unknown(const zmq_event_t &event_, const char *addr_)
+    {
+        (void) event_;
+        (void) addr_;
+    }
+
+  private:
+    monitor_t(const monitor_t &) ZMQ_DELETED_FUNCTION;
+    void operator=(const monitor_t &) ZMQ_DELETED_FUNCTION;
+
+    socket_ref _socket;
+    socket_t _monitor_socket;
+
+    void close() ZMQ_NOTHROW
+    {
+        if (_socket)
+            zmq_socket_monitor(_socket.handle(), ZMQ_NULLPTR, 0);
+        _monitor_socket.close();
+    }
+};
+
+#if defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11) && defined(ZMQ_HAVE_POLLER)
+
+// polling events
+enum class event_flags : short
+{
+    none = 0,
+    pollin = ZMQ_POLLIN,
+    pollout = ZMQ_POLLOUT,
+    pollerr = ZMQ_POLLERR,
+    pollpri = ZMQ_POLLPRI
+};
+
+constexpr event_flags operator|(event_flags a, event_flags b) noexcept
+{
+    return detail::enum_bit_or(a, b);
+}
+constexpr event_flags operator&(event_flags a, event_flags b) noexcept
+{
+    return detail::enum_bit_and(a, b);
+}
+constexpr event_flags operator^(event_flags a, event_flags b) noexcept
+{
+    return detail::enum_bit_xor(a, b);
+}
+constexpr event_flags operator~(event_flags a) noexcept
+{
+    return detail::enum_bit_not(a);
+}
+
+struct no_user_data;
+
+// layout compatible with zmq_poller_event_t
+template<class T = no_user_data> struct poller_event
+{
+    socket_ref socket;
+    ::zmq::fd_t fd;
+    T *user_data;
+    event_flags events;
+};
+
+template<typename T = no_user_data> class poller_t
+{
+  public:
+    using event_type = poller_event<T>;
+
+    poller_t() : poller_ptr(zmq_poller_new())
+    {
+        if (!poller_ptr)
+            throw error_t();
+    }
+
+    template<
+      typename Dummy = void,
+      typename =
+        typename std::enable_if<!std::is_same<T, no_user_data>::value, Dummy>::type>
+    void add(zmq::socket_ref socket, event_flags events, T *user_data)
+    {
+        add_impl(socket, events, user_data);
+    }
+
+    void add(zmq::socket_ref socket, event_flags events)
+    {
+        add_impl(socket, events, nullptr);
+    }
+
+    void remove(zmq::socket_ref socket)
+    {
+        if (0 != zmq_poller_remove(poller_ptr.get(), socket.handle())) {
+            throw error_t();
+        }
+    }
+
+    void modify(zmq::socket_ref socket, event_flags events)
+    {
+        if (0
+            != zmq_poller_modify(poller_ptr.get(), socket.handle(),
+                                 static_cast<short>(events))) {
+            throw error_t();
         }
+    }
+
+    size_t wait_all(std::vector<event_type> &poller_events,
+                    const std::chrono::milliseconds timeout)
+    {
+        int rc = zmq_poller_wait_all(
+          poller_ptr.get(),
+          reinterpret_cast<zmq_poller_event_t *>(poller_events.data()),
+          static_cast<int>(poller_events.size()),
+          static_cast<long>(timeout.count()));
+        if (rc > 0)
+            return static_cast<size_t>(rc);
+
+#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 2, 3)
+        if (zmq_errno() == EAGAIN)
+#else
+        if (zmq_errno() == ETIMEDOUT)
+#endif
+            return 0;
+
+        throw error_t();
+    }
+
+#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 3)
+    size_t size() const noexcept
+    {
+        int rc = zmq_poller_size(const_cast<void *>(poller_ptr.get()));
+        ZMQ_ASSERT(rc >= 0);
+        return static_cast<size_t>(std::max(rc, 0));
+    }
 #endif
-        virtual void on_monitor_started() {}
-        virtual void on_event_connected(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_connect_delayed(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_connect_retried(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_listening(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_bind_failed(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_accepted(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_accept_failed(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_closed(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_close_failed(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_disconnected(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-        virtual void on_event_unknown(const zmq_event_t &event_, const char* addr_) { (void)event_; (void)addr_; }
-    private:
-        void* socketPtr;
+
+  private:
+    struct destroy_poller_t
+    {
+        void operator()(void *ptr) noexcept
+        {
+            int rc = zmq_poller_destroy(&ptr);
+            ZMQ_ASSERT(rc == 0);
+        }
     };
+
+    std::unique_ptr<void, destroy_poller_t> poller_ptr;
+
+    void add_impl(zmq::socket_ref socket, event_flags events, T *user_data)
+    {
+        if (0
+            != zmq_poller_add(poller_ptr.get(), socket.handle(), user_data,
+                              static_cast<short>(events))) {
+            throw error_t();
+        }
+    }
+};
+#endif //  defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11) && defined(ZMQ_HAVE_POLLER)
+
+inline std::ostream &operator<<(std::ostream &os, const message_t &msg)
+{
+    return os << msg.str();
 }
 
-#endif
+} // namespace zmq
+
+#endif // __ZMQ_HPP_INCLUDED__

Index: pkgsrc/meta-pkgs/gnuradio/Makefile
diff -u pkgsrc/meta-pkgs/gnuradio/Makefile:1.24 pkgsrc/meta-pkgs/gnuradio/Makefile:1.25
--- pkgsrc/meta-pkgs/gnuradio/Makefile:1.24     Sun Jun 27 08:14:45 2021
+++ pkgsrc/meta-pkgs/gnuradio/Makefile  Sun Jan 16 18:06:28 2022
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.24 2021/06/27 08:14:45 tnn Exp $
+# $NetBSD: Makefile,v 1.25 2022/01/16 18:06:28 tnn Exp $
 
 META_PACKAGE=  yes
 
@@ -23,6 +23,7 @@ DEPENDS+=     gnuradio-digital-${VERSION}{,n
 DEPENDS+=      gnuradio-doxygen-${VERSION}{,nb[0-9]*}:../../ham/gnuradio-doxygen
 DEPENDS+=      gnuradio-dtv-${VERSION}{,nb[0-9]*}:../../ham/gnuradio-dtv
 DEPENDS+=      gnuradio-fec-${VERSION}{,nb[0-9]*}:../../ham/gnuradio-fec
+DEPENDS+=      gnuradio-pdu-${VERSION}{,nb[0-9]*}:../../ham/gnuradio-pdu
 DEPENDS+=      gnuradio-qtgui-${VERSION}{,nb[0-9]*}:../../ham/gnuradio-qtgui
 DEPENDS+=      gnuradio-soapy-sdr-${VERSION}{,nb[0-9]*}:../../ham/gnuradio-soapy-sdr
 DEPENDS+=      gnuradio-trellis-${VERSION}{,nb[0-9]*}:../../ham/gnuradio-trellis

Added files:

Index: pkgsrc/ham/gnuradio-core/patches/patch-cmake_Modules_GrPybind.cmake
diff -u /dev/null pkgsrc/ham/gnuradio-core/patches/patch-cmake_Modules_GrPybind.cmake:1.1
--- /dev/null   Sun Jan 16 18:06:28 2022
+++ pkgsrc/ham/gnuradio-core/patches/patch-cmake_Modules_GrPybind.cmake Sun Jan 16 18:06:25 2022
@@ -0,0 +1,15 @@
+$NetBSD: patch-cmake_Modules_GrPybind.cmake,v 1.1 2022/01/16 18:06:25 tnn Exp $
+
+Disable use of precompiled headers; it doesn't play nice with pkgsrc nor ccache.
+
+--- cmake/Modules/GrPybind.cmake.orig  2022-01-14 15:27:04.000000000 +0000
++++ cmake/Modules/GrPybind.cmake
+@@ -158,7 +158,7 @@ target_include_directories(${name}_pytho
+ # Precompile the pybind11 header
+ # This should speed up building of the python bindings at least in larger modules
+ # This functionality is only available in CMake >= 3.16
+-if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
++if(false AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
+   target_precompile_headers(
+     ${name}_python
+     PRIVATE
Index: pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_CMakeLists.txt
diff -u /dev/null pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_CMakeLists.txt:1.1
--- /dev/null   Sun Jan 16 18:06:28 2022
+++ pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_CMakeLists.txt      Sun Jan 16 18:06:25 2022
@@ -0,0 +1,15 @@
+$NetBSD: patch-gnuradio-runtime_CMakeLists.txt,v 1.1 2022/01/16 18:06:25 tnn Exp $
+
+Disable use of precompiled headers; it doesn't play nice with pkgsrc nor ccache.
+
+--- gnuradio-runtime/CMakeLists.txt.orig       2022-01-14 15:27:04.000000000 +0000
++++ gnuradio-runtime/CMakeLists.txt
+@@ -51,7 +51,7 @@ get_filename_component(GNURADIO_RUNTIME_
+ ########################################################################
+ # Setup precompiled header pseudo-component
+ ########################################################################
+-if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
++if(false AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
+   set(GR_CMAKE_HAS_PCH ${CMAKE_VERSION})
+ endif()
+ 
Index: pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_CMakeLists.txt
diff -u /dev/null pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_CMakeLists.txt:1.1
--- /dev/null   Sun Jan 16 18:06:28 2022
+++ pkgsrc/ham/gnuradio-core/patches/patch-gnuradio-runtime_lib_CMakeLists.txt  Sun Jan 16 18:06:25 2022
@@ -0,0 +1,15 @@
+$NetBSD: patch-gnuradio-runtime_lib_CMakeLists.txt,v 1.1 2022/01/16 18:06:25 tnn Exp $
+
+Disable use of precompiled headers; it doesn't play nice with pkgsrc nor ccache.
+
+--- gnuradio-runtime/lib/CMakeLists.txt.orig   2022-01-14 15:27:04.000000000 +0000
++++ gnuradio-runtime/lib/CMakeLists.txt
+@@ -171,7 +171,7 @@ target_compile_definitions(gnuradio-runt
+ # constants.cc includes boost::dll headers, force them to use std::filesystem
+ target_compile_definitions(gnuradio-runtime PRIVATE BOOST_DLL_USE_STD_FS)
+ 
+-if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
++if(false AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
+   target_precompile_headers(
+     gnuradio-runtime
+     PRIVATE

Index: pkgsrc/ham/gnuradio-pdu/DESCR
diff -u /dev/null pkgsrc/ham/gnuradio-pdu/DESCR:1.1
--- /dev/null   Sun Jan 16 18:06:28 2022
+++ pkgsrc/ham/gnuradio-pdu/DESCR       Sun Jan 16 18:06:26 2022
@@ -0,0 +1,7 @@
+GNU Radio is a collection of software that when combined with minimal hardware,
+allows the construction of radios where the actual waveforms transmitted and
+received are defined by software. What this means is that it turns the digital
+modulation schemes used in today's high performance wireless devices into
+software problems.
+
+Protocol Data Units.
Index: pkgsrc/ham/gnuradio-pdu/Makefile
diff -u /dev/null pkgsrc/ham/gnuradio-pdu/Makefile:1.1
--- /dev/null   Sun Jan 16 18:06:28 2022
+++ pkgsrc/ham/gnuradio-pdu/Makefile    Sun Jan 16 18:06:26 2022
@@ -0,0 +1,17 @@
+# $NetBSD: Makefile,v 1.1 2022/01/16 18:06:26 tnn Exp $
+
+PKGNAME=       gnuradio-pdu-${VERSION}
+COMMENT=       Protocol Data Units for GNU Radio
+
+.include       "../../ham/gnuradio-core/Makefile.common"
+.include       "../../ham/gnuradio-core/Nocore.mk"
+# link to libgnuradio-fft.so.${PKGVERSON_NOREV}
+.include       "../../ham/gnuradio-core/buildlink3.mk"
+
+CMAKE_ARGS+=   -DENABLE_DEFAULT=OFF
+CMAKE_ARGS+=   -DENABLE_GR_PDU=ON
+CMAKE_ARGS+=   -DENABLE_GRC=ON
+
+PLIST_MINUS+=  companion
+
+.include       "../../mk/bsd.pkg.mk"
Index: pkgsrc/ham/gnuradio-pdu/PLIST
diff -u /dev/null pkgsrc/ham/gnuradio-pdu/PLIST:1.1
--- /dev/null   Sun Jan 16 18:06:28 2022
+++ pkgsrc/ham/gnuradio-pdu/PLIST       Sun Jan 16 18:06:26 2022
@@ -0,0 +1,48 @@
+@comment $NetBSD: PLIST,v 1.1 2022/01/16 18:06:26 tnn Exp $
+include/gnuradio/pdu/add_system_time.h
+include/gnuradio/pdu/api.h
+include/gnuradio/pdu/pdu_filter.h
+include/gnuradio/pdu/pdu_remove.h
+include/gnuradio/pdu/pdu_set.h
+include/gnuradio/pdu/pdu_split.h
+include/gnuradio/pdu/pdu_to_stream.h
+include/gnuradio/pdu/pdu_to_tagged_stream.h
+include/gnuradio/pdu/random_pdu.h
+include/gnuradio/pdu/tagged_stream_to_pdu.h
+include/gnuradio/pdu/tags_to_pdu.h
+include/gnuradio/pdu/take_skip_to_pdu.h
+include/gnuradio/pdu/time_delta.h
+lib/cmake/gnuradio/gnuradio-pduConfig.cmake
+lib/cmake/gnuradio/gnuradio-pduTargets-release.cmake
+lib/cmake/gnuradio/gnuradio-pduTargets.cmake
+lib/libgnuradio-pdu.so
+lib/libgnuradio-pdu.so.3.10.0
+lib/libgnuradio-pdu.so.${PKGVERSION}
+lib/pkgconfig/gnuradio-pdu.pc
+${PYSITELIB}/gnuradio/pdu/__init__.py
+${PYSITELIB}/gnuradio/pdu/__init__.pyc
+${PYSITELIB}/gnuradio/pdu/__init__.pyo
+${PYSITELIB}/gnuradio/pdu/pdu_lambda.py
+${PYSITELIB}/gnuradio/pdu/pdu_lambda.pyc
+${PYSITELIB}/gnuradio/pdu/pdu_lambda.pyo
+${PYSITELIB}/gnuradio/pdu/pdu_python.so
+share/gnuradio/examples/pdu/pdu_lambda_chirp_demo.grc
+share/gnuradio/examples/pdu/pdu_lambda_example.grc
+share/gnuradio/examples/pdu/pdu_tools_demo.grc
+share/gnuradio/examples/pdu/simple_pdu_to_stream_example.grc
+share/gnuradio/examples/pdu/tags_to_pdu_example.grc
+share/gnuradio/examples/pdu/take_skip_to_pdu_example.grc
+share/gnuradio/grc/blocks/pdu.tree.yml
+share/gnuradio/grc/blocks/pdu_add_system_time.block.yml
+share/gnuradio/grc/blocks/pdu_pdu_filter.block.yml
+share/gnuradio/grc/blocks/pdu_pdu_lambda.block.yml
+share/gnuradio/grc/blocks/pdu_pdu_remove.block.yml
+share/gnuradio/grc/blocks/pdu_pdu_set.block.yml
+share/gnuradio/grc/blocks/pdu_pdu_split.block.yml
+share/gnuradio/grc/blocks/pdu_pdu_to_stream.block.yml
+share/gnuradio/grc/blocks/pdu_pdu_to_tagged_stream.block.yml
+share/gnuradio/grc/blocks/pdu_random_pdu.block.yml
+share/gnuradio/grc/blocks/pdu_tagged_stream_to_pdu.block.yml
+share/gnuradio/grc/blocks/pdu_tags_to_pdu.block.yml
+share/gnuradio/grc/blocks/pdu_take_skip_to_pdu.block.yml
+share/gnuradio/grc/blocks/pdu_time_delta.block.yml
Index: pkgsrc/ham/gnuradio-pdu/buildlink3.mk
diff -u /dev/null pkgsrc/ham/gnuradio-pdu/buildlink3.mk:1.1
--- /dev/null   Sun Jan 16 18:06:28 2022
+++ pkgsrc/ham/gnuradio-pdu/buildlink3.mk       Sun Jan 16 18:06:26 2022
@@ -0,0 +1,12 @@
+# $NetBSD: buildlink3.mk,v 1.1 2022/01/16 18:06:26 tnn Exp $
+
+BUILDLINK_TREE+=       gnuradio-pdu
+
+.if !defined(GNURADIO_PDU_BUILDLINK3_MK)
+GNURADIO_PDU_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gnuradio-pdu+=   gnuradio-pdu>=3.10.0.0
+BUILDLINK_PKGSRCDIR.gnuradio-pdu?=             ../../ham/gnuradio-pdu
+.endif # GNURADIO_PDU_BUILDLINK3_MK
+
+BUILDLINK_TREE+=       -gnuradio-pdu



Home | Main Index | Thread Index | Old Index