Commits

Bryan O'Sullivan  committed 0577924 Merge

Merge

  • Participants
  • Parent commits b09f3a2, 76795f5

Comments (0)

Files changed (25)

File .hgignore

File contents unchanged.

File indra/develop.py

         return ('"%sdevenv.com" %s.sln /build %s' % 
                 (self.find_visual_studio(), self.project_name, self.build_type))
 
-    def run(self, command, name=None):
+    def run(self, command, name=None, retry_on=None, retries=1):
         '''Run a program.  If the program fails, raise an exception.'''
-        ret = os.system(command)
-        if ret:
-            if name is None:
-                name = command.split(None, 1)[0]
-            path = self.find_in_path(name)
-            if not path:
-                ret = 'was not found'
-            else:
-                ret = 'exited with status %d' % ret
-            raise CommandError('the command %r %s' %
-                               (name, ret))
+        while retries:
+            retries = retries - 1
+            ret = os.system(command)
+            if ret:
+                if name is None:
+                    name = command.split(None, 1)[0]
+                path = self.find_in_path(name)
+                if not path:
+                    error = 'was not found'
+                else:
+                    error = 'exited with status %d' % ret
+                if retry_on is not None and retry_on == ret:
+                    print "Retrying... the command %r %s" % (name, error)
+                else:
+                    raise CommandError('the command %r %s' % (name, error))
 
     def run_cmake(self, args=[]):
         '''Override to add the vstool.exe call after running cmake.'''
                     for t in targets:
                         cmd = '%s /project %s %s' % (build_cmd, t, ' '.join(opts))
                         print 'Running %r in %r' % (cmd, d)
-                        self.run(cmd)
+                        self.run(cmd, retry_on=4, retries=3)
                 else:
                     cmd = '%s %s' % (build_cmd, ' '.join(opts))
                     print 'Running %r in %r' % (cmd, d)
-                    self.run(cmd)
+                    self.run(cmd, retry_on=4, retries=3)
             finally:
                 os.chdir(cwd)
                 

File indra/lib/python/indra/util/llversion.py

     return output
 
 def get_hg_changeset():
-    status, output = commands.getstatusoutput('hg id -i')
+    # The right thing to do:
+    # status, output = commands.getstatusoutput('hg id -i')
+    # if status:
+    #     print >> sys.stderr, output
+    #    sys.exit(1)
+
+    # The temporary hack:
+    status, output = commands.getstatusoutput('hg parents --template "{rev}"')
     if status:
         print >> sys.stderr, output
         sys.exit(1)
-    return output
+    lines = output.splitlines()
+    if len(lines) > 1:
+        print >> sys.stderr, 'ERROR: working directory has %d parents' % len(lines)
+    return lines[0]
 
 def using_svn():
     return os.path.isdir(os.path.join(get_src_root(), '.svn'))

File indra/llcommon/CMakeLists.txt

 
 include(LLAddBuildTest)
 SET(llcommon_TEST_SOURCE_FILES
-  # WARNING: Please don't write tests against LLCommon or LLMath until this issue is resolved: https://jira.lindenlab.com/jira/browse/DEV-29456
-  # lllazy.cpp
   )
 LL_ADD_PROJECT_UNIT_TESTS(llcommon "${llcommon_TEST_SOURCE_FILES}")
 
 #set(TEST_DEBUG on)
 set(test_libs llcommon ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES} gmock gtest)
+# Have to treat lllazy test as an integration test until this issue is resolved:
+# https://jira.lindenlab.com/jira/browse/DEV-29456
 LL_ADD_INTEGRATION_TEST(lllazy lllazy.cpp "${test_libs}")
 
 # *TODO - reenable these once tcmalloc libs no longer break the build.

File indra/llcommon/llversionserver.h

 const S32 LL_VERSION_MAJOR = 1;
 const S32 LL_VERSION_MINOR = 31;
 const S32 LL_VERSION_PATCH = 0;
-const S32 LL_VERSION_BUILD = 0;
+const S32 LL_VERSION_BUILD = 2425;
 
 const char * const LL_CHANNEL = "Second Life Server";
 

File indra/llcommon/llversionviewer.h

 const S32 LL_VERSION_MAJOR = 2;
 const S32 LL_VERSION_MINOR = 0;
 const S32 LL_VERSION_PATCH = 0;
-const S32 LL_VERSION_BUILD = 0;
+const S32 LL_VERSION_BUILD = 2425;
 
 const char * const LL_CHANNEL = "Second Life 2009";
 

