Subject: [bug#39796] [PATCH] gnu: Add guile-websocket.

From: Evan Straw <[email-masked]>
Date: Tue, 25 Feb 2020 21:31:56 -0800

From ba695ba2cbf27014e1ed95da8a0620988f03fa54 Mon Sep 17 00:00:00 2001
From: Evan Straw <[email-masked]>
Date: Tue, 25 Feb 2020 12:08:46 -0800
Subject: [PATCH] gnu: Add guile-websocket.

* gnu/packages/guile-xyz.scm (guile-websocket): New variable.
---
 gnu/packages/guile-xyz.scm | 43 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 37a5198e4e..758ed5aa53 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2019 swedebugia <[email-masked]>
 ;;; Copyright © 2019 Amar Singh <[email-masked]>
 ;;; Copyright © 2019 Timothy Sample <[email-masked]>
+;;; Copyright © 2020 Evan Straw <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3109,3 +3110,45 @@ currently a re-implementation of the lentes library for Clojure.  Lenses
 provide composable procedures, which can be used to focus, apply functions
 over, or update a value in arbitrary data structures.")
       (license license:gpl3+))))
+
+(define-public guile-websocket
+  (let ((commit "c854e0f84a40d972cbd532bbb89c97ca0126a7cf"))
+    (package
+      (name "guile-websocket")
+      (version "0.1")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://dthompson.us/guile-websocket.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "10r8384frlyrljjdyzilrh8hzi60v9hisx4fxjs7rmg9g01cs77k"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:make-flags
+         '("GUILE_AUTO_COMPILE=0")
+         #:phases
+         (modify-phases %standard-phases
+           ;; The package was developed for Guile 2.0 and has this version
+           ;; hardcoded in the configure.ac and Makefile.am files. Substitute
+           ;; 3.0 instead so it can support Guile 3.0.
+           (add-after 'unpack 'update-guile-version
+             (lambda _
+               (substitute* "configure.ac"
+                 (("2.0.9") "3.0.0"))
+               (substitute* "Makefile.am"
+                 (("2.0") "3.0"))
+               #t)))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)))
+      (inputs
+       `(("guile" ,guile-next)))
+      (synopsis "Websocket server/client for Guile")
+      (description "Guile-websocket provides an implementation of the
+WebSocket protocol as defined by RFC 6455.")
+      (home-page "https://git.dthompson.us/guile-websocket.git")
+      (license license:lgpl3+))))
-- 
2.20.1