Commit Graph

40429 Commits (bd008a170898e69beeb8bc0481b4bfd94de86c55)

Author SHA1 Message Date
Nat Goodspeed a186f9a729 DRTVWR-447: Allow Standard Windows user to install for current user.
This should eliminate any confusion due to a Standard user needing to elevate
to Admin privileges, since from that point on Windows tells the running
program the current user is that Admin. Bypass all that.
2018-11-01 22:08:44 -04:00
ruslantproductengine f3a42d070e SL-9984 - [Retina] Camera frustum, do not display correctly on "WORLD MAP" window. 2018-10-31 18:11:00 +02:00
Nat Goodspeed e2ca890898 DRTVWR-447: Copy VIEWER_EXE to local variable (thanks Ansariel) 2018-10-30 10:36:28 -04:00
Mnikolenko ProductEngine 6e94df418a SL-9955 FIXED crash-on-exit in LLVivoxVoiceClient::removeObserver 2018-10-30 16:36:23 +02:00
Nat Goodspeed a5f492acf1 SL-9980: Launch the first-run updater via explorer.exe as we used to
run the viewer from the installer.

Turns out that the peculiar indirection through explorer.exe was a known trick
for an elevated-privileges program to launch a program as the logged-in
Windows user. (They could have commented that...)

But explorer.exe doesn't pass command-line parameters, so if you want to pass
any such to the actual target program, you have to launch a shortcut with
those parameters.

But this target program (the updater) and its parameters (precheck mumble) are
specific to the very first viewer run after installation, so delete it after.
Having an additional permanent icon that always runs the updater before the
viewer would only confuse matters.
2018-10-29 17:17:26 -04:00
Nat Goodspeed 810cebe967 SL-9964: Put Mac cursors back into Resources/cursors_mac subdirectory. 2018-10-29 15:36:43 -04:00
Nat Goodspeed dcc2bbbd30 DRTVWR-476: pthread_self() also needs CRYPTO_THREADID_set_pointer() 2018-10-28 22:30:42 -04:00
Nat Goodspeed 0ca69bb2eb DRTVWR-447: Stop passing UpdaterServiceURL to leap updater.
In fact, mark UpdaterServiceURL as obsolete. (Consumers should consult
build_data.json.)
2018-10-27 15:24:24 -04:00
Nat Goodspeed 7aec2a7bf1 DRTVWR-447: Update to viewer-manager build 521170 2018-10-27 12:04:57 -04:00
Nat Goodspeed 6240677945 DRTVWR-447: Update to viewer-manager build 521169 2018-10-27 11:37:57 -04:00
Nat Goodspeed 9b5b44314a DRTVWR-447: For some reason the Windows viewer exe wasn't signed.
viewer_manifest.py was signing updater.exe within the package, and then
signing the installer executable itself, but not the actual viewer executable.
Add that.
2018-10-26 14:55:13 -04:00
Nat Goodspeed 3766f35a2a DRTVWR-476: Eliminate std::mem_fun1() special case for Windows.
We used to have to use #if LL_WINDOWS logic to pass std::mem_fun1() to
llbind2nd() instead of std::mem_fun() elsewhere. VS 2017 no longer supports
std::mem_fun1(), which means we can eliminate the special case for Windows.
2018-10-25 11:26:39 -04:00
Nat Goodspeed 11788ba7a7 DRTVWR-476: Fix _open_osfhandle() param from long to intptr_t.
The Microsoft _open_osfhandle() opens a HANDLE to produce a C-style int file
descriptor suitable for passing to _fdopen(). We used to cast the HANDLEs
returned by GetStdHandle() to long to pass to _open_osfhandle(). Since HANDLE
is an alias for a pointer, this no longer works.

Fortunately _open_osfhandle() now accepts intptr_t, so we can change the
relevant GetStdHandle() calls. (But why not simply accept HANDLE in the first
place?)
2018-10-25 11:24:06 -04:00
Nat Goodspeed cacc164e7a DRTVWR-476: Fix glVertexAttrib{IPointer,PointerARB}() OpenGL calls.
VS 2017 complains about the same thing that clang does: casting S32 to GLvoid*
can't possibly produce a valid pointer value because S32 can't fit a whole
64-bit pointer. To appease it, not only must we use reinterpret_cast, but we
must first cast S32 to intptr_t and then reinterpret_cast THAT.
2018-10-25 11:17:21 -04:00
Nat Goodspeed 5c1e86dfdf DRTVWR-476: Explicitly cast 64-bit NaN constant to F32 as needed.
VS 2017 was complaining about truncating the value.
2018-10-25 11:11:22 -04:00
Nat Goodspeed fcfc123adb DRTVWR-476: Eliminate unnecessary typedefs from struct, enum decls.
With VS 2017, these produced fatal warnings.
2018-10-25 11:09:57 -04:00
Nat Goodspeed fba4b6ce76 DRTVWR-476: Remove throw(T) from operator new(), operator delete().
llcorehttp's test_allocator.{h,cpp} overrides global operator new(), operator
new[](), operator delete() and operator delete[](). The two operator new()
functions used to be declared with throw(std::bad_alloc). Worse, for VS 2013
and previous, we needed _THROW0() and _THROW1(std::bad_alloc) instead,
requiring #if logic.

