diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-08-23 10:09:14 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-08-26 09:07:03 +0000 |
commit | 63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f (patch) | |
tree | d58934cb48f9c953b19a0d0d5cffc0d0c5561471 /nixpkgs/pkgs/games | |
parent | c4eef3dacb2a3d359561f30917d9e3cc4e041be9 (diff) | |
parent | 91a22f76cd1716f9d0149e8a5c68424bb691de15 (diff) | |
download | nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.gz nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.bz2 nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.lz nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.xz nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.zst nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
Diffstat (limited to 'nixpkgs/pkgs/games')
50 files changed, 930 insertions, 425 deletions
diff --git a/nixpkgs/pkgs/games/aaaaxy/default.nix b/nixpkgs/pkgs/games/aaaaxy/default.nix index 1db4f31e79a7..64f9de8c92b8 100644 --- a/nixpkgs/pkgs/games/aaaaxy/default.nix +++ b/nixpkgs/pkgs/games/aaaaxy/default.nix @@ -19,17 +19,17 @@ buildGoModule rec { pname = "aaaaxy"; - version = "1.4.39"; + version = "1.4.42"; src = fetchFromGitHub { owner = "divVerent"; repo = pname; rev = "v${version}"; - hash = "sha256-eawsTvPJwWKDSZd/2XBneitoydSRxEAU5RAPZgE6NSo="; + hash = "sha256-GD7SgxGZRivVbgrzAe7U0EgkTmrXFvSGzzZUOE7CwbY="; fetchSubmodules = true; }; - vendorHash = "sha256-uHTYp8PBXdQ2w+kjxLVvUOzOvDfXF53lcBriK8sif7A="; + vendorHash = "sha256-1w+/tmF73hN5y5vj++JCX+T5RQ/PF747wmAbN9i7Bgs="; buildInputs = [ alsa-lib diff --git a/nixpkgs/pkgs/games/anki/bin.nix b/nixpkgs/pkgs/games/anki/bin.nix index 2e97bb91d65f..9a66de369266 100644 --- a/nixpkgs/pkgs/games/anki/bin.nix +++ b/nixpkgs/pkgs/games/anki/bin.nix @@ -58,7 +58,7 @@ let targetPkgs = pkgs: (with pkgs; [ xorg.libxkbfile xcb-util-cursor-HEAD krb5 ]); runScript = writeShellScript "anki-wrapper.sh" '' - exec ${unpacked}/bin/anki ${ lib.strings.escapeShellArgs commandLineArgs } + exec ${unpacked}/bin/anki ${ lib.strings.escapeShellArgs commandLineArgs } "$@" ''; extraInstallCommands = '' diff --git a/nixpkgs/pkgs/games/anki/default.nix b/nixpkgs/pkgs/games/anki/default.nix index 299897afda49..fd8d29ee1b39 100644 --- a/nixpkgs/pkgs/games/anki/default.nix +++ b/nixpkgs/pkgs/games/anki/default.nix @@ -46,7 +46,6 @@ let }; anki-build-python = python3.withPackages (ps: with ps; [ - pip mypy-protobuf ]); diff --git a/nixpkgs/pkgs/games/atlauncher/default.nix b/nixpkgs/pkgs/games/atlauncher/default.nix index 913b4faffb8f..4f45477ecec9 100644 --- a/nixpkgs/pkgs/games/atlauncher/default.nix +++ b/nixpkgs/pkgs/games/atlauncher/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "atlauncher"; - version = "3.4.28.1"; + version = "3.4.30.0"; src = fetchurl { url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${finalAttrs.version}/ATLauncher-${finalAttrs.version}.jar"; - hash = "sha256-IIwDMazxUMQ7nGQk/4VEZicgCmCR4oR8UYtO36pCEq4="; + hash = "sha256-eSb+qH/ZoPpeOyIuoJsEpecG7uUyh0vkqZzNuxriRuI="; }; dontUnpack = true; @@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: { desktopItems = [ (makeDesktopItem { name = finalAttrs.pname; - exec = finalAttrs.pname; + exec = "${finalAttrs.pname} --no-launcher-update true"; icon = fetchurl { url = "https://avatars.githubusercontent.com/u/7068667"; hash = "sha256-YmEkxf4rZxN3jhiib0UtdUDDcn9lw7IMbiEucBL7b9o="; diff --git a/nixpkgs/pkgs/games/blackshades/default.nix b/nixpkgs/pkgs/games/blackshades/default.nix index c107b068816c..80fc72341501 100644 --- a/nixpkgs/pkgs/games/blackshades/default.nix +++ b/nixpkgs/pkgs/games/blackshades/default.nix @@ -6,7 +6,7 @@ , libGLU , libsndfile , openal -, zigHook +, zig_0_9 }: stdenv.mkDerivation (finalAttrs: { @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-Hg+VcWI28GzY/CPm1lUftP0RGztOnzizrKJQVTmeJ9I="; }; - nativeBuildInputs = [ zigHook ]; + nativeBuildInputs = [ zig_0_9.hook ]; buildInputs = [ glfw diff --git a/nixpkgs/pkgs/games/blobby/default.nix b/nixpkgs/pkgs/games/blobby/default.nix index c5c6ed01ecc5..27371b905417 100644 --- a/nixpkgs/pkgs/games/blobby/default.nix +++ b/nixpkgs/pkgs/games/blobby/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "blobby-volley"; - version = "1.1"; + version = "1.1.1"; src = fetchurl { - url = "mirror://sourceforge/blobby/Blobby%20Volley%202%20%28Linux%29/1.1/blobby2-linux-1.1.tar.gz"; - sha256 = "sha256-1WJ59Fhb1opXjOci+nAx/F2w5TnBaRhxQuPKgmmLfvQ="; + url = "mirror://sourceforge/blobby/Blobby%20Volley%202%20%28Linux%29/1.1.1/blobby2-linux-1.1.1.tar.gz"; + sha256 = "sha256-NX7lE+adO1D2f8Bj1Ky3lZpf6Il3gX8KqxTMxw2yFLo="; }; nativeBuildInputs = [ cmake pkg-config zip ]; diff --git a/nixpkgs/pkgs/games/cdogs-sdl/default.nix b/nixpkgs/pkgs/games/cdogs-sdl/default.nix index 3db387990ebb..5c74b10ef32a 100644 --- a/nixpkgs/pkgs/games/cdogs-sdl/default.nix +++ b/nixpkgs/pkgs/games/cdogs-sdl/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "cdogs-sdl"; - version = "1.4.2"; + version = "1.5.0"; src = fetchFromGitHub { repo = pname; owner = "cxong"; rev = version; - sha256 = "sha256-KRHwcDUAQ6GzJ20pCINq8t+P4G4cWjbIayDsYM4VBaY="; + sha256 = "sha256-XSq0TK3ZuLOa8JJnp/Qxt16Ru3p35tq5FOo4+tv+c60="; }; postPatch = '' diff --git a/nixpkgs/pkgs/games/cutechess/default.nix b/nixpkgs/pkgs/games/cutechess/default.nix new file mode 100644 index 000000000000..5e374afa1bca --- /dev/null +++ b/nixpkgs/pkgs/games/cutechess/default.nix @@ -0,0 +1,45 @@ +{ stdenv +, fetchFromGitHub +, cmake +, pkg-config +, wrapQtAppsHook +, qtbase +, lib +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "cutechess"; + version = "1.3.1"; + + src = fetchFromGitHub { + owner = "cutechess"; + repo = "cutechess"; + rev = "v${finalAttrs.version}"; + hash = "sha256-P44Twbw2MGz+oTzPwMFCe73zPxAex6uYjSTtaUypfHw="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + buildInputs = [ + qtbase + ]; + + postInstall = '' + install -Dm555 cutechess{,-cli} -t $out/bin/ + install -Dm444 libcutechess.a -t $out/lib/ + install -Dm444 $src/docs/cutechess-cli.6 -t $out/share/man/man6/ + install -Dm444 $src/docs/cutechess-engines.json.5 -t $out/share/man/man5/ + ''; + + meta = with lib; { + description = "GUI, CLI, and library for playing chess"; + homepage = "https://cutechess.com/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ eclairevoyant ]; + platforms = with platforms; (linux ++ windows); + mainProgram = "cutechess"; + }; +}) diff --git a/nixpkgs/pkgs/games/ddnet/default.nix b/nixpkgs/pkgs/games/ddnet/default.nix index d07c3ab6b919..b08d4baf2a46 100644 --- a/nixpkgs/pkgs/games/ddnet/default.nix +++ b/nixpkgs/pkgs/games/ddnet/default.nix @@ -34,19 +34,19 @@ stdenv.mkDerivation rec { pname = "ddnet"; - version = "17.1.1"; + version = "17.2.1"; src = fetchFromGitHub { owner = "ddnet"; repo = pname; rev = version; - hash = "sha256-igvEo80wFYso7I4aaCWgOebsKbGLgBaY4PQy142+Yiw="; + hash = "sha256-FJnwabNEEGZDM9wNWMGclFv2IMlXg4Ob3PEbGiGQKKc="; }; cargoDeps = rustPlatform.fetchCargoTarball { name = "${pname}-${version}"; inherit src; - hash = "sha256-ykTeVggLUTY1PPFrGMQDJh8FNQwBlBU7LxbHbMdjD4I="; + hash = "sha256-hUrsumBiKovSD7xT1PgH2Q+7HYgyxnFnz33YJPdd5+c="; }; nativeBuildInputs = [ diff --git a/nixpkgs/pkgs/games/etlegacy/default.nix b/nixpkgs/pkgs/games/etlegacy/default.nix index deb10bf3842e..ee5d31874c68 100644 --- a/nixpkgs/pkgs/games/etlegacy/default.nix +++ b/nixpkgs/pkgs/games/etlegacy/default.nix @@ -1,138 +1,142 @@ -{ - stdenv, - lib, - makeWrapper, - writeScriptBin, - fetchFromGitHub, - fetchurl, - runCommand, - cmake, - git, - glew, - SDL2, - zlib, - minizip, - libjpeg, - curl, - lua, - libogg, - libtheora, - freetype, - libpng, - sqlite, - openal, - unzip, - cjson, -}: let +{ lib +, stdenv +, fetchurl +, writeShellApplication +, fetchFromGitHub +, cjson +, cmake +, git +, makeWrapper +, unzip +, curl +, freetype +, glew +, libjpeg +, libogg +, libpng +, libtheora +, lua +, minizip +, openal +, SDL2 +, sqlite +, zlib +}: +let version = "2.81.1"; - pkgname = "etlegacy"; - mirror = "https://mirror.etlegacy.com"; - fetchAsset = { - asset, - sha256, - }: - fetchurl - { - url = mirror + "/etmain/" + asset; - inherit sha256; - }; - pak0 = - fetchAsset - { - asset = "pak0.pk3"; - sha256 = "712966b20e06523fe81419516500e499c86b2b4fec823856ddbd333fcb3d26e5"; - }; - pak1 = - fetchAsset - { - asset = "pak1.pk3"; - sha256 = "5610fd749024405b4425a7ce6397e58187b941d22092ef11d4844b427df53e5d"; - }; - pak2 = - fetchAsset - { - asset = "pak2.pk3"; - sha256 = "a48ab749a1a12ab4d9137286b1f23d642c29da59845b2bafc8f64e052cf06f3e"; - }; - fakeGit = writeScriptBin "git" '' - #! ${stdenv.shell} -e - if [ "$1" = "describe" ]; then - echo "${version}" - fi - ''; - mainProgram = - if stdenv.hostPlatform.system == "i686-linux" - then "etl.i386" - else "etl.x86_64"; -in - stdenv.mkDerivation rec { - pname = pkgname; - inherit version; - src = fetchFromGitHub { - owner = "etlegacy"; - repo = "etlegacy"; - rev = "refs/tags/v" + version; - sha256 = "sha256-CGXtc51vaId/SHbD34ZeT0gPsrl7p2DEw/Kp+GBZIaA="; # 2.81.1 - }; + fetchAsset = { asset, hash }: fetchurl { + url = "https://mirror.etlegacy.com/etmain/${asset}"; + inherit hash; + }; - nativeBuildInputs = [cmake fakeGit git makeWrapper unzip cjson]; - buildInputs = [ - glew - SDL2 - zlib - minizip - libjpeg - curl - lua - libogg - libtheora - freetype - libpng - sqlite - openal - ]; + pak0 = fetchAsset { + asset = "pak0.pk3"; + hash = "sha256-cSlmsg4GUj/oFBlRZQDkmchrK0/sgjhW3b0zP8s9JuU="; + }; - preBuild = '' - # Required for build time to not be in 1980 - export SOURCE_DATE_EPOCH=$(date +%s) - # This indicates the build was by a CI pipeline and prevents the resource - # files from being flagged as 'dirty' due to potentially being custom built. - export CI="true" - ''; + pak1 = fetchAsset { + asset = "pak1.pk3"; + hash = "sha256-VhD9dJAkQFtEJafOY5flgYe5QdIgku8R1IRLQn31Pl0="; + }; + + pak2 = fetchAsset { + asset = "pak2.pk3"; + hash = "sha256-pIq3SaGhKrTZE3KGsfI9ZCwp2lmEWyuvyPZOBSzwbz4="; + }; - cmakeFlags = [ - "-DCMAKE_BUILD_TYPE=Release" - "-DCROSS_COMPILE32=0" - "-DBUILD_SERVER=0" - "-DBUILD_CLIENT=1" - "-DBUNDLED_JPEG=0" - "-DBUNDLED_LIBS=0" - "-DINSTALL_EXTRA=0" - "-DINSTALL_OMNIBOT=0" - "-DINSTALL_GEOIP=0" - "-DINSTALL_WOLFADMIN=0" - "-DFEATURE_AUTOUPDATE=0" - "-DINSTALL_DEFAULT_BASEDIR=." - "-DINSTALL_DEFAULT_BINDIR=." - "-DINSTALL_DEFAULT_MODDIR=." - ]; + fakeGit = writeShellApplication { + name = "git"; - postInstall = '' - ETMAIN=$out/etmain - mkdir -p $ETMAIN - ln -s ${pak0} $ETMAIN/pak0.pk3 - ln -s ${pak1} $ETMAIN/pak1.pk3 - ln -s ${pak2} $ETMAIN/pak2.pk3 - makeWrapper $out/${mainProgram} $out/bin/${mainProgram} --chdir $out + text = '' + if [ "$1" = "describe" ]; then + echo "${version}" + fi ''; + }; +in +stdenv.mkDerivation { + pname = "etlegacy"; + inherit version; + + src = fetchFromGitHub { + owner = "etlegacy"; + repo = "etlegacy"; + rev = "refs/tags/v${version}"; + hash = "sha256-CGXtc51vaId/SHbD34ZeT0gPsrl7p2DEw/Kp+GBZIaA="; # 2.81.1 + }; + + nativeBuildInputs = [ + cjson + cmake + fakeGit + git + makeWrapper + unzip + ]; + + buildInputs = [ + curl + freetype + glew + libjpeg + libogg + libpng + libtheora + lua + minizip + openal + SDL2 + sqlite + zlib + ]; - meta = with lib; { - description = "ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license"; - homepage = "https://etlegacy.com"; - platforms = ["i686-linux" "x86_64-linux"]; - license = [licenses.gpl3 licenses.cc-by-nc-sa-30]; - inherit mainProgram; - maintainers = with maintainers; [ashleyghooper]; - }; - } + preBuild = '' + # Required for build time to not be in 1980 + export SOURCE_DATE_EPOCH=$(date +%s) + # This indicates the build was by a CI pipeline and prevents the resource + # files from being flagged as 'dirty' due to potentially being custom built. + export CI="true" + ''; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + "-DCROSS_COMPILE32=0" + "-DBUILD_SERVER=1" + "-DBUILD_CLIENT=1" + "-DBUNDLED_JPEG=0" + "-DBUNDLED_LIBS=0" + "-DINSTALL_EXTRA=0" + "-DINSTALL_OMNIBOT=0" + "-DINSTALL_GEOIP=0" + "-DINSTALL_WOLFADMIN=0" + "-DFEATURE_AUTOUPDATE=0" + "-DINSTALL_DEFAULT_BASEDIR=${placeholder "out"}/lib/etlegacy" + "-DINSTALL_DEFAULT_BINDIR=${placeholder "out"}/bin" + ]; + + postInstall = '' + ln -s ${pak0} $out/lib/etlegacy/etmain/pak0.pk3 + ln -s ${pak1} $out/lib/etlegacy/etmain/pak1.pk3 + ln -s ${pak2} $out/lib/etlegacy/etmain/pak2.pk3 + + makeWrapper $out/bin/etl.* $out/bin/etl + makeWrapper $out/bin/etlded.* $out/bin/etlded + ''; + + hardeningDisable = [ "fortify" ]; + + meta = { + description = "ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license"; + homepage = "https://etlegacy.com"; + license = with lib.licenses; [ gpl3 cc-by-nc-sa-30 ]; + longDescription = '' + ET: Legacy, an open source project fully compatible client and server + for the popular online FPS game Wolfenstein: Enemy Territory - whose + gameplay is still considered unmatched by many, despite its great age. + ''; + mainProgram = "etl"; + maintainers = with lib.maintainers; [ ashleyghooper drupol ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/games/ferium/default.nix b/nixpkgs/pkgs/games/ferium/default.nix index 5a8859e95e2f..2cc48b6d8fbe 100644 --- a/nixpkgs/pkgs/games/ferium/default.nix +++ b/nixpkgs/pkgs/games/ferium/default.nix @@ -2,18 +2,18 @@ rustPlatform.buildRustPackage rec { pname = "ferium"; - version = "4.4.0"; + version = "4.4.1"; src = fetchFromGitHub { owner = "gorilla-devs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-eaYXWOoeqCtdpxIFQxu3wJfYg8ZkuGB32/b2yzVW/Mc="; + sha256 = "sha256-3ILDR6CmR/CTzZfUEPD10TQZRSDKSqHmwxU3GPHIyK8="; }; buildInputs = lib.optionals stdenv.isDarwin [ Security ]; - cargoHash = "sha256-5frotS85hwa24WRK6cVx1fmnolscKjRPkWoY6cnkbO8="; + cargoHash = "sha256-00rzn8eWcxRfPvIT2+EVQLd6e8gnMWx78QrwURpxstg="; # Disable the GUI file picker so that GTK/XDG dependencies aren't used buildNoDefaultFeatures = true; diff --git a/nixpkgs/pkgs/games/forge-mtg/default.nix b/nixpkgs/pkgs/games/forge-mtg/default.nix index fbcc652d80d3..cc5c56977bb9 100644 --- a/nixpkgs/pkgs/games/forge-mtg/default.nix +++ b/nixpkgs/pkgs/games/forge-mtg/default.nix @@ -8,13 +8,13 @@ }: let - version = "1.6.56"; + version = "1.6.57"; src = fetchFromGitHub { owner = "Card-Forge"; repo = "forge"; rev = "forge-${version}"; - hash = "sha256-VB/ToTq1XwHPEUNmbocwUoCP4DfyAFdlRAwxrx4tNJU="; + hash = "sha256-pxnnqLfyblbIgIRZZrx8Y8K43zUv9mu7PzZ7zltpEUQ="; }; # launch4j downloads and runs a native binary during the package phase. @@ -27,7 +27,7 @@ maven.buildMavenPackage { # Tests need a running Xorg. mvnParameters = "-DskipTests"; - mvnHash = "sha256-ajrHnaiJS7ZnR9BjLaXK2bnAKCp5UWQqYpjWbz3z6bw="; + mvnHash = "sha256-QK9g0tG75lIhEtf4jW03N32YbD9Fe5iI0JTuqmCTtnE="; nativeBuildInputs = [ makeWrapper ]; diff --git a/nixpkgs/pkgs/games/fteqw/default.nix b/nixpkgs/pkgs/games/fteqw/default.nix index 984c558180fe..c4129d3974d6 100644 --- a/nixpkgs/pkgs/games/fteqw/default.nix +++ b/nixpkgs/pkgs/games/fteqw/default.nix @@ -1,6 +1,6 @@ { lib , stdenv -, fetchsvn +, fetchFromGitHub , gzip , libvorbis , libmad diff --git a/nixpkgs/pkgs/games/fteqw/generic.nix b/nixpkgs/pkgs/games/fteqw/generic.nix index a420657ea578..a525cf5a6c44 100644 --- a/nixpkgs/pkgs/games/fteqw/generic.nix +++ b/nixpkgs/pkgs/games/fteqw/generic.nix @@ -1,5 +1,5 @@ { lib -, fetchsvn +, fetchFromGitHub , stdenv , libopus , xorg @@ -14,12 +14,13 @@ stdenv.mkDerivation { inherit pname buildFlags buildInputs nativeBuildInputs postFixup; - version = "unstable-2022-08-09"; + version = "unstable-2023-08-03"; - src = fetchsvn { - url = "https://svn.code.sf.net/p/fteqw/code/trunk"; - rev = "6303"; - sha256 = "sha256-tSTFX59iVUvndPRdREayKpkQ+YCYKCMQe2PXZfnTgPQ="; + src = fetchFromGitHub { + owner = "fte-team"; + repo = "fteqw"; + rev = "3adec5d0a53ba9ae32a92fc0a805cf6d5ec107fb"; + hash = "sha256-p/U02hwKI+YqlVXIS/7+gujknNDLr5L53unjvG5qLJU="; }; makeFlags = [ @@ -45,7 +46,7 @@ stdenv.mkDerivation { meta = with lib; { inherit description; - homepage = "https://fte.triptohell.info"; + homepage = "https://fteqw.org"; longDescription = '' FTE is a game engine baed on QuakeWorld able to play games such as Quake 1, 2, 3, and Hexen 2. diff --git a/nixpkgs/pkgs/games/gogdl/default.nix b/nixpkgs/pkgs/games/gogdl/default.nix index 346d5f81459a..a6b41e7bd645 100644 --- a/nixpkgs/pkgs/games/gogdl/default.nix +++ b/nixpkgs/pkgs/games/gogdl/default.nix @@ -1,4 +1,5 @@ { lib +, fetchpatch , writeScript , buildPythonApplication , fetchFromGitHub @@ -10,14 +11,14 @@ buildPythonApplication rec { pname = "gogdl"; - version = "0.7.2"; + version = "0.7.3"; format = "pyproject"; src = fetchFromGitHub { owner = "Heroic-Games-Launcher"; repo = "heroic-gogdl"; - rev = "d7f29dfef5818e8b323d04761e18a9abb750f93e"; - hash = "sha256-9dAenawt9h/sz5paVYoqk+nmzPrInlqyh1EgshI25CE="; + rev = "d2fa34bfba7beb2ecc0e3fc70a657f2c612c8a10"; + hash = "sha256-YCqtfY49lDg6sLrF/INOZVD9cMCwvejhySzUWrxHKAw="; }; disabled = pythonOlder "3.8"; @@ -27,6 +28,13 @@ buildPythonApplication rec { requests ]; + patches = [ + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/Heroic-Games-Launcher/heroic-gogdl/pull/37.patch"; + hash = "sha256-oZLetPoWzsEDrL0Bh89HB4hTn70FTh8aXj9mKGr4Dqw="; + }) + ]; + pythonImportsCheck = [ "gogdl" ]; meta = with lib; { diff --git a/nixpkgs/pkgs/games/gscrabble/default.nix b/nixpkgs/pkgs/games/gscrabble/default.nix index b21cdadac1e0..28e2a58b0d00 100644 --- a/nixpkgs/pkgs/games/gscrabble/default.nix +++ b/nixpkgs/pkgs/games/gscrabble/default.nix @@ -15,11 +15,11 @@ buildPythonApplication { doCheck = false; - nativeBuildInputs = [ wrapGAppsHook ]; + nativeBuildInputs = [ wrapGAppsHook gobject-introspection ]; buildInputs = with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad - gnome.adwaita-icon-theme gtk3 gobject-introspection + gnome.adwaita-icon-theme gtk3 ]; propagatedBuildInputs = with python3Packages; [ gst-python pygobject3 ]; diff --git a/nixpkgs/pkgs/games/gshogi/default.nix b/nixpkgs/pkgs/games/gshogi/default.nix index 4b674ac129df..77eab7918b91 100644 --- a/nixpkgs/pkgs/games/gshogi/default.nix +++ b/nixpkgs/pkgs/games/gshogi/default.nix @@ -21,10 +21,9 @@ python3.pkgs.buildPythonApplication rec { buildInputs = [ gtk3 - gobject-introspection ]; - nativeBuildInputs = [ wrapGAppsHook ]; + nativeBuildInputs = [ wrapGAppsHook gobject-introspection ]; propagatedBuildInputs = with python3.pkgs; [ pygobject3 diff --git a/nixpkgs/pkgs/games/heroic/default.nix b/nixpkgs/pkgs/games/heroic/default.nix index 1baf9cbf8163..05455ae7c7d6 100644 --- a/nixpkgs/pkgs/games/heroic/default.nix +++ b/nixpkgs/pkgs/games/heroic/default.nix @@ -10,23 +10,24 @@ , electron , gogdl , legendary-gl +, nile }: let appName = "heroic"; in stdenv.mkDerivation rec { pname = "heroic-unwrapped"; - version = "2.8.0"; + version = "2.9.1"; src = fetchFromGitHub { owner = "Heroic-Games-Launcher"; repo = "HeroicGamesLauncher"; rev = "v${version}"; - hash = "sha256-AZwJRBkWuzBPT+ADVHabiK2KRXe6clZFa0IO99BO2Wk="; + hash = "sha256-1FtAcp6cG2qRfWrAgCOQ87DzMvszqqhObfSzepezBGc="; }; offlineCache = fetchYarnDeps { yarnLock = "${src}/yarn.lock"; - hash = "sha256-xiLK0D9+oL2UMD7b/9htOQJEpYCNayKW+KJ/vNVCgsw="; + hash = "sha256-KEzTjtoBcHNJxC/7W/Bft75JZuZUSHieOOAwhbr5d3s="; }; nativeBuildInputs = [ @@ -37,6 +38,14 @@ in stdenv.mkDerivation rec { makeWrapper ]; + patches = [ + # Reverts part of upstream PR 2761 so that we don't have to use a non-free Electron fork. + # https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/2761 + ./remove-drm-support.patch + # Make Heroic create Steam shortcuts (to non-steam games) with the correct path to heroic. + ./fix-non-steam-shortcuts.patch + ]; + configurePhase = '' runHook preConfigure @@ -74,7 +83,11 @@ in stdenv.mkDerivation rec { chmod -R u+w "$out/share/${appName}/public/bin" "$out/share/${appName}/build/bin" rm -rf "$out/share/${appName}/public/bin" "$out/share/${appName}/build/bin" mkdir -p "$out/share/${appName}/build/bin/${binPlatform}" - ln -s "${gogdl}/bin/gogdl" "${legendary-gl}/bin/legendary" "$out/share/${appName}/build/bin/${binPlatform}" + ln -s \ + "${gogdl}/bin/gogdl" \ + "${legendary-gl}/bin/legendary" \ + "${nile}"/bin/nile \ + "$out/share/${appName}/build/bin/${binPlatform}" makeWrapper "${electron}/bin/electron" "$out/bin/heroic" \ --inherit-argv0 \ @@ -92,7 +105,7 @@ in stdenv.mkDerivation rec { ''; meta = with lib; { - description = "A Native GOG and Epic Games Launcher for Linux, Windows and Mac"; + description = "A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac"; homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher"; changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases"; license = licenses.gpl3Only; diff --git a/nixpkgs/pkgs/games/heroic/fix-non-steam-shortcuts.patch b/nixpkgs/pkgs/games/heroic/fix-non-steam-shortcuts.patch new file mode 100644 index 000000000000..7b46473245f7 --- /dev/null +++ b/nixpkgs/pkgs/games/heroic/fix-non-steam-shortcuts.patch @@ -0,0 +1,13 @@ +diff --git a/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts b/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts +index ebef6aa4..c8bd853d 100644 +--- a/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts ++++ b/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts +@@ -252,7 +252,7 @@ async function addNonSteamGame(props: { + // add new Entry + const newEntry = {} as ShortcutEntry + newEntry.AppName = props.gameInfo.title +- newEntry.Exe = `"${app.getPath('exe')}"` ++ newEntry.Exe = `"heroic"` + newEntry.StartDir = `"${process.cwd()}"` + + if (isFlatpak) { diff --git a/nixpkgs/pkgs/games/heroic/remove-drm-support.patch b/nixpkgs/pkgs/games/heroic/remove-drm-support.patch new file mode 100644 index 000000000000..f3cd80f003f3 --- /dev/null +++ b/nixpkgs/pkgs/games/heroic/remove-drm-support.patch @@ -0,0 +1,24 @@ +diff --git a/src/backend/main.ts b/src/backend/main.ts +index 2cd1a28f..a60e04d0 100644 +--- a/src/backend/main.ts ++++ b/src/backend/main.ts +@@ -19,8 +19,7 @@ import { + powerSaveBlocker, + protocol, + screen, +- clipboard, +- components ++ clipboard + } from 'electron' + import 'backend/updater' + import { autoUpdater } from 'electron-updater' +@@ -286,8 +285,7 @@ if (!gotTheLock) { + initImagesCache() + + if (!process.env.CI) { +- await components.whenReady() +- logInfo(['DRM module staus', components.status()]) ++ logInfo('DRM modules disabled for nixpkgs') + } + + // try to fix notification app name on windows diff --git a/nixpkgs/pkgs/games/jumpnbump/default.nix b/nixpkgs/pkgs/games/jumpnbump/default.nix index b502b4f1396d..193d4dc0b585 100644 --- a/nixpkgs/pkgs/games/jumpnbump/default.nix +++ b/nixpkgs/pkgs/games/jumpnbump/default.nix @@ -27,8 +27,8 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ]; - nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ]; - buildInputs = [ SDL2 SDL2_mixer SDL2_net gtk3 gobject-introspection ]; + nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook gobject-introspection ]; + buildInputs = [ SDL2 SDL2_mixer SDL2_net gtk3 ]; postInstall = '' make -C menu PREFIX=$out all install diff --git a/nixpkgs/pkgs/games/keeperrl/default.nix b/nixpkgs/pkgs/games/keeperrl/default.nix index 8fb6d563329b..c66ffdee920d 100644 --- a/nixpkgs/pkgs/games/keeperrl/default.nix +++ b/nixpkgs/pkgs/games/keeperrl/default.nix @@ -13,18 +13,18 @@ , libtheora , unfree_assets ? false }: -stdenv.mkDerivation rec { +let pname = "keeperrl"; version = "alpha34"; - free-src = fetchFromGitHub { + free_src = fetchFromGitHub { owner = "miki151"; - repo = "keeperrl"; + repo = pname; rev = version; sha256 = "sha256-0sww+ppctXvxMouclG3OdXpcNgrrOZJw9z8s2GhJ+IE="; }; - assets = if unfree_assets then requireFile rec { + assets = requireFile rec { name = "keeperrl_data_${version}.tar.gz"; message = '' This nix expression requires that the KeeperRL art assets are already @@ -39,11 +39,15 @@ stdenv.mkDerivation rec { "nix-prefetch-url file://\$PWD/${name}". ''; sha256 = "0115pxdzdyma2vicxgr0j21pp82gxdyrlj090s8ihp0b50f0nlll"; - } else null; + }; +in + +stdenv.mkDerivation { + inherit pname version; - sourceRoot = free-src.name; + srcs = [ free_src ] ++ lib.optional unfree_assets assets; - srcs = [ free-src ] ++ lib.optional unfree_assets assets; + sourceRoot = free_src.name; postUnpack = lib.optionalString unfree_assets '' mv data $sourceRoot diff --git a/nixpkgs/pkgs/games/klavaro/default.nix b/nixpkgs/pkgs/games/klavaro/default.nix index 6ea029176482..79585e74a095 100644 --- a/nixpkgs/pkgs/games/klavaro/default.nix +++ b/nixpkgs/pkgs/games/klavaro/default.nix @@ -39,8 +39,14 @@ stdenv.mkDerivation rec { --replace "/usr/bin/file" "${file}/bin/file" ''; - # Hack to avoid TMPDIR in RPATHs. - preFixup = ''rm -rf "$(pwd)" ''; + # remove forbidden references to $TMPDIR + preFixup = lib.optionalString stdenv.isLinux '' + for f in "$out"/bin/*; do + if isELF "$f"; then + patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$f" + fi + done + ''; meta = with lib; { description = "Free touch typing tutor program"; diff --git a/nixpkgs/pkgs/games/legendary-gl/default.nix b/nixpkgs/pkgs/games/legendary-gl/default.nix index a863b1d1cee7..569148f2cf50 100644 --- a/nixpkgs/pkgs/games/legendary-gl/default.nix +++ b/nixpkgs/pkgs/games/legendary-gl/default.nix @@ -4,20 +4,24 @@ , buildPythonApplication , pythonOlder , requests +, filelock }: buildPythonApplication rec { pname = "legendary-gl"; # Name in pypi - version = "0.20.32"; + version = "0.20.33"; src = fetchFromGitHub { owner = "derrod"; repo = "legendary"; rev = "refs/tags/${version}"; - sha256 = "sha256-MsvhVS3lqhgBJ+S/cjXFP70I3rM5WBYT7TyVlRWhNWw="; + sha256 = "sha256-fEQUChkxrKV2IkFGORUolZE2qTzA10Xxogjl5Va4TcE="; }; - propagatedBuildInputs = [ requests ]; + propagatedBuildInputs = [ + requests + filelock + ]; disabled = pythonOlder "3.8"; diff --git a/nixpkgs/pkgs/games/lgames/lbreakout2/default.nix b/nixpkgs/pkgs/games/lgames/lbreakout2/default.nix index 4645baf06244..f554a1683eee 100644 --- a/nixpkgs/pkgs/games/lgames/lbreakout2/default.nix +++ b/nixpkgs/pkgs/games/lgames/lbreakout2/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchurl +, fetchpatch , SDL , SDL_mixer , libintl @@ -17,6 +18,12 @@ stdenv.mkDerivation rec { sha256 = "0vwdlyvh7c4y80q5vp7fyfpzbqk9lq3w8pvavi139njkalbxc14i"; }; + # Can't exit from pause without this patch + patches = [(fetchpatch { + url = "https://sources.debian.org/data/main/l/lbreakout2/2.6.5-2/debian/patches/sdl_fix_pauses.patch"; + hash = "sha256-ycsuxfokpOblLky42MwtJowdEp7v5dZRMFIR4id4ZBI="; + })]; + buildInputs = [ SDL SDL_mixer @@ -25,6 +32,11 @@ stdenv.mkDerivation rec { zlib ]; + # With fortify it crashes at runtime: + # *** buffer overflow detected ***: terminated + # Aborted (core dumped) + hardeningDisable = [ "fortify" ]; + meta = with lib; { homepage = "http://lgames.sourceforge.net/LBreakout2/"; description = "Breakout clone from the LGames series"; diff --git a/nixpkgs/pkgs/games/mindustry/default.nix b/nixpkgs/pkgs/games/mindustry/default.nix index 0f1a609f4e4d..fdfad0cab2e7 100644 --- a/nixpkgs/pkgs/games/mindustry/default.nix +++ b/nixpkgs/pkgs/games/mindustry/default.nix @@ -243,7 +243,7 @@ stdenv.mkDerivation rec { ]; license = licenses.gpl3Plus; maintainers = with maintainers; [ chkno fgaz thekostins ]; - platforms = platforms.x86_64; + platforms = if enableClient then platforms.x86_64 else platforms.linux; # Hash mismatch on darwin: # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293 broken = stdenv.isDarwin; diff --git a/nixpkgs/pkgs/games/minecraft-servers/update.py b/nixpkgs/pkgs/games/minecraft-servers/update.py index 0e7f10a8c932..f272c8b71a84 100755 --- a/nixpkgs/pkgs/games/minecraft-servers/update.py +++ b/nixpkgs/pkgs/games/minecraft-servers/update.py @@ -117,8 +117,11 @@ def get_latest_major_releases(releases: List[Version]) -> Dict[str, Version]: Version object for 1.16.5. """ return { - major_release: sorted(releases, key=lambda x: x.id, reverse=True)[0] - for major_release, releases in group_major_releases(releases).items() + major_release: max( + (release for release in releases if get_major_release(release.id) == major_release), + key=lambda x: tuple(map(int, x.id.split('.'))), + ) + for major_release in group_major_releases(releases) } diff --git a/nixpkgs/pkgs/games/minecraft-servers/versions.json b/nixpkgs/pkgs/games/minecraft-servers/versions.json index 8c751bf70074..142ef4e51c5d 100644 --- a/nixpkgs/pkgs/games/minecraft-servers/versions.json +++ b/nixpkgs/pkgs/games/minecraft-servers/versions.json @@ -1,8 +1,8 @@ { "1.20": { - "url": "https://piston-data.mojang.com/v1/objects/15c777e2cfe0556eef19aab534b186c0c6f277e1/server.jar", - "sha1": "15c777e2cfe0556eef19aab534b186c0c6f277e1", - "version": "1.20", + "url": "https://piston-data.mojang.com/v1/objects/84194a2f286ef7c14ed7ce0090dba59902951553/server.jar", + "sha1": "84194a2f286ef7c14ed7ce0090dba59902951553", + "version": "1.20.1", "javaVersion": 17 }, "1.19": { @@ -78,9 +78,9 @@ "javaVersion": 8 }, "1.7": { - "url": "https://launcher.mojang.com/v1/objects/4cec86a928ec171fdc0c6b40de2de102f21601b5/server.jar", - "sha1": "4cec86a928ec171fdc0c6b40de2de102f21601b5", - "version": "1.7.9", + "url": "https://launcher.mojang.com/v1/objects/952438ac4e01b4d115c5fc38f891710c4941df29/server.jar", + "sha1": "952438ac4e01b4d115c5fc38f891710c4941df29", + "version": "1.7.10", "javaVersion": 8 }, "1.6": { diff --git a/nixpkgs/pkgs/games/minecraft/default.nix b/nixpkgs/pkgs/games/minecraft/default.nix index a8e883acae37..3009eb0b9a08 100644 --- a/nixpkgs/pkgs/games/minecraft/default.nix +++ b/nixpkgs/pkgs/games/minecraft/default.nix @@ -100,8 +100,7 @@ stdenv.mkDerivation rec { sha256 = "0w8z21ml79kblv20wh5lz037g130pxkgs8ll9s3bi94zn2pbrhim"; }; - nativeBuildInputs = [ makeWrapper wrapGAppsHook copyDesktopItems ]; - buildInputs = [ gobject-introspection ]; + nativeBuildInputs = [ makeWrapper wrapGAppsHook copyDesktopItems gobject-introspection ]; sourceRoot = "."; diff --git a/nixpkgs/pkgs/games/minesweep-rs/default.nix b/nixpkgs/pkgs/games/minesweep-rs/default.nix index 4d09d7715ac3..b6746fbe4ca2 100644 --- a/nixpkgs/pkgs/games/minesweep-rs/default.nix +++ b/nixpkgs/pkgs/games/minesweep-rs/default.nix @@ -5,16 +5,16 @@ rustPlatform.buildRustPackage rec { pname = "minesweep-rs"; - version = "6.0.19"; + version = "6.0.27"; src = fetchFromGitHub { owner = "cpcloud"; repo = pname; rev = "v${version}"; - hash = "sha256-dFY+t6MVRdbp0z5mbnREd/t6v1D+7g/vD+K8mcJvn9E="; + hash = "sha256-z94mKAboLs6fi+RKfwijm2RDpO729uJoSlxSzBdrkRI="; }; - cargoHash = "sha256-mLRD5Z/ZzfT1BFFSyYmJkY98vMY/Elt3Gy0SboCpzec="; + cargoHash = "sha256-IRWPjOUV3ElXPNYCRvQQAw74YBtEnTHtrWDYHO/eDNE="; meta = with lib; { description = "Sweep some mines for fun, and probably not for profit"; diff --git a/nixpkgs/pkgs/games/nile/default.nix b/nixpkgs/pkgs/games/nile/default.nix new file mode 100644 index 000000000000..beb444ae11ec --- /dev/null +++ b/nixpkgs/pkgs/games/nile/default.nix @@ -0,0 +1,84 @@ +{ lib +, writeScript +, buildPythonApplication +, fetchFromGitHub +, pythonOlder +, setuptools +, requests +, protobuf +, pycryptodome +, zstandard +, json5 +, platformdirs +, cacert +}: + +buildPythonApplication rec { + pname = "nile"; + version = "1.0.0"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "imLinguin"; + repo = "nile"; + rev = "f5f3b96f6483c59cfc646afbda6e97cb0bd94778"; + hash = "sha256-HibY3U9/MibEDwHY+YiErW/pz6qwtps8wwjhznTISgA="; + }; + + disabled = pythonOlder "3.8"; + + propagatedBuildInputs = [ + setuptools + requests + protobuf + pycryptodome + zstandard + json5 + platformdirs + ]; + + pyprojectAppendix = '' + [tool.setuptools.packages.find] + include = ["nile*"] + ''; + + postPatch = '' + echo "$pyprojectAppendix" >> pyproject.toml + ''; + + pythonImportsCheck = [ "nile" ]; + + meta = with lib; { + description = "Unofficial Amazon Games client"; + homepage = "https://github.com/imLinguin/nile"; + license = with licenses; [ gpl3 ]; + maintainers = with maintainers; [ aidalgol ]; + }; + + # Upstream does not create git tags when bumping the version, so we have to + # extract it from the source code on the main branch. + passthru.updateScript = writeScript "gogdl-update-script" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl gnused jq common-updater-scripts + set -eou pipefail; + + owner=imLinguin + repo=nile + path='nile/__init__.py' + + version=$( + curl --cacert "${cacert}/etc/ssl/certs/ca-bundle.crt" \ + https://raw.githubusercontent.com/$owner/$repo/main/$path | + sed -n 's/^\s*version\s*=\s*"\([0-9]\.[0-9]\.[0-9]\)"\s*$/\1/p') + + commit=$(curl --cacert "${cacert}/etc/ssl/certs/ca-bundle.crt" \ + https://api.github.com/repos/$owner/$repo/commits?path=$path | + jq -r '.[0].sha') + + update-source-version \ + ${pname} \ + "$version" \ + --file=./pkgs/games/nile/default.nix \ + --rev=$commit + ''; +} diff --git a/nixpkgs/pkgs/games/oh-my-git/default.nix b/nixpkgs/pkgs/games/oh-my-git/default.nix index cd4fd216eaa6..f2ac8b4289c6 100644 --- a/nixpkgs/pkgs/games/oh-my-git/default.nix +++ b/nixpkgs/pkgs/games/oh-my-git/default.nix @@ -1,4 +1,5 @@ { lib +, autoPatchelfHook , copyDesktopItems , fetchFromGitHub , makeDesktopItem @@ -6,8 +7,8 @@ , alsa-lib , gcc-unwrapped , git -, godot-export-templates -, godot-headless +, godot3-export-templates +, godot3-headless , libGLU , libX11 , libXcursor @@ -36,8 +37,9 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ + autoPatchelfHook copyDesktopItems - godot-headless + godot3-headless ]; buildInputs = [ @@ -89,10 +91,10 @@ stdenv.mkDerivation rec { # expects the template-file at .../templates/3.2.3.stable/linux_x11_64_release # with 3.2.3 being the version of godot. mkdir -p $HOME/.local/share/godot - ln -s ${godot-export-templates}/share/godot/templates $HOME/.local/share/godot + ln -s ${godot3-export-templates}/share/godot/templates $HOME/.local/share/godot mkdir -p $out/share/oh-my-git - godot-headless --export "Linux" $out/share/oh-my-git/oh-my-git + godot3-headless --export "Linux" $out/share/oh-my-git/oh-my-git runHook postBuild ''; @@ -116,6 +118,12 @@ stdenv.mkDerivation rec { runHook postInstall ''; + runtimeDependencies = map lib.getLib [ + alsa-lib + libpulseaudio + udev + ]; + meta = with lib; { homepage = "https://ohmygit.org/"; description = "An interactive Git learning game"; diff --git a/nixpkgs/pkgs/games/openarena/default.nix b/nixpkgs/pkgs/games/openarena/default.nix index 7b1f793895ed..30f221902f77 100644 --- a/nixpkgs/pkgs/games/openarena/default.nix +++ b/nixpkgs/pkgs/games/openarena/default.nix @@ -1,43 +1,122 @@ -{ lib, fetchurl, makeWrapper, patchelf, pkgs, stdenv, SDL, libglvnd, libogg, libvorbis, curl, openal }: +{ lib +, fetchzip +, fetchFromGitHub +, stdenv +, fetchpatch +, copyDesktopItems +, curl +, makeBinaryWrapper +, pkg-config +, which +, freetype +, libglvnd +, libogg +, libvorbis +, libxmp +, openal +, SDL2 +, speex +, makeDesktopItem +}: -stdenv.mkDerivation { - pname = "openarena"; - version = "0.8.8"; +let + openarena-maps = fetchzip { + name = "openarena-maps"; + url = "https://download.tuxfamily.org/openarena/rel/088/openarena-0.8.8.zip"; + hash = "sha256-Rup1n14k9sKcyVFYzFqPYV+BEBCnUNwpnFsnyGrhl20="; + }; - src = fetchurl { - name = "openarena.zip"; - url = "http://openarena.ws/request.php?4"; - sha256 = "0jmc1cmdz1rcvqc9ilzib1kilpwap6v0d331l6q53wsibdzsz3ss"; + openarena-source = fetchFromGitHub { + name = "openarena-source"; + owner = "OpenArena"; + repo = "engine"; + rev = "075cb860a4d2bc43e75e5f506eba7da877708aba"; + hash = "sha256-ofQKQyS3ti5TSN+zqwPFYuJiB9kvdER6zTWn8yrOpQU="; }; +in +stdenv.mkDerivation (finalAttrs: { + pname = "openarena"; + version = "unstable-2023-03-02"; + + srcs = [ + openarena-source + openarena-maps + ]; + + sourceRoot = "openarena-source"; + + patches = [ + # Fix Makefile `copyFiles` target + # Related upstream issue: https://github.com/OpenArena/engine/issues/83 + (fetchpatch { + url = "https://github.com/OpenArena/engine/commit/f2b424bd332e90a1e2592edd21c62bdb8cd05214.patch"; + hash = "sha256-legiXLtZAeG2t1esiBa37qkAgxPJVM7JLhjpxGUmWCo="; + }) + ]; + + nativeBuildInputs = [ + copyDesktopItems + curl + makeBinaryWrapper + pkg-config + which + ]; + + buildInputs = [ + freetype + libglvnd + libogg + libvorbis + libxmp + openal + SDL2 + speex + ]; - nativeBuildInputs = [ pkgs.unzip patchelf makeWrapper]; - - installPhase = let - gameDir = "$out/openarena-$version"; - interpreter = "$(< \"$NIX_CC/nix-support/dynamic-linker\")"; - libPath = lib.makeLibraryPath [ SDL libglvnd libogg libvorbis curl openal ]; - arch = { - "x86_64-linux" = "x86_64"; - "i386-linux" = "i386"; - }.${stdenv.hostPlatform.system}; - in '' - mkdir -pv $out/bin - cd $out - unzip $src - - patchelf --set-interpreter "${interpreter}" "${gameDir}/openarena.${arch}" - patchelf --set-interpreter "${interpreter}" "${gameDir}/oa_ded.${arch}" - - makeWrapper "${gameDir}/openarena.${arch}" "$out/bin/openarena" \ - --prefix LD_LIBRARY_PATH : "${libPath}" - makeWrapper "${gameDir}/oa_ded.${arch}" "$out/bin/oa_ded" + enableParallelBuilding = true; + + makeFlags = [ + "USE_INTERNAL_LIBS=0" + "USE_FREETYPE=1" + "USE_OPENAL_DLOPEN=0" + "USE_CURL_DLOPEN=0" + "ARCH=${stdenv.hostPlatform.linuxArch}" + ]; + + installTargets = [ "copyfiles" ]; + installFlags = [ "COPYDIR=$(out)/share/openarena" ]; + + preInstall = '' + mkdir -p $out/share/openarena + ''; + + postInstall = '' + install -Dm644 misc/quake3.svg $out/share/icons/hicolor/scalable/apps/openarena.svg + + makeWrapper $out/share/openarena/openarena.* $out/bin/openarena + makeWrapper $out/share/openarena/oa_ded.* $out/bin/oa_ded + + ln -s ${openarena-maps}/baseoa $out/share/openarena/baseoa + ln -s ${openarena-maps}/missionpack $out/share/openarena/missionpack ''; + desktopItems = [ + (makeDesktopItem { + name = "OpenArena"; + exec = "openarena"; + icon = "openarena"; + comment = "A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena"; + desktopName = "OpenArena"; + categories = [ "Game" "ActionGame" ]; + }) + ]; + meta = { - description = "Crossplatform openarena client"; + description = "A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena"; homepage = "http://openarena.ws/"; - maintainers = [ lib.maintainers.wyvie ]; - platforms = [ "i386-linux" "x86_64-linux" ]; - license = lib.licenses.gpl2; + license = lib.licenses.gpl2Plus; + mainProgram = "openarena"; + maintainers = with lib.maintainers; [ drupol wyvie ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/nixpkgs/pkgs/games/openra_2019/common.nix b/nixpkgs/pkgs/games/openra_2019/common.nix index 4445cc53ba6a..5932eeb6e6d0 100644 --- a/nixpkgs/pkgs/games/openra_2019/common.nix +++ b/nixpkgs/pkgs/games/openra_2019/common.nix @@ -61,7 +61,7 @@ in { dontStrip = true; meta = { - maintainers = with maintainers; [ fusion809 msteen rardiol ]; + maintainers = with maintainers; [ fusion809 msteen ]; license = licenses.gpl3; platforms = platforms.linux; }; diff --git a/nixpkgs/pkgs/games/openttd/default.nix b/nixpkgs/pkgs/games/openttd/default.nix index 3071142fc924..6122b586770e 100644 --- a/nixpkgs/pkgs/games/openttd/default.nix +++ b/nixpkgs/pkgs/games/openttd/default.nix @@ -1,8 +1,11 @@ -{ lib, stdenv, fetchurl, fetchzip, cmake, SDL2, libpng, zlib, xz, freetype, fontconfig +{ lib, stdenv, fetchurl, fetchzip, cmake, pkg-config +, SDL2, libpng, zlib, xz, freetype, fontconfig +, nlohmann_json, curl, icu, harfbuzz, expat, glib, pcre2 , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true -, withFluidSynth ? true, audioDriver ? "alsa", fluidsynth, soundfont-fluid, procps -, writeScriptBin, makeWrapper, runtimeShell -}: +, withFluidSynth ? true, audioDriver ? "alsa" +, fluidsynth, soundfont-fluid, libsndfile +, flac, libogg, libvorbis, libopus, libmpg123, pulseaudio, alsa-lib, libjack2 +, procps, writeScriptBin, makeWrapper, runtimeShell }: let opengfx = fetchzip { @@ -29,16 +32,21 @@ let in stdenv.mkDerivation rec { pname = "openttd"; - version = "13.3"; + version = "13.4"; src = fetchurl { url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz"; - hash = "sha256-qvoW0vtnFlE0xzqIj3n3pe19oXoEz26ez2csnLiecZI="; + hash = "sha256-Kh3roBv+WOIYiHn0UMP6TzgZJxq0m/NI3WZUXwQNFG8="; }; - nativeBuildInputs = [ cmake makeWrapper ]; - buildInputs = [ SDL2 libpng xz zlib freetype fontconfig ] - ++ lib.optionals withFluidSynth [ fluidsynth soundfont-fluid ]; + nativeBuildInputs = [ cmake pkg-config makeWrapper ]; + buildInputs = [ + SDL2 libpng xz zlib freetype fontconfig + nlohmann_json curl icu harfbuzz expat glib pcre2 + ] ++ lib.optionals withFluidSynth [ + fluidsynth soundfont-fluid libsndfile + flac libogg libvorbis libopus libmpg123 pulseaudio alsa-lib libjack2 + ]; prefixKey = "--prefix-dir="; diff --git a/nixpkgs/pkgs/games/openttd/jgrpp.nix b/nixpkgs/pkgs/games/openttd/jgrpp.nix index 46fe0ab60ac4..da113ed1afc2 100644 --- a/nixpkgs/pkgs/games/openttd/jgrpp.nix +++ b/nixpkgs/pkgs/games/openttd/jgrpp.nix @@ -2,14 +2,20 @@ openttd.overrideAttrs (oldAttrs: rec { pname = "openttd-jgrpp"; - version = "0.54.1"; + version = "0.54.4"; src = fetchFromGitHub rec { owner = "JGRennison"; repo = "OpenTTD-patches"; rev = "jgrpp-${version}"; - hash = "sha256-MfYh2a3wjWB/5zgTE8AAIREI2OEhykqF0Rad7I+912U="; + hash = "sha256-bTpHlKffQbANXIrAn9WSEK/PEzBW1nzaHhGKIyclAo0="; }; buildInputs = oldAttrs.buildInputs ++ [ zstd ]; + + meta = { + homepage = "https://github.com/JGRennison/OpenTTD-patches"; + changelog = "https://github.com/JGRennison/OpenTTD-patches/blob/jgrpp-${version}/jgrpp-changelog.md"; + }; + }) diff --git a/nixpkgs/pkgs/games/openxcom/default.nix b/nixpkgs/pkgs/games/openxcom/default.nix index ce9d098082d5..c09bd5c28f2f 100644 --- a/nixpkgs/pkgs/games/openxcom/default.nix +++ b/nixpkgs/pkgs/games/openxcom/default.nix @@ -1,40 +1,54 @@ -{ lib -, stdenv -, fetchFromGitHub +{ boost , cmake -, pkg-config +, fetchFromGitHub +, lib , libGLU , libGL -, zlib , openssl -, yaml-cpp -, boost +, pkg-config , SDL , SDL_image , SDL_mixer , SDL_gfx +, stdenv +, yaml-cpp +, zlib }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "openxcom"; - version = "1.0.0.2019.10.18"; + version = "1.0.0.2023.08.12"; src = fetchFromGitHub { owner = "OpenXcom"; repo = "OpenXcom"; - rev = "f9853b2cb8c8f741ac58707487ef493416d890a3"; - hash = "sha256-APv49ZT94oeM4KVKGtUdoQ1t8Ly8lsocr+FqXiRXbk0="; + rev = "bd632cc8569a57fdc3b68ce53f6ea850422ec5ac"; + hash = "sha256-ouYZ4rAEluqeP+ZUrbEZwCpXCw0cZLWsf1GbIE3jaTc="; }; - nativeBuildInputs = [ cmake pkg-config ]; + nativeBuildInputs = [ + cmake + pkg-config + ]; - buildInputs = [ SDL SDL_gfx SDL_image SDL_mixer boost yaml-cpp libGLU libGL openssl zlib ]; + buildInputs = [ + boost + libGL + libGLU + SDL + SDL_gfx + SDL_image + SDL_mixer + yaml-cpp + openssl + zlib + ]; - meta = with lib; { + meta = { description = "Open source clone of UFO: Enemy Unknown"; homepage = "https://openxcom.org"; - maintainers = with maintainers; [ cpages ]; - platforms = platforms.linux; - license = licenses.gpl3; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ cpages ]; + platforms = lib.platforms.linux; }; } diff --git a/nixpkgs/pkgs/games/osu-lazer/bin.nix b/nixpkgs/pkgs/games/osu-lazer/bin.nix index 7cbf6bc83956..0854b3861173 100644 --- a/nixpkgs/pkgs/games/osu-lazer/bin.nix +++ b/nixpkgs/pkgs/games/osu-lazer/bin.nix @@ -7,21 +7,21 @@ let pname = "osu-lazer-bin"; - version = "2023.803.0"; + version = "2023.815.0"; name = "${pname}-${version}"; osu-lazer-bin-src = { aarch64-darwin = { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip"; - sha256 = "sha256-41UvP3h7Nnmjnjr1nl35uCe6CUK54p1Ok1KhQ8F5/4M="; + sha256 = "sha256-lijX8UOSWZPzQdA+DOPcgKW3PxKFbNtBSUrq903zx7E="; }; x86_64-darwin = { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip"; - sha256 = "sha256-qxAgXL4igfttsPN3xr4JPBGy9FalR1JIS7OtB4iqNB8="; + sha256 = "sha256-XuQ82h/ebo7oWcWq4vUOguh6FUsWO+xFpz7Z++DjkzY="; }; x86_64-linux = { url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage"; - sha256 = "sha256-fO9j7hIEhxEDWVdNAPVriHuDQyF2XgReeROBNpXM8gU="; + sha256 = "sha256-wRWJQQ4rn3A8Dd53gPt62pOtd9KRmYXxuejd8RGOAdw="; }; }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); diff --git a/nixpkgs/pkgs/games/osu-lazer/default.nix b/nixpkgs/pkgs/games/osu-lazer/default.nix index 17a42db26b59..4286edf6f09b 100644 --- a/nixpkgs/pkgs/games/osu-lazer/default.nix +++ b/nixpkgs/pkgs/games/osu-lazer/default.nix @@ -17,13 +17,13 @@ buildDotnetModule rec { pname = "osu-lazer"; - version = "2023.803.0"; + version = "2023.815.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; rev = version; - sha256 = "sha256-q2rw44veVWpKcW/wCkBHNxaIwOXuflejIvqhGQgoh8o="; + sha256 = "sha256-Lm/unDa1ADc2zprrgP/a2bOzHb02CwU9gcvhmTOXKIM="; }; projectFile = "osu.Desktop/osu.Desktop.csproj"; diff --git a/nixpkgs/pkgs/games/osu-lazer/deps.nix b/nixpkgs/pkgs/games/osu-lazer/deps.nix index 816ead326bbe..5bae8db3417c 100644 --- a/nixpkgs/pkgs/games/osu-lazer/deps.nix +++ b/nixpkgs/pkgs/games/osu-lazer/deps.nix @@ -6,7 +6,7 @@ (fetchNuGet { pname = "Clowd.Squirrel"; version = "2.9.42"; sha256 = "1xxrr9jmgn343d467nz40569mkybinnmxaxyc4fhgy6yddvzk1y0"; }) (fetchNuGet { pname = "CodeFileSanity"; version = "0.0.37"; sha256 = "03ja3g66lb0smjmkr3yf28h7fy52wwbdnf6p268zfla3azh006pq"; }) (fetchNuGet { pname = "DiffPlex"; version = "1.7.1"; sha256 = "1q78r70pirgb7j5wkh454ws237lihh0fig212cpbj02cz53c2h6j"; }) - (fetchNuGet { pname = "DiscordRichPresence"; version = "1.1.3.18"; sha256 = "0p4bhaggjjfd4gl06yiphqgncxgcq2bws4sjkrw0n2ldf3hgrps3"; }) + (fetchNuGet { pname = "DiscordRichPresence"; version = "1.1.4.20"; sha256 = "115nbg7d4j2v5l40hqp4q4s0pm84r1yl7d8fbxyw89s1nbab6qp3"; }) (fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.3.0.1"; sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; }) (fetchNuGet { pname = "Fody"; version = "6.7.0"; sha256 = "0fv0zrffa296qjyi11yk31vfqh6gm1nxsx8g5zz380jcsrilnp3h"; }) (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; }) @@ -134,10 +134,10 @@ (fetchNuGet { pname = "ppy.ManagedBass"; version = "2022.1216.0"; sha256 = "19nnj1hq2v21mrplnivjr9c4y3wg4hhfnc062sjgzkmiv1cchvf8"; }) (fetchNuGet { pname = "ppy.ManagedBass.Fx"; version = "2022.1216.0"; sha256 = "1vw573mkligpx9qiqasw1683cqaa1kgnxhlnbdcj9c4320b1pwjm"; }) (fetchNuGet { pname = "ppy.ManagedBass.Mix"; version = "2022.1216.0"; sha256 = "185bpvgbnd8y20r7vxb1an4pd1aal9b7b5wvmv3knz0qg8j0chd9"; }) - (fetchNuGet { pname = "ppy.osu.Framework"; version = "2023.716.0"; sha256 = "11qzwxrmbnzrx0g3dqx9ici58kfn5b3g3riwis3fsjfyiziwzvx8"; }) + (fetchNuGet { pname = "ppy.osu.Framework"; version = "2023.815.0"; sha256 = "0xda8fd70x6ljbaqliikbjff84arjm3va5ibdv5p9sijn5arhzy8"; }) (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2022.525.0"; sha256 = "1zsqj3xng06bb46vg79xx35n2dsh3crqg951r1ga2gxqzgzy4nk0"; }) - (fetchNuGet { pname = "ppy.osu.Framework.SourceGeneration"; version = "2023.709.0"; sha256 = "1p7lh7583lka6awb4q3vwfhlmry69n9gfjp2h0zm2bvyn9p1928f"; }) - (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2023.707.0"; sha256 = "1hndj38qpi7936z7dh6lyip00hvx99q8xzrmkvrp9562ys9xjdpw"; }) + (fetchNuGet { pname = "ppy.osu.Framework.SourceGeneration"; version = "2023.720.0"; sha256 = "001vvxyv483ibid25fdknvij77x0y983mp4psx2lbg3x2al7yxax"; }) + (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2023.719.0"; sha256 = "1isy0jd8xkjw72m4akh85nmlcfp6na1ksghyajs4amiagjgvvn47"; }) (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.211"; sha256 = "0j4a9n39pqm0cgdcps47p5n2mqph3h94r7hmf0bs59imif4jxvjy"; }) (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.671-alpha"; sha256 = "1yzakyp0wwayd9k2wmmfklmpvhig0skqk6sn98axpfgnq4hxhllm"; }) (fetchNuGet { pname = "ppy.Veldrid"; version = "4.9.3-g9f8aa2931a"; sha256 = "0jzjaakcfy3x85wx8smp4j7hffbynqakgqvwslr3bkbqlfdxxbil"; }) diff --git a/nixpkgs/pkgs/games/path-of-building/default.nix b/nixpkgs/pkgs/games/path-of-building/default.nix index a6a51664b088..c4242eb4ea05 100644 --- a/nixpkgs/pkgs/games/path-of-building/default.nix +++ b/nixpkgs/pkgs/games/path-of-building/default.nix @@ -1,49 +1,49 @@ -{ stdenv, lib, fetchFromGitHub, runCommand, unzip, meson, ninja, pkg-config, qtbase, qttools, wrapQtAppsHook, luajit }: +{ stdenv, lib, fetchFromGitHub, unzip, meson, ninja, pkg-config, qtbase, qttools, wrapQtAppsHook, luajit }: let - dataVersion = "2.30.1"; - frontendVersion = "unstable-2023-04-09"; -in -stdenv.mkDerivation { - pname = "path-of-building"; - version = "${dataVersion}-${frontendVersion}"; - - src = fetchFromGitHub { - owner = "ernstp"; - repo = "pobfrontend"; - rev = "9faa19aa362f975737169824c1578d5011487c18"; - hash = "sha256-zhw2PZ6ZNMgZ2hG+a6AcYBkeg7kbBHNc2eSt4if17Wk="; - }; + data = stdenv.mkDerivation(finalAttrs: { + pname = "path-of-building-data"; + version = "2.31.2"; - data = runCommand "path-of-building-data" { src = fetchFromGitHub { owner = "PathOfBuildingCommunity"; repo = "PathOfBuilding"; - rev = "v${dataVersion}"; - hash = "sha256-2itcALgl8eDkZylb/hmePDMILM4RxW2u5LYLbg+NNJ4="; + rev = "v${finalAttrs.version}"; + hash = "sha256-E178uYVQ+B08h1lM7h+hwfMb08VZK+r25pD4haT1tc8="; }; nativeBuildInputs = [ unzip ]; - } - '' - # I have absolutely no idea how this file is generated - # and I don't think I want to know. The Flatpak also does this. - unzip -j -d $out $src/runtime-win32.zip lua/sha1.lua - # Install the actual data - cp -r $src/src $src/runtime/lua/*.lua $src/manifest.xml $out + buildCommand = '' + # I have absolutely no idea how this file is generated + # and I don't think I want to know. The Flatpak also does this. + unzip -j -d $out $src/runtime-win32.zip lua/sha1.lua - # Pretend this is an official build so we don't get the ugly "dev mode" warning - substituteInPlace $out/manifest.xml --replace '<Version' '<Version platform="nixos"' - touch $out/installed.cfg + # Install the actual data + cp -r $src/src $src/runtime/lua/*.lua $src/manifest.xml $out - # Completely stub out the update check - chmod +w $out/src/UpdateCheck.lua - echo 'return "none"' > $out/src/UpdateCheck.lua - ''; + # Pretend this is an official build so we don't get the ugly "dev mode" warning + substituteInPlace $out/manifest.xml --replace '<Version' '<Version platform="nixos"' + touch $out/installed.cfg + + # Completely stub out the update check + chmod +w $out/src/UpdateCheck.lua + echo 'return "none"' > $out/src/UpdateCheck.lua + ''; + }); +in +stdenv.mkDerivation { + pname = "path-of-building"; + version = "${data.version}-unstable-2023-04-09"; + + src = fetchFromGitHub { + owner = "ernstp"; + repo = "pobfrontend"; + rev = "9faa19aa362f975737169824c1578d5011487c18"; + hash = "sha256-zhw2PZ6ZNMgZ2hG+a6AcYBkeg7kbBHNc2eSt4if17Wk="; + }; nativeBuildInputs = [ meson ninja pkg-config qttools wrapQtAppsHook ]; buildInputs = [ qtbase luajit luajit.pkgs.lua-curl ]; - dontWrapQtApps = true; installPhase = '' runHook preInstall @@ -51,13 +51,16 @@ stdenv.mkDerivation { runHook postInstall ''; - postFixup = '' - wrapQtApp $out/bin/pobfrontend \ - --set LUA_PATH "$LUA_PATH" \ - --set LUA_CPATH "$LUA_CPATH" \ - --chdir "$data" + preFixup = '' + qtWrapperArgs+=( + --set LUA_PATH "$LUA_PATH" + --set LUA_CPATH "$LUA_CPATH" + --chdir "${data}" + ) ''; + passthru.data = data; + meta = { description = "Offline build planner for Path of Exile"; homepage = "https://pathofbuilding.community/"; diff --git a/nixpkgs/pkgs/games/prismlauncher/wrapper.nix b/nixpkgs/pkgs/games/prismlauncher/wrapper.nix index 63604ea1ff5a..240deec4e2fe 100644 --- a/nixpkgs/pkgs/games/prismlauncher/wrapper.nix +++ b/nixpkgs/pkgs/games/prismlauncher/wrapper.nix @@ -14,11 +14,15 @@ , jdk8 , jdk17 , gamemode +, flite +, mesa-demos , msaClientID ? null , gamemodeSupport ? stdenv.isLinux +, textToSpeechSupport ? stdenv.isLinux , jdks ? [ jdk17 jdk8 ] , additionalLibs ? [ ] +, additionalPrograms ? [ ] }: let prismlauncherFinal = prismlauncher-unwrapped.override { @@ -46,7 +50,7 @@ symlinkJoin { qtWrapperArgs = let - libs = (with xorg; [ + runtimeLibs = (with xorg; [ libX11 libXext libXcursor @@ -61,14 +65,21 @@ symlinkJoin { stdenv.cc.cc.lib ] ++ lib.optional gamemodeSupport gamemode.lib + ++ lib.optional textToSpeechSupport flite ++ additionalLibs; + runtimePrograms = [ + xorg.xrandr + mesa-demos # need glxinfo + ] + ++ additionalPrograms; + in [ "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" ] ++ lib.optionals stdenv.isLinux [ - "--set LD_LIBRARY_PATH /run/opengl-driver/lib:${lib.makeLibraryPath libs}" + "--set LD_LIBRARY_PATH /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs}" # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 - "--prefix PATH : ${lib.makeBinPath [xorg.xrandr]}" + "--prefix PATH : ${lib.makeBinPath runtimePrograms}" ]; inherit (prismlauncherFinal) meta; diff --git a/nixpkgs/pkgs/games/quake3/ioquake/default.nix b/nixpkgs/pkgs/games/quake3/ioquake/default.nix index f0d8ea56693b..7161b9474f24 100644 --- a/nixpkgs/pkgs/games/quake3/ioquake/default.nix +++ b/nixpkgs/pkgs/games/quake3/ioquake/default.nix @@ -1,47 +1,52 @@ { lib , stdenv , fetchFromGitHub -, which , pkg-config +, which +, copyDesktopItems +, makeBinaryWrapper , SDL2 , libGL -, openalSoft +, openal , curl , speex , opusfile , libogg , libvorbis -, libopus , libjpeg -, mumble +, makeDesktopItem , freetype }: stdenv.mkDerivation { pname = "ioquake3"; - version = "unstable-2022-11-24"; + version = "unstable-2023-08-13"; src = fetchFromGitHub { owner = "ioquake"; repo = "ioq3"; - rev = "70d07d91d62dcdd2f2268d1ac401bfb697b4c991"; - sha256 = "sha256-WDjR0ik+xAs6OA1DNbUGIF1MXSuEoy8nNkPiHaegfF0="; + rev = "ee950eb7b0e41437cc23a9943254c958da8a61ab"; + sha256 = "sha256-NfhInwrtw85i2mnv7EtBrrpNaslaQaVhLNlK0I9aYto="; }; - nativeBuildInputs = [ which pkg-config ]; + nativeBuildInputs = [ + copyDesktopItems + makeBinaryWrapper + pkg-config + which + ]; + buildInputs = [ SDL2 libGL - openalSoft + openal curl speex opusfile libogg libvorbis - libopus libjpeg freetype - mumble ]; enableParallelBuilding = true; @@ -50,17 +55,32 @@ stdenv.mkDerivation { installTargets = [ "copyfiles" ]; - installFlags = [ "COPYDIR=$(out)" "COPYBINDIR=$(out)/bin" ]; + installFlags = [ "COPYDIR=$(out)/share/ioquake3" ]; - preInstall = '' - mkdir -p $out/baseq3 $out/bin + postInstall = '' + install -Dm644 misc/quake3.svg $out/share/icons/hicolor/scalable/apps/ioquake3.svg + + makeWrapper $out/share/ioquake3/ioquake3.* $out/bin/ioquake3 + makeWrapper $out/share/ioquake3/ioq3ded.* $out/bin/ioq3ded ''; - meta = with lib; { + desktopItems = [ + (makeDesktopItem { + name = "IOQuake3"; + exec = "ioquake3"; + icon = "ioquake3"; + comment = "A fast-paced 3D first-person shooter, a community effort to continue supporting/developing id's Quake III Arena"; + desktopName = "ioquake3"; + categories = [ "Game" "ActionGame" ]; + }) + ]; + + meta = { homepage = "https://ioquake3.org/"; - description = "First person shooter engine based on the Quake 3: Arena and Quake 3: Team Arena"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ rvolosatovs eelco abbradar ]; + description = "A fast-paced 3D first-person shooter, a community effort to continue supporting/developing id's Quake III Arena"; + license = lib.licenses.gpl2Plus; + mainProgram = "ioquake3"; + maintainers = with lib.maintainers; [ abbradar drupol eelco rvolosatovs ]; + platforms = lib.platforms.linux; }; } diff --git a/nixpkgs/pkgs/games/qzdl/default.nix b/nixpkgs/pkgs/games/qzdl/default.nix new file mode 100644 index 000000000000..0b44328fb8e4 --- /dev/null +++ b/nixpkgs/pkgs/games/qzdl/default.nix @@ -0,0 +1,65 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, inih +, ninja +, pkg-config +, qtbase +, wrapQtAppsHook +, makeDesktopItem +, copyDesktopItems +}: + +stdenv.mkDerivation rec { + pname = "qzdl"; + version = "unstable-2023-04-04"; + + src = fetchFromGitHub { + owner = "qbasicer"; + repo = "qzdl"; + rev = "44aaec0182e781a3cef373e5c795c9dbd9cd61bb"; + hash = "sha256-K/mJQb7uO2H94krWJIJtFRYd6BAe2TX1xBt6fGBb1tA="; + }; + + patches = [ + ./non-bundled-inih.patch + ]; + + nativeBuildInputs = [ + cmake + copyDesktopItems + ninja + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + inih + qtbase + ]; + + postInstall = '' + install -Dm644 $src/res/zdl3.svg $out/share/icons/hicolor/scalable/apps/zdl3.svg + ''; + + desktopItems = [ + (makeDesktopItem { + name = "zdl3"; + exec = "zdl %U"; + icon = "zdl3"; + desktopName = "ZDL"; + genericName = "A ZDoom WAD Launcher"; + categories = [ "Game" ]; + }) + ]; + + meta = with lib; { + description = "A ZDoom WAD Launcher"; + homepage = "https://zdl.vectec.net"; + license = licenses.gpl3Only; + inherit (qtbase.meta) platforms; + maintainers = with maintainers; [ azahi ]; + mainProgram = "zdl"; + }; +} diff --git a/nixpkgs/pkgs/games/qzdl/non-bundled-inih.patch b/nixpkgs/pkgs/games/qzdl/non-bundled-inih.patch new file mode 100644 index 000000000000..7e47dd8c2017 --- /dev/null +++ b/nixpkgs/pkgs/games/qzdl/non-bundled-inih.patch @@ -0,0 +1,36 @@ +diff --git i/CMakeLists.txt w/CMakeLists.txt +index 10a8fb6..dcab540 100644 +--- i/CMakeLists.txt ++++ w/CMakeLists.txt +@@ -6,16 +6,8 @@ set(CMAKE_AUTOMOC ON) + project(qzdl LANGUAGES C CXX) + find_package(Qt5 COMPONENTS Core Widgets REQUIRED) + +-include(FetchContent) +-FetchContent_Declare( +- inih +- GIT_REPOSITORY https://github.com/benhoyt/inih.git +- GIT_TAG r44 +-) +-FetchContent_GetProperties(inih) +-if (NOT inih_POPULATED) +- FetchContent_Populate(inih) +-endif() ++find_package(PkgConfig) ++pkg_check_modules(INIH inih) + + add_executable( + zdl +@@ -45,9 +37,8 @@ add_executable( + libwad.cpp + qzdl.cpp + ${PROJECT_SOURCE_DIR}/zdlconf/zdlconf.cpp +- ${inih_SOURCE_DIR}/ini.c + ) + +-target_include_directories(zdl PRIVATE ${PROJECT_SOURCE_DIR}/zdlconf) +-target_include_directories(zdl PRIVATE ${inih_SOURCE_DIR}) +-target_link_libraries(zdl Qt5::Core Qt5::Widgets) ++target_include_directories(zdl PRIVATE ${PROJECT_SOURCE_DIR}/zdlconf ${INIH_INCLUDEDIR}) ++target_link_libraries(zdl Qt5::Core Qt5::Widgets ${INIH_LDFLAGS}) ++install(TARGETS zdl RUNTIME DESTINATION "bin") diff --git a/nixpkgs/pkgs/games/steam/default.nix b/nixpkgs/pkgs/games/steam/default.nix index 370f22268a9a..651c20491844 100644 --- a/nixpkgs/pkgs/games/steam/default.nix +++ b/nixpkgs/pkgs/games/steam/default.nix @@ -1,4 +1,4 @@ -{ makeScopeWithSplicing, generateSplicesForMkScope +{ makeScopeWithSplicing', generateSplicesForMkScope , stdenv, buildFHSEnv, pkgsi686Linux, glxinfo }: @@ -32,6 +32,7 @@ let steamcmd = callPackage ./steamcmd.nix { }; }; - keep = self: { }; - extra = spliced0: { }; -in makeScopeWithSplicing (generateSplicesForMkScope "steamPackages") keep extra steamPackagesFun +in makeScopeWithSplicing' { + otherSplices = generateSplicesForMkScope "steamPackages"; + f = steamPackagesFun; +} diff --git a/nixpkgs/pkgs/games/unciv/default.nix b/nixpkgs/pkgs/games/unciv/default.nix index e0cf519acccb..d5a884a01381 100644 --- a/nixpkgs/pkgs/games/unciv/default.nix +++ b/nixpkgs/pkgs/games/unciv/default.nix @@ -25,11 +25,11 @@ let in stdenv.mkDerivation rec { pname = "unciv"; - version = "4.7.11"; + version = "4.7.13"; src = fetchurl { url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar"; - hash = "sha256-1QMfGONaw6XX3F2bo5tBghJbnii7z6RE+ZuanIGUF8Q="; + hash = "sha256-KvRDPu2FZY+iZ2vNi/tly/7/Tpg/EN8jHTKizYV5jeY="; }; dontUnpack = true; diff --git a/nixpkgs/pkgs/games/urbanterror/default.nix b/nixpkgs/pkgs/games/urbanterror/default.nix index fbb633bb657b..6c54984eccbf 100644 --- a/nixpkgs/pkgs/games/urbanterror/default.nix +++ b/nixpkgs/pkgs/games/urbanterror/default.nix @@ -1,64 +1,113 @@ -{ lib, stdenv, fetchurl, unzip, SDL, libGLU, libGL, openal, curl, libXxf86vm }: +{ lib +, fetchzip +, stdenv +, copyDesktopItems +, imagemagick +, libicns +, makeBinaryWrapper +, curl +, libGL +, libGLU +, openal +, libXxf86vm +, SDL +, makeDesktopItem +}: -stdenv.mkDerivation rec { - pname = "urbanterror"; +let version = "4.3.4"; - srcs = - [ (fetchurl { - url = "http://cdn.urbanterror.info/urt/43/releases/zips/UrbanTerror434_full.zip"; - sha256 = "1rx4nnndsk88nvd7k4p35cw6znclkkzm2bl5j6vn6mjjdk66jrki"; - }) - (fetchurl { - url = "https://github.com/FrozenSand/ioq3-for-UrbanTerror-4/archive/release-${version}.zip"; - sha256 = "1s9pmw7rbnzwzl1llcs0kr2krf4daf8hhnz1j89qk4bq9a9qfp71"; - }) - ]; - - nativeBuildInputs = [ unzip ]; - buildInputs = [ SDL libGL libGLU openal curl libXxf86vm ]; - sourceRoot = "ioq3-for-UrbanTerror-4-release-${version}"; + urbanterror-maps = fetchzip { + name = "urbanterror-maps"; + url = "http://cdn.urbanterror.info/urt/43/releases/zips/UrbanTerror${builtins.replaceStrings ["."] [""] version}_full.zip"; + hash = "sha256-C6Gb5PPECAOjQhmkrzkV6dpY/zHVtUj9oq3507o2PUI="; + }; + + urbanterror-source = fetchzip { + name = "urbanterror-source"; + url = "https://github.com/FrozenSand/ioq3-for-UrbanTerror-4/archive/release-${version}.zip"; + hash = "sha256-zF6Tkaj5WYkFU66VwpBFr1P18OJGrGgxnc/jvcvt8hA="; + }; +in +stdenv.mkDerivation { + pname = "urbanterror"; + inherit version; + + srcs = [ + urbanterror-maps + urbanterror-source + ]; + + sourceRoot = "urbanterror-source"; + + nativeBuildInputs = [ + copyDesktopItems + imagemagick + libicns + makeBinaryWrapper + ]; + + buildInputs = [ + curl + libGL + libGLU + openal + libXxf86vm + SDL + ]; configurePhase = '' + runHook preConfigure + echo "USE_OPENAL = 1" > Makefile.local echo "USE_OPENAL_DLOPEN = 0" >> Makefile.local echo "USE_CURL = 1" >> Makefile.local echo "USE_CURL_DLOPEN = 0" >> Makefile.local + + runHook postConfigure ''; - installPhase = '' - destDir="$out/opt/urbanterror" - mkdir -p "$destDir" - mkdir -p "$out/bin" - cp -v build/release-linux-*/Quake3-UrT.* \ - "$destDir/Quake3-UrT" - cp -v build/release-linux-*/Quake3-UrT-Ded.* \ - "$destDir/Quake3-UrT-Ded" - cp -rv ../UrbanTerror43/q3ut4 "$destDir" - cat << EOF > "$out/bin/urbanterror" - #! ${stdenv.shell} - cd "$destDir" - exec ./Quake3-UrT "\$@" - EOF - chmod +x "$out/bin/urbanterror" - cat << EOF > "$out/bin/urbanterror-ded" - #! ${stdenv.shell} - cd "$destDir" - exec ./Quake3-UrT-Ded "\$@" - EOF - chmod +x "$out/bin/urbanterror-ded" + installTargets = [ "copyfiles" ]; + installFlags = [ "COPYDIR=$(out)/share/urbanterror" ]; + + preInstall = '' + mkdir -p $out/share/urbanterror ''; - postFixup = '' - p=$out/opt/urbanterror/Quake3-UrT - cur_rpath=$(patchelf --print-rpath $p) - patchelf --set-rpath $cur_rpath:${libGL}/lib:${libGLU}/lib $p + postInstall = '' + icns2png --extract ${urbanterror-maps}/Quake3-UrT.app/Contents/Resources/quake3-urt.icns + + for size in 16 24 32 48 64 128 256 512 1024; do + mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps + if [ ! -e quake3-urt_"$size"x"$size"x32.png ] ; then + convert -resize "$size"x"$size" quake3-urt_512x512x32.png quake3-urt_"$size"x"$size"x32.png + fi + install -Dm644 quake3-urt_"$size"x"$size"x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/urbanterror.png + done; + + makeWrapper $out/share/urbanterror/Quake3-UrT.* $out/bin/urbanterror + makeWrapper $out/share/urbanterror/Quake3-UrT-Ded.* $out/bin/urbanterror-ded + + ln -s ${urbanterror-maps}/q3ut4 $out/share/urbanterror/ ''; hardeningDisable = [ "format" ]; - meta = with lib; { + desktopItems = [ + (makeDesktopItem { + name = "urbanterror"; + exec = "urbanterror"; + icon = "urbanterror"; + comment = "A multiplayer tactical FPS on top of Quake 3 engine"; + desktopName = "Urban Terror"; + categories = [ "Game" "ActionGame" ]; + }) + ]; + + meta = { description = "A multiplayer tactical FPS on top of Quake 3 engine"; + homepage = "https://www.urbanterror.info"; + license = lib.licenses.unfreeRedistributable; longDescription = '' Urban Terror is a free multiplayer first person shooter developed by FrozenSand, that (thanks to the ioquake3-code) does not require @@ -66,10 +115,8 @@ stdenv.mkDerivation rec { tactical shooter; somewhat realism based, but the motto is "fun over realism". This results in a very unique, enjoyable and addictive game. ''; - homepage = "http://www.urbanterror.info"; - license = licenses.unfreeRedistributable; - maintainers = with maintainers; [ astsmtl ]; - platforms = platforms.linux; - hydraPlatforms = []; + mainProgram = "urbanterror"; + maintainers = with lib.maintainers; [ astsmtl drupol ]; + platforms = lib.platforms.linux; }; } diff --git a/nixpkgs/pkgs/games/vintagestory/default.nix b/nixpkgs/pkgs/games/vintagestory/default.nix index e7ab08384067..b0f5b54bc93e 100644 --- a/nixpkgs/pkgs/games/vintagestory/default.nix +++ b/nixpkgs/pkgs/games/vintagestory/default.nix @@ -4,7 +4,6 @@ , makeWrapper , makeDesktopItem , copyDesktopItems -, mono , xorg , gtk2 , sqlite @@ -16,36 +15,22 @@ , libglvnd , pipewire , libpulseaudio -, experimental ? false , dotnet-runtime_7 }: stdenv.mkDerivation rec { pname = "vintagestory"; - version = if experimental then "1.18.8-rc.1" else "1.18.7"; + version = "1.18.8"; - src = - if experimental - then - (fetchurl { - url = "https://cdn.vintagestory.at/gamefiles/unstable/vs_client_linux-x64_${version}.tar.gz"; - hash = "sha256-FxyAJTiLENTp5QxPKRgsiOhkMXz88CTn3QRvIHtOH+A="; - }) - else - (fetchurl { - url = "https://cdn.vintagestory.at/gamefiles/stable/vs_archive_${version}.tar.gz"; - hash = "sha256-geJoNxBxODXQeTExLdTOaH84asjo2yg2xFm8Pj0IMc0="; - }); + src = fetchurl { + url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz"; + hash = "sha256-q7MxmsWCGODOt/hCkCPz964m7az27SddIRBJ1vYg02k="; + }; nativeBuildInputs = [ makeWrapper copyDesktopItems ]; - buildInputs = - if experimental then [ - dotnet-runtime_7 - ] else [ - mono - ]; + buildInputs = [ dotnet-runtime_7 ]; runtimeLibs = lib.makeLibraryPath ([ gtk2 @@ -65,7 +50,7 @@ stdenv.mkDerivation rec { desktopItems = makeDesktopItem { name = "vintagestory"; - desktopName = if experimental then "Vintage Story Experimental .net 7" else "Vintage Story"; + desktopName = "Vintage Story"; exec = "vintagestory"; icon = "vintagestory"; comment = "Innovate and explore in a sandbox world"; @@ -83,21 +68,14 @@ stdenv.mkDerivation rec { runHook postInstall ''; - preFixup = (if experimental then '' + preFixup = '' makeWrapper ${dotnet-runtime_7}/bin/dotnet $out/bin/vintagestory \ --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ --add-flags $out/share/vintagestory/Vintagestory.dll makeWrapper ${dotnet-runtime_7}/bin/dotnet $out/bin/vintagestory-server \ --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ --add-flags $out/share/vintagestory/VintagestoryServer.dll - '' else '' - makeWrapper ${mono}/bin/mono $out/bin/vintagestory \ - --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ - --add-flags $out/share/vintagestory/Vintagestory.exe - makeWrapper ${mono}/bin/mono $out/bin/vintagestory-server \ - --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ - --add-flags $out/share/vintagestory/VintagestoryServer.exe - '') + '' + '' + '' find "$out/share/vintagestory/assets/" -not -path "*/fonts/*" -regex ".*/.*[A-Z].*" | while read -r file; do local filename="$(basename -- "$file")" ln -sf "$filename" "''${file%/*}"/"''${filename,,}" diff --git a/nixpkgs/pkgs/games/wesnoth/default.nix b/nixpkgs/pkgs/games/wesnoth/default.nix index 2bed9e435fce..df5b393ccded 100644 --- a/nixpkgs/pkgs/games/wesnoth/default.nix +++ b/nixpkgs/pkgs/games/wesnoth/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf +{ lib, stdenv, fetchFromGitHub, fetchpatch +, cmake, pkg-config, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf , pango, gettext, boost, libvorbis, fribidi, dbus, libpng, pcre, openssl, icu , Cocoa, Foundation }: @@ -14,6 +15,16 @@ stdenv.mkDerivation rec { hash = "sha256-KtAPc2nsqSoHNsLTLom/yaUECn+IWBdBFpiMclrUHxM="; }; + patches = [ + # Pull upstream fix https://github.com/wesnoth/wesnoth/pull/6726 + # for gcc-13 support. + (fetchpatch { + name = "gcc-134.patch"; + url = "https://github.com/wesnoth/wesnoth/commit/f073493ebc279cefa391d364c48265058795e1d2.patch"; + hash = "sha256-uTB65DEBZwHFRgDwNx/yVjzmnW3jRoiibadXhNcwMkI="; + }) + ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf pango gettext boost |