[packages/rstudio] - more fixes in boost patch, added websocketpp-boost patch for internal websocketpp - release 2

qboosh qboosh at pld-linux.org
Tue May 7 21:49:50 CEST 2019


commit 6d6b4763077f6d69f96a3bcb9360c94a9e483e8e
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue May 7 21:50:23 2019 +0200

    - more fixes in boost patch, added websocketpp-boost patch for internal websocketpp
    - release 2

 rstudio-boost.patch     | 242 +++++++++++++++++++++++++++++++++++++-----------
 rstudio.spec            |  77 ++++++++++-----
 websocketpp-boost.patch |  76 +++++++++++++++
 3 files changed, 318 insertions(+), 77 deletions(-)
---
diff --git a/rstudio.spec b/rstudio.spec
index 37edb4f..b269cc0 100644
--- a/rstudio.spec
+++ b/rstudio.spec
@@ -2,10 +2,10 @@ Summary:	IDE for R
 Summary(pl.UTF-8):	IDE dla R
 Name:		rstudio
 Version:	1.1.143
-Release:	1
-License:	AGPLv3
-Group:		Applications
-Source0:	https://github.com/rstudio/rstudio/archive/v%{version}.tar.gz?/%{name}-%{version}.tar.gz
+Release:	2
+License:	AGPL v3
+Group:		Development/Tools
+Source0:	https://github.com/rstudio/rstudio/archive/v%{version}/%{name}-%{version}.tar.gz
 # Source0-md5:	ae531eed17e70a6d4f2d8560696b466e
 Source1:	https://s3.amazonaws.com/rstudio-dictionaries/core-dictionaries.zip
 # Source1-md5:	0e03798b8e53096c4a906bde05e32378
@@ -32,18 +32,39 @@ Source11:	rsconnect_0.7.0-2_fa486121f8f75701e2044f33d2901e610160322f.tar.xz
 Patch0:		%{name}-includes.patch
 Patch1:		%{name}-openssl.patch
 Patch2:		%{name}-boost.patch
+Patch3:		websocketpp-boost.patch
 URL:		http://rstudio.org/
-BuildRequires:	Qt5WebKit-devel
-BuildRequires:	Qt5XmlPatterns-devel
+BuildRequires:	Qt5Core-devel >= 5.4.0
+BuildRequires:	Qt5DBus-devel >= 5.4.0
+BuildRequires:	Qt5Gui-devel >= 5.4.0
+BuildRequires:	Qt5Network-devel >= 5.4.0
+BuildRequires:	Qt5OpenGL-devel >= 5.4.0
+BuildRequires:	Qt5Positioning-devel >= 5.4.0
+BuildRequires:	Qt5PrintSupport-devel >= 5.4.0
+BuildRequires:	Qt5Qml-devel >= 5.4.0
+BuildRequires:	Qt5Quick-devel >= 5.4.0
+BuildRequires:	Qt5Sensors-devel >= 5.4.0
+BuildRequires:	Qt5Sql-devel >= 5.4.0
+BuildRequires:	Qt5Svg-devel >= 5.4.0
+BuildRequires:	Qt5WebKit-devel >= 5.4.0
+BuildRequires:	Qt5Widgets-devel >= 5.4.0
+BuildRequires:	Qt5Xml-devel >= 5.4.0
+BuildRequires:	Qt5XmlPatterns-devel >= 5.4.0
 BuildRequires:	R >= 2.11.1
-BuildRequires:	boost-devel >= 1.50
+BuildRequires:	boost-devel >= 1.63.0
 BuildRequires:	clang-devel >= 3.5.0
-BuildRequires:	cmake >= 2.8.0
+BuildRequires:	cmake >= 2.8.8
 BuildRequires:	java-junit
+BuildRequires:	jdk
+BuildRequires:	libstdc++-devel
+BuildRequires:	libuuid-devel
 BuildRequires:	openssl-devel
 BuildRequires:	pam-devel
 BuildRequires:	pandoc
-BuildRequires:	pango-devel
+BuildRequires:	qt5-build >= 5.4.0
+BuildRequires:	zlib-devel
+Requires:	Qt5WebKit >= 5.4.0
+Requires:	Qt5Widgets >= 5.4.0
 Requires:	R >= 2.11.1
 Requires:	pandoc
 Requires:	clang >= 3.5.0
