Hi,

The diff below updates SDL2 to 2.0.10. This includes bug fixes,
improved performance due to batched rendering... Release notes at [1].

Bump minor because of addition of added dynamic export changes [2].

The patch for SDL_sysjoystick.c has been upstreamed.
The configuration now needs '--disable-{libsamplerate,sndio,x11}-shared'
to not switch to just dlopening at runtime.

Tested with most consumers without any regressions. Details at [3].

ok?

[1] https://discourse.libsdl.org/t/sdl-2-0-10-released/26429
[2] https://thfr.info/pub/sdl2-2.0.10-check_sym.txt
[3] https://thfr.info/pub/sdl2-2.0.10-consumers_testing.txt

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/sdl2/Makefile,v
retrieving revision 1.27
diff -u -p -r1.27 Makefile
--- Makefile    12 Jul 2019 20:46:01 -0000      1.27
+++ Makefile    20 Sep 2019 20:26:10 -0000
@@ -2,14 +2,13 @@
 
 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,10 +18,12 @@ MAINTAINER= Thomas Frohwein <thfr@openbs
 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/vulkan are dlopen'd by SDL
+WANTLIB+=       GL X11 Xau xcb Xcursor Xdmcp Xext Xfixes Xi Xinerama
+WANTLIB+=      Xrandr Xrender Xss Xxf86vm vulkan
 
-LIB_DEPENDS=   audio/libsamplerate
+LIB_DEPENDS=   audio/libsamplerate \
+               graphics/vulkan-loader
 
 USE_GMAKE=             Yes
 SEPARATE_BUILD=                Yes
@@ -37,10 +38,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 +53,7 @@ CONFIGURE_ENV+= ac_cv_lib_usb_hid_init=n
 CONFIGURE_ARGS+= --disable-atomic
 .endif
 
+# tests in test subdir, but interactive and not hooked up to build
 NO_TEST=       Yes
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/sdl2/distinfo,v
retrieving revision 1.8
diff -u -p -r1.8 distinfo
--- distinfo    3 Jan 2019 17:55:08 -0000       1.8
+++ distinfo    20 Sep 2019 20:26:10 -0000
@@ -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
Index: patches/patch-Makefile_in
===================================================================
RCS file: /cvs/ports/devel/sdl2/patches/patch-Makefile_in,v
retrieving revision 1.6
diff -u -p -r1.6 patch-Makefile_in
--- patches/patch-Makefile_in   3 Jan 2019 17:55:08 -0000       1.6
+++ patches/patch-Makefile_in   20 Sep 2019 20:26:10 -0000
@@ -3,12 +3,12 @@ $OpenBSD: patch-Makefile_in,v 1.6 2019/0
 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)
  
Index: patches/patch-src_SDL_c
===================================================================
RCS file: /cvs/ports/devel/sdl2/patches/patch-src_SDL_c,v
retrieving revision 1.2
diff -u -p -r1.2 patch-src_SDL_c
--- patches/patch-src_SDL_c     3 Jan 2019 17:55:08 -0000       1.2
+++ patches/patch-src_SDL_c     20 Sep 2019 20:26:10 -0000
@@ -7,7 +7,7 @@ until OpenBSD support has been rolled ou
 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__
Index: patches/patch-src_joystick_SDL_gamecontroller_c
===================================================================
RCS file: 
/cvs/ports/devel/sdl2/patches/patch-src_joystick_SDL_gamecontroller_c,v
retrieving revision 1.3
diff -u -p -r1.3 patch-src_joystick_SDL_gamecontroller_c
--- patches/patch-src_joystick_SDL_gamecontroller_c     3 Jan 2019 17:55:08 
-0000       1.3
+++ patches/patch-src_joystick_SDL_gamecontroller_c     20 Sep 2019 20:26:10 
-0000
@@ -1,15 +1,26 @@
-$OpenBSD: patch-src_joystick_SDL_gamecontroller_c,v 1.3 2019/01/03 17:55:08 
thfr Exp $
+$OpenBSD$
 
 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__ */
Index: patches/patch-src_joystick_bsd_SDL_sysjoystick_c
===================================================================
RCS file: 
/cvs/ports/devel/sdl2/patches/patch-src_joystick_bsd_SDL_sysjoystick_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_joystick_bsd_SDL_sysjoystick_c
--- patches/patch-src_joystick_bsd_SDL_sysjoystick_c    3 Jan 2019 17:55:08 
-0000       1.1
+++ patches/patch-src_joystick_bsd_SDL_sysjoystick_c    20 Sep 2019 20:26:10 
-0000
@@ -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);
-     }
- }
Index: patches/patch-src_video_SDL_egl_c
===================================================================
RCS file: /cvs/ports/devel/sdl2/patches/patch-src_video_SDL_egl_c,v
retrieving revision 1.3
diff -u -p -r1.3 patch-src_video_SDL_egl_c
--- patches/patch-src_video_SDL_egl_c   11 Mar 2018 22:40:20 -0000      1.3
+++ patches/patch-src_video_SDL_egl_c   20 Sep 2019 20:26:10 -0000
@@ -2,7 +2,7 @@ $OpenBSD: patch-src_video_SDL_egl_c,v 1.
 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"     //???
  

Reply via email to