diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml
index f50c4b8e8a..803ec090c4 100644
--- a/.github/workflows/build_viewer.yml
+++ b/.github/workflows/build_viewer.yml
@@ -25,7 +25,7 @@ jobs:
build_matrix:
strategy:
matrix:
- os: [macos-11,ubuntu-20.04,windows-2022]
+ os: [macos-11,ubuntu-22.04,windows-2022]
grid: [sl,os]
addrsize: [64]
runs-on: ${{ matrix.os }}
@@ -178,6 +178,8 @@ jobs:
echo -n "$FS_CERT_PASS" >${build_secrets_checkout}/code-signing-osx/password.txt
echo -n "$NOTARIZE_CREDS" | base64 --decode --output ${build_secrets_checkout}/code-signing-osx/notarize_creds.sh
security create-keychain -p "$FS_KEYCHAIN_PASS" ~/Library/Keychains/viewer.keychain
+ # notarize tool uses a specific database keychain by default we need to override this to ours.
+ security default-keychain -s viewer.keychain
security set-keychain-settings -lut 21600 ~/Library/Keychains/viewer.keychain
security unlock-keychain -p "$FS_KEYCHAIN_PASS" ~/Library/Keychains/viewer.keychain
security import ${build_secrets_checkout}/code-signing-osx/fs-cert.p12 -P "$FS_CERT_PASS" -A -t cert -f pkcs12 -k ~/Library/Keychains/viewer.keychain
diff --git a/autobuild.xml b/autobuild.xml
index d6c55b4995..76ef04f697 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -26,11 +26,11 @@
archivenamelinux64
@@ -385,36 +385,6 @@
- SDL
-
apr_suiteplatforms
@@ -438,9 +408,11 @@
archivehash
- 1c341bdbb5fd0c8a8930f76e6c1647d4
+ 95137cd3f4d6ffa5bd7a00d7d91bd8fc272b7ca2
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/apr_suite-1.4.5.230921251-linux64-230921251.tar.bz2
+ https://github.com/secondlife/3p-apr_suite/releases/download/v1.7.2-c5f3347/apr_suite-1.7.2-c5f3347-linux64-c5f3347.tar.zstnamelinux64
@@ -496,11 +468,11 @@
archivehash
- 5d1952e270a873d4587f7b943ed6e3f87d5023da
+ a3bfbdba7e1977e7e65266ec654990bb13994bd3hash_algorithmsha1url
- https://3p.firestormviewer.org/boost-1.81-linux64-240621158.tar.zst
+ https://github.com/secondlife/3p-boost/releases/download/v1.81-3d0d7fc/boost-1.81-linux64-3d0d7fc.tar.zstnamelinux64
@@ -602,11 +574,11 @@
archivehash
- 83f9c9aff5a7b96711c04bd33cb453c108dee3a5
+ cab0237b5194254c0c0ff6bf77bc6a2f946d4f57hash_algorithmsha1url
- https://3p.firestormviewer.org/colladadom-2.3.240621210-linux64-240621210.tar.zst
+ https://github.com/secondlife/3p-colladadom/releases/download/v2.3-2f532e1/colladadom-2.3.2f532e1-linux64-2f532e1.tar.zstnamelinux64
@@ -660,11 +632,11 @@
archivehash
- 64210ab1d7c881dbe5c78ef8f6db5a6d2b27e5d2
+ aea0bed0f953a9371b9091f09230b41597f891f7hash_algorithmsha1url
- https://3p.firestormviewer.org/cubemaptoequirectangular-1.1.0-linux64-213500938.tar.bz2
+ https://github.com/secondlife/3p-cubemap_to_eqr_js/releases/download/v1.1.0-cb8785a/cubemaptoequirectangular-1.1.0-linux64-cb8785a.tar.zstnamelinux64
@@ -878,11 +850,11 @@
archivehash
- c036cc042523fb6a3dafb7134f83e52c566c0765
+ 5b957aa7f353b10ae17b7119e5b3668f48a35325hash_algorithmsha1url
- https://3p.firestormviewer.org/emoji_shortcodes-6.1.0.240620448-linux64-240620448.tar.zst
+ https://github.com/secondlife/3p-emoji-shortcodes/releases/download/v6.1.0.5413f58/emoji_shortcodes-6.1.0.5413f58-linux64-5413f58.tar.zstnamelinux64
@@ -926,9 +898,11 @@
archivehash
- 39702f98867a319b090ee04f22d82762
+ 4cd82e2dec06ddff19e9b3dc0254f2593ec80452
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/expat-2.5.0.230021327-linux64-230021327.tar.bz2
+ https://github.com/secondlife/3p-expat/releases/download/v2.1.1.1f36d02/expat-2.1.1.1f36d02-linux64-1f36d02.tar.zstnamelinux64
@@ -1021,36 +995,6 @@
descriptionFMOD Studio API
- fontconfig
-
- platforms
-
- linux64
-
- archive
-
- hash
- 6fdcfcc9aa1d01164c0f7ca5590859bb
- url
- https://3p.firestormviewer.org/fontconfig-2.12.6-linux64-223020909.tar.bz2
-
- name
- linux64
-
-
- license
- bsd
- license_file
- LICENSES/fontconfig.txt
- copyright
- Copyright (C) 2000,2001,2002,2003,2004,2006,2007 Keith Packard, 2005 Patrick Lam, 2009 Roozbeh Pournader, 2008,2009 Red Hat, Inc., 2008 Danilo Šegan, 2012 Google, Inc.
- version
- 2.11.0
- name
- fontconfig
- description
- Fontconfig is a library for configuring and customizing font access.
- freetypecopyright
@@ -1084,11 +1028,11 @@
archivehash
- a8326f592bf608095f0854383eec2baf36257ea9
+ 07a38133c008ce6f728d652d00a756bea3a70288hash_algorithmsha1url
- https://3p.firestormviewer.org/freetype-2.12.1.240700637-linux64-240700637.tar.zst
+ https://github.com/secondlife/3p-freetype/releases/download/v2.12.1-r1/freetype-2.12.1.8503093630-linux64-8503093630.tar.zstnamelinux64
@@ -1408,9 +1352,11 @@
archivehash
- fd8060aa3c920e0fc63e7ecbea67bc5e
+ 23daab838f4b8f92e5dc1a2f6c568cb7b0cb43b7
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/jpegencoderbasic-1.0-linux64-213500937.tar.bz2
+ https://github.com/secondlife/3p-jpeg_encoder_js/releases/download/v1.0-790015a/jpegencoderbasic-1.0-linux64-790015a.tar.zstnamelinux64
@@ -1464,9 +1410,11 @@
archivehash
- 324bb9deb00d256a12f8cbf686f413f0
+ b4b2278bd2fcae85619e2145a243cca388d760d7
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/jpeglib-8c.180841548-linux64-180841548.tar.bz2
+ https://github.com/secondlife/3p-jpeglib/releases/download/v8c.7846234/jpeglib-8c.7846234-linux64-7846234.tar.zstnamelinux64
@@ -1522,9 +1470,11 @@
archivehash
- 352ab340f2091c93eb313cf80ac0c8cc
+ 66dce1d0c2fc19dff13db279d973773fc7e2aa13
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/jsoncpp-0.5.0.202052209-linux64-202052209.tar.bz2
+ https://github.com/secondlife/3p-jsoncpp/releases/download/v0.5.0-cc63e92/jsoncpp-0.5.0.cc63e92-linux64-cc63e92.tar.zstnamelinux64
@@ -1634,9 +1584,11 @@
archivehash
- 6555f040c686d8c1dec8e6264c2d3672
+ 6413d3bd4cd50c2a6b7f949eb4bd6f0c94feb984
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/libhunspell-1.3.2.180841552-linux64-180841552.tar.bz2
+ https://github.com/secondlife/3p-libhunspell/releases/download/v1.3.2.650fb94/libhunspell-1.3.2.650fb94-linux64-650fb94.tar.zstnamelinux64
@@ -1738,11 +1690,11 @@
archivehash
- e646a9da0ddfe1dfbffc6600d7d35f78ac48c75e
+ 39d5779fd79e23da16a7b5bf608008999004c828hash_algorithmsha1url
- https://3p.firestormviewer.org/libpng-1.6.38-240620624-linux64-240620624.tar.zst
+ https://github.com/secondlife/3p-libpng/releases/download/v1.16.38-d427738/libpng-1.6.38-8318603154-linux64-8318603154.tar.zstnamelinux64
@@ -2131,9 +2083,11 @@
archivehash
- 50d647afc4e510af72f09dcd7a77e920
+ 6f4509dca9e32e3b4f9c4b13d875ce0e24340efc
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/meshoptimizer-0.16.222121104-linux64-222121104.tar.bz2
+ https://github.com/secondlife/3p-meshoptimizer/releases/download/v160-4f905dd/meshoptimizer-160-linux64-4f905dd.tar.zstnamelinux64
@@ -2466,9 +2420,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archivehash
- 03b7df0406d7588c4fb49c2ddf0d8264
+ 90052be851c4fcecc35d8424b4f31352de14ab2f
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/ogg_vorbis-1.3.3-1.3.6.202241500-linux64-202241500.tar.bz2
+ https://github.com/secondlife/3p-ogg_vorbis/releases/download/v1.3.3-1.3.6-881f65e/ogg_vorbis-1.3.3-1.3.6.881f65e-linux64-881f65e.tar.zstnamelinux64
@@ -2522,11 +2478,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archivehash
- 52c4622c76c773deba056eeb6b0dc726cb3100bd
+ 2d20683554f0b00234bbb84d0ce7ac1be1ad70aahash_algorithmsha1url
- https://3p.firestormviewer.org/open_libndofdev-0.14.233480318-linux64-233480318.tar.bz2
+ https://github.com/secondlife/3p-open-libndofdev/releases/download/v1.14-r1/open_libndofdev-0.14.8503290964-linux64-8503290964.tar.zstnamelinux64
@@ -2544,9 +2500,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archivehash
- 4f36ae378593240701fd4453bd6074c8
+ e0fbc4874acc4167a6e2b6489fbb8258d98fd665
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/openal-1.12.854-1.1.0.180841552-linux64-180841552.tar.bz2
+ https://github.com/secondlife/3p-openal-soft/releases/download/v1.23.1-18e315c/openal-1.23.1-linux64-18e315c.tar.zstnamelinux64
@@ -2686,9 +2644,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archivehash
- b1dad7c841118a3b6e03a01722d1846a
+ 8c277dde6076fb682cb07264dd70f6f2298b633f
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/openjpeg-2.5.0.230362345-linux64-230362345.tar.bz2
+ https://github.com/secondlife/3p-openjpeg/releases/download/v2.5.0.ea12248/openjpeg-2.5.0.ea12248-linux64-ea12248.tar.zstnamelinux64
@@ -2918,9 +2878,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archivehash
- d37be064bd851276dab423d723cb9b7d
+ 982c0fa427458082ea9e3cb9603904210732b64e
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/threejs-0.132.2-linux64-213500940.tar.bz2
+ https://github.com/secondlife/3p-three_js/releases/download/v0.132.2-5da28d9/threejs-0.132.2-common-8454371083.tar.zstnamelinux64
@@ -3096,9 +3058,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archivehash
- 0d6832fd958ec127f089e683c9b67169
+ df66574b3d70f49570709eccd8a1cdeee996cb43
+ hash_algorithm
+ sha1url
- https://3p.firestormviewer.org/uriparser-0.9.4-linux64-211210958.tar.bz2
+ https://github.com/secondlife/3p-uriparser/releases/download/v0.9.4-42d7a6d/uriparser-0.9.4-linux64-42d7a6d.tar.zstnamelinux64
@@ -3316,11 +3280,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archivehash
- 71a9c7c03a2c26cdb21fa476de485d9c
+ ad0c8b41ee4b4de216382bec46ee1c25962a3f12hash_algorithm
- md5
+ sha1url
- https://3p.firestormviewer.org/xmlrpc_epi-0.54.2.230940042-linux64-230940042.tar.bz2
+ https://github.com/secondlife/3p-xmlrpc-epi/releases/download/v0.54.1.8a05acf/xmlrpc_epi-0.54.1.8a05acf-linux64-8a05acf.tar.zstnamelinux64
diff --git a/doc/building_linux.md b/doc/building_linux.md
index 7455f36feb..eeeb950728 100644
--- a/doc/building_linux.md
+++ b/doc/building_linux.md
@@ -3,18 +3,23 @@
> [!WARNING]
> Please note that we do not give support for compiling the viewer on your own. However, there is a self-compilers group in Second Life that can be joined to ask questions related to compiling the viewer: [Firestorm Self Compilers](https://tinyurl.com/firestorm-self-compilers)
-> [!NOTE]
-> These instructions only apply to Firestorm versions with AlexIvy code.
-
This procedure is based on discussions with the Firestorm Linux development team and is the only one recommended for Firestorm for Linux. System requirements are:
-- Ubuntu 20.04 x64 fully upgraded
+- Ubuntu 22.04 LTS (x86_64) - fully upgraded (this is also now the minimum requirement for running the viewer).
- 16GB or more RAM ([Low Memory Caution](#common-issuesbugsglitches-and-solutions))
- 64GB hard drive space
- 4 or more core CPU (you could get by with 2 cores, but the process will take much longer)
+- GCC 11 compiler (which is the default version on Ubuntu 22.04 LTS)
-Due to the age of the build OS, it is recommended that you use a virtual machine, ensuring the guest can meet the hardware requirements.
+It is recommended that you use a virtual machine for compiling, ensuring the guest can meet the hardware requirements.
-This procedure may or may not work on other Linux distributions.
+This procedure may or may not work on other Linux distributions (or you might need to adjust some of the package names to suit the distribution you are using).
+
+> [!WARNING]
+> A system with a glibc version of at least 2.34 is required (Ubuntu 22.04 LTS meets this requirement)
+> Building on a system with a glibc version older than 2.34 will likely result in linker errors.
+
+> [!IMPORTANT]
+> Only 64 bit builds are possible - 32 bit support was dropped quite some time ago.
## Establish your programming environment
@@ -31,35 +36,22 @@ A few packages must be installed on the build system. Some may already be instal
| | | | | | |
| --------------- | ---------------- | ------------- | ------------------ | ---------------- | ------ |
| libgl1-mesa-dev | libglu1-mesa-dev | libpulse-dev | build-essential | python3-pip | git |
-| libssl-dev | libxinerama-dev | libxrandr-dev | libfontconfig1-dev | libfreetype6-dev | gcc-10 |
-| | | | | | |
+| libssl-dev | libxinerama-dev | libxrandr-dev | libfontconfig-dev | libfreetype6-dev | gcc-11 |
+| cmake | | | | | |
```
-sudo apt install libgl1-mesa-dev libglu1-mesa-dev libpulse-dev build-essential python3-pip git libssl-dev libxinerama-dev libxrandr-dev libfontconfig1-dev libfreetype6-dev gcc-10
-```
-
-### CMake
-
-CMake version 3.18 is required but not available in Ubuntu's repositories, we have to build it from source
-
-```
-wget https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0.tar.gz
-tar xvf cmake-3.18.0.tar.gz
-cd cmake-3.18.0
-./bootstrap --parallel=$(nproc) --prefix=/usr && make -j $(nproc) && sudo make install
+sudo apt install libgl1-mesa-dev libglu1-mesa-dev libpulse-dev build-essential python3-pip git libssl-dev libxinerama-dev libxrandr-dev libfontconfig-dev libfreetype6-dev gcc-11 cmake
```
### Install Autobuild
Autobuild is a Linden Lab resource that does all the hard work.
-
+You can install it using the same versions as our automated builds as follows:
```
sudo pip3 install --upgrade pip
-sudo pip3 install git+https://github.com/secondlife/autobuild.git#egg=autobuild
+pip install -r requirements.txt
```
-
-Check Autobuild version to be "autobuild 3.8" or higher: `autobuild --version`
-
+Check Autobuild version to be "autobuild 3.9.3" or higher: `autobuild --version`
## Download the source code
There are two required repositories, the viewer itself and the build variables. An optional third repository is used to configure and package FMOD Studio.
@@ -81,7 +73,7 @@ The rest of this document will assume the default directory, `phoenix-firestorm`
### Clone the Autobuild build variables
-Autobuild 3.0 uses a separate file to control compiler options, switches, and the like for different configurations.
+Autobuild uses a separate file to control compiler options, switches, and the like for different configurations.
```
cd ~/src
diff --git a/doc/building_macos.md b/doc/building_macos.md
index f5ad4ea481..ce251a4673 100644
--- a/doc/building_macos.md
+++ b/doc/building_macos.md
@@ -40,7 +40,7 @@ sudo python3 get-pip.py
The Linden Lab [Autobuild](https://github.com/secondlife/autobuild) tool.
- Use the following command to install it on your machine:
```
-pip3 install --user git+https://bitbucket.org/lindenlab/autobuild.git#egg=autobuild
+pip3 install --user -r requirements.txt
```
- Add it to your PATH environment variable so it can be found by the shell. The macOS-approved way to do this is to issue the following command (This change will not take effect until the next time you open a Terminal window.):
@@ -53,7 +53,7 @@ echo '~/Library/Python/3.7/bin/' | sudo tee /etc/paths.d/99-autobuild
export PATH=$PATH:~/Library/Python/3.7/bin/
```
-- Check Autobuild version to be "autobuild 3.8" or higher: `autobuild --version`
+- Check Autobuild version to be "autobuild 3.9.3" or higher: `autobuild --version`
### Additional third party libraries
If you want to use licensed FMOD Studio API or KDU build libraries (they are optional) you have to provide these yourself. If you're building Firestorm as part of the project team, ask for the libraries for fmodstudio and kdu. Put them into `/opt/firestorm`.
diff --git a/doc/building_windows.md b/doc/building_windows.md
index 46117d7fbc..7ae61cdf5e 100644
--- a/doc/building_windows.md
+++ b/doc/building_windows.md
@@ -93,9 +93,11 @@ If they all report sensible values and not "Command not found" errors, then you
### Set up Autobuild
- Install Autobuild
+ You can install autobuild and its dependencies using the `requirements.txt` file that is part of the repo, this will build using the same versions that our official builds use.
+ - Open Windows Command Prompt and enter: pip install -r requirements.txt
+ - Autobuild will be installed. **Earlier versions of Autobuild could be made to work by just putting the source files into your path correctly; this is no longer true - Autobuild _must_ be installed as described here.**
- Open Windows Command Prompt and enter:
`pip install git+https://github.com/secondlife/autobuild.git#egg=autobuild`
- - Autobuild will be installed. **Earlier versions of Autobuild could be made to work by just putting the source files into your path correctly; this is no longer true - Autobuild _must_ be installed as described here.**
- Set environment variable AUTOBUILD_VSVER to 170 (170 = Visual Studio 2022).
- Check Autobuild version to be "autobuild 3.8" or higher:
`autobuild --version`
diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake
index 35fc6090cd..a9b992ab20 100644
--- a/indra/cmake/JsonCpp.cmake
+++ b/indra/cmake/JsonCpp.cmake
@@ -12,6 +12,6 @@ if (WINDOWS)
elseif (DARWIN)
target_link_libraries( ll::jsoncpp INTERFACE libjson_darwin_libmt.a )
elseif (LINUX)
- target_link_libraries( ll::jsoncpp INTERFACE libjson_linux-gcc-5.4.0_libmt.a )
+ target_link_libraries( ll::jsoncpp INTERFACE libjson_linux-gcc-11_libmt.a )
endif (WINDOWS)
target_include_directories( ll::jsoncpp SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/newview/installers/darwin/apple-notarize.sh b/indra/newview/installers/darwin/apple-notarize.sh
index ce012d84ed..b7006bf5cd 100755
--- a/indra/newview/installers/darwin/apple-notarize.sh
+++ b/indra/newview/installers/darwin/apple-notarize.sh
@@ -11,43 +11,27 @@ if [[ -f "$CONFIG_FILE" ]]; then
zip_file=${app_file/app/zip}
ditto -c -k --keepParent "$app_file" "$zip_file"
if [[ -f "$zip_file" ]]; then
- res=$(xcrun altool --notarize-app --primary-bundle-id "org.firestormviewer.firestorm" \
- --username $USERNAME \
- --password $PASSWORD \
- --asc-provider $ASC_PROVIDER \
- --file "$zip_file" 2>&1)
+ # res=$(xcrun notarytool store-credentials \
+ # viewer.profile \
+ # --verbose 2>*1)
+ # echo $res
+ res=$(xcrun notarytool submit "$zip_file" \
+ --apple-id $USERNAME \
+ --password $PASSWORD \
+ --verbose \
+ --wait 2>&1)
+ echo "Notarytool submit:"
echo $res
- requestUUID=$(echo $res | awk '/RequestUUID/ { print $NF; }')
- if [[ -n $requestUUID ]]; then
- in_progress=1
- while [[ $in_progress -eq 1 ]]; do
- sleep 30
- res=$(xcrun altool --notarization-info "$requestUUID" \
- --username $USERNAME \
- --password $PASSWORD 2>&1)
- if [[ $res != *"in progress"* ]]; then
- in_progress=0
- fi
- echo "."
- done
- # log results
- echo $res
+ [[ "$res" =~ 'id: '([^[:space:]]+) ]]
+ match=$?
- #remove temporary file
- rm "$zip_file"
-
- if [[ $res == *"success"* ]]; then
- xcrun stapler staple "$app_file"
- exit 0
- elif [[ $res == *"invalid"* ]]; then
- echo "Notarization error: failed to process the app file"
- exit 1
- else
- echo "Notarization error: unknown response status"
- fi
+ if [[ ! $match -eq 0 ]]; then
+ echo "Running Stapler"
+ xcrun stapler staple "$app_file"
+ exit 0
else
- echo "Notarization error: couldn't get request UUID"
+ echo "Notarization error"
exit 1
fi
else
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 875dad7fce..e785e124d4 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -396,6 +396,7 @@