Commit Graph

38147 Commits (488d165895db3c2ae2aebbb3b727e95b8a3de6bf)

Author SHA1 Message Date
Nat Goodspeed 488d165895 MAINT-7751: Rework DarwinManifest to produce new app bundle structure.
Specifically, Second Life.app is now mostly just a wrapper. Its Contents/
Resources contains nested Launcher.app (the VMP) and Viewer.app (the viewer
itself). Most of what used to be in the top-level Second Life.app has been
relocated to the embedded Viewer.app. VMP stuff has of course been extracted
to Launcher.app. The top-level Second Life.app executable is now a tiny script
that runs Launcher.app. This structure permits different icons and different
Dock flyover text for the launcher and the viewer, hopefully ameliorating a
certain amount of user confusion about the dual icons.

This requires a corresponding VMP change: on macOS, the VMP must now find both
its resources and the viewer executable by walking up from Launcher.app and
down again into its sibling Viewer.app.

Since Dock flyover text is determined by the embedded app names, allow Product
to change these at will. That means we should be able to tweak exactly one
variable assignment to change either of those embedded app names, without
having to chase down other references scattered throughout the source repo.

For that reason, create top-level trampoline SL_Launcher script dynamically:
it must reference the launcher app by name. That means we must also perform
(the equivalent of) chmod +x on that generated script.

The one mystery surrounding this restructuring is that without a top-level
Frameworks symlink pointing to the embedded Viewer.app's Frameworks directory
(where CEF lives), CEF refuses to start: no splash screen, no MoP. Perhaps we
can fix that someday.

Use Python's bundled plistlib to generate Info.plist files for the embedded
applications.

Reorganize stray code stanzas to try to help the structure of the code more or
less resemble the structure of the desired result.

Add ViewerManifest.relpath() method to determine the relative path from a
specified base to the target path. If base omitted, assumes get_dst_prefix()
-- handy for creating symlinks. Determining exactly the right number of
os.pardir instances to concatenate into the relative pathname for a symlink
(or an install_name_tool stamp) was tedious, fragile and unobvious, difficult
to desk-check. Using relpath() should make all that more robust.

