PSARC 2015/111 Sendmail 8.15
authorJohn Beck <John.Beck@Oracle.COM>
Wed, 04 Mar 2015 13:49:36 -0800
changeset 3916 1224230f8337
parent 3915 bf1315c4d52e
child 3917 87d7f448290b
PSARC 2015/111 Sendmail 8.15 20640598 upgrade sendmail to 8.15.1
components/sendmail/Makefile
components/sendmail/patches/README.patch
components/sendmail/patches/libmilter-signal.c.patch
components/sendmail/patches/site.SunOS.5.12.m4.patch
components/sendmail/patches/x-ipv6-compression.patch
components/sendmail/sendmail.p5m
--- a/components/sendmail/Makefile	Thu Mar 05 15:53:36 2015 -0800
+++ b/components/sendmail/Makefile	Wed Mar 04 13:49:36 2015 -0800
@@ -23,17 +23,17 @@
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		sendmail
-COMPONENT_VERSION=	8.14.9
+COMPONENT_VERSION=	8.15.1
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_PROJECT_URL=	ftp://ftp.sendmail.org/pub/sendmail/
 COMPONENT_ARCHIVE=	$(COMPONENT_NAME).$(COMPONENT_VERSION).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:f5a497151abd8f341cca0736c3f9bd703d574d93146b2989689dff6d7a445d75
+    sha256:ed1f9e0f2a1a58c9ff94950264a2fc186d6fd237bac66b175d79a2b89a950746
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).sig
 COMPONENT_BUGDB=	utility/sendmail
 
-TPNO=			7435
+TPNO=			21799
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/justmake.mk
@@ -100,10 +100,21 @@
     $(CP) $(FILE_DIR)/cf/domain/solaris-generic.m4 $(@D)/cf/domain/ ;
 COMPONENT_POST_INSTALL_ACTION += \
     $(CP) $(FILE_DIR)/cf/cf/sendmail.mc $(@D)/cf/cf/ ;
+# Without the two $(CP)s below we would pick up the version of submit.cf
+# from under $(COMPONENT_SRC), which is not what we want because it contains
+# information (user, hostname, date, build path) from the upstream machine
+# where the distro was created.  So we build our own version here, using
+# $(M4_ARG), which suppresses the inclusion of all that information.
+# Then we copy it to $(PROTO_DIR)/cf/cf instead of the more intuitive
+# $(PROTOETCDIR)/mail/cf/cf to match the transform in the manifest that
+# picks up everything under etc/mail/cf/ from cf/ instead.
 COMPONENT_POST_INSTALL_ACTION += \
     cd $(@D)/cf/cf ; \
     $(RM) submit.cf ; \
     m4 $(M4_ARG) ../m4/cf.m4 submit.mc > submit.cf ; \
+    $(CP) submit.cf $(PROTOETCDIR)/mail ; \
+    $(MKDIR) $(PROTO_DIR)/cf/cf ; \
+    $(CP) submit.cf $(PROTO_DIR)/cf/cf ; \
     m4 $(M4_ARG) ../m4/cf.m4 sendmail.mc > sendmail.cf
 
 COMPONENT_TEST_ARGS += CC="$(CC)"
--- a/components/sendmail/patches/README.patch	Thu Mar 05 15:53:36 2015 -0800
+++ b/components/sendmail/patches/README.patch	Wed Mar 04 13:49:36 2015 -0800
@@ -1,7 +1,7 @@
 # This patch is Solaris-specific and thus has not been contributed upstream.
 
---- sendmail-8.14.9/cf/README~	2014-05-16 13:40:15.000000000 -0700
-+++ sendmail-8.14.9/cf/README	2014-12-04 12:36:34.759814094 -0800
+--- sendmail-8.15.1/cf/README.~1~	2014-09-17 11:34:33.000000000 -0700
++++ sendmail-8.15.1/cf/README	2015-02-27 13:05:45.063619464 -0800
 @@ -4,12 +4,10 @@
  This document describes the sendmail configuration files.  It
  explains how to create a sendmail.cf file for use with sendmail.
@@ -100,7 +100,7 @@
  SMTP_MAILER_FLAGS	[undefined] Flags added to SMTP mailer.  Default
  			flags are `mDFMuX' for all SMTP-based mailers; the
  			"esmtp" mailer adds `a'; "smtp8" adds `8'; and
[email protected]@ -413,17 +376,6 @@
[email protected]@ -417,17 +380,6 @@
  			the UUCP mailers and which are converted to MIME will
  			be labeled with this character set.
  UUCP_MAILER_QGRP	[undefined] The queue group for the UUCP mailers.
