Commit Graph

38808 Commits (f1eb3c1b63b97de2a91c967e5c66f7b25c4963a2)

Author SHA1 Message Date
Nat Goodspeed f1eb3c1b63 DRTVWR-447: Temporarily suppress building for BugSplat on Mac. 2018-07-18 20:32:35 -04:00
Nat Goodspeed d8dacc844a DRTVWR-447: Update to bugsplat build 517972 2018-07-18 09:53:09 -04:00
Nat Goodspeed 96ef1b5801 DRTVWR-447: Update to bugsplat build 517942 2018-07-17 17:13:03 -04:00
Nat Goodspeed c11ecfddff DRTVWR-447: Force rebuild with new BUGSPLAT_DB value. 2018-07-17 14:42:35 -04:00
Nat Goodspeed 234ca77f19 DRTVWR-447: Revert BugSplat diagnostic logging; add platform tag. 2018-07-14 08:52:58 -04:00
Nat Goodspeed 93ab8c216d DRTVWR-447: Update to bugsplat build 517820 2018-07-13 16:45:00 -04:00
Nat Goodspeed a77f2e277f DRTVWR-447: Update to bugsplat build 517815 2018-07-13 14:11:53 -04:00
Nat Goodspeed 3888d1862a DRTVWR-447: For want of a 'const', the build was lost. 2018-07-12 16:07:06 -04:00
Nat Goodspeed b883ffaa75 DRTVWR-447: More diagnostic logging for BugSplat metadata strings. 2018-07-12 14:45:14 -04:00
Nat Goodspeed c7616af624 DRTVWR-447: Diagnostically try naively widening BugSplat metadata. 2018-07-11 21:52:03 -04:00
Nat Goodspeed 869d2f1fb2 DRTVWR-447: Fix silly typos 2018-07-11 18:26:27 -04:00
Nat Goodspeed 66d083967e DRTVWR-447: Add more diagnostic logging to Windows BugSplat crash. 2018-07-11 16:01:48 -04:00
Nat Goodspeed 62eecd87a5 SL-932: Attach user's settings.xml file to Windows crash reports.
It is not obvious whether the BugsplatMac attachment API even supports
multiple file attachments. I've contacted BugSplat support.
2018-07-10 17:47:00 -04:00
Nat Goodspeed 07d7e48f41 DRTVWR-447: Use absolute path prefixes for CEF components.
viewer_manifest.py had LLManifest.prefix() calls starting with '..' (or
os.pardir, same thing) which failed with new prefix() calling conventions.
Explicitly starting with os.path.join(self.args['build'], os.pardir, etc.)
where applicable works much better.
2018-07-10 14:01:19 -04:00
Nat Goodspeed 20907dbb72 DRTVWR-447: Update to viewer-manager build 517331 2018-07-01 21:07:44 -04:00
Nat Goodspeed 3e66dc9f19 MAINT-8822: Revert viewer_manifest to using src= instead of build=.
Turns out that having multiple (source, build, artwork) prefix stacks isn't
such a good idea after all. Many of our LLManifest.path() directives use
wildcards -- and if _any files_ match the specified wildcard from a prefix
stack other than what you had in mind, viewer_manifest will silently,
cheerfully do the Wrong Thing.

There is a good reason why all existing LLManifest.prefix() calls exclusively
used src= and/or dst= instead of build=.
2018-06-30 10:08:35 -04:00
Nat Goodspeed bbadee86c1 MAINT-8822: Give LLManifest.prefix() (suppressed) debugging output. 2018-06-30 10:01:11 -04:00
Nat Goodspeed 93ea0d7026 MAINT-8822: Revamp the LLManifest.prefix() calling convention.
The way prefix("path_fragment") or prefix(src="path_fragment") has always
worked is that unless you explicitly specify dst="", it adds "path_fragment"
to the source AND dest prefix stacks!

The most recent refactoring of viewer_manifest.py failed to copy CEF because
it involved prefix(src="../some lengthy path fragment") -- forgetting to
specify dst="" -- which added "../some lengthy path fragment" to the dest
prefix stack -- which put it outside the viewer install staging area
altogether.

Having been bitten too many times by forgetting to add prefix(dst=""), we
remove the necessity. The prefix() src=, build= and dst= prefix stacks are now
completely independent. Add src_dst= keyword argument for when you DO want to
add the same path fragment to both the source and dest prefix stacks.
("Explicit is better than implicit.")

Change all existing calls accordingly.