Migrate symlinkf() from free function to ViewerManifest method, refactoring
into _symlinkf_prep_dst() and _symlinkf(), adding relsymlinkf(). This lets us
add convenience features such as prepending get_dst_prefix() to the dest (the
place where we want to create the symlink), defaulting dest to the basename of
target and ensuring that the parent of that dest already exists -- as with
LLManifest.path(). Moreover, since it makes no sense whatsoever to create an
absolute symlink to some path on the build machine, relsymlinkf() creates
every symlink relative to dirname(dest). That, in turn, lets us eliminate a
certain amount of boilerplate around existing calls. (Also, since we now
ensure the parent directory exists, scrap the logic to diagnose "nonexistent
parent directory.")

Make llmanifest.LLManifest.run_command() not pass shell=True to subprocess,
thereby permitting (requiring) the list form rather than the string form.
Change all existing calls to list form. This makes calls more readable, for
two reasons. First, many of the arguments are taken from script variables;
these can simply be dropped into the list instead of indirecting through
string interpolation. Second, it eliminates the need to manually escape
individual arguments, since subprocess promises to honor the distinction
between list elements.

Also fix LLManifest.put_in_file() to ensure the containing directory exists.

Consolidate some viewer_manifest.py redundancy, e.g. copying the same set of
ten DLLs from either of two directories depending on Release vs. Debug.
2017-12-04 17:15:47 -05:00
Nat Goodspeed 5f0cc13273 Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2017-12-02 09:31:57 -05:00
Nat Goodspeed e3a2c5e321 DRTVWR-418: Merge from latest viewer-release 2017-11-29 14:47:09 -05:00
Oz Linden 1693ccba58 increment viewer version to 5.0.10 2017-11-29 11:26:47 -08:00
Oz Linden b24396f445 Added tag 5.0.9-release for changeset 40ca7118765b 2017-11-29 11:26:46 -08:00
Nat Goodspeed 662013f146 MAINT-7751: Tidying up viewer_manifest.py a little 2017-11-29 09:58:12 -05:00
Nat Goodspeed be75548548 Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2017-11-28 16:44:18 -05:00
Nat Goodspeed ec13121def MAINT-7751: Remove redundant viewer_manifest.py directory creation.
The LLManifest.copy_action() method ensures that the destination directory for
any file copy exists before trying to copy the file, specifically so we don't
have to clutter the business logic with tests and explicit directory creation.
Remove redundant os.makedirs() stanzas.
2017-11-28 16:42:24 -05:00
Nat Goodspeed bf98e092e5 MAINT-7684: Update to viewer-manager build 511006 2017-11-28 11:34:09 -05:00
Nat Goodspeed 5713565016 MAINT-7684: Update to viewer-manager build 510907 2017-11-21 17:09:59 -05:00
Nat Goodspeed 29c9739f0d MAINT-7684: Stop packaging or signing download_update.exe. 2017-11-21 17:05:40 -05:00
Nat Goodspeed 326498f46d Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2017-11-21 16:22:05 -05:00
Nat Goodspeed bc70bc9b0d MAINT-7684: Update viewer-manager to codeticket version 510887. 2017-11-21 14:37:55 -05:00
Nat Goodspeed db0e11fae3 MAINT-7977: Per Graham, unbind textures as well as deleting. 2017-11-17 18:34:45 -05:00
Nat Goodspeed 701f89625d MAINT-7977: Additional cleanup per code reviews.
Introduce helper classes to manage paired initProfile() / finishProfile()
calls and gBenchmarkProgram.bind() / unbind() calls.

Make TextureHolder a class instead of a struct.

Per Henri Beauchamp, since gpu_benchmark() takes a very early exit if
(!gGLManager.mHasTimerQuery), subsequent tests of mHasTimerQuery are
redundant. Remove.

One of those tests controls the busted_finish bool, which can never become
true. Remove that and all tests on it.
2017-11-17 15:57:41 -05:00
Nat Goodspeed f2ffd63716 MAINT-7977: Release the LLRenderTargets when done.
A classic-C array doesn't destroy its individual elements, but a std::vector
does. Use a std::vector<LLRenderTarget> for dest, so each LLRenderTarget will
be destroyed. ~LLRenderTarget() calls its release() method.
2017-11-16 18:34:40 -05:00
Nat Goodspeed dfc0785857 MAINT-7977: If getVertexStrider() returns false, abandon benchmark.
Ruslan tracked the observed crash to assignments (to create a dummy triangle)
through an LLStrider<LLVector3> obtained from getVertexStrider(). When
getVertexStrider() returns false, produce a warning and just skip the rest of
the benchmark test.

The one bit of explicit cleanup apparently required by that early exit is a
call to LLImageGL::deleteTextures() to match the preceding generateTextures()
call. Wrap both in a new TextureHolder class whose destructor takes care of
cleanup. The only other references to the corresponding U32 array are a couple
calls to LLTexUnit::bindManual(); add a bind() method to support that.

Also fix apparent bug in the LL_DARWIN special case for "improbably high and
likely incorrect": the code assigned -1.f (the "couldn't compute" value) to
gbps, overlooking the fact that gbps is unconditionally recomputed below. In
the "likely incorrect" stanza, simply return -1.f instead.
2017-11-16 16:54:27 -05:00
ruslantproductengine d310159bee MAINT-7977 [Alex Ivy] Feature Table crashes
In case of buff->getVertexStrider(v) return false it mean that glMapBufferRange() return NULL
The next three lines can be the reason of this crash.
2017-11-16 19:14:28 +02:00
andreykproductengine 5a402dbc1f MAINT-7228 Vertex buffer allocation failure handling 2017-11-16 17:11:48 +02:00
andreykproductengine 02e418a5cd MAINT-7228 Dummy triangle should use map instead of offset (in case of VBO) 2017-11-14 19:50:17 +02:00
andreykproductengine 6502e8bf33 MAINT-7228 Vertex buffer allocation failure handling 2017-11-14 18:55:36 +02:00
andreykproductengine f986d1bcbe MAINT-7979 Debug info should contain correct state 2017-11-07 19:16:21 +02:00
Mnikolenko Productengine c372862a7a MAINT-7966 Second Life viewer logs session ID in SecondLife.log 2017-11-07 15:44:06 +02:00
Nat Goodspeed e6cf1f666e MAINT-7684: Update viewer-manager to codeticket version 510474. 2017-11-03 16:08:41 -04:00
Nat Goodspeed d3181c73bc MAINT-7684: Update viewer-manager to codeticket version 510466. 2017-11-03 14:52:29 -04:00
andreykproductengine e848127f23 MAINT-7228 Substituted assert with error 2017-11-03 19:27:09 +02:00
andreykproductengine 149b2d88dd MAINT-7228 Vertex buffer allocation failure handling 2017-11-01 19:36:13 +02:00
andreykproductengine fec6bbddc3 MAINT-7974 Fixed LLProfile crash(error) caused by thread unsafe variable 2017-11-03 20:30:47 +02:00
andreykproductengine 7161619d6c MAINT-7978 - Fixed allocation crash in doRead(), workers should never crash 2017-11-06 16:46:16 +02:00
Mnikolenko Productengine ece5e6b827 MAINT-7961 Search link in Recent tab of Inventory should open the Search filters for Inventory 2017-11-06 16:30:47 +02:00
Nat Goodspeed 6d94bb263f DRTVWR-418: Update viewer-manager to codeticket version 510348. 2017-10-31 14:01:34 -04:00
Nat Goodspeed d78391a27b DRTVWR-418: Update viewer-manager to codeticket version 510328. 2017-10-31 11:45:53 -04:00
andreykproductengine c8c8005e2f MAINT-2161 Fixed dae parsing issue - dae expects escaped names 2017-10-31 16:41:39 +02:00
Nat Goodspeed 2690ad4b38 DRTVWR-418: Update viewer-manager to codeticket version 510301. 2017-10-30 17:28:22 -04:00
Nat Goodspeed 7e15d6ae4a Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2017-10-30 11:15:52 -04:00
Nat Goodspeed f643f79f09 DRTVWR-418: Update viewer-manager to codeticket version 510243. 2017-10-27 15:22:12 -04:00
Nat Goodspeed 8ffaa4242b DRTVWR-418, MAINT-7911: Merge to build 510144 of VMP 2017-10-26 10:13:12 -04:00
Nat Goodspeed d8ea2a8a27 MAINT-7911: Update to viewer-manager build 510144 2017-10-26 09:48:26 -04:00
Nat Goodspeed cc398dc397 Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2017-10-26 09:42:14 -04:00
Nat Goodspeed 263f285697 MAINT-7911: Update viewer-manager to codeticket version 510137. 2017-10-25 21:22:35 -04:00
Nat Goodspeed 3f84c43e14 MAINT-7911: Set build_data.json's Platform to win for both W32, W64. 2017-10-25 14:33:26 -04:00
Nat Goodspeed ead19aa22c MAINT-7081: Only request HTTP2 with $VIEWERASSET override (testing) 2017-10-24 15:57:36 -04:00
Nat Goodspeed 762582c499 MAINT-7081: Mention libnghttp2*.dylib in yet another place. 2017-10-24 15:38:00 -04:00
Nat Goodspeed b709a9d7e0 MAINT-7081: Fix bad merge into autobuild.xml.
Specifically, reinstate the curl, openssl, nghttp2 libraries to the previous
tip of this MAINT-7081 fork.
2017-10-24 13:22:03 -04:00
Nat Goodspeed 96ac49c3e2 MAINT-7081: Merge from lindenlab/viewer64. 2017-10-24 11:22:49 -04:00
Nat Goodspeed 8ba4f526c0 MAINT-7812: NSIS check for /marker before writing marker file.
The /marker switch is passed by the (new) VMP. If any user wants to explicitly
pass the /marker switch to the installer, s/he shouldn't mind ending up with
an nsis.winstall file in the download directory.
2017-10-18 16:16:34 -04:00
Nat Goodspeed b0eb67f6a8 MAINT-7812: Update to viewer-manager build 509841 2017-10-18 15:36:00 -04:00
Nat Goodspeed 9c5becd67d Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2017-10-13 13:50:46 -04:00
Kitty Barnett 18fa2e6471 MAINT-7081 [FIXED] Access (write) violation / buffer overrun in LLTextureFetchWorker::doWork()
The trouble lines are:
			U8 * buffer = (U8 *) ALLOCATE_MEM(LLImageBase::getPrivatePool(), total_size);
			if (cur_size > 0)
			{
				memcpy(buffer, mFormattedImage->getData(), cur_size);
			}

If 'cur_size > mHttpReplyOffset + append_size' then 'total_size -= src_offset' will cause
total_size to be smaller than cur_size causing a write access violation on the memcpy.

Since the response is invalid it seemed best to make it follow the other failed partial condition.
(transplanted from 737e28ec6b4d74f3ff915a4effc13d7b615a6a9b)
2017-10-12 22:55:15 +02:00
andreykproductengine 5a7b36d506 MAINT-1114 crash at LLVOAvatar updateGeometry() 2017-10-27 21:29:15 +03:00