[comp.sources.misc] v02i003: Smail under Xenix -- USE THIS ONE!!!

chip@ateng.UUCP (Chip Salzenberg) (01/07/88)

Comp.sources.misc: Volume 2, Issue 3

Archive-Name: smail-xenix-v3

Submitted-By: chip@ateng.UUCP (Chip Salzenberg)


Comp.sources.misc: Volume 2, Issue 3
Archive-Name: smail-xenix-v3
Submitted-By: chip@ateng.UUCP (Chip Salzenberg)

Brandon:

Recently, you sent out a small patch to smail that I made and then posted
in comp.unix.xenix.  I did *not* intend that patch for comp.sources.misc!
I was working on a complete set of patches that would take a stock smail
2.5 and make it usable under Xenix.  Well, here it is.  Please post this.
[Then why did you send it to sources-misc@ncoast?  ++bsa]

BTW, I earlier posted a sharchive of smail mods to comp.unix.xenix.  For all
you readers of c.u.x that used those mods --
                      USE THESE NEW PATCHES INSTEAD.
Why?
	1.  Cleaner mods
	2.  Better comments
	3.  Explicit support for Micnet/Xenix-Net
	4.  Support for /etc/systemid file (no need to relink your
	    kernel to change your machine name)

Herein you will find a sharchive that contains a new Makefile, a set of
patches to the smail sources, a replacement for the troublesome
/usr/lib/mail/execmail program, and a script to install them both.

All a Xenix user needs to start running smail is (1) the smail 2.5 sources,
(2) this sharchive, and (3) Larry Wall's patch program.

"Shar and enjoy."

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the "#! /bin/sh" line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	X.README
#	X.PATCHES
#	Makefile
#	execm.c
#	install_smail
# This archive created: Tue Dec 29 10:41:42 1987
export PATH; PATH=/bin:$PATH
:
echo 'shar: extracting "X.README" (2816 characters) '
if test -f 'X.README'
then
	echo 'shar: will not overwrite existing file "X.README" '
