etterna: init at 0.74.3 (#389089)

This commit is contained in:
Arne Keller
2025-03-19 10:22:56 +01:00
committed by GitHub
3 changed files with 137 additions and 0 deletions
+12
View File
@@ -1185,6 +1185,18 @@
githubId = 30437811;
name = "Alex Andrews";
};
alikindsys = {
email = "alice@blocovermelho.org";
github = "alikindsys";
githubId = 36565196;
name = "Alikind System";
keys = [
{
fingerprint = "7D31 15DC D912 C15A 2781 F7BB 511C B44B C752 2A89";
}
];
};
alirezameskin = {
email = "alireza.meskin@gmail.com";
github = "alirezameskin";
@@ -0,0 +1,16 @@
diff --git a/src/Etterna/Singletons/DownloadManager.cpp b/src/Etterna/Singletons/DownloadManager.cpp
index b42ccd30..3606107d 100644
--- a/src/Etterna/Singletons/DownloadManager.cpp
+++ b/src/Etterna/Singletons/DownloadManager.cpp
@@ -6265,7 +6265,10 @@ Download::Install()
{
Core::Platform::requestUserAttention();
Message* msg;
- if (!SongManager::InstallSmzip(m_TempFileName))
+
+ auto path = FILEMAN->ResolvePath(m_TempFileName);
+
+ if (!SongManager::InstallSmzip(path))
msg = new Message("DownloadFailed");
else
msg = new Message("PackDownloaded");
+109
View File
@@ -0,0 +1,109 @@
{
lib,
stdenv,
fetchFromGitHub,
makeDesktopItem,
copyDesktopItems,
# deps
cmake,
pkg-config,
openssl,
libGLU,
xorg,
alsa-lib,
libjack2,
libpulseaudio,
libogg,
sse2neon,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "etterna";
version = "0.74.3";
src = fetchFromGitHub {
owner = "etternagame";
repo = "etterna";
tag = "v${finalAttrs.version}";
hash = "sha256-zzCk6axISswfTAk7rRha5HFzIHQ0AjpAZyAWzH+Cn1s=";
};
patches = [ ./fix-download-manager.patch ];
nativeBuildInputs = [
cmake
pkg-config
copyDesktopItems
];
buildInputs = [
openssl
alsa-lib
libjack2
libpulseaudio
libGLU
libogg
sse2neon
xorg.libXinerama
xorg.libXrandr
xorg.libX11
xorg.libXext # Needed for DPMS
xorg.libXvMC
];
desktopItems = [
(makeDesktopItem {
name = "etterna";
desktopName = "Etterna";
genericName = "Rhythm and dance game";
icon = "etterna";
tryExec = "etterna";
exec = "etterna";
categories = [
"Application"
"Game"
"ArcadeGame"
];
comment = "A cross-platform rhythm video game.";
terminal = false;
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/etterna}
mkdir -p $out/share/applications
# copy select necessary game files into virtual fs
cp -r /build/source/{Announcers,Assets,BGAnimations,BackgroundEffects,BackgroundTransitions,Data,GameTools,NoteSkins,Scripts,Themes} "$out/share/etterna"
# copy binary
cp /build/source/Etterna $out/bin/.etterna-unwrapped
# Install the Icon
install -Dm644 /build/source/Docs/images/etterna-logo-light.svg "$out/share/icons/hicolor/scalable/apps/etterna.svg"
# wacky insertion of wrapper directly into phase, so that $out is set
cat > $out/bin/etterna << EOF
#!${stdenv.shell}
export ETTERNA_ROOT_DIR="\$HOME/.local/share/etterna"
export ETTERNA_ADDITIONAL_ROOT_DIRS="$out/share/etterna"
echo "HOME: \$HOME"
echo "PWD: \$(pwd)"
echo "ETTERNA_ADDITIONAL_ROOT_DIRS: \$ETTERNA_ADDITIONAL_ROOT_DIRS"
exec $out/bin/.etterna-unwrapped "\$@"
EOF
chmod +x $out/bin/etterna
runHook postInstall
'';
cmakeFlags = [ "-D WITH_CRASHPAD=OFF" ];
meta = {
description = "Advanced cross-platform rhythm game focused on keyboard play";
homepage = "https://etternaonline.com";
changelog = "https://github.com/etternagame/etterna/release/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ alikindsys ];
mainProgram = "etterna";
};
})