laris,de.comp.os.linux.misc,de.comp.os.unix,linux.dev.admin,lin-
ux.dev.apps,maus.os.linux,maus.os.lin-
ux68k,maus.os.unix,uk.comp.os.linux Subject: Star-1.4 source has
been released
*************** Please have a look at the German open Source Cen-
ter BerliOS at www.berlios.de BerliOS will continue to support
free hosting of cryptography projects even when US laws change
and don't allow to host cryptography projects in the USA. Also
look at sourcewell.berlios.de, the first Open Source announcement
service that itself is implemented as Open Source project.
***************
Star is the fastest tar archiver for UNIX
Star has many improvements compared to other tar implementations
(including gnu tar). See below for a short description of the
highlight of star.
Star is located on:
ftp://ftp.fokus.gmd.de/pub/unix/star
Changes since star-1.3.1:
- Used lint on Solaris to clean up code. GCC does
not help that much....
- star now supports large files
Files up to 8 GB are supported in a 100% POSIX compliant
way. Files > 8 GB use a proprietary number format that I
designed some years ago but I negotiated this format with
the current GNU tar maintainer - GNU tar uses the same
format.
- rmt now is large file aware too.
- rmt (both: this server and the client in star)
now also abstract from the lseek whence values.
SEEK_SET is mapped to 0 on the wire
SEEK_CUR is mapped to 1 on the wire
SEEK_END is mapped to 2 on the wire
- Changed POSIX USTAR limitation from 8 GB-2 to 8 GB-1.
(note that the proprietary star method allows full
64 bit filesize and will support up to 95 bits which
will _never_ be reached as long as you cannot place
storage space into a parallel universe ;-) This
is from the estimation that each atom may only store ap-
prox 1 bit. With 95 bits you would need to use several
programs. Note that the UNIX tar documentation always
requested unsigned checksums but the BSD based tar used
to ignore this fact.
- Atomatic use of compression programs (if needed) if the
archive is a plain file and thus seekable.
- use non-interruptable write in remote tape handler.
This makes star .... interruped by ^ work corectly on
non BSD systems. Note that interrupting star by ^ causes
star to write an intermediate statistic printout.
- rmt now uses buffered readline code re-imported from rsc-
si.c to speed up rmt transfers.
- increase the default FIFO from 1 MB to 8 MB for most OS.
- Try to lock FIFO into memory in case star is run by root.
This helps to make tape streaming more probable.
- -h Option as alias to the old star Option -L
- Make -F -FF ... behave more similar to BSD tar
- Remote tape client code now checks if the RMT server re-
turns more data with rmtread() or if rmtstatus() gets not
the expected amount of bytes for struct mtget.
- Call code to switch rmt server into the new abstract mode
only of the open was successful. This avoids to clear the
valid error code resulting in the unability to report
open errors on previous versions.
- New remote.c client code gives improved unique remote
file name parsing To make a file local altough it looks
"remote" prepend it with "/", "./" or "../"
f=ntape@tapehost:/dev/rmt/0 is remote
f=/ntape@tapehost:/dev/rmt/0 is local
- Now star is again able to reject unsupported file types
as it has been up to 1994 when the USTAR & GNU based ar-
chive types have been introduced.
The new method to check for unsupported file types is
again table driven and thus fully configurable.
- stat wrapper now fully classifies all file types
- new table to print the name for all known file types
- mt.c now uses the new remote file name parsing functions
came non-standard
- Fixed a bug with printing to stdout while the tar archive
itself is stdout.
- Faster zero'ing and copying of tar headers to speed up
operation. Used to compensate slow down from Extended
POSIX.1-2001 headers.
- Fixed a integer overflow bug in tape length computation
that made it impossible to specify a tape length of e.g.
35 GB as needed for the Quantum DLT-7000.
- append.c (used with -u/-r) now tries to use Nanoseconds
from time stamps
- list.c now tries to handle Nanoseconds with the -newest &
-newest-file options
- New archive format "pax" which is the extended "ustar"
proposal from POSIX.1-2001. This format is based on "us-
tar" and adds extended headers that are infinite extensi-
ble. The headers are added only when the old header would
overflow otherwise.
- New archive format "exustar" which is the extended "xus-
tar" format. This format is based on "xustar" and always
adds extended headers.
- New archive format "sunstar" which is an extended "ustar"
format. This format based on "ustar" always adds extend-
ed headers. The extended headers are not 100% POSIX com-
pliant:
- no atime/ctime
- typeflag is 'X' instead of 'x'
- First support for extended tar headers from POSIX.1-2001.
- Support for Caldera/SCO OpenUNIX has been added
- New sum statistics for chmod() utimes() errors.
- Fixed a bug that caused a FIFO (named pipe) to be created
twice in extract mode. This resulted in a warning "File
exists...".
- Better support for True-64 aka. OFS-1
- First support for POSIX ACL's with help from An-
dreas Gruenbacher <ag@bestbits.at> First support for So-
description **** below).
HP-UX ACLs are so different from POSIX.1e that it would
take a significant amount of time to code a translation
module for star. For this reason, HP-UX is not supported
at the moment.
**** First tests on True64 show that the POSIX.1e func-
tion **** acl_from_text() does not work as expected. I
have no idea how to **** work around this problem.
**** It may be that True64 does not support the ACL
'masks' entry. **** This would force us to create syn-
tetic 'mask' entries when in star **** create mode and to
compute the effective mode when in extract **** mode. On
True64 also the function acl_get_file() does not work
**** properly if a file does not have ACLs. Note that the
standard **** requests that in this case acl_get_file()
should return a 3 entry **** ACL, but on True64 it re-
turns NULL with 'errno' unchanged. **** Archiving and
restoring ACLs from/to True64 will most likely work.
**** If you like to transfer TAR archives from/to other
platforms you **** will not be able to restore any ACL.
**** **** As a TAR archive with ACLs made on
True64 is not usable on any **** other system, ACL sup-
port on True64 could be called broken.
If you list a TAR archive that contains ACLs for certain
files, those files are marked with a '+' sign past the
UNIX permissions if you request a long listing:
0 -rw-r--r-- gruenbacher/assis Nov 4 04:43 2001
default/file 0 drwxrwxr-x+ gruenbacher/assis Nov 4
04:43 2001 default/dir2/ 0 drwxr-xr-x+ gruenbach-
er/assis Nov 4 04:44 2001 default/dir3/ 0 drwxr-
wxr-x+ gruenbacher/assis Nov 4 04:44 2001 default/
If you like ACL test tar archives, have a look at:
http://acl.bestbits.at/pre/
and fetch the files acl*.tar
If you are on Solaris, read the man pages: getfacl, set-
facl, acl
If you are on Linux, note that by default Linux does not
yet support ACLs. You first need to install ACL support
by installing a patch from:
http://acl.bestbits.at/
This page also lists the man pages for the ACL support
turns out to be the right solution, I will mail the star
ACL format to the POSIX.1e standard commitee. All
changes have been made in a way that does not affec the behaviour
of star in case no ACLs are present.
The format for ACLs in the extended headers used by star
looks like:
SCHILY.acl.access=user::rwx,group::rwx,mask::rwx,oth-
er::rwx SCHILY.acl.default=us-
er::rwx,group::rwx,mask::rwx,other::rwx
This is a legal 'vendor unique' POSIX.1-2001 extension
for extended tar headers.
If the format gets accepted by the POSIX.1 and POSIX1e
commitee, it would look like:
security.acl...=user::rwx,group::rwx,mask::rwx,other::rwx
As the text format specified by POSIX.1e is not suffi-
cient for TAR, we added a numerical field for all names
user and group fields.
POSIX.1e named user entry: 'user:joe:rwx,'
STAR named user entry: 'user:joe:rwx:1431,'
When star extracts the ACL string, it first checks if us-
er 'joe' is known if 'joe' is known, the numerical value
is stripped off and a standard POSIX.1e ACL entry is cre-
ated. If 'joe' is not known, the text 'joe' is replaced
by the numerical value '1431' and a new POSIX.1e entry
that looks like 'user:1431:rwx,' is created.
**** Solaris BUG *** As the function aclfrom-
text() on Solaris is unable to recognise a numerical (all
digit) user id, it is not possible to do ACL backup/re-
store on a Solaris fileserver that has no access to the same
passwd data as it's NFS clients.
Even worse, aclfromtext() changed the UID for each un-
known user to NOBODY and the function aclfromtext() re-
turns as if there was no error. This is a serious secu-
rity problem as because if this behavior the file becomes
(in addition to the other users in the ACL) accessible by
"nobody" which definitely is intended.
This is Sun bug 4426407 ;-) **** Solaris BUG ***
To archive ACLs (star in create mode, you need to specify
a TAR format that supports extended POSIX.1-2001 headers
- Check for HAVE_FORK to allow compilation (without FIFO)
on strange platforms.
- star now supports 'G' as "multiplyer" in fs= bs= ... op-
tions.
- Support for MacOSX-10.1 (aka Darwin-1.4) now works
smoothly
- Restructured Schily portability include files for easier
and cleaner portability
- Better Linux support for the program 'mt'. It now prints
the file number and record number when calling 'mt sta-
tus'.
- Support for QNX Neutrino
- Now we hopefully have floating point support for _all_
platforms even those without *cvt() and without __dtoa().
Thanks to a hint from Thomas Langer
Man(1) output converted with
man2html