There is a problem with the set lists.
Originally, they were just for listing the files that belong to
foo.tgz. Later, checksums were added so they could be used for
checking the contents on the file system still matched what was
However, many set lists contain the set list file itself, which can't
work because the size and checksum are not available before it's
filled in with other checksums and then you get a recursive problem,
because its own checksum is supposed to be inside.
So currently it most often looks like this:
set.base:./etc/mtree/set.base type=file uname=root gname=wheel mode=0644
which does not match the data of the file on the file system,
and sometimes it contains a size>0 and a different checksum.
I see two solutions:
a) do not include the set lists themselves
b) remove the size and checksum parts for the set list files
themselves from the set lists