git: 6d5ea5b1e6a1 - main - devel/sdl3: Fix joystick support

From: Dmitry Marakasov <amdmi3_at_FreeBSD.org>
Date: Sat, 15 Mar 2025 01:38:20 UTC
The branch main has been updated by amdmi3:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6d5ea5b1e6a167cb9759d26df2cf32273be543aa

commit 6d5ea5b1e6a167cb9759d26df2cf32273be543aa
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2025-03-07 19:09:55 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2025-03-15 01:34:40 +0000

    devel/sdl3: Fix joystick support
    
    PR:             284919
    Submitted by:   bsdcode@disroot.org
---
 devel/sdl3/Makefile                             |  5 +++--
 devel/sdl3/files/patch-cmake_FindLibUSB.cmake   | 11 +++++++++++
 devel/sdl3/files/patch-src_hidapi_SDL__hidapi.c | 20 ++++++++++++++++++++
 devel/sdl3/pkg-plist                            |  2 ++
 4 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/devel/sdl3/Makefile b/devel/sdl3/Makefile
index 311a11b1685a..2344b70e28fc 100644
--- a/devel/sdl3/Makefile
+++ b/devel/sdl3/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	sdl3
 DISTVERSIONPREFIX=	release-
 DISTVERSION=	3.2.8
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	devel
 
 MAINTAINER=	amdmi3@FreeBSD.org
@@ -12,7 +12,7 @@ WWW=		https://www.libsdl.org/ \
 LICENSE=	ZLIB
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
-USES=		cmake iconv pkgconfig
+USES=		cmake iconv localbase pkgconfig
 USE_GITHUB=	yes
 GH_ACCOUNT=	libsdl-org
 GH_PROJECT=	SDL
@@ -36,6 +36,7 @@ OPTIONS_DEFINE_powerpc=	ALTIVEC
 OPTIONS_DEFINE_powerpc64=	ALTIVEC
 OPTIONS_DEFAULT_powerpc=	ALTIVEC
 OPTIONS_DEFAULT_powerpc64=	ALTIVEC
+OPTIONS_SUB=		yes
 
 AUDIO_DESC=		Audio drivers
 VIDEO_DESC=		Video drivers
diff --git a/devel/sdl3/files/patch-cmake_FindLibUSB.cmake b/devel/sdl3/files/patch-cmake_FindLibUSB.cmake
new file mode 100644
index 000000000000..e3d17818a63d
--- /dev/null
+++ b/devel/sdl3/files/patch-cmake_FindLibUSB.cmake
@@ -0,0 +1,11 @@
+--- cmake/FindLibUSB.cmake.orig	2025-03-04 22:37:06 UTC
++++ cmake/FindLibUSB.cmake
+@@ -10,7 +10,7 @@ find_library(LibUSB_LIBRARY
+ endif()
+ 
+ find_library(LibUSB_LIBRARY
+-  NAMES usb-1.0 libusb-1.0
++  NAMES usb-1.0 libusb-1.0 usb
+   HINTS ${PC_LibUSB_LIBRARY_DIRS}
+ )
+ 
diff --git a/devel/sdl3/files/patch-src_hidapi_SDL__hidapi.c b/devel/sdl3/files/patch-src_hidapi_SDL__hidapi.c
new file mode 100644
index 000000000000..d5dcefd07e25
--- /dev/null
+++ b/devel/sdl3/files/patch-src_hidapi_SDL__hidapi.c
@@ -0,0 +1,20 @@
+--- src/hidapi/SDL_hidapi.c.orig	2025-03-04 22:37:06 UTC
++++ src/hidapi/SDL_hidapi.c
+@@ -710,7 +710,7 @@ static struct
+     );
+     void (LIBUSB_CALL *free_config_descriptor)(struct libusb_config_descriptor *config);
+     uint8_t (LIBUSB_CALL *get_bus_number)(libusb_device *dev);
+-    int (LIBUSB_CALL *get_port_numbers)(libusb_device *dev, uint8_t *port_numbers, int port_numbers_len);
++    int (LIBUSB_CALL *get_port_numbers)(libusb_device *dev, uint8_t *port_numbers, uint8_t port_numbers_len);
+     uint8_t (LIBUSB_CALL *get_device_address)(libusb_device *dev);
+     int (LIBUSB_CALL *open)(libusb_device *dev, libusb_device_handle **dev_handle);
+     void (LIBUSB_CALL *close)(libusb_device_handle *dev_handle);
+@@ -1188,7 +1188,7 @@ int SDL_hid_init(void)
+             LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *, uint8_t, struct libusb_config_descriptor **), get_config_descriptor)
+             LOAD_LIBUSB_SYMBOL(void (LIBUSB_CALL *)(struct libusb_config_descriptor *), free_config_descriptor)
+             LOAD_LIBUSB_SYMBOL(uint8_t (LIBUSB_CALL *)(libusb_device *), get_bus_number)
+-            LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *dev, uint8_t *port_numbers, int port_numbers_len), get_port_numbers)
++            LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *dev, uint8_t *port_numbers, uint8_t port_numbers_len), get_port_numbers)
+             LOAD_LIBUSB_SYMBOL(uint8_t (LIBUSB_CALL *)(libusb_device *), get_device_address)
+             LOAD_LIBUSB_SYMBOL(int (LIBUSB_CALL *)(libusb_device *, libusb_device_handle **), open)
+             LOAD_LIBUSB_SYMBOL(void (LIBUSB_CALL *)(libusb_device_handle *), close)
diff --git a/devel/sdl3/pkg-plist b/devel/sdl3/pkg-plist
index efd56a8c7eb4..92c49fdbb024 100644
--- a/devel/sdl3/pkg-plist
+++ b/devel/sdl3/pkg-plist
@@ -83,6 +83,8 @@ include/SDL3/SDL_tray.h
 include/SDL3/SDL_version.h
 include/SDL3/SDL_video.h
 include/SDL3/SDL_vulkan.h
+%%HIDAPI%%lib/cmake/SDL3/FindLibUSB.cmake
+%%HIDAPI%%lib/cmake/SDL3/PkgConfigHelper.cmake
 lib/cmake/SDL3/SDL3Config.cmake
 lib/cmake/SDL3/SDL3ConfigVersion.cmake
 lib/cmake/SDL3/SDL3headersTargets.cmake