From 4cef6a28e7f0748f7130edc8991f173ab90aa4fb Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 1 Oct 2025 01:19:54 +0200 Subject: [PATCH 01/19] Update this too... --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autobuild.xml b/autobuild.xml index 643588388f..ae084fe9d0 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1367,7 +1367,7 @@ copyright Kakadu software version - 8.5 + 8.6 name kdu description From 589498fece769446310c085e9feb08ccd8400c2c Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Wed, 1 Oct 2025 17:50:28 -0700 Subject: [PATCH 02/19] Reenable havok llphysicsextensions on Darwin x86_64 with llphysicsextensions_stub used for aarch64 --- autobuild.xml | 40 +++------------------------ build.sh | 1 - indra/cmake/LLPhysicsExtensions.cmake | 9 +++++- indra/newview/CMakeLists.txt | 9 ++++++ 4 files changed, 21 insertions(+), 38 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index c9355c73c0..280078b4c2 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1432,53 +1432,21 @@ platforms - darwin64 + common archive creds github hash - 7facda95e2f00c260513f3d4db42588fa8ba703c + 1949ae355a70a4cbe2f0969de636680a0b5d7b15 hash_algorithm sha1 url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/196289774 + https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/299453833 name - darwin64 - - linux64 - - archive - - creds - github - hash - 01d08f13c7bc8d1b95b0330fa6833b7d8274e4d0 - hash_algorithm - sha1 - url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/196289775 - - name - linux64 - - windows64 - - archive - - creds - github - hash - 6d00345c7d3471bc5f7c1218e014dd0f1a2c069b - hash_algorithm - sha1 - url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/196289778 - - name - windows64 + common license diff --git a/build.sh b/build.sh index 36e332cf42..325386e7e9 100755 --- a/build.sh +++ b/build.sh @@ -158,7 +158,6 @@ pre_build() if [[ "$arch" == "Darwin" ]] then - HAVOK=OFF SIGNING=("-DENABLE_SIGNING:BOOL=YES" \ "-DSIGNING_IDENTITY:STRING=Developer ID Application: Linden Research, Inc.") fi diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake index 80d243d9f8..6112621b5a 100644 --- a/indra/cmake/LLPhysicsExtensions.cmake +++ b/indra/cmake/LLPhysicsExtensions.cmake @@ -22,7 +22,14 @@ if (HAVOK) include(Havok) use_prebuilt_binary(llphysicsextensions_source) set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/src) - target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions) + if(DARWIN) + set(LLPHYSICSEXTENSIONS_STUB_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub) + # can't set these library dependencies per-arch here, need to do it using XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=*] in newview/CMakeLists.txt + #target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions) + #target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub) + else() + target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions) + endif() elseif (HAVOK_TPV) use_prebuilt_binary(llphysicsextensions_tpv) target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions_tpv) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index c727d5ae57..72baac73ae 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -59,6 +59,10 @@ if (NOT HAVOK_TPV) # which means we need to duct tape this togther ... add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions) + if (NOT "${LLPHYSICSEXTENSIONS_STUB_DIR}" EQUAL "") + # for darwin universal builds we need both real llphysicsextensions and the stub for aarch64 fallback + add_subdirectory(${LLPHYSICSEXTENSIONS_STUB_DIR} llphysicsextensionsstub) + endif() # Another hack that works with newer cmake versions: cmake_policy( SET CMP0079 NEW) @@ -1952,6 +1956,11 @@ elseif (DARWIN) RESOURCE SecondLife.xib #LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip" + # arch specific flags for universal builds: https://stackoverflow.com/a/77942065 + XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=x86_64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_FULL" + XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=arm64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_STUB" + XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensions/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensions" + XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=arm64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensionsstub/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensionsstub" ) else (WINDOWS) # Linux From b8cf54d909263e14622d9669b192c9ad14dc7173 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Wed, 1 Oct 2025 18:17:16 -0700 Subject: [PATCH 03/19] Fix configurations like windows where LLPHYSICSEXTENSIONS_STUB_DIR is unset --- indra/newview/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 72baac73ae..1444eeaba3 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -59,7 +59,7 @@ if (NOT HAVOK_TPV) # which means we need to duct tape this togther ... add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions) - if (NOT "${LLPHYSICSEXTENSIONS_STUB_DIR}" EQUAL "") + if (NOT "${LLPHYSICSEXTENSIONS_STUB_DIR}" STREQUAL "") # for darwin universal builds we need both real llphysicsextensions and the stub for aarch64 fallback add_subdirectory(${LLPHYSICSEXTENSIONS_STUB_DIR} llphysicsextensionsstub) endif() From fc41f57a06065957bc377d7a1716c5c04b8fec70 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Thu, 2 Oct 2025 11:26:48 -0700 Subject: [PATCH 04/19] Attempt to fix build error --- indra/newview/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1444eeaba3..9e566096fc 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -61,6 +61,7 @@ if (NOT HAVOK_TPV) add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions) if (NOT "${LLPHYSICSEXTENSIONS_STUB_DIR}" STREQUAL "") # for darwin universal builds we need both real llphysicsextensions and the stub for aarch64 fallback + # this will only be set when HAVOK is ON, otherwise the normal stub fallback will be in effect add_subdirectory(${LLPHYSICSEXTENSIONS_STUB_DIR} llphysicsextensionsstub) endif() @@ -73,6 +74,9 @@ if (NOT HAVOK_TPV) target_link_libraries(llphysicsextensions llrender ) if (DARWIN) target_compile_options( llphysicsextensions PRIVATE -Wno-unused-local-typedef) + + # TODO - move this into llphysicsextensions/CMakeLists.txt once I've proved it works + set_target_properties(llphysicsextensions PROPERTIES OSX_ARCHITECTURES "x86_64") endif (DARWIN) endif() endif (NOT HAVOK_TPV) From b314a0bb64e81e17cb5a4d4e9ea417fe4040d25f Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Thu, 2 Oct 2025 13:35:54 -0700 Subject: [PATCH 05/19] new llphysicsextensions_source package that sets OSX_ARCHITECTURES properly and should hopefully package llphysicsextensions_tpv successfully --- autobuild.xml | 4 ++-- indra/newview/CMakeLists.txt | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 280078b4c2..56831346c1 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1439,11 +1439,11 @@ creds github hash - 1949ae355a70a4cbe2f0969de636680a0b5d7b15 + fff82c79edb900c547c40dca9a0e3ebac5a8c7da hash_algorithm sha1 url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/299453833 + https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/299858950 name common diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 9e566096fc..0d50aeca82 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -74,9 +74,6 @@ if (NOT HAVOK_TPV) target_link_libraries(llphysicsextensions llrender ) if (DARWIN) target_compile_options( llphysicsextensions PRIVATE -Wno-unused-local-typedef) - - # TODO - move this into llphysicsextensions/CMakeLists.txt once I've proved it works - set_target_properties(llphysicsextensions PROPERTIES OSX_ARCHITECTURES "x86_64") endif (DARWIN) endif() endif (NOT HAVOK_TPV) From e30bc61d9a63ed29985bd6e07405f0051bfceaf6 Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Thu, 2 Oct 2025 14:51:14 -0700 Subject: [PATCH 06/19] Restore creation of secondlife-bin.MAP file on Darwin x86_64 for production of llphysicsextensions_tpv --- 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 0d50aeca82..eb40067930 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1955,12 +1955,12 @@ elseif (DARWIN) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES RESOURCE SecondLife.xib - #LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip" # arch specific flags for universal builds: https://stackoverflow.com/a/77942065 XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=x86_64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_FULL" XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=arm64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_STUB" - XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensions/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensions" + # only generate the .MAP file for llphysicsextensions_tpv on x86_64 + XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensions/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensions -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=arm64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensionsstub/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensionsstub" ) else (WINDOWS) From c440843513b9d9688db019034be4d8c24a3e6f8b Mon Sep 17 00:00:00 2001 From: Brad Linden Date: Fri, 3 Oct 2025 11:39:57 -0700 Subject: [PATCH 07/19] disable package_llphysicsextensions_tpv for now --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 325386e7e9..694b03c42e 100755 --- a/build.sh +++ b/build.sh @@ -261,8 +261,8 @@ build() done fi - # *TODO: Make this a build extension. - package_llphysicsextensions_tpv || fatal "failed building llphysicsextensions packages" + # *TODO: Make this a build extension. disabled for now + # package_llphysicsextensions_tpv || fatal "failed building llphysicsextensions packages" end_section "extensions $variant" else From 9e71e1ca3803a0a55085b954a9d795c19334c1db Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Wed, 8 Oct 2025 14:52:33 -0400 Subject: [PATCH 08/19] Move the irradiance gen unbind to be within the correct scope. (#4798) --- indra/newview/llreflectionmapmanager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp index eb7fe06e7d..c6fa64753c 100644 --- a/indra/newview/llreflectionmapmanager.cpp +++ b/indra/newview/llreflectionmapmanager.cpp @@ -998,11 +998,11 @@ void LLReflectionMapManager::updateProbeFace(LLReflectionMap* probe, U32 face) mTexture->bind(channel); } } + + gIrradianceGenProgram.unbind(); } mMipChain[0].flush(); - - gIrradianceGenProgram.unbind(); } } From 95337dfc36113dca030c38a447b2ffa29b5bed9c Mon Sep 17 00:00:00 2001 From: Callum Linden <113564339+callumlinden@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:39:23 -0700 Subject: [PATCH 09/19] Fix for viewer-private/issues/489 - HTTP Basic Auth dialog should not be present (#4799) --- autobuild.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 56831346c1..58c8d49c7c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -450,11 +450,11 @@ archive hash - d44256458ff0ef4db4c91e8e8cc83e8f98b4f1b8 + 126e0fa4c16dfd433c9fb7d1d242da98f213d933 hash_algorithm sha1 url - https://github.com/secondlife/dullahan/releases/download/v1.21.0-CEF_139.0.28/dullahan-1.21.0.202508272158_139.0.28_g55ab8a8_chromium-139.0.7258.139-darwin64-17279703032.tar.zst + https://github.com/secondlife/dullahan/releases/download/v1.24.0-CEF_139.0.40/dullahan-1.24.0.202510081737_139.0.40_g465474a_chromium-139.0.7258.139-darwin64-18353103947.tar.zst name darwin64 @@ -478,11 +478,11 @@ archive hash - 9d5af766a87052808e4062978504e9af124fb558 + 20de62c9e57d9e6539c1e2437ec4b46c3ca237bc hash_algorithm sha1 url - https://github.com/secondlife/dullahan/releases/download/v1.21.0-CEF_139.0.28/dullahan-1.21.0.202508272159_139.0.28_g55ab8a8_chromium-139.0.7258.139-windows64-17279703032.tar.zst + https://github.com/secondlife/dullahan/releases/download/v1.24.0-CEF_139.0.40/dullahan-1.24.0.202510081738_139.0.40_g465474a_chromium-139.0.7258.139-windows64-18353103947.tar.zst name windows64 @@ -495,7 +495,7 @@ copyright Copyright (c) 2017, Linden Research, Inc. version - 1.21.0.202508272158_139.0.28_g55ab8a8_chromium-139.0.7258.139 + 1.24.0.202510081737_139.0.40_g465474a_chromium-139.0.7258.139 name dullahan description From 57a9e51360aebf142bbbdc2663f68ebacfb7d8f5 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> Date: Mon, 13 Oct 2025 20:16:52 +0300 Subject: [PATCH 10/19] #4819 WebRTC crashes after a failed login --- indra/llwebrtc/llwebrtc.cpp | 4 ++++ indra/newview/llvoicewebrtc.cpp | 15 +++++++++++++++ indra/newview/llvoicewebrtc.h | 4 +++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp index 828896f620..d5182b16e7 100644 --- a/indra/llwebrtc/llwebrtc.cpp +++ b/indra/llwebrtc/llwebrtc.cpp @@ -1495,6 +1495,10 @@ void freePeerConnection(LLWebRTCPeerConnectionInterface* peer_connection) void init(LLWebRTCLogCallback* logCallback) { + if (gWebRTCImpl) + { + return; + } gWebRTCImpl = new LLWebRTCImpl(logCallback); gWebRTCImpl->init(); } diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp index 62bab7d24a..72a60c506b 100644 --- a/indra/newview/llvoicewebrtc.cpp +++ b/indra/newview/llvoicewebrtc.cpp @@ -273,6 +273,11 @@ void LLWebRTCVoiceClient::cleanupSingleton() void LLWebRTCVoiceClient::init(LLPumpIO* pump) { // constructor will set up LLVoiceClient::getInstance() + initWebRTC(); +} + +void LLWebRTCVoiceClient::initWebRTC() +{ llwebrtc::init(this); mWebRTCDeviceInterface = llwebrtc::getDeviceInterface(); @@ -292,6 +297,7 @@ void LLWebRTCVoiceClient::terminate() mVoiceEnabled = false; llwebrtc::terminate(); + mWebRTCDeviceInterface = nullptr; sShuttingDown = true; } @@ -1805,6 +1811,15 @@ void LLWebRTCVoiceClient::onChangeDetailed(const LLMute& mute) } } +void LLWebRTCVoiceClient::userAuthorized(const std::string& user_id, const LLUUID& agentID) +{ + if (sShuttingDown) + { + sShuttingDown = false; // was terminated, restart + initWebRTC(); + } +} + void LLWebRTCVoiceClient::predSetUserMute(const LLWebRTCVoiceClient::sessionStatePtr_t &session, const LLUUID &id, bool mute) { session->setUserMute(id, mute); diff --git a/indra/newview/llvoicewebrtc.h b/indra/newview/llvoicewebrtc.h index 722d81fdc2..2ce575852a 100644 --- a/indra/newview/llvoicewebrtc.h +++ b/indra/newview/llvoicewebrtc.h @@ -204,7 +204,7 @@ public: //@} // authorize the user - void userAuthorized(const std::string &user_id, const LLUUID &agentID) override {}; + void userAuthorized(const std::string &user_id, const LLUUID &agentID) override; void OnConnectionEstablished(const std::string& channelID, const LLUUID& regionID); @@ -443,6 +443,8 @@ public: boost::signals2::connection mAvatarNameCacheConnection; private: + // init or restart the WebRTC device interface. + void initWebRTC(); // Coroutine support methods //--- From 2d9b26a648f89dc9b65114f659143dfb3c77a447 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Fri, 17 Oct 2025 15:25:04 +1000 Subject: [PATCH 11/19] Fix compilation errors when building without Havok --- indra/newview/CMakeLists.txt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index b030c3ec5c..0351994836 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2515,13 +2515,20 @@ elseif (DARWIN) # otherwise occurs when upscaling the viewer to Retina resolution levels. LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -platform_version -Xlinker macos -Xlinker ${CMAKE_OSX_DEPLOYMENT_TARGET} -Xlinker 10.12" - # arch specific flags for universal builds: https://stackoverflow.com/a/77942065 - XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=x86_64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_FULL" - XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=arm64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_STUB" - # only generate the .MAP file for llphysicsextensions_tpv on x86_64 - XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensions/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensions -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" - XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=arm64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensionsstub/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensionsstub" + # We can only do these if building with Havok ) + if(HAVOK OR HAVOK_TPV) + set_target_properties(${VIEWER_BINARY_NAME} + PROPERTIES + # arch specific flags for universal builds: https://stackoverflow.com/a/77942065 + XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=x86_64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_FULL" + XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=arm64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_STUB" + # only generate the .MAP file for llphysicsextensions_tpv on x86_64 + XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensions/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensions -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" + XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=arm64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensionsstub/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensionsstub" + ) + endif() + # else (WINDOWS) # Linux set_target_properties(${VIEWER_BINARY_NAME} From 6a522ed3fbcc7cb486db506ea2d4cf4c11845f64 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Sat, 13 Sep 2025 07:05:51 +1000 Subject: [PATCH 12/19] Initial fixes for 2025.07 to compile on MacOS --- indra/llcommon/llpreprocessor.h | 11 +++++++++++ indra/llwindow/llwindowmacosx.cpp | 15 +++++++++------ indra/newview/fsfloaterim.h | 1 - indra/newview/fsfloaternearbychat.h | 1 - indra/newview/llpanelface.h | 2 +- indra/newview/llpanelpeople.h | 2 +- indra/newview/llstatusbar.h | 5 ----- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h index c08080223a..997987850e 100644 --- a/indra/llcommon/llpreprocessor.h +++ b/indra/llcommon/llpreprocessor.h @@ -97,6 +97,10 @@ # define LL_ARM64 1 #elif LL_GNUC && (defined(__arm64__) || defined(__aarch64__)) # define LL_ARM64 1 +// Check if using clang +#elif LL_CLANG && (defined(__arm64__) || defined(__aarch64__)) +# define LL_ARM64 1 +// #elif LL_MSVC && _M_X64 # define LL_X86_64 1 # define LL_X86 1 @@ -105,6 +109,13 @@ #elif LL_GNUC && ( defined(__amd64__) || defined(__x86_64__) ) # define LL_X86_64 1 # define LL_X86 1 +// Check if using clang +#elif LL_CLANG && ( defined(__amd64__) || defined(__x86_64__) ) +# define LL_X86_64 1 +# define LL_X86 1 +#elif LL_CLANG && ( defined(__i386__) ) +# define LL_X86 1 +// #elif LL_GNUC && ( defined(__i386__) ) # define LL_X86 1 #endif diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index ab87f9baca..40ad023e4d 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -2452,13 +2452,16 @@ bool LLWindowMacOSX::getInputDevices(U32 device_type_filter, void LLWindowMacOSX::openFile(const std::string& file_name ) { - LL_INFOS() << "Opening file " << file_name << LL_ENDL; - FSRef appRef; - OSStatus os_result = FSPathMakeRef((UInt8*)file_name.c_str(), - &appRef,NULL); - if(os_result >= 0) + LL_INFOS() << "Opening file " << file_name << LL_ENDL; + CFURLRef url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, + (const UInt8*)file_name.c_str(), + (CFIndex)file_name.size(), + false); + + if (url) { - os_result = LSOpenFSRef(&appRef, NULL); + OSStatus os_result = LSOpenCFURLRef(url, NULL); + CFRelease(url); } } diff --git a/indra/newview/fsfloaterim.h b/indra/newview/fsfloaterim.h index 3d20957063..182f0d6ae3 100644 --- a/indra/newview/fsfloaterim.h +++ b/indra/newview/fsfloaterim.h @@ -292,7 +292,6 @@ private: S32 mInputEditorPad; S32 mChatLayoutPanelHeight; - S32 mFloaterHeight; uuid_vec_t mInvitedParticipants; uuid_vec_t mPendingParticipants; diff --git a/indra/newview/fsfloaternearbychat.h b/indra/newview/fsfloaternearbychat.h index ee485e5498..f707fe35c9 100644 --- a/indra/newview/fsfloaternearbychat.h +++ b/indra/newview/fsfloaternearbychat.h @@ -161,7 +161,6 @@ private: S32 mInputEditorPad; S32 mChatLayoutPanelHeight; - S32 mFloaterHeight; std::vector mMessageArchive; diff --git a/indra/newview/llpanelface.h b/indra/newview/llpanelface.h index cd42328d28..11e72a4dc2 100644 --- a/indra/newview/llpanelface.h +++ b/indra/newview/llpanelface.h @@ -395,7 +395,7 @@ private: LLButton* mBtnAlign { nullptr }; LLButton* mBtnAlignTex { nullptr }; - LLButton* mBtnPbrFromInv { nullptr }; + //LLButton* mBtnPbrFromInv { nullptr }; // Done via texture picker LLButton* mBtnEditBbr { nullptr }; LLButton* mBtnSaveBbr { nullptr }; diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h index 279573e478..f171c5a5e0 100644 --- a/indra/newview/llpanelpeople.h +++ b/indra/newview/llpanelpeople.h @@ -169,7 +169,7 @@ private: // FIRE-4740: Friend counter in people panel LLTabContainer* mFriendsTabContainer; - LLAccordionCtrl* mFriendsAccordion = nullptr; + //LLAccordionCtrl* mFriendsAccordion = nullptr; // Friend list accordion replacement LLAccordionCtrlTab* mFriendsAllTab = nullptr; LLAccordionCtrlTab* mFriendsOnlineTab = nullptr; diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index 20d15c34a2..600084fd48 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -321,13 +321,9 @@ public: void setRebakeStuck(bool stuck) { mRebakeStuck = stuck;} // FIRE-7639 - Stop the blinking after a while private: - LLTextBox *mTextBalance; - LLTextBox *mTextHealth; LLTextBox *mTextTime; LLTextBox *mFPSText; // FIRE-14482: Show FPS in status bar - LLTextBox* mTextParcelName; - LLStatGraph *mSGBandwidth; LLStatGraph *mSGPacketLoss; @@ -361,7 +357,6 @@ private: LLPanelNearByMedia* mPanelNearByMedia; LLPanel* mParcelInfoPanel; - LLButton* mInfoBtn; LLTextBox* mParcelInfoText; LLTextBox* mDamageText; LLIconCtrl* mParcelIcon[ICON_COUNT]; From b542e69fe7c148ab4fd57b525538633bba3269f2 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Sat, 20 Sep 2025 16:57:11 +1000 Subject: [PATCH 13/19] Fixed CMake files to work with MacOS universal libraries --- indra/cmake/Discord.cmake | 14 +++++++------- indra/cmake/FMODSTUDIO.cmake | 17 +++++++++-------- indra/cmake/GLOD.cmake | 23 +++++++++++++++++------ indra/cmake/Growl.cmake | 19 ++++++++++++++----- indra/cmake/LLPhysicsExtensions.cmake | 22 +++++++++++++++++++++- 5 files changed, 68 insertions(+), 27 deletions(-) diff --git a/indra/cmake/Discord.cmake b/indra/cmake/Discord.cmake index 9741ff17f0..7ec96939b3 100644 --- a/indra/cmake/Discord.cmake +++ b/indra/cmake/Discord.cmake @@ -20,13 +20,13 @@ add_library(fs::discord INTERFACE IMPORTED) include(Prebuilt) use_prebuilt_binary(discord-rpc) -if (WINDOWS) - target_link_libraries(fs::discord INTERFACE discord-rpc) -elseif (LINUX) - target_link_libraries(fs::discord INTERFACE discord-rpc) -elseif (DARWIN) - target_link_libraries(fs::discord INTERFACE discord-rpc) -endif (WINDOWS) +find_library(DISCORD_LIBRARY + NAMES + discord-rpc.lib + libdiscord-rpc.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +target_link_libraries(fs::discord INTERFACE ${DISCORD_LIBRARY}) target_include_directories(fs::discord SYSTEM INTERFACE ${AUTOBUILD_INSTALL_DIR}/include/discord-rpc diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 6f8912f7f1..f6b4a5c4d5 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -33,14 +33,15 @@ if (USE_FMODSTUDIO) # as accessing the private LL location will fail if you don't have the credential include(Prebuilt) use_prebuilt_binary(fmodstudio) - if (WINDOWS) - target_link_libraries( ll::fmodstudio INTERFACE fmod_vc) - elseif (DARWIN) - #despite files being called libfmod.dylib, we are searching for fmod - target_link_libraries( ll::fmodstudio INTERFACE fmod) - elseif (LINUX) - target_link_libraries( ll::fmodstudio INTERFACE fmod) - endif (WINDOWS) + + find_library(FMOD_LIBRARY + NAMES + fmod_vc.lib + libfmod.dylib + libfmod.so + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + target_link_libraries(ll::fmodstudio INTERFACE ${FMOD_LIBRARY}) target_include_directories( ll::fmodstudio SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/fmodstudio) endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR) diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake index 9a61267d50..9a0bc842a9 100644 --- a/indra/cmake/GLOD.cmake +++ b/indra/cmake/GLOD.cmake @@ -5,13 +5,24 @@ add_library( fs::glod INTERFACE IMPORTED ) include(Prebuilt) use_prebuilt_binary(glod) -if (WINDOWS) - target_link_libraries( fs::glod INTERFACE glod.lib) -elseif (DARWIN) - target_link_libraries( fs::glod INTERFACE libGLOD.dylib) + +find_library(GLOD_LIBRARY + NAMES + GLOD.lib + libGLOD.dylib + libGLOD.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +if (WINDOWS OR DARWIN) + target_link_libraries(fs::glod INTERFACE ${GLOD_LIBRARY}) elseif (LINUX) - target_link_libraries( fs::glod INTERFACE libGLOD.a libvds.a) -endif (WINDOWS) + find_library(VDS_LIBRARY + NAMES + libvds.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + target_link_libraries(fs::glod INTERFACE ${GLOD_LIBRARY} ${VDS_LIBRARY}) +endif () target_include_directories( fs::glod SYSTEM INTERFACE ${AUTOBUILD_INSTALL_DIR}/include/glod diff --git a/indra/cmake/Growl.cmake b/indra/cmake/Growl.cmake index dc77e1c51e..a2cff584e9 100644 --- a/indra/cmake/Growl.cmake +++ b/indra/cmake/Growl.cmake @@ -9,11 +9,20 @@ add_library( fs::growl INTERFACE IMPORTED ) include(Prebuilt) use_prebuilt_binary(gntp-growl) -if (WINDOWS) - target_link_libraries( fs::growl INTERFACE growl.lib growl++.lib) -elseif (DARWIN) - target_link_libraries( fs::growl INTERFACE libgrowl.dylib libgrowl++.dylib) -endif (WINDOWS) + +find_library(GROWL_LIBRARY + NAMES + growl.lib + libgrowl.dylib + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +find_library(GROWL_PLUSPLUS_LIBRARY + NAMES + growl++.lib + libgrowl++.dylib + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +target_link_libraries(fs::growl INTERFACE ${GROWL_LIBRARY} ${GROWL_PLUSPLUS_LIBRARY}) target_include_directories( fs::growl SYSTEM INTERFACE ${AUTOBUILD_INSTALL_DIR}/include/Growl diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake index e27b746a14..454dbe0215 100644 --- a/indra/cmake/LLPhysicsExtensions.cmake +++ b/indra/cmake/LLPhysicsExtensions.cmake @@ -48,7 +48,27 @@ else (HAVOK) # set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub) # - target_link_libraries( llphysicsextensions_impl INTERFACE nd_hacdConvexDecomposition hacd nd_Pathing ) + # Use find_library to make our lives easier + find_library(ND_HACDCONVEXDECOMPOSITION_LIBRARY + NAMES + nd_hacdConvexDecomposition.lib + libnd_hacdConvexDecomposition.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + find_library(HACD_LIBRARY + NAMES + hacd.lib + libhacd.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + find_library(ND_PATHING_LIBRARY + NAMES + nd_pathing.lib + libnd_pathing.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + target_link_libraries(llphysicsextensions_impl INTERFACE ${ND_HACDCONVEXDECOMPOSITION_LIBRARY} ${HACD_LIBRARY} ${ND_PATHING_LIBRARY}) + # # include paths for LLs version and ours are different. target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/ ) From b456ae2dc7246b1141696bf92dd105a99817c162 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Sat, 20 Sep 2025 16:57:59 +1000 Subject: [PATCH 14/19] Fixed crash relating to looking for the wrong .xib resource file for MacOS --- indra/newview/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 0351994836..0ddda7b3a7 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2508,7 +2508,7 @@ if (WINDOWS) elseif (DARWIN) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES - RESOURCE SecondLife.xib + RESOURCE Firestorm.xib LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip" # Force the SDK version in the linked executable to be 10.12. This will fool # macOS into using the pre-Mojave display system, avoiding the blurry display that From 076142913c888002876888e1837166b8ecc08408 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Sat, 20 Sep 2025 16:58:55 +1000 Subject: [PATCH 15/19] Remove unneeded code from viewer_manifest.py preventing packaging --- indra/newview/viewer_manifest.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 2455847453..26cc4197ca 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1588,12 +1588,6 @@ class Darwin_x86_64_Manifest(ViewerManifest): self.path("*.dylib") self.path("plugins.dat") - # do this install_name_tool *after* media plugin is copied over - dylibexecutablepath = self.dst_path_of('llplugin/media_plugin_cef.dylib') - self.run_command_shell('install_name_tool -change ' - '"@rpath/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" ' - '"@executable_path/../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" "%s"' % dylibexecutablepath) - # NOTE: the -S argument to strip causes it to keep enough info for # annotated backtraces (i.e. function names in the crash log). 'strip' with no # arguments yields a slightly smaller binary but makes crash logs mostly useless. From 6184be4e84f7f117abba0160248e214c640e2f40 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Fri, 26 Sep 2025 21:46:24 +1000 Subject: [PATCH 16/19] Updated autobuild.xml for missing MacOS universal libraries --- autobuild.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 816c0d0ec8..d4ebe848cb 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -195,14 +195,14 @@ ndPhysicsStub platforms - darwin + darwin64 archive hash - 7d375112b162e32e37262da4a6c0a702 + b0f4fd59a72cf04db2cc426241a3850c url - https://3p.firestormviewer.org/ndPhysicsStub-1.0-darwin-202330107.tar.bz2 + https://3p.firestormviewer.org/ndPhysicsStub-1.0-darwin64-252581439.tar.bz2 name darwin @@ -250,9 +250,9 @@ archive hash - 94fc457c46e1fb94b31251bd4747d10f + 439af4161d99a3d12e0d6d90cb948687 url - https://3p.firestormviewer.org/glod-1.0pre3.171101143-darwin64-171101143.tar.bz2 + https://3p.firestormviewer.org/glod-1.0pre3.252621603-darwin64-252621603.tar.bz2 name darwin64 @@ -297,14 +297,14 @@ gntp-growl platforms - darwin + darwin64 archive hash - 33300134846d0f00ac4f31c1a190e3e6 + 5362f98bf0b0c5b12acacd6b7b1e427e url - https://3p.firestormviewer.org/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2 + https://3p.firestormviewer.org/gntp_growl-1.0-darwin64-252631716.tar.bz2 name darwin @@ -378,9 +378,9 @@ archive hash - 3bc297a0fa47094bb52d361f80186387 + 91b24b83d3f8461286f783f28fcd9a66 url - https://3p.firestormviewer.org/discord_rpc-3.4.0-darwin64-192522358.tar.bz2 + https://3p.firestormviewer.org/discord_rpc-3.4.0-darwin64-252621453.tar.bz2 name darwin64 From 119a31f9f63e31c3f79378b486d146c859947d79 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Fri, 17 Oct 2025 16:07:03 +1000 Subject: [PATCH 17/19] Corrected CEF library path for macOS signing to fix signing error --- 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 2455847453..407693a3a6 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1766,7 +1766,7 @@ class Darwin_x86_64_Manifest(ViewerManifest): # We could selectively sign those, or repackage them and then sign them. For an easy clean sweet we just resign them al plain_sign += glob.glob(resources + "*.dylib") plain_sign += glob.glob(resources + "llplugin/lib/*.dylib") - plain_sign += glob.glob( app_in_dmg + "/Contents/Frameworks/Chromium Embedded Framework.framework/Libraries/*.dylib" ) + plain_sign += glob.glob(resources + "SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework/Libraries/*.dylib") deep_sign = [ # Firestorm does not ship SLVersionChecker From dd3175ae818e48e0972bff6091738c1aa38b530f Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Fri, 17 Oct 2025 20:13:13 +1000 Subject: [PATCH 18/19] Fall back to using ad-hoc signing for macOS when no signing certificate exists (arm64 requirement) --- indra/newview/viewer_manifest.py | 132 +++++++++++++++++-------------- 1 file changed, 71 insertions(+), 61 deletions(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index fe3f527d4e..1079c4cfda 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1705,52 +1705,56 @@ class Darwin_x86_64_Manifest(ViewerManifest): if identity == '': identity = 'Developer ID Application' + ad_hoc_sign = False # Look for an environment variable set via build.sh when running in Team City. try: build_secrets_checkout = os.environ['build_secrets_checkout'] except KeyError: - pass - else: - # variable found so use it to unlock keychain followed by codesign - home_path = os.environ['HOME'] - keychain_pwd_path = os.path.join(build_secrets_checkout,'code-signing-osx','password.txt') - keychain_pwd = open(keychain_pwd_path).read().rstrip() + ad_hoc_sign = True # A minimum of ad-hoc signing is a requirement for arm64 builds to behave correctly + identity = '-' # Ad-hoc identity + finally: + if not ad_hoc_sign: + # variable found so use it to unlock keychain followed by codesign + home_path = os.environ['HOME'] + keychain_pwd_path = os.path.join(build_secrets_checkout,'code-signing-osx','password.txt') + keychain_pwd = open(keychain_pwd_path).read().rstrip() - # Note: As of macOS Sierra, keychains are created with - # names postfixed with '-db' so for example, the SL - # Viewer keychain would by default be found in - # ~/Library/Keychains/viewer.keychain-db instead of - # just ~/Library/Keychains/viewer.keychain in - # earlier versions. - # - # Because we have old OS files from previous - # versions of macOS on the build hosts, the - # configurations are different on each host. Some - # have viewer.keychain, some have viewer.keychain-db - # and some have both. As you can see in the line - # below, this script expects the Linden Developer - # cert/keys to be in viewer.keychain. - # - # To correctly sign builds you need to make sure - # ~/Library/Keychains/viewer.keychain exists on the - # host and that it contains the correct cert/key. If - # a build host is set up with a clean version of - # macOS Sierra (or later) then you will need to - # change this line (and the one for 'codesign' - # command below) to point to right place or else - # pull in the cert/key into the default viewer - # keychain 'viewer.keychain-db' and export it to - # 'viewer.keychain' - viewer_keychain = os.path.join(home_path, 'Library', - 'Keychains', 'viewer.keychain') - if not os.path.isfile( viewer_keychain ): - viewer_keychain += "-db" + # Note: As of macOS Sierra, keychains are created with + # names postfixed with '-db' so for example, the SL + # Viewer keychain would by default be found in + # ~/Library/Keychains/viewer.keychain-db instead of + # just ~/Library/Keychains/viewer.keychain in + # earlier versions. + # + # Because we have old OS files from previous + # versions of macOS on the build hosts, the + # configurations are different on each host. Some + # have viewer.keychain, some have viewer.keychain-db + # and some have both. As you can see in the line + # below, this script expects the Linden Developer + # cert/keys to be in viewer.keychain. + # + # To correctly sign builds you need to make sure + # ~/Library/Keychains/viewer.keychain exists on the + # host and that it contains the correct cert/key. If + # a build host is set up with a clean version of + # macOS Sierra (or later) then you will need to + # change this line (and the one for 'codesign' + # command below) to point to right place or else + # pull in the cert/key into the default viewer + # keychain 'viewer.keychain-db' and export it to + # 'viewer.keychain' + viewer_keychain = os.path.join(home_path, 'Library', + 'Keychains', 'viewer.keychain') + if not os.path.isfile( viewer_keychain ): + viewer_keychain += "-db" + + if not os.path.isfile( viewer_keychain ): + raise "No keychain named viewer found" + + self.run_command(['security', 'unlock-keychain', + '-p', keychain_pwd, viewer_keychain]) - if not os.path.isfile( viewer_keychain ): - raise "No keychain named viewer found" - - self.run_command(['security', 'unlock-keychain', - '-p', keychain_pwd, viewer_keychain]) sign_retry_wait=15 resources = app_in_dmg + "/Contents/Resources/" plain_sign = glob.glob(resources + "llplugin/*.dylib") @@ -1779,24 +1783,28 @@ class Darwin_x86_64_Manifest(ViewerManifest): try: # Note: See blurb above about names of keychains for signee in plain_sign: - self.run_command( - ['codesign', - '--force', - '--timestamp', - '--keychain', viewer_keychain, - '--sign', identity, - signee]) + args = [ + 'codesign', + '--force', + '--timestamp' + ] + if not ad_hoc_sign: + args += ['--keychain', viewer_keychain] + args += ['--sign', identity, signee] + self.run_command(args) for signee in deep_sign: - self.run_command( - ['codesign', - '--verbose', - '--deep', - '--force', - '--entitlements', self.src_path_of("slplugin.entitlements"), - '--options', 'runtime', - '--keychain', viewer_keychain, - '--sign', identity, - signee]) + args = [ + 'codesign', + '--verbose', + '--deep', + '--force', + '--entitlements', self.src_path_of("slplugin.entitlements"), + '--options', 'runtime' + ] + if not ad_hoc_sign: + args += ['--keychain', viewer_keychain] + args += ['--sign', identity, signee] + self.run_command(args) break # if no exception was raised, the codesign worked except ManifestError as err: # 'err' goes out of scope @@ -1804,10 +1812,12 @@ class Darwin_x86_64_Manifest(ViewerManifest): else: print("Maximum codesign attempts exceeded; giving up", file=sys.stderr) raise sign_failed - # This fails sometimes and works other times. Even when notarization (down below) is a success - # Remove it for now and investigate after we did notarize a few times - #self.run_command(['spctl', '-a', '-texec', '-vvvv', app_in_dmg]) - self.run_command([self.src_path_of("installers/darwin/apple-notarize.sh"), app_in_dmg]) + + if not ad_hoc_sign: + # This fails sometimes and works other times. Even when notarization (down below) is a success + # Remove it for now and investigate after we did notarize a few times + #self.run_command(['spctl', '-a', '-texec', '-vvvv', app_in_dmg]) + self.run_command([self.src_path_of("installers/darwin/apple-notarize.sh"), app_in_dmg]) finally: # Unmount the image even if exceptions from any of the above From 2ca5c9ed7497b95a34891faf4deb36aaf2da210a Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 17 Oct 2025 23:54:36 +0200 Subject: [PATCH 19/19] Sync with develop --- indra/newview/skins/default/xui/en/floater_marketplace.xml | 2 +- indra/newview/skins/default/xui/en/floater_search.xml | 2 +- indra/newview/skins/default/xui/en/notifications.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/skins/default/xui/en/floater_marketplace.xml b/indra/newview/skins/default/xui/en/floater_marketplace.xml index 99fb3a1ad8..b3bea48600 100644 --- a/indra/newview/skins/default/xui/en/floater_marketplace.xml +++ b/indra/newview/skins/default/xui/en/floater_marketplace.xml @@ -12,7 +12,7 @@ save_rect="true" single_instance="true" save_visibility="true" - title="MARKETPLACE" + title="Marketplace" tab_stop="true" width="780"> Model upload is not yet available on Apple Silicon, but will be supported in an upcoming release. - -Workaround: Right-click the Second Life app in Finder, select + +Workaround: Right-click the [APP_NAME] app in Finder, select "Get Info", then check "Open using Rosetta" fail