summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/cutemaze/default.nix4
-rw-r--r--pkgs/games/dwarf-fortress/default.nix12
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/default.nix18
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch23
-rw-r--r--pkgs/games/dwarf-fortress/dwarf-therapist/default.nix19
-rw-r--r--pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix4
-rw-r--r--pkgs/games/dwarf-fortress/game.nix8
-rw-r--r--pkgs/games/dwarf-fortress/soundsense.nix2
-rw-r--r--pkgs/games/dwarf-fortress/themes/cla.nix33
-rw-r--r--pkgs/games/dwarf-fortress/themes/default.nix25
-rw-r--r--pkgs/games/dwarf-fortress/themes/phoebus.nix34
-rw-r--r--pkgs/games/dwarf-fortress/themes/themes.json72
-rw-r--r--pkgs/games/dwarf-fortress/unfuck.nix4
-rw-r--r--pkgs/games/freecell-solver/default.nix21
-rw-r--r--pkgs/games/multimc/default.nix7
-rw-r--r--pkgs/games/opendune/default.nix32
-rw-r--r--pkgs/games/openrct2/default.nix2
-rw-r--r--pkgs/games/rrootage/default.nix80
-rw-r--r--pkgs/games/steam/chrootenv.nix3
19 files changed, 261 insertions, 142 deletions
diff --git a/pkgs/games/cutemaze/default.nix b/pkgs/games/cutemaze/default.nix
index 253a7fcbf304..2570ccb51dcd 100644
--- a/pkgs/games/cutemaze/default.nix
+++ b/pkgs/games/cutemaze/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "cutemaze-${version}";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "https://gottcode.org/cutemaze/${name}-src.tar.bz2";
-    sha256 = "1a2jmkm7fjzdrvzgvbqfq20k0vvpwfcycagsm0haxb3fpv86950y";
+    sha256 = "1gczg8bki9d2kkkkrac5wi4vnjdynv8xjw2qxn9lx1jfkm8fk1qk";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix
index 82710256c631..ee2e442daa28 100644
--- a/pkgs/games/dwarf-fortress/default.nix
+++ b/pkgs/games/dwarf-fortress/default.nix
@@ -1,14 +1,14 @@
-{ pkgs, pkgsi686Linux, stdenv }:
+{ pkgs, stdenv, stdenvNoCC, gccStdenv }:
 
 let
   callPackage = pkgs.newScope self;
