summaryrefslogtreecommitdiff
path: root/guix/channels.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/channels.scm')
-rw-r--r--guix/channels.scm37
1 files changed, 24 insertions, 13 deletions
diff --git a/guix/channels.scm b/guix/channels.scm
index ad6d3fb8ac..40cbc4bb3a 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
@@ -248,7 +248,7 @@ could be found at DIRECTORY or one of its ancestors."
'latest-repository-commit'."
(match (channel-commit channel)
(#f `(branch . ,(channel-branch channel)))
- (commit `(commit . ,(channel-commit channel)))))
+ (commit `(tag-or-commit . ,(channel-commit channel)))))
(define sexp->channel-introduction
(match-lambda
@@ -419,19 +419,28 @@ their relation. When AUTHENTICATE? is false, CHANNEL is not authenticated."
(if authenticate?
(if (channel-introduction channel)
(authenticate-channel channel checkout commit)
- ;; TODO: Warn for all the channels once the authentication interface
- ;; is public.
- (when (guix-channel? channel)
- (raise (make-compound-condition
- (formatted-message (G_ "channel '~a' lacks an \
+ (begin
+ (when (file-exists?
+ (string-append checkout "/.guix-authorizations"))
+ (warning (and=> (channel-location channel)
+ source-properties->location)
+ (G_ "channel '~a' lacks 'introduction' field but \
+'.guix-authorizations' found\n")
+ (channel-name channel)))
+
+ ;; TODO: Warn for all the channels once the authentication interface
+ ;; is public.
+ (when (guix-channel? channel)
+ (raise (make-compound-condition
+ (formatted-message (G_ "channel '~a' lacks an \
introduction and cannot be authenticated~%")
- (channel-name channel))
- (condition
- (&fix-hint
- (hint (G_ "Add the missing introduction to your
+ (channel-name channel))
+ (condition
+ (&fix-hint
+ (hint (G_ "Add the missing introduction to your
channels file to address the issue. Alternatively, you can pass
@option{--disable-authentication}, at the risk of running unauthenticated and
-thus potentially malicious code."))))))))
+thus potentially malicious code.")))))))))
(warning (G_ "channel authentication disabled~%")))
(when (guix-channel? channel)
@@ -1048,7 +1057,9 @@ true, include its introduction, if any."
(name ',(channel-name channel))
(url ,(channel-url channel))
(branch ,(channel-branch channel))
- (commit ,(channel-commit channel))
+ ,@(if (channel-commit channel)
+ `((commit ,(channel-commit channel)))
+ '())
,@(if intro
`((introduction (make-channel-introduction
,(channel-introduction-first-signed-commit intro)