home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume41 / mailagnt / patch03 < prev    next >
Encoding:
Text File  |  1993-12-19  |  23.8 KB  |  845 lines

  1. Newsgroups: comp.sources.misc
  2. From: Raphael Manfredi <ram@acri.fr>
  3. Subject: v41i047:  mailagent - Flexible mail filtering and processing package, v3.0, Patch03
  4. Message-ID: <1993Dec19.214021.4700@sparky.sterling.com>
  5. X-Md4-Signature: 47afdb59d1e777a82a1f6613c695d705
  6. Sender: kent@sparky.sterling.com (Kent Landfield)
  7. Organization: Advanced Computer Research Institute, Lyon, France
  8. Date: Sun, 19 Dec 1993 21:40:21 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: Raphael Manfredi <ram@acri.fr>
  12. Posting-number: Volume 41, Issue 47
  13. Archive-name: mailagent/patch03
  14. Environment: UNIX, Perl
  15. Patch-To: mailagent: Volume 41, Issue 1-26
  16.  
  17. [The latest patch for mailagent version 3.0 is #3.]
  18.  
  19. System: mailagent version 3.0
  20. Patch #: 3
  21. Priority: LOW
  22. Subject: updated Configure with new metaconfig
  23. Subject: now mentions that at least perl 4.0 PL36 is required
  24. Subject: typo and minor fixes
  25. Subject: log mesages were not emitted correctly
  26. Subject: now force . into PATH for msend/nsend
  27. Subject: extra closing single quote removed (was there since 2.9 PL0)
  28. Subject: now make sure that filter.lock has correct timestamp
  29. Date: Wed Dec 15 10:07:10 MET 1993
  30. From: Raphael Manfredi <ram@acri.fr>
  31.  
  32. Description:
  33.     README file now mentions that at least perl 4.0 PL36 is required,
  34.     otherwise some tests in the regression test suite will hang or
  35.     fail mysteriously...
  36.  
  37.     Fixed typo and minor bugs in manual page.
  38.  
  39.     Log mesages were not emitted correctly when saving to an MH
  40.     folder and an error occurred.
  41.  
  42.     The TEST wrapper now forces . into PATH for msend/nsend
  43.     (for tests like cmd/message or cmd/post).
  44.  
  45.     Extra closing single quote removed in the agent/test/action
  46.     rule file (was there since 2.9 PL0). Congratulations to
  47.     Shigeya Suzuki <shigeya@foretune.co.jp> who spotted it!
  48.  
  49.     Now make sure that filter.lock has correct timestamp by
  50.     removing it and recreating a new one (basic/filter test).
  51.  
  52.  
  53. Fix:    From rn, say "| patch -p -N -d DIR", where DIR is your mailagent source
  54.     directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".
  55.     If you don't have the patch program, apply the following by hand,
  56.     or get patch (version 2.0, latest patchlevel).
  57.  
  58.     After patching:
  59.         Configure -ders
  60.         make depend
  61.         make
  62.         make install
  63.         make install.man
  64.  
  65.     If patch indicates that patchlevel is the wrong version, you may need
  66.     to apply one or more previous patches, or the patch may already
  67.     have been applied.  See the patchlevel.h file to find out what has or
  68.     has not been applied.  In any event, don't continue with the patch.
  69.  
  70.     If you are missing previous patches they can be obtained from me:
  71.  
  72.         Raphael Manfredi <ram@acri.fr>
  73.  
  74.     If you send a mail message of the following form it will greatly speed
  75.     processing:
  76.  
  77.         Subject: Command
  78.         @SH mailpatch PATH mailagent 3.0 LIST
  79.                ^ note the c
  80.  
  81.     where PATH is a return path FROM ME TO YOU either in Internet notation,
  82.     or in bang notation from some well-known host, and LIST is the number
  83.     of one or more patches you need, separated by spaces, commas, and/or
  84.     hyphens.  Saying 35- says everything from 35 to the end.
  85.  
  86.     To get some more detailed instructions, send me the following mail:
  87.  
  88.         Subject: Command
  89.         @SH mailhelp PATH
  90.  
  91.  
  92. Index: patchlevel.h
  93. Prereq: 2
  94. 4c4
  95. < #define PATCHLEVEL 2
  96. ---
  97. > #define PATCHLEVEL 3
  98.  
  99. Index: Configure
  100. Prereq: 3.0.1.1
  101. *** Configure.old    Wed Dec 15 10:06:59 1993
  102. --- Configure    Wed Dec 15 10:07:00 1993
  103. ***************
  104. *** 18,26 ****
  105.   # archive site. Check with Archie if you don't know where that can be.)
  106.   #
  107.   
  108. ! # $Id: Configure,v 3.0.1.1 1993/11/29 16:43:28 ram Exp $
  109.   #
  110. ! # Generated on Mon Nov 29 17:39:26 MET 1993 [metaconfig 3.0 PL14]
  111.   
  112.   cat >/tmp/c1$$ <<EOF
  113.   ARGGGHHHH!!!!!
  114. --- 18,26 ----
  115.   # archive site. Check with Archie if you don't know where that can be.)
  116.   #
  117.   
  118. ! # $Id: Configure,v 3.0.1.2 1993/12/15 09:02:26 ram Exp $
  119.   #
  120. ! # Generated on Wed Dec 15 09:55:57 MET 1993 [metaconfig 3.0 PL15]
  121.   
  122.   cat >/tmp/c1$$ <<EOF
  123.   ARGGGHHHH!!!!!
  124. ***************
  125. *** 52,57 ****
  126. --- 52,58 ----
  127.   PATH=$PATH:'/sys5.3/bin:/sys5.3/usr/bin:/bsd4.3/bin:/bsd4.3/usr/ucb'
  128.   PATH=$PATH:'/bsd4.3/usr/bin:/usr/bsd:/bsd43/bin:/usr/ccs/bin'
  129.   PATH=$PATH:'/etc:/usr/lib:/usr/ucblib:/lib:/usr/ccs/lib'
  130. + PATH=$PATH:'/sbin:/usr/sbin:/usr/libexec'
  131.   export PATH
  132.   
  133.   if test ! -t 0; then
  134. ***************
  135. *** 178,184 ****
  136. --- 179,187 ----
  137.   cf_by=''
  138.   cf_time=''
  139.   contains=''
  140. + cpplast=''
  141.   cppminus=''
  142. + cpprun=''
  143.   cppstdin=''
  144.   d_bcopy=''
  145.   d_flock=''
  146. ***************
  147. *** 414,420 ****
  148.       -s) shift; silent=true;;
  149.       -E) shift; alldone=exit;;
  150.       -S) shift; extractsh=true;;
  151. !     -V) echo "Configure generated by metaconfig 3.0 PL14." >&2
  152.           exit 0;;
  153.       --) break;;
  154.       -*) echo "Configure: unknown option $1" >&2; shift; error=true;;
  155. --- 417,423 ----
  156.       -s) shift; silent=true;;
  157.       -E) shift; alldone=exit;;
  158.       -S) shift; extractsh=true;;
  159. !     -V) echo "Configure generated by metaconfig 3.0 PL15." >&2
  160.           exit 0;;
  161.       --) break;;
  162.       -*) echo "Configure: unknown option $1" >&2; shift; error=true;;
  163. ***************
  164. *** 489,495 ****
  165.   fi
  166.   
  167.   : list of known cpp symbols
  168. ! attrlist="__alpha DGUX M_I186 M_I286 M_I386 M_I8086 M_XENIX UTS __DGUX__"
  169.   attrlist="$attrlist _AIX __STDC__ __m88k__ ansi bsd4_2 gcos gimpel"
  170.   attrlist="$attrlist hp9000s300 hp9000s400 hp9000s500 hp9000s700"
  171.   attrlist="$attrlist hp9000s800 hpux"
  172. --- 492,499 ----
  173.   fi
  174.   
  175.   : list of known cpp symbols
  176. ! attrlist="__alpha __bsdi__ BSD_NET2 DGUX M_I186 M_I286 M_I386"
  177. ! attrlist="$attrlist M_I8086 M_XENIX UTS __DGUX__"
  178.   attrlist="$attrlist _AIX __STDC__ __m88k__ ansi bsd4_2 gcos gimpel"
  179.   attrlist="$attrlist hp9000s300 hp9000s400 hp9000s500 hp9000s700"
  180.   attrlist="$attrlist hp9000s800 hpux"
  181. ***************
  182. *** 1078,1084 ****
  183.   case "$ans" in
  184.       y*) d_portable="$define"
  185.       for file in $loclist $trylist; do
  186. !         eval $file="\$_$file"
  187.       done
  188.       ;;
  189.       *)  d_portable="$undef" ;;
  190. --- 1082,1088 ----
  191.   case "$ans" in
  192.       y*) d_portable="$define"
  193.       for file in $loclist $trylist; do
  194. !         eval $file="\$file"
  195.       done
  196.       ;;
  197.       *)  d_portable="$undef" ;;
  198. ***************
  199. *** 2518,2583 ****
  200.   echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
  201.   chmod 755 cppstdin
  202.   wrapper=`pwd`/cppstdin
  203.   cd UU
  204.   if $test "X$cppstdin" != "X" && \
  205.       $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
  206. !     $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  207.       echo "You used to use $cppstdin $cppminus so we'll use that again."
  208. ! elif $test "$cc" = gcc && \
  209. !     (echo "Using gcc, eh?  We'll try to force gcc -E using a wrapper..."; \
  210. !     $wrapper <testcpp.c >testcpp.out 2>&1; \
  211. !     $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1) ; then
  212. !     echo "Yup, we can."
  213. !     cppstdin="$wrapper"
  214. !     cppminus='';
  215.   elif echo 'Maybe "'"$cc"' -E" will work...'; \
  216.       $cc -E <testcpp.c >testcpp.out 2>&1; \
  217.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  218.       echo "Yup, it does."
  219. !     cppstdin="$cc -E"
  220. !     cppminus='';
  221.   elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
  222.       $cc -E - <testcpp.c >testcpp.out 2>&1; \
  223.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  224.       echo "Yup, it does."
  225. !     cppstdin="$cc -E"
  226. !     cppminus='-';
  227. ! elif echo 'No such luck, maybe "'$cpp'" will work...'; \
  228. !     $cpp <testcpp.c >testcpp.out 2>&1; \
  229. !     $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  230. !     echo "It works!"
  231. !     cppstdin="$cpp"
  232. !     cppminus='';
  233. ! elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
  234. !     $cpp - <testcpp.c >testcpp.out 2>&1; \
  235. !     $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  236. !     echo "Hooray, it works!  I was beginning to wonder."
  237. !     cppstdin="$cpp"
  238. !     cppminus='-';
  239.   elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
  240.       $cc -P <testcpp.c >testcpp.out 2>&1; \
  241.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  242.       echo "Yipee, that works!"
  243. !     cppstdin="$cc -P"
  244. !     cppminus='';
  245.   elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
  246.       $cc -P - <testcpp.c >testcpp.out 2>&1; \
  247.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  248.       echo "At long last!"
  249. !     cppstdin="$cc -P"
  250. !     cppminus='-';
  251.   elif echo 'Uh-uh.  Time to get fancy.  Trying a wrapper...'; \
  252.       $wrapper <testcpp.c >testcpp.out 2>&1; \
  253.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  254. !     cppstdin="$wrapper"
  255. !     cppminus=''
  256.       echo "Eureka!"
  257.   else
  258.       dflt=''
  259.       rp="No dice.  I can't find a C preprocessor.  Name one:"
  260.       . ./myread
  261. !     cppstdin="$ans"
  262. !     $cppstdin <testcpp.c >testcpp.out 2>&1
  263.       if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  264.           echo "OK, that will do." >&4
  265.       else
  266. --- 2522,2608 ----
  267.   echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin
  268.   chmod 755 cppstdin
  269.   wrapper=`pwd`/cppstdin
  270. + ok='false'
  271.   cd UU
  272.   if $test "X$cppstdin" != "X" && \
  273.       $cppstdin $cppminus <testcpp.c >testcpp.out 2>&1 && \
  274. !     $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
  275. ! then
  276.       echo "You used to use $cppstdin $cppminus so we'll use that again."
  277. !     case "$cpprun" in
  278. !     '') echo "But let's see if we can live without a wrapper..." ;;
  279. !     *)
  280. !         if $cpprun $cpplast <testcpp.c >testcpp.out 2>&1 && \
  281. !             $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
  282. !         then
  283. !             echo "(And we'll use $cpprun $cpplast to preprocess directly.)"
  284. !             ok='true'
  285. !         else
  286. !             echo "(However, $cpprun $cpplast does not work, let's see...)"
  287. !         fi
  288. !         ;;
  289. !     esac
  290. ! else
  291. !     case "$cppstdin" in
  292. !     '') ;;
  293. !     *)
  294. !         echo "Good old $cppstdin $cppminus does not seem to be of any help..."
  295. !         ;;
  296. !     esac
  297. ! fi
  298. ! if $ok; then
  299. !     : nothing
  300.   elif echo 'Maybe "'"$cc"' -E" will work...'; \
  301.       $cc -E <testcpp.c >testcpp.out 2>&1; \
  302.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  303.       echo "Yup, it does."
  304. !     x_cpp="$cc -E"
  305. !     x_minus='';
  306.   elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \
  307.       $cc -E - <testcpp.c >testcpp.out 2>&1; \
  308.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  309.       echo "Yup, it does."
  310. !     x_cpp="$cc -E"
  311. !     x_minus='-';
  312.   elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \
  313.       $cc -P <testcpp.c >testcpp.out 2>&1; \
  314.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  315.       echo "Yipee, that works!"
  316. !     x_cpp="$cc -P"
  317. !     x_minus='';
  318.   elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \
  319.       $cc -P - <testcpp.c >testcpp.out 2>&1; \
  320.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  321.       echo "At long last!"
  322. !     x_cpp="$cc -P"
  323. !     x_minus='-';
  324. ! elif echo 'No such luck, maybe "'$cpp'" will work...'; \
  325. !     $cpp <testcpp.c >testcpp.out 2>&1; \
  326. !     $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  327. !     echo "It works!"
  328. !     x_cpp="$cpp"
  329. !     x_minus='';
  330. ! elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \
  331. !     $cpp - <testcpp.c >testcpp.out 2>&1; \
  332. !     $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  333. !     echo "Hooray, it works!  I was beginning to wonder."
  334. !     x_cpp="$cpp"
  335. !     x_minus='-';
  336.   elif echo 'Uh-uh.  Time to get fancy.  Trying a wrapper...'; \
  337.       $wrapper <testcpp.c >testcpp.out 2>&1; \
  338.       $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  339. !     x_cpp="$wrapper"
  340. !     x_minus=''
  341.       echo "Eureka!"
  342.   else
  343.       dflt=''
  344.       rp="No dice.  I can't find a C preprocessor.  Name one:"
  345.       . ./myread
  346. !     x_cpp="$ans"
  347. !     x_minus=''
  348. !     $x_cpp <testcpp.c >testcpp.out 2>&1
  349.       if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then
  350.           echo "OK, that will do." >&4
  351.       else
  352. ***************
  353. *** 2585,2590 ****
  354. --- 2610,2647 ----
  355.           exit 1
  356.       fi
  357.   fi
  358. + case "$ok" in
  359. + false)
  360. +     cppstdin="$x_cpp"
  361. +     cppminus="$x_minus"
  362. +     cpprun="$x_cpp"
  363. +     cpplast="$x_minus"
  364. +     set X $x_cpp
  365. +     shift
  366. +     case "$1" in
  367. +     "$cpp")
  368. +         echo "Perhaps can we force $cc -E using a wrapper..."
  369. +         if $wrapper <testcpp.c >testcpp.out 2>&1; \
  370. +             $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1
  371. +         then
  372. +             echo "Yup, we can."
  373. +             cppstdin="$wrapper"
  374. +             cppminus='';
  375. +         else
  376. +             echo "Nope, we'll have to live without it..."
  377. +         fi
  378. +         ;;
  379. +     esac
  380. +     case "$cpprun" in
  381. +     "$wrapper")
  382. +         cpprun=''
  383. +         cpplast=''
  384. +         ;;
  385. +     esac
  386. +     ;;
  387. + esac
  388.   case "$cppstdin" in
  389.   "$wrapper") ;;
  390.   *) $rm -f $wrapper;;
  391. ***************
  392. *** 3158,3164 ****
  393.   
  394.   : determine where mail is spooled
  395.   case "$maildir" in
  396. ! '') dflt=`./loc . /usr/spool/mail /usr/spool/mail /usr/mail`;;
  397.   *) dflt="$maildir";;
  398.   esac
  399.   echo " "
  400. --- 3215,3221 ----
  401.   
  402.   : determine where mail is spooled
  403.   case "$maildir" in
  404. ! '') dflt=`./loc . /usr/spool/mail /usr/spool/mail /usr/mail /var/mail`;;
  405.   *) dflt="$maildir";;
  406.   esac
  407.   echo " "
  408. ***************
  409. *** 3201,3207 ****
  410.   : determine where mail is spooled
  411.   case "$mailfile" in
  412.   '')
  413. !     dflt=`./loc . XXX /usr/spool/mail /usr/mail`
  414.       case "$dflt" in
  415.       XXX) dflt='%~/mailbox';;
  416.       *) dflt="$dflt/%L";;
  417. --- 3258,3264 ----
  418.   : determine where mail is spooled
  419.   case "$mailfile" in
  420.   '')
  421. !     dflt=`./loc . XXX /usr/spool/mail /usr/mail /var/mail`
  422.       case "$dflt" in
  423.       XXX) dflt='%~/mailbox';;
  424.       *) dflt="$dflt/%L";;
  425. ***************
  426. *** 3265,3270 ****
  427. --- 3322,3328 ----
  428.   do
  429.       $cpp -M -I. $cppflags \$flags \$srcfile 2>/dev/null
  430.   done
  431. + exit 0
  432.   EOM
  433.       mkdep=$toplev/mkdep
  434.       chmod +x $mkdep
  435. ***************
  436. *** 3288,3293 ****
  437. --- 3346,3352 ----
  438.   do
  439.       $cc -MM -I. $cppflags \$flags \$srcfile 2>/dev/null
  440.   done
  441. + exit 0
  442.   EOM
  443.       mkdep=$toplev/mkdep
  444.       chmod +x $mkdep
  445. ***************
  446. *** 3322,3327 ****
  447. --- 3381,3387 ----
  448.           -e 's|: *$|: '\$srcfile'|' | \\
  449.       $grep -v '^#' | $sort | $uniq
  450.   done
  451. + exit 0
  452.   EOS
  453.       mkdep=$toplev/mkdep
  454.       chmod +x $mkdep
  455. ***************
  456. *** 3383,3388 ****
  457. --- 3443,3449 ----
  458.       IFS=' '
  459.       $rm -f /tmp/mkdep\$\$
  460.   done
  461. + exit 0
  462.   EOS
  463.           mkdep=$toplev/mkdep
  464.           chmod +x $mkdep
  465. ***************
  466. *** 4234,4240 ****
  467. --- 4295,4303 ----
  468.   cf_by='$cf_by'
  469.   cf_time='$cf_time'
  470.   contains='$contains'
  471. + cpplast='$cpplast'
  472.   cppminus='$cppminus'
  473. + cpprun='$cpprun'
  474.   cppstdin='$cppstdin'
  475.   d_bcopy='$d_bcopy'
  476.   d_flock='$d_flock'
  477.  
  478. Index: agent/man/mailagent.SH
  479. Prereq: 3.0
  480. *** agent/man/mailagent.SH.old    Wed Dec 15 10:07:04 1993
  481. --- agent/man/mailagent.SH    Wed Dec 15 10:07:05 1993
  482. ***************
  483. *** 20,26 ****
  484.   .TH MAILAGENT $manext "Version $VERSION PL$PATCHLEVEL"
  485.   ''' @(#) Manual page for mailagent's filter -- (c) ram February 1991
  486.   '''
  487. ! ''' $Id: mailagent.SH,v 3.0 1993/11/29 13:48:27 ram Exp $
  488.   '''
  489.   '''  Copyright (c) 1990-1993, Raphael Manfredi
  490.   '''  
  491. --- 20,26 ----
  492.   .TH MAILAGENT $manext "Version $VERSION PL$PATCHLEVEL"
  493.   ''' @(#) Manual page for mailagent's filter -- (c) ram February 1991
  494.   '''
  495. ! ''' $Id: mailagent.SH,v 3.0.1.1 1993/12/15 09:03:44 ram Exp $
  496.   '''
  497.   '''  Copyright (c) 1990-1993, Raphael Manfredi
  498.   '''  
  499. ***************
  500. *** 31,36 ****
  501. --- 31,39 ----
  502.   '''  of the source tree for mailagent 3.0.
  503.   '''
  504.   ''' $Log: mailagent.SH,v $
  505. + ''' Revision 3.0.1.1  1993/12/15  09:03:44  ram
  506. + ''' patch3: typo and minor fixes
  507. + '''
  508.   ''' Revision 3.0  1993/11/29  13:48:27  ram
  509.   ''' Baseline for mailagent 3.0 netwide release.
  510.   '''
  511. ***************
  512. *** 1975,1981 ****
  513.   .I new(name, value, type)
  514.   Replace or create a %-(name) macro. For instance:
  515.   .Ex
  516. ! new('foo', "$mailhook'header{'X-Foo'}", 'EXPR');
  517.   .Ef
  518.   would create a new macro \fIfoo\fR that would expand into the value of
  519.   an hypothetical \fIX-Foo\fR header.
  520. --- 1978,1984 ----
  521.   .I new(name, value, type)
  522.   Replace or create a %-(name) macro. For instance:
  523.   .Ex
  524. ! new('foo', "\$mailhook'header{'X-Foo'}", 'EXPR');
  525.   .Ef
  526.   would create a new macro \fIfoo\fR that would expand into the value of
  527.   an hypothetical \fIX-Foo\fR header.
  528. ***************
  529. *** 3275,3281 ****
  530.   with the \fIroot\fR power can do virtually anything with the server, so be
  531.   careful. Let's assume you choose \fIroot-pass\fR as a password.
  532.   .PP
  533. ! Edit \fIpasswd\fR (defined in your \fI~/.mailagent\fR and add the following
  534.   line:
  535.   .Ex
  536.   root:<root-pass>:
  537. --- 3278,3284 ----
  538.   with the \fIroot\fR power can do virtually anything with the server, so be
  539.   careful. Let's assume you choose \fIroot-pass\fR as a password.
  540.   .PP
  541. ! Edit \fIpasswd\fR (defined in your \fI~/.mailagent\fR) and add the following
  542.   line:
  543.   .Ex
  544.   root:<root-pass>:
  545. ***************
  546. *** 3291,3305 ****
  547.   .PP
  548.   You are almost done. Now simply issue the following command:
  549.   .Ex
  550.   From: \fIyour e-mail address\fR
  551.   
  552.   power root root-pass
  553.   password root root-pass
  554.   .Ef
  555. ! and feed that to:
  556. ! .Ex
  557. ! mailagent -i -e 'SERVER -t'
  558. ! .Ef
  559.   The side effect of re-instantiating your password will be to crypt it in
  560.   the \fIpasswd\fR file, so that anybody looking at that file cannot guess
  561.   your \fIroot\fR password, hopefully.
  562. --- 3294,3315 ----
  563.   .PP
  564.   You are almost done. Now simply issue the following command:
  565.   .Ex
  566. + mailagent -i -e 'SERVER -t'
  567. + .Ef
  568. + and feed its standard input with:
  569. + .Ex
  570. + From \fIyour e-mail address\fR
  571.   From: \fIyour e-mail address\fR
  572.   
  573.   power root root-pass
  574.   password root root-pass
  575. + ^D
  576.   .Ef
  577. ! Note that the first \fIFrom\fR line is mandatory here, since it's the
  578. ! envelope on which authentication is based. Since we're feeding mailagent
  579. ! with an handcrafted message, we must provide a valid envelope or the
  580. ! server will not switch into trusted mode...
  581. ! .PP
  582.   The side effect of re-instantiating your password will be to crypt it in
  583.   the \fIpasswd\fR file, so that anybody looking at that file cannot guess
  584.   your \fIroot\fR password, hopefully.
  585.  
  586. Index: agent/pl/mh.pl
  587. Prereq: 3.0
  588. *** agent/pl/mh.pl.old    Wed Dec 15 10:07:06 1993
  589. --- agent/pl/mh.pl    Wed Dec 15 10:07:07 1993
  590. ***************
  591. *** 1,4 ****
  592. ! ;# $Id: mh.pl,v 3.0 1993/11/29 13:49:02 ram Exp $
  593.   ;#
  594.   ;#  Copyright (c) 1990-1993, Raphael Manfredi
  595.   ;#  
  596. --- 1,4 ----
  597. ! ;# $Id: mh.pl,v 3.0.1.1 1993/12/15 09:04:12 ram Exp $
  598.   ;#
  599.   ;#  Copyright (c) 1990-1993, Raphael Manfredi
  600.   ;#  
  601. ***************
  602. *** 9,14 ****
  603. --- 9,17 ----
  604.   ;#  of the source tree for mailagent 3.0.
  605.   ;#
  606.   ;# $Log: mh.pl,v $
  607. + ;# Revision 3.0.1.1  1993/12/15  09:04:12  ram
  608. + ;# patch3: log mesages were not emitted correctly
  609. + ;#
  610.   ;# Revision 3.0  1993/11/29  13:49:02  ram
  611.   ;# Baseline for mailagent 3.0 netwide release.
  612.   ;#
  613. ***************
  614. *** 75,81 ****
  615.       local($size) = -s $name;
  616.   
  617.       &'add_log("ERROR $name has $size bytes (should have $amount)")
  618. !         if $size != $amount && $loglvl;
  619.   
  620.       $failed = 1 if $size != $amount;
  621.   
  622. --- 78,84 ----
  623.       local($size) = -s $name;
  624.   
  625.       &'add_log("ERROR $name has $size bytes (should have $amount)")
  626. !         if $size != $amount && $'loglvl;
  627.   
  628.       $failed = 1 if $size != $amount;
  629.   
  630. ***************
  631. *** 154,160 ****
  632.   
  633.       # Now sort in ascending order and get highest number
  634.       @dir = sort { $a <=> $b; } @dir;
  635. !     local($highest) = pop(@dir);
  636.   
  637.       # Now create new message before unlocking the directory. Use appending
  638.       # instead of plain creation in case our lock was not honoured for some
  639. --- 157,163 ----
  640.   
  641.       # Now sort in ascending order and get highest number
  642.       @dir = sort { $a <=> $b; } @dir;
  643. !     local($highest) = pop(@dir) || 0;        # Ensure numeric default value
  644.   
  645.       # Now create new message before unlocking the directory. Use appending
  646.       # instead of plain creation in case our lock was not honoured for some
  647. ***************
  648. *** 162,168 ****
  649.       $highest++;
  650.       local($new) = "$dir/$msg_prefix$highest";
  651.       unless (open(NEW, ">>$new")) {
  652. !         &'add_log("ERROR cannot create $msg: $!") if $'loglvl > 1;
  653.           $new = 0;    # Signal no creation (directory still locked)
  654.       } else {
  655.           close NEW;    # File is now created
  656. --- 165,171 ----
  657.       $highest++;
  658.       local($new) = "$dir/$msg_prefix$highest";
  659.       unless (open(NEW, ">>$new")) {
  660. !         &'add_log("ERROR cannot create $new: $!") if $'loglvl > 1;
  661.           $new = 0;    # Signal no creation (directory still locked)
  662.       } else {
  663.           close NEW;    # File is now created
  664.  
  665. Index: agent/test/basic/filter.t
  666. Prereq: 3.0
  667. *** agent/test/basic/filter.t.old    Wed Dec 15 10:07:09 1993
  668. --- agent/test/basic/filter.t    Wed Dec 15 10:07:09 1993
  669. ***************
  670. *** 1,6 ****
  671.   # Make sure filter queues messages correctly
  672.   
  673. ! # $Id: filter.t,v 3.0 1993/11/29 13:49:24 ram Exp $
  674.   #
  675.   #  Copyright (c) 1990-1993, Raphael Manfredi
  676.   #  
  677. --- 1,6 ----
  678.   # Make sure filter queues messages correctly
  679.   
  680. ! # $Id: filter.t,v 3.0.1.1 1993/12/15 09:05:53 ram Exp $
  681.   #
  682.   #  Copyright (c) 1990-1993, Raphael Manfredi
  683.   #  
  684. ***************
  685. *** 11,16 ****
  686. --- 11,19 ----
  687.   #  of the source tree for mailagent 3.0.
  688.   #
  689.   # $Log: filter.t,v $
  690. + # Revision 3.0.1.1  1993/12/15  09:05:53  ram
  691. + # patch3: now make sure that filter.lock has correct timestamp
  692. + #
  693.   # Revision 3.0  1993/11/29  13:49:24  ram
  694.   # Baseline for mailagent 3.0 netwide release.
  695.   #
  696. ***************
  697. *** 55,63 ****
  698.   $file = <queue/qm*>;
  699.   -f "$file" || print "13\n";    # Must have been left in queue
  700.   unlink "$file", 'agentlog';
  701.   # Make sure file is correctly queued when another filter is running
  702. ! `cp /dev/null filter.lock`;
  703.   $? == 0 || print "14\n";
  704.   open(FILTER, "|$filter -t >/dev/null 2>&1") || print "15\n";
  705.   print FILTER <<EOF;
  706.   Dummy mail
  707. --- 58,69 ----
  708.   $file = <queue/qm*>;
  709.   -f "$file" || print "13\n";    # Must have been left in queue
  710.   unlink "$file", 'agentlog';
  711.   # Make sure file is correctly queued when another filter is running
  712. ! unlink 'filter.lock';        # In case an old one remains
  713. ! `cp /dev/null filter.lock`;    # Make sure we have a new fresh one
  714.   $? == 0 || print "14\n";
  715.   open(FILTER, "|$filter -t >/dev/null 2>&1") || print "15\n";
  716.   print FILTER <<EOF;
  717.   Dummy mail
  718.  
  719. Index: agent/test/TEST
  720. Prereq: 3.0
  721. *** agent/test/TEST.old    Wed Dec 15 10:07:07 1993
  722. --- agent/test/TEST    Wed Dec 15 10:07:07 1993
  723. ***************
  724. *** 2,8 ****
  725.       eval 'exec perl -S $0 "$@"'
  726.           if $running_under_some_shell;
  727.   
  728. ! # $Id: TEST,v 3.0 1993/11/29 13:49:22 ram Exp $
  729.   #
  730.   #  Copyright (c) 1990-1993, Raphael Manfredi
  731.   #  
  732. --- 2,8 ----
  733.       eval 'exec perl -S $0 "$@"'
  734.           if $running_under_some_shell;
  735.   
  736. ! # $Id: TEST,v 3.0.1.1 1993/12/15 09:04:45 ram Exp $
  737.   #
  738.   #  Copyright (c) 1990-1993, Raphael Manfredi
  739.   #  
  740. ***************
  741. *** 13,18 ****
  742. --- 13,21 ----
  743.   #  of the source tree for mailagent 3.0.
  744.   #
  745.   # $Log: TEST,v $
  746. + # Revision 3.0.1.1  1993/12/15  09:04:45  ram
  747. + # patch3: now force . into PATH for msend/nsend
  748. + #
  749.   # Revision 3.0  1993/11/29  13:49:22  ram
  750.   # Baseline for mailagent 3.0 netwide release.
  751.   #
  752. ***************
  753. *** 36,42 ****
  754.   $mailagent = 'mailagent';            # Default program (dataloaded version)
  755.   $mailagent = 'magent' if $opt_n;    # Use non-dataloaded version
  756.   $ENV{'MAILAGENT'} = $mailagent;
  757. ! $ENV{'PATH'} = "$pwd/..:" . $ENV{'PATH'};
  758.   
  759.   -f "../$mailagent" && -x _ || die "No $mailagent.\n";
  760.   -f '../filter/filter' && -x _ || die "No filter.\n";
  761. --- 39,45 ----
  762.   $mailagent = 'mailagent';            # Default program (dataloaded version)
  763.   $mailagent = 'magent' if $opt_n;    # Use non-dataloaded version
  764.   $ENV{'MAILAGENT'} = $mailagent;
  765. ! $ENV{'PATH'} = "$pwd/..:.:" . $ENV{'PATH'};
  766.   
  767.   -f "../$mailagent" && -x _ || die "No $mailagent.\n";
  768.   -f '../filter/filter' && -x _ || die "No filter.\n";
  769.  
  770. Index: agent/test/actions
  771. Prereq: 3.0
  772. *** agent/test/actions.old    Wed Dec 15 10:07:08 1993
  773. --- agent/test/actions    Wed Dec 15 10:07:08 1993
  774. ***************
  775. *** 2,8 ****
  776.   # Mailagent rules for action regression tests
  777.   #
  778.   
  779. ! # $Id: actions,v 3.0 1993/11/29 13:49:23 ram Exp $
  780.   #
  781.   #  Copyright (c) 1990-1993, Raphael Manfredi
  782.   #  
  783. --- 2,8 ----
  784.   # Mailagent rules for action regression tests
  785.   #
  786.   
  787. ! # $Id: actions,v 3.0.1.1 1993/12/15 09:05:21 ram Exp $
  788.   #
  789.   #  Copyright (c) 1990-1993, Raphael Manfredi
  790.   #  
  791. ***************
  792. *** 13,18 ****
  793. --- 13,21 ----
  794.   #  of the source tree for mailagent 3.0.
  795.   #
  796.   # $Log: actions,v $
  797. + # Revision 3.0.1.1  1993/12/15  09:05:21  ram
  798. + # patch3: extra closing single quote removed (was there since 2.9 PL0)
  799. + #
  800.   # Revision 3.0  1993/11/29  13:49:23  ram
  801.   # Baseline for mailagent 3.0 netwide release.
  802.   #
  803. ***************
  804. *** 48,54 ****
  805.       ASSIGN other try;
  806.       ASSIGN final '%#other.2';
  807.       ASSIGN :ram 1 + 2;
  808. !     RUN /bin/echo '%#ram,%#other,%#final' > output';
  809.   }
  810.   
  811.   X-Tag: /assign #2/
  812. --- 51,57 ----
  813.       ASSIGN other try;
  814.       ASSIGN final '%#other.2';
  815.       ASSIGN :ram 1 + 2;
  816. !     RUN /bin/echo '%#ram,%#other,%#final' > output;
  817.   }
  818.   
  819.   X-Tag: /assign #2/
  820.  
  821. Index: README
  822. *** README.old    Wed Dec 15 10:07:02 1993
  823. --- README    Wed Dec 15 10:07:02 1993
  824. ***************
  825. *** 13,18 ****
  826. --- 13,20 ----
  827.       Artistic License for more details.
  828.   ------------------------------------------------------------------------
  829.   
  830. + This version of mailagent requires you to have at least perl 4.0 PL36.
  831.   Please read all the directions below before you proceed any further, and
  832.   then follow them carefully.
  833.   
  834.  
  835. *** End of Patch 3 ***
  836.  
  837. exit 0 # Just in case...
  838.