[comp.sys.apollo] Elm mail tools

wjw@ebs.eb.ele.tue.nl (Willem Jan Withagen) (02/01/91)

Hi,

I'm trying to look into Elm (That's a set of mail tools).
But before doing anything drastic, I would like to inquire on the net:
1)	if there's anybody who has ported this baby to SR10.x 
	(If it needed porting)
2)	Where did he get the sources?
3)	Was it much effort?

Thanx,
	Willem Jan Withagen

Eindhoven University of Technology   DomainName:  wjw@eb.ele.tue.nl    
Digital Systems Group, Room EH 10.10 
P.O. 513                             Tel: +31-40-473401
5600 MB Eindhoven                    The Netherlands

yountm@gtephx.UUCP (Marvin Yount) (02/04/91)

In article <1067@eba.eb.ele.tue.nl> wjw@ebs.eb.ele.tue.nl (Willem Jan Withagen) writes:
>I'm trying to look into Elm (That's a set of mail tools).
>But before doing anything drastic, I would like to inquire on the net:
>1)	if there's anybody who has ported this baby to SR10.x 
>	(If it needed porting)
>2)	Where did he get the sources?
>3)	Was it much effort?

I installed Elm for our Apollo network and had no trouble at all.  We are
currently running it under both SR9.7 and SR10.  There was absolutely no
porting needed.  I got the source (Elm 2.3) directly from comp.sources.unix
when it was posted there last June.  I believe it's also available from some
anonymous ftp sites.  As for the effort, there was really very little
involved in the initial set-up.  I've done all my Elm work from sys5 rather
than bsd, so your mileage may vary if you're a bsd site.

For further information, there is a newsgroup dedicated to Elm
(comp.mail.elm).  I'm sure you could find information on ftp sites from
there.

Good luck!


-- 
======================================================================          
Marv Yount (yountm@gtephx)
UUCP: {ncar!noao!asuvax | uunet!zardoz!hrc}!gtephx!yountm
AG Communication Systems, Phoenix

ianh@bhpmrl.oz.au (Ian Hoyle) (02/05/91)

wjw@ebs.eb.ele.tue.nl (Willem Jan Withagen) writes:

>I'm trying to look into Elm (That's a set of mail tools).
>But before doing anything drastic, I would like to inquire on the net:
>1)	if there's anybody who has ported this baby to SR10.x 
>	(If it needed porting)

It's a breeze. We've been using elm (now at v2.3 PL11) for at least 2 years
on all our machines here ... Apollos, SGI, DECstations

>2)	Where did he get the sources?

Most big archive sites will have it. If it is not patched to the latest
rev level, patches can be obtained from dsi.com, viz:

        If you are missing previous patches they can be obtained from our:
        archive server.

        Syd Weinstein
        elm@DSI.COM

        The patches are available from the dsinc archive server
        Send the following message to archive-server@DSI.COM for
        a list of available patches:

        Subject: patch list
        send index elm

>3)	Was it much effort?

As I said nope. :-)

BTW, for those people who may remember a posting of mine several months back 
bemoaning the fact that HP *still* ships a brain-dead version of sendmail, 
check out Neil Rickert's version of sendmail 5.65 with the IDA enhancements
available from uxc.cso.uiuc.edu in pub/sendmail-5.65+IDA-1.4.2.tar.Z

It compiles out of the box and has been tested under SR10.3.  Does MX stuff,
multi-token matching in the sendmail.cf etc etc.

It's great :-)

			ian
--
                Ian Hoyle
     /\/\       Image Processing & Computing Group
    / / /\      BHP Research - Melbourne Laboratories
   / / /  \     245 Wellington Rd, Mulgrave, 3170
  / / / /\ \    AUSTRALIA
  \ \/ / / /
   \  / / /     Phone   :  +61-3-560-7066
    \/\/\/      FAX     :  +61-3-561-6709
                E-mail  :  ianh@bhpmrl.oz.au

rpj@echo.canberra.edu.au (Ross Johnson) (02/05/91)

>In article <1067@eba.eb.ele.tue.nl> wjw@ebs.eb.ele.tue.nl (Willem Jan Withagen) writes:
>I'm trying to look into Elm (That's a set of mail tools).
>But before doing anything drastic, I would like to inquire on the net:
>1)	if there's anybody who has ported this baby to SR10.x 
>	(If it needed porting)
>2)	Where did he get the sources?
>3)	Was it much effort?

As others have said, it's straight forward. If you use Elm's "newmail"
utility for background notification of new mail then you'll want to
make some changes to the source. The supplied newmail holds your
mailboxes open permanently which means that on Apollos sendmail won't
be able to append new mail to them. The following diffs are relative to
Elm 2.3 PL11 and should fix that problem.

	Cheers,

