summaryrefslogtreecommitdiff
path: root/indra/newview/viewer_manifest.py
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/viewer_manifest.py')
-rw-r--r--indra/newview/viewer_manifest.py114
1 files changed, 39 insertions, 75 deletions
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index c09043b879..9f06dca17a 100644
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -160,14 +160,6 @@ class ViewerManifest(LLManifest):
if not self.path2basename(os.path.join(os.pardir, os.pardir), "summary.json"):
print "No summary.json file"
- def login_channel(self):
- """Channel reported for login and upgrade purposes ONLY;
- used for A/B testing"""
- # NOTE: Do not return the normal channel if login_channel
- # is not specified, as some code may branch depending on
- # whether or not this is present
- return self.args.get('login_channel')
-
def grid(self):
return self.args['grid']
def channel(self):
@@ -179,16 +171,24 @@ class ViewerManifest(LLManifest):
def channel_lowerword(self):
return self.channel_oneword().lower()
+ def app_name(self):
+ app_suffix='Test'
+ channel_type=self.channel_lowerword()
+ if channel_type == 'release' :
+ app_suffix='Viewer'
+ elif re.match('^(beta|project).*',channel_type) :
+ app_suffix=self.channel_unique()
+ return "Second Life "+app_suffix
+
def icon_path(self):
icon_path="icons/"
channel_type=self.channel_lowerword()
- if channel_type == 'release' \
- or channel_type == 'development' \
- :
+ print "Icon channel type '%s'" % channel_type
+ if channel_type == 'release' :
icon_path += channel_type
- elif channel_type == 'betaviewer' :
+ elif re.match('^beta.*',channel_type) :
icon_path += 'beta'
- elif re.match('project.*',channel_type) :
+ elif re.match('^project.*',channel_type) :
icon_path += 'project'
else :
icon_path += 'test'
@@ -205,14 +205,6 @@ class ViewerManifest(LLManifest):
"--helperuri http://preview-%(grid)s.secondlife.com/helpers/" %\
{'grid':self.grid()}
- # set command line flags for channel
- channel_flags = ''
- if self.login_channel() and self.login_channel() != self.channel():
- # Report a special channel during login, but use default
- channel_flags = '--channel "%s"' % (self.login_channel())
- elif not self.default_channel():
- channel_flags = '--channel "%s"' % self.channel()
-
# Deal with settings
setting_flags = ''
if not self.default_channel() or not self.default_grid():
@@ -223,7 +215,7 @@ class ViewerManifest(LLManifest):
setting_flags = '--settings settings_%s_%s.xml'\
% (self.grid(), self.channel_lowerword())
- return " ".join((channel_flags, grid_flags, setting_flags)).strip()
+ return " ".join((grid_flags, setting_flags)).strip()
def extract_names(self,src):
try:
@@ -250,13 +242,13 @@ class ViewerManifest(LLManifest):
class WindowsManifest(ViewerManifest):
def final_exe(self):
- if self.default_channel():
- if self.default_grid():
- return "SecondLife.exe"
- else:
- return "SecondLifePreview.exe"
- else:
- return ''.join(self.channel().split()) + '.exe'
+ app_suffix="Test"
+ channel_type=self.channel_lowerword()
+ if channel_type == 'release' :
+ app_suffix=''
+ elif re.match('^(beta|project).*',channel_type) :
+ app_suffix=''.join(self.channel_unique().split())
+ return "SecondLife"+app_suffix+".exe"
def test_msvcrt_and_copy_action(self, src, dst):
# This is used to test a dll manifest.
@@ -304,26 +296,9 @@ class WindowsManifest(ViewerManifest):
else:
print "Doesn't exist:", src
- ### DISABLED MANIFEST CHECKING for vs2010. we may need to reenable this
- # shortly. If this hasn't been reenabled by the 2.9 viewer release then it
- # should be deleted -brad
- #def enable_crt_manifest_check(self):
- # if self.is_packaging_viewer():
- # WindowsManifest.copy_action = WindowsManifest.test_msvcrt_and_copy_action
-
- #def enable_no_crt_manifest_check(self):
- # if self.is_packaging_viewer():
- # WindowsManifest.copy_action = WindowsManifest.test_for_no_msvcrt_manifest_and_copy_action
-
- #def disable_manifest_check(self):
- # if self.is_packaging_viewer():
- # del WindowsManifest.copy_action
-
def construct(self):
super(WindowsManifest, self).construct()
- #self.enable_crt_manifest_check()
-
if self.is_packaging_viewer():
# Find secondlife-bin.exe in the 'configuration' dir, then rename it to the result of final_exe.
self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe())
@@ -333,15 +308,11 @@ class WindowsManifest(ViewerManifest):
'llplugin', 'slplugin', self.args['configuration']),
"slplugin.exe")
- #self.disable_manifest_check()
-
self.path2basename("../viewer_components/updater/scripts/windows", "update_install.bat")
# Get shared libs from the shared libs staging directory
if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),
dst=""):
- #self.enable_crt_manifest_check()
-
# Get llcommon and deps. If missing assume static linkage and continue.
try:
self.path('llcommon.dll')
@@ -353,8 +324,6 @@ class WindowsManifest(ViewerManifest):
print err.message
print "Skipping llcommon.dll (assuming llcommon was linked statically)"
- #self.disable_manifest_check()
-
# Mesh 3rd party libs needed for auto LOD and collada reading
try:
if self.args['configuration'].lower() == 'debug':
@@ -418,8 +387,6 @@ class WindowsManifest(ViewerManifest):
self.path("featuretable.txt")
self.path("featuretable_xp.txt")
- #self.enable_no_crt_manifest_check()
-
# Media plugins - QuickTime
if self.prefix(src='../media_plugins/quicktime/%s' % self.args['configuration'], dst="llplugin"):
self.path("media_plugin_quicktime.dll")
@@ -499,15 +466,10 @@ class WindowsManifest(ViewerManifest):
self.end_prefix()
- #self.disable_manifest_check()
-
# pull in the crash logger and updater from other projects
# tag:"crash-logger" here as a cue to the exporter
self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'],
dst="win_crash_logger.exe")
-# For CHOP-397, windows updater no longer used.
-# self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'],
-# dst="updater.exe")
if not self.is_packaging_viewer():
self.package_file = "copied_deps"
@@ -570,6 +532,7 @@ class WindowsManifest(ViewerManifest):
'channel':self.channel(),
'channel_oneword':self.channel_oneword(),
'channel_unique':self.channel_unique(),
+ 'subchannel_underscores':'_'.join(self.channel_unique().split())
}
version_vars = """
@@ -591,7 +554,7 @@ class WindowsManifest(ViewerManifest):
Caption "Second Life"
"""
else:
- # beta grid viewer
+ # alternate grid viewer
installer_file = "Second_Life_%(version_dashes)s_(%(grid_caps)s)_Setup.exe"
grid_vars_template = """
OutFile "%(installer_file)s"
@@ -603,8 +566,8 @@ class WindowsManifest(ViewerManifest):
Caption "Second Life %(grid)s ${VERSION}"
"""
else:
- # some other channel on some grid
- installer_file = "Second_Life_%(version_dashes)s_%(channel_oneword)s_Setup.exe"
+ # some other channel (grid name not used)
+ installer_file = "Second_Life_%(version_dashes)s_%(subchannel_underscores)s_Setup.exe"
grid_vars_template = """
OutFile "%(installer_file)s"
!define INSTFLAGS "%(flags)s"
@@ -666,7 +629,7 @@ class DarwinManifest(ViewerManifest):
self.path(self.args['configuration'] + "/Second Life.app", dst="")
if self.prefix(src="", dst="Contents"): # everything goes in Contents
- self.path("Info-SecondLife.plist", dst="Info.plist")
+ self.path("Info.plist", dst="Info.plist")
# copy additional libs in <bundle>/Contents/MacOS/
self.path("../packages/lib/release/libndofdev.dylib", dst="Resources/libndofdev.dylib")
@@ -696,7 +659,11 @@ class DarwinManifest(ViewerManifest):
self.path("SecondLife.nib")
# Translations
- self.path("English.lproj")
+ self.path("English.lproj/language.txt")
+ self.replace_in(src="English.lproj/InfoPlist.strings",
+ dst="English.lproj/InfoPlist.strings",
+ searchdict={'%%VERSION%%':'.'.join(self.args['version'])}
+ )
self.path("German.lproj")
self.path("Japanese.lproj")
self.path("Korean.lproj")
@@ -880,10 +847,7 @@ class DarwinManifest(ViewerManifest):
# Copy everything in to the mounted .dmg
- if self.default_channel() and not self.default_grid():
- app_name = "Second Life " + self.args['grid']
- else:
- app_name = channel_standin.strip()
+ app_name = self.app_name()
# Hack:
# Because there is no easy way to coerce the Finder into positioning
@@ -969,7 +933,6 @@ class LinuxManifest(ViewerManifest):
if self.prefix(src="", dst="bin"):
self.path("secondlife-bin","do-not-directly-run-secondlife-bin")
self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin")
- self.path("../linux_updater/linux-updater", "linux-updater.bin")
self.path2basename("../llplugin/slplugin", "SLPlugin")
self.path2basename("../viewer_components/updater/scripts/linux", "update_install")
self.end_prefix("bin")
@@ -1018,9 +981,7 @@ class LinuxManifest(ViewerManifest):
else:
installer_name += '_' + self.channel_oneword().upper()
- if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer():
- print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build"
- self.run_command("find %(d)r/bin %(d)r/lib -type f \\! -name update_install | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure
+ self.strip_binaries()
# Fix access permissions
self.run_command("""
@@ -1055,6 +1016,11 @@ class LinuxManifest(ViewerManifest):
'dst': self.get_dst_prefix(),
'inst': self.build_path_of(installer_name)})
+ def strip_binaries(self):
+ if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer():
+ print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build"
+ self.run_command(r"find %(d)r/bin %(d)r/lib -type f \! -name update_install | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure
+
class Linux_i686Manifest(LinuxManifest):
def construct(self):
super(Linux_i686Manifest, self).construct()
@@ -1140,9 +1106,7 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libvivoxplatform.so")
self.end_prefix("lib")
- if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer():
- print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build"
- self.run_command("find %(d)r/bin %(d)r/lib -type f \\! -name update_install | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure
+ self.strip_binaries()
class Linux_x86_64Manifest(LinuxManifest):