I've added a README with an example use of the SDL_GAMECONTROLLERCONFIG env
var because I've got repeated questions off list.

On Sun, Mar 11, 2018 at 12:14:32PM +0000, Stuart Henderson wrote:
> On 2018/03/01 19:52, Thomas Frohwein wrote:
> >  Index: src/video/SDL_egl.c
> ..
> > + 
> > +++#elif defined(__OpenBSD__)
> > +++#define DEFAULT_OGL "libGL.so"
> > +++#define DEFAULT_EGL "libEGL.so"
> > +++#define DEFAULT_OGL_ES2 "libGLESv2.so"
> > +++#define DEFAULT_OGL_ES_PVR "libGLES_CM.so"
> > +++#define DEFAULT_OGL_ES "libGLESv1_CM.so"
> 
> +++? There's something wrong here.

Ugh, yes. I guess this exposed that it finds the libraries even with the Linux
naming scheme '*.so.1'. It does run without the patch for this file indeed, but
I added the lines again (without the extra '+') to be consistent with how it
was set up before and with other OS in that file.

> 
> > RCS file: /cvs/ports/devel/sdl2-image/Makefile,v
> > retrieving revision 1.8
> > diff -u -p -r1.8 Makefile
> > --- Makefile        12 Jan 2018 19:32:54 -0000      1.8
> 
> If there are two things patched in the same mail, please generate
> the diff from a common parent directory.
> 

New diff from parent directory below. I tested again with megaglest, neverball,
dungeon crawl stone soup, and a few FNA games without issues.

Index: sdl2/Makefile
===================================================================
RCS file: /cvs/ports/devel/sdl2/Makefile,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile
--- sdl2/Makefile       12 Jan 2018 19:32:54 -0000      1.20
+++ sdl2/Makefile       11 Mar 2018 20:29:52 -0000
@@ -4,14 +4,13 @@ COMMENT=      cross-platform multimedia libra
 BROKEN-hppa=   src/atomic/SDL_spinlock.c:101:2: error: \
                #error Please implement for your platform.
 
-V=             2.0.7
+V=             2.0.8
 DISTNAME=      SDL2-${V}
 PKGNAME=       sdl2-${V}
 CATEGORIES=    devel
 MASTER_SITES=  https://www.libsdl.org/release/
-REVISION=      0
 
-SHARED_LIBS=   SDL2            0.4     # 0.7
+SHARED_LIBS=   SDL2            0.5     # 0.8
 
 HOMEPAGE=      https://www.libsdl.org/
 
Index: sdl2/distinfo
===================================================================
RCS file: /cvs/ports/devel/sdl2/distinfo,v
retrieving revision 1.6
diff -u -p -r1.6 distinfo
--- sdl2/distinfo       7 Jan 2018 22:56:46 -0000       1.6
+++ sdl2/distinfo       11 Mar 2018 20:29:52 -0000
@@ -1,2 +1,2 @@
-SHA256 (SDL2-2.0.7.tar.gz) = 7jXHTEMT4u2hBLFLG4b324SgTuq5Qw1W4AHOomi/TV4=
-SIZE (SDL2-2.0.7.tar.gz) = 4432499
+SHA256 (SDL2-2.0.8.tar.gz) = 7cd8VzCGYdV26EM0TYY44CWngYv/c/j7+rCcPF/Qkuw=
+SIZE (SDL2-2.0.8.tar.gz) = 4909017
Index: sdl2/patches/patch-Makefile_in
===================================================================
RCS file: /cvs/ports/devel/sdl2/patches/patch-Makefile_in,v
retrieving revision 1.4
diff -u -p -r1.4 patch-Makefile_in
--- sdl2/patches/patch-Makefile_in      7 Jan 2018 22:56:46 -0000       1.4
+++ sdl2/patches/patch-Makefile_in      11 Mar 2018 20:29:52 -0000
@@ -1,6 +1,5 @@
 $OpenBSD: patch-Makefile_in,v 1.4 2018/01/07 22:56:46 awolk Exp $
 
-Should make sure only libSDL2, not libSDL2-2.0 are installed
 Index: Makefile.in
 --- Makefile.in.orig
 +++ Makefile.in