@@ -51,15 +72,25 @@ ExclusiveArch:	%{ix86} %{x8664}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
-RStudio(tm) is a free and open source integrated development
-environment (IDE) for R. You can run it on your desktop (Windows, Mac,
-or Linux) or even over the web using RStudio Server.
+RStudio is a free and open source integrated development environment
+(IDE) for R. You can run it on your desktop (Windows, Mac, or Linux)
+or even over the web using RStudio Server.
+
+%description -l pl.UTF-8
+RStudio to wolnodostępne, mające otwarte źródła zintegrowane
+środowisko programistyczne (IDE) dla języka R. Można je uruchamiać na
+własnym komputerze (w systemie Windows, Mac lub Linux), a także przez
+sieć przy użyciu serwera RStudio.
 
 %prep
 %setup -q
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+cd src/cpp/ext
+%patch3 -p1
+cd ../../..
+
 mkdir -p dependencies/common/dictionaries
 unzip -qq %{SOURCE1} -d dependencies/common/dictionaries
 mkdir -p src/gwt/lib/gwt
@@ -96,14 +127,13 @@ ln -s %{_libdir}/libclang.so dependencies/common/libclang/3.5/linux/x86_64/libcl
 %build
 install -d build
 cd build
-%cmake \
-	-DQT_QMAKE_EXECUTABLE=/usr/bin/qt5-qmake \
-	-DCMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS:-%{rpmcxxflags} -DNDEBUG -DQT_NO_DEBUG}" \
-	-DCMAKE_C_FLAGS_RELEASE="${CFLAGS:-%{rpmcflags} -DNDEBUG -DQT_NO_DEBUG}" \
-	-DRSTUDIO_TARGET=Desktop \
+%cmake .. \
 	-DCMAKE_BUILD_TYPE=Release \
+	-DCMAKE_C_FLAGS_RELEASE="${CFLAGS:-%{rpmcflags} -DNDEBUG -DQT_NO_DEBUG}" \
+	-DCMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS:-%{rpmcxxflags} -DNDEBUG -DQT_NO_DEBUG}" \
 	-DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \
-	../
+	-DQT_QMAKE_EXECUTABLE=/usr/bin/qt5-qmake \
+	-DRSTUDIO_TARGET=Desktop
 
 %{__make}
 
@@ -121,8 +151,8 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc COPYING NOTICE README.md
-%attr(755,root,root) %{_bindir}/*
+%doc COPYING NEWS.md NOTICE README.md
+%attr(755,root,root) %{_bindir}/rstudio
 %dir %{_libdir}/%{name}
 %{_libdir}/%{name}/R
 %dir %{_libdir}/%{name}/bin
@@ -135,7 +165,8 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/%{name}/www-symbolmaps
 %{_libdir}/%{name}/rstudio.png
 %{_desktopdir}/rstudio.desktop
-%{_iconsdir}/hicolor/*x*/apps/*
-%{_iconsdir}/hicolor/*x*/mimetypes/*
-%{_datadir}/mime/packages/*.xml
+%{_iconsdir}/hicolor/*x*/apps/rstudio.png*
+%{_iconsdir}/hicolor/*x*/mimetypes/application-x-r-data.png
+%{_iconsdir}/hicolor/*x*/mimetypes/application-x-r-project.png
+%{_datadir}/mime/packages/rstudio.xml
 %{_pixmapsdir}/rstudio.png
diff --git a/rstudio-boost.patch b/rstudio-boost.patch
index be580a9..9e08627 100644
--- a/rstudio-boost.patch
+++ b/rstudio-boost.patch
@@ -49,26 +49,6 @@
 +   return Error(error_code(value, system_category()), cause, location);
  }
  
