# cg-export incompatible with older versions of GNU tar

4 messages from 2005-09-22 to 2005-09-22. Participants: Wolfgang Denk, Petr Baudis, Rene Scharfe.
Thread: https://gitlist.dev/t/1909

## Wolfgang Denk, 2005-09-22 11:23

Subject: cg-export incompatible with older versions of GNU tar
Message-ID: <20050922112331.75971353A0B@atlas.denx.de>
URL: https://gitlist.dev/e/20050922112331.75971353A0B%40atlas.denx.de

```
Minor compatibility issue:

The archives created by the "cg-export" command contain entries  that
cause problems with older versions of GNU tar:

-> cg-export /tmp/foo.tar.bz2
-> tar jtvf /tmp/foo.tar.bz2
?rw------- git/git          52 1970-01-01 01:00:00 pax_global_header unknown file type `g'
drwxr-xr-x git/git           0 2005-09-22 09:46:19 foo/
-rw-r--r-- git/git      134225 2005-09-22 09:46:19 foo/CHANGELOG
-rw-r--r-- git/git       15701 2005-09-22 09:46:19 foo/COPYING
-rw-r--r-- git/git        9960 2005-09-22 09:46:19 foo/CREDITS
-rw-r--r-- git/git        9578 2005-09-22 09:46:19 foo/MAINTAINERS
...
-> tar jxf foo.tar.bz2 
tar: pax_global_header: Unknown file type 'g', extracted as normal file
...
-> tar --version
tar (GNU tar) 1.13.25
...
-> rpm -q git-core cogito
git-core-0.99.7-1
cogito-0.15-1


Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Man is the best computer we can put aboard a spacecraft ...  and  the
only one that can be mass produced with unskilled labor.
                                                 -- Wernher von Braun

```

## Petr Baudis, 2005-09-22 12:08

Subject: Re: cg-export incompatible with older versions of GNU tar
Message-ID: <20050922120841.GH21019@pasky.or.cz>
URL: https://gitlist.dev/e/20050922120841.GH21019%40pasky.or.cz
In-Reply-To: <20050922112331.75971353A0B@atlas.denx.de>

```
Dear diary, on Thu, Sep 22, 2005 at 01:23:31PM CEST, I got a letter
where Wolfgang Denk <wd@denx.de> told me that...
> Minor compatibility issue:
> 
> The archives created by the "cg-export" command contain entries  that
> cause problems with older versions of GNU tar:
> 
> -> cg-export /tmp/foo.tar.bz2
> -> tar jtvf /tmp/foo.tar.bz2
> ?rw------- git/git          52 1970-01-01 01:00:00 pax_global_header unknown file type `g'
> drwxr-xr-x git/git           0 2005-09-22 09:46:19 foo/
> -rw-r--r-- git/git      134225 2005-09-22 09:46:19 foo/CHANGELOG
> -rw-r--r-- git/git       15701 2005-09-22 09:46:19 foo/COPYING
> -rw-r--r-- git/git        9960 2005-09-22 09:46:19 foo/CREDITS
> -rw-r--r-- git/git        9578 2005-09-22 09:46:19 foo/MAINTAINERS
> ...
> -> tar jxf foo.tar.bz2 
> tar: pax_global_header: Unknown file type 'g', extracted as normal file
> ...
> -> tar --version
> tar (GNU tar) 1.13.25
> ...
> -> rpm -q git-core cogito
> git-core-0.99.7-1
> cogito-0.15-1

This would be a problem with Core GIT's git-tar-tree. The pax headers
seem nice to have, though.

It is unclear if the tar actually extracts the archive or not, though.
Does it just complain with those warnings, or are they fatal errors?

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.

```

## Wolfgang Denk, 2005-09-22 12:43

Subject: Re: cg-export incompatible with older versions of GNU tar
Message-ID: <20050922124338.246D535267B@atlas.denx.de>
URL: https://gitlist.dev/e/20050922124338.246D535267B%40atlas.denx.de
In-Reply-To: <20050922120841.GH21019@pasky.or.cz>

