diff --git a/devel/sdl2/Makefile b/devel/sdl2/Makefile index c549eb679d2..26ea30a0532 100644 --- a/devel/sdl2/Makefile +++ b/devel/sdl2/Makefile @@ -1,15 +1,14 @@ -# $OpenBSD: Makefile,v 1.27 2019/07/12 20:46:01 sthen Exp $ +# $OpenBSD: Makefile,v 1.28 2019/09/22 15:46:25 thfr Exp $ COMMENT= cross-platform multimedia library -V= 2.0.9 -REVISION= 0 +V= 2.0.10 DISTNAME= SDL2-${V} PKGNAME= sdl2-${V} CATEGORIES= devel MASTER_SITES= https://www.libsdl.org/release/ -SHARED_LIBS= SDL2 0.6 # 0.9 +SHARED_LIBS= SDL2 0.7 # 0.10 HOMEPAGE= https://www.libsdl.org/ @@ -19,8 +18,9 @@ MAINTAINER= Thomas Frohwein PERMIT_PACKAGE= Yes WANTLIB= m pthread sndio usbhid samplerate -# GL/X11/Xext/Xrender/Xrandr are dlopen'd by SDL -WANTLIB+= GL X11 Xau Xdmcp Xext Xrandr Xrender xcb +# GL/Xau/Xdmcp are dlopen'd by SDL +WANTLIB+= GL X11 Xau xcb Xcursor Xdmcp Xext Xfixes Xi Xinerama +WANTLIB+= Xrandr Xrender Xss Xxf86vm LIB_DEPENDS= audio/libsamplerate @@ -37,10 +37,13 @@ CONFIGURE_ARGS+= --disable-alsa \ --disable-esd \ --disable-ibus \ --disable-jack \ + --disable-libsamplerate-shared \ --disable-libudev \ --disable-nas \ --disable-oss \ - --disable-pulseaudio + --disable-pulseaudio \ + --disable-sndio-shared \ + --disable-x11-shared # in case devel/usb is installed, don't pick it up. CONFIGURE_ENV+= ac_cv_lib_usb_hid_init=no \ ac_cv_header_usb_h=no @@ -49,6 +52,7 @@ CONFIGURE_ENV+= ac_cv_lib_usb_hid_init=no \ CONFIGURE_ARGS+= --disable-atomic .endif +# tests in test subdir, but interactive and not hooked up to build NO_TEST= Yes .include diff --git a/devel/sdl2/distinfo b/devel/sdl2/distinfo index 048b5444d23..eb18e49678b 100644 --- a/devel/sdl2/distinfo +++ b/devel/sdl2/distinfo @@ -1,2 +1,2 @@ -SHA256 (SDL2-2.0.9.tar.gz) = JVGG3GduzQwdvxDsiizF1oabUHnYo4GUwq7N/1SzJLE= -SIZE (SDL2-2.0.9.tar.gz) = 5246942 +SHA256 (SDL2-2.0.10.tar.gz) = tGVsE6Hw0AI64vSpzwjskv/7Rk4PJCODN3hBWbi5HVc= +SIZE (SDL2-2.0.10.tar.gz) = 5550762 diff --git a/devel/sdl2/patches/patch-Makefile_in b/devel/sdl2/patches/patch-Makefile_in index 5d5bf43ff3e..a6f06c81059 100644 --- a/devel/sdl2/patches/patch-Makefile_in +++ b/devel/sdl2/patches/patch-Makefile_in @@ -1,14 +1,14 @@ -$OpenBSD: patch-Makefile_in,v 1.6 2019/01/03 17:55:08 thfr Exp $ +$OpenBSD: patch-Makefile_in,v 1.7 2019/09/22 15:46:26 thfr Exp $ Index: Makefile.in --- Makefile.in.orig +++ Makefile.in -@@ -123,7 +123,7 @@ LT_AGE = @LT_AGE@ +@@ -125,7 +125,7 @@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ -LT_LDFLAGS = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) +LT_LDFLAGS = -no-undefined -rpath $(DESTDIR)$(libdir) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) - all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET) + all: $(srcdir)/configure Makefile $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET) diff --git a/devel/sdl2/patches/patch-src_SDL_c b/devel/sdl2/patches/patch-src_SDL_c index cd89f8700f4..765f8e1ff3e 100644 --- a/devel/sdl2/patches/patch-src_SDL_c +++ b/devel/sdl2/patches/patch-src_SDL_c @@ -1,4 +1,4 @@ -$OpenBSD: patch-src_SDL_c,v 1.2 2019/01/03 17:55:08 thfr Exp $ +$OpenBSD: patch-src_SDL_c,v 1.3 2019/09/22 15:46:26 thfr Exp $ disable breaking if no haptic feedback support which disallows gamecontroller API pretend to be Linux in SDL_GetPlatform to allow compatibility with FNA games @@ -7,7 +7,7 @@ until OpenBSD support has been rolled out (estimated end of 2018) Index: src/SDL.c --- src/SDL.c.orig +++ src/SDL.c -@@ -228,8 +228,6 @@ SDL_InitSubSystem(Uint32 flags) +@@ -227,8 +227,6 @@ SDL_InitSubSystem(Uint32 flags) } } SDL_PrivateSubsystemRefCountIncr(SDL_INIT_HAPTIC); @@ -16,7 +16,7 @@ Index: src/SDL.c #endif } -@@ -449,7 +447,7 @@ SDL_GetPlatform() +@@ -453,7 +451,7 @@ SDL_GetPlatform() #elif __NETBSD__ return "NetBSD"; #elif __OPENBSD__ diff --git a/devel/sdl2/patches/patch-src_joystick_SDL_gamecontroller_c b/devel/sdl2/patches/patch-src_joystick_SDL_gamecontroller_c index 6f9908b137a..a55f4d49d75 100644 --- a/devel/sdl2/patches/patch-src_joystick_SDL_gamecontroller_c +++ b/devel/sdl2/patches/patch-src_joystick_SDL_gamecontroller_c @@ -1,15 +1,26 @@ -$OpenBSD: patch-src_joystick_SDL_gamecontroller_c,v 1.3 2019/01/03 17:55:08 thfr Exp $ +$OpenBSD: patch-src_joystick_SDL_gamecontroller_c,v 1.4 2019/09/22 15:46:26 thfr Exp $ enable GameController API the Linux fallback way (by posing as Xbox360 controller) also disable checking string "Xbox 360 Wireless Receiver", so for now everything will be Xbox360 controller (works with generic joysticks) map to SDL_GAMECONTROLLERCONFIG envvar if available +Use layout for XBox360 controller to maximize compatibility because +many controllers use this mapping Index: src/joystick/SDL_gamecontroller.c --- src/joystick/SDL_gamecontroller.c.orig +++ src/joystick/SDL_gamecontroller.c -@@ -1008,17 +1008,23 @@ static ControllerMapping_t *SDL_PrivateGetControllerMa +@@ -735,7 +735,7 @@ static char *SDL_PrivateGetControllerGUIDFromMappingSt + SDL_memcpy(&pchGUID[8], &pchGUID[0], 4); + SDL_memcpy(&pchGUID[0], "03000000", 8); + } +-#elif __MACOSX__ ++#else if(__MACOSX__) || (__OpenBSD__) + if (SDL_strlen(pchGUID) == 32 && + SDL_memcmp(&pchGUID[4], "000000000000", 12) == 0 && + SDL_memcmp(&pchGUID[20], "000000000000", 12) == 0) { +@@ -1022,17 +1022,21 @@ static ControllerMapping_t *SDL_PrivateGetControllerMa ControllerMapping_t *mapping; mapping = SDL_PrivateGetControllerMappingForGUID(&guid, SDL_FALSE); @@ -17,21 +28,21 @@ Index: src/joystick/SDL_gamecontroller.c +#if defined(__LINUX__) || defined(__OpenBSD__) if (!mapping && name) { - if (SDL_strstr(name, "Xbox 360 Wireless Receiver")) { -+ //if (SDL_strstr(name, "Xbox 360 Wireless Receiver")) { - /* The Linux driver xpad.c maps the wireless dpad to buttons */ - SDL_bool existing; -- mapping = SDL_PrivateAddMappingForGUID(guid, -+ char guid_str[1024]; -+ SDL_JoystickGetGUIDString(guid, guid_str, sizeof(guid_str)); -+ if (SDL_GetHint(SDL_HINT_GAMECONTROLLERCONFIG) == NULL) { -+ mapping = SDL_PrivateAddMappingForGUID(guid, - "none,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", - &existing, SDL_CONTROLLER_MAPPING_PRIORITY_DEFAULT); -- } -+ } else { -+ mapping = SDL_PrivateAddMappingForGUID(guid, SDL_GetHint(SDL_HINT_GAMECONTROLLERCONFIG), &existing, SDL_CONTROLLER_MAPPING_PRIORITY_DEFAULT); -+ } -+ //} +- /* The Linux driver xpad.c maps the wireless dpad to buttons */ +- SDL_bool existing; ++ /* The Linux driver xpad.c maps the wireless dpad to buttons */ ++ SDL_bool existing; ++ char guid_str[1024]; ++ SDL_JoystickGetGUIDString(guid, guid_str, sizeof(guid_str)); ++ if (SDL_GetHint(SDL_HINT_GAMECONTROLLERCONFIG) == NULL) { + mapping = SDL_PrivateAddMappingForGUID(guid, +-"none,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3", +- &existing, SDL_CONTROLLER_MAPPING_PRIORITY_DEFAULT); ++"none,XBox360 Controller,a:b7,b:b8,back:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b2,lefttrigger:a2,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b3,righttrigger:a5,rightx:a3,righty:a4~,start:b0,x:b9,y:b10", ++ &existing, SDL_CONTROLLER_MAPPING_PRIORITY_DEFAULT); ++ } else { ++ mapping = SDL_PrivateAddMappingForGUID(guid, SDL_GetHint(SDL_HINT_GAMECONTROLLERCONFIG), &existing, SDL_CONTROLLER_MAPPING_PRIORITY_DEFAULT); + } } -#endif /* __LINUX__ */ +#endif /* __LINUX__ || __OpenBSD__ */ diff --git a/devel/sdl2/patches/patch-src_joystick_bsd_SDL_sysjoystick_c b/devel/sdl2/patches/patch-src_joystick_bsd_SDL_sysjoystick_c deleted file mode 100644 index f54ff1d33d1..00000000000 --- a/devel/sdl2/patches/patch-src_joystick_bsd_SDL_sysjoystick_c +++ /dev/null @@ -1,109 +0,0 @@ -$OpenBSD: patch-src_joystick_bsd_SDL_sysjoystick_c,v 1.1 2019/01/03 17:55:08 thfr Exp $ - -detect D-Pad as hat and turn D-pad input into equivalent hat position -This improves compatibility with Xbox 360 controller and XInput devices - -Index: src/joystick/bsd/SDL_sysjoystick.c ---- src/joystick/bsd/SDL_sysjoystick.c.orig -+++ src/joystick/bsd/SDL_sysjoystick.c -@@ -80,7 +80,50 @@ - #define MAX_JOY_JOYS 2 - #define MAX_JOYS (MAX_UHID_JOYS + MAX_JOY_JOYS) - -+#ifdef __OpenBSD__ - -+#define HUG_DPAD_UP 0x90 -+#define HUG_DPAD_DOWN 0x91 -+#define HUG_DPAD_RIGHT 0x92 -+#define HUG_DPAD_LEFT 0x93 -+ -+#define HAT_CENTERED 0x00 -+#define HAT_UP 0x01 -+#define HAT_RIGHT 0x02 -+#define HAT_DOWN 0x04 -+#define HAT_LEFT 0x08 -+#define HAT_RIGHTUP (HAT_RIGHT|HAT_UP) -+#define HAT_RIGHTDOWN (HAT_RIGHT|HAT_DOWN) -+#define HAT_LEFTUP (HAT_LEFT|HAT_UP) -+#define HAT_LEFTDOWN (HAT_LEFT|HAT_DOWN) -+ -+/* calculate the value from the state of the dpad */ -+int -+dpad_to_sdl(Sint32 *dpad) -+{ -+ if (dpad[2]) { -+ if (dpad[0]) -+ return HAT_RIGHTUP; -+ else if (dpad[1]) -+ return HAT_RIGHTDOWN; -+ else -+ return HAT_RIGHT; -+ } else if (dpad[3]) { -+ if (dpad[0]) -+ return HAT_LEFTUP; -+ else if (dpad[1]) -+ return HAT_LEFTDOWN; -+ else -+ return HAT_LEFT; -+ } else if (dpad[0]) { -+ return HAT_UP; -+ } else if (dpad[1]) { -+ return HAT_DOWN; -+ } -+ return HAT_CENTERED; -+} -+#endif -+ - struct report - { - #if defined(__FREEBSD__) && (__FreeBSD_kernel_version > 900000) -@@ -432,7 +475,11 @@ desc_failed: - int joyaxe = usage_to_joyaxe(usage); - if (joyaxe >= 0) { - hw->axis_map[joyaxe] = 1; -- } else if (usage == HUG_HAT_SWITCH) { -+ } else if (usage == HUG_HAT_SWITCH -+#ifdef __OpenBSD__ -+ || usage == HUG_DPAD_UP -+#endif -+ ) { - joy->nhats++; - } - break; -@@ -485,6 +532,9 @@ BSD_JoystickUpdate(SDL_Joystick * joy) - struct report *rep; - int nbutton, naxe = -1; - Sint32 v; -+#ifdef __OpenBSD__ -+ Sint32 dpad[4] = {0, 0, 0, 0}; -+#endif - - #if defined(__FREEBSD__) || SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H || defined(__FreeBSD_kernel__) - struct joystick gameport; -@@ -570,6 +620,16 @@ BSD_JoystickUpdate(SDL_Joystick * joy) - hatval_to_sdl(v) - - hitem.logical_minimum); - } -+#ifdef __OpenBSD__ -+ else if (usage == HUG_DPAD_UP) -+ dpad[0] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); -+ else if (usage == HUG_DPAD_DOWN) -+ dpad[1] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); -+ else if (usage == HUG_DPAD_RIGHT) -+ dpad[2] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); -+ else if (usage == HUG_DPAD_LEFT) -+ dpad[3] = (Sint32) hid_get_data(REP_BUF_DATA(rep), &hitem); -+#endif - break; - } - case HUP_BUTTON: -@@ -585,6 +645,9 @@ BSD_JoystickUpdate(SDL_Joystick * joy) - break; - } - } -+#ifdef __OpenBSD__ -+ SDL_PrivateJoystickHat(joy, 0, dpad_to_sdl(dpad)); -+#endif - hid_end_parse(hdata); - } - } diff --git a/devel/sdl2/patches/patch-src_video_SDL_egl_c b/devel/sdl2/patches/patch-src_video_SDL_egl_c index 46026a7f7cd..38fc7229d10 100644 --- a/devel/sdl2/patches/patch-src_video_SDL_egl_c +++ b/devel/sdl2/patches/patch-src_video_SDL_egl_c @@ -1,8 +1,8 @@ -$OpenBSD: patch-src_video_SDL_egl_c,v 1.3 2018/03/11 22:40:20 sthen Exp $ +$OpenBSD: patch-src_video_SDL_egl_c,v 1.4 2019/09/22 15:46:26 thfr Exp $ Index: src/video/SDL_egl.c --- src/video/SDL_egl.c.orig +++ src/video/SDL_egl.c -@@ -72,6 +72,13 @@ +@@ -73,6 +73,13 @@ #define DEFAULT_OGL_ES_PVR "libGLES_CM.dylib" //??? #define DEFAULT_OGL_ES "libGLESv1_CM.dylib" //???