home *** CD-ROM | disk | FTP | other *** search
/ linuxmafia.com 2016 / linuxmafia.com.tar / linuxmafia.com / pub / linux / backup / star-1.3.1.tar.gz / star-1.3.1.tar / star-1.3.1 / README.otherbugs < prev    next >
Text File  |  2001-04-26  |  5KB  |  132 lines

  1. I have compared several tar implementations with the standard.
  2.  
  3.     (IEEE/Posix1003/IEC-9945-1 Standard Data Interchange format)
  4.  
  5. Although the standard now also defines cpio as an exchange format, I cannot
  6. recommand the cpio archive format for data exchange. There are at least 6 
  7. totally incompatible archive formats - all covered by the name "cpio".
  8. It is most likely, that you are using an archive format that other cpio
  9. implementations will not understand at all.
  10.  
  11. Tar in general will at least extract most of the files if you are using a
  12. different implementation to extract the archive.
  13.  
  14. I've had a look at the following implementations:
  15.  
  16.     Index:    Program description:        Source of program:
  17.     =====    ====================        ==================
  18.     1)    bsd 4.3 tar            (Regents of UCB)
  19.     2)    pax ustar i.e. SunOS 4.1    (USENIX)
  20.     3)    tar on  Solaris 2.3/2.4/2.5    (Sun/AT&T ??)
  21.     4)    gnutar    1.11.8            (gnu)
  22.     5)    gnucpio 2.3            (gnu)
  23.  
  24.  
  25. Summary:
  26.     1)    bsd 4.3 tar
  27.         Pre Posix 1003.1
  28.     
  29.         - Miscomputes the checksum. Therefore it is not able to extract 
  30.           standard conforming tar archives if they contain 8bit chars
  31.           in the filename. This is a common bug found in many other
  32.           implementations too.
  33.  
  34.         No additional problems on portability except with gnutar archives.
  35.         But this is not a problem of BSD tar.
  36.  
  37.  
  38.     2)    pax / ustar
  39.  
  40.         - Dumps core on every even/odd use.
  41.         - Computes checksums only on the first 500 bytes of the 
  42.           tar header: not conforming to Posix 1003.1 standard.
  43.  
  44.         Note:    This claims to be a reference implementation for
  45.             the Posix 1003.1 standard!
  46.  
  47.  
  48.     3)    tar distributed with Solaris 2.3/2.4/2.5
  49.  
  50.         - Transfers more than 12 Bit from stat.st_mode (violating Posix)
  51.         - Complains about "impossible file type" when reading 
  52.           tar archives which do not contain these illegal upper bits.
  53.  
  54.         - Does not handle non null terminated filenames correctly.
  55.           The standard allows filenames that are exactly 100 chars
  56.           and therefore are not null terminated. (Fixed in Solaris 2.5)
  57.  
  58.         For the obove reasons, Sun's tar is not conforming to Posix 1003.1.
  59.  
  60.         - Loops infinitely when trying to dump /dev/fd.
  61.           This makes it impossible to use Solaris tar on the root filesystem.
  62.  
  63.  
  64.     4)    gnutar
  65.         Claims not to be conforming to Posix 1003.1. (gnu is not tar)
  66.  
  67.         - Many bugs in implementation and design.
  68.           (e.g. when handling/creating multi volume archives)
  69.         - The second logical EOF block in GNU-tar archives is missing
  70.           with a 50% chance.
  71.           This will cause correctly working tar implementations to complain
  72.           about an illegal/missing EOF in the tar archive.
  73.         - Deeply nested directory trees will not be dumped:
  74.           Error message is: Too many open files
  75.           (This is a similar implementation bug as found in Solaris tar 
  76.            with the /dev/fd loop)
  77.         - Hard links with long names to files with long names do not work.
  78.  
  79.         - GNU-tar cannot read Posix compliant tar archives with 
  80.           long file names if the filename prefix it at least 138 characters.
  81.           GNU-tar will think that it found an extended sparse GNU tar archive
  82.           and get out of sync for the rest of the archive.
  83.           See --sparse design bug description below.
  84.  
  85.         - GNU-tar even has a not yet identified bug which causes GNUtar
  86.           not to be able to partially read star archives if these archives
  87.           are not created with star -Hustar
  88.  
  89.         - Option --sparse produces archives which cannot be read by any 
  90.           other tar implementation known to me (except star), because
  91.           they will get "out of sync".
  92.           Posix 1003.1 conforming tar archives let gnutar get "out of sync"
  93.           even if the --portability option is used (see above).
  94.           This is a severe design bug in GNU-tar.
  95.  
  96.             Description:
  97.             The size field in a tar archive cannot reflect the
  98.             real size of a sparse file to have compatibility to 
  99.             other implementations (this is also true for "star" archives).
  100.  
  101.             If the "sparse" file contains more than 4 holes,
  102.             the "size" field in the GNU-tar control block does not
  103.             reflect the total size of the (shrunk) sparse file in the archive
  104.             because it does not count the 'sparse' extension headers.
  105.             Posix conformant archives that use the name prefix field with more than
  106.             137 characters will have a value != 0 on a field that
  107.             that makes gnutar believe that such an extension
  108.             header is present - GNU-tar will get out of sync.
  109.  
  110.             Note: The general rule for any tar is that it should
  111.             be able to read any "tar" compliant data stream with
  112.             the exception that enhancements to the standard
  113.             only will fail on the files that contain the extension.
  114.             Those files should be extracted as if they were 
  115.             regular files.
  116.  
  117.         Note: I do not recommend GNU tar as an exchange format.
  118.               Use star -Hustar for maximum portability instead.
  119.  
  120.     5)    gnucpio
  121.  
  122.         - Splits long filenames at the leftmost '/' instead of the 
  123.           rightmost position of '/' required by my copy of the 
  124.           Posix standard.
  125.         - The docs claim compatibility with gnutar.
  126.           But extraction of gnutar archives containing 'atime' gives 
  127.           funny filenames! (try this ...)
  128.         - Octal numbers are left padded with ' ' instead of '0'.
  129.           The mode field contains more than the lower 12 bits from 
  130.           stat.st_mode.
  131.         
  132.