From a47f16a874356ca6a1459176561ec7e66c00ba19 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 10 Jan 2021 18:57:01 +0100 Subject: channels: Add the channel name to channel sexps. * guix/channels.scm (channel-instance->sexp): Add 'name'. (sexp->channel): Extract the name from SEXP, using the optional argument as a fallback. --- guix/channels.scm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index 65a0d849ec..6449221c3f 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -812,6 +812,7 @@ (define (channel-instance->sexp instance) (url ,(channel-url channel)) (branch ,(channel-branch channel)) (commit ,commit) + (name ,(channel-name channel)) ,@(if intro `((introduction (channel-introduction @@ -907,16 +908,22 @@ (define* (latest-channel-derivation #:optional (channels %default-channels) (channel-instances->derivation instances))) (define* (sexp->channel sexp #:optional (name 'channel)) - "Read SEXP, a provenance sexp as created by 'channel-instance->sexp', -and return a channel called NAME. Return #f if the sexp does not have the -expected structure." + "Read SEXP, a provenance sexp as created by 'channel-instance->sexp'; use +NAME as the channel name if SEXP does not specify it. Return #f if the sexp +does not have the expected structure." (match sexp (('repository ('version 0) ('url url) ('branch branch) ('commit commit) rest ...) - (channel (name name) + ;; Historically channel sexps did not include the channel name. It's OK + ;; for channels created by 'channel-instances->manifest' because the + ;; entry name is the channel name, but it was missing for entries created + ;; by 'manifest-entry-with-provenance'. + (channel (name (match (assq 'name rest) + (#f name) + (('name name) name))) (url url) (commit commit) (introduction -- cgit v1.2.3