GNU bug report logs - #70493
[PATCH 0/4] gnu: Add gamescope.

Previous Next

Package: guix-patches;

Reported by: dan <i <at> dan.games>

Date: Sun, 21 Apr 2024 08:21:03 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 70493 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#70493; Package guix-patches. (Sun, 21 Apr 2024 08:21:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to dan <i <at> dan.games>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 21 Apr 2024 08:21:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: dan <i <at> dan.games>
To: guix-patches <at> gnu.org
Subject: [PATCH 0/4] gnu: Add gamescope.
Date: Sun, 21 Apr 2024 16:19:42 +0800
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





Information forwarded to guix-patches <at> gnu.org:
bug#70493; Package guix-patches. (Sun, 21 Apr 2024 08:31:01 GMT) Full text and rfc822 format available.

Message #8 received at 70493 <at> debbugs.gnu.org (full text, mbox):

From: dan <i <at> dan.games>
To: 70493 <at> debbugs.gnu.org
Cc: john.kehayias <at> protonmail.com
Subject: [PATCH 1/4] gnu: Add libliftoff.
Date: Sun, 21 Apr 2024 16:29:29 +0800
* gnu/packages/freedesktop.scm (libliftoff): New variable.

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

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 <at> gmail.com>
 ;;; Copyright © 2023 Bruno Victal <mirai <at> makinata.eu>
 ;;; Copyright © 2024 Zheng Junjie <873216071 <at> qq.com>
+;;; Copyright © 2024 dan <i <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#70493; Package guix-patches. (Sun, 21 Apr 2024 08:31:02 GMT) Full text and rfc822 format available.

Message #11 received at 70493 <at> debbugs.gnu.org (full text, mbox):

From: dan <i <at> dan.games>
To: 70493 <at> debbugs.gnu.org
Cc: john.kehayias <at> protonmail.com
Subject: [PATCH 2/4] gnu: Add vkroots.
Date: Sun, 21 Apr 2024 16:29:30 +0800
* gnu/packages/vulkan.scm (vkroots): New variable.

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

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





Information forwarded to guix-patches <at> gnu.org:
bug#70493; Package guix-patches. (Sun, 21 Apr 2024 08:31:04 GMT) Full text and rfc822 format available.

Message #14 received at 70493 <at> debbugs.gnu.org (full text, mbox):

From: dan <i <at> dan.games>
To: 70493 <at> debbugs.gnu.org
Cc: john.kehayias <at> protonmail.com
Subject: [PATCH 3/4] gnu: Add libavif-1.0.
Date: Sun, 21 Apr 2024 16:29:31 +0800
* gnu/packages/image.scm (libavif-1.0): New variable.

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

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 <at> nicolasgoaziou.fr>
 ;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom <at> gmail.com>
 ;;; Copyright © 2024 chris <chris <at> bumblehead.com>
+;;; Copyright © 2024 dan <i <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#70493; Package guix-patches. (Sun, 21 Apr 2024 08:31:06 GMT) Full text and rfc822 format available.

Message #17 received at 70493 <at> debbugs.gnu.org (full text, mbox):

From: dan <i <at> dan.games>
To: 70493 <at> debbugs.gnu.org
Cc: john.kehayias <at> protonmail.com
Subject: [PATCH 4/4] gnu: Add gamescope.
Date: Sun, 21 Apr 2024 16:29:32 +0800
* 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(+)

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 <at> redscript.org>
 ;;; Copyright © 2024 chris <chris <at> bumblehead.com>
 ;;; Copyright © 2024 Erik Eduardo Alonso Hernández <erik <at> erikeduardo.xyz>
+;;; Copyright © 2024 dan <i <at> 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





This bug report was last modified 13 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.