From: mcooper@usc.edu (Michael A. Cooper)
Newsgroups: comp.archives
Subject: [comp.unix.admin] ANNOUNCEMENT: Rdist 6.0.0 now available
Followup-To: comp.unix.admin,comp.unix.aix,comp.unix.bsd,comp.unix.solaris,comp.unix.ultrix,comp.sys.hp,comp.sys.next.sysadmin,comp.sys.sun.admin
Date: 20 Dec 1992 20:57:09 GMT
Organization: USC Computing Services, Los Angeles
Distribution: world
NNTP-Posting-Host: soda.berkeley.edu
X-Original-Newsgroups: comp.unix.admin,comp.unix.aix,comp.unix.bsd,comp.unix.solaris,comp.unix.ultrix,comp.sys.hp,comp.sys.next.sysadmin,comp.sys.sun.admin
X-Original-Date: 5 Dec 1992 15:18:13 -0800

Archive-name: auto/comp.unix.admin/ANNOUNCEMENT-Rdist-6-0-0-now-available

Rdist version 6.0.0 is now available for anonymous ftp from usc.edu as
pub/rdist/rdist.tar.Z.  It will be posted to one of the source
newsgroups soon.  The list of new features is detailed in the ChangeLog
file which is at the end of this announcement.


			   Rdist Version 6.0
				11/29/92

			    Michael Cooper
		    University of Southern California
		      University Computing Services
			    mcooper@usc.edu

			  GENERAL INFORMATION

This is version 6.0 of Rdist from USC.  It is based on rdist from
4.3BSD (classic).  It includes all fixes for all bugs known to the
CSRG Berkeley folks.  It has been running at USC for some time ow on a
wide variety of platforms.

This version of rdist is not directly compatible with rdist
distributed with 4.3BSD and subsequent vendor releases, but does
indirectly provide full backward compatibility.  See COMPATIBILITY
below for details.

The current version of rdist is available via anonymous ftp on usc.edu
under /pub/rdist.  The current version is always retrievable as file
"/pub/rdist/rdist.tar.Z".

			CHANGES/FEATURES

See the ChangeLog file for details.  The end of the file contains the
major new features compared to rdist classic.

A paper titled "Overhauling Rdist for the '90s" from USENIX LISA VI
is available for anonymous ftp on usc.edu as "/pub/rdist/overhaul.ps.Z".

			   PLATFORMS

This version of rdist has been tested on the following:

	MACHINE TYPE	OPERATING SYSTEM
	---------------	----------------------------------
	Alliant 2800	Concentrix 2.2
	Alliant FX/80	Concentrix 5.X
	DEC MIPS	Ultrix 4.2
	HP 9000/300	Mt Xinu MORE/bsd (4.3BSD)*
	HP 9000/300	HP/UX 7.05 (HP cc)
	HP 9000/400	HP/UX 7.05 (HP cc)
	HP 9000/700	HP/UX 8.07 (HP cc, GCC 2.3.1)
	IBM RS6000	AIX 3.2
	NeXT		Mach 2.2, 3.0
	Sun-3		SunOS 4.0.3, 4.1.1
	Sun-386i	SunOS 4.0.1
	Sun-4		SunOS 4.0.3, 4.1.1, 4.1.2, 4.1.3
	Multiflow	4.3 BSD TRACE/UNIX Version 5.0.4
	MIPS		RISC/os 4.51, 5.0

	* Not recently tested.  Known to work at some point in the past.

It should work on just about any BSD based Unix with little or no
modification.  It will probably work on modern System V based OS's
such as SVR4 with some work.

			    COMPATIBILITY

This version of rdist differs greatly from older versions (as
distributed with 4.3BSD) in that the client and the server portions
are seperated into two distinct programs, rdist and rdistd,
respectively.  The protocol used to communicate between the client and
server has also been extensively modified.  These two items make
providing "builtin" compatibility very difficult.  However, backwards
compatibility is possible, provided you have a binary or source copy
of the old rdist.

