Commit Graph

39100 Commits (e2ca890898ecb79ff314b1f748bb6a3a9dbf602b)

Author SHA1 Message Date
Nat Goodspeed e2ca890898 DRTVWR-447: Copy VIEWER_EXE to local variable (thanks Ansariel) 2018-10-30 10:36:28 -04: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 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 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 f55d3071e1 DRTVWR-447: Restore copying BugsplatMac.framework into Mac package. 2018-10-22 14:21:35 -04: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
Nat Goodspeed 72c0845a24 DRTVWR-447: Update to bugsplat build 520674 2018-10-16 11:29:32 -04:00
Nat Goodspeed 3abc0095c9 DRTVWR-474: Update to viewer-manager build 520576 2018-10-12 14:08:59 -04:00
Nat Goodspeed f960db28b7 DRTVWR-474: Update to viewer-manager build 520566 2018-10-11 20:52:01 -04:00
Oz Linden d87cc1859f Modify logging so that the in-viewer console and stderr do not escape line breaks
Improve the implementation so that escaping is computed only once
2018-10-11 14:17:52 -04:00
Nat Goodspeed a11230f87a DRTVWR-474: Update to viewer-manager build 520325 2018-10-05 15:29:08 -04:00
Nat Goodspeed a3e569c90d DRTVWR-474: Add OptionaUpdateReady, PromptOptionalUpdate notifications. 2018-10-05 14:38:25 -04:00
Nat Goodspeed 73e70ff0bb DRTVWR-474: Make "LLNotifications" "requestAdd" propagate "reqid"
from request to response to help with request/response matching protocol.
2018-10-04 17:18:08 -04:00
Nat Goodspeed 05068186c3 DRTVWR-474: Make login coroutine sync with updater process on failure.
Specifically, introduce an LLEventMailDrop("LoginSync"). When the updater
detects that an update is required, it will post to that rendezvous point.

When login.cgi responds with login failure, make the login coroutine wait (a
few seconds) for that ping from the updater.

If we receive that ping and if it contains a "reply" key, make the fail.login
listener respond to the updater with an indication of whether to proceed with
update.

If both login.cgi and the updater concur that an update is required, produce a
new confirmation message for the user and then (once user responds) tell the
updater to proceed. Otherwise, produce the usual login-failure message and
tell the updater never mind.

Introduce LLCoro::OverrideConsuming to provide temporary save/restore of the
set_consuming() / get_consuming() flag. It's a good idea to set the consuming
flag when retrieving data from an LLEventMailDrop.
2018-10-04 16:35:38 -04:00
Nat Goodspeed b1955d4247 DRTVWR-474: Do NOT autokill updater process on viewer termination.
The updater is required to survive beyond termination of the viewer that
launched it so it can launch the next installer, or a replacement viewer.
Having the old viewer forcibly terminate it on shutdown would be counter-
productive.

Introduce a third LLLeap::create() overload taking LLProcess::Params, which
gives access to autokill, cwd and other options previously unsupported by
LLLeap. Reimplement the existing create() overloads in terms of this new one,
since LLLeapImpl::LLLeapImpl() is already based on LLProcess::Params anyway.

Use LLProcess::Params in LLAppViewer::init() to specify the updater process,
setting autokill=false.

Refactoring LLLeapImpl() apparently involved engaging an LLInitParam::Block
feature never before used: had to drag operator() into Multiple from its base
class TypedParam (as has been done in other TypedParam subclasses).
2018-10-03 14:00:05 -04:00
Nat Goodspeed 6e1b2e137e DRTVWR-474: Make SkipBenchmark a Persistent setting 2018-09-28 17:16:49 -04:00
Nat Goodspeed b6e58b3b3a DRTVWR-474: Update to viewer-manager build 520110 2018-09-28 17:16:14 -04:00
Nat Goodspeed 182a091ad9 DRTVWR-474: Pass the leap updater the parameters it requires. 2018-09-27 17:41:26 -04:00
Nat Goodspeed 371a412a28 DRTVWR-474: Update to viewer-manager build 520085 2018-09-27 17:40:10 -04:00
Nat Goodspeed ec6487f3a7 DRTVWR-474: Make LLEventMailDrop pass all saved events to listener.
Previously, LLEventMailDrop would send only the first queued event to a
newly-connected listener. If you wanted to flush all queued events, you'd have
to "pump" the queue by repeatedly disconnecting and reconnecting -- with no
good way to know when you'd caught up.

The new behavior makes LLEventMailDrop resemble a multi-valued future: a
rendezvous between producer and consumer that, once connected, pushes values
rather than requiring them to be pulled (as with a simple queue) -- regardless
of the relative order in which post() and listen() are called.
2018-09-27 14:57:03 -04:00
Nat Goodspeed e1826d508c DRTVWR-474: Update to viewer-manager build 520047 2018-09-26 20:45:03 -04:00
Nat Goodspeed 0497b8a537 DRTVWR-447: Update to viewer-manager build 520046 2018-09-26 20:43:37 -04:00
Nat Goodspeed fc8b4ec587 DRTVWR-447: Finish pulling in new viewer-release. 2018-09-26 16:50:58 -04:00
Nat Goodspeed 1e8851c4df Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2018-09-26 16:39:16 -04:00
Nat Goodspeed 267e7d7554 DRTVWR-474: Finish pulling in new viewer-release. 2018-09-26 16:37:14 -04:00
Nat Goodspeed 82bdb300fe Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2018-09-26 16:32:15 -04:00
Nat Goodspeed 58aef8beaf increment viewer version to 5.1.10 2018-09-26 16:12:20 -04:00
Nat Goodspeed e213eafca9 Added tag 5.1.9-release for changeset 52422540bfe5 2018-09-26 16:12:19 -04:00
Nat Goodspeed ceb35372b5 Automated merge with https://bitbucket.org/oz_linden/viewer-release-cmake3.12 2018-09-25 13:35:45 -04:00
Nat Goodspeed cc376f86e8 DRTVWR-474: Update to viewer-manager build 519951 2018-09-25 11:21:34 -04:00
Nat Goodspeed 8761e87ac5 DRTVWR-474: Remove Python autobuild packages and references to them.
We expect the viewer-manager package to be self-contained: we expect it to
bring with it any Python packages it requires. We no longer force developers
to wrap third-party Python packages as autobuild packages.
2018-09-24 14:02:23 -04:00