```
In message <20050922120841.GH21019@pasky.or.cz> you wrote:
>
> > -> tar jxf foo.tar.bz2 
> > tar: pax_global_header: Unknown file type 'g', extracted as normal file
> > ...

> It is unclear if the tar actually extracts the archive or not, though.
> Does it just complain with those warnings, or are they fatal errors?

In this case extraction went fine, except for the warning message.

I had other error reports from customers befroe, where unpacking  the
tarballs failed - instead of the origianl source tree just a bunch of
*.data  and  *.paxheader  were created; error messages in these cases
looked like this:

tar: pax_global_header: Unknown file type 'g', extracted as normal file
tar: ea1efd7f213469bcde030e00ac9f89ed16256869.paxheader: Unknown file type 'x', extracted as normal file
tar: a9cb6572db37b1260205ff3b931a8a29f8d5d0fd.paxheader: Unknown file type 'x', extracted as normal file
tar: 7cf505b98f5bceacbe4d4e5aca0c76beade1ba58.paxheader: Unknown file type 'x', extracted as normal file
tar: 01a2ae2195da20744b04d31a4cf701bc1ac43be0.paxheader: Unknown file type 'x', extracted as normal file
tar: d1cfe8f0c1806741d1723666db431331cb4ac74b.paxheader: Unknown file type 'x', extracted as normal file
tar: 6f78ecf8a87f103864dea6bdfa9b767bc606a96c.paxheader: Unknown file type 'x', extracted as normal file
tar: f6e986640b35d634574d14126402e09ef912d6f4.paxheader: Unknown file type 'x', extracted as normal file
tar: 5064e2fad29381384227a47404b1b9ef1dbf18cb.paxheader: Unknown file type 'x', extracted as normal file
tar: 29264b9d7d344b3908c8ebfea2d88b1319f18603.paxheader: Unknown file type 'x', extracted as normal file
...


[But this was with older versions of git / cogito, so I'm not sure if
this still applies.]

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
I think animal testing is a terrible idea; they get all  nervous  and
give the wrong answers.

```

## Rene Scharfe, 2005-09-22 19:13

Subject: Re: cg-export incompatible with older versions of GNU tar
Message-ID: <43330256.7000505@lsrfire.ath.cx>
URL: https://gitlist.dev/e/43330256.7000505%40lsrfire.ath.cx
In-Reply-To: <20050922124338.246D535267B@atlas.denx.de>

```
Wolfgang Denk wrote:
> In message <20050922120841.GH21019@pasky.or.cz> you wrote:
> 
>>>-> tar jxf foo.tar.bz2 
>>>tar: pax_global_header: Unknown file type 'g', extracted as normal file
>>>...
> 
> 
>>It is unclear if the tar actually extracts the archive or not, though.
>>Does it just complain with those warnings, or are they fatal errors?
> 
> 
> In this case extraction went fine, except for the warning message.

And you get an extra file, pax_global_header, containing the commit ID
of the archive's contents.

> I had other error reports from customers befroe, where unpacking  the
> tarballs failed - instead of the origianl source tree just a bunch of
> *.data  and  *.paxheader  were created; error messages in these cases
> looked like this:
> 
> tar: pax_global_header: Unknown file type 'g', extracted as normal file
> tar: ea1efd7f213469bcde030e00ac9f89ed16256869.paxheader: Unknown file type 'x', extracted as normal file

[snip]

This happens when you have pathes inside the tar file that are longer
than 100 characters.  Is this taken from a real-world project or is it
just some test?

All your files with pathes longer than 100 chars will be extracted as
<SHA1>.data, with an accompanying <SHA1>.paxheader file.  The latter
contains the real filename.  You could then repair the mess by renaming
them manually or write a script that does it for you.  Or you could
simply update tar. :-)

Lately I noticed that the tar version used by the BSDs also doesn't
understand Pax extended headers.  I guess they're not that popular a
feature.

> [But this was with older versions of git / cogito, so I'm not sure if
> this still applies.]

Nothing has changed in this respect, basicly since git-tar-tree went in.

René

```