else
sed 's/^X//' << \SHAR_EOF > 'X.README'
XX.README
X
XThis file describes how to use my smail 2.5 patches for SCO Xenix System V.
X
XTo use these patches, you need either (1) Larry Wall's "patch" program, or
X(2) lots of patience while you apply these changes by hand.
X
XSo, here it is:
X
X        1.  Find your original, untouched smail 2.5 sources.  Copy these
X            to a new directory.  (We'll call it "/usr/src/xsmail".)
X
X        2.  Move the files in this sharchive (Makefile, X.README,
X            X.PATCHES, execm.c, install_smail) into /usr/src/xsmail.
X            This will overwrite the distributed Makefile.
X
X        3.  Run "patch <X.PATCHES".  No patches should fail; if any do,
X            then you probably started with modified sources or with the
X            wrong version of smail.
X
X            (This step will leave ".orig" files lying around.  You may
X            remove these at any time, but I'd leave them until installation
X            is complete just to be on the safe side.  And if any patches
X            fail, those patches will be in ".rej" files.)
X
X        4.  Examine defs.h and configure it for your installation.
X            Specifically, if you're running Micnet or Xenix-Net, you'll
X            probably want to uncomment "#define MICNET".  (Or you can
X            define it in the Makefile.)
X
X        5.  Run "make" to make smail and execm.
X
X        6.  >As root<, run "./install_smail".
X
XIf you do the above steps, the following will have occurred:
X
X        Smail is installed as /usr/bin/smail.
X
X        /usr/bin/rmail is moved to /usr/bin/rmail.x and never used again.
X
X        /usr/bin/smail is linked to /usr/bin/rmail.
X
X        /usr/lib/mail/execmail is moved to /usr/lib/mail/execmail.x, which
X        smail uses for delivering local mail. (If you define MICNET when
X        compiling smail, then execmail.x is used for delivering _all_ mail,
X        not just local mail.)
X
X        The program execm.c is installed as /usr/lib/mail/execmail.  This
X        "fake" execmail just parses its arguments and executes smail.  I
X        would have just linked /usr/bin/smail to /usr/lib/mail/execmail,
X        but their arguments are different.  (The /bin/mail program uses
X        execmail to do its work.)
X
XUsers of /bin/mail note:  If you want to use Internet-style addresses with
X/bin/mail, you have to add the line "set execmail" to /usr/lib/mail/mailrc.
XOtherwise, /bin/mail assumes that addresses without bangs must be valid
Xlocal users.
X
XOne final comment:  I'd like to have some idea of how widely used these
Xpatches are.  So when you get it working -- or if you can't! -- drop me a
Xline and tell me about it. (My address is chip@ateng.  If you can't get a
Xvalid path, try codas!ateng!chip or uunet!ateng!chip.)
X
X        28 December 1987
X        Chip Salzenberg <chip@ateng.UUCP>
X        A T Engineering, Tampa, FL
SHAR_EOF
if test 2816 -ne `wc -c < 'X.README'`
then
	echo 'shar: error transmitting "X.README" (should have been 2816 characters) '
fi
chmod 644 'X.README'
fi  # end of overwriting check
:
echo 'shar: extracting "X.PATCHES" (10886 characters) '
if test -f 'X.PATCHES'
then
	echo 'shar: will not overwrite existing file "X.PATCHES" '
else
sed 's/^X//' << \SHAR_EOF > 'X.PATCHES'
X
XIndex: alias.c
X*** ../smail2.5/alias.c	Mon Dec 21 18:29:55 1987
X--- ../smail/alias.c	Thu Sep 24 13:00:56 1987
X***************
X*** 460,462 ****
X  
X! 	while((*p != NULL) && (*p != '#')) {
X  		b = p;
X--- 460,462 ----
X  
X! 	while((*p != '\0') && (*p != '#')) {
X  		b = p;
X
XIndex: defs.h
X*** ../smail2.5/defs.h	Mon Dec 21 18:29:57 1987
X--- ../smail/defs.h	Mon Dec 28 09:45:49 1987
X***************
X*** 18,19 ****
X--- 18,47 ----
X  
X+ /*
X+ **	Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
X+ **	Released to Usenet on 01 Dec 1987.
X+ **	Further modified 23 Dec 1987.
X+ **
X+ **	Additions:
X+ **
X+ **		EXECMAIL is defined as the renamed /usr/lib/mail/execmail.
X+ **		Under Xenix, this is the local delivery agent.
X+ **
X+ **		SMARTMAILER is now automatically defined if either SENDMAIL
X+ **		or EXECMAIL is defined.  This is useful for code that depends
X+ **		on properties that these programs have in common (automatic
X+ **		bouncing of failed mail, for example).
X+ **
X+ **		MICNET should be defined if Micnet or Xenix-Net is in use.
X+ **		In this case, execmail is used for _all_ mail, which allows
X+ **		the automatic routing of UUCP mail to a gateway.  However,
X+ **		execmail sends one file per recipient, even if the recipients
X+ **		are all on the same (remote) machine.  This is not exactly
X+ **		a bug; it just increases UUCP connect time.  I personally
X+ **		leave MICNET undefined.
X+ **
X+ **		HOSTFILE is the name of a file containing the hostname.
X+ **		Under Xenix, this is "/etc/systemid".  HOSTFILE overrides
X+ **		UNAME/GETHOSTNAME.
X+ */
X+ 
X  #ifndef VERSION
X***************
X*** 32,34 ****
X  
X! /* if defined, HOSTNAME overrides UNAME and GETHOSTNAME */
X  /*#define HOSTNAME	"host"		/* literal name */
X--- 60,69 ----
X  
X! /* if defined, HOSTFILE overrides UNAME and GETHOSTNAME */
X! #ifndef HOSTFILE
X! #ifdef M_XENIX
X! #define HOSTFILE    "/etc/systemid"	/* read host name from this file */
X! #endif
X! #endif
X! 
X! /* if defined, HOSTNAME overrides HOSTFILE, UNAME, and GETHOSTNAME */
X  /*#define HOSTNAME	"host"		/* literal name */
X***************
X*** 105,107 ****
X  
X! #define ALIAS	"/usr/lib/aliases"	/* location of mail aliases       */
X  /*#define CASEALIAS			/* make aliases case sensitive    */
X--- 140,147 ----
X  
X! 	/* Location of mail aliases */
X! #ifdef M_XENIX
X! #define ALIAS   "/usr/lib/mail/saliases"
X! #else
X! #define ALIAS   "/usr/lib/aliases"
X! #endif
X  /*#define CASEALIAS			/* make aliases case sensitive    */
X***************
X*** 125,126 ****
X--- 165,170 ----
X  
X+ 	/* list of Full Name, address pairs */
X+ #ifdef M_XENIX
X+ #define FULLNAME        "/usr/lib/mail/fullnames"
X+ #else
X  #define FULLNAME	"/usr/lib/fullnames"
X***************
X*** 126,128 ****
X  #define FULLNAME	"/usr/lib/fullnames"
X! 					/* list of Full Name, address pairs */
X  
X--- 170,172 ----
X  #define FULLNAME	"/usr/lib/fullnames"
X! #endif
X  
X***************
X*** 144,146 ****
X  
X! /*#define LOG	"/usr/spool/uucp/mail.log"	/* log of uucp mail */
X  /*#define RECORD	"/tmp/mail.log"		/* record of uucp mail */
X--- 188,190 ----
X  
X! #define LOG	"/usr/spool/uucp/mail.log"	/* log of uucp mail */
X  /*#define RECORD	"/tmp/mail.log"		/* record of uucp mail */
X***************
X*** 162,165 ****
X  
X! #ifndef SMAIL
X! #define SMAIL		"/bin/smail"	/* location of smail command */
X  #endif
X--- 206,212 ----
X  
X! #ifndef SMAIL       /* location of smail command */
X! #ifdef M_XENIX
X! #define SMAIL		"/usr/bin/smail"
X! #else
X! #define SMAIL		"/bin/smail"
X  #endif
X***************
X*** 165,166 ****
X--- 212,214 ----
X  #endif
X+ #endif
X  
X***************
X*** 179,182 ****
X  
X! #define RMAIL(flags,from,sys) "%s -a%s %s - %s!rmail",UUX,from,flags,sys /* */
X! /*#define RMAIL(flags,from,sys) "%s %s - %s!rmail",UUX,flags,sys /* */
X  
X--- 227,230 ----
X  
X! /*#define RMAIL(flags,from,sys) "%s -a%s %s - %s!rmail",UUX,from,flags,sys /* */
X! #define RMAIL(flags,from,sys) "%s %s - %s!rmail",UUX,flags,sys /* */
X  
X***************
X*** 187,188 ****
X--- 235,238 ----
X  
X+ 	/* We're letting sendmail do lots of work for us. */
X+ 
X  #define HANDLE	JUSTUUCP	/* see HANDLE definition below */
X***************
X*** 195,197 ****
X  
X! #else
X  
X--- 245,247 ----
X  
X! #else  /* !SENDMAIL */
X  
X***************
X*** 197,200 ****
X  
X! #define HANDLE	ALL
X! #define ROUTING JUSTDOMAIN
X  
X--- 247,249 ----
X  
X! 	/* We don't have sendmail, so we'll do the work ourselves. */
X  
X***************
X*** 200,205 ****
X  
X! #ifdef BSD
X! #define LMAIL(frm,sys)		"/bin/mail"	/* BSD local delivery agent */
X! #else
X! #define LMAIL(frm,sys)		"/bin/lmail"	/* SV  local delivery agent */
X  #endif
X--- 249,255 ----
X  
X! #define HANDLE  ALL             /* see HANDLE definition below */
X! #define ROUTING ALWAYS          /* see ROUTING definition below */
X! 
X! #ifdef BSD              /* BSD local delivery agent */
X! #define LMAIL(frm,sys)          "/bin/mail"
X  #endif
X***************
X*** 206,207 ****
X--- 256,267 ----
X  
X+ #ifdef M_XENIX          /* Xenix local delivery agent (renamed) */
X+ #define EXECMAIL                "/usr/lib/mail/execmail.x"
X+ #define LMAIL(frm,sys)          "%s -m -f '%s'",EXECMAIL,frm
X+ /*#define MICNET                  /* give all mail to execmail, never uux */
X+ #endif
X+ 
X+ #ifndef LMAIL           /* Default local delivery agent */
X+ #define LMAIL(frm,sys)          "/bin/lmail"
X+ #endif
X+ 
X  #define LARG(user)		" '%s'",postmaster(user)
X***************
X*** 210,212 ****
X  
X! #endif
X  
X--- 270,272 ----
X  
X! #endif  /* !SENDMAIL */
X  
X
XIndex: deliver.c
X*** ../smail2.5/deliver.c	Mon Dec 21 18:29:59 1987
X--- ../smail/deliver.c	Wed Dec 23 12:19:33 1987
X***************
X*** 7,8 ****
X--- 7,24 ----
X  
X+ /*
X+ **	Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
X+ **	Released to Usenet on 01 Dec 1987.
X+ **	Further modified 23 Dec 1987.
X+ **
X+ **	Additions:
X+ **
X+ **		If MICNET is defined, then LMAIL (execmail) is used to
X+ **		deliver all mail, even remote mail.  See defs.h for a
X+ **		discussion of the tradeoffs of this feature.
X+ **
X+ **		Some #ifdefs are now SMARTMAILER instead of SENDMAIL.
X+ **		This is because execmail has some of the intelligent
X+ **		features of sendmail, i.e. automatic mail return.
X+ */
X+ 
X  #ifndef lint
X***************
X*** 219,222 ****
X  			command = scommand;
X- 		} else if (form == LOCAL) {
X- 			command = lcommand;
X  		} else {
X--- 235,236 ----
X***************
X*** 222,226 ****
X  		} else {
X! 			command = rcommand;
X! 			if(flags == uux_noqueue) {
X! 				noqcnt++;
X  			}
X--- 236,250 ----
X  		} else {
X! #ifdef MICNET
X! 			/* Xenix system running Micnet -- let execmail
X! 			 * handle all messages except retries.
X! 			 */
X! 			command = lcommand;
X! #else
X! 			if (form == LOCAL) {
X! 				command = lcommand;
X! 			} else {
X! 				command = rcommand;
X! 				if(flags == uux_noqueue) {
X! 					noqcnt++;
X! 				}
X  			}
X***************
X*** 226,227 ****
X--- 250,252 ----
X  			}
X+ #endif
X  		}
X***************
X*** 271,273 ****
X  		if (form == LOCAL) {
X! #ifdef SENDMAIL
X  			(void) sprintf(buf, LFROM(from, nows, hostname));
X--- 296,298 ----
X  		if (form == LOCAL) {
X! #ifdef SMARTMAILER
X  			(void) sprintf(buf, LFROM(from, nows, hostname));
X***************
X*** 283,285 ****
X  			} else {
X! 				*p = NULL;
X  				(void) sprintf(buf, RFROM(p+1, nows, from));
X--- 308,310 ----
X  			} else {
X! 				*p = '\0';
X  				(void) sprintf(buf, RFROM(p+1, nows, from));
X***************
X*** 372,378 ****
X  					(void) fseek(spoolfp, message, 0);
X! #ifdef SENDMAIL
X! 					/* if we have sendmail, then it
X! 					** was handed the mail, which failed.
X! 					** sendmail returns the failed mail
X! 					** for us, so we need not do it again.
X  					*/
X--- 397,402 ----
X  					(void) fseek(spoolfp, message, 0);
X! #ifdef SMARTMAILER
X! 					/* Mail is automatically returned
X! 					** by sendmail and execmail, so we
X! 					** need not do it again.
X  					*/
X
XIndex: headers.c
X*** ../smail2.5/headers.c	Mon Dec 21 18:30:06 1987
X--- ../smail/headers.c	Wed Dec 23 12:26:43 1987
X***************
X*** 5,6 ****
X--- 5,18 ----
X  
X+ /*
X+ **	Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
X+ **	Released to Usenet on 01 Dec 1987.
X+ **	Further modified 23 Dec 1987.
X+ **
X+ **	Additions:
X+ **
X+ **		Understand "a%b" to mean "a@b".  (This is a judgement call.
X+ **		I prefer to accept any mail that I can understand, not just
X+ **		that which is "correct.")
X+ */
X+ 
X  #ifndef lint
X***************
X*** 155,156 ****
X--- 167,179 ----
X  	}
X+ /*
X+ **  Try splitting at %.  If it works, this is user%domain, which we choose
X+ **  to understand as user@domain.  Prefer the righthand % in a%b%c.
X+ **  (This code allows 'user%foo@mydom' to mean '@mydom,user@foo'.)
X+ */
X+ 	if ((parts = ssplit(address, '%', partv)) >= 2) {
X+ 		(void) strcpy(domain, partv[parts-1]);
X+ 		(void) strncpy(user, partv[0], partv[parts-1]-partv[0]-1);
X+ 		user[partv[parts-1]-partv[0]-1] = '\0';
X+ 		return (DOMAIN);
X+ 	} 
X  /* 
X
XIndex: misc.c
X*** ../smail2.5/misc.c	Mon Dec 21 18:30:19 1987
X--- ../smail/misc.c	Wed Dec 23 12:30:02 1987
X***************
X*** 5,6 ****
X--- 5,21 ----
X  
X+ /*
X+ **	Modified for SCO Xenix by Chip Salzenberg (chip@ateng.UUCP).
X+ **	Released to Usenet on 01 Dec 1987.
X+ **	Further modified 23 Dec 1987.
X+ **
X+ **	Additions:
X+ **
X+ **		If HOSTFILE is defined, read it to look for the hostname.
X+ **		(This file is typically "/etc/systemid" on Xenix systems.)
X+ **		If HOSTFILE is missing, try uname() or gethostname().
X+ **
X+ **		Write only the basename of the program in the log file,
X+ **		just to make the log file easier to read.
X+ */
X+ 
X  #ifndef lint
X***************
X*** 53,57 ****
X  
X! 	logtime = strcpy(tbuf, nows);
X! 	logtime[16] = '\0';
X! 	logtime += 4;
X  
X--- 68,75 ----
X  
X! 	/* To make the log file look nicer, show only the basename of
X! 	 * the command.
X! 	 */
X! 	if (*command == '/')
X! 	{
X! 		char *p, *ecmd;
X  
X***************
X*** 57,58 ****
X--- 75,92 ----
X  
X+ 		if ( (ecmd = index(command, ' ')) != 0 )
X+ 			*ecmd = '\0';
X+ 
X+ 		if ( (p = rindex(command, '/')) != 0 )
X+ 			command = p + 1;
X+ 
X+ 		if ( ecmd != 0 )
X+ 			*ecmd = ' ';
X+ 	}
X+ 
X+ 	/* Time (now).
X+ 	 */
X+ 	strcpy(tbuf, nows);
X+ 	tbuf[16] = '\0';
X+ 	logtime = &tbuf[4];
X+ 
X  	cmask = umask(0);
X***************
X*** 313,314 ****
X--- 347,363 ----
X  		(void) strcpy(hostname, HOSTNAME);
X+ #endif
X+ #ifdef HOSTFILE
X+ 	if (!*hostname) {
X+ 		FILE *fp;
X+ 		char *p;
X+ 
X+ 		if ((fp = fopen(HOSTFILE, "r")) != NULL) {
X+ 			if (fgets(hostname, SMLBUF - 1, fp) != NULL
X+ 			 && (p = index(hostname, '\n')) != NULL)
X+ 				*p = '\0';
X+ 			else
X+ 				*hostname = '\0';
X+ 			fclose(fp);
X+ 		}
X+ 	}
X  #endif
X
XIndex: nptx.c
X*** ../smail2.5/nptx.c	Mon Dec 21 18:30:20 1987
X--- ../smail/nptx.c	Thu Sep 24 13:07:13 1987
X***************
X*** 127,129 ****
X  		(void) strcpy(nl[i], p+1);
X! 		*p = NULL;
X  	}
X--- 127,129 ----
X  		(void) strcpy(nl[i], p+1);
X! 		*p = '\0';
X  	}
X***************
X*** 164,166 ****
X  			(void) strcpy(il[ii], pi+1);
X! 			*pi = NULL;
X  		}
X--- 164,166 ----
X  			(void) strcpy(il[ii], pi+1);
X! 			*pi = '\0';
X  		}
SHAR_EOF
if test 10886 -ne `wc -c < 'X.PATCHES'`
then
	echo 'shar: error transmitting "X.PATCHES" (should have been 10886 characters) '
