Building wxPython in Fedora-41 fails with SDL_SetHint not declared

@swt2c I was trying to build wxPython from git on Fedora-41 with Python 3.13 and it failed with SDL errors. Then I setup Docker, but failed with the same errors.

This is the error output:

/home/wxpy/wxPython-4.2.4a15946+920a2bde/build/wxbld/gtk3/bk-deps g++ -c -o mediadll_unix_mediactrl.o        -I/home/wxpy/wxPython-4.2.4a15946+920a2bde/ext/wxWidgets/src/expat/expat/lib -I/home/wxpy/wxPython-4.2.4a15946+920a2bde/build/wxbld/gtk3/lib/wx/include/gtk3-unicode-3.2 -I/home/wxpy/wxPython-4.2.4a15946+920a2bde/ext/wxWidgets/include -D_FILE_OFFSET_BITS=64 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cloudproviders -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/webp -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -DWITH_GZFILEOP -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -pthread  -D__WXGTK__      -DWXBUILDING -DWXUSINGDLL -DWXMAKINGDLL_MEDIA -fPIC -DPIC -pthread -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -Wno-deprecated-declarations -O2 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/libxml2 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -DWITH_GZFILEOP -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/webp -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/cloudproviders -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/webkitgtk-4.0 -I/usr/include/libsoup-2.4 -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4  -fvisibility=hidden -fvisibility-inlines-hidden   /home/wxpy/wxPython-4.2.4a15946+920a2bde/ext/wxWidgets/src/unix/mediactrl.cpp
/home/wxpy/wxPython-4.2.4a15946+920a2bde/ext/wxWidgets/src/unix/sound_sdl.cpp: In member function ‘virtual bool wxSoundBackendSDL::IsAvailable() const’:
/home/wxpy/wxPython-4.2.4a15946+920a2bde/ext/wxWidgets/src/unix/sound_sdl.cpp:134:21: error: ‘SDL_HINT_NO_SIGNAL_HANDLERS’ was not declared in this scope
  134 |         SDL_SetHint(SDL_HINT_NO_SIGNAL_HANDLERS, "1");
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/wxpy/wxPython-4.2.4a15946+920a2bde/ext/wxWidgets/src/unix/sound_sdl.cpp:134:9: error: ‘SDL_SetHint’ was not declared in this scope; did you mean ‘SDL_SetTimer’?
  134 |         SDL_SetHint(SDL_HINT_NO_SIGNAL_HANDLERS, "1");
      |         ^~~~~~~~~~~
      |         SDL_SetTimer
make: *** [Makefile:28693: coredll_sound_sdl.o] Error 1
make: *** Waiting for unfinished jobs....
Error building
ERROR: failed building wxWidgets
Traceback (most recent call last):
  File "/home/wxpy/wxPython-4.2.4a15946+920a2bde/build.py", line 1607, in cmd_build_wx
    wxbuild.main(wxDir(), build_options)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/wxpy/wxPython-4.2.4a15946+920a2bde/buildtools/build_wxwidgets.py", line 505, in main
    exitIfError(wxBuilder.build(dir=buildDir, options=args), "Error building")
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/wxpy/wxPython-4.2.4a15946+920a2bde/buildtools/build_wxwidgets.py", line 70, in exitIfError
    raise builder.BuildError(msg)
buildtools.builder.BuildError: Error building
Finished command: build_wx (13m52.190s)

I will create a PR for the docker configuration, but would like to be sure it builds.

Try dnf install SDL2-devel.

Yes, that fixed my problem.

Now I have another one :disappointed: . I get permissions error except when running the container as root.
This seems to be because podman and SELinux. I will try the solution in this article.