- Error systemError(int value,
---- rstudio-1.1.143/src/cpp/core/Error.cpp.orig	2017-04-12 00:42:14.000000000 +0200
-+++ rstudio-1.1.143/src/cpp/core/Error.cpp	2019-04-30 18:50:13.489560404 +0200
-@@ -165,7 +165,7 @@
- Error systemError(int value, const ErrorLocation& location) 
- {
-    using namespace boost::system ;
--   return Error(error_code(value, get_system_category()), location);
-+   return Error(error_code(value, system_category()), location);
- }
- 
- Error systemError(int value,
-@@ -173,7 +173,7 @@
-                   const ErrorLocation& location)
- {
-    using namespace boost::system ;
--   return Error(error_code(value, get_system_category()), cause, location);
-+   return Error(error_code(value, system_category()), cause, location);
- }
- 
  Error systemError(int value,
 --- rstudio-1.1.143/src/cpp/core/FilePath.cpp.orig	2017-04-12 00:42:14.000000000 +0200
 +++ rstudio-1.1.143/src/cpp/core/FilePath.cpp	2019-04-30 19:08:36.191306900 +0200
@@ -131,23 +111,6 @@
     }
     
     void setIsPrimitive(bool isPrimitive)
---- rstudio-1.1.143/src/cpp/monitor/include/monitor/MonitorClient.hpp.orig	2017-04-12 00:42:14.000000000 +0200
-+++ rstudio-1.1.143/src/cpp/monitor/include/monitor/MonitorClient.hpp	2019-04-30 21:37:56.483122815 +0200
-@@ -27,14 +27,6 @@
- 
- #include "MonitorConstants.hpp"
- 
--// forward declaration; boost/asio/io_service may cause errors if included more
--// than once (Boost 1.50 on Win x64 only)
--namespace RSTUDIO_BOOST_NAMESPACE {
--namespace asio {
--   class io_service;
--}
--}
--
- namespace rstudio {
- namespace monitor {
- 
 --- rstudio-1.1.143/src/cpp/r/include/r/session/RConsoleHistory.hpp.orig	2017-04-12 00:42:14.000000000 +0200
 +++ rstudio-1.1.143/src/cpp/r/include/r/session/RConsoleHistory.hpp	2019-04-30 21:38:32.871700755 +0200
 @@ -20,7 +20,7 @@
@@ -336,7 +299,7 @@
  
  #include <boost/regex.hpp>
 -#include <boost/signals.hpp>
-+#include <boost/signals2/signals.hpp>
++#include <boost/signals2/signal.hpp>
  #include <boost/circular_buffer.hpp>
  #include <boost/enable_shared_from_this.hpp>
  
@@ -500,7 +463,7 @@
  #include <boost/shared_ptr.hpp>
  #include <boost/foreach.hpp>
 -#include <boost/signals.hpp>
-+#include <boost/signals/signal.hpp>
++#include <boost/signals2/signal.hpp>
  
  #include <core/FileInfo.hpp>
  #include <core/FilePath.hpp>
@@ -510,11 +473,11 @@
     std::vector<std::string> monitorSubscribers_;
 -   boost::signal<void(const tree<core::FileInfo>&)> onMonitoringEnabled_;
 -   boost::signal<void(const std::vector<core::system::FileChangeEvent>&)>
-+   boost::signals::signal<void(const tree<core::FileInfo>&)> onMonitoringEnabled_;
-+   boost::signals::signal<void(const std::vector<core::system::FileChangeEvent>&)>
++   boost::signals2::signal<void(const tree<core::FileInfo>&)> onMonitoringEnabled_;
++   boost::signals2::signal<void(const std::vector<core::system::FileChangeEvent>&)>
                                                              onFilesChanged_;
 -   boost::signal<void()> onMonitoringDisabled_;
-+   boost::signals::signal<void()> onMonitoringDisabled_;
++   boost::signals2::signal<void()> onMonitoringDisabled_;
  };
  
  ProjectContext& projectContext();
@@ -534,56 +497,227 @@
  {
     // Document {0}, chunk {1} from context id {3} execution completed
 -   boost::signal<void(const std::string&, const std::string&,
-+   boost::signals::signal<void(const std::string&, const std::string&,
++   boost::signals2::signal<void(const std::string&, const std::string&,
                        const std::string&)> 
                  onChunkExecCompleted;
  
     // Document {0}, chunk {1} had console output of type {2} and text {3}
 -   boost::signal<void(const std::string&, const std::string&, int, 
-+   boost::signals::signal<void(const std::string&, const std::string&, int, 
++   boost::signals2::signal<void(const std::string&, const std::string&, int, 
                  const std::string&)>
                  onChunkConsoleOutput;
  
 -   boost::signal<void(const core::FilePath&, const core::FilePath&, 
-+   boost::signals::signal<void(const core::FilePath&, const core::FilePath&, 
++   boost::signals2::signal<void(const core::FilePath&, const core::FilePath&, 
                        const core::json::Value& metadata, unsigned ordinal)> 
                           onPlotOutput;
 -   boost::signal<void(const core::FilePath&, const core::FilePath&,
-+   boost::signals::signal<void(const core::FilePath&, const core::FilePath&,
++   boost::signals2::signal<void(const core::FilePath&, const core::FilePath&,
                        const core::json::Value& metadata)> onHtmlOutput;
 -   boost::signal<void(const core::json::Object&)> onErrorOutput;
 -   boost::signal<void(const core::FilePath&, const core::FilePath&,
-+   boost::signals::signal<void(const core::json::Object&)> onErrorOutput;
-+   boost::signals::signal<void(const core::FilePath&, const core::FilePath&,
++   boost::signals2::signal<void(const core::json::Object&)> onErrorOutput;
++   boost::signals2::signal<void(const core::FilePath&, const core::FilePath&,
                        const core::json::Value& metadata)> onDataOutput;
 -   boost::signal<void(Condition condition, const std::string& message)> 
-+   boost::signals::signal<void(Condition condition, const std::string& message)> 
++   boost::signals2::signal<void(Condition condition, const std::string& message)> 
                           onCondition;
  };
  
 --- rstudio-1.1.143/src/cpp/session/SessionModuleContext.cpp.orig	2017-04-12 00:42:14.000000000 +0200
 +++ rstudio-1.1.143/src/cpp/session/SessionModuleContext.cpp	2019-05-01 08:21:14.344989539 +0200
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,8 @@
  
  #include <boost/assert.hpp>
  #include <boost/utility.hpp>
 -#include <boost/signal.hpp>
-+#include <boost/signals/signal.hpp>
++#include <boost/signals2/last_value.hpp>
++#include <boost/signals2/signal.hpp>
  #include <boost/format.hpp>
  #include <boost/numeric/conversion/cast.hpp>
  
-@@ -571,12 +571,12 @@
+@@ -571,13 +572,13 @@
     
     int nextGroup_; 
     
 -   boost::signal<void(const r::session::RSuspendOptions&,Settings*),
+-                 boost::last_value<void>,
 +   boost::signals2::signal<void(const r::session::RSuspendOptions&,Settings*),
-                  boost::last_value<void>,
++                 boost::signals2::last_value<void>,
                   int,
                   std::less<int> > suspendSignal_;
                    
 -   boost::signal<void(const Settings&),
+-                 boost::last_value<void>,
 +   boost::signals2::signal<void(const Settings&),
-                  boost::last_value<void>,
++                 boost::signals2::last_value<void>,
                   int,
                   std::greater<int> > resumeSignal_;
+ };
+--- rstudio-1.1.143/src/cpp/session/SessionMain.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/SessionMain.cpp	2019-05-07 17:10:57.302926193 +0200
+@@ -33,7 +33,6 @@
+ #include <boost/lexical_cast.hpp>
+ #include <boost/format.hpp>
+ 
+-#include <boost/signals.hpp>
+ #include <boost/date_time/posix_time/posix_time.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
+ #include <boost/algorithm/string/join.hpp>
+--- rstudio-1.1.143/src/cpp/session/modules/SessionRParser.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/SessionRParser.cpp	2019-05-07 18:07:34.070800364 +0200
+@@ -390,7 +390,7 @@
+    if (!failed)
+    {
+       DEBUG("--- Found function in pkgInfo index: " << *fnInfo.binding());
+-      return fnInfo.performsNse();
++      return bool(fnInfo.performsNse());
+    }
+    
+    // Handle some special cases first.
+--- rstudio-1.1.143/src/cpp/session/modules/build/SessionSourceCpp.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/build/SessionSourceCpp.cpp	2019-05-07 18:13:46.346942192 +0200
+@@ -15,7 +15,6 @@
+ 
+ #include "SessionSourceCpp.hpp"
+ 
+-#include <boost/signal.hpp>
+ #include <boost/algorithm/string/trim.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
+ #include <boost/algorithm/string/join.hpp>
+--- rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookPlots.hpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookPlots.hpp	2019-05-07 18:25:48.121369223 +0200
+@@ -18,7 +18,7 @@
+ #define SESSION_NOTEBOOK_PLOTS_HPP
+ 
+ #include <boost/function.hpp>
+-#include <boost/signals/connection.hpp>
++#include <boost/signals2/connection.hpp>
+ #include <core/FilePath.hpp>
+ #include <r/RSexp.hpp>
+ 
+@@ -80,9 +80,9 @@
+ 
+    unsigned lastOrdinal_;
+ 
+-   boost::signals::connection onBeforeNewPlot_;
+-   boost::signals::connection onBeforeNewGridPage_;
+-   boost::signals::connection onNewPlot_;
++   boost::signals2::connection onBeforeNewPlot_;
++   boost::signals2::connection onBeforeNewGridPage_;
++   boost::signals2::connection onNewPlot_;
+ 
+    double width_;
+    double height_;
+--- rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookExec.hpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookExec.hpp	2019-05-07 18:26:45.201022069 +0200
+@@ -18,7 +18,7 @@
+ 
+ #include <session/SessionModuleContext.hpp>
+ 
+-#include <boost/signal.hpp>
++#include <boost/signals2/signal.hpp>
+ 
+ #include <core/json/Json.hpp>
+ 
+@@ -99,7 +99,7 @@
+    bool hasErrors_;
+ 
+    std::vector<boost::shared_ptr<NotebookCapture> > captures_;
+-   std::vector<boost::signals::connection> connections_;
++   std::vector<boost::signals2::connection> connections_;
+ };
+ 
+ } // namespace notebook
+--- rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookAlternateEngines.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookAlternateEngines.cpp	2019-05-07 18:28:01.345005619 +0200
+@@ -142,7 +142,7 @@
+       LOG_ERROR(error);
+    
+    // capture console output, error
+-   boost::signals::scoped_connection consoleHandler =
++   boost::signals2::scoped_connection consoleHandler =
+          module_context::events().onConsoleOutput.connect(
+             boost::bind(chunkConsoleOutputHandler,
+                         _1,
+@@ -219,7 +219,7 @@
+       LOG_ERROR(error);
+    
+    // capture console output, error
+-   boost::signals::scoped_connection consoleHandler =
++   boost::signals2::scoped_connection consoleHandler =
+          module_context::events().onConsoleOutput.connect(
+             boost::bind(chunkConsoleOutputHandler,
+                         _1,
+@@ -363,7 +363,7 @@
+       LOG_ERROR(error);
+    
+    // capture console output, error
+-   boost::signals::scoped_connection consoleHandler =
++   boost::signals2::scoped_connection consoleHandler =
+          module_context::events().onConsoleOutput.connect(
+             boost::bind(chunkConsoleOutputHandler,
+                         _1,
+--- rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookCapture.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookCapture.cpp	2019-05-07 18:31:49.423604450 +0200
+@@ -13,6 +13,8 @@
+  *
+  */
+ 
++#include <boost/make_shared.hpp>
++
+ #include "SessionRmdNotebook.hpp"
+ #include "NotebookCapture.hpp"
+ 
+--- rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookExec.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookExec.cpp	2019-05-07 18:41:06.369408303 +0200
+@@ -441,7 +441,7 @@
+    }
+ 
+    // unhook all our event handlers
+-   BOOST_FOREACH(const boost::signals::connection connection, connections_) 
++   BOOST_FOREACH(const boost::signals2::connection connection, connections_) 
+    {
+       connection.disconnect();
+    }
+--- rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookPlots.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookPlots.cpp	2019-05-07 18:52:17.788159856 +0200
+@@ -20,7 +20,6 @@
+ 
+ #include <boost/format.hpp>
+ #include <boost/foreach.hpp>
+-#include <boost/signals/connection.hpp>
+ 
+ #include <core/system/FileMonitor.hpp>
+ #include <core/StringUtils.hpp>
+--- rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookQueue.cpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/modules/rmarkdown/NotebookQueue.cpp	2019-05-07 18:53:26.498462556 +0200
+@@ -87,7 +87,7 @@
+       pInput_->enque(kThreadQuitCommand);
+ 
+       // unregister handlers
+-      BOOST_FOREACH(boost::signals::connection connection, handlers_)
++      BOOST_FOREACH(boost::signals2::connection connection, handlers_)
+       {
+          connection.disconnect();
+       }
+@@ -638,7 +638,7 @@
+    boost::shared_ptr<ChunkExecContext> execContext_;
+ 
+    // registered signal handlers
+-   std::vector<boost::signals::connection> handlers_;
++   std::vector<boost::signals2::connection> handlers_;
+ 
+    // the thread which submits console input, and the queue which feeds it
+    boost::thread console_;
+--- rstudio-1.1.143/src/cpp/session/http/SessionLocalStreamHttpConnectionListener.hpp.orig	2017-04-12 00:42:14.000000000 +0200
++++ rstudio-1.1.143/src/cpp/session/http/SessionLocalStreamHttpConnectionListener.hpp	2019-05-07 19:04:36.460299876 +0200
+@@ -77,7 +77,7 @@
+       if (permittedClients_.size() > 0)
+       {
+          // get socket
+-         int socket = ptrConnection->socket().native();
++         int socket = ptrConnection->socket().native_handle();
+ 
+          // get client identity
+          core::system::user::UserIdentity userIdentity;
diff --git a/websocketpp-boost.patch b/websocketpp-boost.patch
new file mode 100644
index 0000000..3f318de
--- /dev/null
+++ b/websocketpp-boost.patch
@@ -0,0 +1,76 @@
+Backported from:
+
+From: Stefan Floeren <42731906+stefan-floeren at users.noreply.github.com>
+Date: Tue, 16 Apr 2019 08:38:01 +0200
+Subject: [PATCH] Replace make_shared with new in some cases
+
+Replace make_shared for asio types that take a lib::ref as a parameter.
+This should fix the ASIO change (boostorg/asio at 59066d8) for 1.70,
+while keeping it backwards compatible to older boost versions.
+---
+ websocketpp/transport/asio/connection.hpp    | 7 ++++---
+ websocketpp/transport/asio/endpoint.hpp      | 3 +--
+ websocketpp/transport/asio/security/none.hpp | 3 +--
+ websocketpp/transport/asio/security/tls.hpp  | 3 +--
+ 4 files changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
+index 60f88a79..1ccda8f3 100644
+--- a/websocketpp/transport/asio/connection.hpp
++++ b/websocketpp/transport/asio/connection.hpp
+@@ -311,9 +311,10 @@ class connection : public config::socket_type::socket_con_type {
+      * needed.
+      */
+     timer_ptr set_timer(long duration, timer_handler callback) {
+-        timer_ptr new_timer = lib::make_shared<boost::asio::deadline_timer>(
+-            lib::ref(*m_io_service),
+-            boost::posix_time::milliseconds(duration)
++        timer_ptr new_timer(
++            new boost::asio::deadline_timer(
++                *m_io_service,
++                boost::posix_time::milliseconds(duration))
+         );
+ 
+         if (config::enable_multithreading) {
+diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
+index ddab2c74..4b719a97 100644
+--- a/websocketpp/transport/asio/endpoint.hpp
++++ b/websocketpp/transport/asio/endpoint.hpp
+@@ -195,8 +195,7 @@ class endpoint : public config::socket_type {
+ 
+         m_io_service = ptr;
+         m_external_io_service = true;
+-        m_acceptor = lib::make_shared<boost::asio::ip::tcp::acceptor>(
+-            lib::ref(*m_io_service));
++        m_acceptor.reset(new boost::asio::ip::tcp::acceptor(*m_io_service));
+ 
+         m_state = READY;
+         ec = lib::error_code();
+diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp
+index 5c8293db..6c7d3524 100644
+--- a/websocketpp/transport/asio/security/none.hpp
++++ b/websocketpp/transport/asio/security/none.hpp
+@@ -168,8 +168,7 @@ class connection : public lib::enable_shared_from_this<connection> {
+             return socket::make_error_code(socket::error::invalid_state);
+         }
+ 
+-        m_socket = lib::make_shared<boost::asio::ip::tcp::socket>(
+-            lib::ref(*service));
++        m_socket.reset(new boost::asio::ip::tcp::socket(*service));
+ 
+         if (m_socket_init_handler) {
+             m_socket_init_handler(m_hdl, *m_socket);
+diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
+index c76fd9aa..04ac3790 100644
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -193,8 +193,7 @@ class connection : public lib::enable_shared_from_this<connection> {
+         if (!m_context) {
+             return socket::make_error_code(socket::error::invalid_tls_context);
+         }
+-        m_socket = lib::make_shared<socket_type>(
+-            _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
++        m_socket.reset(new socket_type(*service, *m_context));
+ 
+         if (m_socket_init_handler) {
+             m_socket_init_handler(m_hdl, get_socket());
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rstudio.git/commitdiff/6d6b4763077f6d69f96a3bcb9360c94a9e483e8e



More information about the pld-cvs-commit mailing list