~ruther/guix-local

78bdf4f9993c47956270adefca24991b2221752f — Michal Atlas 2 years ago dce2515
gnu: Add cl-rpcq.

* gnu/packages/quantum.scm: New file.
  (cl-rpcq, sbcl-rpcq): New variables.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register "quantum.scm".

Change-Id: Ic893ad22ffb7a3bf9aa5e841fcf4c14bf3a23b2f
Co-authored-by: Guillaume Le Vaillant <glv@posteo.net>
2 files changed, 69 insertions(+), 0 deletions(-)

M gnu/local.mk
A gnu/packages/quantum.scm
M gnu/local.mk => gnu/local.mk +1 -0
@@ 543,6 543,7 @@ GNU_SYSTEM_MODULES =				\
  %D%/packages/toys.scm				\
  %D%/packages/tryton.scm			\
  %D%/packages/qt.scm				\
  %D%/packages/quantum.scm			\
  %D%/packages/racket.scm			\
  %D%/packages/radio.scm			\
  %D%/packages/ragel.scm			\

A gnu/packages/quantum.scm => gnu/packages/quantum.scm +68 -0
@@ 0,0 1,68 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2024 Michal Atlas <michal_atlas+git@posteo.net>
;;; Copyright © 2024 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages quantum)
  #:use-module (gnu packages)
  #:use-module (gnu packages lisp-check)
  #:use-module (gnu packages lisp-xyz)
  #:use-module (guix build-system asdf)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages))

(define-public sbcl-rpcq
  (package
    (name "sbcl-rpcq")
    (version "3.10.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/rigetti/rpcq")
             (commit (string-append "v" version))))
       (file-name (git-file-name "cl-rpcq" version))
       (sha256
        (base32 "1bvppxlacvp0pfdbpn7ls1zxd127jacl225ds7lph5s8f8cyvf17"))))
    (build-system asdf-build-system/sbcl)
    (native-inputs (list sbcl-fiasco))
    (inputs
     (list sbcl-alexandria
           sbcl-bordeaux-threads
           sbcl-cl-messagepack
           sbcl-cl-ppcre
           sbcl-cl-syslog
           sbcl-flexi-streams
           sbcl-local-time
           sbcl-parse-float
           sbcl-pzmq
           sbcl-trivial-backtrace
           sbcl-uuid
           sbcl-yason))
    (synopsis "RPC framework for Rigetti Quantum Cloud Services")
    (description
     "This package provides the asynchronous RPC client-server framework and
message specification for Rigetti Quantum Cloud Services (QCS).  It implements
an efficient transport protocol by using ZeroMQ (ZMQ) sockets and MessagePack
(msgpack) serialization.")
    (home-page "https://github.com/rigetti/rpcq")
    (license license:asl2.0)))

(define-public cl-rpcq
  (sbcl-package->cl-source-package sbcl-rpcq))