Gentoo Archives: gentoo-commits

From: Mark Wright <gienah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/rstudio/, sci-mathematics/rstudio/files/
Date: Mon, 19 Nov 2018 12:38:20
Message-Id: 1542631076.1ca93847092bdabc213f1631a295decdba82125c.gienah@gentoo
1 commit: 1ca93847092bdabc213f1631a295decdba82125c
2 Author: Mark Wright <gienah <AT> gentoo <DOT> org>
3 AuthorDate: Mon Nov 19 12:25:51 2018 +0000
4 Commit: Mark Wright <gienah <AT> gentoo <DOT> org>
5 CommitDate: Mon Nov 19 12:37:56 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ca93847
7
8 sci-mathematics/rstudio: Bump to 1.1.463
9
10 Signed-off-by: Mark Wright <gienah <AT> gentoo.org>
11
12 sci-mathematics/rstudio/Manifest | 1 +
13 .../files/rstudio-1.1.463-boost-1.69.0_p1.patch | 680 +++++++++++++++++++++
14 .../files/rstudio-1.1.463-boost-1.69.0_p2.patch | 167 +++++
15 .../rstudio-1.1.463-fix-ptr-int-compare.patch | 13 +
16 sci-mathematics/rstudio/rstudio-1.1.463.ebuild | 253 ++++++++
17 5 files changed, 1114 insertions(+)
18
19 diff --git a/sci-mathematics/rstudio/Manifest b/sci-mathematics/rstudio/Manifest
20 index 77cc3217237..79c6b60ad01 100644
21 --- a/sci-mathematics/rstudio/Manifest
22 +++ b/sci-mathematics/rstudio/Manifest
23 @@ -7,6 +7,7 @@ DIST rmarkdown-0.98.1000.tar.gz 1423820 BLAKE2B eac8c9cf438c9b44ddfe954602dd67a8
24 DIST rsconnect_0.4.1.4_fcac892a69817febd7b655b189bf57193260cda0.tar.gz 197051 BLAKE2B 1f3f9fe71d7b50ab5108dfdbd3cc0b882bcc935ee58e8a9145b07a18bb86c39bc45e321a13add24df99492bc30548df716775c339bcbf4efc2bfe158299ae55a SHA512 208dc349f4aa7613ecf94939aba60d22d3a06972344b526c9b6c951015571f5922927bca08db571a7b8a268e42609a4f558f01278c9685f6da2ffc66a1f95ade
25 DIST rstudio-1.1.383.tar.gz 20196702 BLAKE2B 5164230a92618e4252269ad0016b200294d1e7fa502cc49aa694486cda098ee7ffc65e6c74a87d891d0532f5cc15d1552aa86d04047d07b4f275cbc4d2758647 SHA512 3f637f9bce2c1ad1a4ed3e74287da722190a4e12b0cace6ffcca271977d49dcecca9365f2064366aad94e87851593cab83fa9361e9a9222a9f67fe9451f31ed2
26 DIST rstudio-1.1.453.tar.gz 20200360 BLAKE2B 560b89e53b04356ecf9a02dd8a7e72ad8d6c30bf406fbe7e22a82cc6d33d40e84bececf5ecda9cf086360b2bd2fa64d6b33c2dd675ef5f605f9e825d7ca2dc84 SHA512 f2be0866f645007a6f80959109928820c89480057c3660d23e790591797d4f4c371733f49290dae9c81bfc2715821528e2a105e7a66d4d9ffbfc7ee2a596976c
27 +DIST rstudio-1.1.463.tar.gz 20203779 BLAKE2B 97f879539cbb7051af362a8469795a47feb42d18ff46dbbdffe36e0685d1cd5704848b3bf5a5611d482a09567722e35288527302cd521b18e2a48b347c919e17 SHA512 987347563a9726363c28d866e1372eae8eb19a5cbd0e33c7ee0e0c8f90471c4b69de0f559c00410523841b6c090b584652e01496f5db33c015a4554d2f4e179b
28 DIST selenium-java-2.37.0.zip 24625928 BLAKE2B b369a805ae96f0d0913c4be42888d9c2a1e213ff982f9daefe73fadb705baa80ab0186ab50ed52609e83697cffaf8d617d06d75405cb8e1c3fe8e7c5b81dba25 SHA512 68624e82dbc751a25c50fad72702a98eb30d77fd4337d2a969f8e06bcc49e5f8c835cd27ec53772f3375014ddde1d5636936e966b75f3594a9f86aa18ba4e779
29 DIST selenium-server-standalone-2.37.0.jar 34730734 BLAKE2B 3899b1d4c5f9153c1f9f13bec66f7c1456ea2e0f34db7d8e54a1ce9063c33a05b3cf95216c2ae06bb40504f72f343a4b9ba6c8553fbbc340e7c18a5b612dde5c SHA512 b215446d42d2d1f69664349b6ae6dc53a532d3624c91254f0f4183d0ad764648792e5cc1126a55a1e60d9687d55200fed01d6d2f46cc3d853b1fa6ee38111018
30 DIST shinyapps-0.98.1000.tar.gz 910095 BLAKE2B 4f9364692348bb52cbd12cc6ee447841cb0c805327f2518b2a9545920b602b954a98dea68ccb3daf32d2c3bab6464fb15402844d93277193315f1ae7b3ca5190 SHA512 3162317c4c20cfc1497e952a8235867084d629ae88407e6c465b3e208adb1dc97abfe6b9922e0374ddf4c8e38a76e112942bd312c54a66f74e6f2a3fe4c0a07c
31
32 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
33 new file mode 100644
34 index 00000000000..aa3db25f3c0
35 --- /dev/null
36 +++ b/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p1.patch
37 @@ -0,0 +1,680 @@
38 +--- /dev/null 2018-11-10 15:32:26.332997437 +1100
39 ++++ rstudio-1.1.463/src/cpp/core/include/core/BoostSignals.hpp 2018-11-17 21:24:35.285976284 +1100
40 +@@ -0,0 +1,40 @@
41 ++/*
42 ++ * BoostSignals.hpp
43 ++ *
44 ++ * Copyright (C) 2009-18 by RStudio, Inc.
45 ++ *
46 ++ * Unless you have received this program directly from RStudio pursuant
47 ++ * to the terms of a commercial license agreement with RStudio, then
48 ++ * this program is licensed to you under the terms of version 3 of the
49 ++ * GNU Affero General Public License. This program is distributed WITHOUT
50 ++ * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
51 ++ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
52 ++ * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
53 ++ *
54 ++ */
55 ++
56 ++#ifndef CORE_RSTUDIO_BOOST_SIGNALS_HPP
57 ++#define CORE_RSTUDIO_BOOST_SIGNALS_HPP
58 ++
59 ++#if RSTUDIO_BOOST_SIGNALS_VERSION == 1
60 ++
61 ++# include <boost/signals.hpp>
62 ++# define RSTUDIO_BOOST_SIGNAL boost::signal
63 ++# define RSTUDIO_BOOST_CONNECTION boost::signals::connection
64 ++# define RSTUDIO_BOOST_SCOPED_CONNECTION boost::signals::scoped_connection
65 ++# define RSTUDIO_BOOST_LAST_VALUE boost::last_value
66 ++
67 ++#elif RSTUDIO_BOOST_SIGNALS_VERSION == 2
68 ++
69 ++# include <boost/signals2.hpp>
70 ++# define RSTUDIO_BOOST_SIGNAL boost::signals2::signal
71 ++# define RSTUDIO_BOOST_CONNECTION boost::signals2::connection
72 ++# define RSTUDIO_BOOST_SCOPED_CONNECTION boost::signals2::scoped_connection
73 ++# define RSTUDIO_BOOST_LAST_VALUE boost::signals2::last_value
74 ++
75 ++#else
76 ++# error "Unrecognized RSTUDIO_BOOST_SIGNALS_VERSION"
77 ++#endif
78 ++
79 ++#endif // CORE_RSTUDIO_BOOST_SIGNALS_HPP
80 ++
81 +--- rstudio-1.1.463-orig/src/cpp/CMakeLists.txt 2018-10-25 09:42:55.000000000 +1100
82 ++++ rstudio-1.1.463/src/cpp/CMakeLists.txt 2018-11-17 21:24:35.285976284 +1100
83 +@@ -208,6 +208,18 @@
84 + message(STATUS "Using RStudio-provided Boost ${BOOST_VERSION}")
85 + endif()
86 +
87 ++# allow opt-in to using Boost.Signals2
88 ++# TODO: remove this in RStudio v1.3 and port to signals2
89 ++if(NOT RSTUDIO_BOOST_SIGNALS_VERSION)
90 ++ if (BOOST_VERSION VERSION_LESS 1.69.0)
91 ++ set(RSTUDIO_BOOST_SIGNALS_VERSION 1)
92 ++ else()
93 ++ set(RSTUDIO_BOOST_SIGNALS_VERSION 2)
94 ++ endif()
95 ++endif()
96 ++
97 ++message(STATUS "Using Booost.Signals version ${RSTUDIO_BOOST_SIGNALS_VERSION}")
98 ++add_definitions(-DRSTUDIO_BOOST_SIGNALS_VERSION=${RSTUDIO_BOOST_SIGNALS_VERSION})
99 +
100 + # add boost as system include directory
101 + include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
102 +--- rstudio-1.1.463-orig/src/cpp/r/include/r/session/RConsoleHistory.hpp 2018-10-25 09:42:55.000000000 +1100
103 ++++ rstudio-1.1.463/src/cpp/r/include/r/session/RConsoleHistory.hpp 2018-11-17 21:24:35.285976284 +1100
104 +@@ -20,8 +20,8 @@
105 +
106 + #include <boost/utility.hpp>
107 + #include <boost/circular_buffer.hpp>
108 +-#include <boost/signal.hpp>
109 +
110 ++#include <core/BoostSignals.hpp>
111 + #include <core/json/Json.hpp>
112 +
113 + namespace rstudio {
114 +@@ -44,7 +44,7 @@
115 + public:
116 + typedef boost::circular_buffer<std::string>::value_type value_type;
117 + typedef boost::circular_buffer<std::string>::const_iterator const_iterator;
118 +- typedef boost::signal<void (const std::string&)> AddSignal;
119 ++ typedef RSTUDIO_BOOST_SIGNAL<void (const std::string&)> AddSignal;
120 +
121 + private:
122 + ConsoleHistory();
123 +@@ -86,8 +86,7 @@
124 + core::Error loadFromFile(const core::FilePath& filePath, bool verifyFile);
125 + core::Error saveToFile(const core::FilePath& filePath) const;
126 +
127 +- boost::signals::connection connectOnAdd(
128 +- const AddSignal::slot_function_type& slot)
129 ++ RSTUDIO_BOOST_CONNECTION connectOnAdd(const AddSignal::slot_function_type& slot)
130 + {
131 + return onAdd_.connect(slot);
132 + }
133 +--- rstudio-1.1.463-orig/src/cpp/r/include/r/session/RGraphics.hpp 2018-10-25 09:42:55.000000000 +1100
134 ++++ rstudio-1.1.463/src/cpp/r/include/r/session/RGraphics.hpp 2018-11-17 21:24:35.286976293 +1100
135 +@@ -19,6 +19,8 @@
136 + #include <boost/system/error_code.hpp>
137 + #include <boost/date_time/posix_time/ptime.hpp>
138 +
139 ++#include <core/BoostSignals.hpp>
140 ++
141 + namespace rstudio {
142 + namespace r {
143 + namespace session {
144 +@@ -56,8 +58,8 @@
145 + #include <vector>
146 +
147 + #include <boost/function.hpp>
148 +-#include <boost/signal.hpp>
149 +
150 ++#include <core/BoostSignals.hpp>
151 + #include <core/Error.hpp>
152 + #include <core/json/Json.hpp>
153 +
154 +@@ -162,7 +164,7 @@
155 + virtual void clear() = 0;
156 +
157 + // subscribe to showManipulator event
158 +- virtual boost::signal<void ()>& onShowManipulator() = 0;
159 ++ virtual RSTUDIO_BOOST_SIGNAL<void ()>& onShowManipulator() = 0;
160 +
161 + // set manipulator values
162 + virtual void setPlotManipulatorValues(const core::json::Object& values) = 0;
163 +--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManager.cpp 2018-10-25 09:42:55.000000000 +1100
164 ++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManager.cpp 2018-11-17 21:24:35.286976293 +1100
165 +@@ -540,7 +540,7 @@
166 +
167 +
168 +
169 +-boost::signal<void ()>& PlotManager::onShowManipulator()
170 ++RSTUDIO_BOOST_SIGNAL<void ()>& PlotManager::onShowManipulator()
171 + {
172 + return plotManipulatorManager().onShowManipulator();
173 + }
174 +--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManager.hpp 2018-10-25 09:42:55.000000000 +1100
175 ++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManager.hpp 2018-11-17 21:24:35.287976303 +1100
176 +@@ -22,10 +22,10 @@
177 + #include <boost/utility.hpp>
178 + #include <boost/shared_ptr.hpp>
179 + #include <boost/function.hpp>
180 +-#include <boost/signal.hpp>
181 + #include <boost/regex.hpp>
182 + #include <boost/circular_buffer.hpp>
183 +
184 ++#include <core/BoostSignals.hpp>
185 + #include <core/Error.hpp>
186 + #include <core/FilePath.hpp>
187 +
188 +@@ -45,10 +45,10 @@
189 +
190 + struct GraphicsDeviceEvents
191 + {
192 +- boost::signal<void (SEXP)> onNewPage;
193 +- boost::signal<void ()> onDrawing;
194 +- boost::signal<void ()> onResized;
195 +- boost::signal<void ()> onClosed;
196 ++ RSTUDIO_BOOST_SIGNAL<void (SEXP)> onNewPage;
197 ++ RSTUDIO_BOOST_SIGNAL<void ()> onDrawing;
198 ++ RSTUDIO_BOOST_SIGNAL<void ()> onResized;
199 ++ RSTUDIO_BOOST_SIGNAL<void ()> onClosed;
200 + };
201 +
202 + class PlotManipulatorManager;
203 +@@ -110,7 +110,7 @@
204 +
205 + virtual void clear();
206 +
207 +- virtual boost::signal<void ()>& onShowManipulator() ;
208 ++ virtual RSTUDIO_BOOST_SIGNAL<void ()>& onShowManipulator() ;
209 + virtual void setPlotManipulatorValues(const core::json::Object& values);
210 + virtual void manipulatorPlotClicked(int x, int y);
211 +
212 +--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.cpp 2018-10-25 09:42:55.000000000 +1100
213 ++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.cpp 2018-11-17 21:24:35.287976303 +1100
214 +@@ -184,7 +184,7 @@
215 + }
216 +
217 +
218 +-boost::signal<void ()>& PlotManipulatorManager::onShowManipulator()
219 ++RSTUDIO_BOOST_SIGNAL<void ()>& PlotManipulatorManager::onShowManipulator()
220 + {
221 + return onShowManipulator_;
222 + }
223 +--- rstudio-1.1.463-orig/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.hpp 2018-10-25 09:42:55.000000000 +1100
224 ++++ rstudio-1.1.463/src/cpp/r/session/graphics/RGraphicsPlotManipulatorManager.hpp 2018-11-17 21:24:35.287976303 +1100
225 +@@ -16,8 +16,7 @@
226 + #ifndef R_SESSION_GRAPHICS_PLOT_MANIPULATOR_MANAGER_HPP
227 + #define R_SESSION_GRAPHICS_PLOT_MANIPULATOR_MANAGER_HPP
228 +
229 +-#include <boost/signal.hpp>
230 +-
231 ++#include <core/BoostSignals.hpp>
232 + #include <core/Error.hpp>
233 + #include <core/json/Json.hpp>
234 +
235 +@@ -53,7 +52,7 @@
236 + public:
237 + core::Error initialize(const UnitConversionFunctions& convert);
238 +
239 +- boost::signal<void ()>& onShowManipulator() ;
240 ++ RSTUDIO_BOOST_SIGNAL<void ()>& onShowManipulator() ;
241 + void setPlotManipulatorValues(const core::json::Object& values);
242 + void manipulatorPlotClicked(int x, int y);
243 +
244 +@@ -85,7 +84,7 @@
245 + bool replayingManipulator_;
246 +
247 + // manipulator event hook
248 +- boost::signal<void ()> onShowManipulator_;
249 ++ RSTUDIO_BOOST_SIGNAL<void ()> onShowManipulator_;
250 +
251 + // unit conversion function
252 + UnitConversionFunctions convert_;
253 +--- rstudio-1.1.463-orig/src/cpp/server/include/server/ServerSessionManager.hpp 2018-10-25 09:42:55.000000000 +1100
254 ++++ rstudio-1.1.463/src/cpp/server/include/server/ServerSessionManager.hpp 2018-11-17 21:27:05.255436316 +1100
255 +@@ -20,9 +20,9 @@
256 + #include <vector>
257 + #include <map>
258 +
259 +-#include <boost/signals.hpp>
260 + #include <boost/asio/io_service.hpp>
261 +
262 ++#include <core/BoostSignals.hpp>
263 + #include <core/Thread.hpp>
264 +
265 + #include <core/system/PosixSystem.hpp>
266 +--- rstudio-1.1.463-orig/src/cpp/session/SessionMain.cpp 2018-10-25 09:42:55.000000000 +1100
267 ++++ rstudio-1.1.463/src/cpp/session/SessionMain.cpp 2018-11-17 21:24:35.288976313 +1100
268 +@@ -33,12 +33,12 @@
269 + #include <boost/lexical_cast.hpp>
270 + #include <boost/format.hpp>
271 +
272 +-#include <boost/signals.hpp>
273 + #include <boost/date_time/posix_time/posix_time.hpp>
274 + #include <boost/algorithm/string/predicate.hpp>
275 + #include <boost/algorithm/string/join.hpp>
276 +
277 + #include <core/Error.hpp>
278 ++#include <core/BoostSignals.hpp>
279 + #include <core/BoostThread.hpp>
280 + #include <core/ConfigUtils.hpp>
281 + #include <core/FilePath.hpp>
282 +--- rstudio-1.1.463-orig/src/cpp/session/SessionModuleContext.cpp 2018-10-25 09:42:55.000000000 +1100
283 ++++ rstudio-1.1.463/src/cpp/session/SessionModuleContext.cpp 2018-11-17 21:24:35.289976322 +1100
284 +@@ -19,10 +19,10 @@
285 +
286 + #include <boost/assert.hpp>
287 + #include <boost/utility.hpp>
288 +-#include <boost/signal.hpp>
289 + #include <boost/format.hpp>
290 + #include <boost/numeric/conversion/cast.hpp>
291 +
292 ++#include <core/BoostSignals.hpp>
293 + #include <core/BoostThread.hpp>
294 + #include <core/Error.hpp>
295 + #include <core/FilePath.hpp>
296 +@@ -586,13 +586,13 @@
297 +
298 + int nextGroup_;
299 +
300 +- boost::signal<void(const r::session::RSuspendOptions&,Settings*),
301 +- boost::last_value<void>,
302 ++ RSTUDIO_BOOST_SIGNAL<void(const r::session::RSuspendOptions&,Settings*),
303 ++ RSTUDIO_BOOST_LAST_VALUE<void>,
304 + int,
305 + std::less<int> > suspendSignal_;
306 +
307 +- boost::signal<void(const Settings&),
308 +- boost::last_value<void>,
309 ++ RSTUDIO_BOOST_SIGNAL<void(const Settings&),
310 ++ RSTUDIO_BOOST_LAST_VALUE<void>,
311 + int,
312 + std::greater<int> > resumeSignal_;
313 + };
314 +--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionConsoleProcess.hpp 2018-10-25 09:42:55.000000000 +1100
315 ++++ rstudio-1.1.463/src/cpp/session/include/session/SessionConsoleProcess.hpp 2018-11-17 21:24:35.290976332 +1100
316 +@@ -20,10 +20,10 @@
317 + #include <deque>
318 +
319 + #include <boost/regex.hpp>
320 +-#include <boost/signals.hpp>
321 + #include <boost/circular_buffer.hpp>
322 + #include <boost/enable_shared_from_this.hpp>
323 +
324 ++#include <core/BoostSignals.hpp>
325 + #include <core/system/Process.hpp>
326 + #include <core/terminal/PrivateCommand.hpp>
327 +
328 +@@ -146,7 +146,7 @@
329 + void setPromptHandler(
330 + const boost::function<bool(const std::string&, Input*)>& onPrompt);
331 +
332 +- boost::signal<void(int)>& onExit() { return onExit_; }
333 ++ RSTUDIO_BOOST_SIGNAL<void(int)>& onExit() { return onExit_; }
334 +
335 + std::string handle() const { return procInfo_->getHandle(); }
336 + InteractionMode interactionMode() const { return procInfo_->getInteractionMode(); }
337 +@@ -264,7 +264,7 @@
338 + boost::mutex inputOutputQueueMutex_;
339 +
340 + boost::function<bool(const std::string&, Input*)> onPrompt_;
341 +- boost::signal<void(int)> onExit_;
342 ++ RSTUDIO_BOOST_SIGNAL<void(int)> onExit_;
343 +
344 + // regex for prompt detection
345 + boost::regex controlCharsPattern_;
346 +--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionModuleContext.hpp 2018-10-25 09:42:55.000000000 +1100
347 ++++ rstudio-1.1.463/src/cpp/session/include/session/SessionModuleContext.hpp 2018-11-17 21:28:25.019212857 +1100
348 +@@ -21,9 +21,9 @@
349 +
350 + #include <boost/utility.hpp>
351 + #include <boost/function.hpp>
352 +-#include <boost/signals.hpp>
353 + #include <boost/shared_ptr.hpp>
354 +
355 ++#include <core/BoostSignals.hpp>
356 + #include <core/HtmlUtils.hpp>
357 + #include <core/system/System.hpp>
358 + #include <core/system/ShellUtils.hpp>
359 +@@ -315,35 +315,35 @@
360 + // session events
361 + struct Events : boost::noncopyable
362 + {
363 +- boost::signal<void (core::json::Object*)> onSessionInfo;
364 +- boost::signal<void ()> onClientInit;
365 +- boost::signal<void ()> onBeforeExecute;
366 +- boost::signal<void(const std::string&)> onConsolePrompt;
367 +- boost::signal<void(const std::string&)> onConsoleInput;
368 +- boost::signal<void(const std::string&, const std::string&)>
369 ++ RSTUDIO_BOOST_SIGNAL<void (core::json::Object*)> onSessionInfo;
370 ++ RSTUDIO_BOOST_SIGNAL<void ()> onClientInit;
371 ++ RSTUDIO_BOOST_SIGNAL<void ()> onBeforeExecute;
372 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&)> onConsolePrompt;
373 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&)> onConsoleInput;
374 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&, const std::string&)>
375 + onActiveConsoleChanged;
376 +- boost::signal<void (ConsoleOutputType, const std::string&)>
377 ++ RSTUDIO_BOOST_SIGNAL<void (ConsoleOutputType, const std::string&)>
378 + onConsoleOutput;
379 +- boost::signal<void()> onUserInterrupt;
380 +- boost::signal<void (ChangeSource)> onDetectChanges;
381 +- boost::signal<void (core::FilePath)> onSourceEditorFileSaved;
382 +- boost::signal<void(bool)> onDeferredInit;
383 +- boost::signal<void(bool)> afterSessionInitHook;
384 +- boost::signal<void(bool)> onBackgroundProcessing;
385 +- boost::signal<void(bool)> onShutdown;
386 +- boost::signal<void ()> onQuit;
387 +- boost::signal<void ()> onDestroyed;
388 +- boost::signal<void (const std::vector<std::string>&)>
389 ++ RSTUDIO_BOOST_SIGNAL<void()> onUserInterrupt;
390 ++ RSTUDIO_BOOST_SIGNAL<void (ChangeSource)> onDetectChanges;
391 ++ RSTUDIO_BOOST_SIGNAL<void (core::FilePath)> onSourceEditorFileSaved;
392 ++ RSTUDIO_BOOST_SIGNAL<void(bool)> onDeferredInit;
393 ++ RSTUDIO_BOOST_SIGNAL<void(bool)> afterSessionInitHook;
394 ++ RSTUDIO_BOOST_SIGNAL<void(bool)> onBackgroundProcessing;
395 ++ RSTUDIO_BOOST_SIGNAL<void(bool)> onShutdown;
396 ++ RSTUDIO_BOOST_SIGNAL<void ()> onQuit;
397 ++ RSTUDIO_BOOST_SIGNAL<void ()> onDestroyed;
398 ++ RSTUDIO_BOOST_SIGNAL<void (const std::vector<std::string>&)>
399 + onLibPathsChanged;
400 +- boost::signal<void (const std::string&)> onPackageLoaded;
401 +- boost::signal<void ()> onPackageLibraryMutated;
402 +- boost::signal<void ()> onPreferencesSaved;
403 +- boost::signal<void (const core::DistributedEvent&)>
404 ++ RSTUDIO_BOOST_SIGNAL<void (const std::string&)> onPackageLoaded;
405 ++ RSTUDIO_BOOST_SIGNAL<void ()> onPackageLibraryMutated;
406 ++ RSTUDIO_BOOST_SIGNAL<void ()> onPreferencesSaved;
407 ++ RSTUDIO_BOOST_SIGNAL<void (const core::DistributedEvent&)>
408 + onDistributedEvent;
409 +- boost::signal<void (core::FilePath)> onPermissionsChanged;
410 ++ RSTUDIO_BOOST_SIGNAL<void (core::FilePath)> onPermissionsChanged;
411 +
412 + // signal for detecting extended type of documents
413 +- boost::signal<std::string(boost::shared_ptr<source_database::SourceDocument>),
414 ++ RSTUDIO_BOOST_SIGNAL<std::string(boost::shared_ptr<source_database::SourceDocument>),
415 + firstNonEmpty<std::string> > onDetectSourceExtendedType;
416 + };
417 +
418 +--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionSourceDatabase.hpp 2018-10-25 09:42:55.000000000 +1100
419 ++++ rstudio-1.1.463/src/cpp/session/include/session/SessionSourceDatabase.hpp 2018-11-17 21:24:35.291976342 +1100
420 +@@ -21,8 +21,8 @@
421 +
422 + #include <boost/utility.hpp>
423 + #include <boost/shared_ptr.hpp>
424 +-#include <boost/signals.hpp>
425 +
426 ++#include <core/BoostSignals.hpp>
427 + #include <core/FilePath.hpp>
428 + #include <core/json/Json.hpp>
429 +
430 +@@ -204,14 +204,14 @@
431 + // source database events
432 + struct Events : boost::noncopyable
433 + {
434 +- boost::signal<void(boost::shared_ptr<SourceDocument>)> onDocUpdated;
435 +- boost::signal<void(const std::string&,
436 ++ RSTUDIO_BOOST_SIGNAL<void(boost::shared_ptr<SourceDocument>)> onDocUpdated;
437 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&,
438 + boost::shared_ptr<SourceDocument>)> onDocRenamed;
439 +- boost::signal<void(const std::string&)> onDocAdded;
440 +- boost::signal<void(
441 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&)> onDocAdded;
442 ++ RSTUDIO_BOOST_SIGNAL<void(
443 + boost::shared_ptr<source_database::SourceDocument>)> onDocPendingRemove;
444 +- boost::signal<void(const std::string&, const std::string&)> onDocRemoved;
445 +- boost::signal<void()> onRemoveAll;
446 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&, const std::string&)> onDocRemoved;
447 ++ RSTUDIO_BOOST_SIGNAL<void()> onRemoveAll;
448 + };
449 +
450 + Events& events();
451 +--- rstudio-1.1.463-orig/src/cpp/session/include/session/SessionUserSettings.hpp 2018-10-25 09:42:55.000000000 +1100
452 ++++ rstudio-1.1.463/src/cpp/session/include/session/SessionUserSettings.hpp 2018-11-17 21:24:35.291976342 +1100
453 +@@ -20,8 +20,8 @@
454 +
455 + #include <boost/utility.hpp>
456 + #include <boost/scoped_ptr.hpp>
457 +-#include <boost/signal.hpp>
458 +
459 ++#include <core/BoostSignals.hpp>
460 + #include <core/Settings.hpp>
461 + #include <core/FilePath.hpp>
462 + #include <core/StringUtils.hpp>
463 +@@ -62,7 +62,7 @@
464 + friend UserSettings& userSettings();
465 +
466 + public:
467 +- boost::signal<void()> onChanged;
468 ++ RSTUDIO_BOOST_SIGNAL<void()> onChanged;
469 +
470 + public:
471 + // COPYING: boost::noncopyable
472 +--- rstudio-1.1.463-orig/src/cpp/session/include/session/projects/SessionProjects.hpp 2018-10-25 09:42:55.000000000 +1100
473 ++++ rstudio-1.1.463/src/cpp/session/include/session/projects/SessionProjects.hpp 2018-11-17 21:24:35.291976342 +1100
474 +@@ -22,8 +22,8 @@
475 + #include <boost/utility.hpp>
476 + #include <boost/shared_ptr.hpp>
477 + #include <boost/foreach.hpp>
478 +-#include <boost/signals.hpp>
479 +
480 ++#include <core/BoostSignals.hpp>
481 + #include <core/FileInfo.hpp>
482 + #include <core/FilePath.hpp>
483 + #include <core/Settings.hpp>
484 +@@ -220,10 +220,10 @@
485 +
486 + bool hasFileMonitor_;
487 + std::vector<std::string> monitorSubscribers_;
488 +- boost::signal<void(const tree<core::FileInfo>&)> onMonitoringEnabled_;
489 +- boost::signal<void(const std::vector<core::system::FileChangeEvent>&)>
490 ++ RSTUDIO_BOOST_SIGNAL<void(const tree<core::FileInfo>&)> onMonitoringEnabled_;
491 ++ RSTUDIO_BOOST_SIGNAL<void(const std::vector<core::system::FileChangeEvent>&)>
492 + onFilesChanged_;
493 +- boost::signal<void()> onMonitoringDisabled_;
494 ++ RSTUDIO_BOOST_SIGNAL<void()> onMonitoringDisabled_;
495 + };
496 +
497 + ProjectContext& projectContext();
498 +--- rstudio-1.1.463-orig/src/cpp/session/modules/SessionPlots.hpp 2018-10-25 09:42:55.000000000 +1100
499 ++++ rstudio-1.1.463/src/cpp/session/modules/SessionPlots.hpp 2018-11-17 21:24:35.292976352 +1100
500 +@@ -16,7 +16,7 @@
501 + #ifndef SESSION_PLOTS_HPP
502 + #define SESSION_PLOTS_HPP
503 +
504 +-#include <boost/signals.hpp>
505 ++#include <core/BoostSignals.hpp>
506 +
507 + namespace rstudio {
508 + namespace core {
509 +@@ -35,9 +35,9 @@
510 +
511 + struct Events : boost::noncopyable
512 + {
513 +- boost::signal<void()> onBeforeNewPlot;
514 +- boost::signal<void()> onBeforeNewGridPage;
515 +- boost::signal<void()> onNewPlot;
516 ++ RSTUDIO_BOOST_SIGNAL<void()> onBeforeNewPlot;
517 ++ RSTUDIO_BOOST_SIGNAL<void()> onBeforeNewGridPage;
518 ++ RSTUDIO_BOOST_SIGNAL<void()> onNewPlot;
519 + };
520 +
521 + Events& events();
522 +--- rstudio-1.1.463-orig/src/cpp/session/modules/build/SessionSourceCpp.cpp 2018-10-25 09:42:55.000000000 +1100
523 ++++ rstudio-1.1.463/src/cpp/session/modules/build/SessionSourceCpp.cpp 2018-11-17 21:24:35.293976361 +1100
524 +@@ -15,11 +15,11 @@
525 +
526 + #include "SessionSourceCpp.hpp"
527 +
528 +-#include <boost/signal.hpp>
529 + #include <boost/algorithm/string/trim.hpp>
530 + #include <boost/algorithm/string/predicate.hpp>
531 + #include <boost/algorithm/string/join.hpp>
532 +
533 ++#include <core/BoostSignals.hpp>
534 + #include <core/Error.hpp>
535 + #include <core/FilePath.hpp>
536 + #include <core/StringUtils.hpp>
537 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookAlternateEngines.cpp 2018-10-25 09:42:55.000000000 +1100
538 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookAlternateEngines.cpp 2018-11-17 21:24:35.294976371 +1100
539 +@@ -142,7 +142,7 @@
540 + LOG_ERROR(error);
541 +
542 + // capture console output, error
543 +- boost::signals::scoped_connection consoleHandler =
544 ++ RSTUDIO_BOOST_SCOPED_CONNECTION consoleHandler =
545 + module_context::events().onConsoleOutput.connect(
546 + boost::bind(chunkConsoleOutputHandler,
547 + _1,
548 +@@ -219,7 +219,7 @@
549 + LOG_ERROR(error);
550 +
551 + // capture console output, error
552 +- boost::signals::scoped_connection consoleHandler =
553 ++ RSTUDIO_BOOST_SCOPED_CONNECTION consoleHandler =
554 + module_context::events().onConsoleOutput.connect(
555 + boost::bind(chunkConsoleOutputHandler,
556 + _1,
557 +@@ -363,7 +363,7 @@
558 + LOG_ERROR(error);
559 +
560 + // capture console output, error
561 +- boost::signals::scoped_connection consoleHandler =
562 ++ RSTUDIO_BOOST_SCOPED_CONNECTION consoleHandler =
563 + module_context::events().onConsoleOutput.connect(
564 + boost::bind(chunkConsoleOutputHandler,
565 + _1,
566 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookCapture.cpp 2018-10-25 09:42:55.000000000 +1100
567 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookCapture.cpp 2018-11-17 21:24:35.294976371 +1100
568 +@@ -16,6 +16,8 @@
569 + #include "SessionRmdNotebook.hpp"
570 + #include "NotebookCapture.hpp"
571 +
572 ++#include <boost/make_shared.hpp>
573 ++
574 + namespace rstudio {
575 + namespace session {
576 + namespace modules {
577 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookExec.cpp 2018-10-25 09:42:55.000000000 +1100
578 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookExec.cpp 2018-11-17 21:24:35.295976381 +1100
579 +@@ -441,7 +441,7 @@
580 + }
581 +
582 + // unhook all our event handlers
583 +- BOOST_FOREACH(const boost::signals::connection connection, connections_)
584 ++ BOOST_FOREACH(const RSTUDIO_BOOST_CONNECTION connection, connections_)
585 + {
586 + connection.disconnect();
587 + }
588 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookExec.hpp 2018-10-25 09:42:55.000000000 +1100
589 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookExec.hpp 2018-11-17 21:24:35.295976381 +1100
590 +@@ -18,8 +18,7 @@
591 +
592 + #include <session/SessionModuleContext.hpp>
593 +
594 +-#include <boost/signal.hpp>
595 +-
596 ++#include <core/BoostSignals.hpp>
597 + #include <core/json/Json.hpp>
598 +
599 + #include <r/RSexp.hpp>
600 +@@ -99,7 +98,7 @@
601 + bool hasErrors_;
602 +
603 + std::vector<boost::shared_ptr<NotebookCapture> > captures_;
604 +- std::vector<boost::signals::connection> connections_;
605 ++ std::vector<RSTUDIO_BOOST_CONNECTION> connections_;
606 + };
607 +
608 + } // namespace notebook
609 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookPlots.cpp 2018-10-25 09:42:55.000000000 +1100
610 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookPlots.cpp 2018-11-17 21:24:35.295976381 +1100
611 +@@ -20,11 +20,12 @@
612 +
613 + #include <boost/format.hpp>
614 + #include <boost/foreach.hpp>
615 +-#include <boost/signals/connection.hpp>
616 +
617 +-#include <core/system/FileMonitor.hpp>
618 +-#include <core/StringUtils.hpp>
619 ++#include <core/BoostSignals.hpp>
620 + #include <core/Exec.hpp>
621 ++#include <core/StringUtils.hpp>
622 ++
623 ++#include <core/system/FileMonitor.hpp>
624 +
625 + #include <session/SessionModuleContext.hpp>
626 +
627 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookPlots.hpp 2018-10-25 09:42:55.000000000 +1100
628 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookPlots.hpp 2018-11-17 21:24:35.296976391 +1100
629 +@@ -18,8 +18,10 @@
630 + #define SESSION_NOTEBOOK_PLOTS_HPP
631 +
632 + #include <boost/function.hpp>
633 +-#include <boost/signals/connection.hpp>
634 ++
635 ++#include <core/BoostSignals.hpp>
636 + #include <core/FilePath.hpp>
637 ++
638 + #include <r/RSexp.hpp>
639 +
640 + #include "NotebookCapture.hpp"
641 +@@ -80,9 +82,9 @@
642 +
643 + unsigned lastOrdinal_;
644 +
645 +- boost::signals::connection onBeforeNewPlot_;
646 +- boost::signals::connection onBeforeNewGridPage_;
647 +- boost::signals::connection onNewPlot_;
648 ++ RSTUDIO_BOOST_CONNECTION onBeforeNewPlot_;
649 ++ RSTUDIO_BOOST_CONNECTION onBeforeNewGridPage_;
650 ++ RSTUDIO_BOOST_CONNECTION onNewPlot_;
651 +
652 + double width_;
653 + double height_;
654 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/NotebookQueue.cpp 2018-10-25 09:42:55.000000000 +1100
655 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/NotebookQueue.cpp 2018-11-17 21:24:35.296976391 +1100
656 +@@ -87,7 +87,7 @@
657 + pInput_->enque(kThreadQuitCommand);
658 +
659 + // unregister handlers
660 +- BOOST_FOREACH(boost::signals::connection connection, handlers_)
661 ++ BOOST_FOREACH(RSTUDIO_BOOST_CONNECTION connection, handlers_)
662 + {
663 + connection.disconnect();
664 + }
665 +@@ -651,7 +651,7 @@
666 + boost::shared_ptr<ChunkExecContext> execContext_;
667 +
668 + // registered signal handlers
669 +- std::vector<boost::signals::connection> handlers_;
670 ++ std::vector<RSTUDIO_BOOST_CONNECTION> handlers_;
671 +
672 + // the thread which submits console input, and the queue which feeds it
673 + boost::thread console_;
674 +--- rstudio-1.1.463-orig/src/cpp/session/modules/rmarkdown/SessionRmdNotebook.hpp 2018-10-25 09:42:55.000000000 +1100
675 ++++ rstudio-1.1.463/src/cpp/session/modules/rmarkdown/SessionRmdNotebook.hpp 2018-11-17 21:24:35.296976391 +1100
676 +@@ -18,7 +18,8 @@
677 + #define SESSION_RMARKDOWN_NOTEBOOK_HPP
678 +
679 + #include <ctime>
680 +-#include <boost/signals.hpp>
681 ++
682 ++#include <core/BoostSignals.hpp>
683 + #include <core/json/Json.hpp>
684 +
685 + #define kChunkLibDir "lib"
686 +@@ -76,24 +77,24 @@
687 + struct Events : boost::noncopyable
688 + {
689 + // Document {0}, chunk {1} from context id {3} execution completed
690 +- boost::signal<void(const std::string&, const std::string&,
691 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&, const std::string&,
692 + const std::string&)>
693 + onChunkExecCompleted;
694 +
695 + // Document {0}, chunk {1} had console output of type {2} and text {3}
696 +- boost::signal<void(const std::string&, const std::string&, int,
697 ++ RSTUDIO_BOOST_SIGNAL<void(const std::string&, const std::string&, int,
698 + const std::string&)>
699 + onChunkConsoleOutput;
700 +
701 +- boost::signal<void(const core::FilePath&, const core::FilePath&,
702 ++ RSTUDIO_BOOST_SIGNAL<void(const core::FilePath&, const core::FilePath&,
703 + const core::json::Value& metadata, unsigned ordinal)>
704 + onPlotOutput;
705 +- boost::signal<void(const core::FilePath&, const core::FilePath&,
706 ++ RSTUDIO_BOOST_SIGNAL<void(const core::FilePath&, const core::FilePath&,
707 + const core::json::Value& metadata)> onHtmlOutput;
708 +- boost::signal<void(const core::json::Object&)> onErrorOutput;
709 +- boost::signal<void(const core::FilePath&, const core::FilePath&,
710 ++ RSTUDIO_BOOST_SIGNAL<void(const core::json::Object&)> onErrorOutput;
711 ++ RSTUDIO_BOOST_SIGNAL<void(const core::FilePath&, const core::FilePath&,
712 + const core::json::Value& metadata)> onDataOutput;
713 +- boost::signal<void(Condition condition, const std::string& message)>
714 ++ RSTUDIO_BOOST_SIGNAL<void(Condition condition, const std::string& message)>
715 + onCondition;
716 + };
717 +
718
719 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
720 new file mode 100644
721 index 00000000000..961723fd224
722 --- /dev/null
723 +++ b/sci-mathematics/rstudio/files/rstudio-1.1.463-boost-1.69.0_p2.patch
724 @@ -0,0 +1,167 @@
725 +--- rstudio-1.1.463-orig/src/cpp/CMakeLists.txt 2018-11-17 21:24:35.285976284 +1100
726 ++++ rstudio-1.1.463/src/cpp/CMakeLists.txt 2018-11-17 21:41:02.712507842 +1100
727 +@@ -175,6 +175,9 @@
728 + set(Boost_USE_STATIC_LIBS ON)
729 + set(BOOST_INCLUDEDIR ${RSTUDIO_TOOLS_BOOST}/include)
730 + find_package(Boost ${BOOST_VERSION} REQUIRED)
731 ++ if(NOT Boost_VERSION VERSION_LESS 1.69.0)
732 ++ list(REMOVE_ITEM BOOST_LIBS signals)
733 ++ endif()
734 +
735 + # define library list manually (find_package doesn't always pick them up)
736 + set(BOOST_LIB_DIR ${RSTUDIO_TOOLS_BOOST}/lib)
737 +@@ -184,11 +187,15 @@
738 + message(STATUS "Using RStudio-provided Boost ${BOOST_VERSION}")
739 + else()
740 + add_definitions(-DRSTUDIO_BOOST_NAMESPACE=boost)
741 ++ find_package(Boost ${BOOST_VERSION} REQUIRED)
742 ++ if(NOT Boost_VERSION VERSION_LESS 1.69.0)
743 ++ list(REMOVE_ITEM BOOST_LIBS signals)
744 ++ endif()
745 + find_package(Boost ${BOOST_VERSION} REQUIRED COMPONENTS ${BOOST_LIBS})
746 + message(STATUS "Using system Boost ${BOOST_VERSION}")
747 + endif()
748 +
749 +- # WIN32 BOOST
750 ++# WIN32 BOOST
751 + else()
752 + # hard-code to our own prebuilt boost libs
753 + add_definitions(-DRSTUDIO_BOOST_NAMESPACE=rstudio_boost)
754 +@@ -211,14 +218,14 @@
755 + # allow opt-in to using Boost.Signals2
756 + # TODO: remove this in RStudio v1.3 and port to signals2
757 + if(NOT RSTUDIO_BOOST_SIGNALS_VERSION)
758 +- if (BOOST_VERSION VERSION_LESS 1.69.0)
759 ++ if (Boost_VERSION VERSION_LESS 1.69.0)
760 + set(RSTUDIO_BOOST_SIGNALS_VERSION 1)
761 + else()
762 + set(RSTUDIO_BOOST_SIGNALS_VERSION 2)
763 + endif()
764 + endif()
765 +
766 +-message(STATUS "Using Booost.Signals version ${RSTUDIO_BOOST_SIGNALS_VERSION}")
767 ++message(STATUS "Using Boost.Signals version ${RSTUDIO_BOOST_SIGNALS_VERSION}")
768 + add_definitions(-DRSTUDIO_BOOST_SIGNALS_VERSION=${RSTUDIO_BOOST_SIGNALS_VERSION})
769 +
770 + # add boost as system include directory
771 +--- rstudio-1.1.463-orig/src/cpp/core/include/core/r_util/RFunctionInformation.hpp 2018-10-25 09:42:55.000000000 +1100
772 ++++ rstudio-1.1.463/src/cpp/core/include/core/r_util/RFunctionInformation.hpp 2018-11-17 21:41:02.713507852 +1100
773 +@@ -75,9 +75,9 @@
774 + const std::string& name() const { return name_; }
775 + const boost::optional<std::string>& defaultValue() const { return defaultValue_; }
776 + boost::tribool hasDefault() const { return hasDefault_; }
777 +- bool isUsed() const { return isUsed_; }
778 ++ bool isUsed() const { return bool(isUsed_); }
779 + void setIsUsed(bool value) { isUsed_ = value; }
780 +- bool isMissingnessHandled() const { return isMissingnessHandled_; }
781 ++ bool isMissingnessHandled() const { return bool(isMissingnessHandled_); }
782 + void setMissingnessHandled(bool value) { isMissingnessHandled_ = value; }
783 +
784 + private:
785 +@@ -130,7 +130,7 @@
786 +
787 + bool isPrimitive()
788 + {
789 +- return isPrimitive_ == true;
790 ++ return bool(isPrimitive_);
791 + }
792 +
793 + void setIsPrimitive(bool isPrimitive)
794 +--- rstudio-1.1.463-orig/src/cpp/session/modules/SessionRParser.cpp 2018-10-25 09:42:55.000000000 +1100
795 ++++ rstudio-1.1.463/src/cpp/session/modules/SessionRParser.cpp 2018-11-17 21:41:02.714507862 +1100
796 +@@ -390,7 +390,7 @@
797 + if (!failed)
798 + {
799 + DEBUG("--- Found function in pkgInfo index: " << *fnInfo.binding());
800 +- return fnInfo.performsNse();
801 ++ return bool(fnInfo.performsNse());
802 + }
803 +
804 + // Handle some special cases first.
805 +--- rstudio-1.1.463-orig/src/tools/clang-ubsan-build 2018-10-25 09:42:55.000000000 +1100
806 ++++ rstudio-1.1.463/src/tools/clang-ubsan-build 2018-11-17 21:41:02.714507862 +1100
807 +@@ -10,19 +10,19 @@
808 +
809 + : ${RSTUDIO_USE_LIBCXX="Yes"}
810 + : ${RSTUDIO_USE_SYSTEM_BOOST="Yes"}
811 +-: ${RSTUDIO_BOOST_VERSION="1.56.0"}
812 ++: ${RSTUDIO_BOOST_REQUESTED_VERSION="1.56.0"}
813 +
814 + mkdir -p "${BUILD_DIR}"
815 + cd "${BUILD_DIR}"
816 +-cmake ../cpp \
817 +- -DLIBR_HOME="${R_HOME}" \
818 +- -DCMAKE_C_COMPILER="${CC}" \
819 +- -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
820 +- -DCMAKE_CXX_COMPILER="${CXX}" \
821 +- -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
822 +- -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
823 +- -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
824 +- -DRSTUDIO_BOOST_VERSION="${RSTUDIO_BOOST_VERSION}" \
825 ++cmake ../cpp \
826 ++ -DLIBR_HOME="${R_HOME}" \
827 ++ -DCMAKE_C_COMPILER="${CC}" \
828 ++ -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
829 ++ -DCMAKE_CXX_COMPILER="${CXX}" \
830 ++ -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
831 ++ -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
832 ++ -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
833 ++ -DRSTUDIO_BOOST_REQUESTED_VERSION="${RSTUDIO_BOOST_REQUESTED_VERSION}" \
834 + "$@"
835 + cd ..
836 +
837 +--- rstudio-1.1.463-orig/src/tools/gcc-ubsan-build 2018-10-25 09:42:55.000000000 +1100
838 ++++ rstudio-1.1.463/src/tools/gcc-ubsan-build 2018-11-17 21:41:02.715507871 +1100
839 +@@ -19,19 +19,19 @@
840 + # NOTE: Boost 1.50.0 not compatible with gcc-6
841 + : ${RSTUDIO_USE_LIBCXX="No"}
842 + : ${RSTUDIO_USE_SYSTEM_BOOST="Yes"}
843 +-: ${RSTUDIO_BOOST_VERSION="1.54.0"}
844 ++: ${RSTUDIO_BOOST_REQUESTED_VERSION="1.54.0"}
845 +
846 + mkdir -p "${BUILD_DIR}"
847 + cd "${BUILD_DIR}"
848 +-cmake ../cpp \
849 +- -DLIBR_HOME="${R_HOME}" \
850 +- -DCMAKE_C_COMPILER="${CC}" \
851 +- -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
852 +- -DCMAKE_CXX_COMPILER="${CXX}" \
853 +- -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
854 +- -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
855 +- -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
856 +- -DRSTUDIO_BOOST_VERSION="${RSTUDIO_BOOST_VERSION}" \
857 ++cmake ../cpp \
858 ++ -DLIBR_HOME="${R_HOME}" \
859 ++ -DCMAKE_C_COMPILER="${CC}" \
860 ++ -DCMAKE_C_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
861 ++ -DCMAKE_CXX_COMPILER="${CXX}" \
862 ++ -DCMAKE_CXX_FLAGS="${ASANFLAGS} ${LDFLAGS}" \
863 ++ -DRSTUDIO_USE_LIBCXX="${RSTUDIO_USE_LIBCXX}" \
864 ++ -DRSTUDIO_USE_SYSTEM_BOOST="${RSTUDIO_USE_SYSTEM_BOOST}" \
865 ++ -DRSTUDIO_BOOST_REQUESTED_VERSION="${RSTUDIO_BOOST_REQUESTED_VERSION}" \
866 + "$@"
867 + cd ..
868 +
869 +--- rstudio-1.1.463-orig/src/tools/xcode-ubsan-build 2018-10-25 09:42:55.000000000 +1100
870 ++++ rstudio-1.1.463/src/tools/xcode-ubsan-build 2018-11-17 21:41:02.715507871 +1100
871 +@@ -15,13 +15,13 @@
872 + # sanitizers released with newer versions of clang)
873 + mkdir -p "${BUILD_DIR}"
874 + cd "${BUILD_DIR}"
875 +-cmake ../cpp -GXcode \
876 +- -DLIBR_HOME="${R_HOME}" \
877 +- -DLIBR_INCLUDE_DIRS="${R_INCL}" \
878 +- -DLIBR_DOC_DIR="${R_DOCS}" \
879 +- -DRSTUDIO_USE_LIBCXX="Yes" \
880 +- -DRSTUDIO_USE_SYSTEM_BOOST="Yes" \
881 +- -DRSTUDIO_BOOST_VERSION="1.56.0" \
882 ++cmake ../cpp -GXcode \
883 ++ -DLIBR_HOME="${R_HOME}" \
884 ++ -DLIBR_INCLUDE_DIRS="${R_INCL}" \
885 ++ -DLIBR_DOC_DIR="${R_DOCS}" \
886 ++ -DRSTUDIO_USE_LIBCXX="Yes" \
887 ++ -DRSTUDIO_USE_SYSTEM_BOOST="Yes" \
888 ++ -DRSTUDIO_BOOST_REQUESTED_VERSION="1.56.0" \
889 + "$@"
890 + cmake ../cpp -DLIBR_LIBRARIES="${R_LIBS}/libR.dylib"
891 + cd ..
892
893 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
894 new file mode 100644
895 index 00000000000..914cd942e8f
896 --- /dev/null
897 +++ b/sci-mathematics/rstudio/files/rstudio-1.1.463-fix-ptr-int-compare.patch
898 @@ -0,0 +1,13 @@
899 +--- rstudio-1.1.463-orig/src/cpp/server/ServerSecureKeyFile.cpp 2018-10-25 09:42:55.000000000 +1100
900 ++++ rstudio-1.1.463/src/cpp/server/ServerSecureKeyFile.cpp 2018-11-17 22:17:18.110012955 +1100
901 +@@ -79,8 +79,8 @@
902 + return error;
903 +
904 + // change mode it so it is only readable and writeable by this user
905 +- if (changeFileMode(secureKeyPath,
906 +- core::system::UserReadWriteMode) < 0)
907 ++ if (!!changeFileMode(secureKeyPath,
908 ++ core::system::UserReadWriteMode))
909 + {
910 + return systemError(errno, ERROR_LOCATION);
911 + }
912
913 diff --git a/sci-mathematics/rstudio/rstudio-1.1.463.ebuild b/sci-mathematics/rstudio/rstudio-1.1.463.ebuild
914 new file mode 100644
915 index 00000000000..f2d6cf5a20f
916 --- /dev/null
917 +++ b/sci-mathematics/rstudio/rstudio-1.1.463.ebuild
918 @@ -0,0 +1,253 @@
919 +# Copyright 1999-2018 Gentoo Authors
920 +# Distributed under the terms of the GNU General Public License v2
921 +
922 +EAPI=6
923 +
924 +inherit eutils user cmake-utils gnome2-utils pam versionator xdg-utils java-pkg-2 pax-utils qmake-utils
925 +
926 +# TODO
927 +# * package gin and gwt
928 +# * use dict from tree, linguas
929 +# * do src_test (use junit from tree?)
930 +
931 +# update from scripts in dependencies/common
932 +# egrep '(GWT_SDK_VER=|GIN_VER=|SELENIUM_VER=|CHROMEDRIVER_VER=)' dependencies/common/install-gwt
933 +GWT_VER=2.7.0
934 +GIN_VER=1.5
935 +SELENIUM_VER=2.37.0
936 +CHROMEDRIVER_VER=2.7
937 +# grep 'PANDOC_VERSION=' dependencies/common/install-pandoc
938 +PANDOC_VER=1.19.2.1
939 +# ls dependencies/common/*.tar.gz
940 +PACKRAT_VER=0.98.1000
941 +RMARKDOWN_VER=0.98.1000
942 +SHINYAPPS_VER=0.98.1000
943 +RSCONNECT_VER=0.4.1.4_fcac892a69817febd7b655b189bf57193260cda0
944 +
945 +DESCRIPTION="IDE for the R language"
946 +HOMEPAGE="
947 + http://www.rstudio.org
948 + https://github.com/rstudio/rstudio/"
949 +SRC_URI="
950 + https://github.com/rstudio/rstudio/archive/v${PV}.tar.gz -> ${P}.tar.gz
951 + https://s3.amazonaws.com/rstudio-buildtools/gin-${GIN_VER}.zip
952 + https://s3.amazonaws.com/rstudio-buildtools/gwt-${GWT_VER}.zip
953 + https://s3.amazonaws.com/rstudio-buildtools/selenium-java-${SELENIUM_VER}.zip
954 + https://s3.amazonaws.com/rstudio-buildtools/selenium-server-standalone-${SELENIUM_VER}.jar
955 + https://s3.amazonaws.com/rstudio-buildtools/chromedriver-linux
956 + https://s3.amazonaws.com/rstudio-dictionaries/core-dictionaries.zip
957 + https://dev.gentoo.org/~gienah/distfiles/packrat-${PACKRAT_VER}.tar.gz
958 + https://dev.gentoo.org/~gienah/distfiles/rmarkdown-${RMARKDOWN_VER}.tar.gz
959 + https://dev.gentoo.org/~gienah/distfiles/shinyapps-${SHINYAPPS_VER}.tar.gz
960 + https://dev.gentoo.org/~gienah/distfiles/rsconnect_${RSCONNECT_VER}.tar.gz
961 +"
962 +
963 +LICENSE="AGPL-3"
964 +SLOT="0"
965 +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
966 +IUSE="dedicated libressl server"
967 +
968 +QT_VER=5.4
969 +QT_SLOT=5
970 +RDEPEND="
971 + >=app-text/pandoc-${PANDOC_VER}
972 + dev-haskell/pandoc-citeproc
973 + >=dev-lang/R-2.11.1
974 + >=dev-libs/boost-1.63:=
975 + >=dev-libs/mathjax-2.7.4
976 + sys-apps/util-linux
977 + >=sys-devel/clang-3.5.0:*
978 + sys-libs/zlib
979 + >=virtual/jre-1.8:=
980 + x11-libs/pango
981 + !dedicated? (
982 + >=dev-qt/qtcore-${QT_VER}:${QT_SLOT}
983 + >=dev-qt/qtdeclarative-${QT_VER}:${QT_SLOT}
984 + >=dev-qt/qtdbus-${QT_VER}:${QT_SLOT}
985 + >=dev-qt/qtgui-${QT_VER}:${QT_SLOT}
986 + >=dev-qt/qtnetwork-${QT_VER}:${QT_SLOT}
987 + >=dev-qt/qtopengl-${QT_VER}:${QT_SLOT}
988 + >=dev-qt/qtpositioning-${QT_VER}:${QT_SLOT}
989 + >=dev-qt/qtprintsupport-${QT_VER}:${QT_SLOT}
990 + >=dev-qt/qtsingleapplication-2.6.1_p20150629[X,qt5(+)]
991 + >=dev-qt/qtsensors-${QT_VER}:${QT_SLOT}
992 + >=dev-qt/qtsql-${QT_VER}:${QT_SLOT}
993 + >=dev-qt/qtsvg-${QT_VER}:${QT_SLOT}
994 + >=dev-qt/qtwebchannel-${QT_VER}:${QT_SLOT}
995 + >=dev-qt/qtwebkit-${QT_VER}:${QT_SLOT}
996 + >=dev-qt/qtwidgets-${QT_VER}:${QT_SLOT}
997 + >=dev-qt/qtxml-${QT_VER}:${QT_SLOT}
998 + >=dev-qt/qtxmlpatterns-${QT_VER}:${QT_SLOT}
999 + server? ( virtual/pam )
1000 + )
1001 + dedicated? ( virtual/pam )
1002 + !libressl? ( dev-libs/openssl:0 )
1003 + libressl? ( dev-libs/libressl:0 )"
1004 +DEPEND="${RDEPEND}
1005 + app-arch/unzip
1006 + dev-java/ant-core
1007 + >=virtual/jdk-1.8:=
1008 + virtual/pkgconfig"
1009 +# test? ( dev-java/junit:4 )
1010 +
1011 +PATCHES=(
1012 + "${FILESDIR}/${PN}-0.99.879-prefs.patch"
1013 + "${FILESDIR}/${PN}-1.0.44-paths.patch"
1014 + "${FILESDIR}/${PN}-1.1.357-clang-pandoc.patch"
1015 + "${FILESDIR}/${PN}-0.98.490-linker_flags.patch"
1016 + "${FILESDIR}/${PN}-0.99.473-qtsingleapplication.patch"
1017 + "${FILESDIR}/${PN}-1.0.44-systemd.patch"
1018 + "${FILESDIR}/${PN}-1.1.453-boost-1.67.0.patch"
1019 + "${FILESDIR}/${PN}-1.1.453-core.patch"
1020 + "${FILESDIR}/${PN}-1.1.463-boost-1.69.0_p1.patch"
1021 + "${FILESDIR}/${PN}-1.1.463-boost-1.69.0_p2.patch"
1022 + "${FILESDIR}/${PN}-1.1.463-fix-ptr-int-compare.patch"
1023 +)
1024 +
1025 +src_unpack() {
1026 + unpack ${P}.tar.gz gwt-${GWT_VER}.zip
1027 + cd "${S}" || die
1028 + mkdir -p src/gwt/lib/{gin,gwt} \
1029 + dependencies/common/dictionaries \
1030 + src/gwt/lib/selenium/${SELENIUM_VER} \
1031 + src/gwt/lib/selenium/chromedriver/${CHROMEDRIVER_VER} || die
1032 + mv ../gwt-${GWT_VER} src/gwt/lib/gwt/${GWT_VER} || die
1033 + unzip -qd src/gwt/lib/gin/${GIN_VER} \
1034 + "${DISTDIR}"/gin-${GIN_VER}.zip || die
1035 + unzip -qd dependencies/common/dictionaries \
1036 + "${DISTDIR}"/core-dictionaries.zip || die
1037 + unzip -qd src/gwt/lib/selenium/${SELENIUM_VER} \
1038 + "${DISTDIR}"/selenium-java-${SELENIUM_VER}.zip || die
1039 + cp "${DISTDIR}"/selenium-server-standalone-${SELENIUM_VER}.jar \
1040 + src/gwt/lib/selenium/${SELENIUM_VER}/ || die
1041 + cp "${DISTDIR}"/chromedriver-linux \
1042 + src/gwt/lib/selenium/chromedriver/${CHROMEDRIVER_VER}/ || die
1043 + cd dependencies/common || die
1044 + unpack packrat-${PACKRAT_VER}.tar.gz
1045 + unpack rmarkdown-${RMARKDOWN_VER}.tar.gz
1046 + unpack shinyapps-${SHINYAPPS_VER}.tar.gz
1047 + unpack rsconnect_${RSCONNECT_VER}.tar.gz
1048 + cp "${DISTDIR}"/rmarkdown-${RMARKDOWN_VER}.tar.gz \
1049 + . || die
1050 + cp "${DISTDIR}"/packrat-${PACKRAT_VER}.tar.gz \
1051 + . || die
1052 + cp "${DISTDIR}"/shinyapps-${SHINYAPPS_VER}.tar.gz \
1053 + . || die
1054 + cp "${DISTDIR}"/rsconnect_${RSCONNECT_VER}.tar.gz \
1055 + . || die
1056 +}
1057 +
1058 +src_prepare() {
1059 + cmake-utils_src_prepare
1060 + java-pkg-2_src_prepare
1061 + egit_clean
1062 +
1063 + # Enable CMake to install our .service file for systemd usage
1064 + mkdir -vp "${S}/src/cpp/server/lib/systemd/system" || die
1065 + cp -v "${FILESDIR}/rstudio-server.service.in" "${S}/src/cpp/server/lib/systemd/system/" || die
1066 +
1067 + # Adding -DDISTRO_SHARE=... to append-flags breaks cmake so using
1068 + # this sed hack for now. ~RMH
1069 + sed -i \
1070 + -e "s|DISTRO_SHARE|\"share/${PN}\"|g" \
1071 + src/cpp/server/ServerOptions.cpp \
1072 + src/cpp/session/SessionOptions.cpp || die
1073 +
1074 + # use mathjax from system
1075 + ln -sf "${EPREFIX}"/usr/share/mathjax dependencies/common/mathjax-26 || die
1076 +
1077 + # make sure icons and mime stuff are with prefix
1078 + sed -i \
1079 + -e "s:/usr:${EPREFIX}/usr:g" \
1080 + CMakeGlobals.txt src/cpp/desktop/CMakeLists.txt || die
1081 +
1082 + # On Gentoo the rstudio-server configuration file is /etc/conf.d/rstudio-server.conf
1083 + sed -e "s@/etc/rstudio/rserver.conf@${EROOT}etc/conf.d/rstudio-server.conf@" \
1084 + -i src/cpp/server/ServerOptions.cpp \
1085 + || die
1086 +
1087 + # Set the rsession.conf file location for Gentoo prefix
1088 + sed -e "s@/etc/rstudio/rsession.conf@${EROOT}etc/rstudio/rsession.conf@" \
1089 + -i src/cpp/session/SessionOptions.cpp \
1090 + || die
1091 +
1092 + # dev-qt/qtsingleapplication-2.6.1_p20150629 does not provide a cmake module.
1093 + # It provides a library that has its version number appended to the end,
1094 + # which is difficult to handle in cmake, as find_library does not support
1095 + # searching for wildcard library names. So I find the library name from the
1096 + # qmake spec, and then sed this into the patched src/cpp/desktop/CMakeLists.txt.
1097 + rm -rf "${S}"/src/cpp/desktop/3rdparty || die
1098 + local s=$(grep '\-lQt$${QT_MAJOR_VERSION}Solutions_SingleApplication' \
1099 + $(qt5_get_mkspecsdir)/features/qtsingleapplication.prf \
1100 + | sed -e 's@\$\${QT_MAJOR_VERSION}@5@' \
1101 + -e 's@LIBS \*= -l@@')
1102 + sed -e "s@Qt5Solutions_SingleApplication-2.6@${s}@g" \
1103 + -i "${S}"/src/cpp/desktop/CMakeLists.txt \
1104 + || die
1105 +
1106 + # The git commit for tag: git rev-list -n 1 v${PV}
1107 + sed -e 's@git ARGS rev-parse HEAD@echo ARGS 6871a99b32add885fe6fa3d50fe15f62346142e7@'\
1108 + -i "${S}"/CMakeLists.txt \
1109 + "${S}"/CMakeGlobals.txt \
1110 + || die
1111 +}
1112 +
1113 +src_configure() {
1114 + export RSTUDIO_VERSION_MAJOR=$(get_version_component_range 1)
1115 + export RSTUDIO_VERSION_MINOR=$(get_version_component_range 2)
1116 + export RSTUDIO_VERSION_PATCH=$(get_version_component_range 3)
1117 +
1118 + local mycmakeargs=(
1119 + -DDISTRO_SHARE=share/${PN}
1120 + -DRSTUDIO_INSTALL_FREEDESKTOP="$(usex !dedicated "ON" "OFF")"
1121 + -DRSTUDIO_TARGET=$(usex dedicated "Server" "$(usex server "Development" "Desktop")")
1122 + -DQT_QMAKE_EXECUTABLE=$(qt5_get_bindir)/qmake
1123 + -DRSTUDIO_VERIFY_R_VERSION=FALSE
1124 + )
1125 +
1126 + cmake-utils_src_configure
1127 +}
1128 +
1129 +src_compile() {
1130 + # Avoid the rest of the oracle-jdk-bin-1.8.0.60 sandbox violations F: mkdir S: deny
1131 + # P: /root/.oracle_jre_usage.
1132 + export ANT_OPTS="-Duser.home=${T}"
1133 + cmake-utils_src_compile
1134 +}
1135 +
1136 +src_install() {
1137 + export ANT_OPTS="-Duser.home=${T}"
1138 + cmake-utils_src_install
1139 + pax-mark m "${ED}usr/bin/rstudio"
1140 + doconfd "${FILESDIR}"/rstudio-server.conf
1141 + dodir /etc/rstudio
1142 + insinto /etc/rstudio
1143 + doins "${FILESDIR}"/rsession.conf
1144 + dosym "${ROOT}etc/conf.d/rstudio-server.conf" "${ROOT}etc/rstudio/rserver.conf"
1145 + if use dedicated || use server; then
1146 + dopamd src/cpp/server/extras/pam/rstudio
1147 + newinitd "${FILESDIR}"/rstudio-server.initd rstudio-server
1148 + fi
1149 +}
1150 +
1151 +pkg_preinst() {
1152 + use dedicated || gnome2_icon_savelist
1153 + java-pkg-2_pkg_preinst
1154 +}
1155 +
1156 +pkg_postinst() {
1157 + use dedicated || { xdg_desktop_database_update
1158 + xdg_mimeinfo_database_update
1159 + gnome2_icon_cache_update ;}
1160 +
1161 + if use dedicated || use server; then
1162 + enewgroup rstudio-server
1163 + enewuser rstudio-server -1 -1 -1 rstudio-server
1164 + fi
1165 +}
1166 +
1167 +pkg_postrm() {
1168 + use dedicated || { xdg_desktop_database_update
1169 + xdg_mimeinfo_database_update
1170 + gnome2_icon_cache_update ;}
1171 +}