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")