The way the old rdist started a server rdist is to run "rdist
-Server".  If the new rdist is run with the "-Server" option, then it
will exec a copy of the old rdist (usually /usr/old/rdist or
/usr/ucb/oldrdist).  In this way, you get compatibility with hosts
running the old rdist attempting to rdist to a machine running new
rdist.  If your host running new rdist wants to rdist to a host
running the old rdist, then it must run the old rdist program
(/usr/old/rdist or /usr/ucb/oldrdist).

The definetion _PATH_OLDRDIST in config.h controls the location of
the old rdist.  If this is not defined, or the defined program does
not exist at runtime, then rdist will print an error when run with the
"-Server" option.

			     INSTALLATION

1) Edit "Makefile" and follow the comments on what parameters may need to
   be set and/or changed.

2) Edit "config.h" and follow the comments on what parameters may need to
   be set and/or changed.

3) Run "make" to compile everything.

4) Run "make install" to install the binaries and "make install.man" to
   install the manual pages.

				BUG REPORTS

Bug reports should be sent to "rdist-bugs@usc.edu".  All bug reports
should include:

1) The version of the rdist client and server you are running 
   (use the -V option to rdist and rdistd)
2) The platform (machine + OS name + OS version)
3) A full description of the problem, including sample distfiles.
4) If you have a patch to fix the problem, a context diff (diff -c)
   of the original files vs. the fixed files

			      RDIST MAIL LISTS

There are two rdist mailling lists described below.  PLEASE DO NOT SEND
GENERAL QUESTIONS TO ANY OF THESE LISTS.

LIST NAME	SUBSCRIPTION ADDRESS	DESCRIPTION
---------------	-----------------------	------------------------------------
rdist-announce	rdist-announce-request	Announcements about new versions 
					of Rdist.

rdist-dev	rdist-dev-request	Rdist developers mailling list.  
					Discussion about rdist features, 
					suggestions, bugs, etc.  Will also 
					receive all rdist-announce mail.

To subscribe or unsubscribe, send email to the appropriate
SUBSCRIPTION ADDRESS from above "@usc.edu".  i.e.
"rdist-dev-request@usc.edu" for the "rdist-dev" list.

Archives are available for anonymous ftp from usc.edu as

	/pub/rdist/<LIST>.archive

				NOTES

IBM AIX

I use a modified definition for "bsdcc" in /etc/xlc.cfg for compiling
rdist under AIX 3.X:

* standard c compiler aliased as bsdcc
bsdcc:  use        = DEFLT
        crt        = /lib/crt0.o
        mcrt       = /lib/mcrt0.o
        gcrt       = /lib/gcrt0.o
        libraries  = -lbsd, -lc
        proflibs   = -L/lib/profiled,-L/usr/lib/profiled
        options    = -H512,-T512,-qlanglvl=extended,-qnoro,-D_BSD,-Dunix=1,
			-D_NONSTD_TYPES, -D_NO_PROTO, -D_BSD_INCLUDES, -tp,
			-B/lib/

HP/UX

	All of this information on HP/UX is third-hand.  I don't have 
	access to any HP/UX machines to test rdist on.

Unlike HPUX version 7, version 8 does not come standard with yacc
which is now part of the C/ANSI C Development Bundle.  If that bundle
is on the system, then rdist compiles fine with the changes to the
Makefile to include regex.o and strcasecmp.o.  If you don't have yacc
and instead use the GNU bison in the yacc mode (-y option) it compiles
fine but needs to have the PW library included (-lPW) in order to find
an alloca.o when linking.

The regex that is part of the HPUX C library is not compatible with
the BSD style regex that rdist uses.  Someone who leaves regex.o out
of the MISSINGOBJS line in the Makefile because they noticed a
regex(3) in the HPUX manual set is going to have a problem.

OLD rcmd() LIBRARY BUG

