From 3edc1406a0e4c2e58d0e5f288ee557405c6a7407 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Oct 2021 07:37:58 -0400 Subject: [PATCH 1/8] OSX; Fixup manifest script after latest merge. --- indra/newview/viewer_manifest.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 4b1a3814a3..01974c4aba 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1448,6 +1448,8 @@ class DarwinManifest(ViewerManifest): # in our bundled sub-apps. For each of these we'll create a # symlink from sub-app/Contents/Resources to the real .dylib. # Need to get the llcommon dll from any of the build directories as well. + libfile_parent = self.get_dst_prefix() + libfile = "libllcommon.dylib" dylibs = [] for libfile in ( "libapr-1.0.dylib", From 2935c125fef71547a3522a647e8f15aabb5f4461 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Oct 2021 14:17:39 +0200 Subject: [PATCH 2/8] Linux; Update openssl. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 944bf6f96f..20345e7787 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -656,9 +656,9 @@ archive hash - 51d9ce98279709854b0be5d0f450ba63 + 96dd770f246917589b776300a2d07f9e url - http://3p.firestormviewer.org/curl-7.54.1.180841943-linux64-180841943.tar.bz2 + http://3p.firestormviewer.org/curl-7.54.1.212891029-linux64-212891029.tar.bz2 name linux64 @@ -2968,9 +2968,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - 7920fce93d9addf63a420d86f91c5749 + ea82e634334bccf088daf3d15eab07b7 url - http://3p.firestormviewer.org/openssl-1.0.2l.180841936-linux64-180841936.tar.bz2 + http://3p.firestormviewer.org/openssl-1.1.1l.212872015-linux64-212872015.tar.bz2 name linux64 From 0463537d0302a48a0ed5b039088a53e2d13840fa Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Oct 2021 14:18:01 +0200 Subject: [PATCH 3/8] Replace one leftover deprecated openssl call with the supported function. --- indra/newview/llsechandler_basic.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp index f43f23a516..5d79b53a55 100644 --- a/indra/newview/llsechandler_basic.cpp +++ b/indra/newview/llsechandler_basic.cpp @@ -355,7 +355,7 @@ LLSD cert_name_from_X509_NAME(X509_NAME* name) char buffer[32]; X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, entry_index); - std::string name_value = std::string((const char*)ASN1_STRING_data(X509_NAME_ENTRY_get_data(entry)), + std::string name_value = std::string((const char*)ASN1_STRING_get0_data(X509_NAME_ENTRY_get_data(entry)), ASN1_STRING_length(X509_NAME_ENTRY_get_data(entry))); ASN1_OBJECT* name_obj = X509_NAME_ENTRY_get_object(entry); From 673725415afc240bebbdd3ca78016ed33860c8f4 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Oct 2021 14:36:26 +0200 Subject: [PATCH 4/8] Linux; Remove crash logger. --- indra/newview/CMakeLists.txt | 2 +- indra/newview/viewer_manifest.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1581f45731..717176c35c 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2562,7 +2562,7 @@ if (NOT ENABLE_MEDIA_PLUGINS) else (NOT ENABLE_MEDIA_PLUGINS) set(COPY_INPUT_DEPENDENCIES ${VIEWER_BINARY_NAME} - linux-crash-logger + #linux-crash-logger SLPlugin media_plugin_cef #media_plugin_gstreamer010 diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 01974c4aba..1a224a571a 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1831,7 +1831,7 @@ class LinuxManifest(ViewerManifest): with self.prefix(dst="bin"): self.path("firestorm-bin","do-not-directly-run-firestorm-bin") - self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin") + #self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin") self.path2basename("../llplugin/slplugin", "SLPlugin") #this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323 # Remove VMP From cf74d0fa2358b979fdeec7d6b95bfcad0e03b671 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Oct 2021 14:38:45 +0200 Subject: [PATCH 5/8] Fail early in case someone wants to compile with GCC >= 10. --- indra/cmake/00-Common.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 8e62e95bac..fc4c493152 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -165,6 +165,11 @@ endif (WINDOWS) if (LINUX) set(CMAKE_SKIP_RPATH TRUE) + + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0.0 ) + message( FATAL_ERROR "GCC greater 9.4.0 is not supported. Recompile boost for support of GCC 10.0.0 and up." ) + endif() + # # And another hack for FORTIFY_SOURCE. Some distributions (for example Gentoo) define FORTIFY_SOURCE by default. # Check if this is the case, if yes, do not define it again. From a336802ba3acca4f380a945752e7b6f69cd43f11 Mon Sep 17 00:00:00 2001 From: Nicky Date: Sat, 16 Oct 2021 18:49:05 +0200 Subject: [PATCH 6/8] FIRE-31221 workaround for newer glibc versions, patch from Lance Corrimal. --- indra/llcommon/llpreprocessor.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h index 26197cb692..95c9543751 100644 --- a/indra/llcommon/llpreprocessor.h +++ b/indra/llcommon/llpreprocessor.h @@ -40,6 +40,12 @@ #define LL_BIG_ENDIAN 1 #endif +// FIRE-31221 workaround for newer glibc versions, patch from Lance Corrimal +// Figure out GLIBC version - 2.34 needs an additional include as a build fix +#if (__GLIBC__*1000 + __GLIBC_MINOR__) >= 2034 +#include +#endif +// // Per-compiler switches From a8df27ccdd89e0469b1ad7e8b950a96cd399796b Mon Sep 17 00:00:00 2001 From: Nicky Dasmijn Date: Sat, 16 Oct 2021 21:44:17 +0200 Subject: [PATCH 7/8] FIRE-31248; Fixup older GCC vesions. --- indra/cmake/OpenSSL.cmake | 2 +- indra/llcrashlogger/llcrashlogger.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 32400f5e4e..f43ba7c26e 100644 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -17,7 +17,7 @@ else (USESYSTEMLIBS) endif (USESYSTEMLIBS) if (LINUX) - set(CRYPTO_LIBRARIES crypto dl) + set(CRYPTO_LIBRARIES crypto dl pthread) elseif (DARWIN) set(CRYPTO_LIBRARIES crypto) endif (LINUX) diff --git a/indra/llcrashlogger/llcrashlogger.cpp b/indra/llcrashlogger/llcrashlogger.cpp index 9d3ad8b3b9..b7c6cae08a 100644 --- a/indra/llcrashlogger/llcrashlogger.cpp +++ b/indra/llcrashlogger/llcrashlogger.cpp @@ -785,7 +785,7 @@ void LLCrashLogger::init_curl() } CRYPTO_set_locking_callback(ssl_locking_callback); - CRYPTO_THREADID_set_callback(ssl_thread_id_callback); + (void)CRYPTO_THREADID_set_callback(ssl_thread_id_callback); } } From d49684d093e71b936757d5b1918b552e49d79fe0 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Tue, 19 Oct 2021 20:42:01 +0300 Subject: [PATCH 8/8] SL-14977 Fix passing wrong codes to ToUnicodeEx --- indra/newview/llviewerwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index dab506d650..def0cbdb89 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -3332,7 +3332,8 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) // ToUnicodeEx changes buffer state on OS below Win10, which is undesirable, // but since we already did a TranslateMessage() in gatherInput(), this // should have no negative effect - int res = ToUnicodeEx(key, 0, keyboard_state, chars, char_count, 1 << 2 /*do not modify buffer flag*/, layout); + // ToUnicodeEx works with virtual key codes + int res = ToUnicodeEx(raw_key, 0, keyboard_state, chars, char_count, 1 << 2 /*do not modify buffer flag*/, layout); if (res == 1 && chars[0] >= 0x20) { // Let it fall through to character handler and get a WM_CHAR.