diff options
author | Sandro <sandro.jaeckel@gmail.com> | 2021-01-11 02:14:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 02:14:27 +0100 |
commit | bff4ecd74b6daeb3637a9bd10dfe6c6e1de9e17d (patch) | |
tree | 90255dfd4ac16676b2c1794674d0f9c9273ede33 | |
parent | 9411c1d387e09ca0706637eac9e997f86b3c2ed6 (diff) | |
parent | 0667d730bf94c0e51a6f8aa3ac4f667583ac49b7 (diff) |
Merge pull request #104499 from fgaz/domination/init
domination: init at 1.2.3
-rw-r--r-- | pkgs/games/domination/default.nix | 93 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 95 insertions, 0 deletions
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix new file mode 100644 index 0000000000000..37c7d37741b88 --- /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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e201a9ff1b6ff..d78d849db9eaa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26076,6 +26076,8 @@ in displaycal = callPackage ../applications/graphics/displaycal {}; + domination = callPackage ../games/domination { }; + drumkv1 = libsForQt5.callPackage ../applications/audio/drumkv1 { }; duckmarines = callPackage ../games/duckmarines { love = love_0_10; }; |