Skip to content

Commit 71b82f6

Browse files
committed
Merge branch 'Firestorm_7.1.13' into Heuguchon_1.0.0
# Conflicts: # autobuild.xml # indra/newview/CMakeLists.txt # indra/newview/VIEWER_VERSION.txt # indra/newview/fs_viewer_manifest.py # indra/newview/res/viewerRes.rc # scripts/configure_heuguchon.sh
2 parents 674000e + a009321 commit 71b82f6

2,541 files changed

Lines changed: 122278 additions & 40252 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# clang-format version 10.0.0+
33
Language: Cpp
44
# BasedOnStyle: Microsoft
5-
AccessModifierOffset: -2
5+
AccessModifierOffset: -4
66
AlignAfterOpenBracket: Align
77
AlignConsecutiveMacros: true
88
AlignConsecutiveAssignments: true
@@ -15,14 +15,14 @@ AllowAllConstructorInitializersOnNextLine: false
1515
AllowAllParametersOfDeclarationOnNextLine: false
1616
AllowShortBlocksOnASingleLine: Always
1717
AllowShortCaseLabelsOnASingleLine: false
18-
AllowShortFunctionsOnASingleLine: All
19-
AllowShortLambdasOnASingleLine: All
18+
AllowShortFunctionsOnASingleLine: InlineOnly
19+
AllowShortLambdasOnASingleLine: Inline
2020
AllowShortIfStatementsOnASingleLine: Never
2121
AllowShortLoopsOnASingleLine: false
2222
AlwaysBreakAfterDefinitionReturnType: None
2323
AlwaysBreakAfterReturnType: None
2424
AlwaysBreakBeforeMultilineStrings: false
25-
AlwaysBreakTemplateDeclarations: MultiLine
25+
AlwaysBreakTemplateDeclarations: Yes
2626
BinPackArguments: true
2727
BinPackParameters: true
2828
BreakBeforeBinaryOperators: None
@@ -67,7 +67,7 @@ IndentCaseLabels: true
6767
IndentGotoLabels: true
6868
IndentPPDirectives: None
6969
IndentWidth: 4
70-
IndentWrappedFunctionNames: false
70+
IndentWrappedFunctionNames: true
7171
JavaScriptQuotes: Leave
7272
JavaScriptWrapImports: true
7373
KeepEmptyLinesAtTheStartOfBlocks: false
@@ -91,9 +91,9 @@ PointerAlignment: Left
9191
ReflowComments: true
9292
SortIncludes: false
9393
SortUsingDeclarations: true
94-
SpaceAfterCStyleCast: true
94+
SpaceAfterCStyleCast: false
9595
SpaceAfterLogicalNot: false
96-
SpaceAfterTemplateKeyword: true
96+
SpaceAfterTemplateKeyword: false
9797
SpaceBeforeAssignmentOperators: true
9898
SpaceBeforeCpp11BracedList: false
9999
SpaceBeforeCtorInitializerColon: true
@@ -102,8 +102,8 @@ SpaceBeforeParens: ControlStatements
102102
SpaceBeforeRangeBasedForLoopColon: true
103103
SpaceInEmptyBlock: false
104104
SpaceInEmptyParentheses: false
105-
SpacesBeforeTrailingComments: 2
106-
SpacesInAngles: false
105+
SpacesBeforeTrailingComments: 1
106+
SpacesInAngles: Never
107107
SpacesInContainerLiterals: false
108108
SpacesInCStyleCastParentheses: false
109109
SpacesInParentheses: false

.git-blame-ignore-revs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,16 @@
55
a0b3021bdcf76859054fda8e30abb3ed47749e83
66
8444cd9562a6a7b755fcb075864e205122354192
77
863c541ce0b2e3e1e566cc88423d3e87aaedb6ca
8+
743a1a6d8eabf069d95777c96e5b657cb8702593
9+
4a00da1ada89af6f313cee30f5177634b0b180a9
810
# Wrong line endings
911
1b67dd855c41f5a0cda7ec2a68d98071986ca703
1012
6cc7dd09d5e69cf57e6de7fb568a0ad2693f9c9a
1113
e2e37cced861b98de8c1a7c9c0d3a50d2d90e433
14+
# multiple problems
15+
5370a6d323e14d7b4e32a3f41ef78f7744e361c5
16+
# ignore some of the merges of ws silliness to restore blame reporting
17+
5f1a19af725b90737d50a42a51a7bc1db12c7d13
18+
a17fd2352a9746dd3116f956dcc554f95f17e770
19+
# ignore beq's formatting derp
20+
f8204c43e89d65d981a52aebf033ead5b4b3495a

