[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#27284: [PATCH 0/8] 'guix pull' creates several derivations

From: Ludovic Courtès
Subject: bug#27284: [PATCH 0/8] 'guix pull' creates several derivations
Date: Fri, 20 Oct 2017 18:05:49 +0200

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

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 <derivation> and <package>
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.  :-)


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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]