summaryrefslogtreecommitdiffstats
path: root/pkgs/games/domination
diff options
context:
space:
mode:
authorFrancesco Gazzetta <fgaz@fgaz.me>2020-11-21 15:57:21 +0100
committerFrancesco Gazzetta <fgaz@fgaz.me>2020-11-21 16:24:43 +0100
commit0667d730bf94c0e51a6f8aa3ac4f667583ac49b7 (patch)
treeea52ececd8d4625e3829270c9f7ca9d0ba46d546 /pkgs/games/domination
parent7798a4e19cc843874e6329e0a980de7515945923 (diff)
domination: init at 1.2.3
Diffstat (limited to 'pkgs/games/domination')
-rw-r--r--pkgs/games/domination/default.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix
new file mode 100644
index 000000000000..37c7d37741b8
--- /dev/null
+++ b/pkgs/games/domination/default.nix
@@ -0,0 +1,93 @@
+{ stdenv
+, fetchsvn
+# jdk8 is needed for building, but the game runs on newer jres as well
+, jdk8
+, jre
+, ant
+, makeWrapper
+, makeDesktopItem
+}:
+
+let
+ desktopItem = makeDesktopItem {
+ type = "Application";
+ name = "Domination";
+ desktopName = "Domination";
+ exec = "domination";
+ icon = "domination";
+ };
+ editorDesktopItem = makeDesktopItem {
+ type = "Application";
+ name = "Domination Map Editor";
+ desktopName = "Domination Map Editor";
+ exec = "domination-map-editor";
+ icon = "domination";
+ };
+
+in stdenv.mkDerivation {
+ pname = "domination";
+ version = "1.2.3";
+
+ # The .zip releases do not contain the build.xml file
+ src = fetchsvn {
+ url = "https://svn.code.sf.net/p/domination/code/Domination";
+ # There are no tags in the repository.
+ # Look for commits like "new version x.y.z info on website"
+ # or "website update for x.y.z".
+ rev = "1964";
+ sha256 = "0718gns8d69a1dfq3ywc9kddl1khnrmxqyal7brckbjgay8dq42f";
+ };
+
+ nativeBuildInputs = [
+ jdk8
+ ant
+ makeWrapper
+ ];
+
+ buildPhase = "ant";
+
+ installPhase = ''
+ # Remove unnecessary files and launchers (they'd need to be wrapped anyway)
+ rm -r \
+ build/game/src.zip \
+ build/game/*.sh \
+ build/game/*.cmd \
+ build/game/*.exe \
+ build/game/*.app
+
+ mkdir -p $out/share/domination
+ cp -r build/game/* $out/share/domination/
+
+ # Reimplement the two launchers mentioned in Unix_shortcutSpec.xml with makeWrapper
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/domination \
+ --run "cd $out/share/domination" \
+ --add-flags "-jar $out/share/domination/Domination.jar"
+ makeWrapper ${jre}/bin/java $out/bin/domination-map-editor \
+ --run "cd $out/share/domination" \
+ --add-flags "-cp $out/share/domination/Domination.jar net.yura.domination.ui.swinggui.SwingGUIFrame"
+
+ install -Dm644 \
+ ${desktopItem}/share/applications/Domination.desktop \
+ $out/share/applications/Domination.desktop
+ install -Dm644 \
+ "${editorDesktopItem}/share/applications/Domination Map Editor.desktop" \
+ "$out/share/applications/Domination Map Editor.desktop"
+ install -Dm644 build/game/resources/icon.png $out/share/pixmaps/domination.png
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://domination.sourceforge.net/";
+ downloadPage = "http://domination.sourceforge.net/download.shtml";
+ description = "A game that is a bit like the board game Risk or RisiKo";
+ longDescription = ''
+ Domination is a game that is a bit like the well known board game of Risk
+ or RisiKo. It has many game options and includes many maps.
+ It includes a map editor, a simple map format, multiplayer network play,
+ single player, hotseat, 5 user interfaces and many more features.
+ '';
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ };
+}