From 316fc2acbb112bfa572ae30f95a93bcd56621234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 27 Jan 2021 14:46:10 +0100 Subject: channels: Record 'guix' channel metadata in (guix config). Partially fixes . * guix/config.scm.in (%channel-metadata): New variable. * guix/describe.scm (channel-metadata): Use it. (current-channels): New procedure. (current-profile-entries): Clarify docstring. * guix/self.scm (compiled-guix): Add #:channel-metadata and pass it to 'make-config.scm'. (make-config.scm): Add #:channel-metadata and define '%channel-metadata' in the generated file. (guix-derivation): Add #:channel-metadata and pass it to 'compiled-guix'. * guix/channels.scm (build-from-source): Replace 'name', 'source', and 'commit' parameters with 'instance'. Pass #:channel-metadata to BUILD. (build-channel-instance): Adjust accordingly. * build-aux/build-self.scm (build-program): Add #:channel-metadata and pass it to 'guix-derivation'. (build): Add #:channel-metadata and pass it to 'build-program'. * guix/scripts/describe.scm (display-profile-info): Add optional 'channels' parameter. Pass it to 'display-profile-content'. (display-profile-content): Add optional 'channels' parameter and honor it. Iterate on CHANNELS rather than on the manifest entries of PROFILE. (guix-describe): When PROFILE is #f, call 'current-channels' and pass it to 'display-profile-info', unless it returns the empty list. --- build-aux/build-self.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'build-aux') diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index d5bc5fb46e..6a3b9c83d4 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, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès +;;; Copyright © 2014, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -241,7 +241,7 @@ interface (FFI) of Guile.") (define* (build-program source version #:optional (guile-version (effective-version)) - #:key (pull-version 0)) + #:key (pull-version 0) (channel-metadata #f)) "Return a program that computes the derivation to build Guix from SOURCE." (define select? ;; Select every module but (guix config) and non-Guix modules. @@ -359,6 +359,8 @@ interface (FFI) of Guile.") (run-with-store store (guix-derivation source version #$guile-version + #:channel-metadata + '#$channel-metadata #:pull-version #$pull-version) #:system system) @@ -380,7 +382,9 @@ interface (FFI) of Guile.") ;; The procedure below is our return value. (define* (build source - #:key verbose? (version (date-version-string)) system + #:key verbose? + (version (date-version-string)) channel-metadata + system (pull-version 0) ;; For the standalone Guix, default to Guile 3.0. For old @@ -397,6 +401,7 @@ files." ;; Build the build program and then use it as a trampoline to build from ;; SOURCE. (mlet %store-monad ((build (build-program source version guile-version + #:channel-metadata channel-metadata #:pull-version pull-version)) (system (if system (return system) (current-system))) (home -> (getenv "HOME")) -- cgit v1.2.3