diff --git a/games/retroarch/Makefile b/games/retroarch/Makefile index fde811c94385..e4691797e633 100644 --- a/games/retroarch/Makefile +++ b/games/retroarch/Makefile @@ -1,113 +1,115 @@ PORTNAME= RetroArch DISTVERSIONPREFIX= v -DISTVERSION= 1.19.1 -PORTREVISION= 2 +DISTVERSION= 1.21.0 CATEGORIES= games emulators MAINTAINER= dmenelkir@gmail.com COMMENT= Cross-platform entertainment system based on libretro API WWW= https://github.com/libretro/RetroArch LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers \ vulkan-loader>0:graphics/vulkan-loader LIB_DEPENDS= libass.so:multimedia/libass \ libdrm.so:graphics/libdrm \ 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 USE_GITHUB= yes GH_ACCOUNT= libretro SHEBANG_FILES= libretro-common/glsym/glgen.py libretro-common/glsym/rglgen.py \ tools/cg2glsl.py tools/vulkan_loader_generator.py HAS_CONFIGURE= yes CONFIGURE_ARGS+= --disable-discord \ --enable-threads \ --sysconfdir=${LOCALBASE}/etc CONFIGURE_ENV+= MAN_DIR=${PREFIX}/share/man LDFLAGS_i386= -Wl,-znotext DOCSDIR= ${PREFIX}/share/doc/${PORTNAME:tl} SUB_FILES= pkg-message OPTIONS_DEFINE= ALSA CACA DOCS FFMPEG FREETYPE JACK OPENAL OPENGL OSS \ PULSEAUDIO QT SDL UDEV V4L X11 OPTIONS_DEFINE_amd64= WAYLAND # svgalib is x86 only OPTIONS_DEFINE_i386= WAYLAND OPTIONS_DEFAULT= FFMPEG FREETYPE OPENAL OPENGL OSS QT SDL UDEV V4L X11 OPTIONS_DEFAULT_amd64= WAYLAND OPTIONS_DEFAULT_i386= WAYLAND FFMPEG_DESC= On-the-fly recording of gameplay with libavcodec QT_DESC= Qt based desktop-style GUI UDEV_DESC= udev device hotplug support WAYLAND_DESC= Wayland display support ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CONFIGURE_ENABLE= alsa CACA_LIB_DEPENDS= libcaca.so:graphics/libcaca CACA_CONFIGURE_ENABLE= caca FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg FFMPEG_CONFIGURE_ENABLE= ffmpeg FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2 FREETYPE_CONFIGURE_ENABLE= freetype JACK_LIB_DEPENDS= libjack.so:audio/jack JACK_CONFIGURE_ENABLE= jack OPENAL_USES= openal:soft OPENAL_CONFIGURE_ENABLE= al OPENGL_USES= gl OPENGL_USE= GL=egl,gbm,gl 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 \ SDL=sdl2 SDL_CONFIGURE_ON= --disable-sdl \ --enable-sdl2 SDL_CONFIGURE_OFF= --disable-sdl \ --disable-sdl2 UDEV_LIB_DEPENDS= libepoll-shim.so:devel/libepoll-shim \ libudev.so:devel/libudev-devd UDEV_CONFIGURE_ENABLE= udev UDEV_CFLAGS= -I${LOCALBASE}/include/libepoll-shim UDEV_LDFLAGS= -L${LOCALBASE}/lib -lepoll-shim V4L_BUILD_DEPENDS= v4l_compat>0:multimedia/v4l_compat V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l V4L_CONFIGURE_ENABLE= v4l2 WAYLAND_CATEGORIES= wayland WAYLAND_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto \ ${LOCALBASE}/include/linux/kd.h:graphics/svgalib 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: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/retroarch @${REINPLACE_CMD} \ -e 's|# libretro_directory =|libretro_directory = "${PREFIX}/lib/libretro"|' \ -e 's|# libretro_info_path =|libretro_info_path = "${PREFIX}/share/libretro/info"|' \ -e 's|# assets_directory =|assets_directory = "${PREFIX}/share/libretro/assets"|' \ -e 's|# video_shader_dir =|video_shader_dir = "${PREFIX}/share/libretro/shaders"|' \ -e 's|# video_filter_dir =|video_filter_dir = "${PREFIX}/lib/retroarch/filters/video"|' \ -e 's|# audio_filter_dir =|audio_filter_dir = "${PREFIX}/lib/retroarch/filters/audio"|' \ -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 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 - #include -@@ -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 --#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 - #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