git: d81332eb5727 - main - games/retroarch: Update 1.19.1 => 1.21.0

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Wed, 16 Jul 2025 12:33:59 UTC
The branch main has been updated by vvd:

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

commit d81332eb57279b166aa50f781ed37a03565e2004
Author:     Tilde Joy <tilde@ultros.pro>
AuthorDate: 2025-07-16 12:23:17 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-07-16 12:23:17 +0000

    games/retroarch: Update 1.19.1 => 1.21.0
    
    Changelogs:
    https://github.com/libretro/RetroArch/blob/v1.21.0/CHANGES.md
    
    Improve port:
    - Fix RUN_DEPENDS.
    - Fix X11_USE.
    - Switch from qt:5 to qt:6 - default for upstream.
    - Install etc/retroarch.cfg as sample.
    
    PR:             287943
    Approved by:    Daniel Menelkir <dmenelkir@gmail.com> (maintainer, timeout 2 weeks, fix build)
    MFH:            2025Q3
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
---
 games/retroarch/Makefile                           | 14 +++--
 games/retroarch/distinfo                           |  6 +-
 .../files/patch-gfx_common_wayland__common.c       | 11 ----
 .../files/patch-input_drivers_udev__input.c        | 73 ++++++++++++++++++++++
 games/retroarch/files/patch-input_input__keymaps.c | 20 ------
 .../patch-libretro-common_features_features__cpu.c | 20 ------
 games/retroarch/pkg-plist                          |  9 ++-
 7 files changed, 88 insertions(+), 65 deletions(-)

diff --git a/games/retroarch/Makefile b/games/retroarch/Makefile
index fde811c94385..e4691797e633 100644
--- a/games/retroarch/Makefile
+++ b/games/retroarch/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	RetroArch
 DISTVERSIONPREFIX=	v
-DISTVERSION=	1.19.1
-PORTREVISION=	2
+DISTVERSION=	1.21.0
 CATEGORIES=	games emulators
 
 MAINTAINER=	dmenelkir@gmail.com
@@ -18,7 +17,8 @@ LIB_DEPENDS=	libass.so:multimedia/libass \
 		libfontconfig.so:x11-fonts/fontconfig \
 		libfribidi.so:converters/fribidi \
 		libxkbcommon.so:x11/libxkbcommon
-RUN_DEPENDS=	retroarch-assets<=0:games/retroarch-assets
+RUN_DEPENDS=	retroarch-assets>0:games/retroarch-assets \
+		libretro-core-info>0:games/libretro-core-info
 
 USES=		compiler:c++11-lib cpe gmake pkgconfig python shebangfix ssl
 CPE_VENDOR=	libretro
@@ -70,8 +70,8 @@ OPENGL_CONFIGURE_ENABLE=	opengl
 OSS_CONFIGURE_ENABLE=		oss
 PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
 PULSEAUDIO_CONFIGURE_ENABLE=	pulse
-QT_USES=			qt:5
-QT_USE=				QT=concurrent,core,gui,network,widgets
+QT_USES=			qt:6
+QT_USE=				QT=base
 QT_CONFIGURE_ENABLE=		qt
 SDL_USES=			sdl
 SDL_USE=			image2 \
@@ -94,7 +94,7 @@ WAYLAND_BUILD_DEPENDS=		${LOCALBASE}/include/linux/input.h:devel/evdev-proto \
 WAYLAND_LIB_DEPENDS=		libwayland-egl.so:graphics/wayland
 WAYLAND_CONFIGURE_ENABLE=	wayland
 X11_USES=			xorg
-X11_USE=			XORG=x11,xcb,xext,xinerama,xrandr,xv,xxf86vm
+X11_USE=			XORG=x11,xcb,xext,xi,xinerama,xrandr,xscrnsaver,xv,xxf86vm
 X11_CONFIGURE_ENABLE=		x11
 
 post-install:
@@ -109,5 +109,7 @@ post-install:
 		-e 's|# joypad_autoconfig_dir =|joypad_autoconfig_dir = "${PREFIX}/share/retroarch/autoconfig"|' \
 		-e 's|# menu_show_core_updater = true|menu_show_core_updater = false|' \
 		${STAGEDIR}${PREFIX}/etc/retroarch.cfg
+	@${RM} ${STAGEDIR}${PREFIX}/etc/retroarch.cfg.bak
+	@${MV} ${STAGEDIR}${PREFIX}/etc/retroarch.cfg ${STAGEDIR}${PREFIX}/etc/retroarch.cfg.sample
 
 .include <bsd.port.mk>