Now that the build prefix stack no longer tracks the src prefix stack, we were
failing to pick up some things from the build area because NOBODY ever used
build=, relying entirely on src= to point both to stuff in the source tree and
stuff in the build tree. Try to use build= appropriately.

If that proves too confusing, we might eliminate the separate build and
artwork (!) prefix stacks entirely, requiring callers to reset the src stack
explicitly when switching back and forth.
2018-06-29 17:08:48 -04:00
Nat Goodspeed cd52724ef8 DRTVWR-447: Suppress BugSplat UI; auto-fill certain BugSplat data.
Direct BugSplat to send crash reports without prompting, on both Windows and
Mac.

Add a mechanism by which code called after LL_ERRS() can retrieve the fatal
log message string. (How did the crash logger extract that for Linden crash
logging?)

Add that fatal message to crash reports on Windows. But as BugsplatMac is
engaged only on the run _after_ the crash, we no longer have that message in
memory.

Also add user name and region location to Windows crash reports. On Mac, (a)
we don't have the information from the previous run and (b) BugsplatMac
doesn't provide an API to attach that information to the crash report.

Add Mac logging to indicate the success or failure of sending the crash
report. Add Windows logging to indicate we're about to send.
2018-06-28 21:49:07 -04:00
Nat Goodspeed f6e7893a6e MAINT-8797: Resurrect BugSplat crash reporting on Windows.
The Breakpad symbol-file upload in the viewer's build.sh was failing on
BugSplat builds since we weren't generating Breakpad symbol files. That upload
was conditional on RELEASE_CRASH_REPORTING, so my first approach was to set
RELEASE_CRASH_REPORTING=OFF for BugSplat builds. Unfortunately that symbol
also propagates down into C++ compiles, and in llappviewerwin32.cpp, both
Breakpad and BugSplat crash reporting is conditional on it. So that change
inadvertently turned off the C++ logic to engage BugSplat.

Stop forcing RELEASE_CRASH_REPORTING=OFF for BugSplat builds. Instead, make
the Breakpad symbol-file upload check the BUGSPLAT_DB variable as well.

Add #pragma messages to llappviewerwin32.cpp so we can detect whether it's
being built for Breakpad or BugSplat or neither.
2018-06-28 12:39:42 -04:00
Nat Goodspeed e766d9e697 DRTVWR-447: Merge up to latest viewer-release 2018-06-21 13:26:15 -04:00
Nat Goodspeed dc07de2f4a increment viewer version to 5.1.7 2018-06-21 08:54:26 -04:00
Nat Goodspeed 71b199bd14 Added tag 5.1.6-release for changeset 04538b8157c1 2018-06-21 08:54:26 -04:00
Nat Goodspeed d26c931ae2 SL-821: Send the SecondLife.log from the previous (crashed) run.
Also clean up log messages.
2018-06-19 15:08:56 -04:00
Nat Goodspeed 3376b2acfb SL-821: Another Objective-C++ magic incantation from BugSplat support. 2018-06-19 13:34:08 -04:00
Nat Goodspeed c9898f1b69 SL-821: Try again to override BugSplat Obj-C methods. 2018-06-19 09:37:28 -04:00
Nat Goodspeed 6e790fc27d SL-821: Add logging in the macOS BugSplat attachment override. 2018-06-18 16:38:49 -04:00
Nat Goodspeed b889c15cdd SL-821: Fix BugSplat attachment method override per BugSplat support.
The example code on the BugSplat documentation page
https://www.bugsplat.com/docs/platforms/os-x#configuration
omits certain essential Objective-C++ boilerplate incantations. Adding them
at least compiles successfully.
2018-06-18 12:57:12 -04:00
Nat Goodspeed 1d7687efb2 SL-821: Fix up Objective-C++ syntax errors. 2018-06-15 17:58:00 -04:00
Nat Goodspeed 448e82f39c SL-821: Try to add SecondLife.log file to Mac BugSplat crash report.
Introduce new header file llappviewermacosx-for-objc.h to publish for
llappdelegate-objc.mm and other Objective-C++ consumers the free functions in
llappviewermacosx.cpp they consume. These were never before declared in any
header file. Apparently, to date, we've been trusting to luck that
Objective-C++ will infer the correct signature from calls -- and that the
calls are correct with respect to the function definitions.  :-P

