<pre style='margin:0'>
Michael Dickens (michaelld) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/70e2ca3ece8af23674ee76cc96e23e6e17393e81">https://github.com/macports/macports-ports/commit/70e2ca3ece8af23674ee76cc96e23e6e17393e81</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 70e2ca3ece8af23674ee76cc96e23e6e17393e81
</span>Author: Davide Gerhard <rainbow@irh.it>
AuthorDate: Tue Oct 22 19:57:19 2019 +0200

<span style='display:block; white-space:pre;color:#404040;'>    gnuradio: update version to 3.8.1, to 3.7.14.0 and full refactory
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    this commit is a huge change:
</span><span style='display:block; white-space:pre;color:#404040;'>    - migrate main port from GNURadio 3.7 to 3.8
</span><span style='display:block; white-space:pre;color:#404040;'>    - add multiple python versions for GNURadio 3.8
</span><span style='display:block; white-space:pre;color:#404040;'>    - create a gnuradio37 subport to offer a simple way for the user to
</span><span style='display:block; white-space:pre;color:#404040;'>      install the old stable
</span><span style='display:block; white-space:pre;color:#404040;'>    - update version of gnuradio 3.7 to 3.7.14.0
</span><span style='display:block; white-space:pre;color:#404040;'>    - full refactory of the Portfile using the current style
</span><span style='display:block; white-space:pre;color:#404040;'>    - gnuradio-devel is now obsolete and only gnuradio-next is available
</span><span style='display:block; white-space:pre;color:#404040;'>    - backport patch that enable Meta key shortcut to GNURadio 3.8
</span>---
 science/gnuradio/Portfile                          | 917 ++++++++-------------
 ...D.release.diff => patch-C_CXX_STANDARD.37.diff} |   0
 ...DARD.next.diff => patch-C_CXX_STANDARD.38.diff} |   0
 .../gnuradio/files/patch-C_CXX_STANDARD.devel.diff | 157 ----
 ...xpand.devel.diff => patch-cmake-expand.37.diff} |   0
 .../gnuradio/files/patch-cmake-expand.release.diff |  72 --
 .../files/patch-fix-FindLog4cpp.devel.diff         |  13 -
 ...NUCXX.release.diff => patch-fix-GNUCXX.37.diff} |   0
 science/gnuradio/files/patch-fix-GNUCXX.devel.diff |  27 -
 ...ch-fix-GNURadioControlPortClient-usage.38.diff} |   0
 ...ctrlport-python-app-install-location.devel.diff |  11 -
 ...rlport-python-app-install-location.release.diff |  11 -
 science/gnuradio/files/patch-fix-mp.devel.diff     |  42 -
 .../files/patch-fix-rpc-unused-vars.devel.diff     | 120 ---
 ...elease.diff => patch-fix_ctrlport_test.37.diff} |   0
 .../files/patch-fix_ctrlport_test.devel.diff       | 393 ---------
 .../patch-fixes_for-boost_1.70.0.release.diff      |  14 -
 ...ft.next.diff => patch-fixes_for-thrift.38.diff} |   0
 .../files/patch-fixes_for-thrift.devel.diff        | 242 ------
 .../files/patch-fixes_for-thrift.release.diff      | 244 ------
 ...time_lib_buffer.cc.boost_include_fix.devel.diff |  20 -
 .../files/patch-quartz_drag_n_drop.38.diff         |  23 +
 .../files/patch-quartz_drag_n_drop.next.diff       |  23 +
 .../gnuradio/files/patch-quartz_drop_crash.38.diff |  92 +++
 .../files/patch-quartz_drop_crash.next.diff        |  92 +++
 science/gnuradio/files/patch-use_meta_key.diff     |  98 +++
 26 files changed, 690 insertions(+), 1921 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/Portfile b/science/gnuradio/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 193edcfae88..4d191067bd5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,458 +1,304 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
 
 PortSystem          1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           cmake 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span> PortGroup           github 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           legacysupport 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# require C++11 for cppunit 1.14.0 as of April 13, 2017.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# GNU Radio 3.8 will require C++11 when it is released.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           cxx11 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           app 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           conflicts_build 1.0
</span> 
 name                gnuradio
<span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers         {michaelld @michaelld}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {michaelld @michaelld} {ra1nb0w @ra1nb0w}
</span> 
 description         GNU Radio is Software Defined Radio (SDR)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://www.gnuradio.org/
