Install this version:
emerge -a =games-arcade/etterna-9999
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =games-arcade/etterna-9999
Or alternatively:
emerge --autounmask-write -a =games-arcade/etterna-9999
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 9999 | 8 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake desktop git-r3 xdg
DESCRIPTION="Advanced cross-platform rhythm game focused on keyboard play"
HOMEPAGE="https://etternaonline.com"
EGIT_REPO_URI="https://github.com/etternagame/etterna.git"
EGIT_BRANCH="develop"
LICENSE="MIT"
SLOT="0"
KEYWORDS=""
IUSE="alsa jack pulseaudio"
RDEPEND="
dev-libs/openssl:=
media-libs/libglvnd
media-libs/libogg
net-misc/curl
x11-libs/libX11
x11-libs/libXrandr
alsa? ( media-libs/alsa-lib )
jack? ( virtual/jack )
pulseaudio? ( media-libs/libpulse )
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/patchelf
"
src_prepare() {
default
sed -i \
-e '/add_subdirectory(crashpad)/d' \
extern/CMakeLists.txt || die
sed -i \
-e 's/\(set(OPENSSL_USE_STATIC_LIBS\) ON/\1 OFF/' \
CMakeLists.txt || die
sed -i \
-e 's/if (ANDROID AND (\${CMAKE_SYSTEM_VERSION} LESS 21))/if (ANDROID)/' \
extern/luajit/src/CMakeLists.txt || die
sed -i \
-e '1i #include <stdlib.h>' \
extern/mad-0.15.1b/global.h || die
cmake_src_prepare
}
src_install() {
local bin
local dir
bin=$(find "${S}" \
-maxdepth 1 \
-type f \
-name 'Etterna*' \
-perm -111 \
-print -quit) || die
[[ -n ${bin} ]] || die "Unable to locate Etterna executable"
exeinto /opt/etterna
newexe "${bin}" Etterna
# Discord Rich Presence SDK
if [[ -f ${S}/extern/discord/lib/release/libdiscord_partner_sdk.so ]]; then
doexe "${S}/extern/discord/lib/release/libdiscord_partner_sdk.so"
patchelf \
--force-rpath \
--set-rpath '$ORIGIN' \
"${ED}/opt/etterna/Etterna" || die
fi
if [[ -f ${S}/crashpad_handler ]]; then
doexe "${S}/crashpad_handler"
fi
insinto /opt/etterna
for dir in \
Announcers \
Assets \
BackgroundEffects \
BackgroundTransitions \
BGAnimations \
Data \
NoteSkins \
Scripts \
Songs \
Themes; do
cp -a "${S}/${dir}" "${T}/Default_${dir}" || die
doins -r "${T}/Default_${dir}"
done
dobin "${FILESDIR}/etterna"
newicon \
"${S}/Themes/_fallback/Graphics/Common window icon.png" \
etterna.png
make_desktop_entry \
etterna \
Etterna \
etterna \
"Game;ArcadeGame;"
}
pkg_postinst() {
xdg_pkg_postinst
elog "Etterna stores user data in ~/.etterna."
elog "Default assets are copied from /opt/etterna"
elog "to ~/.etterna the first time the launcher is started."
}
pkg_postrm() {
xdg_pkg_postrm
}
Manage flags for this package:
euse -i <flag> -p games-arcade/etterna |
euse -E <flag> -p games-arcade/etterna |
euse -D <flag> -p games-arcade/etterna
dev-libs/openssl:= media-libs/libglvnd media-libs/libogg net-misc/curl x11-libs/libX11 x11-libs/libXrandr alsa? ( media-libs/alsa-lib ) jack? ( virtual/jack ) pulseaudio? ( media-libs/libpulse )
dev-libs/openssl:= media-libs/libglvnd media-libs/libogg net-misc/curl x11-libs/libX11 x11-libs/libXrandr alsa? ( media-libs/alsa-lib ) jack? ( virtual/jack ) pulseaudio? ( media-libs/libpulse )
dev-util/patchelf