diff -ur cf/m4/cfhead.m4.orig cf/m4/cfhead.m4 --- cf/m4/cfhead.m4.orig Sun Jun 10 03:45:13 2001 +++ cf/m4/cfhead.m4 Fri Jun 15 06:47:34 2001 @@ -260,7 +261,8 @@ define(`_REC_FULL_AUTH_', `$.$?{auth_type}(authenticated as ${auth_authen} $?{auth_author}for ${auth_author} $.with ${auth_type}') define(`_REC_HDR_', `$?sfrom $s $.$?_($?s$|from $.$_)') define(`_REC_END_', `for $u; $|; - $.$b') + $.$b$?g + (envelope-from $g)$.') define(`_REC_TLS_', `(version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u') define(`_REC_BY_', `$.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}') define(`confRECEIVED_HEADER', `_REC_HDR_ diff -ur cf/ostype/bsd4.4.m4 src/contrib/sendmail/cf/ostype/bsd4.4.m4 --- cf/ostype/bsd4.4.m4 Sun Apr 25 22:00:56 1999 +++ src/contrib/sendmail/cf/ostype/bsd4.4.m4 Wed Oct 4 23:19:29 2000 @@ -16,5 +16,6 @@ divert(0) VERSIONID(`$Id: bsd4.4.m4,v 8.14 1999/04/24 05:37:40 gshapiro Exp $') ifdef(`STATUS_FILE',, `define(`STATUS_FILE', `/var/log/sendmail.st')')dnl ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /usr/libexec/mail.local)')dnl +ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail $u')')dnl ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -z -a$g $h!rmail ($u)')')dnl diff -ur cf/sh/makeinfo.sh src/contrib/sendmail/cf/sh/makeinfo.sh --- cf/sh/makeinfo.sh Sun Feb 7 08:26:25 1999 +++ src/contrib/sendmail/cf/sh/makeinfo.sh Wed Oct 4 23:19:29 2000 @@ -52,7 +54,7 @@ else host=`uname -n` fi -echo '#####' built by $user@$host on `date` +echo '#####' built by $user@$host on `LC_TIME=C date` echo '#####' in `pwd` | sed 's/\/tmp_mnt//' echo '#####' using $1 as configuration include directory | sed 's/\/tmp_mnt//' echo "define(\`__HOST__', $host)dnl" diff -ur mail.local/mail.local.8.orig mail.local/mail.local.8 --- mail.local/mail.local.8.orig Fri Apr 6 01:27:35 2001 +++ mail.local/mail.local.8 Thu May 31 07:36:03 2001 @@ -16,9 +16,9 @@ \- store mail in a mailbox .SH SYNOPSIS .B mail.local -.RB [ \-7 "] [" \-b "] [" \-d "] [" \-D +.RB [ \-7 "] [" \-b "] [" \-B "] [" \-d "] [" \-D .IR mbdb ] -.RB [ \-l "] [" \-f +.RB [ \-l "] [" \-s "] [" \-f \fIfrom\fR|\fB\-r\fR .IR from ] .RB [ \-h @@ -38,6 +41,11 @@ .B \-7 Do not advertise 8BITMIME support in LMTP mode. .TP +.B \-B +Turn off the attempts to notify the +.Dq biff +service. +.TP .B \-b Return a permanent error instead of a temporary error if a mailbox exceeds quota. @@ -56,6 +64,13 @@ .TP .B \-l Turn on LMTP mode. +.TP +.B \-s +Turn off the +.Xr fsync 2 +call that forces the mailbox to be committed to disk before returning a +.Dq success +status. .TP .BI \-r " from" Specify the sender's name (for backward compatibility). @@ -97,7 +112,7 @@ .SH FILES .PD 0.2v .TP 2.2i -/tmp/local.XXXXXX +/var/tmp/local.XXXXXX temporary files .TP /var/mail/user @@ -108,7 +123,6 @@ .PD .SH SEE ALSO mail(1), -xsend(1), flock(2), getservbyname(3), comsat(8), diff -ur mail.local/mail.local.c.orig mail.local/mail.local.c --- mail.local/mail.local.c.orig Mon Nov 1 21:42:42 2004 +++ mail.local/mail.local.c Thu Dec 16 05:25:26 2004 @@ -144,6 +144,8 @@ bool HoldErrs = false; /* Hold errors in ErrBuf */ bool LMTPMode = false; bool BounceQuota = false; /* permanent error when over quota */ +bool NoBiff = false; +bool NoFsync = false; bool CloseMBDB = false; char *HomeMailFile = NULL; /* store mail in homedir */ @@ -223,9 +225,9 @@ sm_exit(EX_CONFIG); } #if HASHSPOOL - while ((ch = getopt(argc, argv, "7bdD:f:h:r:lH:p:n")) != -1) + while ((ch = getopt(argc, argv, "7bBdD:f:h:r:lsH:p:n")) != -1) #else /* HASHSPOOL */ - while ((ch = getopt(argc, argv, "7bdD:f:h:r:l")) != -1) + while ((ch = getopt(argc, argv, "7bBdD:f:h:r:ls")) != -1) #endif /* HASHSPOOL */ { switch(ch) @@ -234,6 +236,10 @@ EightBitMime = false; break; + case 'B': + NoBiff = true; + break; + case 'b': /* bounce mail when over quota. */ BounceQuota = true; break; @@ -325,6 +331,10 @@ break; #endif /* HASHSPOOL */ + case 's': + NoFsync = true; + break; + case '?': default: usage(); @@ -334,7 +344,8 @@ argv += optind; /* initialize biff structures */ - notifybiff(NULL); + if (!NoBiff) + notifybiff(NULL); err = sm_mbdb_initialize(mbdbname); if (err != EX_OK) @@ -1256,6 +1267,7 @@ /* Get the starting offset of the new message */ curoff = lseek(mbfd, (off_t) 0, SEEK_END); + if (!NoBiff) (void) sm_snprintf(biffmsg, sizeof(biffmsg), "%s@%lld\n", name, (LONGLONG_T) curoff); @@ -1318,7 +1330,7 @@ } /* Flush to disk, don't wait for update. */ - if (fsync(mbfd) < 0) + if (!NoFsync && fsync(mbfd) < 0) { mailerr("450 4.2.0", "%s: %s", path, sm_errstring(errno)); err3: @@ -1385,7 +1397,7 @@ /* Attempt to truncate back to pre-write size */ goto err3; } - else + else if (!NoBiff) notifybiff(biffmsg); if (setreuid(0, 0) < 0) @@ -1564,7 +1576,7 @@ usage() { ExitVal = EX_USAGE; - mailerr(NULL, "usage: mail.local [-7] [-b] [-d] [-l] [-f from|-r from] [-h filename] user ..."); + mailerr(NULL, "usage: mail.local [-7] [-b] [-B] [-d] [-l] [-s] [-f from|-r from] [-h filename] user ..."); sm_exit(ExitVal); } diff -ur rmail/rmail.c src/contrib/sendmail/rmail/rmail.c --- rmail/rmail.c Sun Sep 17 00:20:25 2000 +++ src/contrib/sendmail/rmail/rmail.c Mon Nov 6 11:23:42 2000 @@ -318,7 +320,11 @@ args[i++] = _PATH_SENDMAIL; /* Build sendmail's argument list. */ args[i++] = "-G"; /* relay submission */ args[i++] = "-oee"; /* No errors, just status. */ +#ifdef QUEUE_ONLY args[i++] = "-odq"; /* Queue it, don't try to deliver. */ +#else + args[i++] = "-odi"; /* Deliver in foreground. */ +#endif args[i++] = "-oi"; /* Ignore '.' on a line by itself. */ /* set from system and protocol used */ diff -ur smrsh/smrsh.8.orig smrsh/smrsh.8 --- smrsh/smrsh.8.orig Wed Jan 24 01:40:47 2001 +++ smrsh/smrsh.8 Mon May 7 08:32:45 2001 @@ -39,7 +41,7 @@ .I smrsh limits programs to be in a single directory, by default -/usr/adm/sm.bin, +/usr/libexec/sm.bin, allowing the system administrator to choose the set of acceptable commands, and to the shell builtin commands ``exec'', ``exit'', and ``echo''. It also rejects any commands with the characters @@ -50,13 +52,12 @@ ``"|exec /usr/local/bin/procmail -f- /etc/procmailrcs/user || exit 75"'' .PP Initial pathnames on programs are stripped, -so forwarding to ``/usr/ucb/vacation'', -``/usr/bin/vacation'', +so forwarding to ``/usr/bin/vacation'', ``/home/server/mydir/bin/vacation'', and ``vacation'' all actually forward to -``/usr/adm/sm.bin/vacation''. +``/usr/libexec/sm.bin/vacation''. .PP System administrators should be conservative about populating the sm.bin directory.