about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/endgame-singularity/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/endgame-singularity/default.nix')
-rw-r--r--nixpkgs/pkgs/games/endgame-singularity/default.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/endgame-singularity/default.nix b/nixpkgs/pkgs/games/endgame-singularity/default.nix
new file mode 100644
index 000000000000..57766c2e8446
--- /dev/null
+++ b/nixpkgs/pkgs/games/endgame-singularity/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, fetchurl
+, fetchFromGitHub
+, unzip
+, python3
+, enableDefaultMusicPack ? true
+}:
+
+let
+  pname = "endgame-singularity";
+  version = "1.00";
+
+  main_src = fetchFromGitHub {
+    owner = "singularity";
+    repo = "singularity";
+    rev = "v${version}";
+    sha256 = "0ndrnxwii8lag6vrjpwpf5n36hhv223bb46d431l9gsigbizv0hl";
+  };
+
+  music_src = fetchurl {
+    url = "http://www.emhsoft.com/singularity/endgame-singularity-music-007.zip";
+    sha256 = "0vf2qaf66jh56728pq1zbnw50yckjz6pf6c6qw6dl7vk60kkqnpb";
+  };
+in
+
+python3.pkgs.buildPythonApplication rec {
+  inherit pname version;
+
+  srcs = [ main_src ] ++ lib.optional enableDefaultMusicPack music_src;
+  sourceRoot = main_src.name;
+
+  nativeBuildInputs = [ unzip ]; # The music is zipped
+  propagatedBuildInputs = with python3.pkgs; [ pygame numpy polib ];
+
+  # Add the music
+  postInstall = lib.optionalString enableDefaultMusicPack ''
+    cp -R "../endgame-singularity-music-007" \
+          "$(echo $out/lib/python*/site-packages/singularity)/music"
+          # ↑ we cannot glob on [...]/music, it doesn't exist yet
+  '';
+
+  meta = {
+    homepage = "http://www.emhsoft.com/singularity/";
+    description = "A simulation game about strong AI";
+    longDescription = ''
+      A simulation of a true AI. Go from computer to computer, pursued by the
+      entire world. Keep hidden, and you might have a chance
+    '';
+    # License details are in LICENSE.txt
+    license = with lib.licenses; [
+      gpl2Plus # most of the code, some translations
+      mit # recursive_fix_pickle, polib
+      cc-by-sa-30 # data and artwork, some translations
+      free # earth images from NASA, some fonts
+      cc0 # cick0.wav
+    ];
+    mainProgram = "singularity";
+    maintainers = with lib.maintainers; [ fgaz ];
+  };
+}