Index: sdl2/patches/patch-src_joystick_SDL_gamecontroller_c
===================================================================
RCS file: 
/cvs/ports/devel/sdl2/patches/patch-src_joystick_SDL_gamecontroller_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_joystick_SDL_gamecontroller_c
--- sdl2/patches/patch-src_joystick_SDL_gamecontroller_c        7 Jan 2018 
22:56:46 -0000       1.1
+++ sdl2/patches/patch-src_joystick_SDL_gamecontroller_c        11 Mar 2018 
20:29:52 -0000
@@ -1,15 +1,15 @@
 $OpenBSD: patch-src_joystick_SDL_gamecontroller_c,v 1.1 2018/01/07 22:56:46 
awolk Exp $
 
-enable GameController API the Linux way (by posing as Xbox360 controller)
+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)
-- note: the actual Xbox360 controller has buttons and axes messed up on
-         openbsd with these mappings
+map to SDL_GAMECONTROLLERCONFIG envvar if available
 
 Index: src/joystick/SDL_gamecontroller.c
 --- src/joystick/SDL_gamecontroller.c.orig
 +++ src/joystick/SDL_gamecontroller.c
-@@ -884,15 +884,15 @@ static ControllerMapping_t *SDL_PrivateGetControllerMa
+@@ -884,15 +884,21 @@ static ControllerMapping_t *SDL_PrivateGetControllerMa
  #else
      (void) s_pEmscriptenMapping;  /* pacify ARMCC */
  #endif
@@ -20,10 +20,17 @@ Index: src/joystick/SDL_gamecontroller.c
 +        //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,
+-            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);
++          }
 +        //}
      }
  #endif /* __LINUX__ */
Index: sdl2/patches/patch-src_video_SDL_egl_c
===================================================================
RCS file: /cvs/ports/devel/sdl2/patches/patch-src_video_SDL_egl_c,v
retrieving revision 1.2
diff -u -p -r1.2 patch-src_video_SDL_egl_c
--- sdl2/patches/patch-src_video_SDL_egl_c      7 Jan 2018 22:56:46 -0000       
1.2
+++ sdl2/patches/patch-src_video_SDL_egl_c      11 Mar 2018 20:29:52 -0000
@@ -1,18 +1,18 @@
-$OpenBSD: patch-src_video_SDL_egl_c,v 1.2 2018/01/07 22:56:46 awolk Exp $
+$OpenBSD$
 Index: src/video/SDL_egl.c
 --- src/video/SDL_egl.c.orig
 +++ src/video/SDL_egl.c
-@@ -64,7 +64,12 @@
- #define DEFAULT_OGL_ES2 "libGLESv2.dll"
- #define DEFAULT_OGL_ES_PVR "libGLES_CM.dll"
- #define DEFAULT_OGL_ES "libGLESv1_CM.dll"
--
+@@ -72,6 +72,13 @@
+ #define DEFAULT_OGL_ES_PVR "libGLES_CM.dylib"   //???
+ #define DEFAULT_OGL_ES "libGLESv1_CM.dylib"     //???
+ 
 +#elif defined(__OpenBSD__)
 +#define DEFAULT_OGL "libGL.so"
 +#define DEFAULT_EGL "libEGL.so"
 +#define DEFAULT_OGL_ES2 "libGLESv2.so"
 +#define DEFAULT_OGL_ES_PVR "libGLES_CM.so"
 +#define DEFAULT_OGL_ES "libGLESv1_CM.so"
++
  #else
  /* Desktop Linux */
  #define DEFAULT_OGL "libGL.so.1"
Index: sdl2/pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/sdl2/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- sdl2/pkg/PLIST      7 Jan 2018 22:56:46 -0000       1.4
+++ sdl2/pkg/PLIST      11 Mar 2018 20:29:52 -0000
@@ -1,5 +1,5 @@
 @comment $OpenBSD: PLIST,v 1.4 2018/01/07 22:56:46 awolk Exp $
-@bin bin/sdl2-config
+bin/sdl2-config
 include/SDL2/
 include/SDL2/SDL.h
 include/SDL2/SDL_assert.h
@@ -85,3 +85,4 @@ lib/libSDL2main.a
 lib/libSDL2main.la
 lib/pkgconfig/sdl2.pc
 share/aclocal/sdl2.m4
