home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume11 / mush5.7 / part01 / README < prev    next >
Encoding:
Text File  |  1987-09-16  |  7.9 KB  |  153 lines

  1. /* @(#)README    2.4    (c) copyright 10/28/86    (Dan Heller) */
  2.  
  3. Author:
  4.     Dan Heller
  5.  
  6. Network address:
  7.     island!argv@sun.com   or   argv@spam.istc.sri.com
  8.  
  9. Contained is the source for "Mail User's Shell" (MUSH), an interface
  10. for the sending, viewing and managing of electronic mail on UNIX(tm) systems.
  11. Redistribution of this code is permitted as long as all copyright notices
  12. remain intact and all other identifying notices remain in the code and
  13. in the binary.  This includes message headers on outgoing mail and
  14. the startup message.  Failing to adhere to this reflects on your poor
  15. sense of fair play and bad attitude -- you will probably fail in your
  16. social and business affairs with little honor and respect from your peers.
  17.  
  18. With that out of the way...
  19.  
  20. To install Mush on your system, find the file that most closely resembles
  21. "config.h" (probably "config.h-dist") COPY it to config.h, edit it to reflect
  22. the system dependencines described there.  Decide which makefile applies
  23. to you.  makefile.sun applies only to suns and creates a binary called
  24. "mush."  If the binary ends in "tool", then the graphics (tool) mode will
  25. be used by default on invocation. Otherwise, you must specify -t for toolmode
  26. on sun workstations.  The SUNTOOL define must be set in the makefile.sun
  27. in order to compile the suntools version.  You don't need to be running
  28. sunview; old sunwindows (2.0+) may be used.
  29.  
  30. If you're on a BSD system and it's not a sun workstation, or if you're on a
  31. sun workstation and know that you're not going to use the suntools mode then
  32. you should use makefile.bsd so that SUNTOOL won't be defined and unneccessary
  33. files not be compiled so the binary will be made smaller.
  34.  
  35. makefile.sys.v is for unix machines that are not running any flavor of
  36. BSD and probably running a system-v flavor of unix (Xenix, for example).
  37. This makefile has the define, SYSV to indicate system V unix.  Some older
  38. unix systems have SYSV defined in /usr/include/curses.h (which is used if
  39. you have CURSES defined in the makefile).  In most cases, these only
  40. generate annoying warning messages and does not effect the compilation
  41. of the code.
  42.  
  43. Mush was designed to use sendmail. However, other mail delivery subsystem have
  44. worked.  The mail delivery subsystem you use should be defined in config.h
  45. under the MAIL_DELIVERY macro define. By default, /usr/lib/sendmail -i
  46. is used -- the option, -i, tells sendmail not to exit on "." on a line
  47. by itself.  Mush will pick that up by itself if you want that option
  48. (read the man page).
  49.  
  50. If your mailer does NOT have a verbose option, then you should not have
  51. VERBOSE_ARG defined.  Otherwise, define it to be whatever the
  52. verbose argument is for your mailer.
  53.  
  54. Sendmail uses the -m argument to say, "metoo" -- when sending to mailing
  55. lists, normally sendmail will send mail to mailing lists, but if you're
  56. in that list, you are excluded from getting your own mail.  However, if
  57. you have the variable metoo set with your variables, then the METOO argument
  58. is passed to sendmail to say, "I know I'm on this mailing list, but send
  59. me a copy of my message even tho I sent it."  For sendmail, this is -m.
  60. If your mailer uses something else, then define METOO_ARG in the config file.
  61. If you don't have it (sys-v), then do not define this macro.
  62.  
  63. If you use "smail" and you're on a system-v small unix box, you might have
  64. to increase your stack size (see makefile.sys.v) to prevent stack overflow.
  65. You'll know you have to do this if you try sending mail (using smail as
  66. the mail delivery subsystem), mush core dumps and adb doesn't know where
  67. the stack pointer is.
  68.  
  69. VPRINTF should be defined if your system has the vprintf functions. You
  70. *have* these functions if 1) you are running system V (xenix) or 2) you
  71. are running a Sun release on or later than version 3.0.  If you are still not
  72. sure, try the following command from your shell:
  73.  
  74. % ar t /lib/libc.a | grep vprintf
  75.  
  76. If you have it, you'll probably get something like
  77. vprintf.o
  78. vsprintf.o
  79. as output.  If you don't have it, you won't have any output.  If your
  80. main C-libraries are not in /lib/libc.a, then find where they are and
  81. try the same command using that file.
  82.  
  83. A default mailrc should be installed for new users.  UCB mail's default
  84. Mailrc works but no mailrc works as well. The location of the default
  85. file should be defined in config.h.  To have no default mailrc, set the
  86. default to /dev/null.  For sun systems, the default .mailrc (/usr/lib/Mailrc)
  87. does not work very well because sun's Mail is not standard /usr/ucb/Mail.
  88. For this reason, sun has not changed the default mailrc file and still
  89. resides in /usr/lib/Mail.rc (note this has the "." whereas the other file
  90. does not).  The default config.h-dist reflects this.
  91.  
  92. The help files should be placed somewhere which is readable and accessible
  93. by all. Failing to do so removes virtually the entire help facility's
  94. ability to help anyone.  There is a help file for command help ( `command -?'),
  95. and the other is for the graphics mode (Sun workstations only).  You should
  96. define where you want these files in "config.h" so at runtime, they can be
  97. accessed without error.
  98.  
  99. The default settings in config.h may be documented as the default values
  100. in the help files.  Be aware that changing some default values may cause
  101. inconsistencies with the help files and documentation.
  102.  
  103. If your system has *sys_siglist[], skip this paragraph.  If it doesn't,
  104. or if your system has a non-standard list, you should edit signals.c at
  105. the top and build the table manually from the one given for System-V people.
  106. Note that most system-v unix systems need not change anything as long as
  107. SYSV is defined.
  108.  
  109. Maintenance:
  110.  
  111. If you want to use dbx or any other debugger, the undocumented flag, -e
  112. should be used as command line argument when you run the binary under
  113. the debugger.  What this flag does is prevents your echo from being
  114. turned off and leaving cbreak on, thus, keeping your tty in a sane state.
  115. Beware of curses mode tho, since it must be turned off for that -- e.g.
  116. the -e flag is overridden if you enter curses mode.  The -e flag can be
  117. used in general usage anyway, but there's no difference known to the user
  118. except for the fact that you can not type control characters.
  119.  
  120. If you have memory allocation checking and validation (sun 3.0+ ?) then
  121. define M_DEBUG in the makefile (main.c) and add the library
  122. /usr/lib/debug/malloc.o to the library list. Do this only if you are
  123. find bugs in the program and suspect memory allocation errors. main.c
  124. has the code which sets the debugging level according to the value of
  125. an environment variable.  Because malloc-debugging is so cpu intensive,
  126. the sunwindows program will get a SIGXCPU (cpu time limit exceeded)
  127. because of the large amount of opening and closing large pixrects and
  128. devices.  For this reason, SIGXPCPU is is caught in main.c.
  129.  
  130. If you ever get "Message N has bad date: <date string>" then note
  131. the FORMAT of that date and edit dates.c.  There are a number of
  132. "sscanf"s which you can see match known date formats.  Use them as
  133. examples and insert the new date format you have.
  134.  
  135. If you ever add new variables, be sure to add them in viewopts.c and the
  136. man page.
  137.  
  138. If Mush ever coredumps and you are suspicious about whether or not
  139. your folder (or spool directory) was removed.  Or, if you were editing
  140. a letter, you should check for the files .mushXXXXXX and .edXXXXXXX.
  141. Mush won't die without telling you that it's dying and it will ask if you
  142. want to save the .mush????? file and if you actually want it to dump core.
  143. Note that if you run mush from .suntools and there is a core dump, it
  144. probably wants to do some IO with the console and may hang (not exit)
  145. because it doesn't know it can't talk to you.
  146.  
  147. Last attempted, mush passed lint with a small number of errors indicating
  148. that fflush, fclose and other similar functions returned values which
  149. were always ignored.  Sorry.  I did not attempt lint on the suntools mode.
  150. Curses doesn't lint very well, but even when you lint mush with CURSES
  151. defined, it only complains about the unused curses globals in curses.h;
  152. don't let it discourage you.
  153.