We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 5335 - Patch: enable joystick/haptic/evdev support by default on FreeBSD
Summary: Patch: enable joystick/haptic/evdev support by default on FreeBSD
Status: RESOLVED FIXED
Alias: None
Product: SDL
Classification: Unclassified
Component: *don't know* (show other bugs)
Version: don't know
Hardware: All FreeBSD
: P2 enhancement
Assignee: Ryan C. Gordon
QA Contact: Sam Lantinga
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-11-01 00:29 UTC by doctorwhoguy
Modified: 2020-11-24 15:22 UTC (History)
1 user (show)

See Also:


Attachments
patch for configure (655 bytes, patch)
2020-11-01 00:29 UTC, doctorwhoguy
Details | Diff
FreeBSD compilation fix (255 bytes, patch)
2020-11-22 09:09 UTC, Alex S
Details | Diff
FreeBSD compilation fix (4.82 KB, patch)
2020-11-22 09:12 UTC, Alex S
Details | Diff
avoid private headers (3.53 KB, patch)
2020-11-24 10:25 UTC, Alex S
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description doctorwhoguy 2020-11-01 00:29:03 UTC
Created attachment 4491 [details]
patch for configure

Basically I'm just doing the legwork to submit a FreeBSD patch someone else wrote: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249874
Comment 1 Sam Lantinga 2020-11-12 03:31:37 UTC
Patch added, thanks!
https://hg.libsdl.org/SDL/rev/635b76aa9290
Comment 2 Sam Lantinga 2020-11-12 03:51:12 UTC
SDL's evdev joystick support doesn't work on FreeBSD:
/buildbot/worker/SDL/sdl-freebsd-amd64/src/src/joystick/linux/SDL_sysjoystick.c:26:2: error: SDL now requires a Linux 2.4+ kernel with /dev/input/event support.
#error SDL now requires a Linux 2.4+ kernel with /dev/input/event support.
 ^
/buildbot/worker/SDL/sdl-freebsd-amd64/src/src/joystick/linux/SDL_sysjoystick.c:35:10: fatal error: 'sys/inotify.h' file not found
#include <sys/inotify.h>
         ^~~~~~~~~~~~~~~
Comment 3 Sam Lantinga 2020-11-12 03:51:33 UTC
Can you provide a working patch for FreeBSD?
Comment 4 Alex S 2020-11-22 09:09:42 UTC
Created attachment 4531 [details]
FreeBSD compilation fix
Comment 5 Alex S 2020-11-22 09:10:54 UTC
(In reply to Alex S from comment #4)
> Created attachment 4531 [details]
> FreeBSD compilation fix

Evdev headers aren't actually included in the base system (well, it has a private copy), they are available through the devel/evdev-proto port instead. We also have devel/libinotify and devel/libudev-devd shims, I didn't verify whether they work with SDL.
Comment 6 Alex S 2020-11-22 09:12:38 UTC
Created attachment 4532 [details]
FreeBSD compilation fix

(Not sure what happened to the previous attachment.)
Comment 7 Sam Lantinga 2020-11-24 05:09:01 UTC
Patch added, thanks!
https://hg.libsdl.org/SDL/rev/2929659b559b
Comment 8 Alex S 2020-11-24 06:39:42 UTC
(In reply to Sam Lantinga from comment #7)
> Patch added, thanks!
> https://hg.libsdl.org/SDL/rev/2929659b559b

Ah, that's not quite enough. You need to:
  1. rename src/joystick/bsd/SDL_sysjoystick.c to something;
  2. regenerate configure.
Comment 9 Sam Lantinga 2020-11-24 07:04:17 UTC
Done!
https://hg.libsdl.org/SDL/rev/aab8e1ec22e4
Comment 10 Alex S 2020-11-24 08:23:31 UTC
Looks like we have a collision with https://hg.libsdl.org/SDL/rev/2e58bfc28b4e. (Again, the headers in the base system are intended for drivers and should not be used for compiling non-base applications. At least that's the policy for now: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240964#c19.) Do you need a patch reverting the changes?
Comment 11 Alex S 2020-11-24 10:25:08 UTC
Created attachment 4537 [details]
avoid private headers

> patch reverting the changes
Comment 12 Sam Lantinga 2020-11-24 14:43:35 UTC
Patch applied:
https://hg.libsdl.org/SDL/rev/718090fd68db

Does this mean that FreeBSD can't use this by default?
Comment 13 Alex S 2020-11-24 15:22:19 UTC
(In reply to Sam Lantinga from comment #12)
> Patch applied:
> https://hg.libsdl.org/SDL/rev/718090fd68db
> 
> Does this mean that FreeBSD can't use this by default?

I don't quite understand the question.