fi
chmod 644 'X.PATCHES'
fi  # end of overwriting check
:
echo 'shar: extracting "Makefile" (1427 characters) '
if test -f 'Makefile'
then
	echo 'shar: will not overwrite existing file "Makefile" '
else
sed 's/^X//' << \SHAR_EOF > 'Makefile'
X# Makefile for smail
X# @(#)Makefile	2.5 (smail) 9/15/87
X#
X# Modified for SCO Xenix by Chip Salzenberg <chip@ateng.UUCP>.
X# Released to Usenet on 01 Dec 1987.
X# Fixed as per comments of Chris Lewis <uunet!mnetor!spectrix!clewis>.
X#
X# With the addition of the `xenix' pseudo-target, this makefile now makes
X# both smail and execm by default.
X#
X# Use the `install_smail' script to install the resulting binaries.
X
XCFLAGS	= -O
XLDFLAGS = -i
XSHELL	= /bin/sh
XCOPY    = copy -om
X
X#
X# System V Release 2.0 sites can use -lmalloc for a faster malloc
X#
X#LIBS	=	-lmalloc
X
XOBJECTS =	main.o map.o resolve.o deliver.o misc.o alias.o pw.o headers.o getpath.o str.o getopt.o
X
Xxenix:  smail execm
Xall:    smail svbinmail lcasep pathproc mkfnames nptx execm
X
Xsmail:		$(OBJECTS)
X		$(CC) $(LDFLAGS) -F 4000 $(OBJECTS) -o smail $(LIBS)
X
X$(OBJECTS):	defs.h
X		$(CC) $(CFLAGS) -c $<
X
Xexecm:          execm.c
X		$(CC) $(CFLAGS) $(LDFLAGS) execm.c -o execm
X
Xsvbinmail:	svbinmail.c defs.h
X		$(CC) $(CFLAGS) $(LDFLAGS) svbinmail.c -o svbinmail
X
Xlcasep:		lcasep.c
X		$(CC) $(CFLAGS) $(LDFLAGS) lcasep.c -o lcasep
X
Xpathproc:	pathproc.sh
X		$(COPY) pathproc.sh pathproc
X		chmod 755 pathproc
X
Xmkfnames:	mkfnames.sh
X		$(COPY) mkfnames.sh mkfnames
X		chmod 755 mkfnames
X
Xnptx:		nptx.o pw.o str.o
X		$(CC) $(CFLAGS) nptx.o pw.o str.o -o nptx $(LIBS)
X
Xclean:
X		rm -f *.o *.ln a.out core
X
Xclobber:	clean
X		rm -f smail rmail lcasep pathproc mkfnames svbinmail nptx execm
SHAR_EOF
if test 1427 -ne `wc -c < 'Makefile'`
then
	echo 'shar: error transmitting "Makefile" (should have been 1427 characters) '
