about 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/airshipper/default.nix25
-rw-r--r--pkgs/games/bsdgames/default.nix5
-rw-r--r--pkgs/games/devilutionx/default.nix6
-rw-r--r--pkgs/games/dwarf-fortress/themes/default.nix2
-rw-r--r--pkgs/games/factorio/versions.json24
-rw-r--r--pkgs/games/freedroidrpg/default.nix11
-rw-r--r--pkgs/games/gcompris/default.nix24
-rw-r--r--pkgs/games/gnonograms/default.nix10
-rw-r--r--pkgs/games/katago/default.nix6
-rw-r--r--pkgs/games/klavaro/default.nix14
-rw-r--r--pkgs/games/klavaro/icons.patch146
-rw-r--r--pkgs/games/klavaro/trans_lang_get_similar.patch71
-rw-r--r--pkgs/games/lunar-client/default.nix8
-rw-r--r--pkgs/games/openxcom/default.nix1
-rw-r--r--pkgs/games/polymc/default.nix11
-rw-r--r--pkgs/games/rare/default.nix64
-rw-r--r--pkgs/games/spring/springlobby.nix1
-rw-r--r--pkgs/games/steam/fhsenv.nix10
-rw-r--r--pkgs/games/terraria-server/default.nix4
-rw-r--r--pkgs/games/tuxpaint/default.nix26
-rw-r--r--pkgs/games/vintagestory/default.nix4
-rw-r--r--pkgs/games/xsnow/default.nix4
22 files changed, 408 insertions, 69 deletions
diff --git a/pkgs/games/airshipper/default.nix b/pkgs/games/airshipper/default.nix
index 1fe33a86f978..4fc37b0ca25c 100644
--- a/pkgs/games/airshipper/default.nix
+++ b/pkgs/games/airshipper/default.nix
@@ -1,7 +1,9 @@
 { lib
 , rustPlatform
 , fetchFromGitLab
+, fetchpatch
 , openssl
+, libGL
 , vulkan-loader
 , wayland
 , wayland-protocols
@@ -16,16 +18,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "airshipper";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitLab {
     owner = "Veloren";
     repo = "airshipper";
     rev = "v${version}";
-    sha256 = "sha256-m3H2FE1DoV/uk9PGgf9PCagwmWWSQO/gCi7zpS02/WY=";
+    sha256 = "sha256-nOE9ZNHxLEAnMkuBSpxmeq3DxkRIlcoase6AxU+eFug=";
   };
 
-  cargoSha256 = "sha256-ddy4TjT/ia+sLBnpwcXBVUzAS07ar+Jjc04KS5/arlU=";
+  patches = [
+    # this *should* be merged in time for the release following 0.7.0
+    (fetchpatch {
+      url = "https://github.com/veloren/Airshipper/commit/97fc986ab4cbf59f2c764f647710f19db86031b4.patch";
+      hash = "sha256-Sg5et+yP6Z44wV/t9zqKLpg1C0cq6rV+3WrzAH4Za3U=";
+    })
+  ];
+
+  cargoSha256 = "sha256-s3seKVEhXyOVlt3a8cubzRWoB4SVQpdCmq12y0FpDUw=";
 
   buildInputs = [
     openssl
@@ -40,14 +50,14 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
   postInstall = ''
-    mkdir -p "$out/share/applications" && mkdir -p "$out/share/icons"
-    cp "client/assets/net.veloren.airshipper.desktop" "$out/share/applications"
-    cp "client/assets/logo.ico" "$out/share/icons/net.veloren.airshipper.ico"
+    install -Dm444 -t "$out/share/applications" "client/assets/net.veloren.airshipper.desktop"
+    install -Dm444    "client/assets/logo.ico"  "$out/share/icons/net.veloren.airshipper.ico"
   '';
 
   postFixup =
     let
       libPath = lib.makeLibraryPath [
+        libGL
         vulkan-loader
         wayland
         wayland-protocols
@@ -57,7 +67,8 @@ rustPlatform.buildRustPackage rec {
         libXi
         libXcursor
       ];
-    in ''
+    in
+    ''
       patchelf --set-rpath "${libPath}" "$out/bin/airshipper"
     '';
 
diff --git a/pkgs/games/bsdgames/default.nix b/pkgs/games/bsdgames/default.nix
index 837fb4e17682..c837ba39b444 100644
--- a/pkgs/games/bsdgames/default.nix
+++ b/pkgs/games/bsdgames/default.nix
@@ -5,13 +5,14 @@ stdenv.mkDerivation rec {
   version = "2.17";
 
   src = fetchurl {
-    url = "ftp://metalab.unc.edu/pub/Linux/games/bsd-games-${version}.tar.gz";
-    sha256 = "0q7zdyyfvn15y0w4g54kq3gza89h61py727m8slmw73cxx594vq6";
+    url = "mirror://ibiblioPubLinux/games/${pname}-${version}.tar.gz";
+    hash = "sha256-Bm+SSu9sHF6pRvWI428wMCH138CTlEc48CXY7bxv/2A=";
   };
 
   buildInputs = [ ncurses openssl flex bison ];
 
   patches = [
+    # Remove UTMPX support on Makefrag file
     (fetchurl {
       url = "http://svn.exactcode.de/t2/trunk/package/games/bsd-games/dm-noutmpx.patch";
       sha256 = "1k3qp3jj0dksjr4dnppv6dvkwslrgk9c7p2n9vipqildpxgqp7w2";
diff --git a/pkgs/games/devilutionx/default.nix b/pkgs/games/devilutionx/default.nix
index 7a6dc2808805..ac76ab5ad189 100644
--- a/pkgs/games/devilutionx/default.nix
+++ b/pkgs/games/devilutionx/default.nix
@@ -93,8 +93,10 @@ stdenv.mkDerivation rec {
     install -Dm755 -t $out/bin devilutionx
     install -Dm755 -t $out/share/diasurgical/devilutionx devilutionx.mpq
     install -Dm755 -t $out/share/applications ../Packaging/nix/devilutionx-hellfire.desktop ../Packaging/nix/devilutionx.desktop
-    install -Dm755 ../Packaging/resources/icon.png $out/share/icons/hicolor/512x512/apps/devilution.png
-    install -Dm755 ../Packaging/resources/hellfire.png $out/share/icons/hicolor/512x512/apps/devilution-hellfire.png
+    install -Dm755 ../Packaging/resources/icon.png $out/share/icons/hicolor/512x512/apps/devilutionx.png
+    install -Dm755 ../Packaging/resources/hellfire.png $out/share/icons/hicolor/512x512/apps/devilutionx-hellfire.png
+    install -Dm755 ../Packaging/resources/icon_32.png $out/share/icons/hicolor/32x32/apps/devilutionx.png
+    install -Dm755 ../Packaging/resources/hellfire_32.png $out/share/icons/hicolor/32x32/apps/devilutionx-hellfire.png
   '') + ''
 
     runHook postInstall
diff --git a/pkgs/games/dwarf-fortress/themes/default.nix b/pkgs/games/dwarf-fortress/themes/default.nix
index c6987a1d16bd..d2e2ec5fd19b 100644
--- a/pkgs/games/dwarf-fortress/themes/default.nix
+++ b/pkgs/games/dwarf-fortress/themes/default.nix
@@ -6,7 +6,7 @@ listToAttrs (map
   (v: {
     inherit (v) name;
     value = fetchFromGitHub {
-      name = "${v.name}-${v.version}";
+      name = "${v.name}-theme-${v.version}";
       owner = "DFgraphics";
       repo = v.name;
       rev = v.version;
diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json
index 663dffe24982..3c083c555d27 100644
--- a/pkgs/games/factorio/versions.json
+++ b/pkgs/games/factorio/versions.json
@@ -2,12 +2,12 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.53.tar.xz",
+        "name": "factorio_alpha_x64-1.1.56.tar.xz",
         "needsAuth": true,
-        "sha256": "1l5sk9rhf4pq9l87w5sv4a1ikqx8rpby5hf4xn7sdsm9mshd3wyw",
+        "sha256": "1i9mcq8m48ar0b3x53zgi5x9rsaddmlm2wqaphyf81xampl7ivcx",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.53/alpha/linux64",
-        "version": "1.1.53"
+        "url": "https://factorio.com/get-download/1.1.56/alpha/linux64",
+        "version": "1.1.56"
       },
       "stable": {
         "name": "factorio_alpha_x64-1.1.53.tar.xz",
@@ -20,12 +20,12 @@
     },
     "demo": {
       "experimental": {
-        "name": "factorio_demo_x64-1.1.53.tar.xz",
+        "name": "factorio_demo_x64-1.1.56.tar.xz",
         "needsAuth": false,
-        "sha256": "0m3mk296w4azma2v5z6pay1caqql2jfnlcyyd120laxl4rdg2k76",
+        "sha256": "0g1gphysh79h1frcjpfd5i3fpi05y8mq9gwmgnmalmr56w5n4qlz",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.53/demo/linux64",
-        "version": "1.1.53"
+        "url": "https://factorio.com/get-download/1.1.56/demo/linux64",
+        "version": "1.1.56"
       },
       "stable": {
         "name": "factorio_demo_x64-1.1.53.tar.xz",
@@ -38,12 +38,12 @@
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.53.tar.xz",
+        "name": "factorio_headless_x64-1.1.56.tar.xz",
         "needsAuth": false,
-        "sha256": "18ra52h32nhdqxz6vagp9nw3an5pgamariy0ny050xr2xpidw3v1",
+        "sha256": "174fvi9slpdp3y8j46w0w0ays7i7gy98il74xx5wxh7s94zb1b68",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.53/headless/linux64",
-        "version": "1.1.53"
+        "url": "https://factorio.com/get-download/1.1.56/headless/linux64",
+        "version": "1.1.56"
       },
       "stable": {
         "name": "factorio_headless_x64-1.1.53.tar.xz",
diff --git a/pkgs/games/freedroidrpg/default.nix b/pkgs/games/freedroidrpg/default.nix
index e0582c524eca..84fd9c154a24 100644
--- a/pkgs/games/freedroidrpg/default.nix
+++ b/pkgs/games/freedroidrpg/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, pkg-config, gettext, python3, SDL, SDL_image, SDL_gfx, SDL_mixer, libogg, libvorbis, lua5_3, libjpeg, libpng, zlib, libiconv }:
+{ fetchurl, fetchpatch, lib, stdenv, pkg-config, gettext, python3, SDL, SDL_image, SDL_gfx, SDL_mixer, libogg, libvorbis, lua5_3, libjpeg, libpng, zlib, libiconv }:
 
 let
   version = "0.16.1";
@@ -11,6 +11,15 @@ in stdenv.mkDerivation {
     sha256 = "0n4kn38ncmcy3lrxmq8fjry6c1z50z4q1zcqfig0j4jb0dsz2va2";
   };
 
+  patches = [
+    # Pull upstream fix for -fno-common tolchains.
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://gitlab.com/freedroid/freedroid-src/-/commit/e610d427374226b79da5258d979936459f30c761.patch";
+      sha256 = "1s7sw4dkc7b6i72j6x47driq6v0k3wss48l9ivd4fw40n3iaxjb1";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config gettext python3 ];
 
   buildInputs = [
diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix
index c4c737d228cc..5343bae4a6cb 100644
--- a/pkgs/games/gcompris/default.nix
+++ b/pkgs/games/gcompris/default.nix
@@ -18,11 +18,11 @@
 
 mkDerivation rec {
   pname = "gcompris";
-  version = "2.1";
+  version = "2.3";
 
   src = fetchurl {
-    url = "http://gcompris.net/download/qt/src/gcompris-qt-${version}.tar.xz";
-    sha256 = "sha256-ljOY/uybXzfwOFmhBXB4sC4Vn/C8BP1BeUUPpdHuQwo=";
+    url = "https://download.kde.org/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
+    sha256 = "sha256-UgWLp5IVqbeFFCO/PRFJ/X1sPm7nSkagVcgEp5SdzGI=";
   };
 
   cmakeFlags = [
@@ -32,15 +32,24 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake gettext ninja qttools ];
 
   buildInputs = [
-    qmlbox2d qtbase qtdeclarative qtgraphicaleffects qtmultimedia qtquickcontrols qtsensors qtxmlpatterns
+    qmlbox2d
+    qtdeclarative
+    qtgraphicaleffects
+    qtmultimedia
+    qtquickcontrols
+    qtsensors
+    qtxmlpatterns
   ] ++ (with gst_all_1; [
-    gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
   ]);
 
   postInstall = ''
-    install -Dm444 ../org.kde.gcompris.desktop        $out/share/applications/gcompris.desktop
-    install -Dm444 ../images/256-apps-gcompris-qt.png $out/share/icons/hicolor/256x256/apps/gcompris-qt.png
+    install -Dm444 ../org.kde.gcompris.desktop     -t $out/share/applications
     install -Dm444 ../org.kde.gcompris.appdata.xml -t $out/share/metainfo
+    install -Dm444 ../images/256-apps-gcompris-qt.png $out/share/icons/hicolor/256x256/apps/gcompris-qt.png
 
     qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
   '';
@@ -49,6 +58,7 @@ mkDerivation rec {
     description = "A high quality educational software suite, including a large number of activities for children aged 2 to 10";
     homepage = "https://gcompris.net/";
     license = licenses.gpl3Plus;
+    mainProgram = "gcompris-qt";
     maintainers = with maintainers; [ guibou ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/gnonograms/default.nix b/pkgs/games/gnonograms/default.nix
index cfe1085ca27b..21f522d3418f 100644
--- a/pkgs/games/gnonograms/default.nix
+++ b/pkgs/games/gnonograms/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , vala
 , meson
 , ninja
@@ -27,6 +28,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-2uXaybpCAm9cr0o7bqfhgD7mMNPwtv1X/PgnFnSDOl0=";
   };
 
+  patches = [
+    # Fix build with meson 0.61, can be removed on next release
+    # https://github.com/jeremypw/gnonograms/pull/45
+    (fetchpatch {
+      url = "https://github.com/jeremypw/gnonograms/commit/0e90d8ff42d64a94002ec8500889bc4d7e06c1b6.patch";
+      sha256 = "sha256-G/yqsZFmOA69A3E2CROMYAS5vmok/K5l1S/M2m8DMh4=";
+    })
+  ];
+
   postPatch = ''
     patchShebangs meson/post_install.py
   '';
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index abfeca69e82d..3265f3d63382 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -29,14 +29,14 @@ assert !enableGPU -> (
 # of gcc.  If you need to use cuda10, please override stdenv with gcc8Stdenv
 stdenv.mkDerivation rec {
   pname = "katago";
-  version = "1.10.0";
-  githash = "ff49d04ad6bcfa056c63492439a41e2f3bce0847";
+  version = "1.11.0";
+  githash = "d8d0cd76cf73df08af3d7061a639488ae9494419";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
     rev = "v${version}";
-    sha256 = "sha256-ZLJNNjZ5RdOktWDp88d/ItpokANl2EJ0Gbt9oMGm1Og=";
+    sha256 = "sha256-TZKkkYe2PPzgPhItBZBSJDwU3anhsujuCGIYru55OtU=";
   };
 
   fakegit = writeShellScriptBin "git" "echo ${githash}";
diff --git a/pkgs/games/klavaro/default.nix b/pkgs/games/klavaro/default.nix
index 2a8f68ddd2cc..6ea029176482 100644
--- a/pkgs/games/klavaro/default.nix
+++ b/pkgs/games/klavaro/default.nix
@@ -2,23 +2,31 @@
 , fetchurl
 , makeWrapper
 , curl
+, espeak
 , file
 , gtk3
+, gtkdatabox
 , intltool
 , pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "klavaro";
-  version = "3.11";
+  version = "3.13";
 
   src = fetchurl {
     url = "mirror://sourceforge/klavaro/${pname}-${version}.tar.bz2";
-    sha256 = "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w";
+    sha256 = "0z6c3lqikk50mkz3ipm93l48qj7b98lxyip8y6ndg9y9k0z0n878";
   };
 
   nativeBuildInputs = [ intltool makeWrapper pkg-config ];
-  buildInputs = [ curl gtk3 ];
+  buildInputs = [ curl gtk3 gtkdatabox ];
+
+  postPatch = ''
+    substituteInPlace src/tutor.c --replace '"espeak ' '"${espeak}/bin/espeak '
+  '';
+
+  patches = [ ./icons.patch ./trans_lang_get_similar.patch ];
 
   postInstall = ''
     wrapProgram $out/bin/klavaro \
diff --git a/pkgs/games/klavaro/icons.patch b/pkgs/games/klavaro/icons.patch
new file mode 100644
index 000000000000..1717fdf44e68
--- /dev/null
+++ b/pkgs/games/klavaro/icons.patch
@@ -0,0 +1,146 @@
+--- a/data/klavaro.glade	(revision 137)
++++ b/data/klavaro.glade	(working copy)
+@@ -311,7 +311,7 @@
+                       <object class="GtkImage" id="image24">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-delete</property>
++                        <property name="icon-name">edit-delete</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
+@@ -708,7 +708,7 @@
+                     <property name="can-default">True</property>
+                     <property name="has-default">True</property>
+                     <property name="tooltip-text" translatable="yes">Drag and drop text here to practice with it.</property>
+-                    <property name="secondary-icon-name">gtk-clear</property>
++                    <property name="secondary-icon-name">edit-clear</property>
+                     <property name="secondary-icon-tooltip-text" translatable="yes">Press here to restart the exercise. Hotkey: [Ctrl-R]</property>
+                     <property name="secondary-icon-tooltip-markup" translatable="yes">Press here to restart the exercise. Hotkey: [Ctrl-R]</property>
+                     <signal name="activate" handler="on_entry_mesg_activate" after="yes" swapped="no"/>
+@@ -1232,7 +1232,7 @@
+                       <object class="GtkImage" id="image27">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-delete</property>
++                        <property name="icon-name">edit-delete</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
+@@ -1352,7 +1352,7 @@
+                       <object class="GtkImage" id="image23">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-open</property>
++                        <property name="icon-name">document-open</property>
+                       </object>
+                       <packing>
+                         <property name="expand">True</property>
+@@ -1510,7 +1510,7 @@
+                       <object class="GtkImage" id="image11">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-open</property>
++                        <property name="icon-name">document-open</property>
+                         <property name="icon_size">2</property>
+                       </object>
+                       <packing>
+@@ -1557,7 +1557,7 @@
+                       <object class="GtkImage" id="image6">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-paste</property>
++                        <property name="icon-name">edit-paste</property>
+                         <property name="icon_size">2</property>
+                       </object>
+                       <packing>
+@@ -1604,7 +1604,7 @@
+                       <object class="GtkImage" id="image19">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-delete</property>
++                        <property name="icon-name">edit-delete</property>
+                         <property name="icon_size">2</property>
+                       </object>
+                       <packing>
+@@ -2051,7 +2051,7 @@
+                       <object class="GtkImage" id="image14">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-delete</property>
++                        <property name="icon-name">edit-delete</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
+@@ -2343,7 +2343,7 @@
+                   <object class="GtkImage" id="image3">
+                     <property name="visible">True</property>
+                     <property name="can-focus">False</property>
+-                    <property name="icon-name">gtk-media-rewind</property>
++                    <property name="icon-name">media-seek-backward</property>
+                     <property name="icon_size">1</property>
+                   </object>
+                 </child>
+@@ -2418,7 +2418,7 @@
+                       <object class="GtkImage" id="image20">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-go-back</property>
++                        <property name="icon-name">go-previous</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
+@@ -2469,7 +2469,7 @@
+                       <object class="GtkImage" id="image18">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-go-forward</property>
++                        <property name="icon-name">go-next</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
+@@ -2577,7 +2577,7 @@
+                       <object class="GtkImage" id="image13">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-save</property>
++                        <property name="icon-name">document-save</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
+@@ -2825,7 +2825,7 @@
+                       <object class="GtkImage" id="image_basic">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-strikethrough</property>
++                        <property name="icon-name">format-text-strikethrough</property>
+                         <property name="icon_size">6</property>
+                       </object>
+                       <packing>
+@@ -2901,7 +2901,7 @@
+                       <object class="GtkImage" id="image_adapt">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-bold</property>
++                        <property name="icon-name">format-text-bold</property>
+                         <property name="icon_size">6</property>
+                       </object>
+                       <packing>
+@@ -3630,7 +3630,7 @@
+                       <object class="GtkImage" id="image_top10_publish">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-goto-top</property>
++                        <property name="icon-name">go-top</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
+@@ -3678,7 +3678,7 @@
+                       <object class="GtkImage" id="image_top10_update">
+                         <property name="visible">True</property>
+                         <property name="can-focus">False</property>
+-                        <property name="icon-name">gtk-goto-bottom</property>
++                        <property name="icon-name">go-bottom</property>
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
diff --git a/pkgs/games/klavaro/trans_lang_get_similar.patch b/pkgs/games/klavaro/trans_lang_get_similar.patch
new file mode 100644
index 000000000000..3b6644c5f7f7
--- /dev/null
+++ b/pkgs/games/klavaro/trans_lang_get_similar.patch
@@ -0,0 +1,71 @@
+--- a/src/translation.c	(revision 137)
++++ b/src/translation.c	(working copy)
+@@ -257,23 +257,23 @@
+  * Private auxiliar function
+  */
+ static gboolean
+-trans_lang_get_similar (gchar * test)
++trans_lang_get_similar (gchar ** test)
+ {
+ 	gint i;
+ 	gchar aux_code_2[3];
+ 
+ 	/* Prefer C over en_GB for English variants other than en_GB. (Debian patch 02) */
+-	if (g_str_has_prefix (test, "en"))
++	if (g_str_has_prefix (*test, "en"))
+ 	{
+-		g_free (test);
+-		test = g_strdup ("C");
++		g_free (*test);
++		*test = g_strdup ("C");
+ 		return (TRUE);
+ 	}
+ 
+-	if (g_str_equal (test, "C"))
++	if (g_str_equal (*test, "C"))
+ 		return TRUE;
+ 
+-	strncpy (aux_code_2, test, 2);
++	strncpy (aux_code_2, *test, 2);
+ 	aux_code_2[2] = '\0';
+ 
+ 	for (i = 0; i < lang_num; i++)
+@@ -280,15 +280,15 @@
+ 	{
+ 		if (strstr (lang[i].code, aux_code_2))
+ 		{
+-			g_free (test);
+-			test = g_strdup (lang[i].code);
++			g_free (*test);
++			*test = g_strdup (lang[i].code);
+ 			break;
+ 		}
+ 	}
+-	if (i == lang_num && g_str_has_prefix (test, "en"))
++	if (i == lang_num && g_str_has_prefix (*test, "en"))
+ 	{
+-		g_free (test);
+-		test = g_strdup ("C");
++		g_free (*test);
++		*test = g_strdup ("C");
+ 		return (TRUE);
+ 	}
+ 	return (i == lang_num ? FALSE : TRUE);
+@@ -356,7 +356,7 @@
+ 					lang_ok = (i == 0 ? TRUE : FALSE);
+ 					break;
+ 				}
+-				lang_ok = trans_lang_get_similar (tmp_code);
++				lang_ok = trans_lang_get_similar (&tmp_code);
+ 				if (lang_ok == TRUE)
+ 					break;
+ 				g_free (tmp_code);
+@@ -368,7 +368,7 @@
+ 		tmp_code = g_win32_getlocale ();
+ 		lang_ok = trans_lang_is_available (tmp_code);
+ 		if (lang_ok == FALSE)
+-			lang_ok = trans_lang_get_similar (tmp_code);
++			lang_ok = trans_lang_get_similar (&tmp_code);
+ #endif
+ 	}
+ 	if (tmp_code == NULL)
diff --git a/pkgs/games/lunar-client/default.nix b/pkgs/games/lunar-client/default.nix
index fbebe85cf007..17df2565b866 100644
--- a/pkgs/games/lunar-client/default.nix
+++ b/pkgs/games/lunar-client/default.nix
@@ -2,13 +2,13 @@
 
 let
   name = "lunar-client";
-  version = "2.9.3";
+  version = "2.10.0";
 
   desktopItem = makeDesktopItem {
     name = "lunar-client";
     exec = "lunar-client";
     icon = "lunarclient";
-    comment = "Minecraft 1.7, 1.8, 1.12, 1.15, and 1.16 Client";
+    comment = "Minecraft 1.7, 1.8, 1.12, 1.15, 1.16, 1.17, and 1.18 Client";
     desktopName = "Lunar Client";
     genericName = "Minecraft Client";
     categories = [ "Game" ];
@@ -21,7 +21,7 @@ let
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
     name = "lunar-client.AppImage";
-    sha256 = "sha256-2wlC+OAG2lvUB3yPxppNhhvNDZv4gxrNKpww9vAfStI=";
+    sha256 = "1kfi3rgy401ll3gn9k30j0a1zds1ghl5g2ibfwlsnr826nckfmzw";
   };
 in
 appimageTools.wrapType1 rec {
@@ -36,7 +36,7 @@ appimageTools.wrapType1 rec {
   extraPkgs = pkgs: [ pkgs.libpulseaudio ];
 
   meta = with lib; {
-    description = "Minecraft 1.7, 1.8, 1.12, 1.15, and 1.16 Client";
+    description = "Minecraft 1.7, 1.8, 1.12, 1.15, 1.16, 1.17, and 1.18 Client";
     homepage = "https://www.lunarclient.com/";
     license = with licenses; [ unfree ];
     maintainers = with maintainers; [ zyansheep Technical27 ];
diff --git a/pkgs/games/openxcom/default.nix b/pkgs/games/openxcom/default.nix
index 8c115e9b3120..b877c3aac2fd 100644
--- a/pkgs/games/openxcom/default.nix
+++ b/pkgs/games/openxcom/default.nix
@@ -18,7 +18,6 @@ stdenv.mkDerivation {
   meta = {
     description = "Open source clone of UFO: Enemy Unknown";
     homepage = "https://openxcom.org";
-    repositories.git = "https://github.com/SupSuper/OpenXcom.git";
     maintainers = [ lib.maintainers.cpages ];
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3;
diff --git a/pkgs/games/polymc/default.nix b/pkgs/games/polymc/default.nix
index 0d63a8ad5f91..0ec60d617f02 100644
--- a/pkgs/games/polymc/default.nix
+++ b/pkgs/games/polymc/default.nix
@@ -11,18 +11,20 @@
 , libpulseaudio
 , qtbase
 , libGL
+, glfw
+, openal
 , msaClientID ? ""
 }:
 
 mkDerivation rec {
   pname = "polymc";
-  version = "1.0.6";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "PolyMC";
     repo = "PolyMC";
     rev = version;
-    sha256 = "sha256-KgLWbZxtxTpuFdMOJNyADYw9rMWoLgczrbSrH4qv6NI=";
+    sha256 = "sha256-p5vbpNZI/JiQJclEo/Pu/46qVul+3DAzaoow8jabHrI=";
     fetchSubmodules = true;
   };
 
@@ -36,7 +38,7 @@ mkDerivation rec {
       --replace 'scanJavaDir("/usr/lib32/jvm")' 'javas.append("${jdk8}/lib/openjdk/bin/java")'
   '';
 
-  cmakeFlags = [ "-DLauncher_LAYOUT=lin-system" ] ++
+  cmakeFlags = [ "-DLauncher_PORTABLE=0" ] ++
                lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
 
   dontWrapQtApps = true;
@@ -50,6 +52,8 @@ mkDerivation rec {
       libXxf86vm
       libpulseaudio
       libGL
+      glfw
+      openal
     ];
   in ''
     # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
@@ -68,6 +72,7 @@ mkDerivation rec {
       their associated options with a simple interface.
     '';
     platforms = platforms.linux;
+    changelog = "https://github.com/PolyMC/PolyMC/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ cleverca22 starcraft66 ];
   };
diff --git a/pkgs/games/rare/default.nix b/pkgs/games/rare/default.nix
new file mode 100644
index 000000000000..9bf3aca75422
--- /dev/null
+++ b/pkgs/games/rare/default.nix
@@ -0,0 +1,64 @@
+{ lib, fetchPypi, buildPythonApplication, makeDesktopItem, copyDesktopItems, qt5
+, pillow, psutil, pypresence, pyqt5, python, qtawesome, requests }:
+
+buildPythonApplication rec {
+  pname = "rare";
+  version = "1.8.8";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "Rare";
+    sha256 = "sha256-00CtvBqSrT9yJUHZ5529VrIQtCOYkHRc8+rJHmrTSpg=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    qt5.wrapQtAppsHook
+  ];
+
+  propagatedBuildInputs = [
+    pillow
+    psutil
+    pypresence
+    pyqt5
+    qtawesome
+    requests
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = pname;
+      exec = "rare";
+      icon = "Rare";
+      comment = meta.description;
+      desktopName = "Rare";
+      genericName = "Rare (Epic Games Launcher Open Source Alternative)";
+    })
+  ];
+
+  dontWrapQtApps = true;
+
+  preBuild = ''
+    # Solves "PermissionError: [Errno 13] Permission denied: '/homeless-shelter'"
+    export HOME=$(mktemp -d)
+  '';
+
+  postInstall = ''
+    install -Dm644 $out/${python.sitePackages}/rare/resources/images/Rare.png -t $out/share/pixmaps/
+  '';
+
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  '';
+
+  # Project has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "GUI for Legendary, an Epic Games Launcher open source alternative";
+    homepage = "https://github.com/Dummerle/Rare";
+    maintainers = with maintainers; [ wolfangaukang ];
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix
index bf603e2f5308..55c61c4cbd82 100644
--- a/pkgs/games/spring/springlobby.nix
+++ b/pkgs/games/spring/springlobby.nix
@@ -34,7 +34,6 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://springlobby.info/";
-    repositories.git = "git://github.com/springlobby/springlobby.git";
     description = "Cross-platform lobby client for the Spring RTS project";
     license = licenses.gpl2;
     maintainers = with maintainers; [ qknight domenkozar ];
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index cd2046b23830..c5fba68b22a1 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -49,6 +49,7 @@ let
   # Zachtronics and a few other studios expect STEAM_LD_LIBRARY_PATH to be present
   exportLDPath = ''
     export LD_LIBRARY_PATH=${lib.concatStringsSep ":" ldPath}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
+    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
   '';
 
   # bootstrap.tar.xz has 444 permissions, which means that simple deletes fail
@@ -130,7 +131,6 @@ in buildFHSUserEnv rec {
     rtmpdump
 
     # dependencies for mesa drivers, needed inside pressure-vessel
-    mesa.drivers
     mesa.llvmPackages.llvm.lib
     vulkan-loader
     expat
@@ -228,9 +228,6 @@ in buildFHSUserEnv rec {
         export TZ="$new_TZ"
       fi
     fi
-
-    # XDG_DATA_DIRS is used by pressure-vessel and vulkan loaders to find the corresponding icd
-    export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/run/opengl-driver/share:/run/opengl-driver-32/share
   '' + extraProfile;
 
   runScript = writeScript "steam-wrapper.sh" ''
@@ -252,7 +249,7 @@ in buildFHSUserEnv rec {
       fi
     fi
 
-    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+    ${exportLDPath}
     ${fixBootstrap}
     exec steam "$@"
   '';
@@ -284,7 +281,8 @@ in buildFHSUserEnv rec {
         exit 1
       fi
       shift
-      export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+
+      ${exportLDPath}
       ${fixBootstrap}
       exec -- "$run" "$@"
     '';
diff --git a/pkgs/games/terraria-server/default.nix b/pkgs/games/terraria-server/default.nix
index 0100418326dc..cd4895fc0643 100644
--- a/pkgs/games/terraria-server/default.nix
+++ b/pkgs/games/terraria-server/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "terraria-server";
-  version = "1.4.3.5";
+  version = "1.4.3.6";
   urlVersion = lib.replaceChars [ "." ] [ "" ] version;
 
   src = fetchurl {
     url = "https://terraria.org/api/download/pc-dedicated-server/terraria-server-${urlVersion}.zip";
-    sha256 = "sha256-N1GnxEe0A6Wuzy08lL3CFPWjQJECGGf504FE+lnhDcw=";
+    sha256 = "sha256-OFI7U6Mqu09pIbgJQs0O+GS8jf1uVuhAVEJhYNYXrBE=";
   };
 
   buildInputs = [ file ];
diff --git a/pkgs/games/tuxpaint/default.nix b/pkgs/games/tuxpaint/default.nix
index 289b4e386be0..638fa170f50f 100644
--- a/pkgs/games/tuxpaint/default.nix
+++ b/pkgs/games/tuxpaint/default.nix
@@ -1,17 +1,21 @@
-{ lib, stdenv, fetchurl, SDL, SDL_image, SDL_ttf, SDL_mixer, libpng,
-  cairo, librsvg, gettext, libpaper, fribidi, pkg-config, gperf, imagemagick }:
+{ lib, stdenv, fetchurl, SDL, SDL_gfx, SDL_image, SDL_ttf, SDL_mixer, libpng
+, libimagequant, cairo, librsvg, gettext, libpaper, fribidi, pkg-config, gperf
+, imagemagick
+}:
 
 stdenv.mkDerivation rec {
-  version = "0.9.24";
+  version = "0.9.27";
   pname = "tuxpaint";
 
   src = fetchurl {
     url = "mirror://sourceforge/tuxpaint/${version}/${pname}-${version}.tar.gz";
-    sha256 = "06m1lg2pikfkmassfvvrbwqffwgixcmjh1li6akaldgkalpmfql7";
+    sha256 = "sha256-qyuA6J34gijNDsCmyQtJ1UPLFXqjj7kMvTop8AFAVXo=";
   };
 
-  nativeBuildInputs = [ SDL SDL_image SDL_ttf SDL_mixer libpng cairo
-    librsvg gettext libpaper fribidi pkg-config gperf imagemagick ];
+  nativeBuildInputs = [
+    SDL SDL_gfx SDL_image SDL_ttf SDL_mixer libpng cairo libimagequant librsvg
+    gettext libpaper fribidi pkg-config gperf imagemagick
+  ];
   hardeningDisable = [ "format" ];
   makeFlags = [ "GPERF=${gperf}/bin/gperf"
                 "PREFIX=$$out"
@@ -25,8 +29,8 @@ stdenv.mkDerivation rec {
 
   # stamps
   stamps = fetchurl {
-    url = "mirror://sourceforge/project/tuxpaint/tuxpaint-stamps/2014-08-23/tuxpaint-stamps-2014.08.23.tar.gz";
-    sha256 = "0rhlwrjz44wp269v3rid4p8pi0i615pzifm1ym6va64gn1bms06q";
+    url = "mirror://sourceforge/project/tuxpaint/tuxpaint-stamps/2021-11-25/tuxpaint-stamps-2021.11.25.tar.gz";
+    sha256 = "sha256-y1XuIbLSW0QO4has+rC7jZBq8cma28d+jbEe7DBYnVI=";
   };
 
   postInstall = ''
@@ -37,15 +41,17 @@ stdenv.mkDerivation rec {
 
     # Install stamps
     tar xzf $stamps
-    cd tuxpaint-stamps-2014.08.23
+    cd tuxpaint-stamps-*
     make install-all PREFIX=$out
     rm -rf $out/share/tuxpaint/stamps/military
   '';
 
+  enableParallelBuilding = true;
+
   meta = {
     description = "Open Source Drawing Software for Children";
     homepage = "http://www.tuxpaint.org/";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ woffs ];
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix
index a14e80759b53..e6e7d28e17bd 100644
--- a/pkgs/games/vintagestory/default.nix
+++ b/pkgs/games/vintagestory/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vintagestory";
-  version = "1.16.3";
+  version = "1.16.4";
 
   src = fetchurl {
     url = "https://cdn.vintagestory.at/gamefiles/stable/vs_archive_${version}.tar.gz";
-    sha256 = "sha256-PpvTHG/EBKBhtlgIrAz/B+U1aHbZURN2cWTlZ/DkZQs=";
+    sha256 = "sha256-wdwQ1Dv0872nEOYIB+rEzYtG5rnSw8DZgoSlSvCvtrI=";
   };
 
   nativeBuildInputs = [ makeWrapper copyDesktopItems ];
diff --git a/pkgs/games/xsnow/default.nix b/pkgs/games/xsnow/default.nix
index ee7cbd8fb48d..ff34bfe729ba 100644
--- a/pkgs/games/xsnow/default.nix
+++ b/pkgs/games/xsnow/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xsnow";
-  version = "3.3.6";
+  version = "3.4.4";
 
   src = fetchurl {
     url = "https://ratrabbit.nl/downloads/xsnow/xsnow-${version}.tar.gz";
-    sha256 = "sha256-rTJO1btS1VBHatj9Yr2R6vZBUPQtCB1Aa6AD6IzwuLg=";
+    sha256 = "sha256-fPMy5AxKspFkcWphf/IjMc/ZQtayljThKxbcMtvOjRc=";
   };
 
   nativeBuildInputs = [ pkg-config ];