home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / majrdomo.zip / readme.os2 < prev   
Text File  |  1996-02-19  |  7KB  |  204 lines

  1. MAJORDOMO for OS/2 - Ported by John Leonard, john.leonard@ce.gatech.edu
  2. ===========================================================================
  3.  
  4. FEATURES - This is a port of majordomo 1.93 to OS/2.  The port
  5.   was made during August-Sept. 1995.
  6.  
  7. CHANGES - To get majordomo to run under OS/2, several major changes
  8.   were required.  These include:
  9.  
  10.   1) how majordomo processes it's configuration file (e.g., the "cat" 
  11.      command hard-coded in majordomo was replaced with a "type" command.),
  12.   2) the temporary file directories were changed to OS/2 file names,
  13.   3) the file locking mechanism was modified.  Most of the "io" file
  14.      checking that was added to version 1.93 was eliminated,
  15.   4) the shared file locking (shlock) stuff was disabled.
  16.   5) a bunch of other small changes that I don't recall as I write this...
  17.  
  18.   I don't recall all the specific changes, and I'm sorry to say I didn't 
  19.   document the changes very well.  If someone has specific questions, please
  20.   email me, and I'll try to work through the problem with you.
  21.  
  22. REQUIREMENTS - The OS/2 machine must be running:
  23.  
  24.   1) SENDMAIL.EXE
  25.   2) PERL 5.000 or later (available from hobbes.nmsu.edu)
  26.  
  27. LIMITATIONS - Because of limitations in the OS/2 sendmail.exe (1.3.14),
  28.   the archive feature of majordomo can not be implemented.  I have not
  29.   experimented with digests, but I believe that they will not work also.
  30.   A revised version of majordomo that implements digests directly within
  31.   the majordomo code (rather than asking sendmail to send the message
  32.   to the archive script) would probably work.
  33.  
  34. While I don't recall all the details, I believe that the OS/2 sendmail
  35. has problems processing multiple aliases when one of these
  36. aliases is another "alias exec".  Recall that majordomo implements the archive
  37. feature by modifying the "aliases" file to send the email message to 
  38. both the uses in the "include" file, and to the archive routine
  39. named "list-archive".  OS/2 SENDMAIL doesn't like to perform an "exec" within
  40. another "exec."
  41.  
  42. A new version sendmail.exe would fix the problem.  I seem to recall that
  43. OS/2 implements a very old port of "sendmail version 6."  If someone
  44. were to port a newer version, I believe that the archive feature would
  45. begin to work.
  46.  
  47. This port does not clean up after itself, i.e., the SHLOCK files are
  48. not deleted after use.  I didn't have time to track this down, but welcome
  49.  
  50.  
  51. INSTALLATION
  52. ------------
  53.  
  54. Several modifications to an OS/2 setup must be made to ensure proper
  55. operation of majordomo.  Here is a quick summary:
  56.  
  57. 1) modify the SENDMAIL configuration file (usually SENDMAIL.UML) to
  58.    allow processing of the ALIASES file and use of "external programs"
  59.  
  60. 2) installation of "OS2WRAP.EXE"
  61.  
  62. 3) installation of majordomo, including creation of an ALIASES file 
  63.    with appropropriate OS/2 calls to MAJORDOMO.
  64.  
  65.  
  66. 1 - MODIFICATIONS TO SENDMAIL.UML
  67. ----------------------------------
  68.  
  69. TCP/IP on OS/2 Warp Connect processes the SENDMAIL.UML file.  To change
  70. the sendmail configuration file that is being processed (or to locate the
  71. exact file that your installation is processing, look in the "autostart"
  72. section of the TCPIP configuration.  To start the configuration program,
  73. type "TCPCFG" at a command line.  (Or type TCPIPCFG if using an older verion
  74. of TCPIP.)
  75.  
  76.  
  77. 1.1 - Modification to allow processing of ALIASES file
  78. ---------------------------------------------------------
  79.  
  80. The following lines were taken from my SENDMAIL.UML file.  
  81. This sample shows how instruct sendmail to process the aliases file.
  82. #
  83. # Options
  84. #
  85. # ADDED by JL 7/31/1995
  86. OAd:\tcpip\etc\aliases
  87.  
  88.  
  89. 1.2 - Modification to allow processing of external programs.
  90. ---------------------------------------------------------
  91.  
  92. Here is a copy of my SENDMAIL.UML.  Note the addition of the "Mprog" item.  
  93.  
  94. # SMTP, Local and Program Mailer specifications
  95. #
  96. Msmtp,    P=[IPC], F=mDFMuX, S=10, R=0, A=IPC $h
  97. #Mlocal, P=D:\TCPIP\UMAIL\UMAILER.EXE , F=lsm, S=10, R=0, A=-dest D:\TCPIP\UMAIL\Server\INBOX -to $u
  98. #Mlocal, P=d:\tcpip\umail\umailer.exe, F=lsmDFP,  S=10, R=0, A=-dest d:\tcpip\umail\server\inbox -to $u
  99. #Mlocal, P=d:\tcpip\bin\mail.exe,  F=lsDFP,  S=10, R=20, A=d:\tcpip\etc\mail $u
  100. #Mprog,    P=xxx, A=Required by sendmail but unused
  101.  
  102. Mlocal, P=d:\tcpip\bin\mail.exe, F=lsmDFP,  S=10, R=20, A=d:\tcpip\etc\mail $u
  103. Mprog,  P=d:\tcpip\etc\os2wrap.exe, F=lsDFM,  S=10, R=20, A=/c $u
  104.  
  105. The OS/2 wrapper is VERY different from the standard wrapper program used
  106. on UNIX boxes.  OS/2 does not implement any type of file system security,
  107. so most of the UNIX UID,GID stuff is not required.
  108.  
  109. However, OS/2 sendmail has a nasty bug that results in external programs to
  110. be improperly processed.  The OS2WRAP program fixes this problem.
  111.  
  112.  
  113. 2.0 - INSTALLATION OF OS2WRAP.EXE
  114. ---------------------------------------------------------
  115.  
  116. Copy the OS2WRAP.EXE program into the directory specified in the Mprog 
  117. statement of step 1.2 above.  Here is the code to OS2WRAP.EXE:
  118.  
  119. #include <stdlib.h>
  120. #include <io.h>
  121. #include <malloc.h>
  122. #include <process.h>
  123.  
  124. int main(int argc, char *argv[])
  125. {
  126.   int i;
  127.   char **newargv;
  128.  
  129.   for (i=2;i<255;i++) close(i);
  130.  
  131.   newargv = malloc((argc+2) * sizeof (char *) );
  132.  
  133.   newargv[0]=getenv("OS2_SHELL");
  134.   for (i=1;i<argc;i++) newargv[i] = argv[i];
  135.   newargv[argc] = NULL;
  136.   newargv[argc+1] = NULL;
  137.   execv(newargv[0],newargv);
  138.  
  139.   /* never reached */
  140.   return 1;
  141. }
  142.  
  143.  
  144. 3.0 - INSTALLATION OF MAJORDOMO
  145. ---------------------------------
  146.  
  147. Unzip the OS/2 archive files and follow the installation
  148. procedure of the standard documentation (not included with
  149. this OS/2 file.)
  150.  
  151. Here is an example of an ALIASES file:
  152.  
  153. #
  154. # Majordomo
  155. #
  156.  
  157. owner-owner: postmaster
  158. owner-majordomo: postmaster
  159. majordomo: "|d:\\majordomo\\bin\\majordomo"
  160.  
  161. majordom: owner-majordomo
  162. majordomo-owner:owner-majordomo
  163.  
  164. john-print: "|d:\\tcpip\\bin\\lpr.exe -pibm40391 -straffic.ce.gatech.edu"
  165.  
  166. john-save: /archive
  167.  
  168. bbq: "|d:\\tcpip\\etc\\test.cmd"
  169.  
  170.  
  171. #
  172. # Practice List
  173. #
  174.  
  175. owner-practice : john
  176.  
  177. practice: "|d:\\majordomo\\bin\\resend.cmd -l practice -h traffic.ce.gatech.edu practice-outgoing"
  178.  
  179. practice-approval: owner-practice
  180. practice-outgoing: :include:d:/majordomo/lists/practice
  181. #practice-outgoing: practice-archive
  182.  
  183. owner-practice-outgoing: owner-practice
  184.  
  185. practice-request: "|d:\\majordomo\\bin\\request-answer practice"
  186. practice-archive: "|d:\\majordomo\\bin\\archive.cmd -f /majordomo/archives/practice/practice -m -a"
  187.  
  188. owner-practice-archive: owner-practice
  189.  
  190.  
  191. -------------------------------------------------------------------
  192. -------------------------------------------------------------------
  193. This README.OS2 file was prepared rather quickly.  I may have omitted
  194. many major details.  If you would like something clarified, please
  195. contact me at JOHN.LEONARD@CE.GATECH.EDU.
  196.  
  197. JL
  198. -----
  199. John D. Leonard II, Assistant Professor             Phone: 404/894-2360
  200. School of Civil and Environmental Engineering         FAX: 404/894-1742
  201. Georgia Institute of Technology              john.leonard@ce.gatech.edu
  202. Atlanta, GA  30332-0355                    http://traffic.ce.gatech.edu
  203.              PGP Public Key: finger traffic.ce.gatech.edu
  204.