Replace SDL 2 with sdl2-compat using SDL 3
Summary
This Change proposes to replace SDL 2 with sdl2-compat, which uses SDL 3.
Owner
- Name: Neal Gompa
- Email: ngompa13@gmail.com
Current status
- Targeted release: Fedora Linux 42
- Last updated: 2024-12-03
- [Announced]
- [<will be assigned by the Wrangler> Discussion thread]
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
SDL 2 feature development ended some time ago with efforts being focused on SDL 3. However, many older games still use SDL 2 and cannot change to SDL 3. In order to continue to support SDL 2 games in the modern world, let's replace SDL 2 with sdl2-compat, which uses SDL 3. This also has the effect of moving SDL 1.2 games to SDL3 through sdl12-compat running on sdl2-compat.
Feedback
Benefit to Fedora
Switching SDL 2 powered games to use sdl2-compat
ensures that SDL-based applications continue to use the actively developed codebase. This also has the effect of SDL 1.2 powered games that use sdl12-compat
to run on SDL3 as well through the fully supported path of sdl12-compat
running on sdl2-compat
running on SDL3.
Scope
- Proposal owners:
- Package libsdl2-compat (RH#2316576)
- Retire
SDL2
completely - Do the same thing for the mingw counterparts
- Other developers:
- Release engineering: #12485
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy: N/A (not needed for this Change)
Upgrade/compatibility impact
The SDL2
package would be transparently upgraded to libsdl2-compat
package and games using it should just transparently start using SDL 3.0.
How To Test
The testing steps are simple:
1. Swap SDL2
for sdl2-compat
: dnf swap SDL2 sdl2-compat
2. Run something that uses SDL 2 like supertuxkart
and see that it works.
3. Run something that uses SDL 1.2 like icebreaker
and see that it works.
User Experience
There shouldn't be a noticeable user impact, other than possibly a smoother experience because applications are using SDL 3.0.
Dependencies
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)
Release Notes
Applications that use SDL 2 will now transparently use SDL 3 through the sdl2-compat
package. This makes it so applications that historically used SDL 2 now use SDL 3.