Untangling tar...

Rob Landley rob at landley.net
Tue Aug 30 02:46:27 UTC 2005

So, the fix that went into 1.01 recently added bzip2 support to tar (by 
calling bzip2 as an external executable).  But it's dependent on -z support 
rather than -j support.

I'm trying to untangle the CONFIG option tree for tar, and preferably prune 
it, and my brain is hurting.  I started by trying to collapse together 
TAR_GZIP and TAR_BZIP2 into TAR_ZIP, and it broke because the "create" and 
"extract" logic are sort of independent but not really.  We shell out to 
external commands for the create case, but in the extract case we use the 
built-in functionality to recognize the header type, and pulling on any of 
the dangling threads of this reveals an enormous tangle underneath.  
Apparently, making -z and -j be the same option forces the build to suck in 
the gzip and bunzip2 logic...

Is there anybody here who currently understands this code?  I'd really rather 
avoid going through it with a chainsaw, but making minor changes here keeps 
breaking seemingly unrelated things.  (In _theory_ tar -z and -j support 
don't require built-in gzip/gunzip/bzip/bunzip because it can shell out.  In 
practice, it's not that simple...)


More information about the busybox mailing list