From eeef57b168247151306fe419519bdb9b1eed5c13 Mon Sep 17 00:00:00 2001
From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Date: Fri, 30 May 2025 22:35:54 -0400
Subject: [PATCH 01/67] ci(windows): change runner from windows-2019 to
windows-2022 (#3928)
---
.github/workflows/CI.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index e1171a27..9df09f6d 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -742,7 +742,7 @@ jobs:
build_win:
name: Windows
needs: setup_release
- runs-on: windows-2019
+ runs-on: windows-2022
steps:
- name: Checkout
uses: actions/checkout@v4
From a857c8b7154491c0770b4c38c96463d4ce95419e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 30 May 2025 23:21:11 -0400
Subject: [PATCH 02/67] build(deps): bump third-party/build-deps from `d60197e`
to `a51a06a` (#3927)
Bumps [third-party/build-deps](https://github.com/LizardByte/build-deps) from `d60197e` to `a51a06a`.
- [Commits](https://github.com/LizardByte/build-deps/compare/d60197e1543d63cc415ebe0225afd47025a819e2...a51a06adf774c51f6a3916b4fe10ca7d436690d3)
---
updated-dependencies:
- dependency-name: third-party/build-deps
dependency-version: a51a06adf774c51f6a3916b4fe10ca7d436690d3
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
third-party/build-deps | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third-party/build-deps b/third-party/build-deps
index d60197e1..a51a06ad 160000
--- a/third-party/build-deps
+++ b/third-party/build-deps
@@ -1 +1 @@
-Subproject commit d60197e1543d63cc415ebe0225afd47025a819e2
+Subproject commit a51a06adf774c51f6a3916b4fe10ca7d436690d3
From 0de8cc864c2790196142b330735c74e434a754dd Mon Sep 17 00:00:00 2001
From: activatekillswitch
Date: Sat, 31 May 2025 14:55:49 +0100
Subject: [PATCH 03/67] build(linux): add Ubuntu 25.04 support to
linux_build.sh (#3919)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
---
scripts/linux_build.sh | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/scripts/linux_build.sh b/scripts/linux_build.sh
index 1ac5f162..b391f7dc 100755
--- a/scripts/linux_build.sh
+++ b/scripts/linux_build.sh
@@ -564,6 +564,15 @@ elif grep -q "Ubuntu 24.04" /etc/os-release; then
cuda_build="520.61.05"
gcc_version="11"
nvm_node=0
+elif grep -q "Ubuntu 25.04" /etc/os-release; then
+ distro="ubuntu"
+ version="25.04"
+ package_update_command="${sudo_cmd} apt-get update"
+ package_install_command="${sudo_cmd} apt-get install -y"
+ cuda_version="11.8.0"
+ cuda_build="520.61.05"
+ gcc_version="11"
+ nvm_node=0
else
echo "Unsupported Distro or Version"
exit 1
From 1938385bf058caf030292b48a468368f0264b806 Mon Sep 17 00:00:00 2001
From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Date: Sat, 7 Jun 2025 16:29:45 -0400
Subject: [PATCH 04/67] build(windows): fix gcc15 compatibility (#3946)
---
.github/workflows/CI.yml | 71 +++++++++++++++----------
cmake/compile_definitions/windows.cmake | 4 ++
tools/CMakeLists.txt | 1 +
tools/audio.cpp | 12 +++--
4 files changed, 55 insertions(+), 33 deletions(-)
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index 9df09f6d..418e3133 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -864,48 +864,61 @@ jobs:
- name: Update Windows dependencies
env:
- gcc_version: "14.2.0-3"
+ MSYSTEM: "ucrt64"
+ TOOLCHAIN: "ucrt-x86_64"
shell: msys2 {0}
run: |
- broken_deps=(
- "mingw-w64-ucrt-x86_64-gcc"
- "mingw-w64-ucrt-x86_64-gcc-libs"
+ # variables
+ declare -A pinned_deps
+
+ # dependencies
+ dependencies=(
+ "git"
+ "mingw-w64-${TOOLCHAIN}-cmake"
+ "mingw-w64-${TOOLCHAIN}-cppwinrt"
+ "mingw-w64-${TOOLCHAIN}-curl-winssl"
+ "mingw-w64-${TOOLCHAIN}-gcc"
+ "mingw-w64-${TOOLCHAIN}-graphviz"
+ "mingw-w64-${TOOLCHAIN}-MinHook"
+ "mingw-w64-${TOOLCHAIN}-miniupnpc"
+ "mingw-w64-${TOOLCHAIN}-nlohmann-json"
+ "mingw-w64-${TOOLCHAIN}-nodejs"
+ "mingw-w64-${TOOLCHAIN}-nsis"
+ "mingw-w64-${TOOLCHAIN}-onevpl"
+ "mingw-w64-${TOOLCHAIN}-openssl"
+ "mingw-w64-${TOOLCHAIN}-opus"
+ "mingw-w64-${TOOLCHAIN}-toolchain"
)
- tarballs=""
- for dep in "${broken_deps[@]}"; do
- tarball="${dep}-${gcc_version}-any.pkg.tar.zst"
+ # do not modify below this line
- # download and install working version
- wget https://repo.msys2.org/mingw/ucrt64/${tarball}
+ ignore_packages=()
+ tarballs=""
+ for pkg in "${!pinned_deps[@]}"; do
+ ignore_packages+=("${pkg}")
+ version="${pinned_deps[$pkg]}"
+ tarball="${pkg}-${version}-any.pkg.tar.zst"
+
+ # download working version
+ wget "https://repo.msys2.org/mingw/${MSYSTEM}/${tarball}"
tarballs="${tarballs} ${tarball}"
done
- # install broken dependencies
+ # Create the ignore string for pacman
+ ignore_list=$(IFS=,; echo "${ignore_packages[*]}")
+
+ # install pinned dependencies
if [ -n "$tarballs" ]; then
pacman -U --noconfirm ${tarballs}
fi
- # install dependencies
- dependencies=(
- "git"
- "mingw-w64-ucrt-x86_64-cmake"
- "mingw-w64-ucrt-x86_64-cppwinrt"
- "mingw-w64-ucrt-x86_64-curl-winssl"
- "mingw-w64-ucrt-x86_64-graphviz"
- "mingw-w64-ucrt-x86_64-MinHook"
- "mingw-w64-ucrt-x86_64-miniupnpc"
- "mingw-w64-ucrt-x86_64-nlohmann-json"
- "mingw-w64-ucrt-x86_64-nodejs"
- "mingw-w64-ucrt-x86_64-nsis"
- "mingw-w64-ucrt-x86_64-onevpl"
- "mingw-w64-ucrt-x86_64-openssl"
- "mingw-w64-ucrt-x86_64-opus"
- "mingw-w64-ucrt-x86_64-toolchain"
- )
-
- pacman -Syu --noconfirm --ignore="$(IFS=,; echo "${broken_deps[*]}")" "${dependencies[@]}"
+ # Only add --ignore if we have packages to ignore
+ if [ -n "$ignore_list" ]; then
+ pacman -Syu --noconfirm --ignore="${ignore_list}" "${dependencies[@]}"
+ else
+ pacman -Syu --noconfirm "${dependencies[@]}"
+ fi
- name: Install Doxygen
# GCC compiled doxygen has issues when running graphviz
diff --git a/cmake/compile_definitions/windows.cmake b/cmake/compile_definitions/windows.cmake
index a3009be0..d40fb0fa 100644
--- a/cmake/compile_definitions/windows.cmake
+++ b/cmake/compile_definitions/windows.cmake
@@ -9,6 +9,10 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
# gcc complains about misleading indentation in some mingw includes
list(APPEND SUNSHINE_COMPILE_OPTIONS -Wno-misleading-indentation)
+# gcc15 complains about non-template type 'coroutine_handle' used as a template in Windows.Foundation.h
+# can remove after https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120495 is available in mingw-w64
+list(APPEND SUNSHINE_COMPILE_OPTIONS -Wno-template-body)
+
# see gcc bug 98723
add_definitions(-DUSE_BOOST_REGEX)
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 8d4c08e3..59651565 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -15,6 +15,7 @@ target_compile_options(dxgi-info PRIVATE ${SUNSHINE_COMPILE_OPTIONS})
add_executable(audio-info audio.cpp)
set_target_properties(audio-info PROPERTIES CXX_STANDARD 20)
target_link_libraries(audio-info
+ ${Boost_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
ksuser
${PLATFORM_LIBRARIES})
diff --git a/tools/audio.cpp b/tools/audio.cpp
index 2fe4a7eb..c5ca506f 100644
--- a/tools/audio.cpp
+++ b/tools/audio.cpp
@@ -3,8 +3,8 @@
* @brief Handles collecting audio device information from Windows.
*/
#define INITGUID
-#include "src/utility.h"
+// platform includes
#include
#include
#include
@@ -13,6 +13,12 @@
#include
#include
+// lib includes
+#include
+
+// local includes
+#include "src/utility.h"
+
DEFINE_PROPERTYKEY(PKEY_Device_DeviceDesc, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 2); // DEVPROP_TYPE_STRING
DEFINE_PROPERTYKEY(PKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); // DEVPROP_TYPE_STRING
DEFINE_PROPERTYKEY(PKEY_DeviceInterface_FriendlyName, 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 2);
@@ -44,8 +50,6 @@ namespace audio {
using handle_t = util::safe_ptr_v2;
- static std::wstring_convert, wchar_t> converter;
-
class prop_var_t {
public:
prop_var_t() {
@@ -204,7 +208,7 @@ namespace audio {
// so we can take the first match as the current format to display.
auto audio_client = make_audio_client(device, format);
if (audio_client) {
- current_format = converter.from_bytes(format.name.data());
+ current_format = boost::locale::conv::utf_to_utf(format.name.data());
break;
}
}
From a80ec754658fc19dd55243619dc41bcb36fda2b6 Mon Sep 17 00:00:00 2001
From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Date: Sat, 7 Jun 2025 17:19:04 -0400
Subject: [PATCH 05/67] ci(codeql): use no build mode (#3943)
---
.codeql-prebuild-cpp-Linux.sh | 11 -----
.codeql-prebuild-cpp-Windows.sh | 59 -----------------------
.codeql-prebuild-cpp-macOS.sh | 32 -------------
.github/workflows/codeql.yml | 85 ++++++++++++++-------------------
4 files changed, 36 insertions(+), 151 deletions(-)
delete mode 100644 .codeql-prebuild-cpp-Linux.sh
delete mode 100644 .codeql-prebuild-cpp-Windows.sh
delete mode 100644 .codeql-prebuild-cpp-macOS.sh
diff --git a/.codeql-prebuild-cpp-Linux.sh b/.codeql-prebuild-cpp-Linux.sh
deleted file mode 100644
index f0d03bb2..00000000
--- a/.codeql-prebuild-cpp-Linux.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-# install dependencies for C++ analysis
-set -e
-
-chmod +x ./scripts/linux_build.sh
-./scripts/linux_build.sh --skip-package --ubuntu-test-repo
-
-# Delete CUDA
-rm -rf ./build/cuda
-
-# skip autobuild
-echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
diff --git a/.codeql-prebuild-cpp-Windows.sh b/.codeql-prebuild-cpp-Windows.sh
deleted file mode 100644
index b860c9e8..00000000
--- a/.codeql-prebuild-cpp-Windows.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-# install dependencies for C++ analysis
-set -e
-
-# update pacman
-pacman --noconfirm -Syu
-
-gcc_version="14.2.0-3"
-
-broken_deps=(
- "mingw-w64-ucrt-x86_64-gcc"
- "mingw-w64-ucrt-x86_64-gcc-libs"
-)
-
-tarballs=""
-for dep in "${broken_deps[@]}"; do
- tarball="${dep}-${gcc_version}-any.pkg.tar.zst"
-
- # download and install working version
- wget https://repo.msys2.org/mingw/ucrt64/${tarball}
-
- tarballs="${tarballs} ${tarball}"
-done
-
-# install broken dependencies
-if [ -n "$tarballs" ]; then
- pacman -U --noconfirm ${tarballs}
-fi
-
-# install dependencies
-dependencies=(
- "git"
- "mingw-w64-ucrt-x86_64-cmake"
- "mingw-w64-ucrt-x86_64-cppwinrt"
- "mingw-w64-ucrt-x86_64-curl-winssl"
- "mingw-w64-ucrt-x86_64-MinHook"
- "mingw-w64-ucrt-x86_64-miniupnpc"
- "mingw-w64-ucrt-x86_64-nlohmann-json"
- "mingw-w64-ucrt-x86_64-nodejs"
- "mingw-w64-ucrt-x86_64-nsis"
- "mingw-w64-ucrt-x86_64-onevpl"
- "mingw-w64-ucrt-x86_64-openssl"
- "mingw-w64-ucrt-x86_64-opus"
- "mingw-w64-ucrt-x86_64-toolchain"
-)
-
-pacman -Syu --noconfirm --ignore="$(IFS=,; echo "${broken_deps[*]}")" "${dependencies[@]}"
-
-# build
-mkdir -p build
-cmake \
- -B build \
- -G Ninja \
- -S . \
- -DBUILD_DOCS=OFF \
- -DBUILD_WERROR=ON
-ninja -C build
-
-# skip autobuild
-echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
diff --git a/.codeql-prebuild-cpp-macOS.sh b/.codeql-prebuild-cpp-macOS.sh
deleted file mode 100644
index a21a69c3..00000000
--- a/.codeql-prebuild-cpp-macOS.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-# install dependencies for C++ analysis
-set -e
-
-# setup homebrew for x86_64
-/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-eval "$(/usr/local/bin/brew shellenv)"
-
-# install dependencies
-dependencies=(
- "cmake"
- "miniupnpc"
- "ninja"
- "node"
- "openssl@3"
- "opus"
- "pkg-config"
-)
-brew install "${dependencies[@]}"
-
-# build
-mkdir -p build
-cmake \
- -B build \
- -G Ninja \
- -S . \
- -DBOOST_USE_STATIC=OFF \
- -DBUILD_DOCS=OFF \
- -DBUILD_WERROR=ON
-ninja -C build
-
-# skip autobuild
-echo "skip_autobuild=true" >> "$GITHUB_OUTPUT"
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index c9949dd3..24a4945e 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -39,13 +39,23 @@ jobs:
uses: actions/github-script@v7
with:
script: |
- // CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
- // Use only 'java' to analyze code written in Java, Kotlin or both
- // Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
+ // CodeQL supports the following:
+ // ['actions', 'c', 'cpp', 'csharp', 'go', 'java', 'javascript', 'kotlin', 'python', 'ruby', 'swift']
+
// Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
- const supported_languages = ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
+ const supported_languages = [
+ 'cpp',
+ 'csharp',
+ 'go',
+ 'java',
+ 'javascript',
+ 'python',
+ 'ruby',
+ 'swift',
+ ]
const remap_languages = {
+ 'c': 'cpp',
'c++': 'cpp',
'c#': 'csharp',
'kotlin': 'java',
@@ -73,7 +83,8 @@ jobs:
"category": "/language:actions",
"language": "actions",
"name": "actions",
- "os": "ubuntu-latest"
+ "os": "ubuntu-latest",
+ "build-mode": "none",
});
}
@@ -94,8 +105,6 @@ jobs:
let osList = ['ubuntu-latest'];
if (normalizedKey === 'swift') {
osList = ['macos-latest'];
- } else if (normalizedKey === 'cpp') {
- osList = ['macos-latest', 'ubuntu-latest', 'windows-latest'];
}
for (let os of osList) {
// set name for matrix
@@ -103,8 +112,21 @@ jobs:
// set category for matrix
let category = `/language:${normalizedKey}`
- if (normalizedKey === 'cpp') {
- category = `/language:cpp-${os.split('-')[0]}`
+ let build_mode = 'none';
+
+ // Set build mode based on language
+ switch (normalizedKey) {
+ case 'csharp':
+ build_mode = 'autobuild'
+ break
+ case 'go':
+ build_mode = 'autobuild'
+ break
+ case 'java':
+ build_mode = 'autobuild'
+ break
+ default:
+ build_mode = 'none'
}
// add to matrix
@@ -112,7 +134,8 @@ jobs:
"category": category,
"language": normalizedKey,
"name": name,
- "os": os
+ "os": os,
+ "build-mode": build_mode,
})
}
}
@@ -140,9 +163,6 @@ jobs:
analyze:
name: Analyze (${{ matrix.name }})
if: needs.languages.outputs.continue == 'true'
- defaults:
- run:
- shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: languages
@@ -154,35 +174,13 @@ jobs:
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}
- timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
+ timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 60 }}
steps:
- - name: Maximize build space
- if: >-
- runner.os == 'Linux' &&
- matrix.language == 'cpp'
- uses: easimon/maximize-build-space@v10
- with:
- root-reserve-mb: 30720
- remove-dotnet: ${{ (matrix.language == 'csharp' && 'false') || 'true' }}
- remove-android: 'true'
- remove-haskell: 'true'
- remove-codeql: 'false'
- remove-docker-images: 'true'
-
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- - name: Setup msys2
- if: >-
- runner.os == 'Windows' &&
- matrix.language == 'cpp'
- uses: msys2/setup-msys2@v2
- with:
- msystem: ucrt64
- update: true
-
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
@@ -200,22 +198,11 @@ jobs:
- build
- node_modules
- third-party
-
- # Pre autobuild
- # create a file named .codeql-prebuild-${{ matrix.language }}-${{ runner.os }}.sh in the root of your repository
- - name: Prebuild
- id: prebuild
- run: |
- # check if prebuild script exists
- filename=".codeql-prebuild-${{ matrix.language }}-${{ runner.os }}.sh"
- if [ -f "./${filename}" ]; then
- echo "Running prebuild script: ${filename}"
- ./${filename}
- fi
+ build-mode: ${{ matrix.build-mode || 'none' }}
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
- name: Autobuild
- if: steps.prebuild.outputs.skip_autobuild != 'true'
+ if: matrix.build-mode == 'autobuild'
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
From eaa434ab45ac2cfba1012019fbdb8ff20ee54365 Mon Sep 17 00:00:00 2001
From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Date: Sat, 7 Jun 2025 18:40:28 -0400
Subject: [PATCH 06/67] build(linux): disable cuda option in cmake when
--skip-cuda arg is passed (#3951)
---
scripts/linux_build.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/scripts/linux_build.sh b/scripts/linux_build.sh
index b391f7dc..3b09eed5 100755
--- a/scripts/linux_build.sh
+++ b/scripts/linux_build.sh
@@ -386,7 +386,7 @@ function run_install() {
"gcc-ranlib"
)
- #set gcc version based on distros
+ #set gcc version based on distros
if [ "$distro" == "arch" ]; then
export CC=gcc-14
export CXX=g++-14
@@ -460,6 +460,8 @@ function run_install() {
install_cuda
cmake_args+=("-DSUNSHINE_ENABLE_CUDA=ON")
cmake_args+=("-DCMAKE_CUDA_COMPILER:PATH=$nvcc_path")
+ else
+ cmake_args+=("-DSUNSHINE_ENABLE_CUDA=OFF")
fi
# Cmake stuff here
From 0a98094613d8e9ee2c0759e6042197d675e9e474 Mon Sep 17 00:00:00 2001
From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Date: Sat, 7 Jun 2025 21:29:28 -0400
Subject: [PATCH 07/67] build(homebrew): temporarily use miniupnpc head (#3952)
---
packaging/sunshine.rb | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/packaging/sunshine.rb b/packaging/sunshine.rb
index f13a5a38..ce8c7e81 100644
--- a/packaging/sunshine.rb
+++ b/packaging/sunshine.rb
@@ -33,7 +33,6 @@ class @PROJECT_NAME@ < Formula
depends_on "node" => :build
depends_on "pkg-config" => :build
depends_on "curl"
- depends_on "miniupnpc"
depends_on "openssl"
depends_on "opus"
depends_on "icu4c" => :recommended
@@ -199,6 +198,11 @@ index 5b3638d..aca9481 100644
end
end
+ resource "miniupnpc" do
+ url "https://github.com/miniupnp/miniupnp.git",
+ revision: "e263ab6f56c382e10fed31347ec68095d691a0e8"
+ end
+
def install
ENV["BRANCH"] = "@GITHUB_BRANCH@"
ENV["BUILD_VERSION"] = "@BUILD_VERSION@"
@@ -301,6 +305,23 @@ index 5b3638d..aca9481 100644
end
end
+ # Build miniupnpc
+ resource("miniupnpc").stage do
+ # Change to the miniupnpc directory within the repo
+ cd "miniupnpc" do
+ system "make", "INSTALLPREFIX=#{prefix}/miniupnpc", "install"
+ end
+
+ # Copy the shared libraries to the main lib directory
+ # This ensures they're in the library search path at runtime
+ cp Dir["#{prefix}/miniupnpc/lib/libminiupnpc.so*"], "#{lib}/" if OS.linux?
+
+ # Set include and library paths for the custom miniupnpc
+ ENV.prepend_path "PKG_CONFIG_PATH", "#{prefix}/miniupnpc/lib/pkgconfig"
+ ENV.prepend "CPPFLAGS", "-I#{prefix}/miniupnpc/include"
+ ENV.prepend "LDFLAGS", "-L#{prefix}/miniupnpc/lib"
+ end
+
system "cmake", "-S", ".", "-B", "build", "-G", "Unix Makefiles",
*std_cmake_args,
*args
From e40b7cb73193ddaa490b20baaca47ea60e2d8339 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 8 Jun 2025 02:14:28 +0000
Subject: [PATCH 08/67] build(deps): bump third-party/build-deps from `a51a06a`
to `cf5dffa` (#3934)
Bumps [third-party/build-deps](https://github.com/LizardByte/build-deps) from `a51a06a` to `cf5dffa`.
- [Commits](https://github.com/LizardByte/build-deps/compare/a51a06adf774c51f6a3916b4fe10ca7d436690d3...cf5dffaf4c62a5e5e2949c37b642cfc5ad962b98)
---
updated-dependencies:
- dependency-name: third-party/build-deps
dependency-version: cf5dffaf4c62a5e5e2949c37b642cfc5ad962b98
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
third-party/build-deps | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third-party/build-deps b/third-party/build-deps
index a51a06ad..cf5dffaf 160000
--- a/third-party/build-deps
+++ b/third-party/build-deps
@@ -1 +1 @@
-Subproject commit a51a06adf774c51f6a3916b4fe10ca7d436690d3
+Subproject commit cf5dffaf4c62a5e5e2949c37b642cfc5ad962b98
From 1984d822be7fbe1e8f5acf5f21f21c82e60b7165 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 8 Jun 2025 03:01:10 +0000
Subject: [PATCH 09/67] build(deps): bump third-party/inputtino from `17a9b9c`
to `3a7a658` (#3925)
Bumps [third-party/inputtino](https://github.com/games-on-whales/inputtino) from `17a9b9c` to `3a7a658`.
- [Commits](https://github.com/games-on-whales/inputtino/compare/17a9b9ce85c6b8e711f777146d3c706c1a2a9fd9...3a7a658782217d77ee1d1055c3930874cfd299aa)
---
updated-dependencies:
- dependency-name: third-party/inputtino
dependency-version: 3a7a658782217d77ee1d1055c3930874cfd299aa
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
third-party/inputtino | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third-party/inputtino b/third-party/inputtino
index 17a9b9ce..3a7a6587 160000
--- a/third-party/inputtino
+++ b/third-party/inputtino
@@ -1 +1 @@
-Subproject commit 17a9b9ce85c6b8e711f777146d3c706c1a2a9fd9
+Subproject commit 3a7a658782217d77ee1d1055c3930874cfd299aa
From 878437362e34b08f5b2224691957b6962f3ec09e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 8 Jun 2025 03:41:47 +0000
Subject: [PATCH 10/67] build(deps): bump vue from 3.5.14 to 3.5.16 (#3924)
Bumps [vue](https://github.com/vuejs/core) from 3.5.14 to 3.5.16.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.14...v3.5.16)
---
updated-dependencies:
- dependency-name: vue
dependency-version: 3.5.16
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 5e159b84..741ea4c8 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,7 @@
},
"dependencies": {
"@lizardbyte/shared-web": "2025.326.11214",
- "vue": "3.5.14",
+ "vue": "3.5.16",
"vue-i18n": "11.1.4"
},
"devDependencies": {
From 7291fa5f1225a7572954a8916742a13017d12be3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 8 Jun 2025 04:49:30 +0000
Subject: [PATCH 11/67] build(deps): bump vue-i18n from 11.1.4 to 11.1.5
(#3920)
Bumps [vue-i18n](https://github.com/intlify/vue-i18n/tree/HEAD/packages/vue-i18n) from 11.1.4 to 11.1.5.
- [Release notes](https://github.com/intlify/vue-i18n/releases)
- [Changelog](https://github.com/intlify/vue-i18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/intlify/vue-i18n/commits/v11.1.5/packages/vue-i18n)
---
updated-dependencies:
- dependency-name: vue-i18n
dependency-version: 11.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 741ea4c8..1906804e 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"dependencies": {
"@lizardbyte/shared-web": "2025.326.11214",
"vue": "3.5.16",
- "vue-i18n": "11.1.4"
+ "vue-i18n": "11.1.5"
},
"devDependencies": {
"@codecov/vite-plugin": "1.9.0",
From 8afb672bb8954e57cad9ba4f5ab2de0ab33d8a90 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 8 Jun 2025 15:07:38 +0000
Subject: [PATCH 12/67] build(deps): bump
packaging/linux/flatpak/deps/flatpak-builder-tools from `fe89c19` to
`ea9bfa2` (#3941)
build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools
Bumps [packaging/linux/flatpak/deps/flatpak-builder-tools](https://github.com/flatpak/flatpak-builder-tools) from `fe89c19` to `ea9bfa2`.
- [Commits](https://github.com/flatpak/flatpak-builder-tools/compare/fe89c19b147432d896f7c1c686630a992132d583...ea9bfa22d175066dd3044544cc55aa070f8282f4)
---
updated-dependencies:
- dependency-name: packaging/linux/flatpak/deps/flatpak-builder-tools
dependency-version: ea9bfa22d175066dd3044544cc55aa070f8282f4
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
packaging/linux/flatpak/deps/flatpak-builder-tools | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packaging/linux/flatpak/deps/flatpak-builder-tools b/packaging/linux/flatpak/deps/flatpak-builder-tools
index fe89c19b..ea9bfa22 160000
--- a/packaging/linux/flatpak/deps/flatpak-builder-tools
+++ b/packaging/linux/flatpak/deps/flatpak-builder-tools
@@ -1 +1 @@
-Subproject commit fe89c19b147432d896f7c1c686630a992132d583
+Subproject commit ea9bfa22d175066dd3044544cc55aa070f8282f4
From 0ad1b1234eea41dd8e6f75daebbd2fceb8aa007f Mon Sep 17 00:00:00 2001
From: Coia Prant
Date: Mon, 9 Jun 2025 01:28:25 +0800
Subject: [PATCH 13/67] chore: drop 32-bit and add more x86_64 check (#3938)
Signed-off-by: Coia Prant
---
src/platform/windows/audio.cpp | 4 +---
src/rswrapper.c | 4 ++--
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/platform/windows/audio.cpp b/src/platform/windows/audio.cpp
index 7c38b1bc..20e600ac 100644
--- a/src/platform/windows/audio.cpp
+++ b/src/platform/windows/audio.cpp
@@ -27,10 +27,8 @@ DEFINE_PROPERTYKEY(PKEY_Device_DeviceDesc, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x2
DEFINE_PROPERTYKEY(PKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); // DEVPROP_TYPE_STRING
DEFINE_PROPERTYKEY(PKEY_DeviceInterface_FriendlyName, 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 2);
-#if defined(__x86_64) || defined(_M_AMD64)
+#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64)
#define STEAM_DRIVER_SUBDIR L"x64"
-#elif defined(__i386) || defined(_M_IX86)
- #define STEAM_DRIVER_SUBDIR L"x86"
#else
#warning No known Steam audio driver for this architecture
#endif
diff --git a/src/rswrapper.c b/src/rswrapper.c
index 953ba477..53069620 100644
--- a/src/rswrapper.c
+++ b/src/rswrapper.c
@@ -39,7 +39,7 @@
#define gemm DECORATE_FUNC(gemm, ISA_SUFFIX)
#define invert_mat DECORATE_FUNC(invert_mat, ISA_SUFFIX)
-#if defined(__x86_64__) || defined(__i386__)
+#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64)
// Compile a variant for SSSE3
#if defined(__clang__)
@@ -122,7 +122,7 @@ reed_solomon_decode_t reed_solomon_decode_fn;
* @details The streaming code will directly invoke these function pointers during encoding.
*/
void reed_solomon_init(void) {
-#if defined(__x86_64__) || defined(__i386__)
+#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64)
if (__builtin_cpu_supports("avx512f") && __builtin_cpu_supports("avx512bw")) {
reed_solomon_new_fn = reed_solomon_new_avx512;
reed_solomon_release_fn = reed_solomon_release_avx512;
From 924823151008a8271b3159e9f938e6146563b825 Mon Sep 17 00:00:00 2001
From: Joey Riches
Date: Sun, 8 Jun 2025 19:06:27 +0100
Subject: [PATCH 14/67] fix(package/linux): update desktop metainfo (#3901)
---
packaging/linux/sunshine.appdata.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/packaging/linux/sunshine.appdata.xml b/packaging/linux/sunshine.appdata.xml
index 93757eb6..cb999d41 100644
--- a/packaging/linux/sunshine.appdata.xml
+++ b/packaging/linux/sunshine.appdata.xml
@@ -1,7 +1,7 @@
- @PROJECT_NAME@.desktop
- @PROJECT_LICENSE@
+ @PROJECT_NAME@
+ CC0-1.0
@PROJECT_LICENSE@
@PROJECT_NAME@
@CMAKE_PROJECT_HOMEPAGE_URL@
@@ -11,6 +11,7 @@
@PROJECT_LONG_DESCRIPTION@
+ sunshine.desktop
https://app.lizardbyte.dev/Sunshine/assets/images/AdobeStock_305732536_1920x1280.jpg
From e7a8f3b3ce1627282d371fdd0d7414427891524d Mon Sep 17 00:00:00 2001
From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Date: Sun, 8 Jun 2025 19:26:54 -0400
Subject: [PATCH 15/67] docs(site): add screenshots (#3956)
---
.../screenshots/01-sunshine-welcome-page.png | Bin 0 -> 136483 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 gh-pages-template/assets/img/screenshots/01-sunshine-welcome-page.png
diff --git a/gh-pages-template/assets/img/screenshots/01-sunshine-welcome-page.png b/gh-pages-template/assets/img/screenshots/01-sunshine-welcome-page.png
new file mode 100644
index 0000000000000000000000000000000000000000..97c5a5af07e4a8f6b091c1dc967ca33096cb0916
GIT binary patch
literal 136483
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
+18bZQnTe3j3<33@SDyn~|GWaA
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