But with dynamic throw declarations deprecated, we must actually remove those.
That obviates the THROW_BAD_ALLOC() / THROW_NOTHING() workarounds in
test_allocator.cpp.
2018-10-25 11:07:43 -04:00
Nat Goodspeed 1d11bc3c03 DRTVWR-476: Use OpenSSL API suitable for 64-bit pointers.
In three different places we use the same pattern: an ssl_thread_id_callback()
function (a static member of LLCrashLogger, in that case) that used to be
passed to CRYPTO_set_id_callback() and therefore returned an unsigned long
representing the ID of the current thread.

But GetCurrentThread() is a HANDLE, an alias for a pointer, and you can't
uniquely cram a 64-bit pointer into an unsigned long.

Fortunately OpenSSL has a more modern API for retrieving thread ID. Pass
each ssl_thread_id_callback() function to CRYPTO_THREADID_set_callback()
instead, converting it to accept CRYPTO_THREADID* and call
CRYPTO_THREADID_set_pointer() or CRYPTO_THREADID_set_numeric() as appropriate().
2018-10-25 10:58:12 -04:00
Nat Goodspeed 23fea97db1 DRTVWR-476: Eliminate snprintf_hack::snprintf(). Use MS snprintf().
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/snprintf-snprintf-snprintf-l-snwprintf-snwprintf-l?view=vs-2017
"Beginning with the UCRT in Visual Studio 2015 and Windows 10, snprintf is no
longer identical to _snprintf. The snprintf function behavior is now C99
standard compliant."

In other words, VS 2015 et ff. snprintf() now promises to nul-terminate the
buffer even in the overflow case, which is what snprintf_hack::snprintf() was
for.

This removal was motivated by ambiguous-call errors generated by VS 2017 for
library snprintf() vs. snprintf_hack::snprintf().
2018-10-24 16:26:05 -04:00
maxim_productengine 8c66c73e86 SL-1828 Indicate that "Allow Multiple Viewers" Preference is unsupported 2018-10-24 16:08:55 +03:00
ruslantproductengine eaeb8605d0 SL-9774 [Render] dragging active Second Life session to second monitor zooms in making viewer unusable 2018-10-23 19:24:03 +03:00
Nat Goodspeed 32e30386d8 DRTVWR-447: Try to defeat scary Mac Gatekeeper popups
by replacing the viewer's baked-in BugsplatMac.framework @rpath path with one
based on @executable_path.
2018-10-23 10:52:06 -04:00
Nat Goodspeed 279073dbb3 DRTVWR-447: Introduce LLManifest.process_either().
process_directory() and process_file() are reached both from the top-level
caller (try_path(), a local function within LLManifest.path()) and recursively
from process_directory(). Both places tested os.path.isdir(source), and if so
called process_directory(), else process_file(). Both places were wrong, as it
turns out.

os.path.isdir(symlink_to_directory) returns True. That meant that despite
explicit logic in ccopymumble() to recreate symlinks in the destination area,
we were consistently recopying the contents of symlinked directories.

The downside to this -- in addition to inflating the size of the installer! --
is that macOS is very particular about the structure of a Framework bundle. It
*must* include a Versions/Current symlink identifying which of the other
Versions subdirectories is, in fact, current. If Current is itself a
subdirectory, codesign can't figure out how to sign the framework, and fails.

