Sergei Trofimovich 1472953abb meritous: reenable stack protection and apply the proposed patch
Instead of applying `sed` locally let's apply the patch pending upstream
inclusion.
2025-01-19 16:24:11 +00:00

66 lines
1.5 KiB
Nix

{
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
SDL,
SDL_image,
SDL_mixer,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "meritous";
version = "1.5";
src = fetchFromGitLab {
owner = "meritous";
repo = "meritous";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-6KK2anjX+fPsYf4HSOHQ0EQBINqZiVbxo1RmBR6pslg=";
};
patches = [
# Fix stack overflow on too long files:
# https://gitlab.com/meritous/meritous/-/merge_requests/5
(fetchpatch {
name = "fix-overflow.patch";
url = "https://gitlab.com/meritous/meritous/-/commit/68029f02ccaea86fb96d6dd01edb269ac3e6eff0.patch";
hash = "sha256-YRV0cEcn6nEJUdHF/cheezNbsgZmjy0rSUw0tuhUYf0=";
})
];
prePatch = ''
substituteInPlace Makefile \
--replace "prefix=/usr/local" "prefix=$out" \
--replace sdl-config ${lib.getDev SDL}/bin/sdl-config
'';
buildInputs = [
SDL
SDL_image
SDL_mixer
zlib
];
installPhase = ''
runHook preInstall
install -m 555 -D meritous $out/bin/meritous
mkdir -p $out/share/meritous
cp -r dat/* $out/share/meritous/
runHook postInstall
'';
meta = with lib; {
description = "Action-adventure dungeon crawl game";
homepage = "https://gitlab.com/meritous/meritous";
changelog = "https://gitlab.com/meritous/meritous/-/blob/master/NEWS";
license = licenses.gpl3Only;
mainProgram = "meritous";
maintainers = [ maintainers.alexvorobiev ];
platforms = platforms.linux;
};
})