home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
majrdomo.zip
/
readme.os2
< prev
Wrap
Text File
|
1996-02-19
|
7KB
|
204 lines
MAJORDOMO for OS/2 - Ported by John Leonard, john.leonard@ce.gatech.edu
===========================================================================
FEATURES - This is a port of majordomo 1.93 to OS/2. The port
was made during August-Sept. 1995.
CHANGES - To get majordomo to run under OS/2, several major changes
were required. These include:
1) how majordomo processes it's configuration file (e.g., the "cat"
command hard-coded in majordomo was replaced with a "type" command.),
2) the temporary file directories were changed to OS/2 file names,
3) the file locking mechanism was modified. Most of the "io" file
checking that was added to version 1.93 was eliminated,
4) the shared file locking (shlock) stuff was disabled.
5) a bunch of other small changes that I don't recall as I write this...
I don't recall all the specific changes, and I'm sorry to say I didn't
document the changes very well. If someone has specific questions, please
email me, and I'll try to work through the problem with you.
REQUIREMENTS - The OS/2 machine must be running:
1) SENDMAIL.EXE
2) PERL 5.000 or later (available from hobbes.nmsu.edu)
LIMITATIONS - Because of limitations in the OS/2 sendmail.exe (1.3.14),
the archive feature of majordomo can not be implemented. I have not
experimented with digests, but I believe that they will not work also.
A revised version of majordomo that implements digests directly within
the majordomo code (rather than asking sendmail to send the message
to the archive script) would probably work.
While I don't recall all the details, I believe that the OS/2 sendmail
has problems processing multiple aliases when one of these
aliases is another "alias exec". Recall that majordomo implements the archive
feature by modifying the "aliases" file to send the email message to
both the uses in the "include" file, and to the archive routine
named "list-archive". OS/2 SENDMAIL doesn't like to perform an "exec" within
another "exec."
A new version sendmail.exe would fix the problem. I seem to recall that
OS/2 implements a very old port of "sendmail version 6." If someone
were to port a newer version, I believe that the archive feature would
begin to work.
This port does not clean up after itself, i.e., the SHLOCK files are
not deleted after use. I didn't have time to track this down, but welcome
INSTALLATION
------------
Several modifications to an OS/2 setup must be made to ensure proper
operation of majordomo. Here is a quick summary:
1) modify the SENDMAIL configuration file (usually SENDMAIL.UML) to
allow processing of the ALIASES file and use of "external programs"
2) installation of "OS2WRAP.EXE"
3) installation of majordomo, including creation of an ALIASES file
with appropropriate OS/2 calls to MAJORDOMO.
1 - MODIFICATIONS TO SENDMAIL.UML
----------------------------------
TCP/IP on OS/2 Warp Connect processes the SENDMAIL.UML file. To change
the sendmail configuration file that is being processed (or to locate the
exact file that your installation is processing, look in the "autostart"
section of the TCPIP configuration. To start the configuration program,
type "TCPCFG" at a command line. (Or type TCPIPCFG if using an older verion
of TCPIP.)
1.1 - Modification to allow processing of ALIASES file
---------------------------------------------------------
The following lines were taken from my SENDMAIL.UML file.
This sample shows how instruct sendmail to process the aliases file.
#
# Options
#
# ADDED by JL 7/31/1995
OAd:\tcpip\etc\aliases
1.2 - Modification to allow processing of external programs.
---------------------------------------------------------
Here is a copy of my SENDMAIL.UML. Note the addition of the "Mprog" item.
# SMTP, Local and Program Mailer specifications
#
Msmtp, P=[IPC], F=mDFMuX, S=10, R=0, A=IPC $h
#Mlocal, P=D:\TCPIP\UMAIL\UMAILER.EXE , F=lsm, S=10, R=0, A=-dest D:\TCPIP\UMAIL\Server\INBOX -to $u
#Mlocal, P=d:\tcpip\umail\umailer.exe, F=lsmDFP, S=10, R=0, A=-dest d:\tcpip\umail\server\inbox -to $u
#Mlocal, P=d:\tcpip\bin\mail.exe, F=lsDFP, S=10, R=20, A=d:\tcpip\etc\mail $u
#Mprog, P=xxx, A=Required by sendmail but unused
Mlocal, P=d:\tcpip\bin\mail.exe, F=lsmDFP, S=10, R=20, A=d:\tcpip\etc\mail $u
Mprog, P=d:\tcpip\etc\os2wrap.exe, F=lsDFM, S=10, R=20, A=/c $u
The OS/2 wrapper is VERY different from the standard wrapper program used
on UNIX boxes. OS/2 does not implement any type of file system security,
so most of the UNIX UID,GID stuff is not required.
However, OS/2 sendmail has a nasty bug that results in external programs to
be improperly processed. The OS2WRAP program fixes this problem.
2.0 - INSTALLATION OF OS2WRAP.EXE
---------------------------------------------------------
Copy the OS2WRAP.EXE program into the directory specified in the Mprog
statement of step 1.2 above. Here is the code to OS2WRAP.EXE:
#include <stdlib.h>
#include <io.h>
#include <malloc.h>
#include <process.h>
int main(int argc, char *argv[])
{
int i;
char **newargv;
for (i=2;i<255;i++) close(i);
newargv = malloc((argc+2) * sizeof (char *) );
newargv[0]=getenv("OS2_SHELL");
for (i=1;i<argc;i++) newargv[i] = argv[i];
newargv[argc] = NULL;
newargv[argc+1] = NULL;
execv(newargv[0],newargv);
/* never reached */
return 1;
}
3.0 - INSTALLATION OF MAJORDOMO
---------------------------------
Unzip the OS/2 archive files and follow the installation
procedure of the standard documentation (not included with
this OS/2 file.)
Here is an example of an ALIASES file:
#
# Majordomo
#
owner-owner: postmaster
owner-majordomo: postmaster
majordomo: "|d:\\majordomo\\bin\\majordomo"
majordom: owner-majordomo
majordomo-owner:owner-majordomo
john-print: "|d:\\tcpip\\bin\\lpr.exe -pibm40391 -straffic.ce.gatech.edu"
john-save: /archive
bbq: "|d:\\tcpip\\etc\\test.cmd"
#
# Practice List
#
owner-practice : john
practice: "|d:\\majordomo\\bin\\resend.cmd -l practice -h traffic.ce.gatech.edu practice-outgoing"
practice-approval: owner-practice
practice-outgoing: :include:d:/majordomo/lists/practice
#practice-outgoing: practice-archive
owner-practice-outgoing: owner-practice
practice-request: "|d:\\majordomo\\bin\\request-answer practice"
practice-archive: "|d:\\majordomo\\bin\\archive.cmd -f /majordomo/archives/practice/practice -m -a"
owner-practice-archive: owner-practice
-------------------------------------------------------------------
-------------------------------------------------------------------
This README.OS2 file was prepared rather quickly. I may have omitted
many major details. If you would like something clarified, please
contact me at JOHN.LEONARD@CE.GATECH.EDU.
JL
-----
John D. Leonard II, Assistant Professor Phone: 404/894-2360
School of Civil and Environmental Engineering FAX: 404/894-1742
Georgia Institute of Technology john.leonard@ce.gatech.edu
Atlanta, GA 30332-0355 http://traffic.ce.gatech.edu
PGP Public Key: finger traffic.ce.gatech.edu