From fa32b5f6f8c12bdb410177ef0ac2424782033e57 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 21 Mar 2018 18:32:02 +0100 Subject: [PATCH 01/55] Use static cast instead of c-style cast --- indra/newview/llinventorypanel.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 2236e52c02..73c3b8cb9c 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -1230,7 +1230,7 @@ void LLInventoryPanel::onSelectionChange(const std::deque& it { if(prev_folder_item) { - LLFolderBridge* prev_bridge = (LLFolderBridge*)prev_folder_item->getViewModelItem(); + LLFolderBridge* prev_bridge = static_cast(prev_folder_item->getViewModelItem()); if(prev_bridge) { prev_bridge->clearDisplayName(); @@ -1239,7 +1239,7 @@ void LLInventoryPanel::onSelectionChange(const std::deque& it } } - LLFolderBridge* bridge = (LLFolderBridge*)folder_item->getViewModelItem(); + LLFolderBridge* bridge = static_cast(folder_item->getViewModelItem()); if(bridge) { bridge->clearDisplayName(); @@ -1254,7 +1254,7 @@ void LLInventoryPanel::onSelectionChange(const std::deque& it { if(prev_folder_item) { - LLFolderBridge* prev_bridge = (LLFolderBridge*)prev_folder_item->getViewModelItem(); + LLFolderBridge* prev_bridge = static_cast(prev_folder_item->getViewModelItem()); if(prev_bridge) { prev_bridge->clearDisplayName(); From 6c4d4efe127b0c4745e029eeee7720e11f5d240b Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 21 Mar 2018 20:09:11 +0100 Subject: [PATCH 02/55] Adjust sysinfo to include address size and the new Dullahan/CEF version --- indra/newview/fsdata.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/indra/newview/fsdata.cpp b/indra/newview/fsdata.cpp index 43f980b302..76d87ac197 100644 --- a/indra/newview/fsdata.cpp +++ b/indra/newview/fsdata.cpp @@ -966,10 +966,8 @@ LLSD FSData::getSystemInfo() LLSD info = LLAppViewer::instance()->getViewerInfo(); std::string sysinfo1("\n"); - sysinfo1 += llformat("%s %s (%d) %s %s (%s) %s\n\n", LLAppViewer::instance()->getSecondLifeTitle().c_str(), LLVersionInfo::getShortVersion().c_str(), LLVersionInfo::getBuild(), info["BUILD_DATE"].asString().c_str(), info["BUILD_TIME"].asString().c_str(), LLVersionInfo::getChannel().c_str(), -// FIRE-8273: Add Havok/Opensim indicator to getSystemInfo() - info["BUILD_TYPE"].asString().c_str()); -// + sysinfo1 += llformat("%s %s (%d) %s %s (%s %dbit) %s\n\n", LLAppViewer::instance()->getSecondLifeTitle().c_str(), LLVersionInfo::getShortVersion().c_str(), LLVersionInfo::getBuild(), info["BUILD_DATE"].asString().c_str(), info["BUILD_TIME"].asString().c_str(), LLVersionInfo::getChannel().c_str(), + info["ADDRESS_SIZE"].asInteger(), info["BUILD_TYPE"].asString().c_str()); sysinfo1 += llformat("Build with %s version %s\n\n", info["COMPILER"].asString().c_str(), info["COMPILER_VERSION"].asString().c_str()); sysinfo1 += llformat("I am in %s located at %s (%s)\n", info["REGION"].asString().c_str(), info["HOSTNAME"].asString().c_str(), info["HOSTIP"].asString().c_str()); sysinfo1 += llformat("%s\n\n", info["SERVER_VERSION"].asString().c_str()); @@ -990,7 +988,7 @@ LLSD FSData::getSystemInfo() sysinfo2 += llformat("libcurl Version: %s\n", info["LIBCURL_VERSION"].asString().c_str()); sysinfo2 += llformat("J2C Decoder Version: %s\n", info["J2C_VERSION"].asString().c_str()); sysinfo2 += llformat("Audio Driver Version: %s\n", info["AUDIO_DRIVER_VERSION"].asString().c_str()); - sysinfo2 += llformat("CEF Version: %s\n", info["LLCEFLIB_VERSION"].asString().c_str()); + sysinfo2 += llformat("%s\n", info["LIBCEF_VERSION"].asString().c_str()); sysinfo2 += llformat("LibVLC Version: %s\n", info["LIBVLC_VERSION"].asString().c_str()); sysinfo2 += llformat("Vivox Version: %s\n", info["VOICE_VERSION"].asString().c_str()); From 6a49fba043828848981cf6738cd35576029dabda Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Wed, 21 Mar 2018 19:31:54 +0200 Subject: [PATCH 03/55] MAINT-8417 Fixed startup crash in doFrame() after failing to access vfs cache --- indra/newview/llappviewer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index ff67c83ac0..5dc9d2a55b 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1651,7 +1651,8 @@ bool LLAppViewer::doFrame() // Scan keyboard for movement keys. Command keys and typing // are handled by windows callbacks. Don't do this until we're // done initializing. JC - if ((gHeadlessClient || gViewerWindow->getWindow()->getVisible()) + if (gViewerWindow + && (gHeadlessClient || gViewerWindow->getWindow()->getVisible()) && gViewerWindow->getActive() && !gViewerWindow->getWindow()->getMinimized() && LLStartUp::getStartupState() == STATE_STARTED From 27ca3a0fd510bab0e332fa3883b83a5d46dbdf82 Mon Sep 17 00:00:00 2001 From: Tonya Souther Date: Sat, 24 Mar 2018 14:11:02 -0500 Subject: [PATCH 04/55] KDU 7.10.4 for OS X. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 5f781b7dbf..bcb3812575 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1972,9 +1972,9 @@ archive hash - 75991f598df209713faf94b4a1cb1a89 + 814bec3fa5045a18dce2bc4ce78b585d url - file:///opt/firestorm/kdu-7.A.3-darwin-180711129.tar.bz2 + file:///opt/firestorm/kdu-7.A.4-darwin-180792321.tar.bz2 name darwin @@ -1984,9 +1984,9 @@ archive hash - 75991f598df209713faf94b4a1cb1a89 + 814bec3fa5045a18dce2bc4ce78b585d url - file:///opt/firestorm/kdu-7.A.3-darwin-180711129.tar.bz2 + file:///opt/firestorm/kdu-7.A.4-darwin-180792321.tar.bz2 name darwin64 From e734529de830627d74f481c825a93b71c5f5b998 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Sat, 24 Mar 2018 14:48:39 +0200 Subject: [PATCH 05/55] MAINT-8203 Fixing from_group processing in ReadOfflineMsgs cap --- indra/newview/llimprocessing.cpp | 34 ++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index b1976a48ab..3c2aef2b88 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -2109,7 +2109,7 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) if (!status) // success = httpResults["success"].asBoolean(); { - LL_WARNS() << "Error requesting offline messages via capability " << url << ", Status: " << status.toString() << "\nFalling back to legacy method." << LL_ENDL; + LL_WARNS("Messaging") << "Error requesting offline messages via capability " << url << ", Status: " << status.toString() << "\nFalling back to legacy method." << LL_ENDL; requestOfflineMessagesLegacy(); return; @@ -2119,10 +2119,11 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) if (!contents.size()) { - LL_WARNS() << "No contents received for offline messages via capability " << url << LL_ENDL; + LL_WARNS("Messaging") << "No contents received for offline messages via capability " << url << LL_ENDL; return; } + // Todo: once dirtsim-369 releases, remove one of the map/array options LLSD messages; if (contents.isArray()) { @@ -2134,16 +2135,24 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) } else { - LL_WARNS() << "Invalid offline message content received via capability " << url << LL_ENDL; + LL_WARNS("Messaging") << "Invalid offline message content received via capability " << url << LL_ENDL; return; } if (!messages.isArray()) { - LL_WARNS() << "Invalid offline message content received via capability " << url << LL_ENDL; + LL_WARNS("Messaging") << "Invalid offline message content received via capability " << url << LL_ENDL; return; } + if (messages.emptyArray()) + { + // Nothing to process + return; + } + + LL_INFOS("Messaging") << "Processing offline messages." << LL_ENDL; + std::vector data; S32 binary_bucket_size = 0; LLHost sender = gAgent.getRegion()->getHost(); @@ -2156,10 +2165,21 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) LLVector3 position(message_data["local_x"].asReal(), message_data["local_y"].asReal(), message_data["local_z"].asReal()); data = message_data["binary_bucket"].asBinary(); binary_bucket_size = data.size(); // message_data["count"] == data.size() - 1 due to ('\0') - U32 parent_estate_id = message_data.has("parent_estate_id") ? message_data["ParentEstateID"].asInteger() : 1; // 1 - IMMainland + U32 parent_estate_id = message_data.has("parent_estate_id") ? message_data["parent_estate_id"].asInteger() : 1; // 1 - IMMainland + + // Todo: once dirtsim-369 releases, remove one of the int/str options + BOOL from_group; + if (message_data["from_group"].isInteger()) + { + from_group = message_data["from_group"].asInteger(); + } + else + { + from_group = message_data["from_group"].asString() == "Y"; + } LLIMProcessing::processNewMessage(message_data["from_agent_id"].asUUID(), - message_data["from_group"].asInteger(), // BOOL + from_group, message_data["to_agent_id"].asUUID(), IM_OFFLINE, (EInstantMessage)message_data["dialog"].asInteger(), @@ -2178,6 +2198,8 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) void LLIMProcessing::requestOfflineMessagesLegacy() { + LL_INFOS("Messaging") << "Requesting offline messages (Legacy)." << LL_ENDL; + LLMessageSystem* msg = gMessageSystem; msg->newMessageFast(_PREHASH_RetrieveInstantMessages); msg->nextBlockFast(_PREHASH_AgentData); From a5c768769e680d0a5682da748eb010379817e352 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sat, 24 Mar 2018 23:40:00 +0100 Subject: [PATCH 06/55] Fix symbol packaging on Windows/Linux and include address size in filenames --- indra/newview/fs_viewer_manifest.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/indra/newview/fs_viewer_manifest.py b/indra/newview/fs_viewer_manifest.py index ac01817eea..69871cd653 100644 --- a/indra/newview/fs_viewer_manifest.py +++ b/indra/newview/fs_viewer_manifest.py @@ -103,11 +103,11 @@ class FSViewerManifest: self.run_command_shell( "cd %s && objcopy --add-gnu-debuglink=%s %s" % (debugDir, debugName, fileBin) ) - if( os.path.exists( "%s/firestorm-symbols-linux.tar.bz2" % self.args['configuration'].lower()) ): - symName = "%s/Phoenix_%s_%s_%s_symbols-linux.tar.bz2" % ( self.args['configuration'].lower(), self.fs_channel_legacy_oneword(), - '-'.join( self.args['version'] ), self.args['viewer_flavor'] ) + if( os.path.exists( "%s/firestorm-symbols-linux-%d.tar.bz2" % (self.args['configuration'].lower(), self.address_size)) ): + symName = "%s/Phoenix_%s_%s_%s_symbols-linux-%d.tar.bz2" % ( self.args['configuration'].lower(), self.fs_channel_legacy_oneword(), + '-'.join( self.args['version'] ), self.args['viewer_flavor'], self.address_size ) print( "Saving symbols %s" % symName ) - os.rename("%s/firestorm-symbols-linux.tar.bz2" % self.args['configuration'].lower(), symName ) + os.rename("%s/firestorm-symbols-linux-%d.tar.bz2" % (self.args['configuration'].lower(), self.address_size), symName ) def fs_linux_tar_excludes(self): return "--exclude core --exclude .debug/* --exclude .debug" @@ -115,17 +115,19 @@ class FSViewerManifest: def fs_save_windows_symbols(self, substitution_strings): #AO: Try to package up symbols # New Method, for reading cross platform stack traces on a linux/mac host - if (os.path.exists("%s/firestorm-symbols-windows.tar.bz2" % self.args['configuration'].lower())): + if (os.path.exists("%s/firestorm-symbols-windows-%d.tar.bz2" % (self.args['configuration'].lower(), + self.address_size))): # Rename to add version numbers - sName = "%s/Phoenix_%s_%s_%s_symbols-windows.tar.bz2" % (self.args['configuration'].lower(), + sName = "%s/Phoenix_%s_%s_%s_symbols-windows-%d.tar.bz2" % (self.args['configuration'].lower(), self.fs_channel_legacy_oneword(), substitution_strings['version_dashes'], - self.args['viewer_flavor']) + self.args['viewer_flavor'], + self.address_size) if os.path.exists( sName ): os.unlink( sName ) - os.rename("%s/firestorm-symbols-windows.tar.bz2" % self.args['configuration'].lower(), sName ) + os.rename("%s/firestorm-symbols-windows-%d.tar.bz2" % (self.args['configuration'].lower(), self.address_size), sName ) pdbName = "firestorm-bin.pdb" try: @@ -141,10 +143,11 @@ class FSViewerManifest: # Store windows symbols we want to keep for debugging in a tar file, this will be later compressed with xz (lzma) # Using tat+xz gives far superior compression than zip (~half the size of the zip archive). # Python3 natively supports tar+xz via mode 'w:xz'. But we're stuck with Python2 for now. - symbolTar = tarfile.TarFile("%s/Phoenix_%s_%s_%s_pdbsymbols-windows.tar" % (self.args['configuration'].lower(), + symbolTar = tarfile.TarFile("%s/Phoenix_%s_%s_%s_pdbsymbols-windows-%d.tar" % (self.args['configuration'].lower(), self.fs_channel_legacy_oneword(), substitution_strings['version_dashes'], - self.args['viewer_flavor']), + self.args['viewer_flavor'], + self.address_size), 'w') symbolTar.add( "%s/Firestorm-bin.exe" % self.args['configuration'].lower(), "firestorm-bin.exe" ) symbolTar.add( "%s/%s" % (self.args['configuration'].lower(),pdbName), pdbName ) From bef47e1432216887c1e53c0c47a88d01185254d2 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Fri, 23 Mar 2018 19:14:41 +0200 Subject: [PATCH 07/55] MAINT-8417 Don't run display or startup if window is not initialized --- indra/newview/llappviewer.cpp | 5 +++-- indra/newview/llstartup.cpp | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 5dc9d2a55b..fcac41aa10 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1144,10 +1144,11 @@ bool LLAppViewer::init() if (!initCache()) { + LL_WARNS("InitInfo") << "Failed to init cache" << LL_ENDL; std::ostringstream msg; msg << LLTrans::getString("MBUnableToAccessFile"); OSMessageBox(msg.str(),LLStringUtil::null,OSMB_OK); - return 1; + return 0; } LL_INFOS("InitInfo") << "Cache initialization is done." << LL_ENDL ; @@ -1691,7 +1692,7 @@ bool LLAppViewer::doFrame() // Render scene. // *TODO: Should we run display() even during gHeadlessClient? DK 2011-02-18 - if (!LLApp::isExiting() && !gHeadlessClient) + if (!LLApp::isExiting() && !gHeadlessClient && gViewerWindow) { pingMainloopTimeout("Main:Display"); gGLActive = TRUE; diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index ccb473d825..f91f263c6f 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -557,6 +557,13 @@ void set_flags_and_update_appearance() // true when all initialization done. bool idle_startup() { + if (gViewerWindow == NULL) + { + // We expect window to be initialized + LL_WARNS_ONCE() << "gViewerWindow is not initialized" << LL_ENDL; + return false; // No world yet + } + const F32 PRECACHING_DELAY = gSavedSettings.getF32("PrecachingDelay"); static LLTimer timeout; From 1c01efaa846dbf940a3c96798820dcb8a72900d9 Mon Sep 17 00:00:00 2001 From: Liny Date: Sat, 24 Mar 2018 23:45:34 -0700 Subject: [PATCH 08/55] Bump minimum size of outfits folder up a little to remove horizontal scroll bar --- indra/newview/skins/default/xui/en/floater_my_appearance.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/en/floater_my_appearance.xml b/indra/newview/skins/default/xui/en/floater_my_appearance.xml index c2a5943982..6dd3a45602 100644 --- a/indra/newview/skins/default/xui/en/floater_my_appearance.xml +++ b/indra/newview/skins/default/xui/en/floater_my_appearance.xml @@ -13,7 +13,7 @@ reuse_instance="true" title="Appearance" min_height="200" - min_width="325" + min_width="351" width="333"> Date: Sun, 25 Mar 2018 23:30:29 +0200 Subject: [PATCH 09/55] Linux: Update version of jsoncpp. --- indra/cmake/JsonCpp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 1ce95385d5..ab1bab29af 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -17,7 +17,7 @@ else (USESYSTEMLIBS) set(JSONCPP_LIBRARIES libjson_darwin_libmt.a) elseif (LINUX) if ( ADDRESS_SIZE EQUAL 64 ) - set(JSONCPP_LIBRARIES libjson_linux-gcc-4.6_libmt.a) + set(JSONCPP_LIBRARIES libjson_linux-gcc-4.8_libmt.a) else ( ) set(JSONCPP_LIBRARIES libjson_linux-gcc-4.1.3_libmt.a) endif ( ) From f2c2625501a757bc27a2ba15133796283f2a2217 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sun, 25 Mar 2018 23:31:27 +0200 Subject: [PATCH 10/55] Linux: Add ${NGHTTP2_LIBRARIES} to CURL_LIBRARIES for correct linking order. --- indra/cmake/CURL.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake index 23ada74e4b..f8628d9c85 100644 --- a/indra/cmake/CURL.cmake +++ b/indra/cmake/CURL.cmake @@ -1,5 +1,6 @@ # -*- cmake -*- include(Prebuilt) +include(NGHTTP2) set(CURL_FIND_QUIETLY ON) set(CURL_FIND_REQUIRED ON) @@ -16,7 +17,7 @@ else (USESYSTEMLIBS) set(CURL_LIBRARIES libcurl.a) if (LINUX) list(APPEND CURL_LIBRARIES - pthread + pthread ${NGHTTP2_LIBRARIES} ) endif (LINUX) endif (WINDOWS) From 26a54deac5fb12fd1186ab6a83a93616b211b925 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 00:27:20 +0200 Subject: [PATCH 11/55] Typo fix. --- indra/newview/llappviewer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 5dc9d2a55b..4f817a9f0d 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -323,7 +323,7 @@ S32 gLastExecDuration = -1; // (<0 indicates unknown) # define LL_PLATFORM_KEY "mac" #elif LL_LINUX # define LL_PLATFORM_KEY "lnx" -else +#else # error "Unknown Platform" #endif const char* gPlatform = LL_PLATFORM_KEY; From d406699f6aad8836a0b394ced83ef2fb7b044df7 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 00:37:39 +0200 Subject: [PATCH 12/55] Linux x64: Rebuilt most 3Ps. --- autobuild.xml | 1395 ++++++++++++++++++++++++------------------------- 1 file changed, 687 insertions(+), 708 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 5f781b7dbf..7a25aaba2d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3,206 +3,6 @@ installables - ndPhysicsStub - - license - HACD/LGPL - license_file - LICENSES/ndPhysicsStub.txt - name - ndPhysicsStub - platforms - - darwin - - archive - - hash - 47ddd059d48f650e39796c10ea828689 - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-darwin-201606211534-r77.tar.bz2 - - name - darwin - - linux - - archive - - hash - 0ea99b626d4d5e3dc43f9f35f88625ba - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.201502162025-r74-linux-201502162025-r74.tar.bz2 - - name - linux - - linux64 - - archive - - hash - 2709f7a5cf499ea77481dd1fce796d61 - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.201505150224-r74-linux-x64-201505150224-r74.tar.bz2 - - name - linux64 - - windows - - archive - - hash - 7ffe5a6165e6808e0674754b56545034 - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-windows-201505061845-r74.tar.bz2 - - name - windows - - windows64 - - archive - - hash - a2baf97f950cc16af9fe5cf316b7fa4d - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.201412081952-windows-x64-201412081952.tar.bz2 - - name - windows64 - - - - gntp-growl - - copyright - The Growl Project - description - A unified notification system for Mac OS X - license - bsd - name - gntp-growl - platforms - - darwin - - archive - - hash - 33300134846d0f00ac4f31c1a190e3e6 - url - http://downloads.phoenixviewer.com/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2 - - name - darwin - - linux - - archive - - hash - af06208ec80b1f170cc560141602e2dc - url - http://downloads.phoenixviewer.com/libnotify-0.4.4-linux-20101003.tar.bz2 - - name - linux - - windows - - archive - - hash - 315e6d3917b1b1327033eb41f868e828 - url - http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-201601022248-r16.tar.bz2 - - name - windows - - windows64 - - archive - - hash - 5b1d8e9d3f4fd4fcc6b090d2e9bfd23d - url - http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-x64-201601022251-r16.tar.bz2 - - name - windows64 - - - - openjpeg2 - - copyright - Copyright (c) 2002-2016, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium, Copyright (c) 2002-2007, Professor Benoit Macq, Copyright (c) 2001-2003, David Janssens, Copyright (c) 2002-2003, Yannick Verschueren, Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe, Copyright (c) 2005, Herve Drolon, FreeImage Team - description - The OpenJPEG library is an open-source JPEG 2000 codec written in C language. - license - BSD - license_file - LICENSES/openjpeg.txt - name - openjpeg2 - platforms - - linux - - archive - - hash - 3925c90f0d3f5523acdad063620d01d6 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141918-r32-linux-201601141918-r32.tar.bz2 - - name - linux - - linux64 - - archive - - hash - 8f4188c9a281425e26d89af0676bb6b7 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141020-r32-linux-x64-201601141020-r32.tar.bz2 - - name - linux64 - - windows - - archive - - hash - bc784edaab1b786766b2f381a86b8710 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141919-r32-windows-201601141919-r32.tar.bz2 - - name - windows - - windows64 - - archive - - hash - 0465f2221c22a7349e4ae49f751ae3d3 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141917-r32-windows-x64-201601141917-r32.tar.bz2 - - name - windows64 - - - version - 2.1 - SDL copyright @@ -234,9 +34,9 @@ archive hash - 2566e373b89a2e4f8e93a78948deda10 + 608dfd27f7aed9d57cf1f581c995b680 url - http://downloads.phoenixviewer.com/SDL-1.2.15-linux-x64-201509062227-r43.tar.bz2 + http://downloads.phoenixviewer.com/SDL-1.2.15-linux64-180841947.tar.bz2 name linux64 @@ -300,9 +100,9 @@ archive hash - e640dcbc376eec6f3a942b4625d92d8e + 5c3c29851edd837d5f9518618c4a303b url - http://downloads.phoenixviewer.com/apr_suite-1.4.5.201505150215-r92-linux-x64-201505150215-r92.tar.bz2 + http://downloads.phoenixviewer.com/apr_suite-1.4.5.180841559-linux64-180841559.tar.bz2 name linux64 @@ -333,7 +133,7 @@ version - 1.4.5.504800 + 1.4.5.180841559 boost @@ -390,9 +190,9 @@ archive hash - e86cc6e004d39d7210f708b39bed77a9 + b1d3daab689c5a8c8869715c5111d38e url - http://downloads.phoenixviewer.com/boost-1.57-linux-x64-201505150230-r138.tar.bz2 + http://downloads.phoenixviewer.com/boost-1.57-linux64-180841628.tar.bz2 name linux64 @@ -508,9 +308,9 @@ archive hash - 0f3447ce6fddba79b54cb5959e95f330 + 91a522a7bf0e8d66d2941c76dc28a261 url - http://downloads.phoenixviewer.com/colladadom-2.3.201505150238-r95-linux-x64-201505150238-r95.tar.bz2 + http://downloads.phoenixviewer.com/colladadom-2.3.180841822-linux64-180841822.tar.bz2 name linux64 @@ -541,7 +341,7 @@ version - 2.3.500902 + 2.3.180841822 curl @@ -598,9 +398,9 @@ archive hash - 630a2ddf43bba6e5b6e171dc68921dcb + 51d9ce98279709854b0be5d0f450ba63 url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8663/36142/curl-7.54.1.508652-linux64-508652.tar.bz2 + http://downloads.phoenixviewer.com/curl-7.54.1.180841943-linux64-180841943.tar.bz2 name linux64 @@ -633,7 +433,7 @@ version - 7.54.1.509254 + 7.54.1.180841943 db @@ -696,9 +496,9 @@ archive hash - 7ee7b9aed3c0c8c09e7bf26bba7af8e1 + 5a685a65a7066937ef580dcd5a90f9dc url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-dbus-glib/rev/314266/arch/Linux/installer/dbus_glib-0.76-linux64-314266.tar.bz2 + http://downloads.phoenixviewer.com/dbus_glib-0.76-linux64-180841549.tar.bz2 name linux64 @@ -770,7 +570,7 @@ hash efc92b20a8170ab4f4d3f88c03c6cb9b url - http://192.168.1.115/dev/pkg/dullahan-1.1.651_3.2987.1591.gd3e47f5-linux-171011511.tar.bz2 + http://downloads.phoenixviewer.com/dullahan-1.1.651_3.2987.1591.gd3e47f5-linux-171011511.tar.bz2 name linux @@ -780,9 +580,9 @@ archive hash - 331c13dfd261f867884308f15d9952bc + 1640e6ca5010e0e191ec6de54dad973d url - http://192.168.1.115/dev/pkg/dullahan-1.1.651_3.2987.1591.gd3e47f5-linux64-171011518.tar.bz2 + http://downloads.phoenixviewer.com/dullahan-1.1.651_3.2987.1591.gd3e47f5-linux64-180841928.tar.bz2 name linux64 @@ -813,7 +613,7 @@ version - 1.1.820_3.3071.1634.g9cc59c8 + 1.1.651_3.2987.1591.gd3e47f5 elfio @@ -894,9 +694,9 @@ archive hash - 5e1f025d1cebd12db542080aa755257f + bbcfe77b920fb7f00c7f2a494ffc6c43 url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/380/943/expat-2.1.1.500375-linux64-500375.tar.bz2 + http://downloads.phoenixviewer.com/expat-2.1.1.180841547-linux64-180841547.tar.bz2 name linux64 @@ -927,7 +727,59 @@ version - 2.1.1.500375 + 2.1.1.180841547 + + fmodex + + copyright + COPYRIGHT 2014 FIRELIGHT TECHNOLOGIES PTY LTD. ALL RIGHTS RESERVED + license + fmodex + license_file + LICENSES/fmodex.txt + name + fmodex + platforms + + darwin + + archive + + hash + cba1feed7f6bb671d791a517fddf205a + url + file:///opt/firestorm/fmodex-44461-darwin-201601300040-r23.tar.bz2 + + name + darwin + + linux + + archive + + hash + 9b090869508fabee82dc53cae977fb99 + url + file:///opt/firestorm/fmodex-44461-linux-201601282301-r23.tar.bz2 + + name + linux + + windows + + archive + + hash + 5b1b5ce866afd2a74e445af1fffe6a8b + url + file:///c:/cygwin/opt/firestorm/fmodex-44461-windows-201601282252-r23.tar.bz2 + + name + windows + + + version + 4.44.61 fmodstudio @@ -1017,58 +869,6 @@ version 1.10.04 - fmodex - - copyright - COPYRIGHT 2014 FIRELIGHT TECHNOLOGIES PTY LTD. ALL RIGHTS RESERVED - license - fmodex - license_file - LICENSES/fmodex.txt - name - fmodex - platforms - - darwin - - archive - - hash - cba1feed7f6bb671d791a517fddf205a - url - file:///opt/firestorm/fmodex-44461-darwin-201601300040-r23.tar.bz2 - - name - darwin - - linux - - archive - - hash - 9b090869508fabee82dc53cae977fb99 - url - file:///opt/firestorm/fmodex-44461-linux-201601282301-r23.tar.bz2 - - name - linux - - windows - - archive - - hash - 5b1b5ce866afd2a74e445af1fffe6a8b - url - file:///c:/cygwin/opt/firestorm/fmodex-44461-windows-201601282252-r23.tar.bz2 - - name - windows - - - version - 4.44.61 - fontconfig copyright @@ -1100,9 +900,9 @@ archive hash - e2419d56960c160670051fbb055fb729 + 5818ed2d9b29bad00878f3e26b09b7f9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-fontconfig/rev/314281/arch/Linux/installer/fontconfig-2.11.0-linux64-314281.tar.bz2 + http://downloads.phoenixviewer.com/fontconfig-2.11.0-linux64-180841833.tar.bz2 name linux64 @@ -1166,9 +966,9 @@ archive hash - b30634f1a6ee2b4940eee06267a607df + 0dab99c682433145aa8f5e26d8940afd url - http://downloads.phoenixviewer.com/freetype-2.3.9.201505150242-r61-linux-x64-201505150242-r61.tar.bz2 + http://downloads.phoenixviewer.com/freetype-2.4.4.180841832-linux64-180841832.tar.bz2 name linux64 @@ -1199,7 +999,7 @@ version - 2.4.4.500865 + 2.4.4.180841832 glext @@ -1232,9 +1032,9 @@ archive hash - 5f3c9d61b620f949b199ebd8885218ed + 12b2d643a013be8297bbbe37743abe94 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-glext/rev/314200/arch/Linux/installer/glext-68-linux64-314200.tar.bz2 + http://downloads.phoenixviewer.com/glext-68-linux64-180841554.tar.bz2 name linux64 @@ -1356,9 +1156,9 @@ archive hash - fea16abf8c2b7f38fc33a2142bfbfe18 + d99ebfff4639d1c94bc45466b870f2d0 url - http://downloads.phoenixviewer.com/glod-1.0pre3.201704302331-linux64-201704302331.tar.bz2 + http://downloads.phoenixviewer.com/glod-1.0pre3.180841551-linux64-180841551.tar.bz2 name linux64 @@ -1391,7 +1191,69 @@ version - 1.0pre3.501614 + 1.0pre3.180841551 + + gntp-growl + + copyright + The Growl Project + description + A unified notification system for Mac OS X + license + bsd + name + gntp-growl + platforms + + darwin + + archive + + hash + 33300134846d0f00ac4f31c1a190e3e6 + url + http://downloads.phoenixviewer.com/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2 + + name + darwin + + linux + + archive + + hash + af06208ec80b1f170cc560141602e2dc + url + http://downloads.phoenixviewer.com/libnotify-0.4.4-linux-20101003.tar.bz2 + + name + linux + + windows + + archive + + hash + 315e6d3917b1b1327033eb41f868e828 + url + http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-201601022248-r16.tar.bz2 + + name + windows + + windows64 + + archive + + hash + 5b1d8e9d3f4fd4fcc6b090d2e9bfd23d + url + http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-x64-201601022251-r16.tar.bz2 + + name + windows64 + + google_breakpad @@ -1448,9 +1310,9 @@ archive hash - f8df27382e6afeee5408e85c010a6c86 + aa4a74b0c5794034797f22d4bdc57a0d url - http://downloads.phoenixviewer.com/google_breakpad-1413.201505150223-r95-linux-x64-201505150223-r95.tar.bz2 + http://downloads.phoenixviewer.com/google_breakpad-1413.180841553-linux64-180841553.tar.bz2 name linux64 @@ -1481,7 +1343,7 @@ version - 1413.501824 + 1413.180841553 googlemock @@ -1538,9 +1400,9 @@ archive hash - 0f606bf01f933f00edeb9bf9a2530930 + f879f518ea207cecf13943d58b57b515 url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/918/2056/googlemock-1.7.0.500908-linux64-500908.tar.bz2 + http://downloads.phoenixviewer.com/googlemock-1.7.0.180841921-linux64-180841921.tar.bz2 name linux64 @@ -1571,7 +1433,7 @@ version - 1.7.0.500908 + 1.7.0.180841921 gstreamer @@ -1602,16 +1464,16 @@ archive hash - 7c9d7cc88add7831a6afeedc20cad2fe + 86a358f1b5a2c2baf68444b2bfc5bb32 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-gstreamer/rev/314267/arch/Linux/installer/gstreamer-0.10.6.314267-linux64-314267.tar.bz2 + http://downloads.phoenixviewer.com/gstreamer-0.10.6.180841551-linux64-180841551.tar.bz2 name linux64 version - 0.10.6.314267 + 0.10.6.180841551 gtk-atk-pango-glib @@ -1642,16 +1504,16 @@ archive hash - 61a10409052c7f77cbfe30b7a8cd7c0b + d918d894430c1d1d869b9f2e06570c65 url - http://downloads.phoenixviewer.com/gtk_atk_pango_glib-2.0-linux-x64-201505151700-r5.tar.bz2 + http://downloads.phoenixviewer.com/gtk_atk_pango_glib-2.1-linux64-180841902.tar.bz2 name linux64 version - 0.1 + 2.1 havok-source @@ -1828,9 +1690,9 @@ archive hash - 8b36861396af4a31668f673aebd4b1d8 + 324bb9deb00d256a12f8cbf686f413f0 url - http://downloads.phoenixviewer.com/jpeglib-8c.201505150200-r27-linux-x64-201505150200-r27.tar.bz2 + http://downloads.phoenixviewer.com/jpeglib-8c.180841548-linux64-180841548.tar.bz2 name linux64 @@ -1861,7 +1723,7 @@ version - 8c.503140 + 8c.180841548 jsoncpp @@ -1918,9 +1780,9 @@ archive hash - e10077e94fa6916b6da001fc52e15ed6 + 724850830e01cdb6afb4eed9ce2ec6c5 url - http://downloads.phoenixviewer.com/jsoncpp-0.5.0.201508041908-r34-linux-x64-201508041908-r34.tar.bz2 + http://downloads.phoenixviewer.com/jsoncpp-0.5.0.180841554-linux64-180841554.tar.bz2 name linux64 @@ -1951,7 +1813,7 @@ version - 0.5.0.501464 + 0.5.0.180841554 kdu @@ -2098,9 +1960,9 @@ archive hash - 7341037efcf156ad7aa6ba67ab0413c5 + 6555f040c686d8c1dec8e6264c2d3672 url - http://downloads.phoenixviewer.com/libhunspell-1.3.2.201505150222-r21-linux-x64-201505150222-r21.tar.bz2 + http://downloads.phoenixviewer.com/libhunspell-1.3.2.180841552-linux64-180841552.tar.bz2 name linux64 @@ -2131,7 +1993,7 @@ version - 1.3.2.500526 + 1.3.2.180841552 libndofdev @@ -2254,9 +2116,9 @@ archive hash - 96cccc9c256107ff8425e15647957f17 + 83ae55031f81dace9dcf688cc5510010 url - http://downloads.phoenixviewer.com/libpng-1.6.8.201505150228-r52-linux-x64-201505150228-r52.tar.bz2 + http://downloads.phoenixviewer.com/libpng-1.6.8.180841558-linux64-180841558.tar.bz2 name linux64 @@ -2287,7 +2149,7 @@ version - 1.6.8.500873 + 1.6.8.180841558 libuuid @@ -2320,9 +2182,9 @@ archive hash - 6eca8418f134d2f4d97de89a33773be3 + f3cc32c84b99f1277370ce88a0faf40e url - http://downloads.phoenixviewer.com/libuuid-1.6.2-linux-x64-201505150200-r8.tar.bz2 + http://downloads.phoenixviewer.com/libuuid-1.6.2-linux64-180841554.tar.bz2 name linux64 @@ -2386,9 +2248,9 @@ archive hash - ba36cdab49fd5f3f5158cd6719a84a90 + 0bc56fa68f59537486c75b04646d65a9 url - http://downloads.phoenixviewer.com/libxml2-2.9.1.201505150226-r42-linux-x64-201505150226-r42.tar.bz2 + http://downloads.phoenixviewer.com/libxml2-2.9.4.180841555-linux64-180841555.tar.bz2 name linux64 @@ -2419,7 +2281,7 @@ version - 2.9.4.500877 + 2.9.4.180841555 llappearance_utility @@ -2662,6 +2524,78 @@ version 7.11.1.297294 + ndPhysicsStub + + license + HACD/LGPL + license_file + LICENSES/ndPhysicsStub.txt + name + ndPhysicsStub + platforms + + darwin + + archive + + hash + 47ddd059d48f650e39796c10ea828689 + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-darwin-201606211534-r77.tar.bz2 + + name + darwin + + linux + + archive + + hash + 0ea99b626d4d5e3dc43f9f35f88625ba + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.201502162025-r74-linux-201502162025-r74.tar.bz2 + + name + linux + + linux64 + + archive + + hash + 2709f7a5cf499ea77481dd1fce796d61 + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.201505150224-r74-linux-x64-201505150224-r74.tar.bz2 + + name + linux64 + + windows + + archive + + hash + 7ffe5a6165e6808e0674754b56545034 + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-windows-201505061845-r74.tar.bz2 + + name + windows + + windows64 + + archive + + hash + a2baf97f950cc16af9fe5cf316b7fa4d + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.201412081952-windows-x64-201412081952.tar.bz2 + + name + windows64 + + + nghttp2 copyright @@ -2706,9 +2640,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - c3c5ff7d2f7ac1143ef8d888192d4a53 + b460d5bac2d20b38cb73b54d0ab1b6e3 url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/9257/41579/nghttp2-1.25.0.509246-linux64-509246.tar.bz2 + http://downloads.phoenixviewer.com/nghttp2-1.25.0.180841549-linux64-180841549.tar.bz2 name linux64 @@ -2741,7 +2675,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors source_type hg version - 1.25.0.509246 + 1.25.0.180841549 nvapi @@ -2840,9 +2774,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - a237c81b2c5fa3926ce04586568cce74 + ec5fd10d3a504e528b61d339522ca0f9 url - http://downloads.phoenixviewer.com/ogg_vorbis-1.2.2-1.3.2.201505150221-r32-linux-x64-201505150221-r32.tar.bz2 + http://downloads.phoenixviewer.com/ogg_vorbis-1.2.2-1.3.2.180841550-linux64-180841550.tar.bz2 name linux64 @@ -2873,7 +2807,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.2.2-1.3.2.500397 + 1.2.2-1.3.2.180841550 open-libndofdev @@ -2906,16 +2840,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 587567ef04c06b9bf746e3491dbcc556 + 4df349abfc942fb8e674244d1bd0a515 url - http://downloads.phoenixviewer.com/open_libndofdev-0.8-linux-x64-201602152224-r18.tar.bz2 + http://downloads.phoenixviewer.com/open_libndofdev-0.3.180841957-linux64-180841957.tar.bz2 name linux64 version - 0.3 + 0.3.180841957 openal @@ -2950,9 +2884,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 9ccf2c9046edd73854fc084919f507b2 + 4f36ae378593240701fd4453bd6074c8 url - http://downloads.phoenixviewer.com/openal-1.12.854-1.1.0.201505150222-r25-linux-x64-201505150222-r25.tar.bz2 + http://downloads.phoenixviewer.com/openal-1.12.854-1.1.0.180841552-linux64-180841552.tar.bz2 name linux64 @@ -2985,7 +2919,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.12.854-1.1.0.314223 + 1.12.854-1.1.0.180841552 openjpeg @@ -3042,9 +2976,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 8b36861396af4a31668f673aebd4b1d8 + 6098e555296583336b02f1a78b41b93a url - http://downloads.phoenixviewer.com/jpeglib-8c.201505150200-r27-linux-x64-201505150200-r27.tar.bz2 + http://downloads.phoenixviewer.com/openjpeg-1.5.1.180841553-linux64-180841553.tar.bz2 name linux64 @@ -3075,7 +3009,73 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.4.0.297018 + 1.5.1.180841553 + + openjpeg2 + + copyright + Copyright (c) 2002-2016, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium, Copyright (c) 2002-2007, Professor Benoit Macq, Copyright (c) 2001-2003, David Janssens, Copyright (c) 2002-2003, Yannick Verschueren, Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe, Copyright (c) 2005, Herve Drolon, FreeImage Team + description + The OpenJPEG library is an open-source JPEG 2000 codec written in C language. + license + BSD + license_file + LICENSES/openjpeg.txt + name + openjpeg2 + platforms + + linux + + archive + + hash + 3925c90f0d3f5523acdad063620d01d6 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141918-r32-linux-201601141918-r32.tar.bz2 + + name + linux + + linux64 + + archive + + hash + 8f4188c9a281425e26d89af0676bb6b7 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141020-r32-linux-x64-201601141020-r32.tar.bz2 + + name + linux64 + + windows + + archive + + hash + bc784edaab1b786766b2f381a86b8710 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141919-r32-windows-201601141919-r32.tar.bz2 + + name + windows + + windows64 + + archive + + hash + 0465f2221c22a7349e4ae49f751ae3d3 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141917-r32-windows-x64-201601141917-r32.tar.bz2 + + name + windows64 + + + version + 2.1 openssl @@ -3132,9 +3132,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - d50ccfbf0c1d249392919e2c46ad8d5c + 7920fce93d9addf63a420d86f91c5749 url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/8339/33495/openssl-1.0.2l.508328-linux64-508328.tar.bz2 + http://downloads.phoenixviewer.com/openssl-1.0.2l.180841936-linux64-180841936.tar.bz2 name linux64 @@ -3165,7 +3165,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.0.2l.508328 + 1.0.2l.180841936 pcre @@ -3222,9 +3222,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 0f058ca2176e7d02d51e54c66a96f336 + 348a6111dede9a4ddfc51049c2ff186f url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/908/2010/pcre-8.35.500898-linux64-500898.tar.bz2 + http://downloads.phoenixviewer.com/pcre-8.35.180841548-linux64-180841548.tar.bz2 name linux64 @@ -3255,7 +3255,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 8.35.500898 + 8.35.180841548 requests @@ -3288,9 +3288,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - a92f2235991871c3d601a73cfef9b2af + 9fe44ba82ee05363fdfa4c1b9f2ec360 url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/4105/11530/requests-1.0-linux64-504094.tar.bz2 + http://downloads.phoenixviewer.com/requests-2.18.1-linux64-180841555.tar.bz2 name linux64 @@ -3478,9 +3478,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - e67a27e13e546cbb13fad2665a1896b7 + df570f2b9c0087438604a8ba4dc37a85 url - http://downloads.phoenixviewer.com/uriparser-0.8.0.1-linux-x64-201502251606-r15.tar.bz2 + http://downloads.phoenixviewer.com/uriparser-0.8.0.1-linux64-180841550.tar.bz2 name linux64 @@ -3732,9 +3732,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - e2e5b6aba70c8fbc09ef7f12e8fb3937 + f810193590cae9b35a1c77b6c72bfb01 url - http://downloads.phoenixviewer.com/xmlrpc_epi-0.54.1.201505150223-r63-linux-x64-201505150223-r63.tar.bz2 + http://downloads.phoenixviewer.com/xmlrpc_epi-0.54.1.180841935-linux64-180841935.tar.bz2 name linux64 @@ -3765,7 +3765,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 0.54.1.500719 + 0.54.1.180841935 zlib @@ -3824,9 +3824,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - c165dcf9bd8a27c0382137c33e1a3854 + 15a645809cb2f14074f22e7848bb42cf url - http://downloads.phoenixviewer.com/zlib-1.2.8.201505150226-r125-linux-x64-201505150226-r125.tar.bz2 + http://downloads.phoenixviewer.com/zlib-1.2.8.180841547-linux64-180841547.tar.bz2 name linux64 @@ -3857,7 +3857,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.2.8.500857 + 1.2.8.180841547 package_description @@ -3878,6 +3878,25 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors configurations + Doxygen + + build + + arguments + + doxygen/Doxyfile + + command + doxygen + + configure + + command + cmake + + name + Doxygen + RelWithDebInfo configure @@ -3899,6 +3918,42 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfo + RelWithDebInfoFS + + configure + + command + bash + options + + ../scripts/configure_firestorm.sh + --btype RelWithDebInfo + --config + --version + --opensim + + + name + RelWithDebInfoFS + + RelWithDebInfoFS_open + + configure + + command + bash + options + + ../scripts/configure_firestorm.sh + --btype RelWithDebInfo + --config + --version + --opensim + + + name + RelWithDebInfoFS_open + RelWithDebInfoOS configure @@ -3941,47 +3996,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name Release - ReleaseOS - - configure - - arguments - - ../indra - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Release - -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE - - - name - ReleaseOS - - Doxygen - - build - - arguments - - doxygen/Doxyfile - - command - doxygen - - configure - - command - cmake - - name - Doxygen - - ReleaseFS configure @@ -4052,43 +4066,27 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS_open - RelWithDebInfoFS + ReleaseOS configure + arguments + + ../indra + command - bash + cmake options - ../scripts/configure_firestorm.sh - --btype RelWithDebInfo - --config - --version - --opensim + -DCMAKE_BUILD_TYPE:STRING=Release + -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE name - RelWithDebInfoFS + ReleaseOS - RelWithDebInfoFS_open - - configure - - command - bash - options - - ../scripts/configure_firestorm.sh - --btype RelWithDebInfo - --config - --version - --opensim - - - name - RelWithDebInfoFS_open - - name common @@ -4106,6 +4104,10 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors configure + arguments + + ../indra + options -DCMAKE_BUILD_TYPE:STRING=Release @@ -4113,10 +4115,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=TRUE - arguments - - ../indra - name Doxygen @@ -4147,13 +4145,67 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors Xcode - name RelWithDebInfo + RelWithDebInfoFS + + build + + command + ../scripts/configure_firestorm.sh + options + + --build + --package + --platform darwin + --btype RelWithDebInfo + --fmodstudio + --kdu + + + configure + + options + + --platform darwin + --package + --btype RelWithDebInfo + --fmodstudio + --kdu + + + default + True + name + RelWithDebInfoFS + + RelWithDebInfoFS_open + + build + + command + ../scripts/configure_firestorm.sh + options + + --build + --package + --platform darwin + --btype RelWithDebInfo + + + configure + + options + + --platform darwin + --package + --btype RelWithDebInfo + + + name + RelWithDebInfoFS_open + RelWithDebInfoOS build @@ -4208,90 +4260,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name Release - ReleaseOS - - build - - command - xcodebuild - options - - -configuration - Release - -project - SecondLife.xcodeproj - - - configure - - options - - -G - Xcode - - - name - ReleaseOS - - - RelWithDebInfoFS - - build - - command - ../scripts/configure_firestorm.sh - options - - --build - --package - --platform darwin - --btype RelWithDebInfo - --fmodstudio - --kdu - - - configure - - options - - --platform darwin - --package - --btype RelWithDebInfo - --fmodstudio - --kdu - - - default - True - name - RelWithDebInfoFS - - RelWithDebInfoFS_open - - build - - command - ../scripts/configure_firestorm.sh - options - - --build - --package - --platform darwin - --btype RelWithDebInfo - - - configure - - options - - --platform darwin - --package - --btype RelWithDebInfo - - - name - RelWithDebInfoFS_open - ReleaseFS build @@ -4318,7 +4286,31 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS - + ReleaseOS + + build + + command + xcodebuild + options + + -configuration + Release + -project + SecondLife.xcodeproj + + + configure + + options + + -G + Xcode + + + name + ReleaseOS + name darwin64 @@ -4375,91 +4367,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors Unix Makefiles - name RelWithDebInfo - RelWithDebInfoOS - - build - - command - make - options - - -j - 7 - - - configure - - options - - -G - Unix Makefiles - - - name - RelWithDebInfoOS - - Release - - build - - command - make - options - - -j - 12 - - - configure - - options - - -G - Unix Makefiles - - - name - Release - - ReleaseOS - - build - - command - make - options - - -j - 7 - - - configure - - options - - -G - Unix Makefiles - - - name - ReleaseOS - - default - - build - - - name - default - - RelWithDebInfoFS build @@ -4516,6 +4426,52 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfoFS_open + RelWithDebInfoOS + + build + + command + make + options + + -j + 7 + + + configure + + options + + -G + Unix Makefiles + + + name + RelWithDebInfoOS + + Release + + build + + command + make + options + + -j + 12 + + + configure + + options + + -G + Unix Makefiles + + + name + Release + ReleaseFS build @@ -4564,7 +4520,37 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS_open - + ReleaseOS + + build + + command + make + options + + -j + 7 + + + configure + + options + + -G + Unix Makefiles + + + name + ReleaseOS + + default + + build + + + name + default + name linux @@ -4603,13 +4589,83 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} - name RelWithDebInfo + RelWithDebInfoFS + + build + + arguments + + Firestorm.sln + + command + msbuild.exe + options + + /p:Configuration=RelWithDebInfo + /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log + /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err + /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + /t:Build + /p:useenv=true + /verbosity:normal + /toolsversion:12.0 + /p:VCBuildAdditionalOptions= /incremental + + + configure + + options + + --fmodstudio + --kdu + --version + --btype RelWithDebInfo + --platform win32 + + + default + True + name + RelWithDebInfoFS + + RelWithDebInfoFS_open + + build + + arguments + + Firestorm.sln + + command + msbuild.exe + options + + /p:Configuration=RelWithDebInfo + /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log + /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err + /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + /t:Build + /p:useenv=true + /verbosity:normal + /toolsversion:12.0 + /p:VCBuildAdditionalOptions= /incremental + + + configure + + options + + --version + --btype RelWithDebInfo + --platform win32 + + + name + RelWithDebInfoFS_open + RelWithDebInfoOS build @@ -4680,120 +4736,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name Release - ReleaseOS - - build - - arguments - - SecondLife.sln - - command - devenv - options - - /p:Configuration=Release - /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - /t:Build - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - /p:VCBuildAdditionalOptions= /incremental - - - configure - - arguments - - ..\indra - - options - - -G - ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} - -DUNATTENDED:BOOL=ON - -DINSTALL_PROPRIETARY=FALSE - -DUSE_KDU=FALSE - - - name - ReleaseOS - - - RelWithDebInfoFS - - build - - arguments - - Firestorm.sln - - command - msbuild.exe - options - - /p:Configuration=RelWithDebInfo - /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log - /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err - /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - /t:Build - /p:useenv=true - /verbosity:normal - /toolsversion:12.0 - /p:VCBuildAdditionalOptions= /incremental - - - configure - - options - - --fmodstudio - --kdu - --version - --btype RelWithDebInfo - --platform win32 - - - default - True - name - RelWithDebInfoFS - - RelWithDebInfoFS_open - - build - - arguments - - Firestorm.sln - - command - msbuild.exe - options - - /p:Configuration=RelWithDebInfo - /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log - /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err - /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - /t:Build - /p:useenv=true - /verbosity:normal - /toolsversion:12.0 - /p:VCBuildAdditionalOptions= /incremental - - - configure - - options - - --version - --btype RelWithDebInfo - --platform win32 - - - name - RelWithDebInfoFS_open - ReleaseFS build @@ -4938,8 +4880,45 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS_open - - + ReleaseOS + + build + + arguments + + SecondLife.sln + + command + devenv + options + + /p:Configuration=Release + /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:VCBuildAdditionalOptions= /incremental + + + configure + + arguments + + ..\indra + + options + + -G + ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} + -DUNATTENDED:BOOL=ON + -DINSTALL_PROPRIETARY=FALSE + -DUSE_KDU=FALSE + + + name + ReleaseOS + name windows From 4a002e999b997a64df7fe33a76b157fbd5eafa90 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 01:05:00 +0200 Subject: [PATCH 13/55] Linux: Rebuild glod from FS specific repo. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 7a25aaba2d..fae62987e7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1156,9 +1156,9 @@ archive hash - d99ebfff4639d1c94bc45466b870f2d0 + c742c8b3903aadd79c3a6f3d3c09986d url - http://downloads.phoenixviewer.com/glod-1.0pre3.180841551-linux64-180841551.tar.bz2 + http://downloads.phoenixviewer.com/glod-1.0pre3.180842253-linux64-180842253.tar.bz2 name linux64 From 9ebaa69d4e6565cddbd8a01d1cae5c9802e48140 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 11:27:18 +0200 Subject: [PATCH 14/55] Linux: Do not use ViewerManager (yet). --- indra/cmake/ViewerManager.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/cmake/ViewerManager.cmake b/indra/cmake/ViewerManager.cmake index 7150ffc4d1..148ec74706 100644 --- a/indra/cmake/ViewerManager.cmake +++ b/indra/cmake/ViewerManager.cmake @@ -1,3 +1,4 @@ include (Prebuilt) +if( NOT LINUX ) use_prebuilt_binary(viewer-manager) - +endif() From 8e2e0c6960b4daf9908df585dd7510c8cb50baad Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 11:44:42 +0200 Subject: [PATCH 15/55] Linux: Remove some remnants of media_plugin_gstreamer010 (for now, maybe it is wise to renable it later). --- indra/newview/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index e26943b43a..0011180ec4 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2401,7 +2401,7 @@ if (NOT ENABLE_MEDIA_PLUGINS) linux-crash-logger SLPlugin media_plugin_cef - media_plugin_gstreamer010 + #media_plugin_gstreamer010 media_plugin_libvlc llcommon ) @@ -2411,7 +2411,7 @@ else (NOT ENABLE_MEDIA_PLUGINS) linux-crash-logger SLPlugin media_plugin_cef - media_plugin_gstreamer010 + #media_plugin_gstreamer010 llcommon ) endif (NOT ENABLE_MEDIA_PLUGINS) From 512c1e63b174e2217057e9b22c294e8523a4074e Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 13:01:10 +0200 Subject: [PATCH 16/55] Linux: Use "--exclude=foo" rather than "--exclude foo" as the latter upsets some versions of tar. --- indra/newview/fs_viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/fs_viewer_manifest.py b/indra/newview/fs_viewer_manifest.py index ac01817eea..c142047991 100644 --- a/indra/newview/fs_viewer_manifest.py +++ b/indra/newview/fs_viewer_manifest.py @@ -110,7 +110,7 @@ class FSViewerManifest: os.rename("%s/firestorm-symbols-linux.tar.bz2" % self.args['configuration'].lower(), symName ) def fs_linux_tar_excludes(self): - return "--exclude core --exclude .debug/* --exclude .debug" + return "--exclude=core --exclude=.debug/* --exclude=.debug" def fs_save_windows_symbols(self, substitution_strings): #AO: Try to package up symbols From c56b1ed3fda5d03cff3775eea3daa407ef0a9fba Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 26 Mar 2018 19:16:10 +0200 Subject: [PATCH 17/55] Properly hide navigation and favorites bar if using Shift-Alt-U shortcut to hide the UI --- indra/newview/app_settings/settings.xml | 26 +++++++++++++++++++ indra/newview/llstartup.cpp | 5 ++++ indra/newview/llviewercontrol.cpp | 13 ++++++++++ indra/newview/llviewerwindow.cpp | 3 +++ .../default/xui/en/panel_navigation_bar.xml | 4 +-- .../xui/en/panel_navigation_bar.xml | 4 +-- .../starlight/xui/en/panel_navigation_bar.xml | 4 +-- .../xui/en/panel_navigation_bar.xml | 4 +-- 8 files changed, 55 insertions(+), 8 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index e8a90768f5..bdde99e927 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -13828,6 +13828,19 @@ Change of this parameter will affect the layout of buttons in notification toast Value 1 + FSInternalShowNavbarFavoritesPanel + + Comment + Internal control to show/hide navigation bar favorites panel + HideFromEditor + 1 + Persist + 0 + Type + Boolean + Value + 1 + ShowNavbarNavigationPanel Comment @@ -13839,6 +13852,19 @@ Change of this parameter will affect the layout of buttons in notification toast Value 0 + FSInternalShowNavbarNavigationPanel + + Comment + Internal control to show/hide navigation bar navigation panel + HideFromEditor + 1 + Persist + 0 + Type + Boolean + Value + 0 + ShowMiniLocationPanel Comment diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index f91f263c6f..c59e444c52 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -650,6 +650,11 @@ bool idle_startup() gSavedSettings.setString("FSInternalSkinCurrentTheme", gSavedSettings.getString("FSSkinCurrentThemeReadableName")); // + // Notification not showing if hiding the UI + gSavedSettings.setBOOL("FSInternalShowNavbarNavigationPanel", gSavedSettings.getBOOL("ShowNavbarNavigationPanel")); + gSavedSettings.setBOOL("FSInternalShowNavbarFavoritesPanel", gSavedSettings.getBOOL("ShowNavbarFavoritesPanel")); + // + if (LLFeatureManager::getInstance()->isSafe()) { LLNotificationsUtil::add("DisplaySetToSafe"); diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 56e2e6e8db..c3af18796d 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -919,6 +919,14 @@ void handleStaticEyesChanged() } // +// Notification not showing if hiding the UI +void handleNavbarSettingsChanged() +{ + gSavedSettings.setBOOL("FSInternalShowNavbarNavigationPanel", gSavedSettings.getBOOL("ShowNavbarNavigationPanel")); + gSavedSettings.setBOOL("FSInternalShowNavbarFavoritesPanel", gSavedSettings.getBOOL("ShowNavbarFavoritesPanel")); +} +// + // FIRE-20288: Option to render friends only void handleRenderFriendsOnlyChanged(const LLSD& newvalue) { @@ -1167,6 +1175,11 @@ void settings_setup_listeners() // FIRE-20288: Option to render friends only gSavedPerAccountSettings.getControl("FSRenderFriendsOnly")->getSignal()->connect(boost::bind(&handleRenderFriendsOnlyChanged, _2)); + + // Notification not showing if hiding the UI + gSavedSettings.getControl("ShowNavbarFavoritesPanel")->getSignal()->connect(boost::bind(&handleNavbarSettingsChanged)); + gSavedSettings.getControl("ShowNavbarNavigationPanel")->getSignal()->connect(boost::bind(&handleNavbarSettingsChanged)); + // } #if TEST_CACHED_CONTROL diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 2154507802..ab182ef373 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -6854,6 +6854,9 @@ void LLViewerWindow::setUIVisibility(bool visible) // Notification not showing if hiding the UI FSNearbyChat::instance().showDefaultChatBar(visible && !gSavedSettings.getBOOL("AutohideChatBar")); + gSavedSettings.setBOOL("FSInternalShowNavbarNavigationPanel", visible && gSavedSettings.getBOOL("ShowNavbarNavigationPanel")); + gSavedSettings.setBOOL("FSInternalShowNavbarFavoritesPanel", visible && gSavedSettings.getBOOL("ShowNavbarFavoritesPanel")); + // // Is done inside XUI now, using visibility_control //LLNavigationBar::getInstance()->setVisible(visible ? gSavedSettings.getBOOL("ShowNavbarNavigationPanel") : FALSE); diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml index 49e7b06be9..c0dc1701e6 100644 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -33,7 +33,7 @@ height="22" layout="topleft" name="navigation_bar_visibility_panel" - visibility_control="ShowNavbarNavigationPanel" + visibility_control="FSInternalShowNavbarNavigationPanel" auto_resize="false" width="1024"> @@ -216,7 +216,7 @@ height="15" layout="topleft" name="favorites_bar_visibility_panel" - visibility_control="ShowNavbarFavoritesPanel" + visibility_control="FSInternalShowNavbarFavoritesPanel" auto_resize="false"> @@ -216,7 +216,7 @@ height="15" layout="topleft" name="favorites_bar_visibility_panel" - visibility_control="ShowNavbarFavoritesPanel" + visibility_control="FSInternalShowNavbarFavoritesPanel" auto_resize="true"> @@ -227,7 +227,7 @@ height="15" layout="topleft" name="favorites_bar_visibility_panel" - visibility_control="ShowNavbarFavoritesPanel" + visibility_control="FSInternalShowNavbarFavoritesPanel" auto_resize="false"> @@ -225,7 +225,7 @@ height="15" layout="topleft" name="favorites_bar_visibility_panel" - visibility_control="ShowNavbarFavoritesPanel" + visibility_control="FSInternalShowNavbarFavoritesPanel" auto_resize="false"> Date: Mon, 26 Mar 2018 19:31:12 +0200 Subject: [PATCH 18/55] FIRE-22430: Voice won't connect after enabling from preferences while logged in --- indra/newview/llvoicevivox.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 52efde86dc..77c55cd10d 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -785,7 +785,10 @@ bool LLVivoxVoiceClient::callbackEndDaemon(const LLSD& data) bool LLVivoxVoiceClient::startAndLaunchDaemon() { //--------------------------------------------------------------------- - if (!voiceEnabled()) + // Bypass cached controls + //if (!voiceEnabled()) + if (!voiceEnabled(true)) + // { // Voice is locked out, we must not launch the vivox daemon. return false; From 16737fac1c5624275a8335cabaccf1b6e682f135 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 19:51:08 +0200 Subject: [PATCH 19/55] Convert tabs to spaces, otherwise GCC 7 gets a bit cranky about misleading indentation. --- indra/llwindow/llwindowsdl.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index c5224fd84c..52b48017ee 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -1471,10 +1471,10 @@ BOOL LLWindowSDL::convertCoords(LLCoordGL from, LLCoordWindow *to) if (!to) return FALSE; - to->mX = from.mX; - to->mY = mWindow->h - from.mY - 1; + to->mX = from.mX; + to->mY = mWindow->h - from.mY - 1; - return TRUE; + return TRUE; } BOOL LLWindowSDL::convertCoords(LLCoordWindow from, LLCoordGL* to) @@ -1482,31 +1482,31 @@ BOOL LLWindowSDL::convertCoords(LLCoordWindow from, LLCoordGL* to) if (!to) return FALSE; - to->mX = from.mX; - to->mY = mWindow->h - from.mY - 1; + to->mX = from.mX; + to->mY = mWindow->h - from.mY - 1; - return TRUE; + return TRUE; } BOOL LLWindowSDL::convertCoords(LLCoordScreen from, LLCoordWindow* to) { if (!to) - return FALSE; + return FALSE; - // In the fullscreen case, window and screen coordinates are the same. - to->mX = from.mX; - to->mY = from.mY; + // In the fullscreen case, window and screen coordinates are the same. + to->mX = from.mX; + to->mY = from.mY; return (TRUE); } BOOL LLWindowSDL::convertCoords(LLCoordWindow from, LLCoordScreen *to) { if (!to) - return FALSE; + return FALSE; - // In the fullscreen case, window and screen coordinates are the same. - to->mX = from.mX; - to->mY = from.mY; + // In the fullscreen case, window and screen coordinates are the same. + to->mX = from.mX; + to->mY = from.mY; return (TRUE); } From 6859c923941e8d7f4e3375f4ca3f51f925865f82 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 19:52:14 +0200 Subject: [PATCH 20/55] Remove misleading if/else. A reference can never be null, this would be undefined behaviour. Thus the compiler will always pick the if path. --- indra/llprimitive/llprimtexturelist.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/indra/llprimitive/llprimtexturelist.cpp b/indra/llprimitive/llprimtexturelist.cpp index f4f08248b8..83db5fd065 100644 --- a/indra/llprimitive/llprimtexturelist.cpp +++ b/indra/llprimitive/llprimtexturelist.cpp @@ -137,14 +137,22 @@ S32 LLPrimTextureList::copyTexture(const U8 index, const LLTextureEntry& te) // we're changing an existing entry llassert(mEntryList[index]); delete (mEntryList[index]); - if (&te) - { - mEntryList[index] = te.newCopy(); - } - else - { - mEntryList[index] = LLPrimTextureList::newTextureEntry(); - } + + // The compiler will assume te being valid as it is passed by reference and thus else will never be executed. + // If someone really passed *nullptr in here, this will be undefined behaviour + + // if (&te) + // { + // mEntryList[index] = te.newCopy(); + // } + // else + // { + // mEntryList[index] = LLPrimTextureList::newTextureEntry(); + // } + + mEntryList[index] = te.newCopy(); + // + return TEM_CHANGE_TEXTURE; } From 13806cb616f83e8db7d8a6dc1e3ae1247fe72e58 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 19:53:05 +0200 Subject: [PATCH 21/55] Rephrase the if expression to make it more clear, this is just for you GCC ... --- indra/llimage/llimageworker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llimage/llimageworker.cpp b/indra/llimage/llimageworker.cpp index b59b15c295..b4f67117be 100644 --- a/indra/llimage/llimageworker.cpp +++ b/indra/llimage/llimageworker.cpp @@ -131,7 +131,7 @@ bool LLImageDecodeThread::ImageRequest::processRequest() { return true; // done (failed) } - if (!(mFormattedImage->getWidth() * mFormattedImage->getHeight() * mFormattedImage->getComponents())) + if (0 == (mFormattedImage->getWidth() * mFormattedImage->getHeight() * mFormattedImage->getComponents())) { return true; // done (failed) } From 6888ade51747843b76ee0b422cb08a5d4243d3ae Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 20:05:34 +0200 Subject: [PATCH 22/55] Linux: Create a safe and happy place for GCC when including glh_linear.h --- indra/llprimitive/lldaeloader.cpp | 10 ++++++++++ indra/llprimitive/llmodelloader.cpp | 10 ++++++++++ indra/llrender/llgl.h | 10 ++++++++++ indra/llrender/llrender.h | 10 ++++++++++ 4 files changed, 40 insertions(+) diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp index 999f38c26b..49ee8b0d0c 100644 --- a/indra/llprimitive/lldaeloader.cpp +++ b/indra/llprimitive/lldaeloader.cpp @@ -60,7 +60,17 @@ #include "llsdserialize.h" #include "lljoint.h" +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" +#endif + #include "glh/glh_linear.h" + +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#endif + #include "llmatrix4a.h" diff --git a/indra/llprimitive/llmodelloader.cpp b/indra/llprimitive/llmodelloader.cpp index 3ae6232776..219a833bb4 100644 --- a/indra/llprimitive/llmodelloader.cpp +++ b/indra/llprimitive/llmodelloader.cpp @@ -29,7 +29,17 @@ #include "lljoint.h" #include "llcallbacklist.h" +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" +#endif + #include "glh/glh_linear.h" + +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#endif + #include "llmatrix4a.h" #include diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h index aa98b3f6bc..b87830a12d 100644 --- a/indra/llrender/llgl.h +++ b/indra/llrender/llgl.h @@ -43,8 +43,18 @@ #include "llinstancetracker.h" #include "llglheaders.h" + +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" +#endif + #include "glh/glh_linear.h" +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#endif + extern BOOL gDebugGL; extern BOOL gDebugSession; extern llofstream gFailLog; diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index f89258ce9f..837791b5e7 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -42,8 +42,18 @@ #include "llpointer.h" #include "llglheaders.h" #include "llmatrix4a.h" + +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" +#endif + #include "glh/glh_linear.h" +#if LL_LINUX && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) >= 70000 +#pragma GCC diagnostic push +#endif + class LLVertexBuffer; class LLCubeMap; class LLImageGL; From 6d8f22ae42f1a6aae850ea3734bd56648aca8a59 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 20:22:10 +0200 Subject: [PATCH 23/55] Linux: Add -Wno-placement-new as newer GCC version will otherwise fail to compile the outdated boost version the viewer uses. --- indra/cmake/00-Common.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 2112f35dac..5d443fb18f 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -157,7 +157,7 @@ if (LINUX) if ( ${FORTIFY_SOURCE_RES} EQUAL 0 ) add_definitions(-D_FORTIFY_SOURCE=2) endif() - set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-unused-but-set-variable -Wno-unused-variable ${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-unused-but-set-variable -Wno-unused-variable -Wno-placement-new ${CMAKE_CXX_FLAGS}") # gcc 4.3 and above don't like the LL boost and also # cause warnings due to our use of deprecated headers @@ -180,6 +180,10 @@ if (LINUX) add_definitions(-std=gnu++11) # + # Enable old C++ ABI + add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) + # + # force this platform to accept TOS via external browser No, do not. # add_definitions(-DEXTERNAL_TOS) From beb2d59bdeb94a7f462e825be384a9ebdaa262e5 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 20:23:19 +0200 Subject: [PATCH 24/55] Reformat statement to make it clear for GCC (otherwise it commplains about bool and int comparison). --- indra/newview/daeexport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/daeexport.cpp b/indra/newview/daeexport.cpp index a7c14e1ad3..b024e875d1 100644 --- a/indra/newview/daeexport.cpp +++ b/indra/newview/daeexport.cpp @@ -426,7 +426,7 @@ void ColladaExportFloater::CacheReadResponder::completed(bool success) else { // For other formats we need to decode first - if (mFormattedImage->updateData() && (mFormattedImage->getWidth() * mFormattedImage->getHeight() * mFormattedImage->getComponents())) + if (mFormattedImage->updateData() && ( (mFormattedImage->getWidth() * mFormattedImage->getHeight() * mFormattedImage->getComponents()) != 0 ) ) { LLPointer raw = new LLImageRaw; raw->resize(mFormattedImage->getWidth(), mFormattedImage->getHeight(), mFormattedImage->getComponents()); From 4a1f2939742a3ef780ff6832b637dc3331b7e9ab Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 20:24:04 +0200 Subject: [PATCH 25/55] Remove check for nullptr. A reference being equal to nullptr is undefined behaviour and optimizing compilers often remove those checks. --- indra/newview/llface.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 3d5563c627..e7f40fd85d 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -1033,10 +1033,15 @@ void LLFace::getPlanarProjectedParams(LLQuaternion* face_rot, LLVector3* face_po const LLVolumeFace& vf = getViewerObject()->getVolume()->getVolumeFace(mTEOffset); const LLVector4a& normal4a = vf.mNormals[0]; const LLVector4a& tangent = vf.mTangents[0]; - if (!&tangent) - { - return; - } + + // tangent is a reference, compiler will always assume it's valid and skip the check due to tangent==nullptr being undefined behaviour. + + // if (!&tangent) + // { + // return; + // } + + // LLVector4a binormal4a; binormal4a.setCross3(normal4a, tangent); From 1ef878cc5b15c783488012043cf3d4a73003c726 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 22:05:44 +0200 Subject: [PATCH 26/55] Fix some weirdness of passing 2/1 instead of true/false into setSSLVerifyHost. --- indra/newview/llxmlrpctransaction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llxmlrpctransaction.cpp b/indra/newview/llxmlrpctransaction.cpp index 143c97fca4..d48c0eb9b8 100644 --- a/indra/newview/llxmlrpctransaction.cpp +++ b/indra/newview/llxmlrpctransaction.cpp @@ -367,7 +367,7 @@ void LLXMLRPCTransaction::Impl::init(XMLRPC_REQUEST request, bool useGzip, const mCertStore = gSavedSettings.getString("CertStore"); httpOpts->setSSLVerifyPeer( vefifySSLCert ); - httpOpts->setSSLVerifyHost( vefifySSLCert ? 2 : 0); + httpOpts->setSSLVerifyHost( vefifySSLCert ); // LLRefCounted starts with a 1 ref, so don't add a ref in the smart pointer httpHeaders = LLCore::HttpHeaders::ptr_t(new LLCore::HttpHeaders()); From 244980386f9c6895d16da3d6d40ee74f86b02fd6 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 22:06:18 +0200 Subject: [PATCH 27/55] Untabbify to make GCC happy about the indentation. --- indra/newview/llmediadataclient.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/newview/llmediadataclient.cpp b/indra/newview/llmediadataclient.cpp index bd8f464acd..2cd1423aa4 100644 --- a/indra/newview/llmediadataclient.cpp +++ b/indra/newview/llmediadataclient.cpp @@ -204,7 +204,7 @@ bool LLMediaDataClient::isInQueue(const LLMediaDataClientObject::ptr_t &object) if (std::find_if(mUnQueuedRequests.begin(), mUnQueuedRequests.end(), upred) != mUnQueuedRequests.end()) return true; - return false; + return false; } void LLMediaDataClient::removeFromQueue(const LLMediaDataClientObject::ptr_t &object) @@ -815,14 +815,14 @@ bool LLObjectMediaDataClient::isEmpty() const bool LLObjectMediaDataClient::isInQueue(const LLMediaDataClientObject::ptr_t &object) { - // First, call parent impl. - if(LLMediaDataClient::isInQueue(object)) - return true; + // First, call parent impl. + if(LLMediaDataClient::isInQueue(object)) + return true; if (std::find_if(mRoundRobinQueue.begin(), mRoundRobinQueue.end(), PredicateMatchRequest(object->getID())) != mRoundRobinQueue.end()) return true; - return false; + return false; } void LLObjectMediaDataClient::removeFromQueue(const LLMediaDataClientObject::ptr_t &object) From 5e40e28d97fb3d38500c2d401ee658898cc493d4 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 23:19:34 +0200 Subject: [PATCH 28/55] Linux: Reintroduce setting rpath --- indra/cmake/00-Common.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 5d443fb18f..c044306ba3 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -202,7 +202,8 @@ if (LINUX) # this stops us requiring a really recent glibc at runtime add_compile_options(-fno-stack-protector) # linking can be very memory-hungry, especially the final viewer link - set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory") + #set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory") + set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory -Wl,--build-id -Wl,-rpath,'$ORIGIN:$ORIGIN/../lib' -Wl,--exclude-libs,ALL") endif (NOT USESYSTEMLIBS) set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}") From 0d6cd1bf627601f7356a2559cb7612a882b89270 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 23:20:40 +0200 Subject: [PATCH 29/55] Linux: Reorder link order, or we're getting errors about AtomicOps_Internalx86CPUFeatures being undefined. --- indra/cmake/CEFPlugin.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake index 2cdc6c2dda..8aefbaf2fc 100644 --- a/indra/cmake/CEFPlugin.cmake +++ b/indra/cmake/CEFPlugin.cmake @@ -38,8 +38,8 @@ elseif (DARWIN) elseif (LINUX) set(CEF_PLUGIN_LIBRARIES + dullahan cef cef_dll_wrapper.a - dullahan ) endif (WINDOWS) From c63b9779d7692ccf934cffd306b2dd214c45614b Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 23:21:21 +0200 Subject: [PATCH 30/55] Linux: Embed rpath in plugin libraries. --- indra/media_plugins/cef/CMakeLists.txt | 1 + indra/media_plugins/libvlc/CMakeLists.txt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt index 5d30a4f004..e0acc941dc 100644 --- a/indra/media_plugins/cef/CMakeLists.txt +++ b/indra/media_plugins/cef/CMakeLists.txt @@ -62,6 +62,7 @@ if (LINUX) # message(FATAL_ERROR "CEF plugin has been enabled for a Linux compile.\n" # " Please create a volume_catcher implementation for this platform.") list(APPEND media_plugin_cef_SOURCE_FILES dummy_volume_catcher.cpp) + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id -Wl,-rpath,'$ORIGIN:$ORIGIN/../../lib'") elseif (DARWIN) list(APPEND media_plugin_cef_SOURCE_FILES mac_volume_catcher_null.cpp) find_library(CORESERVICES_LIBRARY CoreServices) diff --git a/indra/media_plugins/libvlc/CMakeLists.txt b/indra/media_plugins/libvlc/CMakeLists.txt index d3e9243069..3090e6d468 100644 --- a/indra/media_plugins/libvlc/CMakeLists.txt +++ b/indra/media_plugins/libvlc/CMakeLists.txt @@ -94,3 +94,7 @@ if (DARWIN) ) endif (DARWIN) + +if( LINUX ) + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id -Wl,-rpath,'$ORIGIN:$ORIGIN/../../lib'") +endif() From 46ada5655fea3b7f7e704da1fc630c0cfeb7e1e1 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 26 Mar 2018 23:28:20 +0200 Subject: [PATCH 31/55] Copy dullahan_host and not llceflib_host. CEF is still broken though, for starters is does search dullaha*m*_host. --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 4895bc773b..327dd869aa 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1960,7 +1960,7 @@ class LinuxManifest(ViewerManifest): with self.prefix(src=os.path.join(os.pardir, 'packages', 'bin', 'release'), dst="bin"): self.path( "chrome-sandbox" ) - self.path( "llceflib_host" ) + self.path( "dullahan_host" ) self.path( "natives_blob.bin" ) self.path( "snapshot_blob.bin" ) self.path( "libffmpegsumo.so" ) From fe15d6cb3fa3bdd93acc449ae16592dcc20d5d20 Mon Sep 17 00:00:00 2001 From: Nicky Date: Tue, 27 Mar 2018 15:48:50 +0200 Subject: [PATCH 32/55] New dullahan. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 011fbf7526..160f4f4d2d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -580,9 +580,9 @@ archive hash - 1640e6ca5010e0e191ec6de54dad973d + 2327c126a009ffb9158b8b813a73a0bd url - http://downloads.phoenixviewer.com/dullahan-1.1.651_3.2987.1591.gd3e47f5-linux64-180841928.tar.bz2 + http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-linux64-180861153.tar.bz2 name linux64 From ab4ddc2710f85572f1491b7e3299200d409f60d0 Mon Sep 17 00:00:00 2001 From: Nicky Date: Tue, 27 Mar 2018 18:27:30 +0200 Subject: [PATCH 33/55] viewer-manager for Linux x64. --- autobuild.xml | 12 ++++++++++++ indra/cmake/ViewerManager.cmake | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 160f4f4d2d..e9a5b171d2 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3581,6 +3581,18 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name linux + linux64 + + archive + + hash + 129b80dd47b53bfa02fc21ab1eb1901c + url + http://downloads.phoenixviewer.com/viewer_manager-1.0.180861311-linux64-180861311.tar.bz2 + + name + linux64 + windows archive diff --git a/indra/cmake/ViewerManager.cmake b/indra/cmake/ViewerManager.cmake index 148ec74706..94864c26af 100644 --- a/indra/cmake/ViewerManager.cmake +++ b/indra/cmake/ViewerManager.cmake @@ -1,4 +1,2 @@ include (Prebuilt) -if( NOT LINUX ) use_prebuilt_binary(viewer-manager) -endif() From 5846fa4ff42c3595220f6c907b939e863e668a9b Mon Sep 17 00:00:00 2001 From: Nicky Date: Tue, 27 Mar 2018 18:28:31 +0200 Subject: [PATCH 34/55] Package missing CEF pieces. --- autobuild.xml | 4 ++-- indra/newview/viewer_manifest.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index e9a5b171d2..df75996fe0 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -580,9 +580,9 @@ archive hash - 2327c126a009ffb9158b8b813a73a0bd + 6dded97d697c5ac9e4bd33c9ca8e3f9e url - http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-linux64-180861153.tar.bz2 + http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-linux64-180861548.tar.bz2 name linux64 diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 327dd869aa..d42e96d3d8 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1957,12 +1957,16 @@ class LinuxManifest(ViewerManifest): with self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'release'), dst="lib"): self.path( "libcef.so" ) self.path( "libllceflib.so" ) + + with self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'release', 'swiftshader'), dst=os.path.join("bin", "swiftshader") ): + self.path( "*.so" ) with self.prefix(src=os.path.join(os.pardir, 'packages', 'bin', 'release'), dst="bin"): self.path( "chrome-sandbox" ) self.path( "dullahan_host" ) self.path( "natives_blob.bin" ) self.path( "snapshot_blob.bin" ) + self.path( "v8_context_snapshot.bin" ) self.path( "libffmpegsumo.so" ) with self.prefix(src=os.path.join(os.pardir, 'packages', 'resources'), dst="bin"): From b61aa99146002596dba8aa7ed496af60be8c5735 Mon Sep 17 00:00:00 2001 From: Nicky Date: Tue, 27 Mar 2018 22:26:30 +0200 Subject: [PATCH 35/55] Make sure binary gets properly stripped from debug symbols and exclude those frmo tarfile. --- indra/newview/fs_viewer_manifest.py | 4 +++- indra/newview/viewer_manifest.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/indra/newview/fs_viewer_manifest.py b/indra/newview/fs_viewer_manifest.py index 712556686f..6c0ea2921f 100644 --- a/indra/newview/fs_viewer_manifest.py +++ b/indra/newview/fs_viewer_manifest.py @@ -110,7 +110,9 @@ class FSViewerManifest: os.rename("%s/firestorm-symbols-linux-%d.tar.bz2" % (self.args['configuration'].lower(), self.address_size), symName ) def fs_linux_tar_excludes(self): - return "--exclude=core --exclude=.debug/* --exclude=.debug" + installer_name_components = ['Phoenix',self.app_name(),self.args.get('arch'),'.'.join(self.args['version'])] + installer_name = "_".join(installer_name_components) + return "--exclude=%s/bin/.debug" % installer_name def fs_save_windows_symbols(self, substitution_strings): #AO: Try to package up symbols diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index d42e96d3d8..cd24d71374 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -2163,7 +2163,7 @@ class LinuxManifest(ViewerManifest): [os.path.join(self.get_dst_prefix(), dir) for dir in ('bin', 'lib')] + # Remove VMP #['-type', 'f', '!', '-name', '*.py', '!', '-name', 'SL_Launcher', - ['-type', 'f', '!', + ['-type', 'f', "!", "-name", "*.dat", "!", "-name", "*.pak", "!", "-name", "*.bin", # Remove VMP '!', '-name', 'update_install', '-exec', 'strip', '-S', '{}', ';']) From cccf1288956346da55a1ecb5cbd58430d4b71e35 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Tue, 27 Mar 2018 22:39:55 +0200 Subject: [PATCH 36/55] Fix crash then using tp2 command line option using own avatar ID as target --- indra/newview/chatbar_as_cmdline.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/chatbar_as_cmdline.cpp b/indra/newview/chatbar_as_cmdline.cpp index 9e6a86afeb..84b0515e90 100644 --- a/indra/newview/chatbar_as_cmdline.cpp +++ b/indra/newview/chatbar_as_cmdline.cpp @@ -1708,7 +1708,7 @@ LLUUID cmdline_partial_name2key(std::string partial_name) void cmdline_tp2name(const std::string& target) { LLUUID avkey = cmdline_partial_name2key(target); - if (avkey.notNull()) + if (avkey.notNull() && avkey != gAgentID) { LLAvatarActions::teleportTo(avkey); } From 545a3cb376531073e5e5fa273af144c0336ba2d5 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Tue, 27 Mar 2018 22:57:45 +0200 Subject: [PATCH 37/55] Add additional safety check --- indra/newview/fsradar.cpp | 48 ++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/indra/newview/fsradar.cpp b/indra/newview/fsradar.cpp index c7e423c98f..1984ef0593 100644 --- a/indra/newview/fsradar.cpp +++ b/indra/newview/fsradar.cpp @@ -864,33 +864,35 @@ void FSRadar::teleportToAvatar(const LLUUID& targetAv) } else { - // FIRE-20862: Teleport the configured offset - // toward the center of the region from the + // FIRE-20862: Teleport the configured offset toward the center of the region from the // avatar's reported position LLViewerRegion* avreg = world->getRegionFromPosGlobal(avpos); - LLVector3d region_center = avreg->getCenterGlobal(); - LLVector3d offset = avpos - region_center; - LLVector3d destination; - F32 lateral_distance= gSavedSettings.getF32("FSTeleportToOffsetLateral"); - F32 vertical_distance= gSavedSettings.getF32("FSTeleportToOffsetVertical"); - if (offset.normalize() != 0.f) // there's an actual offset - { - if (lateral_distance > 0.0f) - { - offset *= lateral_distance; - destination = avpos - offset; - } - else - { - destination = avpos; - } - } - else // the target is exactly at the center, so the offset is 0 + if (avreg) { - destination = region_center + LLVector3d(0.f, lateral_distance, 0.f); + LLVector3d region_center = avreg->getCenterGlobal(); + LLVector3d offset = avpos - region_center; + LLVector3d destination; + F32 lateral_distance = gSavedSettings.getF32("FSTeleportToOffsetLateral"); + F32 vertical_distance = gSavedSettings.getF32("FSTeleportToOffsetVertical"); + if (offset.normalize() != 0.f) // there's an actual offset + { + if (lateral_distance > 0.0f) + { + offset *= lateral_distance; + destination = avpos - offset; + } + else + { + destination = avpos; + } + } + else // the target is exactly at the center, so the offset is 0 + { + destination = region_center + LLVector3d(0.f, lateral_distance, 0.f); + } + destination.mdV[VZ] = avpos.mdV[VZ] + vertical_distance; + gAgent.teleportViaLocation(destination); } - destination.mdV[VZ] = avpos.mdV[VZ] + vertical_distance; - gAgent.teleportViaLocation(destination); } } else From e90e02c0d9c3dbf689f28b73ed2de8ed1e5b1504 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 28 Mar 2018 00:19:21 +0200 Subject: [PATCH 38/55] Unshuffle autobuild.xml --- autobuild.xml | 1230 +++++++++++++++++++++++++------------------------ 1 file changed, 616 insertions(+), 614 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index df75996fe0..226602b369 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3,6 +3,206 @@ installables + ndPhysicsStub + + license + HACD/LGPL + license_file + LICENSES/ndPhysicsStub.txt + name + ndPhysicsStub + platforms + + darwin + + archive + + hash + 47ddd059d48f650e39796c10ea828689 + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-darwin-201606211534-r77.tar.bz2 + + name + darwin + + linux + + archive + + hash + 0ea99b626d4d5e3dc43f9f35f88625ba + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.201502162025-r74-linux-201502162025-r74.tar.bz2 + + name + linux + + linux64 + + archive + + hash + 2709f7a5cf499ea77481dd1fce796d61 + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.201505150224-r74-linux-x64-201505150224-r74.tar.bz2 + + name + linux64 + + windows + + archive + + hash + 7ffe5a6165e6808e0674754b56545034 + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-windows-201505061845-r74.tar.bz2 + + name + windows + + windows64 + + archive + + hash + a2baf97f950cc16af9fe5cf316b7fa4d + url + http://downloads.phoenixviewer.com/ndPhysicsStub-1.201412081952-windows-x64-201412081952.tar.bz2 + + name + windows64 + + + + gntp-growl + + copyright + The Growl Project + description + A unified notification system for Mac OS X + license + bsd + name + gntp-growl + platforms + + darwin + + archive + + hash + 33300134846d0f00ac4f31c1a190e3e6 + url + http://downloads.phoenixviewer.com/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2 + + name + darwin + + linux + + archive + + hash + af06208ec80b1f170cc560141602e2dc + url + http://downloads.phoenixviewer.com/libnotify-0.4.4-linux-20101003.tar.bz2 + + name + linux + + windows + + archive + + hash + 315e6d3917b1b1327033eb41f868e828 + url + http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-201601022248-r16.tar.bz2 + + name + windows + + windows64 + + archive + + hash + 5b1d8e9d3f4fd4fcc6b090d2e9bfd23d + url + http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-x64-201601022251-r16.tar.bz2 + + name + windows64 + + + + openjpeg2 + + copyright + Copyright (c) 2002-2016, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium, Copyright (c) 2002-2007, Professor Benoit Macq, Copyright (c) 2001-2003, David Janssens, Copyright (c) 2002-2003, Yannick Verschueren, Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe, Copyright (c) 2005, Herve Drolon, FreeImage Team + description + The OpenJPEG library is an open-source JPEG 2000 codec written in C language. + license + BSD + license_file + LICENSES/openjpeg.txt + name + openjpeg2 + platforms + + linux + + archive + + hash + 3925c90f0d3f5523acdad063620d01d6 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141918-r32-linux-201601141918-r32.tar.bz2 + + name + linux + + linux64 + + archive + + hash + 8f4188c9a281425e26d89af0676bb6b7 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141020-r32-linux-x64-201601141020-r32.tar.bz2 + + name + linux64 + + windows + + archive + + hash + bc784edaab1b786766b2f381a86b8710 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141919-r32-windows-201601141919-r32.tar.bz2 + + name + windows + + windows64 + + archive + + hash + 0465f2221c22a7349e4ae49f751ae3d3 + url + http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141917-r32-windows-x64-201601141917-r32.tar.bz2 + + name + windows64 + + + version + 2.1 + SDL copyright @@ -133,7 +333,7 @@ version - 1.4.5.180841559 + 1.4.5.504800 boost @@ -341,7 +541,7 @@ version - 2.3.180841822 + 2.3.500902 curl @@ -433,7 +633,7 @@ version - 7.54.1.180841943 + 7.54.1.509254 db @@ -613,7 +813,7 @@ version - 1.1.651_3.2987.1591.gd3e47f5 + 1.1.820_3.3071.1634.g9cc59c8 elfio @@ -727,59 +927,7 @@ version - 2.1.1.180841547 - - fmodex - - copyright - COPYRIGHT 2014 FIRELIGHT TECHNOLOGIES PTY LTD. ALL RIGHTS RESERVED - license - fmodex - license_file - LICENSES/fmodex.txt - name - fmodex - platforms - - darwin - - archive - - hash - cba1feed7f6bb671d791a517fddf205a - url - file:///opt/firestorm/fmodex-44461-darwin-201601300040-r23.tar.bz2 - - name - darwin - - linux - - archive - - hash - 9b090869508fabee82dc53cae977fb99 - url - file:///opt/firestorm/fmodex-44461-linux-201601282301-r23.tar.bz2 - - name - linux - - windows - - archive - - hash - 5b1b5ce866afd2a74e445af1fffe6a8b - url - file:///c:/cygwin/opt/firestorm/fmodex-44461-windows-201601282252-r23.tar.bz2 - - name - windows - - - version - 4.44.61 + 2.1.1.500375 fmodstudio @@ -869,6 +1017,58 @@ version 1.10.04 + fmodex + + copyright + COPYRIGHT 2014 FIRELIGHT TECHNOLOGIES PTY LTD. ALL RIGHTS RESERVED + license + fmodex + license_file + LICENSES/fmodex.txt + name + fmodex + platforms + + darwin + + archive + + hash + cba1feed7f6bb671d791a517fddf205a + url + file:///opt/firestorm/fmodex-44461-darwin-201601300040-r23.tar.bz2 + + name + darwin + + linux + + archive + + hash + 9b090869508fabee82dc53cae977fb99 + url + file:///opt/firestorm/fmodex-44461-linux-201601282301-r23.tar.bz2 + + name + linux + + windows + + archive + + hash + 5b1b5ce866afd2a74e445af1fffe6a8b + url + file:///c:/cygwin/opt/firestorm/fmodex-44461-windows-201601282252-r23.tar.bz2 + + name + windows + + + version + 4.44.61 + fontconfig copyright @@ -999,7 +1199,7 @@ version - 2.4.4.180841832 + 2.4.4.500865 glext @@ -1191,69 +1391,7 @@ version - 1.0pre3.180841551 - - gntp-growl - - copyright - The Growl Project - description - A unified notification system for Mac OS X - license - bsd - name - gntp-growl - platforms - - darwin - - archive - - hash - 33300134846d0f00ac4f31c1a190e3e6 - url - http://downloads.phoenixviewer.com/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2 - - name - darwin - - linux - - archive - - hash - af06208ec80b1f170cc560141602e2dc - url - http://downloads.phoenixviewer.com/libnotify-0.4.4-linux-20101003.tar.bz2 - - name - linux - - windows - - archive - - hash - 315e6d3917b1b1327033eb41f868e828 - url - http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-201601022248-r16.tar.bz2 - - name - windows - - windows64 - - archive - - hash - 5b1d8e9d3f4fd4fcc6b090d2e9bfd23d - url - http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-x64-201601022251-r16.tar.bz2 - - name - windows64 - - + 1.0pre3.501614 google_breakpad @@ -1343,7 +1481,7 @@ version - 1413.180841553 + 1413.501824 googlemock @@ -1433,7 +1571,7 @@ version - 1.7.0.180841921 + 1.7.0.500908 gstreamer @@ -1473,7 +1611,7 @@ version - 0.10.6.180841551 + 0.10.6.314267 gtk-atk-pango-glib @@ -1723,7 +1861,7 @@ version - 8c.180841548 + 8c.503140 jsoncpp @@ -1813,7 +1951,7 @@ version - 0.5.0.180841554 + 0.5.0.501464 kdu @@ -1993,7 +2131,7 @@ version - 1.3.2.180841552 + 1.3.2.500526 libndofdev @@ -2149,7 +2287,7 @@ version - 1.6.8.180841558 + 1.6.8.500873 libuuid @@ -2281,7 +2419,7 @@ version - 2.9.4.180841555 + 2.9.4.500877 llappearance_utility @@ -2524,78 +2662,6 @@ version 7.11.1.297294 - ndPhysicsStub - - license - HACD/LGPL - license_file - LICENSES/ndPhysicsStub.txt - name - ndPhysicsStub - platforms - - darwin - - archive - - hash - 47ddd059d48f650e39796c10ea828689 - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-darwin-201606211534-r77.tar.bz2 - - name - darwin - - linux - - archive - - hash - 0ea99b626d4d5e3dc43f9f35f88625ba - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.201502162025-r74-linux-201502162025-r74.tar.bz2 - - name - linux - - linux64 - - archive - - hash - 2709f7a5cf499ea77481dd1fce796d61 - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.201505150224-r74-linux-x64-201505150224-r74.tar.bz2 - - name - linux64 - - windows - - archive - - hash - 7ffe5a6165e6808e0674754b56545034 - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-windows-201505061845-r74.tar.bz2 - - name - windows - - windows64 - - archive - - hash - a2baf97f950cc16af9fe5cf316b7fa4d - url - http://downloads.phoenixviewer.com/ndPhysicsStub-1.201412081952-windows-x64-201412081952.tar.bz2 - - name - windows64 - - - nghttp2 copyright @@ -2675,7 +2741,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors source_type hg version - 1.25.0.180841549 + 1.25.0.509246 nvapi @@ -2807,7 +2873,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.2.2-1.3.2.180841550 + 1.2.2-1.3.2.500397 open-libndofdev @@ -2919,7 +2985,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.12.854-1.1.0.180841552 + 1.12.854-1.1.0.314223 openjpeg @@ -3009,73 +3075,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.5.1.180841553 - - openjpeg2 - - copyright - Copyright (c) 2002-2016, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium, Copyright (c) 2002-2007, Professor Benoit Macq, Copyright (c) 2001-2003, David Janssens, Copyright (c) 2002-2003, Yannick Verschueren, Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe, Copyright (c) 2005, Herve Drolon, FreeImage Team - description - The OpenJPEG library is an open-source JPEG 2000 codec written in C language. - license - BSD - license_file - LICENSES/openjpeg.txt - name - openjpeg2 - platforms - - linux - - archive - - hash - 3925c90f0d3f5523acdad063620d01d6 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141918-r32-linux-201601141918-r32.tar.bz2 - - name - linux - - linux64 - - archive - - hash - 8f4188c9a281425e26d89af0676bb6b7 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141020-r32-linux-x64-201601141020-r32.tar.bz2 - - name - linux64 - - windows - - archive - - hash - bc784edaab1b786766b2f381a86b8710 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141919-r32-windows-201601141919-r32.tar.bz2 - - name - windows - - windows64 - - archive - - hash - 0465f2221c22a7349e4ae49f751ae3d3 - url - http://downloads.phoenixviewer.com/openjpeg2-2.1.201601141917-r32-windows-x64-201601141917-r32.tar.bz2 - - name - windows64 - - - version - 2.1 + 1.4.0.297018 openssl @@ -3165,7 +3165,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.0.2l.180841936 + 1.0.2l.508328 pcre @@ -3255,7 +3255,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 8.35.180841548 + 8.35.500898 requests @@ -3777,7 +3777,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 0.54.1.180841935 + 0.54.1.500719 zlib @@ -3869,7 +3869,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors version - 1.2.8.180841547 + 1.2.8.500857 package_description @@ -3890,25 +3890,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors configurations - Doxygen - - build - - arguments - - doxygen/Doxyfile - - command - doxygen - - configure - - command - cmake - - name - Doxygen - RelWithDebInfo configure @@ -3930,42 +3911,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfo - RelWithDebInfoFS - - configure - - command - bash - options - - ../scripts/configure_firestorm.sh - --btype RelWithDebInfo - --config - --version - --opensim - - - name - RelWithDebInfoFS - - RelWithDebInfoFS_open - - configure - - command - bash - options - - ../scripts/configure_firestorm.sh - --btype RelWithDebInfo - --config - --version - --opensim - - - name - RelWithDebInfoFS_open - RelWithDebInfoOS configure @@ -4008,6 +3953,46 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name Release + ReleaseOS + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + + + name + ReleaseOS + + Doxygen + + build + + arguments + + doxygen/Doxyfile + + command + doxygen + + configure + + command + cmake + + name + Doxygen + ReleaseFS configure @@ -4078,26 +4063,41 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS_open - ReleaseOS + RelWithDebInfoFS configure - arguments - - ../indra - command - cmake + bash options - -DCMAKE_BUILD_TYPE:STRING=Release - -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE + ../scripts/configure_firestorm.sh + --btype RelWithDebInfo + --config + --version + --opensim name - ReleaseOS + RelWithDebInfoFS + + RelWithDebInfoFS_open + + configure + + command + bash + options + + ../scripts/configure_firestorm.sh + --btype RelWithDebInfo + --config + --version + --opensim + + + name + RelWithDebInfoFS_open name @@ -4116,10 +4116,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors configure - arguments - - ../indra - options -DCMAKE_BUILD_TYPE:STRING=Release @@ -4127,6 +4123,10 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=TRUE + arguments + + ../indra + name Doxygen @@ -4160,6 +4160,85 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfo + RelWithDebInfoOS + + build + + command + xcodebuild + options + + -configuration + RelWithDebInfo + -project + SecondLife.xcodeproj + + + configure + + options + + -G + Xcode + + + name + RelWithDebInfoOS + + Release + + build + + command + xcodebuild + filters + + setenv + + options + + -configuration + Release + -project + SecondLife.xcodeproj + + + configure + + options + + -G + Xcode + + + name + Release + + ReleaseOS + + build + + command + xcodebuild + options + + -configuration + Release + -project + SecondLife.xcodeproj + + + configure + + options + + -G + Xcode + + + name + ReleaseOS + RelWithDebInfoFS build @@ -4218,60 +4297,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfoFS_open - RelWithDebInfoOS - - build - - command - xcodebuild - options - - -configuration - RelWithDebInfo - -project - SecondLife.xcodeproj - - - configure - - options - - -G - Xcode - - - name - RelWithDebInfoOS - - Release - - build - - command - xcodebuild - filters - - setenv - - options - - -configuration - Release - -project - SecondLife.xcodeproj - - - configure - - options - - -G - Xcode - - - name - Release - ReleaseFS build @@ -4298,31 +4323,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS - ReleaseOS - - build - - command - xcodebuild - options - - -configuration - Release - -project - SecondLife.xcodeproj - - - configure - - options - - -G - Xcode - - - name - ReleaseOS - name darwin64 @@ -4382,6 +4382,84 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfo + RelWithDebInfoOS + + build + + command + make + options + + -j + 7 + + + configure + + options + + -G + Unix Makefiles + + + name + RelWithDebInfoOS + + Release + + build + + command + make + options + + -j + 12 + + + configure + + options + + -G + Unix Makefiles + + + name + Release + + ReleaseOS + + build + + command + make + options + + -j + 7 + + + configure + + options + + -G + Unix Makefiles + + + name + ReleaseOS + + default + + build + + + name + default + + RelWithDebInfoFS build @@ -4438,52 +4516,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfoFS_open - RelWithDebInfoOS - - build - - command - make - options - - -j - 7 - - - configure - - options - - -G - Unix Makefiles - - - name - RelWithDebInfoOS - - Release - - build - - command - make - options - - -j - 12 - - - configure - - options - - -G - Unix Makefiles - - - name - Release - ReleaseFS build @@ -4532,37 +4564,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS_open - ReleaseOS - - build - - command - make - options - - -j - 7 - - - configure - - options - - -G - Unix Makefiles - - - name - ReleaseOS - - default - - build - - - name - default - + name linux @@ -4604,80 +4606,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name RelWithDebInfo - RelWithDebInfoFS - - build - - arguments - - Firestorm.sln - - command - msbuild.exe - options - - /p:Configuration=RelWithDebInfo - /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log - /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err - /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - /t:Build - /p:useenv=true - /verbosity:normal - /toolsversion:12.0 - /p:VCBuildAdditionalOptions= /incremental - - - configure - - options - - --fmodstudio - --kdu - --version - --btype RelWithDebInfo - --platform win32 - - - default - True - name - RelWithDebInfoFS - - RelWithDebInfoFS_open - - build - - arguments - - Firestorm.sln - - command - msbuild.exe - options - - /p:Configuration=RelWithDebInfo - /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log - /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err - /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - /t:Build - /p:useenv=true - /verbosity:normal - /toolsversion:12.0 - /p:VCBuildAdditionalOptions= /incremental - - - configure - - options - - --version - --btype RelWithDebInfo - --platform win32 - - - name - RelWithDebInfoFS_open - RelWithDebInfoOS build @@ -4748,6 +4676,119 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name Release + ReleaseOS + + build + + arguments + + SecondLife.sln + + command + devenv + options + + /p:Configuration=Release + /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:VCBuildAdditionalOptions= /incremental + + + configure + + arguments + + ..\indra + + options + + -G + ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} + -DUNATTENDED:BOOL=ON + -DINSTALL_PROPRIETARY=FALSE + -DUSE_KDU=FALSE + + + name + ReleaseOS + + RelWithDebInfoFS + + build + + arguments + + Firestorm.sln + + command + msbuild.exe + options + + /p:Configuration=RelWithDebInfo + /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log + /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err + /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + /t:Build + /p:useenv=true + /verbosity:normal + /toolsversion:12.0 + /p:VCBuildAdditionalOptions= /incremental + + + configure + + options + + --fmodstudio + --kdu + --version + --btype RelWithDebInfo + --platform win32 + + + default + True + name + RelWithDebInfoFS + + RelWithDebInfoFS_open + + build + + arguments + + Firestorm.sln + + command + msbuild.exe + options + + /p:Configuration=RelWithDebInfo + /flp:LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.log + /flp1:errorsonly;LogFile=logs\FirestormBuild_win-${AUTOBUILD_ADDRSIZE}.err + /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + /t:Build + /p:useenv=true + /verbosity:normal + /toolsversion:12.0 + /p:VCBuildAdditionalOptions= /incremental + + + configure + + options + + --version + --btype RelWithDebInfo + --platform win32 + + + name + RelWithDebInfoFS_open + ReleaseFS build @@ -4892,45 +4933,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors name ReleaseFS_open - ReleaseOS - - build - - arguments - - SecondLife.sln - - command - devenv - options - - /p:Configuration=Release - /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} - /t:Build - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - /p:VCBuildAdditionalOptions= /incremental - - - configure - - arguments - - ..\indra - - options - - -G - ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} - -DUNATTENDED:BOOL=ON - -DINSTALL_PROPRIETARY=FALSE - -DUSE_KDU=FALSE - - - name - ReleaseOS - name windows From c7ee9be614fd042389a4756722a64f34dcc56452 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 28 Mar 2018 18:54:42 +0200 Subject: [PATCH 39/55] FIRE-22441: Icons on Nearby Chat floater are misaligned on Vintage skin --- indra/newview/skins/vintage/xui/en/floater_fs_nearby_chat.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/skins/vintage/xui/en/floater_fs_nearby_chat.xml b/indra/newview/skins/vintage/xui/en/floater_fs_nearby_chat.xml index dd2eeccf51..1e3cb6ab65 100644 --- a/indra/newview/skins/vintage/xui/en/floater_fs_nearby_chat.xml +++ b/indra/newview/skins/vintage/xui/en/floater_fs_nearby_chat.xml @@ -28,13 +28,13 @@ animate="false" follows="top|left" clip="false" - height="9" + height="27" width="200" left_pad="0" layout="topleft" orientation="horizontal" name="ls_control_panel" - top="18" + top="0" left="3"> Date: Thu, 29 Mar 2018 13:16:04 +0200 Subject: [PATCH 40/55] All 3P packages to build Linux x86. --- autobuild.xml | 132 +++++++++++++++++++------------------- indra/cmake/JsonCpp.cmake | 6 +- 2 files changed, 67 insertions(+), 71 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 226602b369..8c18d7c3ee 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -222,9 +222,9 @@ archive hash - 8a19ebfac2b8ad690ef406ae55d13fe3 + 2dd97d8bd012be4cdc58f550395feb7d url - http://downloads.phoenixviewer.com/SDL-1.2.15-linux-201605221913-r44.tar.bz2 + http://downloads.phoenixviewer.com/SDL-1.2.15-linux-180871815.tar.bz2 name linux @@ -288,9 +288,9 @@ archive hash - 1aa2e5355bb9df09f9196d14a72b6705 + 161e07b37e2f30da004a0d72d5075ad7 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-apr/rev/314241/arch/Linux/installer/apr_suite-1.4.5.314241-linux-314241.tar.bz2 + http://downloads.phoenixviewer.com/apr_suite-1.4.5.180871344-linux-180871344.tar.bz2 name linux @@ -378,9 +378,9 @@ archive hash - 5ff95c28897a7bb4da93bd4f5b3d9d06 + 32828f4ee3e5a45ed31e37eb7dd6367c url - http://downloads.phoenixviewer.com/boost-1.57-linux-201505061539-r135.tar.bz2 + http://downloads.phoenixviewer.com/boost-1.57-linux-180871354.tar.bz2 name linux @@ -496,9 +496,9 @@ archive hash - f73cbdc220605119cf5f1b0c42d3bb9c + d83896f28716f34b7b49d61a23283c4c url - http://downloads.phoenixviewer.com/colladadom-2.3.201505061613-r94-linux-201505061613-r94.tar.bz2 + http://downloads.phoenixviewer.com/colladadom-2.3.180871403-linux-180871403.tar.bz2 name linux @@ -586,9 +586,9 @@ archive hash - 9430c08954c00736117099046694e1b1 + cade3843dfd7985f008cc8161daaefb0 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-curl/rev/314230/arch/Linux/installer/curl-7.47.0.314230-linux-314230.tar.bz2 + http://downloads.phoenixviewer.com/curl-7.54.1.180871811-linux-180871811.tar.bz2 name linux @@ -684,9 +684,9 @@ archive hash - 6d676abd9ad8d2883b855dbe397d9034 + 9591dcb7efce2a770d77e907705e1492 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-dbus-glib/rev/314266/arch/Linux/installer/dbus_glib-0.76-linux-314266.tar.bz2 + http://downloads.phoenixviewer.com/dbus_glib-0.76-linux-180871236.tar.bz2 name linux @@ -768,9 +768,9 @@ archive hash - efc92b20a8170ab4f4d3f88c03c6cb9b + bd0f62a03d846332adf07997e307cde6 url - http://downloads.phoenixviewer.com/dullahan-1.1.651_3.2987.1591.gd3e47f5-linux-171011511.tar.bz2 + http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-linux-180871715.tar.bz2 name linux @@ -882,9 +882,9 @@ archive hash - 387c90b9bb5ec412587fbe7a56261dd1 + b20e813b55488e43df5c197f1efd165c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-expat/rev/314211/arch/Linux/installer/expat-2.1.1.314211-linux-314211.tar.bz2 + http://downloads.phoenixviewer.com/expat-2.1.1.180871203-linux-180871203.tar.bz2 name linux @@ -1088,9 +1088,9 @@ archive hash - a20a3d0ab7fc3401bc2ca81e9309f630 + f7a2a70417ab9d2f999f80604cb4fa48 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-fontconfig/rev/314281/arch/Linux/installer/fontconfig-2.11.0-linux-314281.tar.bz2 + http://downloads.phoenixviewer.com/fontconfig-2.11.0-linux-180871443.tar.bz2 name linux @@ -1154,9 +1154,9 @@ archive hash - 1b401394106cedc86926bd488f5aa45e + ced1bc8b28a2e87093b364c2b6d8cb9c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-freetype/rev/314215/arch/Linux/installer/freetype-2.4.4.314215-linux-314215.tar.bz2 + http://downloads.phoenixviewer.com/freetype-2.4.4.180871412-linux-180871412.tar.bz2 name linux @@ -1220,9 +1220,9 @@ archive hash - baf1fd13e1fe6aef586200fc87a70f53 + da432b959ccd920adca1030ad7f1b6cf url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-glext/rev/314200/arch/Linux/installer/glext-68-linux-314200.tar.bz2 + http://downloads.phoenixviewer.com/glext-68-linux-180871251.tar.bz2 name linux @@ -1342,11 +1342,11 @@ archive hash - f62e7cff14feb646babaa19b7ea14ed3 + 4aa53f9774195899efb9d14a0f6c4748 hash_algorithm md5 url - http://downloads.phoenixviewer.com/glod-1.0pre3.201704302344-linux-201704302344.tar.bz2 + http://downloads.phoenixviewer.com/glod-1.0pre3.180872225-linux-180872225.tar.bz2 name linux @@ -1436,9 +1436,9 @@ archive hash - 352e673897e8f36f8470150b8ace6ce9 + 95860763e872e984e4215b0fa22d40b8 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-google-breakpad/rev/314225/arch/Linux/installer/google_breakpad-1413.314225-linux-314225.tar.bz2 + http://downloads.phoenixviewer.com/google_breakpad-1413.180871249-linux-180871249.tar.bz2 name linux @@ -1526,9 +1526,9 @@ archive hash - ad51f68702f25ba245fff312c50c8876 + 5bc5ddeb97b8498d5141e27092161323 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-googlemock/rev/317828/arch/Linux/installer/googlemock-1.7.0.317828-linux-317828.tar.bz2 + http://downloads.phoenixviewer.com/googlemock-1.7.0.180871704-linux-180871704.tar.bz2 name linux @@ -1590,9 +1590,9 @@ archive hash - 5017b3e95d2c6f47bb111c3f9c075522 + 904540d91ea7d577c7bcbb679621f013 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-gstreamer/rev/314267/arch/Linux/installer/gstreamer-0.10.6.314267-linux-314267.tar.bz2 + http://downloads.phoenixviewer.com/gstreamer-0.10.6.180871246-linux-180871246.tar.bz2 name linux @@ -1630,9 +1630,9 @@ archive hash - 8cd64b4c5d7f02c5ad87051861108749 + fb047d496c32cc3b9f99793ee6ebb1e3 url - http://downloads.phoenixviewer.com/gtk_atk_pango_glib-2.0-linux-201608031222.tar.bz2 + http://downloads.phoenixviewer.com/gtk_atk_pango_glib-2.1-linux-180871647.tar.bz2 name linux @@ -1816,9 +1816,9 @@ archive hash - 32560d3200da72fea2922371fcef25f5 + a7039c9a9c4461c5f85542f068dc09e5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-jpeglib/rev/314202/arch/Linux/installer/jpeglib-8c.314202-linux-314202.tar.bz2 + http://downloads.phoenixviewer.com/jpeglib-8c.180871203-linux-180871203.tar.bz2 name linux @@ -1906,9 +1906,9 @@ archive hash - 9d5d9fec28cbbb1651b95728173f8af7 + da45220ec6fcf945f6ca1f11bc7606cf url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-jsoncpp/rev/314229/arch/Linux/installer/jsoncpp-0.5.0.314229-linux-314229.tar.bz2 + http://downloads.phoenixviewer.com/jsoncpp-0.5.0.180872045-linux-180872045.tar.bz2 name linux @@ -2086,9 +2086,9 @@ archive hash - 0d8009c3b6c1eb510593476dd1d821b5 + 77996d95cf2f072f4f277a2aaff20456 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-hunspell/rev/314217/arch/Linux/installer/libhunspell-1.3.2.314217-linux-314217.tar.bz2 + http://downloads.phoenixviewer.com/libhunspell-1.3.2.180871248-linux-180871248.tar.bz2 name linux @@ -2242,9 +2242,9 @@ archive hash - 0758f3cb4c02ebab61854b811b0894e9 + 31754947447ec98374b3bf92e29cf68a url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-libpng/rev/314214/arch/Linux/installer/libpng-1.6.8.314214-linux-314214.tar.bz2 + http://downloads.phoenixviewer.com/libpng-1.6.8.180871343-linux-180871343.tar.bz2 name linux @@ -2308,9 +2308,9 @@ archive hash - a2eaf9515cd129f3e21a08e92689006b + 1b1d83df165c947bea5c60c460277f93 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-libuuid/rev/314269/arch/Linux/installer/libuuid-1.6.2-linux-314269.tar.bz2 + http://downloads.phoenixviewer.com/libuuid-1.6.2-linux-180871203.tar.bz2 name linux @@ -2374,9 +2374,9 @@ archive hash - 6954173a141d928f2614076577d952de + b4e676d3d583264f006432510727aa05 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-libxml/rev/314197/arch/Linux/installer/libxml2-2.9.1.314197-linux-314197.tar.bz2 + http://downloads.phoenixviewer.com/libxml2-2.9.4.180871340-linux-180871340.tar.bz2 name linux @@ -2694,9 +2694,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 079c1a1bdb3ce1cda8ce3d7f75eeced3 + 24c50d563fe8ff10ca819088ffbef7a6 url - http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/9258/41585/nghttp2-1.25.0.509246-linux-509246.tar.bz2 + http://downloads.phoenixviewer.com/nghttp2-1.25.0.180871240-linux-180871240.tar.bz2 name linux @@ -2828,9 +2828,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 5c9d94dce4551b19790057766ff939ea + ee185657aed3a7fcabcd9a1335a6050b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-oggvorbis/rev/314224/arch/Linux/installer/ogg_vorbis-1.2.2-1.3.2.314224-linux-314224.tar.bz2 + http://downloads.phoenixviewer.com/ogg_vorbis-1.2.2-1.3.2.180871245-linux-180871245.tar.bz2 name linux @@ -2894,9 +2894,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - a0f11d381e6daf2b4352461a75c53e89 + 86cb59b79ce0aafe28d4055a17d1f748 url - http://downloads.phoenixviewer.com/open_libndofdev-0.8-linux-201605222023-r13.tar.bz2 + http://downloads.phoenixviewer.com/open_libndofdev-0.3.180871824-linux-180871824.tar.bz2 name linux @@ -2936,11 +2936,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 24b91eda3831a51c7774644016c4cb09 + cc0f030e6f4a78e3afd5269165c056b4 hash_algorithm md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-openal/rev/314223/arch/Linux/installer/openal-1.12.854-1.1.0.314223-linux-314223.tar.bz2 + http://downloads.phoenixviewer.com/openal-1.12.854-1.1.0.180871246-linux-180871246.tar.bz2 name linux @@ -3030,9 +3030,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 675c283030879d3d9c49082bfa2192eb + cc1aca5688b00878ae94a0ad71cb4f35 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/openjpeg_3p-update-openjpeg/rev/297018/arch/Linux/installer/openjpeg-1.4.297018-linux-297018.tar.bz2 + http://downloads.phoenixviewer.com/openjpeg-1.5.1.180871249-linux-180871249.tar.bz2 name linux @@ -3120,9 +3120,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - f46a601d60b7dbcfde32afc0cb64453e + 343f6ace63617546704c4aad9b432312 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-openssl/rev/314227/arch/Linux/installer/openssl-1.0.1h.314227-linux-314227.tar.bz2 + http://downloads.phoenixviewer.com/openssl-1.0.2l.180871731-linux-180871731.tar.bz2 name linux @@ -3210,9 +3210,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 24a119b18e63017ad932ad54df8161bc + cf1c53b27e5889c7c5963ed06ab23cb2 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-pcre/rev/314136/arch/Linux/installer/pcre-8.35.314136-linux-314136.tar.bz2 + http://downloads.phoenixviewer.com/pcre-8.35.180871234-linux-180871234.tar.bz2 name linux @@ -3466,9 +3466,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - dddfc8dea540801f93ba0382cb1e3685 + 6573a190dbdef9b23235beb9b1219bef url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/uriparser_3p-update-uriparser/rev/299435/arch/Linux/installer/uriparser-0.8.0.1-linux-299435.tar.bz2 + http://downloads.phoenixviewer.com/uriparser-0.8.0.1-linux-180871244.tar.bz2 name linux @@ -3574,9 +3574,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 8c7f32f85850248809ae811ba8e47d81 + b7167025f54c044abee21b48476ad4f2 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3428/8686/viewer_manager-1.0-linux-503417.tar.bz2 + http://downloads.phoenixviewer.com/viewer_manager-1.0.180871935-linux-180871935.tar.bz2 name linux @@ -3732,9 +3732,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - b63f828e798287d475991134cdcfbca3 + 0f318372198fb34b3a59b4aa03c40ac7 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-xmlrpc-epi/rev/314240/arch/Linux/installer/xmlrpc_epi-0.54.1.314240-linux-314240.tar.bz2 + http://downloads.phoenixviewer.com/xmlrpc_epi-0.54.1.180871731-linux-180871731.tar.bz2 name linux @@ -3822,11 +3822,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 98a8c775c581ca80bb559e8b4e8eaae7 + ee84398d540324533332a048f77bf08a hash_algorithm md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-zlib/rev/314131/arch/Linux/installer/zlib-1.2.8.314131-linux-314131.tar.bz2 + http://downloads.phoenixviewer.com/zlib-1.2.8.180871259-linux-180871259.tar.bz2 name linux diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index ab1bab29af..055e1243de 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -16,11 +16,7 @@ else (USESYSTEMLIBS) elseif (DARWIN) set(JSONCPP_LIBRARIES libjson_darwin_libmt.a) elseif (LINUX) - if ( ADDRESS_SIZE EQUAL 64 ) - set(JSONCPP_LIBRARIES libjson_linux-gcc-4.8_libmt.a) - else ( ) - set(JSONCPP_LIBRARIES libjson_linux-gcc-4.1.3_libmt.a) - endif ( ) + set(JSONCPP_LIBRARIES libjson_linux-gcc-4.8_libmt.a) endif (WINDOWS) set(JSONCPP_INCLUDE_DIR "${LIBS_PREBUILT_DIR}/include/") endif (USESYSTEMLIBS) From c2aea4ff3442ef1d857350e79c003643b8e1725c Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 30 Mar 2018 11:28:19 +0200 Subject: [PATCH 41/55] Add debug option FSUseReadOfflineMsgsCap to disable reading offline messages via cap and disable by default for now while it's still broken --- indra/newview/app_settings/settings.xml | 11 +++++++++++ indra/newview/llimprocessing.cpp | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index bdde99e927..efbe5f7601 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -24591,6 +24591,17 @@ Change of this parameter will affect the layout of buttons in notification toast Value 1 + FSUseReadOfflineMsgsCap + + Comment + If enabled, use the ReadOfflineMsgsCap to request offline messages at login + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index 3c2aef2b88..e17977c34e 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -2082,7 +2082,7 @@ void LLIMProcessing::requestOfflineMessages() // Auto-accepted inventory items may require the avatar object // to build a correct name. Likewise, inventory offers from // muted avatars require the mute list to properly mute. - if (cap_url.empty()) + if (cap_url.empty() && gSavedSettings.getBOOL("FSUseReadOfflineMsgsCap")) { requestOfflineMessagesLegacy(); } From 504268f85fdc3b0ebaa8410c58320e06573f1ed6 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 30 Mar 2018 15:19:33 +0200 Subject: [PATCH 42/55] FIRE-22419: Fix FMOD Studio linking on Linux - patch from mygoditsfullofstars --- indra/cmake/FMODSTUDIO.cmake | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 4ca4ada7ab..7200a7da7b 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -41,15 +41,9 @@ if (FMODSTUDIO) debug fmodL optimized fmod) elseif (LINUX) - if (ADDRESS_SIZE EQUAL 32) - set(FMODSTUDIO_LIBRARY + set(FMODSTUDIO_LIBRARY debug fmodL optimized fmod) - elseif (ADDRESS_SIZE EQUAL 64) - set(FMODSTUDIO_LIBRARY - debug fmodL64 - optimized fmod64) - endif(ADDRESS_SIZE EQUAL 32) endif (WINDOWS) set(FMODSTUDIO_LIBRARIES ${FMODSTUDIO_LIBRARY}) set(FMODSTUDIO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodstudio) From f1e56e95baf0e40605698fbc189433fcf3ea46d6 Mon Sep 17 00:00:00 2001 From: Nicky Date: Fri, 30 Mar 2018 16:09:32 +0200 Subject: [PATCH 43/55] Correct FModStudio library configuration for Linux. --- indra/cmake/FMODSTUDIO.cmake | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 4ca4ada7ab..7200a7da7b 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -41,15 +41,9 @@ if (FMODSTUDIO) debug fmodL optimized fmod) elseif (LINUX) - if (ADDRESS_SIZE EQUAL 32) - set(FMODSTUDIO_LIBRARY + set(FMODSTUDIO_LIBRARY debug fmodL optimized fmod) - elseif (ADDRESS_SIZE EQUAL 64) - set(FMODSTUDIO_LIBRARY - debug fmodL64 - optimized fmod64) - endif(ADDRESS_SIZE EQUAL 32) endif (WINDOWS) set(FMODSTUDIO_LIBRARIES ${FMODSTUDIO_LIBRARY}) set(FMODSTUDIO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodstudio) From c5e9d34e66ed305b5accaad0c6d84a51669a0153 Mon Sep 17 00:00:00 2001 From: Nicky Date: Fri, 30 Mar 2018 21:29:47 +0200 Subject: [PATCH 44/55] Linux: FModStudio 1.10.04 --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 8c18d7c3ee..b7ffd4cfaa 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -962,11 +962,11 @@ archive hash - eccdcb4a1e96bb829284d01255f4f913 + a379240b46b13b2b9e858baa79d1a6ab hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-1.10.02-linux-201801091647.tar.bz2 + file:///opt/firestorm/fmodstudio-1.10.04-linux-180891813.tar.bz2 name linux @@ -976,11 +976,11 @@ archive hash - 8787b777a49d41ccbb3cbd6c4a1d768d + e0b59ec3b5549b9a0f9caf8c7116af4e hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-1.10.02-linux-x64-201801091648.tar.bz2 + file:///opt/firestorm/fmodstudio-1.10.04-linux64-180891838.tar.bz2 name linux64 From f8fbf8aafa62b710e7db60554981ee3a6fabc2af Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 30 Mar 2018 22:45:55 +0200 Subject: [PATCH 45/55] Somehow this got buggered up... --- indra/newview/llimprocessing.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index e17977c34e..b66c4b501b 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -2082,7 +2082,7 @@ void LLIMProcessing::requestOfflineMessages() // Auto-accepted inventory items may require the avatar object // to build a correct name. Likewise, inventory offers from // muted avatars require the mute list to properly mute. - if (cap_url.empty() && gSavedSettings.getBOOL("FSUseReadOfflineMsgsCap")) + if (cap_url.empty() || !gSavedSettings.getBOOL("FSUseReadOfflineMsgsCap")) { requestOfflineMessagesLegacy(); } From 2d8f3fe672748a79f76e47a1f505f5fe4b96755a Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 31 Mar 2018 00:52:00 +0200 Subject: [PATCH 46/55] Linux: KDU update. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index b7ffd4cfaa..1feb6a8ee3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1996,9 +1996,9 @@ archive hash - 1c4e11f6ca7cdc2a3e5158eda7a432be + fa8a0db7f4900663f5d58eaac2b782b5 url - file:///opt/firestorm/kdu-7.9.1-linux-201703182157.tar.bz2 + file:///opt/firestorm/kdu-7.A.4-linux-180892203.tar.bz2 name linux @@ -2008,9 +2008,9 @@ archive hash - 1c4e11f6ca7cdc2a3e5158eda7a432be + fa8a0db7f4900663f5d58eaac2b782b5 url - file:///opt/firestorm/kdu-7.9.1-linux-201703182157.tar.bz2 + file:///opt/firestorm/kdu-7.A.4-linux-180892203.tar.bz2 name linux64 From 884fc83a77b2c57ea8872b5acb223c5f5b26f651 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 2 Apr 2018 20:53:24 +0200 Subject: [PATCH 47/55] FIRE-21915: Make fix bogus avatar movement on region crossing optional via FSExperimentalRegionCrossingMovementFix debug setting (enabled by default for now) --- indra/newview/app_settings/settings.xml | 11 +++++ indra/newview/llviewerobject.cpp | 30 ++++++------ indra/newview/llworld.cpp | 62 +++++++++++++++++-------- 3 files changed, 71 insertions(+), 32 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index efbe5f7601..b8eed9c0ad 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -24602,6 +24602,17 @@ Change of this parameter will affect the layout of buttons in notification toast Value 0 + FSExperimentalRegionCrossingMovementFix + + Comment + If enabled, use the experimental fix for region crossing movements being bogus due to false predictions by the viewer. + Persist + 1 + Type + Boolean + Value + 1 + diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 9e17d507bc..7c88a8da30 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -2660,20 +2660,24 @@ void LLViewerObject::interpolateLinearMotion(const F64SecondsImplicit& time, con // Extrapolation across region boundaries is almost always wrong, and if the region being // entered is slow to respond, very wrong. // Probably don't need edge of world check below any more since we are clipping the predictor to the region. - bool clipped; // true if clipped at boundary - LLVector3d clip_pos_global_region = LLWorld::getInstance()->clipToRegion(mRegionp,old_pos_global, new_pos_global, clipped); - if (clipped) + static LLCachedControl fsExperimentalRegionCrossingMovementFix(gSavedSettings, "FSExperimentalRegionCrossingMovementFix"); + if (fsExperimentalRegionCrossingMovementFix) { - // Was clipped, so we crossed a region boundary - //LL_INFOS() << "Beyond region edge, clipped predicted position to " << mRegionp->getPosRegionFromGlobal(clip_pos_global_region) - // << " from [" << getPositionRegion() << " .. " << new_pos << "]" << LL_ENDL; - new_pos = mRegionp->getPosRegionFromGlobal(clip_pos_global_region); - // Don't zero out velocity on the server. Telling the server affects scripts and audio. - //new_v.clear(); - //setAcceleration(LLVector3::zero); // stop linear acceleration - LLVector3 new_angv; - new_angv.clear(); - setAngularVelocity(new_angv); // stop rotation + bool clipped; // true if clipped at boundary + LLVector3d clip_pos_global_region = LLWorld::getInstance()->clipToRegion(mRegionp, old_pos_global, new_pos_global, clipped); + if (clipped) + { + // Was clipped, so we crossed a region boundary + //LL_INFOS() << "Beyond region edge, clipped predicted position to " << mRegionp->getPosRegionFromGlobal(clip_pos_global_region) + // << " from [" << getPositionRegion() << " .. " << new_pos << "]" << LL_ENDL; + new_pos = mRegionp->getPosRegionFromGlobal(clip_pos_global_region); + // Don't zero out velocity on the server. Telling the server affects scripts and audio. + //new_v.clear(); + //setAcceleration(LLVector3::zero); // stop linear acceleration + LLVector3 new_angv; + new_angv.clear(); + setAngularVelocity(new_angv); // stop rotation + } } // diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 3392a75a2d..ee2aca23e1 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -787,6 +787,8 @@ LLVector3d LLWorld::clipToVisibleRegions(const LLVector3d &start_pos, const LLVe // If start_pos is outside the region, use start_pos. LLVector3d LLWorld::clipToRegion(const LLViewerRegion* regionp, const LLVector3d &start_pos, const LLVector3d &end_pos, bool &clipped) { + static LLCachedControl fsExperimentalRegionCrossingMovementFix(gSavedSettings, "FSExperimentalRegionCrossingMovementFix"); + clipped = false; // no clipping yet if (!regionp) // no region. We're lost { @@ -808,8 +810,9 @@ LLVector3d LLWorld::clipToRegion(const LLViewerRegion* regionp, const LLVector3d // F32 region_width = regionp->getWidth(); // FIRE-21915: Fix bogus avatar movement on region crossing - if (region_coord_start.mV[VX] < 0.f || region_coord_start.mV[VX] > region_width - || region_coord_start.mV[VY] < 0.f || region_coord_start.mV[VY] > region_width) + if (fsExperimentalRegionCrossingMovementFix && + (region_coord_start.mV[VX] < 0.f || region_coord_start.mV[VX] > region_width + || region_coord_start.mV[VY] < 0.f || region_coord_start.mV[VY] > region_width)) { clip_factor = 1.0; // start pos outside region, use start pos } @@ -853,8 +856,14 @@ LLVector3d LLWorld::clipToRegion(const LLViewerRegion* regionp, const LLVector3d clip_factor = (region_coord.mV[VY] - region_width) / delta_pos_abs.mdV[VY]; } // FIRE-21915: Fix bogus avatar movement on region crossing - if (!std::isfinite(clip_factor)) { clip_factor = 0.0; } // avoid NaN problems - clip_factor = llclamp(clip_factor, 0.0, 1.0); // avoid overflow problem + if (!std::isfinite(clip_factor)) + { + clip_factor = 0.0; // avoid NaN problems + } + else + { + clip_factor = llclamp(clip_factor, 0.0, 1.0); // avoid overflow problem + } } // @@ -868,21 +877,36 @@ LLVector3d LLWorld::clipToRegion(const LLViewerRegion* regionp, const LLVector3d //final_region_pos.mdV[VZ] = llclamp(final_region_pos.mdV[VZ], 0.0, // (F64)(LLWorld::getInstance()->getRegionMaxHeight() - F_ALMOST_ZERO)); - // True if clipped. Caller needs to know, because it will kill velocity if there's clipping - // Don't do this by comparing floating point numbers for equality. That has roundoff problems. - clipped = clip_factor > F_ALMOST_ZERO; // clipped in X or Y - LLVector3d final_region_pos = LLVector3d(region_coord) - (delta_pos * clip_factor); - clipped |= final_region_pos.mdV[VX] < -F_ALMOST_ZERO || final_region_pos.mdV[VX] > (F64)(region_width - F_ALMOST_ZERO); - clipped |= final_region_pos.mdV[VY] < -F_ALMOST_ZERO || final_region_pos.mdV[VY] > (F64)(region_width - F_ALMOST_ZERO); - clipped |= final_region_pos.mdV[VZ] < -F_ALMOST_ZERO || final_region_pos.mdV[VZ] > (F64)(LLWorld::getInstance()->getRegionMaxHeight() - F_ALMOST_ZERO); // if actually clipping - // Final sanity check - don't allow positions more than clamp_range out of region. - F64 clamp_range = region_width / 2.0; // half a region width - final_region_pos.mdV[VX] = llclamp(final_region_pos.mdV[VX], -clamp_range, - (F64)(region_width + clamp_range)); - final_region_pos.mdV[VY] = llclamp(final_region_pos.mdV[VY], -clamp_range, - (F64)(region_width + clamp_range)); - final_region_pos.mdV[VZ] = llclamp(final_region_pos.mdV[VZ], 0.0, - (F64)(LLWorld::getInstance()->getRegionMaxHeight() - F_ALMOST_ZERO)); + LLVector3d final_region_pos; + if (fsExperimentalRegionCrossingMovementFix) + { + // True if clipped. Caller needs to know, because it will kill velocity if there's clipping + // Don't do this by comparing floating point numbers for equality. That has roundoff problems. + clipped = clip_factor > F_ALMOST_ZERO; // clipped in X or Y + final_region_pos = LLVector3d(region_coord) - (delta_pos * clip_factor); + clipped |= final_region_pos.mdV[VX] < -F_ALMOST_ZERO || final_region_pos.mdV[VX] > (F64)(region_width - F_ALMOST_ZERO); + clipped |= final_region_pos.mdV[VY] < -F_ALMOST_ZERO || final_region_pos.mdV[VY] > (F64)(region_width - F_ALMOST_ZERO); + clipped |= final_region_pos.mdV[VZ] < -F_ALMOST_ZERO || final_region_pos.mdV[VZ] > (F64)(LLWorld::getInstance()->getRegionMaxHeight() - F_ALMOST_ZERO); // if actually clipping + // Final sanity check - don't allow positions more than clamp_range out of region. + F64 clamp_range = region_width / 2.0; // half a region width + final_region_pos.mdV[VX] = llclamp(final_region_pos.mdV[VX], -clamp_range, + (F64)(region_width + clamp_range)); + final_region_pos.mdV[VY] = llclamp(final_region_pos.mdV[VY], -clamp_range, + (F64)(region_width + clamp_range)); + final_region_pos.mdV[VZ] = llclamp(final_region_pos.mdV[VZ], 0.0, + (F64)(LLWorld::getInstance()->getRegionMaxHeight() - F_ALMOST_ZERO)); + } + else + { + // clamp to within region dimensions + final_region_pos = LLVector3d(region_coord) - (delta_pos * clip_factor); + final_region_pos.mdV[VX] = llclamp(final_region_pos.mdV[VX], 0.0, + (F64)(region_width - F_ALMOST_ZERO)); + final_region_pos.mdV[VY] = llclamp(final_region_pos.mdV[VY], 0.0, + (F64)(region_width - F_ALMOST_ZERO)); + final_region_pos.mdV[VZ] = llclamp(final_region_pos.mdV[VZ], 0.0, + (F64)(LLWorld::getInstance()->getRegionMaxHeight() - F_ALMOST_ZERO)); + } // return regionp->getPosGlobalFromRegion(LLVector3(final_region_pos)); } From e7b733d8ccc0e3eff201c3f50739b5a5f0f9e7b7 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 4 Apr 2018 17:25:44 +0200 Subject: [PATCH 48/55] Hide chiclet bar if using Shift-Alt-U shortcut to hide the UI --- indra/newview/llchicletbar.cpp | 3 ++- indra/newview/llviewerwindow.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/indra/newview/llchicletbar.cpp b/indra/newview/llchicletbar.cpp index 6b931e0468..ffe57d2da7 100644 --- a/indra/newview/llchicletbar.cpp +++ b/indra/newview/llchicletbar.cpp @@ -36,6 +36,7 @@ // Firestorm includes #include "fsfloaterim.h" #include "llfloaterreg.h" +#include "llviewerwindow.h" namespace { @@ -354,6 +355,6 @@ void LLChicletBar::fitWithTopInfoBar() // Option to hide IM/Group chat chiclets void LLChicletBar::updateVisibility(const LLSD &data) { - mChicletPanel->setVisible(!data.asBoolean()); + mChicletPanel->setVisible(gViewerWindow->getUIVisibility() && !data.asBoolean()); } // diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index ab182ef373..3b2607e3cd 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -6856,6 +6856,7 @@ void LLViewerWindow::setUIVisibility(bool visible) FSNearbyChat::instance().showDefaultChatBar(visible && !gSavedSettings.getBOOL("AutohideChatBar")); gSavedSettings.setBOOL("FSInternalShowNavbarNavigationPanel", visible && gSavedSettings.getBOOL("ShowNavbarNavigationPanel")); gSavedSettings.setBOOL("FSInternalShowNavbarFavoritesPanel", visible && gSavedSettings.getBOOL("ShowNavbarFavoritesPanel")); + mRootView->getChildView("chiclet_container")->setVisible(visible); // // Is done inside XUI now, using visibility_control From 9cf469862d5944b5254ad453a4edccb22af65aee Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 4 Apr 2018 17:30:24 +0200 Subject: [PATCH 49/55] On a second thought, this isn't necessary as the chiclet container containing the chiclet panel is already hidden --- indra/newview/llchicletbar.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/indra/newview/llchicletbar.cpp b/indra/newview/llchicletbar.cpp index ffe57d2da7..6b931e0468 100644 --- a/indra/newview/llchicletbar.cpp +++ b/indra/newview/llchicletbar.cpp @@ -36,7 +36,6 @@ // Firestorm includes #include "fsfloaterim.h" #include "llfloaterreg.h" -#include "llviewerwindow.h" namespace { @@ -355,6 +354,6 @@ void LLChicletBar::fitWithTopInfoBar() // Option to hide IM/Group chat chiclets void LLChicletBar::updateVisibility(const LLSD &data) { - mChicletPanel->setVisible(gViewerWindow->getUIVisibility() && !data.asBoolean()); + mChicletPanel->setVisible(!data.asBoolean()); } // From c0149a8f098a91e64eca58d116d25c62343f5ad6 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 4 Apr 2018 20:57:01 +0200 Subject: [PATCH 50/55] Manually merge of MAINT-8203 Group notices processing --- indra/newview/llimprocessing.cpp | 119 +++++++++++++++++++------------ indra/newview/llimprocessing.h | 3 +- 2 files changed, 75 insertions(+), 47 deletions(-) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index b66c4b501b..167cd21170 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -45,6 +45,7 @@ #include "llnotificationmanager.h" #include "llpanelgroup.h" #include "llregionhandle.h" +#include "llsdserialize.h" #include "llslurl.h" #include "llstring.h" #include "lltoastnotifypanel.h" @@ -622,7 +623,8 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, LLVector3 position, U8 *binary_bucket, S32 binary_bucket_size, - LLHost &sender) + LLHost &sender, + LLUUID aux_id) { LLChat chat; std::string buffer; @@ -1067,58 +1069,81 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, case IM_GROUP_NOTICE_REQUESTED: { LL_INFOS("Messaging") << "Received IM_GROUP_NOTICE message." << LL_ENDL; - // Read the binary bucket for more information. - struct notice_bucket_header_t - { - U8 has_inventory; - U8 asset_type; - LLUUID group_id; - }; - struct notice_bucket_full_t - { - struct notice_bucket_header_t header; - U8 item_name[DB_INV_ITEM_NAME_BUF_SIZE]; - }* notice_bin_bucket; - // Make sure the binary bucket is big enough to hold the header - // and a null terminated item name. - if ( (binary_bucket_size < (S32)((sizeof(notice_bucket_header_t) + sizeof(U8)))) - || (binary_bucket[binary_bucket_size - 1] != '\0') ) + LLUUID agent_id = from_id; + U8 has_inventory; + U8 asset_type = 0; + LLUUID group_id; + std::string item_name; + + if (aux_id.notNull()) { - LL_WARNS("Messaging") << "Malformed group notice binary bucket" << LL_ENDL; - // Don't flash task icon - //break; - return; + // aux_id contains group id, binary bucket contains name and asset type + group_id = aux_id; + has_inventory = binary_bucket_size > 1 ? TRUE : FALSE; + from_group = TRUE; // inaccurate value correction + if (has_inventory) + { + std::string str_bucket = ll_safe_string((char*)binary_bucket, binary_bucket_size); + + typedef boost::tokenizer > tokenizer; + boost::char_separator sep("|", "", boost::keep_empty_tokens); + tokenizer tokens(str_bucket, sep); + tokenizer::iterator iter = tokens.begin(); + + asset_type = (LLAssetType::EType)(atoi((*(iter++)).c_str())); + iter++; // wearable type if applicable, otherwise asset type + item_name = std::string((*(iter++)).c_str()); + // Note There is more elements in 'tokens' ... + + + for (int i = 0; i < 6; i++) + { + LL_WARNS() << *(iter++) << LL_ENDL; + iter++; + } + } + } + else + { + // All info is in binary bucket, read it for more information. + struct notice_bucket_header_t + { + U8 has_inventory; + U8 asset_type; + LLUUID group_id; + }; + struct notice_bucket_full_t + { + struct notice_bucket_header_t header; + U8 item_name[DB_INV_ITEM_NAME_BUF_SIZE]; + }*notice_bin_bucket; + + // Make sure the binary bucket is big enough to hold the header + // and a null terminated item name. + if ((binary_bucket_size < (S32)((sizeof(notice_bucket_header_t) + sizeof(U8)))) + || (binary_bucket[binary_bucket_size - 1] != '\0')) + { + LL_WARNS("Messaging") << "Malformed group notice binary bucket" << LL_ENDL; + // Don't flash task icon + //break; + return; + } + + notice_bin_bucket = (struct notice_bucket_full_t*) &binary_bucket[0]; + has_inventory = notice_bin_bucket->header.has_inventory; + asset_type = notice_bin_bucket->header.asset_type; + group_id = notice_bin_bucket->header.group_id; + item_name = ll_safe_string((const char*)notice_bin_bucket->item_name); } - // The group notice packet does not have an AgentID. Obtain one from the name cache. - // If last name is "Resident" strip it out so the cache name lookup works. - std::string::size_type index = original_name.find(" Resident"); - if (index != std::string::npos) - { - original_name = original_name.substr(0, index); - } - - std::string legacy_name = gCacheName->buildLegacyName(original_name); - LLUUID agent_id = LLAvatarNameCache::findIdByName(legacy_name); - - if (agent_id.isNull()) - { - LL_WARNS("Messaging") << "buildLegacyName returned null while processing " << original_name << LL_ENDL; - } - else if (LLMuteList::getInstance()->isMuted(agent_id)) + if (agent_id.notNull() && LLMuteList::getInstance()->isMuted(agent_id)) { // Don't flash task icon //break; return; } - notice_bin_bucket = (struct notice_bucket_full_t*) &binary_bucket[0]; - U8 has_inventory = notice_bin_bucket->header.has_inventory; - U8 asset_type = notice_bin_bucket->header.asset_type; - LLUUID group_id = notice_bin_bucket->header.group_id; - std::string item_name = ll_safe_string((const char*) notice_bin_bucket->item_name); - // If there is inventory, give the user the inventory offer. LLOfferInfo* info = NULL; @@ -2162,9 +2187,10 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) for (; i != iEnd; ++i) { const LLSD &message_data(*i); + LLVector3 position(message_data["local_x"].asReal(), message_data["local_y"].asReal(), message_data["local_z"].asReal()); data = message_data["binary_bucket"].asBinary(); - binary_bucket_size = data.size(); // message_data["count"] == data.size() - 1 due to ('\0') + binary_bucket_size = data.size(); // message_data["count"] always 0 U32 parent_estate_id = message_data.has("parent_estate_id") ? message_data["parent_estate_id"].asInteger() : 1; // 1 - IMMainland // Todo: once dirtsim-369 releases, remove one of the int/str options @@ -2183,7 +2209,7 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) message_data["to_agent_id"].asUUID(), IM_OFFLINE, (EInstantMessage)message_data["dialog"].asInteger(), - message_data["session_id"].asUUID(), + LLUUID::null, // session id, fix this for friendship offers to work message_data["timestamp"].asInteger(), message_data["from_agent_name"].asString(), message_data["message"].asString(), @@ -2192,7 +2218,8 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url) position, &data[0], binary_bucket_size, - sender); + sender, + message_data["asset_id"].asUUID()); // not necessarily an asset } } diff --git a/indra/newview/llimprocessing.h b/indra/newview/llimprocessing.h index eadf34ded7..4d20b963a4 100644 --- a/indra/newview/llimprocessing.h +++ b/indra/newview/llimprocessing.h @@ -47,7 +47,8 @@ public: LLVector3 position, U8 *binary_bucket, S32 binary_bucket_size, - LLHost &sender); + LLHost &sender, + LLUUID aux_id = LLUUID::null); // Either receives list of offline messages from 'ReadOfflineMsgs' capability // or uses legacy method From e6ffcf875bb33aaa7ded5a34245ada66a9ac66bd Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 4 Apr 2018 21:19:17 +0200 Subject: [PATCH 51/55] Fix indention in llimprocessing.cpp --- indra/newview/llimprocessing.cpp | 1058 +++++++++++++++--------------- 1 file changed, 524 insertions(+), 534 deletions(-) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index 167cd21170..8db619e758 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -232,12 +232,12 @@ void inventory_offer_handler(LLOfferInfo* info) // Strip any SLURL from the message display. (DEV-2754) std::string msg = info->mDesc; int indx = msg.find(" ( http://slurl.com/secondlife/"); - if(indx == std::string::npos) + if (indx == std::string::npos) { // try to find new slurl host indx = msg.find(" ( http://maps.secondlife.com/secondlife/"); } - if(indx >= 0) + if (indx >= 0) { LLStringUtil::truncate(msg, indx); } @@ -684,7 +684,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, chat.mFromID = from_id; chat.mFromName = name; chat.mSourceType = (from_id.isNull() || (name == std::string(SYSTEM_FROM))) ? CHAT_SOURCE_SYSTEM : CHAT_SOURCE_AGENT; - + if (chat.mSourceType == CHAT_SOURCE_SYSTEM) { // Translate server message if required (MAINT-6109) translate_if_needed(message); @@ -722,262 +722,122 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, LLSD payload; LLNotification::Params params; - switch(dialog) - { - case IM_CONSOLE_AND_CHAT_HISTORY: - args["MESSAGE"] = message; - payload["from_id"] = from_id; + switch (dialog) + { + case IM_CONSOLE_AND_CHAT_HISTORY: + args["MESSAGE"] = message; + payload["from_id"] = from_id; - params.name = "IMSystemMessageTip"; - params.substitutions = args; - params.payload = payload; - LLPostponedNotification::add(params, from_id, false); - break; + params.name = "IMSystemMessageTip"; + params.substitutions = args; + params.payload = payload; + LLPostponedNotification::add(params, from_id, false); + break; - case IM_NOTHING_SPECIAL: // p2p IM - // Don't show dialog, just do IM - if (!gAgent.isGodlike() - && gAgent.getRegion()->isPrelude() - && to_id.isNull() ) - { - // do nothing -- don't distract newbies in - // Prelude with global IMs - } + case IM_NOTHING_SPECIAL: // p2p IM + // Don't show dialog, just do IM + if (!gAgent.isGodlike() + && gAgent.getRegion()->isPrelude() + && to_id.isNull()) + { + // do nothing -- don't distract newbies in + // Prelude with global IMs + } // [RLVa:KB] - Checked: RLVa-2.1.0 - else if ( (RlvActions::isRlvEnabled()) && (offline == IM_ONLINE) && (!is_muted) && ((!accept_im_from_only_friend) || (is_friend)) && - (message.length() > 3) && (RLV_CMD_PREFIX == message[0]) && (RlvHandler::instance().processIMQuery(from_id, message)) ) - { - // Eat the message and do nothing - return; - } + else if ( (RlvActions::isRlvEnabled()) && (offline == IM_ONLINE) && (!is_muted) && ((!accept_im_from_only_friend) || (is_friend)) && + (message.length() > 3) && (RLV_CMD_PREFIX == message[0]) && (RlvHandler::instance().processIMQuery(from_id, message)) ) + { + // Eat the message and do nothing + return; + } // [/RLVa:KB] -// else if (offline == IM_ONLINE -// && is_do_not_disturb -// && from_id.notNull() //not a system message -// && to_id.notNull()) //not global message +// else if (offline == IM_ONLINE +// && is_do_not_disturb +// && from_id.notNull() //not a system message +// && to_id.notNull()) //not global message // [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0) - // Only send the busy reponse if either the sender is not - // muted OR the sender is muted and we explicitely want - // to inform him about that fact. - else if (offline == IM_ONLINE - && (!accept_im_from_only_friend || is_friend) // is friend or accept IMs from friend only disabled - && ((is_do_not_disturb && (!is_muted || (is_muted && !is_autorespond_muted))) || // do not disturb - (is_autorespond && !is_muted) || // autorespond everyone - (is_autorespond_nonfriends && !is_friend && !is_muted) || // autorespond friends only - (is_afk && FSSendAwayAvatarResponse && !is_muted)) // away - && from_id.notNull() //not a system message - && to_id.notNull() //not global message - && RlvActions::canReceiveIM(from_id)) -// [/RLVa:KB] - { - // Log autoresponse notification after initial message - bool has_session = true; - - // Old "do not disturb" message behavior: only send once if session not open - // Session id will be null if avatar answers from offline IM via email - std::string response; - if (!gIMMgr->hasSession(session_id) && session_id.notNull()) + // Only send the busy reponse if either the sender is not + // muted OR the sender is muted and we explicitely want + // to inform him about that fact. + else if (offline == IM_ONLINE + && (!accept_im_from_only_friend || is_friend) // is friend or accept IMs from friend only disabled + && ((is_do_not_disturb && (!is_muted || (is_muted && !is_autorespond_muted))) || // do not disturb + (is_autorespond && !is_muted) || // autorespond everyone + (is_autorespond_nonfriends && !is_friend && !is_muted) || // autorespond friends only + (is_afk && FSSendAwayAvatarResponse && !is_muted)) // away + && from_id.notNull() //not a system message + && to_id.notNull() //not global message + && RlvActions::canReceiveIM(from_id)) + // [/RLVa:KB] { - // // Log autoresponse notification after initial message - has_session = false; - // FS autoresponse feature - std::string my_name; - LLAgentUI::buildFullname(my_name); - if (is_do_not_disturb) + bool has_session = true; + + // Old "do not disturb" message behavior: only send once if session not open + // Session id will be null if avatar answers from offline IM via email + std::string response; + if (!gIMMgr->hasSession(session_id) && session_id.notNull()) { - response = gSavedPerAccountSettings.getString("DoNotDisturbModeResponse"); - } - else if (is_autorespond_nonfriends && !is_friend) - { - response = gSavedPerAccountSettings.getString("FSAutorespondNonFriendsResponse"); - } - else if (is_autorespond) - { - response = gSavedPerAccountSettings.getString("FSAutorespondModeResponse"); - } - // FIRE-10500: Autoresponse for (Away) - else if (is_afk && FSSendAwayAvatarResponse) - { - response = gSavedPerAccountSettings.getString("FSAwayAvatarResponse"); - } - // - else - { - LL_WARNS() << "Unknown auto-response mode" << LL_ENDL; - } - pack_instant_message( - gMessageSystem, - gAgent.getID(), - FALSE, - gAgent.getSessionID(), - from_id, - my_name, - response, - IM_ONLINE, - IM_DO_NOT_DISTURB_AUTO_RESPONSE, - session_id); - gAgent.sendReliableMessage(); - // FS autoresponse feature - // Old "do not disturb" message behavior: only send once if session not open - } - // - - // checkfor and process reqinfo - if (has_session) - { - message = FSData::getInstance()->processRequestForInfo(from_id,message,name,session_id); - } - // - - // now store incoming IM in chat history - - buffer = message; - - LL_DEBUGS("Messaging") << "session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; - - // FIRE-10178: Keyword Alerts in group IM do not work unless the group is in the foreground (notification on receipt of IM) - chat.mText = buffer; - bool keyword_alert_performed = false; - if (FSKeywords::getInstance()->chatContainsKeyword(chat, false)) - { - FSKeywords::notify(chat); - keyword_alert_performed = true; - } - // - - // add to IM panel, but do not bother the user - gIMMgr->addMessage( - session_id, - from_id, - name, - buffer, - IM_OFFLINE == offline, - LLStringUtil::null, - dialog, - parent_estate_id, - region_id, - position, - true, - false, - keyword_alert_performed); - - // Old "do not disturb" message behavior: only send once if session not open - //if (!gIMMgr->isDNDMessageSend(session_id)) - //{ - // // return a standard "do not disturb" message, but only do it to online IM - // // (i.e. not other auto responses and not store-and-forward IM) - // send_do_not_disturb_message(msg, from_id, session_id); - // gIMMgr->setDNDMessageSent(session_id, true); - //} - // - - if (!has_session) - { - // Fire-5389 - "Autoresponse Sent" message added to Firestorm as was in Phoenix - LLStringUtil::format_map_t args; - args["MESSAGE"] = response; - - gIMMgr->addMessage( - session_id, - gAgentID, - LLStringUtil::null, // Pass null value so no name gets prepended - LLTrans::getString("IM_autoresponse_sent", args), - false, - name, - IM_NOTHING_SPECIAL, - parent_estate_id, - region_id, - position, - false, - true - ); - // - - // Send inventory item on autoresponse - LLUUID item_id(gSavedPerAccountSettings.getString("FSAutoresponseItemUUID")); - if (item_id.notNull()) - { - LLInventoryItem* item = dynamic_cast(gInventory.getItem(item_id)); - if (item) + // + // Log autoresponse notification after initial message + has_session = false; + // FS autoresponse feature + std::string my_name; + LLAgentUI::buildFullname(my_name); + if (is_do_not_disturb) { - gIMMgr->addMessage( - session_id, - gAgentID, - LLStringUtil::null, // Pass null value so no name gets prepended - LLTrans::getString("IM_autoresponse_item_sent", LLSD().with("[ITEM_NAME]", item->getName())), - false, - name, - IM_NOTHING_SPECIAL, - parent_estate_id, - region_id, - position, - false, - true); - LLGiveInventory::doGiveInventoryItem(from_id, item, session_id); + response = gSavedPerAccountSettings.getString("DoNotDisturbModeResponse"); } + else if (is_autorespond_nonfriends && !is_friend) + { + response = gSavedPerAccountSettings.getString("FSAutorespondNonFriendsResponse"); + } + else if (is_autorespond) + { + response = gSavedPerAccountSettings.getString("FSAutorespondModeResponse"); + } + // FIRE-10500: Autoresponse for (Away) + else if (is_afk && FSSendAwayAvatarResponse) + { + response = gSavedPerAccountSettings.getString("FSAwayAvatarResponse"); + } + // + else + { + LL_WARNS() << "Unknown auto-response mode" << LL_ENDL; + } + pack_instant_message( + gMessageSystem, + gAgent.getID(), + FALSE, + gAgent.getSessionID(), + from_id, + my_name, + response, + IM_ONLINE, + IM_DO_NOT_DISTURB_AUTO_RESPONSE, + session_id); + gAgent.sendReliableMessage(); + // FS autoresponse feature + // Old "do not disturb" message behavior: only send once if session not open } // - } - } - else if (from_id.isNull()) - { - LLSD args; - args["MESSAGE"] = message; - LLNotificationsUtil::add("SystemMessage", args); - } - else if (to_id.isNull()) - { - // Message to everyone from GOD, look up the fullname since - // server always slams name to legacy names - LLAvatarNameCache::get(from_id, boost::bind(god_message_name_cb, _2, chat, message)); - } - else - { - // standard message, not from system - std::string saved; - if(offline == IM_OFFLINE) - { - LLStringUtil::format_map_t args; - args["[LONG_TIMESTAMP]"] = formatted_time(timestamp); - saved = LLTrans::getString("Saved_message", args); - } - buffer = saved + message; - LL_DEBUGS("Messaging") << "session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; - - bool mute_im = is_muted; - if (accept_im_from_only_friend && !is_friend) - { - if (!gIMMgr->isNonFriendSessionNotified(session_id)) + // checkfor and process reqinfo + if (has_session) { - // Disable this - doesn't make sense it will be skipped by LLIMMgr::addMessage() anyway - //std::string message = LLTrans::getString("IM_unblock_only_groups_friends"); - //gIMMgr->addMessage(session_id, from_id, name, message, IM_OFFLINE == offline); - // - gIMMgr->addNotifiedNonFriendSessionID(session_id); + message = FSData::getInstance()->processRequestForInfo(from_id,message,name,session_id); } + // - mute_im = true; - } + // now store incoming IM in chat history -// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0) - // Don't block offline IMs, or IMs from Lindens - if ( (rlv_handler_t::isEnabled()) && (offline != IM_OFFLINE) && (!RlvActions::canReceiveIM(from_id)) && (!LLMuteList::getInstance()->isLinden(original_name) )) - { - if (!mute_im) - RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM_REMOTE), session_id); - message = RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM); - } -// [/RLVa:KB] + buffer = message; - if (!mute_im) - { - // checkfor and process reqinfo - message = FSData::getInstance()->processRequestForInfo(from_id, message, name, session_id); + LL_DEBUGS("Messaging") << "session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; // FIRE-10178: Keyword Alerts in group IM do not work unless the group is in the foreground (notification on receipt of IM) - chat.mText = message; + chat.mText = buffer; bool keyword_alert_performed = false; if (FSKeywords::getInstance()->chatContainsKeyword(chat, false)) { @@ -986,8 +846,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, } // - buffer = saved + message; - + // add to IM panel, but do not bother the user gIMMgr->addMessage( session_id, from_id, @@ -1002,71 +861,202 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, true, false, keyword_alert_performed); + + // Old "do not disturb" message behavior: only send once if session not open + //if (!gIMMgr->isDNDMessageSend(session_id)) + //{ + // // return a standard "do not disturb" message, but only do it to online IM + // // (i.e. not other auto responses and not store-and-forward IM) + // send_do_not_disturb_message(msg, from_id, session_id); + // gIMMgr->setDNDMessageSent(session_id, true); + //} + // + + if (!has_session) + { + // Fire-5389 - "Autoresponse Sent" message added to Firestorm as was in Phoenix + LLStringUtil::format_map_t args; + args["MESSAGE"] = response; + + gIMMgr->addMessage( + session_id, + gAgentID, + LLStringUtil::null, // Pass null value so no name gets prepended + LLTrans::getString("IM_autoresponse_sent", args), + false, + name, + IM_NOTHING_SPECIAL, + parent_estate_id, + region_id, + position, + false, + true + ); + // + + // Send inventory item on autoresponse + LLUUID item_id(gSavedPerAccountSettings.getString("FSAutoresponseItemUUID")); + if (item_id.notNull()) + { + LLInventoryItem* item = dynamic_cast(gInventory.getItem(item_id)); + if (item) + { + gIMMgr->addMessage( + session_id, + gAgentID, + LLStringUtil::null, // Pass null value so no name gets prepended + LLTrans::getString("IM_autoresponse_item_sent", LLSD().with("[ITEM_NAME]", item->getName())), + false, + name, + IM_NOTHING_SPECIAL, + parent_estate_id, + region_id, + position, + false, + true); + LLGiveInventory::doGiveInventoryItem(from_id, item, session_id); + } + } + // + } + } + else if (from_id.isNull()) + { + LLSD args; + args["MESSAGE"] = message; + LLNotificationsUtil::add("SystemMessage", args); + } + else if (to_id.isNull()) + { + // Message to everyone from GOD, look up the fullname since + // server always slams name to legacy names + LLAvatarNameCache::get(from_id, boost::bind(god_message_name_cb, _2, chat, message)); } else { - /* - EXT-5099 - currently there is no way to store in history only... - using LLNotificationsUtil::add will add message to Nearby Chat - - // muted user, so don't start an IM session, just record line in chat - // history. Pretend the chat is from a local agent, - // so it will go into the history but not be shown on screen. - - LLSD args; - args["MESSAGE"] = buffer; - LLNotificationsUtil::add("SystemMessageTip", args); - */ - static LLCachedControl fsSendMutedAvatarResponse(gSavedPerAccountSettings, "FSSendMutedAvatarResponse"); - if (fsSendMutedAvatarResponse && (!accept_im_from_only_friend || is_friend)) + // standard message, not from system + std::string saved; + if (offline == IM_OFFLINE) { - std::string my_name; - LLAgentUI::buildFullname(my_name); - std::string response = gSavedPerAccountSettings.getString("FSMutedAvatarResponse"); - pack_instant_message( - gMessageSystem, - gAgent.getID(), - FALSE, - gAgent.getSessionID(), - from_id, - my_name, - response, - IM_ONLINE, - IM_DO_NOT_DISTURB_AUTO_RESPONSE, - session_id); - gAgent.sendReliableMessage(); + LLStringUtil::format_map_t args; + args["[LONG_TIMESTAMP]"] = formatted_time(timestamp); + saved = LLTrans::getString("Saved_message", args); + } + buffer = saved + message; + + LL_DEBUGS("Messaging") << "session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; + + bool mute_im = is_muted; + if (accept_im_from_only_friend && !is_friend) + { + if (!gIMMgr->isNonFriendSessionNotified(session_id)) + { + // Disable this - doesn't make sense it will be skipped by LLIMMgr::addMessage() anyway + //std::string message = LLTrans::getString("IM_unblock_only_groups_friends"); + //gIMMgr->addMessage(session_id, from_id, name, message, IM_OFFLINE == offline); + // + gIMMgr->addNotifiedNonFriendSessionID(session_id); + } + + mute_im = true; } - // Don't flash for muted IMs - return; - } - } - break; +// [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0) + // Don't block offline IMs, or IMs from Lindens + if ( (rlv_handler_t::isEnabled()) && (offline != IM_OFFLINE) && (!RlvActions::canReceiveIM(from_id)) && (!LLMuteList::getInstance()->isLinden(original_name) )) + { + if (!mute_im) + RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM_REMOTE), session_id); + message = RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM); + } +// [/RLVa:KB] - case IM_TYPING_START: + if (!mute_im) + { + // checkfor and process reqinfo + message = FSData::getInstance()->processRequestForInfo(from_id, message, name, session_id); + + // FIRE-10178: Keyword Alerts in group IM do not work unless the group is in the foreground (notification on receipt of IM) + chat.mText = message; + bool keyword_alert_performed = false; + if (FSKeywords::getInstance()->chatContainsKeyword(chat, false)) + { + FSKeywords::notify(chat); + keyword_alert_performed = true; + } + // + + buffer = saved + message; + + gIMMgr->addMessage( + session_id, + from_id, + name, + buffer, + IM_OFFLINE == offline, + LLStringUtil::null, + dialog, + parent_estate_id, + region_id, + position, + true, + false, + keyword_alert_performed); + } + else + { + /* + EXT-5099 + */ + static LLCachedControl fsSendMutedAvatarResponse(gSavedPerAccountSettings, "FSSendMutedAvatarResponse"); + if (fsSendMutedAvatarResponse && (!accept_im_from_only_friend || is_friend)) + { + std::string my_name; + LLAgentUI::buildFullname(my_name); + std::string response = gSavedPerAccountSettings.getString("FSMutedAvatarResponse"); + pack_instant_message( + gMessageSystem, + gAgent.getID(), + FALSE, + gAgent.getSessionID(), + from_id, + my_name, + response, + IM_ONLINE, + IM_DO_NOT_DISTURB_AUTO_RESPONSE, + session_id); + gAgent.sendReliableMessage(); + } + + // Don't flash for muted IMs + return; + } + } + break; + + case IM_TYPING_START: { LLPointer im_info = new LLIMInfo(gMessageSystem); gIMMgr->processIMTypingStart(im_info); } break; - case IM_TYPING_STOP: + case IM_TYPING_STOP: { LLPointer im_info = new LLIMInfo(gMessageSystem); gIMMgr->processIMTypingStop(im_info); } break; - case IM_MESSAGEBOX: + case IM_MESSAGEBOX: { // This is a block, modeless dialog. args["MESSAGE"] = message; LLNotificationsUtil::add("SystemMessageTip", args); } break; - case IM_GROUP_NOTICE: - case IM_GROUP_NOTICE_REQUESTED: + case IM_GROUP_NOTICE: + case IM_GROUP_NOTICE_REQUESTED: { LL_INFOS("Messaging") << "Received IM_GROUP_NOTICE message." << LL_ENDL; @@ -1150,7 +1140,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, if (has_inventory) { info = new LLOfferInfo(); - + info->mIM = IM_GROUP_NOTICE; info->mFromID = from_id; info->mFromGroup = from_group; @@ -1171,7 +1161,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, info->mDesc = item_name; info->mHost = sender; } - + std::string str(message); // Tokenize the string. @@ -1195,7 +1185,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, payload["group_id"] = group_id; payload["inventory_name"] = item_name; payload["received_time"] = LLDate::now(); - if(info && info->asLLSD()) + if (info && info->asLLSD()) { payload["inventory_offer"] = info->asLLSD(); } @@ -1218,8 +1208,8 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, // Also send down the old path for now. if (IM_GROUP_NOTICE_REQUESTED == dialog) { - - LLPanelGroup::showNotice(subj,mes,group_id,has_inventory,item_name,info); + + LLPanelGroup::showNotice(subj, mes, group_id, has_inventory, item_name, info); } else { @@ -1227,7 +1217,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, } } break; - case IM_GROUP_INVITATION: + case IM_GROUP_INVITATION: { // FIRE-20385: Don't show group invitation for groups agent is already a member of if (gAgent.isInGroup(from_id) && !gSavedSettings.getBOOL("FSShowJoinedGroupInvitations")) @@ -1248,7 +1238,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, { send_do_not_disturb_message(gMessageSystem, from_id); } - + if (!is_muted) { LL_INFOS("Messaging") << "Received IM_GROUP_INVITATION message." << LL_ENDL; @@ -1257,7 +1247,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, { S32 membership_fee; LLUUID role_id; - }* invite_bucket; + }*invite_bucket; // Make sure the binary bucket is the correct size. if (binary_bucket_size != sizeof(invite_bucket_t)) @@ -1305,9 +1295,9 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, } break; - case IM_INVENTORY_OFFERED: - case IM_TASK_INVENTORY_OFFERED: - // Someone has offered us some inventory. + case IM_INVENTORY_OFFERED: + case IM_TASK_INVENTORY_OFFERED: + // Someone has offered us some inventory. { LLOfferInfo* info = new LLOfferInfo; if (IM_INVENTORY_OFFERED == dialog) @@ -1316,7 +1306,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, { S8 asset_type; LLUUID object_id; - }* bucketp; + }*bucketp; if (sizeof(offer_agent_bucket_t) != binary_bucket_size) { @@ -1381,54 +1371,54 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, } break; - case IM_INVENTORY_ACCEPTED: - { -// args["NAME"] = LLSLURL("agent", from_id, "completename").getSLURLString();; -// args["ORIGINAL_NAME"] = original_name; + case IM_INVENTORY_ACCEPTED: + { +// args["NAME"] = LLSLURL("agent", from_id, "completename").getSLURLString();; +// args["ORIGINAL_NAME"] = original_name; // [RLVa:KB] - Checked: RLVa-1.2.2 - // Only anonymize the name if the agent is nearby, there isn't an open IM session to them and their profile isn't open - LLAvatarName av_name; - bool fRlvCanShowName = (!RlvActions::isRlvEnabled()) || - (RlvActions::canShowName(RlvActions::SNC_DEFAULT, from_id)) || (!RlvUtil::isNearbyAgent(from_id)) || (RlvUIEnabler::hasOpenProfile(from_id)) || (RlvUIEnabler::hasOpenIM(from_id)); - args["NAME"] = LLSLURL("agent", from_id, (fRlvCanShowName) ? "completename" : "rlvanonym").getSLURLString();; - args["ORIGINAL_NAME"] = fRlvCanShowName ? original_name : (LLAvatarNameCache::get(from_id, &av_name) ? RlvStrings::getAnonym(av_name) : RlvStrings::getAnonym(original_name)); + // Only anonymize the name if the agent is nearby, there isn't an open IM session to them and their profile isn't open + LLAvatarName av_name; + bool fRlvCanShowName = (!RlvActions::isRlvEnabled()) || + (RlvActions::canShowName(RlvActions::SNC_DEFAULT, from_id)) || (!RlvUtil::isNearbyAgent(from_id)) || (RlvUIEnabler::hasOpenProfile(from_id)) || (RlvUIEnabler::hasOpenIM(from_id)); + args["NAME"] = LLSLURL("agent", from_id, (fRlvCanShowName) ? "completename" : "rlvanonym").getSLURLString();; + args["ORIGINAL_NAME"] = fRlvCanShowName ? original_name : (LLAvatarNameCache::get(from_id, &av_name) ? RlvStrings::getAnonym(av_name) : RlvStrings::getAnonym(original_name)); // [/RLVa:KB] - LLSD payload; - payload["from_id"] = from_id; - // Passing the "SESSION_NAME" to use it for IM notification logging - // in LLTipHandler::processNotification(). See STORM-941. - payload["SESSION_NAME"] = name; - LLNotificationsUtil::add("InventoryAccepted", args, payload); - break; - } - case IM_INVENTORY_DECLINED: - { -// args["NAME"] = LLSLURL("agent", from_id, "completename").getSLURLString();; + LLSD payload; + payload["from_id"] = from_id; + // Passing the "SESSION_NAME" to use it for IM notification logging + // in LLTipHandler::processNotification(). See STORM-941. + payload["SESSION_NAME"] = name; + LLNotificationsUtil::add("InventoryAccepted", args, payload); + break; + } + case IM_INVENTORY_DECLINED: + { +// args["NAME"] = LLSLURL("agent", from_id, "completename").getSLURLString();; // [RLVa:KB] - Checked: RLVa-1.2.2 - // Only anonymize the name if the agent is nearby, there isn't an open IM session to them and their profile isn't open - bool fRlvCanShowName = (!RlvActions::isRlvEnabled()) || - (RlvActions::canShowName(RlvActions::SNC_DEFAULT, from_id)) || (!RlvUtil::isNearbyAgent(from_id)) || (RlvUIEnabler::hasOpenProfile(from_id)) || (RlvUIEnabler::hasOpenIM(from_id)); - args["NAME"] = LLSLURL("agent", from_id, (fRlvCanShowName) ? "completename" : "rlvanonym").getSLURLString();; + // Only anonymize the name if the agent is nearby, there isn't an open IM session to them and their profile isn't open + bool fRlvCanShowName = (!RlvActions::isRlvEnabled()) || + (RlvActions::canShowName(RlvActions::SNC_DEFAULT, from_id)) || (!RlvUtil::isNearbyAgent(from_id)) || (RlvUIEnabler::hasOpenProfile(from_id)) || (RlvUIEnabler::hasOpenIM(from_id)); + args["NAME"] = LLSLURL("agent", from_id, (fRlvCanShowName) ? "completename" : "rlvanonym").getSLURLString();; // [/RLVa:KB] - LLSD payload; - payload["from_id"] = from_id; - LLNotificationsUtil::add("InventoryDeclined", args, payload); - break; - } - // TODO: _DEPRECATED suffix as part of vote removal - DEV-24856 - case IM_GROUP_VOTE: + LLSD payload; + payload["from_id"] = from_id; + LLNotificationsUtil::add("InventoryDeclined", args, payload); + break; + } + // TODO: _DEPRECATED suffix as part of vote removal - DEV-24856 + case IM_GROUP_VOTE: { LL_WARNS("Messaging") << "Received IM: IM_GROUP_VOTE_DEPRECATED" << LL_ENDL; } break; - case IM_GROUP_ELECTION_DEPRECATED: - { - LL_WARNS("Messaging") << "Received IM: IM_GROUP_ELECTION_DEPRECATED" << LL_ENDL; - } - break; - - case IM_FROM_TASK: + case IM_GROUP_ELECTION_DEPRECATED: + { + LL_WARNS("Messaging") << "Received IM: IM_GROUP_ELECTION_DEPRECATED" << LL_ENDL; + } + break; + + case IM_FROM_TASK: { if (is_do_not_disturb && !is_owned_by_me) @@ -1471,7 +1461,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, // enough to check only from name (i.e. fromName = "Second Life"). For example // source type of messages from objects called "Second Life" should not be CHAT_SOURCE_SYSTEM. bool chat_from_system = (SYSTEM_FROM == name) && region_id.isNull() && position.isNull(); - if(chat_from_system) + if (chat_from_system) { // System's UUID is NULL (fixes EXT-4766) chat.mFromID = LLUUID::null; @@ -1507,9 +1497,9 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, if (from_group) { query_string["groupowned"] = "true"; - } + } -// chat.mURL = LLSLURL("objectim", session_id, "").getSLURLString(); +// chat.mURL = LLSLURL("objectim", session_id, "").getSLURLString(); // [SL:KB] - Checked: 2010-11-02 (RLVa-1.2.2a) | Added: RLVa-1.2.2a chat.mURL = LLSLURL("objectim", session_id, LLURI::mapToQueryString(query_string)).getSLURLString(); // [/SL:KB] @@ -1528,7 +1518,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, //LLFloaterIMNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance("nearby_chat"); FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance(); // [FS communication UI] - if(!chat_from_system && nearby_chat) + if (!chat_from_system && nearby_chat) { chat.mOwnerID = from_id; LLSD args; @@ -1550,7 +1540,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, //Object IMs send with from name: 'Second Life' need to be displayed also in notification toasts (EXT-1590) if (!chat_from_system) break; - + LLSD substitutions; substitutions["NAME"] = name; substitutions["MSG"] = message; @@ -1571,128 +1561,128 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, } break; - case IM_SESSION_SEND: // ad-hoc or group IMs + case IM_SESSION_SEND: // ad-hoc or group IMs - // Only show messages if we have a session open (which - // should happen after you get an "invitation" + // Only show messages if we have a session open (which + // should happen after you get an "invitation" // [SL:KB] - Patch: Chat-GroupSnooze | Checked: 2012-06-16 (Catznip-3.3) - //if ( !gIMMgr->hasSession(session_id) ) - if ( (!gIMMgr->hasSession(session_id)) && - ( (!gAgent.isInGroup(session_id)) || (!gIMMgr->checkSnoozeExpiration(session_id)) || LLAvatarActions::isBlocked(from_id) || (!gIMMgr->restoreSnoozedSession(session_id)) ) ) + //if ( !gIMMgr->hasSession(session_id) ) + if ( (!gIMMgr->hasSession(session_id)) && + ( (!gAgent.isInGroup(session_id)) || (!gIMMgr->checkSnoozeExpiration(session_id)) || LLAvatarActions::isBlocked(from_id) || (!gIMMgr->restoreSnoozedSession(session_id)) ) ) // [/SL:KB] - { - return; - } - - else if (offline == IM_ONLINE && is_do_not_disturb) - { - - // return a standard "do not disturb" message, but only do it to online IM - // (i.e. not other auto responses and not store-and-forward IM) - if (!gIMMgr->hasSession(session_id)) { - // if there is not a panel for this conversation (i.e. it is a new IM conversation - // initiated by the other party) then... - send_do_not_disturb_message(gMessageSystem, from_id, session_id); + return; } - // now store incoming IM in chat history - - buffer = message; - - LL_DEBUGS("Messaging") << "message in dnd; session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; - - // add to IM panel, but do not bother the user - gIMMgr->addMessage( - session_id, - from_id, - name, - buffer, - IM_OFFLINE == offline, - ll_safe_string((char*)binary_bucket), - IM_SESSION_INVITE, - parent_estate_id, - region_id, - position, - true); - } - else - { - - // FIRE-10178: Keyword Alerts in group IM do not work unless the group is in the foreground (notification on receipt of IM) - chat.mText = message; - bool keyword_alert_performed = false; - if (FSKeywords::getInstance()->chatContainsKeyword(chat, false)) + else if (offline == IM_ONLINE && is_do_not_disturb) { - FSKeywords::notify(chat); - keyword_alert_performed = true; - } - // - // standard message, not from system - std::string saved; - if(offline == IM_OFFLINE) + // return a standard "do not disturb" message, but only do it to online IM + // (i.e. not other auto responses and not store-and-forward IM) + if (!gIMMgr->hasSession(session_id)) + { + // if there is not a panel for this conversation (i.e. it is a new IM conversation + // initiated by the other party) then... + send_do_not_disturb_message(gMessageSystem, from_id, session_id); + } + + // now store incoming IM in chat history + + buffer = message; + + LL_DEBUGS("Messaging") << "message in dnd; session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; + + // add to IM panel, but do not bother the user + gIMMgr->addMessage( + session_id, + from_id, + name, + buffer, + IM_OFFLINE == offline, + ll_safe_string((char*)binary_bucket), + IM_SESSION_INVITE, + parent_estate_id, + region_id, + position, + true); + } + else { - saved = llformat("(Saved %s) ", formatted_time(timestamp).c_str()); + + // FIRE-10178: Keyword Alerts in group IM do not work unless the group is in the foreground (notification on receipt of IM) + chat.mText = message; + bool keyword_alert_performed = false; + if (FSKeywords::getInstance()->chatContainsKeyword(chat, false)) + { + FSKeywords::notify(chat); + keyword_alert_performed = true; + } + // + + // standard message, not from system + std::string saved; + if (offline == IM_OFFLINE) + { + saved = llformat("(Saved %s) ", formatted_time(timestamp).c_str()); + } + + buffer = saved + message; + + LL_DEBUGS("Messaging") << "standard message session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; + + gIMMgr->addMessage( + session_id, + from_id, + name, + buffer, + IM_OFFLINE == offline, + ll_safe_string((char*)binary_bucket), + IM_SESSION_INVITE, + parent_estate_id, + region_id, + position, + true, + false, + keyword_alert_performed); } + break; - buffer = saved + message; + case IM_FROM_TASK_AS_ALERT: + if (is_do_not_disturb && !is_owned_by_me) + { + return; + } + { + // Construct a viewer alert for this message. + args["NAME"] = name; + args["MESSAGE"] = message; + LLNotificationsUtil::add("ObjectMessage", args); + } + break; + case IM_DO_NOT_DISTURB_AUTO_RESPONSE: + if (is_muted) + { + LL_DEBUGS("Messaging") << "Ignoring do-not-disturb response from " << from_id << LL_ENDL; + return; + } + else + { + // FIRE-12908: Add busy response indicator back to busy messages + //gIMMgr->addMessage(session_id, from_id, name, message); + buffer = llformat("(%s): %s", LLTrans::getString("BusyResponse").c_str(), message.c_str()); + gIMMgr->addMessage(session_id, from_id, name, buffer); + // + } + break; - LL_DEBUGS("Messaging") << "standard message session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; - - gIMMgr->addMessage( - session_id, - from_id, - name, - buffer, - IM_OFFLINE == offline, - ll_safe_string((char*)binary_bucket), - IM_SESSION_INVITE, - parent_estate_id, - region_id, - position, - true, - false, - keyword_alert_performed); - } - break; - - case IM_FROM_TASK_AS_ALERT: - if (is_do_not_disturb && !is_owned_by_me) - { - return; - } - { - // Construct a viewer alert for this message. - args["NAME"] = name; - args["MESSAGE"] = message; - LLNotificationsUtil::add("ObjectMessage", args); - } - break; - case IM_DO_NOT_DISTURB_AUTO_RESPONSE: - if (is_muted) - { - LL_DEBUGS("Messaging") << "Ignoring do-not-disturb response from " << from_id << LL_ENDL; - return; - } - else - { - // FIRE-12908: Add busy response indicator back to busy messages - //gIMMgr->addMessage(session_id, from_id, name, message); - buffer = llformat("(%s): %s", LLTrans::getString("BusyResponse").c_str(), message.c_str()); - gIMMgr->addMessage(session_id, from_id, name, buffer); - // - } - break; - - case IM_LURE_USER: - case IM_TELEPORT_REQUEST: + case IM_LURE_USER: + case IM_TELEPORT_REQUEST: { // [RLVa:KB] - Checked: RLVa-1.4.9 // If we auto-accept the offer/request then this will override DnD status (but we'll still let the other party know later) bool fRlvAutoAccept = (rlv_handler_t::isEnabled()) && ( ((IM_LURE_USER == dialog) && (RlvActions::autoAcceptTeleportOffer(from_id))) || - ((IM_TELEPORT_REQUEST == dialog) && (RlvActions::autoAcceptTeleportRequest(from_id))) ); + ((IM_TELEPORT_REQUEST == dialog) && (RlvActions::autoAcceptTeleportRequest(from_id))) ); // [/RLVa:KB] if (is_muted) @@ -1712,7 +1702,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, // else { -// if (is_do_not_disturb) +// if (is_do_not_disturb) // [RLVa:KB] - Checked: RLVa-1.4.9 if ( (is_do_not_disturb) && (!fRlvAutoAccept) ) // [/RLVa:KB] @@ -1726,7 +1716,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, std::string region_info = ll_safe_string((char*)binary_bucket, binary_bucket_size); std::string region_access_str = LLStringUtil::null; std::string region_access_icn = LLStringUtil::null; - std::string region_access_lc = LLStringUtil::null; + std::string region_access_lc = LLStringUtil::null; bool canUserAccessDstRegion = true; bool doesUserRequireMaturityIncrease = false; @@ -1736,39 +1726,39 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, { region_access_str = LLViewerRegion::accessToString(region_access); region_access_icn = LLViewerRegion::getAccessIcon(region_access); - region_access_lc = region_access_str; + region_access_lc = region_access_str; LLStringUtil::toLower(region_access_lc); if (!gAgent.isGodlike()) { switch (region_access) { - case SIM_ACCESS_MIN : - case SIM_ACCESS_PG : - break; - case SIM_ACCESS_MATURE : - if (gAgent.isTeen()) - { - canUserAccessDstRegion = false; - } - else if (gAgent.prefersPG()) - { - doesUserRequireMaturityIncrease = true; - } - break; - case SIM_ACCESS_ADULT : - if (!gAgent.isAdult()) - { - canUserAccessDstRegion = false; - } - else if (!gAgent.prefersAdult()) - { - doesUserRequireMaturityIncrease = true; - } - break; - default : - llassert(0); - break; + case SIM_ACCESS_MIN: + case SIM_ACCESS_PG: + break; + case SIM_ACCESS_MATURE: + if (gAgent.isTeen()) + { + canUserAccessDstRegion = false; + } + else if (gAgent.prefersPG()) + { + doesUserRequireMaturityIncrease = true; + } + break; + case SIM_ACCESS_ADULT: + if (!gAgent.isAdult()) + { + canUserAccessDstRegion = false; + } + else if (!gAgent.prefersAdult()) + { + doesUserRequireMaturityIncrease = true; + } + break; + default: + llassert(0); + break; } } } @@ -1777,7 +1767,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, if (rlv_handler_t::isEnabled()) { if ( ((IM_LURE_USER == dialog) && (!RlvActions::canAcceptTpOffer(from_id))) || - ((IM_TELEPORT_REQUEST == dialog) && (!RlvActions::canAcceptTpRequest(from_id))) ) + ((IM_TELEPORT_REQUEST == dialog) && (!RlvActions::canAcceptTpRequest(from_id))) ) { RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_TPLUREREQ_REMOTE)); if (is_do_not_disturb) @@ -1787,7 +1777,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, // Censor message if: 1) restricted from receiving IMs from the sender, or 2) teleport offer/request and @showloc=n restricted if ( (!RlvActions::canReceiveIM(from_id)) || - ((gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) && (IM_LURE_USER == dialog || IM_TELEPORT_REQUEST == dialog)) ) + ((gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) && (IM_LURE_USER == dialog || IM_TELEPORT_REQUEST == dialog)) ) { message = RlvStrings::getString(RLV_STRING_HIDDEN); } @@ -1825,7 +1815,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, LLNotification::Params params("TeleportOffered_MaturityBlocked"); params.substitutions = args; params.payload = payload; - LLPostponedNotification::add( params, from_id, false); + LLPostponedNotification::add(params, from_id, false); send_simple_im(from_id, LLTrans::getString("TeleportMaturityExceeded"), IM_NOTHING_SPECIAL, session_id); send_simple_im(from_id, LLStringUtil::null, IM_LURE_DECLINED, session_id); } @@ -1834,7 +1824,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, LLNotification::Params params("TeleportOffered_MaturityExceeded"); params.substitutions = args; params.payload = payload; - LLPostponedNotification::add( params, from_id, false); + LLPostponedNotification::add(params, from_id, false); } else { @@ -1867,13 +1857,13 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, LLPostponedNotification::add(params, from_id, false); } // [/RLVa:KB] -// LLPostponedNotification::add(params, from_id, false); +// LLPostponedNotification::add(params, from_id, false); } } } break; - case IM_GODLIKE_LURE_USER: + case IM_GODLIKE_LURE_USER: { LLVector3 pos, look_at; U64 region_handle(0); @@ -1881,7 +1871,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, std::string region_info = ll_safe_string((char*)binary_bucket, binary_bucket_size); std::string region_access_str = LLStringUtil::null; std::string region_access_icn = LLStringUtil::null; - std::string region_access_lc = LLStringUtil::null; + std::string region_access_lc = LLStringUtil::null; bool canUserAccessDstRegion = true; bool doesUserRequireMaturityIncrease = false; @@ -1890,39 +1880,39 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, { region_access_str = LLViewerRegion::accessToString(region_access); region_access_icn = LLViewerRegion::getAccessIcon(region_access); - region_access_lc = region_access_str; + region_access_lc = region_access_str; LLStringUtil::toLower(region_access_lc); if (!gAgent.isGodlike()) { switch (region_access) { - case SIM_ACCESS_MIN : - case SIM_ACCESS_PG : - break; - case SIM_ACCESS_MATURE : - if (gAgent.isTeen()) - { - canUserAccessDstRegion = false; - } - else if (gAgent.prefersPG()) - { - doesUserRequireMaturityIncrease = true; - } - break; - case SIM_ACCESS_ADULT : - if (!gAgent.isAdult()) - { - canUserAccessDstRegion = false; - } - else if (!gAgent.prefersAdult()) - { - doesUserRequireMaturityIncrease = true; - } - break; - default : - llassert(0); - break; + case SIM_ACCESS_MIN: + case SIM_ACCESS_PG: + break; + case SIM_ACCESS_MATURE: + if (gAgent.isTeen()) + { + canUserAccessDstRegion = false; + } + else if (gAgent.prefersPG()) + { + doesUserRequireMaturityIncrease = true; + } + break; + case SIM_ACCESS_ADULT: + if (!gAgent.isAdult()) + { + canUserAccessDstRegion = false; + } + else if (!gAgent.prefersAdult()) + { + doesUserRequireMaturityIncrease = true; + } + break; + default: + llassert(0); + break; } } } @@ -1945,7 +1935,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, LLNotification::Params params("TeleportOffered_MaturityBlocked"); params.substitutions = args; params.payload = payload; - LLPostponedNotification::add( params, from_id, false); + LLPostponedNotification::add(params, from_id, false); send_simple_im(from_id, LLTrans::getString("TeleportMaturityExceeded"), IM_NOTHING_SPECIAL, session_id); send_simple_im(from_id, LLStringUtil::null, IM_LURE_DECLINED, session_id); } @@ -1954,18 +1944,18 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, LLNotification::Params params("TeleportOffered_MaturityExceeded"); params.substitutions = args; params.payload = payload; - LLPostponedNotification::add( params, from_id, false); + LLPostponedNotification::add(params, from_id, false); } else { - // do not show a message box, because you're about to be - // teleported. - LLNotifications::instance().forceResponse(LLNotification::Params("TeleportOffered").payload(payload), 0); - } + // do not show a message box, because you're about to be + // teleported. + LLNotifications::instance().forceResponse(LLNotification::Params("TeleportOffered").payload(payload), 0); + } } break; - case IM_GOTO_URL: + case IM_GOTO_URL: { LLSD args; // n.b. this is for URLs sent by the system, not for @@ -1985,11 +1975,11 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, args["URL"] = url; LLSD payload; payload["url"] = url; - LLNotificationsUtil::add("GotoURL", args, payload ); + LLNotificationsUtil::add("GotoURL", args, payload); } break; - case IM_FRIENDSHIP_OFFERED: + case IM_FRIENDSHIP_OFFERED: { // FIRE-15233: Automatic friendship request refusal @@ -2036,37 +2026,37 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, if (add_notification) { - if(message.empty()) - { - //support for frienship offers from clients before July 2008 + if (message.empty()) + { + //support for frienship offers from clients before July 2008 LLNotificationsUtil::add("OfferFriendshipNoMessage", args, payload); make_ui_sound("UISndFriendshipOffer"); // Friendship offer sound - } - else - { - args["[MESSAGE]"] = message; - LLNotification::Params params("OfferFriendship"); - params.substitutions = args; - params.payload = payload; - LLPostponedNotification::add( params, from_id, false); - make_ui_sound("UISndFriendshipOffer"); // Friendship offer sound + } + else + { + args["[MESSAGE]"] = message; + LLNotification::Params params("OfferFriendship"); + params.substitutions = args; + params.payload = payload; + LLPostponedNotification::add(params, from_id, false); + make_ui_sound("UISndFriendshipOffer"); // Friendship offer sound + } } } } - } break; - case IM_FRIENDSHIP_ACCEPTED: + case IM_FRIENDSHIP_ACCEPTED: { // In the case of an offline IM, the formFriendship() may be extraneous // as the database should already include the relationship. But it // doesn't hurt for dupes. LLAvatarTracker::formFriendship(from_id); - + std::vector strings; strings.push_back(from_id.asString()); send_generic_message("requestonlinenotification", strings); - + args["NAME"] = name; LLSD payload; payload["from_id"] = from_id; @@ -2074,11 +2064,11 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, } break; - case IM_FRIENDSHIP_DECLINED_DEPRECATED: - default: - LL_WARNS("Messaging") << "Instant message calling for unknown dialog " + case IM_FRIENDSHIP_DECLINED_DEPRECATED: + default: + LL_WARNS("Messaging") << "Instant message calling for unknown dialog " << (S32)dialog << LL_ENDL; - break; + break; } LLWindow* viewer_window = gViewerWindow->getWindow(); From b58fb1bfffc66049f85791f530c7413d9921d85f Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Mon, 2 Apr 2018 17:32:11 +0300 Subject: [PATCH 52/55] MAINT-8203 LLIMInfo crash due to capability --- indra/newview/llimprocessing.cpp | 34 ++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index 8db619e758..c540cd9997 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -1036,14 +1036,44 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, case IM_TYPING_START: { - LLPointer im_info = new LLIMInfo(gMessageSystem); + std::vector bucket(binary_bucket[0], binary_bucket_size); + LLSD data; + data["binary_bucket"] = bucket; + LLPointer im_info = new LLIMInfo(from_id, + from_group, + to_id, + dialog, + agentName, + message, + session_id, + parent_estate_id, + region_id, + position, + data, + offline, + timestamp); gIMMgr->processIMTypingStart(im_info); } break; case IM_TYPING_STOP: { - LLPointer im_info = new LLIMInfo(gMessageSystem); + std::vector bucket(binary_bucket[0], binary_bucket_size); + LLSD data; + data["binary_bucket"] = bucket; + LLPointer im_info = new LLIMInfo(from_id, + from_group, + to_id, + dialog, + agentName, + message, + session_id, + parent_estate_id, + region_id, + position, + data, + offline, + timestamp); gIMMgr->processIMTypingStop(im_info); } break; From ebdd2ca53f6db074e6bc104a9e893dd0b1bd5fed Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Fri, 6 Apr 2018 14:15:11 +0000 Subject: [PATCH 53/55] MAINT-8203 Restore legacy name lookup --- indra/newview/llimprocessing.cpp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index c540cd9997..8305d24000 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -1090,7 +1090,7 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, { LL_INFOS("Messaging") << "Received IM_GROUP_NOTICE message." << LL_ENDL; - LLUUID agent_id = from_id; + LLUUID agent_id; U8 has_inventory; U8 asset_type = 0; LLUUID group_id; @@ -1157,6 +1157,29 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, item_name = ll_safe_string((const char*)notice_bin_bucket->item_name); } + if (group_id != from_id) + { + agent_id = from_id; + } + else + { + S32 index = original_name.find(" Resident"); + if (index != std::string::npos) + { + original_name = original_name.substr(0, index); + } + + // The group notice packet does not have an AgentID. Obtain one from the name cache. + // If last name is "Resident" strip it out so the cache name lookup works. + std::string legacy_name = gCacheName->buildLegacyName(original_name); + agent_id = LLAvatarNameCache::findIdByName(legacy_name); + + if (agent_id.isNull()) + { + LL_WARNS("Messaging") << "buildLegacyName returned null while processing " << original_name << LL_ENDL; + } + } + if (agent_id.notNull() && LLMuteList::getInstance()->isMuted(agent_id)) { // Don't flash task icon From b1b771378054efeb8f7e33d5674f0397dfbeb006 Mon Sep 17 00:00:00 2001 From: Liny Date: Fri, 6 Apr 2018 16:24:54 -0700 Subject: [PATCH 54/55] Fix FIRE-22413 [Linux] Upload dialog is missing string "scene_files" (also fixed the same error for xml files) --- indra/newview/llfilepicker.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index 7b76835eae..691ffb2590 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -1252,13 +1252,13 @@ static std::string add_anim_filter_to_gtkchooser(GtkWindow *picker) static std::string add_xml_filter_to_gtkchooser(GtkWindow *picker) { return add_simple_pattern_filter_to_gtkchooser(picker, "*.xml", - LLTrans::getString("xml_files") + " (*.xml)"); + LLTrans::getString("xml_file") + " (*.xml)"); } static std::string add_collada_filter_to_gtkchooser(GtkWindow *picker) { return add_simple_pattern_filter_to_gtkchooser(picker, "*.dae", - LLTrans::getString("scene_files") + " (*.dae)"); + LLTrans::getString("collada_files") + " (*.dae)"); } static std::string add_imageload_filter_to_gtkchooser(GtkWindow *picker) From f251d95cb28cd08d4d19bf23520d9c7292411d4a Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sat, 7 Apr 2018 03:34:18 +0200 Subject: [PATCH 55/55] FIRE-18130: Setting llSetTextureAnim to FALSE while enabling llSetPrimMediaParams causes the animation to clear improperly --- indra/newview/llmediactrl.cpp | 22 ---------------------- indra/newview/llvovolume.cpp | 12 ------------ 2 files changed, 34 deletions(-) diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 53a7c5bf4b..fd909578d5 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -827,21 +827,6 @@ void LLMediaCtrl::draw() S32 x_offset, y_offset, width, height; calcOffsetsAndSize(&x_offset, &y_offset, &width, &height); -#if 0 - // Flip Y-Axis of media texture - U32 mode = gGL.getMatrixMode(); - gGL.matrixMode(LLRender::MM_TEXTURE0); - - F32 aMatrix[16] = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, -1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, max_v, 0.0f, 1.0f - }; - gGL.pushMatrix(); - gGL.loadMatrix( aMatrix ); - gGL.matrixMode(mode); - // -#endif // draw the browser // Remove QUADS rendering mode //gGL.begin( LLRender::QUADS ); @@ -894,13 +879,6 @@ void LLMediaCtrl::draw() gGL.vertex2i( x_offset + width, y_offset ); } gGL.end(); -#if 0 - // Restore matrix for texture 0 - gGL.matrixMode(LLRender::MM_TEXTURE0); - gGL.popMatrix(); - gGL.matrixMode( mode ); - // -#endif } gGL.popUIMatrix(); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 56d73c108c..793ee6bb97 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -4569,11 +4569,6 @@ bool can_batch_texture(LLFace* facep) { //texture animation breaks batches return false; } - - if( facep->mTextureMatrix && - ( ( facep->getTextureEntry() && facep->getTextureEntry()->hasMedia() ) || - ( facep->getTexture() && facep->getTexture()->getType() == LLViewerTexture::MEDIA_TEXTURE ) ) ) - return false; return true; } @@ -4687,13 +4682,6 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep, tex_mat = facep->mTextureMatrix; } - // CEF: if this is a face with media, then use the texture matrix to flip the texture - if( facep->mTextureMatrix && - ( ( facep->getTextureEntry() && facep->getTextureEntry()->hasMedia() ) || - ( facep->getTexture() && facep->getTexture()->getType() == LLViewerTexture::MEDIA_TEXTURE ) ) ) - tex_mat = facep->mTextureMatrix; - // - const LLMatrix4* model_mat = NULL; LLDrawable* drawable = facep->getDrawable();