games-emulation/RetroArch - 1.22.2 (tatsh-overlay)

Search

Install

Install this version:

emerge -a =games-emulation/RetroArch-1.22.2

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =games-emulation/RetroArch-1.22.2

Or alternatively:

emerge --autounmask-write -a =games-emulation/RetroArch-1.22.2

Package Information

Description:
RetroArch is a frontend for emulators, game engines and media players
Homepage:
https://www.retroarch.com
License:
GPL-3

Ebuild Details

Version EAPI Keywords Slot
1.22.2 8 ~amd64 0
View Raw Ebuild
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit edo flag-o-matic toolchain-funcs xdg

DESCRIPTION="RetroArch is a frontend for emulators, game engines and media players"
HOMEPAGE="https://www.retroarch.com"

SRC_URI="https://github.com/libretro/RetroArch/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"

IUSE="7zip alsa cg cpu_flags_arm_neon cpu_flags_arm_vfp cpu_flags_x86_sse2 cheevos debug dispmanx +egl filters ffmpeg gles2 gles3 hid jack kms libass libusb materialui network openal +opengl oss +ozone pipewire pulseaudio +rgui sdl +truetype +threads udev v4l2 videocore vulkan wayland X xinerama xmb xv zlib"

REQUIRED_USE="
	|| ( opengl sdl vulkan dispmanx )
	|| ( materialui ozone rgui xmb )
	alsa? ( threads )
	arm? ( gles2? ( egl ) )
	!arm? (
		egl? ( opengl )
		gles2? ( opengl )
	)
	cg? ( opengl )
	dispmanx? ( videocore arm )
	gles2? ( !cg )
	gles3? ( gles2 )
	kms? ( egl )
	libass? ( ffmpeg )
	libusb? ( hid )
	videocore? ( arm )
	vulkan? ( amd64 )
	wayland? ( egl )
	xinerama? ( X )
	xv? ( X )
