diff --git a/autobuild.xml b/autobuild.xml
index 74e25f19d5..af517c7672 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -112,9 +112,11 @@
archive
name
linux64
@@ -544,9 +546,11 @@
archive
name
linux64
@@ -648,9 +652,11 @@
archive
name
linux64
@@ -762,9 +768,11 @@
archive
name
linux64
@@ -913,6 +921,20 @@
name
darwin64
+ linux64
+
windows64
archive
@@ -1110,11 +1132,11 @@
archive
hash
- 4a999279562e8f3e4ba02d3e78a844ddf6fe18f1
+ bf2d2e4350caaea2b2fb6116d05548c80f402f81
hash_algorithm
sha1
url
- https://github.com/secondlife/3p-freetype/releases/download/v.2.12.1.557becd/freetype-2.12.1.557becd-linux64-557becd.tar.zst
+ https://3p.firestormviewer.org/freetype-2.12.1.240620850-linux64-240620850.tar.zst
name
linux64
@@ -1379,6 +1401,20 @@
name
darwin64
+ linux64
+
+ archive
+
+ hash
+ f5e5be3af96f1eb0842219a94765c04aa9c561c5
+ hash_algorithm
+ sha1
+ url
+ https://3p.firestormviewer.org/icu4c-4.8.1-linux64-240621048.tar.zst
+
+ name
+ linux64
+
windows64
archive
@@ -1750,9 +1786,11 @@
archive
hash
- 134089ec8c1eead9436b69c326790fc0
+ e646a9da0ddfe1dfbffc6600d7d35f78ac48c75e
+ hash_algorithm
+ sha1
url
- https://3p.firestormviewer.org/libpng-1.6.38.222890126-linux64-222890126.tar.bz2
+ https://3p.firestormviewer.org/libpng-1.6.38-240620624-linux64-240620624.tar.zst
name
linux64
@@ -1838,9 +1876,11 @@
archive
hash
- d72c6d8db827ce3d83c5703f519a2ac9
+ fda5d399c21c3ad29a78f29599523ca4ecf76bd2
+ hash_algorithm
+ sha1
url
- https://3p.firestormviewer.org/libxml2-2.10.3.230940019-linux64-230940019.tar.bz2
+ https://github.com/secondlife/3p-libxml2/releases/download/v2.9.4-2db4418/libxml2-2.9.4.2db4418-linux64-2db4418.tar.zst
name
linux64
@@ -2279,9 +2319,11 @@
archive
hash
- ee4e3a02ad4669a4d84e9c32e509530e
+ d4f35ebcea53ab6e9f2e6cbc0d680b10d10b9c53
+ hash_algorithm
+ sha1
url
- https://3p.firestormviewer.org/minizip_ng-3.0.2.222121607-linux64-222121607.tar.bz2
+ https://github.com/secondlife/3p-minizip-ng/releases/download/v3.0.2.3e9876e/minizip_ng-3.0.2.3e9876e-linux64-3e9876e.tar.zst
name
linux64
@@ -2395,9 +2437,11 @@
archive
hash
- 57670eaa6333d9127b8ba88f120e56dd
+ 5798b5f6c8579ad44f211a873c072ee8d3fd8c93
+ hash_algorithm
+ sha1
url
- https://3p.firestormviewer.org/nghttp2-1.56.0.232750738-linux64-232750738.tar.bz2
+ https://github.com/secondlife/3p-nghttp2/releases/download/v1.40.0.b1526c6/nghttp2-1.40.0.b1526c6-linux64-b1526c6.tar.zst
name
linux64
@@ -2696,9 +2740,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- a3b2dbffa28a2b2a63c5d3ce2c12bc85
+ 5f6953db991ef6badb0525ecc98daf28d368e9e7
+ hash_algorithm
+ sha1
url
- https://3p.firestormviewer.org/openssl-1.1.1w.232750656-linux64-232750656.tar.bz2
+ https://github.com/secondlife/3p-openssl/releases/download/v1.1.1q.de53f55/openssl-1.1.1q.de53f55-linux64-de53f55.tar.zst
name
linux64
@@ -2754,9 +2800,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 742a145c1518b9dc195ae0862828e6ae
+ 3a722c508a9278a49317e3f749f3256768f1c50b
+ hash_algorithm
+ sha1
url
- https://3p.firestormviewer.org/pcre-8.35.202021522-linux64-202021522.tar.bz2
+ https://github.com/secondlife/3p-pcre/releases/download/v8.35-3c0eb51/pcre-8.35.3c0eb51-linux64-3c0eb51.tar.zst
name
linux64
@@ -3103,6 +3151,20 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
name
darwin64
+ linux64
+
+ archive
+
+ hash
+ 0f648faa1aee4e233330b87ce7a31727a28dffc3
+ hash_algorithm
+ sha1
+ url
+ https://3p.firestormviewer.org/viewer_fonts-1.240620521-linux64-240620521.tar.zst
+
+ name
+ linux64
+
windows64
archive
@@ -3438,9 +3500,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
hash
- 5ee7cda65cede06190c811e59b3880b0
+ fba88375e12454ae19f4528e11ffc7ddf7d879ec
+ hash_algorithm
+ sha1
url
- https://3p.firestormviewer.org/zlib_ng-2.0.5.222121000-linux64-222121000.tar.bz2
+ https://github.com/secondlife/3p-zlib-ng/releases/download/v1.2.11.zlib-ng.32fd361/zlib_ng-1.2.11.zlib-ng.32fd361-linux64-32fd361.tar.zst
name
linux64
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 816174c4ba..3b9f41b3f9 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -4,12 +4,7 @@ include(Prebuilt)
include_guard()
add_library( ll::freetype INTERFACE IMPORTED )
-if (LINUX)
- find_package(Freetype REQUIRED) # linux fontconfig and freetype should come from the user's system Linux links this via llwindow/CMakeLists
- target_link_libraries( ll::freetype INTERFACE Freetype::Freetype )
-else ()
use_system_binary(freetype)
use_prebuilt_binary(freetype)
target_include_directories( ll::freetype SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/freetype2/)
target_link_libraries( ll::freetype INTERFACE freetype )
-endif()
diff --git a/indra/cmake/ICU4C.cmake b/indra/cmake/ICU4C.cmake
index a9714696b4..806ad28e99 100644
--- a/indra/cmake/ICU4C.cmake
+++ b/indra/cmake/ICU4C.cmake
@@ -13,6 +13,11 @@ if (WINDOWS)
elseif(DARWIN)
target_link_libraries( ll::icu4c INTERFACE icuuc)
elseif(LINUX)
+ #
+ #The icu4c 3p puts the libraries in "lib" rather than the normal "release/lib".
+ #Add this to the link search path (otherwise link to the library fails)
+ target_link_directories( ll::icu4c INTERFACE ${LIBS_PREBUILT_DIR}/lib)
+
target_link_libraries( ll::icu4c INTERFACE icuuc)
else()
message(FATAL_ERROR "Invalid platform")
diff --git a/indra/linux_crash_logger/linux_crash_logger.cpp b/indra/linux_crash_logger/linux_crash_logger.cpp
index 5d55e551a4..f14c170939 100644
--- a/indra/linux_crash_logger/linux_crash_logger.cpp
+++ b/indra/linux_crash_logger/linux_crash_logger.cpp
@@ -68,6 +68,11 @@ int main(int argc, char **argv)
curl_global_init(CURL_GLOBAL_ALL);
auto curl = curl_easy_init();
+
+//Not compatible with LL's crusty old curl - support for the curl_mime functions
+//was introduced in curl 7.57.0, LL is still using 7.54 :(
+
+/*
if( curl)
{
auto form = curl_mime_init(curl);
@@ -95,6 +100,47 @@ int main(int argc, char **argv)
curl_easy_cleanup(curl);
curl_mime_free(form);
- }
+ }*/
+
+if (auto curl_handle = curl_easy_init()) {
+ struct curl_httppost* formpost = NULL;
+ struct curl_httppost* lastptr = NULL;
+
+ // Add the file part
+ curl_formadd(&formpost, &lastptr,
+ CURLFORM_COPYNAME, "upload_file_minidump",
+ CURLFORM_FILE, dmpFile.c_str(),
+ CURLFORM_END);
+
+ // Add the 'product' part
+ curl_formadd(&formpost, &lastptr,
+ CURLFORM_COPYNAME, "product",
+ CURLFORM_COPYCONTENTS, "Firestorm-Releasex64",
+ CURLFORM_END);
+
+ // Add the 'version' part
+ curl_formadd(&formpost, &lastptr,
+ CURLFORM_COPYNAME, "version",
+ CURLFORM_COPYCONTENTS, version.c_str(),
+ CURLFORM_END);
+
+ // Set the URL
+ curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str());
+
+ // Set the form post data
+ curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formpost);
+
+ // Perform the request
+ auto res = curl_easy_perform(curl_handle);
+
+ // Cleanup
+ curl_easy_cleanup(curl_handle);
+ curl_formfree(formpost);
+
+ // Check for errors
+ if (res != CURLE_OK)
+ std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
+}
+
return 0;
}
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index dec8cd1fde..5135e3bf3a 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -2263,7 +2263,7 @@ class Linux_i686_Manifest(LinuxManifest):
# self.path("libfontconfig.so.*.*") # fontconfig and freetype should be taken from the user's system
# Include libfreetype.so. but have it work as libfontconfig does.
- # self.path("libfreetype.so.*.*") # fontconfig and freetype should be taken from the user's system
+ self.path("libfreetype.so.*.*")
try:
self.path("libtcmalloc.so*") #formerly called google perf tools
diff --git a/indra/newview/vjlocalmesh.cpp b/indra/newview/vjlocalmesh.cpp
index c0217bb9cd..e8871f58c7 100644
--- a/indra/newview/vjlocalmesh.cpp
+++ b/indra/newview/vjlocalmesh.cpp
@@ -468,8 +468,9 @@ LLLocalMeshFile::LLLocalMeshFile(const std::string& filename, bool try_lods)
mFilenames[LOCAL_LOD_HIGH] = filename;
// check if we have a valid extension, can't switch with string can we?
- if( std::string exten_str = boost::filesystem::extension(filename);
- boost::iequals(exten_str, ".dae") )
+ auto path = boost::filesystem::path(filename);
+ if (std::string exten_str = path.extension().string();
+ boost::iequals(exten_str, ".dae") )
{
mExtension = LLLocalMeshFileExtension::EXTEN_DAE;
pushLog("LLLocalMeshFile", "Extension found: COLLADA");