diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index c148cc2fef65..2f9219b293f1 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -12123,6 +12123,14 @@ github = "MrTarantoga"; githubId = 53876219; }; + mrtnvgr = { + name = "Egor Martynov"; + github = "mrtnvgr"; + githubId = 48406064; + keys = [{ + fingerprint = "6FAD DB43 D5A5 FE52 6835 0943 5B33 79E9 81EF 48B1"; + }]; + }; mrVanDalo = { email = "contact@ingolf-wagner.de"; github = "mrVanDalo"; diff --git a/pkgs/by-name/ce/celeste-classic/package.nix b/pkgs/by-name/ce/celeste-classic/package.nix new file mode 100644 index 000000000000..bbea59a5b457 --- /dev/null +++ b/pkgs/by-name/ce/celeste-classic/package.nix @@ -0,0 +1,49 @@ +{ lib +, stdenvNoCC +, fetchzip +, autoPatchelfHook +, SDL2 +, practiceMod ? false +}: + +let + directory = if practiceMod then "CELESTE*Practice*" else "CELESTE"; + srcbin = if practiceMod then "celeste_practice_mod" else "celeste"; + outbin = if practiceMod then "celeste-classic-pm" else "celeste-classic"; +in +stdenvNoCC.mkDerivation { + pname = outbin; + version = "unstable-2020-12-08"; + + # From https://www.speedrun.com/celestep8/resources + src = fetchzip { + url = "https://www.speedrun.com/static/resource/174ye.zip?v=f3dc98f"; + hash = "sha256-GANHqKB0N905QJOLaePKWkUuPl9UlL1iqvkMMvw/CC8="; + extension = "zip"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + ]; + + buildInputs = [ SDL2 ]; + + installPhase = '' + runHook preInstall + install -Dsm755 ${directory}/${srcbin} $out/lib/${outbin}/${outbin} + install -Dm444 ${directory}/data.pod $out/lib/${outbin}/data.pod + mkdir -p $out/bin + ln -s $out/lib/${outbin}/${outbin} $out/bin/ + runHook postInstall + ''; + + meta = with lib; { + description = "A PICO-8 platformer about climbing a mountain, made in four days${lib.optionalString practiceMod " (Practice Mod)"}"; + homepage = "https://celesteclassic.github.io/"; + license = licenses.unfree; + platforms = platforms.linux; + mainProgram = outbin; + maintainers = with maintainers; [ mrtnvgr ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1cf8bddd3ed9..738022d78089 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -447,6 +447,10 @@ with pkgs; ccal = callPackage ../tools/misc/ccal { }; + celeste-classic-pm = pkgs.celeste-classic.override { + practiceMod = true; + }; + cereal = cereal_1_3_0; cereal_1_3_0 = callPackage ../development/libraries/cereal/1.3.0.nix { }; cereal_1_3_2 = callPackage ../development/libraries/cereal/1.3.2.nix { };