From Fedora Project Wiki
(Drop testing blueprint)
(Add note about SDL 1.2 games)
Line 45: Line 45:


== Detailed Description ==
== 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.
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.




Line 52: Line 52:


== Benefit to Fedora ==
== Benefit to Fedora ==
Switching SDL 2 powered games to use <code>sdl2-compat</code> ensures that SDL-based applications continue to use the actively developed codebase.
Switching SDL 2 powered games to use <code>sdl2-compat</code> 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 <code>sdl12-compat</code> to run on SDL3 as well through the fully supported path of <code>sdl12-compat</code> running on <code>sdl2-compat</code> running on SDL3.


== Scope ==
== Scope ==
Line 82: Line 82:


== How To Test ==
== How To Test ==
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  This can be based off of the above section if early testing has been completed. If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.
The testing steps are simple:
 
Remember that you are writing this how to for interested testers to use to check out your change implementation - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your change.
 
A good "how to test" should answer these four questions:
 
0. What special hardware / data / etc. is needed (if any)?
1. How do I prepare my system to test this change? What packages
need to be installed, config files edited, etc.?
2. What specific actions do I perform to check that the change is
working like it's supposed to?
3. What are the expected results of those actions?
-->


1. Swap <code>SDL2</code> for <code>sdl2-compat</code>: <code>dnf swap SDL2 sdl2-compat</code>
1. Swap <code>SDL2</code> for <code>sdl2-compat</code>: <code>dnf swap SDL2 sdl2-compat</code>


2. Run something that uses SDL 2 like {{package|supertuxkart}} and see that it works.
2. Run something that uses SDL 2 like {{package|supertuxkart}} and see that it works.
3. Run something that uses SDL 1.2 like {{package|icebreaker}} and see that it works.




Line 134: Line 124:
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
-->
-->
Games that use SDL 2 will now transparently use SDL 3 through the <code>sdl2-compat</code> package. This makes it so applications that historically used SDL 2 now use SDL 3.
Applications that use SDL 2 will now transparently use SDL 3 through the <code>sdl2-compat</code> package. This makes it so applications that historically used SDL 2 now use SDL 3.

Revision as of 13:23, 29 November 2024

Replace SDL 2 with sdl2-compat using SDL 3

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

This Change proposes to replace SDL 2 with sdl2-compat, which uses SDL 3.

Owner


Current status

  • Targeted release: Fedora Linux 42
  • Last updated: 2024-11-29
  • [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

  • Other developers:
  • 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.