SDL: replace SDL with SDL_compat#389106
Conversation
|
I opened #386495 some time ago; it makes SDL_compat use SDL3 under the hood. If we are going to do mass migration then maybe we should merge it first to avoid doing it twice. It may be a bit more risky since sdl2-compat is newer, but I know that Arch Linux already uses this setup so it probably works reasonably well. |
This is a good point, but i'd like to break only one thing at a time if possible. But happy to hear other opinions. |
|
#389124 will further help reduce the amount of rebuilds caused by SDL1 |
|
Thanks for doing this. I have been doing very little work on SDL, so it's truly excellent that you guys are giving it some love. |
067f32e to
79b33cf
Compare
|
Wooohooo this is no longer a mass rebuild as of latest staging! Of course this can't yet go into master because the things preventing this from being a mass rebuild didn't make it to master yet, but this is good! |
|
|
Most of these failing builds have a dependency on git, and git tests somehow keeps exploding with multiple cores. |
|
This is ready once either staging-next gets merged to master (then this can go into master), or when master gets merged into staging (then this can go into staging), whatever happens first |
79b33cf to
e47403c
Compare
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra failure: https://hydra.nixos.org/build/292732591
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292729441
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292730126
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292734958
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292743187
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292743363
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292810698
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292771916
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292732003
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build Hydra fail: https://hydra.nixos.org/build/292728946
|
Bisect says this change regressed the |
commit 7aeac03 (PR NixOS#386495) dropped libX11 and libGLU from propagatedBuildInputs in SDL_compat, and NixOS#389106 pointed SDL to SDL_compat, which broke this build
|
|
|
|
|
found two more:
my grep didn't find anything else, should be the end of it edit: more: |
|
I had grepped through hydra failures at the time, and fixed the ~30 that i found. Those that are left are those that had dependency failures at the time that were fixed since. I am honestly surprised its that many! Thanks for going through these :) |
THIS IS NOT YET READY!!
SDLis old and crusty. Some recent work prepared replacement ofSDL->SDL_compat.SDL1can still be used explicitly, if there is reason to do so. However, since #388447 , #388304 , #387357 , and #388253 , it should now be (close to) possible to useSDL_compatas a dropin replacement. Thanks also to the work of @marcin-serwin , @K900 , and @pbsds .This would also benefit from #387419 as that reduces the paths through which SDL is pulled into dependencies. However, this is by far not the only path causing this to be a mass rebuild.
I am happy to be pointed to things breaking by this. @peterhoeg , current maintainer of SDL, said some programs would break with this switch, back in #339311 (comment). other distros made the switch from SDL to SDL_compat a while ago already, with little noticable fallout. Unless there is actual examples of breakages, i am of the opinion to go for it and figure out later. Conditions to do so is this switch not causing any new build failures, ideally - if there are new build failures, something is wrong and this needs touchup.
As to darwin: I found some logic using SDL on darwin and SDL_compat on Linux only. @emilazy thankfully tested dosbox against SDL_compat (which uses SDL1 on darwin currently) and came to the conclusion it builds and runs. So this change should be ok on darwin too.
The rebuild is quite large, which means validating this is hard. However, apart from
directfb -> gst-plugins-bad -> gtk4, i did an overlay on my main system doing this very switch. So far without any issue. After #387419 is merged, this will be MUCH more reasonable to throw at nixpkgs-review on a community builder.Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.