Subject: Re: bug#9956: Linux program "sum"

From: Jim Meyering <[email-masked]>
Date: Sun, 06 Nov 2011 14:12:56 +0100

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.