summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-mathematics/rstudio')
-rw-r--r--sci-mathematics/rstudio/Manifest1
-rw-r--r--sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p1.patch680
-rw-r--r--sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p2.patch167
-rw-r--r--sci-mathematics/rstudio/files/rstudio-1.1.463-fix-ptr-int-compare.patch13
-rw-r--r--sci-mathematics/rstudio/rstudio-1.1.463.ebuild253
5 files changed, 1114 insertions, 0 deletions
diff --git a/sci-mathematics/rstudio/Manifest b/sci-mathematics/rstudio/Manifest
index 77cc32172377..79c6b60ad010 100644
--- a/sci-mathematics/rstudio/Manifest
+++ b/sci-mathematics/rstudio/Manifest
@@ -7,6 +7,7 @@ DIST rmarkdown-0.98.1000.tar.gz 1423820 BLAKE2B eac8c9cf438c9b44ddfe954602dd67a8
DIST rsconnect_0.4.1.4_fcac892a69817febd7b655b189bf57193260cda0.tar.gz 197051 BLAKE2B 1f3f9fe71d7b50ab5108dfdbd3cc0b882bcc935ee58e8a9145b07a18bb86c39bc45e321a13add24df99492bc30548df716775c339bcbf4efc2bfe158299ae55a SHA512 208dc349f4aa7613ecf94939aba60d22d3a06972344b526c9b6c951015571f5922927bca08db571a7b8a268e42609a4f558f01278c9685f6da2ffc66a1f95ade
DIST rstudio-1.1.383.tar.gz 20196702 BLAKE2B 5164230a92618e4252269ad0016b200294d1e7fa502cc49aa694486cda098ee7ffc65e6c74a87d891d0532f5cc15d1552aa86d04047d07b4f275cbc4d2758647 SHA512 3f637f9bce2c1ad1a4ed3e74287da722190a4e12b0cace6ffcca271977d49dcecca9365f2064366aad94e87851593cab83fa9361e9a9222a9f67fe9451f31ed2
DIST rstudio-1.1.453.tar.gz 20200360 BLAKE2B 560b89e53b04356ecf9a02dd8a7e72ad8d6c30bf406fbe7e22a82cc6d33d40e84bececf5ecda9cf086360b2bd2fa64d6b33c2dd675ef5f605f9e825d7ca2dc84 SHA512 f2be0866f645007a6f80959109928820c89480057c3660d23e790591797d4f4c371733f49290dae9c81bfc2715821528e2a105e7a66d4d9ffbfc7ee2a596976c
+DIST rstudio-1.1.463.tar.gz 20203779 BLAKE2B 97f879539cbb7051af362a8469795a47feb42d18ff46dbbdffe36e0685d1cd5704848b3bf5a5611d482a09567722e35288527302cd521b18e2a48b347c919e17 SHA512 987347563a9726363c28d866e1372eae8eb19a5cbd0e33c7ee0e0c8f90471c4b69de0f559c00410523841b6c090b584652e01496f5db33c015a4554d2f4e179b
DIST selenium-java-2.37.0.zip 24625928 BLAKE2B b369a805ae96f0d0913c4be42888d9c2a1e213ff982f9daefe73fadb705baa80ab0186ab50ed52609e83697cffaf8d617d06d75405cb8e1c3fe8e7c5b81dba25 SHA512 68624e82dbc751a25c50fad72702a98eb30d77fd4337d2a969f8e06bcc49e5f8c835cd27ec53772f3375014ddde1d5636936e966b75f3594a9f86aa18ba4e779
DIST selenium-server-standalone-2.37.0.jar 34730734 BLAKE2B 3899b1d4c5f9153c1f9f13bec66f7c1456ea2e0f34db7d8e54a1ce9063c33a05b3cf95216c2ae06bb40504f72f343a4b9ba6c8553fbbc340e7c18a5b612dde5c SHA512 b215446d42d2d1f69664349b6ae6dc53a532d3624c91254f0f4183d0ad764648792e5cc1126a55a1e60d9687d55200fed01d6d2f46cc3d853b1fa6ee38111018
DIST shinyapps-0.98.1000.tar.gz 910095 BLAKE2B 4f9364692348bb52cbd12cc6ee447841cb0c805327f2518b2a9545920b602b954a98dea68ccb3daf32d2c3bab6464fb15402844d93277193315f1ae7b3ca5190 SHA512 3162317c4c20cfc1497e952a8235867084d629ae88407e6c465b3e208adb1dc97abfe6b9922e0374ddf4c8e38a76e112942bd312c54a66f74e6f2a3fe4c0a07c
diff --git a/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p1.patch b/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p1.patch
new file mode 100644
index 000000000000..aa3db25f3c01
--- /dev/null
+++ b/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p1.patch
@@ -0,0 +1,680 @@
+--- /dev/null 2018-11-10 15:32:26.332997437 +1100
++++ rstudio-1.1.463/src/cpp/core/include/core/BoostSignals.hpp 2018-11-17 21:24:35.285976284 +1100
+@@ -0,0 +1,40 @@
++/*
++ * BoostSignals.hpp
++ *
++ * Copyright (C) 2009-18 by RStudio, Inc.
++ *
++ * Unless you have received this program directly from RStudio pursuant
++ * to the terms of a commercial license agreement with RStudio, then
++ * this program is licensed to you under the terms of version 3 of the
++ * GNU Affero General Public License. This program is distributed WITHOUT
++ * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
++ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
++ * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
++ *
++ */
++
++#ifndef CORE_RSTUDIO_BOOST_SIGNALS_HPP
++#define CORE_RSTUDIO_BOOST_SIGNALS_HPP
++
++#if RSTUDIO_BOOST_SIGNALS_VERSION == 1
++
++# include <boost/signals.hpp>
++# define RSTUDIO_BOOST_SIGNAL boost::signal
++# define RSTUDIO_BOOST_CONNECTION boost::signals::connection
++# define RSTUDIO_BOOST_SCOPED_CONNECTION boost::signals::scoped_connection
++# define RSTUDIO_BOOST_LAST_VALUE boost::last_value
++
++#elif RSTUDIO_BOOST_SIGNALS_VERSION == 2
++
++# include <boost/signals2.hpp>
++# define RSTUDIO_BOOST_SIGNAL boost::signals2::signal
++# define RSTUDIO_BOOST_CONNECTION boost::signals2::connection
++# define RSTUDIO_BOOST_SCOPED_CONNECTION boost::signals2::scoped_connection
++# define RSTUDIO_BOOST_LAST_VALUE boost::signals2::last_value
++
++#else
++# error "Unrecognized RSTUDIO_BOOST_SIGNALS_VERSION"
++#endif
++
++#endif // CORE_RSTUDIO_BOOST_SIGNALS_HPP
++
+--- rstudio-1.1.463-orig/src/cpp/CMakeLists.txt 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/CMakeLists.txt 2018-11-17 21:24:35.285976284 +1100
+@@ -208,6 +208,18 @@
+ message(STATUS "Using RStudio-provided Boost ${BOOST_VERSION}")
+ endif()
+
++# allow opt-in to using Boost.Signals2
++# TODO: remove this in RStudio v1.3 and port to signals2
++if(NOT RSTUDIO_BOOST_SIGNALS_VERSION)
++ if (BOOST_VERSION VERSION_LESS 1.69.0)
++ set(RSTUDIO_BOOST_SIGNALS_VERSION 1)
++ else()
++ set(RSTUDIO_BOOST_SIGNALS_VERSION 2)
++ endif()
++endif()
++
++message(STATUS "Using Booost.Signals version ${RSTUDIO_BOOST_SIGNALS_VERSION}")
++add_definitions(-DRSTUDIO_BOOST_SIGNALS_VERSION=${RSTUDIO_BOOST_SIGNALS_VERSION})
+
+ # add boost as system include directory
+ include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
+--- rstudio-1.1.463-orig/src/cpp/r/include/r/session/RConsoleHistory.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/r/include/r/session/RConsoleHistory.hpp 2018-11-17 21:24:35.285976284 +1100
+@@ -20,8 +20,8 @@
+
+ #include <boost/utility.hpp>
+ #include <boost/circular_buffer.hpp>
+-#include <boost/signal.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/json/Json.hpp>
+
+ namespace rstudio {
+@@ -44,7 +44,7 @@
+ public:
+ typedef boost::circular_buffer<std::string>::value_type value_type;
+ typedef boost::circular_buffer<std::string>::const_iterator const_iterator;
+- typedef boost::signal<void (const std::string&)> AddSignal;
++ typedef RSTUDIO_BOOST_SIGNAL<void (const std::string&)> AddSignal;
+
+ private:
+ ConsoleHistory();
+@@ -86,8 +86,7 @@
+ core::Error loadFromFile(const core::FilePath& filePath, bool verifyFile);
+ core::Error saveToFile(const core::FilePath& filePath) const;
+
+- boost::signals::connection connectOnAdd(
+- const AddSignal::slot_function_type& slot)
++ RSTUDIO_BOOST_CONNECTION connectOnAdd(const AddSignal::slot_function_type& slot)
+ {
+ return onAdd_.connect(slot);
+ }
+--- rstudio-1.1.463-orig/src/cpp/r/include/r/session/RGraphics.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/r/include/r/session/RGraphics.hpp 2018-11-17 21:24:35.286976293 +1100
+@@ -19,6 +19,8 @@
+ #include <boost/system/error_code.hpp>
+ #include <boost/date_time/posix_time/ptime.hpp>
+
++#include <core/BoostSignals.hpp>
++
+ namespace rstudio {
+ namespace r {
+ namespace session {
+@@ -56,8 +58,8 @@
+ #include <vector>
+
+ #include <boost/function.hpp>
+-#include <boost/signal.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/Error.hpp>
+ #include <core/json/Json.hpp>
+
+@@ -162,7 +164,7 @@
+ virtual void clear() = 0;
+
+ // subscribe to showManipulator event
+- virtual boost::signal<void ()>& onShowManipulator() = 0;
++ virtual RSTUDIO_BOOST_SIGNAL<void ()>& onShowManipulator() = 0;
+
+ // set manipulator values
+ virtual void setPlotManipulatorValues(const core::json::Object& values) = 0;
+--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManager.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManager.cpp 2018-11-17 21:24:35.286976293 +1100
+@@ -540,7 +540,7 @@
+
+
+
+-boost::signal<void ()>& PlotManager::onShowManipulator()
++RSTUDIO_BOOST_SIGNAL<void ()>& PlotManager::onShowManipulator()
+ {
+ return plotManipulatorManager().onShowManipulator();
+ }
+--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManager.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManager.hpp 2018-11-17 21:24:35.287976303 +1100
+@@ -22,10 +22,10 @@
+ #include <boost/utility.hpp>
+ #include <boost/shared_ptr.hpp>
+ #include <boost/function.hpp>
+-#include <boost/signal.hpp>
+ #include <boost/regex.hpp>
+ #include <boost/circular_buffer.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/Error.hpp>
+ #include <core/FilePath.hpp>
+
+@@ -45,10 +45,10 @@
+
+ struct GraphicsDeviceEvents
+ {
+- boost::signal<void (SEXP)> onNewPage;
+- boost::signal<void ()> onDrawing;
+- boost::signal<void ()> onResized;
+- boost::signal<void ()> onClosed;
++ RSTUDIO_BOOST_SIGNAL<void (SEXP)> onNewPage;
++ RSTUDIO_BOOST_SIGNAL<void ()> onDrawing;
++ RSTUDIO_BOOST_SIGNAL<void ()> onResized;
++ RSTUDIO_BOOST_SIGNAL<void ()> onClosed;
+ };
+
+ class PlotManipulatorManager;
+@@ -110,7 +110,7 @@
+
+ virtual void clear();
+
+- virtual boost::signal<void ()>& onShowManipulator() ;
++ virtual RSTUDIO_BOOST_SIGNAL<void ()>& onShowManipulator() ;
+ virtual void setPlotManipulatorValues(const core::json::Object& values);
+ virtual void manipulatorPlotClicked(int x, int y);
+
+--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.cpp 2018-11-17 21:24:35.287976303 +1100
+@@ -184,7 +184,7 @@
+ }
+
+
+-boost::signal<void ()>& PlotManipulatorManager::onShowManipulator()
++RSTUDIO_BOOST_SIGNAL<void ()>& PlotManipulatorManager::onShowManipulator()
+ {
+ return onShowManipulator_;
+ }
+--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.hpp 2018-11-17 21:24:35.287976303 +1100
+@@ -16,8 +16,7 @@
+ #ifndef R_SESSION_GRAPHICS_PLOT_MANIPULATOR_MANAGER_HPP
+ #define R_SESSION_GRAPHICS_PLOT_MANIPULATOR_MANAGER_HPP
+
+-#include <boost/signal.hpp>
+-
++#include <core/BoostSignals.hpp>
+ #include <core/Error.hpp>
+ #include <core/json/Json.hpp>
+
+@@ -53,7 +52,7 @@
+ public:
+ core::Error initialize(const UnitConversionFunctions& convert);
+
+- boost::signal<void ()>& onShowManipulator() ;
++ RSTUDIO_BOOST_SIGNAL<void ()>& onShowManipulator() ;
+ void setPlotManipulatorValues(const core::json::Object& values);
+ void manipulatorPlotClicked(int x, int y);
+
+@@ -85,7 +84,7 @@
+ bool replayingManipulator_;
+
+ // manipulator event hook
+- boost::signal<void ()> onShowManipulator_;
++ RSTUDIO_BOOST_SIGNAL<void ()> onShowManipulator_;
+
+ // unit conversion function
+ UnitConversionFunctions convert_;
+--- rstudio-1.1.463-orig/src/cpp/server/include/server/ServerSessionManager.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/server/include/server/ServerSessionManager.hpp 2018-11-17 21:27:05.255436316 +1100
+@@ -20,9 +20,9 @@
+ #include <vector>
+ #include <map>
+
+-#include <boost/signals.hpp>
+ #include <boost/asio/io_service.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/Thread.hpp>
+
+ #include <core/system/PosixSystem.hpp>
+--- rstudio-1.1.463-orig/src/cpp/session/SessionMain.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/SessionMain.cpp 2018-11-17 21:24:35.288976313 +1100
+@@ -33,12 +33,12 @@
+ #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>
+
+ #include <core/Error.hpp>
++#include <core/BoostSignals.hpp>
+ #include <core/BoostThread.hpp>
+ #include <core/ConfigUtils.hpp>
+ #include <core/FilePath.hpp>
+--- rstudio-1.1.463-orig/src/cpp/session/SessionModuleContext.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/SessionModuleContext.cpp 2018-11-17 21:24:35.289976322 +1100
+@@ -19,10 +19,10 @@
+
+ #include <boost/assert.hpp>
+ #include <boost/utility.hpp>
+-#include <boost/signal.hpp>
+ #include <boost/format.hpp>
+ #include <boost/numeric/conversion/cast.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/BoostThread.hpp>
+ #include <core/Error.hpp>
+ #include <core/FilePath.hpp>
+@@ -586,13 +586,13 @@
+
+ int nextGroup_;
+
+- boost::signal<void(const r::session::RSuspendOptions&,Settings*),
+- boost::last_value<void>,
++ RSTUDIO_BOOST_SIGNAL<void(const r::session::RSuspendOptions&,Settings*),
++ RSTUDIO_BOOST_LAST_VALUE<void>,
+ int,
+ std::less<int> > suspendSignal_;
+
+- boost::signal<void(const Settings&),
+- boost::last_value<void>,
++ RSTUDIO_BOOST_SIGNAL<void(const Settings&),
++ RSTUDIO_BOOST_LAST_VALUE<void>,
+ int,
+ std::greater<int> > resumeSignal_;
+ };
+--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionConsoleProcess.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/include/session/SessionConsoleProcess.hpp 2018-11-17 21:24:35.290976332 +1100
+@@ -20,10 +20,10 @@
+ #include <deque>
+
+ #include <boost/regex.hpp>
+-#include <boost/signals.hpp>
+ #include <boost/circular_buffer.hpp>
+ #include <boost/enable_shared_from_this.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/system/Process.hpp>
+ #include <core/terminal/PrivateCommand.hpp>
+
+@@ -146,7 +146,7 @@
+ void setPromptHandler(
+ const boost::function<bool(const std::string&, Input*)>& onPrompt);
+
+- boost::signal<void(int)>& onExit() { return onExit_; }
++ RSTUDIO_BOOST_SIGNAL<void(int)>& onExit() { return onExit_; }
+
+ std::string handle() const { return procInfo_->getHandle(); }
+ InteractionMode interactionMode() const { return procInfo_->getInteractionMode(); }
+@@ -264,7 +264,7 @@
+ boost::mutex inputOutputQueueMutex_;
+
+ boost::function<bool(const std::string&, Input*)> onPrompt_;
+- boost::signal<void(int)> onExit_;
++ RSTUDIO_BOOST_SIGNAL<void(int)> onExit_;
+
+ // regex for prompt detection
+ boost::regex controlCharsPattern_;
+--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionModuleContext.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/include/session/SessionModuleContext.hpp 2018-11-17 21:28:25.019212857 +1100
+@@ -21,9 +21,9 @@
+
+ #include <boost/utility.hpp>
+ #include <boost/function.hpp>
+-#include <boost/signals.hpp>
+ #include <boost/shared_ptr.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/HtmlUtils.hpp>
+ #include <core/system/System.hpp>
+ #include <core/system/ShellUtils.hpp>
+@@ -315,35 +315,35 @@
+ // session events
+ struct Events : boost::noncopyable
+ {
+- boost::signal<void (core::json::Object*)> onSessionInfo;
+- boost::signal<void ()> onClientInit;
+- boost::signal<void ()> onBeforeExecute;
+- boost::signal<void(const std::string&)> onConsolePrompt;
+- boost::signal<void(const std::string&)> onConsoleInput;
+- boost::signal<void(const std::string&, const std::string&)>
++ RSTUDIO_BOOST_SIGNAL<void (core::json::Object*)> onSessionInfo;
++ RSTUDIO_BOOST_SIGNAL<void ()> onClientInit;
++ RSTUDIO_BOOST_SIGNAL<void ()> onBeforeExecute;
++ RSTUDIO_BOOST_SIGNAL<void(const std::string&)> onConsolePrompt;
++ RSTUDIO_BOOST_SIGNAL<void(const std::string&)> onConsoleInput;
++ RSTUDIO_BOOST_SIGNAL<void(const std::string&, const std::string&)>
+ onActiveConsoleChanged;
+- boost::signal<void (ConsoleOutputType, const std::string&)>
++ RSTUDIO_BOOST_SIGNAL<void (ConsoleOutputType, const std::string&)>
+ onConsoleOutput;
+- boost::signal<void()> onUserInterrupt;
+- boost::signal<void (ChangeSource)> onDetectChanges;
+- boost::signal<void (core::FilePath)> onSourceEditorFileSaved;
+- boost::signal<void(bool)> onDeferredInit;
+- boost::signal<void(bool)> afterSessionInitHook;
+- boost::signal<void(bool)> onBackgroundProcessing;
+- boost::signal<void(bool)> onShutdown;
+- boost::signal<void ()> onQuit;
+- boost::signal<void ()> onDestroyed;
+- boost::signal<void (const std::vector<std::string>&)>
++ RSTUDIO_BOOST_SIGNAL<void()> onUserInterrupt;
++ RSTUDIO_BOOST_SIGNAL<void (ChangeSource)> onDetectChanges;
++ RSTUDIO_BOOST_SIGNAL<void (core::FilePath)> onSourceEditorFileSaved;
++ RSTUDIO_BOOST_SIGNAL<void(bool)> onDeferredInit;
++ RSTUDIO_BOOST_SIGNAL<void(bool)> afterSessionInitHook;
++ RSTUDIO_BOOST_SIGNAL<void(bool)> onBackgroundProcessing;
++ RSTUDIO_BOOST_SIGNAL<void(bool)> onShutdown;
++ RSTUDIO_BOOST_SIGNAL<void ()> onQuit;
++ RSTUDIO_BOOST_SIGNAL<void ()> onDestroyed;
++ RSTUDIO_BOOST_SIGNAL<void (const std::vector<std::string>&)>
+ onLibPathsChanged;
+- boost::signal<void (const std::string&)> onPackageLoaded;
+- boost::signal<void ()> onPackageLibraryMutated;
+- boost::signal<void ()> onPreferencesSaved;
+- boost::signal<void (const core::DistributedEvent&)>
++ RSTUDIO_BOOST_SIGNAL<void (const std::string&)> onPackageLoaded;
++ RSTUDIO_BOOST_SIGNAL<void ()> onPackageLibraryMutated;
++ RSTUDIO_BOOST_SIGNAL<void ()> onPreferencesSaved;
++ RSTUDIO_BOOST_SIGNAL<void (const core::DistributedEvent&)>
+ onDistributedEvent;
+- boost::signal<void (core::FilePath)> onPermissionsChanged;
++ RSTUDIO_BOOST_SIGNAL<void (core::FilePath)> onPermissionsChanged;
+
+ // signal for detecting extended type of documents
+- boost::signal<std::string(boost::shared_ptr<source_database::SourceDocument>),
++ RSTUDIO_BOOST_SIGNAL<std::string(boost::shared_ptr<source_database::SourceDocument>),
+ firstNonEmpty<std::string> > onDetectSourceExtendedType;
+ };
+
+--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionSourceDatabase.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/include/session/SessionSourceDatabase.hpp 2018-11-17 21:24:35.291976342 +1100
+@@ -21,8 +21,8 @@
+
+ #include <boost/utility.hpp>
+ #include <boost/shared_ptr.hpp>
+-#include <boost/signals.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/FilePath.hpp>
+ #include <core/json/Json.hpp>
+
+@@ -204,14 +204,14 @@
+ // source database events
+ struct Events : boost::noncopyable
+ {
+- boost::signal<void(boost::shared_ptr<SourceDocument>)> onDocUpdated;
+- boost::signal<void(const std::string&,
++ RSTUDIO_BOOST_SIGNAL<void(boost::shared_ptr<SourceDocument>)> onDocUpdated;
++ RSTUDIO_BOOST_SIGNAL<void(const std::string&,
+ boost::shared_ptr<SourceDocument>)> onDocRenamed;
+- boost::signal<void(const std::string&)> onDocAdded;
+- boost::signal<void(
++ RSTUDIO_BOOST_SIGNAL<void(const std::string&)> onDocAdded;
++ RSTUDIO_BOOST_SIGNAL<void(
+ boost::shared_ptr<source_database::SourceDocument>)> onDocPendingRemove;
+- boost::signal<void(const std::string&, const std::string&)> onDocRemoved;
+- boost::signal<void()> onRemoveAll;
++ RSTUDIO_BOOST_SIGNAL<void(const std::string&, const std::string&)> onDocRemoved;
++ RSTUDIO_BOOST_SIGNAL<void()> onRemoveAll;
+ };
+
+ Events& events();
+--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionUserSettings.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/include/session/SessionUserSettings.hpp 2018-11-17 21:24:35.291976342 +1100
+@@ -20,8 +20,8 @@
+
+ #include <boost/utility.hpp>
+ #include <boost/scoped_ptr.hpp>
+-#include <boost/signal.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/Settings.hpp>
+ #include <core/FilePath.hpp>
+ #include <core/StringUtils.hpp>
+@@ -62,7 +62,7 @@
+ friend UserSettings& userSettings();
+
+ public:
+- boost::signal<void()> onChanged;
++ RSTUDIO_BOOST_SIGNAL<void()> onChanged;
+
+ public:
+ // COPYING: boost::noncopyable
+--- rstudio-1.1.463-orig/src/cpp/session/include/session/projects/SessionProjects.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/include/session/projects/SessionProjects.hpp 2018-11-17 21:24:35.291976342 +1100
+@@ -22,8 +22,8 @@
+ #include <boost/utility.hpp>
+ #include <boost/shared_ptr.hpp>
+ #include <boost/foreach.hpp>
+-#include <boost/signals.hpp>
+
++#include <core/BoostSignals.hpp>
+ #include <core/FileInfo.hpp>
+ #include <core/FilePath.hpp>
+ #include <core/Settings.hpp>
+@@ -220,10 +220,10 @@
+
+ bool hasFileMonitor_;
+ std::vector<std::string> monitorSubscribers_;
+- boost::signal<void(const tree<core::FileInfo>&)> onMonitoringEnabled_;
+- boost::signal<void(const std::vector<core::system::FileChangeEvent>&)>
++ RSTUDIO_BOOST_SIGNAL<void(const tree<core::FileInfo>&)> onMonitoringEnabled_;
++ RSTUDIO_BOOST_SIGNAL<void(const std::vector<core::system::FileChangeEvent>&)>
+ onFilesChanged_;
+- boost::signal<void()> onMonitoringDisabled_;
++ RSTUDIO_BOOST_SIGNAL<void()> onMonitoringDisabled_;
+ };
+
+ ProjectContext& projectContext();
+--- rstudio-1.1.463-orig/src/cpp/session/modules/SessionPlots.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/SessionPlots.hpp 2018-11-17 21:24:35.292976352 +1100
+@@ -16,7 +16,7 @@
+ #ifndef SESSION_PLOTS_HPP
+ #define SESSION_PLOTS_HPP
+
+-#include <boost/signals.hpp>
++#include <core/BoostSignals.hpp>
+
+ namespace rstudio {
+ namespace core {
+@@ -35,9 +35,9 @@
+
+ struct Events : boost::noncopyable
+ {
+- boost::signal<void()> onBeforeNewPlot;
+- boost::signal<void()> onBeforeNewGridPage;
+- boost::signal<void()> onNewPlot;
++ RSTUDIO_BOOST_SIGNAL<void()> onBeforeNewPlot;
++ RSTUDIO_BOOST_SIGNAL<void()> onBeforeNewGridPage;
++ RSTUDIO_BOOST_SIGNAL<void()> onNewPlot;
+ };
+
+ Events& events();
+--- rstudio-1.1.463-orig/src/cpp/session/modules/build/SessionSourceCpp.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/build/SessionSourceCpp.cpp 2018-11-17 21:24:35.293976361 +1100
+@@ -15,11 +15,11 @@
+
+ #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>
+
++#include <core/BoostSignals.hpp>
+ #include <core/Error.hpp>
+ #include <core/FilePath.hpp>
+ #include <core/StringUtils.hpp>
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookAlternateEngines.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookAlternateEngines.cpp 2018-11-17 21:24:35.294976371 +1100
+@@ -142,7 +142,7 @@
+ LOG_ERROR(error);
+
+ // capture console output, error
+- boost::signals::scoped_connection consoleHandler =
++ RSTUDIO_BOOST_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 =
++ RSTUDIO_BOOST_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 =
++ RSTUDIO_BOOST_SCOPED_CONNECTION consoleHandler =
+ module_context::events().onConsoleOutput.connect(
+ boost::bind(chunkConsoleOutputHandler,
+ _1,
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookCapture.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookCapture.cpp 2018-11-17 21:24:35.294976371 +1100
+@@ -16,6 +16,8 @@
+ #include "SessionRmdNotebook.hpp"
+ #include "NotebookCapture.hpp"
+
++#include <boost/make_shared.hpp>
++
+ namespace rstudio {
+ namespace session {
+ namespace modules {
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookExec.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookExec.cpp 2018-11-17 21:24:35.295976381 +1100
+@@ -441,7 +441,7 @@
+ }
+
+ // unhook all our event handlers
+- BOOST_FOREACH(const boost::signals::connection connection, connections_)
++ BOOST_FOREACH(const RSTUDIO_BOOST_CONNECTION connection, connections_)
+ {
+ connection.disconnect();
+ }
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookExec.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookExec.hpp 2018-11-17 21:24:35.295976381 +1100
+@@ -18,8 +18,7 @@
+
+ #include <session/SessionModuleContext.hpp>
+
+-#include <boost/signal.hpp>
+-
++#include <core/BoostSignals.hpp>
+ #include <core/json/Json.hpp>
+
+ #include <r/RSexp.hpp>
+@@ -99,7 +98,7 @@
+ bool hasErrors_;
+
+ std::vector<boost::shared_ptr<NotebookCapture> > captures_;
+- std::vector<boost::signals::connection> connections_;
++ std::vector<RSTUDIO_BOOST_CONNECTION> connections_;
+ };
+
+ } // namespace notebook
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookPlots.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookPlots.cpp 2018-11-17 21:24:35.295976381 +1100
+@@ -20,11 +20,12 @@
+
+ #include <boost/format.hpp>
+ #include <boost/foreach.hpp>
+-#include <boost/signals/connection.hpp>
+
+-#include <core/system/FileMonitor.hpp>
+-#include <core/StringUtils.hpp>
++#include <core/BoostSignals.hpp>
+ #include <core/Exec.hpp>
++#include <core/StringUtils.hpp>
++
++#include <core/system/FileMonitor.hpp>
+
+ #include <session/SessionModuleContext.hpp>
+
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookPlots.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookPlots.hpp 2018-11-17 21:24:35.296976391 +1100
+@@ -18,8 +18,10 @@
+ #define SESSION_NOTEBOOK_PLOTS_HPP
+
+ #include <boost/function.hpp>
+-#include <boost/signals/connection.hpp>
++
++#include <core/BoostSignals.hpp>
+ #include <core/FilePath.hpp>
++
+ #include <r/RSexp.hpp>
+
+ #include "NotebookCapture.hpp"
+@@ -80,9 +82,9 @@
+
+ unsigned lastOrdinal_;
+
+- boost::signals::connection onBeforeNewPlot_;
+- boost::signals::connection onBeforeNewGridPage_;
+- boost::signals::connection onNewPlot_;
++ RSTUDIO_BOOST_CONNECTION onBeforeNewPlot_;
++ RSTUDIO_BOOST_CONNECTION onBeforeNewGridPage_;
++ RSTUDIO_BOOST_CONNECTION onNewPlot_;
+
+ double width_;
+ double height_;
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookQueue.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookQueue.cpp 2018-11-17 21:24:35.296976391 +1100
+@@ -87,7 +87,7 @@
+ pInput_->enque(kThreadQuitCommand);
+
+ // unregister handlers
+- BOOST_FOREACH(boost::signals::connection connection, handlers_)
++ BOOST_FOREACH(RSTUDIO_BOOST_CONNECTION connection, handlers_)
+ {
+ connection.disconnect();
+ }
+@@ -651,7 +651,7 @@
+ boost::shared_ptr<ChunkExecContext> execContext_;
+
+ // registered signal handlers
+- std::vector<boost::signals::connection> handlers_;
++ std::vector<RSTUDIO_BOOST_CONNECTION> handlers_;
+
+ // the thread which submits console input, and the queue which feeds it
+ boost::thread console_;
+--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/SessionRmdNotebook.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/SessionRmdNotebook.hpp 2018-11-17 21:24:35.296976391 +1100
+@@ -18,7 +18,8 @@
+ #define SESSION_RMARKDOWN_NOTEBOOK_HPP
+
+ #include <ctime>
+-#include <boost/signals.hpp>
++
++#include <core/BoostSignals.hpp>
+ #include <core/json/Json.hpp>
+
+ #define kChunkLibDir "lib"
+@@ -76,24 +77,24 @@
+ struct Events : boost::noncopyable
+ {
+ // Document {0}, chunk {1} from context id {3} execution completed
+- boost::signal<void(const std::string&, const std::string&,
++ RSTUDIO_BOOST_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,
++ RSTUDIO_BOOST_SIGNAL<void(const std::string&, const std::string&, int,
+ const std::string&)>
+ onChunkConsoleOutput;
+
+- boost::signal<void(const core::FilePath&, const core::FilePath&,
++ RSTUDIO_BOOST_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&,
++ RSTUDIO_BOOST_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&,
++ RSTUDIO_BOOST_SIGNAL<void(const core::json::Object&)> onErrorOutput;
++ RSTUDIO_BOOST_SIGNAL<void(const core::FilePath&, const core::FilePath&,
+ const core::json::Value& metadata)> onDataOutput;
+- boost::signal<void(Condition condition, const std::string& message)>
++ RSTUDIO_BOOST_SIGNAL<void(Condition condition, const std::string& message)>
+ onCondition;
+ };
+
diff --git a/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p2.patch b/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p2.patch
new file mode 100644
index 000000000000..961723fd224f
--- /dev/null
+++ b/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p2.patch
@@ -0,0 +1,167 @@
+--- rstudio-1.1.463-orig/src/cpp/CMakeLists.txt 2018-11-17 21:24:35.285976284 +1100
++++ rstudio-1.1.463/src/cpp/CMakeLists.txt 2018-11-17 21:41:02.712507842 +1100
+@@ -175,6 +175,9 @@
+ set(Boost_USE_STATIC_LIBS ON)
+ set(BOOST_INCLUDEDIR ${RSTUDIO_TOOLS_BOOST}/include)
+ find_package(Boost ${BOOST_VERSION} REQUIRED)
++ if(NOT Boost_VERSION VERSION_LESS 1.69.0)
++ list(REMOVE_ITEM BOOST_LIBS signals)
++ endif()
+
+ # define library list manually (find_package doesn't always pick them up)
+ set(BOOST_LIB_DIR ${RSTUDIO_TOOLS_BOOST}/lib)
+@@ -184,11 +187,15 @@
+ message(STATUS "Using RStudio-provided Boost ${BOOST_VERSION}")
+ else()
+ add_definitions(-DRSTUDIO_BOOST_NAMESPACE=boost)
++ find_package(Boost ${BOOST_VERSION} REQUIRED)
++ if(NOT Boost_VERSION VERSION_LESS 1.69.0)
++ list(REMOVE_ITEM BOOST_LIBS signals)
++ endif()
+ find_package(Boost ${BOOST_VERSION} REQUIRED COMPONENTS ${BOOST_LIBS})
+ message(STATUS "Using system Boost ${BOOST_VERSION}")
+ endif()
+
+- # WIN32 BOOST
++# WIN32 BOOST
+ else()
+ # hard-code to our own prebuilt boost libs
+ add_definitions(-DRSTUDIO_BOOST_NAMESPACE=rstudio_boost)
+@@ -211,14 +218,14 @@
+ # allow opt-in to using Boost.Signals2
+ # TODO: remove this in RStudio v1.3 and port to signals2
+ if(NOT RSTUDIO_BOOST_SIGNALS_VERSION)
+- if (BOOST_VERSION VERSION_LESS 1.69.0)
++ if (Boost_VERSION VERSION_LESS 1.69.0)
+ set(RSTUDIO_BOOST_SIGNALS_VERSION 1)
+ else()
+ set(RSTUDIO_BOOST_SIGNALS_VERSION 2)
+ endif()
+ endif()
+
+-message(STATUS "Using Booost.Signals version ${RSTUDIO_BOOST_SIGNALS_VERSION}")
++message(STATUS "Using Boost.Signals version ${RSTUDIO_BOOST_SIGNALS_VERSION}")
+ add_definitions(-DRSTUDIO_BOOST_SIGNALS_VERSION=${RSTUDIO_BOOST_SIGNALS_VERSION})
+
+ # add boost as system include directory
+--- rstudio-1.1.463-orig/src/cpp/core/include/core/r_util/RFunctionInformation.hpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/core/include/core/r_util/RFunctionInformation.hpp 2018-11-17 21:41:02.713507852 +1100
+@@ -75,9 +75,9 @@
+ const std::string& name() const { return name_; }
+ const boost::optional<std::string>& defaultValue() const { return defaultValue_; }
+ boost::tribool hasDefault() const { return hasDefault_; }
+- bool isUsed() const { return isUsed_; }
++ bool isUsed() const { return bool(isUsed_); }
+ void setIsUsed(bool value) { isUsed_ = value; }
+- bool isMissingnessHandled() const { return isMissingnessHandled_; }
++ bool isMissingnessHandled() const { return bool(isMissingnessHandled_); }
+ void setMissingnessHandled(bool value) { isMissingnessHandled_ = value; }
+
+ private:
+@@ -130,7 +130,7 @@
+
+ bool isPrimitive()
+ {
+- return isPrimitive_ == true;
++ return bool(isPrimitive_);
+ }
+
+ void setIsPrimitive(bool isPrimitive)
+--- rstudio-1.1.463-orig/src/cpp/session/modules/SessionRParser.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/session/modules/SessionRParser.cpp 2018-11-17 21:41:02.714507862 +1100
+@@ -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.463-orig/src/tools/clang-ubsan-build 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/tools/clang-ubsan-build 2018-11-17 21:41:02.714507862 +1100
+@@ -10,19 +10,19 @@
+
+ : ${RSTUDIO_USE_LIBCXX="Yes"}
+ : ${RSTUDIO_USE_SYSTEM_BOOST="Yes"}
+-: ${RSTUDIO_BOOST_VERSION="1.56.0"}
++: ${RSTUDIO_BOOST_REQUESTED_VERSION="1.56.0"}
+
+ mkdir -p "${BUILD_DIR}"
+ cd "${BUILD_DIR}"
+-cmake ../cpp \
+- -DLIBR_HOME="${R_HOME}" \
+- -DCMAKE_C_COMPILER="${CC}" \
+- -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
+- -DCMAKE_CXX_COMPILER="${CXX}" \
+- -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
+- -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
+- -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
+- -DRSTUDIO_BOOST_VERSION="${RSTUDIO_BOOST_VERSION}" \
++cmake ../cpp \
++ -DLIBR_HOME="${R_HOME}" \
++ -DCMAKE_C_COMPILER="${CC}" \
++ -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
++ -DCMAKE_CXX_COMPILER="${CXX}" \
++ -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
++ -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
++ -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
++ -DRSTUDIO_BOOST_REQUESTED_VERSION="${RSTUDIO_BOOST_REQUESTED_VERSION}" \
+ "$@"
+ cd ..
+
+--- rstudio-1.1.463-orig/src/tools/gcc-ubsan-build 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/tools/gcc-ubsan-build 2018-11-17 21:41:02.715507871 +1100
+@@ -19,19 +19,19 @@
+ # NOTE: Boost 1.50.0 not compatible with gcc-6
+ : ${RSTUDIO_USE_LIBCXX="No"}
+ : ${RSTUDIO_USE_SYSTEM_BOOST="Yes"}
+-: ${RSTUDIO_BOOST_VERSION="1.54.0"}
++: ${RSTUDIO_BOOST_REQUESTED_VERSION="1.54.0"}
+
+ mkdir -p "${BUILD_DIR}"
+ cd "${BUILD_DIR}"
+-cmake ../cpp \
+- -DLIBR_HOME="${R_HOME}" \
+- -DCMAKE_C_COMPILER="${CC}" \
+- -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
+- -DCMAKE_CXX_COMPILER="${CXX}" \
+- -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
+- -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
+- -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
+- -DRSTUDIO_BOOST_VERSION="${RSTUDIO_BOOST_VERSION}" \
++cmake ../cpp \
++ -DLIBR_HOME="${R_HOME}" \
++ -DCMAKE_C_COMPILER="${CC}" \
++ -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
++ -DCMAKE_CXX_COMPILER="${CXX}" \
++ -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
++ -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
++ -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
++ -DRSTUDIO_BOOST_REQUESTED_VERSION="${RSTUDIO_BOOST_REQUESTED_VERSION}" \
+ "$@"
+ cd ..
+
+--- rstudio-1.1.463-orig/src/tools/xcode-ubsan-build 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/tools/xcode-ubsan-build 2018-11-17 21:41:02.715507871 +1100
+@@ -15,13 +15,13 @@
+ # sanitizers released with newer versions of clang)
+ mkdir -p "${BUILD_DIR}"
+ cd "${BUILD_DIR}"
+-cmake ../cpp -GXcode \
+- -DLIBR_HOME="${R_HOME}" \
+- -DLIBR_INCLUDE_DIRS="${R_INCL}" \
+- -DLIBR_DOC_DIR="${R_DOCS}" \
+- -DRSTUDIO_USE_LIBCXX="Yes" \
+- -DRSTUDIO_USE_SYSTEM_BOOST="Yes" \
+- -DRSTUDIO_BOOST_VERSION="1.56.0" \
++cmake ../cpp -GXcode \
++ -DLIBR_HOME="${R_HOME}" \
++ -DLIBR_INCLUDE_DIRS="${R_INCL}" \
++ -DLIBR_DOC_DIR="${R_DOCS}" \
++ -DRSTUDIO_USE_LIBCXX="Yes" \
++ -DRSTUDIO_USE_SYSTEM_BOOST="Yes" \
++ -DRSTUDIO_BOOST_REQUESTED_VERSION="1.56.0" \
+ "$@"
+ cmake ../cpp -DLIBR_LIBRARIES="${R_LIBS}/libR.dylib"
+ cd ..
diff --git a/sci-mathematics/rstudio/files/rstudio-1.1.463-fix-ptr-int-compare.patch b/sci-mathematics/rstudio/files/rstudio-1.1.463-fix-ptr-int-compare.patch
new file mode 100644
index 000000000000..914cd942e8f4
--- /dev/null
+++ b/sci-mathematics/rstudio/files/rstudio-1.1.463-fix-ptr-int-compare.patch
@@ -0,0 +1,13 @@
+--- rstudio-1.1.463-orig/src/cpp/server/ServerSecureKeyFile.cpp 2018-10-25 09:42:55.000000000 +1100
++++ rstudio-1.1.463/src/cpp/server/ServerSecureKeyFile.cpp 2018-11-17 22:17:18.110012955 +1100
+@@ -79,8 +79,8 @@
+ return error;
+
+ // change mode it so it is only readable and writeable by this user
+- if (changeFileMode(secureKeyPath,
+- core::system::UserReadWriteMode) < 0)
++ if (!!changeFileMode(secureKeyPath,
++ core::system::UserReadWriteMode))
+ {
+ return systemError(errno, ERROR_LOCATION);
+ }
diff --git a/sci-mathematics/rstudio/rstudio-1.1.463.ebuild b/sci-mathematics/rstudio/rstudio-1.1.463.ebuild
new file mode 100644
index 000000000000..f2d6cf5a20f7
--- /dev/null
+++ b/sci-mathematics/rstudio/rstudio-1.1.463.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils user cmake-utils gnome2-utils pam versionator xdg-utils java-pkg-2 pax-utils qmake-utils
+
+# TODO
+# * package gin and gwt
+# * use dict from tree, linguas
+# * do src_test (use junit from tree?)
+
+# update from scripts in dependencies/common
+# egrep '(GWT_SDK_VER=|GIN_VER=|SELENIUM_VER=|CHROMEDRIVER_VER=)' dependencies/common/install-gwt
+GWT_VER=2.7.0
+GIN_VER=1.5
+SELENIUM_VER=2.37.0
+CHROMEDRIVER_VER=2.7
+# grep 'PANDOC_VERSION=' dependencies/common/install-pandoc
+PANDOC_VER=1.19.2.1
+# ls dependencies/common/*.tar.gz
+PACKRAT_VER=0.98.1000
+RMARKDOWN_VER=0.98.1000
+SHINYAPPS_VER=0.98.1000
+RSCONNECT_VER=0.4.1.4_fcac892a69817febd7b655b189bf57193260cda0
+
+DESCRIPTION="IDE for the R language"
+HOMEPAGE="
+ http://www.rstudio.org
+ https://github.com/rstudio/rstudio/"
+SRC_URI="
+ https://github.com/rstudio/rstudio/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://s3.amazonaws.com/rstudio-buildtools/gin-${GIN_VER}.zip
+ https://s3.amazonaws.com/rstudio-buildtools/gwt-${GWT_VER}.zip
+ https://s3.amazonaws.com/rstudio-buildtools/selenium-java-${SELENIUM_VER}.zip
+ https://s3.amazonaws.com/rstudio-buildtools/selenium-server-standalone-${SELENIUM_VER}.jar
+ https://s3.amazonaws.com/rstudio-buildtools/chromedriver-linux
+ https://s3.amazonaws.com/rstudio-dictionaries/core-dictionaries.zip
+ https://dev.gentoo.org/~gienah/distfiles/packrat-${PACKRAT_VER}.tar.gz
+ https://dev.gentoo.org/~gienah/distfiles/rmarkdown-${RMARKDOWN_VER}.tar.gz
+ https://dev.gentoo.org/~gienah/distfiles/shinyapps-${SHINYAPPS_VER}.tar.gz
+ https://dev.gentoo.org/~gienah/distfiles/rsconnect_${RSCONNECT_VER}.tar.gz
+"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="dedicated libressl server"
+
+QT_VER=5.4
+QT_SLOT=5
+RDEPEND="
+ >=app-text/pandoc-${PANDOC_VER}
+ dev-haskell/pandoc-citeproc
+ >=dev-lang/R-2.11.1
+ >=dev-libs/boost-1.63:=
+ >=dev-libs/mathjax-2.7.4
+ sys-apps/util-linux
+ >=sys-devel/clang-3.5.0:*
+ sys-libs/zlib
+ >=virtual/jre-1.8:=
+ x11-libs/pango
+ !dedicated? (
+ >=dev-qt/qtcore-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtdeclarative-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtdbus-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtgui-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtnetwork-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtopengl-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtpositioning-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtprintsupport-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtsingleapplication-2.6.1_p20150629[X,qt5(+)]
+ >=dev-qt/qtsensors-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtsql-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtsvg-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtwebchannel-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtwebkit-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtwidgets-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtxml-${QT_VER}:${QT_SLOT}
+ >=dev-qt/qtxmlpatterns-${QT_VER}:${QT_SLOT}
+ server? ( virtual/pam )
+ )
+ dedicated? ( virtual/pam )
+ !libressl? ( dev-libs/openssl:0 )
+ libressl? ( dev-libs/libressl:0 )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ dev-java/ant-core
+ >=virtual/jdk-1.8:=
+ virtual/pkgconfig"
+# test? ( dev-java/junit:4 )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.99.879-prefs.patch"
+ "${FILESDIR}/${PN}-1.0.44-paths.patch"
+ "${FILESDIR}/${PN}-1.1.357-clang-pandoc.patch"
+ "${FILESDIR}/${PN}-0.98.490-linker_flags.patch"
+ "${FILESDIR}/${PN}-0.99.473-qtsingleapplication.patch"
+ "${FILESDIR}/${PN}-1.0.44-systemd.patch"
+ "${FILESDIR}/${PN}-1.1.453-boost-1.67.0.patch"
+ "${FILESDIR}/${PN}-1.1.453-core.patch"
+ "${FILESDIR}/${PN}-1.1.463-boost-1.69.0_p1.patch"
+ "${FILESDIR}/${PN}-1.1.463-boost-1.69.0_p2.patch"
+ "${FILESDIR}/${PN}-1.1.463-fix-ptr-int-compare.patch"
+)
+
+src_unpack() {
+ unpack ${P}.tar.gz gwt-${GWT_VER}.zip
+ cd "${S}" || die
+ mkdir -p src/gwt/lib/{gin,gwt} \
+ dependencies/common/dictionaries \
+ src/gwt/lib/selenium/${SELENIUM_VER} \
+ src/gwt/lib/selenium/chromedriver/${CHROMEDRIVER_VER} || die
+ mv ../gwt-${GWT_VER} src/gwt/lib/gwt/${GWT_VER} || die
+ unzip -qd src/gwt/lib/gin/${GIN_VER} \
+ "${DISTDIR}"/gin-${GIN_VER}.zip || die
+ unzip -qd dependencies/common/dictionaries \
+ "${DISTDIR}"/core-dictionaries.zip || die
+ unzip -qd src/gwt/lib/selenium/${SELENIUM_VER} \
+ "${DISTDIR}"/selenium-java-${SELENIUM_VER}.zip || die
+ cp "${DISTDIR}"/selenium-server-standalone-${SELENIUM_VER}.jar \
+ src/gwt/lib/selenium/${SELENIUM_VER}/ || die
+ cp "${DISTDIR}"/chromedriver-linux \
+ src/gwt/lib/selenium/chromedriver/${CHROMEDRIVER_VER}/ || die
+ cd dependencies/common || die
+ unpack packrat-${PACKRAT_VER}.tar.gz
+ unpack rmarkdown-${RMARKDOWN_VER}.tar.gz
+ unpack shinyapps-${SHINYAPPS_VER}.tar.gz
+ unpack rsconnect_${RSCONNECT_VER}.tar.gz
+ cp "${DISTDIR}"/rmarkdown-${RMARKDOWN_VER}.tar.gz \
+ . || die
+ cp "${DISTDIR}"/packrat-${PACKRAT_VER}.tar.gz \
+ . || die
+ cp "${DISTDIR}"/shinyapps-${SHINYAPPS_VER}.tar.gz \
+ . || die
+ cp "${DISTDIR}"/rsconnect_${RSCONNECT_VER}.tar.gz \
+ . || die
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+ java-pkg-2_src_prepare
+ egit_clean
+
+ # Enable CMake to install our .service file for systemd usage
+ mkdir -vp "${S}/src/cpp/server/lib/systemd/system" || die
+ cp -v "${FILESDIR}/rstudio-server.service.in" "${S}/src/cpp/server/lib/systemd/system/" || die
+
+ # Adding -DDISTRO_SHARE=... to append-flags breaks cmake so using
+ # this sed hack for now. ~RMH
+ sed -i \
+ -e "s|DISTRO_SHARE|\"share/${PN}\"|g" \
+ src/cpp/server/ServerOptions.cpp \
+ src/cpp/session/SessionOptions.cpp || die
+
+ # use mathjax from system
+ ln -sf "${EPREFIX}"/usr/share/mathjax dependencies/common/mathjax-26 || die
+
+ # make sure icons and mime stuff are with prefix
+ sed -i \
+ -e "s:/usr:${EPREFIX}/usr:g" \
+ CMakeGlobals.txt src/cpp/desktop/CMakeLists.txt || die
+
+ # On Gentoo the rstudio-server configuration file is /etc/conf.d/rstudio-server.conf
+ sed -e "s@/etc/rstudio/rserver.conf@${EROOT}etc/conf.d/rstudio-server.conf@" \
+ -i src/cpp/server/ServerOptions.cpp \
+ || die
+
+ # Set the rsession.conf file location for Gentoo prefix
+ sed -e "s@/etc/rstudio/rsession.conf@${EROOT}etc/rstudio/rsession.conf@" \
+ -i src/cpp/session/SessionOptions.cpp \
+ || die
+
+ # dev-qt/qtsingleapplication-2.6.1_p20150629 does not provide a cmake module.
+ # It provides a library that has its version number appended to the end,
+ # which is difficult to handle in cmake, as find_library does not support
+ # searching for wildcard library names. So I find the library name from the
+ # qmake spec, and then sed this into the patched src/cpp/desktop/CMakeLists.txt.
+ rm -rf "${S}"/src/cpp/desktop/3rdparty || die
+ local s=$(grep '\-lQt$${QT_MAJOR_VERSION}Solutions_SingleApplication' \
+ $(qt5_get_mkspecsdir)/features/qtsingleapplication.prf \
+ | sed -e 's@\$\${QT_MAJOR_VERSION}@5@' \
+ -e 's@LIBS \*= -l@@')
+ sed -e "s@Qt5Solutions_SingleApplication-2.6@${s}@g" \
+ -i "${S}"/src/cpp/desktop/CMakeLists.txt \
+ || die
+
+ # The git commit for tag: git rev-list -n 1 v${PV}
+ sed -e 's@git ARGS rev-parse HEAD@echo ARGS 6871a99b32add885fe6fa3d50fe15f62346142e7@'\
+ -i "${S}"/CMakeLists.txt \
+ "${S}"/CMakeGlobals.txt \
+ || die
+}
+
+src_configure() {
+ export RSTUDIO_VERSION_MAJOR=$(get_version_component_range 1)
+ export RSTUDIO_VERSION_MINOR=$(get_version_component_range 2)
+ export RSTUDIO_VERSION_PATCH=$(get_version_component_range 3)
+
+ local mycmakeargs=(
+ -DDISTRO_SHARE=share/${PN}
+ -DRSTUDIO_INSTALL_FREEDESKTOP="$(usex !dedicated "ON" "OFF")"
+ -DRSTUDIO_TARGET=$(usex dedicated "Server" "$(usex server "Development" "Desktop")")
+ -DQT_QMAKE_EXECUTABLE=$(qt5_get_bindir)/qmake
+ -DRSTUDIO_VERIFY_R_VERSION=FALSE
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ # Avoid the rest of the oracle-jdk-bin-1.8.0.60 sandbox violations F: mkdir S: deny
+ # P: /root/.oracle_jre_usage.
+ export ANT_OPTS="-Duser.home=${T}"
+ cmake-utils_src_compile
+}
+
+src_install() {
+ export ANT_OPTS="-Duser.home=${T}"
+ cmake-utils_src_install
+ pax-mark m "${ED}usr/bin/rstudio"
+ doconfd "${FILESDIR}"/rstudio-server.conf
+ dodir /etc/rstudio
+ insinto /etc/rstudio
+ doins "${FILESDIR}"/rsession.conf
+ dosym "${ROOT}etc/conf.d/rstudio-server.conf" "${ROOT}etc/rstudio/rserver.conf"
+ if use dedicated || use server; then
+ dopamd src/cpp/server/extras/pam/rstudio
+ newinitd "${FILESDIR}"/rstudio-server.initd rstudio-server
+ fi
+}
+
+pkg_preinst() {
+ use dedicated || gnome2_icon_savelist
+ java-pkg-2_pkg_preinst
+}
+
+pkg_postinst() {
+ use dedicated || { xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ gnome2_icon_cache_update ;}
+
+ if use dedicated || use server; then
+ enewgroup rstudio-server
+ enewuser rstudio-server -1 -1 -1 rstudio-server
+ fi
+}
+
+pkg_postrm() {
+ use dedicated || { xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ gnome2_icon_cache_update ;}
+}