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/0ad/game.nix2
-rw-r--r--pkgs/games/airstrike/default.nix2
-rw-r--r--pkgs/games/amoeba/default.nix2
-rw-r--r--pkgs/games/angband/default.nix2
-rw-r--r--pkgs/games/anki/bin.nix9
-rw-r--r--pkgs/games/antsimulator/default.nix2
-rw-r--r--pkgs/games/astromenace/default.nix82
-rw-r--r--pkgs/games/atanks/default.nix2
-rw-r--r--pkgs/games/braincurses/default.nix2
-rw-r--r--pkgs/games/chiaki4deck/default.nix4
-rw-r--r--pkgs/games/chromium-bsu/default.nix4
-rw-r--r--pkgs/games/commandergenius/default.nix2
-rw-r--r--pkgs/games/construo/default.nix4
-rw-r--r--pkgs/games/crack-attack/default.nix6
-rw-r--r--pkgs/games/crrcsim/default.nix2
-rw-r--r--pkgs/games/ddnet/default.nix3
-rw-r--r--pkgs/games/domination/default.nix11
-rw-r--r--pkgs/games/doom-ports/doomseeker/default.nix2
-rw-r--r--pkgs/games/empty-epsilon/default.nix22
-rw-r--r--pkgs/games/endless-sky/default.nix4
-rw-r--r--pkgs/games/enigma/default.nix2
-rw-r--r--pkgs/games/extremetuxracer/default.nix4
-rw-r--r--pkgs/games/ezquake/default.nix2
-rw-r--r--pkgs/games/factorio/versions.json48
-rw-r--r--pkgs/games/flightgear/default.nix6
-rw-r--r--pkgs/games/freeciv/default.nix2
-rw-r--r--pkgs/games/freeorion/default.nix2
-rw-r--r--pkgs/games/freesweep/default.nix2
-rw-r--r--pkgs/games/frogatto/engine.nix2
-rw-r--r--pkgs/games/frotz/default.nix2
-rw-r--r--pkgs/games/frozen-bubble/default.nix2
-rw-r--r--pkgs/games/gl-117/default.nix6
-rw-r--r--pkgs/games/gl-gsync-demo/default.nix4
-rw-r--r--pkgs/games/gscrabble/default.nix4
-rw-r--r--pkgs/games/gtetrinet/default.nix46
-rw-r--r--pkgs/games/gweled/default.nix2
-rw-r--r--pkgs/games/hedgewars/default.nix8
-rw-r--r--pkgs/games/heroic/fhsenv.nix2
-rw-r--r--pkgs/games/hyperrogue/default.nix6
-rw-r--r--pkgs/games/instead/default.nix2
-rw-r--r--pkgs/games/katago/default.nix2
-rw-r--r--pkgs/games/keeperrl/default.nix2
-rw-r--r--pkgs/games/koboredux/default.nix2
-rw-r--r--pkgs/games/liberal-crime-squad/default.nix2
-rw-r--r--pkgs/games/lincity/ng.nix2
-rw-r--r--pkgs/games/linthesia/default.nix2
-rw-r--r--pkgs/games/manaplus/default.nix2
-rw-r--r--pkgs/games/mar1d/default.nix16
-rw-r--r--pkgs/games/megaglest/default.nix4
-rw-r--r--pkgs/games/methane/default.nix4
-rw-r--r--pkgs/games/mindustry/default.nix14
-rw-r--r--pkgs/games/minecraft-servers/derivation.nix2
-rw-r--r--pkgs/games/minetest/default.nix8
-rw-r--r--pkgs/games/moon-buggy/default.nix2
-rw-r--r--pkgs/games/netris/default.nix2
-rw-r--r--pkgs/games/newtonwars/default.nix6
-rw-r--r--pkgs/games/nexuiz/default.nix2
-rw-r--r--pkgs/games/ninvaders/default.nix2
-rw-r--r--pkgs/games/opendune/default.nix2
-rw-r--r--pkgs/games/openjk/default.nix2
-rw-r--r--pkgs/games/openra_2019/common.nix2
-rw-r--r--pkgs/games/openra_2019/default.nix3
-rw-r--r--pkgs/games/openra_2019/packages.nix3
-rw-r--r--pkgs/games/opensupaplex/default.nix50
-rw-r--r--pkgs/games/openttd/default.nix2
-rw-r--r--pkgs/games/openttd/grfcodec.nix2
-rw-r--r--pkgs/games/openttd/nml.nix2
-rw-r--r--pkgs/games/osu-lazer/bin.nix2
-rw-r--r--pkgs/games/papermc/default.nix4
-rw-r--r--pkgs/games/papermc/derivation.nix2
-rw-r--r--pkgs/games/papermc/versions.json8
-rw-r--r--pkgs/games/principia/default.nix4
-rw-r--r--pkgs/games/prismlauncher/default.nix90
-rw-r--r--pkgs/games/prismlauncher/wrapper.nix130
-rw-r--r--pkgs/games/qgo/default.nix2
-rw-r--r--pkgs/games/qqwing/default.nix2
-rw-r--r--pkgs/games/quake2/yquake2/default.nix2
-rw-r--r--pkgs/games/quake3/quake3e/default.nix2
-rw-r--r--pkgs/games/quantumminigolf/default.nix2
-rw-r--r--pkgs/games/rftg/default.nix2
-rw-r--r--pkgs/games/rocksndiamonds/default.nix2
-rw-r--r--pkgs/games/runelite/default.nix2
-rw-r--r--pkgs/games/scid-vs-pc/default.nix2
-rw-r--r--pkgs/games/scid/default.nix2
-rw-r--r--pkgs/games/scummvm/default.nix2
-rw-r--r--pkgs/games/sfrotz/default.nix2
-rw-r--r--pkgs/games/shipwright/default.nix8
-rw-r--r--pkgs/games/sil-q/default.nix2
-rw-r--r--pkgs/games/sil/default.nix2
-rw-r--r--pkgs/games/sm64ex/generic.nix2
-rw-r--r--pkgs/games/snis/default.nix2
-rw-r--r--pkgs/games/solarus/default.nix4
-rw-r--r--pkgs/games/space-orbit/default.nix6
-rw-r--r--pkgs/games/space-station-14-launcher/deps.nix3
-rw-r--r--pkgs/games/space-station-14-launcher/space-station-14-launcher.nix4
-rw-r--r--pkgs/games/speed-dreams/default.nix4
-rw-r--r--pkgs/games/steam-tui/default.nix42
-rw-r--r--pkgs/games/steam/fhsenv.nix4
-rw-r--r--pkgs/games/supertux/default.nix2
-rw-r--r--pkgs/games/the-butterfly-effect/default.nix2
-rw-r--r--pkgs/games/tinyfugue/001-darwin-fixes.patch27
-rw-r--r--pkgs/games/tinyfugue/default.nix26
-rw-r--r--pkgs/games/torcs/default.nix4
-rw-r--r--pkgs/games/trigger/default.nix2
-rw-r--r--pkgs/games/typespeed/default.nix2
-rw-r--r--pkgs/games/uqm/default.nix2
-rw-r--r--pkgs/games/warmux/default.nix2
-rw-r--r--pkgs/games/wesnoth/default.nix4
-rw-r--r--pkgs/games/wireworld/default.nix2
-rw-r--r--pkgs/games/worldofgoo/default.nix2
-rw-r--r--pkgs/games/xconq/default.nix2
-rw-r--r--pkgs/games/xjump/default.nix2
-rw-r--r--pkgs/games/xonotic/default.nix4
-rw-r--r--pkgs/games/xtris/default.nix2
114 files changed, 387 insertions, 514 deletions
diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix
index 4391e21ce8102..ee2e8b3016fb0 100644
--- a/pkgs/games/0ad/game.nix
+++ b/pkgs/games/0ad/game.nix
@@ -120,7 +120,7 @@ stdenv.mkDerivation rec {
     description = "Free, open-source game of ancient warfare";
     homepage = "https://play0ad.com/";
     license = with licenses; [
-      gpl2 lgpl21 mit cc-by-sa-30
+      gpl2Plus lgpl21 mit cc-by-sa-30
       licenses.zlib # otherwise masked by pkgs.zlib
     ];
     maintainers = with maintainers; [ chvp ];
diff --git a/pkgs/games/airstrike/default.nix b/pkgs/games/airstrike/default.nix
index 819f238806b2a..c41fff3d59a93 100644
--- a/pkgs/games/airstrike/default.nix
+++ b/pkgs/games/airstrike/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "2d dogfighting game";
     mainProgram = "airstrike";
     homepage = "https://icculus.org/airstrike/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/amoeba/default.nix b/pkgs/games/amoeba/default.nix
index 445c86c3bd165..63fa8a62365bf 100644
--- a/pkgs/games/amoeba/default.nix
+++ b/pkgs/games/amoeba/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Fast-paced, polished OpenGL demonstration by Excess";
     homepage = "https://packages.qa.debian.org/a/amoeba.html";
-    license = licenses.gpl2; # Engine is GPLv2, data files in amoeba-data nonfree
+    license = licenses.gpl2Only; # Engine is GPLv2, data files in amoeba-data nonfree
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/angband/default.nix b/pkgs/games/angband/default.nix
index 3cd9174f3e8a1..54e4fff299d63 100644
--- a/pkgs/games/angband/default.nix
+++ b/pkgs/games/angband/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Single-player roguelike dungeon exploration game";
     mainProgram = "angband";
     maintainers = [ maintainers.kenran ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.unix;
   };
 })
diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix
index 0d9465b770605..a75cc801257ef 100644
--- a/pkgs/games/anki/bin.nix
+++ b/pkgs/games/anki/bin.nix
@@ -15,22 +15,22 @@
 let
   pname = "anki-bin";
   # Update hashes for both Linux and Darwin!
-  version = "24.06.2";
+  version = "24.06.3";
 
   sources = {
     linux = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux-qt6.tar.zst";
-      sha256 = "sha256-A7/R7nQUt0L4fKFadPvKyi1sCEUIXcOZSW+Yr1ty63c=";
+      hash = "sha256-/oyQy4QHU9DCqYplcuINy5y0d2/n+fJCpgwNDURguYU=";
     };
 
     # For some reason anki distributes completely separate dmg-files for the aarch64 version and the x86_64 version
     darwin-x86_64 = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-intel-qt6.dmg";
-      sha256 = "sha256-tZjR5ebzbm9w5m66Q2cy8Oe1VtqGEDpLfjpgbUh07Lo=";
+      hash = "sha256-UQRdp/GhiRGfsBF+mV6hCKpEQGFv/I9D9KTtc1p776o=";
     };
     darwin-aarch64 = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-apple-qt6.dmg";
-      sha256 = "sha256-/SVtyvsPWv5EGiNTbfHbPtguLi/oNytO16JPnD7IaCM=";
+      hash = "sha256-zi9yjJirNxFFD7wGa4++J+mDaE5dYZW+X0UUddGkjTU=";
     };
   };
 
@@ -59,6 +59,7 @@ let
       license
       homepage
       description
