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

From: Evan Straw <[email-masked]>
Date: Fri, 27 Mar 2020 20:09:04 -0700

Ludovic Courtès <[email-masked]> writes:

> Hello,
>
> Leo Famulari <[email-masked]> skribis:
>
>> On Tue, Feb 25, 2020 at 09:31:56PM -0800, Evan Straw wrote:
>>> 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.
>>
>> Thanks for this patch!
>>
>> Overall looks good, but the hash of the source code is not correct for
>> me:
>>
>> ------
>> r:sha256 hash mismatch for /gnu/store/f4gz64dfsqmhbbg24ggzf9ffcr6k2znf-guile-websocket-0.1-checkout:
>>   expected hash: 10r8384frlyrljjdyzilrh8hzi60v9hisx4fxjs7rmg9g01cs77k
>>   actual hash:   1hymvsfrmq9qxr5cxnsgdz7y757yp1cpsgxmdp3f5wxxxpqgsmzx
>> hash mismatch for store item '/gnu/store/f4gz64dfsqmhbbg24ggzf9ffcr6k2znf-guile-websocket-0.1-checkout'
>> build of /gnu/store/n6kxplhzysqq4d82p1m2wa2y48lbgswb-guile-websocket-0.1-checkout.drv failed
>> ------
>>
>> My guess is that you already had something corresponding to the expected
>> hash in /gnu/store, and so Guix did not even try to clone the upstream
>> repo. Probably another commit of guile-websocket, assuming the package
>> did build for you.
>>
>> Can you take a look and send a revised patch?

Fixed this, apologies for the long delay, had some things come up rather
suddenly. 

>
> Also, it should be called “guile3.0-websocket”.
>

Also fixed this. A revised patch should be attached to this email.

Thanks everyone for pointing these out!

-- Evan <[email-masked]>

From 25993e9705306516e393105e761488630d519354 Mon Sep 17 00:00:00 2001
From: Evan Straw <[email-masked]>
Date: Fri, 27 Mar 2020 19:58:39 -0700
Subject: [PATCH] gnu: Add guile3.0-websocket.

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

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 09427da487..6b489203b1 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3241,3 +3241,45 @@ according to Bitorrent BEP003.")
 Relay Chat} (IRC).")
       ;; Some file headers incorrectly say LGPLv2+.
       (license license:lgpl2.1+))))
+
+(define-public guile3.0-websocket
+  (let ((commit "c854e0f84a40d972cbd532bbb89c97ca0126a7cf"))
+    (package
+      (name "guile3.0-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
+           "1hymvsfrmq9qxr5cxnsgdz7y757yp1cpsgxmdp3f5wxxxpqgsmzx"))))
+      (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