+----------------------+---+
| Ross Johnson	       |   | E-Mail: rpj@ise.canberra.edu.au
| Info Sciences and Eng|___|
| University of Canberra   | UUCP  : uunet!munnari!ise.canberra.edu.au!rpj
| PO Box 1                 | JANET : rpj%au.edu.canberra.ise@EAN-RELAY
| Belconnen  ACT    2616   | BITNET: rpj%ise.canberra.edu.au@relay.cs.net
| AUSTRALIA                |
+--------------------------+

-------------------------------------snip-----------------------------------

*** newmail.c.old	Sun Dec 23 21:38:56 1990
--- newmail.c	Tue Dec 25 15:32:43 1990
***************
*** 83,88 ****
--- 83,89 ----
  #include <errno.h>
  #include <sys/types.h>
  #include <sys/stat.h>
+ #include <sys/file.h>
  
  #include "defs.h"
  
***************
*** 226,244 ****
  	    if (debug)
  	      printf("[checking folder #%d: %s]\n", i, folders[i].foldername);
  
! 	    if (folders[i].fd == (FILE *) NULL) {
! 
! 	      if ((folders[i].fd = fopen(folders[i].foldername,"r")) == NULL)
! 	        if (errno == EACCES) {
! 		   fprintf(stderr, "\nPermission to monitor %s denied!\n\n",
! 			 folders[i].foldername);
! 	           sleep(5);
! 	           exit(1);
! 	        }
  	    }
  
  	    if ((newsize = bytes(folders[i].foldername)) > 
  	        folders[i].filesize) {	/* new mail has arrived! */
  
  	      if (debug)
  	        printf(
--- 227,242 ----
  	    if (debug)
  	      printf("[checking folder #%d: %s]\n", i, folders[i].foldername);
  
! 	    if (access(folders[i].foldername,R_OK) == -1) {
! 	       fprintf(stderr, "\nPermission to monitor %s denied!\n\n",
! 			folders[i].foldername);
! 	       sleep(5);
! 	       exit(1);
  	    }
  
  	    if ((newsize = bytes(folders[i].foldername)) > 
  	        folders[i].filesize) {	/* new mail has arrived! */
+ 	      int retries;
  
  	      if (debug)
  	        printf(
***************
*** 245,250 ****
--- 243,268 ----
  		   "\tnew mail has arrived!  old size = %ld, new size=%ld\n",
  		   folders[i].filesize, newsize);
  
+ 	      /* The following retry loop is there just in case
+ 		 the folder is being updated just when we try to read
+ 		 from it. It tries 3 times to open it, with 5 seconds
+ 		 between attempts - then terminates newmail with a message.
+ 
+ 		 Hopefully other programs which access the folder
+ 		 will do likewise.
+ 	       */
+ 	      for (retries = 0;
+ 		   (folders[i].fd = fopen(folders[i].foldername,"r")) == NULL &&
+ 		    retries++ < 3;) {
+ 		 sleep(5);
+ 	      }
+ 	      if (folders[i].fd == NULL && errno == EACCES) {
+ 		 fprintf(stderr, "\nPermission to read %s denied!\n\n",
+ 			 folders[i].foldername);
+ 	         sleep(5);
+ 	         exit(1);
+ 	      }
+ 
  	      /* skip what we've read already... */
  
  	      if (fseek(folders[i].fd, folders[i].filesize, 
***************
*** 256,268 ****
  	      /* read and display new mail! */
  	      if (read_headers(i) && ! in_window)
  	        printf("\n\r");
  	    }
  	    else if (newsize != folders[i].filesize) {	/* file SHRUNK! */
  
  	      folders[i].filesize = bytes(folders[i].foldername);
- 	      (void) fclose(folders[i].fd);	/* close it and ...         */
- 	      folders[i].fd = (FILE *) NULL;	/* let's reopen the file    */
- 
  	      lastsize = folders[i].filesize;
  	      done     = 0;
  
--- 274,285 ----
  	      /* read and display new mail! */
  	      if (read_headers(i) && ! in_window)
  	        printf("\n\r");
+ 
+ 	      fclose(folders[i].fd);
  	    }
  	    else if (newsize != folders[i].filesize) {	/* file SHRUNK! */
  
  	      folders[i].filesize = bytes(folders[i].foldername);
  	      lastsize = folders[i].filesize;
  	      done     = 0;
  
***************
*** 708,714 ****
  
  	if (stat(name, &buffer) != 0)
  	  if (errno != 2) {
! 	    fprintf(stderr,"Error %d attempting fstat on %s", errno, name);
  	    exit(1);
  	  }
  	  else
--- 725,731 ----
  
  	if (stat(name, &buffer) != 0)
  	  if (errno != 2) {
! 	    fprintf(stderr,"Error %d attempting stat on %s", errno, name);
  	    exit(1);
  	  }
  	  else

rees@pisa.ifs.umich.edu (Jim Rees) (02/06/91)

In article <ianh.665705620@morgana>, ianh@bhpmrl.oz.au (Ian Hoyle) writes:

  BTW, for those people who may remember a posting of mine several months back 
  bemoaning the fact that HP *still* ships a brain-dead version of sendmail, 
  check out Neil Rickert's version of sendmail 5.65 with the IDA enhancements
  available from uxc.cso.uiuc.edu in pub/sendmail-5.65+IDA-1.4.2.tar.Z

I'm still using 5.61.  I can think of two problems you might have with
sendmail.  One is getting the load average (getla() in conf.c).  The other
is a subtle problem you may not realize you have.  Sendmail opens the alias
db for r/w.  This will fail if you have two sendmails both trying to run at
the same time on different nodes.  You can get a sendmail patched for both
these problems by ftp from maths.su.oz.au (last I checked).

jf@ap.co.umist.ac.uk (John Forrest) (02/08/91)

In article <4fa27167.1bc5b@pisa.ifs.umich.edu>, rees@pisa.ifs.umich.edu (Jim Rees) writes:
|> In article <ianh.665705620@morgana>, ianh@bhpmrl.oz.au (Ian Hoyle) writes:
|> 
|>   BTW, for those people who may remember a posting of mine several months back 
|>   bemoaning the fact that HP *still* ships a brain-dead version of sendmail, 
|>   check out Neil Rickert's version of sendmail 5.65 with the IDA enhancements
|>   available from uxc.cso.uiuc.edu in pub/sendmail-5.65+IDA-1.4.2.tar.Z
|> 
|> I'm still using 5.61.  I can think of two problems you might have with
|> sendmail.  One is getting the load average (getla() in conf.c).  The other
|> is a subtle problem you may not realize you have.  Sendmail opens the alias
|> db for r/w.  This will fail if you have two sendmails both trying to run at
|> the same time on different nodes.  You can get a sendmail patched for both
|> these problems by ftp from maths.su.oz.au (last I checked).

The getload function on this version has been adapted from the xload source -
not the previous sendmail version - and is thus far more reliable (give or
take the problems you occationally see with xload). As far as the alias file
is concerned, I don't think this is quite the same issue now. You have the
choice of either having to explicitly make an alias database with each change
(the standard practice) or having a directory for each machine (what we do).

John Forrest
Dept of Computation
UMIST

ianh@bhpmrl.oz.au (Ian Hoyle) (02/13/91)

jf@ap.co.umist.ac.uk (John Forrest) writes:

>In article <4fa27167.1bc5b@pisa.ifs.umich.edu>, rees@pisa.ifs.umich.edu (Jim Rees) writes:
>|> In article <ianh.665705620@morgana>, ianh@bhpmrl.oz.au (Ian Hoyle) writes:
>|> 
>|>   BTW, for those people who may remember a posting of mine several months back 
>|>   bemoaning the fact that HP *still* ships a brain-dead version of sendmail, 
>|>   check out Neil Rickert's version of sendmail 5.65 with the IDA enhancements
>|>   available from uxc.cso.uiuc.edu in pub/sendmail-5.65+IDA-1.4.2.tar.Z
>|> 
>|> I'm still using 5.61.  I can think of two problems you might have with
>|> sendmail.  One is getting the load average (getla() in conf.c).  The other
>|> is a subtle problem you may not realize you have.  Sendmail opens the alias
>|> db for r/w.  This will fail if you have two sendmails both trying to run at
>|> the same time on different nodes.  You can get a sendmail patched for both
>|> these problems by ftp from maths.su.oz.au (last I checked).

>The getload function on this version has been adapted from the xload source -
>not the previous sendmail version - and is thus far more reliable (give or
>take the problems you occationally see with xload). As far as the alias file
>is concerned, I don't think this is quite the same issue now. You have the
>choice of either having to explicitly make an alias database with each change
>(the standard practice) or having a directory for each machine (what we do).

Yep, the load average changes as mentioned by John seem to work fine on
Apollos. As far as the alias database problem goes, the patches from
maths.su.oz.au (by Jim Richardson of "netpower" fame :-) have been incorporated
into the sendmail 5.65 sources. [ NB all except for the change in deliver.c ].

5.65+IDA seems to be working well for me. That should be qualified with the
statement that we are a smallish site in terms of SMTP deliveries/sendmail
usage though.

		ian
--
                Ian Hoyle
     /\/\       Image Processing & Data Analysis Group
    / / /\      BHP Research - Melbourne Laboratories
   / / /  \     245 Wellington Rd, Mulgrave, 3170
  / / / /\ \    AUSTRALIA
  \ \/ / / /
   \  / / /     Phone   :  +61-3-560-7066
    \/\/\/      FAX     :  +61-3-561-6709
                E-mail  :  ianh@bhpmrl.oz.au