fi
chmod 644 'Makefile'
fi  # end of overwriting check
:
echo 'shar: extracting "execm.c" (747 characters) '
if test -f 'execm.c'
then
	echo 'shar: will not overwrite existing file "execm.c" '
else
sed 's/^X//' << \SHAR_EOF > 'execm.c'
X/*
X * execm.c
X *
X * This program is a substitute for Xenix's /usr/lib/mail/execmail.
X *
X * Written by Chip Salzenberg (chip@ateng.UUCP).
X * Released to Usenet on 01 Dec 1987.
X *
X * Do what you want with it; I'm not responsible for lost mail,
X * but I don't expect that this little program will lose anything.
X */
X
X#include <stdio.h>
X
Xmain(argc, argv)
Xint     argc;
Xchar    **argv;
X{
X	char *progname = argv[0];
X
X	/*
X	 * Drop the execmail options.
X	 */
X	while (argv[1][0] == '-')
X	{
X		switch (argv[1][1])
X		{
X		case 'f':
X		case 'h':
X			argv += 2;
X			break;
X		default:
X			++argv;
X			break;
X		}
X	}
X
X	argv[0] = progname;
X	execv("/usr/bin/smail", argv);
X	execv("/bin/smail", argv);
X
X	fprintf(stderr, "%s: can't execute smail!\n", progname);
X	exit(1);
X}
SHAR_EOF
if test 747 -ne `wc -c < 'execm.c'`
then
	echo 'shar: error transmitting "execm.c" (should have been 747 characters) '
