On Mon, Mar 19, 2018 at 01:04:00PM +0100, Pjotr Prins wrote: > Maybe we should start thinking that a channel is simply an > architecture dependent Guix 'pack' of substitutes that includes the > pre-built Guix git repo. When deployed in a container we can inject > the keys. When this works we can design a pack repository, making the > channels searchable.
Continuing my line of thought: a binary channel in my mind is now a compiled Guix package tree with Guix and possible adaptations (say a special package for Ruby). In other words, a special (timed) version of Guix sitting in /gnu/store/*named-guix-channel/bin/guix. Installing it I would simply create my own profile guix -i named-guix-channel -p ~/opt/named-guix-channel and use that to install new software using the running guix-daemon. I.e. ~/opt/named-guix-channel/bin/guix package -A or maybe better ~/opt/named-guix-channel/bin/named-guix-channel package -A so it can actually live in a shared profile and pick up its own substitute server. Anyone can create a channel and they can even live on trunk as packages: guix package -i bio-ruby-guix-channel (admin add key) bio-ruby-guix-channel package -i bio-ruby Simple but effective. Wouldn't that be cool? To add a channel we may need some mechanism - possibly something like loading a .scm on the command line which fetches the guix-channel binary from a substitute server. The more flexible the better. So (admin add key) guix channel -i URI/my-channel.scm (which does a 'guix package -i my-bio-ruby-guix-channel') my-ruby-guix-channel package -i bio-ruby a version would be (admin add key) guix channel -i URI/my-channel.scm GITHASH/GITTAG (which does a 'guix package -i my-bio-ruby-guix-channel') my-ruby-guix-channel package -i bio-ruby We can start without the 'guix channel' bit. Early channel adopters can work from a compiled source tree. The only immediate adaptation to Guix required is that named-guix-channel can pick up its own compiled package definitions and we have fast binary-channels. Right? Pj. --