Very Old 4.2BSD-based Unix systems may have a bug in their rcmd()
library function.  The bug allowed a user process to run out of file
descriptors if too many connection attempts failed.  The problem is
that the socket would never be closed if the connect() failed.  This
could eventually lead to running out of file descriptors if enough
connections failed.  Most current Unix's like SunOS 4.0.3 and later
have this fixed.  Here is a diff to (I think) the SunOS 3.5 rcmd() to
fix the problem:

***************
*** 51,56 ****
--- 65,71 ----
  			timo *= 2;
  			goto retry;
  		}
+ 		(void) close(s);
  		perror(hp->h_name);
  		return (-1);
  	}

				RCS INFO

This is rcs info for this file:
	$Id: README,v 6.8 1992/11/29 22:00:38 mcooper Exp mcooper $

Wed Dec  2 14:46:18 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Update rdistcfilter: More cleanup and minor speedups from Tom
	Christiansen.

	* Update rdistcfilter to remove truncation of hosts list when lots
	of hosts are present. (tchrist)

Sun Nov 29 13:35:42 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0.0

	* Add more HPUX comments to README and Makefile.  (Allan Weber)

	* Define NBIO_TYPE to be NBIO_FCNTL for HPUX.  (Allan Weber)

Tue Nov 17 10:04:45 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0beta.10

	* Update list of PLATFORMS in README.

Thu Nov 12 10:52:54 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Use E_SFILE in place of hardcoded "FILE".

	* Fix ": is not an identifier" problem with special commands under
	AIX and NeXT by disabling SETARGS.

Wed Nov 11 10:42:27 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* When NOCHKOWNER and NOCHKGROUP are enabled, don't check
	directory ownership.

	* Make getmountent() work again for AIX.

Tue Nov 10 15:09:59 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0beta.9

Mon Nov  9 13:19:51 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Use new *_TYPE defines for defining the types of interfaces
	available for getting filesystem info, non-blocking I/O, wait()
	function(), and directory routines.

	* Modify rdistcfilter to wrap list of hosts instead of truncating.

	* Clarify rdistd being in $PATH in rdist.1. (Mike Urban)

	* Remove SIGPIPE as SIGCHLD equivilent.

	* Add -ochksym option.  When enabled, this option will cause rdist
	to act like the original version when dealing with rdisting 
	directories to symlinks.  The original rdist simple ignored the 
	condition where the target on a remote host was a symlink when the
	target on the master was a directory.  The new rdist will 
	automatically make the target on the remote host be the same as
	the master.  This option disables this behavior.

	* Fix bug with notify failing with certain message level flags.

	* Only send notify mail when things actually change.

	* Add support for Sequent Dynix 3.1.2.  (Ken Dahl)

	* Add BSDI support.  (Ken Dahl & Jonathan Cohn)

	* Fix argument order to error() in client.c.

Thu Oct 29 09:59:14 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0beta.8.

Tue Oct 27 10:19:11 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Add support for Multiflow Trace 4.3BSD. (wls)

	* Make wait() configurable and add support for wait3().

	* Include strcasecmp.c in distribution.

	* Cleanup child handling based on code/suggestions from Neal
	Becker, Rich Salz, and Chris Torek.

	* Don't print hostname in "Response time out" message since
	error() handles that.

	* Add -onochkowner,nochkgroup options.  When enabled, no check of
	a file's user (nochkowner) or group (nochkgroup) ownership is
	performed.

	* Prepend DO_ to dist option macros.

	* Implement new -o<distopt> to replace all the -X options.

	* Actually make error messages work by default.

	* Change fchog() to always print unknown users.

	* Change fchog() to always print name of target file for messages.

Fri Oct 16 13:01:41 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0beta.7.

	* Update rdist.1 to more fully describe new message handling system.

	* Lower syslog logging levels to be mostly LOG_INFO.

	* Don't explicitly call reap().  Let SIGCHLD call reap().  (Neal
	Becker) 

	* Only call removechild() from reap(). (Neal Becker)

	* Fix trivial child list-handling mistake.  (Neal Becker)

	* Call cleanup() to remove /tmp/rdist* files.  (Neal Becker)

	* Remove extraneous debugging info in getnlstr().

	* Don't close distfile file descriptor if it's stdin.  (James
	Tanis)

	* Always strip '+' from hostnames to be consistant. (James Tanis)

