diff --git a/doc/guix.texi b/doc/guix.texi index aeeec617e..a16422261 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5582,7 +5582,7 @@ $ guix challenge @var{package} @noindent where @var{package} is a package specification such as -@code{guile-2.0} or @code{glibc:debug}. +@code{guile@@2.0} or @code{glibc:debug}. The general syntax is: @@ -5590,6 +5590,11 @@ The general syntax is: guix challenge @var{options} [@var{packages}@dots{}] @end example +When a difference is found between the hash of a locally-built item and +that of a server-provided substitute, or among substitutes provided by +different servers, the command displays it as in the example above and +exits with a non-zero return code. + The one option that matters is: @table @code diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index 4a0c865b0..0eb49da0c 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -233,9 +233,11 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) (run-with-store store (mlet* %store-monad ((items (mapm %store-monad - ensure-store-item files)) + ensure-store-item files)) (issues (discrepancies items urls))) (for-each summarize-discrepancy issues) + (unless (null? issues) + (exit 1)) (return (null? issues))) #:system system))))))) diff --git a/scripts/guix.in b/scripts/guix.in index 8f2d8a643..5d6921dd0 100644 --- a/scripts/guix.in +++ b/scripts/guix.in @@ -64,4 +64,9 @@ (apply guix-main (command-line)))) (maybe-augment-load-paths!) + + ;; XXX: It would be more convenient to change it to: + ;; (exit (run-guix-main)) + ;; but since the 'guix' command is not updated by 'guix pull', we cannot + ;; really do it now. (run-guix-main))