[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
06/08: services: provenance: Save channel introductions.
From: |
guix-commits |
Subject: |
06/08: services: provenance: Save channel introductions. |
Date: |
Wed, 1 Jul 2020 17:48:55 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit eb5cf39e66a51eb357ca0c08f4409d00ec3b24a9
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Thu Jun 25 17:54:55 2020 +0200
services: provenance: Save channel introductions.
* gnu/services.scm (channel->code): Include CHANNEL's introduction, if
any, unless CHANNEL is the singleton %DEFAULT-CHANNELS.
(channel->sexp): Add comment.
* guix/scripts/system.scm (sexp->channel): Change pattern to allow for
extensibility.
---
gnu/services.scm | 26 ++++++++++++++++++++++----
guix/scripts/system.scm | 4 +++-
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/gnu/services.scm b/gnu/services.scm
index 27e5558..f6dc56d 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -31,6 +31,7 @@
#:use-module (guix sets)
#:use-module (guix ui)
#:use-module ((guix utils) #:select (source-properties->location))
+ #:autoload (guix openpgp) (openpgp-format-fingerprint)
#:use-module (guix modules)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@@ -392,14 +393,31 @@ by the initrd once the root file system is mounted.")))
(define (channel->code channel)
"Return code to build CHANNEL, ready to be dropped in a 'channels.scm'
file."
- `(channel (name ',(channel-name channel))
- (url ,(channel-url channel))
- (branch ,(channel-branch channel))
- (commit ,(channel-commit channel))))
+ ;; Since the 'introduction' field is backward-incompatible, and since it's
+ ;; optional when using the "official" 'guix channel, include it if and only
+ ;; if we're referring to a different channel.
+ (let ((intro (and (not (equal? (list channel) %default-channels))
+ (channel-introduction channel))))
+ `(channel (name ',(channel-name channel))
+ (url ,(channel-url channel))
+ (branch ,(channel-branch channel))
+ (commit ,(channel-commit channel))
+ ,@(if intro
+ `((introduction
+ (make-channel-introduction
+ ,(channel-introduction-first-signed-commit intro)
+ (openpgp-fingerprint
+ ,(openpgp-format-fingerprint
+ (channel-introduction-first-commit-signer
+ intro))))))
+ '()))))
(define (channel->sexp channel)
"Return an sexp describing CHANNEL. The sexp is _not_ code and is meant to
be parsed by tools; it's potentially more future-proof than code."
+ ;; TODO: Add CHANNEL's introduction. Currently we can't do that because
+ ;; older 'guix system describe' expect exactly name/url/branch/commit
+ ;; without any additional fields.
`(channel (name ,(channel-name channel))
(url ,(channel-url channel))
(branch ,(channel-branch channel))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index d9cf45d..28aaa6e 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -453,7 +453,9 @@ list of services."
(('channel ('name name)
('url url)
('branch branch)
- ('commit commit))
+ ('commit commit)
+ rest ...)
+ ;; XXX: In the future REST may include a channel introduction.
(channel (name name) (url url)
(branch branch) (commit commit)))))
- branch master updated (67ba981 -> d774c7b), guix-commits, 2020/07/01
- 02/08: channels: Make channel introductions public., guix-commits, 2020/07/01
- 03/08: channels: Remove 'signature' from <channel-introduction>., guix-commits, 2020/07/01
- 08/08: channels: Dependencies listed in '.guix-channel' can have an introduction., guix-commits, 2020/07/01
- 01/08: channels: Add 'openpgp-fingerprint->bytevector'., guix-commits, 2020/07/01
- 05/08: guix describe: Display channel introductions and add 'channels-sans-intro'., guix-commits, 2020/07/01
- 06/08: services: provenance: Save channel introductions.,
guix-commits <=
- 04/08: channels: Save and interpret 'introduction' field in provenance data., guix-commits, 2020/07/01
- 07/08: channels: Properly diagnose test failure., guix-commits, 2020/07/01