diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-07-20 22:23:15 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-07-20 22:53:02 +0200 |
commit | 13cee334f1a31e7d8f7124d045b136106fe8d356 (patch) | |
tree | 74af2900ae0ef80b8b752c51481e47f0b3abcf38 /build-aux/build-self.scm | |
parent | 0b0086e94c68769bfcada7c2b3b426873aac8efc (diff) | |
download | gnu-guix-13cee334f1a31e7d8f7124d045b136106fe8d356.tar gnu-guix-13cee334f1a31e7d8f7124d045b136106fe8d356.tar.gz |
pull: Install (guix config) module to override the user's one.
* build-aux/build-self.scm (zlib, gzip, bzip2, xz): New variables.
(build)[storedir, localstatedir, sysconfdir, sbindir]: New variables.
[builder]: Pass them to 'build-guix'.
* guix/build/pull.scm (build-guix): Add #:system, #:storedir,
#:localstatedir, #:sysconfdir, #:sbindir, #:package-name,
#:package-version, #:bug-report-address, #:home-page-url, #:libgcrypt,
#:zlib, #:gzip, #:bzip2, and #:xz. Remove #:gcrypt.
Instantiate all the substitution variables in (guix config). Remove
code to delete OUT/guix/config.{scm,go}.
* guix/config.scm.in: Add note about (guix script pull).
Diffstat (limited to 'build-aux/build-self.scm')
-rw-r--r-- | build-aux/build-self.scm | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index b78f3cb437..c673912af5 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +19,7 @@ (define-module (build-self) #:use-module (gnu) #:use-module (guix) + #:use-module (guix config) #:use-module (srfi srfi-1) #:export (build)) @@ -44,6 +45,18 @@ (define libgcrypt (first (find-best-packages-by-name "libgcrypt" #f))) +(define zlib + (first (find-best-packages-by-name "zlib" #f))) + +(define gzip + (first (find-best-packages-by-name "gzip" #f))) + +(define bzip2 + (first (find-best-packages-by-name "bzip2" #f))) + +(define xz + (first (find-best-packages-by-name "xz" #f))) + (define guile-json (first (find-best-packages-by-name "guile-json" #f))) @@ -63,6 +76,19 @@ #:rest rest) "Return a derivation that unpacks SOURCE into STORE and compiles Scheme files." + ;; The '%xxxdir' variables were added to (guix config) in July 2016 so we + ;; cannot assume that they are defined. Try to guess their value when + ;; they're undefined (XXX: we get an incorrect guess when environment + ;; variables such as 'NIX_STATE_DIR' are defined!). + (define storedir + (if (defined? '%storedir) %storedir %store-directory)) + (define localstatedir + (if (defined? '%localstatedir) %localstatedir (dirname %state-directory))) + (define sysconfdir + (if (defined? '%sysconfdir) %sysconfdir (dirname %config-directory))) + (define sbindir + (if (defined? '%sbindir) %sbindir (dirname %guix-register-program))) + (define builder #~(begin (use-modules (guix build pull)) @@ -73,12 +99,28 @@ files." (build-guix #$output #$source + #:system #$%system + #:storedir #$storedir + #:localstatedir #$localstatedir + #:sysconfdir #$sysconfdir + #:sbindir #$sbindir + + #:package-name #$%guix-package-name + #:package-version #$%guix-version + #:bug-report-address #$%guix-bug-report-address + #:home-page-url #$%guix-home-page-url + + #:libgcrypt #$libgcrypt + #:zlib #$zlib + #:gzip #$gzip + #:bzip2 #$bzip2 + #:xz #$xz + ;; XXX: This is not perfect, enabling VERBOSE? means ;; building a different derivation. #:debug-port (if #$verbose? (current-error-port) - (%make-void-port "w")) - #:gcrypt #$libgcrypt))) + (%make-void-port "w"))))) (gexp->derivation "guix-latest" builder #:modules '((guix build pull) |