.github/workflows/build.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ jobs:
4242
needs: setup
4343
strategy:
4444
matrix:
45-
runner: [windows-large, macos-12-xl]
46-
configuration: ${{ fromJSON(needs.setup.outputs.configurations) }}
45+
runner: ${{ fromJson((github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/Second_Life')) && '["windows-large","macos-15-xlarge"]' || '["windows-latest","macos-15"]') }}
46+
configuration: ${{ fromJson(needs.setup.outputs.configurations) }}
4747
runs-on: ${{ matrix.runner }}
4848
outputs:
4949
viewer_channel: ${{ steps.build.outputs.viewer_channel }}
@@ -64,7 +64,7 @@ jobs:
6464
# autobuild-package.xml.
6565
AUTOBUILD_VCS_INFO: "true"
6666
AUTOBUILD_VSVER: "170"
67-
DEVELOPER_DIR: "/Applications/Xcode_14.0.1.app/Contents/Developer"
67+
DEVELOPER_DIR: "/Applications/Xcode_16.1.app/Contents/Developer"
6868
# Ensure that Linden viewer builds engage Bugsplat.
6969
BUGSPLAT_DB: ${{ needs.setup.outputs.bugsplat_db }}
7070
build_coverity: false

.github/workflows/build_viewer.yml

Lines changed: 100 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ on:
66
description: 'Include tracy profiling builds'
77
required: false
88
default: 'false'
9+
override_signing:
10+
description: 'Manual builds are not signned by default. Force code signing for this run.'
11+
required: false
12+
default: 'false'
913
push:
1014
branches:
1115
- "Firestorm*.*.*"
@@ -141,7 +145,18 @@ jobs:
141145
echo "Building for channel ${FS_RELEASE_CHAN}"
142146
viewer_channel=${FS_RELEASE_CHAN}
143147
shell: bash
144-
148+
- name: Check if release type is signable
149+
if: runner.os == 'Windows'
150+
run: |
151+
if [[ "${FS_RELEASE_TYPE}" == "Release" || "${FS_RELEASE_TYPE}" == "Beta" ]]; then
152+
CODESIGNING_ENABLED=true
153+
else
154+
CODESIGNING_ENABLED=false
155+
fi
156+
echo "CODESIGNING_ENABLED=${CODESIGNING_ENABLED}" >> $GITHUB_ENV
157+
echo "Codesigning enabled: ${CODESIGNING_ENABLED}"
158+
shell: bash
159+
145160
- name: Get the code
146161
uses: actions/checkout@v4
147162
with:
@@ -261,7 +276,7 @@ jobs:
261276
done
262277
shell: bash
263278

264-
- name: Set expiration days based on FS_RELEASE_TYPE
279+
- name: Set expiration days and codesigning based on FS_RELEASE_TYPE
265280
run: |
266281
case "${{ env.FS_RELEASE_TYPE }}" in
267282
"Nightly" | "Manual" | "Profiling")
@@ -293,7 +308,17 @@ jobs:
293308
if: ${{ matrix.variant == 'avx' }}
294309
shell: bash
295310
run: echo "EXTRA_ARGS=${{ env.EXTRA_ARGS }} --avx2" >> $GITHUB_ENV
296-
311+
- name: Add custom UA string if provided
312+
env:
313+
FS_PF_UA: ${{ secrets.FS_PF_UA }}
314+
run: |
315+
if [ -n "${FS_PF_UA}" ]; then
316+
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS }} -DFS_PF_USER_AGENT=\"${FS_PF_UA}\"" >> $GITHUB_ENV
317+
echo "Building with custom user-agent string."
318+
else
319+
echo "No custom user-agent string provided."
320+
fi
321+
shell: bash
297322
- name: Clean up packages to give more space
298323
run: rm *${{ env.fallback_platform }}*bz2
299324
shell: bash
@@ -302,6 +327,78 @@ jobs:
302327
autobuild configure -c ReleaseFS -A${addrsize} -- --package --chan ${{env.FS_RELEASE_CHAN}} ${{env.EXTRA_ARGS}} ${{env.FS_GRID}}
303328
echo "BUGSPLAT_DB=$BUGSPLAT_DB" >> $GITHUB_ENV
304329
shell: bash
330+
- name: Generate metadata.json
331+
if: runner.os == 'Windows'
332+
run: |
333+
echo '{
334+
"Endpoint": "${{ secrets.AZURE_ENDPOINT }}",
335+
"CodeSigningAccountName": "${{ secrets.AZURE_CODE_SIGNING_NAME }}",
336+
"CertificateProfileName": "${{ secrets.AZURE_CERT_PROFILE_NAME }}",
337+
"ExcludeCredentials": [
338+
"ManagedIdentityCredential"
339+
]
340+
}' > ${{github.workspace}}/metadata.json
341+
echo "CODESIGNING_METADATA_PATH=${{github.workspace}}/metadata.json" >> $env:GITHUB_ENV
342+
shell: pwsh
343+
- name: Validate Windows 10 SDK version and find signtool.exe IFF codesigning is enabled for these builds or overridden
344+
if: ${{ runner.os == 'Windows' && (env.CODESIGNING_ENABLED == 'true' || github.event.inputs.override_signing == 'true') }}
345+
id: validate-sdk
346+
run: |
347+
try {
348+
$Arch = ($env:RUNNER_ARCH).ToLower()
349+
$SearchBase = "${env:ProgramFiles(x86)}\Windows Kits\10\bin"
350+
351+
"Searching `"$SearchBase`" for signtool ($Arch)..."
352+
$Tool = Get-ChildItem $SearchBase -Recurse -Force -ErrorAction SilentlyContinue |
353+
Where-Object {$_.Name -eq 'signtool.exe' -and $_.Directory -like "*\$Arch"} |
354+
Sort-Object -Descending |
355+
Select-Object -First 1
356+
357+
if (!($Tool)) {throw [System.IO.FileNotFoundException]::new('File not found.', 'signtool.exe')}
358+
359+
'Adding signtool to PATH'
360+
$Tool.Directory.FullName | Out-File $env:GITHUB_PATH -Append
361+
"signtool-$Arch=$($Tool.FullName)" | Out-File $env:GITHUB_OUTPUT -Append
362+
$env:PATH = "$($Tool.Directory.FullName);$env:PATH"
363+
364+
signtool.exe /h
365+
} catch {
366+
Write-Output "::error::$($_.Exception)"
367+
Write-Output '::endgroup::'
368+
369+
exit 1
370+
}
371+
echo "SIGNTOOL_PATH=signtool.exe" >> $env:GITHUB_ENV
372+
shell: pwsh
373+
- name: Install nuget.exe
374+
if: runner.os == 'Windows'
375+
run: |
376+
Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile nuget.exe
377+
shell: pwsh
378+
379+
- name: Install Microsoft.Trusted.Signing.Client
380+
if: runner.os == 'Windows'
381+
run: |
382+
.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.86 -OutputDirectory .
383+
shell: pwsh
384+
385+
- name: Locate Azure.CodeSigning.Dlib.dll
386+
if: runner.os == 'Windows'
387+
run: |
388+
$dllPath = (Get-ChildItem ".\Microsoft.Trusted.Signing.Client.1.0.86\bin\x64\Azure.CodeSigning.Dlib.dll" -Recurse -File | Select-Object -First 1).FullName
389+
if (-not $dllPath) {
390+
Write-Error "Azure.CodeSigning.Dlib.dll not found."
391+
exit 1
392+
}
393+
echo "CODESIGNING_DLIB_PATH=$dllPath" >> $env:GITHUB_ENV
394+
shell: pwsh
395+
- name: Prep env for Trusted code on Windows only
396+
if: runner.os == 'Windows'
397+
run: |
398+
echo "AZURE_CLIENT_ID=${{ secrets.AZURE_CLIENT_ID }}" >> $GITHUB_ENV
399+
echo "AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}" >> $GITHUB_ENV
400+
echo "AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}" >> $GITHUB_ENV
401+
shell: bash
305402
- name: build
306403
id: build
307404
run: autobuild build -c ReleaseFS -A${addrsize} --no-configure

.github/workflows/cla.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
steps:
1414
- name: CLA Assistant
1515
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
16-
uses: secondlife-3p/contributor-assistant@v2
16+
uses: secondlife-3p/contributor-assistant@v2.6.1
1717
env:
1818
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1919
PERSONAL_ACCESS_TOKEN: ${{ secrets.SHARED_CLA_TOKEN }}
@@ -23,4 +23,4 @@ jobs:
2323
path-to-signatures: signatures.json
2424
remote-organization-name: secondlife
2525
remote-repository-name: cla-signatures
26-
allowlist: callum@mbp.localdomain
26+
allowlist: callum@mbp.localdomain,rye@lindenlab.com

.github/workflows/deploy_only.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
run: pip install discord-webhook
4646

4747
- name: Download Build Artifacts
48-
uses: dawidd6/action-download-artifact@v6
48+
uses: dawidd6/action-download-artifact@v10
4949
id: download
5050
with:
5151
workflow: build_viewer.yml

.github/workflows/sign.yml

Lines changed: 53 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ on:
66
build_run_number:
77
description: 'GitHub Run Number (per build_viewer.yml workflow)'
88
required: true
9-
policy:
10-
description: 'Policy to sign binaries'
11-
required: true
12-
type: choice
13-
default: "Test"
14-
options:
15-
- "Test"
16-
- "Release"
9+
# policy:
10+
# description: 'Policy to sign binaries'
11+
# required: true
12+
# type: choice
13+
# default: "Test"
14+
# options:
15+
# - "Test"
16+
# - "Release"
1717
# viewer_version:
1818
# description: 'viewer version not including build'
1919
# required: true
@@ -33,15 +33,15 @@ on:
3333

3434
jobs:
3535
find-setup-files:
36-
runs-on: ubuntu-latest
36+
runs-on: windows-latest
3737
permissions:
3838
actions: read
3939
contents: read
4040
outputs:
4141
setup_files: ${{ steps.get-files.outputs.setup_files }}
4242
steps:
4343
- name: Download Build Artifacts
44-
uses: dawidd6/action-download-artifact@v6
44+
uses: dawidd6/action-download-artifact@v10
4545
id: download
4646
with:
4747
workflow: build_viewer.yml
@@ -69,7 +69,7 @@ jobs:
6969
sign-and-upload:
7070
name: Sign and Upload each Setup.exe
7171
needs: find-setup-files
72-
runs-on: ubuntu-latest
72+
runs-on: windows-latest
7373
strategy:
7474
matrix:
7575
file: ${{ fromJson( needs.find-setup-files.outputs.setup_files) }}
@@ -83,6 +83,7 @@ jobs:
8383
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
8484
-H "Accept: application/vnd.github.v3+json" \
8585
https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts
86+
shell: bash
8687

8788
- name: Download Setup.exe Files Artifact
8889
uses: actions/download-artifact@v4
@@ -93,28 +94,49 @@ jobs:
9394
run: |
9495
mkdir -p to_sign
9596
cp "setup_exe_files/${{ matrix.file }}" to_sign/
96-
- name: Upload unsigned artifact
97-
id: upload-unsigned-artifact
98-
uses: actions/upload-artifact@v4
99-
with:
100-
name: unsigned-artifact-${{ matrix.file }}
101-
path: to_sign/${{ matrix.file }}
97+
shell: bash
98+
# - name: Upload unsigned artifact
99+
# id: upload-unsigned-artifact
100+
# uses: actions/upload-artifact@v4
101+
# with:
102+
# name: unsigned-artifact-${{ matrix.file }}
103+
# path: to_sign/${{ matrix.file }}
102104

103-
- name: sign the file
104-
uses: signpath/github-action-submit-signing-request@v1
105-
env:
106-
SIGNPATH_SIGNING_POLICY_SLUG: ${{ github.event.inputs.policy == 'Test' && vars.SIGNPATH_SIGNING_POLICY_SLUG_TEST || vars.SIGNPATH_SIGNING_POLICY_SLUG_RELEASE }}
105+
# - name: sign the file
106+
# uses: signpath/github-action-submit-signing-request@v1
107+
# env:
108+
# SIGNPATH_SIGNING_POLICY_SLUG: ${{ github.event.inputs.policy == 'Test' && vars.SIGNPATH_SIGNING_POLICY_SLUG_TEST || vars.SIGNPATH_SIGNING_POLICY_SLUG_RELEASE }}
109+
# with:
110+
# api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
111+
# organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}'
112+
# project-slug: '${{ vars.SIGNPATH_PROJECT_SLUG }}'
113+
# signing-policy-slug: '${{ env.SIGNPATH_SIGNING_POLICY_SLUG }}'
114+
# github-artifact-id: "${{steps.upload-unsigned-artifact.outputs.artifact-id}}"
115+
# wait-for-completion: true
116+
# output-artifact-directory: 'application-signed'
117+
- name: Azure Trusted Signing
118+
uses: azure/trusted-signing-action@v0.5.1
107119
with:
108-
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
109-
organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}'
110-
project-slug: '${{ vars.SIGNPATH_PROJECT_SLUG }}'
111-
signing-policy-slug: '${{ env.SIGNPATH_SIGNING_POLICY_SLUG }}'
112-
github-artifact-id: "${{steps.upload-unsigned-artifact.outputs.artifact-id}}"
113-
wait-for-completion: true
114-
output-artifact-directory: 'application-signed'
115-
120+
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
121+
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
122+
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
123+
endpoint: ${{ secrets.AZURE_ENDPOINT }}
124+
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
125+
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
126+
127+
# Sign all exes inside the folder
128+
files-folder: ${{ github.workspace }}\to_sign
129+
files-folder-filter: exe
130+
131+
# - name: Upload signed artifact
132+
# uses: actions/upload-artifact@v4
133+
# with:
134+
# name: signed-artifact-${{ matrix.file }}
135+
# path: ./application-signed
136+
# - name: Upload unsigned artifact
116137
- name: Upload signed artifact
138+
id: upload-unsigned-artifact
117139
uses: actions/upload-artifact@v4
118140
with:
119-
name: signed-artifact-${{ matrix.file }}
120-
path: ./application-signed
141+
name: unsigned-artifact-${{ matrix.file }}
142+
path: to_sign\${{ matrix.file }}

0 commit comments

Comments
 (0)