The logic for deciding between process_directory() and process_file() must
explicitly check for os.path.islink(source). Rather than replicating that
change in both places, introduce process_either() which decides how to forward
the call, and call it both from try_path() and from process_directory().
2018-10-22 19:59:07 -04:00
Nat Goodspeed 0cb4facf96 DRTVWR-476: Update Copy3rdPartyLibs.cmake for VS 2017 version.
Also, on Windows, put build output into
build-vc$AUTOBUILD_VSVER-$AUTOBUILD_ADDRSIZE instead of hard-coding
build-vc120-$AUTOBUILD_ADDRSIZE.
2018-10-22 14:58:23 -04:00
Nat Goodspeed f55d3071e1 DRTVWR-447: Restore copying BugsplatMac.framework into Mac package. 2018-10-22 14:21:35 -04:00
ruslantproductengine 6ce18422de SL-9766 [Render] [Mac] Alt + left mouse click has severely impaired functions 2018-10-19 19:12:08 +03:00
AndreyL ProductEngine d41a84c53d SL-1283 TOS floater - moved buttons down to the floater bottom 2018-10-19 18:16:24 +03:00
Nat Goodspeed c532e3075c DRTVWR-447: Re-inject BugsplatServerURL into Mac's Info.plist. 2018-10-18 15:31:44 -04:00
Nat Goodspeed b4bc7f7c0c DRTVWR-447: Update bugsplat to codeticket version 520791. 2018-10-18 13:55:55 -04:00
Nat Goodspeed fa5350db7b DRTVWR-447: Update to bugsplat build 520784 2018-10-18 11:44:56 -04:00
Nat Goodspeed d86b311b2c DRTVWR-447: Restore MACOSX_EXECUTABLE_NAME, used for Info.plist. 2018-10-17 22:34:58 -04:00
Nat Goodspeed a3ca2c9ac8 DRTVWR-447: Restore diagnostic output to Mac app bundle packaging. 2018-10-17 16:47:05 -04:00
Nat Goodspeed 082ef0c74d DRTVWR-447: Merge Oz's logging changes 2018-10-17 16:45:01 -04:00
Nat Goodspeed cd9d051b90 DRTVWR-447: Move test<5> and writeMsgNeedsEscaping() into sequence. 2018-10-17 16:42:59 -04:00
Nat Goodspeed 2c5d7199f6 DRTVWR-447: Restore channel-name sensitivity of Mac BugSplat viewer. 2018-10-17 13:53:37 -04:00
Nat Goodspeed 3c4d63c6a1 DRTVWR-447: Update to viewer-manager build 520750 2018-10-17 13:04:32 -04:00
Nat Goodspeed 01c6fe141e DRTVWR-447: Update to viewer-manager build 520737 2018-10-17 11:35:01 -04:00
Nat Goodspeed d81863d23d DRTVWR-447: Finish merging Poseidon into BugSplat 2018-10-17 10:56:43 -04:00
Nat Goodspeed 036c52fcdf Automated merge with ssh://bitbucket.org/nat_linden/viewer-poseidon 2018-10-17 10:31:59 -04:00
Nat Goodspeed bffe112cf5 Last rev before Poseidon merge 2018-10-17 10:30:24 -04:00
Nat Goodspeed 9cdcef4d50 DRTVWR-447: Use new attachmentsForBugsplatStartupManager SDK method
to attach user settings file and static debug info file to Mac crash reports,
as well as SecondLife.log, just like Windows crash reports.
2018-10-16 16:53:06 -04:00
Oz Linden 00a839d665 renumber the new test to replace the one that was removed 2018-10-16 16:18:31 -04:00
AndreyL ProductEngine 9fe616c134 SL-9800 Fixed Ctrl+C handling 2018-10-16 19:18:21 +03:00
Nat Goodspeed 72c0845a24 DRTVWR-447: Update to bugsplat build 520674 2018-10-16 11:29:32 -04:00
Brad Payne (Vir Linden) 34770cbf2e SL-9805 - reduce frequency of dynamic box updates to every N frames, staggered. Currently N is 4. 2018-10-15 16:41:47 +01:00
Brad Payne (Vir Linden) 1f09b90a9d SL-9805 - more detailed frame timer logging of dynamic bounding box updates 2018-10-12 21:50:31 +01:00
Nat Goodspeed 3abc0095c9 DRTVWR-474: Update to viewer-manager build 520576 2018-10-12 14:08:59 -04:00
Brad Payne (Vir Linden) 0109a71d1c SL-9857 - suppress constraint adjustments immediately after region crossing 2018-10-12 18:53:49 +01:00
Nat Goodspeed f960db28b7 DRTVWR-474: Update to viewer-manager build 520566 2018-10-11 20:52:01 -04:00
Brad Payne (Vir Linden) b920893fa4 removed unused member variables that make xcode 10 unhappy 2018-10-11 20:43:56 +01:00