[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

zmailer on DEC Alpha OSF1



Here is a hostenv file, and some diffs.  Note that, with these changes, you
need to define one of ULTRIXGETMNT, OSFGETMNT, or SUNGETMNT in the hostenv
file.

Also, define -D_BSD in the Config file.

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  OSF1.1.2-Alpha alpha.diff
# Wrapped by gamiddle@math on Mon Jul 26 16:16:58 1993
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'OSF1.1.2-Alpha' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'OSF1.1.2-Alpha'\"
else
echo shar: Extracting \"'OSF1.1.2-Alpha'\" \(2613 characters\)
sed "s/^X//" >'OSF1.1.2-Alpha' <<'END_OF_FILE'
X# System features file for SunOS 4.1
X
X# Debugging memory allocator
X#
XMALLOC_LIB=
X
X# sys_siglist[] -- text describing each signal
XSIGLIST_LIB=
X
X# signal handler return type
XSIGNAL_TYPE=	void
X
X# IP IPC
X# Library:	network and socket routines
X# Include:	<netinet/*.h>, <net/*.h> etc
XINET_LIB=
XINET_INCL=	
X
X# NFS support
X# Include:	<mntent.h>
XNFS_LIB=
XNFS_INCL=
X
X# BIND nameserver
X# Library:	BIND resolver routines
X# Include:	<netdb.h>, <arpa/nameser.h>, <resolv.h>
X# Config file:	/etc/resolv.conf or /usr/etc/resolv.conf or similar
X# NB!! the SunOS 4.0 and 4.1 libresolv.a are not up to date.  Get
X# and install a recent copy of BIND from ucbarpa.berkeley.edu.
XRESOLV_LIB=	-L/software/bind-4.9/lib -lresolv
XRESOLV_INCL=
XRESOLV_CONF=	"/etc/resolv.conf"
X
X# NDBM
X# Library:	dbm_open(), dbm_close(), dbm_fetch(), dbm_store(), dbm_delete(),
X#		dbm_firstkey(), dbm_nextkey(), dbm_error(), dbm_clearerr()
X# Include:	<ndbm.h>
XNDBM_LIB=
XNDBM_INCL=
X
X# DBM
X# Library:	dbm_init(), fetch(), store(), delete(), firstkey(), nextkey()
X# Include:	<dbm.h>
XDBM_LIB=	-ldbm
XDBM_INCL=
X
X# miscellaneous
X# Library:	system dependent
X# Include:
XMISC_LIB=	-lbsd
XMISC_INCL=
X
X# Hosts file routines
X# Library:	sethostent(), gethostbyname()
X# Include:	<netdb.h>
X# Hosts file:	"/etc/hosts"
X#HOSTS_LIB=
X#HOSTS_INCL=	<netdb.h>
X#HOSTS_FILE=	"/etc/hosts"
X
X# Directory reading routines
X# Library:	opendir(), readdir(), closedir(), rewinddir()
X# Header file:	<sys/dir.h> on BSD, <dirent.h> on SVID, perhaps <ndir.h>
X# Type:		either 'direct' or 'dirent' depending on flavour
XNDIR_LIB=
XNDIR_H=		<sys/dir.h>
XNDIR_TYPE=	direct
X
X# Needed for userid truncation
XMAILBOX_LIB=	-luw
X
X# Syslog routines
X# Library:      openlog(), syslog()
X# Include:      <syslog.h>
XSYSLOG_LIB=
XSYSLOG_INCL=
X
X# Location of time structure definitions
XTIME_H=               <sys/time.h>
X
X# Set each *_TYPE to the type of the corresponding function (see sysprotos.h)
XFREAD_TYPE=	int
XFWRITE_TYPE=	int
XGETEUID_TYPE=	uid_t
XGETUID_TYPE=	uid_t
XSPRINTF_TYPE=	int
XSTRLEN_TYPE=	int
XUMASK_TYPE=	mode_t
XTIMES_TYPE=	clock_t
XSETPWENT_TYPE=	void
XOPENLOG_TYPE=	int
X
X# Set each variable to indicate the corresponding feature exists in libc
XLSTAT=
XSETREUID=
XFCHOWN=
XFCHMOD=
XSTRCHR=
X#UNAME=
XDUP2=
XBSDSETPGRP=
XRLIMIT=
X#BINMKDIR=
X#BINRMDIR=
XRENAME=
XSTATBLKSIZ=
XBCOPY=
X#NFSMBOX=
XV7LOCK=
X#LOCKF=
XUNIONWAIT=
X#YP=
XGETPWNAM=	# define this if getpwent() iteration is inappropriate
XSELECT=
XTIMEVAL=
X#NOFILE=
XBSDNODELAY=
XVFPRINTF=
XDBMCLOSE=
XFTRUNCATE=
X#BSDTIMEZONE=
X#SYSVTIMEZONE=
XSIGLIST=
XSETVBUF=
XSETSID=
XOSFGETMNT=
XBSD=43
X
X#file system stuff, how to get block size, on sgi want a #include <sys/fs/s5macros.h>
X
END_OF_FILE
if test 2613 -ne `wc -c <'OSF1.1.2-Alpha'`; then
    echo shar: \"'OSF1.1.2-Alpha'\" unpacked with wrong size!
fi
# end of 'OSF1.1.2-Alpha'
fi
if test -f 'alpha.diff' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'alpha.diff'\"
else
echo shar: Extracting \"'alpha.diff'\" \(9921 characters\)
sed "s/^X//" >'alpha.diff' <<'END_OF_FILE'
X*** old/include/sysprotos.h	Mon Jul 26 15:33:14 1993
X--- ./include/sysprotos.h	Wed Jul 21 17:31:53 1993
X***************
X*** 114,120 ****
X  extern int strncmp();
X  extern char *strncpy();
X  extern char *strrchr();
X- extern void syslog();
X  extern time_t time();
X  extern TIMES_TYPE times();
X  extern UMASK_TYPE umask();
X--- 114,119 ----
X***************
X*** 122,128 ****
X  extern int utime();
X  extern int utimes();
X  extern int vfprintf();
X! extern int vsprintf();
X  extern int wait();
X  extern int wait3();
X  extern int write();
X--- 121,127 ----
X  extern int utime();
X  extern int utimes();
X  extern int vfprintf();
X! extern SPRINTF_TYPE vsprintf();
X  extern int wait();
X  extern int wait3();
X  extern int write();
X*** old/libc/mail.c	Mon Jul 26 15:32:50 1993
X--- ./libc/mail.c	Fri Jul 23 01:32:27 1993
X***************
X*** 217,224 ****
X  		errno = eno;
X  		return NULL;
X  	}
X- 	mail_free(scratch);
X  	(void) unlink(scratch);
X  
X  	/* Housekeeping */
X  
X--- 217,224 ----
X  		errno = eno;
X  		return NULL;
X  	}
X  	(void) unlink(scratch);
X+ 	mail_free(scratch);
X  
X  	/* Housekeeping */
X  
X***************
X*** 232,238 ****
X  		while (--nfile >= 0)
X  			mail_file[nfile] = NULL;
X  	}
X! 	if (fileno(fp) >= mail_nfiles)
X  		abort();
X  	mail_file[fileno(fp)] = message;
X  
X--- 232,238 ----
X  		while (--nfile >= 0)
X  			mail_file[nfile] = NULL;
X  	}
X! 	if ((int) fileno(fp) >= mail_nfiles)
X  		abort();
X  	mail_file[fileno(fp)] = message;
X  
X***************
X*** 273,279 ****
X  		errno = EBADF;
X  		return -1;
X  	}
X! 	if (fileno(fp) >= mail_nfiles)
X  		abort();
X  	messagep = &mail_file[fileno(fp)];
X  	if (*messagep == NULL) {
X--- 273,279 ----
X  		errno = EBADF;
X  		return -1;
X  	}
X! 	if ((int) fileno(fp) >= mail_nfiles)
X  		abort();
X  	messagep = &mail_file[fileno(fp)];
X  	if (*messagep == NULL) {
X***************
X*** 308,314 ****
X  		errno = EBADF;
X  		return -1;
X  	}
X! 	if (fileno(fp) >= mail_nfiles)
X  		abort();
X  	messagep = &mail_file[fileno(fp)];
X  	if (*messagep == NULL) {
X--- 308,314 ----
X  		errno = EBADF;
X  		return -1;
X  	}
X! 	if ((int) fileno(fp) >= mail_nfiles)
X  		abort();
X  	messagep = &mail_file[fileno(fp)];
X  	if (*messagep == NULL) {
X***************
X*** 371,398 ****
X  #ifdef	AF_INET
X  
X  #ifdef	USE_NFS
X! #ifdef	ultrix
X  #include <sys/param.h>
X  #include <sys/mount.h>
X! #else	/* Sun-derived NFS */
X  #include <mntent.h>
X  #endif
X  
X  /*
X   * Given a name like /usr/src/etc/foo.c returns the mount point
X   * for the file system it lives in, or NULL in case of any error.
X   */
X  static char *
X  getmntpt(file, dir)
X  	char	*file, **dir;
X  {
X- #ifdef	ultrix
X  	int	mountind, nummount;
X! 	struct fs_data	mounts[1];
X! #else	/* Sun-derived NFS */
X! 	FILE	*mntp;
X! 	struct mntent	*mnt;
X! #endif	
X  	struct stat	filestat, dirstat;
X  
X  	if (stat(file, &filestat) < 0) {
X--- 371,406 ----
X  #ifdef	AF_INET
X  
X  #ifdef	USE_NFS
X! #ifdef	USE_ULTRIXGETMNT
X  #include <sys/param.h>
X  #include <sys/mount.h>
X! #endif
X! #ifdef	USE_OSFGETMNT
X! #include <sys/types.h>
X! #include <sys/mount.h>
X! #endif
X! #ifdef	USE_SUNGETMNT
X! #ifdef	USE_MNTTAB
X! #include <sys/mnttab.h>
X! #include <sys/mntent.h>
X! #define	MNTTYPE	struct mnttab
X! #else
X  #include <mntent.h>
X+ #define	MNTTYPE	struct mntent
X  #endif
X+ #endif
X  
X  /*
X   * Given a name like /usr/src/etc/foo.c returns the mount point
X   * for the file system it lives in, or NULL in case of any error.
X   */
X+ #ifdef USE_ULTRIXGETMNT
X  static char *
X  getmntpt(file, dir)
X  	char	*file, **dir;
X  {
X  	int	mountind, nummount;
X! 	static struct fs_data	mounts[1];
X  	struct stat	filestat, dirstat;
X  
X  	if (stat(file, &filestat) < 0) {
X***************
X*** 399,405 ****
X  		perror(file);
X  		return(NULL);
X  	}
X- #ifdef	ultrix
X  	mountind = 0;
X  	while ((nummount = getmountent(&mountind, mounts, 1)) > 0) {
X  		if ((stat(mounts[0].fd_path, &dirstat) >= 0) &&
X--- 407,412 ----
X***************
X*** 410,416 ****
X  	}
X  	if (nummount == -1)
X  		perror("Can't get mount information");
X! #else	/* Sun-derived NFS */
X  	if ((mntp = setmntent(MOUNTED, "r")) == NULL) {
X  		perror(MOUNTED);
X  		return(NULL);
X--- 417,491 ----
X  	}
X  	if (nummount == -1)
X  		perror("Can't get mount information");
X! 	return NULL;
X! }
X! #endif
X! 
X! #ifdef USE_OSFGETMNT
X! static char *
X! getmntpt(file, dir)
X! 	char	*file, **dir;
X! {
X! 	int	nummount, i;
X! 	struct	statfs *mounts;
X! 	static struct statfs mntfs;
X! 	struct stat	filestat, dirstat;
X! 
X! 	if (stat(file, &filestat) < 0) {
X! 		perror(file);
X! 		return(NULL);
X! 	}
X! 
X! 	mounts = NULL;
X! 	if ((nummount = getmntinfo(&mounts, MNT_NOWAIT)) == 0) {
X! 		perror("Can't get mount information");
X! 		return NULL;
X! 	}
X! 
X! 	for (i=0; i<nummount; i++) {
X! 		if ((stat(mounts[i].f_mntonname, &dirstat) >= 0) &&
X! 		   (filestat.st_dev == dirstat.st_dev)) {
X! 			bcopy(&mounts[i], &mntfs, sizeof mntfs);
X! 			*dir = mntfs.f_mntonname;
X! 			return mntfs.f_mntfromname;
X! 		}
X! 	}
X! 	return NULL;
X! }
X! #endif
X! 
X! #ifdef USE_SUNGETMNT
X! static char *
X! getmntpt(file, dir)
X! 	char	*file, **dir;
X! {
X! 	FILE	*mntp;
X! 	MNTTYPE	*mnt;
X! 	static MNTTYPE	rmnt;
X! 	struct stat	filestat, dirstat;
X! 
X! 	if (stat(file, &filestat) < 0) {
X! 		perror(file);
X! 		return(NULL);
X! 	}
X! #ifdef	USE_MNTTAB
X! 	mnt = &rmnt;
X! 	if ((mntp = fopen(MNTTAB, "r")) == NULL) {
X! 		perror(MNTTAB);
X! 		return(NULL);
X! 	}
X! 	while (getmntent(mntp, mnt) == 0) {
X! 		if (strcmp(mnt->mnt_fstype, MNTTYPE_SWAP) == 0)
X! 			continue;
X! 		if ((stat(mnt->mnt_mountp, &dirstat) >= 0) &&
X! 		   (filestat.st_dev == dirstat.st_dev)) {
X! 			fclose(mntp);
X! 			*dir = mnt->mnt_mountp;
X! 			return mnt->mnt_special;
X! 		}
X! 	}
X! 	fclose(mntp);
X! #else
X  	if ((mntp = setmntent(MOUNTED, "r")) == NULL) {
X  		perror(MOUNTED);
X  		return(NULL);
X***************
X*** 430,435 ****
X--- 505,511 ----
X  #endif
X  	return NULL;
X  }
X+ #endif
X  #endif	/* USE_NFS */
X  
X  char *
X*** old/scheduler/mailq.c	Mon Jul 26 15:33:37 1993
X--- ./scheduler/mailq.c	Fri Jul 23 01:30:53 1993
X***************
X*** 972,1000 ****
X  
X  #ifdef	AF_INET
X  
X! #ifdef	USE_NFS
X! #ifdef	ultrix
X  #include <sys/param.h>
X  #include <sys/mount.h>
X! #else	/* Sun-derived NFS */
X  #include <mntent.h>
X  #endif
X  
X  /*
X   * Given a name like /usr/src/etc/foo.c returns the mount point
X   * for the file system it lives in, or NULL in case of any error.
X   */
X  static char *
X  getmntpt(file, dir)
X  	char	*file, **dir;
X  {
X- #ifdef	ultrix
X  	int	mountind, nummount;
X! 	struct fs_data	mounts[1];
X! #else	/* Sun-derived NFS */
X! 	FILE	*mntp;
X! 	struct mntent	*mnt;
X! #endif	
X  	struct stat	filestat, dirstat;
X  
X  	if (stat(file, &filestat) < 0) {
X--- 972,1008 ----
X  
X  #ifdef	AF_INET
X  
X! #ifdef  USE_NFS
X! #ifdef  USE_ULTRIXGETMNT
X  #include <sys/param.h>
X  #include <sys/mount.h>
X! #endif
X! #ifdef  USE_OSFGETMNT
X! #include <sys/types.h>
X! #include <sys/mount.h>
X! #endif
X! #ifdef  USE_SUNGETMNT
X! #ifdef  USE_MNTTAB
X! #include <sys/mnttab.h>
X! #include <sys/mntent.h>
X! #define MNTTYPE struct mnttab
X! #else
X  #include <mntent.h>
X+ #define MNTTYPE struct mntent
X  #endif
X+ #endif
X  
X  /*
X   * Given a name like /usr/src/etc/foo.c returns the mount point
X   * for the file system it lives in, or NULL in case of any error.
X   */
X+ #ifdef	USE_ULTRIXGETMNT
X  static char *
X  getmntpt(file, dir)
X  	char	*file, **dir;
X  {
X  	int	mountind, nummount;
X! 	static struct fs_data	mounts[1];
X  	struct stat	filestat, dirstat;
X  
X  	if (stat(file, &filestat) < 0) {
X***************
X*** 1002,1008 ****
X  		perror(file);
X  		return(NULL);
X  	}
X- #ifdef	ultrix
X  	mountind = 0;
X  	while ((nummount = getmountent(&mountind, mounts, 1)) > 0) {
X  		if ((stat(mounts[0].fd_path, &dirstat) >= 0) &&
X--- 1010,1015 ----
X***************
X*** 1011,1019 ****
X  			return mounts[0].fd_devname;
X  		}
X  	}
X! 	if (nummount == -1)
X  		perror("Can't get mount information");
X! #else	/* Sun-derived NFS */
X  	if ((mntp = setmntent(MOUNTED, "r")) == NULL) {
X  		fprintf(stderr, "%s: ", progname);
X  		perror(MOUNTED);
X--- 1018,1100 ----
X  			return mounts[0].fd_devname;
X  		}
X  	}
X! 	if (nummount == -1) {
X! 		(void) fprintf(stderr, "%s: ", progname);
X  		perror("Can't get mount information");
X! 	}
X! 	return NULL;
X! }
X! #endif
X! 
X! #ifdef USE_OSFGETMNT
X! static char *
X! getmntpt(file, dir)
X! 	char	*file, **dir;
X! {
X! 	int	nummount, i;
X! 	struct	statfs *mounts;
X! 	static struct statfs mntfs;
X! 	struct stat	filestat, dirstat;
X! 
X! 	if (stat(file, &filestat) < 0) {
X! 		(void) fprintf(stderr, "%s: ", progname);
X! 		perror(file);
X! 		return(NULL);
X! 	}
X! 
X! 	mounts = NULL;
X! 	if ((nummount = getmntinfo(&mounts, MNT_NOWAIT)) == 0) {
X! 		(void) fprintf(stderr, "%s: ", progname);
X! 		perror("Can't get mount information");
X! 		return NULL;
X! 	}
X! 
X! 	for (i=0; i<nummount; i++) {
X! 		if ((stat(mounts[i].f_mntonname, &dirstat) >= 0) &&
X! 		   (filestat.st_dev == dirstat.st_dev)) {
X! 			bcopy(&mounts[i], &mntfs, sizeof mntfs);
X! 			*dir = mntfs.f_mntonname;
X! 			return mntfs.f_mntfromname;
X! 		}
X! 	}
X! 	return NULL;
X! }
X! #endif
X! 
X! #ifdef	USE_SUNGETMNT
X! static char *
X! getmntpt(file, dir)
X! 	char	*file, **dir;
X! {
X! 	FILE	*mntp;
X! 	MNTTYPE	*mnt;
X! 	static MNTTYPE	rmnt;
X! 	struct stat	filestat, dirstat;
X! 
X! 	if (stat(file, &filestat) < 0) {
X! 		(void) fprintf(stderr, "%s: ", progname);
X! 		perror(file);
X! 		return(NULL);
X! 	}
X! #ifdef	USE_MNTTAB
X! 	mnt = &rmnt;
X! 	if ((mntp = fopen(MNTTAB, "r")) == NULL) {
X! 		fprintf(stderr, "%s: ", progname);
X! 		perror(MNTTAB);
X! 		return(NULL);
X! 	}
X! 	while (getmntent(mntp, mnt) == 0) {
X! 		if (strcmp(mnt->mnt_fstype, MNTTYPE_SWAP) == 0)
X! 			continue;
X! 		if ((stat(mnt->mnt_mountp, &dirstat) >= 0) &&
X! 		   (filestat.st_dev == dirstat.st_dev)) {
X! 			fclose(mntp);
X! 			*dir = mnt->mnt_mountp;
X! 			return mnt->mnt_special;
X! 		}
X! 	}
X! 	fclose(mntp);
X! #else
X  	if ((mntp = setmntent(MOUNTED, "r")) == NULL) {
X  		fprintf(stderr, "%s: ", progname);
X  		perror(MOUNTED);
X***************
X*** 1034,1039 ****
X--- 1115,1122 ----
X  #endif
X  	return NULL;
X  }
X+ #endif
X+ 
X  #endif	/* USE_NFS */
X  
X  char *
END_OF_FILE
if test 9921 -ne `wc -c <'alpha.diff'`; then
    echo shar: \"'alpha.diff'\" unpacked with wrong size!
fi
# end of 'alpha.diff'
fi
echo shar: End of shell archive.
exit 0