We were calculating the wrong checksum, and also mistakenly not using packed files in archive mode for non-regular files.