(address . guix-patches@gnu.org)(name . Grigory Shepelev)(address . shegeley@gmail.com)
Toggle diff (48 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 16b1b8d873..7fb3141aaa 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -30226,6 +30226,43 @@ (define-public sbcl-trivial-raw-io
Lisp.")
(license license:bsd-2))))
+(define-public sbcl-posix-shm
+ (let ((commit "9443da23bcda0a2bd727aed675f92ee7d3c51802")
+ (revision "0.0.7")
+ (hash "0ah7xh7dxvdk58slic60gx7k56idjw5x30q5ifg90hxfhd32qz6l"))
+ (package
+ (name "sbcl-posix-shm")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~shunter/posix-shm")
+ (commit commit)))
+ (file-name (git-file-name "sbcl-posix-shm" version))
+ (sha256 (base32 hash))))
+ (build-system asdf-build-system/sbcl)
+ (arguments (list #:asd-systems ''("posix-shm" "posix-shm/ffi" "posix-shm/test")))
+ (inputs (list sbcl-cffi sbcl-alexandria sbcl-trivial-features
+ ;;↓ for tests
+ sbcl-osicat sbcl-parachute))
+ (home-page "https://git.sr.ht/~shunter/posix-shm")
+ (synopsis "Common Lisp bindings and wrapper for the POSIX shared memory API")
+ (description "This library provides two strata to access the POSIX shm API:
+@itemize
+@item The package @code{posix-shm/ffi}, a collection of slim bindings to the POSIX API
+@item The package @code{posix-shm}, a lispy wrapper around the FFI that integrates more closely to the features of Common Lisp, and provides a handful of utilities and macros
+@end itemize
+
+Features include:
+@itemize
+@item Open, close, create, resize, change ownership of, change permissions of, and memory map to shared memory objects.
+@item @code{open-shm} appears more like open from the standard library.
+@item @code{open-shm*}, for creating anonymous shm objects.
+@item @code{with-open-shm}, @code{with-mmap} and similar @code{with-} macros for safely accessing resources with dynamic extent.
+@end itemize")
+ (license license:bsd-3))))
+
(define-public cl-trivial-raw-io
(sbcl-package->cl-source-package sbcl-trivial-raw-io))
--
2.46.0
From fe238bc3f5ce2342e58e1b98ee829cf970102b94 Mon Sep 17 00:00:00 2001
From: Grigory Shepelev <shegeley@gmail.com>
Date: Fri, 11 Oct 2024 11:20:39 +0300
Subject: [PATCH 2/5] lisp-xyz: + sbcl-xkb (from @malcolmstill)
---
gnu/packages/lisp-xyz.scm | 44 +++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
Toggle diff (55 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 7fb3141aaa..933e4d48eb 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -31864,6 +31864,50 @@ (define-public cl-xkbcommon
(define-public ecl-xkbcommon
(sbcl-package->ecl-package sbcl-xkbcommon))
+(define-public sbcl-xkb
+ (let ((commit "e69c0e85e59fd8271efa2e9659cfffa9b59d1ece")
+ (revision "0")
+ (hash "01k4hf316xr2h149vf7sh45rrdkfppqnzakzn91i7lw46dwl57wh"))
+ (package
+ (name "sbcl-xkb")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/malcolmstill/cl-xkb")
+ (commit commit)))
+ (file-name (git-file-name "cl-xkb" version))
+ (sha256 (base32 hash))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs (list pkg-config))
+ (arguments
+ (list
+ #:asd-systems ''("cl-xkb")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'add-xkbcommon
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cl-xkb.lisp"
+ (("/usr/lib64/libxkbcommon.so.0")
+ (search-input-file inputs "/lib/libxkbcommon.so"))))))))
+ (inputs (list libxkbcommon sbcl-cffi))
+ (home-page "https://github.com/malcolmstill/cl-xkb")
+ (synopsis "@code{cl-xkb} is a Common Lisp wrapper for @code{libxkbcommon}")
+ (description "cl-xkb started development to support @url{https://github.com/malcolmstill/ulubis, ulubis}.
+The library currently supports these xkb modules:
+@itemize
+@item Keysyms
+@item Library Context
+@item Include Paths
+@item Logging Handling
+@item Keymap Creation
+@item Keymap Components
+@item Keyboard State
+@item Compose and dead-keys support
+@end itemize")
+ (license license:bsd-3))))
+
(define-public sbcl-xml-emitter
(package
(name "sbcl-xml-emitter")
--
2.46.0
From 697fe999051f1a51c11170f4a8b44367e418213c Mon Sep 17 00:00:00 2001
From: Grigory Shepelev <shegeley@gmail.com>
Date: Fri, 11 Oct 2024 12:16:50 +0300
Subject: [PATCH 3/5] lisp-xyz: + sbcl-cl-pango
---
gnu/packages/lisp-xyz.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
Toggle diff (45 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 933e4d48eb..c7274e1f43 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -4496,6 +4496,40 @@ (define-public cl-cairo2
(define-public ecl-cl-cairo2
(sbcl-package->ecl-package sbcl-cl-cairo2))
+(define-public sbcl-cl-pango
+ (let ((commit "ee4904d19ce22d00eb2fe17a4fe42e5df8ac8701")
+ (revision "1")
+ (hash "0zkn4yn8nkkjr0x1vcy856cvbmnyhdidqz0in8xvd2i93jvw5w0i"))
+ (package
+ (name "sbcl-cl-pango")
+ (version revision)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BradWBeer/cl-pango")
+ (commit commit)))
+ (file-name (git-file-name "cl-pango" version))
+ (sha256 (base32 hash))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ (list
+ #:asd-systems ''("cl-pango")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "library.lisp"
+ (("libpango-[0-9.]*\\.so" all)
+ (search-input-file inputs (string-append "/lib/" all)))
+ (("libpangocairo-[0-9.]*\\.so" all)
+ (search-input-file inputs (string-append "/lib/" all)))))))))
+ (inputs (list sbcl-cffi sbcl-cl-cairo2 sbcl-xmls pango cairo))
+ (home-page "https://github.com/BradWBeer/cl-pango")
+ (synopsis "Pango bindings for Common Lisp")
+ (description "Bindings to the pango text layout library")
+ (license license:expat))))
+
(define-public sbcl-cl-cffi-gtk
(let ((commit "1700fe672c65455c1fc33061ec92a3df84287ec7")
(revision "3"))
--
2.46.0
From f59728ef1d12e4eeebcab9fbb7ac10f6ca41f17a Mon Sep 17 00:00:00 2001
From: Grigory Shepelev <shegeley@gmail.com>
Date: Sat, 12 Oct 2024 19:22:57 +0300
Subject: [PATCH 4/5] lisp-xyz: + sbcl-input-event-codes
Change-Id: Ib063f55a32c570741a05957139452de2b1514558
---
gnu/packages/lisp-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
Toggle diff (35 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index c7274e1f43..ee99e213c3 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -31942,6 +31942,30 @@ (define-public sbcl-xkb
@end itemize")
(license license:bsd-3))))
+(define-public sbcl-input-event-codes
+ (let ((commit "9804fe1e8fcfaab51097ea30e1045b7cc5e0ef3e")
+ (revision "1")
+ (hash "1m96m9ia4frcn2xqaw4mfspjjzwl8gyj4k4rv0lq28va4s6mkgii"))
+ (package
+ (name "sbcl-input-event-codes")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~shunter/input-event-codes")
+ (commit commit)))
+ (file-name (git-file-name "sbcl-input-event-codes" version))
+ (sha256 (base32 hash))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs (list pkg-config))
+ (arguments (list #:asd-systems ''("input-event-codes" "input-event-codes/test")))
+ (inputs (list sbcl-trivial-features sbcl-parachute))
+ (home-page "https://git.sr.ht/~shunter/input-event-codes")
+ (synopsis "This little library is a port of all constants found in input-event-codes.h, an event code header file found on both Linux and FreeBSD")
+ (description "")
+ (license license:expat))))
+
(define-public sbcl-xml-emitter
(package
(name "sbcl-xml-emitter")
--
2.46.0
From 0446be519d70817768b8b1e229a82759ac36a510 Mon Sep 17 00:00:00 2001
From: Grigory Shepelev <shegeley@gmail.com>
Date: Fri, 11 Oct 2024 12:25:42 +0300
Subject: [PATCH 5/5] lisp-xyz: + wayflan
---
gnu/packages/lisp-xyz.scm | 58 +++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
Toggle diff (69 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index ee99e213c3..5ede6a4ace 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -10452,6 +10452,64 @@ (define-public cl-wayland
(define-public ecl-cl-wayland
(sbcl-package->ecl-package sbcl-cl-wayland))
+(define-public sbcl-wayflan
+ (let ((commit "3fbd2164e96aece3993929c7076593a2ee594f50")
+ (revision "1")
+ (hash "0y6hzskp1vgaigzj5b3i695sc6dn5mk7nlxs21nh5ybzmf4chhyy"))
+ (package
+ (name "sbcl-wayflan")
+ (version (git-version "0.0.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~shunter/wayflan")
+ (commit commit)))
+ (file-name (git-file-name "wayflan" version))
+ (sha256 (base32 hash))))
+ (build-system asdf-build-system/sbcl)
+ (arguments (list
+ #:tests? #f ;; tries to look for wayflan-client/test
+ #:asd-systems
+ ''("wayflan-client"
+ ;; "wayflan-client/examples" fails on wayland-keyboard-demo.lisp cos xkb not required verbosely, just used as "xkb:…"
+ "wayflan"
+ "wayflan/common"
+ "wayflan/test")))
+ (inputs
+ (list sbcl-cffi
+ sbcl-alexandria
+ sbcl-babel
+ sbcl-plump
+ sbcl-parachute
+ sbcl-cl-colors
+ sbcl-cl-cairo2
+ sbcl-closer-mop
+
+ sbcl-input-event-codes
+ sbcl-xkb
+ sbcl-cl-pango
+ sbcl-posix-shm
+
+ wayland))
+ (home-page "https://git.sr.ht/~shunter/wayflan")
+ (synopsis "Wayflan is a from-scratch Wayland communication library for Common Lisp. It is not a binding or a wrapper around libwayland, but a re-implementation of the Wayland protocol. This unties Lisp applications from per-proxy manual memory allocation, toplevel-only C callbacks, and enables a closer interface with lisp")
+ (description "Wayflan makes a good-faith effort to mimic @code{libwayland} behavior not defined in the Wayland spec, to keep compatibility between the two libraries.
+
+Wayflan is not a compositor nor a GUI toolkit. Its purpose is to parse Wayland protocol XML documents and exchange Wayland messages between other processes.
+
+Wayflan is an ongoing project. Things may change to make Wayflan the best client for Common Lisp projects, such as iterating on a better API. If you use Wayflan in any projects, let me know! I'd love to give a heads up and help transition projects to any breaking changes I make along the way.
+
+Features:
+@itemize
+@item Client support
+@item All implementation done in Common Lisp from the socket up
+@item Enum values are translated into keywords
+@item Wayland protocol introspection
+@item ASDF component @code{:wayflan-client-imp}l generates code from XML. ASDF's extensible components make it possible to teach your program new protocols for Wayland without the need of a special build system.
+@end itemize")
+ (license license:bsd-3))))
+
(define-public sbcl-cl-webkit
(package
(name "sbcl-cl-webkit")
--
2.46.0