Sorting the list of files used for file comparisons (MD5 sums and
actually diffs) makes the output much easier to deal with, especially
for C&CS checkers. It groups all the files in a given directory
together so that one can more easily deal with all these files at
once. This is useful for comparing differences in particular
components, especially ones like BusyBox whose files exist mostly in a
single directory and have the same checksums (since they all point to
one binary).
Since C&CS checkers are often interested in the list of files that
have stayed the same between a firmware release and the result of
compiling the C&CS for that firmware (ie. to see if there are binaries
which have not changed, which is unlikely because each compiler
configuration outputs slightly different binaries), add "infinite"
lines of context in the diff command for the MD5 checksum comparison.
This will include all files that have not changed (in addition to the
files that have changed).
I didn't immediately see a flag for infinite lines of context in the
diff manpage so I'm using a big number for now (2,000,000,000).
Without headings, it's non-obvious which sections correspond to which
comparisons in the output file. This information was printed to
standard output, but not to the output file. So I added this
information to the output file as well.
My knowledge of Perl is limited so I just used system("/bin/echo ..");
for now. It would be good to fix that later.
I've added a copyright notice for myself, since this change is
probably significant enough to be copyrightable.
question to verify they agree to GPLv3-or-later. I have the email
archives privately if anyone ever needs to verify that all copyright
holders agreed to license this code GPLv3-or-later.
They have never been consistently kept in any revision control history, so
the revision control stuff I have before today is probably not all that
helpful either since it's so sporadic.