GNU bug report logs - #56204
Add guile-goblins

Previous Next

Package: guix-patches;

Reported by: Christine Lemmer-Webber <cwebber <at> dustycloud.org>

Date: Fri, 24 Jun 2022 21:26:02 UTC

Severity: normal

Done: Christine Lemmer-Webber <cwebber <at> dustycloud.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56204 in the body.
You can then email your comments to 56204 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Fri, 24 Jun 2022 21:26:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Christine Lemmer-Webber <cwebber <at> dustycloud.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 24 Jun 2022 21:26:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Christine Lemmer-Webber <cwebber <at> dustycloud.org>
To: guix-patches <at> gnu.org
Subject: Add guile-goblins
Date: Fri, 24 Jun 2022 17:24:01 -0400
[Message part 1 (text/plain, inline)]
Finally! ;)

It's a pretty small change, just adding a leaf package, but I figured
since it's adding a package I maintain the project of, best to get
review.

 - Christine

[0001-gnu-Add-guile-goblins.patch (text/x-patch, inline)]
From a09c70dac11dcc133c8e86c3c7e953019942e00c Mon Sep 17 00:00:00 2001
From: Christine Lemmer-Webber <cwebber <at> dustycloud.org>
Date: Fri, 24 Jun 2022 14:28:56 -0400
Subject: [PATCH] gnu: Add guile-goblins.

* gnu/packages/guile-xyz.scm (guile-goblins): New variable.
---
 gnu/packages/guile-xyz.scm | 42 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 2ed6617fd2..853dfa832e 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012-2022 Ludovic Courtès <ludo <at> gnu.org>
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw <at> netris.org>
-;;; Copyright © 2015, 2017 Christine Lemmer-Webber <cwebber <at> dustycloud.org>
+;;; Copyright © 2015, 2017, 2022 Christine Lemmer-Webber <cwebber <at> dustycloud.org>
 ;;; Copyright © 2016 Alex Sassmannshausen <alex <at> pompo.co>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado <at> elephly.net>
 ;;; Copyright © 2016 Erik Edrosa <erik.edrosa <at> gmail.com>
@@ -5103,3 +5103,43 @@ (define-public guile-termios
 termios API is used.  GNU Guile doesn't have an interface for that built in.
 This module implements this interface by use of Guile's dynamic FFI.")
     (license license:bsd-2)))
+
+(define-public guile-goblins
+  (package
+    (name "guile-goblins")
+    (version "0.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/spritely/guile-goblins/")
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version))
+       (sha256
+        (base32
+         "1mmyykh79jwhrfgnhhw94aw7a8m6qw249kj7k60ynj16mcfm5iyy"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           (lambda _
+             (invoke "autoreconf" "-vif"))))
+       #:make-flags
+       ,#~(list "GUILE_AUTO_COMPILE=0")))
+    (native-inputs
+     (list autoconf automake pkg-config texinfo))
+    (inputs
+     `(("guile" ,guile-3.0)))
+    (propagated-inputs
+     (list guile-fibers guile-gcrypt))
+    (home-page "https://spritely.institute/goblins")
+    (synopsis "Distributed programming environment for Guile")
+    (description
+     "@code{guile-goblins} is the Guile version of
+@url{https://spritely.institute/goblins, Spritely Goblins},
+a transactional, distributed programming environment following object
+capability security designs.  Goblins is a general toolkit, and also
+the core layer of Spritely's work to support healthy distributed
+networked communities.")
+    (license license:asl2.0)))
-- 
2.36.1


Information forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Fri, 24 Jun 2022 21:59:02 GMT) Full text and rfc822 format available.

Message #8 received at 56204 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Christine Lemmer-Webber <cwebber <at> dustycloud.org>, 56204 <at> debbugs.gnu.org
Subject: Re: [bug#56204] Add guile-goblins
Date: Fri, 24 Jun 2022 23:57:58 +0200
[Message part 1 (text/plain, inline)]
Christine Lemmer-Webber schreef op vr 24-06-2022 om 17:24 [-0400]:
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (replace 'bootstrap
> +           (lambda _
> +             (invoke "autoreconf" "-vif"))))

I don't know if it works in this particular case, but I thought that
normally 'bootstrap' would automatically do that already?

> +       #:make-flags
> +       ,#~(list "GUILE_AUTO_COMPILE=0")))

Nesting different forms of quasiquotation seems to be disliked (at
least according to a mini poll I did on #guix some time ago),
apparently

(arguments
  (list #:phases
        #~(modify-phases ...)
        #:make-flags
        #~(list ...)))

seems to be the way to go?


> +    (native-inputs
> +     (list autoconf automake pkg-config texinfo))
> +    (inputs
> +     `(("guile" ,guile-3.0)))

