From 293187e04b5dfbc002fd694b75ffdca4b2fdbc8e Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Mon, 5 Aug 2024 18:17:03 -0700 Subject: Build mac symbols for multiple binaries/dynamic libraries and upload them all to bugsplat --- .github/workflows/build.yaml | 16 ++++++++++++++-- build.sh | 4 ++-- indra/cmake/Linking.cmake | 1 + indra/llwebrtc/CMakeLists.txt | 2 ++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 57faafc042..c2abc503bb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -390,15 +390,27 @@ jobs: needs: build runs-on: ubuntu-latest steps: + - name: Download Mac Symbols + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + uses: actions/download-artifact@v4 + with: + name: macOS-symbols + path: _artifacts + - name: Unpack Mac Symbols + run: | + mkdir _extracted + tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.gz -C _extracted - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: secondlife/viewer-build-util/post-bugsplat-mac@v2 + uses: Bugsplat-Git/symbol-upload@v9.1.1 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} database: "SecondLife_Viewer_2018" - channel: ${{ needs.build.outputs.viewer_channel }} + application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} + directory: _extracted + files: "**/*.dSYM" release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] diff --git a/build.sh b/build.sh index e025b73170..1a7ef1a941 100755 --- a/build.sh +++ b/build.sh @@ -527,8 +527,8 @@ then if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then # BugSplat wants to see xcarchive.zip - # e.g. build-darwin-x86_64/newview/Release/Second Life Test.xcarchive.zip - symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.xcarchive.zip" + # e.g. build-darwin-x86_64/newview/Release/Second Life Test.sym.tar.gz + symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.sym.tar.gz if [[ ! -f "$symbol_file" ]] then # symbol tarball we prep for (e.g.) Breakpad diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index 0ab30d0800..a5b8767923 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -19,6 +19,7 @@ if (WINDOWS OR DARWIN ) endif() else() set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/$,$,>) + set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$,$,>) endif() if( DARWIN ) diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index fd1788c5d4..a8d23b461a 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -41,6 +41,8 @@ if (WINDOWS) iphlpapi) elseif (DARWIN) target_link_libraries(llwebrtc PRIVATE ll::webrtc) + set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}") elseif (LINUX) target_link_libraries(llwebrtc PRIVATE ll::webrtc) endif (WINDOWS) -- cgit v1.2.3 From e96416bdd2ed20b8b5a1fc08a35c7a4ee4eee832 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Mon, 5 Aug 2024 19:25:59 -0700 Subject: missing quotes --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 1a7ef1a941..26c4399ae8 100755 --- a/build.sh +++ b/build.sh @@ -528,7 +528,7 @@ then then # BugSplat wants to see xcarchive.zip # e.g. build-darwin-x86_64/newview/Release/Second Life Test.sym.tar.gz - symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.sym.tar.gz + symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.sym.tar.gz" if [[ ! -f "$symbol_file" ]] then # symbol tarball we prep for (e.g.) Breakpad -- cgit v1.2.3 From 946b165b99fe1cffbb756a6ee8ff3fa7af756cc6 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Mon, 5 Aug 2024 21:34:52 -0700 Subject: Missed file --- build.sh | 1 - indra/newview/CMakeLists.txt | 40 ++++++++++++++++------------------------ 2 files changed, 16 insertions(+), 25 deletions(-) diff --git a/build.sh b/build.sh index 26c4399ae8..e09e6f9f5c 100755 --- a/build.sh +++ b/build.sh @@ -526,7 +526,6 @@ then # nat 2016-12-22: without RELEASE_CRASH_REPORTING, we have no symbol file. if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then - # BugSplat wants to see xcarchive.zip # e.g. build-darwin-x86_64/newview/Release/Second Life Test.sym.tar.gz symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.sym.tar.gz" if [[ ! -f "$symbol_file" ]] diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index da4060ccec..8ff96f0f3b 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2086,7 +2086,7 @@ if (DARWIN) set(VIEWER_APP_BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/$,$,>/${product}.app") set(VIEWER_APP_EXE "${VIEWER_APP_BUNDLE}/Contents/MacOS/${product}") set(VIEWER_APP_DSYM "${VIEWER_APP_EXE}.dSYM") - set(VIEWER_APP_XCARCHIVE "${VIEWER_APP_BUNDLE}/../${product}.xcarchive.zip") + set(VIEWER_APP_SYMBOLS_ARCHIVE "${VIEWER_APP_BUNDLE}/../${product}.sym.tar.gz") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/Info-SecondLife.plist" @@ -2191,41 +2191,33 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE add_dependencies(generate_symbols ${VIEWER_BINARY_NAME}) endif (WINDOWS) if (DARWIN) - # Have to run dsymutil first, then pack up the resulting .dSYM directory - add_custom_command(OUTPUT "${VIEWER_APP_DSYM}" - COMMAND "dsymutil" - ARGS - ${VIEWER_APP_EXE} - COMMENT "Generating ${VIEWER_APP_DSYM}" - ) - add_custom_target(dsym_generate DEPENDS "${VIEWER_APP_DSYM}") - add_dependencies(dsym_generate ${VIEWER_BINARY_NAME}) - add_custom_command(OUTPUT "${VIEWER_APP_XCARCHIVE}" - COMMAND "zip" + set_target_properties(${VIEWER_BINARY_NAME} + PROPERTIES + XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}") + add_custom_command(OUTPUT "${VIEWER_APP_SYMBOLS_ARCHIVE}" + COMMAND "tar" ARGS - "-r" - "${VIEWER_APP_XCARCHIVE}" + "-cJf" + "${VIEWER_APP_SYMBOLS_ARCHIVE}" + "-C" + "${SYMBOLS_STAGING_DIR}" "." - WORKING_DIRECTORY "${VIEWER_APP_DSYM}/.." - DEPENDS "${VIEWER_APP_DSYM}" - COMMENT "Generating xcarchive.zip for upload to BugSplat" + DEPENDS "${VIEWER_BINARY_NAME}" + COMMENT "Generating symbols archive for upload to BugSplat" ) - add_custom_target(dsym_xcarchive DEPENDS "${VIEWER_APP_XCARCHIVE}") - add_dependencies(dsym_xcarchive dsym_generate) # Have to create a stamp file, and depend on it, to force CMake to run # the cleanup step. add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/dsym.stamp" COMMAND rm -rf "${VIEWER_APP_DSYM}" COMMAND touch "${CMAKE_CURRENT_BINARY_DIR}/dsym.stamp" - DEPENDS "${VIEWER_APP_XCARCHIVE}" - COMMENT "Cleaning up dSYM" + DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}" + COMMENT "Cleaning up symbols archive" ) add_custom_target(generate_symbols DEPENDS - "${VIEWER_APP_DSYM}" - "${VIEWER_APP_XCARCHIVE}" + "${VIEWER_APP_SYMBOLS_ARCHIVE}" "${CMAKE_CURRENT_BINARY_DIR}/dsym.stamp" ) - add_dependencies(generate_symbols dsym_xcarchive) endif (DARWIN) if (LINUX) # TBD -- cgit v1.2.3 From 07573f7e10a9ce4df2c2a0f6c6eb5f0935da57a6 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Mon, 5 Aug 2024 23:16:48 -0700 Subject: allow paths with spaces --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c2abc503bb..cf14bac0a2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -399,7 +399,7 @@ jobs: - name: Unpack Mac Symbols run: | mkdir _extracted - tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.gz -C _extracted + tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.gz" -C _extracted - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 -- cgit v1.2.3 From 83c1f45dbacecd9a9fe2a99c8dcd307b143f2b35 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 00:26:43 -0700 Subject: Download osx artifacts to working directory --- .github/workflows/build.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index cf14bac0a2..506dbff664 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,7 +395,6 @@ jobs: uses: actions/download-artifact@v4 with: name: macOS-symbols - path: _artifacts - name: Unpack Mac Symbols run: | mkdir _extracted -- cgit v1.2.3 From c52c25e10db2b86a70929793a5d723c012a37671 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 12:06:40 -0700 Subject: As bugspat upload is broken for dylibs within .dSYM bundles, upload the dylibs directly --- .github/workflows/build.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 506dbff664..21016c1015 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -399,7 +399,7 @@ jobs: run: | mkdir _extracted tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.gz" -C _extracted - - name: Post Mac symbols + - name: Post Mac Executable symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 with: @@ -409,7 +409,18 @@ jobs: application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} directory: _extracted - files: "**/*.dSYM" + files: "**/*.app.dSYM" + - name: Post Mac Dylib symbols + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + uses: Bugsplat-Git/symbol-upload@v9.1.1 + with: + username: ${{ env.BUGSPLAT_USER }} + password: ${{ env.BUGSPLAT_PASS }} + database: "SecondLife_Viewer_2018" + application: ${{ needs.build.outputs.viewer_channel }} + version: ${{ needs.build.outputs.viewer_version }} + directory: _extracted + files: "**/*.dylib" release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] -- cgit v1.2.3 From ece9cb8022d1c889bfd02ce52f0dd470460d5a21 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 18:41:46 -0700 Subject: Build an xcarchive for mac symbol upload. --- build.sh | 4 ++-- indra/llwebrtc/CMakeLists.txt | 2 +- indra/newview/CMakeLists.txt | 40 ++++++++++++++++------------------------ 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/build.sh b/build.sh index e09e6f9f5c..ab78b56515 100755 --- a/build.sh +++ b/build.sh @@ -526,8 +526,8 @@ then # nat 2016-12-22: without RELEASE_CRASH_REPORTING, we have no symbol file. if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then - # e.g. build-darwin-x86_64/newview/Release/Second Life Test.sym.tar.gz - symbol_file="${build_dir}/newview/${variant}/${viewer_channel}.sym.tar.gz" + # e.g. build-darwin-x86_64/symbols/Release/Second Life Test.xarchive.zip + symbol_file="${build_dir}/symbols/${variant}/${viewer_channel}.xarchive.zip" if [[ ! -f "$symbol_file" ]] then # symbol tarball we prep for (e.g.) Breakpad diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index a8d23b461a..e7c7248b0c 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -42,7 +42,7 @@ if (WINDOWS) elseif (DARWIN) target_link_libraries(llwebrtc PRIVATE ll::webrtc) set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}") + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") elseif (LINUX) target_link_libraries(llwebrtc PRIVATE ll::webrtc) endif (WINDOWS) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 8ff96f0f3b..000f2e2684 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2085,8 +2085,8 @@ if (DARWIN) set(VIEWER_APP_BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/$,$,>/${product}.app") set(VIEWER_APP_EXE "${VIEWER_APP_BUNDLE}/Contents/MacOS/${product}") - set(VIEWER_APP_DSYM "${VIEWER_APP_EXE}.dSYM") set(VIEWER_APP_SYMBOLS_ARCHIVE "${VIEWER_APP_BUNDLE}/../${product}.sym.tar.gz") + set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/Info-SecondLife.plist" @@ -2191,32 +2191,24 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE add_dependencies(generate_symbols ${VIEWER_BINARY_NAME}) endif (WINDOWS) if (DARWIN) - set_target_properties(${VIEWER_BINARY_NAME} + # we only need an xcarchive with dSYMs (including the application) + set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}") - add_custom_command(OUTPUT "${VIEWER_APP_SYMBOLS_ARCHIVE}" - COMMAND "tar" - ARGS - "-cJf" - "${VIEWER_APP_SYMBOLS_ARCHIVE}" - "-C" - "${SYMBOLS_STAGING_DIR}" - "." - DEPENDS "${VIEWER_BINARY_NAME}" - COMMENT "Generating symbols archive for upload to BugSplat" - ) - # Have to create a stamp file, and depend on it, to force CMake to run - # the cleanup step. - add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/dsym.stamp" - COMMAND rm -rf "${VIEWER_APP_DSYM}" - COMMAND touch "${CMAKE_CURRENT_BINARY_DIR}/dsym.stamp" - DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}" - COMMENT "Cleaning up symbols archive" - ) + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${product}/dSYMs") + + add_custom_command(OUTPUT "${VIEWER_APP_XCARCHIVE}" + COMMAND "zip" + ARGS + "-r" + "${VIEWER_APP_XCARCHIVE}" + "${product}" + WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" + DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc + COMMENT "Generating ${VIEWER_APP_XCARCHIVE} for upload to BugSplat" + ) add_custom_target(generate_symbols DEPENDS - "${VIEWER_APP_SYMBOLS_ARCHIVE}" - "${CMAKE_CURRENT_BINARY_DIR}/dsym.stamp" + "${VIEWER_APP_XCARCHIVE}" ) endif (DARWIN) if (LINUX) -- cgit v1.2.3 From b6cd0cd7d0e3086c10c8d98deaeda65b7d95bcb4 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 19:43:26 -0700 Subject: misspelled xcarchive --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index ab78b56515..2a2227657b 100755 --- a/build.sh +++ b/build.sh @@ -527,7 +527,7 @@ then if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then # e.g. build-darwin-x86_64/symbols/Release/Second Life Test.xarchive.zip - symbol_file="${build_dir}/symbols/${variant}/${viewer_channel}.xarchive.zip" + symbol_file="${build_dir}/symbols/${variant}/${viewer_channel}.xcarchive.zip" if [[ ! -f "$symbol_file" ]] then # symbol tarball we prep for (e.g.) Breakpad -- cgit v1.2.3 From fc0e70e77b44a510ad1bf2a34fa04236aa4624a2 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 21:00:48 -0700 Subject: upload xcarchive to bugsplat --- .github/workflows/build.yaml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 21016c1015..c88a23b85e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,10 +395,6 @@ jobs: uses: actions/download-artifact@v4 with: name: macOS-symbols - - name: Unpack Mac Symbols - run: | - mkdir _extracted - tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.gz" -C _extracted - name: Post Mac Executable symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 @@ -408,8 +404,8 @@ jobs: database: "SecondLife_Viewer_2018" application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} - directory: _extracted - files: "**/*.app.dSYM" + directory: . + files: "**/*.xcarchive.zip" - name: Post Mac Dylib symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 -- cgit v1.2.3 From 753cf01ef0165e840d90fe9e9b943eb27c2b6f19 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Tue, 6 Aug 2024 22:24:38 -0700 Subject: don't need to post dylib as we're using xcarchive --- .github/workflows/build.yaml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c88a23b85e..03dcad2158 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -395,7 +395,7 @@ jobs: uses: actions/download-artifact@v4 with: name: macOS-symbols - - name: Post Mac Executable symbols + - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 with: @@ -406,17 +406,6 @@ jobs: version: ${{ needs.build.outputs.viewer_version }} directory: . files: "**/*.xcarchive.zip" - - name: Post Mac Dylib symbols - if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v9.1.1 - with: - username: ${{ env.BUGSPLAT_USER }} - password: ${{ env.BUGSPLAT_PASS }} - database: "SecondLife_Viewer_2018" - application: ${{ needs.build.outputs.viewer_channel }} - version: ${{ needs.build.outputs.viewer_version }} - directory: _extracted - files: "**/*.dylib" release: needs: [setvar, build, sign-and-package-windows, sign-and-package-mac] -- cgit v1.2.3 From 63a4ad9b98a21b86986385398f7a93043c4f3650 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 14:16:11 -0700 Subject: Add Windows multi-pdb upload capability --- .github/workflows/build.yaml | 17 +++++++++++++++-- build.sh | 2 +- indra/llwebrtc/CMakeLists.txt | 9 +++++++-- indra/newview/CMakeLists.txt | 40 ++++++++++++++++------------------------ 4 files changed, 39 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 03dcad2158..6e5d166847 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -373,15 +373,28 @@ jobs: needs: build runs-on: ubuntu-latest steps: + - name: Download Windows Symbols + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + uses: actions/download-artifact@v4 + with: + name: Windows-symbols + - name: Extract viewer pdb + if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS + shell: bash + run: | + mkdir _artifacts + tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.xz -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: secondlife/viewer-build-util/post-bugsplat-windows@v2 + uses: Bugsplat-Git/symbol-upload@v9.1.1 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} database: "SecondLife_Viewer_2018" - channel: ${{ needs.build.outputs.viewer_channel }} + application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} + directory: _artifacts + files: "**/*.pdb" post-mac-symbols: env: diff --git a/build.sh b/build.sh index 2a2227657b..1e5e8470eb 100755 --- a/build.sh +++ b/build.sh @@ -170,7 +170,7 @@ pre_build() # This name is consumed by indra/newview/CMakeLists.txt. Make it # absolute because we've had troubles with relative pathnames. abs_build_dir="$(cd "$build_dir"; pwd)" - VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/newview/$variant/secondlife-symbols-$symplat-${AUTOBUILD_ADDRSIZE}.tar.xz")" + VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/symbols/$variant/${viewer_channel}.tar.xz")" fi # honor autobuild_configure_parameters same as sling-buildscripts diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index e7c7248b0c..c6f77ee848 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -39,10 +39,15 @@ if (WINDOWS) msdmo strmiids iphlpapi) + if (USE_BUGSPLAT) + set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + endif (USE_BUGSPLAT) elseif (DARWIN) target_link_libraries(llwebrtc PRIVATE ll::webrtc) - set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") + if (USE_BUGSPLAT) + set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") + endif (USE_BUGSPLAT) elseif (LINUX) target_link_libraries(llwebrtc PRIVATE ll::webrtc) endif (WINDOWS) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 000f2e2684..c5f38a832a 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2085,8 +2085,6 @@ if (DARWIN) set(VIEWER_APP_BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/$,$,>/${product}.app") set(VIEWER_APP_EXE "${VIEWER_APP_BUNDLE}/Contents/MacOS/${product}") - set(VIEWER_APP_SYMBOLS_ARCHIVE "${VIEWER_APP_BUNDLE}/../${product}.sym.tar.gz") - set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/Info-SecondLife.plist" @@ -2159,38 +2157,32 @@ if (INSTALL) include(${CMAKE_CURRENT_SOURCE_DIR}/ViewerInstall.cmake) endif (INSTALL) -# Note that the conventional VIEWER_SYMBOL_FILE is set by ../../build.sh if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIEWER_SYMBOL_FILE) if (USE_BUGSPLAT) # BugSplat symbol-file generation if (WINDOWS) - # Just pack up a tarball containing only the .pdb file for the - # executable. Because we intend to use cygwin tar, we must render - # VIEWER_SYMBOL_FILE in cygwin path syntax. - execute_process(COMMAND "cygpath" "-u" "${VIEWER_SYMBOL_FILE}" - OUTPUT_VARIABLE VIEWER_SYMBOL_FILE_CYGWIN - OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND "cygpath" "-u" "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}" - OUTPUT_VARIABLE PARENT_DIRECTORY_CYGWIN - OUTPUT_STRIP_TRAILING_WHITESPACE) - add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}" - # Use of 'tar ...j' here assumes VIEWER_SYMBOL_FILE endswith .tar.xz; - # testing a string suffix is painful enough in CMake language that - # we'll continue assuming it until forced to generalize. + set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.sym.tar.xz") + set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + + # Just pack up a tarball containing only the .pdb files for the + # executables. + add_custom_command(OUTPUT "${VIEWER_APP_SYMBOLS_ARCHIVE}" COMMAND "tar" ARGS "cJf" - "${VIEWER_SYMBOL_FILE_CYGWIN}" - "-C" - "${PARENT_DIRECTORY_CYGWIN}" - "secondlife-bin.pdb" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/secondlife-bin.pdb" - COMMENT "Packing viewer PDB into ${VIEWER_SYMBOL_FILE_CYGWIN}" + "${VIEWER_CHANNEL}.sym.tar.xz" + "${VIEWER_CHANNEL}" + DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc + WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" + COMMENT "Packing viewer PDBs into ${VIEWER_APP_SYMBOLS_ARCHIVE}" ) - add_custom_target(generate_symbols DEPENDS "${VIEWER_SYMBOL_FILE}" ${VIEWER_BINARY_NAME}) - add_dependencies(generate_symbols ${VIEWER_BINARY_NAME}) + add_custom_target(generate_symbols DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}") + add_dependencies(generate_symbols ${VIEWER_BINARY_NAME} llwebrtc) + endif (WINDOWS) if (DARWIN) + set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") + # we only need an xcarchive with dSYMs (including the application) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES -- cgit v1.2.3 From f6f3d7e0480c9c695abf6c48f553ad0e01121e78 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 14:24:00 -0700 Subject: spacing issue --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6e5d166847..2a174e5d2c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -382,7 +382,7 @@ jobs: if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS shell: bash run: | - mkdir _artifacts + mkdir _artifacts tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.xz -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS -- cgit v1.2.3 From e0737b142362e16c78deac38c11bb24ddbe695bc Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 15:11:03 -0700 Subject: misnamed file --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 1e5e8470eb..93babd9226 100755 --- a/build.sh +++ b/build.sh @@ -170,7 +170,7 @@ pre_build() # This name is consumed by indra/newview/CMakeLists.txt. Make it # absolute because we've had troubles with relative pathnames. abs_build_dir="$(cd "$build_dir"; pwd)" - VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/symbols/$variant/${viewer_channel}.tar.xz")" + VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/symbols/$variant/${viewer_channel}.sym.tar.xz")" fi # honor autobuild_configure_parameters same as sling-buildscripts -- cgit v1.2.3 From 530bc2975315240f6f5dda753b48790364a6312b Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 16:33:00 -0700 Subject: build debug symbols for llwebrtc even for release --- .github/workflows/build.yaml | 2 +- indra/llwebrtc/CMakeLists.txt | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2a174e5d2c..ecd3f22a35 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -383,7 +383,7 @@ jobs: shell: bash run: | mkdir _artifacts - tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.xz -C _artifacts + tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: Bugsplat-Git/symbol-upload@v9.1.1 diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index c6f77ee848..e3404b3a23 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -31,7 +31,11 @@ add_library (llwebrtc SHARED ${llwebrtc_SOURCE_FILES}) set_target_properties(llwebrtc PROPERTIES PUBLIC_HEADER llwebrtc.h) if (WINDOWS) - target_link_libraries(llwebrtc PRIVATE ll::webrtc + set_target_properties(llwebrtc + PROPERTIES + LINK_FLAGS "/debug /LARGEADDRESSAWARE" + ) + target_link_libraries(llwebrtc PRIVATE ll::webrtc secur32 winmm dmoguids -- cgit v1.2.3 From 60003cf077866401a809905474d3369c7795109a Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 19:09:19 -0700 Subject: include viewer exe in uploaded symbols --- .github/workflows/build.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ecd3f22a35..72cdf01634 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -373,6 +373,11 @@ jobs: needs: build runs-on: ubuntu-latest steps: + - name: Download viewer exe + uses: actions/download-artifact@v4 + with: + name: Windows-app + path: _artifacts - name: Download Windows Symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS uses: actions/download-artifact@v4 @@ -382,7 +387,6 @@ jobs: if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS shell: bash run: | - mkdir _artifacts tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS @@ -394,7 +398,7 @@ jobs: application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} directory: _artifacts - files: "**/*.pdb" + files: "**/{SecondLifeViewer.exe,*.pdb}" post-mac-symbols: env: -- cgit v1.2.3 From 83390094f10e0f7069676bf2bd09bd1401ca891c Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Wed, 7 Aug 2024 20:57:05 -0700 Subject: test llwebrtc.dll for additional symbols --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 72cdf01634..d3a3c2ed6e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -398,7 +398,7 @@ jobs: application: ${{ needs.build.outputs.viewer_channel }} version: ${{ needs.build.outputs.viewer_version }} directory: _artifacts - files: "**/{SecondLifeViewer.exe,*.pdb}" + files: "**/{SecondLifeViewer.exe,llwebrtc.dll,*.pdb}" post-mac-symbols: env: -- cgit v1.2.3 From f1f3aa42e8fcb3e1a511c08a23c50aaf291199dc Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Thu, 8 Aug 2024 09:34:48 -0700 Subject: CR fixes --- .github/workflows/build.yaml | 2 +- indra/cmake/Linking.cmake | 2 +- indra/llwebrtc/CMakeLists.txt | 4 ++-- indra/newview/CMakeLists.txt | 14 +++++++------- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 72cdf01634..c998f42905 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -390,7 +390,7 @@ jobs: tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v9.1.1 + uses: Bugsplat-Git/symbol-upload@v10 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index a5b8767923..1d757abeff 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -19,7 +19,7 @@ if (WINDOWS OR DARWIN ) endif() else() set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/$,$,>) - set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$,$,>) + set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$,$,>/${VIEWER_CHANNEL}) endif() if( DARWIN ) diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index e3404b3a23..30aaec1265 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -44,13 +44,13 @@ if (WINDOWS) strmiids iphlpapi) if (USE_BUGSPLAT) - set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}") endif (USE_BUGSPLAT) elseif (DARWIN) target_link_libraries(llwebrtc PRIVATE ll::webrtc) if (USE_BUGSPLAT) set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/dSYMs") endif (USE_BUGSPLAT) elseif (LINUX) target_link_libraries(llwebrtc PRIVATE ll::webrtc) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index c5f38a832a..517b25def5 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2161,8 +2161,8 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE if (USE_BUGSPLAT) # BugSplat symbol-file generation if (WINDOWS) - set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.sym.tar.xz") - set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}.sym.tar.xz") + set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}") # Just pack up a tarball containing only the .pdb files for the # executables. @@ -2173,7 +2173,7 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE "${VIEWER_CHANNEL}.sym.tar.xz" "${VIEWER_CHANNEL}" DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc - WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" + WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}/.." COMMENT "Packing viewer PDBs into ${VIEWER_APP_SYMBOLS_ARCHIVE}" ) add_custom_target(generate_symbols DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}") @@ -2181,21 +2181,21 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE endif (WINDOWS) if (DARWIN) - set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") + set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}.xcarchive.zip") # we only need an xcarchive with dSYMs (including the application) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" - XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${product}/dSYMs") + XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/dSYMs") add_custom_command(OUTPUT "${VIEWER_APP_XCARCHIVE}" COMMAND "zip" ARGS "-r" "${VIEWER_APP_XCARCHIVE}" - "${product}" - WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" + "${VIEWER_CHANNEL}" + WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}/.." DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc COMMENT "Generating ${VIEWER_APP_XCARCHIVE} for upload to BugSplat" ) -- cgit v1.2.3 From cdc83801c5377c1f7a2c677b6d2e52f1e5c6d366 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Thu, 8 Aug 2024 10:32:40 -0700 Subject: bugsplat symbol-upload does not use vMAJOR tags --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3295e5b401..bfa7c5d921 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -390,7 +390,7 @@ jobs: tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v10 + uses: Bugsplat-Git/symbol-upload@v10.0.0 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} -- cgit v1.2.3 From d46c444aee3fa1b3623d8d94151af1bfdae815b1 Mon Sep 17 00:00:00 2001 From: Roxie Linden Date: Thu, 8 Aug 2024 12:03:53 -0700 Subject: Use the secondlife-3p fork of symbol upload, which has vMAJOR tags --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3295e5b401..ebbb9dea88 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -390,7 +390,7 @@ jobs: tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts - name: Post Windows symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v10 + uses: secondlife-3p/symbol-upload@v10 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} @@ -414,7 +414,7 @@ jobs: name: macOS-symbols - name: Post Mac symbols if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS - uses: Bugsplat-Git/symbol-upload@v9.1.1 + uses: secondlife-3p/symbol-upload@v10 with: username: ${{ env.BUGSPLAT_USER }} password: ${{ env.BUGSPLAT_PASS }} -- cgit v1.2.3