From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Subject: bug#27284: [PATCH 0/8] 'guix pull' creates several derivations Date: Fri, 20 Oct 2017 18:05:49 +0200 Message-ID: <20171020160557.27096-1-ludo@gnu.org> References: <87poamv2i7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46598) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e5ZpC-0003eV-9U for bug-guix@gnu.org; Fri, 20 Oct 2017 12:07:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e5ZpA-0007b8-SY for bug-guix@gnu.org; Fri, 20 Oct 2017 12:07:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:43923) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1e5ZpA-0007b4-Ol for bug-guix@gnu.org; Fri, 20 Oct 2017 12:07:04 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87poamv2i7.fsf@gnu.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: 27284@debbugs.gnu.org Hi there! This patch set leads us to a ‘guix pull’ that creates several derivations instead of just one: “guix-core” (38 files), “guix-extra”, “guix-packages” (388 files), “guix-cli”, “guix-system”. The idea is that we should be able to have substitutes for at least some of them, for instance because “guix-core” doesn’t need to be rebuilt very often. Most of the time, users will just have to build “guix-packages”, which is still a bit slow, but will hopefully get better as Guile incorporates those long-awaited fixes. The first two commits provide much needed improvements, and I’d be willing to merge them ASAP. The rest is the guts of the project. The last commit is marked as draft: it works as-is, but does not yet address one of the limitations of ‘guix pull’, which is that dependencies (guile-json, guile-ssh, etc.) are taken from the *current* Guix instead of being taken from the target Guix. The ‘reload-guix’ procedure there is here to fix that: we reload all the Guix modules of the target checkout, and run the build procedure from that context. Unfortunately, it’s not fully baked yet because reloading leads to incompatibilities: the (guix scripts pull) module remains in the “old world” and manipulates the old and record types, which is different from the new ones. That should be fixable, but requires some more time and fiddling. Help from Guilers is very much welcome! :-) This last part is not ready yet, but feedback is appreciated. Thanks in advance. :-) Ludo’. Ludovic Courtès (8): build: Factorize module compilation in (guix build compile). build: Honor make's '-j' flag. discovery: Move 'file-name->module-name' to (guix modules). gexp: Add 'file-union'. gexp: Add 'directory-union'. union: Parametrize the symlink procedure . gexp: 'directory-union' has a #:quiet? parameter. DRAFT Add (guix self) and use it when pulling. Makefile.am | 2 + build-aux/build-self.scm | 227 ++---------------- build-aux/compile-all.scm | 116 +++------ doc/guix.texi | 28 +++ gnu/packages.scm | 21 +- gnu/services.scm | 37 +-- guix/build/compile.scm | 165 +++++++++++++ guix/build/pull.scm | 105 +++----- guix/build/union.scm | 11 +- guix/discovery.scm | 11 +- guix/gexp.scm | 72 ++++++ guix/modules.scm | 10 + guix/scripts/pull.scm | 16 +- guix/self.scm | 599 ++++++++++++++++++++++++++++++++++++++++++++++ 14 files changed, 1001 insertions(+), 419 deletions(-) create mode 100644 guix/build/compile.scm create mode 100644 guix/self.scm -- 2.14.2