From f04f1a8bcea2533e8d0ca3e94db43f433004b52f Mon Sep 17 00:00:00 2001 From: Edu Meneses Date: Thu, 6 Aug 2026 09:42:55 -0400 Subject: [PATCH 1/6] sdl: consume SDL3 from the SDK Points the SDK prefix paths at $OSSIA_SDK/SDL3 (see ossia/sdk#27), renames the ossia::sdl2 link target to ossia::sdl3, moves the Emscripten link option to -sUSE_SDL=3, and bumps libossia to the branch carrying the API port. The libossia bump also picks up the 13 commits of master the submodule was behind; none of them touch SDL. avendish is deliberately untouched. avendish.ossia.cmake and avendish.standalone.cmake do reference a bare SDL2 link target, but every one of those references sits behind either the `if(1)` short-circuit at the top of avendish.ossia.cmake or an `if(TARGET ossia::ossia)` that score's build does not enter -- no link.txt in a configured score build mentions SDL2, and the only libSDL2.so left in build.ninja comes from system ffmpeg's avdevice pkg-config ldflags, which is unrelated. Verified on linux-x86_64 against SDL3 3.4.14: JoystickDevice.cpp, JoystickProtocolFactory.cpp, JoystickProtocolSettingsWidget.cpp, JoystickSpecificSettingsSerialization.cpp and score_plugin_audio.cpp (which is what pulls in Audio/SDLInterface.hpp) all compile clean under this build's own flags and warnings. joystick_info keeps its index-based API, so the enumeration loops in JoystickDevice and JoystickProtocolFactory and the (id, index) pair in JoystickSpecificSettings needed no change and existing save files keep loading. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01TTUi76cnUWh7dGZC64LqbZ --- 3rdparty/libossia | 2 +- CMakeLists.txt | 6 +++--- cmake/ScoreExternalAddon.developer.cmake | 4 ++-- src/app/CMakeLists.txt | 2 +- src/plugins/score-plugin-audio/CMakeLists.txt | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/3rdparty/libossia b/3rdparty/libossia index 15a6c68801..6cb33c0c25 160000 --- a/3rdparty/libossia +++ b/3rdparty/libossia @@ -1 +1 @@ -Subproject commit 15a6c68801eef6bc47e20f954ba47efe670ce671 +Subproject commit 6cb33c0c255f23ba930827861cdd78f939415186 diff --git a/CMakeLists.txt b/CMakeLists.txt index 67a3a0d2c4..361e253741 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ if(OSSIA_SDK) set(CMAKE_PREFIX_PATH "${OSSIA_SDK}" - "${OSSIA_SDK}/SDL2" + "${OSSIA_SDK}/SDL3" "${OSSIA_SDK}/qt6-static-debug" "${OSSIA_SDK}/qt6-static" "${OSSIA_SDK}/llvm" @@ -49,8 +49,8 @@ if(OSSIA_SDK) "${OSSIA_SDK}/sysroot/lib/cmake/Snappy" "${OSSIA_SDK}/sysroot/lib/cmake/zstd" - "${OSSIA_SDK}/SDL2/lib64" - "${OSSIA_SDK}/SDL2/lib64/cmake/SDL2" + "${OSSIA_SDK}/SDL3/lib64" + "${OSSIA_SDK}/SDL3/lib64/cmake/SDL3" "${OSSIA_SDK}/qt6-static-debug/lib64" "${OSSIA_SDK}/qt6-static/lib64" "${OSSIA_SDK}/llvm-libs/lib64" diff --git a/cmake/ScoreExternalAddon.developer.cmake b/cmake/ScoreExternalAddon.developer.cmake index 6d2b3480d8..0d9311a258 100644 --- a/cmake/ScoreExternalAddon.developer.cmake +++ b/cmake/ScoreExternalAddon.developer.cmake @@ -25,7 +25,7 @@ list(APPEND CMAKE_PREFIX_PATH "${CMAKE_MODULE_PATH}") set(CMAKE_PREFIX_PATH "${OSSIA_SDK}" - "${OSSIA_SDK}/SDL2" + "${OSSIA_SDK}/SDL3" "${OSSIA_SDK}/qt6-static-debug" "${OSSIA_SDK}/qt6-static" "${OSSIA_SDK}/llvm" @@ -50,7 +50,7 @@ set(CMAKE_PREFIX_PATH "${OSSIA_SDK}/sysroot/lib/cmake/Snappy" "${OSSIA_SDK}/sysroot/lib/cmake/zstd" - "${OSSIA_SDK}/SDL2/lib64" + "${OSSIA_SDK}/SDL3/lib64" "${OSSIA_SDK}/qt6-static-debug/lib64" "${OSSIA_SDK}/qt6-static/lib64" "${OSSIA_SDK}/llvm-libs/lib64" diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 1487042793..b17a038fa9 100755 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -17,7 +17,7 @@ endif() if(CMAKE_SYSTEM_NAME MATCHES Emscripten) add_link_options("SHELL:-sASSERTIONS=0") add_link_options("SHELL:-sSAFE_HEAP=0") - add_link_options("SHELL:-sUSE_SDL=2") + add_link_options("SHELL:-sUSE_SDL=3") add_link_options("SHELL:-sSTACK_OVERFLOW_CHECK=0") #add_link_options("SHELL:--source-map-base http://127.0.0.1:8000/") add_link_options("SHELL:-sFETCH=1") diff --git a/src/plugins/score-plugin-audio/CMakeLists.txt b/src/plugins/score-plugin-audio/CMakeLists.txt index 2d533e25eb..1dec3bff98 100644 --- a/src/plugins/score-plugin-audio/CMakeLists.txt +++ b/src/plugins/score-plugin-audio/CMakeLists.txt @@ -99,7 +99,7 @@ if(OSSIA_ENABLE_PIPEWIRE) endif() if(OSSIA_ENABLE_SDL) - target_link_libraries(${PROJECT_NAME} PRIVATE $) + target_link_libraries(${PROJECT_NAME} PRIVATE $) score_declare_feature(sdl) endif() From 1a099ad19d6dd4dd42d6396f1ab988a9d3beae23 Mon Sep 17 00:00:00 2001 From: Edu Meneses Date: Thu, 6 Aug 2026 09:50:22 -0400 Subject: [PATCH 2/6] sdl: get SDL3 to the packaging targets that build against system libraries The prefix-path change only covers builds that consume $OSSIA_SDK. The flatpak and the distro legs resolve SDL from elsewhere, and find_package(SDL3) finds nothing there, which silently turns OSSIA_ENABLE_SDL off and drops the joystick protocol and the SDL audio engine from those artefacts. The flatpak had no SDL module at all: it was picking SDL2 up from the org.kde.Platform runtime. Every other non-runtime dependency in that manifest is bundled (portaudio, boost, faust, ysfx, ...), so SDL3 is bundled the same way, built with the same subsystem set the SDK uses. For the distro legs, libsdl3 exists in Debian trixie (3.2.10) and sid (3.4.14) and in Ubuntu plucky (3.2.8) and questing (3.2.20), so those move to libsdl3-dev/libsdl3-0, and nix moves to the SDL3 attribute. Ubuntu jammy, noble, lunar and oracular are deliberately left alone: none of those releases ship libsdl3 at all, so there is nothing to point them at. They will build without the joystick protocol until someone decides whether to build SDL3 from source in their deps scripts. Debian bookworm/bullseye/trixie already had their libsdl2 lines commented out, so nothing changes for them. Note this is a silent downgrade rather than a build failure, despite score_assert_feature(sdl) and SCORE_DEPLOYMENT_BUILD=1 being set on those legs: score_assert_feature is currently a no-op. It does list(APPEND SCORE_MISSING_FEATURES ...) inside a function() with no PARENT_SCOPE, so the variable the FATAL_ERROR tests is always empty, and it also passes a dereferenced "${SCORE_FEATURES_LIST}" to IN_LIST, which expects the list's name. Left as-is here on purpose - fixing it belongs in its own change, and would turn several legs red at once. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01TTUi76cnUWh7dGZC64LqbZ --- ci/debian.trixie-system.deps.sh | 4 +-- ci/nix.build.nix | 4 +-- ci/ubuntu.2604.deps.sh | 2 +- ci/ubuntu.plucky.deps.sh | 2 +- .../Linux/Flatpak/io.ossia.score.yml | 1 + .../Linux/Flatpak/modules/sdl3.yaml | 32 +++++++++++++++++++ 6 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 cmake/Deployment/Linux/Flatpak/modules/sdl3.yaml diff --git a/ci/debian.trixie-system.deps.sh b/ci/debian.trixie-system.deps.sh index 4b4cb94106..9f1c90a4dd 100755 --- a/ci/debian.trixie-system.deps.sh +++ b/ci/debian.trixie-system.deps.sh @@ -10,7 +10,7 @@ source ci/common.setup.sh export CLANG_VERSION=19 -# libsdl2-dev libsdl2-2.0-0 +# libsdl3-dev libsdl3-0 $SUDO apt-get update -qq $SUDO apt-get install -qq --force-yes \ ${PACKAGES:=} \ @@ -51,7 +51,7 @@ $SUDO apt-get install -qq --force-yes \ libonnxruntime-dev \ faust \ libgps-dev \ - libsdl2-dev \ + libsdl3-dev \ glslang-dev glslang-tools \ libzita-alsa-pcmi-dev \ libvst3sdk-dev \ diff --git a/ci/nix.build.nix b/ci/nix.build.nix index fe17e697af..8702e3414d 100644 --- a/ci/nix.build.nix +++ b/ci/nix.build.nix @@ -34,7 +34,7 @@ , re2 , rubberband , snappy -, SDL2 +, SDL3 , spdlog , suil , udev @@ -89,7 +89,7 @@ clangStdenv.mkDerivation (finalAttrs: { re2 rubberband snappy - SDL2 + SDL3 spdlog suil udev diff --git a/ci/ubuntu.2604.deps.sh b/ci/ubuntu.2604.deps.sh index b5488d2fa8..67cf832760 100755 --- a/ci/ubuntu.2604.deps.sh +++ b/ci/ubuntu.2604.deps.sh @@ -33,7 +33,7 @@ $SUDO apt install -y \ qt6-websockets-dev \ qt6-serialport-dev \ qt6-shadertools-dev \ - libbluetooth-dev libsdl2-dev libsdl2-2.0-0 \ + libbluetooth-dev libsdl3-dev libsdl3-0 \ libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev \ libavahi-compat-libdnssd-dev libsamplerate0-dev \ portaudio19-dev \ diff --git a/ci/ubuntu.plucky.deps.sh b/ci/ubuntu.plucky.deps.sh index bf53bd6fdd..5f57329dd0 100755 --- a/ci/ubuntu.plucky.deps.sh +++ b/ci/ubuntu.plucky.deps.sh @@ -34,7 +34,7 @@ $SUDO apt-get install -y \ libqt6websockets6-dev \ qt6-serialport-dev \ qt6-shadertools-dev \ - libbluetooth-dev libsdl2-dev libsdl2-2.0-0 \ + libbluetooth-dev libsdl3-dev libsdl3-0 \ libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev \ libavahi-compat-libdnssd-dev libsamplerate0-dev \ portaudio19-dev \ diff --git a/cmake/Deployment/Linux/Flatpak/io.ossia.score.yml b/cmake/Deployment/Linux/Flatpak/io.ossia.score.yml index 44aecb28b0..c6547b9c0c 100644 --- a/cmake/Deployment/Linux/Flatpak/io.ossia.score.yml +++ b/cmake/Deployment/Linux/Flatpak/io.ossia.score.yml @@ -111,6 +111,7 @@ modules: - shared-modules/linux-audio/lilv.json - modules/dr_libs.yaml - modules/portaudio.yaml + - modules/sdl3.yaml - modules/rubberband.yaml - modules/rapidfuzz-cpp.yaml - modules/re2.yaml diff --git a/cmake/Deployment/Linux/Flatpak/modules/sdl3.yaml b/cmake/Deployment/Linux/Flatpak/modules/sdl3.yaml new file mode 100644 index 0000000000..7892ff00f1 --- /dev/null +++ b/cmake/Deployment/Linux/Flatpak/modules/sdl3.yaml @@ -0,0 +1,32 @@ +# Joystick / gamepad input, and the SDL audio backend +name: sdl3 +buildsystem: cmake-ninja +config-opts: + - -Wno-dev + - -DCMAKE_BUILD_TYPE=Release + - -DCMAKE_POSITION_INDEPENDENT_CODE=ON + - -DBUILD_SHARED_LIBS=ON + - -DSDL_JOYSTICK=ON + - -DSDL_HAPTIC=ON + - -DSDL_HIDAPI=ON + - -DSDL_HIDAPI_JOYSTICK=ON + - -DSDL_POWER=ON + - -DSDL_SENSOR=ON + - -DSDL_AUDIO=ON + - -DSDL_VIDEO=OFF + - -DSDL_RENDER=OFF + - -DSDL_CAMERA=OFF + - -DSDL_GPU=OFF + - -DSDL_DIALOG=OFF + - -DSDL_TRAY=OFF + - -DSDL_X11=OFF + - -DSDL_WAYLAND=OFF + - -DSDL_UNIX_CONSOLE_BUILD=ON + - -DSDL_TESTS=OFF + - -DSDL_TEST_LIBRARY=OFF + - -DSDL_EXAMPLES=OFF + - -DSDL_INSTALL_CPACK=OFF +sources: + - type: archive + url: https://github.com/libsdl-org/SDL/releases/download/release-3.4.14/SDL3-3.4.14.tar.gz + sha256: 30d4aa2b3037718142b32dffd4e72f917ebb6cc5227150e7bb9c45efb2153aeb From 84612bb12dbd67b0da99559c03ee7b884d49b687 Mon Sep 17 00:00:00 2001 From: Edu Meneses Date: Thu, 6 Aug 2026 10:11:07 -0400 Subject: [PATCH 3/6] sdl: build SDL3 from source on the releases that do not package it Ubuntu jammy (22.04 LTS), noble (24.04 LTS), lunar and oracular ship no libsdl3 at all, so pointing them at a package was not an option and they would otherwise have built with the joystick protocol and the SDL audio engine quietly missing. ci/sdl3.source.deps.sh builds SDL3 3.4.14 into /usr/local with the same subsystem set as the SDK's sdl.sh and the flatpak module. It is sourced rather than executed so $SUDO from common.setup.sh stays in scope, which is also why it contains no `exit` - that would take the calling deps script down with it and skip common.deps.sh. It short-circuits on `pkg-config --exists sdl3`, so a release that gains a libsdl3 package later only needs its apt line changed and the source build becomes a no-op. libsdl2-dev/libsdl2-2.0-0 are replaced by libudev-dev on those four: SDL3's linux joystick and HIDAPI backends want it, and nothing else in the tree needs SDL2 any more. Version tracks SDL_VERSION in ossia/sdk's common/versions.sh; keep them in step. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01TTUi76cnUWh7dGZC64LqbZ --- ci/sdl3.source.deps.sh | 62 ++++++++++++++++++++++++++++++++++++++ ci/ubuntu.jammy.deps.sh | 5 ++- ci/ubuntu.lunar.deps.sh | 5 ++- ci/ubuntu.noble.deps.sh | 5 ++- ci/ubuntu.oracular.deps.sh | 5 ++- 5 files changed, 78 insertions(+), 4 deletions(-) create mode 100755 ci/sdl3.source.deps.sh diff --git a/ci/sdl3.source.deps.sh b/ci/sdl3.source.deps.sh new file mode 100755 index 0000000000..d719ed10fd --- /dev/null +++ b/ci/sdl3.source.deps.sh @@ -0,0 +1,62 @@ +#!/bin/bash -eux + +# SDL3 from source, for distributions that do not package it yet. Sourced, not +# executed, so that $SUDO from common.setup.sh is in scope - hence no `exit` +# anywhere in here, which would take the calling deps script down with it. +# +# Ubuntu jammy (22.04), noble (24.04), lunar and oracular ship no libsdl3 at all; +# Debian trixie/sid and Ubuntu plucky/questing do package it and use libsdl3-dev +# instead. Without this, find_package(SDL3) finds nothing, OSSIA_ENABLE_SDL goes +# off, and the build silently loses the joystick protocol and the SDL audio +# engine. +# +# Version tracks SDL_VERSION in ossia/sdk's common/versions.sh. The subsystem set +# matches the SDK's sdl.sh and the flatpak module: score only needs joystick, +# gamepad, haptic, sensor and audio, so video and its dependencies stay off - +# which is also why SDL_UNIX_CONSOLE_BUILD is needed, as SDL3 otherwise refuses +# to configure with both X11 and Wayland disabled. + +if pkg-config --exists sdl3; then + echo "SDL3 $(pkg-config --modversion sdl3) already available, skipping source build" +else + ( + SDL3_VERSION=3.4.14 + SDL3_SRC="SDL3-$SDL3_VERSION" + + wget -nv "https://github.com/libsdl-org/SDL/releases/download/release-$SDL3_VERSION/$SDL3_SRC.tar.gz" + tar xzf "$SDL3_SRC.tar.gz" + rm "$SDL3_SRC.tar.gz" + + cmake -S "$SDL3_SRC" -B sdl3-build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DSDL_JOYSTICK=ON \ + -DSDL_HAPTIC=ON \ + -DSDL_HIDAPI=ON \ + -DSDL_HIDAPI_JOYSTICK=ON \ + -DSDL_POWER=ON \ + -DSDL_SENSOR=ON \ + -DSDL_AUDIO=ON \ + -DSDL_VIDEO=OFF \ + -DSDL_RENDER=OFF \ + -DSDL_CAMERA=OFF \ + -DSDL_GPU=OFF \ + -DSDL_DIALOG=OFF \ + -DSDL_TRAY=OFF \ + -DSDL_X11=OFF \ + -DSDL_WAYLAND=OFF \ + -DSDL_UNIX_CONSOLE_BUILD=ON \ + -DSDL_TESTS=OFF \ + -DSDL_TEST_LIBRARY=OFF \ + -DSDL_EXAMPLES=OFF \ + -DSDL_INSTALL_CPACK=OFF + + cmake --build sdl3-build --parallel + $SUDO cmake --install sdl3-build + $SUDO ldconfig + + rm -rf sdl3-build "$SDL3_SRC" + ) +fi diff --git a/ci/ubuntu.jammy.deps.sh b/ci/ubuntu.jammy.deps.sh index 43c9f7fe65..a6127e4c44 100755 --- a/ci/ubuntu.jammy.deps.sh +++ b/ci/ubuntu.jammy.deps.sh @@ -43,7 +43,7 @@ $SUDO apt-get install -y \ libqt6websockets6-dev \ libqt6serialport6-dev \ libqt6shadertools6-dev \ - libbluetooth-dev libsdl2-dev libsdl2-2.0-0 \ + libbluetooth-dev libudev-dev \ libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev \ libavahi-compat-libdnssd-dev libsamplerate0-dev \ portaudio19-dev \ @@ -53,4 +53,7 @@ $SUDO apt-get install -y \ file \ dpkg-dev +# SDL3 is not packaged on this release; build it from source +source ci/sdl3.source.deps.sh + source ci/common.deps.sh LINUX diff --git a/ci/ubuntu.lunar.deps.sh b/ci/ubuntu.lunar.deps.sh index bb49e14254..1ee0ff8e68 100755 --- a/ci/ubuntu.lunar.deps.sh +++ b/ci/ubuntu.lunar.deps.sh @@ -38,7 +38,7 @@ $SUDO apt-get install -y \ libqt6websockets6-dev \ libqt6serialport6-dev \ libqt6shadertools6-dev \ - libbluetooth-dev libsdl2-dev libsdl2-2.0-0 \ + libbluetooth-dev libudev-dev \ libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev \ libavahi-compat-libdnssd-dev libsamplerate0-dev \ portaudio19-dev \ @@ -50,4 +50,7 @@ $SUDO apt-get install -y \ dpkg-dev \ lsb-release +# SDL3 is not packaged on this release; build it from source +source ci/sdl3.source.deps.sh + source ci/common.deps.sh LINUX diff --git a/ci/ubuntu.noble.deps.sh b/ci/ubuntu.noble.deps.sh index 4a64660239..e5b3079df9 100755 --- a/ci/ubuntu.noble.deps.sh +++ b/ci/ubuntu.noble.deps.sh @@ -33,7 +33,7 @@ $SUDO apt-get install -y \ libqt6websockets6-dev \ libqt6serialport6-dev \ libqt6shadertools6-dev \ - libbluetooth-dev libsdl2-dev libsdl2-2.0-0 \ + libbluetooth-dev libudev-dev \ libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev \ libavahi-compat-libdnssd-dev libsamplerate0-dev \ portaudio19-dev \ @@ -51,4 +51,7 @@ $SUDO rm -rf /usr/bin/lld /usr/bin/ld.lld $SUDO ln -s /usr/bin/lld-19 /usr/bin/lld $SUDO ln -s /usr/bin/ld.lld-19 /usr/bin/ld.lld +# SDL3 is not packaged on this release; build it from source +source ci/sdl3.source.deps.sh + source ci/common.deps.sh LINUX diff --git a/ci/ubuntu.oracular.deps.sh b/ci/ubuntu.oracular.deps.sh index ff8630b9b6..79053740f1 100755 --- a/ci/ubuntu.oracular.deps.sh +++ b/ci/ubuntu.oracular.deps.sh @@ -33,7 +33,7 @@ $SUDO apt-get install -y \ libqt6websockets6-dev \ libqt6serialport6-dev \ libqt6shadertools6-dev \ - libbluetooth-dev libsdl2-dev libsdl2-2.0-0 \ + libbluetooth-dev libudev-dev \ libglu1-mesa-dev libglu1-mesa libgles2-mesa-dev \ libavahi-compat-libdnssd-dev libsamplerate0-dev \ portaudio19-dev \ @@ -45,4 +45,7 @@ $SUDO apt-get install -y \ dpkg-dev \ lsb-release +# SDL3 is not packaged on this release; build it from source +source ci/sdl3.source.deps.sh + source ci/common.deps.sh LINUX From fc5798fa7076da3cc17da7c80ae39289b60f0ddc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Wed, 26 Aug 2026 12:45:10 -0400 Subject: [PATCH 4/6] ci: install SDL3 in system dependency builds --- .github/workflows/win-builds.yaml | 2 +- ci/archlinux.deps.sh | 2 +- ci/archlinux.system.deps.sh | 2 +- ci/debian.trixie.deps.sh | 2 +- ci/win32.mingw.deps.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/win-builds.yaml b/.github/workflows/win-builds.yaml index dfdef0d6ce..605677c6ed 100644 --- a/.github/workflows/win-builds.yaml +++ b/.github/workflows/win-builds.yaml @@ -289,7 +289,7 @@ jobs: portaudio:p fftw:p ffmpeg:p - SDL2:p + sdl3:p - name: Build shell: msys2 {0} diff --git a/ci/archlinux.deps.sh b/ci/archlinux.deps.sh index d9c0a5a648..a656027b34 100755 --- a/ci/archlinux.deps.sh +++ b/ci/archlinux.deps.sh @@ -21,7 +21,7 @@ $SUDO pacman -S --noconfirm --needed \ $PACKAGES \ cmake ninja gcc llvm clang boost \ icu \ - ffmpeg portaudio lv2 suil lilv sdl2 alsa-lib \ + ffmpeg portaudio lv2 suil lilv sdl3 alsa-lib \ avahi fftw bluez-libs dbus \ tar xz wget \ brotli double-conversion zstd glib2 libb2 pcre2 \ diff --git a/ci/archlinux.system.deps.sh b/ci/archlinux.system.deps.sh index 07a477a7e6..b981b2b699 100755 --- a/ci/archlinux.system.deps.sh +++ b/ci/archlinux.system.deps.sh @@ -21,7 +21,7 @@ $SUDO pacman -S --noconfirm --needed \ $PACKAGES \ cmake ninja gcc llvm clang boost \ icu \ - ffmpeg portaudio lv2 suil lilv sdl2 alsa-lib \ + ffmpeg portaudio lv2 suil lilv sdl3 alsa-lib \ avahi fftw bluez-libs \ tar xz wget \ brotli double-conversion zstd glib2 libb2 pcre2 \ diff --git a/ci/debian.trixie.deps.sh b/ci/debian.trixie.deps.sh index 526495cddb..85c4feb485 100755 --- a/ci/debian.trixie.deps.sh +++ b/ci/debian.trixie.deps.sh @@ -10,7 +10,6 @@ source ci/common.setup.sh export CLANG_VERSION=19 -# libsdl2-dev libsdl2-2.0-0 $SUDO apt-get update -qq $SUDO apt-get install -qq --force-yes \ ${PACKAGES:=} \ @@ -21,6 +20,7 @@ $SUDO apt-get install -qq --force-yes \ clang-$CLANG_VERSION lld-$CLANG_VERSION libclang-$CLANG_VERSION-dev llvm-$CLANG_VERSION-dev clang-tools-$CLANG_VERSION \ libfftw3-dev \ libsuil-dev liblilv-dev lv2-dev \ + libsdl3-dev \ libdrm-dev libgbm-dev \ libdbus-1-dev \ libx11-dev libxext-dev libxcomposite-dev libxrandr-dev \ diff --git a/ci/win32.mingw.deps.sh b/ci/win32.mingw.deps.sh index 682d91733f..9afd3fef9c 100755 --- a/ci/win32.mingw.deps.sh +++ b/ci/win32.mingw.deps.sh @@ -2,7 +2,7 @@ # Done in the GH action for caching: # pacboy -S --needed --noconfirm \ -# cmake:p ninja:p toolchain:p cppwinrt:p qt6-base:p qt6-declarative:p qt6-websockets:p qt6-serialport:p qt6-shadertools:p qt6-scxml:p qt6-tools:p qt6-svg:p qt6-connectivity:p boost:p portaudio:p fftw:p ffmpeg:p SDL2:p +# cmake:p ninja:p toolchain:p cppwinrt:p qt6-base:p qt6-declarative:p qt6-websockets:p qt6-serialport:p qt6-shadertools:p qt6-scxml:p qt6-tools:p qt6-svg:p qt6-connectivity:p boost:p portaudio:p fftw:p ffmpeg:p sdl3:p # TODO: # jack2:p not available on clang? From 5e89000c8604d5f0f3c41ed32c2c24ccd55462df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Thu, 27 Aug 2026 21:14:07 -0400 Subject: [PATCH 5/6] nix: make SDL3 input optional --- ci/nix.build.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ci/nix.build.nix b/ci/nix.build.nix index 8702e3414d..ea7c079e40 100644 --- a/ci/nix.build.nix +++ b/ci/nix.build.nix @@ -34,7 +34,7 @@ , re2 , rubberband , snappy -, SDL3 +, SDL3 ? null , spdlog , suil , udev @@ -89,7 +89,6 @@ clangStdenv.mkDerivation (finalAttrs: { re2 rubberband snappy - SDL3 spdlog suil udev @@ -97,7 +96,7 @@ clangStdenv.mkDerivation (finalAttrs: { xorg.libXext xorg.libXcomposite xorg.libXrandr - ]; + ] ++ lib.optional (SDL3 != null) SDL3; cmakeFlags = [ "-Wno-dev" From 636a53da4fb76386c54fef0f917bafd8cb8ac139 Mon Sep 17 00:00:00 2001 From: Edu Meneses Date: Fri, 9 Oct 2026 22:28:42 -0400 Subject: [PATCH 6/6] tools: developer.sh installs SDL3 on MSYS2 libossia now looks for SDL3 only, so the MSYS2 setup in developer.sh would install SDL2 for nothing and configure without SDL. Same package as ci/win32.mingw.deps.sh and the Windows workflow. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Lc7tYGHRn6TmaxMEfBTswW --- tools/developer.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/developer.sh b/tools/developer.sh index 2c4b95fb0b..bc7a158e82 100755 --- a/tools/developer.sh +++ b/tools/developer.sh @@ -286,7 +286,7 @@ else portaudio:p \ fftw:p \ ffmpeg:p \ - SDL2:p + sdl3:p echo "[developer.sh] Configuring ($MINGW_PREFIX)" mkdir -p $BUILD_DIR