File indra/llmath/CMakeLists.txt

 
 include(LLAddBuildTest)
 SET(llmath_TEST_SOURCE_FILES
-  # WARNING: Please don't write tests against LLCommon or LLMath until this issue is resolved: https://jira.lindenlab.com/jira/browse/DEV-29456
+  # nat 2009-08-28: found this commented out and considered implementing it
+  # using LL_ADD_INTEGRATION_TEST, but there's no llvolume_test.cpp source?
   # llvolume.cpp
   )
 LL_ADD_PROJECT_UNIT_TESTS(llmath "${llmath_TEST_SOURCE_FILES}")

File indra/llmessage/CMakeLists.txt

       )
 
     LL_ADD_PROJECT_UNIT_TESTS(llmessage "${llmessage_TEST_SOURCE_FILES}")
-    
-    # Commented out - see rationale at bottom of newview's build file + poppy 2009-06-05
-    # Don't make llmessage depend on llsdmessage_test because ADD_COMM_BUILD_TEST depends on llmessage!
-    # ADD_COMM_BUILD_TEST(llsdmessage "" "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llsdmessage_peer.py")
 ENDIF (NOT LINUX AND VIEWER)
 

File indra/llmessage/llcachename.cpp

 // This is a little bit kludgy. LLCacheNameCallback is a slot instead of a function pointer.
 //  The reason it is a slot is so that the legacy get() function below can bind an old callback
 //  and pass it as a slot. The reason it isn't a boost::function is so that trackable behavior
-//  deson't get lost. As a result, we have to bind the slot to a signal to call it, even when
+//  doesn't get lost. As a result, we have to bind the slot to a signal to call it, even when
 //  we call it immediately. -Steve
 // NOTE: Even though passing first and last name is a bit of extra overhead, it eliminates the
 //  potential need for any parsing should any code need to handle first and last name independently.

File indra/newview/CMakeLists.txt

 include(LLAddBuildTest)
 SET(viewer_TEST_SOURCE_FILES
   llagentaccess.cpp
-  # Not *actually* a unit test, it's an integration test.
-  # Because it won't work in the new unit test iface, i've commented out
-  # and notified Nat. Delete this when it's replaced!
-  # + poppy & brad 2009-06-05
-  # llcapabilitylistener.cpp
   )
 set_source_files_properties(
   ${viewer_TEST_SOURCE_FILES}
         )
 endif (WINDOWS)
 
-if (DARWIN)
-# Don't do this here -- it's taken care of by viewer_manifest.py
-#  add_custom_command(TARGET ${VIEWER_BINARY_NAME} POST_BUILD
-#    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin/
-#    DEPENDS ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib
-#  )
-endif (DARWIN)

File indra/newview/English.lproj/InfoPlist.strings

 
 CFBundleName = "Second Life";
 
-CFBundleShortVersionString = "Second Life version 2.0.0.0";
-CFBundleGetInfoString = "Second Life version 2.0.0.0, Copyright 2004-2009 Linden Research, Inc.";
+CFBundleShortVersionString = "Second Life version 2.0.0.2425";
+CFBundleGetInfoString = "Second Life version 2.0.0.2425, Copyright 2004-2009 Linden Research, Inc.";
 

File indra/newview/Info-SecondLife.plist

 		</dict>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>2.0.0.0</string>
+	<string>2.0.0.2425</string>
 	<key>CSResourcesFileMapped</key>
 	<true/>
 </dict>

File indra/newview/app_settings/settings.xml

       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>AgentPause</key>
+    <map>
+      <key>Comment</key>
+      <string>Ask the simulator to stop updating the agent while enabled</string>
+      <key>Persist</key>
+      <integer>0</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
     <key>AlertedUnsupportedHardware</key>
     <map>
       <key>Comment</key>

File indra/newview/llviewercontrol.cpp

 	return true;
 }
 
+bool toggle_agent_pause(const LLSD& newvalue)
+{
+	if ( newvalue.asBoolean() )
+	{
+		send_agent_pause();
+	}
+	else
+	{
+		send_agent_resume();
+	}
+	return true;
+}
+
 ////////////////////////////////////////////////////////////////////////////
 
 void settings_setup_listeners()
 	gSavedSettings.getControl("VelocityInterpolate")->getSignal()->connect(boost::bind(&handleVelocityInterpolate, _2));
 	gSavedSettings.getControl("QAMode")->getSignal()->connect(boost::bind(&show_debug_menus));
 	gSavedSettings.getControl("UseDebugMenus")->getSignal()->connect(boost::bind(&show_debug_menus));
