[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [GSoC] Guix + GNUnet: report
Re: [GSoC] Guix + GNUnet: report
Sun, 23 Aug 2015 23:02:57 +0200
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
Thanks for the report.
> Once these problems have been addressed (i.e. a week ago), I could
> finally start working on the GNUnet publisher for Guix. Its first
> version can only upload one store item at a time, and isn’t even
> functional yet: a fikle segfault deems it unusable. Before noticing
> this segfault (it doesn’t always happen), I started working on a more
> complex version that would allow bulk publication of store items, but
> this gain in complexity came with a hole new set of strange and hardly
> traceable errors (SIGILL and SIGBUS), and it’s far from being
> usable. Moreover, the two version seem to have difficulties handling
OK. The FFI makes it easy to shoot oneself in the foot in such ways
(for instance when using invalid struct layout, or if the FFI uses the
wrong binary interface for a function.) Hopefully you’ll be able to
pinpoint them eventually. But at least, it’s nice you’ve been able to
make progress on the publisher!
> The bindings are focused on the FileSharing service, and seem
> usable. I’ll write detailed documentation before the end of the GSoC,
> and list the pitfalls to avoid (at least those I’m aware of). There’s
> still work to do, notably:
Sounds like a good plan.
> Eclosed you’ll find the more usable version of the publisher, “tested”
> with the following software:
> — Guix: commit 7cb6f648b2486b0e6060a333564432a0830637de
> — GNUnet: rev. 36242
> — Libextractor: rev. 36031
> — the bindings: commit dc6f74d269fcb324d8649f3c511299b7ba2be2a4
> It’s important to use a recent version of GNUnet, because its API
> changed recently (especially, Guix’s currently packaged version isn’t
Could you add a package recipe to Guix for the right version of GNUnet?
I started setting things up to test the code you sent and then realized
I wasn’t using the right version.
I hope we’ll be able to rely on stable versions of GNUnet soon.
> This publisher can be tested: for that you’ll have to put
> `publish-gnunet.scm` and `publish-utils.scm` in `guix/scripts`, and
> start GNUnet (see my previous reports). Then you can create an ego:
> $ gnunet-identity -C mytestego
> and call the publisher with:
> $ guix publish-gnunet -c /path/to/gnunet.conf -P mytestego \
Could you remind me what the right GNUnet command is to check whether
the thing is actually published and visible?
Nitpick: it’s a bit annoying that we have to specify a GNUnet
> The file `publish-utils.scm` contains code shared between the HTTP
> publisher and this one; I did not knew were to store it, thus the
> improper module in (guix scripts). `publish-gnunet-multi.scm` is the
> WIP second version, not usable at all :(
Instead of using ‘file-system-tree’, this variant should probably use
‘live-paths’ from (guix store), which returns the list of live store
items. Still, I guess startup time may not be very good (I hadn’t
realized that), but unlike with ‘guix publish’, we cannot do things
BTW, I noticed there’s quite a bunch of global variables that are
‘set!’. It would be better to avoid that, but I suppose the
continuation-passing style that the GNUnet libraries impose makes it
Thanks for your report!