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
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 1.22.2 | 8 | ~amd64 | 0 |
# 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
}
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
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:= )
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:= )
virtual/pkgconfig wayland? ( dev-util/wayland-scanner )
| 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 |