Can be simplified to (inputs (list guile-3.0))?


> +     "@code{guile-goblins} is the Guile version of
> + @url{https://spritely.institute/goblins, Spritely Goblins},
> +a transactional, distributed programming environment following object
> +capability security designs.  Goblins is a general toolkit, and also
> +the core layer of Spritely's work to support healthy distributed
> +networked communities.")

Maybe mention that it can network with non-Guile goblin peers as well
(e.g. Racket?), assuming that's correct?

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Sat, 25 Jun 2022 09:33:01 GMT) Full text and rfc822 format available.

Message #11 received at 56204 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Christine Lemmer-Webber <cwebber <at> dustycloud.org>, 56204 <at> debbugs.gnu.org
Subject: Re: [bug#56204] Add guile-goblins
Date: Sat, 25 Jun 2022 11:32:16 +0200
[Message part 1 (text/plain, inline)]
Christine Lemmer-Webber schreef op vr 24-06-2022 om 17:24 [-0400]:
> +    (version "0.8")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://gitlab.com/spritely/guile-goblins/")
> +             (commit (string-append "v" version))))
> +       (file-name (string-append name "-" version))
> +       (sha256
> +        (base32
> +         "1mmyykh79jwhrfgnhhw94aw7a8m6qw249kj7k60ynj16mcfm5iyy"))))


I'm not seeing "--target" in  the invocation of "$(GUILE_TOOLS)
compile", so I don't think that currently it will cross-compile
correctly.  Could you add a --target=... in the Makefile.am?

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Sat, 25 Jun 2022 21:47:02 GMT) Full text and rfc822 format available.

Message #14 received at 56204 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: Christine Lemmer-Webber <cwebber <at> dustycloud.org>, 56204 <at> debbugs.gnu.org
Subject: Re: bug#56204: Add guile-goblins
Date: Sat, 25 Jun 2022 23:46:51 +0200
Maxime Devos <maximedevos <at> telenet.be> skribis:

> Christine Lemmer-Webber schreef op vr 24-06-2022 om 17:24 [-0400]:
>> +    (version "0.8")
>> +    (source
>> +     (origin
>> +       (method git-fetch)
>> +       (uri (git-reference
>> +             (url "https://gitlab.com/spritely/guile-goblins/")
>> +             (commit (string-append "v" version))))
>> +       (file-name (string-append name "-" version))
>> +       (sha256
>> +        (base32
>> +         "1mmyykh79jwhrfgnhhw94aw7a8m6qw249kj7k60ynj16mcfm5iyy"))))
>
>
> I'm not seeing "--target" in  the invocation of "$(GUILE_TOOLS)
> compile", so I don't think that currently it will cross-compile
> correctly.  Could you add a --target=... in the Makefile.am?

That can come upstream in the next version of Goblins IMO.

Ludo’.

Information forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Sat, 25 Jun 2022 21:50:01 GMT) Full text and rfc822 format available.

Message #17 received at 56204 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Christine Lemmer-Webber <cwebber <at> dustycloud.org>
Cc: 56204 <at> debbugs.gnu.org
Subject: Re: bug#56204: Add guile-goblins
Date: Sat, 25 Jun 2022 23:49:03 +0200
Hello Christine,

Christine Lemmer-Webber <cwebber <at> dustycloud.org> skribis:

>>From a09c70dac11dcc133c8e86c3c7e953019942e00c Mon Sep 17 00:00:00 2001
> From: Christine Lemmer-Webber <cwebber <at> dustycloud.org>
> Date: Fri, 24 Jun 2022 14:28:56 -0400
> Subject: [PATCH] gnu: Add guile-goblins.
>
> * gnu/packages/guile-xyz.scm (guile-goblins): New variable.

Woohoo, awesome!

