[Bug 696480] Re: Natty and Maverick's tar versions generate different tarballs in some cases (when path length is 100 characters)

Colin Watson cjwatson at canonical.com
Sun Jan 2 23:48:54 UTC 2011


** Also affects: tar (Ubuntu Maverick)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is a direct subscriber.
https://bugs.launchpad.net/bugs/696480

Title:
  Natty and Maverick's tar versions generate different tarballs in some cases (when path length is 100 characters)

Status in “tar” package in Ubuntu:
  Fix Released
Status in “tar” source package in Maverick:
  Confirmed

Bug description:
  Binary package hint: tar

Hiya,

I noticed that when trying to recreate tarballs using pristine-tar on Maverick which were created on a Natty system, the following error was produced:

  xdelta: /tmp/pristine-tar.btHqNUh80W/f-spot_0.8.2.orig.tar.gz.tmp: Checksum validation failed, expected: 6987fc71fa53c13423c75f42494b8f14, received: 1505f71bf1cc573fcb3b2d9afcc2f6ab
  xdelta: /tmp/pristine-tar.58rbIzXoHf/recreatetarball: Checksum validation failed, expected: 3ce9bc1ffb83a38a7707b4cc5f890323, received: 793785f1223e3c5543e14aad5b7129eb
  xdelta: expected from file (/tmp/pristine-tar.58rbIzXoHf/recreatetarball) of length 23541760 bytes
  /usr/bin/pristine-tar: Failed to reproduce original tarball. Please file a bug report.
  /usr/bin/pristine-tar: failed to generate tarball

This is due to the following Debian bugs:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522858
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=603231
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602907

causing Natty's tar to create different tarballs to Maverick's in some cases (Debian reverted an old patch regarding the representation of paths with exactly 100 characters)

Backporting the patches from the first two bugs linked above restores compatibility by introducing an environment variable that restores the old behaviour (which pristine-tar relies on) when set.

Test case
=========

1. sudo apt-get install tar pristine-tar git
2. git clone git://github.com/iainlane/f-spot.git
3. git branch --track pristine-tar origin/pristine-tar
4. pristine-tar checkout f-spot_0.8.2.orig.tar.gz
<ERROR>
5. <install new tar>
6. pristine-tar checkout f-spot_0.8.2.orig.tar.gz
<NO ERROR>

Regression potential
====================

This changes the default representation of files with exactly 100 characters, so any programs which rely on this will need to ensure the environment variable is set to continue functioning correctly. However, it would be very rare for a program to rely on this (pristine-tar is probably about the only example). Other than this, all compatibility with previous versions should be retained (Natty has also made this change, so we would expect to see breakage there too if there is any).





More information about the Ubuntu-sponsors mailing list