@@ -118,7 +118,7 @@
  PROCMAIL_MAILER_PATH	[/usr/local/bin/procmail] The path to the procmail
  			program.  This is also used by
  			FEATURE(`local_procmail').
[email protected]@ -438,60 +390,9 @@
[email protected]@ -442,60 +394,9 @@
  PROCMAIL_MAILER_MAX	[undefined] If set, the maximum size message that
  			will be accepted by the procmail mailer.
  PROCMAIL_MAILER_QGRP	[undefined] The queue group for the procmail mailer.
@@ -179,7 +179,7 @@
  LOCAL_PROG_QGRP		[undefined] The queue group for the prog mailer.
  
  Note: to tweak Name_MAILER_FLAGS use the macro MODIFY_MAILER_FLAGS:
[email protected]@ -609,18 +510,6 @@
[email protected]@ -613,18 +514,6 @@
  		See the section below describing UUCP mailers in more
  		detail.
  
@@ -198,7 +198,7 @@
  procmail	An interface to procmail (does not come with sendmail).
  		This is designed to be used in mailertables.  For example,
  		a common question is "how do I forward all mail for a given
[email protected]@ -643,37 +532,6 @@
[email protected]@ -647,37 +536,6 @@
  		Of course there are other ways to solve this particular
  		problem, e.g., a catch-all entry in a virtusertable.
  
@@ -236,7 +236,7 @@
  The local mailer accepts addresses of the form "user+detail", where
  the "+detail" is not used for mailbox matching but is available
  to certain local mail programs (in particular, see
[email protected]@ -1379,12 +1237,6 @@
[email protected]@ -1393,12 +1251,6 @@
  		[email protected] for relaying.  This feature changes that
  		behavior.  It should not be needed for most installations.
  
@@ -249,7 +249,7 @@
  preserve_luser_host
  		Preserve the name of the recipient host if LUSER_RELAY is
  		used.  Without this option, the domain part of the
[email protected]@ -1421,7 +1273,7 @@
[email protected]@ -1435,7 +1287,7 @@
  		FEATURE and introduce new settings via DAEMON_OPTIONS().
  
  msp		Defines config file for Message Submission Program.
@@ -258,7 +258,7 @@
  		to use it.  An optional argument can be used to override
  		the default of `[localhost]' to use as host to send all
  		e-mails to.  Note that MX records will be used if the
[email protected]@ -1565,78 +1417,6 @@
[email protected]@ -1579,78 +1431,6 @@
  		has been compiled with the options MAP_REGEX and
  		DNSMAP.
  
@@ -337,7 +337,7 @@
  +--------------------+
  | USING UUCP MAILERS |
  +--------------------+
[email protected]@ -2424,7 +2204,7 @@
[email protected]@ -2438,7 +2218,7 @@
  map entries.  This feature allows spammers to abuse your mail server
  by specifying a return address that you enabled in your access file.
  This may be harder to figure out for spammers, but it should not
@@ -346,7 +346,7 @@
  allow relaying for roaming users.
  
  
[email protected]@ -2890,8 +2670,7 @@
[email protected]@ -2906,8 +2686,7 @@
  tokenization.  It might be simpler to use a regex map and apply it
  to $&{currHeader}.
  2. There are no default rulesets coming with this distribution of
@@ -356,7 +356,7 @@
  3. When using a default ruleset for headers, the name of the header
  currently being checked can be found in the $&{hdr_name} macro.
  
[email protected]@ -3192,101 +2971,6 @@
[email protected]@ -3208,101 +2987,6 @@
  (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})
  
  
@@ -458,7 +458,7 @@
  +--------------------------------+
  | ADDING NEW MAILERS OR RULESETS |
  +--------------------------------+
[email protected]@ -3612,8 +3296,6 @@
[email protected]@ -3628,8 +3312,6 @@
  This list is shown in four columns:  the name you define, the default
  value for that definition, the option or macro that is affected
  (either Ox for an option or Dx for a macro), and a brief description.
@@ -467,7 +467,7 @@
  
  Some options are likely to be deprecated in future versions -- that is,
  the option is only included to provide back-compatibility.  These are
[email protected]@ -3837,8 +3519,6 @@
[email protected]@ -3853,8 +3535,6 @@
  					(e.g., :include: file) to be opened.
  confTO_LHLO		Timeout.lhlo	[2m] The timeout waiting for a response
  					to an LMTP LHLO command.
@@ -476,7 +476,7 @@
  confTO_STARTTLS		Timeout.starttls
  					[1h] The timeout waiting for a
  					response to an SMTP STARTTLS command.
[email protected]@ -4197,46 +3877,6 @@
[email protected]@ -4220,46 +3900,6 @@
  					memory-buffered transcript (xf)
  					file before a disk-based file is
  					used.
@@ -491,7 +491,7 @@
 -confAUTH_REALM		AuthRealm	[undefined] The authentication realm
 -					that is passed to the Cyrus SASL
 -					library.  If no realm is specified,
--					$j is used.
+-					$j is used.  See KNOWNBUGS.
 -confDEF_AUTH_INFO	DefaultAuthInfo	[undefined] Name of file that contains
 -					authentication information for
 -					outgoing connections.  This file must