Thu Oct 15 10:59:14 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix problem with buffer being overwritten in "chown from ..."
	message. 

	* Modified rdistcfilter to lexically sort messages.

	* Fix argument type mismatch in getmountent() which cause core
	dump when filesystem free space checking was enabled.

Wed Oct 14 11:17:45 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix argument mismatch error in call to messae() which could
	result in a core dump.

	* Fix bug with directories almost always being reported with -y as
	"remote copy is newer".

	* Change message output format (again) to make both normal
	messages and error messages consistant.

	* Only check file mtime and size if file type is "regular".

	* Fix mismatched parameters in call to debugmsg().  (Neal Becker)

Tue Oct 13 15:07:56 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0beta.6.

	* Fix possible stack overflow problem in expand code.

Mon Oct 12 19:41:24 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix long term problem with hardlink installations. (<luik@isa.de>
	Andreas Luik)

	* Slight performance improvement in reading directories.

	* Add better checking/setting of directory ownership.

	* Add another check to see if remote owner.group match local
	owner.group.

Fri Oct  9 13:01:23 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* All OS dependent filesystem routines moved from filesys.c to new
	getmount.c.

	* Add support for BSD386. (Ken Dahl)

	* Move OS name definetions from config.h to new config-os.h.

	* Change configdata.h to config-data.h and create config-os.h.

	* Fix chkparent() to actually make directories when needed.

Wed Oct  7 11:20:23 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Use standard system and predefined values for open() and pipe().

	* Children now exit with status "nerrs".

	* Only log debugmsg() about exit status of child for legit children.

	* Massive overhual of internal message handling system.  All
	messages now pass through the message() function.  There are
	different message facilities are configured to handle the
	different message types.  The format of messages has also been
	made more consistent.

Thu Sep 24 11:11:19 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Use new x*alloc() functions that do error checking.

	* Major changes to use select() to read input from children.

	* Major code cleanup of children related functions.

	* Add Steve Romig's "compact-rdist-output" perl filter to the
	distribution as "rdistcfilter.pl".  Also renamed rdistfilter.pl to
	be rdistvfilter.pl.

Thu Sep 17 13:13:35 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Remove extraneous fclose(lfp) in doarrow().  (Bill Sebok)

	* Fix botch with setfiletime() which set bogus file times.  (Bill
	Sebok)

	* Make :: work for special and cmdspecial.  (Bill Sebok)

Wed Sep 16 16:49:13 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix problem with tempfile (/tmp/rdistXXXXXX) being removed when
	it shouldn't.

Tue Sep 15 10:04:32 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0beta.5

	* Fix core dump problem with list subtraction/addition. (Neal Becker)

	* Fix problem with HPUX being defined after first #if check in defs.h.

Mon Sep 14 12:52:32 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Version 6.0beta.4

	* Add note to README about AIX bsdcc stanza.

	* Clarify -w description in rdist.1.

	* Include target name in error msg "no files to be updated".

Fri Sep 11 14:04:45 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fixed a bug in rdistd which caused set[ug]id bits to not be
	cleared when they were suppose to be, even when it said it was
	being cleared. The mode of a file/directory would also not be set
	in certain cases. This bug looks to date back to the original version.

	* Add support for macro list addition and subtraction (Rich Salz).

	* Make having statfs() configurable with HAVE_STATFS (Rich Salz).

	* Define HPUX if __hpux is defined and change things to use HPUX.

	* Make the type of directory struct used configurable (Rich Salz).

Tue Sep  1 14:46:00 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix another case of setgid being stripped when the owner's
	primary (passwd) gid == file group owner.  (Ken Dahl)

	* Change "Don't know how to rdist to ..." to be "Label ... is not
	defined in the distfile." for clarity.