I agree with the minor issues Maxime noted, but otherwise looks great
to me!  Go Spritely, go!!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Sun, 26 Jun 2022 19:13:02 GMT) Full text and rfc822 format available.

Message #20 received at 56204 <at> debbugs.gnu.org (full text, mbox):

From: Christine Lemmer-Webber <cwebber <at> dustycloud.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 56204 <at> debbugs.gnu.org, Maxime Devos <maximedevos <at> telenet.be>
Subject: Re: bug#56204: Add guile-goblins
Date: Sun, 26 Jun 2022 15:09:42 -0400
Ludovic Courtès <ludo <at> gnu.org> writes:

> Maxime Devos <maximedevos <at> telenet.be> skribis:
>
>> Christine Lemmer-Webber schreef op vr 24-06-2022 om 17:24 [-0400]:
>>> +    (version "0.8")
>>> +    (source
>>> +     (origin
>>> +       (method git-fetch)
>>> +       (uri (git-reference
>>> +             (url "https://gitlab.com/spritely/guile-goblins/")
>>> +             (commit (string-append "v" version))))
>>> +       (file-name (string-append name "-" version))
>>> +       (sha256
>>> +        (base32
>>> +         "1mmyykh79jwhrfgnhhw94aw7a8m6qw249kj7k60ynj16mcfm5iyy"))))
>>
>>
>> I'm not seeing "--target" in  the invocation of "$(GUILE_TOOLS)
>> compile", so I don't think that currently it will cross-compile
>> correctly.  Could you add a --target=... in the Makefile.am?
>
> That can come upstream in the next version of Goblins IMO.
>
> Ludo’.

Cool, I added it to commit 6664daa27e9b3eb3220ba83d9c874b730e792f90 in
guile-goblins.  However I was just mimicing guile-gcrypt, so I'm not
sure if it's right:

#+BEGIN_SRC diff
diff --git a/Makefile.am b/Makefile.am
index b8d4944..b056337 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,7 +32,7 @@ EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
 GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
 SUFFIXES = .scm .go
 .scm.go:
-	$(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
+	$(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
 
 SOURCES = goblins.scm \
           goblins/ocapn/crypto-stubs.scm \
#+END_SRC

Should that be sufficient?

Notably, the Makefile.am here was bootstrapped using guile-hall, so my
suspicion is that this is an update that should be made in guile-hall's
templates also, then everyone can benefit.

The next release of Goblins should be due out very quickly, I think, so
we'll be able to take advantage of it then.




Reply sent to Christine Lemmer-Webber <cwebber <at> dustycloud.org>:
You have taken responsibility. (Sun, 26 Jun 2022 19:33:02 GMT) Full text and rfc822 format available.

Notification sent to Christine Lemmer-Webber <cwebber <at> dustycloud.org>:
bug acknowledged by developer. (Sun, 26 Jun 2022 19:33:02 GMT) Full text and rfc822 format available.

Message #25 received at 56204-done <at> debbugs.gnu.org (full text, mbox):

From: Christine Lemmer-Webber <cwebber <at> dustycloud.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 56204-done <at> debbugs.gnu.org
Subject: Re: [bug#56204] Add guile-goblins
Date: Fri, 24 Jun 2022 22:36:39 -0400
Hey Maxime!

Maxime Devos <maximedevos <at> telenet.be> writes:

> [[PGP Signed Part:Undecided]]
> Christine Lemmer-Webber schreef op vr 24-06-2022 om 17:24 [-0400]:
>> +    (arguments
>> +     `(#:phases
>> +       (modify-phases %standard-phases
>> +         (replace 'bootstrap
>> +           (lambda _
>> +             (invoke "autoreconf" "-vif"))))
>
> I don't know if it works in this particular case, but I thought that
> normally 'bootstrap' would automatically do that already?

Ah yeah, seems to work without it...!

>> +       #:make-flags
>> +       ,#~(list "GUILE_AUTO_COMPILE=0")))
>
> Nesting different forms of quasiquotation seems to be disliked (at
> least according to a mini poll I did on #guix some time ago),
> apparently
>
> (arguments
>   (list #:phases
>         #~(modify-phases ...)
>         #:make-flags
>         #~(list ...)))
>
> seems to be the way to go?
>
>> +    (native-inputs
>> +     (list autoconf automake pkg-config texinfo))
>> +    (inputs
>> +     `(("guile" ,guile-3.0)))
>
> Can be simplified to (inputs (list guile-3.0))?

Cool, done.  For (inputs ...) anyway... the above native-inputs did
still seem needed, presumably because we *are* running the bootstrap
code in this case.

>> +     "@code{guile-goblins} is the Guile version of
>> + @url{https://spritely.institute/goblins, Spritely Goblins},
>> +a transactional, distributed programming environment following object
>> +capability security designs.  Goblins is a general toolkit, and also
>> +the core layer of Spritely's work to support healthy distributed
>> +networked communities.")
>
> Maybe mention that it can network with non-Guile goblin peers as well
> (e.g. Racket?), assuming that's correct?
>
> Greetings,
> Maxime.

It's true, but more accurately, it will be true in the next version,
since guile-goblins v0.8 doesn't have finished networking support.
But yes, that's coming, so I put this comment above the description:

    ;; In guile-goblins 0.9, OCapN support will be added (it already
    ;; exists in racket-goblins).  At that point we should add the
    ;; following to this description:
    ;;
    ;;   Goblins allows for cooperation between networked programs
    ;;   in a mutually suspicious network through OCapN, the Object
    ;;   Capability Network.  This includes collaboration across
    ;;   runtimes; for instance, programs written in the Guile and Racket
    ;;   versions of Goblins are able to speak to each other.

And we can do that then.  As said in the other email, I don't think this
is far away.

Thanks to both Maxime and Ludo' for reviewing!  I pushed it upstream.
Happy hacking with guile-goblins... if someone does anything with it,
let me know.  The next release will be the first big guile-goblins
release to celebrate, but was eager to get what we have up there. :)




Information forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Sun, 26 Jun 2022 20:51:02 GMT) Full text and rfc822 format available.

Message #28 received at 56204 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Christine Lemmer-Webber <cwebber <at> dustycloud.org>, Ludovic
 Courtès <ludo <at> gnu.org>
Cc: 56204 <at> debbugs.gnu.org
Subject: Re: bug#56204: Add guile-goblins
Date: Sun, 26 Jun 2022 22:50:07 +0200
[Message part 1 (text/plain, inline)]
Christine Lemmer-Webber schreef op zo 26-06-2022 om 15:09 [-0400]:
> #+BEGIN_SRC diff
> diff --git a/Makefile.am b/Makefile.am
> index b8d4944..b056337 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -32,7 +32,7 @@ EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
>  GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
>  SUFFIXES = .scm .go
>  .scm.go:
> -	$(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
> +	$(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
>  
>  SOURCES = goblins.scm \
>            goblins/ocapn/crypto-stubs.scm \
> #+END_SRC
> 
> Should that be sufficient?

I think so (untested)?

> Notably, the Makefile.am here was bootstrapped using guile-hall, so
> my suspicion is that this is an update that should be made in
> guile-hall's templates also, then everyone can benefit.

Agreed.

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#56204; Package guix-patches. (Mon, 27 Jun 2022 10:23:02 GMT) Full text and rfc822 format available.

Message #31 received at 56204 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Christine Lemmer-Webber <cwebber <at> dustycloud.org>
Cc: 56204 <at> debbugs.gnu.org, Maxime Devos <maximedevos <at> telenet.be>
Subject: Re: bug#56204: Add guile-goblins
Date: Mon, 27 Jun 2022 12:22:31 +0200
Hi,

Christine Lemmer-Webber <cwebber <at> dustycloud.org> skribis:

> #+BEGIN_SRC diff
> diff --git a/Makefile.am b/Makefile.am
> index b8d4944..b056337 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -32,7 +32,7 @@ EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
>  GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
>  SUFFIXES = .scm .go
>  .scm.go:
> -	$(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<"
> +	$(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILE_TOOLS) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
>  
>  SOURCES = goblins.scm \
>            goblins/ocapn/crypto-stubs.scm \
> #+END_SRC
>
> Should that be sufficient?

Yes, that LGTM, provided GUILE_TARGET is properly computed, like in
Guile-Gcrypt’s ‘configure.ac’.

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 25 Jul 2022 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 246 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.