GNU bug report logs - #9956
Linux program "sum"

Previous Next

Package: coreutils;

Reported by: Rodney Rieck <rodneyrieck <at> suddenlink.net>

Date: Fri, 4 Nov 2011 19:15:01 UTC

Severity: normal

Tags: notabug

Done: Eric Blake <eblake <at> redhat.com>

Bug is archived. No further changes may be made.

Full log


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

From: Pádraig Brady <P <at> draigBrady.com>
To: Jim Meyering <jim <at> meyering.net>
Cc: 9956 <at> debbugs.gnu.org, Rodney Rieck <rodneyrieck <at> suddenlink.net>
Subject: Re: bug#9956: Linux program "sum"
Date: Mon, 07 Nov 2011 00:22:54 +0000
On 11/06/2011 01:12 PM, Jim Meyering wrote:
> Pádraig Brady wrote:
>> On 11/04/2011 06:37 PM, Rodney Rieck wrote:
>>>    Hello,
>>>
>>>    This is about the Linux program "sum" that computes checksums and
>>>    number of blocks in a file.  I'm not writing about a program error I've
>>>    found -- I am writing about how the output from the program is
>>>    formatted.
>>>
>>>    If you type in something like this:  sum -r *
>>>
>>>    and if there are multiple files present in the current directory, you
>>>    will get output like this for each file it checks:
>>>
>>>    [check_sum] [number_of_blocks] [file_name]
>>>
>>>    If though on the command line you change the "*" to a single file name,
>>>    the output is the same except that it doesn't print/display the
>>>    "[file_name]", I guess because that seems redundant because the file
>>>    name is already known and was typed in on the command line.
>>
>> I consider that a bug.
>> freebsd always outputs the file name for example.
>> This means that if you do `find -type f | xargs sum`,
>> the last entry could be without a file name.
>>
>> Now we can't change without consideration for backwards compat,
>> though I'd be inclined to fix this inconsistency.
> 
> The existing behavior is compatible with that of UCB sum,
> and -r (the default) selects BSD compatibility:
> 
>     solaris10$ : > k && /usr/ucb/sum k
>     00000     0
>     solaris10$ /usr/ucb/sum k k
>     00000     0 k
>     00000     0 k
> 
> Since GNU sum's raison d'etre is compatibility, I'd have a hard
> time justifying a change that would render it incompatible.
> 

Interesting. On solaris:

$ echo 1 > 1
$ sum -r 1
32802      1 1
$ /usr/ucb/sum 1
32802     1

UCB being the "Berkley" variant.
However BSD changed to always outputting the filename at some stage
because `sum` does so on FreeBSD, and has since 1993 according to
  http://svnweb.freebsd.org/base/head/usr.bin/cksum/

This suggests that the UCB variant was added to solaris around 1989
  http://src.illumos.org/source/xref/illumos-gate/usr/src/ucbcmd/sum/sum.c

So I'm guessing this was changed in the BSD source sometime
between 1989 and 1993.


cheers,
Pádraig.




This bug report was last modified 13 years and 257 days ago.

Previous Next


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