Hi, While I'm still new to guile and guix, one of my main motivations since I started contributing to guix was an item on the end of the roadmap, using a decentralized system to distribute updates.
I have started to read through the scripts and underlying parts of guix, and also our guix/gnunet.git repository where some work already happened in GsoC 2015. Because this is very likely short, not very explanatory in detail, incomprehendable, you can view this email as a short introduction of the task, longer emails will follow once I have worked out texts and completed phase 0. At the moment I assume that the following items and steps are what's left to get closer to this system: 1. an up to date GNUnet a. 0.10.1 of gnunet-fs is not compatible to 0.9, gnunet-svn of gnunet-fs is not compatible to 0.10.1 https://gnunet.org/bot/log/gnunet/2016-06-23#T1067897 2. GNUnet system service for shepherd a. it needs a basic service to start with, ideally we provide what gnunet-setup does through an extended system-service later on 3. stitching together the guile GNUnet bindings with additions to mechanisms which are at least guix {publish,pull,package}. 4. taking in consideration the current incompabilities of gnunet-fs versions. 5. -optional- construct `gnunetfs-download', similiar to git-download and others, for origins (of software) which are available in gnunet. I have concrete ideas for solutions, interactions and users consent and more, but those will end up in an dedicated document which can be viewed online and/or appended to an email later. I will split the work into different phases: Phase 0: - learning about system services - write the shepherd gnunet-service - finish packaging gnunet-svn pinned to a functional svn position - learn more guile (continously) - a first theoretic design Phase 1: - learn more about the current guix publish, guix pull, guix package functionality - solve design questions Phase 2: - writing a proto-type which can be used in a test setup Phase 3: - have a functional test setup which can (guix) publish, pull, and package from gnunet-fs in addition to the current methods I will publish Phase 1 and later in a checkout of guix with a branch `guix-gnunet', accessible once they are created on both of these git urls: git://git.far37qbrwiredyo5.onion:/guix.git git://s.n0.is:/guix.git optionally even a .gnu address when I had time to set it up on the server The current goal for Phase 3 is summer 2017, but I can't predict how much time I can invest in the future or how fast I will progress with learning. -- ♥Ⓐ ng0 For non-prism friendly talk find me on psyced.org / loupsycedyglgamf.onion