[PATCH 0/4] gnu: Add gamescope.

  • Open
  • quality assurance status badge
Details
2 participants
  • aurtzy
  • dan
Owner
unassigned
Submitted by
dan
Severity
normal

Debbugs page

D
(address . guix-patches@gnu.org)
cover.1713687359.git.i@dan.games
This patch series added gamescope, the micro-compositor for running games, and
a few its dependencies. Noted that the latest gamescope release is 3.14.4,
but it depends on the latest version of wayland-protocols. Besides, I noticed
that libavif is updated in https://issues.guix.gnu.org/70395,but this is a
patch series trying to update some KDE packages, and since a lot of packages
depends on libavif, it would take some time for this update to landed in
master. In the meantime, i added a new package libavif-1.0.

dan (4):
gnu: Add libliftoff.
gnu: Add vkroots.
gnu: Add libavif-1.0.
gnu: Add gamescope.

gnu/packages/freedesktop.scm | 23 ++++++++
gnu/packages/image.scm | 14 +++++
gnu/packages/vulkan.scm | 36 ++++++++++++
gnu/packages/wm.scm | 110 +++++++++++++++++++++++++++++++++++
4 files changed, 183 insertions(+)


base-commit: 38b88d710ea13ba024aed0543bc2862772cdb645
--
2.41.0
D
[PATCH 1/4] gnu: Add libliftoff.
(address . 70493@debbugs.gnu.org)(address . john.kehayias@protonmail.com)
2625fe976febff8993347418635cf60dc12ab90b.1713687359.git.i@dan.games
* gnu/packages/freedesktop.scm (libliftoff): New variable.

Change-Id: Ia66bb09db6b09c63fbc6223f58d6a0ebf6f4c546
---
gnu/packages/freedesktop.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 339297c087..d0c14e8077 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -35,6 +35,7 @@
;;; Copyright © 2023 Alex Devaure <ajadevaure@gmail.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3234,3 +3235,25 @@ (define-public waypipe
"Waypipe is a proxy for Wayland clients, with the aim of
supporting behavior like @samp{ssh -X}.")
(license license:expat)))
+
+(define-public libliftoff
+ (package
+ (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"))))
+ (build-system meson-build-system)
+ (inputs (list libdrm))
+ (native-inputs (list pkg-config))
+ (home-page "https://gitlab.freedesktop.org/emersion/libliftoff")
+ (synopsis "Lightweight KMS plane library")
+ (description "libliftoff eases the use of KMS planes from userspace
+without standing in your way. Users create \"virtual planes\" called layers,
+set KMS properties on them, and libliftoff will pick hardware planes for these
+layers if possible.")
+ (license license:expat)))
--
2.41.0
D
[PATCH 2/4] gnu: Add vkroots.
(address . 70493@debbugs.gnu.org)(address . john.kehayias@protonmail.com)
232dbbe3210c63a837456952493d54dd0986ce9a.1713687359.git.i@dan.games
* gnu/packages/vulkan.scm (vkroots): New variable.

Change-Id: I57dfea58254c9bcf001d2052156f2c17dde109c4
---
gnu/packages/vulkan.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 23d0c72ee3..f3c6e619a8 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -32,6 +32,7 @@ (define-module (gnu packages vulkan)
#:use-module (guix gexp)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system meson)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
@@ -634,3 +635,38 @@ (define-public vulkan-utility-libraries
(synopsis "Utility libraries for Vulkan developers")
(description "Utility libraries for Vulkan developers.")
(license license:asl2.0)))
+
+(define-public vkroots
+ (let ((commit "d5ef31abc7cb5c69aee4bcb67b10dd543c1ff7ac")
+ (revision "0"))
+ (package
+ (name "vkroots")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Joshua-Ashton/vkroots")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g2mh8l0xzxzr4yjyafzv76n7jk9043dcbf5mpqwpwmjx88m5nc0"))))
+ (build-system meson-build-system)
+ (arguments (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-vulkan
+ (lambda _
+ (substitute* "gen/make_vkroots"
+ (("\\.\\.") (getcwd)))))
+ (add-before 'install 'gen-vkroots
+ (lambda _
+ (invoke "python3"
+ "../source/gen/make_vkroots"
+ "-x"
+ (string-append
+ #$(this-package-native-input "vulkan-headers")
+ "/share/vulkan/registry/vk.xml")))))))
+ (native-inputs (list python vulkan-headers))
+ (home-page "https://github.com/Joshua-Ashton/vkroots")
+ (synopsis "Simple method of making Vulkan layers")
+ (description "vkroots is a framework for writing Vulkan layers that
+takes all the complexity away from you.")
+ (license license:expat))))
--
2.41.0
D
[PATCH 3/4] gnu: Add libavif-1.0.
(address . 70493@debbugs.gnu.org)(address . john.kehayias@protonmail.com)
97e94aa7938b7108c0b2e09e4664c831fb91fe57.1713687359.git.i@dan.games
* gnu/packages/image.scm (libavif-1.0): New variable.