@@ -523,7 +523,7 @@
  confTLS_SRV_OPTIONS	TLSSrvOptions	If this option is 'V' no client
  					verification is performed, i.e.,
  					the server doesn't ask for a
[email protected]@ -4288,7 +3928,7 @@
[email protected]@ -4323,7 +3963,7 @@
  					[undefined] Defines {daemon_flags}
  					for direct submissions.
  confUSE_MSP		UseMSP		[undefined] Use as mail submission
@@ -532,7 +532,7 @@
  confDELIVER_BY_MIN	DeliverByMin	[0] Minimum time for Deliver By
  					SMTP Service Extension (RFC 2852).
  confREQUIRES_DIR_FSYNC	RequiresDirfsync	[true] RequiresDirfsync can
[email protected]@ -4434,8 +4074,7 @@
[email protected]@ -4469,8 +4109,7 @@
  | MESSAGE SUBMISSION PROGRAM |
  +----------------------------+
  
@@ -542,7 +542,7 @@
  a few hints how for those who want to tweak the default configuration
  for it (which is installed as submit.cf).
  
[email protected]@ -4450,13 +4089,10 @@
[email protected]@ -4485,13 +4124,10 @@
    of the default background mode.
  - FEATURE(stickyhost) and LOCAL_RELAY to send unqualified addresses
    to the LOCAL_RELAY instead of the default relay.
