sci-mathematics/rstudio: Bump to 1.1.463

Signed-off-by: Mark Wright <gienah@gentoo.org>
This commit is contained in:
Mark Wright
2018-11-19 23:25:51 +11:00
parent aae60f3534
commit 1ca9384709
5 changed files with 1114 additions and 0 deletions

View File

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

View File

@@ -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;
};

View File

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

View File

@@ -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);
}

View File

@@ -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 ;}
}