diff --git a/games/retroarch/distinfo b/games/retroarch/distinfo
index 683994a28164..5e60e57c8902 100644
--- a/games/retroarch/distinfo
+++ b/games/retroarch/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1719448512
-SHA256 (libretro-RetroArch-v1.19.1_GH0.tar.gz) = 504a3a8a6e5861eb43a61be8339f61183e7ea940c1ff68ac2a2f57d35c67f8ff
-SIZE (libretro-RetroArch-v1.19.1_GH0.tar.gz) = 63298569
+TIMESTAMP = 1751263047
+SHA256 (libretro-RetroArch-v1.21.0_GH0.tar.gz) = 9da17918c10d91d4ebfde9ff402dba0b1ad6660fdbce7656d32f0c0182b3a538
+SIZE (libretro-RetroArch-v1.21.0_GH0.tar.gz) = 70961877
diff --git a/games/retroarch/files/patch-gfx_common_wayland__common.c b/games/retroarch/files/patch-gfx_common_wayland__common.c
deleted file mode 100644
index 3aae61f3e6d3..000000000000
--- a/games/retroarch/files/patch-gfx_common_wayland__common.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- gfx/common/wayland_common.c.orig	2024-02-03 00:11:03 UTC
-+++ gfx/common/wayland_common.c
-@@ -440,7 +440,7 @@ static int create_shm_file(off_t size)
- static int create_shm_file(off_t size)
- {
-    int fd, ret;
--   if ((fd = syscall(SYS_memfd_create, SPLASH_SHM_NAME,
-+   if ((fd = memfd_create(SPLASH_SHM_NAME,
-                MFD_CLOEXEC | MFD_ALLOW_SEALING)) >= 0)
-    {
-       fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK);
diff --git a/games/retroarch/files/patch-input_drivers_udev__input.c b/games/retroarch/files/patch-input_drivers_udev__input.c
new file mode 100644
index 000000000000..2adc11c44d4f
--- /dev/null
+++ b/games/retroarch/files/patch-input_drivers_udev__input.c
@@ -0,0 +1,73 @@
+--- input/drivers/udev_input.c.orig	2025-05-01 00:17:50 UTC
++++ input/drivers/udev_input.c
+@@ -71,7 +71,9 @@
+ 
+ #include "../input_keymaps.h"
+ 
++#ifdef __linux__
+ #include "../common/linux_common.h"
++#endif
+ 
+ #include "../../configuration.h"
+ #include "../../retroarch.h"
+@@ -570,7 +572,9 @@ typedef struct udev_input
+    bool xkb_handling;
+ #endif
+ 
++#ifdef __linux__
+    linux_illuminance_sensor_t *illuminance_sensor;
++#endif
+ } udev_input_t;
+ 
+ #ifdef UDEV_XKB_HANDLING
+@@ -3952,7 +3956,9 @@ static void udev_input_free(void *data)
+ 
+    udev_input_kb_free(udev);
+ 
++#ifdef __linux__
+    linux_close_illuminance_sensor(udev->illuminance_sensor);
++#endif
+ 
+    free(udev);
+ }
+@@ -3968,13 +3974,16 @@ static bool udev_set_sensor_state(void *data, unsigned
+    {
+       case RETRO_SENSOR_ILLUMINANCE_DISABLE:
+          /* If already disabled, then do nothing */
++#ifdef __linux__
+          linux_close_illuminance_sensor(udev->illuminance_sensor); /* noop if NULL */
+          udev->illuminance_sensor = NULL;
++#endif
+       case RETRO_SENSOR_GYROSCOPE_DISABLE:
+       case RETRO_SENSOR_ACCELEROMETER_DISABLE:
+          /** Unimplemented sensor actions that probably shouldn't fail */
+          return true;
+ 
++#ifdef __linux__
+       case RETRO_SENSOR_ILLUMINANCE_ENABLE:
+          if (udev->illuminance_sensor)
+             /* If we already have a sensor, just set the rate */
+@@ -3983,6 +3992,7 @@ static bool udev_set_sensor_state(void *data, unsigned
+             udev->illuminance_sensor = linux_open_illuminance_sensor(rate);
+ 
+          return udev->illuminance_sensor != NULL;
++#endif
+       default:
+          break;
+    }
+@@ -3992,6 +4002,7 @@ static float udev_get_sensor_input(void *data, unsigne
+ 
+ static float udev_get_sensor_input(void *data, unsigned port, unsigned id)
+ {
++#ifdef __linux__
+    udev_input_t *udev = (udev_input_t*)data;
+ 
+    if (!udev)
+@@ -4005,6 +4016,7 @@ static float udev_get_sensor_input(void *data, unsigne
+       default:
+          break;
+    }
++#endif
+ 
+    return 0.0f;
+ }
diff --git a/games/retroarch/files/patch-input_input__keymaps.c b/games/retroarch/files/patch-input_input__keymaps.c
deleted file mode 100644
index 4dd10b4c46c1..000000000000
--- a/games/retroarch/files/patch-input_input__keymaps.c
+++ /dev/null
@@ -1,20 +0,0 @@
---- input/input_keymaps.c.orig	2023-11-06 19:58:13 UTC
-+++ input/input_keymaps.c
-@@ -54,7 +54,7 @@
- #include "SDL.h"
- #endif
- 
--#if defined(__linux__) || defined(HAVE_WAYLAND)
-+#if defined(__linux__) || defined(HAVE_WAYLAND) || defined(__FreeBSD__) && !defined(__PS4__)
- #if defined(__linux__)
- #include <linux/input.h>
- #include <linux/kd.h>
-@@ -1130,7 +1130,7 @@ const struct rarch_key_map rarch_key_map_x11[] = {
- };
- #endif
- 
--#if defined(__linux__) || defined(HAVE_WAYLAND)
-+#if defined(__linux__) || defined(HAVE_WAYLAND) || defined(__FreeBSD__) && !defined(__PS4__)
- /* Note: Only one input can be mapped to each
-  * RETROK_* key. If several physical inputs
-  * correspond to the same key, these inputs
diff --git a/games/retroarch/files/patch-libretro-common_features_features__cpu.c b/games/retroarch/files/patch-libretro-common_features_features__cpu.c
deleted file mode 100644
index 183304f479bc..000000000000
--- a/games/retroarch/files/patch-libretro-common_features_features__cpu.c
+++ /dev/null
@@ -1,20 +0,0 @@
---- libretro-common/features/features_cpu.c.orig	2024-02-03 00:11:03 UTC
-+++ libretro-common/features/features_cpu.c
-@@ -45,7 +45,7 @@
- 
- #if defined(_XBOX360)
- #include <PPCIntrinsics.h>
--#elif !defined(__MACH__) && (defined(__POWERPC__) || defined(__powerpc__) || defined(__ppc__) || defined(__PPC64__) || defined(__powerpc64__))
-+#elif !defined(__MACH__) && !defined(__FreeBSD__) && (defined(__POWERPC__) || defined(__powerpc__) || defined(__ppc__) || defined(__PPC64__) || defined(__powerpc64__))
- #ifndef _PPU_INTRINSICS_H
- #include <ppu_intrinsics.h>
- #endif
-@@ -181,7 +181,7 @@ retro_perf_tick_t cpu_features_get_perf_counter(void)
-    time_ticks = (1000000 * tv_sec + tv_usec);
- #elif defined(GEKKO)
-    time_ticks = gettime();
--#elif !defined(__MACH__) && (defined(_XBOX360) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__) || defined(__PSL1GHT__) || defined(__PPC64__) || defined(__powerpc64__))
-+#elif !defined(__MACH__) && !defined(__FreeBSD__) && (defined(_XBOX360) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__) || defined(__PSL1GHT__) || defined(__PPC64__) || defined(__powerpc64__))
-    time_ticks = __mftb();
- #elif (defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK > 0) || defined(__QNX__) || defined(ANDROID)
-    struct timespec tv;
diff --git a/games/retroarch/pkg-plist b/games/retroarch/pkg-plist
index 334ab6325f30..729ba4c55957 100644
--- a/games/retroarch/pkg-plist
+++ b/games/retroarch/pkg-plist
@@ -1,11 +1,10 @@
 bin/retroarch
 bin/retroarch-cg2glsl
-etc/retroarch.cfg
-etc/retroarch.cfg.bak
-share/applications/org.libretro.RetroArch.desktop
+@sample etc/retroarch.cfg.sample
+share/applications/com.libretro.RetroArch.desktop
 %%PORTDOCS%%%%DOCSDIR%%/COPYING
 %%PORTDOCS%%%%DOCSDIR%%/README.md
 share/man/man6/retroarch-cg2glsl.6.gz
 share/man/man6/retroarch.6.gz
-share/metainfo/com.libretro.RetroArch.appdata.xml
-share/pixmaps/retroarch.svg
+share/metainfo/com.libretro.RetroArch.metainfo.xml
+share/pixmaps/com.libretro.RetroArch.svg