diff options
| -rw-r--r-- | autobuild.xml | 10 | ||||
| -rw-r--r-- | indra/cmake/00-Common.cmake | 8 | ||||
| -rw-r--r-- | indra/cmake/Variables.cmake | 14 | ||||
| -rwxr-xr-x | indra/lib/python/indra/util/llmanifest.py | 45 | ||||
| -rw-r--r-- | indra/llcorehttp/tests/test_httprequest.hpp | 10 | ||||
| -rw-r--r-- | indra/llrender/llglslshader.cpp | 34 | ||||
| -rw-r--r-- | indra/llrender/llshadermgr.cpp | 9 | ||||
| -rw-r--r-- | indra/media_plugins/cef/media_plugin_cef.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/lllogininstance.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llpaneleditwearable.cpp | 72 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 15 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 22 | 
12 files changed, 135 insertions, 114 deletions
| diff --git a/autobuild.xml b/autobuild.xml index f20e032b9d..b5d71a1332 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3219,9 +3219,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>              <key>archive</key>              <map>                <key>hash</key> -              <string>679747d93ef5af5a949742dead99a67f</string> +              <string>0d65bb763808feffb6308914aa53272b</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8611/35499/viewer_manager-1.0.508600-darwin64-508600.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8942/38652/viewer_manager-1.0.508931-darwin64-508931.tar.bz2</string>              </map>              <key>name</key>              <string>darwin64</string> @@ -3243,9 +3243,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>              <key>archive</key>              <map>                <key>hash</key> -              <string>0f43fb27416a3848019581898e1ab524</string> +              <string>c235c6ef33f52b0130808fe57710fe35</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8612/35505/viewer_manager-1.0.508600-windows-508600.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8943/38658/viewer_manager-1.0.508931-windows-508931.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -3256,7 +3256,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>          <key>source_type</key>          <string>hg</string>          <key>version</key> -        <string>1.0.508600</string> +        <string>1.0.508931</string>        </map>        <key>vlc-bin</key>        <map> diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index b582b47f15..40fc706a99 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -19,9 +19,7 @@ set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")  include(Variables)  # We go to some trouble to set LL_BUILD to the set of relevant compiler flags. -set(CMAKE_CXX_FLAGS_RELEASE "$ENV{LL_BUILD_RELEASE}") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "$ENV{LL_BUILD_RELWITHDEBINFO}") -set(CMAKE_CXX_FLAGS_DEBUG "$ENV{LL_BUILD_DEBUG}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} $ENV{LL_BUILD}")  # Given that, all the flags you see added below are flags NOT present in  # https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables.  # Before adding new ones here, it's important to ask: can this flag really be @@ -156,6 +154,10 @@ if (DARWIN)    set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")    set(DARWIN_extra_cstar_flags "-Wno-unused-local-typedef -Wno-deprecated-declarations") +  # Ensure that CMAKE_CXX_FLAGS has the correct -g debug information format -- +  # see Variables.cmake. +  string(REPLACE "-gdwarf-2" "-g${CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT}" +    CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")    # The viewer code base can now be successfully compiled with -std=c++14. But    # turning that on in the generic viewer-build-variables/variables file would    # potentially require tweaking each of our ~50 third-party library builds. diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index e8698ace68..bd69c49856 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -155,6 +155,20 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")    string(REGEX MATCH " -g([^ ]*)" scratch "$ENV{LL_BUILD}")    set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "${CMAKE_MATCH_1}") +  # -gdwarf-2 is passed in LL_BUILD according to 00-COMPILE-LINK-RUN.txt. +  # However, when CMake 3.9.2 sees -gdwarf-2, it silently deletes the whole -g +  # switch, producing no symbols at all! The same thing happens if we specify +  # plain -g ourselves, i.e. CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT is +  # the empty string. Specifying -gdwarf-with-dsym or just -gdwarf drives a +  # different CMake behavior: it substitutes plain -g. As of 2017-09-19, +  # viewer-build-variables/variables still passes -gdwarf-2, which is the +  # no-symbols case. Set -gdwarf, triggering CMake to substitute plain -g -- +  # at least that way we should get symbols, albeit mangled ones. It Would Be +  # Nice if CMake's behavior could be predicted from a consistent mental +  # model, instead of only observed experimentally. +  string(REPLACE "dwarf-2" "dwarf" +    CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT +    "${CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT}")    message(STATUS "CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT = '${CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT}'")    string(REGEX MATCH "-O([^ ]*)" scratch "$ENV{LL_BUILD}") diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py index 0a39db2b21..d4e61aedd1 100755 --- a/indra/lib/python/indra/util/llmanifest.py +++ b/indra/lib/python/indra/util/llmanifest.py @@ -43,7 +43,9 @@ import subprocess  class ManifestError(RuntimeError):      """Use an exception more specific than generic Python RuntimeError""" -    pass +    def __init__(self, msg): +        self.msg = msg +        super(ManifestError, self).__init__(self.msg)  class MissingError(ManifestError):      """You specified a file that doesn't exist""" @@ -309,8 +311,11 @@ def main():                  continue              if touch:                  print 'Creating additional package for "', package_id, '" in ', args['dest'] -            wm = LLManifest.for_platform(args['platform'], args.get('arch'))(args) -            wm.do(*args['actions']) +            try: +                wm = LLManifest.for_platform(args['platform'], args.get('arch'))(args) +                wm.do(*args['actions']) +            except Exception as err: +                sys.exit(str(err))              if touch:                  print 'Created additional package ', wm.package_file, ' for ', package_id                  faketouch = base_touch_prefix + '/' + package_id + '/' + base_touch_postfix @@ -449,29 +454,17 @@ class LLManifest(object):          return path      def run_command(self, command): -        """ Runs an external command, and returns the output.  Raises -        an exception if the command returns a nonzero status code.  For -        debugging/informational purposes, prints out the command's -        output as it is received.""" +        """  +        Runs an external command.   +        Raises ManifestError exception if the command returns a nonzero status. +        """          print "Running command:", command          sys.stdout.flush() -        child = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, -                                 shell=True) -        lines = [] -        while True: -            lines.append(child.stdout.readline()) -            if lines[-1] == '': -                break -            else: -                print lines[-1], -        output = ''.join(lines) -        child.stdout.close() -        status = child.wait() -        if status: -            raise ManifestError( -                "Command %s returned non-zero status (%s) \noutput:\n%s" -                % (command, status, output) ) -        return output +        try: +            subprocess.check_call(command, shell=True) +        except subprocess.CalledProcessError as err: +            raise ManifestError( "Command %s returned non-zero status (%s)" +                                % (command, err.returncode) )      def created_path(self, path):          """ Declare that you've created a path in order to @@ -621,7 +614,7 @@ class LLManifest(object):          if self.includes(src, dst):              try:                  os.unlink(dst) -            except OSError, err: +            except OSError as err:                  if err.errno != errno.ENOENT:                      raise @@ -642,7 +635,7 @@ class LLManifest(object):              dstname = os.path.join(dst, name)              try:                  self.ccopymumble(srcname, dstname) -            except (IOError, os.error), why: +            except (IOError, os.error) as why:                  errors.append((srcname, dstname, why))          if errors:              raise ManifestError, errors diff --git a/indra/llcorehttp/tests/test_httprequest.hpp b/indra/llcorehttp/tests/test_httprequest.hpp index 45215ee0f4..b450f3502e 100644 --- a/indra/llcorehttp/tests/test_httprequest.hpp +++ b/indra/llcorehttp/tests/test_httprequest.hpp @@ -836,7 +836,7 @@ void HttpRequestTestObjectType::test<8>()  		ensure("Two handler calls on the way out", 2 == mHandlerCalls); -#if defined(WIN32) +#if 0 // defined(WIN32)  		// Can only do this memory test on Windows.  On other platforms,  		// the LL logging system holds on to memory and produces what looks  		// like memory leaks... @@ -947,7 +947,7 @@ void HttpRequestTestObjectType::test<9>()  		ensure("Two handler calls on the way out", 2 == mHandlerCalls); -#if defined(WIN32) +#if 0 // defined(WIN32)  		// Can only do this memory test on Windows.  On other platforms,  		// the LL logging system holds on to memory and produces what looks  		// like memory leaks... @@ -1183,7 +1183,7 @@ void HttpRequestTestObjectType::test<11>()  		ensure("Two handler calls on the way out", 2 == mHandlerCalls); -#if defined(WIN32) +#if 0 // defined(WIN32)  		// Can only do this memory test on Windows.  On other platforms,  		// the LL logging system holds on to memory and produces what looks  		// like memory leaks... @@ -1429,7 +1429,7 @@ void HttpRequestTestObjectType::test<13>()  		ensure("Two handler calls on the way out", 2 == mHandlerCalls); -#if defined(WIN32) +#if 0 // defined(WIN32)  		// Can only do this memory test on Windows.  On other platforms,  		// the LL logging system holds on to memory and produces what looks  		// like memory leaks... @@ -1663,7 +1663,7 @@ void HttpRequestTestObjectType::test<15>()  		ensure("Two handler calls on the way out", 2 == mHandlerCalls); -#if defined(WIN32) +#if 0 // defined(WIN32)  		// Can only do this memory test on Windows.  On other platforms,  		// the LL logging system holds on to memory and produces what looks  		// like memory leaks... diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 5d669fb955..970502f2d6 100644 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -408,7 +408,7 @@ BOOL LLGLSLShader::createShader(std::vector<LLStaticHashedString> * attributes,      {          GLhandleARB shaderhandle = LLShaderMgr::instance()->loadShaderFile((*fileIter).first, mShaderLevel, (*fileIter).second, &mDefines, mFeatures.mIndexedTextureChannels);          LL_DEBUGS("ShaderLoading") << "SHADER FILE: " << (*fileIter).first << " mShaderLevel=" << mShaderLevel << LL_ENDL; -        if (shaderhandle > 0) +        if (shaderhandle)          {              attachObject(shaderhandle);          } @@ -997,7 +997,7 @@ S32 LLGLSLShader::disableTexture(S32 uniform, LLTexUnit::eTextureType mode)  void LLGLSLShader::uniform1i(U32 index, GLint x)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1019,7 +1019,7 @@ void LLGLSLShader::uniform1i(U32 index, GLint x)  void LLGLSLShader::uniform1f(U32 index, GLfloat x)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1041,7 +1041,7 @@ void LLGLSLShader::uniform1f(U32 index, GLfloat x)  void LLGLSLShader::uniform2f(U32 index, GLfloat x, GLfloat y)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1064,7 +1064,7 @@ void LLGLSLShader::uniform2f(U32 index, GLfloat x, GLfloat y)  void LLGLSLShader::uniform3f(U32 index, GLfloat x, GLfloat y, GLfloat z)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1087,7 +1087,7 @@ void LLGLSLShader::uniform3f(U32 index, GLfloat x, GLfloat y, GLfloat z)  void LLGLSLShader::uniform4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1110,7 +1110,7 @@ void LLGLSLShader::uniform4f(U32 index, GLfloat x, GLfloat y, GLfloat z, GLfloat  void LLGLSLShader::uniform1iv(U32 index, U32 count, const GLint* v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1133,7 +1133,7 @@ void LLGLSLShader::uniform1iv(U32 index, U32 count, const GLint* v)  void LLGLSLShader::uniform1fv(U32 index, U32 count, const GLfloat* v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1156,7 +1156,7 @@ void LLGLSLShader::uniform1fv(U32 index, U32 count, const GLfloat* v)  void LLGLSLShader::uniform2fv(U32 index, U32 count, const GLfloat* v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1179,7 +1179,7 @@ void LLGLSLShader::uniform2fv(U32 index, U32 count, const GLfloat* v)  void LLGLSLShader::uniform3fv(U32 index, U32 count, const GLfloat* v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1202,7 +1202,7 @@ void LLGLSLShader::uniform3fv(U32 index, U32 count, const GLfloat* v)  void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1225,7 +1225,7 @@ void LLGLSLShader::uniform4fv(U32 index, U32 count, const GLfloat* v)  void LLGLSLShader::uniformMatrix2fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1242,7 +1242,7 @@ void LLGLSLShader::uniformMatrix2fv(U32 index, U32 count, GLboolean transpose, c  void LLGLSLShader::uniformMatrix3fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1259,7 +1259,7 @@ void LLGLSLShader::uniformMatrix3fv(U32 index, U32 count, GLboolean transpose, c  void LLGLSLShader::uniformMatrix3x4fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)  { -	if (mProgramObject > 0) +	if (mProgramObject)  	{	  		if (mUniform.size() <= index)  		{ @@ -1276,7 +1276,7 @@ void LLGLSLShader::uniformMatrix3x4fv(U32 index, U32 count, GLboolean transpose,  void LLGLSLShader::uniformMatrix4fv(U32 index, U32 count, GLboolean transpose, const GLfloat *v)  { -    if (mProgramObject > 0) +    if (mProgramObject)      {             if (mUniform.size() <= index)          { @@ -1294,7 +1294,7 @@ void LLGLSLShader::uniformMatrix4fv(U32 index, U32 count, GLboolean transpose, c  GLint LLGLSLShader::getUniformLocation(const LLStaticHashedString& uniform)  {      GLint ret = -1; -    if (mProgramObject > 0) +    if (mProgramObject)      {          LLStaticStringTable<GLint>::iterator iter = mUniformMap.find(uniform);          if (iter != mUniformMap.end()) @@ -1318,7 +1318,7 @@ GLint LLGLSLShader::getUniformLocation(const LLStaticHashedString& uniform)  GLint LLGLSLShader::getUniformLocation(U32 index)  {      GLint ret = -1; -    if (mProgramObject > 0) +    if (mProgramObject)      {          llassert(index < mUniform.size());          return mUniform[index]; diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index 07356940f1..e721ad93fa 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -779,11 +779,13 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  	unsigned char flags = flag_write_to_out_of_extra_block_area; -	GLuint out_of_extra_block_counter = 0, start_shader_code = shader_code_count; +	GLuint out_of_extra_block_counter = 0, start_shader_code = shader_code_count, file_lines_count = 0;  	while(NULL != fgets((char *)buff, 1024, file)  		  && shader_code_count < (LL_ARRAY_SIZE(shader_code_text) - LL_ARRAY_SIZE(extra_code_text)))  	{ +		file_lines_count++; +  		bool extra_block_area_found = NULL != strstr((const char*)buff, "[EXTRA_CODE_HERE]");  		if(extra_block_area_found && !(flag_extra_block_marker_was_found & flags)) @@ -840,6 +842,11 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  			shader_code_text[n] = extra_code_text[n - start_shader_code];  		} +		if (file_lines_count < extra_code_count) +		{ +			shader_code_count += extra_code_count; +		} +  		extra_code_count = 0;  	} diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 34a0931220..74a0febe3c 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -448,7 +448,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  				dullahan::dullahan_settings settings;  				settings.accept_language_list = mHostLanguage; -				settings.background_color = 0xffffff; +				settings.background_color = 0xffffffff;  				settings.cache_enabled = true;  				settings.cache_path = mCachePath;  				settings.cookie_store_path = mCookiePath; diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index bb55a3a6c0..242a845abe 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -330,10 +330,12 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)          data["VERSION"] = required_version;          LLNotificationsUtil::add("RequiredUpdate", data, LLSD::emptyMap(), boost::bind(&LLLoginInstance::handleLoginDisallowed, this, _1, _2));      } -    else if(reason_response == "key") +    else if(   reason_response == "key" +            || reason_response == "presence" +            || reason_response == "connect" +            )      { -        // this is a password problem or other restriction -        // an appropriate message has already been displayed +        // these are events that have already been communicated elsewhere          attemptComplete();      }      else diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp index f2d43a1037..a46fb3dfeb 100644 --- a/indra/newview/llpaneleditwearable.cpp +++ b/indra/newview/llpaneleditwearable.cpp @@ -129,9 +129,9 @@ public:                  WearableEntry(LLWearableType::EType type,                                            const std::string &title,                                            const std::string &desc_title, -                                          U8 num_color_swatches,  // number of 'color_swatches' -                                          U8 num_texture_pickers, // number of 'texture_pickers' -                                          U8 num_subparts, ... ); // number of subparts followed by a list of ETextureIndex and ESubparts +                                          const texture_vec_t& color_swatches,  // 'color_swatches' +                                          const texture_vec_t& texture_pickers, // 'texture_pickers' +                                          const subpart_vec_t& subparts); // subparts                  const LLWearableType::EType mWearableType; @@ -226,56 +226,38 @@ LLEditWearableDictionary::Wearables::Wearables()          // note the subpart that is listed first is treated as "default", regardless of what order is in enum.          // Please match the order presented in XUI. -Nyx          // this will affect what camera angle is shown when first editing a wearable -        addEntry(LLWearableType::WT_SHAPE,              new WearableEntry(LLWearableType::WT_SHAPE,"edit_shape_title","shape_desc_text",0,0,9,  SUBPART_SHAPE_WHOLE, SUBPART_SHAPE_HEAD,        SUBPART_SHAPE_EYES,     SUBPART_SHAPE_EARS,     SUBPART_SHAPE_NOSE,     SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS)); -        addEntry(LLWearableType::WT_SKIN,               new WearableEntry(LLWearableType::WT_SKIN,"edit_skin_title","skin_desc_text",0,3,4, TEX_HEAD_BODYPAINT, TEX_UPPER_BODYPAINT, TEX_LOWER_BODYPAINT, SUBPART_SKIN_COLOR, SUBPART_SKIN_FACEDETAIL, SUBPART_SKIN_MAKEUP, SUBPART_SKIN_BODYDETAIL)); -        addEntry(LLWearableType::WT_HAIR,               new WearableEntry(LLWearableType::WT_HAIR,"edit_hair_title","hair_desc_text",0,1,4, TEX_HAIR, SUBPART_HAIR_COLOR,       SUBPART_HAIR_STYLE,     SUBPART_HAIR_EYEBROWS, SUBPART_HAIR_FACIAL)); -        addEntry(LLWearableType::WT_EYES,               new WearableEntry(LLWearableType::WT_EYES,"edit_eyes_title","eyes_desc_text",0,1,1, TEX_EYES_IRIS, SUBPART_EYES)); -        addEntry(LLWearableType::WT_SHIRT,              new WearableEntry(LLWearableType::WT_SHIRT,"edit_shirt_title","shirt_desc_text",1,1,1, TEX_UPPER_SHIRT, TEX_UPPER_SHIRT, SUBPART_SHIRT)); -        addEntry(LLWearableType::WT_PANTS,              new WearableEntry(LLWearableType::WT_PANTS,"edit_pants_title","pants_desc_text",1,1,1, TEX_LOWER_PANTS, TEX_LOWER_PANTS, SUBPART_PANTS)); -        addEntry(LLWearableType::WT_SHOES,              new WearableEntry(LLWearableType::WT_SHOES,"edit_shoes_title","shoes_desc_text",1,1,1, TEX_LOWER_SHOES, TEX_LOWER_SHOES, SUBPART_SHOES)); -        addEntry(LLWearableType::WT_SOCKS,              new WearableEntry(LLWearableType::WT_SOCKS,"edit_socks_title","socks_desc_text",1,1,1, TEX_LOWER_SOCKS, TEX_LOWER_SOCKS, SUBPART_SOCKS)); -        addEntry(LLWearableType::WT_JACKET,     new WearableEntry(LLWearableType::WT_JACKET,"edit_jacket_title","jacket_desc_text",1,2,1, TEX_UPPER_JACKET, TEX_UPPER_JACKET, TEX_LOWER_JACKET, SUBPART_JACKET)); -        addEntry(LLWearableType::WT_GLOVES,     new WearableEntry(LLWearableType::WT_GLOVES,"edit_gloves_title","gloves_desc_text",1,1,1, TEX_UPPER_GLOVES, TEX_UPPER_GLOVES, SUBPART_GLOVES)); -        addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry(LLWearableType::WT_UNDERSHIRT,"edit_undershirt_title","undershirt_desc_text",1,1,1, TEX_UPPER_UNDERSHIRT, TEX_UPPER_UNDERSHIRT, SUBPART_UNDERSHIRT)); -        addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(LLWearableType::WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text",1,1,1, TEX_LOWER_UNDERPANTS, TEX_LOWER_UNDERPANTS, SUBPART_UNDERPANTS)); -        addEntry(LLWearableType::WT_SKIRT,              new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title","skirt_desc_text",1,1,1, TEX_SKIRT, TEX_SKIRT, SUBPART_SKIRT)); -        addEntry(LLWearableType::WT_ALPHA,              new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title","alpha_desc_text",0,5,1, TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA, SUBPART_ALPHA)); -        addEntry(LLWearableType::WT_TATTOO,     new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text",1,3,1, TEX_HEAD_TATTOO, TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO, SUBPART_TATTOO)); -        addEntry(LLWearableType::WT_PHYSICS,    new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text",0,0,7, SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED)); +        addEntry(LLWearableType::WT_SHAPE,              new WearableEntry(LLWearableType::WT_SHAPE,"edit_shape_title","shape_desc_text", texture_vec_t(), texture_vec_t(), subpart_vec_t{SUBPART_SHAPE_WHOLE, SUBPART_SHAPE_HEAD,        SUBPART_SHAPE_EYES,     SUBPART_SHAPE_EARS,     SUBPART_SHAPE_NOSE,     SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS})); +        addEntry(LLWearableType::WT_SKIN,               new WearableEntry(LLWearableType::WT_SKIN,"edit_skin_title","skin_desc_text", texture_vec_t(), texture_vec_t{TEX_HEAD_BODYPAINT, TEX_UPPER_BODYPAINT, TEX_LOWER_BODYPAINT}, subpart_vec_t{SUBPART_SKIN_COLOR, SUBPART_SKIN_FACEDETAIL, SUBPART_SKIN_MAKEUP, SUBPART_SKIN_BODYDETAIL})); +        addEntry(LLWearableType::WT_HAIR,               new WearableEntry(LLWearableType::WT_HAIR,"edit_hair_title","hair_desc_text", texture_vec_t(), texture_vec_t{TEX_HAIR}, subpart_vec_t{SUBPART_HAIR_COLOR,       SUBPART_HAIR_STYLE,     SUBPART_HAIR_EYEBROWS, SUBPART_HAIR_FACIAL})); +        addEntry(LLWearableType::WT_EYES,               new WearableEntry(LLWearableType::WT_EYES,"edit_eyes_title","eyes_desc_text", texture_vec_t(), texture_vec_t{TEX_EYES_IRIS}, subpart_vec_t{SUBPART_EYES})); +        addEntry(LLWearableType::WT_SHIRT,              new WearableEntry(LLWearableType::WT_SHIRT,"edit_shirt_title","shirt_desc_text", texture_vec_t{TEX_UPPER_SHIRT}, texture_vec_t{TEX_UPPER_SHIRT}, subpart_vec_t{SUBPART_SHIRT})); +        addEntry(LLWearableType::WT_PANTS,              new WearableEntry(LLWearableType::WT_PANTS,"edit_pants_title","pants_desc_text", texture_vec_t{TEX_LOWER_PANTS}, texture_vec_t{TEX_LOWER_PANTS}, subpart_vec_t{SUBPART_PANTS})); +        addEntry(LLWearableType::WT_SHOES,              new WearableEntry(LLWearableType::WT_SHOES,"edit_shoes_title","shoes_desc_text", texture_vec_t{TEX_LOWER_SHOES}, texture_vec_t{TEX_LOWER_SHOES}, subpart_vec_t{SUBPART_SHOES})); +        addEntry(LLWearableType::WT_SOCKS,              new WearableEntry(LLWearableType::WT_SOCKS,"edit_socks_title","socks_desc_text", texture_vec_t{TEX_LOWER_SOCKS}, texture_vec_t{TEX_LOWER_SOCKS}, subpart_vec_t{SUBPART_SOCKS})); +        addEntry(LLWearableType::WT_JACKET,     new WearableEntry(LLWearableType::WT_JACKET,"edit_jacket_title","jacket_desc_text", texture_vec_t{TEX_UPPER_JACKET}, texture_vec_t{TEX_UPPER_JACKET, TEX_LOWER_JACKET}, subpart_vec_t{SUBPART_JACKET})); +        addEntry(LLWearableType::WT_GLOVES,     new WearableEntry(LLWearableType::WT_GLOVES,"edit_gloves_title","gloves_desc_text", texture_vec_t{TEX_UPPER_GLOVES}, texture_vec_t{TEX_UPPER_GLOVES}, subpart_vec_t{SUBPART_GLOVES})); +        addEntry(LLWearableType::WT_UNDERSHIRT, new WearableEntry(LLWearableType::WT_UNDERSHIRT,"edit_undershirt_title","undershirt_desc_text", texture_vec_t{TEX_UPPER_UNDERSHIRT}, texture_vec_t{TEX_UPPER_UNDERSHIRT}, subpart_vec_t{SUBPART_UNDERSHIRT})); +        addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(LLWearableType::WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text", texture_vec_t{TEX_LOWER_UNDERPANTS}, texture_vec_t{TEX_LOWER_UNDERPANTS}, subpart_vec_t{SUBPART_UNDERPANTS})); +        addEntry(LLWearableType::WT_SKIRT,              new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title","skirt_desc_text", texture_vec_t{TEX_SKIRT}, texture_vec_t{TEX_SKIRT}, subpart_vec_t{SUBPART_SKIRT})); +        addEntry(LLWearableType::WT_ALPHA,              new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title","alpha_desc_text", texture_vec_t(), texture_vec_t{TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA}, subpart_vec_t{SUBPART_ALPHA})); +        addEntry(LLWearableType::WT_TATTOO,     new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text", texture_vec_t{TEX_HEAD_TATTOO}, texture_vec_t{TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO}, subpart_vec_t{SUBPART_TATTOO})); +        addEntry(LLWearableType::WT_PHYSICS,    new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text", texture_vec_t(), texture_vec_t(), subpart_vec_t{SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED}));  }  LLEditWearableDictionary::WearableEntry::WearableEntry(LLWearableType::EType type,                                            const std::string &title,                                            const std::string &desc_title, -                                          U8 num_color_swatches, -                                          U8 num_texture_pickers, -                                          U8 num_subparts, ... ) : +                                          const texture_vec_t& color_swatches, +                                          const texture_vec_t& texture_pickers, +                                          const subpart_vec_t& subparts) :          LLDictionaryEntry(title),          mWearableType(type),          mTitle(title), -        mDescTitle(desc_title) -{ -        va_list argp; -        va_start(argp, num_subparts); - -        for (U8 i = 0; i < num_color_swatches; ++i) -        { -                ETextureIndex index = (ETextureIndex)va_arg(argp,int); -                mColorSwatchCtrls.push_back(index); -        } - -        for (U8 i = 0; i < num_texture_pickers; ++i) -        { -                ETextureIndex index = (ETextureIndex)va_arg(argp,int); -                mTextureCtrls.push_back(index); -        } - -        for (U8 i = 0; i < num_subparts; ++i) -        { -                ESubpart part = (ESubpart)va_arg(argp,int); -                mSubparts.push_back(part); -        } -} +        mDescTitle(desc_title), +        mSubparts(subparts), +        mColorSwatchCtrls(color_swatches), +        mTextureCtrls(texture_pickers) +{}  LLEditWearableDictionary::Subparts::Subparts()  { diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index b6b58d5f4b..a314213644 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -8566,6 +8566,21 @@ Please check your network and firewall setup.    </notification>    <notification +   icon="alertmodal.tga" +   name="NoVoiceConnect-GIAB" +   type="alertmodal"> +We're having trouble connecting to your voice server. + +Voice communications will not be available. +Please check your network and firewall setup. +    <tag>voice</tag> +  <tag>fail</tag> +    <usetemplate +     name="okbutton" +     yestext="OK"/> +  </notification> + +  <notification     icon="notifytip.tga"     name="AvatarRezLeftNotification"     type="notifytip"> diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index b47faed8b7..900e9f7b1b 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -36,6 +36,8 @@ import re  import tarfile  import time  import random +import subprocess +  viewer_dir = os.path.dirname(__file__)  # Add indra/lib/python to our path so we don't have to muck with PYTHONPATH.  # Put it FIRST because some of our build hosts have an ancient install of @@ -341,9 +343,9 @@ class WindowsManifest(ViewerManifest):                      else:                          test_assembly_binding(src, "Microsoft.VC80.CRT", "")                      raise Exception("Unknown condition") -                except NoManifestException, err: +                except NoManifestException as err:                      pass -                except NoMatchingAssemblyException, err: +                except NoMatchingAssemblyException as err:                      pass                  self.ccopy(src,dst) @@ -405,14 +407,14 @@ class WindowsManifest(ViewerManifest):                  self.path('libaprutil-1.dll')                  self.path('libapriconv-1.dll') -            except RuntimeError, err: +            except RuntimeError as err:                  print err.message                  print "Skipping llcommon.dll (assuming llcommon was linked statically)"              # Mesh 3rd party libs needed for auto LOD and collada reading              try:                  self.path("glod.dll") -            except RuntimeError, err: +            except RuntimeError as err:                  print err.message                  print "Skipping GLOD library (assumming linked statically)" @@ -728,7 +730,7 @@ class WindowsManifest(ViewerManifest):          for attempt in xrange(nsis_attempts):              try:                  self.run_command('"' + NSIS_path + '" /V2 ' + self.dst_path_of(tempfile)) -            except ManifestError, err: +            except ManifestError as err:                  if attempt+1 < nsis_attempts:                      print >> sys.stderr, "nsis failed, waiting %d seconds before retrying" % nsis_retry_wait                      time.sleep(nsis_retry_wait) @@ -1106,7 +1108,11 @@ class DarwinManifest(ViewerManifest):                  'vol':volname})          # mount the image and get the name of the mount point and device node -        hdi_output = self.run_command('hdiutil attach -private %r' % sparsename) +        try: +            hdi_output = subprocess.check_output(['hdiutil', 'attach', '-private', sparsename]) +        except subprocess.CalledProcessError as err: +            sys.exit("failed to mount image at '%s'" % sparsename) +                      try:              devfile = re.search("/dev/disk([0-9]+)[^s]", hdi_output).group(0).strip()              volpath = re.search('HFS\s+(.+)', hdi_output).group(1).strip() @@ -1220,7 +1226,7 @@ class DarwinManifest(ViewerManifest):                                     'bundle': app_in_dmg                                     })                              signed=True # if no exception was raised, the codesign worked -                        except ManifestError, err: +                        except ManifestError as err:                              if sign_attempts:                                  print >> sys.stderr, "codesign failed, waiting %d seconds before retrying" % sign_retry_wait                                  time.sleep(sign_retry_wait) @@ -1483,7 +1489,7 @@ def symlinkf(src, dst):      """      try:          os.symlink(src, dst) -    except OSError, err: +    except OSError as err:          if err.errno != errno.EEXIST:              raise          # We could just blithely attempt to remove and recreate the target | 
