summary refs log tree commit diff
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2022-12-12 23:56:49 +0300
committerAzat Bahawi <azat@bahawi.net>2022-12-12 23:56:49 +0300
commit3f2752723f642c3a2cade8e26c0a9f5e32b5e221 (patch)
tree89c54d4d142afb42d13b32f697cf6536f1dd4b2b
parentc04f46c96397eab978c1d20ad6901c3f6a3a862b (diff)
downloadnixpkgs-3f2752723f642c3a2cade8e26c0a9f5e32b5e221.tar
nixpkgs-3f2752723f642c3a2cade8e26c0a9f5e32b5e221.tar.gz
nixpkgs-3f2752723f642c3a2cade8e26c0a9f5e32b5e221.tar.bz2
nixpkgs-3f2752723f642c3a2cade8e26c0a9f5e32b5e221.tar.lz
nixpkgs-3f2752723f642c3a2cade8e26c0a9f5e32b5e221.tar.xz
nixpkgs-3f2752723f642c3a2cade8e26c0a9f5e32b5e221.tar.zst
nixpkgs-3f2752723f642c3a2cade8e26c0a9f5e32b5e221.zip
gzdoom: 4.8.2 -> 4.10.0
-rw-r--r--pkgs/games/gzdoom/default.nix201
1 files changed, 98 insertions, 103 deletions
diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix
index 3eb69fa3c11..aaa800269a7 100644
--- a/pkgs/games/gzdoom/default.nix
+++ b/pkgs/games/gzdoom/default.nix
@@ -1,107 +1,102 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, makeWrapper, openal, fluidsynth
-, soundfont-fluid, libGL, SDL2, bzip2, zlib, libjpeg, libsndfile, libvpx, mpg123
-, game-music-emu, pkg-config, copyDesktopItems, makeDesktopItem, gtk3 }:
-
-let
-  zmusic = stdenv.mkDerivation rec {
-    pname = "zmusic";
-    version = "1.1.3";
-
-    src = fetchFromGitHub {
-      owner = "ZDoom";
-      repo = "ZMusic";
-      rev = version;
-      hash = "sha256-wrNWfTIbNU/S2qFObUSkb6qyaceh+Y7Loxqudl86+W4=";
-    };
-
-    nativeBuildInputs = [ cmake pkg-config ];
-
-    buildInputs = [ fluidsynth ];
-
-    cmakeFlags = [ "-DDYN_FLUIDSYNTH=OFF" ];
-
-    preConfigure = ''
-      sed -i \
-        -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
-        -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
-        source/mididevices/music_fluidsynth_mididevice.cpp
-    '';
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+, SDL2
+, bzip2
+, cmake
+, fluidsynth
+, game-music-emu
+, gtk3
+, libGL
+, libjpeg
+, libsndfile
+, libvpx
+, mpg123
+, ninja
+, openal
+, pkg-config
+, vulkan-loader
+, zlib
+, zmusic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gzdoom";
+  version = "4.10.0";
+
+  src = fetchFromGitHub {
+    owner = "ZDoom";
+    repo = "gzdoom";
+    rev = "g${version}";
+    fetchSubmodules = true;
+    hash = "sha256-F3p2X/hjPV9fuaA7T2bQTP6SlKcfc8GniJgv8BcopGw=";
   };
 
-  gzdoom = stdenv.mkDerivation rec {
-    pname = "gzdoom";
-    version = "4.8.2";
-
-    src = fetchFromGitHub {
-      owner = "ZDoom";
-      repo = "gzdoom";
-      rev = "g${version}";
-      hash = "sha256-aT7DUZih3EDqncaXYIPIyGsz4fI267N29PmN3qyVjyo=";
-      fetchSubmodules = true;
-    };
-
-    nativeBuildInputs = [ cmake makeWrapper pkg-config copyDesktopItems ];
-    buildInputs = [
-      SDL2
-      bzip2
-      fluidsynth
-      game-music-emu
-      gtk3
-      libGL
-      libjpeg
-      libsndfile
-      libvpx
-      mpg123
-      openal
-      zlib
-      zmusic
-    ];
-
-    patches = [
-      (fetchpatch {  # TODO: Delete me when upgrading to 4.9
-        url = "https://github.com/ZDoom/gzdoom/commit/aae85a1b9169953d8dcc5f138a477d5c7d75addb.patch";
-        sha256 = "upuLDgVMaGaFSVaDV9Hj13DR5LUma51xv+Mfsz9m9a0=";
-      })
-    ];
-
-    NIX_CFLAGS_LINK = "-lopenal -lfluidsynth";
-
-    cmakeFlags = [ "-DDYN_GTK=OFF" ];
-
-    desktopItems = [
-      (makeDesktopItem {
-        name = "gzdoom";
-        exec = "gzdoom";
-        desktopName = "GZDoom";
-        categories = [ "Game" ];
-      })
-    ];
-
-    installPhase = ''
-      runHook preInstall
-
-      install -Dm755 gzdoom "$out/lib/gzdoom/gzdoom"
-      for i in *.pk3; do
-        install -Dm644 "$i" "$out/lib/gzdoom/$i"
-      done
-      for i in fm_banks/*; do
-        install -Dm644 "$i" "$out/lib/gzdoom/$i"
-      done
-      for i in soundfonts/*; do
-        install -Dm644 "$i" "$out/lib/gzdoom/$i"
-      done
-      mkdir $out/bin
-      makeWrapper $out/lib/gzdoom/gzdoom $out/bin/gzdoom
-
-      runHook postInstall
+  outputs = [ "out" "doc" ];
+
+  nativeBuildInputs = [
+    cmake
+    copyDesktopItems
+    makeWrapper
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+    bzip2
+    fluidsynth
+    game-music-emu
+    gtk3
+    libGL
+    libjpeg
+    libsndfile
+    libvpx
+    mpg123
+    openal
+    vulkan-loader
+    zlib
+    zmusic
+  ];
+
+  postPatch = ''
+    substituteInPlace tools/updaterevision/UpdateRevision.cmake \
+      --replace "ret_var(Tag)" "ret_var(\"${src.rev}\")" \
+      --replace "ret_var(Timestamp)" "ret_var(\"1970-00-00 00:00:00 +0000\")" \
+      --replace "ret_var(Hash)" "ret_var(\"${src.rev}\")"
+  '';
+
+  cmakeFlags = [
+    "-DDYN_GTK=OFF"
+    "-DDYN_OPENAL=OFF"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "gzdoom";
+      exec = "gzdoom";
+      desktopName = "GZDoom";
+      categories = [ "Game" ];
+    })
+  ];
+
+  postInstall = ''
+    mv $out/bin/gzdoom $out/share/games/doom/gzdoom
+    makeWrapper $out/share/games/doom/gzdoom $out/bin/gzdoom
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ZDoom/gzdoom";
+    description = "Modder-friendly OpenGL and Vulkan source port based on the DOOM engine";
+    longDescription = ''
+      GZDoom is a feature centric port for all DOOM engine games, based on
+      ZDoom, adding an OpenGL renderer and powerful scripting capabilities.
     '';
-
-    meta = with lib; {
-      homepage = "https://github.com/ZDoom/gzdoom";
-      description = "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
-      license = licenses.gpl3Plus;
-      platforms = [ "x86_64-linux" ];
-      maintainers = with maintainers; [ azahi lassulus ];
-    };
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ azahi lassulus ];
   };
-in gzdoom
+}