You are not logged in.

#1 2025-02-01 23:23:13

Fusion916
Member
Registered: 2024-05-18
Posts: 38

How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

On my main desktop I "upgraded" to sdl3 and therefor replaced sdl2 with sdl2-compat and a bunch of stuff broke. It looks like sdl2 is completely gone from the pacman repos and the sdl2 in yay I can't get to install (it just keeps trying to install sdl2-compat).

I have about 10+ different arch setups with I havent done system upgrades on to replace sdl2 and want to completely turn off sdl3 upgrade on those machines when I do pacman -Syyu and revert my main desktop back do sdl2

Has anyone successfully done this?

Last edited by Fusion916 (2025-02-01 23:23:28)

Offline

#2 2025-02-02 00:08:45

gromit
Package Maintainer (PM)
From: Germany
Registered: 2024-02-10
Posts: 1,027
Website

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

What exactly broke? Maybe we can rather fix the bug tongue

Offline

#3 2025-02-02 01:24:56

mackin_cheese
Member
Registered: 2025-01-07
Posts: 282

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

what issues are you facing? and what's the behavior you see when trying to install sdl2 via yay?

Online

#4 2025-02-02 05:22:23

Fusion916
Member
Registered: 2024-05-18
Posts: 38

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

gromit wrote:

What exactly broke? Maybe we can rather fix the bug tongue

1. Mame audio is completely broken. Was working fine before sdl-compat upgrade
2. freerdp stopped working completely for Windows Server 2022, not 100% sure its related to sdl3, but now freerdp-git doesnt even build anymore because of it:

Using CXXFLAGS_RELEASE -O3 -DNDEBUG
Using CXXFLAGS_DEBUG -g
Using CXXFLAGS_MINSIZEREL -Os -DNDEBUG
Using CXXFLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG
Building both, SDL2 and SDL3 clients, forcing WITH_CLIENT_SDL_VERSIONED=ON
add_executable(sdl2-freerdp) []
CMake Error at client/SDL/SDL3/dialogs/CMakeLists.txt:48 (find_package):
  By not providing "FindSDL3_ttf.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "SDL3_ttf",
  but CMake did not find one.

  Could not find a package configuration file provided by "SDL3_ttf" with any
  of the following names:

    SDL3_ttfConfig.cmake
    sdl3_ttf-config.cmake

  Add the installation prefix of "SDL3_ttf" to CMAKE_PREFIX_PATH or set
  "SDL3_ttf_DIR" to a directory containing one of the above files.  If
  "SDL3_ttf" provides a separate development package or SDK, be sure it has
  been installed.
Call Stack (most recent call first):
  client/SDL/SDL3/dialogs/CMakeLists.txt:59 (find_sdl_component)


-- Configuring incomplete, errors occurred!
==> ERROR: A failure occurred in build().
    Aborting...
-> error making: freerdp-git-exit status 4
-> Failed to install the following packages. Manual intervention is required:
freerdp-git - exit status 4

Again, before sdl3 I had no problem building.

Offline

#5 2025-02-02 05:23:36

Fusion916
Member
Registered: 2024-05-18
Posts: 38

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

mackin_cheese wrote:

and what's the behavior you see when trying to install sdl2 via yay?

Even though i try to install sdl2, it just trys to reinstall sdl2-compat:

yay -S sdl2
Sync Dependency (1): sdl2-compat-2.30.51-1
warning: sdl2-compat-2.30.51-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) sdl2-compat-2.30.51-1

Total Installed Size:  2.75 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n]

Offline

#6 2025-02-02 07:11:00

mpan
Member
Registered: 2012-08-01
Posts: 1,379
Website

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

Fusion916:
Things are being resolved. Arch has to wait for the upstream to fix the bugs. 2.30.52 has just been released, fixing numerous issues.⁽¹⁾

If anything critical breaks for you, and you can’t wait for the team to provide updates: consider manually building sdl3 3.2.2 and sdl2-compat 2.30.52. Both need to be updated. Setting pkgrel to 0 ensures official packages override your own versions upon release. Always mention you use custom rebuilds, when seeking support.

If rebuilding doesn’t work: a temporary remedy may be downgrading. Be warned this is a partial upgrade, and you’re on your own, if that affects any other software.

# pacman -U sdl2-2.30.9-1-x86_64.pkg.tar.zst

A copy of the latest sdl2 version in in the archive, if it’s not in your cache anymore.

This is going to leave sdl3 as a stray dependency, if it’s not needed by anything else.

____
⁽¹⁾ After sdl2-compat 2.30.52 release notes:

  • Fixed a black screen in some applications, including Source 1 games

  • Fixed loud garbled audio in some applications, including Source 1 games and DOSBox

  • Fixed audio crackling and potential related crashing in some applications, including vkQuake

  • Fixed opening the main window in ffplay

  • Fixed fullscreen window size when running some games like Meat Boy on Wayland with fractional scaling enabled

  • Fixed keyboard input in Super Meat Boy

  • Fixed mouse motion while the mouse is grabbed

  • Fixed a crash in AntimicroX

  • Fixed building applications that expect SDL to provide standard C headers


Sometimes I seem a bit harsh — don’t get offended too easily!

Offline

#7 2025-02-02 09:21:12

gromit
Package Maintainer (PM)
From: Germany
Registered: 2024-02-10
Posts: 1,027
Website

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

Please take the time to file proper upstream reports if they also persist with the newest (yet to be packaged) version, upstream vowed to fix things quickly and seems really eager to get sdl2-compat to be a fully compatible layer.

