aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/guile-xyz.scm64
1 files changed, 64 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index a75088ed61..45cc6b2326 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3222,6 +3222,70 @@ memoizing, backtracking, recursive-descent parsing technique that runs in time
and space linear in the size of the input text.")
(license license:expat)))
+(define-public guile-ac-d-bus
+ (package
+ (name "guile-ac-d-bus")
+ (version "1.0.0-alpha.0")
+ (home-page "https://gitlab.com/weinholt/ac-d-bus/")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05cbp7slmzrx4cib2liysk31laknqiycw9ckgn65fylgz6c2y5x9"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:implicit-inputs? #f ;needs nothing but Guile
+ #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'adjust-for-guile
+ (lambda _
+ ;; Adjust source file names for Guile.
+ (define (guile-sls->sls file)
+ (string-append (string-drop-right
+ file (string-length ".guile.sls"))
+ ".sls"))
+
+ ;; Remove files targeting other implementations:
+ ;; *.mosh.sls, etc.
+ (for-each delete-file
+ (find-files
+ "compat"
+ (lambda (file stat)
+ (not (string-contains file ".guile.")))))
+
+ ;; Rename *.guile.sls to *.sls so the ".guile" bit does
+ ;; not appear in .go file names.
+ (for-each (lambda (file)
+ (rename-file file (guile-sls->sls file)))
+ (find-files "compat" "\\.guile\\.sls"))
+
+ ;; Move directories under d-bus/ to match module names.
+ (mkdir "d-bus")
+ (for-each (lambda (directory)
+ (rename-file directory
+ (string-append "d-bus/"
+ directory)))
+ '("compat" "protocol"))
+
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (propagated-inputs
+ `(("guile-packrat" ,guile-packrat)))
+ (synopsis "D-Bus protocol implementation in R6RS Scheme")
+ (description
+ "AC/D-Bus is an implementation of the D-Bus wire protocol. D-Bus is an
+interprocess communication protocol popular on GNU/Linux systems to
+communicate with a variety of services. Originally designed for desktop
+environments, it is now used by programs like VLC media player, BlueZ,
+NetworkManager, Pulseaudio, systemd (including logind and resolved), Polkit,
+gnome-keyring, and many more.")
+ (license license:expat)))
+
(define-public guile-webutils
(let ((commit "8541904f761066dc9c27b1153e9a838be9a55299")
(revision "0"))