From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pjotr Prins Subject: Creating a reliable bootstrap for building from source Date: Sun, 14 May 2017 20:30:14 +0200 Message-ID: <20170514183014.GA31243@thebird.nl> References: <87bmt28qnm.fsf@gnu.org> <87k26chy16.fsf@gnu.org> <87y3u5wwsi.fsf_-_@gnu.org> <20170514135041.GA29369@thebird.nl> <20170514153506.GA29953@thebird.nl> <20170514161342.GA30265@thebird.nl> <87efvr769a.fsf@gnu.org> <20170514172927.GA31005@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]:33584) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9yHt-0000Zm-OU for guix-devel@gnu.org; Sun, 14 May 2017 14:30:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9yHo-0007Nm-Rv for guix-devel@gnu.org; Sun, 14 May 2017 14:30:37 -0400 Content-Disposition: inline In-Reply-To: <20170514172927.GA31005@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: Jan Nieuwenhuizen , guix-devel Thinking about it, what I want to achieve is that we can take the latest git tree and bootstrap by building guix and packages. This should be easy, since I have guix running, but it is not. And the main trouble is that the underlying build packages can differ over time. I am looking at gcc versions and guile versions. I.e., we are building on shifting sands. How unguixy! The combination of 'guix pull' held a promise, were it not that pull is also iffy. Probably for pretty much the same reason. The bootstrap+configure scripts try to work that, but actually address a wider case. I.e. people who want to bootstrap in Debian etc. I don't think we need al that. I write Makefile.guix for my projects and they tend to be simple! Once you can assume Guix is there life gets simple as a developer - except when you try to bootstrap :0 The instruction I would like to write for others is: 1. Install the latest bootstrap-guix-from-source package after a guix pull 2. git clone guix && cd guix 3. run make -f Makefile.guix (no configure is needed in guix!) 4. ./pre-inst guix etc. etc. Now the bootstrap-guix-from-source package is easy to create and needs one single test: build guix from the git tree. It should have a dependency on the git tree itself, so it gets forced every time on the build farm. Once we have that we can even bootstrap using guix pack and such. I realise potluck could be an alternative, but a working bootstrap would make guix pull also reliable and we can test it effectively on the build farm. Pj. (unguixy, I like that. It applies to many deployment statements. The world is an unguixy place)