This gives us a place to introduce a new getLogFilePathname() function to
query LLDir. (We don't simply #include "lldir.h" because of the pervasive use
of BOOL in viewer headers; BOOL means something very different in Objective-C++.)
2018-06-15 16:48:20 -04:00
Nat Goodspeed f26ba0f0ec SL-820: Make bugsplat.cmake and its symbols conditional. 2018-06-15 11:45:03 -04:00
Nat Goodspeed bb757b937c SL-820: gDirUtilp is never nullptr.
It might point to an uninitialized LLDir, but that's a whole separate problem,
one that wouldn't be detected by checking for nullptr. If we hit that, time to
change to an LLSingleton.
2018-06-15 11:28:01 -04:00
Nat Goodspeed 24e71a45ae SL-821: Update bugsplat to codeticket version 516501. 2018-06-14 21:11:36 -04:00
Nat Goodspeed 786f80b942 SL-821: When using BugSplat, don't try to upload Breakpad symbols.
With BugSplat, the Breakpad symbol files aren't generated; attempting to post
them to codeticket will fail the build.
2018-06-14 19:03:17 -04:00
Nat Goodspeed 16776975e7 SL-821: Merge removal of VSTool.exe invocation from CMake. 2018-06-14 18:25:17 -04:00
Nat Goodspeed 4dba69b04a Automated merge with file:///Users/nat/linden/viewer-no-vstool 2018-06-14 18:20:55 -04:00
Nat Goodspeed 9b7640d70a SL-821: Remove VSTool invocation to unbreak Windows TeamCity builds. 2018-06-14 18:19:54 -04:00
Nat Goodspeed 67f6625c56 SL-821: Continue changing macOS executable to match channel name.
Set our CMake 'product' variable to VIEWER_CHANNEL. This probably has far-
reaching implications, but it seems the expedient way to keep everything self-
consistent. Use ${product} in the DARWIN VIEWER_EXE_GLOBS used for Breakpad
symbol dumping instead of hardcoding 'Second Life'.

The Breakpad symbol dumping stanza was enclosed in nested (but not indented)
conditions. To these we add another condition: don't bother if we're using
BugSplat. Unify all three into a single horrendous outermost expression.

Fix the MACOSX_BUNDLE_INFO_STRING, and hence CFBundleGetInfoString, to
VIEWER_CHANNEL as well.

Our CMake MACOSX_BUNDLE_SHORT_VERSION_STRING was never used before -- we were
erroneously using MACOSX_BUNDLE_LONG_VERSION_STRING in the Info-SecondLife.plist
template even for CFBundleShortVersionString. Looks like a classic copy/paste
error. Fix that; also use four-part version number instead of three-part.

With those two changes, we shouldn't need to patch the top-level Info.plist in
viewer_manifest.py any more.

viewer_manifest.py still needs to move the viewer executable(s) to the
embedded viewer app bundle, but it no longer needs to rename the real
executable to the channel name since we've already dealt with that in CMake
land. This lets us unify the code that picks the biggest of those executables
in the first and second viewer_manifest.py runs.
2018-06-14 17:03:25 -04:00
Nat Goodspeed 1378547bb6 SL-821: Defend macOS packaging against multiple viewer_manifest runs 2018-06-14 14:25:03 -04:00
Nat Goodspeed 6cda0ecc96 SL-821: Rename macOS Second Life executable to match the channel name.
This requires fixing CFBundleExecutable as well.
2018-06-14 13:22:20 -04:00
Nat Goodspeed 8cfc16c815 SL-821: Update to bugsplat build 516443 2018-06-14 12:50:21 -04:00
Nat Goodspeed 0c32e32996 SL-821: Update to viewer-manager build 516441 2018-06-14 12:30:38 -04:00
Nat Goodspeed ac2604a039 SL-821: Avoid Breakpad (and signal handling in general) for BugSplat.
Pass LL_BUGSPLAT into llapp.cpp compile to be able to detect that.
2018-06-14 11:31:17 -04:00
Nat Goodspeed ab9a3db37f SL-821: Update to bugsplat build 516433 2018-06-14 10:56:28 -04:00
Nat Goodspeed 5caeacb3f6 SL-821: Create macOS symbol-file archive while packaging. 2018-06-14 10:55:38 -04:00
Nat Goodspeed c32ede22bb DRTVWR-447: merge Oz's recent changes 2018-06-12 10:12:50 -04:00
Nat Goodspeed 043a38bf0f Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2018-06-12 09:14:23 -04:00
Anchor Linden 5651b433d3 fix xcode build 2018-06-06 03:23:32 +05:30
Oz Linden 176b886174 merge changes for 5.1.5-release 2018-05-31 17:36:30 -04:00
Oz Linden 40d4e8b2e6 increment viewer version to 5.1.6 2018-05-31 14:32:43 -04:00