+      mainProgram
       longDescription
       ;
     platforms = [
diff --git a/pkgs/games/antsimulator/default.nix b/pkgs/games/antsimulator/default.nix
index 69cd7ad1894b6..637c53d1b3bfe 100644
--- a/pkgs/games/antsimulator/default.nix
+++ b/pkgs/games/antsimulator/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     description = "Simple Ants simulator";
     mainProgram = "antsimulator";
     license = licenses.mit;
-    maintainers = with maintainers; [ ivar ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/games/astromenace/default.nix b/pkgs/games/astromenace/default.nix
index f50739d114a0d..54fbf7a1c8b0c 100644
--- a/pkgs/games/astromenace/default.nix
+++ b/pkgs/games/astromenace/default.nix
@@ -1,33 +1,70 @@
-{ fetchurl, lib, stdenv, cmake, xorg, libGLU, libGL, SDL, openal, fontconfig, freealut, freetype, libogg, libvorbis, runtimeShell }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, ninja
+, makeWrapper
+, xorg
+, libGLU
+, libGL
+, SDL2
+, openal
+, fontconfig
+, freealut
+, freetype
+, libogg
+, libvorbis
+, runtimeShell
+}:
 
 stdenv.mkDerivation rec {
   pname = "astromenace";
-  version = "1.4.1";
+  version = "1.4.2";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/openastromenace/astromenace-src-${version}.tar.bz2";
-    sha256 = "1rkz6lwjcd5mwv72kf07ghvx6z46kf3xs250mjbmnmjpn7r5sxwv";
+  src = fetchFromGitHub {
+    owner = "viewizard";
+    repo = "astromenace";
+    rev = "v${version}";
+    hash = "sha256-VFFFYHsBxkURHqOBeuRuIxRKsy8baw2izOZ/qXUkiW8=";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ xorg.libICE xorg.libX11 xorg.libXinerama libGLU libGL SDL openal fontconfig freealut freetype libogg libvorbis ];
+  patches = [
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/astromenace/raw/5e6bc02d115a53007dc47ef8223d8eaa25607588/f/astromenace-gcc13.patch";
+      hash = "sha256-pkmTVR86vS+KCICxAp+d7upNWVnSNxwdKmxnbtqIvgU=";
+    })
+  ];
 
-  postBuild = ''
-    ./AstroMenace --pack --rawdata=../RAW_VFS_DATA
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
+  nativeBuildInputs = [
+    cmake
+    ninja
+    makeWrapper
+  ];
 
-    cp AstroMenace $out
-    cp gamedata.vfs $out
+  buildInputs = [
+    xorg.libICE
+    xorg.libX11
+    xorg.libXinerama
+    libGLU
+    libGL
+    SDL2
+    openal
+    fontconfig
+    freealut
+    freetype
+    libogg
+    libvorbis
+  ];
 
-    cat > $out/bin/AstroMenace << EOF
-    #!${runtimeShell}
-    $out/AstroMenace --dir=$out
-    EOF
-
-    chmod 755 $out/bin/AstroMenace
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/astromenace
+    install -Dm644 gamedata.vfs $out/share/astromenace/gamedata.vfs
+    install -Dm755 astromenace $out/bin/astromenace
+    wrapProgram $out/bin/astromenace \
+      --add-flags "--dir=$out/share/astromenace"
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -35,6 +72,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.viewizard.com/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    mainProgram = "AstroMenace";
+    mainProgram = "astromenace";
+    maintainers = with maintainers; [ fgaz ];
   };
 }
diff --git a/pkgs/games/atanks/default.nix b/pkgs/games/atanks/default.nix
index 8a77be6f16eb6..2d38e909168ee 100644
--- a/pkgs/games/atanks/default.nix
+++ b/pkgs/games/atanks/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "http://atanks.sourceforge.net/";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/games/braincurses/default.nix b/pkgs/games/braincurses/default.nix
index 2e3b54cb87101..bf346b44816ea 100644
--- a/pkgs/games/braincurses/default.nix
+++ b/pkgs/games/braincurses/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/bderrly/braincurses";
     description = "Version of the classic game Mastermind";
     mainProgram = "braincurses";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/chiaki4deck/default.nix b/pkgs/games/chiaki4deck/default.nix
index 79757acef9cca..817ce111d0092 100644
--- a/pkgs/games/chiaki4deck/default.nix
+++ b/pkgs/games/chiaki4deck/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "chiaki4deck";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "streetpea";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gh+ZOsAOi5mKZjs7B1xh07vatoD8F2j2HVxOT/fKDEo=";
+    hash = "sha256-NiShxa49ZKmK/3q8+PHwy7edwjaqtkOqfhd2ncWK5UQ=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/chromium-bsu/default.nix b/pkgs/games/chromium-bsu/default.nix
index f3dfb41c77924..135110028f431 100644
--- a/pkgs/games/chromium-bsu/default.nix
+++ b/pkgs/games/chromium-bsu/default.nix
@@ -6,7 +6,7 @@
 , SDL2_mixer
 , fontconfig
 , freealut
-, freeglut
+, libglut
 , ftgl
 , gettext
 , glpng
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     SDL2_mixer
     fontconfig
     freealut
-    freeglut
+    libglut
     ftgl
     glpng
     libGL
diff --git a/pkgs/games/commandergenius/default.nix b/pkgs/games/commandergenius/default.nix
index f4e3c6a4504a8..0f57b8cf89184 100644
--- a/pkgs/games/commandergenius/default.nix
+++ b/pkgs/games/commandergenius/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/gerstrong/Commander-Genius";
     maintainers = with maintainers; [ hce ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/construo/default.nix b/pkgs/games/construo/default.nix
index 4c9419a54c659..c4d4c50df3931 100644
--- a/pkgs/games/construo/default.nix
+++ b/pkgs/games/construo/default.nix
@@ -5,7 +5,7 @@
 , xorgproto
 , libGL ? null
 , libGLU ? null
-, freeglut ? null
+, libglut ? null
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 zlib xorgproto ]
     ++ lib.optional (libGL != null) libGL
     ++ lib.optional (libGLU != null) libGLU
-    ++ lib.optional (freeglut != null) freeglut;
+    ++ lib.optional (libglut != null) libglut;
 
   preConfigure = ''
     substituteInPlace src/Makefile.in \
diff --git a/pkgs/games/crack-attack/default.nix b/pkgs/games/crack-attack/default.nix
index 4f037f72a38ca..d3d3470664622 100644
--- a/pkgs/games/crack-attack/default.nix
+++ b/pkgs/games/crack-attack/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk2, freeglut, SDL, SDL_mixer, libGLU, libGL, libXi, libXmu }:
+{ lib, stdenv, fetchurl, pkg-config, gtk2, libglut, SDL, SDL_mixer, libGLU, libGL, libXi, libXmu }:
 
 stdenv.mkDerivation rec {
   pname = "crack-attack";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk2 freeglut SDL SDL_mixer libGLU libGL libXi libXmu ];
+  buildInputs = [ gtk2 libglut SDL SDL_mixer libGLU libGL libXi libXmu ];
 
   hardeningDisable = [ "format" ];
   enableParallelBuilding = true;
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "Fast-paced puzzle game inspired by the classic Super NES title Tetris Attack!";
     mainProgram = "crack-attack";
     homepage = "https://www.nongnu.org/crack-attack/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ ];
   };
diff --git a/pkgs/games/crrcsim/default.nix b/pkgs/games/crrcsim/default.nix
index 0ad930ca26cbb..29aa64c3459ee 100644
--- a/pkgs/games/crrcsim/default.nix
+++ b/pkgs/games/crrcsim/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     mainProgram = "crrcsim";
     maintainers = with lib.maintainers; [ raskin ];
     platforms = [ "i686-linux" "x86_64-linux" ];
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
   };
 }
diff --git a/pkgs/games/ddnet/default.nix b/pkgs/games/ddnet/default.nix
index 955baea28be85..678e7d6d59b83 100644
--- a/pkgs/games/ddnet/default.nix
+++ b/pkgs/games/ddnet/default.nix
@@ -109,7 +109,8 @@ stdenv.mkDerivation rec {
     "-DCLIENT=${if buildClient then "ON" else "OFF"}"
   ];
 
-  doCheck = true;
+  # Tests loop forever on Darwin for some reason
+  doCheck = !stdenv.isDarwin;
   checkTarget = "run_tests";
 
   postInstall = lib.optionalString (!buildClient) ''
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix
index d1647eb6a46a1..232a8d7b23c8e 100644
--- a/pkgs/games/domination/default.nix
+++ b/pkgs/games/domination/default.nix
@@ -4,6 +4,7 @@
 , jdk8
 , jre
 , ant
+, stripJavaArchivesHook
 , makeWrapper
 , makeDesktopItem
 , copyDesktopItems
@@ -41,6 +42,7 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [
     jdk8
     ant
+    stripJavaArchivesHook
     makeWrapper
     copyDesktopItems
   ];
@@ -71,7 +73,6 @@ in stdenv.mkDerivation {
     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 \
       --chdir "$out/share/domination" \
       --add-flags "-jar $out/share/domination/Domination.jar"
@@ -83,6 +84,11 @@ in stdenv.mkDerivation {
     runHook postInstall
   '';
 
+  preFixup = ''
+    # remove extra metadata files for jar files which break stripJavaArchivesHook
+    find $out/share/domination/lib -type f -name '._*.jar' -delete
+  '';
+
   passthru.tests = {
     domination-starts = nixosTests.domination;
   };
@@ -101,7 +107,8 @@ in stdenv.mkDerivation {
       fromSource
       binaryBytecode  # source bundles dependencies as jars
     ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
+    mainProgram = "domination";
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
   };
diff --git a/pkgs/games/doom-ports/doomseeker/default.nix b/pkgs/games/doom-ports/doomseeker/default.nix
index 11aec59bf4db2..6f83fa130459c 100644
--- a/pkgs/games/doom-ports/doomseeker/default.nix
+++ b/pkgs/games/doom-ports/doomseeker/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
     homepage = "http://doomseeker.drdteam.org/";
     description = "Multiplayer server browser for many Doom source ports";
     mainProgram = "doomseeker";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ ];
   };