</span> 
 categories          science comms
 license             GPL-3
 platforms           darwin macosx
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-dist_subdir         gnuradio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.c_standard   2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2011
</span> 
 if {${subport} eq ${name}} {
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    github.setup gnuradio gnuradio 3.7.13.5 v
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums rmd160 6a7f38601633658632cf13a8dc157bbb1e9fcad7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-              sha256 f0c1fb0bbec673a798efdbdad27d4a1b914ef1fd77528642f1e2134920156335 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-              size   4434061
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision  7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup    gnuradio gnuradio 3.8.1.0 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums       rmd160  4c4a4eb71cf4ed7f3782167a17e979059103d99a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  97763da635063d472eae7cbb7680f36c69359ea5b88348d26f8fa7f8b5e7289a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    3377964
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span> 
     long_description    ${description}: \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        This port is kept up with the GNU Radio release, currently ${version}, which is typically updated every few months.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        This port is kept up with the GNU Radio release, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        currently ${version}, which is typically updated twice per year.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts       gnuradio-next gnuradio-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts           gnuradio37 gnuradio-next
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # set the version override string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_versions { 3.6 3.7 3.8 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set default_python_variant +python37
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set GR_VERSION_INFO "Release"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix and allow external setting for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # CMAKE_C/CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-C_CXX_STANDARD.38.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # TODO check temporary patch to fix using Thrift 0.9.2 through 0.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-fixes_for-thrift.38.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix usage of GNURadioControlPortClient
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-fix-GNURadioControlPortClient-usage.38.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # fix Quartz behaviour
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # TODO verify https://github.com/gnuradio/gnuradio/issues/2726
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-quartz_drag_n_drop.38.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-quartz_drop_crash.38.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # REMOVE with next release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # use Meta as modifier key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-use_meta_key.diff
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # overload the github livecheck regex to look for versions that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # are just numbers and '.', no letters (e.g., "3.7.3git").
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set GR_VERSION_INFO "Release 3.8"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    github.livecheck.regex  {([0-9.]+)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # avoid issue with SWIG API changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts_build gnuradio
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.livecheck.regex  {(3.8.[0-9.]+)}
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport gnuradio-devel {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport gnuradio37 {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    long_description    ${description}: \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        This port is kept at the GNU Radio GIT 'master' branch commit 896d1c9d, which is the final commit in the 3.7 series. This port will not be updated except for critical fixes backported from more recent commits.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    name                gnuradio-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts           gnuradio gnuradio-next
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    github.setup        gnuradio gnuradio 896d1c9da31963ecf5b0d90942c2af51ca998a69
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version             20180824
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision            10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums    rmd160 8ad7fccef7e21ea96356253432f5f13ad61660ed \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 sha256 51080fad6f776f8aec1a6c557320c6c64b4c3c3fde3615ca4d43802de65f324f \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 size   4425148
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # set the version override string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set GR_VERSION_INFO "devel-git-[string range ${github.version} 0 7](${version})"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # disable livecheck; there is no more devel until after 3.8 release!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    livecheck.type   none
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport gnuradio-next {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    name            gnuradio37
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup    gnuradio gnuradio 3.7.14.0 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums       rmd160  0165a52a4770a02b4843544e4ba6bc59d84fa7d1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  3d895e29417efd4ef8ab4053bed2ea9117b4476c0ae729f065088242f0f61f9f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    4460817
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span> 
     long_description    ${description}: \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        This port is kept up with the GNU Radio GIT 'master' branch (as of 2018-09-20), which is typically updated daily to weekly.  This version of GNU Radio represents the next major release of GNU Radio, and hence its API is likely to be different than that provided by either gnuradio or gnuradio-devel.  This port may or not compile or function correctly, as it represents a work in progress.  If it does not work, check back in a few days.  Or try deactivating the currently active gnur [...]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    name                gnuradio-next
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts           gnuradio gnuradio-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        This port is kept up with the GNU Radio 3.7 release, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        currently ${version}, which is a legacy branch that \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        will not see much maintenance\; place consider updating \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        to the \'gnuradio\' port.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    github.setup gnuradio gnuradio 5099fd9a492face0facfc4a8a6923d5ce76b7b31 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version   20191003-[string range ${github.version} 0 7]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums rmd160 3f27981c0fbc2abf197fb59f7054b774676d47f5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-              sha256 101cd40bd9765ba2a2264f44600b8a7088740a136e7c5457b783c8e87626da3b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-              size   3369676
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision  5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # set the version override string
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set GR_VERSION_INFO "next-git-[string range ${github.version} 0 7](${version})"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "gnuradio"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patches for release only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_versions { 2.7 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set default_python_variant +python27
</span> 
     # force expansion of CMake-based template files
     patchfiles-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-cmake-expand.release.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-cmake-expand.37.diff
</span>     # temporary patch to fix CTRLPORT testing
     patchfiles-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix_ctrlport_test.release.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-fix_ctrlport_test.37.diff
</span>     # temporary patch to fix and allow external setting for
     # CMAKE_C/CXX_STANDARD
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     patchfiles-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-C_CXX_STANDARD.release.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-C_CXX_STANDARD.37.diff
</span>     # temporary patch to fix use of GNUCXX to instead be for both GNU
     # and Clang compilers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-GNUCXX.release.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # temporary patch to fix installing CTRLPORT Python apps location
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-ctrlport-python-app-install-location.release.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix using Boost 1.70.0 API
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fixes_for-boost_1.70.0.release.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # temporary patch to fix using Thrift 0.9.2 through 0.12.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fixes_for-thrift.release.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${subport} eq "gnuradio-devel"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patches for devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # force expansion of CMake-based template files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-cmake-expand.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix CTRLPORT testing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix_ctrlport_test.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix and allow external setting for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # CMAKE_C/CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-C_CXX_STANDARD.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix use of GNUCXX to instead be for both GNU
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # and Clang compilers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-GNUCXX.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix Boost #include
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-gnuradio-runtime_lib_buffer.cc.boost_include_fix.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix type usage of MP package
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-mp.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix installing CTRLPORT Python apps location
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-ctrlport-python-app-install-location.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix FindLog2cpp.cmake script to correct cache LOG4CPP_FOUND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-FindLog4cpp.devel.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patch to fix unused RPC variables
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     patchfiles-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-rpc-unused-vars.devel.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-fix-GNUCXX.37.diff
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # temporary patch to fix using Thrift 0.9.2 through 0.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set GR_VERSION_INFO "Release 3.7"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fixes_for-thrift.devel.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # still require cppunit for testing; NOTE: cppunit is checked for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # during configure, so we need it to be in depends_lib or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # depends_build to be used correctly. Choose the latter since it's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # not required for runtime; just for build/test.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:cppunit
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # avoid issue with SWIG API changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts_build gnuradio37
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # patches for next
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.livecheck.regex  {(3.7.[0-9.]+)}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # temporary patch to fix and allow external setting for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # CMAKE_C/CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-C_CXX_STANDARD.next.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport gnuradio-next {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # temporary patch to fix using Thrift 0.9.2 through 0.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    name            gnuradio-next
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup    gnuradio gnuradio 03d92ac19a11356175533aae4ad5804a354be075
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version         20200419-[string range ${github.version} 0 7]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums       rmd160  0a9e1294036e786116c96d68f9116e3f2798d325 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  bb2dab14e159a4b58ccf317ece3b4132959739f4b5b217d8e0add3c5ce581f5f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    3950832
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    long_description    ${description}: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        This port is kept up with the GNU Radio GIT 'master' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        branch (as of 2018-09-20), which is typically updated \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        daily to weekly.  This version of GNU Radio represents \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        the next major release of GNU Radio, and hence its API \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        is likely to be different than that provided by gnuradio. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        This port may or not compile \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        or function correctly, as it represents a work in progress. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        If it does not work, check back in a few days.  Or try \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        deactivating the currently active gnuradio port, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        cleaning any current builds, and trying again.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts           gnuradio gnuradio37
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_versions { 3.6 3.7 3.8 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set default_python_variant +python37
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # fix Quartz behaviour
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # TODO verify https://github.com/gnuradio/gnuradio/issues/2726
</span>     patchfiles-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fixes_for-thrift.next.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # temporary patch to fix usage of GNURadioControlPortClient
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-quartz_drag_n_drop.next.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patch-quartz_drop_crash.next.diff
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patch-fix-GNURadioControlPortClient-usage.next.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # set the version override string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set GR_VERSION_INFO "next-git-[string range ${github.version} 0 7](${version})"
</span> 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# override githib PortGroup homepage setting
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage            https://www.gnuradio.org/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_parallel_build  yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# set Python version and variants
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set PythonVersionNoDot ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "gnuradio-next"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # select Python to use; default to 2.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python27 conflicts python35 python36 python37 description {Build GNU Radio using Python 2.7} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python35 conflicts python27 python36 python37 description {Build GNU Radio using Python 3.5} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python36 conflicts python27 python35 python37 description {Build GNU Radio using Python 3.6} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python37 conflicts python27 python35 python36 description {Build GNU Radio using Python 3.7} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![variant_isset python27] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ![variant_isset python35] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ![variant_isset python36] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ![variant_isset python37]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        default_variants +python27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# obsolete 20191016
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport gnuradio-devel {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    replaced_by     gnuradio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version         20180824
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup       obsolete 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_versions { 2.7 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set default_python_variant +python27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set GR_VERSION_INFO ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define the available variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach py_ver ${python_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set py_ver_no_dot [join [split ${py_ver} "."] ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set variant_line {variant python${py_ver_no_dot} description "Build with python ${py_ver} support"}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach py_over ${python_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${py_ver} == ${py_over} } { continue }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set py_over_no_dot [join [split ${py_over} "."] ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        append variant_line " conflicts python${py_over_no_dot}"
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![variant_isset python27] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ![variant_isset python35] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ![variant_isset python36] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ![variant_isset python37]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "\n\nYou must select one of the variants +python27, +python35, +python36, or +python37.\n"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error "Invalid variant selection"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    append variant_line { { } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    eval $variant_line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset python${py_ver_no_dot}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${default_python_variant} != "+python${py_ver_no_dot}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set default_python_variant ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[variant_isset python27]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set PythonVersionNoDot "27"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } elseif {[variant_isset python35]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set PythonVersionNoDot "35"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } elseif {[variant_isset python36]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set PythonVersionNoDot "36"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set PythonVersionNoDot "37"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# set default python variant if not selected
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${default_python_variant} != ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default_variants-append "${default_python_variant}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# If a python variant is enabled, activate it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set active_python_version ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set active_python_version_no_dot ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach py_ver ${python_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set py_ver_no_dot [join [split ${py_ver} "."] ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset python${py_ver_no_dot}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set active_python_version        ${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set active_python_version_no_dot ${py_ver_no_dot}
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # for now: release and devel require Python 2.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set PythonVersionNoDot "27"
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set PythonVersionWithDot [join [split ${PythonVersionNoDot} ""] "."]
</span> 
 depends_build-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:pkgconfig \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:swig-python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:pkgconfig
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append \
</span>     port:boost \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:fftw-3-single
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# some dependencies change by subport
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "gnuradio"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # release
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # still require cppunit for testing; NOTE: cppunit is checked for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # during configure, so we need it to be in depends_lib or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # depends_build to be used correctly. Choose the latter since it's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # not required for runtime; just for build/test.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append port:cppunit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${subport} eq "gnuradio-devel"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Require MPIR (or devel); don't use GMP for now
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append path:lib/libmpir.dylib:mpir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DGMP_INCLUDE_DIR= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DGMP_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DGMPXX_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DMPIR_INCLUDE_DIR=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DMPIR_LIBRARY=${prefix}/lib/libmpir.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DMPIRXX_LIBRARY=${prefix}/lib/libmpirxx.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # next
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_run-append port:adwaita-icon-theme
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Require MPIR (or devel); don't use GMP for now
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append path:lib/libmpir.dylib:mpir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DGMP_INCLUDE_DIR= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DGMP_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DGMPXX_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DMPIR_INCLUDE_DIR=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DMPIR_LIBRARY=${prefix}/lib/libmpir.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DMPIRXX_LIBRARY=${prefix}/lib/libmpirxx.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:fftw-3-single \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    path:lib/libmpir.dylib:mpir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    path:lib/libvolk.dylib:volk \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:gmp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:python${active_python_version_no_dot} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:py${active_python_version_no_dot}-numpy \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:py${active_python_version_no_dot}-cheetah
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# GR 3.8+ gr-vocoder
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# removed in-tree libgsm, libcodec2, use system-wide libs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {!(${subport} eq "gnuradio37")} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:codec2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:libgsm
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# need matplotlib for polar encoder/decoder, runtime
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# only. This is not checked for at configure.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append port:py${PythonVersionNoDot}-matplotlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# do VPATH (out of source tree) build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# need matplotlib for polar encoder/decoder, runtime only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_run-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:py${active_python_version_no_dot}-matplotlib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:py${active_python_version_no_dot}-opengl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    port:py${active_python_version_no_dot}-scipy
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-cmake.out_of_source yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DGMP_INCLUDE_DIR= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DGMP_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DGMPXX_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DMPIR_INCLUDE_DIR=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DMPIR_LIBRARY=${prefix}/lib/libmpir.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DMPIRXX_LIBRARY=${prefix}/lib/libmpirxx.dylib
</span> 
 # remove top-level library path, such that internal libraries
 # are used instead of any already-installed ones.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.ldflags-delete -L${prefix}/lib
 
 # install CMake files into this directory.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-append \
     -DCMAKE_MODULES_DIR=${prefix}/share/cmake
 
 # override default version string to be MacPorts-specific
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-append \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DCMAKE_BUILD_TYPE=Release \
</span>     -DGR_GIT_COUNT="MacPorts" \
     -DGR_GIT_HASH="${GR_VERSION_INFO}"
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# release, devel, and next can use either the Volk.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append path:lib/libvolk.dylib:volk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # disable using internal VOLK
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-append \
     -DENABLE_INTERNAL_VOLK=OFF
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# require Python
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:python${PythonVersionNoDot}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# these are checked for at configure, then required for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# runtime; so use depends_lib to get both.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:py${PythonVersionNoDot}-numpy \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:py${PythonVersionNoDot}-cheetah
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# these are not checked for at configure, but are required
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# for runtime; so use depends_run.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:py${PythonVersionNoDot}-opengl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    port:py${PythonVersionNoDot}-scipy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# for next only
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "gnuradio-next"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Require Py-click and Py-click-plugins; checked for at configure time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append port:py${PythonVersionNoDot}-click \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        port:py${PythonVersionNoDot}-click-plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # specify the Python version to use
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set python_framework_dir ${frameworks_dir}/Python.framework/Versions/${active_python_version}
</span> configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    -DPYTHON_EXECUTABLE=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/bin/python${PythonVersionWithDot} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    -DPYTHON_INCLUDE_DIR=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/Headers \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    -DPYTHON_LIBRARY=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/Python \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    -DGR_PYTHON_DIR=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/lib/python${PythonVersionWithDot}/site-packages
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Enable C/C++11 for all GNU Radio builds, even though it's not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# technically required yet (it will be once 3.8 is out). GNU Radio is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# compatible with C/C++11 and this setting allows for building on
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# older OSX using GCC along with newer OSX using Clang.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append -DCMAKE_CXX_STANDARD=11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append -DCMAKE_C_STANDARD=11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# on much older installs ...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${configure.cxx_stdlib} eq "macports-libstdc++" ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ${configure.cxx_stdlib} eq "libstdc++"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # for some reason cmake doesn't recognize libstdc++ compilers as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # being c++11 capable, even though some are. set this and hope for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # the best.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.cxxflags-append -std=gnu++11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # when using GCC on older OSX, certain math functions will not be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # part of std:: without this macro defined. This macro required
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # c++11 to be enabled, which is addressed in the next item.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.cxxflags-append -D_GLIBCXX_USE_C99_MATH_TR1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # enable C/CXX standard extensions (e.g., "gnu++11" and "gnu11"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # instead of than "c++11" and "c11"). GNU Radio itself does not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # require these extensions, but when compiling with GCC on older
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # OSX they allow for various various math functions to be in std::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # ... so, enable them.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DCMAKE_CXX_EXTENSIONS=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DCMAKE_C_EXTENSIONS=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # disable C/CXX standard extensions (e.g., "gnu++11" and "gnu11"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # rather than "c++11" and "c11"). GNU Radio itself does not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # require these extensions, and when compiling with Clang they
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # don't really do anything anyway; so, just disable them.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DCMAKE_CXX_EXTENSIONS=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DCMAKE_C_EXTENSIONS=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # fix residual cmake module install location when
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # CMAKE_MODULES_DIR does not do the whole trick
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # GNU Radio installs cmake files as "Config*.cmake", which has the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # odd behavior of requiring the files to be in a top-level shared
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # cmake directory; for MacPorts' cmake, these are, apparently:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # ${prefix}/lib:${prefix}/share/cmake .  I don't know why ... but
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # I do not want cmake files installed into the former, so move
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # them to the latter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[file exists ${destroot}${prefix}/lib/cmake]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 755 -d ${destroot}${prefix}/share
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        move ${destroot}${prefix}/lib/cmake \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${destroot}${prefix}/share
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# per user concensus: enable all variants except +jack, +portaudio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# +ctrlport, +ctrlport_thrift, +performance_counters,+debug, and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# +universal.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-default_variants +docs +grc +qtgui +uhd +wavelet \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    +swig +sdl +zeromq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "gnuradio" ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ${subport} eq "gnuradio-devel"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    default_variants +logging +log4cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DPYTHON_EXECUTABLE=${python_framework_dir}/bin/python${active_python_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DPYTHON_INCLUDE_DIR=${python_framework_dir}/Headers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DPYTHON_LIBRARY=${python_framework_dir}/Python \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DGR_PYTHON_DIR=${python_framework_dir}/lib/python${active_python_version}/site-packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO check "macports-libstdc++" or "libstdc++" should not needed anymore, right?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# disable C/CXX standard extensions (e.g., "gnu++11" and "gnu11"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# rather than "c++11" and "c11"). GNU Radio itself does not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# require these extensions, and when compiling with Clang they
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# don't really do anything anyway; so, just disable them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DCMAKE_CXX_EXTENSIONS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DCMAKE_C_EXTENSIONS=OFF
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# variants follow
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# disable all components by default;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# enable them only if the variant is enabled
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_DOXYGEN=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_SPHINX=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GRC=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_QTGUI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_WXGUI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DQT_QMAKE_EXECUTABLE= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_UHD=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DUHD_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DUHD_LIBRARIES= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_WAVELET=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DJACK_INCLUDE_DIR= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DJACK_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DPORTAUDIO_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DPORTAUDIO_LIBRARIES= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DSWIG_EXECUTABLE= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_VIDEO_SDL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DSDLMAIN_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DSDL_INCLUDE_DIR= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_CTRLPORT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_CTRLPORT_THRIFT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_PERFORMANCE_COUNTERS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_ZEROMQ=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DENABLE_GR_LOG=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DLOG4CPP_FOUND=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DLOG4CPP_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    -DLOG4CPP_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# default: don't create the application bundle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+app.create no
</span> 
 variant docs description "Install GNU Radio documentation" {
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -462,86 +308,85 @@ variant docs description "Install GNU Radio documentation" {
</span>         port:xmlto
 
     depends_build-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        port:py${PythonVersionNoDot}-sphinx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:py${active_python_version_no_dot}-sphinx \
</span>         port:texlive-latex
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_DOXYGEN=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_SPHINX=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DSPHINX_EXECUTABLE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append \
         -DENABLE_DOXYGEN=ON \
         -DENABLE_SPHINX=ON \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DSPHINX_EXECUTABLE=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/bin/sphinx-build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset docs]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_DOXYGEN=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_SPHINX=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DSPHINX_EXECUTABLE=${python_framework_dir}/bin/sphinx-build
</span> 
 }
 
 variant grc requires swig description "Install GNU Radio Companion" {
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GRC=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     # these are checked for at configure, then required
     # for runtime; so use depends_lib to get both.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${subport} eq "gnuradio37"} {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${subport} eq "gnuradio-next"} {
</span>         depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-gobject3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-mako \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-lxml \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-yaml \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:gtk3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            path:lib/pkgconfig/cairo.pc:cairo \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            path:lib/pkgconfig/pango.pc:pango
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-pygtk \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-lxml
</span> 
     } else {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>         depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-pygtk \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-lxml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-gobject3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-mako \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-lxml \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-yaml \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:gtk3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            path:lib/pkgconfig/cairo.pc:cairo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            path:lib/pkgconfig/pango.pc:pango
</span> 
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset grc]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # icons needed by GUI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_run-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:adwaita-icon-theme
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GRC=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GRC=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GRC=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # create the app to simplify usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.create yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.name GNURadio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.executable gnuradio-companion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.icon grc/scripts/freedesktop/grc-icon-256.png
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    app.retina yes
</span> 
 }
 
 variant qtgui description "Install GNU Radio with support for Qt GUI" {
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${subport} eq "gnuradio" ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${subport} eq "gnuradio-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${subport} eq "gnuradio37"} {
</span> 
         PortGroup qt4 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        PortGroup active_variants 1.1
</span> 
         depends_lib-append \
             port:qwtplot3d
 
         # pyqt4 is checked for at configure, then required for
         # runtime; so use depends_lib to get both.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-pyqt4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-pyqt4
</span> 
         # Requires qwt >= 5.2, so not the "qwt" port.  Also requires
         # py*-pyqwt which does not compile with qwt >= 6.0; so -have- to
         # use qwt52 for now.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         depends_lib-append port:qwt52
         require_active_variants qwt52 qt4
 
         # pyqwt is not checked for at configure, but is
         # required for runtime; so use depends_run.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         depends_run-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-pyqwt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-pyqwt
</span> 
         configure.args-append \
             -DQWT_INCLUDE_DIRS=${prefix}/include/qwt \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -549,74 +394,62 @@ variant qtgui description "Install GNU Radio with support for Qt GUI" {
</span> 
     } else {
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # next
</span>         PortGroup qt5 1.0
 
         # pyqt5 is checked for at configure, then required for
         # runtime; so use depends_lib to get both.  Can use
         # either py*-pyqt5 or py*-pyqt5-devel.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            path:share/py${PythonVersionNoDot}-sip/PyQt5:py${PythonVersionNoDot}-pyqt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            path:share/py${active_python_version_no_dot}-sip/PyQt5:py${active_python_version_no_dot}-pyqt5
</span> 
         # Requires qwt >= 6.0, installed for qt5.
         # just use the new port that does this.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:qwt-qt5
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-append port:qwt-qt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # require PyQtGraph for runtime only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_run-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-pyqtgraph
</span> 
         configure.args-append \
             -DQWT_INCLUDE_DIRS=${qt_dir}/lib/qwt.framework/Versions/6/Headers \
             -DQWT_LIBRARIES=${qt_dir}/lib/qwt.framework/qwt
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # require PyQtGraph for runtime only
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_run-append port:py${PythonVersionNoDot}-pyqtgraph
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GR_QTGUI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DQT_QMAKE_EXECUTABLE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append \
         -DENABLE_GR_QTGUI=ON \
         -DQT_QMAKE_EXECUTABLE=${qt_qmake_cmd}
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset qtgui]} {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GR_QTGUI=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DQT_QMAKE_EXECUTABLE=
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "gnuradio37"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant wxgui description "Install GNU Radio with support for Wx GUI" {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "gnuradio-next"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # no wxgui in next!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup wxWidgets 1.0
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant wxgui description "Install GNU Radio with support for Wx GUI" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        wxWidgets.use wxWidgets-3.0
</span> 
         depends_lib-append \
             port:${wxWidgets.port}
 
         # wxpython is checked for at configure, then required
         # for runtime; so use depends_lib to get both.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:py${PythonVersionNoDot}-wxpython-3.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DENABLE_GR_WXGUI=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[variant_isset wxgui]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        PortGroup wxWidgets 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        wxWidgets.use wxPython-3.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:py${active_python_version_no_dot}-wxpython-3.0
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DENABLE_GR_WXGUI=OFF
</span> 
         configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DENABLE_GR_WXGUI=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DENABLE_GR_WXGUI=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DwxWidgets_CONFIG_EXECUTABLE=${wxWidgets.wxconfig}
</span> 
     }
 }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -624,10 +457,14 @@ if {${subport} eq "gnuradio-next"} {
</span> variant uhd description "Install GNU Radio with support for UHD" {
 
     # allow for uhd or uhd-devel
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     depends_lib-append \
         path:lib/libuhd.dylib:uhd
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GR_UHD=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DUHD_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DUHD_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append \
         -DENABLE_GR_UHD=ON \
         -DUHD_INCLUDE_DIRS=${prefix}/include \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -635,92 +472,69 @@ variant uhd description "Install GNU Radio with support for UHD" {
</span> 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset uhd]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GR_UHD=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DUHD_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DUHD_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> 
 variant wavelet description "Install GNU Radio Wavelet component" {
 
     depends_lib-append \
         port:gsl
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GR_WAVELET=OFF \
</span>         -DENABLE_GR_WAVELET=ON
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset wavelet]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GR_WAVELET=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant jack description "Install GNU Radio with support for JACK audio" {
 
     depends_lib-append \
         port:jack
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DJACK_INCLUDE_DIR= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DJACK_LIBRARY=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append \
         -DJACK_INCLUDE_DIR=${prefix}/include \
         -DJACK_LIBRARY=${prefix}/lib/libjack.dylib
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset jack]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DJACK_INCLUDE_DIR= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DJACK_LIBRARY=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant portaudio description "Install GNU Radio with support for portaudio audio" {
 
     depends_lib-append \
         port:portaudio
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DPORTAUDIO_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DPORTAUDIO_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append \
         -DPORTAUDIO_INCLUDE_DIRS=${prefix}/include \
         -DPORTAUDIO_LIBRARIES=${prefix}/lib/libportaudio.dylib
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset portaudio]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DPORTAUDIO_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DPORTAUDIO_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant swig description "Install GNU Radio with support for SWIG-base Python bindings" {
 
     depends_build-append \
         port:swig-python
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DSWIG_EXECUTABLE= \
</span>         -DSWIG_EXECUTABLE=${prefix}/bin/swig
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset swig]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DSWIG_EXECUTABLE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant sdl description "Install GNU Radio with support for SDL-based video" {
 
     depends_lib-append \
         port:libsdl
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GR_VIDEO_SDL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DSDLMAIN_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DSDL_INCLUDE_DIR=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append \
         -DENABLE_GR_VIDEO_SDL=ON \
         -DSDLMAIN_LIBRARY=${prefix}/lib/libSDLmain.a \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -728,74 +542,43 @@ variant sdl description "Install GNU Radio with support for SDL-based video" {
</span> 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset sdl]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GR_VIDEO_SDL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DSDLMAIN_LIBRARY= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DSDL_INCLUDE_DIR=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant ctrlport description {Install GNU Radio with support for control port (CTRLPORT) enhancements (EXPERIMENTAL)} {
 
     # enable configuration arguments for ctrlport
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GR_CTRLPORT=OFF \
</span>         -DENABLE_GR_CTRLPORT=ON
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset ctrlport]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GR_CTRLPORT=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant ctrlport_thrift description {Install GNU Radio with support for Thrift for +ctrlport (EXPERIMENTAL)} requires ctrlport {
 
     # require Thrift and Python Thrift
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        port:py${PythonVersionNoDot}-thrift \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:py${active_python_version_no_dot}-thrift \
</span>         port:thrift
 
     # enable configuration arguments for ctrlport and thrift
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_CTRLPORT_THRIFT=OFF \
</span>         -DENABLE_CTRLPORT_THRIFT=ON
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset ctrlport_thrift]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_CTRLPORT_THRIFT=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant performance_counters description {Install GNU Radio with support for performance counters (EXPERIMENTAL)} {
 
     # these are not checked for at configure, but are
     # required for runtime; so use depends_run.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     depends_run-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        port:py${PythonVersionNoDot}-pygraphviz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        port:py${PythonVersionNoDot}-networkx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:py${active_python_version_no_dot}-pygraphviz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:py${active_python_version_no_dot}-networkx
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_PERFORMANCE_COUNTERS=OFF \
</span>         -DENABLE_PERFORMANCE_COUNTERS=ON
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset performance_counters]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_PERFORMANCE_COUNTERS=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> variant zeromq description {Install GNU Radio with support for the ZeroMQ lightweight messaging kernel (EXPERIMENTAL)} {
 
     # can use cppzmq or cppzmq-devel
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -804,70 +587,94 @@ variant zeromq description {Install GNU Radio with support for the ZeroMQ lightw
</span> 
     # pyzmq is not checked for at configure, but is
     # required for runtime; so use depends_run.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     depends_run-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        port:py${PythonVersionNoDot}-zmq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:py${active_python_version_no_dot}-zmq
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_GR_ZEROMQ=OFF \
</span>         -DENABLE_GR_ZEROMQ=ON
 
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset zeromq]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "gnuradio37"} {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        -DENABLE_GR_ZEROMQ=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # logging is an option on GR release and devel (3.7).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant logging description {Install GNU Radio with support for logging} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DENABLE_GR_LOG=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DENABLE_GR_LOG=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant log4cpp requires logging description {Install GNU Radio with support for logging via log4cpp} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:log4cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DLOG4CPP_FOUND= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DLOG4CPP_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DLOG4CPP_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DLOG4CPP_FOUND=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DLOG4CPP_INCLUDE_DIRS=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DLOG4CPP_LIBRARIES=${prefix}/lib/liblog4cpp.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "gnuradio-next"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # enabled by default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default_variants +logging +log4cpp
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # logging using log4cpp is always enabled on GR next (3.8*).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # logging using log4cpp is always enabled on GR 3.8+
</span>     depends_lib-append  \
         port:log4cpp
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DLOG4CPP_FOUND=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DLOG4CPP_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DLOG4CPP_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append \
         -DLOG4CPP_FOUND=ON \
         -DLOG4CPP_INCLUDE_DIRS=${prefix}/include \
         -DLOG4CPP_LIBRARIES=${prefix}/lib/liblog4cpp.dylib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # logging is an option on GR release and devel (3.7*).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant logging description {Install GNU Radio with support for logging} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DENABLE_GR_LOG=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![variant_isset logging]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DENABLE_GR_LOG=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant log4cpp requires logging description {Install GNU Radio with support for logging via log4cpp} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[variant_isset log4cpp]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant quartz conflicts x11 description {Enable native macOS graphics support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    require_active_variants gtk3 quartz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    require_active_variants path:lib/pkgconfig/cairo.pc:cairo quartz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    require_active_variants path:lib/pkgconfig/pango.pc:pango quartz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-append  \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:log4cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant x11 conflicts quartz description {Enable X11 support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    require_active_variants gtk3 x11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    require_active_variants path:lib/pkgconfig/cairo.pc:cairo x11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    require_active_variants path:lib/pkgconfig/pango.pc:pango x11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DLOG4CPP_FOUND=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DLOG4CPP_INCLUDE_DIRS=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DLOG4CPP_LIBRARIES=${prefix}/lib/liblog4cpp.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# per user consensus: enable all variants except +jack, +portaudio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# +ctrlport, +ctrlport_thrift, +performance_counters,+debug, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# +universal.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants +docs +grc +qtgui +uhd +wavelet \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    +swig +sdl +zeromq
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # fix residual cmake module install location when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # CMAKE_MODULES_DIR does not do the whole trick
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DLOG4CPP_FOUND=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DLOG4CPP_INCLUDE_DIRS= \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DLOG4CPP_LIBRARIES=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # GNU Radio installs cmake files as "Config*.cmake", which has the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # odd behavior of requiring the files to be in a top-level shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # cmake directory; for MacPorts' cmake, these are, apparently:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # ${prefix}/lib:${prefix}/share/cmake .  I don't know why ... but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # I do not want cmake files installed into the former, so move
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # them to the latter.
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[file exists ${destroot}${prefix}/lib/cmake]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 755 -d ${destroot}${prefix}/share
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        move ${destroot}${prefix}/lib/cmake \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${prefix}/share
</span>     }
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO test; at first sight, require CMAKE_BUILD_TYPE=Coverage
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-C_CXX_STANDARD.release.diff b/science/gnuradio/files/patch-C_CXX_STANDARD.37.diff
</span>similarity index 100%
rename from science/gnuradio/files/patch-C_CXX_STANDARD.release.diff
rename to science/gnuradio/files/patch-C_CXX_STANDARD.37.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-C_CXX_STANDARD.next.diff b/science/gnuradio/files/patch-C_CXX_STANDARD.38.diff
</span>similarity index 100%
rename from science/gnuradio/files/patch-C_CXX_STANDARD.next.diff
rename to science/gnuradio/files/patch-C_CXX_STANDARD.38.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-C_CXX_STANDARD.devel.diff b/science/gnuradio/files/patch-C_CXX_STANDARD.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 2637c565c26..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-C_CXX_STANDARD.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,157 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -130,9 +130,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     MESSAGE(status "Skipping compiler version check.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Configure C++ standard if not externally specified (will actually be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# set after CppUnit check below). Use the variable CMAKE_CXX_STANDARD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# since it will actually be used for this purposes starting in CMake 3.1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Configure C++ standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# CMAKE_CXX_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# starting in CMake 3.1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     SET(CMAKE_CXX_STANDARD 98)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -141,19 +148,129 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     SET(CMAKE_CXX_STANDARD 98)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    message(warning "C++ standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    MESSAGE(WARNING "C++ standard could not be set because compiler is not GNU, Clang, or MSVC.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# if the CXX standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(CMAKE_CXX_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # verify that the provided C++ standard is one CMake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # accepts. options are 90, 99, and 11 as of CMake 3.11.4 (with 20
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # coming in 3.12).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98" AND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "11" AND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "14" AND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       NOT ${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "17")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't recognized by CMake; expecting one of 98, 11, 14, or 17. Ignoring and using the GNU Radio default C++ standard (${CMAKE_CXX_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       SET(CMAKE_CXX_STANDARD_EXT ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # fix settings to be comparables. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${CMAKE_CXX_STANDARD} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # just copy the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(CMAKE_CXX_STANDARD_CMP ${CMAKE_CXX_STANDARD})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MATH(EXPR CMAKE_CXX_STANDARD_CMP "${CMAKE_CXX_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${CMAKE_CXX_STANDARD_EXT} VERSION_EQUAL "98")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # just copy the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(CMAKE_CXX_STANDARD_EXT_CMP ${CMAKE_CXX_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MATH(EXPR CMAKE_CXX_STANDARD_EXT_CMP "${CMAKE_CXX_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # compare values
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C++ standard (${CMAKE_CXX_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSEIF(${CMAKE_CXX_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_CXX_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MESSAGE(WARNING "Requested C++ standard (${CMAKE_CXX_STANDARD_EXT}) is more recent than the minimum required C++ standard (${CMAKE_CXX_STANDARD}). GNU Radio might have issues building using this C++ standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Configure C standard if not externally specified. Use the variable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# CMAKE_C_STANDARD since it will actually be used for this purposes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# starting in CMake 3.1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# save current setting, if provided
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(CMAKE_C_STANDARD)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# set GR preferred setting
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- IF(CMAKE_C_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_C_STANDARD 99)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_C_STANDARD 99)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_C_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    message(warning "C standard could not be set because compiler is not GNU, Clang or MSVC.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    MESSAGE(WARNING "C standard could not be set because compiler is not GNU, Clang, or MSVC.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# if the C standard was provided externally, make sure it meets GR's minimum
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(CMAKE_C_STANDARD_EXT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # verify that the provided C standard is one CMake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # accepts. options are 90, 99, and 11 as of CMake 3.11.4.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" AND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99" AND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       NOT ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "11")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't recognized by CMake; expecting one of 90, 99, or 11. Ignoring and using the GNU Radio default C standard (${CMAKE_C_STANDARD}).")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       SET(CMAKE_C_STANDARD_EXT ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # fix settings to be comparable. It will be -many- years until we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # have to worry about this value getting large enough to wrap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # around (to 90), so just add 100 to any value not in the 90's,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # for comparison sake.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${CMAKE_C_STANDARD} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ${CMAKE_C_STANDARD} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # just copy the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(CMAKE_C_STANDARD_CMP ${CMAKE_C_STANDARD})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MATH(EXPR CMAKE_C_STANDARD_CMP "${CMAKE_C_STANDARD} + 100")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "90" OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ${CMAKE_C_STANDARD_EXT} VERSION_EQUAL "99")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # just copy the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(CMAKE_C_STANDARD_EXT_CMP ${CMAKE_C_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSE()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # add 100 to the value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MATH(EXPR CMAKE_C_STANDARD_EXT_CMP "${CMAKE_C_STANDARD_EXT} + 100")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # compare values
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    IF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_LESS ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) isn't modern enough to build GNU Radio; using minimum required C standard (${CMAKE_C_STANDARD}) instead and hoping for the best!")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ELSEIF(${CMAKE_C_STANDARD_EXT_CMP} VERSION_GREATER ${CMAKE_C_STANDARD_CMP})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MESSAGE(WARNING "Requested C standard (${CMAKE_C_STANDARD_EXT}) is more recent than the minimum required C standard (${CMAKE_C_STANDARD}). GNU Radio might have issues building using this C standard; go with it and hope for the best!")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        SET(CMAKE_C_STANDARD ${CMAKE_C_STANDARD_EXT})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# If C/CXX EXTENSIONS are defined, don't change them. GNU Radio itself
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# does not require them. If not defined, then disable them as a safe
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# default.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(NOT CMAKE_C_EXTENSIONS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_C_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(NOT CMAKE_CXX_EXTENSIONS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_CXX_EXTENSIONS OFF)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# If cmake version is < 3.1, explicitly set C/C++ standard to use;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# this CMake doesn't internally use CMAKE_C*_STANDARD variables.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(${CMAKE_VERSION} VERSION_LESS "3.1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c${CMAKE_C_STANDARD}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++${CMAKE_CXX_STANDARD}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Environment setup
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-cmake-expand.devel.diff b/science/gnuradio/files/patch-cmake-expand.37.diff
</span>similarity index 100%
rename from science/gnuradio/files/patch-cmake-expand.devel.diff
rename to science/gnuradio/files/patch-cmake-expand.37.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-cmake-expand.release.diff b/science/gnuradio/files/patch-cmake-expand.release.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 4897cd58344..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-cmake-expand.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,72 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/Modules/GrMiscUtils.cmake.orig   2014-07-28 15:14:06.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ cmake/Modules/GrMiscUtils.cmake        2014-07-29 09:35:15.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -383,6 +383,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   endforeach(sig)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   unset(name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #try to force generate the headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  execute_process(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${root} ${root}.h.t ${ARGN}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   #create a command to generate the headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   add_custom_command(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     OUTPUT ${expanded_files_h}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -428,6 +435,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   endforeach(sig)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   unset(name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #try to force generate the source files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  execute_process(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${root} ${root}.cc.t ${ARGN}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   #create a command to generate the source files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   add_custom_command(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     OUTPUT ${expanded_files_cc}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -437,6 +451,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${root} ${root}.cc.t ${ARGN}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #try to force generate the header files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  execute_process(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${root} ${root}.h.t ${ARGN}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   #create a command to generate the header files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   add_custom_command(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     OUTPUT ${expanded_files_h}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -490,6 +511,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   endforeach(sig)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   unset(name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #try to force generate the _impl.cc files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  execute_process(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${root} ${root}_impl.cc.t ${ARGN}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   #create a command to generate the _impl.cc files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   add_custom_command(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     OUTPUT ${expanded_files_cc_impl}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -499,6 +527,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${root} ${root}_impl.cc.t ${ARGN}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  #try to force generate the _impl.h files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  execute_process(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${root} ${root}_impl.h.t ${ARGN}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   #create a command to generate the _impl.h files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   add_custom_command(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     OUTPUT ${expanded_files_h_impl}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-FindLog4cpp.devel.diff b/science/gnuradio/files/patch-fix-FindLog4cpp.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a7220dd0887..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fix-FindLog4cpp.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/Modules/FindLog4cpp.cmake.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ cmake/Modules/FindLog4cpp.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,9 +23,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   PATHS /usr/lib /usr/local/lib /opt/local/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (LOG4CPP_INCLUDE_DIR AND LOG4CPP_LIBRARY)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  set(LOG4CPP_FOUND TRUE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  set(LOG4CPP_FOUND TRUE CACHE INTERNAL "" FORCE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set(LOG4CPP_LIBRARIES ${LOG4CPP_LIBRARY} CACHE INTERNAL "" FORCE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set(LOG4CPP_INCLUDE_DIRS ${LOG4CPP_INCLUDE_DIR} CACHE INTERNAL "" FORCE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else ()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-GNUCXX.release.diff b/science/gnuradio/files/patch-fix-GNUCXX.37.diff
</span>similarity index 100%
rename from science/gnuradio/files/patch-fix-GNUCXX.release.diff
rename to science/gnuradio/files/patch-fix-GNUCXX.37.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-GNUCXX.devel.diff b/science/gnuradio/files/patch-fix-GNUCXX.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d74d87ffde4..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fix-GNUCXX.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,27 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -302,16 +302,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include(GrMiscUtils) #compiler flag check
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    #http://gcc.gnu.org/wiki/Visibility
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE(-fvisibility=hidden HAVE_VISIBILITY_HIDDEN)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if(CMAKE_COMPILER_IS_GNUCXX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(NOT WIN32)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        #http://gcc.gnu.org/wiki/Visibility
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE(-fvisibility=hidden HAVE_VISIBILITY_HIDDEN)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    endif(NOT WIN32)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE(-Wsign-compare HAVE_WARN_SIGN_COMPARE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE(-Wall HAVE_WARN_ALL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE(-Wno-uninitialized HAVE_WARN_NO_UNINITIALIZED)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--endif(CMAKE_COMPILER_IS_GNUCXX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(MSVC)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     include_directories(${CMAKE_SOURCE_DIR}/cmake/msvc) #missing headers
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-GNURadioControlPortClient-usage.next.diff b/science/gnuradio/files/patch-fix-GNURadioControlPortClient-usage.38.diff
</span>similarity index 100%
rename from science/gnuradio/files/patch-fix-GNURadioControlPortClient-usage.next.diff
rename to science/gnuradio/files/patch-fix-GNURadioControlPortClient-usage.38.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-ctrlport-python-app-install-location.devel.diff b/science/gnuradio/files/patch-fix-ctrlport-python-app-install-location.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index bceff2424b1..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fix-ctrlport-python-app-install-location.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -40,7 +40,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GR_PYTHON_INSTALL(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    FILES
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    PROGRAMS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CMAKE_CURRENT_SOURCE_DIR}/gr-perf-monitorx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CMAKE_CURRENT_SOURCE_DIR}/gr-ctrlport-monitor
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DESTINATION ${GR_RUNTIME_DIR}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-ctrlport-python-app-install-location.release.diff b/science/gnuradio/files/patch-fix-ctrlport-python-app-install-location.release.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index bceff2424b1..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fix-ctrlport-python-app-install-location.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -40,7 +40,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GR_PYTHON_INSTALL(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    FILES
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    PROGRAMS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CMAKE_CURRENT_SOURCE_DIR}/gr-perf-monitorx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CMAKE_CURRENT_SOURCE_DIR}/gr-ctrlport-monitor
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DESTINATION ${GR_RUNTIME_DIR}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-mp.devel.diff b/science/gnuradio/files/patch-fix-mp.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index bdf8658d846..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fix-mp.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,42 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/lib/block.cc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/lib/block.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -194,13 +194,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   block::set_relative_rate(uint64_t interpolation, uint64_t decimation)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mpz_class interp, decim;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (interpolation < 1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       throw std::invalid_argument("block::set_relative_rate: interpolation rate cannot be 0");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (decimation < 1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       throw std::invalid_argument("block::set_relative_rate: decimation rate cannot be 0");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    d_mp_relative_rate = mpq_class(interpolation, decimation);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mpz_import(interp.get_mpz_t(), 1, 1, sizeof(interpolation), 0, 0, &interpolation);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mpz_import(decim.get_mpz_t(), 1, 1, sizeof(decimation), 0, 0, &decimation);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    d_mp_relative_rate = mpq_class (interp, decim);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     d_mp_relative_rate.canonicalize();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     d_relative_rate = d_mp_relative_rate.get_d();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/lib/block_executor.cc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/lib/block_executor.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -146,7 +146,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           mpz_class offset;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           for(t = rtags.begin(); t != rtags.end(); t++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             tag_t new_tag = *t;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            offset = new_tag.offset * mp_rrate + one_half;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            mpz_import(offset.get_mpz_t(), 1, 1, sizeof(new_tag.offset), 0, 0, &new_tag.offset);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            offset = offset * mp_rrate + one_half;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             new_tag.offset = offset.get_ui();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             for(int o = 0; o < d->noutputs(); o++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               out_buf[o]->add_item_tag(new_tag);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -188,7 +189,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             mpz_class offset;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             for(t = rtags.begin(); t != rtags.end(); t++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               tag_t new_tag = *t;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              offset = new_tag.offset * mp_rrate + one_half;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              mpz_import(offset.get_mpz_t(), 1, 1, sizeof(new_tag.offset), 0, 0, &new_tag.offset);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              offset = offset * mp_rrate + one_half;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               new_tag.offset = offset.get_ui();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               out_buf->add_item_tag(new_tag);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix-rpc-unused-vars.devel.diff b/science/gnuradio/files/patch-fix-rpc-unused-vars.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index e1c26ba0129..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fix-rpc-unused-vars.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,120 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcmanager.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcmanager.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -53,7 +53,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static bool make_aggregator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static bool booter_registered;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static bool aggregator_registered;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  static void rpcserver_booter_base_sptr_dest(rpcserver_booter_base* b) {;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  static void rpcserver_booter_base_sptr_dest(rpcserver_booter_base* b) {(void) b;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static std::auto_ptr<rpcserver_booter_base> boot;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static std::auto_ptr<rpcserver_booter_aggregator> aggregator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcregisterhelpers.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcregisterhelpers.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -56,6 +56,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ~rpcextractor_base() {;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) msg;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     throw std::runtime_error("rpcextractor_base: no post defined for this data type.\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -74,6 +76,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ~rpcextractor_base() {;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) msg;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     throw std::runtime_error("rpcextractor_base: no post defined for this data type.\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -204,6 +208,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) msg;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,void>::_source->*rpcextractor_base<T,void>::_func)();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -221,6 +227,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,char>::_source->*rpcextractor_base<T,char>::_func)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (static_cast<char>(pmt::to_long(msg)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -239,6 +246,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,short>::_source->*rpcextractor_base<T,short>::_func)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (static_cast<short>(pmt::to_long(msg)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -257,6 +265,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,double>::_source->*rpcextractor_base<T,double>::_func)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (pmt::to_double(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -275,6 +284,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,float>::_source->*rpcextractor_base<T,float>::_func)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (pmt::to_double(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -293,6 +303,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,long>::_source->*rpcextractor_base<T,long>::_func)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (pmt::to_long(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -311,6 +322,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,int>::_source->*rpcextractor_base<T,int>::_func)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (pmt::to_long(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -329,6 +341,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,bool>::_source->*rpcextractor_base<T,bool>::_func)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (pmt::to_bool(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -348,6 +361,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     std::complex<float> k = static_cast<std::complex<float> >(pmt::to_complex(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,std::complex<float> >::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      _source->*rpcextractor_base<T,std::complex<float> >::_func)(k);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -368,6 +382,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,std::complex<double> >::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      _source->*rpcextractor_base<T,std::complex<double> >::_func)(pmt::to_complex(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -387,6 +402,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void post(pmt::pmt_t which_port, pmt::pmt_t msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) which_port;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     (rpcextractor_base<T,std::string>::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      _source->*rpcextractor_base<T,std::string>::_func)(pmt::symbol_to_string(msg));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix_ctrlport_test.release.diff b/science/gnuradio/files/patch-fix_ctrlport_test.37.diff
</span>similarity index 100%
rename from science/gnuradio/files/patch-fix_ctrlport_test.release.diff
rename to science/gnuradio/files/patch-fix_ctrlport_test.37.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fix_ctrlport_test.devel.diff b/science/gnuradio/files/patch-fix_ctrlport_test.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 8ac728e451f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fix_ctrlport_test.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,393 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Copyright 2010-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Copyright 2010-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -542,20 +542,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- add_subdirectory(gr-wxgui)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- add_subdirectory(gr-zeromq)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Defining GR_CTRLPORT for gnuradio/config.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  set(GR_CTRLPORT True)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  add_definitions(-DGR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if(CTRLPORT_BACKENDS GREATER 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    set(GR_RPCSERVER_ENABLED True)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      set(GR_RPCSERVER_THRIFT True)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    endif(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  endif(CTRLPORT_BACKENDS GREATER 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--endif(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Install our Cmake modules into $prefix/lib/cmake/gnuradio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # See "Package Configuration Files" on page:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #    http://www.cmake.org/Wiki/CMake/Tutorials/Packaging
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Copyright 2013 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Copyright 2013-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -60,19 +60,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GR_SET_GLOBAL(GNURADIO_RUNTIME_PYTHONPATH ${GNURADIO_RUNTIME_PYTHONPATH})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Register controlport component
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--FIND_PACKAGE(SWIG)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--GR_REGISTER_COMPONENT("gr-ctrlport" ENABLE_GR_CTRLPORT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  Boost_FOUND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  SWIG_FOUND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  SWIG_VERSION_CHECK
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ENABLE_GNURADIO_RUNTIME
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Begin conditional configuration
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -116,6 +103,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DESCRIPTION  "SWIG development .i files"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DEPENDS      "runtime_swig;runtime_python;runtime_devel"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure_file(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-runtime.conf.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-runtime.conf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -146,8 +134,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- add_subdirectory(lib)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- add_subdirectory(apps)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(ENABLE_PYTHON)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--     add_subdirectory(swig)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--     add_subdirectory(python)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_subdirectory(swig)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_subdirectory(python)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     add_subdirectory(examples)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(ENABLE_PYTHON)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/lib/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/lib/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Copyright 2013 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Copyright 2013-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -46,20 +46,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Setup the include and linker paths
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--include_directories(${GNURADIO_RUNTIME_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    ${CMAKE_CURRENT_SOURCE_DIR}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              ${CMAKE_CURRENT_BINARY_DIR}/../include/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              ${VOLK_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    ${Boost_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    ${MPLIB_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+include_directories(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${GNURADIO_RUNTIME_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_SOURCE_DIR}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_BINARY_DIR}/../include/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${VOLK_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${Boost_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${MPLIB_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--if(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    list(APPEND include_directories
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ${THRIFT_INCLUDE_DIRS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Include subdirs rather to populate to the sources lists.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -122,7 +117,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   vmcircbuf_mmap_tmpfile.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   vmcircbuf_prefs.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   vmcircbuf_sysv_shm.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${gnuradio_ctrlport_sources}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # PowerPC workaround for posix_memalign
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -211,25 +205,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # STATIC LIB BUILD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #######################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(ENABLE_STATIC_LIBS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  # Remove controlport-specific source files from staticlibs build if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  # ICE is the backend since it does not build statically.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if(ICE_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      list(REMOVE_ITEM gnuradio_runtime_sources
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ${gnuradio_ctrlport_sources}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      # Remove GR_CTRLPORT set this target's definitions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      # Makes sure we don't try to use ControlPort stuff in source files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      GET_DIRECTORY_PROPERTY(STATIC_DEFS COMPILE_DEFINITIONS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      list(REMOVE_ITEM STATIC_DEFS "GR_CTRLPORT")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      SET_PROPERTY(DIRECTORY PROPERTY COMPILE_DEFINITIONS "${STATIC_DEFS}")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      # readd it to the target since we removed it from the directory-wide list.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      SET_PROPERTY(TARGET gnuradio-runtime APPEND PROPERTY COMPILE_DEFINITIONS "GR_CTRLPORT")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    endif(ICE_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  endif(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   add_library(gnuradio-runtime_static STATIC ${gnuradio_runtime_sources})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if(NOT WIN32)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/lib/controlport/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/lib/controlport/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Copyright 2013 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Copyright 2013-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17,89 +17,156 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # the Free Software Foundation, Inc., 51 Franklin Street,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Boston, MA 02110-1301, USA.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# NOTE: this directory was added via "GR_INCLUDE_SUBDIRECTORY", not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# "add_subdirectory", and hence anything performed here is as if it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# were executed in the calling directory.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Register controlport component
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+FIND_PACKAGE(SWIG)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+GR_REGISTER_COMPONENT("gr-ctrlport" ENABLE_GR_CTRLPORT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Boost_FOUND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SWIG_FOUND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SWIG_VERSION_CHECK
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ENABLE_GNURADIO_RUNTIME
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Handle controlport component options
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Keep track of the number of backends ControlPort supports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--SET(CTRLPORT_BACKENDS 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# handle non-backend specifics
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Add definition so we can compile in ControlPort to the blocks.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- add_definitions(-DGR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--include_directories(${CMAKE_CURRENT_SOURCE_DIR})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+include_directories(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_SOURCE_DIR}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_BINARY_DIR}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- list(APPEND gnuradio_ctrlport_sources
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/rpcmanager.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/rpcserver_aggregator.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/rpcserver_booter_aggregator.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/rpcserver_selector.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_SOURCE_DIR}/rpcmanager.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_SOURCE_DIR}/rpcserver_aggregator.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_SOURCE_DIR}/rpcserver_booter_aggregator.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ${CMAKE_CURRENT_SOURCE_DIR}/rpcserver_selector.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Keep track of the number of backends ControlPort supports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SET(CTRLPORT_BACKENDS 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# add CTRLPORT backend option Thrift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OPTION(ENABLE_CTRLPORT_THRIFT "Enable ControlPort Thrift support" ON)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Look if Thrift is installed and use it as a ControlPort backend.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# is Thrift installed?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- FIND_PACKAGE(Thrift)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--include_directories(${THRIFT_INCLUDE_DIRS})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Indicate thrift as an installed backend in the cmake summary.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--message(STATUS "Found and enabling Thrift backend to ControlPort")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--GR_APPEND_SUBCOMPONENT("thrift")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Run Thrift To compile C++ and Python files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--message(STATUS "Running thrift to build C++ bindings")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/thrift/)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--list(APPEND gnuradio_thrift_generated_sources
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_BINARY_DIR}/thrift/gnuradio_types.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_BINARY_DIR}/thrift/gnuradio_constants.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_BINARY_DIR}/thrift/ControlPort.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--add_custom_command(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  DEPENDS ${CMAKE_SOURCE_DIR}/gnuradio-runtime/lib/controlport/thrift/gnuradio.thrift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  OUTPUT ${gnuradio_thrift_generated_sources}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  COMMAND ${THRIFT_BIN} --gen cpp -out ${CMAKE_CURRENT_BINARY_DIR}/thrift/ ${CMAKE_CURRENT_SOURCE_DIR}/thrift/gnuradio.thrift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--list(APPEND gnuradio_ctrlport_sources
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/thrift/rpcserver_thrift.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/thrift/rpcpmtconverters_thrift.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/thrift/rpcserver_booter_thrift.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${CMAKE_CURRENT_SOURCE_DIR}/thrift/thrift_application_base.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  # add files built by compiling gnuradio.thrift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${gnuradio_thrift_generated_sources}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Add  required libraries here
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--list(APPEND gnuradio_runtime_libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${THRIFT_LIBRARIES}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Add install rule to move example Thrift configuration file into
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# $prefix/etc/gnuradio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--install(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  FILES ${CMAKE_CURRENT_SOURCE_DIR}/thrift/thrift.conf.example
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  DESTINATION ${SYSCONFDIR}/${CMAKE_PROJECT_NAME}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  COMPONENT "runtime_runtime"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # yes: thrift is installed; use it as a backend
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Indicate thrift as an installed backend in the cmake summary.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    message(STATUS "Found and enabling Thrift backend to ControlPort")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Run Thrift To compile C++ and Python files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    message(STATUS "Running thrift to build C++ bindings")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/thrift/)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    list(APPEND gnuradio_thrift_generated_sources
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${CMAKE_CURRENT_BINARY_DIR}/thrift/gnuradio_types.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${CMAKE_CURRENT_BINARY_DIR}/thrift/gnuradio_constants.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${CMAKE_CURRENT_BINARY_DIR}/thrift/ControlPort.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_custom_command(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        DEPENDS ${CMAKE_SOURCE_DIR}/gnuradio-runtime/lib/controlport/thrift/gnuradio.thrift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        OUTPUT ${gnuradio_thrift_generated_sources}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        COMMAND ${THRIFT_BIN} --gen cpp -out ${CMAKE_CURRENT_BINARY_DIR}/thrift/ ${CMAKE_CURRENT_SOURCE_DIR}/thrift/gnuradio.thrift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    list(APPEND gnuradio_ctrlport_sources
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${CMAKE_CURRENT_SOURCE_DIR}/thrift/rpcserver_thrift.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${CMAKE_CURRENT_SOURCE_DIR}/thrift/rpcpmtconverters_thrift.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${CMAKE_CURRENT_SOURCE_DIR}/thrift/rpcserver_booter_thrift.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${CMAKE_CURRENT_SOURCE_DIR}/thrift/thrift_application_base.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # add files built by compiling gnuradio.thrift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${gnuradio_thrift_generated_sources}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Add required Thrift libraries
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    list(APPEND gnuradio_runtime_libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ${THRIFT_LIBRARIES}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Add required Thrift include paths
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    include_directories(${THRIFT_INCLUDE_DIRS}/thrift)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Add install rule to move example Thrift configuration file into
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # $prefix/etc/gnuradio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    install(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        FILES ${CMAKE_CURRENT_SOURCE_DIR}/thrift/thrift.conf.example
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        DESTINATION ${SYSCONFDIR}/${CMAKE_PROJECT_NAME}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        COMPONENT "runtime_runtime"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # no: thrift was not found
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # disable using Thrift for ctrlport locally
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set(ENABLE_CTRLPORT_THRIFT NO)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# add other backends here
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Add controlport stuff to gnuradio-runtime
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Handle controlport component post-options
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--include_directories(${CMAKE_CURRENT_BINARY_DIR})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# handle subcomponent printout
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    GR_APPEND_SUBCOMPONENT("thrift")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# did we find a ctrlport backend?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if(CTRLPORT_BACKENDS GREATER 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set(HAVE_CTRLPORT_BACKEND TRUE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else(CTRLPORT_BACKENDS GREATER 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set(HAVE_CTRLPORT_BACKEND FALSE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif(CTRLPORT_BACKENDS GREATER 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Save the number of backends for testing against later
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Save variables to a global scope for testing against later, and for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# defines for gnuradio/config.h and other C++ code
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  CTRLPORT_BACKENDS ${CTRLPORT_BACKENDS}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  CACHE INTERNAL "Number of ControlPort backends available"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    HAVE_CTRLPORT_BACKEND ${HAVE_CTRLPORT_BACKEND}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CACHE INTERNAL "There at least 1 ControlPort backend"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--endif(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+set(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    GR_CTRLPORT ${ENABLE_GR_CTRLPORT}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CACHE INTERNAL "Using ControlPort"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+set(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    GR_RPCSERVER_ENABLED ${HAVE_CTRLPORT_BACKEND}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CACHE INTERNAL "RPC Server Enabled"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+set(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    GR_RPCSERVER_THRIFT ${ENABLE_CTRLPORT_THRIFT}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    CACHE INTERNAL "Thrift RPC Server Enabled"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# update runtime sources list, if any
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+list(APPEND gnuradio_runtime_sources ${gnuradio_ctrlport_sources})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gr-blocks/python/blocks/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gr-blocks/python/blocks/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Copyright 2012 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Copyright 2012-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -45,14 +45,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   include(GrTest)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   file(GLOB py_qa_test_files "qa_*.py")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  # Force out the controlport QA tests if we have no backends to use.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if(CTRLPORT_BACKENDS EQUAL 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # Remove controlport QA tests if we have no backends to use.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if(NOT HAVE_CTRLPORT_BACKEND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     list(REMOVE_ITEM py_qa_test_files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       ${CMAKE_CURRENT_SOURCE_DIR}/qa_cpp_py_binding.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       ${CMAKE_CURRENT_SOURCE_DIR}/qa_cpp_py_binding_set.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       ${CMAKE_CURRENT_SOURCE_DIR}/qa_ctrlport_probes.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  endif(CTRLPORT_BACKENDS EQUAL 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  endif(NOT HAVE_CTRLPORT_BACKEND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   foreach(py_qa_test_file ${py_qa_test_files})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fixes_for-boost_1.70.0.release.diff b/science/gnuradio/files/patch-fixes_for-boost_1.70.0.release.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index c2b458facfe..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fixes_for-boost_1.70.0.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gr-blocks/lib/socket_pdu_impl.cc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gr-blocks/lib/socket_pdu_impl.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -165,7 +165,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     socket_pdu_impl::start_tcp_accept()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if (BOOST_VERSION >= 107000)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tcp_connection::sptr new_connection = tcp_connection::make(d_io_service, d_rxbuf.size(), d_tcp_no_delay);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       tcp_connection::sptr new_connection = tcp_connection::make(d_acceptor_tcp->get_io_service(), d_rxbuf.size(), d_tcp_no_delay);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       d_acceptor_tcp->async_accept(new_connection->socket(),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         boost::bind(&socket_pdu_impl::handle_tcp_accept, this,
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fixes_for-thrift.next.diff b/science/gnuradio/files/patch-fixes_for-thrift.38.diff
</span>similarity index 100%
rename from science/gnuradio/files/patch-fixes_for-thrift.next.diff
rename to science/gnuradio/files/patch-fixes_for-thrift.38.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fixes_for-thrift.devel.diff b/science/gnuradio/files/patch-fixes_for-thrift.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 9de0f00f49a..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fixes_for-thrift.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,242 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/Modules/FindThrift.cmake.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ cmake/Modules/FindThrift.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -84,3 +84,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   THRIFT_LIBRARIES THRIFT_INCLUDE_DIRS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   THRIFT_BIN PYTHON_THRIFT_FOUND THRIFT_FOUND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# set version to be useable by calling script
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  set(THRIFT_VERSION ${PC_THRIFT_VERSION} CACHE INTERNAL "Thrift Version" FORCE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -72,6 +72,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   types.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   sys_pri.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   unittests.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpccallbackregister_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpcmanager.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* -*- c++ -*- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Copyright 2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * GNU Radio is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * any later version.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * GNU Radio is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * along with GNU Radio; see the file COPYING.  If not, write to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * the Free Software Foundation, Inc., 51 Franklin Street,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Boston, MA 02110-1301, USA.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// select a "shared_ptr" type to use: std:: or boost:: . The selection
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// will happen in gnuradio-runtime/lib/controlport/CMakeLists.txt .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// CTRLPORT_USE_STD_SHARED_PTR will be defined here to 0 or 1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if CTRLPORT_USE_STD_SHARED_PTR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <memory>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define GR_RPC_SHARED_PTR std::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else /* !CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define GR_RPC_SHARED_PTR boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif /* CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif /* RPC_SHARED_PTR_SELECTION_H */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcmanager_base.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,7 +23,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcserver_booter_base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //class rpcserver_booter_aggregator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -31,7 +31,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcmanager_base
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  typedef boost::shared_ptr<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  typedef GR_RPC_SHARED_PTR<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ~rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcserver_base.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcserver_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,6 +23,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/rpccallbackregister_base.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcserver_base : public virtual callbackregister_base
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -42,7 +43,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   virtual void setCurPrivLevel(const priv_lvl_t priv) { cur_priv = priv; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  typedef boost::shared_ptr<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  typedef GR_RPC_SHARED_PTR<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- protected:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   priv_lvl_t cur_priv;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -24,9 +24,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define RPCSERVER_BOOTER_AGGREGATOR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/api.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/rpcserver_booter_base.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/rpcserver_aggregator.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcserver_server;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -50,7 +50,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   std::string d_type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<rpcserver_aggregator> server;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<rpcserver_aggregator> server;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif /* RPCSERVER_BOOTER_AGGREGATOR */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/thrift_server_template.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/thrift_server_template.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/prefs.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/logger.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/thrift_application_base.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <iostream>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -50,11 +51,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   friend class thrift_application_base<TserverBase, TImplClass>;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    * Custom TransportFactory that allows you to override the default Thrift buffer size
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    * of 512 bytes.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -67,10 +68,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     virtual ~TBufferedTransportFactory() {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    virtual boost::shared_ptr<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        boost::shared_ptr<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    virtual GR_RPC_SHARED_PTR<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        GR_RPC_SHARED_PTR<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      return boost::shared_ptr<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      return GR_RPC_SHARED_PTR<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         (new thrift::transport::TBufferedTransport(trans, bufferSize));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -126,11 +127,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     //std::cout << "Thrift Multi-threaded server : " << d_nthreads << std::endl;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    boost::shared_ptr<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    GR_RPC_SHARED_PTR<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (thrift::concurrency::ThreadManager::newSimpleThreadManager(nthreads));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     threadManager->threadFactory
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      (boost::shared_ptr<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      (GR_RPC_SHARED_PTR<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        (new thrift::concurrency::PlatformThreadFactory()));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     threadManager->start();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/lib/controlport/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/lib/controlport/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -73,6 +73,33 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # yes: thrift is installed; use it as a backend
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # If Thrift was found, make sure the selected c++ standard is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # compatible: Thrift <= 0.10 requires using boost:shared_ptr, which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # will work with any c++ standard. Thrift >= 0.11.0 requires using
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # std::shared_ptr, which requires c++11 or later.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(${THRIFT_VERSION} VERSION_GREATER_EQUAL 0.11.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if(${CMAKE_CXX_STANDARD} VERSION_LESS 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                message(WARNING "\nWarning: Thrift version is ${THRIFT_VERSION}, which requires C++11 for building. The current c++ standard to use is C++${CMAKE_CXX_STANDARD}, which will not work with this Thrift version. Trying to set CMake internally to use C++11 ...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            message(WARNING "\nWarning: Thrift version is ${THRIFT_VERSION}, which requires C++11 for building. The c++ standard to use is not currently set. Trying to set CMake internally to use C++11 ...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Add a macro for whether to require using std::shared_ptr.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # depends on the version of Thrift.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(${THRIFT_VERSION} VERSION_LESS_EQUAL 0.10.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # old version that uses boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        # new version that uses c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # Indicate thrift as an installed backend in the cmake summary.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     message(STATUS "Found and enabling Thrift backend to ControlPort")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -123,6 +150,20 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     # disable using Thrift for ctrlport locally
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     set(ENABLE_CTRLPORT_THRIFT NO)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # building CTRLPORT, but not using Thrift. CTRLPORT does not require
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # std::shared_ptr, can use either std::shared_ptr or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # boost::shared_ptr. If using c++11 or later, choose the former,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # else choose the latter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if(${CMAKE_CXX_STANDARD} VERSION_GREATER_EQUAL 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-fixes_for-thrift.release.diff b/science/gnuradio/files/patch-fixes_for-thrift.release.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 75e24b11d68..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-fixes_for-thrift.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,244 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- cmake/Modules/FindThrift.cmake.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ cmake/Modules/FindThrift.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -84,3 +84,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   THRIFT_LIBRARIES THRIFT_INCLUDE_DIRS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   THRIFT_BIN PYTHON_THRIFT_FOUND THRIFT_FOUND
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# set version to be useable by calling script
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+IF(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  set(THRIFT_VERSION ${PC_THRIFT_VERSION} CACHE INTERNAL "Thrift Version" FORCE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENDIF()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -72,6 +72,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   types.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   sys_pri.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   unittests.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpccallbackregister_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpcmanager.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* -*- c++ -*- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Copyright 2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * GNU Radio is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * any later version.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * GNU Radio is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * along with GNU Radio; see the file COPYING.  If not, write to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * the Free Software Foundation, Inc., 51 Franklin Street,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Boston, MA 02110-1301, USA.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// select a "shared_ptr" type to use: std:: or boost:: . The selection
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// will happen in gnuradio-runtime/lib/controlport/CMakeLists.txt .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// CTRLPORT_USE_STD_SHARED_PTR will be defined here to 0 or 1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if CTRLPORT_USE_STD_SHARED_PTR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <memory>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define GR_RPC_SHARED_PTR std::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else /* !CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define GR_RPC_SHARED_PTR boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif /* CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif /* RPC_SHARED_PTR_SELECTION_H */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcmanager_base.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,7 +23,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcserver_booter_base;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //class rpcserver_booter_aggregator;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -31,7 +31,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcmanager_base
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  typedef boost::shared_ptr<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  typedef GR_RPC_SHARED_PTR<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ~rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcserver_base.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcserver_base.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,6 +23,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/rpccallbackregister_base.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcserver_base : public virtual callbackregister_base
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -42,7 +43,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   virtual void setCurPrivLevel(const priv_lvl_t priv) { cur_priv = priv; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  typedef boost::shared_ptr<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  typedef GR_RPC_SHARED_PTR<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- protected:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   priv_lvl_t cur_priv;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -24,9 +24,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define RPCSERVER_BOOTER_AGGREGATOR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/api.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/rpcserver_booter_base.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/rpcserver_aggregator.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class rpcserver_server;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -50,7 +50,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   std::string d_type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<rpcserver_aggregator> server;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<rpcserver_aggregator> server;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif /* RPCSERVER_BOOTER_AGGREGATOR */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/include/gnuradio/thrift_server_template.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/include/gnuradio/thrift_server_template.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/prefs.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/logger.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <gnuradio/thrift_application_base.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <iostream>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -50,11 +51,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   friend class thrift_application_base<TserverBase, TImplClass>;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  boost::shared_ptr<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GR_RPC_SHARED_PTR<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    * Custom TransportFactory that allows you to override the default Thrift buffer size
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    * of 512 bytes.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -67,10 +68,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     virtual ~TBufferedTransportFactory() {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    virtual boost::shared_ptr<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        boost::shared_ptr<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    virtual GR_RPC_SHARED_PTR<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        GR_RPC_SHARED_PTR<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      return boost::shared_ptr<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      return GR_RPC_SHARED_PTR<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         (new thrift::transport::TBufferedTransport(trans, bufferSize));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -126,11 +127,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     //std::cout << "Thrift Multi-threaded server : " << d_nthreads << std::endl;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    boost::shared_ptr<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    GR_RPC_SHARED_PTR<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       (thrift::concurrency::ThreadManager::newSimpleThreadManager(nthreads));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     threadManager->threadFactory
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      (boost::shared_ptr<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      (GR_RPC_SHARED_PTR<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        (new thrift::concurrency::PlatformThreadFactory()));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     threadManager->start();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/lib/controlport/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/lib/controlport/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -46,6 +46,33 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# If Thrift was found, make sure the selected c++ standard is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# compatible: Thrift <= 0.10 requires using boost:shared_ptr, which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# will work with any c++ standard. Thrift >= 0.11.0 requires using
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# std::shared_ptr, which requires c++11 or later.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if(${THRIFT_VERSION} VERSION_GREATER_EQUAL 0.11.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if(${CMAKE_CXX_STANDARD} VERSION_LESS 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      message(WARNING "\nWarning: Thrift version is ${THRIFT_VERSION}, which requires C++11 for building. The current c++ standard to use is C++${CMAKE_CXX_STANDARD}, which will not work with this Thrift version. Trying to set CMake internally to use C++11 ...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    message(WARNING "\nWarning: Thrift version is ${THRIFT_VERSION}, which requires C++11 for building. The c++ standard to use is not currently set. Trying to set CMake internally to use C++11 ...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Add a macro for whether to require using std::shared_ptr.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# depends on the version of Thrift.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if(${THRIFT_VERSION} VERSION_LESS_EQUAL 0.10.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # old version that uses boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # new version that uses c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include_directories(${THRIFT_INCLUDE_DIRS})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -89,6 +116,22 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   COMPONENT "runtime_runtime"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# building CTRLPORT, but not using Thrift. CTRLPORT does not require
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# std::shared_ptr, can use either std::shared_ptr or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# boost::shared_ptr. If using c++11 or later, choose the former,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# else choose the latter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if(${CMAKE_CXX_STANDARD} VERSION_GREATER_EQUAL 11)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- endif(ENABLE_GR_CTRLPORT)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-gnuradio-runtime_lib_buffer.cc.boost_include_fix.devel.diff b/science/gnuradio/files/patch-gnuradio-runtime_lib_buffer.cc.boost_include_fix.devel.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 8a020ff84f7..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/gnuradio/files/patch-gnuradio-runtime_lib_buffer.cc.boost_include_fix.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,20 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gnuradio-runtime/lib/buffer.cc.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gnuradio-runtime/lib/buffer.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -31,7 +31,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <iostream>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <assert.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <algorithm>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <boost/math/common_factor_rt.hpp>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <boost/integer/common_factor_rt.hpp>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- namespace gr {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -75,7 +75,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static long
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   minimum_buffer_items(long type_size, long page_size)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return page_size / boost::math::gcd (type_size, page_size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return page_size / boost::integer::gcd (type_size, page_size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-quartz_drag_n_drop.38.diff b/science/gnuradio/files/patch-quartz_drag_n_drop.38.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d79710c441b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-quartz_drag_n_drop.38.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5ee92ee7e2a9936615a494aa814fa31eda0398e7 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Emmanuel Blot <emmanuel.blot@free.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 13 Aug 2019 10:23:45 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix drag n' drop issue with Quartz (macOS) backend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grc/gui/Constants.py | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/grc/gui/Constants.py b/grc/gui/Constants.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a3d08cbe38..8210170302 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- grc/gui/Constants.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ grc/gui/Constants.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -52,7 +52,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ STATE_CACHE_SIZE = 42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Shared targets for drag and drop of blocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-DND_TARGETS = [('STRING', Gtk.TargetFlags.SAME_APP, 0)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DND_TARGETS = [Gtk.TargetEntry.new('STRING', Gtk.TargetFlags.SAME_APP, 0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               Gtk.TargetEntry.new('UTF8_STRING', Gtk.TargetFlags.SAME_APP, 1)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # label constraint dimensions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LABEL_SEPARATION = 3
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-quartz_drag_n_drop.next.diff b/science/gnuradio/files/patch-quartz_drag_n_drop.next.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d79710c441b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-quartz_drag_n_drop.next.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5ee92ee7e2a9936615a494aa814fa31eda0398e7 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Emmanuel Blot <emmanuel.blot@free.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 13 Aug 2019 10:23:45 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix drag n' drop issue with Quartz (macOS) backend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grc/gui/Constants.py | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/grc/gui/Constants.py b/grc/gui/Constants.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a3d08cbe38..8210170302 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- grc/gui/Constants.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ grc/gui/Constants.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -52,7 +52,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ STATE_CACHE_SIZE = 42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Shared targets for drag and drop of blocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-DND_TARGETS = [('STRING', Gtk.TargetFlags.SAME_APP, 0)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DND_TARGETS = [Gtk.TargetEntry.new('STRING', Gtk.TargetFlags.SAME_APP, 0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               Gtk.TargetEntry.new('UTF8_STRING', Gtk.TargetFlags.SAME_APP, 1)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # label constraint dimensions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LABEL_SEPARATION = 3
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-quartz_drop_crash.38.diff b/science/gnuradio/files/patch-quartz_drop_crash.38.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..850c7fa33c6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-quartz_drop_crash.38.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,92 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 61be64deb0cdfc6b356d4391151b1134ddee7437 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Emmanuel Blot <emmanuel.blot@free.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 15 Aug 2019 16:08:05 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use an ImageSurface rather than UI back end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Use an ImageSurface to test whether the cursor is on a line path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It avoids storing a reference of the draw context, as deferred access
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+may run out of sync with the Cairo Quartz back end.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grc/gui/canvas/connection.py | 35 ++++++++++++++++++++++++-----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 24 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/grc/gui/canvas/connection.py b/grc/gui/canvas/connection.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2accfaf4d6..6f41dede7e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- grc/gui/canvas/connection.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ grc/gui/canvas/connection.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,7 +20,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from __future__ import absolute_import, division
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from argparse import Namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-from math import pi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from math import ceil, pi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from cairo import Context, Format, ImageSurface
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from . import colors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from .drawable import Drawable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,8 +59,8 @@ def __init__(self, *args, **kwargs):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._rel_points = None  # connection coordinates relative to sink/source
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._arrow_rotation = 0.0  # rotation of the arrow in radians
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        self._current_cr = None  # for what_is_selected() of curved line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._line_path = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        self._line_extents = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     @nop_write
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     @property
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -134,12 +136,12 @@ def _make_path(self, cr=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             cr.curve_to(*(p2 + p3 + p4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             cr.line_to(*p5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             self._line_path = cr.copy_path()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            self._line_extents = cr.path_extents()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def draw(self, cr):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         Draw the connection.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        self._current_cr = cr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         sink = self.sink_port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         source = self.source_port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -200,21 +202,32 @@ def what_is_selected(self, coor, coor_m=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if coor_m:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return Drawable.what_is_selected(self, coor, coor_m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        x, y = [a - b for a, b in zip(coor, self.coordinate)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        sx, sy = self.coordinate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        tx, ty = coor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cr = self._current_cr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if ((tx < sx + self._line_extents[0]) or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (ty < sy + self._line_extents[1]) or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (tx > sx + self._line_extents[2]) or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (ty > sy + self._line_extents[3])):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # outside the bounding box
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if cr is None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cr.save()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        x, y = [a - b for a, b in zip(coor, self.coordinate)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        w = ceil(self._line_extents[2]-self._line_extents[0]+1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        h = ceil(self._line_extents[3]-self._line_extents[1]+1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # use an image surface to avoid reusing the backend context
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        cr = Context(ImageSurface(Format.A8, w, h))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cr.new_path()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cr.append_path(self._line_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cr.set_line_width(cr.get_line_width() * LINE_SELECT_SENSITIVITY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         hit = cr.in_stroke(x, y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cr.restore()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if hit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if not hit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # not on the line path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class DummyCoreConnection(object):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-quartz_drop_crash.next.diff b/science/gnuradio/files/patch-quartz_drop_crash.next.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..850c7fa33c6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-quartz_drop_crash.next.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,92 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 61be64deb0cdfc6b356d4391151b1134ddee7437 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Emmanuel Blot <emmanuel.blot@free.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 15 Aug 2019 16:08:05 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use an ImageSurface rather than UI back end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Use an ImageSurface to test whether the cursor is on a line path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It avoids storing a reference of the draw context, as deferred access
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+may run out of sync with the Cairo Quartz back end.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grc/gui/canvas/connection.py | 35 ++++++++++++++++++++++++-----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 24 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/grc/gui/canvas/connection.py b/grc/gui/canvas/connection.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2accfaf4d6..6f41dede7e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- grc/gui/canvas/connection.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ grc/gui/canvas/connection.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,7 +20,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from __future__ import absolute_import, division
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from argparse import Namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-from math import pi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from math import ceil, pi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from cairo import Context, Format, ImageSurface
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from . import colors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from .drawable import Drawable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,8 +59,8 @@ def __init__(self, *args, **kwargs):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._rel_points = None  # connection coordinates relative to sink/source
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._arrow_rotation = 0.0  # rotation of the arrow in radians
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        self._current_cr = None  # for what_is_selected() of curved line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._line_path = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        self._line_extents = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     @nop_write
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     @property
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -134,12 +136,12 @@ def _make_path(self, cr=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             cr.curve_to(*(p2 + p3 + p4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             cr.line_to(*p5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             self._line_path = cr.copy_path()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            self._line_extents = cr.path_extents()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def draw(self, cr):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         Draw the connection.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        self._current_cr = cr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         sink = self.sink_port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         source = self.source_port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -200,21 +202,32 @@ def what_is_selected(self, coor, coor_m=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if coor_m:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return Drawable.what_is_selected(self, coor, coor_m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        x, y = [a - b for a, b in zip(coor, self.coordinate)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        sx, sy = self.coordinate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        tx, ty = coor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cr = self._current_cr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if ((tx < sx + self._line_extents[0]) or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (ty < sy + self._line_extents[1]) or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (tx > sx + self._line_extents[2]) or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (ty > sy + self._line_extents[3])):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # outside the bounding box
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if cr is None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cr.save()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        x, y = [a - b for a, b in zip(coor, self.coordinate)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        w = ceil(self._line_extents[2]-self._line_extents[0]+1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        h = ceil(self._line_extents[3]-self._line_extents[1]+1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # use an image surface to avoid reusing the backend context
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        cr = Context(ImageSurface(Format.A8, w, h))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cr.new_path()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cr.append_path(self._line_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         cr.set_line_width(cr.get_line_width() * LINE_SELECT_SENSITIVITY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         hit = cr.in_stroke(x, y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        cr.restore()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if hit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if not hit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # not on the line path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class DummyCoreConnection(object):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/gnuradio/files/patch-use_meta_key.diff b/science/gnuradio/files/patch-use_meta_key.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..aa2d23c0b6c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/gnuradio/files/patch-use_meta_key.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,98 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 859a205e307e99eab0c7ba56175cdb1e3c7c184b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Davide Gerhard <rainbow@irh.it>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 14 Apr 2020 10:01:33 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] gnuradio-companion: add Meta modifier key for macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+implements support for the Meta key on macOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Others platforms continue to use Ctrl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grc/gui/Actions.py |  6 +++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grc/gui/Dialogs.py |  4 +++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grc/gui/Utils.py   | 22 ++++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 30 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/grc/gui/Actions.py b/grc/gui/Actions.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cf81e63ac7..edbc4f8405 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- grc/gui/Actions.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ grc/gui/Actions.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13,6 +13,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from gi.repository import Gtk, Gdk, Gio, GLib, GObject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from . import Utils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ log = logging.getLogger(__name__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,7 +126,10 @@ def __init__(self, name, parameter=None, label=None, tooltip=None,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self.label = label
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self.tooltip = tooltip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self.icon_name = icon_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        self.keypresses = keypresses
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if keypresses:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            self.keypresses = [kp.replace("<Ctrl>", Utils.get_modifier_key(True)) for kp in keypresses]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            self.keypresses = None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self.prefix = prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self.preference_name = preference_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self.default = default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/grc/gui/Dialogs.py b/grc/gui/Dialogs.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index af8e0230f1..f55d21bdb8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- grc/gui/Dialogs.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ grc/gui/Dialogs.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,9 +287,10 @@ def show_help(parent):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         <u>Remove connection</u>: select the connection and press delete, or 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        drag the connection.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        *Press CTRL+K or see menu for Keyboard - Shortcuts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        *Press Ctrl+K or see menu for Keyboard - Shortcuts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     """)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    markup = markup.replace("Ctrl", Utils.get_modifier_key())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MessageDialogWrapper(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         parent, Gtk.MessageType.INFO, Gtk.ButtonsType.CLOSE, title='Help', markup=markup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -328,6 +329,7 @@ def show_keyboard_shortcuts(parent):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             selected block.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     """)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    markup = markup.replace("Ctrl", Utils.get_modifier_key())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MessageDialogWrapper(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         parent, Gtk.MessageType.INFO, Gtk.ButtonsType.CLOSE, title='Keyboard - Shortcuts', markup=markup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/grc/gui/Utils.py b/grc/gui/Utils.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index acfe054cfc..5d710532bd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- grc/gui/Utils.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ grc/gui/Utils.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,6 +8,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from __future__ import absolute_import
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from sys import platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import numbers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from gi.repository import GLib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -152,3 +153,24 @@ def scale(coor, reverse=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def scale_scalar(coor, reverse=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     factor = Constants.DPI_SCALING if not reverse else 1 / Constants.DPI_SCALING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return int(coor * factor)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++def get_modifier_key(angle_brackets=False):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Get the modifier key based on platform.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Args:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        angle_brackets: if return the modifier key with <> or not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Returns:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return the string with the modifier key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if platform == "darwin":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if angle_brackets:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return "<Meta>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return "Meta"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if angle_brackets:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return "<Ctrl>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return "Ctrl"
</span></pre><pre style='margin:0'>

</pre>