+	gSavedSettings.getControl("AgentPause")->getSignal()->connect(boost::bind(&toggle_agent_pause, _2));
 }
 
 #if TEST_CACHED_CONTROL

File indra/newview/res/viewerRes.rc

 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,0,0,0
- PRODUCTVERSION 2,0,0,0
+ FILEVERSION 2,0,0,2425
+ PRODUCTVERSION 2,0,0,2425
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
         BEGIN
             VALUE "CompanyName", "Linden Lab"
             VALUE "FileDescription", "Second Life"
-            VALUE "FileVersion", "2.0.0.0"
+            VALUE "FileVersion", "2.0.0.2425"
             VALUE "InternalName", "Second Life"
             VALUE "LegalCopyright", "Copyright � 2001-2008, Linden Research, Inc."
             VALUE "OriginalFilename", "SecondLife.exe"
             VALUE "ProductName", "Second Life"
-            VALUE "ProductVersion", "2.0.0.0"
+            VALUE "ProductVersion", "2.0.0.2425"
         END
     END
     BLOCK "VarFileInfo"

File indra/newview/skins/default/xui/en/menu_viewer.xml

          layout="topleft"
          name="Network"
          tear_off="true">
+            <menu_item_check
+             label="Pause Agent"
+             layout="topleft"
+             name="AgentPause">
+                <menu_item_check.on_check
+                 function="CheckControl"
+                 parameter="AgentPause" />
+                <menu_item_check.on_click
+                 function="ToggleControl"
+                 parameter="AgentPause" />
+            </menu_item_check>
             <menu_item_call
              label="Enable Message Log"
              layout="topleft"

File indra/newview/skins/default/xui/en/panel_profile.xml

          top_pad="15"
          value="Account Status:"
          width="100" />
-        <link
+       <!-- <link
          type="string"
          follows="left|top"
          font="SansSerifSmall"
          name="my_account_link"
          top_delta="0"
 	 value="Go to Dashboard"
-         width="100"/>
+         width="100"/> -->
         <text
          follows="left|top|right"
          height="15"
          top_pad="15"
          value="Partner:"
          width="100" />
-	<link
+	<!--<link
          follows="left|top"
          height="15"
 	 font.style="UNDERLINE"
          name="partner_edit_link"
          top_delta="0"
          value="Edit"
-         width="100" />
+         width="100" />  -->
         <panel
          follows="left|top|right"
          height="15"
          layout="topleft"
          left="10"
          name="partner_data_panel"
-         top_pad="10"
+         top_pad="5"
          width="255">
             <text
              follows="left|top|right"
-             height="30"
+             height="15"
              layout="topleft"
              left="0"
              name="partner_text"

File indra/newview/skins/default/xui/en/widgets/filter_editor.xml

-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<filter_editor select_on_focus="true"
-               background_image_disabled="TextField_Search_Disabled"
-               background_image_focused="TextField_Search_Active">
-  <clear_filter_button label="" 
-                       image_unselected="Icon_Close_Foreground"
-                       image_selected="Icon_Close_Press" />
-</filter_editor>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<filter_editor select_on_focus="true"
+               background_image_disabled="TextField_Search_Disabled"
+               background_image_focused="TextField_Search_Active">
+  <clear_filter_button label="" 
+                       image_unselected="Icon_Close_Foreground"
+                       image_selected="Icon_Close_Press" />
+</filter_editor>

File indra/newview/skins/default/xui/en/widgets/list_view.xml

-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<list_view
-  fg_selected_color="ListViewSelectedFgColor"
-  bg_selected_color="ListViewSelectedBgColor"
-  bg_color="ListViewBgColor"
-  />
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<list_view
+  fg_selected_color="ListViewSelectedFgColor"
+  bg_selected_color="ListViewSelectedBgColor"
+  bg_color="ListViewBgColor"
+  />

File indra/newview/skins/default/xui/en/widgets/split_button.xml

