Subject: [bug#49152] [PATCH]: gnu: Add cl-posix-mqueue

From: Sharlatan Hellseher <[email-masked]>
Date: Wed, 23 Jun 2021 12:38:44 +0000

Hi Guillaume,

When I add glibc to inputs I've got a lot of warning about collision
for each components of it such as:

warning: collision encountered:
/gnu/store/ksy2b6fwfmz40gjajvspl87ia4vsfzj7-glibc-2.31/lib/libresolv.so.2
/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libresolv.so.2
warning: choosing
/gnu/store/ksy2b6fwfmz40gjajvspl87ia4vsfzj7-glibc-2.31/lib/libresolv.so.2

But package is built and worked eventually in the end.

On Tue, 22 Jun 2021 at 15:17, Guillaume Le Vaillant <[email-masked]> wrote:
>
> I noticed that your patch doesn't substitute the full path of the librt
> library (in 'src/spec.lisp'). I suppose it should work anyway because
> librt comes with the glibc package which is probably always available in
> some way, but I think it would be better to use the full path for
> consistency.
>
> Also, cl-ppcre should be a native input for the tests according to
> 'cl-posix-mqueue-tests.asd'.
>
> Could you send an updated patch?

-- 

… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.
From 35a1b7c9e0af4fef25686cdb8b379462456ca532 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Wed, 23 Jun 2021 13:34:55 +0100
Subject: [PATCH] gnu: Add cl-posix-mqueue

* gnu/packages/lisp-xyx: (sbcl-cl-posix-mqueue, ecl-cl-posix-mqueue,
  cl-posix-mqueue): New variables
---
 gnu/packages/lisp-xyz.scm | 48 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index f2fe9c93d1..204a470df0 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -17695,3 +17695,51 @@ computing and event based message handling.")
 
 (define-public cl-gserver
   (sbcl-package->cl-source-package sbcl-cl-gserver))
+
+(define-public sbcl-cl-posix-mqueue
+  (let ((commit "8977370c7206d1f62bd1be80f4254af40654b83f")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-posix-mqueue")
+      (version (git-version "0.1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/xFA25E/cl-posix-mqueue")
+               (commit commit)))
+         (file-name (git-file-name "cl-posix-mqueue" version))
+         (sha256
+          (base32 "04519rg8vc782z097dzlb8nx0skab2fy2zd0m60r6mz2nw8xdvh6"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:test-asd-file "cl-posix-mqueue-tests.asd"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-librt-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/spec.lisp"
+                 (("librt.so" all)
+                  (string-append (assoc-ref inputs "glibc") "/lib/" all))))))))
+      (native-inputs
+       `(("rove" ,sbcl-rove)
+         ("cl-ppcre" ,sbcl-cl-ppcre)))
+      (inputs
+       `(("alexandira" ,sbcl-alexandria)
+         ("babel" ,sbcl-babel)
+         ("cffi" ,sbcl-cffi)
+         ("glibc" ,glibc)
+         ("local-time" ,sbcl-local-time)))
+      (home-page "https://github.com/xFA25E/cl-posix-mqueue")
+      (synopsis "Common Lisp binding to POSIX mqueue")
+      (description
+       "This package provides a Common Lisp bindings to POSIX message queue - an
+IPC (Inter-Process Communication) method that is easy to use and quick to
+setup.")
+      (license license:gpl3+))))
+
+(define-public ecl-cl-posix-mqueue
+  (sbcl-package->ecl-package sbcl-cl-posix-mqueue))
+
+(define-public cl-posix-mqueue
+  (sbcl-package->cl-source-package sbcl-cl-posix-mqueue))
-- 
2.32.0