Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1162,6 +1162,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";
Expand Down
16 changes: 16 additions & 0 deletions pkgs/by-name/et/etterna/fix-download-manager.patch
Original file line number Diff line number Diff line change
@@ -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 changes: 109 additions & 0 deletions pkgs/by-name/et/etterna/package.nix
Original file line number Diff line number Diff line change
@@ -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";
};
})