-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<split_button 
- font="SansSerifSmall"
- arrow_position="left"
- follows="right|top">
-    <split_button.arrow_button 
-     name="Arrow Button"
-     label=""
-     font="SansSerifSmall"
-     scale_image="true"
-     image_selected="camera_presets/camera_presets_arrow.png"
-     image_unselected="camera_presets/camera_presets_arrow.png"
-     image_disabled_selected="camera_presets/camera_presets_arrow.png" 
-     image_disabled="camera_presets/camera_presets_arrow.png"
-     width="10"/>
-    <split_button.items_panel
-     background_visible="true"
-     border="true"
-     bg_alpha_color="1 1 1 1"
-     bg_opaq_color="1 1 1 1"
-     layout="topleft"
-     name="item_buttons"
-    />
-</split_button>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<split_button 
+ font="SansSerifSmall"
+ arrow_position="left"
+ follows="right|top">
+    <split_button.arrow_button 
+     name="Arrow Button"
+     label=""
+     font="SansSerifSmall"
+     scale_image="true"
+     image_selected="camera_presets/camera_presets_arrow.png"
+     image_unselected="camera_presets/camera_presets_arrow.png"
+     image_disabled_selected="camera_presets/camera_presets_arrow.png" 
+     image_disabled="camera_presets/camera_presets_arrow.png"
+     width="10"/>
+    <split_button.items_panel
+     background_visible="true"
+     border="true"
+     bg_alpha_color="1 1 1 1"
+     bg_opaq_color="1 1 1 1"
+     layout="topleft"
+     name="item_buttons"
+    />
+</split_button>

File indra/newview/skins/default/xui/en/widgets/tab_container.xml

                tab_max_width="150"
                tab_top_image_unselected="TabTop_Middle_Off"
                tab_top_image_selected="TabTop_Middle_Selected"
-               tab_bottom_image_unselected="tab_bottom_blue.tga"
-               tab_bottom_image_selected="tab_bottom_selected_blue.tga"
+               tab_bottom_image_unselected="Toolbar_Left_Off"
+               tab_bottom_image_selected="Toolbar_Left_Selected"
                tab_left_image_unselected="TabTop_Left_Off"
                tab_left_image_selected="TabTop_Left_Selected"/>

File indra/newview/viewer_manifest.py

         self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile))
         # self.remove(self.dst_path_of(tempfile))
         # If we're on a build machine, sign the code using our Authenticode certificate. JC
-        sign_py = 'C:\\buildscripts\\code-signing\\sign.py'
+        sign_py = os.path.expandvars("${SIGN}")
+        if not sign_py or sign_py == "${SIGN}":
+            sign_py = 'C:\\buildscripts\\code-signing\\sign.py'
+        else:
+            sign_py = sign_py.replace('\\', '\\\\\\\\')
+        python = os.path.expandvars("${PYTHON}")
+        if not python or python == "${PYTHON}":
+            python = 'python'
         if os.path.exists(sign_py):
-            self.run_command(sign_py + ' ' + self.dst_path_of(installer_file))
+            self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of(installer_file).replace('\\', '\\\\\\\\')))
         else:
             print "Skipping code signing,", sign_py, "does not exist"
         self.created_path(self.dst_path_of(installer_file))

File indra/test_apps/llplugintest/llmediaplugintest.cpp

 /**
- * @file LLMediaPluginTest2.cpp
+ * @file LLMediaPluginTest.cpp
  * @brief Primary test application for LLMedia (Separate Process) Plugin system
  *
  * $LicenseInfo:firstyear=2008&license=viewergpl$
 	resetView();
 
 	// initial media panel
-	//const int num_initial_panels = 4;
-	//for( int i = 0; i < num_initial_panels; ++i )
-	//{
-	//	addMediaPanel( mBookmarks[ rand() % ( mBookmarks.size() - 1 ) + 1 ].second );
-	//};
 
-	// always add a Web panel for testing
-	addMediaPanel( "http://www.google.com" );
+	const int num_initial_panels = 1;
+	for( int i = 0; i < num_initial_panels; ++i )
+	{
+		//addMediaPanel( mBookmarks[ rand() % ( mBookmarks.size() - 1 ) + 1 ].second );
+		addMediaPanel( mHomeWebUrl );
+	};
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 
 	const int app_window_x = 80;
 	const int app_window_y = 0;
-	const int app_window_width = 964;
-	const int app_window_height = 964;
+	const int app_window_width = 960;
+	const int app_window_height = 960;
 
 	glutInitWindowPosition( app_window_x, app_window_y );
 	glutInitWindowSize( app_window_width, app_window_height );
 
-	int app_window_handle = glutCreateWindow( "LLMediaPluginTest2" );
+	int app_window_handle = glutCreateWindow( "LLMediaPluginTest" );
 
 	glutDisplayFunc( glutDisplay );
 

File indra/test_apps/llplugintest/llmediaplugintest.h

 /**
- * @file LLMediaPluginTest2.cpp
+ * @file LLMediaPluginTest.cpp
  * @brief Primary test application for LLMedia (Separate Process) Plugin system
  *
  * $LicenseInfo:firstyear=2008&license=viewergpl$

File scripts/update_version_files.py

File contents unchanged.