+share/doc/pkg-readmes/${FULLPKGNAME}
Index: sdl2/pkg/README
===================================================================
RCS file: sdl2/pkg/README
diff -N sdl2/pkg/README
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ sdl2/pkg/README     11 Mar 2018 20:29:52 -0000
@@ -0,0 +1,24 @@
+$OpenBSD$
+
++-----------------------------------------------------------------------
+| Customizing ${FULLPKGNAME} gamecontroller layout on OpenBSD
++-----------------------------------------------------------------------
+
+The mapping for SDL2's gamecontroller API is currently based on a workaround.
+It defaults to:
+
+"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,"
+
+A custom mapping can be used via the SDL_GAMECONTROLLERCONFIG env var. Note
+that the first value (for guid) should be 'none' and the second one can be any
+name under which SDL2 will list the gamecontroller device.
+
+Example mapping (for Logitech Dual Action gamepad):
+
+$ export SDL_GAMECONTROLLERCONFIG="none,X360WirelessController,a:b1,b:b2,\
+back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,\
+leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,\
+righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,"
Index: sdl2-image/Makefile
===================================================================
RCS file: /cvs/ports/devel/sdl2-image/Makefile,v
retrieving revision 1.8
diff -u -p -r1.8 Makefile
--- sdl2-image/Makefile 12 Jan 2018 19:32:54 -0000      1.8
+++ sdl2-image/Makefile 11 Mar 2018 20:29:52 -0000
@@ -1,22 +1,23 @@
 # $OpenBSD: Makefile,v 1.8 2018/01/12 19:32:54 bentley Exp $
 
-V =            2.0.1
+V =            2.0.3
 COMMENT =      SDL2 image library
 DISTNAME =     SDL2_image-${V}
 PKGNAME =      sdl2-image-${V}
 CATEGORIES =   devel graphics
-REVISION =     0
 
-SHARED_LIBS += SDL2_image              0.0 # 0.0
+SHARED_LIBS += SDL2_image              0.1 # 0.3
 
 HOMEPAGE =     https://www.libsdl.org/projects/SDL_image/
 
+MAINTAINER =   Thomas Frohwein <frohw...@ymail.com>
+
 # zlib
 PERMIT_PACKAGE_CDROM = Yes
 
 MASTER_SITES = https://www.libsdl.org/projects/SDL_image/release/
 
-WANTLIB += SDL2 jpeg m png pthread sndio tiff usbhid webp z
+WANTLIB += SDL2 jpeg m png pthread sndio tiff usbhid webp z samplerate
 
 LIB_DEPENDS =  devel/sdl2 \
                graphics/jpeg \
Index: sdl2-image/distinfo
===================================================================
RCS file: /cvs/ports/devel/sdl2-image/distinfo,v
retrieving revision 1.2
diff -u -p -r1.2 distinfo
--- sdl2-image/distinfo 10 Jan 2016 08:10:16 -0000      1.2
+++ sdl2-image/distinfo 11 Mar 2018 20:29:52 -0000
@@ -1,2 +1,2 @@
-SHA256 (SDL2_image-2.0.1.tar.gz) = Oj6vvO6lElwEvlhTc7/Ys6GPJZvX6uPvxObY5g4Nf2Q=
-SIZE (SDL2_image-2.0.1.tar.gz) = 7797848
+SHA256 (SDL2_image-2.0.3.tar.gz) = NRDCXac1/82M47ZQcxUP9Pf5STuGboW4NzgIO1VtI2g=
+SIZE (SDL2_image-2.0.3.tar.gz) = 8685512
Index: sdl2-image/pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/sdl2-image/pkg/PLIST,v
retrieving revision 1.2
diff -u -p -r1.2 PLIST
--- sdl2-image/pkg/PLIST        22 May 2015 11:31:14 -0000      1.2
+++ sdl2-image/pkg/PLIST        11 Mar 2018 20:29:52 -0000
@@ -1,5 +1,4 @@
 @comment $OpenBSD: PLIST,v 1.2 2015/05/22 11:31:14 ajacoutot Exp $
-include/SDL2/
 include/SDL2/SDL_image.h
 lib/libSDL2_image.a
 lib/libSDL2_image.la

Reply via email to