hako pushed a commit to branch master
in repository guix.

commit ee1a40745ccde94cf18d90a80566ca65b0ea0408
Author: Hilton Chain <hako@ultrarare.space>
AuthorDate: Sat Mar 1 14:17:17 2025 +0800

    gnu: Add xwayland-run.
    
    * gnu/packages/xorg.scm (xwayland-run): New variable.
    
    Change-Id: I447913a9ef4fca8ec8cad128b15eeb61041ca734
---
 gnu/packages/xorg.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index db34a58f6e..c7c60e738f 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6841,6 +6841,64 @@ the server and cleaning up before returning the exit 
status of the command.")
     (license (list license:x11          ; the script
                    license:gpl2+))))    ; the man page
 
+(define-public xwayland-run
+  (package
+    (name "xwayland-run")
+    (version "0.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.freedesktop.org/ofourdan/xwayland-run.git";)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1nhrdjk1zbxfxkqwsz992g6xg04gankprzks543931fysclgdzql"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:imported-modules
+      (append %meson-build-system-modules
+              %python-build-system-modules)
+      #:modules
+      '((guix build utils)
+        (guix build meson-build-system)
+        ((guix build python-build-system) #:prefix python:))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'enable-bytecode-determinism
+            (assoc-ref python:%standard-phases 'enable-bytecode-determinism))
+          (add-after 'install 'python-install
+            (lambda args
+              (for-each
+               (lambda (phase)
+                 (apply (assoc-ref python:%standard-phases phase)
+                        args))
+               '(add-install-to-pythonpath
+                 add-install-to-path
+                 wrap))))
+          (add-after 'unpack 'fix-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/wlheadless/xwayland.py"
+                (("'(xauth|Xwayland)'" _ command)
+                 (format #f "'~a'" (search-input-file
+                                    inputs (in-vicinity "bin" command))))))))))
+    (inputs (list python xauth xorg-server-xwayland))
+    (home-page "https://gitlab.freedesktop.org/ofourdan/xwayland-run";)
+    (synopsis "Run X11 client on dedicated Xwayland server")
+    (description
+     "@code{xwayland-run} contains a set of small utilities revolving around
+running @command{Xwayland} and various Wayland compositor headless, namely:
+@itemize
+@item @command{xwayland-run}: Spawn X11 client within its own dedicated
+@command{Xwayland} rootful instance.
+@item @command{wlheadless-run}: Run Wayland client on a set of supported
+Wayland headless compositors.
+@item @command{xwfb-run}: Combination of above two tools to be used as a
+direct replacement for @command{xvfb-run} specifically.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public setroot
   (package
     (name "setroot")

Reply via email to