summaryrefslogtreecommitdiff
path: root/indra/newview/viewer_manifest.py
AgeCommit message (Collapse)Author
2019-09-18SL-11598: Remove from viewer_manifest.py pointless Windows wildcards.Nat Goodspeed
By "pointless" we mean filenames or patterns in the Windows platform specification that always match 0 files. Add logic to llmanifest.py to collect and report all missing files, instead of stopping at the first.
2019-09-16SL-11598: viewer_manifest.py should fail if a viewer file is missingOz Linden
2019-04-02Merge 6.1.2Graham Linden
2019-03-08Runtime files required by CEF changed in this version of CEF. We add them to ↵callum_linden
the cef-bin and dullahan 3p packages but they were not copied to the right place - now they are
2019-02-28MergeGraham Linden
2019-02-02SL-9980: Update to viewer-manager 524014 to drop Admin for viewer.Nat Goodspeed
But since that viewer-manager build depends on being able to read the application name from build_data.json (to locate the shortcut), add an AppName key to build_data.json.
2019-01-18SL-10153 bat file no longer should be in instal directoryandreykproductengine
2018-11-28SL-10030: Include nextviewer.bat in the Windows install directory.Nat Goodspeed
2018-11-15SL-10010: Use trunk NSIS + Unicode attrib, instead of Unicode fork.Nat Goodspeed
Back out misguided attempt to overwrite $PROGRAMFILES with $PROGRAMFILES64.
2018-11-07SL-9952: updater.exe now renamed to SLVersionChecker.exeNat Goodspeed
thereby avoiding strange Windows requirement for elevated privilege.
2018-11-01DRTVWR-447: Allow Standard Windows user to install for current user.Nat Goodspeed
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-10-29SL-9964: Put Mac cursors back into Resources/cursors_mac subdirectory.Nat Goodspeed
2018-10-26DRTVWR-447: For some reason the Windows viewer exe wasn't signed.Nat Goodspeed
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-23DRTVWR-447: Try to defeat scary Mac Gatekeeper popupsNat Goodspeed
by replacing the viewer's baked-in BugsplatMac.framework @rpath path with one based on @executable_path.
2018-10-22DRTVWR-447: Restore copying BugsplatMac.framework into Mac package.Nat Goodspeed
2018-10-18DRTVWR-447: Re-inject BugsplatServerURL into Mac's Info.plist.Nat Goodspeed
2018-10-17DRTVWR-447: Restore diagnostic output to Mac app bundle packaging.Nat Goodspeed
2018-10-17DRTVWR-447: Restore channel-name sensitivity of Mac BugSplat viewer.Nat Goodspeed
2018-10-17DRTVWR-447: Finish merging Poseidon into BugSplatNat Goodspeed
2018-09-24DRTVWR-474: Remove Python autobuild packages and references to them.Nat Goodspeed
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-13DRTVWR-474: Fix path2basename("secondlife.ico") call.Nat Goodspeed
2018-09-13DRTVWR-474: Copy updater and its icons into Mac app's Resources.Nat Goodspeed
2018-09-12DRTVWR-474: Make NSIS run new updater.exe after install.Nat Goodspeed
But change shortcuts and registry entries and everything else back to the real viewer executable, so that every subsequent run directly launches the viewer. Eliminate SL_Launcher references from viewer_manifest.py.
2018-09-11DRTVWR-474, MAINT-9047: Display top-level app bundle in sparseimage.Nat Goodspeed
codesign claims to succeed, but spctl says: /Volumes/Second Life Installer/Second Life Test.app: rejected (the code is valid but does not seem to be an app) Why not? Display what's in Second Life.app/Contents on the mounted sparseimage: show Info.plist, list Frameworks, MacOS, Resources.
2018-09-11DRTVWR-474, MAINT-9047: Make failing spctl command more verbose.Nat Goodspeed
2018-09-11DRTVWR-474, MAINT-9047: Must copy CMake-built viewer for EDU.Nat Goodspeed
2018-09-10DRTVWR-474, MAINT-9047: Try *not* copying the viewer built by CMake.Nat Goodspeed
The start of viewer_manifest.DarwinManifest.construct() is a path() call to copy the whole viewer tree from where CMake constructs it. The comment is: "(this is a no-op if run within the xcode script)." Unfortunately, for unclear reasons, this has recently started nesting Second Life.app within the Second Life.app directory, and even to multiple levels. When that happens, copying the outermost .app directory to the sparseimage in order to convert to dmg runs out of room because we're trying to pack multiple copies of the whole viewer tree into the fixed-size sparseimage. But if it works to simply skip that entire initial copy operation, so much the better.
2018-09-10DRTVWR-474, MAINT-9047: Back out changeset 2ed01671b974.Nat Goodspeed
We'll try to address the Mac app bundle name discrepancy a different way.
2018-09-09DRTVWR-474, MAINT-9047: Make viewer_manifest use same bundle name.Nat Goodspeed
2018-09-08DRTVWR-474, MAINT-9047: Restore viewer to top-level Mac app.Nat Goodspeed
The relationship to MAINT-9047 is that we hope this will improve the behavior of Mac code signing.
2018-05-31Merge storm-2145 dev into lindenlab branch parented from viewer-releaseGraham Linden
2018-02-21MAINT-8297 Removing old ca bundleAndrey Kleshchev
2018-02-15MAINT-8297 Fixed "Missing CA File" message when running under debugger on ↵andreykproductengine
windows
2018-01-18correct more 64bit vivox dll namesOz Linden
2018-01-19merge changes for 5.1.0-releaseOz Linden
2018-01-19package the default camera position presetsOz Linden
2018-01-17use 64bit vivox sdk components in 64bit windows buildsOz Linden
2018-01-17merge 5.1.0-releaseOz Linden
2017-12-21MAINT-8119 Fix. A change elsewhere in the viewer_manifest.py script that ↵callum_linden
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-07MAINT-8069: Pass any command-line arguments through to SL_Launcher.Nat Goodspeed
2017-12-07MAINT-8070: Tweak macOS embedded app names (flyover text) per ProductNat Goodspeed
2017-12-06MAINT-7751: Respond to Coyot's code-review suggestions.Nat Goodspeed
2017-12-06MAINT-7751: Add shbang line to macOS trampoline script.Nat Goodspeed
This evidently makes all the difference as to whether the app is considered launchable.
2017-12-04MAINT-7751: Rework DarwinManifest to produce new app bundle structure.Nat Goodspeed
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-11-29MAINT-7751: Tidying up viewer_manifest.py a littleNat Goodspeed
2017-11-28Automated merge with ssh://bitbucket.org/lindenlab/viewer64Nat Goodspeed
2017-11-28MAINT-7751: Remove redundant viewer_manifest.py directory creation.Nat Goodspeed
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-21MAINT-7684: Stop packaging or signing download_update.exe.Nat Goodspeed
2017-10-30Automated merge with ssh://bitbucket.org/lindenlab/viewer64Nat Goodspeed
2017-10-25MAINT-7911: Set build_data.json's Platform to win for both W32, W64.Nat Goodspeed