Change-Id: Ie3c9dc1964ea0d0a97cde4e8802f8dd1308f0e0b
---
gnu/packages/image.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index fae45363ad..5ed2acda8c 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -39,6 +39,7 @@
;;; Copyright © 2023-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 chris <chris@bumblehead.com>
+;;; Copyright © 2024 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2544,6 +2545,19 @@ (define-public libavif
(home-page "https://github.com/AOMediaCodec/libavif")
(license (list license:bsd-2))))
+(define-public libavif-1.0
+ (package
+ (inherit libavif)
+ (version "1.0.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AOMediaCodec/libavif")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name (package-name libavif) version))
+ (sha256
+ (base32 "0k72q7yvfdn92wkslyifw14319nm981a8r3kd84i4ylxmrkgi0zm"))))))
+
(define-public libheif
(package
(name "libheif")
--
2.41.0
D
[PATCH 4/4] gnu: Add gamescope.
(address . 70493@debbugs.gnu.org)(address . john.kehayias@protonmail.com)
0ca550e23940a3918fd7f42e9383ee188cbea9b5.1713687359.git.i@dan.games
* gnu/packages/wm.scm (%gamescope-version): New variable.
(reshade-for-gamescope): New variable.
(gamescope): New variable.

Change-Id: If86bc6127144854189f8fa66415f32bc80a26d6b
---
gnu/packages/wm.scm | 110 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 110 insertions(+)

Toggle diff (154 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 2eecc0ed2a..8d816e2e28 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -70,6 +70,7 @@
;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org>
;;; Copyright © 2024 chris <chris@bumblehead.com>
;;; Copyright © 2024 Erik Eduardo Alonso Hernández <erik@erikeduardo.xyz>
+;;; Copyright © 2024 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -105,6 +106,7 @@ (define-module (gnu packages wm)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages benchmark)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
@@ -142,6 +144,7 @@ (define-module (gnu packages wm)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages mpd)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages music)
@@ -155,12 +158,15 @@ (define-module (gnu packages wm)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
+ #:use-module (gnu packages stb)
#:use-module (gnu packages suckless)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages time)
+ #:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
@@ -3856,3 +3862,107 @@ (define-public yambar-wayland
for short) for X11 and Wayland, that goes to great lengths to be both CPU and
battery efficient---polling is only done when absolutely necessary.")
(license license:expat)))
+
+(define %gamescope-version "3.14.2")
+
+(define reshade-for-gamescope
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Joshua-Ashton/reshade")
+ (commit "9fdbea6892f9959fdc18095d035976c574b268b7")))
+ (file-name (git-file-name "reshade-for-gamescope" %gamescope-version))
+ (sha256
+ (base32 "1par0ay973l0bvlz0fsg3v1fxgrnn888yc0hx3ikkyc0jbbf59bg"))))
+
+(define-public gamescope
+ (package
+ (name "gamescope")
+ (version %gamescope-version)
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ValveSoftware/gamescope")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x7gh1rr2ismqfkaa4wm7025acjpgmims41iwzdcps5pg8nxmmhh"))))
+ (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\""))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-deps
+ (lambda _
+ (substitute* "src/reshade_effect_manager.cpp"
+ (("/usr") #$output))
+ (substitute* "src/meson.build"
+ ;; patch stb
+ (("dependency\\('stb'\\)")
+ (format #f "declare_dependency(include_directories: ['~a'])"
+ (string-join
+ '#$(map (lambda (label) (this-package-native-input label))
+ (list "stb-image"
+ "stb-image-resize"
+ "stb-image-write"))
+ "','")))
+ ;; patch libdisplay-info
+ (("< 0.2.0")
+ (string-append "<= " #$(package-version (this-package-input "libdisplay-info"))))
+ (("reshade/") (string-append #$reshade-for-gamescope "/"))
+ (("../thirdparty/SPIRV-Headers") #$(this-package-native-input "spirv-headers"))))))))
+ (inputs
+ (list glm
+ libavif-1.0
+ libcap
+ libdisplay-info
+ libdrm
+ libinput
+ libliftoff
+ libx11
+ libxcomposite
+ libxcursor
+ libxdamage
+ libxext
+ libxkbcommon
+ libxmu
+ libxrender
+ libxres
+ libxt
+ libxtst
+ pipewire
+ sdl2
+ vulkan-loader
+ wayland
+ wlroots))
+ (native-inputs
+ (list benchmark
+ ;; Lazily resolve the gcc-toolchain-12 to avoid a circular dependency.
+ (module-ref (resolve-interface '(gnu packages commencement))
+ 'gcc-toolchain-12)
+ glslang
+ `(,hwdata "pnp")
+ pkg-config
+ stb-image
+ stb-image-resize
+ stb-image-write
+ spirv-headers
+ vkroots
+ vulkan-headers
+ wayland-protocols))
+ (home-page "https://github.com/ValveSoftware/gamescope")
+ (synopsis "Micro-compositor for running games")
+ (description
+ "gamescope is a micro-compositor for running games. Its goal is to
+provide an isolated compositor that is tailored towards gaming and supports
+many gaming-centric features such as:
+@itemize
+@item Spoofing resolutions.
+@item Upscaling.
+@item Limiting framerates.
+@end itemize")
+ (license license:bsd-2)))
--
2.41.0
A
A
aurtzy wrote on 11 May 15:40 -0700
[PATCH v2] gnu: Add gamescope.
(address . 70493@debbugs.gnu.org)
b18ac6ea47928fba92f26b17039d9fc955abb2b7.1747002396.git.aurtzy@gmail.com
From: dan <i@dan.games>

* gnu/packages/wm.scm (%gamescope-version, libliftoff-for-gamescope,
reshade-for-gamescope, vkroots-for-gamescope, wlroots-for-gamescope,
gamescope): New variables.

Change-Id: If86bc6127144854189f8fa66415f32bc80a26d6b
Co-authored-by: aurtzy <aurtzy@gmail.com>
Co-authored-by: Demis Balbach <db@minikn.xyz>
---

Hey,


Sorry about the long delay! Finally got around to looking at this again. I've
attached a v2 with our patches combined in addition to any updates since then,
with all notable changes from v1 listed below.

This depends on a pending patch to add stb-image-resize [1].

Changes from dan's v1:
- Update gamescope version to 3.16.4.
- Drop libavif-1.0 patch; we can use libavif which is updated, now.
- Convert libliftoff and vkroots patches to libliftoff-for-gamescope and
vkroots-for-gamescope due to upstream relying on unstable features and
strongly recommending against using different versions [2]. Also subject
wlroots to this treatment.
- Use origin snippet to add pinned submodule/dependency sources.
- Remove HWDATA_PNP_IDS configure flag, since (IIUC) hwdata outputs have since
been merged into the default "out" output which made pkgconfig able to
automatically find hwdata files.
- Add a 'patch-loader-path phase to fix an error when starting gamescope due to
"Failed to load vulkan module" (related issue [3]).
- Add a 'patch-version phase that patches in version number instead of trying to
execute git to infer version from tag.
- Opt for patching stb via wrap file instead of meson.build which should
(probably) be less brittle.
- Drop libdisplay-info patch, since versions up to 0.3.0 are accepted now.
- Use gcc instead of gcc-toolchain (toolchain version doesn't seem to be
needed?). Also use newer version (gcc-14) since gamescope 3.16.4 would fail
to build without at least gcc-13.
- Include various additional inputs that are searched for during the build.


Related side note: I've managed to get gamescope with the "nice" capability
working with the following services (some personal config stuff omitted so it
can work for others; source here [4]), although I'm still trying to figure out
if anything can be done about removing a hack that's currently needed:
#+begin_src scheme
;; gamescopereaper needs to be available in PATH.
(list (simple-service 'name
profile-service-type
(list gamescope))
(simple-service 'name
privileged-program-service-type
(list (privileged-program
(program (file-append gamescope "/bin/gamescope"))
(capabilities "cap_sys_nice=eip"))))
;; HACK: Using privileges causes gamescope to not inherit
;; environment, so it fails an attempt to search for needed
;; vulkan files. Conveniently provide them at this location,
;; which gamescope searches by default.
(simple-service 'name
etc-service-type
`(("vulkan" ,(file-append mesa "/share/vulkan")))))
#+end_src





Cheers,

aurtzy

gnu/packages/wm.scm | 182 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 181 insertions(+), 1 deletion(-)

Toggle diff (224 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 66dd5f2035..6d01066570 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -81,6 +81,8 @@
;;; Copyright © 2025 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2025 Junker <dk@junkeria.club>
+;;; Copyright © 2022 Demis Balbach <db@minikn.xyz>
+;;; Copyright © 2025 aurtzy <aurtzy@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -117,6 +119,7 @@ (define-module (gnu packages wm)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages benchmark)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
@@ -179,8 +182,10 @@ (define-module (gnu packages wm)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
+ #:use-module (gnu packages stb)
#:use-module (gnu packages suckless)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
@@ -189,7 +194,8 @@ (define-module (gnu packages wm)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
- #:use-module (gnu packages xorg))
+ #:use-module (gnu packages xorg)
+ #:use-module (srfi srfi-26))
(define-public bspwm
(package
@@ -4419,3 +4425,177 @@ (define-public scenefx
"A drop-in replacement for the wlroots scene API that allows wayland
compositors to render surfaces with eye-candy effects.")
(license license:expat)))
+
+;; Upstream strongly recommends using some of its pinned dependencies due to
+;; relying on unstable features; these should be checked when updating
+;; gamescope. See:
+;; <https://github.com/ValveSoftware/gamescope/commit/7741cd587fa2274989f3307a3c6f23ab08e98460>
+(define %gamescope-version "3.16.4")
+
+(define libliftoff-for-gamescope
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/emersion/libliftoff.git")
+ (commit "8b08dc1c14fd019cc90ddabe34ad16596b0691f4")))
+ (file-name (git-file-name "libliftoff-for-gamescope" %gamescope-version))
+ (sha256 (base32 "163g8ndsbma7acy2k9mrnvlpb7yi4431hgkx1gygkafgwpq1ii1x"))))
+
+(define reshade-for-gamescope
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Joshua-Ashton/reshade")
+ (commit "696b14cd6006ae9ca174e6164450619ace043283")))
+ (file-name (git-file-name "reshade-for-gamescope" %gamescope-version))
+ (sha256
+ (base32 "1zvhf3pgd8bhn8bynrsh725xn1dszsf05j8c9g6zabgv7vnz04a5"))))
+
+(define vkroots-for-gamescope
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Joshua-Ashton/vkroots")
+ (commit "5106d8a0df95de66cc58dc1ea37e69c99afc9540")))
+ (file-name (git-file-name "vkroots-for-gamescope" %gamescope-version))
+ (sha256 (base32 "0hrp0xqq93552ipw2bmryixgm1aywnz49xagsx5rwzg2d0hwa0aa"))))
+
+(define wlroots-for-gamescope
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Joshua-Ashton/wlroots.git")
+ (commit "4bc5333a2cbba0b0b88559f281dbde04b849e6ef")))
+ (file-name (git-file-name "wlroots-for-gamescope" %gamescope-version))
+ (sha256 (base32 "14m9j9qkaphzm3g36im43b6h92rh3xyjh7j46vw9w2qm602ndwcf"))))
+
+(define-public gamescope
+ (package
+ (name "gamescope")
+ (version %gamescope-version)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ValveSoftware/gamescope")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "09h7046vwqn0w3kv1zaij4h3rcrvs1r2qlm0vva3mk3gg44fnhjl"))
+ (modules '((guix build utils)
+ (ice-9 match)))
+ (snippet
+ #~(begin
+ ;; Add some dependencies to source tree where they're expected.
+ (for-each (match-lambda
+ ((source dest)
+ (copy-recursively source dest)))
+ '((#$libliftoff-for-gamescope "subprojects/libliftoff")
+ (#$reshade-for-gamescope "src/reshade")
+ (#$vkroots-for-gamescope "subprojects/vkroots")
+ (#$wlroots-for-gamescope "subprojects/wlroots")))))))
+ (build-system meson-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(list "-Dpipewire=enabled"
+ "-Denable_openvr_support=false")
+ #:modules '((guix build meson-build-system)
+ (guix build utils)
+ (srfi srfi-26))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-usr-dir
+ (lambda _
+ (substitute* "src/reshade_effect_manager.cpp"
+ (("/usr") #$output))))
+ (add-after 'unpack 'patch-loader-path
+ ;; "Failed to load vulkan module" error occurs without this patch.
+ ;; Related issue: https://issues.guix.gnu.org/71109
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/rendervulkan.cpp"
+ (("dlopen\\( \"libvulkan\\.so")
+ (string-append "dlopen( \""
+ (search-input-file
+ inputs "/lib/libvulkan.so"))))))
+ (add-after 'unpack 'patch-version
+ (lambda _
+ (substitute* "src/meson.build"
+ (("^vcs_tag = .*$")
+ (string-append
+ "vcs_tag = '" #$(package-version this-package) "'\n")))))
+ (add-after 'unpack 'patch-stb
+ (lambda _
+ (let ((stb-files-dir #+(directory-union
+ "stb"
+ (map (cut this-package-native-input <>)
+ (list "stb-image"
+ "stb-image-write"
+ "stb-image-resize")))))
+ (copy-recursively (string-append stb-files-dir "/include")
+ "subprojects/stb"))
+ (copy-recursively "subprojects/packagefiles/stb"
+ "subprojects/stb")
+ (call-with-output-file "subprojects/stb.wrap"
+ (cut format <> "\
+[wrap-file]
+directory = stb
+"))))
+ (add-after 'unpack 'patch-spirv-headers
+ (lambda _
+ (substitute* "src/meson.build"
+ (("../thirdparty/SPIRV-Headers")
+ #$(this-package-native-input "spirv-headers"))))))))
+ (native-inputs (list gcc-14
+ glslang
+ pkg-config
+ python-3
+ spirv-headers
+ stb-image
+ stb-image-write
+ stb-image-resize
+ vulkan-headers))
+ (inputs (list benchmark
+ glm
+ hwdata
+ lcms
+ libavif
+ libdecor
+ libdisplay-info
+ libdrm
+ libei
+ libinput
+ libseat
+ libx11
+ libxcomposite
+ libxcursor
+ libxdamage
+ libxext
+ libxkbcommon
+ libxmu
+ libxrender
+ libxres
+ libxt
+ libxtst
+ libxxf86vm
+ luajit
+ pipewire
+ pixman
+ sdl2
+ vulkan-loader
+ xcb-util-wm
+ xcb-util-errors
+ xorg-server-xwayland
+ wayland
+ wayland-protocols))
+ (home-page "https://github.com/ValveSoftware/gamescope")
+ (synopsis "Micro-compositor for running games")
+ (description
+ "gamescope is a micro-compositor for running games. Its goal is to
+provide an isolated compositor that is tailored towards gaming and supports
+many gaming-centric features such as:
+@itemize
+@item Spoofing resolutions.
+@item Upscaling.
+@item Limiting framerates.
+@end itemize")
+ (license license:bsd-2)))

base-commit: 8635dad843d299497bd46e036266a8b2a2abff11
--
2.49.0
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 70493@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 70493
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch