Hello, Please find below project suggestions for GNU Guix for this year’s GSoC. Thanks, Ludo’.

Guix

GNU Guix is a purely functional package manager, and associated free software distribution, for the GNU system. In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection.

Contact: bug-guix@gnu.org (to subscribe, see the list-info page).
Mentors: Ludovic Courtès

Supporting binary package distribution through GNUnet

GNU Guix provides a transparent binary/source deployment model. A server can claim: “hey, I have the binary for /nix/store/v9zic07iar8w90zcy398r745w78a7lqs-emacs-24.3!”, where the base32 string uniquely identifies a build process. If you trust that server to provide genuine binaries, then you can grab them instead of building Emacs locally.

The “traditional model” has been to have a build farm build and serve binary packages. In that model, users trust the build farm to provide authentic binaries.

The project aims to provide a practical decentralization distribution mechanism for binary packages, using GNUnet’s file sharing service. In that model, users would be able to automatically share binaries they have built locally, and to install binaries built by other users. This is part of a broader goal of disintermediation among users, and between users and upstream software developers.

Problems to be solved include the authentication of binary packages, user privacy, and the development of a user interface that makes it trivial to contribute package build results.