diff --git a/pkgs/games/empty-epsilon/default.nix b/pkgs/games/empty-epsilon/default.nix
index 3bcf141906016..9e2d8ab4216f8 100644
--- a/pkgs/games/empty-epsilon/default.nix
+++ b/pkgs/games/empty-epsilon/default.nix
@@ -33,7 +33,8 @@ let
     buildInputs = [ sfml libX11 glm SDL2 ];
 
     cmakeFlags = [
-      "-DFETCHCONTENT_SOURCE_DIR_BASIS=${basis-universal}"
+      (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_BASIS" "${basis-universal}")
+      (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DGLM_ENABLE_EXPERIMENTAL")
     ];
 
     meta = with lib; {
@@ -63,15 +64,16 @@ stdenv.mkDerivation {
   buildInputs = [ serious-proton sfml glew libX11 python3 glm SDL2 ninja ];
 
   cmakeFlags = [
-    "-DSERIOUS_PROTON_DIR=${serious-proton.src}"
-    "-DCPACK_PACKAGE_VERSION=${version.emptyepsilon}"
-    "-DCPACK_PACKAGE_VERSION_MAJOR=${major}"
-    "-DCPACK_PACKAGE_VERSION_MINOR=${minor}"
-    "-DCPACK_PACKAGE_VERSION_PATCH=${patch.emptyepsilon}"
-    "-DFETCHCONTENT_SOURCE_DIR_BASIS=${basis-universal}"
-    "-DFETCHCONTENT_SOURCE_DIR_MESHOPTIMIZER=${meshoptimizer.src}"
-    "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
+    (lib.cmakeFeature "SERIOUS_PROTON_DIR" "${serious-proton.src}")
+    (lib.cmakeFeature "CPACK_PACKAGE_VERSION" "${version.emptyepsilon}")
+    (lib.cmakeFeature "CPACK_PACKAGE_VERSION_MAJOR" "${major}")
+    (lib.cmakeFeature "CPACK_PACKAGE_VERSION_MINOR" "${minor}")
+    (lib.cmakeFeature "CPACK_PACKAGE_VERSION_PATCH" "${patch.emptyepsilon}")
+    (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_BASIS" "${basis-universal}")
+    (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MESHOPTIMIZER" "${meshoptimizer.src}")
+    (lib.cmakeFeature "CMAKE_AR" "${stdenv.cc.cc}/bin/gcc-ar")
+    (lib.cmakeFeature "CMAKE_RANLIB" "${stdenv.cc.cc}/bin/gcc-ranlib")
+    (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DGLM_ENABLE_EXPERIMENTAL")
     "-G Ninja"
   ];
 
diff --git a/pkgs/games/endless-sky/default.nix b/pkgs/games/endless-sky/default.nix
index 7fb1753445922..0539720ad4528 100644
--- a/pkgs/games/endless-sky/default.nix
+++ b/pkgs/games/endless-sky/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "endless-sky";
-  version = "0.10.6";
+  version = "0.10.8";
 
   src = fetchFromGitHub {
     owner = "endless-sky";
     repo = "endless-sky";
     rev = "v${version}";
-    sha256 = "sha256-3mprmW6K8pYs7J2q71fohsh9fZEP2RZjN1rSWUAwbhg=";
+    sha256 = "sha256-bqhltxkoqDdmddOBZ1f3I29AxGm5buUXpjjFwefemEM=";
   };
 
   patches = [
diff --git a/pkgs/games/enigma/default.nix b/pkgs/games/enigma/default.nix
index 8deac27e579f4..256a65ed94253 100644
--- a/pkgs/games/enigma/default.nix
+++ b/pkgs/games/enigma/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Puzzle game inspired by Oxyd on the Atari ST and Rock'n'Roll on the Amiga";
     mainProgram = "enigma";
-    license = with licenses; [ gpl2 free ]; # source + bundles libs + art
+    license = with licenses; [ gpl2Plus free ]; # source + bundles libs + art
     platforms = platforms.unix;
     broken = stdenv.hostPlatform.isDarwin;
     maintainers = with maintainers; [ iblech ];
diff --git a/pkgs/games/extremetuxracer/default.nix b/pkgs/games/extremetuxracer/default.nix
index a1322499ea6ae..8e774a63ee547 100644
--- a/pkgs/games/extremetuxracer/default.nix
+++ b/pkgs/games/extremetuxracer/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libGLU, libGL, libX11, xorgproto, tcl, freeglut, freetype
+{ lib, stdenv, fetchurl, libGLU, libGL, libX11, xorgproto, tcl, libglut, freetype
 , sfml, libXi
 , libXmu, libXext, libXt, libSM, libICE
 , libpng, pkg-config, gettext, intltool
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config intltool ];
   buildInputs = [
-    libGLU libGL libX11 xorgproto tcl freeglut freetype
+    libGLU libGL libX11 xorgproto tcl libglut freetype
     sfml libXi
     libXmu libXext libXt libSM libICE
     libpng gettext
diff --git a/pkgs/games/ezquake/default.nix b/pkgs/games/ezquake/default.nix
index 202102bb38ed3..4cc6bd2258b57 100644
--- a/pkgs/games/ezquake/default.nix
+++ b/pkgs/games/ezquake/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     homepage = "https://ezquake.com/";
     description = "Modern QuakeWorld client focused on competitive online play";
     mainProgram = "ezquake";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ edwtjo ];
   };
diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json
index e32801b769740..0e436ed4a7412 100644
--- a/pkgs/games/factorio/versions.json
+++ b/pkgs/games/factorio/versions.json
@@ -2,56 +2,56 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.107.tar.xz",
+        "name": "factorio_alpha_x64-1.1.109.tar.xz",
         "needsAuth": true,
-        "sha256": "16hkyfwp02zcijka4yslifz62ry6hrvk0w9960618kqdw3gr7p82",
+        "sha256": "1fmgh5b4sq9lcbjz0asvq5zcwf25cqdn5jc2ickind2lnkhd557h",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.107/alpha/linux64",
-        "version": "1.1.107"
+        "url": "https://factorio.com/get-download/1.1.109/alpha/linux64",
+        "version": "1.1.109"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.107.tar.xz",
+        "name": "factorio_alpha_x64-1.1.109.tar.xz",
         "needsAuth": true,
-        "sha256": "16hkyfwp02zcijka4yslifz62ry6hrvk0w9960618kqdw3gr7p82",
+        "sha256": "1fmgh5b4sq9lcbjz0asvq5zcwf25cqdn5jc2ickind2lnkhd557h",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.107/alpha/linux64",
-        "version": "1.1.107"
+        "url": "https://factorio.com/get-download/1.1.109/alpha/linux64",
+        "version": "1.1.109"
       }
     },
     "demo": {
       "experimental": {
-        "name": "factorio_demo_x64-1.1.107.tar.xz",
+        "name": "factorio_demo_x64-1.1.109.tar.xz",
         "needsAuth": false,
-        "sha256": "0qc36n6h4wcbnj9rnq162bsml4x3ag1dkjmywqz8f4ydaf86gyjw",
+        "sha256": "1222jg22dmj4pby9y5axybqv0dmwxh8r9h2507f87za3jsv15fsx",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.107/demo/linux64",
-        "version": "1.1.107"
+        "url": "https://factorio.com/get-download/1.1.109/demo/linux64",
+        "version": "1.1.109"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.107.tar.xz",
+        "name": "factorio_demo_x64-1.1.109.tar.xz",
         "needsAuth": false,
-        "sha256": "0qc36n6h4wcbnj9rnq162bsml4x3ag1dkjmywqz8f4ydaf86gyjw",
+        "sha256": "1222jg22dmj4pby9y5axybqv0dmwxh8r9h2507f87za3jsv15fsx",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.107/demo/linux64",
-        "version": "1.1.107"
+        "url": "https://factorio.com/get-download/1.1.109/demo/linux64",
+        "version": "1.1.109"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.107.tar.xz",
+        "name": "factorio_headless_x64-1.1.109.tar.xz",
         "needsAuth": false,
-        "sha256": "10ds1nz9sbx9xz1lyypf16wncc6323vpm7l5p11d6iy4cha85wsw",
+        "sha256": "0gxzfz074833fjm4s3528y05c5n1jf7zxfdj5xpfcvwi7i9khnhh",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.107/headless/linux64",
-        "version": "1.1.107"
+        "url": "https://factorio.com/get-download/1.1.109/headless/linux64",
+        "version": "1.1.109"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.107.tar.xz",
+        "name": "factorio_headless_x64-1.1.109.tar.xz",
         "needsAuth": false,
-        "sha256": "10ds1nz9sbx9xz1lyypf16wncc6323vpm7l5p11d6iy4cha85wsw",
+        "sha256": "0gxzfz074833fjm4s3528y05c5n1jf7zxfdj5xpfcvwi7i9khnhh",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.107/headless/linux64",
-        "version": "1.1.107"
+        "url": "https://factorio.com/get-download/1.1.109/headless/linux64",
+        "version": "1.1.109"
       }
     }
   }
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index 3f6b02ddbb984..d81b2774b4ae5 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, wrapQtAppsHook
-, freeglut, freealut, libGLU, libGL, libICE, libjpeg, openal, openscenegraph, plib
+, libglut, freealut, libGLU, libGL, libICE, libjpeg, openal, openscenegraph, plib
 , libSM, libunwind, libX11, xorgproto, libXext, libXi
 , libXmu, libXt, simgear, zlib, boost, cmake, libpng, udev, fltk13, apr
 , makeDesktopItem, qtbase, qtdeclarative, glew, curl
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake wrapQtAppsHook ];
   buildInputs = [
-    freeglut freealut libGLU libGL libICE libjpeg openal openscenegraph plib
+    libglut freealut libGLU libGL libICE libjpeg openal openscenegraph plib
     libSM libunwind libX11 xorgproto libXext libXi
     libXmu libXt simgear zlib boost libpng udev fltk13 apr qtbase
     glew qtdeclarative curl
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     hydraPlatforms = []; # disabled from hydra because it's so big
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     mainProgram = "fgfs";
   };
 }
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index 6ecd9fcdade05..22067adb032f8 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
       to the space age...
     '';
     homepage = "http://www.freeciv.org"; # http only
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ pierron ];
     platforms = lib.platforms.unix;
     hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin
diff --git a/pkgs/games/freeorion/default.nix b/pkgs/games/freeorion/default.nix
index 5db18d9a04c95..5798c61d80003 100644
--- a/pkgs/games/freeorion/default.nix
+++ b/pkgs/games/freeorion/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Free, open source, turn-based space empire and galactic conquest (4X) computer game";
     homepage = "https://www.freeorion.org/";
-    license = with licenses; [ gpl2 cc-by-sa-30 ];
+    license = with licenses; [ gpl2Only cc-by-sa-30 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ tex ];
   };
diff --git a/pkgs/games/freesweep/default.nix b/pkgs/games/freesweep/default.nix
index 99130d9d036a2..6013f17a03a70 100644
--- a/pkgs/games/freesweep/default.nix
+++ b/pkgs/games/freesweep/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     description = "Console minesweeper-style game written in C for Unix-like systems";
     mainProgram = "freesweep";
     homepage = "https://github.com/rwestlund/freesweep";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ kierdavis ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/games/frogatto/engine.nix b/pkgs/games/frogatto/engine.nix
index 1efdb2ceee042..d5e380588176c 100644
--- a/pkgs/games/frogatto/engine.nix
+++ b/pkgs/games/frogatto/engine.nix
@@ -33,6 +33,8 @@ stdenv.mkDerivation {
     glm
   ];
 
+  env.CXXFLAGS = "-DGLM_ENABLE_EXPERIMENTAL -Wno-error=deprecated-declarations";
+
   enableParallelBuilding = true;
 
   installPhase = ''
diff --git a/pkgs/games/frotz/default.nix b/pkgs/games/frotz/default.nix
index 80aa8055dc35d..36ca5c2b3cae0 100644
--- a/pkgs/games/frotz/default.nix
+++ b/pkgs/games/frotz/default.nix
@@ -44,6 +44,6 @@ stdenv.mkDerivation rec {
     mainProgram = "frotz";
     platforms = platforms.unix;
     maintainers = with maintainers; [ nicknovitski ddelabru ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/games/frozen-bubble/default.nix b/pkgs/games/frozen-bubble/default.nix
index 6738f979d00be..72d0be794449e 100644
--- a/pkgs/games/frozen-bubble/default.nix
+++ b/pkgs/games/frozen-bubble/default.nix
@@ -31,7 +31,7 @@ perlPackages.buildPerlModule {
 
   meta = {
     description = "Puzzle with Bubbles";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ puckipedia ];
   };
 }
diff --git a/pkgs/games/gl-117/default.nix b/pkgs/games/gl-117/default.nix
index 9e56ec4cfccdd..5ba29fa49af3e 100644
--- a/pkgs/games/gl-117/default.nix
+++ b/pkgs/games/gl-117/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl
-, libGLU, libGL, SDL, freeglut, SDL_mixer, autoconf, automake, libtool
+, libGLU, libGL, SDL, libglut, SDL_mixer, autoconf, automake, libtool
 }:
 
 stdenv.mkDerivation rec {
@@ -12,14 +12,14 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ automake autoconf ];
-  buildInputs = [ libGLU libGL SDL freeglut SDL_mixer libtool ];
+  buildInputs = [ libGLU libGL SDL libglut SDL_mixer libtool ];
 
   meta = with lib; {
     description = "Air combat simulator";
     mainProgram = "gl-117";
     homepage = "https://sourceforge.net/projects/gl-117";
     maintainers = with maintainers; [ raskin ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/gl-gsync-demo/default.nix b/pkgs/games/gl-gsync-demo/default.nix
index a776a1b13dff9..8ea4facb77b75 100644
--- a/pkgs/games/gl-gsync-demo/default.nix
+++ b/pkgs/games/gl-gsync-demo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libX11, freeglut, glew, libXNVCtrl, libXext, lib }:
+{ stdenv, fetchFromGitHub, libX11, libglut, glew, libXNVCtrl, libXext, lib }:
 
 stdenv.mkDerivation rec {
   pname = "gl-gsync-demo";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1innsmpsd9n9ih80v16rhj2ijrl28jd7x6a4jmxdirba7mjibm8d";
   };
 
-  buildInputs = [ libX11 freeglut glew libXNVCtrl libXext ];
+  buildInputs = [ libX11 libglut glew libXNVCtrl libXext ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/games/gscrabble/default.nix b/pkgs/games/gscrabble/default.nix
index 453cbfedba949..c4a3614edd6a1 100644
--- a/pkgs/games/gscrabble/default.nix
+++ b/pkgs/games/gscrabble/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonApplication, fetchFromGitHub
 , gtk3, wrapGAppsHook3, gst_all_1, gobject-introspection
-, python3Packages, gnome }:
+, python3Packages, adwaita-icon-theme }:
 
 buildPythonApplication {
   pname = "gscrabble";
@@ -19,7 +19,7 @@ buildPythonApplication {
 
   buildInputs = with gst_all_1; [
     gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad
-    gnome.adwaita-icon-theme gtk3
+    adwaita-icon-theme gtk3
   ];
 
   propagatedBuildInputs = with python3Packages; [ gst-python pygobject3 ];
diff --git a/pkgs/games/gtetrinet/default.nix b/pkgs/games/gtetrinet/default.nix
deleted file mode 100644
index 58ac8b2d77cc4..0000000000000
--- a/pkgs/games/gtetrinet/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ fetchFromGitHub, lib, stdenv, autoreconfHook, intltool, pkg-config, libgnome, libgnomeui, GConf }:
-
-stdenv.mkDerivation {
-  pname = "gtetrinet";
-  version = "0.7.11";
-
-  src = fetchFromGitHub {
-    owner = "GNOME";
-    repo = "gtetrinet";
-    rev = "6be3df83f3dc5c7cb966e6cd447182df01b93222";
-    sha256 = "1y05x8lfyxvkjg6c87cfd0xxmb22c88scx8fq3gah7hjy5i42v93";
-  };
-
-  nativeBuildInputs = [ autoreconfHook intltool pkg-config ];
-
-  buildInputs = [ libgnome libgnomeui ];
-
-  propagatedUserEnvPkgs = [ GConf ];
-
-  postAutoreconf = ''
-    intltoolize --force
-  '';
-
-  preInstall = ''
-    export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
-  '';
-
-  postInstall = ''
-    mv "$out/games" "$out/bin"
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Client for Tetrinet, a multiplayer online Tetris game";
-    mainProgram = "gtetrinet";
-    longDescription = ''
-      GTetrinet is a client program for Tetrinet, a multiplayer tetris game
-      that is played over the internet.
-    '';
-    homepage = "https://gtetrinet.sourceforge.net/";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.chris-martin ];
-  };
-}
diff --git a/pkgs/games/gweled/default.nix b/pkgs/games/gweled/default.nix
index b27da3b2f7c4e..1add66074204d 100644
--- a/pkgs/games/gweled/default.nix
+++ b/pkgs/games/gweled/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     description = "Bejeweled clone game";
     mainProgram = "gweled";
     homepage = "https://gweled.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ ];
   };
diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix
index ed800f9afb064..a74ef62a77b14 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, SDL2_image_2_6, SDL2_ttf, SDL2_net, fpc, haskell, ffmpeg_4, freeglut
+{ stdenv, SDL2_image_2_6, SDL2_ttf, SDL2_net, fpc, haskell, ffmpeg_4, libglut
 , lib, fetchurl, cmake, pkg-config, lua5_1, SDL2, SDL2_mixer
 , zlib, libpng, libGL, libGLU, physfs
 , qtbase, qttools, wrapQtAppsHook
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image_2_6
     fpc lua5_1
     llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64
-    ffmpeg_4 freeglut physfs
+    ffmpeg_4 libglut physfs
     qtbase
   ] ++ lib.optional withServer ghc;
 
@@ -51,13 +51,13 @@ stdenv.mkDerivation rec {
   ];
 
   qtWrapperArgs = [
-    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libGLU freeglut physfs ]}"
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libGLU libglut physfs ]}"
   ];
 
   meta = with lib; {
     description = "Turn-based strategy artillery game similar to Worms";
     homepage = "https://hedgewars.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     longDescription = ''
        Each player controls a team of several hedgehogs. During the course of
        the game, players take turns with one of their hedgehogs. They then use
diff --git a/pkgs/games/heroic/fhsenv.nix b/pkgs/games/heroic/fhsenv.nix
index 24f7c96bc9f91..2d1b8f079d2fd 100644
--- a/pkgs/games/heroic/fhsenv.nix
+++ b/pkgs/games/heroic/fhsenv.nix
@@ -20,7 +20,7 @@ buildFHSEnv {
     gamemode
     curl
     gawk
-    gnome.zenity
+    zenity
     plasma5Packages.kdialog
     mangohud
     nettools
diff --git a/pkgs/games/hyperrogue/default.nix b/pkgs/games/hyperrogue/default.nix
index 627b2349c8a52..04a6027f1c973 100644
--- a/pkgs/games/hyperrogue/default.nix
+++ b/pkgs/games/hyperrogue/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hyperrogue";
-  version = "13.0i";
+  version = "13.0o";
 
   src = fetchFromGitHub {
     owner = "zenorogue";
     repo = "hyperrogue";
     rev = "v${version}";
-    sha256 = "sha256-jXiZ/+XvDluXvNFmSp4suAFVsQvbHEx6fa4iztu+n6c=";
+    sha256 = "sha256-a7Ykm+Z7MXfO+eZJjZ+TMuOe6Q+QmjOwcMORI9bZGeM=";
   };
 
   CXXFLAGS = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
     description = "A roguelike game set in hyperbolic geometry";
     mainProgram = "hyperrogue";
     maintainers = with maintainers; [ rardiol ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/instead/default.nix b/pkgs/games/instead/default.nix
index cafdd2b84f0d7..9a68983dc2041 100644
--- a/pkgs/games/instead/default.nix
+++ b/pkgs/games/instead/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Simple text adventure interpreter for Unix and Windows";
     homepage = "https://instead.syscall.ru/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.mit;
     platforms = with lib.platforms; linux;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index a633430ee673e..6bbe30ce4d30a 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -53,11 +53,9 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (backend == "cuda") [
     cudaPackages.cudnn
     cudaPackages.cudatoolkit
-    mesa.drivers
   ] ++ lib.optionals (backend == "tensorrt") [
       cudaPackages.cudatoolkit
       cudaPackages.tensorrt
-      mesa.drivers
   ] ++ lib.optionals (backend == "opencl") [
     opencl-headers
     ocl-icd
diff --git a/pkgs/games/keeperrl/default.nix b/pkgs/games/keeperrl/default.nix
index 262702c223338..616432596a4db 100644
--- a/pkgs/games/keeperrl/default.nix
+++ b/pkgs/games/keeperrl/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation {
     description = "Dungeon management rogue-like";
     mainProgram = "keeper";
     homepage = "https://keeperrl.com/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ onny ];
     # TODO: Add OS X
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/games/koboredux/default.nix b/pkgs/games/koboredux/default.nix
index cab22ce44034d..178b592436b9a 100644
--- a/pkgs/games/koboredux/default.nix
+++ b/pkgs/games/koboredux/default.nix
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
       For the full experience, consider installing "koboredux" instead.
     '';
     homepage = "https://olofson.itch.io/kobo-redux";
-    license = with licenses; if useProprietaryAssets then unfree else gpl2;
+    license = with licenses; if useProprietaryAssets then unfree else gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ fgaz ];
   };
diff --git a/pkgs/games/liberal-crime-squad/default.nix b/pkgs/games/liberal-crime-squad/default.nix
index 0d81f7b3e610d..47968c8c2ba47 100644
--- a/pkgs/games/liberal-crime-squad/default.nix
+++ b/pkgs/games/liberal-crime-squad/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Kamal-Sadek/Liberal-Crime-Squad";
     maintainers = [ maintainers.rardiol ];
     mainProgram = "crimesquad";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/lincity/ng.nix b/pkgs/games/lincity/ng.nix
index 2bf4e9c6f8f87..ce3115d66de98 100644
--- a/pkgs/games/lincity/ng.nix
+++ b/pkgs/games/lincity/ng.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "City building game";
     mainProgram = "lincity-ng";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/linthesia/default.nix b/pkgs/games/linthesia/default.nix
index c13bbec0ecfd2..8bb0f795a823f 100644
--- a/pkgs/games/linthesia/default.nix
+++ b/pkgs/games/linthesia/default.nix
@@ -51,6 +51,6 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ckie ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/games/manaplus/default.nix b/pkgs/games/manaplus/default.nix
index 974564a4d5e35..deb12d45ad4b7 100644
--- a/pkgs/games/manaplus/default.nix
+++ b/pkgs/games/manaplus/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     maintainers = [ ];
     description = "Free OpenSource 2D MMORPG client";
     homepage = "https://manaplus.org/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/games/mar1d/default.nix b/pkgs/games/mar1d/default.nix
index b069e3fecc46a..0bd6026e32d68 100644
--- a/pkgs/games/mar1d/default.nix
+++ b/pkgs/games/mar1d/default.nix
@@ -8,15 +8,16 @@
 , ninja
 , pkg-config
 , fetchFromGitHub
+, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
   pname = "MAR1D";
-  version = "0.3.1";
+  version = "unstable-2023-02-02";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-c48azBGdnzhEQGUeRJWlNLJhtrYjnpiORuWvowcQK5Y=";
-    rev = "v${version}";
+    hash = "sha256-kZERhwnTpBhjx6MLdf1bYCWMjtTiId/5a69kRt+/6oY=";
+    rev = "fa5dc36e1819a15539ced339ad01672e5a498c5c";
     repo = "MAR1D";
     owner = "Radvendii";
   };
@@ -30,6 +31,15 @@ stdenv.mkDerivation rec {
     libGLU
   ];
 
+  patches = [
+    # Fix the build on Darwin.
+    # https://github.com/Radvendii/MAR1D/pull/4
+    (fetchpatch {
+      url = "https://github.com/Radvendii/MAR1D/commit/baf3269e90eca69f154a43c4c1ef14677a6300fd.patch";
+      hash = "sha256-ybdLA2sO8e0J7w4roSdMWn72OkttD3y+cJ3ScuGiHCI=";
+    })
+  ];
+
   meta = with lib; {
     description = "First person Super Mario Bros";
     mainProgram = "MAR1D";
diff --git a/pkgs/games/megaglest/default.nix b/pkgs/games/megaglest/default.nix
index 2a914c9412265..3e720aaf9fa40 100644
--- a/pkgs/games/megaglest/default.nix
+++ b/pkgs/games/megaglest/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, cmake, pkg-config, git, curl, SDL2, xercesc, openal, lua, libvlc
 , libjpeg, wxGTK32, cppunit, ftgl, glew, libogg, libvorbis, buildEnv, libpng
-, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome, libGLU, glib
+, fontconfig, freetype, xorg, makeWrapper, bash, which, zenity, libGLU, glib
 , fetchFromGitHub, fetchpatch
 }:
 let
@@ -13,7 +13,7 @@ let
   };
   path-env = buildEnv {
     name = "megaglest-path-env";
-    paths = [ bash which gnome.zenity ];
+    paths = [ bash which zenity ];
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/games/methane/default.nix b/pkgs/games/methane/default.nix
index d1e4bb03409d8..b3c8fbf34a4b7 100644
--- a/pkgs/games/methane/default.nix
+++ b/pkgs/games/methane/default.nix
@@ -7,7 +7,7 @@
 , SDL2_mixer
 , fontconfig
 , freealut
-, freeglut
+, libglut
 , gettext
 , libGL
 , libGLU
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     SDL2_mixer
     fontconfig
     freealut
-    freeglut
+    libglut
     libGL
     libGLU
     openal
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix
index 49ce37cc4b579..8489d32a8ed7e 100644
--- a/pkgs/games/mindustry/default.nix
+++ b/pkgs/games/mindustry/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl
+, fetchpatch
 , makeWrapper
 , makeDesktopItem
 , copyDesktopItems
@@ -82,6 +83,19 @@ let
 
   patches = [
     ./0001-fix-include-path-for-SDL2-on-linux.patch
+    # Fix build with gradle 8.8, remove on next Arc release
+    (fetchpatch {
+      url = "https://github.com/Anuken/Arc/commit/2a91c51bf45d700091e397fd0b62384763901ae6.patch";
+      hash = "sha256-sSD78GmF14vBvNe+ajUJ4uIc4p857shTP/UkAK6Pyyg=";
+      extraPrefix = "Arc/";
+      stripLen = 1;
+    })
+    (fetchpatch {
+      url = "https://github.com/Anuken/Arc/commit/d7f8ea858c425410dbd43374271a703d4443b432.patch";
+      hash = "sha256-5LPgBOV0r/dUtpyxitTu3/9tMIqjeIKfGVJi3MEr7fQ=";
+      extraPrefix = "Arc/";
+      stripLen = 1;
+    })
   ];
 
   unpackPhase = ''
diff --git a/pkgs/games/minecraft-servers/derivation.nix b/pkgs/games/minecraft-servers/derivation.nix
index a1b03a0a3b368..68c9fd35f76a5 100644
--- a/pkgs/games/minecraft-servers/derivation.nix
+++ b/pkgs/games/minecraft-servers/derivation.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
 
     makeWrapper ${lib.getExe jre_headless} $out/bin/minecraft-server \
       --append-flags "-jar $out/lib/minecraft/server.jar nogui" \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
+      ${lib.optionalString stdenv.isLinux "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}"}
 
     runHook postInstall
   '';
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index ff6a59e08ad72..302e989a65706 100644
--- a/pkgs/games/minetest/default.nix
+++ b/pkgs/games/minetest/default.nix
@@ -34,6 +34,7 @@
 , libX11
 , ninja
 , prometheus-cpp
+, mesa
 , OpenGL
 , OpenAL ? openal
 , Carbon
@@ -95,7 +96,8 @@ stdenv.mkDerivation (finalAttrs: {
     gmp
     libspatialindex
   ] ++ lib.optional (lib.meta.availableOn stdenv.hostPlatform luajit) luajit
-    ++ lib.optionals stdenv.isDarwin [
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    mesa # for <KHR/khrplatform.h>
     libiconv
     OpenGL
     OpenAL
@@ -108,6 +110,7 @@ stdenv.mkDerivation (finalAttrs: {
     openal
     libogg
     libvorbis
+  ] ++ lib.optionals (buildClient && !stdenv.hostPlatform.isDarwin) [
     xorg.libX11
   ] ++ lib.optionals buildServer [
     leveldb
@@ -130,7 +133,8 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   passthru.updateScript = gitUpdater {
-    ignoredVersions = "^[^.]+$|.*-android$";
+    allowedVersions = "\\.";
+    ignoredVersions = "-android$";
   };
 
   meta = with lib; {
diff --git a/pkgs/games/moon-buggy/default.nix b/pkgs/games/moon-buggy/default.nix
index 6941beb248f1a..0da9248b22376 100644
--- a/pkgs/games/moon-buggy/default.nix
+++ b/pkgs/games/moon-buggy/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Simple character graphics game where you drive some kind of car across the moon's surface";
     mainProgram = "moon-buggy";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [ lib.maintainers.rybern ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
     homepage = "https://www.seehuhn.de/pages/moon-buggy";
diff --git a/pkgs/games/netris/default.nix b/pkgs/games/netris/default.nix
index e161f2ea25b88..583d6efa58fe0 100644
--- a/pkgs/games/netris/default.nix
+++ b/pkgs/games/netris/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Free networked version of T*tris";
     mainProgram = "netris";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ patryk27 ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/newtonwars/default.nix b/pkgs/games/newtonwars/default.nix
index c9ed0ca0dbc5d..62d553f402f61 100644
--- a/pkgs/games/newtonwars/default.nix
+++ b/pkgs/games/newtonwars/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , makeWrapper
-, freeglut
+, libglut
 , libGLU
 , libGL
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ freeglut libGL libGLU ];
+  buildInputs = [ libglut libGL libGLU ];
 
   patchPhase = ''
     sed -i "s;font24.raw;$out/share/font24.raw;g" display.c
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
     cp font24.raw $out/share
 
     wrapProgram $out/bin/nw \
-      --prefix LD_LIBRARY_PATH ":" ${freeglut}/lib \
+      --prefix LD_LIBRARY_PATH ":" ${libglut}/lib \
       --prefix LD_LIBRARY_PATH ":" ${libGLU}/lib \
       --prefix LD_LIBRARY_PATH ":" ${libGL}/lib
   '';
diff --git a/pkgs/games/nexuiz/default.nix b/pkgs/games/nexuiz/default.nix
index e8af5d43e2dea..8a178d475ee52 100644
--- a/pkgs/games/nexuiz/default.nix
+++ b/pkgs/games/nexuiz/default.nix
@@ -87,7 +87,7 @@ in stdenv.mkDerivation {
   meta = {
     description = "Free fast-paced first-person shooter";
     homepage = "http://www.alientrap.org/games/nexuiz";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/games/ninvaders/default.nix b/pkgs/games/ninvaders/default.nix
index 5fe9eb81be615..089fa5478a0d6 100644
--- a/pkgs/games/ninvaders/default.nix
+++ b/pkgs/games/ninvaders/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     description = "Space Invaders clone based on ncurses";
     mainProgram = "ninvaders";
     homepage = "https://ninvaders.sourceforge.net/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ _1000101 ];
     platforms = platforms.all;
   };
diff --git a/pkgs/games/opendune/default.nix b/pkgs/games/opendune/default.nix
index 6df2a5b7a2069..a7c5fa3d02b1c 100644
--- a/pkgs/games/opendune/default.nix
+++ b/pkgs/games/opendune/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     description = "Dune, Reinvented";
     mainProgram = "opendune";
     homepage = "https://github.com/OpenDUNE/OpenDUNE";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix
index 58cbb1e212736..f1eb4b597ab84 100644
--- a/pkgs/games/openjk/default.nix
+++ b/pkgs/games/openjk/default.nix
@@ -86,7 +86,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Open-source engine for Star Wars Jedi Academy game";
     homepage = "https://github.com/JACoders/OpenJK";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tgunnoe ];
   };
diff --git a/pkgs/games/openra_2019/common.nix b/pkgs/games/openra_2019/common.nix
index 091b56b3d1419..f04f0cf5078a9 100644
--- a/pkgs/games/openra_2019/common.nix
+++ b/pkgs/games/openra_2019/common.nix
@@ -4,6 +4,8 @@
 { lib, makeSetupHook, curl, unzip, dos2unix, pkg-config, makeWrapper
 , lua, mono, python3
 , libGL, freetype, openal, SDL2
+# It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure,
+# rather than having to look to the logs why it is not starting.
 , zenity
 }:
 
diff --git a/pkgs/games/openra_2019/default.nix b/pkgs/games/openra_2019/default.nix
index 0bcf71cd87f19..97cdb4335d2c3 100644
--- a/pkgs/games/openra_2019/default.nix
+++ b/pkgs/games/openra_2019/default.nix
@@ -24,9 +24,6 @@ let
     fArgs = lib.functionArgs f;
   in f (builtins.intersectAttrs fArgs pkgs // {
     lua = pkgs.lua5_1;
-    # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure,
-    # rather than having to look to the logs why it is not starting.
-    inherit (pkgs.gnome) zenity;
   });
 
   /*  Building a set of engines or mods requires some dependencies as well,
diff --git a/pkgs/games/openra_2019/packages.nix b/pkgs/games/openra_2019/packages.nix
index 5ee78fe2b8ff1..a88bfd14e2e3e 100644
--- a/pkgs/games/openra_2019/packages.nix
+++ b/pkgs/games/openra_2019/packages.nix
@@ -13,9 +13,6 @@ let
   */
   common = let f = import ./common.nix; in f (builtins.intersectAttrs (builtins.functionArgs f) pkgs // {
     lua = pkgs.lua5_1;
-    # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure,
-    # rather than having to look to the logs why it is not starting.
-    inherit (pkgs.gnome) zenity;
   });
 
   /*  Building a set of engines or mods requires some dependencies as well,
diff --git a/pkgs/games/opensupaplex/default.nix b/pkgs/games/opensupaplex/default.nix
index 83c7f8b5c9b02..66a2079282cef 100644
--- a/pkgs/games/opensupaplex/default.nix
+++ b/pkgs/games/opensupaplex/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchurl
-, makeDesktopItem
-, copyDesktopItems
-, testers
-, opensupaplex
-, SDL2
-, SDL2_mixer
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchurl,
+  makeDesktopItem,
+  copyDesktopItems,
+  testers,
+  opensupaplex,
+  SDL2,
+  SDL2_mixer,
 }:
 
 let
@@ -68,22 +69,27 @@ stdenv.mkDerivation rec {
     version = "v${version}";
   };
 
-  desktopItems = [(makeDesktopItem {
-    name = "opensupaplex";
-    exec = meta.mainProgram;
-    icon = "open-supaplex";
-    desktopName = "OpenSupaplex";
-    comment = meta.description;
-    categories = [ "Application" "Game" ];
-  })];
+  desktopItems = [
+    (makeDesktopItem {
+      name = "opensupaplex";
+      exec = meta.mainProgram;
+      icon = "open-supaplex";
+      desktopName = "OpenSupaplex";
+      comment = meta.description;
+      categories = [
+        "Application"
+        "Game"
+      ];
+    })
+  ];
 
-  meta = with lib; {
+  meta = {
     description = "A decompilation of Supaplex in C and SDL";
     homepage = "https://github.com/sergiou87/open-supaplex";
     changelog = "https://github.com/sergiou87/open-supaplex/blob/master/changelog/v${version}.txt";
-    license = licenses.gpl3Only;
-    maintainers = [ maintainers.ivar ];
-    platforms = platforms.linux; # Many more are supported upstream, but only linux is tested.
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ matteopacini ];
+    platforms = lib.platforms.linux; # Many more are supported upstream, but only linux is tested.
     mainProgram = "opensupaplex";
   };
 }
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 268cead62dc47..9276e094853d3 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://www.openttd.org/";
     changelog = "https://cdn.openttd.org/openttd-releases/${version}/changelog.txt";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jcumming fpletz ];
   };
diff --git a/pkgs/games/openttd/grfcodec.nix b/pkgs/games/openttd/grfcodec.nix
index 544cf4f06c43b..af4e315374637 100644
--- a/pkgs/games/openttd/grfcodec.nix
+++ b/pkgs/games/openttd/grfcodec.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Low-level (dis)assembler and linter for OpenTTD GRF files";
     homepage    = "http://openttd.org/";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ ToxicFrog ];
   };
 }
diff --git a/pkgs/games/openttd/nml.nix b/pkgs/games/openttd/nml.nix
index 65dddce236e34..b1ec87d8fdb3c 100644
--- a/pkgs/games/openttd/nml.nix
+++ b/pkgs/games/openttd/nml.nix
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "http://openttdcoop.org/";
     description = "Compiler for OpenTTD NML files";
     mainProgram = "nmlc";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ToxicFrog ];
   };
 }
diff --git a/pkgs/games/osu-lazer/bin.nix b/pkgs/games/osu-lazer/bin.nix
index a6081ca2c3f87..add7a63b86186 100644
--- a/pkgs/games/osu-lazer/bin.nix
+++ b/pkgs/games/osu-lazer/bin.nix
@@ -35,7 +35,7 @@ let
       unfreeRedistributable # osu-framework contains libbass.so in repository
     ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    maintainers = with lib.maintainers; [ delan gepbird spacefault stepbrobd ];
+    maintainers = with lib.maintainers; [ gepbird spacefault stepbrobd ];
     mainProgram = "osu!";
     platforms = [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ];
   };
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix
index 29d5c6b852032..037b307c6df37 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -1,6 +1,8 @@
+let
+  versions = builtins.fromJSON (builtins.readFile ./versions.json);
+in
 { callPackage, lib, ... }:
 let
-  versions = lib.importJSON ./versions.json;
   latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions));
   escapeVersion = builtins.replaceStrings [ "." ] [ "_" ];
   packages = lib.mapAttrs'
diff --git a/pkgs/games/papermc/derivation.nix b/pkgs/games/papermc/derivation.nix
index 299248a64d080..5dd169dbc9b49 100644
--- a/pkgs/games/papermc/derivation.nix
+++ b/pkgs/games/papermc/derivation.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
     makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \
       --append-flags "-jar $out/share/papermc/papermc.jar nogui" \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
+      ${lib.optionalString stdenvNoCC.isLinux "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}"}
 
     runHook postInstall
   '';
diff --git a/pkgs/games/papermc/versions.json b/pkgs/games/papermc/versions.json
index 67fb3903da117..51bdf49551f74 100644
--- a/pkgs/games/papermc/versions.json
+++ b/pkgs/games/papermc/versions.json
@@ -52,11 +52,11 @@
         "version": "1.20.5-22"
     },
     "1.20.6": {
-        "hash": "sha256-JMWN40FTFg87RmxwyUr87Js9KyCmaBhj6Dnfe3vblZQ=",
-        "version": "1.20.6-147"
+        "hash": "sha256-u9adg4SOJb3w7LBAzJiiJj2V7WbjvVEoqMhVL3v5lL0=",
+        "version": "1.20.6-148"
     },
     "1.21": {
-        "hash": "sha256-LaQyYAlZ2GQKzT3GlOKr1RUhu0XQpILuqPcDHdczqcU=",
-        "version": "1.21-15"
+        "hash": "sha256-7gHWhy/nlRc1I5LGN1grIAPaVxT8xJST2+I86xSGSc8=",
+        "version": "1.21-40"
     }
 }
diff --git a/pkgs/games/principia/default.nix b/pkgs/games/principia/default.nix
index 0cf659e448e0e..ba163c0f99e85 100644
--- a/pkgs/games/principia/default.nix
+++ b/pkgs/games/principia/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "principia";
-  version = "2024.02.29";
+  version = "2024.06.28";
 
   src = fetchFromGitHub {
     owner = "Bithack";
     repo = "principia";
     rev = finalAttrs.version;
-    hash = "sha256-L37H261IGCcH2K7RhX8iTdHRkle83vKhgpyssRmSKN0=";
+    hash = "sha256-S7p/Jcpp42vsdKGFgxLb2IeePB0ktKuMQLJzvXyZilg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/prismlauncher/default.nix b/pkgs/games/prismlauncher/default.nix
deleted file mode 100644
index b9b585a4e5031..0000000000000
--- a/pkgs/games/prismlauncher/default.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, stripJavaArchivesHook
-, cmake
-, cmark
-, Cocoa
-, ninja
-, jdk17
-, zlib
-, qtbase
-, quazip
-, extra-cmake-modules
-, tomlplusplus
-, ghc_filesystem
-, gamemode
-, msaClientID ? null
-, gamemodeSupport ? stdenv.isLinux
-,
-}:
-let
-  libnbtplusplus = fetchFromGitHub {
-    owner = "PrismLauncher";
-    repo = "libnbtplusplus";
-    rev = "a5e8fd52b8bf4ab5d5bcc042b2a247867589985f";
-    hash = "sha256-A5kTgICnx+Qdq3Fir/bKTfdTt/T1NQP2SC+nhN1ENug=";
-  };
-in
-
-assert lib.assertMsg (stdenv.isLinux || !gamemodeSupport) "gamemodeSupport is only available on Linux";
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "prismlauncher-unwrapped";
-  version = "8.3";
-
-  src = fetchFromGitHub {
-    owner = "PrismLauncher";
-    repo = "PrismLauncher";
-    rev = finalAttrs.version;
-    hash = "sha256-1YGzCgNdzscnOVeNlHMFJa0RbMo6C2qQjtBOeDxHakI=";
-  };
-
-  nativeBuildInputs = [ extra-cmake-modules cmake jdk17 ninja stripJavaArchivesHook ];
-  buildInputs =
-    [
-      qtbase
-      zlib
-      quazip
-      ghc_filesystem
-      tomlplusplus
-      cmark
-    ]
-    ++ lib.optional gamemodeSupport gamemode
-    ++ lib.optionals stdenv.isDarwin [ Cocoa ];
-
-  hardeningEnable = lib.optionals stdenv.isLinux [ "pie" ];
-
-  cmakeFlags = [
-    # downstream branding
-    "-DLauncher_BUILD_PLATFORM=nixpkgs"
-  ] ++ lib.optionals (msaClientID != null) [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]
-  ++ lib.optionals (lib.versionOlder qtbase.version "6") [ "-DLauncher_QT_VERSION_MAJOR=5" ]
-  ++ lib.optionals stdenv.isDarwin [
-    "-DINSTALL_BUNDLE=nodeps"
-    "-DMACOSX_SPARKLE_UPDATE_FEED_URL=''"
-    "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/Applications/"
-  ];
-
-  postUnpack = ''
-    rm -rf source/libraries/libnbtplusplus
-    ln -s ${libnbtplusplus} source/libraries/libnbtplusplus
-  '';
-
-  dontWrapQtApps = true;
-
-  meta = {
-    mainProgram = "prismlauncher";
-    homepage = "https://prismlauncher.org/";
-    description = "Free, open source launcher for Minecraft";
-    longDescription = ''
-      Allows you to have multiple, separate instances of Minecraft (each with
-      their own mods, texture packs, saves, etc) and helps you manage them and
-      their associated options with a simple interface.
-    '';
-    platforms = with lib.platforms; linux ++ darwin;
-    changelog = "https://github.com/PrismLauncher/PrismLauncher/releases/tag/${finalAttrs.version}";
-    license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ minion3665 Scrumplex getchoo ];
-  };
-})
diff --git a/pkgs/games/prismlauncher/wrapper.nix b/pkgs/games/prismlauncher/wrapper.nix
deleted file mode 100644
index f5b21d70844fc..0000000000000
--- a/pkgs/games/prismlauncher/wrapper.nix
+++ /dev/null
@@ -1,130 +0,0 @@
-{ lib
-, stdenv
-, symlinkJoin
-, makeWrapper
-, wrapQtAppsHook
-, addOpenGLRunpath
-
-, prismlauncher-unwrapped
-
-, qtbase  # needed for wrapQtAppsHook
-, qtsvg
-, qtwayland
-, xorg
-, libpulseaudio
-, libGL
-, glfw
-, glfw-wayland-minecraft
-, openal
-, jdk8
-, jdk17
-, jdk21
-, gamemode
-, flite
-, glxinfo
-, pciutils
-, udev
-, vulkan-loader
-, libusb1
-
-, msaClientID ? null
-, gamemodeSupport ? stdenv.isLinux
-, textToSpeechSupport ? stdenv.isLinux
-, controllerSupport ? stdenv.isLinux
-
-  # Adds `glfw-wayland-minecraft` to `LD_LIBRARY_PATH`
-  # when launched on wayland, allowing for the game to be run natively.
-  # Make sure to enable "Use system installation of GLFW" in instance settings
-  # for this to take effect
-  #
-  # Warning: This build of glfw may be unstable, and the launcher
-  # itself can take slightly longer to start
-, withWaylandGLFW ? false
-
-, jdks ? [ jdk21 jdk17 jdk8 ]
-, additionalLibs ? [ ]
-, additionalPrograms ? [ ]
-}:
-
-assert lib.assertMsg (withWaylandGLFW -> stdenv.isLinux) "withWaylandGLFW is only available on Linux";
-
-let
-  prismlauncher' = prismlauncher-unwrapped.override {
-    inherit msaClientID gamemodeSupport;
-  };
-in
-
-symlinkJoin {
-  name = "prismlauncher-${prismlauncher'.version}";
-
-  paths = [ prismlauncher' ];
-
-  nativeBuildInputs = [
-    wrapQtAppsHook
-  ]
-  # purposefully using a shell wrapper here for variable expansion
-  # see https://github.com/NixOS/nixpkgs/issues/172583
-  ++ lib.optional withWaylandGLFW makeWrapper;
-
-  buildInputs = [
-    qtbase
-    qtsvg
-  ]
-  ++ lib.optional (lib.versionAtLeast qtbase.version "6" && stdenv.isLinux) qtwayland;
-
-  waylandPreExec = lib.optionalString withWaylandGLFW ''
-    if [ -n "$WAYLAND_DISPLAY" ]; then
-      export LD_LIBRARY_PATH=${lib.getLib glfw-wayland-minecraft}/lib:"$LD_LIBRARY_PATH"
-    fi
-  '';
-
-  postBuild = ''
-    ${lib.optionalString withWaylandGLFW ''
-      qtWrapperArgs+=(--run "$waylandPreExec")
-    ''}
-
-    wrapQtAppsHook
-  '';
-
-  qtWrapperArgs =
-    let
-      runtimeLibs = [
-        xorg.libX11
-        xorg.libXext
-        xorg.libXcursor
-        xorg.libXrandr
-        xorg.libXxf86vm
-
-        # lwjgl
-        libpulseaudio
-        libGL
-        glfw
-        openal
-        stdenv.cc.cc.lib
-        vulkan-loader # VulkanMod's lwjgl
-
-        # oshi
-        udev
-      ]
-      ++ lib.optional gamemodeSupport gamemode.lib
-      ++ lib.optional textToSpeechSupport flite
-      ++ lib.optional controllerSupport libusb1
-      ++ additionalLibs;
-
-      runtimePrograms = [
-        xorg.xrandr
-        glxinfo
-        pciutils # need lspci
-      ]
-      ++ additionalPrograms;
-
-    in
-    [ "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" ]
-    ++ lib.optionals stdenv.isLinux [
-      "--set LD_LIBRARY_PATH ${addOpenGLRunpath.driverLink}/lib:${lib.makeLibraryPath runtimeLibs}"
-      # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
-      "--prefix PATH : ${lib.makeBinPath runtimePrograms}"
-    ];
-
-  inherit (prismlauncher') meta;
-}
diff --git a/pkgs/games/qgo/default.nix b/pkgs/games/qgo/default.nix
index 98dbbb693ba8d..9c688a37d263e 100644
--- a/pkgs/games/qgo/default.nix
+++ b/pkgs/games/qgo/default.nix
@@ -27,7 +27,7 @@ mkDerivation {
       Chinese, "囲碁(Yi Go)" in Japanese, "바둑(Baduk)" in Korean.
     '';
     homepage = "https://github.com/pzorin/qgo";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ zalakain ];
   };
 
diff --git a/pkgs/games/qqwing/default.nix b/pkgs/games/qqwing/default.nix
index 95764a767aa7e..185b1c7a6886a 100644
--- a/pkgs/games/qqwing/default.nix
+++ b/pkgs/games/qqwing/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     homepage = "https://qqwing.com";
     description = "Sudoku generating and solving software";
     mainProgram = "qqwing";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/games/quake2/yquake2/default.nix b/pkgs/games/quake2/yquake2/default.nix
index b37c4f5e6a0e2..edfcfccade254 100644
--- a/pkgs/games/quake2/yquake2/default.nix
+++ b/pkgs/games/quake2/yquake2/default.nix
@@ -69,7 +69,7 @@ let
     meta = with lib; {
       description = "Yamagi Quake II client";
       homepage = "https://www.yamagi.org/quake2/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       platforms = platforms.unix;
       maintainers = with maintainers; [ tadfisher ];
     };
diff --git a/pkgs/games/quake3/quake3e/default.nix b/pkgs/games/quake3/quake3e/default.nix
index 1ad03d494ab03..81dd202dc5431 100644
--- a/pkgs/games/quake3/quake3e/default.nix
+++ b/pkgs/games/quake3/quake3e/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ec-/Quake3e";
     description = "Improved Quake III Arena engine";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pmiddend ];
   };
diff --git a/pkgs/games/quantumminigolf/default.nix b/pkgs/games/quantumminigolf/default.nix
index 803529b7f638d..c91fb8b28c538 100644
--- a/pkgs/games/quantumminigolf/default.nix
+++ b/pkgs/games/quantumminigolf/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Quantum mechanics-based minigolf-like game";
     mainProgram = "quantumminigolf";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     # never built on aarch64-linux since first introduction in nixpkgs
diff --git a/pkgs/games/rftg/default.nix b/pkgs/games/rftg/default.nix
index 1dfeaf3c3a898..70093d7589b12 100644
--- a/pkgs/games/rftg/default.nix
+++ b/pkgs/games/rftg/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://keldon.net/rftg/";
     description = "Implementation of the card game Race for the Galaxy, including an AI";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.falsifian ];
   };
 
diff --git a/pkgs/games/rocksndiamonds/default.nix b/pkgs/games/rocksndiamonds/default.nix
index 2803ca5d18cfd..4aa70ffa5334f 100644
--- a/pkgs/games/rocksndiamonds/default.nix
+++ b/pkgs/games/rocksndiamonds/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     description = "Scrolling tile-based arcade style puzzle game";
     mainProgram = "rocksndiamonds";
     homepage = "https://www.artsoft.org/rocksndiamonds/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ orivej ];
   };
diff --git a/pkgs/games/runelite/default.nix b/pkgs/games/runelite/default.nix
index 031cd81f13d52..22db910b30d2a 100644
--- a/pkgs/games/runelite/default.nix
+++ b/pkgs/games/runelite/default.nix
@@ -25,7 +25,7 @@ mavenJdk17.buildMavenPackage rec {
     rev = version;
     hash = "sha256-7T9n23qMl4IJQL7yWLXKvRzYcMeXDUwkY8MBFc2t3Rw=";
   };
-  mvnHash = "sha256-bsJlsIXIIVzZyVgEF/SN+GgpZt6v0u800arO1c5QYHk=";
+  mvnHash = "sha256-FpfHtGIfo84z6v9/nzc47+JeIM43MR9mWhVOPSi0xhM=";
 
   desktop = makeDesktopItem {
     name = "RuneLite";
diff --git a/pkgs/games/scid-vs-pc/default.nix b/pkgs/games/scid-vs-pc/default.nix
index 0a071237bee7c..d46f077a25b7c 100644
--- a/pkgs/games/scid-vs-pc/default.nix
+++ b/pkgs/games/scid-vs-pc/default.nix
@@ -43,7 +43,7 @@ tcl.mkTclDerivation rec {
   meta = with lib; {
     description = "Chess database with play and training functionality";
     homepage = "https://scidvspc.sourceforge.net/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [ maintainers.paraseba ];
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/games/scid/default.nix b/pkgs/games/scid/default.nix
index 576e6dc36772f..c4dcef454b8be 100644
--- a/pkgs/games/scid/default.nix
+++ b/pkgs/games/scid/default.nix
@@ -49,7 +49,7 @@ tcl.mkTclDerivation rec {
     description = "Chess database with play and training functionality";
     maintainers = with lib.maintainers; [ agbrooks ];
     homepage = "https://scid.sourceforge.net/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/games/scummvm/default.nix b/pkgs/games/scummvm/default.nix
index 6a700c7ed00c4..2252146679b24 100644
--- a/pkgs/games/scummvm/default.nix
+++ b/pkgs/games/scummvm/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     description = "Program to run certain classic graphical point-and-click adventure games (such as Monkey Island)";
     mainProgram = "scummvm";
     homepage = "https://www.scummvm.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.peterhoeg ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/games/sfrotz/default.nix b/pkgs/games/sfrotz/default.nix
index 1282e4d7258e1..2514374cf05af 100644
--- a/pkgs/games/sfrotz/default.nix
+++ b/pkgs/games/sfrotz/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://davidgriffith.gitlab.io/frotz/";
     changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ddelabru ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/shipwright/default.nix b/pkgs/games/shipwright/default.nix
index cdb48733eb012..2ee250a703f46 100644
--- a/pkgs/games/shipwright/default.nix
+++ b/pkgs/games/shipwright/default.nix
@@ -22,7 +22,7 @@
 , libpulseaudio
 , libpng
 , imagemagick
-, gnome
+, zenity
 , makeWrapper
 , darwin
 , libicns
@@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
     libXi
     libXext
     libpulseaudio
-    gnome.zenity
+    zenity
   ] ++ lib.optionals stdenv.isDarwin [
     IOSurface
     Metal
@@ -168,7 +168,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   fixupPhase = lib.optionalString stdenv.isLinux ''
-    wrapProgram $out/lib/soh.elf --prefix PATH ":" ${lib.makeBinPath [ gnome.zenity ]}
+    wrapProgram $out/lib/soh.elf --prefix PATH ":" ${lib.makeBinPath [ zenity ]}
   '';
 
   desktopItems = [
@@ -188,7 +188,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A PC port of Ocarina of Time with modern controls, widescreen, high-resolution, and more";
     mainProgram = "soh";
     platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
-    maintainers = with lib.maintainers; [ ivar j0lol matteopacini ];
+    maintainers = with lib.maintainers; [ j0lol matteopacini ];
     license = with lib.licenses; [
       # OTRExporter, OTRGui, ZAPDTR, libultraship
       mit
diff --git a/pkgs/games/sil-q/default.nix b/pkgs/games/sil-q/default.nix
index 9a52a05db93f5..796ab12e2ea9f 100644
--- a/pkgs/games/sil-q/default.nix
+++ b/pkgs/games/sil-q/default.nix
@@ -67,7 +67,7 @@ in stdenv.mkDerivation rec {
       A fork of Sil that's still actively developed.
     '';
     homepage = "https://github.com/sil-quirk/sil-q";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [ lib.maintainers.kenran ];
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/games/sil/default.nix b/pkgs/games/sil/default.nix
index e8f88074b66d8..f50fc358efe2f 100644
--- a/pkgs/games/sil/default.nix
+++ b/pkgs/games/sil/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
       Silmaril from Morgoth’s iron crown.
     '';
     homepage = "http://www.amirrorclear.net/flowers/game/sil/index.html";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ michaelpj kenran ];
     platforms = lib.platforms.linux;
     mainProgram = "sil";
diff --git a/pkgs/games/sm64ex/generic.nix b/pkgs/games/sm64ex/generic.nix
index d3da340d502fb..bf2175ed278b1 100644
--- a/pkgs/games/sm64ex/generic.nix
+++ b/pkgs/games/sm64ex/generic.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
       '';
     mainProgram = "sm64ex";
     license = licenses.unfree;
-    maintainers = with maintainers; [ ivar ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   } // extraMeta;
 }
diff --git a/pkgs/games/snis/default.nix b/pkgs/games/snis/default.nix
index b74fef4518208..2b1d168467cfb 100644
--- a/pkgs/games/snis/default.nix
+++ b/pkgs/games/snis/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Space Nerds In Space, a multi-player spaceship bridge simulator";
     homepage = "https://smcameron.github.io/space-nerds-in-space/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ alyaeanyx ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/games/solarus/default.nix b/pkgs/games/solarus/default.nix
index fd80b03066ce6..b59c20c2b3226 100644
--- a/pkgs/games/solarus/default.nix
+++ b/pkgs/games/solarus/default.nix
@@ -22,6 +22,10 @@ mkDerivation rec {
     openal libmodplug libvorbis
     qtbase glm ];
 
+  cmakeFlags = [
+    (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DGLM_ENABLE_EXPERIMENTAL")
+  ];
+
   preFixup = ''
     mkdir $lib/
     mv $out/lib $lib
diff --git a/pkgs/games/space-orbit/default.nix b/pkgs/games/space-orbit/default.nix
index 4e3e044bbbfe9..74db273bb879e 100644
--- a/pkgs/games/space-orbit/default.nix
+++ b/pkgs/games/space-orbit/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl
-, libGLU, libGL, libXi, libXt, libXext, libX11, libXmu, freeglut
+, libGLU, libGL, libXi, libXt, libXext, libX11, libXmu, libglut
 }:
 
 stdenv.mkDerivation rec {
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "1.01";
   patchversion = "9";
 
-  buildInputs = [ libGLU libGL libXi libXt libXext libX11 libXmu freeglut ];
+  buildInputs = [ libGLU libGL libXi libXt libXext libX11 libXmu libglut ];
 
   src = fetchurl {
     url = "mirror://debian/pool/main/s/space-orbit/space-orbit_${version}.orig.tar.gz";
@@ -41,7 +41,7 @@ EOF
     broken = stdenv.isDarwin;
     description = "Space combat simulator";
     mainProgram = "space-orbit";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/space-station-14-launcher/deps.nix b/pkgs/games/space-station-14-launcher/deps.nix
index 239bc10b3b090..0c439f953d363 100644
--- a/pkgs/games/space-station-14-launcher/deps.nix
+++ b/pkgs/games/space-station-14-launcher/deps.nix
@@ -28,6 +28,9 @@
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.2.0-eap3"; sha256 = "12fkafmx2h1h4av04lc5d8x4v3vw3pnva5vw872r3w8w6ws85r5k"; })
   (fetchNuGet { pname = "libsodium"; version = "1.0.18.2"; sha256 = "02xd4phd6wfixhdq48ma92c166absqw41vdq5kvjch8p0vc9cdl2"; })
+  (fetchNuGet { pname = "Linguini.Bundle"; version = "0.8.1"; sha256 = "1p7nn56yd4v4rx5k3x352vdsbvkvyn9lb1739dj111z3jpmw2aja"; })
+  (fetchNuGet { pname = "Linguini.Shared"; version = "0.8.0"; sha256 = "08q0p5wz6lf7ab7m18yj5wvwks10c9v3d83f6262wbvkmnms0w06"; })
+  (fetchNuGet { pname = "Linguini.Syntax"; version = "0.8.0"; sha256 = "0gfl8j9kdjxgz0iaxs35y801pxflk50kzlf0qq4z42jmh9swi4y7"; })
   (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; })
diff --git a/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix b/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
index be4a50034b914..cde4cee0384af 100644
--- a/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
+++ b/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
@@ -31,7 +31,7 @@
 , gdk-pixbuf
 }:
 let
-  version = "0.27.2";
+  version = "0.28.0";
   pname = "space-station-14-launcher";
 in
 buildDotnetModule rec {
@@ -44,7 +44,7 @@ buildDotnetModule rec {
     owner = "space-wizards";
     repo = "SS14.Launcher";
     rev = "v${version}";
-    hash = "sha256-r+nNZ2xkHMp8bmNNqbf4WnmGP3SIxCtHUCfGxfydTH4=";
+    hash = "sha256-mBFTXwnxijXAP6i7DNQ/3bujualysCGjDDjmhe15s4I=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/speed-dreams/default.nix b/pkgs/games/speed-dreams/default.nix
index bdfc68f837d1f..f81c2f7f2f341 100644
--- a/pkgs/games/speed-dreams/default.nix
+++ b/pkgs/games/speed-dreams/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, libGLU, libGL, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto,
+{ fetchurl, lib, stdenv, libGLU, libGL, libglut, libX11, plib, openal, freealut, libXrandr, xorgproto,
 libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, openscenegraph, expat,
 libpng, zlib, bash, SDL2, SDL2_mixer, enet, libjpeg, cmake, pkg-config, libvorbis, runtimeShell, curl, copyDesktopItems, makeDesktopItem }:
 
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake copyDesktopItems ];
 
-  buildInputs = [ libpng libGLU libGL freeglut libX11 plib openal freealut libXrandr xorgproto
+  buildInputs = [ libpng libGLU libGL libglut libX11 plib openal freealut libXrandr xorgproto
     libXext libSM libICE libXi libXt libXrender libXxf86vm zlib bash expat
     SDL2 SDL2_mixer enet libjpeg openscenegraph libvorbis curl ];
 
diff --git a/pkgs/games/steam-tui/default.nix b/pkgs/games/steam-tui/default.nix
index 769553a694224..7a42404500bd7 100644
--- a/pkgs/games/steam-tui/default.nix
+++ b/pkgs/games/steam-tui/default.nix
@@ -1,28 +1,35 @@
-{ lib
-, rustPlatform
-, steamcmd
-, fetchFromGitHub
-, steam-run
-, runtimeShell
-, withWine ? false
-, wine
+{
+  lib,
+  rustPlatform,
+  steamcmd,
+  fetchFromGitHub,
+  steam-run,
+  openssl,
+  pkg-config,
+  runtimeShell,
+  withWine ? false,
+  wine,
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "steam-tui";
-  version = "0.1.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "dmadisetti";
     repo = pname;
     rev = version;
-    sha256 = "sha256-UTXYlPecv0MVonr9zZwfwopfC/Fdch/ZSCxqgUsem40=";
+    sha256 = "sha256-3vBIpPIsh+7PjTuNNqp7e/pdciOYnzuGkjb/Eks6QJw=";
   };
 
-  cargoSha256 = "sha256-VYBzwDLSV4N4qt2dNgIS399T2HIbPTdQ2rDIeheLlfo=";
+  cargoSha256 = "sha256-poNPdrMguV79cwo2Eq1dGVUN0E4yG84Q63kU9o+eABo=";
 
-  buildInputs = [ steamcmd ]
-    ++ lib.optional withWine wine;
+  nativeBuildInputs = [
+    openssl
+    pkg-config
+  ];
+
+  buildInputs = [ steamcmd ] ++ lib.optional withWine wine;
 
   preFixup = ''
     mv $out/bin/steam-tui $out/bin/.steam-tui-unwrapped
@@ -34,11 +41,18 @@ rustPlatform.buildRustPackage rec {
     chmod +x $out/bin/steam-tui
   '';
 
+  checkFlags = [ "--skip=impure" ];
+
+  PKG_CONFIG_PATH = "${openssl.dev}/lib/pkgconfig";
+
   meta = with lib; {
     description = "Rust TUI client for steamcmd";
     homepage = "https://github.com/dmadisetti/steam-tui";
     license = licenses.mit;
-    maintainers = with maintainers; [ lom ];
+    maintainers = with maintainers; [
+      lom
+      dmadisetti
+    ];
     # steam only supports that platform
     platforms = [ "x86_64-linux" ];
     mainProgram = "steam-tui";
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index a2157da80d6b9..8b504b6c55b62 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -83,7 +83,7 @@ in buildFHSEnv rec {
   targetPkgs = pkgs: with pkgs; [
     steam
     # License agreement
-    gnome.zenity
+    zenity
   ] ++ commonTargetPkgs pkgs;
 
   multiPkgs = pkgs: with pkgs; [
@@ -162,7 +162,7 @@ in buildFHSEnv rec {
     gtk2
     bzip2
     flac
-    freeglut
+    libglut
     libjpeg
     libpng
     libpng12
diff --git a/pkgs/games/supertux/default.nix b/pkgs/games/supertux/default.nix
index 857617bc4bfa4..3f4031b3b71ab 100644
--- a/pkgs/games/supertux/default.nix
+++ b/pkgs/games/supertux/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Classic 2D jump'n run sidescroller game";
     homepage = "https://supertux.github.io/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; linux;
     mainProgram = "supertux2";
diff --git a/pkgs/games/the-butterfly-effect/default.nix b/pkgs/games/the-butterfly-effect/default.nix
index e589018eddefd..fcfa6f1d14ae5 100644
--- a/pkgs/games/the-butterfly-effect/default.nix
+++ b/pkgs/games/the-butterfly-effect/default.nix
@@ -35,6 +35,6 @@ mkDerivation rec {
     homepage = "http://the-butterfly-effect.org/";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
   };
 }
diff --git a/pkgs/games/tinyfugue/001-darwin-fixes.patch b/pkgs/games/tinyfugue/001-darwin-fixes.patch
new file mode 100644
index 0000000000000..4a65f274f98d6
--- /dev/null
+++ b/pkgs/games/tinyfugue/001-darwin-fixes.patch
@@ -0,0 +1,27 @@
+diff --git a/src/malloc.h b/src/malloc.h
+index cc4d3bf..bbf78cd 100644
+--- a/src/malloc.h
++++ b/src/malloc.h
+@@ -34,6 +34,10 @@ extern int low_memory_warning;
+ # define realloc(ptr, size)		mrealloc(NULL, ptr, size)
+ # define free(ptr)			mfree(NULL, ptr)
+ #else
++#ifdef __APPLE__
++    #include <stdlib.h>
++    #include <sys/types.h>
++#endif
+ # define mmalloc(md, size)		malloc(size)
+ # define mcalloc(md, size)		calloc(size)
+ # define mrealloc(md, ptr, size)	realloc(ptr, size)
+diff --git a/src/tfio.c b/src/tfio.c
+index 2cd2103..8640f2b 100644
+--- a/src/tfio.c
++++ b/src/tfio.c
+@@ -70,6 +70,7 @@ static void fileputs(const char *str, FILE *fp);
+ static void filenputs(const char *str, int n, FILE *fp);
+ static void queueputline(conString *line, TFILE *file);
+ 
++extern void    main_loop(void);
+ 
+ void init_tfio(void)
+ {
diff --git a/pkgs/games/tinyfugue/default.nix b/pkgs/games/tinyfugue/default.nix
index 6cb80663bdb78..982e6038592d1 100644
--- a/pkgs/games/tinyfugue/default.nix
+++ b/pkgs/games/tinyfugue/default.nix
@@ -1,6 +1,11 @@
-{ lib, stdenv, fetchurl, ncurses, zlib
-, openssl ? null
-, sslSupport ? true
+{
+  lib,
+  stdenv,
+  fetchurl,
+  ncurses,
+  zlib,
+  openssl,
+  sslSupport ? true,
 }:
 
 assert sslSupport -> openssl != null;
@@ -24,11 +29,16 @@ stdenv.mkDerivation rec {
     sha256 = "12fra2fdwqj6ilv9wdkc33rkj343rdcf5jyff4yiwywlrwaa2l1p";
   };
 
+  patches = [
+    ./001-darwin-fixes.patch
+  ];
+
   configureFlags = optional (!sslSupport) "--disable-ssl";
 
-  buildInputs =
-    [ ncurses zlib ]
-    ++ optional sslSupport openssl;
+  buildInputs = [
+    ncurses
+    zlib
+  ] ++ optional sslSupport openssl;
 
   # Workaround build failure on -fno-common toolchains like upstream
   # gcc-10. Otherwise build fails as:
@@ -44,8 +54,8 @@ stdenv.mkDerivation rec {
       TinyFugue, aka "tf", is a flexible, screen-oriented MUD client, for use
       with any type of text MUD.
     '';
-    license = licenses.gpl2;
-    platforms = platforms.linux;
+    license = licenses.gpl2Only;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = [ maintainers.KibaFox ];
   };
 }
diff --git a/pkgs/games/torcs/default.nix b/pkgs/games/torcs/default.nix
index 9c712ae41a43e..46831a5033240 100644
--- a/pkgs/games/torcs/default.nix
+++ b/pkgs/games/torcs/default.nix
@@ -1,4 +1,4 @@
-{ fetchpatch, fetchurl, lib, stdenv, libGLU, freeglut, libX11, plib, openal, freealut, libXrandr, xorgproto,
+{ fetchpatch, fetchurl, lib, stdenv, libGLU, libglut, libX11, plib, openal, freealut, libXrandr, xorgproto,
 libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, libvorbis,
 libpng, zlib, makeWrapper }:
 
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ libGLU freeglut libX11 plib openal freealut libXrandr xorgproto
+  buildInputs = [ libGLU libglut libX11 plib openal freealut libXrandr xorgproto
     libXext libSM libICE libXi libXt libXrender libXxf86vm libpng zlib libvorbis ];
 
   installTargets = "install datainstall";
diff --git a/pkgs/games/trigger/default.nix b/pkgs/games/trigger/default.nix
index 3e8862f66e3a9..4ea3dd6200e5c 100644
--- a/pkgs/games/trigger/default.nix
+++ b/pkgs/games/trigger/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
     description = "Fast-paced single-player racing game";
     mainProgram = "trigger-rally";
     homepage = "http://trigger-rally.sourceforge.net/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
   };
diff --git a/pkgs/games/typespeed/default.nix b/pkgs/games/typespeed/default.nix
index 8b9881a68a8a8..088f6803fbcbf 100644
--- a/pkgs/games/typespeed/default.nix
+++ b/pkgs/games/typespeed/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Curses based typing game";
     mainProgram = "typespeed";
     homepage = "https://typespeed.sourceforge.net/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.auntie ];
   };
diff --git a/pkgs/games/uqm/default.nix b/pkgs/games/uqm/default.nix
index f81a48af2a67c..eb5fabf47dfae 100644
--- a/pkgs/games/uqm/default.nix
+++ b/pkgs/games/uqm/default.nix
@@ -103,7 +103,7 @@ in stdenv.mkDerivation rec {
           spin-offs, thereby making zillions more people happy!
     '';
     homepage = "https://sc2.sourceforge.net/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ jcumming aszlig ];
     platforms = with lib.platforms; linux;
   };
diff --git a/pkgs/games/warmux/default.nix b/pkgs/games/warmux/default.nix
index 6b52194ffcaeb..2e3a96a086519 100644
--- a/pkgs/games/warmux/default.nix
+++ b/pkgs/games/warmux/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
     description = "Ballistics turn-based battle game between teams - unofficial copy";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
-    license = with licenses; [ gpl2 ufl ];
+    license = with licenses; [ gpl2Plus ufl ];
     homepage = "https://github.com/fluxer/warmux";
   };
 }
diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix
index 9106ad9f425b9..285058ffc5fa1 100644
--- a/pkgs/games/wesnoth/default.nix
+++ b/pkgs/games/wesnoth/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.18.0";
+  version = "1.18.1";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "wesnoth";
     repo = "wesnoth";
-    hash = "sha256-Db1OwBTA/2jjhu/fOZhwGo7dWV3mZ40y6hTNCCjaRJQ=";
+    hash = "sha256-IZ3/06MVJGNNSjj9UJ5EWRuzu4baJs3ruYarWTRuGnw=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/games/wireworld/default.nix b/pkgs/games/wireworld/default.nix
index 14a7310e7a977..a7f0e9f37bc81 100644
--- a/pkgs/games/wireworld/default.nix
+++ b/pkgs/games/wireworld/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
       cc-by-sa-40
     ];
     downloadPage = "https://ldjam.com/events/ludum-dare/53/wireworld";
-    maintainers = with lib.maintainers; [ janik ];
+    maintainers = with lib.maintainers; [ ];
   };
 
 }
diff --git a/pkgs/games/worldofgoo/default.nix b/pkgs/games/worldofgoo/default.nix
index 123e296f5e0a9..a54cea0ae9f96 100644
--- a/pkgs/games/worldofgoo/default.nix
+++ b/pkgs/games/worldofgoo/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   helpMsg = ''
     We cannot download the full version automatically, as you require a license.
     Once you have bought a license, you need to add your downloaded version to the nix store.
-    You can do this by using "nix-prefetch-url file://\$PWD/${pname}.Linux${version}.sh"
+    You can do this by using "nix-prefetch-url file://\$PWD/${pname}.Linux.${version}.sh"
     in the directory where you saved it.
   '';
 
diff --git a/pkgs/games/xconq/default.nix b/pkgs/games/xconq/default.nix
index 4c4f441964dd6..345ddbcad49b1 100644
--- a/pkgs/games/xconq/default.nix
+++ b/pkgs/games/xconq/default.nix
@@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
     description = "Programmable turn-based strategy game";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/games/xjump/default.nix b/pkgs/games/xjump/default.nix
index 93f999bce2708..4d7e9fe717594 100644
--- a/pkgs/games/xjump/default.nix
+++ b/pkgs/games/xjump/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Falling tower game";
     mainProgram = "xjump";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pmeunier ];
   };
 }
diff --git a/pkgs/games/xonotic/default.nix b/pkgs/games/xonotic/default.nix
index 60eb1189391df..c3356cc254e41 100644
--- a/pkgs/games/xonotic/default.nix
+++ b/pkgs/games/xonotic/default.nix
@@ -66,8 +66,8 @@ let
 
     nativeBuildInputs = [ unzip ];
     buildInputs = [ libjpeg zlib libvorbis curl gmp ]
-      ++ lib.optionals withGLX [ libX11.dev libGLU.dev libGL.dev libXpm.dev libXext.dev libXxf86vm.dev alsa-lib.dev ]
-      ++ lib.optionals withSDL [ SDL2.dev ];
+      ++ lib.optionals withGLX [ libX11 libGLU libGL libXpm libXext libXxf86vm alsa-lib ]
+      ++ lib.optionals withSDL [ SDL2 ];
 
     sourceRoot = "Xonotic/source/darkplaces";
 
diff --git a/pkgs/games/xtris/default.nix b/pkgs/games/xtris/default.nix
index 25c93df7ff4b2..b9492ad11edad 100644
--- a/pkgs/games/xtris/default.nix
+++ b/pkgs/games/xtris/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Multi-player version of the classical game of Tetris, for the X Window system";
     homepage = "https://web.archive.org/web/20120315061213/http://www.iagora.com/~espel/xtris/xtris.html";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.unix;
   };
 }