@@ -559,7 +559,7 @@
  
  	FEATURE(`nocanonify', `canonify_hosts')
  	define(`confDIRECT_SUBMISSION_MODIFIERS', `C')
[email protected]@ -4472,39 +4108,10 @@
[email protected]@ -4507,39 +4143,10 @@
  can cause security problems.
  
  Other things don't work well with the MSP and require tweaking or
--- a/components/sendmail/patches/libmilter-signal.c.patch	Thu Mar 05 15:53:36 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-This patch comes from in-house, was submitted upstream, and has been
-accepted.  When version 8.15 comes out, it will no longer be needed.
-
---- sendmail-8.14.9/libmilter/signal.c~	2014-05-16 13:40:15.000000000 -0700
-+++ sendmail-8.14.9/libmilter/signal.c	2014-12-04 12:51:02.970365415 -0800
[email protected]@ -104,11 +104,11 @@
- 	for (;;)
- 	{
- 		sigerr = sig = 0;
--#if defined(SOLARIS) || defined(__svr5__)
-+#if defined(__svr5__)
- 		if ((sig = sigwait(&set)) < 0)
--#else /* defined(SOLARIS) || defined(__svr5__) */
-+#else /* defined(__svr5__) */
- 		if ((sigerr = sigwait(&set, &sig)) != 0)
--#endif /* defined(SOLARIS) || defined(__svr5__) */
-+#endif /* defined(__svr5__) */
- 		{
- 			/* some OS return -1 and set errno: copy it */
- 			if (sigerr <= 0)
--- a/components/sendmail/patches/site.SunOS.5.12.m4.patch	Thu Mar 05 15:53:36 2015 -0800
+++ b/components/sendmail/patches/site.SunOS.5.12.m4.patch	Wed Mar 04 13:49:36 2015 -0800
@@ -2,7 +2,7 @@
 
 --- /dev/null						2013-06-18 15:31:00.000000000 -0700
 +++ sendmail-8.14.9/devtools/Site/site.SunOS.5.12.m4	2013-03-26 07:18:05.675345928 -0700
[email protected]@ -0,0 +1,20 @@
[email protected]@ -0,0 +1,21 @@
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DSUN_EXTENSIONS')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DVENDOR_DEFAULT=VENDOR_SUN')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DSUN_INIT_DOMAIN')
@@ -11,6 +11,7 @@
 +APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_LOCAL_DAEMON')
 +APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_MAIL_MACRO')
++APPENDDEF(`conf_sendmail_ENVDEF', `-DIPV6_FULL=0')
 +APPENDDEF(`conf_sendmail_LIBS', `-lsldap')
 +APPENDDEF(`conf_sendmail_LIBS', `-lwrap')
 +APPENDDEF(`conf_sendmail_LIBS', `-lumem')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sendmail/patches/x-ipv6-compression.patch	Wed Mar 04 13:49:36 2015 -0800
@@ -0,0 +1,133 @@
+This patch was developed in-house, contributed upstream, and accepted with
+minor modifications for 8.15.2; when that release comes out, it should no
+longer be needed.
+
+--- sendmail-8.15.1/RELEASE_NOTES.~1~	2015-03-02 10:53:48.866427766 -0800
++++ sendmail-8.15.1/RELEASE_NOTES	2015-03-02 10:55:13.925190180 -0800
[email protected]@ -5,6 +5,13 @@
+ of the sendmail configuration files, the date of release, and a
+ summary of the changes in that release.
+ 
++	CONFIG: New option UseCompressedIPv6Addresses to select between
++		compressed and uncompressed IPv6 addresses.  The default
++		value depends on the compile-time option IPV6_FULL:
++		For 1 the default is False, for 0 it is True, thus
++		preserving the current behaviour.  Based on patch from
++		John Beck of Oracle.
++
+ 8.15.1/8.15.1	2014/12/06
+ 	SECURITY: Properly set the close-on-exec flag for file descriptors
+ 		(except stdin, stdout, and stderr) before executing mailers.
+--- sendmail-8.15.1/cf/README.~2~	2015-03-02 10:56:39.888131319 -0800
++++ sendmail-8.15.1/cf/README	2015-03-02 10:56:39.926065186 -0800
[email protected]@ -3454,6 +3454,12 @@
+ 					cached but otherwise idle connection
+ 					to a host will prevent other sendmails
+ 					from connecting to the other host.
++confUSE_COMPRESSED_IPV6_ADDRESSES
++			UseCompressedIPv6Addresses
++					[undefined] If set, use the compressed
++					form of IPv6 addresses, such as
++					IPV6:::1, instead of the uncompressed
++					form, such as IPv6:0:0:0:0:0:0:0:1.
+ confUSE_ERRORS_TO*	UseErrorsTo	[False] Use the Errors-To: header to
+ 					deliver error messages.  This should
+ 					not be necessary because of general
+--- sendmail-8.15.1/cf/m4/proto.m4.~2~	2015-03-02 10:59:56.762362990 -0800
++++ sendmail-8.15.1/cf/m4/proto.m4	2015-03-02 10:59:56.821388655 -0800
[email protected]@ -329,6 +329,9 @@
+ # use Errors-To: header?
+ _OPTION(UseErrorsTo, `confUSE_ERRORS_TO', `False')
+ 
++# use compressed IPv6 address format?
++_OPTION(UseCompressedIPv6Addresses, `confUSE_COMPRESSED_IPV6_ADDRESSES', `')
++
+ # log level
+ _OPTION(LogLevel, `confLOG_LEVEL', `10')
+ 
+--- sendmail-8.15.1/doc/op/op.me.~1~
++++ sendmail-8.15.1/doc/op/op.me
[email protected]@ -8360,6 +8360,12 @@ are always unsafe.
+ Note: use
+ .b DontBlameSendmail
+ instead; this option is deprecated.
++.ip UseCompressedIPv6Addresses
++[no short name]
++If set, the compressed format of IPv6 addresses,
++such as IPV6:::1, will be used,
++instead of the uncompressed format,
++such as IPv6:0:0:0:0:0:0:0:1.
+ .ip UseErrorsTo
+ [l]
+ If there is an
+--- sendmail-8.15.1/sendmail/conf.c.~1~	2014-11-07 10:01:17.000000000 -0800
++++ sendmail-8.15.1/sendmail/conf.c	2015-03-02 11:02:56.829822173 -0800
[email protected]@ -379,6 +379,9 @@
+ 	}
+ 	else
+ 		InetMode = AF_INET;
++#if !IPV6_FULL
++	UseCompressedIPv6Addresses = true;
++#endif
+ #else /* NETINET6 */
+ 	InetMode = AF_INET;
+ #endif /* NETINET6 */
[email protected]@ -5756,7 +5759,7 @@
+ 	"HES_GETMAILHOST",
+ #endif
+ #if IPV6_FULL
+-	/* Use uncompressed IPv6 address format (no "::") */
++	/* Use uncompressed IPv6 address format (no "::") by default */
+ 	"IPV6_FULL",
+ #endif
+ #if LDAPMAP
+--- a/sendmail/daemon.c
++++ b/sendmail/daemon.c
[email protected]@ -4261,12 +4261,10 @@ anynet_ntop(s6a, dst, dst_len)
+ 			return NULL;
+ 		dst += sz;
+ 		dst_len -= sz;
+-# if IPV6_FULL
+-		ap = sm_inet6_ntop(s6a, dst, dst_len);
+-# else /* IPV6_FULL */
+-		ap = (char *) inet_ntop(AF_INET6, s6a, dst, dst_len);
+-# endif /* IPV6_FULL */
+-
++		if (UseCompressedIPv6Addresses)
++			ap = (char *) inet_ntop(AF_INET6, s6a, dst, dst_len);
++		else
++			ap = sm_inet6_ntop(s6a, dst, dst_len);
+ 		/* Restore pointer to beginning of string */
+ 		if (ap != NULL)
+ 			ap = d;
+--- sendmail-8.15.1/sendmail/readcf.c.~1~	2014-10-22 09:33:53.000000000 -0700
++++ sendmail-8.15.1/sendmail/readcf.c	2015-03-02 11:04:38.892714939 -0800
[email protected]@ -2473,6 +2473,8 @@
+ # define O_ADDBCC 0xeb
+ 	{ "AddBcc",			O_ADDBCC,	OI_NONE },
+ #endif
++#define O_USECOMPRESSEDIPV6ADDRESSES 0xec
++	{ "UseCompressedIPv6Addresses",	O_USECOMPRESSEDIPV6ADDRESSES, OI_NONE },
+ 
+ 	{ NULL,				'\0',		OI_NONE	}
+ };
[email protected]@ -4277,6 +4279,9 @@
+ 		AddBcc = atobool(val);
+ 		break;
+ #endif
++	  case O_USECOMPRESSEDIPV6ADDRESSES:
++		UseCompressedIPv6Addresses = atobool(val);
++		break;
+ 
+ 	  default:
+ 		if (tTd(37, 1))
+--- sendmail-8.15.1/sendmail/sendmail.h.~1~	2014-11-07 05:26:39.000000000 -0800
++++ sendmail-8.15.1/sendmail/sendmail.h	2015-03-02 11:05:51.115921999 -0800
[email protected]@ -2384,6 +2384,7 @@
+ EXTERN bool	WorkAroundBrokenAAAA;	/* some nameservers return SERVFAIL on AAAA queries */
+ EXTERN bool	UseErrorsTo;	/* use Errors-To: header (back compat) */
+ EXTERN bool	UseNameServer;	/* using DNS -- interpret h_errno & MX RRs */
++EXTERN bool	UseCompressedIPv6Addresses;	/* for more specific zero-subnet matches */
+ EXTERN char	InetMode;		/* default network for daemon mode */
+ EXTERN char	OpMode;		/* operation mode, see below */
+ EXTERN char	SpaceSub;	/* substitution for <lwsp> */
--- a/components/sendmail/sendmail.p5m	Thu Mar 05 15:53:36 2015 -0800
+++ b/components/sendmail/sendmail.p5m	Wed Mar 04 13:49:36 2015 -0800
@@ -23,11 +23,15 @@
 # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
 #
 
-# The man pages are all at the top of a "files" directory; setting the hash to
+# The man pages are all at the top of a "files" directory; set the hash to
 # point to the files therein.
 <transform file path=usr/share/man/man.+/(.+)$ -> set action.hash %<\1> >
-# Bypassing the mangler for these files because they are pre-Solarified.
+# Set the hash for the cf/ hierarchy similarly.
+<transform file path=etc/mail/(cf/.+)$ -> set action.hash %<\1> >
+# Bypass the mangler for these files because they are pre-Solarified.
 <transform file path=usr/share/man/.+$ -> add mangler.bypass true >
+<transform file path=etc/mail/cf/.* -> default group mail>
+#
 set name=pkg.fmri \
     value=pkg:/service/network/smtp/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="Sendmail utilities"
@@ -38,164 +42,104 @@
 set name=info.classification value=org.opensolaris.category.2008:System/Core
 set name=info.upstream value="Sendmail community"
 set name=info.upstream-url value=http://www.sendmail.org/
-set name=org.opensolaris.arc-caseid value=PSARC/2007/068
+set name=org.opensolaris.arc-caseid value=PSARC/2007/068 value=PSARC/2015/111
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 set name=org.opensolaris.version-unlockable value=true
+#
 link path=etc/aliases target=./mail/aliases
 file init.d-sendmail path=etc/init.d/sendmail group=sys mode=0744 \
     original_name=SUNWsndm:etc/init.d/sendmail \
     pkg.linted.userland.action003.0=true preserve=true
 file aliases path=etc/mail/aliases original_name=SUNWsndm:etc/mail/aliases \
     preserve=true
-file cf/README path=etc/mail/cf/README group=mail mode=0444
-file cf/cf/Makefile path=etc/mail/cf/cf/Makefile group=mail mode=0444
+file path=etc/mail/cf/README
+file path=etc/mail/cf/cf/Makefile
 link path=etc/mail/cf/cf/main.cf target=sendmail.cf
 link path=etc/mail/cf/cf/main.mc target=sendmail.mc
-file cf/cf/sendmail.cf path=etc/mail/cf/cf/sendmail.cf group=mail mode=0444
-file cf/cf/sendmail.mc path=etc/mail/cf/cf/sendmail.mc group=mail mode=0444
-file cf/cf/submit.cf path=etc/mail/cf/cf/submit.cf group=mail mode=0444
-file cf/cf/submit.mc path=etc/mail/cf/cf/submit.mc group=mail mode=0444
+file path=etc/mail/cf/cf/sendmail.cf
+file path=etc/mail/cf/cf/sendmail.mc
+file path=etc/mail/cf/cf/submit.cf
+file path=etc/mail/cf/cf/submit.mc
 link path=etc/mail/cf/cf/subsidiary.cf target=sendmail.cf
 link path=etc/mail/cf/cf/subsidiary.mc target=sendmail.mc
-file cf/domain/generic.m4 path=etc/mail/cf/domain/generic.m4 group=mail \
-    mode=0444
-file cf/domain/solaris-antispam.m4 path=etc/mail/cf/domain/solaris-antispam.m4 \
-    group=mail mode=0444
-file cf/domain/solaris-generic.m4 path=etc/mail/cf/domain/solaris-generic.m4 \
-    group=mail mode=0444
-file cf/feature/accept_unqualified_senders.m4 \
-    path=etc/mail/cf/feature/accept_unqualified_senders.m4 group=mail mode=0444
-file cf/feature/accept_unresolvable_domains.m4 \
-    path=etc/mail/cf/feature/accept_unresolvable_domains.m4 group=mail \
-    mode=0444
-file cf/feature/access_db.m4 path=etc/mail/cf/feature/access_db.m4 group=mail \
-    mode=0444
-file cf/feature/allmasquerade.m4 path=etc/mail/cf/feature/allmasquerade.m4 \
-    group=mail mode=0444
-file cf/feature/always_add_domain.m4 \
-    path=etc/mail/cf/feature/always_add_domain.m4 group=mail mode=0444
-file cf/feature/badmx.m4 path=etc/mail/cf/feature/badmx.m4 group=mail mode=0444
-file cf/feature/bestmx_is_local.m4 path=etc/mail/cf/feature/bestmx_is_local.m4 \
-    group=mail mode=0444
-file cf/feature/bitdomain.m4 path=etc/mail/cf/feature/bitdomain.m4 group=mail \
-    mode=0444
-file cf/feature/blacklist_recipients.m4 \
-    path=etc/mail/cf/feature/blacklist_recipients.m4 group=mail mode=0444
-file cf/feature/block_bad_helo.m4 path=etc/mail/cf/feature/block_bad_helo.m4 \
-    group=mail mode=0444
-file cf/feature/compat_check.m4 path=etc/mail/cf/feature/compat_check.m4 \
-    group=mail mode=0444
-file cf/feature/conncontrol.m4 path=etc/mail/cf/feature/conncontrol.m4 \
-    group=mail mode=0444
-file cf/feature/delay_checks.m4 path=etc/mail/cf/feature/delay_checks.m4 \
-    group=mail mode=0444
-file cf/feature/dnsbl.m4 path=etc/mail/cf/feature/dnsbl.m4 group=mail mode=0444
-file cf/feature/domaintable.m4 path=etc/mail/cf/feature/domaintable.m4 \
-    group=mail mode=0444
-file cf/feature/enhdnsbl.m4 path=etc/mail/cf/feature/enhdnsbl.m4 group=mail \
-    mode=0444
-file cf/feature/generics_entire_domain.m4 \
-    path=etc/mail/cf/feature/generics_entire_domain.m4 group=mail mode=0444
-file cf/feature/genericstable.m4 path=etc/mail/cf/feature/genericstable.m4 \
-    group=mail mode=0444
-file cf/feature/greet_pause.m4 path=etc/mail/cf/feature/greet_pause.m4 \
-    group=mail mode=0444
-file cf/feature/ldap_routing.m4 path=etc/mail/cf/feature/ldap_routing.m4 \
-    group=mail mode=0444
-file cf/feature/limited_masquerade.m4 \
-    path=etc/mail/cf/feature/limited_masquerade.m4 group=mail mode=0444
-file cf/feature/local_lmtp.m4 path=etc/mail/cf/feature/local_lmtp.m4 \
-    group=mail mode=0444
-file cf/feature/local_no_masquerade.m4 \
-    path=etc/mail/cf/feature/local_no_masquerade.m4 group=mail mode=0444
-file cf/feature/local_procmail.m4 path=etc/mail/cf/feature/local_procmail.m4 \
-    group=mail mode=0444
-file cf/feature/lookupdotdomain.m4 path=etc/mail/cf/feature/lookupdotdomain.m4 \
-    group=mail mode=0444
-file cf/feature/loose_relay_check.m4 \
-    path=etc/mail/cf/feature/loose_relay_check.m4 group=mail mode=0444
-file cf/feature/mailertable.m4 path=etc/mail/cf/feature/mailertable.m4 \
-    group=mail mode=0444
-file cf/feature/masquerade_entire_domain.m4 \
-    path=etc/mail/cf/feature/masquerade_entire_domain.m4 group=mail mode=0444
-file cf/feature/masquerade_envelope.m4 \
-    path=etc/mail/cf/feature/masquerade_envelope.m4 group=mail mode=0444
-file cf/feature/msp.m4 path=etc/mail/cf/feature/msp.m4 group=mail mode=0444
-file cf/feature/mtamark.m4 path=etc/mail/cf/feature/mtamark.m4 group=mail \
-    mode=0444
-file cf/feature/no_default_msa.m4 path=etc/mail/cf/feature/no_default_msa.m4 \
-    group=mail mode=0444
-file cf/feature/nocanonify.m4 path=etc/mail/cf/feature/nocanonify.m4 \
-    group=mail mode=0444
-file cf/feature/notsticky.m4 path=etc/mail/cf/feature/notsticky.m4 group=mail \
-    mode=0444
-file cf/feature/nouucp.m4 path=etc/mail/cf/feature/nouucp.m4 group=mail \
-    mode=0444
-file cf/feature/nullclient.m4 path=etc/mail/cf/feature/nullclient.m4 \
-    group=mail mode=0444
-file cf/feature/preserve_local_plus_detail.m4 \
-    path=etc/mail/cf/feature/preserve_local_plus_detail.m4 group=mail mode=0444
-file cf/feature/preserve_luser_host.m4 \
-    path=etc/mail/cf/feature/preserve_luser_host.m4 group=mail mode=0444
-file cf/feature/promiscuous_relay.m4 \
-    path=etc/mail/cf/feature/promiscuous_relay.m4 group=mail mode=0444
-file cf/feature/queuegroup.m4 path=etc/mail/cf/feature/queuegroup.m4 \
-    group=mail mode=0444
-file cf/feature/ratecontrol.m4 path=etc/mail/cf/feature/ratecontrol.m4 \
-    group=mail mode=0444
-file cf/feature/redirect.m4 path=etc/mail/cf/feature/redirect.m4 group=mail \
-    mode=0444
-file cf/feature/relay_based_on_MX.m4 \
-    path=etc/mail/cf/feature/relay_based_on_MX.m4 group=mail mode=0444
-file cf/feature/relay_entire_domain.m4 \
-    path=etc/mail/cf/feature/relay_entire_domain.m4 group=mail mode=0444
-file cf/feature/relay_hosts_only.m4 \
-    path=etc/mail/cf/feature/relay_hosts_only.m4 group=mail mode=0444
-file cf/feature/relay_local_from.m4 \
-    path=etc/mail/cf/feature/relay_local_from.m4 group=mail mode=0444
-file cf/feature/relay_mail_from.m4 path=etc/mail/cf/feature/relay_mail_from.m4 \
-    group=mail mode=0444
-file cf/feature/require_rdns.m4 path=etc/mail/cf/feature/require_rdns.m4 \
-    group=mail mode=0444
-file cf/feature/smrsh.m4 path=etc/mail/cf/feature/smrsh.m4 group=mail mode=0444
-file cf/feature/stickyhost.m4 path=etc/mail/cf/feature/stickyhost.m4 \
-    group=mail mode=0444
-file cf/feature/use_client_ptr.m4 path=etc/mail/cf/feature/use_client_ptr.m4 \
-    group=mail mode=0444
-file cf/feature/use_ct_file.m4 path=etc/mail/cf/feature/use_ct_file.m4 \
-    group=mail mode=0444
-file cf/feature/use_cw_file.m4 path=etc/mail/cf/feature/use_cw_file.m4 \
-    group=mail mode=0444
-file cf/feature/uucpdomain.m4 path=etc/mail/cf/feature/uucpdomain.m4 \
-    group=mail mode=0444
-file cf/feature/virtuser_entire_domain.m4 \
-    path=etc/mail/cf/feature/virtuser_entire_domain.m4 group=mail mode=0444
-file cf/feature/virtusertable.m4 path=etc/mail/cf/feature/virtusertable.m4 \
-    group=mail mode=0444
-file cf/m4/cf.m4 path=etc/mail/cf/m4/cf.m4 group=mail mode=0444
-file cf/m4/cfhead.m4 path=etc/mail/cf/m4/cfhead.m4 group=mail mode=0444
-file cf/m4/proto.m4 path=etc/mail/cf/m4/proto.m4 group=mail mode=0444
-file cf/m4/version.m4 path=etc/mail/cf/m4/version.m4 group=mail mode=0444
-file cf/mailer/local.m4 path=etc/mail/cf/mailer/local.m4 group=mail mode=0444
-file cf/mailer/procmail.m4 path=etc/mail/cf/mailer/procmail.m4 group=mail \
-    mode=0444
-file cf/mailer/smtp.m4 path=etc/mail/cf/mailer/smtp.m4 group=mail mode=0444
-file cf/mailer/uucp.m4 path=etc/mail/cf/mailer/uucp.m4 group=mail mode=0444
-file cf/ostype/solaris11.m4 path=etc/mail/cf/ostype/solaris11.m4 group=mail \
-    mode=0444
-file cf/ostype/solaris2.m4 path=etc/mail/cf/ostype/solaris2.m4 group=mail \
-    mode=0444
-file cf/ostype/solaris2.ml.m4 path=etc/mail/cf/ostype/solaris2.ml.m4 \
-    group=mail mode=0444
-file cf/ostype/solaris2.pre5.m4 path=etc/mail/cf/ostype/solaris2.pre5.m4 \
-    group=mail mode=0444
-file cf/ostype/solaris8.m4 path=etc/mail/cf/ostype/solaris8.m4 group=mail \
-    mode=0444
+file path=etc/mail/cf/domain/generic.m4
+file path=etc/mail/cf/domain/solaris-antispam.m4
+file path=etc/mail/cf/domain/solaris-generic.m4
+file path=etc/mail/cf/feature/accept_unqualified_senders.m4
+file path=etc/mail/cf/feature/accept_unresolvable_domains.m4
+file path=etc/mail/cf/feature/access_db.m4
+file path=etc/mail/cf/feature/allmasquerade.m4
+file path=etc/mail/cf/feature/always_add_domain.m4
+file path=etc/mail/cf/feature/badmx.m4
+file path=etc/mail/cf/feature/bestmx_is_local.m4
+file path=etc/mail/cf/feature/bitdomain.m4
+file path=etc/mail/cf/feature/blacklist_recipients.m4
+file path=etc/mail/cf/feature/block_bad_helo.m4
+file path=etc/mail/cf/feature/compat_check.m4
+file path=etc/mail/cf/feature/conncontrol.m4
+file path=etc/mail/cf/feature/delay_checks.m4
+file path=etc/mail/cf/feature/dnsbl.m4
+file path=etc/mail/cf/feature/domaintable.m4
+file path=etc/mail/cf/feature/enhdnsbl.m4
+file path=etc/mail/cf/feature/generics_entire_domain.m4
+file path=etc/mail/cf/feature/genericstable.m4
+file path=etc/mail/cf/feature/greet_pause.m4
+file path=etc/mail/cf/feature/ldap_routing.m4
+file path=etc/mail/cf/feature/limited_masquerade.m4
+file path=etc/mail/cf/feature/local_lmtp.m4
+file path=etc/mail/cf/feature/local_no_masquerade.m4
+file path=etc/mail/cf/feature/local_procmail.m4
+file path=etc/mail/cf/feature/lookupdotdomain.m4
+file path=etc/mail/cf/feature/loose_relay_check.m4
+file path=etc/mail/cf/feature/mailertable.m4
+file path=etc/mail/cf/feature/masquerade_entire_domain.m4
+file path=etc/mail/cf/feature/masquerade_envelope.m4
+file path=etc/mail/cf/feature/msp.m4
+file path=etc/mail/cf/feature/mtamark.m4
+file path=etc/mail/cf/feature/no_default_msa.m4
+file path=etc/mail/cf/feature/nocanonify.m4
+file path=etc/mail/cf/feature/nopercenthack.m4
+file path=etc/mail/cf/feature/notsticky.m4
+file path=etc/mail/cf/feature/nouucp.m4
+file path=etc/mail/cf/feature/nullclient.m4
+file path=etc/mail/cf/feature/preserve_local_plus_detail.m4
+file path=etc/mail/cf/feature/preserve_luser_host.m4
+file path=etc/mail/cf/feature/promiscuous_relay.m4
+file path=etc/mail/cf/feature/queuegroup.m4
+file path=etc/mail/cf/feature/ratecontrol.m4
+file path=etc/mail/cf/feature/redirect.m4
+file path=etc/mail/cf/feature/relay_based_on_MX.m4
+file path=etc/mail/cf/feature/relay_entire_domain.m4
+file path=etc/mail/cf/feature/relay_hosts_only.m4
+file path=etc/mail/cf/feature/relay_local_from.m4
+file path=etc/mail/cf/feature/relay_mail_from.m4
+file path=etc/mail/cf/feature/require_rdns.m4
+file path=etc/mail/cf/feature/smrsh.m4
+file path=etc/mail/cf/feature/stickyhost.m4
+file path=etc/mail/cf/feature/use_client_ptr.m4
+file path=etc/mail/cf/feature/use_ct_file.m4
+file path=etc/mail/cf/feature/use_cw_file.m4
+file path=etc/mail/cf/feature/uucpdomain.m4
+file path=etc/mail/cf/feature/virtuser_entire_domain.m4
+file path=etc/mail/cf/feature/virtusertable.m4
+file path=etc/mail/cf/m4/cf.m4
+file path=etc/mail/cf/m4/cfhead.m4
+file path=etc/mail/cf/m4/proto.m4
+file path=etc/mail/cf/m4/version.m4
+file path=etc/mail/cf/mailer/local.m4
+file path=etc/mail/cf/mailer/procmail.m4
+file path=etc/mail/cf/mailer/smtp.m4
+file path=etc/mail/cf/mailer/uucp.m4
+file path=etc/mail/cf/ostype/solaris11.m4
+file path=etc/mail/cf/ostype/solaris2.m4
+file path=etc/mail/cf/ostype/solaris2.ml.m4
+file path=etc/mail/cf/ostype/solaris2.pre5.m4
+file path=etc/mail/cf/ostype/solaris8.m4
 link path=etc/mail/cf/sh/check-hostname \
     target=../../../../usr/sbin/check-hostname
 link path=etc/mail/cf/sh/check-permissions \
     target=../../../../usr/sbin/check-permissions
-file cf/sh/makeinfo.sh path=etc/mail/cf/sh/makeinfo.sh group=mail mode=0444
+file path=etc/mail/cf/sh/makeinfo.sh
 file path=etc/mail/helpfile
 file local-host-names path=etc/mail/local-host-names \
     original_name=SUNWsndm:etc/mail/local-host-names preserve=true