threads / discuss / 1909

cg-export incompatible with older versions of GNU tar

Subject: cg-export incompatible with older versions of GNU tar

## tl;dr

4 messages between Sep 22, 2005 and Sep 22, 2005.

replies: 3people: 3as markdown or json

Wolfgang Denk· Sep 22, 2005, 11:23 UTC · lore
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· Sep 22, 2005, 12:08 UTC · re: Wolfgang Denk · lore

Re: cg-export incompatible with older versions of GNU tar

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...

Show 23 quoted lines
> 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· Sep 22, 2005, 12:43 UTC · re: Petr Baudis · lore

Re: cg-export incompatible with older versions of GNU tar

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· Sep 22, 2005, 19:13 UTC · re: Wolfgang Denk · lore

Re: cg-export incompatible with older versions of GNU tar

Wolfgang Denk wrote:
Show 12 quoted lines
> 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.

Show 7 quoted lines
> 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é

← back to recent threads