<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/e2bfcfe141d8b71fe875bbbac36f653088e2463e">https://github.com/macports/macports-ports/commit/e2bfcfe141d8b71fe875bbbac36f653088e2463e</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new e2bfcfe  gnuradio: add patches to fix building with +ctrlport_thrift
</span>e2bfcfe is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e2bfcfe141d8b71fe875bbbac36f653088e2463e
</span>Author: Michael Dickens <michaelld@macports.org>
AuthorDate: Wed Aug 14 19:19:29 2019 -0400

<span style='display:block; white-space:pre;color:#404040;'>    gnuradio: add patches to fix building with +ctrlport_thrift
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    No need to rev-bump, since this doesn't change current behavior.
</span><span style='display:block; white-space:pre;color:#404040;'>    It will come into play when updating Thrift from 0.10.0 to 0.12.0.
</span>---
 science/gnuradio/Portfile                          |  15 ++
 .../files/patch-fixes_for-thrift.devel.diff        | 242 ++++++++++++++++++++
 .../files/patch-fixes_for-thrift.next.diff         | 248 +++++++++++++++++++++
 .../files/patch-fixes_for-thrift.release.diff      | 244 ++++++++++++++++++++
 4 files changed, 749 insertions(+)

<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 528693b..ab42d16 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;'>@@ -124,6 +124,11 @@ if {${subport} eq "gnuradio"} {
</span>     patchfiles-append \
         patch-fixes_for-boost_1.70.0.release.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix using Thrift 0.9.2 through 0.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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.release.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> } elseif {${subport} eq "gnuradio-devel"} {
 
     # patches for devel
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -175,6 +180,11 @@ if {${subport} eq "gnuradio"} {
</span>     patchfiles-append \
         patch-fix-rpc-unused-vars.devel.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix using Thrift 0.9.2 through 0.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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.devel.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> } else {
 
     # patches for next
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -185,6 +195,11 @@ if {${subport} eq "gnuradio"} {
</span>     patchfiles-append \
         patch-C_CXX_STANDARD.next.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # temporary patch to fix using Thrift 0.9.2 through 0.12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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.next.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
 
 # override githib PortGroup homepage setting
<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>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9de0f00
</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-fixes_for-thrift.devel.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,242 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/Modules/FindThrift.cmake.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/Modules/FindThrift.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,3 +84,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   THRIFT_LIBRARIES THRIFT_INCLUDE_DIRS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   THRIFT_BIN PYTHON_THRIFT_FOUND THRIFT_FOUND
</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;'>++# set version to be useable by calling script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set(THRIFT_VERSION ${PC_THRIFT_VERSION} CACHE INTERNAL "Thrift Version" FORCE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,6 +72,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   types.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sys_pri.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unittests.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpccallbackregister_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* -*- c++ -*- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Copyright 2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU Radio is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU Radio is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * along with GNU Radio; see the file COPYING.  If not, write to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the Free Software Foundation, Inc., 51 Franklin Street,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Boston, MA 02110-1301, USA.
</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;'>++#ifndef RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// select a "shared_ptr" type to use: std:: or boost:: . The selection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// will happen in gnuradio-runtime/lib/controlport/CMakeLists.txt .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// CTRLPORT_USE_STD_SHARED_PTR will be defined here to 0 or 1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if CTRLPORT_USE_STD_SHARED_PTR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GR_RPC_SHARED_PTR std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else /* !CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GR_RPC_SHARED_PTR boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* RPC_SHARED_PTR_SELECTION_H */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcmanager_base.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,7 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_booter_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //class rpcserver_booter_aggregator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcmanager_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef boost::shared_ptr<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef GR_RPC_SHARED_PTR<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ~rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcserver_base.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcserver_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,6 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpccallbackregister_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_base : public virtual callbackregister_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,7 +43,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   virtual void setCurPrivLevel(const priv_lvl_t priv) { cur_priv = priv; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef boost::shared_ptr<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef GR_RPC_SHARED_PTR<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   priv_lvl_t cur_priv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,9 +24,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCSERVER_BOOTER_AGGREGATOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/api.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpcserver_booter_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpcserver_aggregator.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_server;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::string d_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<rpcserver_aggregator> server;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<rpcserver_aggregator> server;
</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;'>+ #endif /* RPCSERVER_BOOTER_AGGREGATOR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/thrift_server_template.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/thrift_server_template.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/prefs.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/logger.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/thrift_application_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <iostream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,11 +51,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   friend class thrift_application_base<TserverBase, TImplClass>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * Custom TransportFactory that allows you to override the default Thrift buffer size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * of 512 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,10 +68,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual ~TBufferedTransportFactory() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    virtual boost::shared_ptr<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        boost::shared_ptr<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    virtual GR_RPC_SHARED_PTR<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        GR_RPC_SHARED_PTR<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return boost::shared_ptr<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return GR_RPC_SHARED_PTR<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         (new thrift::transport::TBufferedTransport(trans, bufferSize));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,11 +127,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     //std::cout << "Thrift Multi-threaded server : " << d_nthreads << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    boost::shared_ptr<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    GR_RPC_SHARED_PTR<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       (thrift::concurrency::ThreadManager::newSimpleThreadManager(nthreads));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     threadManager->threadFactory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      (boost::shared_ptr<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      (GR_RPC_SHARED_PTR<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        (new thrift::concurrency::PlatformThreadFactory()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     threadManager->start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/lib/controlport/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/lib/controlport/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -73,6 +73,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # yes: thrift is installed; use it as a backend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # If Thrift was found, make sure the selected c++ standard is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # compatible: Thrift <= 0.10 requires using boost:shared_ptr, which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # will work with any c++ standard. Thrift >= 0.11.0 requires using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # std::shared_ptr, which requires c++11 or later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(${THRIFT_VERSION} VERSION_GREATER_EQUAL 0.11.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if(${CMAKE_CXX_STANDARD} VERSION_LESS 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                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:#e0ffe0;'>++                set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            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:#e0ffe0;'>++            set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Add a macro for whether to require using std::shared_ptr.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # depends on the version of Thrift.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(${THRIFT_VERSION} VERSION_LESS_EQUAL 0.10.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # old version that uses boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # new version that uses c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Indicate thrift as an installed backend in the cmake summary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     message(STATUS "Found and enabling Thrift backend to ControlPort")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -123,6 +150,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # disable using Thrift for ctrlport locally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(ENABLE_CTRLPORT_THRIFT NO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # building CTRLPORT, but not using Thrift. CTRLPORT does not require
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # std::shared_ptr, can use either std::shared_ptr or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # boost::shared_ptr. If using c++11 or later, choose the former,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # else choose the latter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(${CMAKE_CXX_STANDARD} VERSION_GREATER_EQUAL 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</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.next.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..68fc904
</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-fixes_for-thrift.next.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,248 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/Modules/FindTHRIFT.cmake.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/Modules/FindTHRIFT.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -91,3 +91,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     INTERFACE_LINK_LIBRARIES "${THRIFT_LIBRARIES}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# set version to be useable by calling script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set(THRIFT_VERSION ${PC_THRIFT_VERSION} CACHE INTERNAL "Thrift Version" FORCE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,6 +72,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tag_checker.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   types.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unittests.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpccallbackregister_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* -*- c++ -*- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Copyright 2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU Radio is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU Radio is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * along with GNU Radio; see the file COPYING.  If not, write to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the Free Software Foundation, Inc., 51 Franklin Street,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Boston, MA 02110-1301, USA.
</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;'>++#ifndef RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// select a "shared_ptr" type to use: std:: or boost:: . The selection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// will happen in gnuradio-runtime/lib/controlport/CMakeLists.txt .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// CTRLPORT_USE_STD_SHARED_PTR will be defined here to 0 or 1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if CTRLPORT_USE_STD_SHARED_PTR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GR_RPC_SHARED_PTR std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else /* !CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GR_RPC_SHARED_PTR boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* RPC_SHARED_PTR_SELECTION_H */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcmanager_base.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,7 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_booter_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //class rpcserver_booter_aggregator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcmanager_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef boost::shared_ptr<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef GR_RPC_SHARED_PTR<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ~rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcserver_base.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcserver_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,6 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpccallbackregister_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_base : public virtual callbackregister_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,7 +43,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   virtual void setCurPrivLevel(const priv_lvl_t priv) { cur_priv = priv; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef boost::shared_ptr<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef GR_RPC_SHARED_PTR<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   priv_lvl_t cur_priv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,9 +24,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCSERVER_BOOTER_AGGREGATOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/api.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpcserver_booter_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpcserver_aggregator.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_server;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::string d_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<rpcserver_aggregator> server;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<rpcserver_aggregator> server;
</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;'>+ #endif /* RPCSERVER_BOOTER_AGGREGATOR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/thrift_server_template.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/thrift_server_template.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/prefs.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/logger.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/thrift_application_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <iostream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,11 +51,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   friend class thrift_application_base<TserverBase, TImplClass>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * Custom TransportFactory that allows you to override the default Thrift buffer size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * of 512 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,10 +68,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual ~TBufferedTransportFactory() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    virtual boost::shared_ptr<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        boost::shared_ptr<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    virtual GR_RPC_SHARED_PTR<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        GR_RPC_SHARED_PTR<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return boost::shared_ptr<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return GR_RPC_SHARED_PTR<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         (new thrift::transport::TBufferedTransport(trans, bufferSize));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,11 +127,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     //std::cout << "Thrift Multi-threaded server : " << d_nthreads << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    boost::shared_ptr<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    GR_RPC_SHARED_PTR<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       (thrift::concurrency::ThreadManager::newSimpleThreadManager(nthreads));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     threadManager->threadFactory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      (boost::shared_ptr<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      (GR_RPC_SHARED_PTR<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        (new thrift::concurrency::PlatformThreadFactory()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     threadManager->start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/lib/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/lib/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -142,9 +142,37 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FIND_PACKAGE(THRIFT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(APPEND EXTRA_DEPS "THRIFT")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Thrift was found! Make sure the selected c++ standard is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# compatible: Thrift <= 0.10 requires using boost:shared_ptr, which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# will work with any c++ standard. Thrift >= 0.11.0 requires using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# std::shared_ptr, which requires c++11 or later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${THRIFT_VERSION} VERSION_GREATER_EQUAL 0.11.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(${CMAKE_CXX_STANDARD} VERSION_LESS 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      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:#e0ffe0;'>++      set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    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:#e0ffe0;'>++    set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Add a macro for whether to require using std::shared_ptr.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# depends on the version of Thrift.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${THRIFT_VERSION} VERSION_LESS_EQUAL 0.10.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # old version that uses boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # new version that uses c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Indicate thrift as an installed backend in the cmake summary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ message(STATUS "Found and enabling Thrift backend to ControlPort")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GR_APPEND_SUBCOMPONENT("thrift")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -185,6 +213,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DESTINATION ${GR_PKG_DOC_DIR}/config
</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;'>++else(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# building CTRLPORT, but not using Thrift. CTRLPORT does not require
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# std::shared_ptr, can use either std::shared_ptr or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# boost::shared_ptr. If using c++11 or later, choose the former,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else choose the latter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(${CMAKE_CXX_STANDARD} VERSION_GREATER_EQUAL 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</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>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..75e24b1
</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-fixes_for-thrift.release.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,244 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/Modules/FindThrift.cmake.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/Modules/FindThrift.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,3 +84,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   THRIFT_LIBRARIES THRIFT_INCLUDE_DIRS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   THRIFT_BIN PYTHON_THRIFT_FOUND THRIFT_FOUND
</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;'>++# set version to be useable by calling script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set(THRIFT_VERSION ${PC_THRIFT_VERSION} CACHE INTERNAL "Thrift Version" FORCE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,6 +72,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   types.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sys_pri.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unittests.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpccallbackregister_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpc_shared_ptr_selection.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* -*- c++ -*- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Copyright 2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file is part of GNU Radio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU Radio is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU Radio is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * along with GNU Radio; see the file COPYING.  If not, write to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the Free Software Foundation, Inc., 51 Franklin Street,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Boston, MA 02110-1301, USA.
</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;'>++#ifndef RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define RPC_SHARED_PTR_SELECTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// select a "shared_ptr" type to use: std:: or boost:: . The selection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// will happen in gnuradio-runtime/lib/controlport/CMakeLists.txt .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// CTRLPORT_USE_STD_SHARED_PTR will be defined here to 0 or 1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if CTRLPORT_USE_STD_SHARED_PTR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GR_RPC_SHARED_PTR std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else /* !CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GR_RPC_SHARED_PTR boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* CTRLPORT_USE_STD_SHARED_PTR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* RPC_SHARED_PTR_SELECTION_H */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcmanager_base.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcmanager_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,7 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCMANAGER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_booter_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //class rpcserver_booter_aggregator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcmanager_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef boost::shared_ptr<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef GR_RPC_SHARED_PTR<rpcserver_booter_base> rpcserver_booter_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ~rpcmanager_base() {;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcserver_base.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcserver_base.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,6 +23,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCSERVER_BASE_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpccallbackregister_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_base : public virtual callbackregister_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,7 +43,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   virtual void setCurPrivLevel(const priv_lvl_t priv) { cur_priv = priv; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef boost::shared_ptr<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef GR_RPC_SHARED_PTR<rpcserver_base> rpcserver_base_sptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   priv_lvl_t cur_priv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/rpcserver_booter_aggregator.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,9 +24,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define RPCSERVER_BOOTER_AGGREGATOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/api.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpcserver_booter_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/rpcserver_aggregator.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <boost/shared_ptr.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class rpcserver_server;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   std::string d_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<rpcserver_aggregator> server;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<rpcserver_aggregator> server;
</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;'>+ #endif /* RPCSERVER_BOOTER_AGGREGATOR */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/include/gnuradio/thrift_server_template.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/include/gnuradio/thrift_server_template.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/prefs.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/logger.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <gnuradio/rpc_shared_ptr_selection.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <gnuradio/thrift_application_base.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <iostream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,11 +51,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   friend class thrift_application_base<TserverBase, TImplClass>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  boost::shared_ptr<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<TserverClass> d_handler;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::TProcessor> d_processor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::transport::TServerTransport> d_serverTransport;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::transport::TTransportFactory> d_transportFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GR_RPC_SHARED_PTR<thrift::protocol::TProtocolFactory> d_protocolFactory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * Custom TransportFactory that allows you to override the default Thrift buffer size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * of 512 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,10 +68,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual ~TBufferedTransportFactory() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    virtual boost::shared_ptr<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        boost::shared_ptr<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    virtual GR_RPC_SHARED_PTR<thrift::transport::TTransport> getTransport(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        GR_RPC_SHARED_PTR<thrift::transport::TTransport> trans)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return boost::shared_ptr<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return GR_RPC_SHARED_PTR<thrift::transport::TTransport>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         (new thrift::transport::TBufferedTransport(trans, bufferSize));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,11 +127,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     //std::cout << "Thrift Multi-threaded server : " << d_nthreads << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    boost::shared_ptr<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    GR_RPC_SHARED_PTR<thrift::concurrency::ThreadManager> threadManager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       (thrift::concurrency::ThreadManager::newSimpleThreadManager(nthreads));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     threadManager->threadFactory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      (boost::shared_ptr<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      (GR_RPC_SHARED_PTR<thrift::concurrency::PlatformThreadFactory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        (new thrift::concurrency::PlatformThreadFactory()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     threadManager->start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gnuradio-runtime/lib/controlport/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gnuradio-runtime/lib/controlport/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -46,6 +46,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If Thrift was found, make sure the selected c++ standard is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# compatible: Thrift <= 0.10 requires using boost:shared_ptr, which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# will work with any c++ standard. Thrift >= 0.11.0 requires using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# std::shared_ptr, which requires c++11 or later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${THRIFT_VERSION} VERSION_GREATER_EQUAL 0.11.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(${CMAKE_CXX_STANDARD} VERSION_LESS 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      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:#e0ffe0;'>++      set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    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:#e0ffe0;'>++    set(CMAKE_CXX_STANDARD 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Add a macro for whether to require using std::shared_ptr.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# depends on the version of Thrift.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(${THRIFT_VERSION} VERSION_LESS_EQUAL 0.10.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # old version that uses boost::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # new version that uses c++11 std::shared_ptr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_directories(${THRIFT_INCLUDE_DIRS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,6 +116,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   COMPONENT "runtime_runtime"
</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;'>++else(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# building CTRLPORT, but not using Thrift. CTRLPORT does not require
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# std::shared_ptr, can use either std::shared_ptr or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# boost::shared_ptr. If using c++11 or later, choose the former,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else choose the latter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_CXX_STANDARD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(${CMAKE_CXX_STANDARD} VERSION_GREATER_EQUAL 11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_definitions("-DCTRLPORT_USE_STD_SHARED_PTR=0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(THRIFT_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(ENABLE_CTRLPORT_THRIFT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(ENABLE_GR_CTRLPORT)
</span></pre><pre style='margin:0'>

</pre>