[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/07: status: Print a hint when a 'package-cache' hook fails to build.
From: |
guix-commits |
Subject: |
07/07: status: Print a hint when a 'package-cache' hook fails to build. |
Date: |
Fri, 10 Feb 2023 18:13:33 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 3ab8559436356ef89aa60135d3558681d64443ae
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Mon Feb 6 15:02:34 2023 +0100
status: Print a hint when a 'package-cache' hook fails to build.
* guix/channels.scm (package-cache-file): Add 'channels' to the #:properties
list.
* guix/status.scm (print-build-event): Upon failure, display a hint when
the derivation is a 'package-cache' hook.
---
guix/channels.scm | 9 +++++++--
guix/status.scm | 18 +++++++++++++++++-
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/guix/channels.scm b/guix/channels.scm
index 40cbc4bb3a..d44e7a0a3a 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -952,6 +952,10 @@ be used as a profile hook."
(backtrace))))
(mkdir #$output))))
+ (define channels
+ (map (compose string->symbol manifest-entry-name)
+ (manifest-entries manifest)))
+
(gexp->derivation-in-inferior "guix-package-cache" build
profile
@@ -960,8 +964,9 @@ be used as a profile hook."
;; instead of failing.
#:silent-failure? #t
- #:properties '((type . profile-hook)
- (hook . package-cache))
+ #:properties `((type . profile-hook)
+ (hook . package-cache)
+ (channels . ,channels))
#:local-build? #t)))
(define %channel-profile-hooks
diff --git a/guix/status.scm b/guix/status.scm
index 2c69f49fb5..5580c80ea9 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
@@ -22,6 +22,7 @@
#:use-module (guix i18n)
#:use-module (guix colors)
#:use-module (guix progress)
+ #:autoload (guix ui) (display-hint)
#:autoload (guix build syscalls) (terminal-columns)
#:autoload (guix build download) (nar-uri-abbreviation)
#:use-module (guix store)
@@ -526,6 +527,21 @@ substitutes being downloaded."
(erase-current-line*) ;erase spinner or progress bar
(format port (failure (G_ "build of ~a failed")) drv)
(newline port)
+ (let ((properties (and=> (false-if-exception
+ (read-derivation-from-file drv))
+ derivation-properties)))
+ (when (and (pair? properties)
+ (eq? (assq-ref properties 'type) 'profile-hook)
+ (eq? (assq-ref properties 'hook) 'package-cache))
+ (display-hint (format #f (G_ "This usually indicates a bug in one of
+the channels you are pulling from, or some incompatibility among them. You
+can check the build log and report the issue to the channel developers.
+
+The channels you are pulling from are: ~a.")
+ (string-join
+ (map symbol->string
+ (or (assq-ref properties 'channels)
+ '(guix))))))))
(match (derivation-log-file drv)
(#f
(format port (failure (G_ "Could not find build log for '~a'."))
- branch master updated (8a0b625a2d -> 3ab8559436), guix-commits, 2023/02/10
- 01/07: gnu: Remove opencascade-oce., guix-commits, 2023/02/10
- 03/07: utils: Add target-little-endian?., guix-commits, 2023/02/10
- 04/07: gnu: Add mcpp., guix-commits, 2023/02/10
- 07/07: status: Print a hint when a 'package-cache' hook fails to build.,
guix-commits <=
- 02/07: gnu: ddclient: Update to 3.10.0., guix-commits, 2023/02/10
- 05/07: gnu: Add libopenglrecorder., guix-commits, 2023/02/10
- 06/07: gnu: supertuxkart: Update to 1.4., guix-commits, 2023/02/10