"
RDEPEND="
	app-arch/xz-utils
	x11-libs/libxkbcommon
	x11-libs/libXScrnSaver
	alsa? ( media-libs/alsa-lib )
	cg? ( media-gfx/nvidia-cg-toolkit:0= )
	arm? ( dispmanx? ( dev-embedded/raspberrypi-utils:0 ) )
	ffmpeg? ( >=media-video/ffmpeg-2.1.3:0= )
	jack? ( virtual/jack:= )
	libass? ( media-libs/libass:0= )
	libusb? ( virtual/libusb:1= )
	openal? ( media-libs/openal )
	opengl? ( media-libs/libglvnd )
	pulseaudio? ( media-libs/libpulse )
	pipewire? ( media-video/pipewire:= )
	sdl? ( media-libs/libsdl2[joystick] )
	truetype? (
		media-libs/fontconfig
		media-libs/freetype:2
	)
	udev? ( virtual/udev
		X? ( x11-drivers/xf86-input-evdev:0= )
	)
	v4l2? ( media-libs/libv4l:0= )
	wayland? (
		dev-libs/wayland
		dev-libs/wayland-protocols
	)
	X? (
		x11-libs/libX11
		x11-libs/libXext
		x11-libs/libXi
		x11-libs/libXrandr
		x11-libs/libXxf86vm
		x11-libs/libxcb:=
	)
	xinerama? ( x11-libs/libXinerama:0= )
	xv? ( x11-libs/libXv )
	zlib? ( virtual/zlib:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
	virtual/pkgconfig
	wayland? ( dev-util/wayland-scanner )
"

src_configure() {
	if use cg; then
		append-ldflags "-L${EPREFIX}/opt/nvidia-cg-toolkit/$(get_libdir)"
		append-cflags "-I${EPREFIX}/opt/nvidia-cg-toolkit/include"
	fi

	# Absolute path of the directory containing Retroarch shared libraries.
	RETROARCH_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/retroarch"
	export RETROARCH_LIB_DIR

	if use filters; then
		# Replace stock defaults with Gentoo-specific defaults.
		sed -i retroarch.cfg \
			-e "s:# \(video_filter_dir =\):\1 \"${RETROARCH_LIB_DIR}/filters/video/\":" \
			-e "s:# \(audio_filter_dir =\):\1 \"${RETROARCH_LIB_DIR}/filters/audio/\":" \
			|| die '"sed" failed.'
	fi

	tc-export CC CXX

	# Note that OpenVG support is hard-disabled. (See ${RDEPEND} above.)
	local myconf=(
		--prefix="${EPREFIX}/usr"
		--docdir="${EPREFIX}/usr/share/doc/${PF}"
		--enable-dynamic
		--disable-builtinzlib
		--disable-qt
		--disable-sdl
		--disable-vg
		--disable-osmesa
		"$(use_enable 7zip)"
		"$(use_enable alsa)"
		"$(use_enable cheevos)"
		"$(use_enable cg)"
		"$(use_enable cpu_flags_arm_neon neon)"
		"$(use_enable cpu_flags_arm_vfp floathard)"
		"$(use_enable cpu_flags_x86_sse2 sse)"
		"$(use_enable dispmanx)"
		"$(use_enable egl)"
		"$(use_enable ffmpeg)"
		"$(use_enable gles2 opengles)"
		"$(use_enable gles3 opengles3)"
		"$(use_enable hid)"
		"$(use_enable jack)"
		"$(use_enable kms)"
		"$(use_enable libass ssa)"
		"$(use_enable libusb)"
		"$(use_enable materialui)"
		"$(use_enable network networking)"
		"$(use_enable openal al)"
		"$(use_enable opengl)"
		# The GL1 driver needs desktop libGL, which configure does not probe for with GLES.
		"$(use_enable !gles2 opengl1)"
		"$(use_enable oss)"
		"$(use_enable ozone)"
		"$(use_enable pulseaudio pulse)"
		"$(use_enable pipewire)"
		"$(use_enable rgui)"
		"$(use_enable sdl sdl2)"
		"$(use_enable threads)"
		"$(use_enable truetype freetype)"
		"$(use_enable udev)"
		"$(use_enable v4l2)"
		"$(use_enable videocore)"
		"$(use_enable vulkan)"
		"$(use_enable wayland)"
		"$(use_enable X x11)"
		"$(use_enable xinerama)"
		"$(use_enable xmb)"
		"$(use_enable xv xvideo)"
		"$(use_enable zlib)"
	)

	edo ./configure "${myconf[@]}"
}

src_compile() {
	emake V=1 "$(usex debug DEBUG=1 DEBUG=0)"
	if use filters; then
		emake "$(usex debug build=debug build=release)" -C gfx/video_filters/
		emake "$(usex debug build=debug build=release)" -C libretro-common/audio/dsp_filters/
	fi
}

src_install() {
	# Install core files and directories.
	emake DESTDIR="${D}" install

	# Install documentation.
	dodoc README.md

	if use filters; then
		# Install video filters.
		insinto "${RETROARCH_LIB_DIR}"/filters/video/
		doins "${S}"/gfx/video_filters/*.so
		doins "${S}"/gfx/video_filters/*.filt

		# Install audio filters.
		insinto "${RETROARCH_LIB_DIR}"/filters/audio/
		doins "${S}"/libretro-common/audio/dsp_filters/*.dsp
	fi
}

pkg_postinst() {
	if use oss; then
		ewarn ""
		ewarn "OSS support is enabled, however it is not installed as a dependency."
		ewarn "Make sure you have OSS installed in your system."
		ewarn ""
	fi

	xdg_desktop_database_update
	xdg_icon_cache_update
}

pkg_postrm() {
	xdg_desktop_database_update
	xdg_icon_cache_update
}

USE Flags

Manage flags for this package: euse -i <flag> -p games-emulation/RetroArch | euse -E <flag> -p games-emulation/RetroArch | euse -D <flag> -p games-emulation/RetroArch

Global/Standard Flags

cg
egl
❓ Default: Enabled (+)
hid
kms
opengl
❓ Default: Enabled (+)
oss
ozone
❓ Default: Enabled (+)
rgui
❓ Default: Enabled (+)
sdl
truetype
❓ Default: Enabled (+)
threads
❓ Default: Enabled (+)
X
xmb
xv

Inherited Eclasses

edo
xdg

Dependencies

DEPEND

	app-arch/xz-utils
	x11-libs/libxkbcommon
	x11-libs/libXScrnSaver
	alsa? ( media-libs/alsa-lib )
	cg? ( media-gfx/nvidia-cg-toolkit:0= )
	arm? ( dispmanx? ( dev-embedded/raspberrypi-utils:0 ) )
	ffmpeg? ( >=media-video/ffmpeg-2.1.3:0= )
	jack? ( virtual/jack:= )
	libass? ( media-libs/libass:0= )
	libusb? ( virtual/libusb:1= )
	openal? ( media-libs/openal )
	opengl? ( media-libs/libglvnd )
	pulseaudio? ( media-libs/libpulse )
	pipewire? ( media-video/pipewire:= )
	sdl? ( media-libs/libsdl2[joystick] )
	truetype? (
		media-libs/fontconfig
		media-libs/freetype:2
	)
	udev? ( virtual/udev
		X? ( x11-drivers/xf86-input-evdev:0= )
	)
	v4l2? ( media-libs/libv4l:0= )
	wayland? (
		dev-libs/wayland
		dev-libs/wayland-protocols
	)
	X? (
		x11-libs/libX11
		x11-libs/libXext
		x11-libs/libXi
		x11-libs/libXrandr
		x11-libs/libXxf86vm
		x11-libs/libxcb:=
	)
	xinerama? ( x11-libs/libXinerama:0= )
	xv? ( x11-libs/libXv )
	zlib? ( virtual/zlib:= )

RDEPEND

	app-arch/xz-utils
	x11-libs/libxkbcommon
	x11-libs/libXScrnSaver
	alsa? ( media-libs/alsa-lib )
	cg? ( media-gfx/nvidia-cg-toolkit:0= )
	arm? ( dispmanx? ( dev-embedded/raspberrypi-utils:0 ) )
	ffmpeg? ( >=media-video/ffmpeg-2.1.3:0= )
	jack? ( virtual/jack:= )
	libass? ( media-libs/libass:0= )
	libusb? ( virtual/libusb:1= )
	openal? ( media-libs/openal )
	opengl? ( media-libs/libglvnd )
	pulseaudio? ( media-libs/libpulse )
	pipewire? ( media-video/pipewire:= )
	sdl? ( media-libs/libsdl2[joystick] )
	truetype? (
		media-libs/fontconfig
		media-libs/freetype:2
	)
	udev? ( virtual/udev
		X? ( x11-drivers/xf86-input-evdev:0= )
	)
	v4l2? ( media-libs/libv4l:0= )
	wayland? (
		dev-libs/wayland
		dev-libs/wayland-protocols
	)
	X? (
		x11-libs/libX11
		x11-libs/libXext
		x11-libs/libXi
		x11-libs/libXrandr
		x11-libs/libXxf86vm
		x11-libs/libxcb:=
	)
	xinerama? ( x11-libs/libXinerama:0= )
	xv? ( x11-libs/libXv )
	zlib? ( virtual/zlib:= )

BDEPEND

	virtual/pkgconfig
	wayland? ( dev-util/wayland-scanner )

Manifest for 1.22.2

Type File Size Source URLs
DIST RetroArch-1.22.2.tar.gz 71629881 bytes https://github.com/libretro/RetroArch/archive/refs/tags/v1.22.2.tar.gz