Offline

#8 2025-02-02 11:12:49

Fusion916
Member
Registered: 2024-05-18
Posts: 38

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

I had a suspicion dosbox would also be broken in the same way mame was (audio). If the dosbox audio issues are fixed upstream then I would guess the mame audio issues are fixed too. I'll just wait until arch picks it up instead of building from source to test it. Until then I just won't upgrade any of my other arch systems that rely on sdl2 to work properly.

For freerdp, I think now my current issues are unrelated to sdl2 but obviously the build issues from freerdp-git are and im not sure any of the upstream fixes will resolve it. We'll see.

I'll update the thread once arch picks up the new upstream fixes.

mpan wrote:

Fusion916:
Things are being resolved. Arch has to wait for the upstream to fix the bugs. 2.30.52 has just been released, fixing numerous issues.⁽¹⁾

If anything critical breaks for you, and you can’t wait for the team to provide updates: consider manually building sdl3 3.2.2 and sdl2-compat 2.30.52. Both need to be updated. Setting pkgrel to 0 ensures official packages override your own versions upon release. Always mention you use custom rebuilds, when seeking support.

If rebuilding doesn’t work: a temporary remedy may be downgrading. Be warned this is a partial upgrade, and you’re on your own, if that affects any other software.

# pacman -U sdl2-2.30.9-1-x86_64.pkg.tar.zst

A copy of the latest sdl2 version in in the archive, if it’s not in your cache anymore.

This is going to leave sdl3 as a stray dependency, if it’s not needed by anything else.

____
⁽¹⁾ After sdl2-compat 2.30.52 release notes:

  • Fixed a black screen in some applications, including Source 1 games

  • Fixed loud garbled audio in some applications, including Source 1 games and DOSBox

  • Fixed audio crackling and potential related crashing in some applications, including vkQuake

  • Fixed opening the main window in ffplay

  • Fixed fullscreen window size when running some games like Meat Boy on Wayland with fractional scaling enabled

  • Fixed keyboard input in Super Meat Boy

  • Fixed mouse motion while the mouse is grabbed

  • Fixed a crash in AntimicroX

  • Fixed building applications that expect SDL to provide standard C headers

Offline

#9 2025-02-02 11:13:32

mpan
Member
Registered: 2012-08-01
Posts: 1,379
Website

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

While reporting upstream, don’t just “me too.” Report new stuff (and be sure to check “closed” issues) or provide anything that could help them resolving the problem. They’re more than aware of sdl2-compat breaking things and there is no need to either remind them of that or urge them.

For the record, the updated versions do not resolve all issues, so tune in for more news.


Sometimes I seem a bit harsh — don’t get offended too easily!

Offline

#10 2025-02-02 12:20:38

xerxes_
Member
Registered: 2018-04-29
Posts: 882

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

When you upgrade(d) system(s) there is/was a question to replace sdl2 by sdl2-compat. You can just not agree to do this for now on your other (not yet upgraded) systems or, if that don't work, blacklist in pacman.conf sdl2 package for now, so it will not update.

On updated system you can preload sdl2 globally, for example in .bashrc, like here, while you have sdl2-compat and sdl3, you would just don't use it. And periodically you would check if situation is getting better by setting preload variable to null and run affected apps from terminal.

Last edited by xerxes_ (2025-02-02 12:22:29)

Offline

#11 2025-02-02 19:45:49

Fusion916
Member
Registered: 2024-05-18
Posts: 38

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

It looks like the new sdl-compat package completely fixed the mame audio issues. Thanks.

freerdp-git still dosesnt build. I'll open an issue on their github and see if it's something they can address on their side.

Offline

#12 2025-02-03 02:07:20

mpan
Member
Registered: 2012-08-01
Posts: 1,379
Website

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

New versions of sdl3 and sdl2-compat hit Arch repos. Be sure to update to sdl3>=3.2.2-1 and sdl2-compat≥2.30.52 before discussing issues here or reporting to bugtrackers.

Some issues are already fixed in the main branch and scheduled for the upcoming releases. You may check sdl2-compat closed issues and see, if a patch is available. Apply it and rebuild the latest version. Note many bugs are actually in sdl3, not in sdl2-compat: look at what links point to.

To fetch a patch file from GitHub without having to deal with obtaining the entire repo, just navigate in the webapp to the right commit and in the address bar append “.patch” to the URL.


Sometimes I seem a bit harsh — don’t get offended too easily!

Offline

#13 2025-02-05 21:06:40

vinibali
Member
Registered: 2015-06-22
Posts: 10

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

I also opened a bug for the sdl2-compat package at GitHub as it broke the force feedback with Wine. I think this change should have been mentioned in the webpage's Home.
https://github.com/libsdl-org/sdl2-compat/issues/306

Offline

#14 2025-02-07 22:07:26

vinibali
Member
Registered: 2015-06-22
Posts: 10

Re: How do I properly downgrade to sdl2 and ignore sdl3 for upgrades

vinibali wrote:

I also opened a bug for the sdl2-compat package at GitHub as it broke the force feedback with Wine. I think this change should have been mentioned in the webpage's Home.
https://github.com/libsdl-org/sdl2-compat/issues/306

Fixes had been shipped to:
* sdl2-compat https://github.com/libsdl-org/sdl2-comp … 844861d800 and
* sdl3 https://github.com/libsdl-org/SDL/commi … 57e51f917a

Offline

Board footer

Powered by FluxBB