GNU bug report logs -
#7243
[patch] making md5sum's warnings clearer
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 7243 in the body.
You can then email your comments to 7243 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7243
; Package
coreutils
.
(Mon, 18 Oct 2010 21:21:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
"Benno Schulenberg" <bensberg <at> justemail.net>
:
New bug report received and forwarded. Copy sent to
bug-coreutils <at> gnu.org
.
(Mon, 18 Oct 2010 21:21:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
Two years ago I complained about the untranslatability of the warnings
that md5sum prints when it has encountered unexpected things:
http://lists.gnu.org/archive/html/bug-coreutils/2008-09/msg00168.html
Jim asked to come up with a change that doesn't remove information.
I've finally gotten around to making this -- see the attached patch.
In addition to read failures and checksum failures, md5sum now alerts
the user to the number of misformatted checksum lines. It prints this
line also when '--warn' is not given, because it is so important.
Regards,
Benno
(Please CC, not subscribed.)
--
http://www.fastmail.fm - Same, same, but different...
[0001-md5sum-print-a-summary-warning-for-improperly-format.patch (text/x-patch, attachment)]
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7243
; Package
coreutils
.
(Tue, 19 Oct 2010 07:34:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 7243 <at> debbugs.gnu.org (full text, mbox):
Benno Schulenberg wrote:
> Two years ago I complained about the untranslatability of the warnings
> that md5sum prints when it has encountered unexpected things:
> http://lists.gnu.org/archive/html/bug-coreutils/2008-09/msg00168.html
>
> Jim asked to come up with a change that doesn't remove information.
> I've finally gotten around to making this -- see the attached patch.
> In addition to read failures and checksum failures, md5sum now alerts
> the user to the number of misformatted checksum lines. It prints this
> line also when '--warn' is not given, because it is so important.
Thanks for following up.
I've applied your patch after adjusting the log and a failing test,
then added two more tests to cover the new types of output lines.
From 407806b27f032b3bce828ee0a152b5f67e997e09 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg <at> justemail.net>
Date: Mon, 18 Oct 2010 22:35:39 +0200
Subject: [PATCH 1/2] md5sum: print a summary warning for improperly formatted lines
And remove the now-superfluous totals from the other two warnings,
so the plurals will also work in other languages than English.
* src/md5sum.c (digest_check): Change as above.
* tests/misc/md5sum (check-quiet2): Adjust accordingly.
---
src/md5sum.c | 36 +++++++++++++++++++-----------------
tests/misc/md5sum | 2 +-
2 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/src/md5sum.c b/src/md5sum.c
index 10d4fa2..a660e3b 100644
--- a/src/md5sum.c
+++ b/src/md5sum.c
@@ -431,6 +431,7 @@ static bool
digest_check (const char *checkfile_name)
{
FILE *checkfile_stream;
+ uintmax_t n_misformatted_lines = 0;
uintmax_t n_properly_formatted_lines = 0;
uintmax_t n_mismatched_checksums = 0;
uintmax_t n_open_or_read_failures = 0;
@@ -489,6 +490,8 @@ digest_check (const char *checkfile_name)
&& ! (is_stdin && STREQ (filename, "-"))
&& hex_digits (hex_digest)))
{
+ ++n_misformatted_lines;
+
if (warn)
{
error (0, 0,
@@ -571,27 +574,26 @@ digest_check (const char *checkfile_name)
{
if (!status_only)
{
+ if (n_misformatted_lines != 0)
+ error (0, 0,
+ ngettext ("WARNING: %" PRIuMAX " line is improperly formatted",
+ "WARNING: %" PRIuMAX " lines are improperly formatted",
+ select_plural (n_misformatted_lines)),
+ n_misformatted_lines);
+
if (n_open_or_read_failures != 0)
error (0, 0,
- ngettext ("WARNING: %" PRIuMAX " of %" PRIuMAX
- " listed file could not be read",
- "WARNING: %" PRIuMAX " of %" PRIuMAX
- " listed files could not be read",
- select_plural (n_properly_formatted_lines)),
- n_open_or_read_failures, n_properly_formatted_lines);
+ ngettext ("WARNING: %" PRIuMAX " listed file could not be read",
+ "WARNING: %" PRIuMAX " listed files could not be read",
+ select_plural (n_open_or_read_failures)),
+ n_open_or_read_failures);
if (n_mismatched_checksums != 0)
- {
- uintmax_t n_computed_checksums =
- (n_properly_formatted_lines - n_open_or_read_failures);
- error (0, 0,
- ngettext ("WARNING: %" PRIuMAX " of %" PRIuMAX
- " computed checksum did NOT match",
- "WARNING: %" PRIuMAX " of %" PRIuMAX
- " computed checksums did NOT match",
- select_plural (n_computed_checksums)),
- n_mismatched_checksums, n_computed_checksums);
- }
+ error (0, 0,
+ ngettext ("WARNING: %" PRIuMAX " computed checksum did NOT match",
+ "WARNING: %" PRIuMAX " computed checksums did NOT match",
+ select_plural (n_mismatched_checksums)),
+ n_mismatched_checksums);
}
}
diff --git a/tests/misc/md5sum b/tests/misc/md5sum
index d3c523e..92cc0fb 100755
--- a/tests/misc/md5sum
+++ b/tests/misc/md5sum
@@ -51,7 +51,7 @@ my @Tests =
['check-quiet2', '--check', '--quiet',
{IN=>{'f.md5' => "$degenerate f\n"}},
{AUX=> {f=> 'foo'}}, {OUT=>"f: FAILED\n"},
- {ERR=>"md5sum: WARNING: 1 of 1 computed"
+ {ERR=>"md5sum: WARNING: 1 computed"
. " checksum did NOT match\n"},
{EXIT=> 1}],
# The sha1sum and md5sum drivers share a lot of code.
--
1.7.3.1.526.g2ee4
From 10a0bdfa986dc77b9c5b7171b701e77d02756759 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering <at> redhat.com>
Date: Tue, 19 Oct 2010 09:19:59 +0200
Subject: [PATCH 2/2] tests: trigger and test for md5sum's new diagnostics
* tests/misc/md5sum: Test for new diagnostics.
---
tests/misc/md5sum | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/tests/misc/md5sum b/tests/misc/md5sum
index 92cc0fb..819a819 100755
--- a/tests/misc/md5sum
+++ b/tests/misc/md5sum
@@ -54,6 +54,29 @@ my @Tests =
{ERR=>"md5sum: WARNING: 1 computed"
. " checksum did NOT match\n"},
{EXIT=> 1}],
+ # Exercise new-after-8.6, easier-to-translate diagnostics.
+ ['check-multifail', '--check',
+ {IN=>{'f.md5' =>
+ "$degenerate f\n"
+ . "$degenerate f\n"
+ . "invalid\n" }},
+ {AUX=> {f=> 'foo'}},
+ {OUT=>"f: FAILED\nf: FAILED\n"},
+ {ERR=>"md5sum: WARNING: 1 line is improperly formatted\n"
+ . "md5sum: WARNING: 2 computed checksums did NOT match\n"},
+ {EXIT=> 1}],
+ # Similar to the above, but use --warn to evoke one more diagnostic.
+ ['check-multifail-warn', '--check', '--warn',
+ {IN=>{'f.md5' =>
+ "$degenerate f\n"
+ . "$degenerate f\n"
+ . "invalid\n" }},
+ {AUX=> {f=> 'foo'}},
+ {OUT=>"f: FAILED\nf: FAILED\n"},
+ {ERR=>"md5sum: f.md5: 3: improperly formatted MD5 checksum line\n"
+ . "md5sum: WARNING: 1 line is improperly formatted\n"
+ . "md5sum: WARNING: 2 computed checksums did NOT match\n"},
+ {EXIT=> 1}],
# The sha1sum and md5sum drivers share a lot of code.
# Ensure that md5sum does *not* share the part that makes
# sha1sum accept BSD format.
--
1.7.3.1.526.g2ee4
Reply sent
to
Jim Meyering <jim <at> meyering.net>
:
You have taken responsibility.
(Tue, 19 Oct 2010 19:25:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
"Benno Schulenberg" <bensberg <at> justemail.net>
:
bug acknowledged by developer.
(Tue, 19 Oct 2010 19:25:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 7243-done <at> debbugs.gnu.org (full text, mbox):
Jim Meyering wrote:
> Benno Schulenberg wrote:
>> Two years ago I complained about the untranslatability of the warnings
>> that md5sum prints when it has encountered unexpected things:
>> http://lists.gnu.org/archive/html/bug-coreutils/2008-09/msg00168.html
>>
>> Jim asked to come up with a change that doesn't remove information.
>> I've finally gotten around to making this -- see the attached patch.
>> In addition to read failures and checksum failures, md5sum now alerts
>> the user to the number of misformatted checksum lines. It prints this
>> line also when '--warn' is not given, because it is so important.
>
> Thanks for following up.
> I've applied your patch after adjusting the log and a failing test,
> then added two more tests to cover the new types of output lines.
>
> Subject: [PATCH 1/2] md5sum: print a summary warning for improperly formatted lines
>
> And remove the now-superfluous totals from the other two warnings,
> so the plurals will also work in other languages than English.
>
> * src/md5sum.c (digest_check): Change as above.
> * tests/misc/md5sum (check-quiet2): Adjust accordingly.
FYI, I'm marking this as closed.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 17 Nov 2010 12:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 14 years and 219 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.