[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