Hi, I maintain pristine-tar[1], which relies on GNU tar outputting a bit-identical tarball, given identical inputs. That had held true since at least tar 1.20. But between tar 1.23 and 1.24, tar began to output smaller tarballs for some inputs than it had before, which while surely a good thing in general unfortunatly breaks pristine-tar.
-rw-r--r-- 1 joey joey 60753920 Nov 10 03:03 1.23/recreatetarball -rw-r--r-- 1 joey joey 60856320 Nov 10 17:38 1.24/recreatetarball For other inputs, such as tar's source tree, both versions of tar still create identical tarballs. My only hint is that larger tarballs seem to trigger the difference. I'd like to have bisected the cause, but I cannot get old versions of tar to build from git -- it seems that bootstrap assumes that the current version of gnulib it downloads will work, and old tar needs old gnulib, which seems to make bisection very hard. So instead, I though I'd just ask, can someone tell why the output changed? And is there any way to get the old output, without me having to include a copy of tar 1.23 in pristine-tar? The two files above can be found here: http://kitenet.net/~joey/tmp/1.23/recreatetarball http://kitenet.net/~joey/tmp/1.24/recreatetarball This contains the input used to produce both, and a Makefile that runs tar with options intended to ensure stable output, and checks if the size of the result matches the 1.23 version. http://kitenet.net/~joey/tmp/tar-testcase.tgz -- see shy jo [1] http://kitenet.net/~joey/code/pristine-tar/
signature.asc
Description: Digital signature