Commit Graph

38185 Commits (684b7c2bdbe4d685107cfd3f2f8a37e85b52d3db)

Author SHA1 Message Date
Nat Goodspeed 684b7c2bdb MAINT-8161: Update viewer-manager to codeticket version 511866. 2018-01-17 09:36:58 -05:00
Oz Linden 7acbd8ed8d merge sling-buildscripts change 2018-01-16 14:14:27 -05:00
Oz Linden 7656e3e0b3 increment viewer version to 5.1.1 2018-01-16 14:10:39 -05:00
Oz Linden 7c6c987d00 Added tag 5.1.0-release for changeset ad0e15543836 2018-01-16 14:10:38 -05:00
callum_linden d97d7c5206 Fix for MAINT-8119 - this bug morphed from a packaging issue to being all about audio not playing when a media stream started. There is some as yet, unknown interaction between the volume catcher code in the CEF plugin and the VLC volume controls. The fix for now is to add a Windows call to the VLC code that sets the process volume explicitly. Later we will address the volume catcher code, move it to a common spot so both CEF and LibVLC can use the same bytes 2018-01-05 13:19:08 -08:00
callum_linden 6659192a35 Fix for MAINT-8148 - AVI fails to play. For Windows, the x-msvideo MIME type was pointed at CEF which is unable to play it. Switching that to LibVLC made it work as expected. It was already switched on macOS 2018-01-05 12:29:38 -08:00
Nat Goodspeed 37e699bede MAINT-8135: Update to viewer-manager build 511688 2018-01-04 16:57:40 -05:00
Nat Goodspeed 26161cf577 MAINT-8123: Update to viewer-manager build 511679 2018-01-04 14:43:21 -05:00
callum_linden 2af6a857c4 Automated merge with head of viewer64 2018-01-03 12:53:16 -08:00
Nat Goodspeed 17891cfcda MAINT-8078: Update to viewer-manager build 511658 2018-01-03 15:32:21 -05:00
Nat Goodspeed 2e388c92a4 MAINT-8078: Update to viewer-manager build 511634 2018-01-02 20:49:21 -05:00
callum_linden 238c92b29b Automated merge with tip of viewer64-callum 2017-12-21 14:37:30 -08:00
callum_linden 7ac3a755e7 MAINT-8119 Fix. A change elsewhere in the viewer_manifest.py script that copies files into the right place after a build impacted the fragment of code that copies over the VLC runtime files (Libvlc.dll, libvlccore.dll and the VLC plugins dir) and they never made it to the right place. This change restores that copy 2017-12-21 14:36:50 -08:00
callum_linden 6b3ac6823d A change elsewhere in the viewer_manifest.py script that copies files into the right place after a build impacted the fragment of code that copies over the VLC runtime files (Libvlc.dll, libvlccore.dll and the VLC plugins dir) and they never made it to the right place. This change restores that copy 2017-12-21 13:08:32 -08:00
Nat Goodspeed dfd62c56d3 MAINT-8087: Update to viewer-manager build 511542 2017-12-21 09:27:36 -05:00
Nat Goodspeed 5002bf5660 MAINT-8087: Use env vars from VMP for AppData\Roaming and Local.
On Windows, when logged in with a non-ASCII username, every one of the three
documented APIs -- SHGetSpecialFolderPath(), SHGetFolderPath() and
SHGetKnownFolderPath() -- fails to retrieve any pathname at all. We cannot
account for the fact that the oldest of these continues to work with the
release viewer and within a Python script (though not, curiously, from a
Python interactive session). With a non-ASCII username, they consistently fail
when called from an Alex Ivy viewer build: "The filename, directory name, or
volume label syntax is incorrect."

Empirically, with a non-ASCII username, the preset APPDATA and LOCALAPPDATA
environment variables are also useless, e.g. c:\Users\??????\AppData\Roaming
where those are, yup, actual question marks.

Empirically, the VMP is able to successfully call SHGetFolderPath() to
retrieve both AppData\Roaming and AppData\Local. Therefore, we make the VMP
set the APPDATA and LOCALAPPDATA environment variables to the UTF-8 encoded
correct pathnames. Instead of calling SHGetSomethingFolderPath() at all, make
LLDir_Win32 retrieve those environment variables.

