<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>