Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Nov 2000 05:40:03 -0800 (PST)
From:      dirk.meyer@dinoex.sub.org (Dirk Meyer)
To:        freebsd-ports@FreeBSD.org
Subject:   Re: ports/22619: Fix mail/sendmail (by maintainer)
Message-ID:  <200011081340.FAA27265@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/22619; it has been noted by GNATS.

From: dirk.meyer@dinoex.sub.org (Dirk Meyer)
To: FreeBSD-gnats-submit@FreeBSD.ORG
Cc:  
Subject: Re: ports/22619: Fix mail/sendmail (by maintainer)
Date: Wed, 08 Nov 2000 14:26:48 +0100

 more imovements:
 
 	- TCPWARPPER for FreeBSD >= 4.0
 	- IPv6 for FreeBSD >= 4.0
 	- optional TSL support (2.2.8, 3.x, 4.x)
 	- patches for rmail and mail.local
 	- CFLAGS now reduced for the filesi who need it
 	- extendable Definitions
 
 kind regards Dirk
 
 - Dirk Meyer, Im Grund 4, 34317 Habichtswald, Germany
 
 patch to base version: in cvs
 (includes previous diff)
 
 diff sendmail/Makefile sendmail-8.11.1/Makefile
 --- sendmail/Makefile	Thu Oct 26 09:29:34 2000
 +++ sendmail-8.11.1/Makefile	Wed Nov  8 14:18:15 2000
 @@ -7,6 +7,7 @@
  
  PORTNAME=	sendmail
  PORTVERSION=	8.11.1
 +PORTREVISION=	1
  CATEGORIES=	mail
  MASTER_SITES=	ftp://ftp.sendmail.org/pub/sendmail/
  DISTNAME=	${PORTNAME}.${PORTVERSION}
 @@ -18,14 +19,26 @@
  WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
  PLIST=		${WRKDIR}/.PLIST.more
  
 -.if exists(/etc/mail/mailer.conf)
 +.if defined(SENDMAIL_WITH_TSL)
 +USE_OPENSSL=	yes
 +.endif
 +
 +.if exists(${DESTDIR}/etc/mail/mailer.conf)
  pre-configure:
  	${SED} -e "s=%%PREFIX%%=${PREFIX}=" \
  	${FILESDIR}/site.config.m4 >${WRKSRC}/devtools/Site/site.config.m4
 +.if defined(SENDMAIL_WITH_TSL)
 +	${CAT} ${FILESDIR}/site.config.m4.tls \
 +		>>${WRKSRC}/devtools/Site/site.config.m4
 +.endif
  .else
  pre-configure:
  	${SED} -e "s=%%PREFIX%%=${PREFIX}=" \
  	${FILESDIR}/site.config.m4.pre4 >${WRKSRC}/devtools/Site/site.config.m4
 +.if defined(SENDMAIL_WITH_TSL)
 +	${SED} -e "s=%%LOCALBASE%%=${LOCALBASE}=" \
 +	${FILESDIR}/site.config.m4.ssl >>${WRKSRC}/devtools/Site/site.config.m4
 +.endif
  
  PREFIX?=	${DESTDIR}/usr
  MANPREFIX?=	${DESTDIR}/usr/share
 @@ -46,6 +59,7 @@
  	${AWK} '{print "share/sendmail/" $$1}' >>${PLIST}
  	cd ${WRKSRC} && find -d cf -type d | \
  	${AWK} '{print "@dirrm share/sendmail/" $$1}' >>${PLIST}
 +	${ECHO} "@dirrm share/sendmail" >>${PLIST}
  .endif
  
  # We want mail.local and rmail for our system.
 diff sendmail/files/patch-aa sendmail-8.11.1/files/patch-aa
 --- sendmail/files/patch-aa	Thu Jan  1 01:00:00 1970
 +++ sendmail-8.11.1/files/patch-aa	Mon Nov  6 12:11:56 2000
 @@ -0,0 +1,326 @@
 +diff -ur cf/m4/cfhead.m4 src/contrib/sendmail/cf/m4/cfhead.m4
 +--- cf/m4/cfhead.m4	Thu Aug 24 19:09:50 2000
 ++++ src/contrib/sendmail/cf/m4/cfhead.m4	Mon Nov  6 11:23:40 2000
 +@@ -9,6 +9,7 @@
 + # forth in the LICENSE file which can be found at the top level of
 + # the sendmail distribution.
 + #
 ++# $FreeBSD: src/contrib/sendmail/cf/m4/cfhead.m4,v 1.3.6.2 2000/10/10 05:07:17 gshapiro Exp $
 + #
 + 
 + ######################################################################
 +@@ -214,7 +215,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_', `(using ${tls_version} with cipher ${cipher} (${cipher_bits} bits) verified ${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
 +@@ -10,11 +10,12 @@
 + # forth in the LICENSE file which can be found at the top level of
 + # the sendmail distribution.
 + #
 +-#
 ++# $FreeBSD: src/contrib/sendmail/cf/ostype/bsd4.4.m4,v 1.3.6.1 2000/08/27 17:31:10 gshapiro Exp $
 + #
 + 
 + 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
 +@@ -13,6 +13,8 @@
 + #
 + #	$Id: makeinfo.sh,v 8.14 1999/02/07 07:26:25 gshapiro Exp $
 + #
 ++# $FreeBSD: src/contrib/sendmail/cf/sh/makeinfo.sh,v 1.3.6.1 2000/08/27 17:31:13 gshapiro Exp $
 ++#
 + 
 + usewhoami=0
 + usehostname=0
 +@@ -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 src/contrib/sendmail/mail.local/mail.local.8
 +--- mail.local/mail.local.8	Sun Sep 17 19:04:25 2000
 ++++ src/contrib/sendmail/mail.local/mail.local.8	Mon Nov  6 11:23:41 2000
 +@@ -10,13 +10,15 @@
 + .\"
 + .\"	$Id: mail.local.8,v 8.14.14.3 2000/09/17 17:04:25 gshapiro Exp $
 + .\"
 ++.\" $FreeBSD: src/contrib/sendmail/mail.local/mail.local.8,v 1.5.6.2 2000/10/10 05:07:22 gshapiro Exp $
 ++.\"
 + .TH MAIL.LOCAL 8 "$Date: 2000/09/17 17:04:25 $"
 + .SH NAME
 + .B mail.local
 + \- store mail in a mailbox
 + .SH SYNOPSIS
 + .B mail.local
 +-.RB [ \-7 "] [" \-b "] [" \-d "] [" \-l "] [" \-f 
 ++.RB [ \-7 "] [" \-B "] [" \-b "] [" \-d "] [" \-l "] [" \-s "] [" \-f 
 + .IR from "] " "user ..."
 + .SH DESCRIPTION
 + .B Mail.local
 +@@ -32,6 +34,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.
 +@@ -44,6 +51,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).
 +@@ -91,7 +105,6 @@
 + .PD
 + .SH SEE ALSO
 + mail(1), 
 +-xsend(1), 
 + flock(2), 
 + getservbyname(3), 
 + comsat(8), 
 +diff -ur mail.local/mail.local.c src/contrib/sendmail/mail.local/mail.local.c
 +--- mail.local/mail.local.c	Fri Sep 22 18:30:09 2000
 ++++ src/contrib/sendmail/mail.local/mail.local.c	Mon Nov  6 11:23:42 2000
 +@@ -22,6 +22,8 @@
 + static char id[] = "@(#)$Id: mail.local.c,v 8.143.4.37 2000/09/22 00:49:10 doug Exp $";
 + #endif /* ! lint */
 + 
 ++/* $FreeBSD: src/contrib/sendmail/mail.local/mail.local.c,v 1.6.6.3 2000/10/10 22:28:25 gshapiro Exp $ */
 ++
 + /*
 + **  This is not intended to work on System V derived systems
 + **  such as Solaris or HP-UX, since they use a totally different
 +@@ -170,7 +172,7 @@
 + 
 + # if defined(BSD4_4) || defined(__GLIBC__)
 + #   include <paths.h>
 +-#  define _PATH_LOCTMP	"/tmp/local.XXXXXX"
 ++#  define _PATH_LOCTMP	"/var/tmp/local.XXXXXX"
 + # endif /* defined(BSD4_4) || defined(__GLIBC__) */
 + 
 + # ifdef BSD4_4
 +@@ -229,7 +231,7 @@
 + # endif /* USE_SETRESUID */
 + 
 + # ifndef _PATH_LOCTMP
 +-#  define _PATH_LOCTMP	"/tmp/local.XXXXXX"
 ++#  define _PATH_LOCTMP	"/var/tmp/local.XXXXXX"
 + # endif /* ! _PATH_LOCTMP */
 + #  ifndef _PATH_MAILDIR
 + #   define _PATH_MAILDIR	"/var/spool/mail"
 +@@ -264,6 +266,8 @@
 + int	ExitVal = EX_OK;		/* sysexits.h error value. */
 + bool	LMTPMode = FALSE;
 + bool	bouncequota = FALSE;		/* permanent error when over quota */
 ++bool	nobiff = FALSE;
 ++bool	nofsync = FALSE;
 + 
 + void	deliver __P((int, char *, bool));
 + int	e_to_sys __P((int));
 +@@ -304,7 +308,7 @@
 + # endif /* LOG_MAIL */
 + 
 + 	from = NULL;
 +-	while ((ch = getopt(argc, argv, "7bdf:r:l")) != -1)
 ++	while ((ch = getopt(argc, argv, "7Bbdf:r:ls")) != -1)
 + 	{
 + 		switch(ch)
 + 		{
 +@@ -312,6 +316,10 @@
 + 			EightBitMime = FALSE;
 + 			break;
 + 
 ++		  case 'B':
 ++			nobiff = TRUE;
 ++			break;
 ++
 + 		  case 'b':		/* bounce mail when over quota. */
 + 			bouncequota = TRUE;
 + 			break;
 +@@ -333,6 +341,10 @@
 + 			LMTPMode = TRUE;
 + 			break;
 + 
 ++		  case 's':
 ++			nofsync++;
 ++			break;
 ++
 + 		  case '?':
 + 		  default:
 + 			usage();
 +@@ -342,7 +354,8 @@
 + 	argv += optind;
 + 
 + 	/* initialize biff structures */
 +-	notifybiff(NULL);
 ++	if (!nobiff)
 ++		notifybiff(NULL);
 + 
 + 	if (LMTPMode)
 + 		dolmtp(bouncequota);
 +@@ -1127,14 +1140,17 @@
 + 		goto err1;
 + 	}
 + 
 +-	/* Get the starting offset of the new message for biff. */
 +-	curoff = lseek(mbfd, (off_t)0, SEEK_END);
 +-	if (sizeof curoff > sizeof(long))
 +-		(void) snprintf(biffmsg, sizeof(biffmsg), "%s@%s\n",
 +-				name, quad_to_string(curoff));
 +-	else
 +-		(void) snprintf(biffmsg, sizeof(biffmsg), "%s@%ld\n",
 +-				name, (long) curoff);
 ++	if (!nobiff)
 ++	{
 ++		/* Get the starting offset of the new message for biff. */
 ++		curoff = lseek(mbfd, (off_t)0, SEEK_END);
 ++		if (sizeof curoff > sizeof(long))
 ++			(void) snprintf(biffmsg, sizeof(biffmsg), "%s@%s\n",
 ++					name, quad_to_string(curoff));
 ++		else
 ++			(void) snprintf(biffmsg, sizeof(biffmsg), "%s@%ld\n",
 ++					name, (long) curoff);
 ++	}
 + 
 + 	/* Copy the message into the file. */
 + 	if (lseek(fd, (off_t)0, SEEK_SET) == (off_t)-1)
 +@@ -1196,7 +1212,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, errstring(errno));
 + err3:
 +@@ -1230,7 +1246,7 @@
 + 		mailerr("450 4.2.0", "%s: %s", path, errstring(errno));
 + 		(void) truncate(path, curoff);
 + 	}
 +-	else
 ++	else if (!nobiff)
 + 		notifybiff(biffmsg);
 + 
 + 	if (setreuid(0, 0) < 0)
 +@@ -1409,7 +1425,7 @@
 + usage()
 + {
 + 	ExitVal = EX_USAGE;
 +-	mailerr(NULL, "usage: mail.local [-7] [-b] [-l] [-f from] user ...");
 ++	mailerr(NULL, "usage: mail.local [-7] [-B] [-b] [-l] [-f from] [-s] user ...");
 + 	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
 +@@ -22,6 +22,8 @@
 + static char id[] = "@(#)$Id: rmail.c,v 8.39.4.8 2000/09/16 22:20:25 gshapiro Exp $";
 + #endif /* ! lint */
 + 
 ++/* $FreeBSD: src/contrib/sendmail/rmail/rmail.c,v 1.4.6.2 2000/10/10 05:07:23 gshapiro Exp $ */
 ++
 + /*
 +  * RMAIL -- UUCP mail server.
 +  *
 +@@ -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 src/contrib/sendmail/smrsh/smrsh.8
 +--- smrsh/smrsh.8	Tue Jun 15 06:50:19 1999
 ++++ src/contrib/sendmail/smrsh/smrsh.8	Wed Oct  4 23:19:47 2000
 +@@ -11,6 +11,8 @@
 + .\"
 + .\"     $Id: smrsh.8,v 8.11 1999/06/09 16:51:07 ca Exp $
 + .\"
 ++.\" $FreeBSD: src/contrib/sendmail/smrsh/smrsh.8,v 1.3.6.1 2000/08/27 17:31:24 gshapiro Exp $
 ++.\"
 + .TH SMRSH 8 11/02/93
 + .SH NAME
 + smrsh \- restricted shell for sendmail
 +@@ -38,7 +40,7 @@
 + Briefly,
 + .I smrsh
 + limits programs to be in the directory
 +-/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
 +@@ -49,16 +51,15 @@
 + ``"|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
 +-/usr/adm/sm.bin.
 ++/usr/libexec/sm.bin.
 + Reasonable additions are
 + .IR vacation (1),
 + .IR procmail (1),
 +@@ -77,11 +78,11 @@
 + Compilation should be trivial on most systems.
 + You may need to use \-DPATH=\e"\fIpath\fP\e"
 + to adjust the default search path
 +-(defaults to ``/bin:/usr/bin:/usr/ucb'')
 ++(defaults to ``/bin:/usr/bin'')
 + and/or \-DCMDBIN=\e"\fIdir\fP\e"
 + to change the default program directory
 +-(defaults to ``/usr/adm/sm.bin'').
 ++(defaults to ``/usr/libexec/sm.bin'').
 + .SH FILES
 +-/usr/adm/sm.bin \- directory for restricted programs
 ++/usr/libexec/sm.bin \- directory for restricted programs
 + .SH SEE ALSO
 + sendmail(8)
 diff sendmail/files/site.config.m4 sendmail-8.11.1/files/site.config.m4
 --- sendmail/files/site.config.m4	Sat Oct 14 06:51:41 2000
 +++ sendmail-8.11.1/files/site.config.m4	Mon Nov  6 15:56:23 2000
 @@ -4,4 +4,10 @@
  define(`confMBINDIR',`%%PREFIX%%/sbin')
  define(`confSBINDIR',`%%PREFIX%%/sbin')
  define(`confUBINDIR',`%%PREFIX%%/bin')
 -define(`confCCOPTS',`-DCMDDIR="\"%%PREFIX%%/libexec/sm.bin\"" -DPATH="\"/bin:/usr/bin\""')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DTCPWRAPPERS')
 +APPENDDEF(`conf_sendmail_LIBS', `-lwrap')"
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DNETINET6')
 +APPENDDEF(`conf_libmilter_ENVDEF', `-DNETINET6')
 +APPENDDEF(`conf_mail_local_ENVDEF', `-DQUEUE_ONLY')
 +APPENDDEF(`conf_smrsh_ENVDEF', `-DCMDDIR="\"%%PREFIX%%/libexec/sm.bin\""')
 +APPENDDEF(`conf_smrsh_ENVDEF', `-DPATH="\"/bin:/usr/bin\""')
 --- sendmail/files/site.config.m4.pre4	Sat Oct 14 06:51:41 2000
 +++ sendmail-8.11.1/files/site.config.m4.pre4	Mon Nov  6 19:16:09 2000
 @@ -1 +1,3 @@
 -define(`confCCOPTS',`-DCMDDIR="\"%%PREFIX%%/libexec/sm.bin\"" -DPATH="\"/bin:/usr/bin\""')
 +APPENDDEF(`conf_mail_local_ENVDEF', `-DQUEUE_ONLY')
 +APPENDDEF(`conf_smrsh_ENVDEF', `-DCMDDIR="\"%%PREFIX%%/libexec/sm.bin\""')
 +APPENDDEF(`conf_smrsh_ENVDEF', `-DPATH="\"/bin:/usr/bin\""')
 diff sendmail/files/site.config.m4.ssl sendmail-8.11.1/files/site.config.m4.ssl
 --- sendmail/files/site.config.m4.ssl	Thu Jan  1 01:00:00 1970
 +++ sendmail-8.11.1/files/site.config.m4.ssl	Mon Nov  6 19:50:28 2000
 @@ -0,0 +1,3 @@
 +APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
 +APPENDDEF(`confINCDIRS', `-I%%LOCALBASE%%/include')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DHASSRANDOMDEV')
 diff sendmail/files/site.config.m4.tls sendmail-8.11.1/files/site.config.m4.tls
 --- sendmail/files/site.config.m4.tls	Thu Jan  1 01:00:00 1970
 +++ sendmail-8.11.1/files/site.config.m4.tls	Mon Nov  6 18:50:59 2000
 @@ -0,0 +1,5 @@
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_TLS_O_T')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_TLS_1')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_TLS_TOREK')
 +APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200011081340.FAA27265>