When a filename is longer than 99 characters, tar will add a member name ././@LongLink. Its modification time used to be the time when tar was started.
The issue has been fixed in tar 1.27.1.
See create.c:546.
Reference: What exactly is the GNU Tar longlink trick? on ?StackOverflow
Detection
This one was tricky to figure out.
Comparing the output of hachoir-metadata --raw --quality=1 --maxlen=0 (from python-hachoir-metadata) works.
$ diff -u8 <(hachoir-metadata --raw --quality=1 --maxlen=0 <(xzcat /tmp/d1.tar.xz )) <(hachoir-metadata --raw --quality=1 --maxlen=0 <(xzcat /tmp/d2.tar.xz)) --- /dev/fd/63 2014-02-14 13:11:41.001750806 +0100 +++ /dev/fd/62 2014-02-14 13:11:41.005750927 +0100 @@ -79,17 +79,17 @@ - file_type: Normal disk file - last_modification: 2014-02-14 08:14:12 file[11]: - author: root (uid=0), group root (gid=0) - filename: ././@LongLink - file_size: 104 - file_attr: -rw-r--r-- (644) - file_type: 76 -- last_modification: 2014-02-14 08:29:02 +- last_modification: 2014-02-14 11:25:52 file[12]: - author: root (uid=0), group root (gid=0) - filename: ./usr/lib/haskell-packages/ghc/lib/data-default-class-0.0.1/ghc-7.6.3/libHSdata-default-class-0.0.1_ - file_size: 3946 - file_attr: -rw-r--r-- (644) - file_type: Normal disk file - last_modification: 2014-02-14 08:14:12 file[13]:
Solution
Add a Build-Depends on tar (>= 1.27.1).