Control: tags -1 confirmed

On 2026-03-12 12:29:09 +0000, Simon McVittie wrote:
> Package: release.debian.org
> Severity: normal
> X-Debbugs-Cc: [email protected], 
> [email protected]
> Control: affects -1 + src:sdl2-compat
> User: [email protected]
> Usertags: transition
> 
> SDL upstream is in the process of phasing out "classic" src:libsdl2 (an 
> independent library), replacing it with src:sdl2-compat (a compatibility 
> shim which dlopens libsdl3 and uses it to implement the SDL 2 API/ABI).  
> This is very similar to the transition from src:libsdl1.2 to 
> src:sdl12-compat that we did in trixie 
> (https://bugs.debian.org/1039911). Faster-moving distributions like Arch 
> and Fedora have already made this switch, and I think it's time for 
> Debian to do the same.

Thanks for the detailed plan. Go ahead.

Cheers

> 
> This is a "soft" transition with no SONAME bump: the new library is 
> intended to be fully API- and ABI-compatible with the old (same SONAME, 
> same pkg-config module name, same CLI interface to the legacy 
> sdl2-config script, different implementation internally), so it's more 
> like an unusually intrusive minor-version release. After approving the 
> transition, the release team will hopefully not need to take any further 
> action.
> 
> src:sdl2-compat in experimental already implements the proposed design.
> 
> I intend to keep src:libsdl2 in the archive, at least initially: that 
> way, users who encounter a regression can install the libsdl2-classic 
> package and force its use via environment variables as documented in 
> <https://salsa.debian.org/sdl-team/sdl2-compat/-/blob/debian/snapshots/debian/README.Debian?ref_type=heads>.
>   
> It should probably be removed before forky+1, or perhaps before forky if 
> the transition goes particularly well.
> 
> Risks
> =====
> 
> I did a mass-rebuild, partly on debusine and partly locally or on 
> porterboxes. All 3 FTBFS bugs found (test failures) have been fixed by 
> improvements to the affected packages. I've also tested an assortment of 
> SDL 2 games (and SDL 1.2 games via sdl12-compat), and asked -devel and 
> the games team to help with testing (back in September 2025) with no 
> regressions reported as a result.
> 
> As with the SDL 1.2 transition, it isn't really feasible for me to test 
> every SDL 2 game myself, and I generally haven't been testing non-game 
> applications that use SDL (many of which are emulators requiring ROMs 
> that I don't have, or specialized music apps that I don't know how to 
> use).
> 
> Known regressions are listed here, and at the time of writing have all 
> been fixed: 
> <https://bugs.debian.org/cgi-bin/[email protected];tag=regression>
> 
> The API/ABI is the same, but there are various subtle behaviour changes 
> between libsdl2 and sdl2-compat that could break games' expectations 
> (especially if they are relying on behaviours that were never intended 
> to be guaranteed), either as a result of intentional changes or as a 
> result of SDL bugs. The ones I know about are:
> 
> * "Classic" SDL 2 defaults to X11, via Xwayland if necessary.
>   sdl2-compat defaults to native Wayland if a sufficiently capable
>   compositor is detected. This will break games that blindly assume
>   that Unix implies X11, and could also expose Wayland-related bugs that
>   were previously hidden, such as <https://bugs.debian.org/1124335>. The
>   correct fix for a game that assumes X11 is to make the game tell SDL
>   "use only X11", but for proprietary games or games that are otherwise
>   hard to modify, sdl2-compat has a "quirks" table that can automatically
>   force X11 based on the name of the executable.
> 
> * libsdl3 has a Vulkan backend for the rendering API, which sdl2-compat
>   will use if appropriate. It is unlikely to be perfectly bug-for-bug
>   compatible with the OpenGL or software backends. If necessary,
>   sdl2-compat's quirks table can be used to work around this.
> 
> * sdl2-compat has slightly different behaviour around paletted
>   (256-colour) windows and textures, which caused a regression for the
>   autopkgtest and build-time tests of the SDL 1.2 Perl binding. I worked
>   around this in sdl12-compat for now, but when we switch to sdl2-compat
>   we'll want to do a coordinated upload of sdl12-compat reverting that
>   workaround.
> 
> The only autopkgtest regression listed in 
> https://qa.debian.org/excuses.php?experimental=1&package=sdl2-compat is 
> for yuzu on arm64, but yuzu isn't in testing (*because* it's broken on 
> arm64, in fact) so this shouldn't prevent transition.
> 
>     smcv
> 

-- 
Sebastian Ramacher

Reply via email to