Mon Aug 31 15:08:26 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Change "register char i" to "register int i" in docmd().

	* Fixed another bug with "Don't know how to rdist to ...".  This
	time, a much simplier approach was taken to remove the "unused"
	stuff from the last fix.

	* Save argc and argv from main() into realargc and realargv
	before setargs() overwrites.

Fri Aug 28 16:36:34 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* The primary group of the owner of a file was not being checked
	in fchog(), which resulted in the setgid bit being cleared.

Thu Aug 27 13:33:35 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fixed typo in config.h that disabled SETARGS.

	* Make _PATH_OLDRDIST compatibility actually work.  Also do
	logging via logmsg() and fatal() for compat stuff.

	* Fatal() error msgs are now logged to logmsg(LOG_ERR, ...) for rdistd

	* Strip leading path of progname.

Mon Aug 10 15:33:22 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Update wording on old rcmd() bug in README. (Rich)

Thu Aug  6 09:59:58 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix ISEXEC define in isexec.c. (Neal Becker)

Changes up to Release 6.0beta.3:
Wed Aug  5 14:10:22 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix problem with ETXTBSY code not working.  (Neal Becker)

	* Add support for HP 9000/[78]00 executable format.  (Neal Becker)

	* Defining SETARGS breaks "special" command under HP/UX. (Neal Becker)

	* Change #ifdef's of "hpux" to be "__hpux" for compability
	with both HP/UX 7.* and 8.* OS versions.  (Neal Becker & Allan Weber)

	* Get rid of #define's in defs.h by compiling yacc with -d.
	Also change tokens like SM (';') to be real chars in the grammer
	instead of tokens for clarity. (Rich)

	* Change ISDIR -> S_ISDIR, ISREG -> S_ISREG, ISLNK -> S_ISLNK
	to be POSIX compliant. (Rich)

	* Document in rdist.1 how rdist runs rdistd.

	* Replace ".in +5" with ".RS/.RE" in rdist.1. (Rich)

	* Remove preprocessor support.  Use "m4 distfile | rdist -f -" 
	for same effect without the ugly code. (Rich)

	* Clarify -N and -O options in rdist.1 (Rich).

	* Document that we can't use strchr() in place of any() because
	most systems strchr() can't handle some of the input we pass.

Changes up to Release 6.0beta.2:
Tue Aug  4 15:20:46 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Rename patchlevel.h to version.h and move VERSION define
	from config.h to version.h.

Tue Aug  4 15:03:53 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Cleanup comments about configuration and such in Makefile,
	config.h, pathnames.h, and README.

Fri Jul 31 14:59:45 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix to fix "Don't know how to make ..." fix.

Thu Jul 30 14:34:46 1992  Michael A. Cooper  (mcooper at acamar.usc.edu)

	* Add -V options to rdist and rdistd to print version information.

	* Portability changes and support for HP/UX from Allan Weber
	(weber@sipi.usc.edu).

Changes up to 6.0alpha3:
Fri Jul 24 11:27:08 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix bug with ^C of "rdist" resulting in a core dump.  An invalid
	jmpbuf was being used in a call to longjmp().

	* Fix problem with modify time not being set on NeXT 2.1 machines.
	Also now set the access time of newly installed/updated file to
	be the current time instead of the atime from the source machine.

Mon Jul 20 12:46:20 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix misspelling of ${MISSINGOBJS} in Makefile.

	* Fix problem with "Don't know how to rdist to ..." error being
	printed when it shouldn't be.
	

Thu Jul 16 10:58:09 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Fix problem with hosts marked as + in the distfile having
	multiple child update the host simaltaneously, which causes race 
	conditions when updating certain targets.


Changes up to 6.0alpha2:
Tue Jul 14 12:40:24 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Cleanup and fix rdistfilter.

Thu Jul  9 16:15:00 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Back out reverse polling code to be clean and remove one source
	of possible bugs.

