From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pjotr Prins Subject: Re: [Orchestration][RFC] A simple draft for channels Date: Tue, 20 Mar 2018 08:02:24 +0100 Message-ID: <20180320070224.GA20987@thebird.nl> References: <87bmhq6ytg.fsf@mdc-berlin.de> <87shar5wp8.fsf@gmail.com> <20180319120400.GA13807@thebird.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43326) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyBM6-0003Tx-Vh for guix-devel@gnu.org; Tue, 20 Mar 2018 03:06:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyBM1-00052h-AR for guix-devel@gnu.org; Tue, 20 Mar 2018 03:06:46 -0400 Received: from mail.thebird.nl ([95.154.246.10]:57743) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eyBM1-00051U-2m for guix-devel@gnu.org; Tue, 20 Mar 2018 03:06:41 -0400 Content-Disposition: inline In-Reply-To: <20180319120400.GA13807@thebird.nl> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Pjotr Prins Cc: guix-devel@gnu.org, Ricardo Wurmus 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. --