diff options
| -rw-r--r-- | autobuild.xml | 58 | ||||
| -rw-r--r-- | indra/cmake/ViewerManager.cmake | 2 | ||||
| -rwxr-xr-x | indra/cmake/run_build_test.py | 2 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 53 | ||||
| -rw-r--r-- | indra/newview/llappviewer.h | 2 | ||||
| -rw-r--r-- | indra/newview/llversioninfo.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/tests/lllogininstance_test.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/tests/llversioninfo_test.cpp | 6 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 75 | 
9 files changed, 127 insertions, 76 deletions
| diff --git a/autobuild.xml b/autobuild.xml index 41bdf287ac..db44209eca 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3007,6 +3007,64 @@          <key>version</key>          <string>0.8.0.1</string>        </map> +      <key>viewer-manager</key> +      <map> +        <key>copyright</key> +        <string>Copyright (c) 2000-2012, Linden Research, Inc.</string> +        <key>description</key> +        <string>Linden Lab Viewer Management Process suite.</string> +        <key>license</key> +        <string>Proprietary</string> +        <key>license_file</key> +        <string>LICENSE</string> +        <key>name</key> +        <string>viewer-manager</string> +        <key>platforms</key> +        <map> +          <key>darwin64</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>db1da9e5c06338c2f37d781b42d41e54</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3525/9029/viewer_manager-1.0-darwin64-503513.tar.bz2</string> +            </map> +            <key>name</key> +            <string>darwin64</string> +          </map> +          <key>linux</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>8c7f32f85850248809ae811ba8e47d81</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3428/8686/viewer_manager-1.0-linux-503417.tar.bz2</string> +            </map> +            <key>name</key> +            <string>linux</string> +          </map> +          <key>windows</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>a431b47b3d6fd8798ae6f99867d8f058</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3526/9035/viewer_manager-1.0-windows-503513.tar.bz2</string> +            </map> +            <key>name</key> +            <string>windows</string> +          </map> +        </map> +        <key>source</key> +        <string>https://bitbucket.org/lindenlab/vmp-standalone</string> +        <key>source_type</key> +        <string>hg</string> +        <key>version</key> +        <string>1.0</string> +      </map>        <key>vlc-bin</key>        <map>          <key>copyright</key> diff --git a/indra/cmake/ViewerManager.cmake b/indra/cmake/ViewerManager.cmake new file mode 100644 index 0000000000..793ed78b6c --- /dev/null +++ b/indra/cmake/ViewerManager.cmake @@ -0,0 +1,2 @@ +include (Prebuilt) +use_prebuilt_binary(viewer-manager)
\ No newline at end of file diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py index f02c5e98b4..210e43b232 100755 --- a/indra/cmake/run_build_test.py +++ b/indra/cmake/run_build_test.py @@ -312,7 +312,7 @@ if __name__ == "__main__":      import argparse      parser = argparse.ArgumentParser()      parser.add_argument("-d", "--debug", dest="loglevel", action="store_const", -                        const=logging.DEBUG, default=logging.WARNING) +                        const=logging.DEBUG, default=logging.INFO)      parser.add_argument("-D", "--define", dest="vars", default=[], action="append",                          metavar="VAR=value",                          help="Add VAR=value to the env variables defined") diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 394a9c8578..7a62d8baec 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -47,6 +47,7 @@ include(TemplateCheck)  include(UI)  include(UnixInstall)  include(ViewerMiscLibs) +include(ViewerManager)  include(VisualLeakDetector)  include(ZLIB)  include(URIPARSER) @@ -1756,58 +1757,6 @@ if (WINDOWS)             ${SHARED_LIB_STAGING_DIR}/Debug/fmodexL.dll            )      endif (FMODEX) - -    get_filename_component(PYTHON_DIRECTORY ${PYTHON_EXECUTABLE} DIRECTORY) - -    # http://pythonhosted.org/PyInstaller/#options -    add_custom_command( -    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/SL_Launcher.exe -    COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe -    ARGS -       --onefile  -       --log-level WARN -       --distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}  -            ${CMAKE_SOURCE_DIR}/viewer_components/manager/SL_Launcher -    COMMENT "Performing pyinstaller compile of SL_Launcher" -) - -    add_custom_command( -    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/apply_update.exe -    COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe -    ARGS -       --onefile  -       --log-level WARN -       --distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}  -            ${CMAKE_SOURCE_DIR}/viewer_components/manager/apply_update.py -    COMMENT "Performing pyinstaller compile of updater" -) - -    add_custom_command( -    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/download_update.exe -    COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe -    ARGS -       --onefile  -       --log-level WARN -       --distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}  -            ${CMAKE_SOURCE_DIR}/viewer_components/manager/download_update.py -    COMMENT "Performing pyinstaller compile of update downloader" -) - -    add_custom_command( -    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/update_manager.exe -    COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe -    ARGS -       --onefile  -       --log-level WARN -       --distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}  -            ${CMAKE_SOURCE_DIR}/viewer_components/manager/update_manager.py -    COMMENT "Performing pyinstaller compile of update manager" -) - -add_custom_target(compile_w_viewer_launcher ALL DEPENDS ${CMAKE_CFG_INTDIR}/SL_Launcher.exe) -add_custom_target(compile_w_viewer_updater ALL DEPENDS ${CMAKE_CFG_INTDIR}/apply_update.exe) -add_custom_target(compile_w_viewer_downloader ALL DEPENDS ${CMAKE_CFG_INTDIR}/download_update.exe) -add_custom_target(compile_w_viewer_update_manager ALL DEPENDS ${CMAKE_CFG_INTDIR}/update_manager.exe)      add_custom_command(        OUTPUT  ${CMAKE_CFG_INTDIR}/copy_touched.bat diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 702f7efa21..c4782ed216 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -311,6 +311,8 @@ private:  	// llcorehttp library init/shutdown helper  	LLAppCoreHttp mAppCoreHttp; +        bool mIsFirstRun; +  };  // consts from viewer.h diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp index 375dce485d..bf9d98ee91 100644 --- a/indra/newview/llversioninfo.cpp +++ b/indra/newview/llversioninfo.cpp @@ -64,6 +64,7 @@ S32 LLVersionInfo::getPatch()  //static  S32 LLVersionInfo::getBuild()  { +    std::cout << "What we have IN llversioninfo: " << LL_VIEWER_VERSION_BUILD << std::endl;  	return LL_VIEWER_VERSION_BUILD;  } diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp index 55dcb83567..3b7ec48d61 100644 --- a/indra/newview/tests/lllogininstance_test.cpp +++ b/indra/newview/tests/lllogininstance_test.cpp @@ -31,6 +31,9 @@  #include "../llviewernetwork.h"  #include "../lllogininstance.h" + // Needed for Auth Test + #include "../llhasheduniqueid.h" +  // STL headers  // std headers  // external library headers @@ -187,7 +190,6 @@ void LLUIColorTable::saveUserSettings(void)const {}  #include "../llversioninfo.h"  const std::string &LLVersionInfo::getVersion() { return VIEWERLOGIN_VERSION; }  const std::string &LLVersionInfo::getChannel() { return VIEWERLOGIN_CHANNEL; } -const int MD5HEX_STR_SIZE = 33;  // char hex[MD5HEX_STR_SIZE]; with null  bool llHashedUniqueID(unsigned char* id)   { diff --git a/indra/newview/tests/llversioninfo_test.cpp b/indra/newview/tests/llversioninfo_test.cpp index f1f69f33f1..2f7a4e9601 100644 --- a/indra/newview/tests/llversioninfo_test.cpp +++ b/indra/newview/tests/llversioninfo_test.cpp @@ -29,6 +29,8 @@  #include "../llversioninfo.h" + #include <iostream> +  // LL_VIEWER_CHANNEL is a macro defined on the compiler command line. The  // macro expands to the string name of the channel, but without quotes. We  // need to turn it into a quoted string. This macro trick does that. @@ -81,7 +83,9 @@ namespace tut  	template<> template<>  	void versioninfo_object_t::test<1>() -	{ +	{    +		std::cout << "What we parsed from CMake: " << LL_VIEWER_VERSION_BUILD << std::endl; +		std::cout << "What we get from llversioninfo: " << LLVersionInfo::getBuild() << std::endl;  		ensure_equals("Major version",   					  LLVersionInfo::getMajor(),   					  LL_VIEWER_VERSION_MAJOR); diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 0506fc553e..859ca8f9d6 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -223,7 +223,7 @@ class ViewerManifest(LLManifest):          return channel_type      def channel_variant_app_suffix(self): -        # get any part of the compiled channel name after the CHANNEL_VENDOR_BASE +        # get any part of the channel name after the CHANNEL_VENDOR_BASE          suffix=self.channel_variant()          # by ancient convention, we don't use Release in the app name          if self.channel_type() == 'release': @@ -342,19 +342,42 @@ class WindowsManifest(ViewerManifest):          pkgdir = os.path.join(self.args['build'], os.pardir, 'packages')          relpkgdir = os.path.join(pkgdir, "lib", "release")          debpkgdir = os.path.join(pkgdir, "lib", "debug") +        vmpdir = os.path.join(pkgdir, "VMP") +        llbasedir = os.path.join(pkgdir, "llbase")          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()) -            # include the compiled launcher script so that it gets included in the file_list -            self.path(src='%s/SL_Launcher.exe' % self.args['configuration'], dst="SL_Launcher.exe") + +            # include the compiled launcher scripts so that it gets included in the file_list +            self.path(src='%s/apply_update.exe' % vmpdir, dst="apply_update.exe") +            self.path(src='%s/download_update.exe' % vmpdir, dst="download_update.exe") +            self.path(src='%s/SL_Launcher.exe' % vmpdir, dst="SL_Launcher.exe") +            self.path(src='%s/update_manager.exe' % vmpdir, dst="update_manager.exe") + +            #IUM is not normally executed directly, just imported.  No exe needed. +            self.path2basename(vmpdir,"InstallerUserMessage.py") + +            #VMP  Tkinter icons +            if self.prefix("vmp_icons"): +                self.path("*.png") +                self.path("*.gif") +                self.end_prefix("vmp_icons") + +            #before, we only needed llbase at build time.  With VMP, we need it at run time. +            llbase_path = os.path.join(self.get_dst_prefix(),'llbase') +            if not os.path.exists(llbase_path): +                os.makedirs(llbase_path) +            if self.prefix(dst="llbase"): +                self.path2basename(llbasedir,"*.py") +                self.path2basename(llbasedir,"_cllsd.so") +                self.end_prefix()          # Plugin host application          self.path2basename(os.path.join(os.pardir,                                          'llplugin', 'slplugin', self.args['configuration']),                             "slplugin.exe") -        #note, launcher and friends do not need viewer_manifest in Windows as the scripts are compiled into executables          # Get shared libs from the shared libs staging directory          if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),                         dst=""): @@ -687,7 +710,17 @@ class WindowsManifest(ViewerManifest):          if not python or python == "${PYTHON}":              python = 'python'          if os.path.exists(sign_py): +            print "about to run signing of: ", self.dst_path_of(installer_file).replace('\\', '\\\\\\\\')              self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of(installer_file).replace('\\', '\\\\\\\\'))) +            #Unlike the viewer binary, the VMP filenames are invariant with respect to version, os, etc. +            print "about to run signing of: ", self.dst_path_of("apply_update.exe").replace('\\', '\\\\\\\\') +            self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("apply_update.exe").replace('\\', '\\\\\\\\'))) +            print "about to run signing of: ", self.dst_path_of("download_update.exe").replace('\\', '\\\\\\\\') +            self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("download_update.exe").replace('\\', '\\\\\\\\'))) +            print "about to run signing of: ", self.dst_path_of("SL_Launcher.exe").replace('\\', '\\\\\\\\') +            self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("SL_Launcher.exe").replace('\\', '\\\\\\\\'))) +            print "about to run signing of: ", self.dst_path_of("update_manager.exe").replace('\\', '\\\\\\\\') +            self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("update_manager.exe").replace('\\', '\\\\\\\\')))          else:              print "Skipping code signing,", sign_py, "does not exist"          self.created_path(self.dst_path_of(installer_file)) @@ -716,28 +749,29 @@ class DarwinManifest(ViewerManifest):          pkgdir = os.path.join(self.args['build'], os.pardir, 'packages')          relpkgdir = os.path.join(pkgdir, "lib", "release")          debpkgdir = os.path.join(pkgdir, "lib", "debug") -        llbasedir = os.path.join(pkgdir, os.pardir) +        vmpdir = os.path.join(pkgdir, "VMP") +        llbasedir = os.path.join(pkgdir, "llbase")          if self.prefix(src="", dst="Contents"):  # everything goes in Contents              self.path("Info.plist", dst="Info.plist")              # copy additional libs in <bundle>/Contents/MacOS/              self.path(os.path.join(relpkgdir, "libndofdev.dylib"), dst="Resources/libndofdev.dylib") -            self.path(os.path.join(relpkgdir, "libhunspell-1.3.0.dylib"), dst="Resources/libhunspell-1.3.0.dylib") +            self.path(os.path.join(relpkgdir, "libhunspell-1.3.0.dylib"), dst="Resources/libhunspell-1.3.0.dylib")                 if self.prefix(dst="MacOS"): -                self.path2basename("../viewer_components/updater/scripts/darwin", "*.py")                  #this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323 -                self.path2basename("../viewer_components/manager","SL_Launcher") -                self.path2basename("../viewer_components/manager","*.py") +                self.path2basename(vmpdir,"SL_Launcher") +                self.path2basename(vmpdir,"*.py")                  llbase_path = os.path.join(self.get_dst_prefix(),'llbase')                  if not os.path.exists(llbase_path):                      os.makedirs(llbase_path) +                #before, we only needed llbase at build time.  With VMP, we need it at run time.                  if self.prefix(dst="llbase"): -                    self.path2basename("../packages/llbase","*.py") -                    self.path2basename("../packages/llbase","_cllsd.so") +                    self.path2basename(llbasedir,"*.py") +                    self.path2basename(llbasedir,"_cllsd.so")                      self.end_prefix() -                self.end_prefix()          +                self.end_prefix()                # most everything goes in the Resources directory              if self.prefix(src="", dst="Resources"): @@ -756,6 +790,12 @@ class DarwinManifest(ViewerManifest):                      self.path("secondlife.icns")                      self.end_prefix(icon_path) +                #VMP Tkinter icons +                if self.prefix("vmp_icons"): +                    self.path("*.png") +                    self.path("*.gif") +                    self.end_prefix("vmp_icons") +                  self.path("SecondLife.nib")                  # Translations @@ -780,12 +820,6 @@ class DarwinManifest(ViewerManifest):                  self.path("uk.lproj")                  self.path("zh-Hans.lproj") -                #VMP icons -                if self.prefix("vmp_icons"): -                    self.path("*.png") -                    self.path("*.gif") -                    self.end_prefix("vmp_icons") -                  def path_optional(src, dst):                      """                      For a number of our self.path() calls, not only do we want @@ -1158,7 +1192,7 @@ 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.path2basename("../llplugin/slplugin", "SLPlugin") +            self.path2basename("../llplugin/slplugin", "SLPlugin")               #this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323              self.path2basename("../viewer_components/manager","SL_Launcher")              self.path2basename("../viewer_components/manager","*.py") @@ -1167,8 +1201,7 @@ class LinuxManifest(ViewerManifest):                  os.makedirs(llbase_path)              if self.prefix(dst="llbase"):                  self.path2basename("../packages/llbase","*.py") -                self.path2basename("../packages/llbase","_cllsd.so") -                self.end_prefix()             +                self.path2basename("../packages/llbase","_cllsd.so")                       self.end_prefix("bin")          if self.prefix("res-sdl"): | 