Tue Jul  7 12:37:40 1992  Michael A. Cooper  (mcooper@acamar.usc.edu)

	* Port back to AIX/RS6000 (3.2), Alliant Concentrix 5.5,
	  Sun-386i (SunOS 4.0.1), DEC MIPS (Ultrix 4.2), NeXT (Mach 2.1).
	  Mainly this was changes to config.h and creation of isexec.c
	  to make porting to new platforms more straigtforward.


Changes up through 6.0alpha

      - The client and the server are now split into two seperate programs
	(rdist and rdistd).  The client (rdist) looks like older versions of
	rdist.  Instead of running "/usr/ucb/rdist" on a remote machine, it
	now runs "rdistd".  Notice that it doesn't run "/usr/ucb/rdistd"
	or use any explicit pathname.  This is to improve portability to
	various different platforms where "/usr/ucb" may not exist.  What
	this means is that the server must be somewhere in the user's default
	$PATH if the client is to successfully run rdistd.

	This also means that the server no longer needs to be setuid root.
	Only the client still needs setuid root (because it uses priv'ed
	ports).  This should cut down a bit on potential security holes.

	Because the server (rdistd) resides in normal user "bin" directories,
	it requires the -S option in order to run.  This is to avoid users
	accidentially typing "rdistd" instead of "rdist".

      -	If the client (rdist) is started with the "-Server" option (which
	is the old rdist method of starting rdist in server mode), it
	will attempt to run the old version of rdist, if it was compiled
	with the name of that program.  This is for backwards compatibility
	and should allow this version of rdist to co-exist with older versions.

      - Add support for running a pre-processor (m4 by default) over the
	distfile before processing.

      - If a connection to a host fails, avoid trying to recontact host
	again.

      - Use getopt() for command line option parsing.  I hate getopt(), but
	everybody wants to use it.  Sigh.

      - A slew of new options.  See the man page for details.

      - Add buffered remote read code from Chris Torek along with some other
	code cleanups.

      -	Check free space and files on a filesystem before installing.
	This code will (optionally) check the amount of free space
	and files (inodes) on a filesystem before installing.  If the
	free space and/or files is less then specified by the initiator,
	then the target will not be installed and an error returned.
	This is useful for preventing rdist from filling up a remote
	filesystem.

      -	Concurrent rdist processes.
	Update multiple hosts concurrently by fork'ing children
	with each child updating one host.  The number of
	children is limited to a given number (usually 4), but is
	controllable with a command line option (-M).

      - Add "setargs" code to set process arguments to indicate what host
	we are talking to.  A protocol change was required for this.

      -	If a remote target resides on a NFS or read-only filesystem,
	then don't try to update target on that host.  This elimates
	having to have millions of seperate lists and exceptions
	for hosts with certain parts NFS mounted or read-only mounted
	and hosts with everything mounted read-write.

      - Set timeout alarms to avoid hanging when something happens
	to a server during a session.  Remove servers can sometimes
	get into a state either during startup or during a session
	where they will never send a response back to the local rdist
	master process.

      - Add ability to rdist a symlink to a directory and vice-versa.
	Previously, this would fail.

      - Add checking and setting of file modes.  If a file's mode is not
	what it should be, the entire file is updated in case there was
	any tampering.  If the target is a directory, then just the mode
	of the directory is updated.

      - Major code cleanup and restructuring.  Major portions of the code
	has been re-written and/or restructured.

      - Add config.h file for configuration related items.

      - Fixed a security hole with setreuid().

      - Add better error messages.  We now distinguish between LOCAL and
	REMOTE errors.

RCS INFO

$Id: ChangeLog,v 1.11 1992/11/29 22:16:28 mcooper Exp mcooper $
-- 
Michael A. Cooper, University Computing Services, U of Southern California
  INTERNET: mcooper@usc.edu	            PHONE: (213) 740-2957
  UUCP: ...!uunet!usc!mcooper              BITNET: mcooper@ramoth