guix_mirror_bot pushed a commit to branch master
in repository guix.

commit a4db2e66e86ce6290026279aba9811133d8e2f90
Author: Grigory Shepelev <[email protected]>
AuthorDate: Sun Nov 30 07:58:00 2025 +0300

    gnu: Add guile-wayland-scm.
    
    * gnu/packages/guile-xyz.scm (guile-wayland-scm): New variable.
    
    Change-Id: Ibe0253c85042a4b737ea46e6c310b736118f54c2
    Signed-off-by: Danny Milosavljevic <[email protected]>
---
 gnu/packages/guile-xyz.scm | 70 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 9b65fad061..17ca130845 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3611,6 +3611,76 @@ Probably can be replaced with guile's built-in 
file-descriptor procedures.")
     (home-page "https://codeberg.org/shegeley/wayland-scm";)
     (license license:wtfpl2)))
 
+(define-public guile-wayland-scm
+  (package
+    (name "guile-wayland-scm")
+    (version "v0.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://codeberg.org/shegeley/wayland-scm";)
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "17xfc2826nh96ivsszv4avpcs4gbli8k3r0i1idyxkdhxa745rm7"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f ;; no tests yet
+      #:modules `(((guix build guile-build-system)
+                   #:select (target-guile-effective-version))
+                  ,@%default-gnu-modules)
+      #:imported-modules `((guix build guile-build-system)
+                           ,@%default-gnu-imported-modules)
+      #:make-flags
+      #~(let* ((wayland-dir #$(this-package-input "wayland")))
+          (list
+           "GUILE_AUTO_COMPILE=0"
+           (string-append "DESTDIR" "=" #$output)
+           (string-append "WAYLAND_DIR" "=" wayland-dir)
+           (string-append "WAYLAND_PROTOCOLS_PATH" "="
+                          #$(this-package-input "wayland-protocols"))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure)
+          (add-before 'build 'respect-guile
+            (lambda* _
+              (delete-file "Makefile")
+              (rename-file "guile.Makefile" "Makefile")
+              (setenv "GUILE_AUTO_COMPILE" "0")))
+          (delete 'install)
+          (delete 'check)
+          (add-after 'build 'install
+            (lambda* _
+              (let* ((v (target-guile-effective-version))
+                     (share-dir (string-append #$output "/share/guile/site/"
+                                               v "/wayland-scm")))
+                (copy-recursively "wayland-scm" share-dir))))
+          (add-after 'install 'set-core-protocol-path-in-client
+            (lambda* _
+              (let* ((v (target-guile-effective-version))
+                     (dir (string-append #$output "/share/guile/site/"
+                                         v "/wayland-scm"))
+                     (core-protocol-file (string-append
+                                          dir "/protocols" "/wayland.scm"))
+                     (client-file (string-append dir "/client.scm")))
+                (substitute* (list client-file)
+                  (("WAYLAND_BASE_PROTOCOL_PATH")
+                   core-protocol-file))))))))
+    (native-search-paths
+     (list (search-path-specification
+             (variable "GUILE_EXTENSIONS_PATH")
+             (files (list "lib/guile/3.0")))))
+    (native-inputs (list guile-3.0 pkg-config texinfo autoconf automake))
+    (inputs (list wayland wayland-protocols))
+    (propagated-inputs (list guile-wayland-scm-socket guile-wayland-scm-shm))
+    (synopsis "Mostly R7RS-compliant Guile Scheme client bindings for Wayland")
+    (description "This package provides mostly R7RS-compliant Guile Scheme
+client bindings for Wayland.")
+    (home-page "https://codeberg.org/shegeley/wayland-scm";)
+    (license license:wtfpl2)))
+
 (define-public g-wrap
   (package
     (name "g-wrap")

Reply via email to