From e13c06d0d9c0bb161bdf83f88abdc69a249648d7 Mon Sep 17 00:00:00 2001 From: ruslantproductengine Date: Thu, 16 Aug 2018 18:32:34 +0300 Subject: [PATCH 01/15] MAINT-8937 - Selection Outline Odd Behavior When Panning Around Fixed. --- indra/newview/llselectmgr.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index e0481dbe11..05b1f4c7d4 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -6553,7 +6553,9 @@ void LLSelectNode::renderOneWireframe(const LLColor4& color) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - if (LLSelectMgr::sRenderHiddenSelections) // && gFloaterTools && gFloaterTools->getVisible()) + bool wireframe_selection = gFloaterTools && gFloaterTools->getVisible() || LLSelectMgr::sRenderHiddenSelections; + + if (LLSelectMgr::sRenderHiddenSelections) { gGL.blendFunc(LLRender::BF_SOURCE_COLOR, LLRender::BF_ONE); LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GEQUAL); @@ -6593,8 +6595,6 @@ void LLSelectNode::renderOneWireframe(const LLColor4& color) gGL.diffuseColor4f(color.mV[VRED] * 2, color.mV[VGREEN] * 2, color.mV[VBLUE] * 2, LLSelectMgr::sHighlightAlpha * 2); { - bool wireframe_selection = gFloaterTools && gFloaterTools->getVisible(); - LLGLDisable depth(wireframe_selection ? 0 : GL_BLEND); LLGLEnable stencil(wireframe_selection ? 0 : GL_STENCIL_TEST); From cdd0a1b8ea1ffb85f67d83513bb92617f6b54f8e Mon Sep 17 00:00:00 2001 From: Tonya Souther Date: Sat, 20 Oct 2018 13:54:20 -0500 Subject: [PATCH 02/15] Build fix for Xcode 10 on OS X. --- indra/newview/llselectmgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 05b1f4c7d4..5c59c1ec6d 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -6553,7 +6553,7 @@ void LLSelectNode::renderOneWireframe(const LLColor4& color) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - bool wireframe_selection = gFloaterTools && gFloaterTools->getVisible() || LLSelectMgr::sRenderHiddenSelections; + bool wireframe_selection = (gFloaterTools && gFloaterTools->getVisible()) || LLSelectMgr::sRenderHiddenSelections; if (LLSelectMgr::sRenderHiddenSelections) { From cce29ea4f5ec36f80c392d10725750337e4cc506 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sun, 21 Oct 2018 01:00:23 +0200 Subject: [PATCH 03/15] Update KDU to version 7.A.5 for Linux by mygoditsfullofstars --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 02556359bb..e21412162c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2000,9 +2000,9 @@ archive hash - fa8a0db7f4900663f5d58eaac2b782b5 + daa35834257d08b59e876388d1244de8 url - file:///opt/firestorm/kdu-7.A.4-linux-180892203.tar.bz2 + file:///opt/firestorm/kdu-7.A.5-linux-182931105.tar.bz2 name linux @@ -2012,9 +2012,9 @@ archive hash - fa8a0db7f4900663f5d58eaac2b782b5 + daa35834257d08b59e876388d1244de8 url - file:///opt/firestorm/kdu-7.A.4-linux-180892203.tar.bz2 + file:///opt/firestorm/kdu-7.A.5-linux-182931105.tar.bz2 name linux64 From fab48e28c739c320ce9478d470ac54c419a723d7 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sun, 21 Oct 2018 12:44:15 +0200 Subject: [PATCH 04/15] Remove old CEF log file at startup --- indra/newview/llappviewer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 6e54fee4dc..926667470d 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2600,6 +2600,9 @@ void LLAppViewer::initLoggingAndGetLastDuration() LLError::setFatalFunction(errorCallback); //LLError::setTimeFunction(getRuntime); + // Remove old CEF log file (defined in dullahan.h) + LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "cef_log.txt")); + // Remove the last ".old" log file. std::string old_log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, APP_NAME + ".old"); From 1ac6850882dc507fda68ceea05f16def1418d889 Mon Sep 17 00:00:00 2001 From: Tonya Souther Date: Sun, 21 Oct 2018 20:21:32 -0500 Subject: [PATCH 05/15] KDU 7.A.5 for OS X. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index e21412162c..87a8941cf6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1976,9 +1976,9 @@ archive hash - 814bec3fa5045a18dce2bc4ce78b585d + 1b87073540bf081136e60777d99f09f2 url - file:///opt/firestorm/kdu-7.A.4-darwin-180792321.tar.bz2 + file:///opt/firestorm/kdu-7.A.5-darwin-182950050.tar.bz2 name darwin From 5e5240b697c7fdcb2ceb570fcaa25aca8d685932 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 25 Oct 2018 18:42:50 +0200 Subject: [PATCH 06/15] FIRE-23169: Fix offline inventory offers getting lost --- indra/newview/llimprocessing.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index c990437e9f..48d89d807b 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -2116,11 +2116,17 @@ void LLIMProcessing::requestOfflineMessages() { std::string cap_url = gAgent.getRegionCapability("ReadOfflineMsgs"); + // Optional legacy offline messages + if (!gSavedSettings.getBOOL("FSUseReadOfflineMsgsCap")) + { + cap_url = ""; + } + // + // 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") // Optional legacy offline messages || gAgent.getRegionCapability("AcceptFriendship").empty() || gAgent.getRegionCapability("AcceptGroupInvite").empty()) { From 8456bfd54390d1af1bc7576e91fde0b136078fcc Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sat, 27 Oct 2018 16:13:48 +0200 Subject: [PATCH 07/15] FMOD Studio 1.10.09 update for Windows --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 87a8941cf6..b607f3f849 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -994,11 +994,11 @@ archive hash - ccce662b1f3d31868093c6a25fdee3f5 + 1693b43fbab6699e26d9f2767c336539 hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.08-windows-182340821.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.09-windows-183001324.tar.bz2 name windows @@ -1008,11 +1008,11 @@ archive hash - d796487f8504586309981f4eaa12e985 + 2483cdd2b241bda235e7bbe7040e862f hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.08-windows64-182340822.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.09-windows64-183001326.tar.bz2 name windows64 From 4906736102003d75780ea738438010060076e893 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sun, 28 Oct 2018 02:41:18 +0200 Subject: [PATCH 08/15] FMOD Studio 1.10.09 update for Linux by mygoditsfullofstars --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index b607f3f849..d810ff1034 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -966,11 +966,11 @@ archive hash - 4fc2133e8ad5bb206671e7f9dffc7d2d + 55abf769c33f10f9badb06eff85951f3 hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-1.10.08-linux-182341500.tar.bz2 + file:///opt/firestorm/fmodstudio-1.10.09-linux-183002243.tar.bz2 name linux @@ -980,11 +980,11 @@ archive hash - 05f7f1790a3c57ec9741bd45bade9c43 + 2318b66522d1247ae7887d39bcab4ec7 hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-1.10.08-linux64-182341501.tar.bz2 + file:///opt/firestorm/fmodstudio-1.10.09-linux64-183002242.tar.bz2 name linux64 From cd7c6d50051841395e821452a2537ba4dc5e17f5 Mon Sep 17 00:00:00 2001 From: Tonya Souther Date: Sun, 28 Oct 2018 08:57:24 -0500 Subject: [PATCH 09/15] FMOD Studio 1.10.09 update for macOS. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index d810ff1034..d75562e8e6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -952,11 +952,11 @@ archive hash - f6834ad22f311cf1e7091b90339531c0 + e137cd0eacda5df6204150b3bb51a971 hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-1.10.08-darwin-182341402.tar.bz2 + file:///opt/firestorm/fmodstudio-1.10.09-darwin-183011234.tar.bz2 name darwin From 22c7655573f33389108cd9a49ce0395a3cbecf31 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 7 Nov 2018 23:51:06 +0000 Subject: [PATCH 10/15] FIRE-21669 & FIRE-11276: Fix for cross volume rename failures on Linux/Mac --- indra/llcommon/llfile.cpp | 33 ++++++++++++++++ indra/llmessage/llxfer_file.cpp | 68 +++++++++++++++++---------------- 2 files changed, 69 insertions(+), 32 deletions(-) diff --git a/indra/llcommon/llfile.cpp b/indra/llcommon/llfile.cpp index b539a69ad6..ce0d87ae05 100644 --- a/indra/llcommon/llfile.cpp +++ b/indra/llcommon/llfile.cpp @@ -268,6 +268,39 @@ int LLFile::rename(const std::string& filename, const std::string& newname, int int rc = _wrename(utf16filename.c_str(),utf16newname.c_str()); #else int rc = ::rename(filename.c_str(),newname.c_str()); + // FIRE-21669 & FIRE-11276 cross volume link rename workaround. + // Note: This workaround generalises the solution previously applied in llxfer_file. + // In doing this we add more failure modes to the operation, the copy can fail, the unlink can fail, in fact the copy can fail for multiple reasons. + // "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools." - Douglas Adams, Mostly harmless + if (rc) + { + S32 error_number = errno; + LL_INFOS("LLFile") << "Rename failure (" << error_number << ") - " << filename << " to " << newname << LL_ENDL; + if (EXDEV == error_number) + { + if (copy(filename, newname) == 0) + { + LL_INFOS("LLFile") << "Rename across mounts not supported; copying+unlinking the file instead." << LL_ENDL; + rc = LLFile::remove(filename); + if (rc) + { + LL_WARNS("LLFile") << "unlink failed during copy/unlink workaround. Please check for stray file: " << filename << LL_ENDL; + } + } + else + { + LL_WARNS("LLFile") << "Copy failure during rename workaround for rename " << filename << " to " << newname << " (check both filenames and maunally rectify)" << LL_ENDL; + } + rc=0; // We need to reset rc here to avoid the higher level function taking corrective action on what could be bad files. + } + else + { + LL_WARNS("LLFile") << "Rename fatally failed, no workaround attempted for errno=" + << errno << "." << LL_ENDL; + // rc will propogate alllowing corrective action above. Not entirely happy with this but it is what already happens so we're not making it worse. + } + } + // #endif return warnif(STRINGIZE("rename to '" << newname << "' from"), filename, rc, supress_error); } diff --git a/indra/llmessage/llxfer_file.cpp b/indra/llmessage/llxfer_file.cpp index 7fd4222fb7..2483be99c3 100644 --- a/indra/llmessage/llxfer_file.cpp +++ b/indra/llmessage/llxfer_file.cpp @@ -362,40 +362,44 @@ S32 LLXfer_File::processEOF() { if (LLFile::rename(mTempFilename,mLocalFilename)) { -#if !LL_WINDOWS - S32 error_number = errno; - LL_INFOS("Xfer") << "Rename failure (" << error_number << ") - " - << mTempFilename << " to " << mLocalFilename << LL_ENDL; - if(EXDEV == error_number) - { - if(copy_file(mTempFilename, mLocalFilename) == 0) - { - LL_INFOS("Xfer") << "Rename across mounts; copying+unlinking the file instead." << LL_ENDL; - unlink(mTempFilename.c_str()); - } - else - { - LL_WARNS("Xfer") << "Copy failure - " << mTempFilename << " to " - << mLocalFilename << LL_ENDL; - } - } - else - { - //LLFILE* fp = LLFile::fopen(mTempFilename, "r"); - //LL_WARNS() << "File " << mTempFilename << " does " - // << (!fp ? "not" : "" ) << " exit." << LL_ENDL; - //if(fp) fclose(fp); - //fp = LLFile::fopen(mLocalFilename, "r"); - //LL_WARNS() << "File " << mLocalFilename << " does " - // << (!fp ? "not" : "" ) << " exit." << LL_ENDL; - //if(fp) fclose(fp); - LL_WARNS("Xfer") << "Rename fatally failed, can only handle EXDEV (" - << EXDEV << ")" << LL_ENDL; - } -#else +// FIRE-21669/FIRE-11276 : move similar fucntionality down into LLFile +//#if !LL_WINDOWS +// S32 error_number = errno; +// LL_INFOS("Xfer") << "Rename failure (" << error_number << ") - " +// << mTempFilename << " to " << mLocalFilename << LL_ENDL; +// if(EXDEV == error_number) +// { +// if(copy_file(mTempFilename, mLocalFilename) == 0) +// { +// LL_INFOS("Xfer") << "Rename across mounts; copying+unlinking the file instead." << LL_ENDL; +// unlink(mTempFilename.c_str()); +// } +// else +// { +// LL_WARNS("Xfer") << "Copy failure - " << mTempFilename << " to " +// << mLocalFilename << LL_ENDL; +// } +// } +// else +// { +// //LLFILE* fp = LLFile::fopen(mTempFilename, "r"); +// //LL_WARNS() << "File " << mTempFilename << " does " +// // << (!fp ? "not" : "" ) << " exit." << LL_ENDL; +// //if(fp) fclose(fp); +// //fp = LLFile::fopen(mLocalFilename, "r"); +// //LL_WARNS() << "File " << mLocalFilename << " does " +// // << (!fp ? "not" : "" ) << " exit." << LL_ENDL; +// //if(fp) fclose(fp); +// LL_WARNS("Xfer") << "Rename fatally failed, can only handle EXDEV (" +// << EXDEV << ")" << LL_ENDL; +// } +//#else +// LL_WARNS("Xfer") << "Rename failure - " << mTempFilename << " to " +// << mLocalFilename << LL_ENDL; +//#endif +// LL_WARNS("Xfer") << "Rename failure - " << mTempFilename << " to " << mLocalFilename << LL_ENDL; -#endif } } From 1618e7a9ddcf75ced5bdeae6487737e72d74704c Mon Sep 17 00:00:00 2001 From: Beq Date: Thu, 8 Nov 2018 10:26:41 +0000 Subject: [PATCH 11/15] grrr Fix up for the return type of LL internal file copy returning bool --- indra/llcommon/llfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llcommon/llfile.cpp b/indra/llcommon/llfile.cpp index ce0d87ae05..1fb3f2f381 100644 --- a/indra/llcommon/llfile.cpp +++ b/indra/llcommon/llfile.cpp @@ -278,7 +278,7 @@ int LLFile::rename(const std::string& filename, const std::string& newname, int LL_INFOS("LLFile") << "Rename failure (" << error_number << ") - " << filename << " to " << newname << LL_ENDL; if (EXDEV == error_number) { - if (copy(filename, newname) == 0) + if (copy(filename, newname)==true) // sigh in their wisdom LL decided that copy returns bool true not 0 whjen no error. using == true to make that clear. { LL_INFOS("LLFile") << "Rename across mounts not supported; copying+unlinking the file instead." << LL_ENDL; rc = LLFile::remove(filename); From d3f29c3a66ce75c7588fe6368fcad0fe5bc4e8b5 Mon Sep 17 00:00:00 2001 From: Beq Date: Thu, 8 Nov 2018 10:44:44 +0000 Subject: [PATCH 12/15] FIRE-21172 - Sort AO set by name --- indra/newview/ao.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/indra/newview/ao.cpp b/indra/newview/ao.cpp index bf6c4eed0c..8afe9f2248 100644 --- a/indra/newview/ao.cpp +++ b/indra/newview/ao.cpp @@ -137,7 +137,15 @@ void FloaterAO::updateList() currentSetName = AOEngine::instance().getCurrentSetName(); } + // Lambda provides simple Alpha sorting, note this is case sensitive. + auto sortRuleLambda = [](const AOSet* s1, const AOSet* s2) -> bool + { + return s1->getName() < s2->getName(); + }; + mSetList=AOEngine::instance().getSetList(); + std::sort(mSetList.begin(), mSetList.end(), sortRuleLambda); + mSetSelector->removeall(); mSetSelectorSmall->removeall(); mSetSelector->clear(); From 0b2c79704b023d78668a33bcc8ec11cea5007b21 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sun, 11 Nov 2018 09:34:51 +0100 Subject: [PATCH 13/15] Linux: Update open_libndofdev to version 0.9; Patch by mygoditsfullofstars --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index d75562e8e6..5d2667e3dc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2898,9 +2898,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - e45ddfd82b5d18408f849c53800e468a + 246ed298944fd5200e4cac3703d6e075 url - http://downloads.phoenixviewer.com/open_libndofdev-0.8.182090947-linux-182090947.tar.bz2 + http://downloads.phoenixviewer.com/open_libndofdev-0.9.183150124-linux-183150124.tar.bz2 name linux @@ -2910,9 +2910,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - fc7ad14e06b4ac70a1d3849ef81ac844 + db8a7126178e7230fd6917a28cd67bd7 url - http://downloads.phoenixviewer.com/open_libndofdev-0.8.182090946-linux64-182090946.tar.bz2 + http://downloads.phoenixviewer.com/open_libndofdev-0.9.183150121-linux64-183150121.tar.bz2 name linux64 From 43aa47fd93556bd16b923f61179916bf5fb9b260 Mon Sep 17 00:00:00 2001 From: maxim_productengine Date: Tue, 6 Nov 2018 17:14:36 +0200 Subject: [PATCH 14/15] SL-10013 Crash in LLFolderViewModelItemInventory::filterChildItem(..) --- indra/newview/llfolderviewmodelinventory.cpp | 30 +++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp index b93dfaf061..d40a7234e2 100644 --- a/indra/newview/llfolderviewmodelinventory.cpp +++ b/indra/newview/llfolderviewmodelinventory.cpp @@ -181,24 +181,26 @@ bool LLFolderViewModelItemInventory::filterChildItem( LLFolderViewModelItem* ite S32 filter_generation = filter.getCurrentGeneration(); bool continue_filtering = true; - if (item->getLastFilterGeneration() < filter_generation) + if (item) { - // Recursive application of the filter for child items (CHUI-849) - continue_filtering = item->filter( filter ); - } - - // Update latest generation to pass filter in parent and propagate up to root - if (item->passedFilter()) - { - LLFolderViewModelItemInventory* view_model = this; - - while(view_model && view_model->mMostFilteredDescendantGeneration < filter_generation) + if (item->getLastFilterGeneration() < filter_generation) { - view_model->mMostFilteredDescendantGeneration = filter_generation; - view_model = static_cast(view_model->mParent); + // Recursive application of the filter for child items (CHUI-849) + continue_filtering = item->filter(filter); + } + + // Update latest generation to pass filter in parent and propagate up to root + if (item->passedFilter()) + { + LLFolderViewModelItemInventory* view_model = this; + + while (view_model && view_model->mMostFilteredDescendantGeneration < filter_generation) + { + view_model->mMostFilteredDescendantGeneration = filter_generation; + view_model = static_cast(view_model->mParent); + } } } - return continue_filtering; } From b494dbc7edc3a8ef1d6e527260509e951574820a Mon Sep 17 00:00:00 2001 From: maxim_productengine Date: Fri, 9 Nov 2018 16:44:06 +0200 Subject: [PATCH 15/15] SL-10018 FIXED Viewer crashes when clicking on a link of a folder in Inventory --- indra/newview/llinventorypanel.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 99537f4dd5..760ba93112 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -1252,6 +1252,11 @@ void LLInventoryPanel::onSelectionChange(const std::deque& it LLFolderViewModelItemInventory* fve_listener = static_cast(folder_item->getViewModelItem()); if (fve_listener && (fve_listener->getInventoryType() == LLInventoryType::IT_CATEGORY)) { + if (fve_listener->getInventoryObject() && fve_listener->getInventoryObject()->getIsLinkType()) + { + return; + } + if(prev_folder_item) { LLFolderBridge* prev_bridge = dynamic_cast(prev_folder_item->getViewModelItem());