sil-q: init at v1.5.0

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
This commit is contained in:
Johannes Maier 2022-06-11 22:29:35 +02:00
parent b5b5ae6e03
commit 312078319c
2 changed files with 68 additions and 0 deletions

View file

@ -0,0 +1,66 @@
{ lib, stdenv, fetchFromGitHub, writeScript, makeWrapper, ncurses, libX11 }:
let
setup = writeScript "setup" ''
mkdir -p "$ANGBAND_PATH"
# copy all the data files into place
cp -ar $1/* "$ANGBAND_PATH"
# the copied files need to be writable
chmod +w -R "$ANGBAND_PATH"
'';
in stdenv.mkDerivation rec {
pname = "sil-q";
version = "1.5.0";
src = fetchFromGitHub {
owner = "sil-quirk";
repo = "sil-q";
rev = "v${version}";
sha256 = "sha256-v/sWhPWF9cCKD8N0RHpwzChMM1t9G2yrMDmi1cZxdOs=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ ncurses libX11 ];
# Makefile(s) and config are not top-level
sourceRoot = "source/src";
postPatch = ''
# allow usage of ANGBAND_PATH
substituteInPlace config.h --replace "#define FIXED_PATHS" ""
# change Makefile.std for ncurses according to its own comment
substituteInPlace Makefile.std --replace "-lcurses" "-lncurses"
'';
makefile = "Makefile.std";
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp sil $out/bin/sil-q
wrapProgram $out/bin/sil-q \
--run "export ANGBAND_PATH=\$HOME/.sil" \
--run "${setup} ${src}/lib"
runHook postInstall
'';
meta = {
description = "A roguelike game set in the First Age of Middle-earth";
longDescription = ''
A game of adventure set in the First Age of Middle-earth, when the world still
rang with Elven song and gleamed with Dwarven mail.
Walk the dark halls of Angband. Slay creatures black and fell. Wrest a shining
Silmaril from Morgoths iron crown.
A fork of Sil that's still actively developed.
'';
homepage = "https://github.com/sil-quirk/sil-q";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.kenran ];
platforms = lib.platforms.linux;
};
}

View file

@ -32308,6 +32308,8 @@ with pkgs;
sil = callPackage ../games/sil { };
sil-q = callPackage ../games/sil-q { };
simutrans = callPackage ../games/simutrans { };
# get binaries without data built by Hydra
simutrans_binaries = lowPrio simutrans.binaries;