aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/viewer_manifest.py
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/viewer_manifest.py')
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py51
1 files changed, 18 insertions, 33 deletions
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 43734df..d07ebf0 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -115,38 +115,18 @@ class ViewerManifest(LLManifest):
115 if not self.default_grid(): 115 if not self.default_grid():
116 if self.default_channel(): 116 if self.default_channel():
117 # beta grid viewer 117 # beta grid viewer
118 channel_flags = '-settings settings_beta.xml' 118 channel_flags = '--settings settings_beta.xml'
119 grid_flags = "-helperuri http://preview-%(grid)s.secondlife.com/helpers/ -loginuri https://login.%(grid)s.lindenlab.com/cgi-bin/login.cgi" % {'grid':self.args['grid']} 119 grid_flags = "--grid %(grid)s --helperuri http://preview-%(grid)s.secondlife.com/helpers/" % {'grid':self.args['grid']}
120 120
121 if not self.default_channel(): 121 if not self.default_channel():
122 # some channel on some grid 122 # some channel on some grid
123 channel_flags = '-settings settings_%s.xml -channel "%s"' % (self.channel_lowerword(), self.channel()) 123 channel_flags = '--settings settings_%s.xml --channel "%s"' % (self.channel_lowerword(), self.channel())
124 elif self.login_channel(): 124 elif self.login_channel():
125 # Report a special channel during login, but use default channel elsewhere 125 # Report a special channel during login, but use default channel elsewhere
126 channel_flags = '-channel "%s"' % (self.login_channel()) 126 channel_flags = '--channel "%s"' % (self.login_channel())
127 127
128 return " ".join((channel_flags, grid_flags)).strip() 128 return " ".join((channel_flags, grid_flags)).strip()
129 129
130 def login_url(self):
131 """ Convenience function that returns the appropriate login url for the grid"""
132 if(self.args.get('login_url')):
133 return self.args['login_url']
134 else:
135 if(self.default_grid()):
136 if(self.default_channel()):
137 # agni release
138 return 'http://secondlife.com/app/login/'
139 else:
140 # first look (or other) on agni
141 return 'http://secondlife.com/app/login/%s/' % self.channel_lowerword()
142 else:
143 # beta grid
144 return 'http://secondlife.com/app/login/beta/'
145
146 def replace_login_url(self):
147 # set the login page to point to a url appropriate for the type of client
148 self.replace_in("skins/xui/en-us/panel_login.xml", searchdict={'http://secondlife.com/app/login/':self.login_url()})
149
150 130
151class WindowsManifest(ViewerManifest): 131class WindowsManifest(ViewerManifest):
152 def final_exe(self): 132 def final_exe(self):
@@ -229,7 +209,6 @@ class WindowsManifest(ViewerManifest):
229# # pull in the crash logger and updater from other projects 209# # pull in the crash logger and updater from other projects
230# self.path(src="../win_crash_logger/win_crash_logger.exe", dst="win_crash_logger.exe") 210# self.path(src="../win_crash_logger/win_crash_logger.exe", dst="win_crash_logger.exe")
231 self.path(src="../win_updater/updater.exe", dst="updater.exe") 211 self.path(src="../win_updater/updater.exe", dst="updater.exe")
232 self.replace_login_url()
233 212
234 def nsi_file_commands(self, install=True): 213 def nsi_file_commands(self, install=True):
235 def wpath(path): 214 def wpath(path):
@@ -349,7 +328,7 @@ class WindowsManifest(ViewerManifest):
349 328
350 NSIS_path = 'C:\\Program Files\\NSIS\\makensis.exe' 329 NSIS_path = 'C:\\Program Files\\NSIS\\makensis.exe'
351 self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) 330 self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile))
352 self.remove(self.dst_path_of(tempfile)) 331 # self.remove(self.dst_path_of(tempfile))
353 self.created_path(installer_file) 332 self.created_path(installer_file)
354 333
355 334
@@ -363,6 +342,9 @@ class DarwinManifest(ViewerManifest):
363 # <bundle>/Contents/MacOS/ 342 # <bundle>/Contents/MacOS/
364 self.contents_of_tar('mozilla-universal-darwin.tgz', 'MacOS') 343 self.contents_of_tar('mozilla-universal-darwin.tgz', 'MacOS')
365 344
345 # copy additional libs in <bundle>/Contents/MacOS/
346 self.path("../../libraries/universal-darwin/lib_release/libndofdev.dylib", dst="MacOS/libndofdev.dylib")
347
366 # replace the default theme with our custom theme (so scrollbars work). 348 # replace the default theme with our custom theme (so scrollbars work).
367 if self.prefix(src="mozilla-theme", dst="MacOS/chrome"): 349 if self.prefix(src="mozilla-theme", dst="MacOS/chrome"):
368 self.path("classic.jar") 350 self.path("classic.jar")
@@ -387,9 +369,6 @@ class DarwinManifest(ViewerManifest):
387 # command line arguments for connecting to the proper grid 369 # command line arguments for connecting to the proper grid
388 self.put_in_file(self.flags_list(), 'arguments.txt') 370 self.put_in_file(self.flags_list(), 'arguments.txt')
389 371
390 # set the proper login url
391 self.replace_login_url()
392
393 self.end_prefix("Resources") 372 self.end_prefix("Resources")
394 373
395 self.end_prefix("Contents") 374 self.end_prefix("Contents")
@@ -459,7 +438,7 @@ class LinuxManifest(ViewerManifest):
459 def construct(self): 438 def construct(self):
460 super(LinuxManifest, self).construct() 439 super(LinuxManifest, self).construct()
461 self.path("licenses-linux.txt","licenses.txt") 440 self.path("licenses-linux.txt","licenses.txt")
462 #self.path("res/ll_icon.ico","secondlife.ico") 441 self.path("res/ll_icon.png","secondlife_icon.png")
463 if self.prefix("linux_tools", ""): 442 if self.prefix("linux_tools", ""):
464 self.path("client-readme.txt","README-linux.txt") 443 self.path("client-readme.txt","README-linux.txt")
465 self.path("client-readme-voice.txt","README-linux-voice.txt") 444 self.path("client-readme-voice.txt","README-linux-voice.txt")
@@ -471,15 +450,12 @@ class LinuxManifest(ViewerManifest):
471 450
472 # Create an appropriate gridargs.dat for this package, denoting required grid. 451 # Create an appropriate gridargs.dat for this package, denoting required grid.
473 self.put_in_file(self.flags_list(), 'gridargs.dat') 452 self.put_in_file(self.flags_list(), 'gridargs.dat')
474 # set proper login url
475 self.replace_login_url()
476 453
477 # stripping all the libs removes a few megabytes from the end-user package 454 # stripping all the libs removes a few megabytes from the end-user package
478 for s,d in self.file_list: 455 for s,d in self.file_list:
479 if re.search("lib/lib.+\.so.*", d): 456 if re.search("lib/lib.+\.so.*", d):
480 self.run_command('strip -S %s' % d) 457 self.run_command('strip -S %s' % d)
481 458
482
483 def package_finish(self): 459 def package_finish(self):
484 if(self.args.has_key('installer_name')): 460 if(self.args.has_key('installer_name')):
485 installer_name = self.args['installer_name'] 461 installer_name = self.args['installer_name']
@@ -491,6 +467,15 @@ class LinuxManifest(ViewerManifest):
491 else: 467 else:
492 installer_name += '_' + self.channel_oneword().upper() 468 installer_name += '_' + self.channel_oneword().upper()
493 469
470 # Fix access permissions
471 self.run_command("""
472 find %(dst)s -type d | xargs chmod 755;
473 find %(dst)s -type f -perm 0700 | xargs chmod 0755;
474 find %(dst)s -type f -perm 0500 | xargs chmod 0555;
475 find %(dst)s -type f -perm 0600 | xargs chmod 0644;
476 find %(dst)s -type f -perm 0400 | xargs chmod 0444;
477 true""" % {'dst':self.get_dst_prefix() })
478
494 # temporarily move directory tree so that it has the right name in the tarfile 479 # temporarily move directory tree so that it has the right name in the tarfile
495 self.run_command("mv %(dst)s %(inst)s" % {'dst':self.get_dst_prefix(),'inst':self.src_path_of(installer_name)}) 480 self.run_command("mv %(dst)s %(inst)s" % {'dst':self.get_dst_prefix(),'inst':self.src_path_of(installer_name)})
496 # --numeric-owner hides the username of the builder for security etc. 481 # --numeric-owner hides the username of the builder for security etc.