diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml
index 8adec3ef10..282225e71d 100644
--- a/.github/workflows/build_viewer.yml
+++ b/.github/workflows/build_viewer.yml
@@ -10,19 +10,20 @@ env:
AUTOBUILD_VARIABLES_FILE: ${{github.workspace}}/build-variables/variables
EXTRA_ARGS: -DUSE_FMODSTUDIO=ON -DUSE_KDU=ON --crashreporting
build_secrets_checkout: ${{github.workspace}}/signing
+ XZ_DEFAULTS: -T0
jobs:
build_matrix:
strategy:
matrix:
- os: [macos-10.15,ubuntu-20.04,windows-2022]
+ os: [macos-11,ubuntu-20.04,windows-2022]
grid: [sl,os]
addrsize: [64,32]
exclude:
- os: ubuntu-20.04
addrsize: 32
- - os: macos-10.15
+ - os: macos-11
addrsize: 32
runs-on: ${{ matrix.os }}
steps:
@@ -196,6 +197,12 @@ jobs:
fi
done
shell: bash
+
+ - name: make Nightly builds expire after 14 days
+ if: env.FS_BUILD_TYPE == 'Nightly'
+ run: |
+ echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=14" >> $GITHUB_ENV
+
- name: Clean up packages to give more space
run: rm *${{ env.fallback_platform }}*bz2
shell: bash
@@ -246,18 +253,22 @@ jobs:
- name: Install discord-webhook library
run: pip install discord-webhook
- - name: find channel from Branch name
+ - name: find channel and webhook from Branch name
run: |
if [[ "${{ github.ref_name }}" == *Release* ]]; then
FS_RELEASE_FOLDER=release
- else
- if [[ "${{github.event_name}}" == 'schedule' ]]; then
- FS_RELEASE_FOLDER=nightly
+ FS_BUILD_WEBHOOK_URL=${{ secrets.RELEASE_WEBHOOK_URL }}
else
- FS_RELEASE_FOLDER=preview
+ if [[ "${{github.event_name}}" == 'schedule' ]]; then
+ FS_RELEASE_FOLDER=nightly
+ FS_BUILD_WEBHOOK_URL=${{ secrets.NIGHTLY_WEBHOOK_URL }}
+ else
+ FS_RELEASE_FOLDER=preview
+ FS_BUILD_WEBHOOK_URL=${{ secrets.BETA_WEBHOOK_URL }}
fi
fi
echo "FS_RELEASE_FOLDER=${FS_RELEASE_FOLDER}" >> $GITHUB_ENV
+ echo "FS_BUILD_WEBHOOK_URL=${FS_BUILD_WEBHOOK_URL}" >> $GITHUB_ENV
- name: Download artifacts
uses: actions/download-artifact@v3
@@ -269,7 +280,7 @@ jobs:
working-directory: ${{steps.download.outputs.download-path}}
- name: Reorganise artifacts ready for server upload.
- run: python ./fsutils/download_list.py -u ${{steps.download.outputs.download-path}} -w ${{ secrets.RELEASE_WEBHOOK_URL }}
+ run: python ./fsutils/download_list.py -u ${{steps.download.outputs.download-path}} -w ${{ env.FS_BUILD_WEBHOOK_URL }}
- name: Setup rclone and download the folder
uses: beqjanus/setup-rclone@main
diff --git a/fsutils/download_list.py b/fsutils/download_list.py
index b8534efeff..2dc8cfd08d 100644
--- a/fsutils/download_list.py
+++ b/fsutils/download_list.py
@@ -80,7 +80,8 @@ def get_md5(mdfile):
#split md5sum on space
md5sum = md5sum.split()[0]
#remove leading '\'
- md5sum = md5sum[1:]
+ if md5sum[0] == "\\":
+ md5sum = md5sum[1:]
print(f"generating md5sum for {mdfile} as {md5sum}")
return md5sum
@@ -210,7 +211,11 @@ for build_type in build_types_created:
platforms_printable = {"windows":"MS Windows", "mac":"MacOS", "linux":"Linux"}
grids_printable = {"SL":"Second Life", "OS":"OpenSim"}
- download_root = f"https://downloads.firestormviewer.org/{build_types[build_type]}/"
+ download_root = f"https://downloads.firestormviewer.org/{build_types[build_type]}"
+ output += f'''
+DOWNLOADS - {build_type}
+-------------------------------------------------------------------------------------------------------
+'''
for dir in dirs:
print(f"Getting files for {dir} in {build_type_dir}")
files = get_files(os.path.join(build_type_dir, dir))
@@ -236,11 +241,8 @@ for build_type in build_types_created:
print(f"No files found for {dir} in {build_type_dir}")
- output += f'''
-DOWNLOADS - {build_type}
-'''
- output += f'''-------------------------------------------------------------------------------------------------------
+ output += f'''
{platforms_printable[dir]}
'''
dir = dir.lower()
@@ -266,8 +268,7 @@ DOWNLOADS - {build_type}
except KeyError:
output += f"{platform} for {grid_printable} ({wordsize}-bit) - NOT AVAILABLE\n"
output += "\n"
- output += '''
--------------------------------------------------------------------------------------------------------
+ output += '''-------------------------------------------------------------------------------------------------------
'''
if args.webhook:
@@ -276,6 +277,7 @@ DOWNLOADS - {build_type}
# Send the webhook
response = webhook.execute()
# Print the response
- print(f"Webhook response: {response}")
+ if not response.ok:
+ print(f"Webhook Error {response.status_code}: {response.text}")
print(output)
diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp
index 430ed650b0..e0520dc324 100644
--- a/indra/newview/llpanelprofile.cpp
+++ b/indra/newview/llpanelprofile.cpp
@@ -3136,6 +3136,14 @@ void LLPanelProfileNotes::onOpen(const LLSD& key)
void LLPanelProfileNotes::setNotesText(const std::string &text)
{
+ // FIRE-32926 - Profile notes that are actively being edited get discarded when
+ // the profile owner enters or leaves the region at the same time.
+ if (mHasUnsavedChanges)
+ {
+ return;
+ }
+ //
+
mSaveChanges->setEnabled(FALSE);
mDiscardChanges->setEnabled(FALSE);
mHasUnsavedChanges = false;
diff --git a/indra/newview/llsurface.cpp b/indra/newview/llsurface.cpp
index b0f2e98508..529ba721c5 100644
--- a/indra/newview/llsurface.cpp
+++ b/indra/newview/llsurface.cpp
@@ -171,6 +171,16 @@ void LLSurface::create(const S32 grids_per_edge,
mMetersPerEdge = mMetersPerGrid * (mGridsPerEdge - 1);
// Aurora Sim
sTextureSize = width;
+
+ // Trap non-power of 2 widths to avoid GLtexture issues.
+ if ((sTextureSize & (sTextureSize - 1)) != 0)
+ {
+ // Not a power of 2, find the next power of 2
+ sTextureSize = 1 << static_cast( ceil(log2(sTextureSize)) ) ;
+ }
+
+ // Clamp to maximum limit
+ sTextureSize = std::min(sTextureSize, 1024);
// Aurora Sim
mOriginGlobal.setVec(origin_global);
diff --git a/indra/newview/skins/ansastorm/xui/de/floater_preview_texture.xml b/indra/newview/skins/ansastorm/xui/de/floater_preview_texture.xml
index e92c308005..54a274082d 100644
--- a/indra/newview/skins/ansastorm/xui/de/floater_preview_texture.xml
+++ b/indra/newview/skins/ansastorm/xui/de/floater_preview_texture.xml
@@ -58,9 +58,9 @@
-
+
-
+
diff --git a/indra/newview/skins/default/xui/de/floater_preview_texture.xml b/indra/newview/skins/default/xui/de/floater_preview_texture.xml
index 6705f55878..4b9af72b80 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_texture.xml
@@ -30,9 +30,9 @@
-
+
-
+
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml b/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
index a3114847da..ce31df6c4f 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
@@ -16,6 +16,13 @@
+
+ Écouter médias et sons de :
+
+
+
+
+
Réactiver le son après une téléportation :
diff --git a/indra/newview/skins/default/xui/fr/panel_tools_texture.xml b/indra/newview/skins/default/xui/fr/panel_tools_texture.xml
index 3a08c70e7f..73062a599e 100644
--- a/indra/newview/skins/default/xui/fr/panel_tools_texture.xml
+++ b/indra/newview/skins/default/xui/fr/panel_tools_texture.xml
@@ -115,4 +115,7 @@
+
+
+
diff --git a/indra/newview/skins/default/xui/pl/panel_tools_texture.xml b/indra/newview/skins/default/xui/pl/panel_tools_texture.xml
index 56a01e3b90..e61641a794 100644
--- a/indra/newview/skins/default/xui/pl/panel_tools_texture.xml
+++ b/indra/newview/skins/default/xui/pl/panel_tools_texture.xml
@@ -127,4 +127,7 @@
+
+
+
diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml
index 73b02e81dc..a926b0a248 100644
--- a/indra/newview/skins/default/xui/ru/notifications.xml
+++ b/indra/newview/skins/default/xui/ru/notifications.xml
@@ -3441,13 +3441,13 @@ URL: [AUDIOURL]
- [NAME] отправил(а) вам мгновенное сообщение и был(а) автоматически разблокирован(а).
+ [NAME] было отправлено мгновенное сообщение и был автоматически разблокирован.
- [NAME] получил(а) деньги и был(а) автоматически разблокирован(а).
+ [NAME] получил деньги и был автоматически разблокирован.
- [NAME] предложил(а) инвентарь и был(а) автоматически разблокирован(а).
+ [NAME] предложен инвентарь и был автоматически разблокирован.
[NAME] вступил(а) в голосовой чат с группой [GROUP].
diff --git a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml
index 2fdc3c7a55..edf7f90958 100644
--- a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml
+++ b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml
@@ -117,4 +117,9 @@
+
+
+
+
+
diff --git a/requirements.txt b/requirements.txt
index 9272ca6a2c..5ed33066fd 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
-llbase==1.2.11
-git+https://github.com/FirestormViewer/autobuild-3.0#egg=autobuild
+llbase>=1.2.11
+autobuild>=3.9.1
+# git+https://github.com/FirestormViewer/autobuild-3.0#egg=autobuild
# git+https://github.com/Nicky-D/autobuild@main_nd#egg=autobuild
\ No newline at end of file