Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!van-bc!netsoft!robert From: robert@netsoft.wimsey.bc.ca (Robert B. Nelson) Newsgroups: comp.unix.sysv386 Subject: Re: Smail3 on ESIX V.3.2 Message-ID: <1991May30.114514.29079@netsoft.uucp> Date: 30 May 91 11:45:14 GMT References: <368@fallst.UUCP> Organization: NetSoft Systems Inc, Vancouver, British Columbia, Canada Lines: 268 In <368@fallst.UUCP> tkevans@fallst.UUCP (Tim Evans) writes: >Smail3, patchlevel 18 (is there a later patchlevel?) fails to >make on my ESIX V.3.2, Rev. D, with the breakdown coming on the >linking of ldinfo.o--the error is that the library libsocket.a >can't be found. This error occurs whether DRIVER_CONFIGURATION >is null or defined as unix-generic. >Has anyone gotten smail3 working with ESIX? If so, do you >have patches and/or instructions? Thanks. >-- >UUCP: {rutgers|ames|uunet}!mimsy!woodb!fallst!tkevans >INTERNET: tkevans%fallst@wb3ffv.ampr.org >Tim Evans 2201 Brookhaven Ct, Fallston, MD 21047 Yes, I have version 3.1.20 running under ESIX 3.2d. I had to make some changes to make it work with ESIX's _unsupported_ socket interface. I figure others using ESIX will want the changes and they aren't that long so I'm posting them here. I have also forwarded them to the smail buglist so hopefully they will be incorporated into the next version of smail. I am also including the changes required to EDITME for ESIX. You will have to decide how you want to configure the other items in EDITME. --------------------------------C-U-T---H-E-R-E-------------------------------- --- conf/EDITME-dist Sat Feb 23 01:18:45 1991 +++ conf/EDITME Thu May 30 02:38:14 1991 @@ -94,7 +95,7 @@ # is available. #OS_TYPE=bsd4.2 # 4.2 BSD systems -OS_TYPE=bsd4.3 # 4.3 BSD systems +#OS_TYPE=bsd4.3 # 4.3 BSD systems #OS_TYPE=cpc3.0 # Counterpoint C-XIX Release 3.0 #OS_TYPE=forpro # fortune FOR:Pro 2.1 to 3.1 #OS_TYPE=stride2.2 # UniStride release 2.2 @@ -110,6 +111,7 @@ #OS_TYPE=uts2.0 # UTS/580 release 2.0 load0 #OS_TYPE=xenix5 # SCO Xenix System V #OS_TYPE=posix # Generic P1003.1 system +OS_TYPE=esix5.3 # Esix System V Release 3.2 # ARCH_TYPE - architecture type --- ../smail3_1_20/./src/routers/gethost.c Sat Feb 23 01:20:46 1991 +++ ./src/routers/gethost.c Thu Apr 11 03:38:08 1991 @@ -83,15 +83,23 @@ #else /* not CMC */ # include -# ifdef UNIX_CPC -# include -# include -# else /* not UNIX_CPC */ -# include -# endif /* not UNIX_CPC */ -# include -# include -# include + +# ifdef ESIX +# include +# include +# include +# include +# else /* not ESIX */ +# ifdef UNIX_CPC +# include +# include +# else /* not UNIX_CPC */ +# include +# endif /* not UNIX_CPC */ +# include +# include +# include +# endif #endif /* not CMC */ --- ../smail3_1_20/./src/transports/tcpsmtp.c Sat Feb 23 01:21:01 1991 +++ ./src/transports/tcpsmtp.c Thu May 30 00:10:26 1991 @@ -26,7 +26,12 @@ # include #else /* not CMC */ - +#ifdef ESIX +# include +# include +# include +# include +#else # include # include # ifdef UNIX_CPC @@ -36,6 +41,7 @@ # include # endif /* not UNIX_CPC */ # include +#endif /* not ESIX */ #endif /* not CMC */ @@ -97,6 +103,12 @@ s = tcpsmtp_connect(addr->next_host, service, &error_text); if (s >= 0) { +#ifdef ESIX +# include + if (ioctl(s, I_PUSH, "tirdwr") < 0) { + perror("tirdwr"); + } +#endif s2 = dup(s); if (s2 < 0) { (void) close(s); --- ../smail3_1_20/./src/modes.c Sat Feb 23 01:20:38 1991 +++ ./src/modes.c Wed May 29 23:56:32 1991 @@ -31,15 +31,23 @@ #include #include "defs.h" #if defined(HAVE_BSD_NETWORKING) -# ifdef UNIX_CPC -# include -# include +# ifdef ESIX +# include +# include +# include +# include +# include # else -# include -# endif /* not UNIX_CPC */ -# include -# include -# include +# ifdef UNIX_CPC +# include +# include +# else +# include +# endif /* not UNIX_CPC */ +# include +# include +# include +# endif #endif #include "config.h" #include "smail.h" @@ -787,15 +791,27 @@ } /* loop processing connect requests or alarm signals */ +#ifndef ESIX (void) listen(ls, 5); +#endif + for (;;) { int len = sizeof(from); +#ifdef ESIX + struct t_call *pcallreq; /* Call indication listen -> accept */ +#endif + DEBUG1(DBG_MAIN_MID, "listening on port %d...\n", smtp_service->s_port); /* get connection */ +#ifdef ESIX + (void) listen(ls, &pcallreq); + as = accept(ls, (struct sockaddr *)&from, &len, &pcallreq); +#else as = accept(ls, (struct sockaddr *)&from, &len); +#endif if (as < 0 && errno != EINTR) { write_log(LOG_PANIC, "accept failed: %s", strerrno()); continue; @@ -858,6 +874,11 @@ DEBUG1(DBG_MAIN_LO, "connection request from [%s]\n", inet_ntoa(from->sin_addr)); +#ifdef ESIX + if (ioctl(fd, I_PUSH, "tirdwr") < 0) { + perror("tirdwr"); + } +#endif fd2 = dup(fd); if (fd2 < 0) { FILE *f = fdopen(fd, "w"); --- /dev/null Mon Jun 11 15:54:01 1990 +++ conf/os/esix5.3 Thu May 30 03:28:10 1991 @@ -0,0 +1,60 @@ +# @(#)conf/os/esix5.3 +# +# esix5.3 - define the characteristics of ESIX System V release 3.2d + +# OSNAMES - Names defining this operating system +OSNAMES=ESIX:UNIX_SYS5_3:UNIX_SYS5:UNIX + +# LOCKING_PROTOCOL - macros for efficient file locking +LOCKING_PROTOCOL="\ +#include +#define LOCK_REQUIRES_WRITE +#define lock_fd(fd) (lockf((fd), F_TLOCK, 0L) < 0? FAIL: SUCCEED) +#define lock_fd_wait(fd) (lockf((fd), F_LOCK, 0L) < 0? FAIL: SUCCEED) +#define unlock_fd(fd) ((void) lockf((fd), F_ULOCK, 0L)) +#define unlock_fd_wait(fd) ((void) lockf((fd), F_ULOCK, 0L)) +#define USE_FCNTL_RD_LOCK +#define lock_fd_rd_wait(fd) (fcntl_rd_lock(fd)) +extern int fcntl_rd_lock(); +" + +# MAILBOX_DIR - in which directory are user mailbox files +MAILBOX_DIR=/usr/mail + +# CONSOLE - name of the console device file +CONSOLE=/dev/console + +# DECLARE_STRINGS - declare string routines, using macros as needed +DECLARE_STRINGS="\ +#include +#define bzero(b,n) (memset((b),'\0',(n))) +#define bcopy(b1,b2,n) (memcpy((b2),(b1),(n))) +#define bcmp(b1,b2,n) (memcmp((b1),(b2),(n))) +#define index strchr +#define rindex strrchr +" + +# SECURE_PATH - directories containing system-supplied user programs +SECURE_PATH=/bin:/usr/bin + +# OSLIBS - name any object libraries containing routines we will need +OSLIBS="-lPW -lnet_s -lnsl_s -lc_s" # use this to get regcmp/regex + +# DRIVER_CONFIGURATION - configuration file describing smail drivers +DRIVER_CONFIGURATION=bsd-network + +# RANLIB - how do we organize an existing object archive library +RANLIB=: + +# CHOWN - command to use for accessing the chown program +CHOWN=chown + +# HAVE - what features should be used with this operating system +HAVE=MKDIR:BSD_NETWORKING:BSTRING:SYS5_STRLIB:UNAME:READDIR:VFPRINTF:GETOPT:DUP2 + +# UUCP_SYSTEM_FILE - path to UUCP file containing remote systems +# +# Most (all?) SVR3 systems seem to have HDB UUCP. If yours does not, +# then override UUCP_SYSTEM_FILE in the EDITME file. Set it to +# /usr/lib/uucp/L.sys. +UUCP_SYSTEM_FILE=/usr/lib/uucp/Systems --------------------------------C-U-T---H-E-R-E-------------------------------- -- Robert B. Nelson NetSoft Systems Inc Phone: (604) 261-3652 1102 West 48th Avenue INTERNET: robert@netsoft.wimsey.bc.ca Vancouver, BC, CANADA, V6M 2N5