Subject: Re: bug#53775: [PATCH] gnu: Add gnunet-scheme
From: Ludovic Courtès <[email-masked]>
To: Maxime Devos <[email-masked]>
Cc: [email-masked], pukkamustard <[email-masked]>
Date: Fri, 04 Feb 2022 23:40:25 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Maxime Devos <[email-masked]> skribis:

> The first patch adds a module to guile-fibers required by gnunet-scheme.  It has been submitted upstream at <https://github.com/wingo/fibers/pull/50>, but there has not been any response so far.

OK.

> The second commit adds 'gnunet-scheme', which is not the same as guile-gnunet:
>
> "This package provides Guile modules for connecting to the NSE (network
> size estimation) and DHT (distributed hash table) services of GNUnet.  It also
> has infrastructure for writing new GNUnet services and connecting to them and
> can be used from multi-threaded environments.  It is not to be confused with
> @code{guile-gnunet} -- @code{guile-gnunet} supports a different set of services."
>
> gnunet-scheme supports the DHT and NSE, while guile-gnunet doesn't.
> Conversely, guile-gnunet supports FS while gnunet-scheme doesn't (yet).
> Additionally, while it's not impossible per se, guile-gnunet is hard
> to use from a multi-threaded context.

Interesting.

> Next step: integrate it with guile-eris and the substituter patches based
> on guile-eris (currently these only support IPFS as P2P backend)!

Yay!

> 'guix lint gnunet-scheme guile-fibers' only have a single complaint:
>
> gnu/packages/gnunet.scm:379:12: [email-masked]: URI https://git.gnunet.org/git/gnunet-scheme.git not reachable: 404 ("Not Found")
>
> "guix build gnunet-scheme" could download the source code though,
> so I don't understand.

I suppose Git doesn’t attempt to GET /index.html, contrary to the URL
probing code we have.

> From 8272cceae8642ed89eb3ebc110821a395f3ae087 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <[email-masked]>
> Date: Fri, 4 Feb 2022 11:16:46 +0000
> Subject: [PATCH 1/2] gnu: guile-fibers: Add (fibers io-wakeup).
>
> This patch is required by gnunet-scheme.  It has been submitted upstream at
> <https://github.com/wingo/fibers/pull/50>, but there has not been any response
> so far.
>
> * gnu/packages/patches/guile-fibers-wait-for-io-readiness.patch: New file.
> * gnu/packages/guile-xyz.scm (guile-fibers-1.1)[source]{patches}: Add it.
> * gnu/local.mk (dist_patch_DATA): Add it.

[...]

> From 5b57cdbb8f4d56c66885ea029cbe0a185d61a725 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <[email-masked]>
> Date: Fri, 4 Feb 2022 11:23:36 +0000
> Subject: [PATCH 2/2] gnu: Add gnunet-scheme.
>
> This is not the same as guile-gnunet, see the description.
>
> * gnu/packages/gnunet.scm (gnunet-scheme): New variable.

Applied both patches, thanks!

> +              ;; XXX: Work-around
> +              ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49623>,
> +              ;; this can be removed once Guile > 3.0.7 is released.
> +              (snippet '(substitute* '("gnu/gnunet/config/parser.scm"
> +                                       "tests/config-parser.scm")
> +                          (("#\\{\\$\\{\\}\\}#") "#{${;};}#")
> +                          (("#\\{\\$\\{:-\\}\\}#") "#{${;:-};}#")
> +                          (("#\\{\\$\\{\\}\\}# #\\{\\$\\{:-\\}\\}#")
> +                           "#{$\\x7b;\\x7d;}# #{$\\x7b;:-\\x7d;}#")
> +                          (("'#\\{\\$\\{\\}\\}# '#\\{\\$\\{:-\\}\\}#")
> +                           "'#{$\\x7b;\\x7d;}# '#{$\\x7b;:-\\x7d;}#")))))

Wonderful, you deserve a prize for this one.  :-)

> +                         texmacs

I was surprised by the choice of TeXmacs for documentation—TeXmacs is a
beautiful piece of software, but I find it inconvenient that the manual
is only viewable as PDF, cannot link to other manuals, etc.  My 2¢.

(I was also surprised by the use of the (gnu gnunet) name space instead
of just (gnunet), say.)

Anyway, this looks exciting, thank you!

Ludo’.