delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/10/21/08:42:13

Message-Id: <199710211233.IAA02128@delorie.com>
Date: Tue, 21 Oct 1997 13:06:08 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: GNU tar 1.12 uploaded
MIME-Version: 1.0

This is to announce that the DJGPP port of GNU tar 1.12 has been
uploaded to SimTel.NET and should be available from your nearest
mirror:

  ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/tar112b.zip
  ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/tar112s.zip

Tar is a program to create and maintain archives of files, and extract
files from these archives.  It can be used for backing up your disks,
and for moving directory hierarchies to other machines.

This DJGPP port is based on the preliminary port by Daisuke Aoyama,
but it includes many significant improvements.  In particular,
compressed .tar.gz files are now fully supported.  I attach below a
part of DJGPP-specific README file that describes the main bugfixes
and enhancements, and also the missing features.

Please read the installation instructions before you begin using the
package.

-------------------------------------------------------------------

    A port of GNU Tar 1.12 to MS-DOS/MS-Windows using DJGPP tools
    =============================================================

Features
--------

  This port of GNU Tar includes significant improvements as compared
to the official FSF distribution of version 1.12.  The official code
was failing in a lot of ways on MS-DOS (my favorite is that commands
like "tar cf d:/foo.tar" would fail because `tar' treated file names
with a colon as archives on remote machines and was trying to connect
to a machine called `d').  I believe that all the features in the
original Unix code work in this DOS port; the single most important
exception is the lack of support for remote archives (see the
"Missing" section below).

Here's the list of bug fixes and enhancements in this port:

  1.  Compressed archives are now fully supported (yeah!).  All the
      options which support compressed archives in the Unix version,
      work on MS-DOS.  Compressed archives are produced by piping the
      output of `tar' to or from `gzip', so it is a bit slow, since
      DOS simulates pipes via disk files.  If you have a fast,
      memory-abundant machine, point your TMPDIR to a large RAM drive,
      which will greatly speed up compressed archive operations.

  2.  Backup files are fully supported, including numbered backups,
      even on plain MS-DOS and other non-LFN platforms.  You should
      always unpack .tar.gz files of Unix origin with numbered backups
      turned on, since file name collisions in the restricted 8+3 DOS
      namespace might otherwise overwrite files (unlike `djtar', `tar'
      will not prompt you to supply an alternate name).

  3.  Automatic renaming of file names which are illegal on DOS.  When
      extracting files, `tar' will automatically attempt to rename
      file names such as `Makefile.in.in', `.emacs', `foo:bar;baz,'
      and others.  Note that even Windows 9X disallows some characters
      from appearing in a file name; this port correctly identifies
      the set of characters which need to be replaced, depending on
      whether long file names are or aren't available on the
      filesystem where the file is being extracted.  The algorithm for
      generating converted names is almost identical to what `djtar'
      does, except that `tar' doesn't prompt you for another name when
      it fails to extract a file.  Under verbose operation, `tar'
      prints a message about renamed files.

  4.  Similarly, any file in the archive whose name is reserved on
      MS-DOS by a character device driver (e.g., `prn.txt', `aux.c',
      `nul.foo' etc.), is automatically renamed.  This prevents
      wedging `tar' and/or your system when unpacking Unix archives
      with such files.  Tar renames such files by prepending a `_' to
      their basename.

  5.  Extraction of hard and symbolic links is simulated by copying
      files.  The --diff (-d) mode compares the contents of two files
      in this case.

  6.  Full support of DOS absolute file names with drive letters (the
      original code won't even work on tar file names like
      `d:/foo/bar.tar').  Numerous snafus with root directories on
      other drives and other such subtleties were resolved.  Tar now
      supports backslashes in file names (but they are converted into
      forward slashes before accessing the archives).

  7.  Using -O option when `tar's stdout is redirected to a file would
      corrupt binary files.  This is corrected in this port.

  8.  When given the -C option, `tar' now correctly restores the
      original directory before it exits.

  9.  The -N and --newer-mtime options now work.  (They were disabled
      in the DOS version for reasons that are beyond me.)  All the
      time comparisons, including for -N, --newer-mtime and --diff,
      now compare time stamps with a 2-second granularity, so you
      won't see false "Mod times differ" messages due to DOS truncating
      of file times to the nearest even second.

  10. When --verify (-W) option is given, `tar' will flush the disk
      cache, if one is installed.  This prevents some overly smart
      caches from supplying disk data from memory, instead of
      accessing the media, thus defeating the very goal of verifying.

  11. The manual has been revised, most of the missing cross-
      references fixed, and DOS-specific information added.  The
      manual is under construction by the GNU project, and, IMHO,
      still looks like a car crash (e.g., many subjects are described
      twice, evidently from two different versions of the manual).
      But I really couldn't afford rewriting the manual.  What's there
      should be good enough, I think; if it's not, submit bug reports
      to the GNU package maintainer.

  12. The --recursive-unlink option now really works.  (This was
      actually a genuine bug in the official release which is NOT
      specific to DOS.)

  13. You can use --group and --owner options to give files away to
      any user and any group.  Thus you can create archives on DOS
      with files that would be writable by specific users on Unix.
      (The official code had a bug whereby numeric GIDs and UIDs would
      not work, even on Unix; this is corrected in this port.)

  14. The feature of the Unix code whereby `tar' will not dump the
      archive it is creating into itself, works in this port.  (Due to
      the peculiarities of inode number simulation in the DJGPP
      library, this will NOT work on Windows 9X, Windows 3.11 with
      32-bit File Access, and on networked drives.)

  15. This port supports the optimization in cases that `tar's output
      is meant for the NUL device.  This makes `tar' much faster in
      these cases.

  16. `Tar' will no more switch the console to binary mode.  It only
      switches stdin and stdout to binary mode when they are
      redirected to a file, and then only when `tar' reads or writes
      the archive to one of these streams.  (Switching the console to
      binary mode has unpleasant side-effects.  For example, it
      disables SIGINT generation when you press Ctrl-C, so you cannot
      interrupt a runaway `tar'.)  The original code also had a bug
      with invoking a subsidiary shell when switching volumes in a
      multi-volume tar file; this is now corrected.

  17. All the scripts in the test suite work, except the `ignfail.sh'
      test.  The latter will never work because it deals with file
      permission bits which are impossible on MS-DOS (e.g.,
      non-readable directories or files non-writeable by the owner).


Missing
-------

  The following (short) list explains what functions are missing from
this port:

  1.  Direct device access.

      It would be nice to be able to say "tar cvf /dev/fd0 c:/" and
      have an archive created on a floppy drive A: such that it could
      be taken to a Unix box and untarred without mounting it as a DOS
      filesystem.  At least for floppies with the most popular formats
      (1.2M and 1.44M) this shouldn't be too hard; one just have to
      use the DJGPP Filesystem Extensions feature to hook the
      low-level I/O functions and read/write the diskette on the BIOS
      level.  Any takers?

  2.  Remote archive support.

      The code in rtapelib.c which opens a pipe to `/etc/rsh', should
      be tweaked to work on DOS.

  3.  Internal compression/decompression.

      Linking `tar' with parts of `gzip' code should make compressed
      archive operations MUCH faster.  `djtar' already does that, but
      it cannot create archives.


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019