Make LLFile::mkdir() treat "directory already exists" as a success case. Every
single call fell into one of two categories: either it didn't check success at
all, or it tested specially to exempt errno == EEXIST. Migrate that test into
mkdir(); eliminate it from call sites.

Make LLDir::append() and add() convenience functions accept variadic
arguments. Replace add(add()...) constructs, as well as clumsy concatenations
of directory names and getDirDelimiter(), with simple variadic add() calls.
2017-12-20 22:51:26 -05:00
Nat Goodspeed 36e5f543ce MAINT-8087: Update to viewer-manager build 511535 2017-12-20 22:33:28 -05:00
Nat Goodspeed 7c3638e097 MAINT-8087: Update to viewer-manager build 511531 2017-12-20 17:27:43 -05:00
Oz Linden c8358e7b63 require build_secrets (removed from the buildscripts requirements) 2017-12-20 15:11:30 -05:00
Nat Goodspeed 34a9de7270 MAINT-8087: Update to viewer-manager build 511462 2017-12-15 17:07:37 -05:00
Nat Goodspeed 30c2f108ba MAINT-8087: Update to viewer-manager build 511460 2017-12-15 15:28:10 -05:00
Nat Goodspeed 18bf0eae3b MAINT-8087: Update to viewer-manager build 511437 2017-12-14 21:16:08 -05:00
Nat Goodspeed 870008f15b MAINT-8087: New LLDir_Win32 code requires ole32 in a few more places. 2017-12-14 19:33:10 -05:00
Nat Goodspeed 867b5f5a90 MAINT-8087: #include header for CoTaskMemFree() function
which is required to free the pointer returned by SHGetKnownFolderPath().
2017-12-14 18:47:15 -05:00
Nat Goodspeed bdea97399b MAINT-8087: Use SHGetKnownFolderPath(), not SHGetSpecialFolderPath().
SHGetSpecialFolderPath() is deprecated, and empirically it appears to be
failing when the user name contains non-ASCII characters. The relevant
Microsoft documentation pages recommend calling SHGetKnownFolderPath()
instead.

Also, the SHGetSpecialFolderPath() calls had no error checking or reporting,
which is why we can only say it "appears to be" failing. Make sure that if
SHGetKnownFolderPath() fails, at least we try to tell somebody about it.
2017-12-14 17:54:06 -05:00
Nat Goodspeed 0d1c5958fb MAINT-8087: Update to viewer-manager build 511391 2017-12-13 21:37:46 -05:00
Nat Goodspeed df21b99723 MAINT-8082: Update to viewer-manager build 511355 2017-12-13 08:27:41 -05:00
Nat Goodspeed e94adafe71 MAINT-8082: Update to viewer-manager build 511350 2017-12-12 19:54:14 -05:00
Nat Goodspeed c5abe29e9b MAINT-8082: Make UpdaterMaximumBandwidth comment admit uselessness. 2017-12-12 19:44:18 -05:00
Nat Goodspeed c565c62745 MAINT-8069: Pass any command-line arguments through to SL_Launcher. 2017-12-07 16:43:04 -05:00
Nat Goodspeed 0e73aec0a2 MAINT-8070: Tweak macOS embedded app names (flyover text) per Product 2017-12-07 14:03:47 -05:00
Nat Goodspeed 12fbe63e65 MAINT-7751: Update to viewer-manager build 511221 2017-12-06 17:53:21 -05:00
Nat Goodspeed d79846a779 MAINT-7751: Respond to Coyot's code-review suggestions. 2017-12-06 17:09:06 -05:00
Nat Goodspeed e3254f63bc MAINT-7751: Finish merging autobuild.xml updates to viewer-manager. 2017-12-06 10:04:01 -05:00
Nat Goodspeed 64df1bd80e MAINT-7751: Update to viewer-manager build 511211 2017-12-06 09:58:47 -05:00
Nat Goodspeed 6bba46effa MAINT-7751: Add shbang line to macOS trampoline script.
This evidently makes all the difference as to whether the app is considered
launchable.
2017-12-06 05:17:14 -05:00
Nat Goodspeed 54eb04ee90 MAINT-7751: Update to viewer-manager build 511199 2017-12-05 17:08:58 -05:00
Nat Goodspeed 00b60e51c8 MAINT-7751: Update to viewer-manager build 511174 2017-12-05 12:03:15 -05:00
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