diff --git a/sakura/packages/patches/gamescope-fix-fallbacks.patch b/sakura/packages/patches/gamescope-fix-fallbacks.patch new file mode 100644 index 0000000..32e4e00 --- /dev/null +++ b/sakura/packages/patches/gamescope-fix-fallbacks.patch @@ -0,0 +1,32 @@ +From 99e7176829185b8868347ef996b4f35c8a1b443e Mon Sep 17 00:00:00 2001 +From: Freya Murphy +Date: Wed, 6 Nov 2024 10:27:54 -0500 +Subject: [PATCH] gamescope fix fallbacks + +--- + meson.build | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/meson.build b/meson.build +index c4924c7..be3d61a 100644 +--- a/meson.build ++++ b/meson.build +@@ -6,15 +6,9 @@ project( + default_options: [ + 'cpp_std=c++20', + 'warning_level=2', +- 'force_fallback_for=wlroots,libliftoff,vkroots', + ], + ) + +-fallbacks = get_option('force_fallback_for') +-if not (fallbacks.contains('wlroots') and fallbacks.contains('libliftoff') and fallbacks.contains('vkroots')) +- error('!!!"force_fallback_for" is missing entries!!!\n\tPlease do not remove entries from force_fallback_for if you are packaging the project.\n\tWe pull in these projects at specific commits/forks/builds for a reason.\n\tIf you are not packaging, remove this line to continue.') +-endif +- + add_project_arguments([ + '-DWLR_USE_UNSTABLE', + ], language: 'cpp') +-- +2.46.0 + diff --git a/sakura/packages/wm.scm b/sakura/packages/wm.scm index ccafcbe..1985a1d 100644 --- a/sakura/packages/wm.scm +++ b/sakura/packages/wm.scm @@ -22,6 +22,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages freedesktop) #:use-module (gnu packages version-control) + #:use-module (sakura packages) #:use-module (sakura packages crates-io) #:use-module (guix download) #:use-module (guix packages) @@ -80,7 +81,7 @@ (define-public vkroots - (let ((commit "d5ef31abc7cb5c69aee4bcb67b10dd543c1ff7ac")) + (let ((commit "5106d8a0df95de66cc58dc1ea37e69c99afc9540")) (package (name "vkroots") (version (git-version "" "0" commit)) @@ -92,7 +93,7 @@ (commit commit))) (sha256 (base32 - "0g2mh8l0xzxzr4yjyafzv76n7jk9043dcbf5mpqwpwmjx88m5nc0")) + "0hrp0xqq93552ipw2bmryixgm1aywnz49xagsx5rwzg2d0hwa0aa")) (file-name (git-file-name name version)))) (arguments (list #:phases #~(modify-phases %standard-phases @@ -116,22 +117,6 @@ (license license:expat)))) -(define-public libliftoff-0.4 - (package - (inherit libliftoff) - (name "libliftoff") - (version "0.4.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.freedesktop.org/emersion/libliftoff") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ikjp638d655ycaqkdnzhb12d29kkbb3a46lqhbhsfc8vsqj3z1l")))))) - - (define reshade-for-gamescope (let ((commit "4245743a8c41abbe3dc73980c1810fe449359bf1")) (origin @@ -147,21 +132,21 @@ (define-public gamescope (package (name "gamescope") - (version "3.14.2") + (version "3.15.14") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/ValveSoftware/gamescope") (commit version))) + (patches (sakura-patches "gamescope-fix-fallbacks.patch")) (file-name (git-file-name name version)) (sha256 - (base32 "0x7gh1rr2ismqfkaa4wm7025acjpgmims41iwzdcps5pg8nxmmhh")))) + (base32 "0j9vjqwidaia72l4g2hza74wqdl8b9j45jzblb02v4d4nmzky3gy")))) (build-system meson-build-system) (arguments (list #:configure-flags #~(list "-Dpipewire=enabled" "-Denable_openvr_support=false" - "-Dforce_fallback_for=[]" (string-append "-Dc_args=-DHWDATA_PNP_IDS=\"" #$(this-package-native-input "hwdata") "/share/hwdata/pnp.ids\"")) @@ -169,7 +154,7 @@ #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-deps - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) ; copy reshade (delete-file-recursively "src/reshade") (copy-recursively #$reshade-for-gamescope "src/reshade") @@ -187,6 +172,10 @@ "stb-image-resize" "stb-image-write")) "','"))) + ;; patch wlroots + (("'wlroots',\n") "'wlroots-0.18',\n") + ;; patch pixman + (("dep_xi,") "dep_xi, dependency('pixman-1'),") ;; patch libdisplay-info (("< 0.2.0") (string-append "<= " #$(package-version (this-package-input "libdisplay-info")))) @@ -198,8 +187,14 @@ (string-append pragma "\n#include " "\n#include "))) + ;; patch dlopen + (substitute* (find-files "src" "\\.cpp$") + (("dlopen\\( \"libvulkan.so") + (string-append "dlopen(\"" + (search-input-file + inputs "/lib/libvulkan.so")))) ))))) - (native-inputs (list gcc-13 + (native-inputs (list gcc-14 benchmark glslang hwdata @@ -210,15 +205,16 @@ spirv-headers vkroots vulkan-headers - wayland-protocols)) - (inputs (list gcc-13 + wayland-protocols + git)) + (inputs (list gcc-14 glm libavif libcap libdisplay-info libdrm libinput - libliftoff-0.4 + libliftoff libx11 libxcomposite libxcursor @@ -230,11 +226,13 @@ libxres libxt libxtst + libdecor pipewire sdl2 vulkan-loader wayland - wlroots)) + wlroots + pixman)) (home-page "https://github.com/ValveSoftware/gamescope") (description "SteamOS session compositing window manager") (synopsis "SteamOS session compositing window manager")