GNU bug report logs - #56092
[PATCH] challenge: Do nothing when passed zero arguments.

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Sun, 19 Jun 2022 13:56:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56092 in the body.
You can then email your comments to 56092 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#56092; Package guix-patches. (Sun, 19 Jun 2022 13:56:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludo <at> gnu.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 19 Jun 2022 13:56:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: guix-patches <at> gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Vagrant Cascadian <vagrant <at> reproducible-builds.org>
Subject: [PATCH] challenge: Do nothing when passed zero arguments.
Date: Sun, 19 Jun 2022 15:55:22 +0200
Previously, 'guix challenge' without arguments would list live store
items that had been locally built.  This was deemed confusing,
especially since 'list-live' is an expensive operation.

* guix/scripts/challenge.scm (guix-challenge): Warn and exit with 0 when
FILES is empty.
* doc/guix.texi (Invoking guix challenge): Update accordingly.
---
 doc/guix.texi              | 38 ++++++++++++++++++++++----------------
 guix/scripts/challenge.scm |  5 +++--
 2 files changed, 25 insertions(+), 18 deletions(-)

Hi!

This changes ‘guix challenge’ such that, with no arguments, it does
nothing, which is arguably less confusing that the current behavior.

Thoughts?

Ludo’.

diff --git a/doc/guix.texi b/doc/guix.texi
index 86348fc02c..75b8eca38d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14911,7 +14911,9 @@ any given store item.
 The command output looks like this:
 
 @smallexample
-$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org"
+$ guix challenge \
+  --substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org" \
+  openssl git pius coreutils grep
 updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER-1}'... 100.0%
 updating list of substitutes from 'https://guix.example.org'... 100.0%
 /gnu/store/@dots{}-openssl-1.0.2d contents differ:
@@ -14938,18 +14940,20 @@ updating list of substitutes from 'https://guix.example.org'... 100.0%
 
 @dots{}
 
-6,406 store items were analyzed:
-  - 4,749 (74.1%) were identical
-  - 525 (8.2%) differed
-  - 1,132 (17.7%) were inconclusive
+5 store items were analyzed:
+  - 2 (40.0%) were identical
+  - 3 (60.0%) differed
+  - 0 (0.0%) were inconclusive
 @end smallexample
 
 @noindent
-In this example, @command{guix challenge} first scans the store to
-determine the set of locally-built derivations---as opposed to store
-items that were downloaded from a substitute server---and then queries
-all the substitute servers.  It then reports those store items for which
-the servers obtained a result different from the local build.
+In this example, @command{guix challenge} queries all the substitute
+servers for each of the fives packages specified on the command line.
+It then reports those store items for which the servers obtained a
+result different from the local build (if it exists) and/or different
+from one another; here, the @samp{local hash} lines indicate that a
+local build result was available for each of these packages and shows
+its hash.
 
 @cindex non-determinism, in package builds
 As an example, @code{guix.example.org} always gets a different answer.
@@ -15005,19 +15009,21 @@ whether @code{@value{SUBSTITUTE-SERVER-1}} and other substitute servers obtain t
 same build result as you did with:
 
 @example
-$ guix challenge @var{package}
+guix challenge @var{package}
 @end example
 
-@noindent
-where @var{package} is a package specification such as
-@code{guile@@2.0} or @code{glibc:debug}.
-
 The general syntax is:
 
 @example
-guix challenge @var{options} [@var{packages}@dots{}]
+guix challenge @var{options} @var{argument}@dots{}
 @end example
 
+@noindent
+where @var{argument} is a package specification such as
+@code{guile@@2.0} or @code{glibc:debug} or, alternatively, a store file
+name as returned, for example, by @command{guix build} or @command{guix
+gc --list-live}.
+
 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
diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm
index 96ffe53a85..1fdf245505 100644
--- a/guix/scripts/challenge.scm
+++ b/guix/scripts/challenge.scm
@@ -530,8 +530,9 @@ (define-command (guix-challenge . args)
                         (current-terminal-columns (terminal-columns)))
            (let ((files (match files
                           (()
-                           (filter (cut locally-built? store <>)
-                                   (live-paths store)))
+                           (warning
+                            (G_ "no arguments specified, nothing to do~%"))
+                           (exit 0))
                           (x
                            files))))
              (set-build-options store

base-commit: 7f208f68dea828fe02718ca8ce81d5975136cff8
-- 
2.36.1





Information forwarded to guix-patches <at> gnu.org:
bug#56092; Package guix-patches. (Mon, 20 Jun 2022 14:50:01 GMT) Full text and rfc822 format available.

Message #8 received at 56092 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Ludovic Courtès <ludo <at> gnu.org>, 56092 <at> debbugs.gnu.org
Cc: Vagrant Cascadian <vagrant <at> reproducible-builds.org>
Subject: Re: [bug#56092] [PATCH] challenge: Do nothing when passed zero
 arguments.
Date: Mon, 20 Jun 2022 16:48:55 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès schreef op zo 19-06-2022 om 15:55 [+0200]:
> Hi!
> 
> This changes ‘guix challenge’ such that, with no arguments, it does
> nothing, which is arguably less confusing that the current behavior.

Having "guix challenge" be able to check your entire store for
reproducibility seemed a nifty feature to me.  E.g., it's as good a
starting point as any to look for which packages need some
reproducibility fixes.  I agree that doing the _entire store_ by
_default_ is a bit much, but I'd like the old behaviour to be still
available somewhere (guix challenge --all-local-things?)

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#56092; Package guix-patches. (Mon, 20 Jun 2022 20:17:02 GMT) Full text and rfc822 format available.

Message #11 received at 56092 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 56092 <at> debbugs.gnu.org, Vagrant Cascadian <vagrant <at> reproducible-builds.org>
Subject: Re: [bug#56092] [PATCH] challenge: Do nothing when passed zero
 arguments.
Date: Mon, 20 Jun 2022 22:15:52 +0200
Hi,

Maxime Devos <maximedevos <at> telenet.be> skribis:

> Ludovic Courtès schreef op zo 19-06-2022 om 15:55 [+0200]:
>> Hi!
>> 
>> This changes ‘guix challenge’ such that, with no arguments, it does
>> nothing, which is arguably less confusing that the current behavior.
>
> Having "guix challenge" be able to check your entire store for
> reproducibility seemed a nifty feature to me.  E.g., it's as good a
> starting point as any to look for which packages need some
> reproducibility fixes.

It seemed to make sense back then, when the store was typically much
smaller.  Today it’s no longer a reasonable default as you write.

> I agree that doing the _entire store_ by _default_ is a bit much, but
> I'd like the old behaviour to be still available somewhere (guix
> challenge --all-local-things?)

It can be approximated with ‘guix challenge $(guix gc --list-live)’.
It’s not exactly the same: things not built locally are also included.
But I find that it’s just as useful.

So I’d lean towards not adding an option for that.

WDYT?

Ludo’.

PS: What would be useful is a ‘--manifest’ option—future work!




Information forwarded to guix-patches <at> gnu.org:
bug#56092; Package guix-patches. (Mon, 20 Jun 2022 20:19:01 GMT) Full text and rfc822 format available.

Message #14 received at 56092 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 56092 <at> debbugs.gnu.org, Vagrant Cascadian <vagrant <at> reproducible-builds.org>
Subject: Re: [bug#56092] [PATCH] challenge: Do nothing when passed zero
 arguments.
Date: Mon, 20 Jun 2022 22:18:21 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès schreef op ma 20-06-2022 om 22:15 [+0200]:
> It can be approximated with ‘guix challenge $(guix gc --list-live)’.
> It’s not exactly the same: things not built locally are also included.
> But I find that it’s just as useful.
> 
> So I’d lean towards not adding an option for that.

Right, that would work.

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Sat, 02 Jul 2022 23:45:02 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Sat, 02 Jul 2022 23:45:02 GMT) Full text and rfc822 format available.

Message #19 received at 56092-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: Vagrant Cascadian <vagrant <at> reproducible-builds.org>,
 56092-done <at> debbugs.gnu.org
Subject: Re: bug#56092: [PATCH] challenge: Do nothing when passed zero
 arguments.
Date: Sun, 03 Jul 2022 01:43:59 +0200
Pushed as e7ab3d33aec3993737cdbc4396a9c44a54a3ce84!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 31 Jul 2022 11:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 263 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.