Subject: bug#19616: [Bug-tar] dist tarball contains hardlinks

From: Dimitrios Apostolou <[email-masked]>
Date: Mon, 26 Jan 2015 12:12:09 +0100 (CET)

On Fri, 23 Jan 2015, Pavel Raiskup wrote:

> On Friday 23 of January 2015 15:45:57 Dimitrios Apostolou wrote:
>> Thank you Joerg. If so then it is an issue that must be fixed in
>> automake, which is the reason I cross-posted to both projects, because I
>> am not sure which one should be changed!
>
> What solution you exactly propose?  Note that 'h' tar option is used for

Maybe adding --hard-dereference? That's how I worked around the issue at 
least.

> dist from Y1996 commit [1] and its removal is unlikely.  It is quite
> portable and it, as the "default", works for many packages.

It has been there since 1996, so the legacy behaviour of tar has been 
battle tested. However the new behaviour (hard links in place of symlinks) 
is probably only tested for a couple of years, and I've seen complaints 
online.

> What is not clear to me also is your motivation to change GNU tar to
> behave differently, or to change something so old in automake.  IMO, the

Using "tar-ustar" format for distribution you are supposed to raise some 
of the limits of the "v7" tar format but retain portability. Indeed, the 
length limit for regular files used to be 256 characters [2], and since 
all symlinks were stored as files that was universal. Now that symlinks 
are stored as hard links, the limit is 100 characters for those, thus I've 
hit this problem.

[2] http://www.gnu.org/software/tar/manual/html_section/tar_68.html

> reason why you hit this issue is not the "hardlinking" change itself, but
> rather just small mistake of the maintainer who did not read STDERR tar's
> warnings while doing 'make dist'.  We could make those warnings more
> obvious..  is that what you want?

I see this as a separate issue, and my opinion is that automake should 
fail "make dist" when tar returns an error. I've filed a separate bug 
report for that [3].

[3] https://lists.gnu.org/archive/html/bug-automake/2015-01/msg00019.html

Dimitris

>
> [1] http://git.savannah.gnu.org/cgit/automake.git/commit/?id=7930983ab1c620
>
> Pavel
>
>