From cfad6467481faef9bf82c573acaaca5b79dd6eb2 Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Sun, 6 Oct 2013 11:54:11 +0200 Subject: [PATCH 01/46] Removed left over debug output. --- indra/cmake/FindGoogleBreakpad.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/indra/cmake/FindGoogleBreakpad.cmake b/indra/cmake/FindGoogleBreakpad.cmake index d4b2eb1b3..18e0b56ed 100644 --- a/indra/cmake/FindGoogleBreakpad.cmake +++ b/indra/cmake/FindGoogleBreakpad.cmake @@ -11,8 +11,6 @@ FIND_PATH(BREAKPAD_INCLUDE_DIRECTORIES common/using_std_string.h PATH_SUFFIXES google_breakpad) -MESSAGE("BREAKPAD_INCLUDE_DIRECTORIES = \"${BREAKPAD_INCLUDE_DIRECTORIES}\".") - SET(BREAKPAD_EXCEPTION_HANDLER_NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES} breakpad_client) FIND_LIBRARY(BREAKPAD_EXCEPTION_HANDLER_LIBRARY NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES} From f7614dced302a8c6020c49e12bf60f7d8ee0d3ee Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Sun, 6 Oct 2013 15:27:40 +0200 Subject: [PATCH 02/46] Fix possible problem with negative mQueuedCommands mQueuedCommands was unsigned, but can become shortly negative. Unfortunately this means I had to remove the assert that keeps track of possible errors, but I believe that already has been proven that it works anyway. The reason it can become negative is because its meaning is "Number of added ADD (request) commands minus number of REMOVE (request) commands". Hence, it is incremented when an ADD command is added to the queue and decremented when that ADD command is removed from the queue. However, it is first decremented when a REMOVE command is added to the queue and then incremented again when that REMOVE command is removed again from the queue. Such a remove command is current extremely rare: it only happens when curl fails to time out - and the backup timeout of the statemachine fires after 10 minutes of a curl request being idle. That should normally only happen if a request never reached curl of course, and is queued in the curl thread, waiting to be added to curl, aka: -0-0-1,{...} for 10 minutes... Now that, in turn should be impossible (since the "don't count long poll connections) unless the Curl* Debug Setting variables are changed to wrong values.. but ok, can only guess here. --- indra/llmessage/aicurlperservice.h | 5 +++-- indra/llmessage/aicurlthread.cpp | 2 +- indra/newview/aihttpview.cpp | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/indra/llmessage/aicurlperservice.h b/indra/llmessage/aicurlperservice.h index 8af4cdab6..9ecec8c72 100644 --- a/indra/llmessage/aicurlperservice.h +++ b/indra/llmessage/aicurlperservice.h @@ -145,7 +145,8 @@ class AIPerService { queued_request_type mQueuedRequests; // Waiting (throttled) requests. U16 mApprovedRequests; // The number of approved requests for this CT by approveHTTPRequestFor that were not added to the command queue yet. - U16 mQueuedCommands; // Number of add commands (minus remove commands), for this service, in the command queue. + S16 mQueuedCommands; // Number of add commands (minus remove commands), for this service, in the command queue. + // This value can temporarily become negative when remove commands are added to the queue for add requests that were already processed. U16 mAdded; // Number of active easy handles with this service. U16 mFlags; // ctf_empty: Set to true when the queue becomes precisely empty. // ctf_full : Set to true when the queue is popped and then still isn't empty; @@ -268,7 +269,7 @@ class AIPerService { public: void added_to_command_queue(AICapabilityType capability_type) { ++mCapabilityType[capability_type].mQueuedCommands; mark_inuse(capability_type); } - void removed_from_command_queue(AICapabilityType capability_type) { llassert(mCapabilityType[capability_type].mQueuedCommands > 0); --mCapabilityType[capability_type].mQueuedCommands; } + void removed_from_command_queue(AICapabilityType capability_type) { --mCapabilityType[capability_type].mQueuedCommands; } void added_to_multi_handle(AICapabilityType capability_type, bool event_poll); // Called when an easy handle for this service has been added to the multi handle. void removed_from_multi_handle(AICapabilityType capability_type, bool event_poll, bool downloaded_something, bool success); // Called when an easy handle for this service is removed again from the multi handle. diff --git a/indra/llmessage/aicurlthread.cpp b/indra/llmessage/aicurlthread.cpp index 83e258fd9..0375f8bc3 100644 --- a/indra/llmessage/aicurlthread.cpp +++ b/indra/llmessage/aicurlthread.cpp @@ -1312,7 +1312,7 @@ void AICurlThread::process_commands(AICurlMultiHandle_wat const& multi_handle_w) *command_being_processed_w = command_queue_w->commands.front(); command = command_being_processed_w->command(); } - // Update the size: the number netto number of pending requests in the command queue. + // Update the size: the netto number of pending requests in the command queue. command_queue_w->commands.pop_front(); if (command == cmd_add) { diff --git a/indra/newview/aihttpview.cpp b/indra/newview/aihttpview.cpp index 11e5af66b..3bc6b18f7 100644 --- a/indra/newview/aihttpview.cpp +++ b/indra/newview/aihttpview.cpp @@ -109,14 +109,14 @@ void AIServiceBar::draw() { if (col < 2) { - text = llformat(" | %hu-%hu-%lu,{%hu/%hu,%u}/%u", + text = llformat(" | %hu-%hd-%lu,{%hu/%hu,%u}/%u", ct.mApprovedRequests, ct.mQueuedCommands, ct.mQueuedRequests.size(), ct.mAdded, ct.mConcurrentConnections, ct.mDownloading, ct.mMaxPipelinedRequests); } else { - text = llformat(" | --%hu-%lu,{%hu/%hu,%u}", + text = llformat(" | --%hd-%lu,{%hu/%hu,%u}", ct.mQueuedCommands, ct.mQueuedRequests.size(), ct.mAdded, ct.mConcurrentConnections, ct.mDownloading); } From a1c43e353900e4983aeca6f9eebfe0ca0df82d0e Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Sun, 6 Oct 2013 16:34:56 +0200 Subject: [PATCH 03/46] Fixed mac build. How the heck did this get there? --- indra/cmake/Boost.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 0cdae51bf..3ad2fceb7 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -60,7 +60,7 @@ else (STANDALONE) debug boost_thread-mt-d.a) elseif (DARWIN) set(Boost_CONTEXT_LIBRARY - optimized boost_context-mtOA + optimized boost_context-mt debug boost_context-mt-d) set(Boost_FILESYSTEM_LIBRARY optimized boost_filesystem-mt From 64513e7229769b07f65070492ab7581da6ed6def Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Sun, 6 Oct 2013 19:42:58 +0200 Subject: [PATCH 04/46] Fix boost upgrade for standalone --- indra/cmake/Boost.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 3ad2fceb7..e8d97a574 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -8,7 +8,7 @@ if (STANDALONE) include(FindBoost) set(Boost_USE_MULTITHREADED ON) - find_package(Boost 1.40.0 COMPONENTS date_time filesystem program_options regex system thread wave) + find_package(Boost 1.51.0 COMPONENTS date_time filesystem program_options regex system thread wave context) else (STANDALONE) use_prebuilt_binary(boost) set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) From cf100fc36c30dccabc17b7a06a25f190e94ace89 Mon Sep 17 00:00:00 2001 From: Sean Devin Date: Sat, 5 Oct 2013 08:27:30 +1000 Subject: [PATCH 05/46] Do not use pcre on linux64 Conflicts: indra/newview/viewer_manifest.py Merged with a patch that I wrote. The linux pcre prebuilts can also be removed from install.xml, but for now leaving them there because the prebuilts are still in use by the libcollada prebuilt (probably should just move them into that git repository). --- indra/cmake/Colladadom.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/cmake/Colladadom.cmake b/indra/cmake/Colladadom.cmake index 9041803d5..a113ee2cf 100644 --- a/indra/cmake/Colladadom.cmake +++ b/indra/cmake/Colladadom.cmake @@ -10,9 +10,9 @@ if (STANDALONE) else (STANDALONE) use_prebuilt_binary(colladadom) - if (NOT WINDOWS) + if (NOT WINDOWS AND NOT LINUX) use_prebuilt_binary(pcre) - endif (NOT WINDOWS) + endif (NOT WINDOWS AND NOT LINUX) if (NOT DARWIN AND NOT WINDOWS) use_prebuilt_binary(libxml) From 99f81daa99ebe443dd59aa6fba8c8c771a07be9f Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Mon, 7 Oct 2013 05:43:56 -0400 Subject: [PATCH 06/46] Feature Request: Add a debug setting, LiruLegacyLogLaunch, to use the old, non-browser method to open chat logs. --- indra/newview/app_settings/settings.xml | 11 +++++++++++ indra/newview/llimpanel.cpp | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 33aadba64..dbd5b2d59 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -731,6 +731,17 @@ Value 1 + LiruLegacyLogLaunch + + Comment + When opening a chat log, open in an external text editor instead of a browser floater(Windows Only). + Persist + 1 + Type + Boolean + Value + 0 + LiruLegacyOutfitStoreObjChanges Comment diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index a394f8fd7..96febbb73 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -1089,6 +1089,11 @@ void LLFloaterIMPanel::onFlyoutCommit(LLComboBox* flyout, const LLSD& value) void show_log_browser(const std::string& name, const std::string& id) { + if (gSavedSettings.getBOOL("LiruLegacyLogLaunch")) + { + gViewerWindow->getWindow()->ShellEx("\"" + LLLogChat::makeLogFileName(name) + "\""); + return; + } LLFloaterWebContent::Params p; p.url("file:///" + LLLogChat::makeLogFileName(name)); p.id(id); From 7aed929af5d6a0c1bfacc5aab5ac6c236f1b94b8 Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Mon, 7 Oct 2013 15:11:54 +0200 Subject: [PATCH 07/46] Attempted fix in Linux build and Linux32 packaging --- indra/cmake/Colladadom.cmake | 2 -- indra/newview/viewer_manifest.py | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/indra/cmake/Colladadom.cmake b/indra/cmake/Colladadom.cmake index a113ee2cf..e503d99e7 100644 --- a/indra/cmake/Colladadom.cmake +++ b/indra/cmake/Colladadom.cmake @@ -34,8 +34,6 @@ else (STANDALONE) collada14dom minizip xml2 - pcrecpp - pcre ) endif (WINDOWS) endif (STANDALONE) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 551d13269..b3d3bb508 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -807,14 +807,14 @@ class Linux_i686Manifest(LinuxManifest): self.path("libSDL-1.2.so*") self.path("libapr-1.so*") self.path("libaprutil-1.so*") - self.path("libcollada14dom.so") + self.path("libcollada14dom.so.2.2", "libcollada14dom.so") self.path("libcrypto.so*") self.path("libdb*.so") self.path("libdirect-1.*.so*") self.path("libdirectfb-1.*.so*") self.path("libfusion-1.*.so*") self.path("libglod.so") - self.path("libminizip.so") + self.path("libminizip.so.1.2.3", "libminizip.so"); self.path("libexpat.so*") self.path("libhunspell-*.so.*") self.path("libssl.so*") From c7ff14f224078363b86ef725a6eadc0dc6cabf3e Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Mon, 7 Oct 2013 17:06:14 +0200 Subject: [PATCH 08/46] Address issue #1128 --- install.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.xml b/install.xml index 6a613daf4..ad06f4df5 100644 --- a/install.xml +++ b/install.xml @@ -228,16 +228,16 @@ linux md5sum - 2c7cc60e4377c07ad100a194fcb5a522 + 8817faad001cea8f92546f30b5fcbbfa url - https://bitbucket.org/SingularityViewer/libraries/downloads/colladadom-2.2-linux-20131005.tar.bz2 + https://bitbucket.org/SingularityViewer/libraries/downloads/colladadom-2.2-linux-20131007.tar.bz2 linux64 md5sum - e4d0d1ad3b9677e474cf4160626e2e19 + 1d23d74f2f475945ec4d24f70a27561d url - https://bitbucket.org/SingularityViewer/libraries/downloads/colladadom-2.2-linux64-20131006.tar.bz2 + https://bitbucket.org/SingularityViewer/libraries/downloads/colladadom-2.2-linux64-20131007.tar.bz2 windows From e3ce47363990e94e7a895ac2a62a4d63ede020b7 Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Tue, 8 Oct 2013 02:06:28 +0200 Subject: [PATCH 09/46] Compiler warning fix. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit My guess is that this fixes the warning: /singularity/singularity-master/indra/newview/llfloaterdirectory.cpp: In function ‘void* createWebPanel(void*)’: /singularity/singularity-master/indra/newview/llfloaterdirectory.cpp:167: warning: ‘createWebPanel(void*)::LLPanelDirWeb’ declared with greater visibility than the type of its field ‘createWebPanel(void*)::LLPanelDirWeb::’ /singularity/singularity-master/indra/newview/llfloaterdirectory.cpp:167: warning: ‘createWebPanel(void*)::LLPanelDirWeb’ declared with greater visibility than its base ‘LLPanelDirFind’ That I see in https://files.streamgrid.net/singularity/linux-i686.log --- indra/newview/llfloaterdirectory.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloaterdirectory.cpp b/indra/newview/llfloaterdirectory.cpp index 92daa4e2b..64f721dd3 100644 --- a/indra/newview/llfloaterdirectory.cpp +++ b/indra/newview/llfloaterdirectory.cpp @@ -161,7 +161,9 @@ private: std::string mMarketplaceURL; }; -static void* createWebPanel(void* data) +namespace { + +void* createWebPanel(void* data) { struct LLPanelDirWeb : public LLPanelDirFind { @@ -175,6 +177,8 @@ static void* createWebPanel(void* data) return new LLPanelDirWeb(static_cast(data)); } +} // namespace + LLFloaterDirectory* LLFloaterDirectory::sInstance = NULL; //static S32 LLFloaterDirectory::sOldSearchCount = 0; // debug From be10c2d7fb7f245a1b8741a2908b7a59a35b124e Mon Sep 17 00:00:00 2001 From: Adeon Writer Date: Mon, 7 Oct 2013 22:28:26 -0400 Subject: [PATCH 10/46] Focus depth of field under cursor in flycam --- indra/newview/llviewerwindow.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 3e4d71f6d..302c18ae2 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4107,6 +4107,11 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de found = gPipeline.lineSegmentIntersectInWorld(mouse_world_start, mouse_world_end, pick_transparent, face_hit, intersection, uv, normal, binormal); + if (found && !pick_transparent) + { + gDebugRaycastIntersection = *intersection; + } + // [RLVa:KB] - Checked: 2010-01-02 (RLVa-1.1.0l) | Added: RLVa-1.1.0l #ifdef RLV_EXTENSION_CMD_INTERACT if ( (rlv_handler_t::isEnabled()) && (found) && (gRlvHandler.hasBehaviour(RLV_BHVR_INTERACT)) ) From 909be9e169ffeb999721acd24cc41f9648f68ecf Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Fri, 4 Oct 2013 22:24:01 +0200 Subject: [PATCH 11/46] Add AITESTPLUGIN Usage: nc -l -p 61916 AITESTPLUGIN=1 LL_WRAPPER='gdb --args' ./singularity Then paste into nc: class internal name load_plugin params dir /opt/secondlife/viewers/singularity/SingularityViewer/linden/indra/viewer-linux-x86_64-debug/newview/packaged/bin/llplugin file /opt/secondlife/viewers/singularity/SingularityViewer/linden/indra/viewer-linux-x86_64-debug/newview/packaged/bin/llplugin/libbasic_plugin_filepicker.so and press control-v control-shift-2 Where the path should match the library you want to load. --- indra/llplugin/slplugin/slplugin.cpp | 30 ++++++++++++++++++---------- indra/newview/linux_tools/wrapper.sh | 8 +++++++- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/indra/llplugin/slplugin/slplugin.cpp b/indra/llplugin/slplugin/slplugin.cpp index 7b894c457..e220ec6f8 100644 --- a/indra/llplugin/slplugin/slplugin.cpp +++ b/indra/llplugin/slplugin/slplugin.cpp @@ -174,6 +174,8 @@ bool checkExceptionHandler() } #endif +bool self_test = false; + // If this application on Windows platform is a console application, a console is always // created which is bad. Making it a Windows "application" via CMake settings but not // adding any code to explicitly create windows does the right thing. @@ -220,22 +222,30 @@ int main(int argc, char **argv) LL_ERRS("slplugin") << "usage: " << argv[0] << " launcher_port" << LL_ENDL; } - U32 port = 0; - if(!LLStringUtil::convertToU32(argv[1], port)) + U32 port = 61916; // Test port. + if (strcmp(argv[1], "TESTPLUGIN") == 0) + { + std::cout << "Running self test..." << std::endl; + self_test = true; + } + else if (!LLStringUtil::convertToU32(argv[1], port)) { LL_ERRS("slplugin") << "port number must be numeric" << LL_ENDL; } - // Catch signals that most kinds of crashes will generate, and exit cleanly so the system crash dialog isn't shown. - signal(SIGILL, &crash_handler); // illegal instruction + if (!self_test) + { + // Catch signals that most kinds of crashes will generate, and exit cleanly so the system crash dialog isn't shown. + signal(SIGILL, &crash_handler); // illegal instruction # if LL_DARWIN - signal(SIGEMT, &crash_handler); // emulate instruction executed + signal(SIGEMT, &crash_handler); // emulate instruction executed # endif // LL_DARWIN - signal(SIGFPE, &crash_handler); // floating-point exception - signal(SIGBUS, &crash_handler); // bus error - signal(SIGSEGV, &crash_handler); // segmentation violation - signal(SIGSYS, &crash_handler); // non-existent system call invoked + signal(SIGFPE, &crash_handler); // floating-point exception + signal(SIGBUS, &crash_handler); // bus error + signal(SIGSEGV, &crash_handler); // segmentation violation + signal(SIGSYS, &crash_handler); // non-existent system call invoked #endif + } #if LL_DARWIN setupCocoa(); @@ -247,7 +257,7 @@ int main(int argc, char **argv) plugin->init(port); #if LL_DARWIN - deleteAutoReleasePool(); + deleteAutoReleasePool(); #endif LLTimer timer; diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh index d6a266240..6bd4acf33 100755 --- a/indra/newview/linux_tools/wrapper.sh +++ b/indra/newview/linux_tools/wrapper.sh @@ -148,7 +148,13 @@ else SL_ENV+='LD_LIBRARY_PATH="`pwd`/lib:$LD_LIBRARY_PATH"' fi export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY' -export SL_OPT="`cat gridargs.dat` $@" + +if [ -n "$AITESTPLUGIN" ]; then + SL_CMD="$LL_WRAPPER bin/SLPlugin" + SL_OPT="TESTPLUGIN" +else + SL_OPT="`cat gridargs.dat` $@" +fi # Run the program. eval ${SL_ENV} ${SL_CMD} ${SL_OPT} || LL_RUN_ERR=runerr From 24463b7d04b33511cb0d0e63d76c070c6ac004e7 Mon Sep 17 00:00:00 2001 From: Damian Zhaoying Date: Tue, 8 Oct 2013 17:49:52 -0300 Subject: [PATCH 12/46] update panel_login.xml and menu_minimap.xml files and fix labels in master language file menu-minimap.xml to make translations works --- .../skins/default/xui/en-us/menu_mini_map.xml | 4 +- .../skins/default/xui/es/menu_mini_map.xml | 73 ++++++------------- .../skins/default/xui/es/panel_login.xml | 2 +- 3 files changed, 26 insertions(+), 53 deletions(-) diff --git a/indra/newview/skins/default/xui/en-us/menu_mini_map.xml b/indra/newview/skins/default/xui/en-us/menu_mini_map.xml index 373d6fc1b..86ba23de2 100644 --- a/indra/newview/skins/default/xui/en-us/menu_mini_map.xml +++ b/indra/newview/skins/default/xui/en-us/menu_mini_map.xml @@ -30,7 +30,7 @@ + mouse_opaque="false" name="Chat Distance Rings" label="Chat Distance Rings" opaque="true" tear_off="false" width="125"> @@ -66,7 +66,7 @@ + mouse_opaque="false" name="Mark" label="Mark" opaque="true" tear_off="false" width="125"> diff --git a/indra/newview/skins/default/xui/es/menu_mini_map.xml b/indra/newview/skins/default/xui/es/menu_mini_map.xml index b06364201..6af3ec686 100644 --- a/indra/newview/skins/default/xui/es/menu_mini_map.xml +++ b/indra/newview/skins/default/xui/es/menu_mini_map.xml @@ -1,56 +1,29 @@ - - - - - - - - - + + + - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - + diff --git a/indra/newview/skins/default/xui/es/panel_login.xml b/indra/newview/skins/default/xui/es/panel_login.xml index f81bab2b6..e461f6e57 100644 --- a/indra/newview/skins/default/xui/es/panel_login.xml +++ b/indra/newview/skins/default/xui/es/panel_login.xml @@ -26,7 +26,7 @@ Grid: - +