diff options
| -rw-r--r-- | .github/workflows/build.yaml | 61 | ||||
| -rw-r--r-- | BuildParams | 73 | ||||
| -rwxr-xr-x | build.sh | 13 | ||||
| -rwxr-xr-x | indra/fix-incredibuild.py | 61 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 12 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 14 | 
6 files changed, 41 insertions, 193 deletions
| diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ddb0f44150..44f32c1c5d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -12,14 +12,10 @@ jobs:      strategy:        matrix:          runner: [windows-large, macos-12-xl] -        configuration: [Release, ReleaseOS] -        python-version: ["3.11"] +        configuration: [Release]          include:            - runner: macos-12-xl              developer_dir: "/Applications/Xcode_14.0.1.app/Contents/Developer" -        exclude: -          - runner: macos-12-xl -            configuration: ReleaseOS      runs-on: ${{ matrix.runner }}      outputs:        viewer_channel: ${{ steps.build.outputs.viewer_channel }} @@ -67,7 +63,7 @@ jobs:        - name: Setup python          uses: actions/setup-python@v5          with: -          python-version: ${{ matrix.python-version }} +          python-version: "3.11"        - name: Checkout build variables          uses: actions/checkout@v4 @@ -101,7 +97,7 @@ jobs:        - name: Determine source branch          id: which-branch -        uses: secondlife/viewer-build-util/which-branch@v1 +        uses: secondlife/viewer-build-util/which-branch@v2          with:            token: ${{ github.token }} @@ -224,7 +220,7 @@ jobs:        - name: Upload executable          if: matrix.configuration != 'ReleaseOS' && steps.build.outputs.viewer_app -        uses: actions/upload-artifact@v3 +        uses: actions/upload-artifact@v4          with:            name: "${{ steps.build.outputs.artifact }}-app"            path: | @@ -234,7 +230,7 @@ jobs:        # artifact for that too.        - name: Upload symbol file          if: matrix.configuration != 'ReleaseOS' -        uses: actions/upload-artifact@v3 +        uses: actions/upload-artifact@v4          with:            name: "${{ steps.build.outputs.artifact }}-symbols"            path: | @@ -242,7 +238,7 @@ jobs:        - name: Upload metadata          if: matrix.configuration != 'ReleaseOS' -        uses: actions/upload-artifact@v3 +        uses: actions/upload-artifact@v4          with:            name: "${{ steps.build.outputs.artifact }}-metadata"            # emitted by build.sh, possibly multiple lines @@ -250,7 +246,7 @@ jobs:              ${{ steps.build.outputs.metadata }}        - name: Upload physics package -        uses: actions/upload-artifact@v3 +        uses: actions/upload-artifact@v4          # should only be set for viewer-private          if: matrix.configuration != 'ReleaseOS' && steps.build.outputs.physicstpv          with: @@ -271,7 +267,7 @@ jobs:      steps:        - name: Sign and package Windows viewer          if: env.AZURE_KEY_VAULT_URI && env.AZURE_CERT_NAME && env.AZURE_CLIENT_ID && env.AZURE_CLIENT_SECRET && env.AZURE_TENANT_ID -        uses: secondlife/viewer-build-util/sign-pkg-windows@v1 +        uses: secondlife/viewer-build-util/sign-pkg-windows@v2          with:            vault_uri: "${{ env.AZURE_KEY_VAULT_URI }}"            cert_name: "${{ env.AZURE_CERT_NAME }}" @@ -310,7 +306,7 @@ jobs:        - name: Sign and package Mac viewer          if: env.SIGNING_CERT_MACOS && env.SIGNING_CERT_MACOS_IDENTITY && env.SIGNING_CERT_MACOS_PASSWORD && steps.note-creds.outputs.note_user && steps.note-creds.outputs.note_pass && steps.note-creds.outputs.note_team -        uses: secondlife/viewer-build-util/sign-pkg-mac@v1 +        uses: secondlife/viewer-build-util/sign-pkg-mac@v2          with:            channel: ${{ needs.build.outputs.viewer_channel }}            imagename: ${{ needs.build.outputs.imagename }} @@ -330,7 +326,7 @@ jobs:      steps:        - name: Post Windows symbols          if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS -        uses: secondlife/viewer-build-util/post-bugsplat-windows@v1 +        uses: secondlife/viewer-build-util/post-bugsplat-windows@v2          with:            username: ${{ env.BUGSPLAT_USER }}            password: ${{ env.BUGSPLAT_PASS }} @@ -347,7 +343,7 @@ jobs:      steps:        - name: Post Mac symbols          if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS -        uses: secondlife/viewer-build-util/post-bugsplat-mac@v1 +        uses: secondlife/viewer-build-util/post-bugsplat-mac@v2          with:            username: ${{ env.BUGSPLAT_USER }}            password: ${{ env.BUGSPLAT_PASS }} @@ -360,31 +356,20 @@ jobs:      runs-on: ubuntu-latest      if: github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life_')      steps: -      - uses: actions/download-artifact@v3 -        with: -          name: Windows-installer - -      - uses: actions/download-artifact@v3 -        with: -          name: macOS-installer - -      - uses: actions/download-artifact@v3 +      - uses: actions/download-artifact@v4          with: -          name: Windows-metadata - -      - name: Rename windows metadata  -        run: | -          mv autobuild-package.xml Windows-autobuild-package.xml -          mv newview/viewer_version.txt Windows-viewer_version.txt +          pattern: "*-installer" -      - uses: actions/download-artifact@v3 +      - uses: actions/download-artifact@v4          with: -          name: macOS-metadata - -      - name: Rename macOS metadata  +          pattern: "*-metadata" +       +      - name: Rename metadata          run: | -          mv autobuild-package.xml macOS-autobuild-package.xml -          mv newview/viewer_version.txt macOS-viewer_version.txt +          cp Windows-metadata/autobuild-package.xml Windows-autobuild-package.xml +          cp Windows-metadata/newview/viewer_version.txt Windows-viewer_version.txt +          cp macOS-metadata/autobuild-package.xml macOS-autobuild-package.xml +          cp macOS-metadata/newview/viewer_version.txt macOS-viewer_version.txt        # forked from softprops/action-gh-release        - name: Create GitHub release @@ -407,8 +392,8 @@ jobs:            append_body: true            fail_on_unmatched_files: true            files: | -            *.dmg  -            *.exe +            macOS-installer/*.dmg  +            Windows-installer/*.exe              *-autobuild-package.xml              *-viewer_version.txt diff --git a/BuildParams b/BuildParams deleted file mode 100644 index dda25e3e63..0000000000 --- a/BuildParams +++ /dev/null @@ -1,73 +0,0 @@ -# BuildParams -# -# Please refer to: -#  https://wiki.secondlife.com/wiki/Automated_Build_System - -# Variants (NOTE: 'Release' must be last for uploads to work correctly) -variants = "RelWithDebInfo Release" - -# Use Public Upload Locations -public_build = true -build_docs = true - -# enable Doxygen building on Linux for TeamCity (it can be done manually on any platform) -build_Linux_Doxygen = true - -# Need viewer-build-variables as well as other shared repositories -buildscripts_shared_more_NAMEs="build_secrets build_variables git_hooks" - -# Python 3 / SL-15742 -BUILDSCRIPTS_PY3 = "true" - -################################################################ -####      Examples of how to set the viewer_channel         #### -# -# To build a Release or Release candidate in build bingo: -#    bingo.viewer_channel = "Second Life Release" -# -# To build a Beta for the 'Bingo' project in build bingo: -#    bingo.viewer_channel = "Second Life Beta Bingo" -# -# To build a Project viewer for the 'Bingo' project in build bingo: -#    bingo.viewer_channel = "Second Life Project Bingo" -# -# If left unset, viewer_channel defaults to 'Second Life Test', -# which is appropriate for individual developer builds. -# -# All Linden Lab builds (and only Linden Lab builds) -# should use a viewer_channel that begins with "Second Life" -################################################################ -viewer_channel = "Second Life Test" - - -################################################################ -# Special packaging parameters. -# These parameters can be used to create additional packages -# which identify themselves in a distinct way with either -# a sourceid (sent to web services) or a channel name (sent to login) -# the default sourceid should always be a null string: -sourceid = "" -# the additional_packages variable is a blank separated list of package prefixes: -# additional_packages = "" -# to set the special values for a package, create variables using each prefix: -#   additional_packages = "Foo Bar" -#   Foo_sourceid = "bingo" -#   Foo_viewer_channel_suffix = "Foo" -#   Bar_sourceid = "bongo" -#   Bar_viewer_channel_suffix = "Bar" -# the viewer_channel_suffix is prefixed by a blank and then appended to the viewer_channel -# for the package in a setting that overrides the compiled-in value -################################################################ -additional_packages = "EDU" -Linux.additional_packages = "" - -# The EDU package allows us to create a separate release channel whose expirations -# are synchronized as much as possible with the academic year -EDU_sourceid = "" -EDU_viewer_channel_suffix = "edu" - -# Notifications - to configure email notices use the TeamCity parameter -# setting screen for your project or build configuration to set the -# environment variable 'email' to a space-separated list of email addresses -email="" - @@ -6,9 +6,6 @@  # it relies on the environment that sets up, functions it provides, and  # the build result post-processing it does.  # -# The shared buildscript build.sh invokes this because it is named 'build.sh', -# which is the default custom build script name in buildscripts/hg/BuildParams -#  # PLEASE NOTE:  #  # * This script is interpreted on three platforms, including windows and cygwin @@ -85,7 +82,7 @@ installer_Linux()  {    local package_name="$1"    local package_dir="$(build_dir_Linux)/newview/" -  local pattern=".*$(viewer_channel_suffix ${package_name})_[0-9]+_[0-9]+_[0-9]+_[0-9]+_i686\\.tar\\.bz2\$" +  local pattern=".*$(viewer_channel_suffix ${package_name})_[0-9]+_[0-9]+_[0-9]+_[0-9]+_i686\\.tar\\.xz\$"    # since the additional packages are built after the base package,    # sorting oldest first ensures that the unqualified package is returned    # even if someone makes a qualified name that duplicates the last word of the base name @@ -173,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.bz2")" +        VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/newview/$variant/secondlife-symbols-$symplat-${AUTOBUILD_ADDRSIZE}.tar.xz")"      fi      # honor autobuild_configure_parameters same as sling-buildscripts @@ -417,10 +414,10 @@ do                fi                if [ -d "$build_dir/doxygen/html" ]                then -                  tar -c -f "$build_dir/viewer-doxygen.tar.bz2" --strip-components 3  "$build_dir/doxygen/html" -                  python_cmd "$helpers/codeticket.py" addoutput "Doxygen Tarball" "$build_dir/viewer-doxygen.tar.bz2" \ +                  tar -cJf "$build_dir/viewer-doxygen.tar.xz" --strip-components 3  "$build_dir/doxygen/html" +                  python_cmd "$helpers/codeticket.py" addoutput "Doxygen Tarball" "$build_dir/viewer-doxygen.tar.xz" \                        || fatal "Upload of doxygen tarball failed" -                  metadata+=("$build_dir/viewer-doxygen.tar.bz2") +                  metadata+=("$build_dir/viewer-doxygen.tar.xz")                fi                ;;              *) diff --git a/indra/fix-incredibuild.py b/indra/fix-incredibuild.py deleted file mode 100755 index 678ee4329e..0000000000 --- a/indra/fix-incredibuild.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python3 -##  -## $LicenseInfo:firstyear=2011&license=viewerlgpl$ -## Second Life Viewer Source Code -## Copyright (C) 2011, Linden Research, Inc. -##  -## This library is free software; you can redistribute it and/or -## modify it under the terms of the GNU Lesser General Public -## License as published by the Free Software Foundation; -## version 2.1 of the License only. -##  -## This library is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -## Lesser General Public License for more details. -##  -## You should have received a copy of the GNU Lesser General Public -## License along with this library; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA -##  -## Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA -## $/LicenseInfo$ - -import sys -import os -import glob - -def delete_file_types(path, filetypes): -    if os.path.exists(path): -        print('Cleaning: ' + path) -        orig_dir = os.getcwd(); -        os.chdir(path) -        filelist = [] -        for type in filetypes: -            filelist.extend(glob.glob(type)) -        for file in filelist: -            os.remove(file) -        os.chdir(orig_dir) - -def main(): -    build_types = ['*.exp','*.exe','*.pdb','*.idb', -                 '*.ilk','*.lib','*.obj','*.ib_pdb_index'] -    pch_types = ['*.pch'] -    delete_file_types("build-vc80/newview/Release", build_types) -    delete_file_types("build-vc80/newview/secondlife-bin.dir/Release/",  -                      pch_types) -    delete_file_types("build-vc80/newview/RelWithDebInfo", build_types) -    delete_file_types("build-vc80/newview/secondlife-bin.dir/RelWithDebInfo/",  -                      pch_types) -    delete_file_types("build-vc80/newview/Debug", build_types) -    delete_file_types("build-vc80/newview/secondlife-bin.dir/Debug/",  -                      pch_types) - - -    delete_file_types("build-vc80/test/RelWithDebInfo", build_types) -    delete_file_types("build-vc80/test/test.dir/RelWithDebInfo/",  -                      pch_types) - - -if __name__ == "__main__": -    main() diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 3eb3fadbf1..cc1fcdb3fe 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1800,7 +1800,7 @@ if (WINDOWS)      if (PACKAGE)        add_custom_command( -        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2 +        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.xz          COMMAND ${PYTHON_EXECUTABLE}          ARGS            ${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py @@ -1843,7 +1843,7 @@ if (WINDOWS)          )          # temporarily disable packaging of event_host until hg subrepos get          # sorted out on the parabuild cluster... -        #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2) +        #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.xz)      endif (PACKAGE)  elseif (DARWIN) @@ -1963,7 +1963,7 @@ if (LINUX)    #endif (NOT USE_BUGSPLAT)    add_custom_command( -      OUTPUT ${product}.tar.bz2 +      OUTPUT ${product}.tar.xz        COMMAND ${PYTHON_EXECUTABLE}        ARGS          ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py @@ -2015,7 +2015,7 @@ if (LINUX)    add_custom_target(copy_l_viewer_manifest ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched)    if (PACKAGE) -    add_custom_target(llpackage ALL DEPENDS ${product}.tar.bz2) +    add_custom_target(llpackage ALL DEPENDS ${product}.tar.xz)      # Make sure we don't run two instances of viewer_manifest.py at the same time.      add_dependencies(llpackage copy_l_viewer_manifest)      check_message_template(llpackage) @@ -2144,12 +2144,12 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE          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.bz2; +        # 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.          COMMAND "tar"          ARGS -          "cjf" +          "cJf"            "${VIEWER_SYMBOL_FILE_CYGWIN}"            "-C"            "${PARENT_DIRECTORY_CYGWIN}" diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 3fb0a02c23..63383e52bb 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -525,7 +525,7 @@ class Windows_x86_64_Manifest(ViewerManifest):                                               'secondlife-bin.*',                                               '*_Setup.exe',                                               '*.bat', -                                             '*.tar.bz2'))) +                                             '*.tar.xz')))              with self.prefix(src=os.path.join(pkgdir, "VMP")):                  # include the compiled launcher scripts so that it gets included in the file_list @@ -1172,9 +1172,9 @@ class Darwin_x86_64_Manifest(ViewerManifest):              # causes problems, especially with frameworks: a framework's top              # level must contain symlinks into its Versions/Current, which              # must itself be a symlink to some specific Versions subdir. -            tarpath = os.path.join(RUNNER_TEMP, "viewer.tar.bz2") +            tarpath = os.path.join(RUNNER_TEMP, "viewer.tar.xz")              print(f'Creating {tarpath} from {self.get_dst_prefix()}') -            with tarfile.open(tarpath, mode="w:bz2") as tarball: +            with tarfile.open(tarpath, mode="w:xz") as tarball:                  # Store in the tarball as just 'Second Life Mumble.app'                  # instead of 'Users/someone/.../newview/Release/Second...'                  # It's at this point that we rename 'Second Life Release.app' @@ -1261,7 +1261,7 @@ class LinuxManifest(ViewerManifest):              self.run_command(['find', self.get_dst_prefix(),                                '-type', 'f', '-perm', old,                                '-exec', 'chmod', new, '{}', ';']) -        self.package_file = installer_name + '.tar.bz2' +        self.package_file = installer_name + '.tar.xz'          # temporarily move directory tree so that it has the right          # name in the tarfile @@ -1274,10 +1274,10 @@ class LinuxManifest(ViewerManifest):                  # --numeric-owner hides the username of the builder for                  # security etc.                  self.run_command(['tar', '-C', self.get_build_prefix(), -                                  '--numeric-owner', '-cjf', -                                 tempname + '.tar.bz2', installer_name]) +                                  '--numeric-owner', '-cJf', +                                 tempname + '.tar.xz', installer_name])              else: -                print("Skipping %s.tar.bz2 for non-Release build (%s)" % \ +                print("Skipping %s.tar.xz for non-Release build (%s)" % \                        (installer_name, self.args['buildtype']))          finally:              self.run_command(["mv", tempname, realname]) | 
