From 056a8ba1b15b191abe36958b91079a829f7a6d09 Mon Sep 17 00:00:00 2001 From: MarkosTh09 Date: Thu, 30 Apr 2026 10:52:49 +0400 Subject: [PATCH] macos: hack to fix homebrew rpath issues --- .ci/deploy-mac.sh | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.ci/deploy-mac.sh b/.ci/deploy-mac.sh index 23f98b2d94..3e4114f75d 100755 --- a/.ci/deploy-mac.sh +++ b/.ci/deploy-mac.sh @@ -57,9 +57,26 @@ rm -f rpcs3.app/Contents/translations/qt_help_*.qm || true mv rpcs3.app RPCS3_.app mv RPCS3_.app RPCS3.app -# Hack -install_name_tool -delete_rpath /opt/homebrew/lib RPCS3.app/Contents/MacOS/rpcs3 || true -install_name_tool -delete_rpath /usr/local/lib RPCS3.app/Contents/MacOS/rpcs3 || true +# Hack to fix rpath issues +BIN="RPCS3.app/Contents/MacOS/rpcs3" +install_name_tool -delete_rpath /opt/homebrew/lib $BIN || true +install_name_tool -delete_rpath /usr/local/lib $BIN || true +install_name_tool -add_rpath @executable_path/../Frameworks "$BIN" 2>/dev/null || true + +# Fix dylib IDs +for lib in RPCS3.app/Contents/Frameworks/*.dylib; do + name=$(basename "$lib") + install_name_tool -id "@rpath/$name" "$lib" +done + +# Rewrite any hardcoded Homebrew paths to use @rpath +find "$BIN" -type f \( -perm +111 -o -name "*.dylib" \) | while read -r bin; do + otool -L "$bin" | grep -E "/opt/homebrew|/usr/local" | awk '{print $1}' | while read -r dep; do + base=$(basename "$dep") + echo "Fixing $dep -> @rpath/$base in $bin" + install_name_tool -change "$dep" "@rpath/$base" "$bin" + done +done # NOTE: "--deep" is deprecated codesign --deep -fs - RPCS3.app