-  callPackage_i686 = pkgsi686Linux.newScope self;
 
   self = rec {
     dwarf-fortress-original = callPackage ./game.nix { };
 
     dfhack = callPackage ./dfhack {
       inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT;
+      stdenv = gccStdenv;
     };
 
     soundSense = callPackage ./soundsense.nix { };
@@ -32,9 +32,13 @@ let
 
     dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { };
 
-    phoebus-theme = callPackage ./themes/phoebus.nix { };
+    themes = callPackage ./themes {
+      stdenv = stdenvNoCC;
+    };
+
+    phoebus-theme = themes.phoebus;
 
-    cla-theme = callPackage ./themes/cla.nix { };
+    cla-theme = themes.cla;
   };
 
 in self
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix
index 641676489ed9..a77f50a51711 100644
--- a/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -1,13 +1,11 @@
-{ stdenv, lib, fetchgit, cmake, writeScriptBin, callPackage
+{ stdenv, hostPlatform, lib, fetchFromGitHub, cmake, writeScriptBin, callPackage
 , perl, XMLLibXML, XMLLibXSLT, zlib
 , enableStoneSense ? false,  allegro5, libGLU_combined
 }:
 
 let
-  dfVersion = "0.44.09";
+  dfVersion = "0.44.10";
   version = "${dfVersion}-r1";
-  rev = "refs/tags/${version}";
-  sha256 = "1cwifdhi48a976xc472nf6q2k0ibwqffil5a4llcymcxdbgxdcc9";
 
   # revision of library/xml submodule
   xmlRev = "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5";
@@ -25,7 +23,7 @@ let
       if [ "$(dirname "$(pwd)")" = "xml" ]; then
         echo "${xmlRev}"
       else
-        echo "${rev}"
+        echo "refs/tags/${version}"
       fi
     elif [ "$*" = "rev-parse HEAD:library/xml" ]; then
       echo "${xmlRev}"
@@ -38,13 +36,13 @@ in stdenv.mkDerivation rec {
   name = "dfhack-${version}";
 
   # Beware of submodules
-  src = fetchgit {
-    url = "https://github.com/DFHack/dfhack";
-    inherit rev sha256;
+  src = fetchFromGitHub {
+    owner = "DFHack";
+    repo = "dfhack";
+    sha256 = "0srgymyd57hk9iffhi2i0ra5vzw2vzlpzn4042yb90vqpmvz2zrj";
+    rev = version;
   };
 
-  patches = [ ./fix-stonesense.patch ];
-
   nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
   # We don't use system libraries because dfhack needs old C++ ABI.
   buildInputs = [ zlib ]
diff --git a/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch b/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch
deleted file mode 100644
index da860cd55624..000000000000
--- a/pkgs/games/dwarf-fortress/dfhack/fix-stonesense.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From f5be6fe5fb192f01ae4551ed9217e97fd7f6a0ae Mon Sep 17 00:00:00 2001
-From: Herwig Hochleitner <hhochleitner@gmail.com>
-Date: Sun, 1 Oct 2017 18:01:43 +0200
-Subject: [PATCH] include <GL/glext.h>
-
-this fixes `GLhandleARB` not being defined
----
- plugins/stonesense/common.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/plugins/stonesense/common.h b/plugins/stonesense/common.h
-index eb36691..ef45389 100644
---- a/plugins/stonesense/common.h
-+++ b/plugins/stonesense/common.h
-@@ -31,6 +31,8 @@ using namespace df::enums;
- #include <allegro5/allegro_opengl.h>
- #include <allegro5/utf8.h>
- 
-+#include <GL/glext.h>
-+
- // allegro leaks X headers, undef some of it here:
- #undef TileShape
- #undef None
\ No newline at end of file
diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
index 29cc2dc62857..2e54258c4be9 100644
--- a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
+++ b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
@@ -2,33 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "dwarf-therapist-original-${version}";
-  version = "39.3.1";
+  version = "40.0.0";
 
   src = fetchFromGitHub {
     owner = "Dwarf-Therapist";
     repo = "Dwarf-Therapist";
     rev = "v${version}";
-    sha256 = "0vb0dg1r833gaa4jzlrxf9acn41az3xjs9alx7r9lkqwvkjyrdy2";
+    sha256 = "0b5y7800nzydn0jcc0vglgi9mzkj8f3qhw16wd872cf5396xnag9";
   };
 
-  outputs = [ "out" "layouts" ];
   buildInputs = [ qtbase qtdeclarative ];
   nativeBuildInputs = [ texlive cmake ninja ];
 
-  configurePhase = ''
-    cmake -GNinja
-  '';
-
-  buildPhase = ''
-    ninja -j$NIX_BUILD_CORES
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp ./DwarfTherapist $out/bin/DwarfTherapist
-    cp -r ./share/memory_layouts $layouts
-  '';
-
   meta = with stdenv.lib; {
     description = "Tool to manage dwarves in in a running game of Dwarf Fortress";
     maintainers = with maintainers; [ the-kenny abbradar bendlas ];
diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
index 6debf0bb0b2b..f9e3e468cdc0 100644
--- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
+++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
@@ -18,7 +18,7 @@ in symlinkJoin {
   postBuild = ''
     # DwarfTherapist assumes it's run in $out/share/dwarftherapist and
     # therefore uses many relative paths.
-    wrapProgram $out/bin/DwarfTherapist \
+    wrapProgram $out/bin/dwarftherapist \
       --run "cd $out/share/dwarftherapist"
 
     rm -rf $out/share/dwarftherapist/memory_layouts/linux
@@ -26,7 +26,7 @@ in symlinkJoin {
     origmd5=$(cat "${dfHashFile}.orig" | cut -c1-8)
     patchedmd5=$(cat "${dfHashFile}" | cut -c1-8)
     substitute \
-      ${dt.layouts}/${inifile} \
+      ${dt}/share/dwarftherapist/memory_layouts/${inifile} \
       $out/share/dwarftherapist/memory_layouts/${inifile} \
       --replace "$origmd5" "$patchedmd5"
   '';
diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix
index 79eb6e191329..477ba33b77c6 100644
--- a/pkgs/games/dwarf-fortress/game.nix
+++ b/pkgs/games/dwarf-fortress/game.nix
@@ -9,7 +9,7 @@ with lib;
 
 let
   baseVersion = "44";
-  patchVersion = "09";
+  patchVersion = "10";
   dfVersion = "0.${baseVersion}.${patchVersion}";
 
   libpath = makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc dwarf-fortress-unfuck SDL ];
@@ -21,15 +21,15 @@ let
   srcs = {
     "x86_64-linux" = fetchurl {
       url = "${homepage}df_${baseVersion}_${patchVersion}_linux.tar.bz2";
-      sha256 = "1haikynkg1pqyrzzqk1qxm19p36ww58qp8brh3fjxssp4x71rcdy";
+      sha256 = "1cqm43hn3ar9d8a7y7dwq48ajp72cirn1gclh8r2fykkypprxmp2";
     };
     "i686-linux" = fetchurl {
       url = "${homepage}df_${baseVersion}_${patchVersion}_linux32.tar.bz2";
-      sha256 = "0lmbrdf7wjdwj5yx0khnq871yxvhfwqxjjyfkqcdy5ik18lvlkj8";
+      sha256 = "0gdb6sq8725nwdisxwha8f5b6arq570s73aj4gdrh611gxh13r6n";
     };
     "x86_64-darwin" = fetchurl {
       url = "${homepage}df_${baseVersion}_${patchVersion}_osx.tar.bz2";
-      sha256 = "01dss8g9lmi8majp6lxcfw166ydz4himkz6am5pi29gixaf4vfqs";
+      sha256 = "1wpa45d81q8f5mhqmaxvdkz93k6cm3pg7vpsqjjjsp5s961gd74g";
     };
   };
 
diff --git a/pkgs/games/dwarf-fortress/soundsense.nix b/pkgs/games/dwarf-fortress/soundsense.nix
index 67c86f7f745c..f09ac8435482 100644
--- a/pkgs/games/dwarf-fortress/soundsense.nix
+++ b/pkgs/games/dwarf-fortress/soundsense.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   version = "2016-1_196";
-  dfVersion = "0.44.09";
+  dfVersion = "0.44.10";
   inherit soundPack;
   name = "soundsense-${version}";
   src = fetchzip {
diff --git a/pkgs/games/dwarf-fortress/themes/cla.nix b/pkgs/games/dwarf-fortress/themes/cla.nix
deleted file mode 100644
index c7d85c48ce8e..000000000000
--- a/pkgs/games/dwarf-fortress/themes/cla.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv, fetchFromGitHub }:
-
-# On upgrade check https://github.com/DFgraphics/CLA/blob/master/manifest.json
-# for compatibility information.
-
-stdenv.mkDerivation rec {
-  name = "cla-theme-${version}";
-  version = "44.xx-v25";
-
-  src = fetchFromGitHub {
-    owner = "DFgraphics";
-    repo = "CLA";
-    rev = version;
-    sha256 = "1h8nwa939qzqklbi8vwsq9p2brvv7sc0pbzzrdjnb221lr9p58zk";
-  };
-
-  installPhase = ''
-    mkdir $out
-    cp -r data raw $out
-  '';
-
-  passthru.dfVersion = "0.44.09";
-
-  preferLocalBuild = true;
-
-  meta = with stdenv.lib; {
-    description = "CLA graphics set for Dwarf Fortress";
-    homepage = http://www.bay12forums.com/smf/index.php?topic=105376.0;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ abbradar ];
-    license = licenses.free;
-  };
-}
diff --git a/pkgs/games/dwarf-fortress/themes/default.nix b/pkgs/games/dwarf-fortress/themes/default.nix
new file mode 100644
index 000000000000..90f46d052618
--- /dev/null
+++ b/pkgs/games/dwarf-fortress/themes/default.nix
@@ -0,0 +1,25 @@
+{stdenv, lib, fetchFromGitHub}:
+
+with builtins;
+
+listToAttrs (map (v: {
+  inherit (v) name;
+  value = stdenv.mkDerivation {
+    name = "${v.name}-${v.version}";
+    src = fetchFromGitHub {
+      owner = "DFgraphics";
+      repo = v.name;
+      rev = v.version;
+      sha256 = v.sha256;
+    };
+    installPhase = ''
+      mkdir -p $out
+      cp -r data raw $out
+    '';
+    meta = with lib; {
+      platforms = platforms.all;
+      maintainers = [ maintainers.matthewbauer ];
+      license = licenses.free;
+    };
+  };
+}) (fromJSON (readFile ./themes.json)))
diff --git a/pkgs/games/dwarf-fortress/themes/phoebus.nix b/pkgs/games/dwarf-fortress/themes/phoebus.nix
deleted file mode 100644
index 8641e15fa864..000000000000
--- a/pkgs/games/dwarf-fortress/themes/phoebus.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchFromGitHub }:
-
-# On upgrade check https://github.com/DFgraphics/Phoebus/blob/master/manifest.json
-# for compatibility information.
-
-stdenv.mkDerivation rec {
-  name = "phoebus-theme-${version}";
-  version = "44.07";
-
-  src = fetchFromGitHub {
-    owner = "DFgraphics";
-    repo = "Phoebus";
-    rev = version;
-    sha256 = "114yc0s7j57i4rq6iq295gggbgzx4qb389xip8lkzfg4dnp6klns";
-  };
-
-  installPhase = ''
-    mkdir $out
-    cp -r data raw $out
-  '';
-
-  passthru.dfVersion = "0.44.09";
-
-  preferLocalBuild = true;
-
-  meta = with stdenv.lib; {
-    description = "Phoebus graphics set for Dwarf Fortress";
-    homepage = http://www.bay12forums.com/smf/index.php?topic=137096.0;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ a1russell abbradar ];
-    # https://github.com/fricy/Phoebus/issues/5
-    license = licenses.free;
-  };
-}
diff --git a/pkgs/games/dwarf-fortress/themes/themes.json b/pkgs/games/dwarf-fortress/themes/themes.json
new file mode 100644
index 000000000000..f2cc4ed3ac7d
--- /dev/null
+++ b/pkgs/games/dwarf-fortress/themes/themes.json
@@ -0,0 +1,72 @@
+[
+  {
+      "name": "taffer",
+      "version": "44.10a",
+      "sha256": "0gp8hmv55bp34db0caksdpd3kn2glh7sz03gyxknzdymh1cpy0qv"
+  },
+  {
+      "name": "spacefox",
+      "version": "44.10a",
+      "sha256": "0ngipq1aha8cd34k4hkrfbi238gp36qpymr2f87d3nwbj2vi9hmh"
+  },
+  {
+      "name": "gemset",
+      "version": "44.10a",
+      "sha256": "14q69dyqzhxsfv1a4vh17fx7r7mylfimmjrydz6ygdypblgc9zm6"
+  },
+  {
+      "name": "wanderlust",
+      "version": "44.10",
+      "sha256": "016acv0ab2wj4rn9slhbf626977zas6q4372f7avaf99ihcmwi85"
+  },
+  {
+      "name": "rally-ho",
+      "version": "44.10",
+      "sha256": "1pij5llnc8hfsqgyrwj1ak123wxhhk7yhlpnj033gwbpp0lnqz2x"
+  },
+  {
+      "name": "phoebus",
+      "version": "44.10",
+      "sha256": "1fvl5251wzjns159snhw01p214k53vpdlyj7piv545r23q7wg2ji"
+  },
+  {
+      "name": "obsidian",
+      "version": "44.10",
+      "sha256": "06lixlkprjd829zn10g5zljnxymsh81g31dj86hn2jvlch4dh98q"
+  },
+  {
+      "name": "mayday",
+      "version": "44.10",
+      "sha256": "1g15ha0w93iyj5ni2pavhwrsckhnw80xvwrvw4dbp5zx1y41f3x9"
+  },
+  {
+      "name": "jolly-bastion",
+      "version": "44.10",
+      "sha256": "038qvr08776rinlqa6zwb8qqxyrc75nnyyqjsasr2rf9d2f9yf8j"
+  },
+  {
+      "name": "ironhand",
+      "version": "44.10",
+      "sha256": "14hngixd4gkw0lzqzlkj9ljmrxr8b3wgjk67n6zysgyi3f38f5j2"
+  },
+  {
+      "name": "afro-graphics",
+      "version": "44.10",
+      "sha256": "050mrpy9q6g9y4133al7rdsj6c9hy2wva7jqmc56babvmmcpcc2j"
+  },
+  {
+      "name": "cla",
+      "version": "44.xx-v25",
+      "sha256": "1h8nwa939qzqklbi8vwsq9p2brvv7sc0pbzzrdjnb221lr9p58zk"
+  },
+  {
+      "name": "tergel",
+      "version": "44.03",
+      "sha256": "1kgk0cav5b6v7mca36gm84b2p556ibd8yy4rwbfc4i6i3hlsdw07"
+  },
+  {
+      "name": "autoreiv",
+      "version": "44.03",
+      "sha256": "03w9dp42718p5gnswynw3p9wz85y61gkzz60jf71arw1zhf23wm0"
+  }
+]
diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix
index fc42c05f0701..d816ba461b11 100644
--- a/pkgs/games/dwarf-fortress/unfuck.nix
+++ b/pkgs/games/dwarf-fortress/unfuck.nix
@@ -3,7 +3,7 @@
 , ncurses, glib, gtk2, libsndfile, zlib
 }:
 
-let dfVersion = "0.44.09"; in
+let dfVersion = "0.44.10"; in
 
 stdenv.mkDerivation {
   name = "dwarf_fortress_unfuck-${dfVersion}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "svenstaro";
     repo = "dwarf_fortress_unfuck";
     rev = dfVersion;
-    sha256 = "00yj4l4gazxg4i6fj9rwri6vm17i6bviy2mpkx0z5c0mvsr7s14b";
+    sha256 = "0vb19qx2ibc79j4bgbk9lskb883qfb0815zw1dfz9k7rqwal8mzj";
   };
 
   cmakeFlags = [
diff --git a/pkgs/games/freecell-solver/default.nix b/pkgs/games/freecell-solver/default.nix
index a096b17b71a5..3dc9857d4552 100644
--- a/pkgs/games/freecell-solver/default.nix
+++ b/pkgs/games/freecell-solver/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, cmake
 , perl, gmp, libtap, gperf
-, perlPackages, python3Packages }:
+, perlPackages, python3 }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec{
@@ -13,11 +13,20 @@ stdenv.mkDerivation rec{
     sha256 = "1cmaib69pijmcpvgjvrdry8j4xys8l906l80b8z21vvyhdwrfdnn";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake perl gmp libtap gperf
-    perlPackages.TemplateToolkit perlPackages.StringShellQuote
-    perlPackages.GamesSolitaireVerify perlPackages.TaskFreecellSolverTesting
-    python3Packages.python python3Packages.random2 ];
+  nativeBuildInputs = [
+    cmake perl pkgconfig
+  ] ++ (with perlPackages; TaskFreecellSolverTesting.buildInputs ++ [
+    GamesSolitaireVerify StringShellQuote TaskFreecellSolverTesting TemplateToolkit
+  ]);
+
+  buildInputs = [
+    gmp libtap gperf
+    python3 python3.pkgs.random2
+  ];
+
+  # "ninja t/CMakeFiles/delta-states-test.t.exe.dir/__/delta_states.c.o" fails
+  # to depend on the generated "is_king.h".
+  enableParallelBuilding = false;
 
   meta = {
     description = "A FreeCell automatic solver";
diff --git a/pkgs/games/multimc/default.nix b/pkgs/games/multimc/default.nix
index 35444f82f66e..c6697f5806d4 100644
--- a/pkgs/games/multimc/default.nix
+++ b/pkgs/games/multimc/default.nix
@@ -4,12 +4,12 @@ let
   libpath = with xorg; stdenv.lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ];
 in stdenv.mkDerivation rec {
   name = "multimc-${version}";
-  version = "0.6.1";
+  version = "0.6.2";
   src = fetchFromGitHub {
     owner = "MultiMC";
     repo = "MultiMC5";
     rev = version;
-    sha256 = "0glsf4vfir8w24bpinf3cx2ninrcp7hpq9cl463wl78dvqfg47kx";
+    sha256 = "07jrr6si8nzfqwf073zhgw47y6snib23ad3imh1ik1nn5r7wqy3c";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ cmake file makeWrapper ];
@@ -18,6 +18,9 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   postInstall = ''
+    mkdir -p $out/share/{applications,pixmaps}
+    cp ../application/resources/multimc/scalable/multimc.svg $out/share/pixmaps
+    cp ../application/package/linux/multimc.desktop $out/share/applications
     wrapProgram $out/bin/MultiMC --add-flags "-d \$HOME/.multimc/" --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} --prefix PATH : ${jdk}/bin/
   '';
 
diff --git a/pkgs/games/opendune/default.nix b/pkgs/games/opendune/default.nix
new file mode 100644
index 000000000000..7b848086794b
--- /dev/null
+++ b/pkgs/games/opendune/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, SDL, SDL_image, SDL_mixer, binutils }:
+
+# - set the opendune configuration at ~/.config/opendune/opendune.ini:
+#     [opendune]
+#     datadir=/path/to/opendune-data
+# - download dune2 into [datadir] http://www.bestoldgames.net/eng/old-games/dune-2.php
+
+stdenv.mkDerivation rec {
+  name = "opendune-${version}";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "OpenDUNE";
+    repo = "OpenDUNE";
+    rev = version;
+    sha256 = "15rvrnszdy3db8s0dmb696l4isb3x2cpj7wcl4j09pdi59pc8p37";
+  };
+
+  buildInputs = [ SDL SDL_image SDL_mixer ];
+
+  installPhase = ''
+    install -m 555 -D bin/opendune $out/bin/opendune
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Dune, Reinvented";
+    homepage = https://github.com/OpenDUNE/OpenDUNE;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.nand0p ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix
index e34f29300ab4..5a35b06a1e3d 100644
--- a/pkgs/games/openrct2/default.nix
+++ b/pkgs/games/openrct2/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "An open source re-implementation of RollerCoaster Tycoon 2 (original game required)";
-    homepage = https://openrct2.website/;
+    homepage = https://openrct2.io/;
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ geistesk ];
diff --git a/pkgs/games/rrootage/default.nix b/pkgs/games/rrootage/default.nix
new file mode 100644
index 000000000000..8b07a38c7bb7
--- /dev/null
+++ b/pkgs/games/rrootage/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchpatch, fetchurl, SDL, SDL_mixer, bulletml }:
+
+let
+  version = "0.23a";
+  debianRevision = "12";
+  debianPatch = patchname: hash: fetchpatch {
+    name = "${patchname}.patch";
+    url = "https://sources.debian.org/data/main/r/rrootage/${version}-${debianRevision}/debian/patches/${patchname}.patch";
+    sha256 = hash;
+  };
+
+in stdenv.mkDerivation {
+  name = "rrootage-${version}";
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/rrootage/rRootage-${version}.tar.gz";
+    sha256 = "01zzg4ih3kmbhsn1p9zr7g8srv1d2dhrp8cdd86y9qq233idnkln";
+  };
+
+  patches = [
+    (debianPatch
+      "01_makefile"
+      "0wgplznx9kgb82skwqplpydbpallgrby3w662h52wky5zl0pyijj")
+    (debianPatch
+      "02_data_dir"
+      "12vw60s94by3f6k8pk45k555h4y7gzlqfds0a96nrrryammpgnq3")
+    (debianPatch
+      "03_texture_filename"
+      "1qxkxy6821xvanacf25mi43wj8nf40c1qiyavhc8av798xprpkjh")
+    (debianPatch
+      "04_home"
+      "0s15b0liv40jzjd9l4zsq688ky1yp9b1gmb1xhi3bih4y7q9awdz")
+    (debianPatch
+      "05_gcc"
+      "06ihgbfrklabs7cb6216w1jjb9sglv86iagzhhmyydwyph4fb782")
+    (debianPatch
+      "06_rrootage_highres"
+      "0ifjmh236yiv3g896nfwwydgcnq3njdb8ldah7s3jxp3xkpvwcga")
+    (debianPatch
+      "07_use_system_bulletml"
+      "1sxsl1yzx3msvz8mf0jk1vnahqb1ahq9drm391idgh0afy77l6j7")
+    (debianPatch
+      "08_windowed_mode"
+      "0knx4g445ngilsz4dvdkq69f5f8i2xv2fnmdmq037xd5rhfg0b23")
+    (debianPatch
+      "09_rootage_make_highres_default"
+      "1zqz8s54rl8jmqmvdi9c3ayfcma6qkbfkx5vw0fzyn268wcs022p")
+    (debianPatch
+      "10_deg_out_of_range"
+      "1wr76az4rlv1gaj9xdknzqcjazw6h8myqw6y3753q259hxbq4cah")
+  ];
+  postPatch = ''
+    substituteInPlace "src/screen.c" --replace "/usr/share/games/rrootage" "$out/share/games/rrootage"
+    substituteInPlace "src/soundmanager.c" --replace "/usr/share/games/rrootage" "$out/share/games/rrootage"
+    substituteInPlace "src/barragemanager.cc" --replace "/usr/share/games/rrootage" "$out/share/games/rrootage"
+  '';
+
+  buildInputs = [ SDL SDL_mixer bulletml ];
+  makeFlags = [ "-C src" "-f makefile.lin" ];
+  hardeningDisable = [ "stackprotector" "fortify" ]; # buffer overflow without this
+
+  installPhase = ''
+    install -d "$out"/share/games
+    cp -r rr_share "$out"/share/games/rrootage
+    install -D src/rrootage "$out"/bin/rrootage
+
+    install -D -m 644 readme.txt "$out"/share/licenses/rrootage/README.jp
+    install -m 644 readme_e.txt "$out"/share/licenses/rrootage/README.en
+
+    install -D -m 644 readme.txt "$out"/share/doc/rrootage/README.jp
+    install -m 644 readme_e.txt "$out"/share/doc/rrootage/README.en
+    install -m 644 readme_linux "$out"/share/doc/rrootage/README
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Abstract shooter created by Kenta Cho";
+    homepage = "http://rrootage.sourceforge.net/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index c44a166268cc..4de5f6608186 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -3,6 +3,7 @@
 , withJava ? false
 , withPrimus ? false
 , extraPkgs ? pkgs: [ ] # extra packages to add to targetPkgs
+, extraProfile ? "" # string to append to profile
 , nativeOnly ? false
 , runtimeOnly ? false
 }:
@@ -178,7 +179,7 @@ in buildFHSUserEnv rec {
 
   profile = ''
     export STEAM_RUNTIME=${if nativeOnly then "0" else "/steamrt"}
-  '';
+  '' + extraProfile;
 
   runScript = writeScript "steam-wrapper.sh" ''
     #!${stdenv.shell}