fi
chmod 644 'execm.c'
fi  # end of overwriting check
:
echo 'shar: extracting "install_smail" (1137 characters) '
if test -f 'install_smail'
then
	echo 'shar: will not overwrite existing file "install_smail" '
else
sed 's/^X//' << \SHAR_EOF > 'install_smail'
X: install_smail
X# Shell script to install smail in a Xenix System V system.
X#
X# Written by Chip Salzenberg (chip@ateng.UUCP).
X# Released to Usenet on 01 Dec 1987.
X#
X# Note that this script renames the standard Xenix rmail and execmail
X# programs to rmail.x and execmail.x respectively.  If those `.x' files
X# already exist, then no renaming takes place, so you can run this script
X# more than once without losing those renamed programs.
X#
X# BTW, be sure to test everything thoroughly; a broken mail system is
X# sure to upset any users on your system.
X
XCOPY="copy -m"
XSMAIL="/usr/bin/smail"
XRMAIL="/usr/bin/rmail"
XEXECM="/usr/lib/mail/execmail"
X
Xfor f in smail execm
Xdo
X    if [ ! -x $f ]; then
X	echo "You need to compile $f first."
X	exit 1
X    fi
Xdone
X
Xecho "Installing current smail -- you have 5 seconds to abort."
Xsleep 5
X
Xif [ ! -f $RMAIL.x ]; then
X    mv $RMAIL $RMAIL.x
Xfi
Xrm -f $RMAIL
Xif [ ! -f $EXECM.x ]; then
X    mv $EXECM $EXECM.x
Xfi
Xrm -f $EXECM
X
X$COPY execm $EXECM
Xchown bin $EXECM
Xchgrp bin $EXECM
Xchmod 755 $EXECM
X
Xrm -f $SMAIL $RMAIL
X$COPY smail $SMAIL
Xchown bin $SMAIL
Xchgrp bin $SMAIL
Xchmod 755 $SMAIL
Xln $SMAIL $RMAIL
SHAR_EOF
if test 1137 -ne `wc -c < 'install_smail'`
then
	echo 'shar: error transmitting "install_smail" (should have been 1137 characters) '
fi
chmod 755 'install_smail'
fi  # end of overwriting check
#	End of shell archive
exit 0

--
Chip Salzenberg                 UUCP: "{codas,uunet}!ateng!chip" 
A T Engineering             My employer's opinions are a trade secret.
Chip's Observation:  "Anything that works is better than anything that doesn't."