Is there an existing issue for this?
Is your issue described in the documentation?
Is your issue present in the latest beta/pre-release?
This issue is present in the latest pre-release
Describe the Bug
Building Sunshine from source using the release tag v2026.403.124357 fails with two compilation errors caused by dependency version drift.
Reproduction steps:
git clone --depth=1 --branch v2026.403.124357 --recurse-submodules https://github.com/LizardByte/Sunshine.git
cd Sunshine
./scripts/linux_build.sh --step=deps --sudo-off
./scripts/linux_build.sh --step=cmake --sudo-off
./scripts/linux_build.sh --step=build --sudo-off
Error 1 — vulkan_encode.cpp fails because FFmpeg (fetched at build time via FetchContent) deprecated AVVulkanDeviceContext::lock_queue/unlock_queue, and the build uses -DBUILD_WERROR=ON:
src/platform/linux/vulkan_encode.cpp:742:19: error: 'AVVulkanDeviceContext::lock_queue' is deprecated [-Werror=deprecated-declarations]
Error 2 — nvenc_base.cpp triggers a version guard #error and references struct members that no longer exist in the bundled nv-codec-headers:
src/nvenc/nvenc_base.cpp:24:4: error: #error Check and update NVENC code for backwards compatibility!
src/nvenc/nvenc_base.cpp:336:27: error: 'struct _NV_ENC_CONFIG_HEVC' has no member named 'pixelBitDepthMinus8'
The root cause is that linux_build.sh fetches FFmpeg at build time without pinning a version. When upstream FFmpeg updates its headers, previously released tags become unbuildable.
Expected Behavior
Release tags should build successfully at any point in time, not only immediately after release.
Additional Context
Workaround: set -DBUILD_WERROR=OFF and patch out the #error / removed struct members in nvenc_base.cpp. This is not ideal for contributors building from source.
Pinning the FFmpeg version in CMake FetchContent (or documenting the compatible version range) would prevent this.
Host Operating System
Docker
Operating System Version
Ubuntu 24.04.4 LTS (Docker image)
Architecture
amd64/x86_64
Package
other (self built)
GPU Type
NVIDIA
GPU Model
RTX 5060 Ti 16GB
GPU Driver/Mesa Version
595.58.03
Capture Method
wlroots (Linux)
Apps
Log output
src/platform/linux/vulkan_encode.cpp:742:19: error: 'AVVulkanDeviceContext::lock_queue' is deprecated [-Werror=deprecated-declarations]
src/platform/linux/vulkan_encode.cpp:748:19: error: 'AVVulkanDeviceContext::unlock_queue' is deprecated [-Werror=deprecated-declarations]
cc1plus: all warnings being treated as errors
src/nvenc/nvenc_base.cpp:24:4: error: #error Check and update NVENC code for backwards compatibility!
src/nvenc/nvenc_base.cpp:336:27: error: 'struct _NV_ENC_CONFIG_HEVC' has no member named 'pixelBitDepthMinus8'
src/nvenc/nvenc_base.cpp:369:27: error: 'struct _NV_ENC_CONFIG_AV1' has no member named 'inputPixelBitDepthMinus8'
src/nvenc/nvenc_base.cpp:370:27: error: 'struct _NV_ENC_CONFIG_AV1' has no member named 'pixelBitDepthMinus8'
ninja: build stopped: subcommand failed.
Online logs
No response
Is there an existing issue for this?
Is your issue described in the documentation?
Is your issue present in the latest beta/pre-release?
This issue is present in the latest pre-release
Describe the Bug
Building Sunshine from source using the release tag
v2026.403.124357fails with two compilation errors caused by dependency version drift.Reproduction steps:
git clone --depth=1 --branch v2026.403.124357 --recurse-submodules https://github.com/LizardByte/Sunshine.gitcd Sunshine./scripts/linux_build.sh --step=deps --sudo-off./scripts/linux_build.sh --step=cmake --sudo-off./scripts/linux_build.sh --step=build --sudo-offError 1 —
vulkan_encode.cppfails because FFmpeg (fetched at build time via FetchContent) deprecatedAVVulkanDeviceContext::lock_queue/unlock_queue, and the build uses-DBUILD_WERROR=ON:Error 2 —
nvenc_base.cpptriggers a version guard#errorand references struct members that no longer exist in the bundlednv-codec-headers:The root cause is that
linux_build.shfetches FFmpeg at build time without pinning a version. When upstream FFmpeg updates its headers, previously released tags become unbuildable.Expected Behavior
Release tags should build successfully at any point in time, not only immediately after release.
Additional Context
Workaround: set
-DBUILD_WERROR=OFFand patch out the#error/ removed struct members innvenc_base.cpp. This is not ideal for contributors building from source.Pinning the FFmpeg version in CMake FetchContent (or documenting the compatible version range) would prevent this.
Host Operating System
Docker
Operating System Version
Ubuntu 24.04.4 LTS (Docker image)
Architecture
amd64/x86_64
Package
other (self built)
GPU Type
NVIDIA
GPU Model
RTX 5060 Ti 16GB
GPU Driver/Mesa Version
595.58.03
Capture Method
wlroots (Linux)
Apps
Log output
Online logs
No response