Hello Guix! Here’s a little update. The current binary package distribution (through HTTP) is based on two components: a substituer (that retrieves packages) and a publisher. The current plan is to start with adapting the publisher for GNUnet before attacking the substituer; this work will be started once I’ll have successfully bound the download and publish operations.
Here’s an overview of how these components will work: After a call to `guix package -i foo`, the GNUnet substituer will search GNUnet for a specific build of the `foo` package and if it finds one, it will download it and install it (as if it had been downloaded through HTTP). An interesting point is handling of metadata: in Guix (and Nix), each binary package’s metadata (size, signature, compression method…) is downloaded separatedly, before its archive. In the HTTP substituer, that means you have to download two files: one for the metadata, one for the archive. In the GNUnet substituer, we take advantage of the functionning of GNUnet: when you search for a file, some metadata is automatically retrieved (its size, signature, direct access URI…) with the search result, and an archive’s metadata can be shipped along. In order to make this work, the publisher will basically inline the `narinfo' file of each archive into its metadata before indexing (uploading) it on GNUnet. As usual, feel free to contact me for any question, suggestion, advice, idea, critic or joke. -- Rémi Birot-Delrue