mbox

[bug#40211,0/2] Enable udev support in SDL2 and bump version

Message ID 87tv2dc0gw.fsf@araneo.si
Headers show

Message

Timotej Lazar March 24, 2020, 2:05 p.m. UTC
Hi,

these patches update sdl2 to the latest release and enable udev support.
Without udev I experienced freezes every few seconds in certain games
(for instance hedgewars and supertux) as SDL searched through /dev/input
for joysticks.

Since libudev is dlopened, I add it to rpath in make-flags. During build
this overrides LDFLAGS from the base package’s configure-flags, which
add mesa to rpath. AFAICT this is OK as sdl2 already includes mesa by
linking libgbm.

(Perhaps we could move LDFLAGS to make-flags in the base package, and
make the override explicit in the derived package? Or have sdl2 find and
modify the LDFLAGS entry from the base configure-flags, but that seems
more trouble than it’s worth.)

I was able to rebuild all dependent packages with no (new) failures. I
ran several games and everything appears OK, but I don’t have a joystick
or gamepad to try.

There have been some issues in the past with SDL not finding (correct)
libraries¹, so it would be good to test this on a foreign Guix install.
As for the version bump, the changelog² doesn’t mention any significant
changes except for hidapi support, which is disabled by default.

Thanks!
Timotej

¹ https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00585.html
² https://hg.libsdl.org/SDL/file/355a4f94a782/WhatsNew.txt

Timotej Lazar (2):
  gnu: sdl2: Use udev to discover input devices.
  gnu: sdl2: Update to 2.0.12.

 gnu/local.mk                                |  1 -
 gnu/packages/patches/sdl2-mesa-compat.patch | 21 ----------------
 gnu/packages/sdl.scm                        | 27 ++++++++++++---------
 3 files changed, 16 insertions(+), 33 deletions(-)
 delete mode 100644 gnu/packages/patches/sdl2-mesa-compat.patch

Comments

Marius Bakke April 2, 2020, 4:27 p.m. UTC | #1
Timotej,

Timotej Lazar <timotej.lazar@araneo.si> writes:

> Hi,
>
> these patches update sdl2 to the latest release and enable udev support.
> Without udev I experienced freezes every few seconds in certain games
> (for instance hedgewars and supertux) as SDL searched through /dev/input
> for joysticks.
>
> Since libudev is dlopened, I add it to rpath in make-flags. During build
> this overrides LDFLAGS from the base package’s configure-flags, which
> add mesa to rpath. AFAICT this is OK as sdl2 already includes mesa by
> linking libgbm.
>
> (Perhaps we could move LDFLAGS to make-flags in the base package, and
> make the override explicit in the derived package? Or have sdl2 find and
> modify the LDFLAGS entry from the base configure-flags, but that seems
> more trouble than it’s worth.)
>
> I was able to rebuild all dependent packages with no (new) failures. I
> ran several games and everything appears OK, but I don’t have a joystick
> or gamepad to try.
>
> There have been some issues in the past with SDL not finding (correct)
> libraries¹, so it would be good to test this on a foreign Guix install.
> As for the version bump, the changelog² doesn’t mention any significant
> changes except for hidapi support, which is disabled by default.

Thank you for the excellent research, bugfix, and patches.

I have applied both and hope that it will fix a longstanding problem
with SuperTuxKart and multiple gamepads that I will try out hopefully
this weekend.