myg...@gmail.com writes: > Ricardo, AIUI, your channels don't work like this. But I am at a loss to > say how they will work in practice from the user's POV. If you could > write such a description it would sure help us understand the proposal > better.
This draft is similar to how Conda channels[1] work: Conda packages are downloaded from remote channels, which are URLs to directories containing conda packages. The conda command searches a default set of channels, and packages are automatically downloaded and updated from http://repo.continuum.io/pkgs/. You can modify what remote channels are automatically searched. You might want to do this to maintain a private or internal channel. [1]: https://conda.io/docs/user-guide/concepts.html#conda-packages In our case a channel consists of a git repository with Guile module definitions and a channel description file. Optionally, it points to a URL from where substitutes can be fetched. Other than that it behaves like a Conda user would expect: “Guix does not yet include ‘foolicious 2000’, but I know it has been packaged by someone else and made available on the ‘garlic-onion-sweat’ channel. So I enable this channel, authorize its public key, and then install ‘foolicious 2000’.” Users can add any number of channels; their modules will be downloaded and built (TODO: this might be dangerous, so try sandboxing), and then added to GUIX_PACKAGE_PATH. The second iteration of this would involve some potluck ideas for extra safety and convenience. -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net