https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225639

            Bug ID: 225639
           Summary: FreeBSD's tar produces .tgz files that can not be read
                    by other tar implementations (e.g windows 7-zip)
           Product: Base System
           Version: 10.3-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: cwf...@arcor.de

we have a number of script-based processes that, at some point, all do
something like

      tar -czf - /some/data | uuencode somedata.tgz | mailx -s "your data
somedata.tgz" windows.user@my.organization.example

These can not be used by users who run Outlook and 7zip or Winrar. 7zip brings
up error messages and hangs.

The reason can be found in tar's man page: 

BUGS
     (...)
     All archive output is written in correctly-sized blocks, even if the out-
     put is being compressed.(...) 
     For tar and cpio formats, the last block of output is padded to
     a full block size if the output is being written to standard output or to
     a character or block device such as a tape drive.  (...) Many com-
     pressors, including gzip(1) and bzip2(1), complain about the null padding
     when decompressing an archive created by tar, although they still extract
     it correctly.

Now this approach is outdated and needs to be fixed. This is not what GNU tar
does (the only other major Unix tar implementation that handles .tgz files),
nor is it the same as when we use

tar -cf - /some/data | gzip | uuencode somedata.tgz | mailx -s "your data
somedata.tgz" windows.user@my.organization.example

Frankly, hardly anbody uses tar to directly interface with the (rapidly dying)
breed of tape drives any more, while just about everybody uses tar to shuttle
files back and forth between different platforms. Tar should do the right thing
and produce standards compliant files as best as it can, and it should be
interchangeable with linux and other OS tars as far as commonly used options
are involved. 

FreeBSD tar's behavior is unexpected and leads to errors. Yes, there are ways
to work around it, but people or code coming from Linux or Solaris environments
do not expect or know this issue to exist at all. Furthermore, in target
architectures like Windows and use cases like data interchange with Windows
users, a target tool throwing errors is basically the same as failure; we can
not just gloss over these and assume the user will somehow understand he can
possibly work around them. 

Please change this tar behavior to reflect the one found in GNU tar. Create a
special option to force zero padding where required. Do not zero-pad after gz
encryption to stdout by default.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to