diff --git a/games/retroarch/Makefile b/games/retroarch/Makefile index 4b817bddc1e8..e80c12c678b4 100644 --- a/games/retroarch/Makefile +++ b/games/retroarch/Makefile @@ -1,117 +1,118 @@ PORTNAME= RetroArch DISTVERSIONPREFIX= v -DISTVERSION= 1.21.0 +DISTVERSION= 1.22.2 CATEGORIES= games emulators +MASTER_SITES= https://github.com/libretro/${PORTNAME}/releases/download/v${DISTVERSION}/ +DISTNAME= ${PORTNAME:tl}-sourceonly-${DISTVERSION} 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 \ libretro-core-info>0:games/libretro-core-info -USES= compiler:c++11-lib cpe gmake pkgconfig python shebangfix ssl +USES= compiler:c++11-lib cpe gmake pkgconfig python shebangfix ssl \ + tar:xz 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 \ PIPEWIRE 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 PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_CONFIGURE_ENABLE= pipewire PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CONFIGURE_ENABLE= pulse 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,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 5e60e57c8902..cf6c75e87c74 100644 --- a/games/retroarch/distinfo +++ b/games/retroarch/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751263047 -SHA256 (libretro-RetroArch-v1.21.0_GH0.tar.gz) = 9da17918c10d91d4ebfde9ff402dba0b1ad6660fdbce7656d32f0c0182b3a538 -SIZE (libretro-RetroArch-v1.21.0_GH0.tar.gz) = 70961877 +TIMESTAMP = 1765674121 +SHA256 (retroarch-sourceonly-1.22.2.tar.xz) = 2a8b1713f7f4d2b53bad3e2297e48d78f5666098cf00d583d3e08f3c213f8aa6 +SIZE (retroarch-sourceonly-1.22.2.tar.xz) = 13564476 diff --git a/games/retroarch/files/patch-audio_common_alsa.c b/games/retroarch/files/patch-audio_common_alsa.c new file mode 100644 index 000000000000..9023664d8b07 --- /dev/null +++ b/games/retroarch/files/patch-audio_common_alsa.c @@ -0,0 +1,10 @@ +--- audio/common/alsa.c.orig 2025-11-20 00:17:08 UTC ++++ audio/common/alsa.c +@@ -17,7 +17,6 @@ + #include + + #include +-#include + + #include "alsa.h" + diff --git a/games/retroarch/files/patch-audio_drivers_alsa.c b/games/retroarch/files/patch-audio_drivers_alsa.c new file mode 100644 index 000000000000..c6a00faf8447 --- /dev/null +++ b/games/retroarch/files/patch-audio_drivers_alsa.c @@ -0,0 +1,11 @@ +--- audio/drivers/alsa.c.orig 2025-11-20 00:17:08 UTC ++++ audio/drivers/alsa.c +@@ -22,7 +22,7 @@ + + #include + #include +-#include ++#include + + #include "../audio_driver.h" + #include "../common/alsa.h" diff --git a/games/retroarch/files/patch-audio_drivers_alsathread.c b/games/retroarch/files/patch-audio_drivers_alsathread.c new file mode 100644 index 000000000000..1d1cd5487c1a --- /dev/null +++ b/games/retroarch/files/patch-audio_drivers_alsathread.c @@ -0,0 +1,11 @@ +--- audio/drivers/alsathread.c.orig 2025-11-20 00:17:08 UTC ++++ audio/drivers/alsathread.c +@@ -24,7 +24,7 @@ + #include + #include + #include +-#include ++#include + + #include "../audio_driver.h" + #include "../common/alsa.h" /* For some common functions/types */ diff --git a/games/retroarch/files/patch-audio_drivers_pipewire.c b/games/retroarch/files/patch-audio_drivers_pipewire.c deleted file mode 100644 index dee89af57e77..000000000000 --- a/games/retroarch/files/patch-audio_drivers_pipewire.c +++ /dev/null @@ -1,20 +0,0 @@ ---- audio/drivers/pipewire.c.orig 2025-05-01 00:17:50 UTC -+++ audio/drivers/pipewire.c -@@ -157,7 +157,7 @@ static const struct pw_registry_events registry_events - .global = registry_event_global, - }; - --static void *pipewire_init(const char *device, unsigned rate, -+static void *_pipewire_init(const char *device, unsigned rate, - unsigned latency, - unsigned block_frames, - unsigned *new_rate) -@@ -443,7 +443,7 @@ audio_driver_t audio_pipewire = { - } - - audio_driver_t audio_pipewire = { -- pipewire_init, -+ _pipewire_init, - pipewire_write, - pipewire_stop, - pipewire_start, diff --git a/games/retroarch/files/patch-fix-ffmpeg8 b/games/retroarch/files/patch-fix-ffmpeg8 deleted file mode 100644 index 148e4d47957f..000000000000 --- a/games/retroarch/files/patch-fix-ffmpeg8 +++ /dev/null @@ -1,97 +0,0 @@ -From 21776a2e59f5f5899ff2198c0df25a95b5020012 Mon Sep 17 00:00:00 2001 -From: libretroadmin -Date: Fri, 12 Sep 2025 01:44:51 +0200 -Subject: [PATCH] Attempt to fix ffmpeg 8.0 build errors - ---- - cores/libretro-ffmpeg/ffmpeg_core.c | 14 ++++++++++++++ - record/drivers/record_ffmpeg.c | 17 +++++++++++++++++ - 2 files changed, 31 insertions(+) - -diff --git cores/libretro-ffmpeg/ffmpeg_core.c cores/libretro-ffmpeg/ffmpeg_core.c -index af1a9c6ac76..90272e8e2e2 100644 ---- cores/libretro-ffmpeg/ffmpeg_core.c -+++ cores/libretro-ffmpeg/ffmpeg_core.c -@@ -101,6 +101,9 @@ static tpool_t *tpool; - #define FFMPEG3 ((LIBAVUTIL_VERSION_INT < (56, 6, 100)) || \ - (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100))) - #endif -+#ifndef FFMPEG8 -+#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62) -+#endif - - #if ENABLE_HW_ACCEL - static enum AVHWDeviceType hw_decoder; -@@ -2093,17 +2096,28 @@ void CORE_PREFIX(retro_unload_game)(void) - - for (i = 0; i < MAX_STREAMS; i++) - { -+#if FFMPEG8 -+ if (sctx[i]) -+ avcodec_free_context(&sctx[i]); -+ if (actx[i]) -+ avcodec_free_context(&actx[i]); -+#else - if (sctx[i]) - avcodec_close(sctx[i]); - if (actx[i]) - avcodec_close(actx[i]); -+#endif - sctx[i] = NULL; - actx[i] = NULL; - } - - if (vctx) - { -+#if FFMPEG8 -+ avcodec_free_context(&vctx); -+#else - avcodec_close(vctx); -+#endif - vctx = NULL; - } - -diff --git record/drivers/record_ffmpeg.c record/drivers/record_ffmpeg.c -index 1c97c66886c..41063495c88 100644 ---- record/drivers/record_ffmpeg.c -+++ record/drivers/record_ffmpeg.c -@@ -73,6 +73,15 @@ extern "C" { - #define FFMPEG3 ((LIBAVUTIL_VERSION_INT < (56, 6, 100)) || \ - (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100))) - #endif -+ -+#ifndef FFMPEG8 -+#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62) -+#endif -+ -+#ifndef AV_INPUT_BUFFER_MIN_SIZE -+#define AV_INPUT_BUFFER_MIN_SIZE 16384 -+#endif -+ - #define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)) - - struct ff_video_info -@@ -952,7 +961,11 @@ static void ffmpeg_free(void *data) - - if (handle->audio.codec) - { -+#if FFMPEG8 -+ avcodec_free_context(&handle->audio.codec); -+#else - avcodec_close(handle->audio.codec); -+#endif - av_free(handle->audio.codec); - } - -@@ -960,7 +973,11 @@ static void ffmpeg_free(void *data) - - if (handle->video.codec) - { -+#if FFMPEG8 -+ avcodec_free_context(&handle->video.codec); -+#else - avcodec_close(handle->video.codec); -+#endif - av_free(handle->video.codec); - } - diff --git a/games/retroarch/files/patch-qb_config.libs.sh b/games/retroarch/files/patch-qb_config.libs.sh index 732a8e228973..e85f1bae2a1c 100644 --- a/games/retroarch/files/patch-qb_config.libs.sh +++ b/games/retroarch/files/patch-qb_config.libs.sh @@ -1,13 +1,13 @@ ---- qb/config.libs.sh.orig 2025-05-01 00:17:50 UTC +--- qb/config.libs.sh.orig 2025-12-09 00:02:20 UTC +++ qb/config.libs.sh @@ -269,8 +269,10 @@ check_val '' PULSE -lpulse '' libpulse '' '' false check_pkgconf ROAR libroar 1.0.12 check_val '' JACK -ljack '' jack 0.120.1 '' false check_val '' PULSE -lpulse '' libpulse '' '' false +if [ "$HAVE_PIPEWIRE" != 'no' ]; then check_val '' PIPEWIRE -lpipewire-0.3 '' libpipewire-0.3 '' '' false check_val '' PIPEWIRE_STABLE -lpipewire-0.3 '' libpipewire-0.3 1.0.0 '' false +fi - check_val '' SDL -lSDL SDL sdl 1.2.10 '' false - check_val '' SDL2 -lSDL2 SDL2 sdl2 2.0.0 '' false + check_val '' SDL -lSDL SDL sdl 1.2.10 '' true + check_val '' SDL2 -lSDL2 SDL2 sdl2 2.0.0 '' true