diff --git a/pkgs/games/sil-q/default.nix b/pkgs/games/sil-q/default.nix new file mode 100644 index 000000000000..1676f8da55a9 --- /dev/null +++ b/pkgs/games/sil-q/default.nix @@ -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 Morgoth’s 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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 50f97085e478..8fb6dc4ee249 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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;