diff --git a/pkgs/applications/window-managers/gamescope/default.nix b/pkgs/applications/window-managers/gamescope/default.nix index 7fdffc27f652..20a6a59e0c8f 100644 --- a/pkgs/applications/window-managers/gamescope/default.nix +++ b/pkgs/applications/window-managers/gamescope/default.nix @@ -1,11 +1,13 @@ { stdenv , fetchFromGitHub +, fetchpatch , meson , pkg-config , ninja , xorg , libdrm , vulkan-loader +, vulkan-headers , wayland , wayland-protocols , libxkbcommon @@ -18,15 +20,25 @@ , seatd , xwayland , glslang +, hwdata +, openvr , stb , wlroots , libliftoff +, libdisplay-info , lib , makeBinaryWrapper }: let pname = "gamescope"; - version = "3.11.49"; + version = "3.11.52-beta6"; + + vkroots = fetchFromGitHub { + owner = "Joshua-Ashton"; + repo = "vkroots"; + rev = "26757103dde8133bab432d172b8841df6bb48155"; + sha256 = "sha256-eet+FMRO2aBQJcCPOKNKGuQv5oDIrgdVPRO00c5gkL0="; + }; in stdenv.mkDerivation { inherit pname version; @@ -35,10 +47,37 @@ stdenv.mkDerivation { owner = "Plagman"; repo = "gamescope"; rev = "refs/tags/${version}"; - hash = "sha256-GRq/b013wFRHzFz2YCulJRtcwzX/dhJKd8dkATSLug0="; + hash = "sha256-2gn6VQfmwwl86mmnRh+J1uxSIpA5x/Papq578seJ3n8="; }; - patches = [ ./use-pkgconfig.patch ]; + patches = [ + ./use-pkgconfig.patch + + # https://github.com/Plagman/gamescope/pull/811 + (fetchpatch { + name = "fix-openvr-dependency-name.patch"; + url = "https://github.com/Plagman/gamescope/commit/557e56badec7d4c56263d3463ca9cdb195e368d7.patch"; + sha256 = "sha256-9Y1tJ24EsdtZEOCEA30+FJBrdzXX+Nj3nTb5kgcPfBE="; + }) + # https://github.com/Plagman/gamescope/pull/813 + (fetchpatch { + name = "fix-openvr-include.patch"; + url = "https://github.com/Plagman/gamescope/commit/1331b9f81ea4b3ae692a832ed85a464c3fd4c5e9.patch"; + sha256 = "sha256-wDtFpM/nMcqSbIpR7K5Tyf0845r3l4kQHfwll1VL4Mc="; + }) + # https://github.com/Plagman/gamescope/pull/812 + (fetchpatch { + name = "bump-libdisplay-info-maximum-version.patch"; + url = "https://github.com/Plagman/gamescope/commit/b430c5b9a05951755051fd4e41ce20496705fbbc.patch"; + sha256 = "sha256-YHtwudMUHiE8i3ZbiC9gkSjrlS0/7ydjmJsY1a8ZI2E="; + }) + # https://github.com/Plagman/gamescope/pull/824 + (fetchpatch { + name = "update-libdisplay-info-pkgconfig-filename.patch"; + url = "https://github.com/Plagman/gamescope/commit/5a672f09aa07c7c5d674789f3c685c8173e7a2cf.patch"; + sha256 = "sha256-7NX54WIsJDvZT3C58N2FQasV9PJyKkJrLGYS1r4f+kc="; + }) + ]; nativeBuildInputs = [ meson @@ -56,9 +95,11 @@ stdenv.mkDerivation { xorg.libXtst xorg.libXres xorg.libXi + xorg.libXmu libdrm libliftoff vulkan-loader + vulkan-headers glslang SDL2 wayland @@ -73,8 +114,17 @@ stdenv.mkDerivation { pipewire libcap stb + hwdata + openvr + vkroots + libdisplay-info ]; + postUnpack = '' + rm -rf source/subprojects/vkroots + ln -s ${vkroots} source/subprojects/vkroots + ''; + # --debug-layers flag expects these in the path postInstall = '' wrapProgram "$out/bin/gamescope" \ @@ -85,7 +135,7 @@ stdenv.mkDerivation { description = "SteamOS session compositing window manager"; homepage = "https://github.com/Plagman/gamescope"; license = licenses.bsd2; - maintainers = with maintainers; [ nrdxp zhaofengli ]; + maintainers = with maintainers; [ nrdxp pedrohlc Scrumplex zhaofengli ]; platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8526ca5a815e..a1651eff4dc8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1455,7 +1455,9 @@ with pkgs; libgamemode32 = pkgsi686Linux.gamemode.lib; }; - gamescope = callPackage ../applications/window-managers/gamescope { }; + gamescope = callPackage ../applications/window-managers/gamescope { + wlroots = wlroots_0_16; + }; gay = callPackage ../tools/misc/gay { };