From: Wietse Venema
Date: Fri, 27 Jun 2014 05:00:00 +0000 (-0500)
Subject: postfix-2.12-20140627
X-Git-Tag: v3.0.0-RC1~50
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbe8bc4b5a6216665b8619240cbbdab8fdabe933;p=thirdparty%2Fpostfix.git
postfix-2.12-20140627
---
diff --git a/postfix/HISTORY b/postfix/HISTORY
index 97e8a92b5..0ed03a52c 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -20029,14 +20029,42 @@ Apologies for any names omitted.
Cleanup: construction debris. Files: Makefile.in,
conf/postfix-script.
- Cleanup: replace expanded MAIL_VERSION with $mail_version
- in main.cf installation parameter settings, to permit safe
- upgrade of a running mail system. File: postfix-install.
+ Cleanup: replace the result of MAIL_VERSION expansion with
+ $mail_version in main.cf installation parameter settings,
+ to permit safe upgrade of a running mail system. File:
+ postfix-install.
- Cleanup: replace expanded MAIL_VERSION with $mail_version
- in built-in default installation parameter settings, for
- consistency with main.cf. File: makedefs, postfix-install,
- conf/post-install.
+ Cleanup: replace the result of MAIL_VERSION expansion with
+ $mail_version in built-in default installation parameter
+ settings, for consistency with main.cf. File: makedefs,
+ postfix-install, conf/post-install.
Cleanup: removed $mail_version from the default shlib_directory
value. Files: global/mail_params.h, proto/INSTALL.html.
+
+ Cleanup: in postfix-script, use find instead of ls to
+ determine permissions or ownership, and group some checks
+ with "pathname/." and "pathname/*" into one. Downside:
+ more warnings will now have "/./" in the middle of a pathname.
+ File: conf/postfix-script.
+
+ Cleanup: need to evaluate mail_version before evaluating
+ parameters that may contain $mail_version. File:
+ global/mail_params.h
+
+ Cleanup: the postmulti command now exercises the postconf
+ "-x" option to expand $parameter_name in secondary-instance
+ parameter values. File: postmulti/postmulti.c.
+
+ Cleanup: post-install also needed to replace the result of
+ MAIL_VERSION expansion with $mail_version, for the same
+ reasons as postfix-script. Viktor Dukhovni. File:
+ conf/post-install.
+
+20140627
+
+ Bugfix (introduced: 20140626) broken build and broken install
+ with default shlib_directory. Files: makedefs.
+
+ Bugfix (introduced: 20140627) broken install with default
+ shlib_directory. Files: conf/post-install.
diff --git a/postfix/INSTALL b/postfix/INSTALL
index 9dd024ddc..db35fc5a7 100644
--- a/postfix/INSTALL
+++ b/postfix/INSTALL
@@ -187,13 +187,11 @@ library support).
This installs shared libraries in $shlib_directory, typically /usr/lib/postfix
or /usr/local/lib/postfix, with file names libpostfix-name.so, where the name
-is a source-code directory name such as "util" or "global", and the version is
-the Postfix release version: x.y.z for stable releases, x.y-date for snapshot
-(development) releases, or x.y-date-nonprod for non-production releases.
+is a source-code directory name such as "util" or "global".
See section 4.3.3 "Customizing Postfix shared libraries and database plugins"
-below for how to customize the Postfix shared-library location and version,
-including support to upgrade a running mail system.
+below for how to customize the Postfix shared-library location, including
+support to upgrade a running mail system safely.
4.3.2 Turning on Postfix database-plugin support
diff --git a/postfix/README_FILES/INSTALL b/postfix/README_FILES/INSTALL
index cba343f41..6fe50e057 100644
--- a/postfix/README_FILES/INSTALL
+++ b/postfix/README_FILES/INSTALL
@@ -187,13 +187,11 @@ library support).
This installs shared libraries in $shlib_directory, typically /usr/lib/postfix
or /usr/local/lib/postfix, with file names libpostfix-name.so, where the name
-is a source-code directory name such as "util" or "global", and the version is
-the Postfix release version: x.y.z for stable releases, x.y-date for snapshot
-(development) releases, or x.y-date-nonprod for non-production releases.
+is a source-code directory name such as "util" or "global".
See section 4.3.3 "Customizing Postfix shared libraries and database plugins"
-below for how to customize the Postfix shared-library location and version,
-including support to upgrade a running mail system.
+below for how to customize the Postfix shared-library location, including
+support to upgrade a running mail system safely.
44..33..22 TTuurrnniinngg oonn PPoossttffiixx ddaattaabbaassee--pplluuggiinn ssuuppppoorrtt
diff --git a/postfix/conf/post-install b/postfix/conf/post-install
index f81f6b91d..0c2ca8bb9 100644
--- a/postfix/conf/post-install
+++ b/postfix/conf/post-install
@@ -424,6 +424,28 @@ POSTCONF="$command_directory/postconf"
# Save settings, allowing command line/environment override.
+# Undo MAIL_VERSION expansion. If someone really wants the expanded
+# mail version in main.cf, we're sorry.
+
+# Confine side effects from mail_version unexpansion within a subshell.
+
+(case "$mail_version" in
+"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
+esac
+
+for name in $MOST_PARAMETERS
+do
+ eval junk=\$$name
+ case "$junk" in
+ *"$mail_version"*)
+ case "$pattern" in
+ "") pattern=`echo "$mail_version" | sed 's/\./\\\\./g'` || exit 1
+ esac
+ val=`echo "$junk" | sed "s/$pattern/"'$mail_version/g'` || exit 1
+ eval ${name}='"$val"'
+ esac
+done
+
override=
for name in $MOST_PARAMETERS
do
@@ -451,7 +473,7 @@ test -n "$override" && {
"shlib_directory = $shlib_directory" \
"meta_directory = $meta_directory" \
|| exit 1
-}
+} || exit 0) || exit 1
# Use file/directory status information in $meta_directory/postfix-files.
diff --git a/postfix/conf/postfix-script b/postfix/conf/postfix-script
index de29c18e1..19088a688 100755
--- a/postfix/conf/postfix-script
+++ b/postfix/conf/postfix-script
@@ -252,60 +252,55 @@ check-fatal)
check-warn)
# This command is NOT part of the public interface.
- todo="$config_directory $queue_directory $queue_directory/pid"
- test -n "$check_shared_files" && {
- todo="$daemon_directory $todo"
- test "$shlib_directory" = "no" || todo="$shlib_directory $todo"
- todo="$meta_directory $todo"
- }
- todo=`echo "$todo" | tr ' ' '\12' | sort -u`
+ # Check Postfix root-owned directory owner/permissions.
- for dir in $todo
- do
- ls -lLd $dir | (grep " root " >/dev/null ||
- $WARN not owned by root: $dir)
- done
+ find $queue_directory/. $queue_directory/pid \
+ -prune ! -user root \
+ -exec $WARN not owned by root: {} \;
- # Some people break Postfix's security model.
- ls -lLd $queue_directory | egrep '^.....(w|...w)' >/dev/null && \
- $WARN group or other writable: $queue_directory
+ find $queue_directory/. $queue_directory/pid \
+ -prune \( -perm -020 -o -perm -002 \) \
+ -exec $WARN group or other writable: {} \;
- todo="$config_directory/*"
- test -n "$check_shared_files" && {
- todo="$daemon_directory/* $todo"
- test "$shlib_directory" = "no" ||
- todo="$shlib_directory/* $todo"
- todo="$meta_directory/* $todo"
- }
- todo=`echo "$todo" | tr ' ' '\12' | sort -u`
-
- find $todo ! -user root \
- -exec $WARN not owned by root: {} \;
+ # Check Postfix root-owned directory tree owner/permissions.
todo="$config_directory/."
test -n "$check_shared_files" && {
- todo="$daemon_directory/. $todo"
+ todo="$daemon_directory/. $meta_directory/. $todo"
test "$shlib_directory" = "no" ||
todo="$shlib_directory/. $todo"
- todo="$meta_directory/. $todo"
}
todo=`echo "$todo" | tr ' ' '\12' | sort -u`
- find $todo \
- \( -perm -020 -o -perm -002 \) -type f \
- -exec $WARN group or other writable: {} \;
+ find $todo ! -user root \
+ -exec $WARN not owned by root: {} \;
+
+ find $todo \( -perm -020 -o -perm -002 \) \
+ -exec $WARN group or other writable: {} \;
+
+ # Check Postfix mail_owner-owned directory tree owner/permissions.
find $data_directory/. ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: {} \;
- ls -lLd $data_directory | egrep '^.....(w|...w)' >/dev/null && \
- $WARN group or other writable: $data_directory
+ find $data_directory/. \( -perm -020 -o -perm -002 \) \
+ -exec $WARN group or other writable: {} \;
+
+ # Check Postfix mail_owner-owned directory tree owner.
find `ls -d $queue_directory/* | \
egrep '/(saved|incoming|active|defer|deferred|bounce|hold|trace|corrupt|public|private|flush)$'` \
! \( -type p -o -type s \) ! -user $mail_owner \
-exec $WARN not owned by $mail_owner: {} \;
+ # WARNING: this should not descend into the maildrop directory.
+ # maildrop is the least trusted Postfix directory.
+
+ find $queue_directory/maildrop -prune ! -user $mail_owner \
+ -exec $WARN not owned by $mail_owner: $queue_directory/maildrop \;
+
+ # Check Postfix setgid_group-owned directory and file group/permissions.
+
todo="$queue_directory/public $queue_directory/maildrop"
test -n "$check_shared_files" &&
todo="$command_directory/postqueue $command_directory/postdrop $todo"
@@ -319,33 +314,27 @@ check-warn)
-prune ! -perm -02111 \
-exec $WARN not set-gid or not owner+group+world executable: {} \;
- for name in `ls -d $queue_directory/* | \
- egrep '/(bin|etc|lib|usr)$'` ; \
- do \
- find $name ! -user root \
- -exec $WARN not owned by root: {} \; ; \
- done
-
- # WARNING: this should not descend into the maildrop directory.
- # maildrop is the least trusted Postfix directory.
-
- find $queue_directory/maildrop/. -prune ! -user $mail_owner \
- -exec $WARN not owned by $mail_owner: $queue_directory/maildrop \;
+ # Check non-Postfix root-owned directory tree owner/content.
for dir in bin etc lib sbin usr
do
- test -d $dir && find $dir -type f -print | while read path
+ test -d $dir && {
+ find $dir ! -user root \
+ -exec $WARN not owned by root: $queue_directory/{} \;
+
+ find $dir -type f -print | while read path
do
- test -f /$path && {
- cmp -s $path /$path ||
- $WARN $queue_directory/$path and /$path differ
- }
+ test -f /$path && {
+ cmp -s $path /$path ||
+ $WARN $queue_directory/$path and /$path differ
+ }
done
+ }
done
find corrupt -type f -exec $WARN damaged message: {} \;
- # XXX also: look for weird stuff, weird permissions, etc.
+ # Check for non-Postfix MTA remnants.
test -n "$check_shared_files" -a -f /usr/sbin/sendmail -a \
-f /usr/lib/sendmail && {
diff --git a/postfix/html/INSTALL.html b/postfix/html/INSTALL.html
index 104f43dc6..e2f818cfb 100644
--- a/postfix/html/INSTALL.html
+++ b/postfix/html/INSTALL.html
@@ -286,15 +286,12 @@ shared-library support).
This installs shared libraries in $shlib_directory, typically
/usr/lib/postfix or /usr/local/lib/postfix, with file names
libpostfix-name.so, where the name is a source-code
-directory name such as "util" or "global", and the version
-is the Postfix release version: x.y.z for stable releases,
-x.y-date for snapshot (development) releases, or
-x.y-date-nonprod for non-production releases.
+directory name such as "util" or "global".
See section 4.3.3 "Customizing Postfix shared libraries and
database plugins" below for how to customize the Postfix shared-library
-location and version, including support to upgrade a running mail
-system.
+location, including support to upgrade a running mail system safely.
+
diff --git a/postfix/html/postfix.1.html b/postfix/html/postfix.1.html
index 2a850394f..0453a284c 100644
--- a/postfix/html/postfix.1.html
+++ b/postfix/html/postfix.1.html
@@ -186,36 +186,37 @@ POSTFIX(1) POSTFIX(1)
ter.cf.proto.
shlib_directory (see 'postconf -d' output)
- The location of Postfix shared libraries (libpostfix-*.so.*),
- and of Postfix database plugins that have a relative pathname in
- the dynamicmaps.cf file.
+ The location of Postfix shared libraries (libpostfix-*.so), and
+ the default location of Postfix database plugins (libpost-
+ fix-*.so) that have a relative pathname in the dynamicmaps.cf
+ file.
Other configuration parameters:
import_environment (see 'postconf -d' output)
- The list of environment parameters that a Postfix process will
+ The list of environment parameters that a Postfix process will
import from a non-Postfix parent process.
syslog_facility (mail)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the process name in
- syslog records, so that "smtpd" becomes, for example, "post-
+ The mail system name that is prepended to the process name in
+ syslog records, so that "smtpd" becomes, for example, "post-
fix/smtpd".
Available in Postfix version 2.6 and later:
multi_instance_directories (empty)
- An optional list of non-default Postfix configuration directo-
- ries; these directories belong to additional Postfix instances
- that share the Postfix executable files and documentation with
- the default Postfix instance, and that are started, stopped,
+ An optional list of non-default Postfix configuration directo-
+ ries; these directories belong to additional Postfix instances
+ that share the Postfix executable files and documentation with
+ the default Postfix instance, and that are started, stopped,
etc., together with the default Postfix instance.
multi_instance_wrapper (empty)
- The pathname of a multi-instance manager command that the post-
- fix(1) command invokes when the multi_instance_directories
+ The pathname of a multi-instance manager command that the post-
+ fix(1) command invokes when the multi_instance_directories
parameter value is non-empty.
multi_instance_group (empty)
@@ -225,15 +226,15 @@ POSTFIX(1) POSTFIX(1)
The optional instance name of this Postfix instance.
multi_instance_enable (no)
- Allow this Postfix instance to be started, stopped, etc., by a
+ Allow this Postfix instance to be started, stopped, etc., by a
multi-instance manager.
FILES
- Prior to Postfix version 2.6, all of the following files were in $con-
+ Prior to Postfix version 2.6, all of the following files were in $con-
fig_directory. Some files are now in $daemon_directory so that they can
be shared among multiple instances that run the same Postfix version.
- Use the command "postconf config_directory" or "postconf daemon_direc-
+ Use the command "postconf config_directory" or "postconf daemon_direc-
tory" to expand the names into their actual values.
$config_directory/main.cf, Postfix configuration parameters
diff --git a/postfix/html/postmulti.1.html b/postfix/html/postmulti.1.html
index cd84a79a2..e647f355a 100644
--- a/postfix/html/postmulti.1.html
+++ b/postfix/html/postmulti.1.html
@@ -365,9 +365,10 @@ POSTMULTI(1) POSTMULTI(1)
ter.cf.proto.
shlib_directory (see 'postconf -d' output)
- The location of Postfix shared libraries (libpostfix-*.so.*),
- and of Postfix database plugins that have a relative pathname in
- the dynamicmaps.cf file.
+ The location of Postfix shared libraries (libpostfix-*.so), and
+ the default location of Postfix database plugins (libpost-
+ fix-*.so) that have a relative pathname in the dynamicmaps.cf
+ file.
FILES
$meta_directory/main.cf.proto, stock configuration file
diff --git a/postfix/makedefs b/postfix/makedefs
index 94687094f..faff21d16 100644
--- a/postfix/makedefs
+++ b/postfix/makedefs
@@ -922,12 +922,8 @@ EOF
eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
parm_val=`./makedefs.test` || exit 1
rm -f makedefs.test makedefs.test.[co]
- case $parm_val in
- *'$'mail_version*|*'$'{mail_version}*|'$('mail_version')'*)
- parm_val=`expand_mail_version "$parm_val"` || exit 1
- eval ${parm_name}=\""\$parm_val"\"
- esac
- CCARGS="$CCARGS -D$parm_macro=\\\"$parm_val\\\""
+ eval ${parm_name}=\""\$parm_val"\"
+ #CCARGS="$CCARGS -D$parm_macro=\\\"$parm_val\\\""
;;
*) # this parameter was already checked above.
error "Can't happen in $0 - $parm_val is not an absolute path"
diff --git a/postfix/man/man1/postfix.1 b/postfix/man/man1/postfix.1
index 206c61380..5a62e7d71 100644
--- a/postfix/man/man1/postfix.1
+++ b/postfix/man/man1/postfix.1
@@ -170,9 +170,9 @@ The location of non-executable files that are shared among
multiple Postfix instances, such as postfix-files, dynamicmaps.cf,
and the multi-instance template files main.cf.proto and master.cf.proto.
.IP "\fBshlib_directory (see 'postconf -d' output)\fR"
-The location of Postfix shared libraries (libpostfix-*.so.*),
-and of Postfix database plugins that have a relative pathname in
-the dynamicmaps.cf file.
+The location of Postfix shared libraries (libpostfix-*.so),
+and the default location of Postfix database plugins (libpostfix-*.so)
+that have a relative pathname in the dynamicmaps.cf file.
.PP
Other configuration parameters:
.IP "\fBimport_environment (see 'postconf -d' output)\fR"
diff --git a/postfix/man/man1/postmulti.1 b/postfix/man/man1/postmulti.1
index f26b339c3..6512fb598 100644
--- a/postfix/man/man1/postmulti.1
+++ b/postfix/man/man1/postmulti.1
@@ -375,9 +375,9 @@ The location of non-executable files that are shared among
multiple Postfix instances, such as postfix-files, dynamicmaps.cf,
and the multi-instance template files main.cf.proto and master.cf.proto.
.IP "\fBshlib_directory (see 'postconf -d' output)\fR"
-The location of Postfix shared libraries (libpostfix-*.so.*),
-and of Postfix database plugins that have a relative pathname in
-the dynamicmaps.cf file.
+The location of Postfix shared libraries (libpostfix-*.so),
+and the default location of Postfix database plugins (libpostfix-*.so)
+that have a relative pathname in the dynamicmaps.cf file.
.SH "FILES"
.na
.nf
diff --git a/postfix/postfix-install b/postfix/postfix-install
index e4bb6f942..7707622da 100644
--- a/postfix/postfix-install
+++ b/postfix/postfix-install
@@ -793,7 +793,7 @@ do
exit 1;;
esac
- done
+done
# Save the installation parameters to main.cf even when they haven't
# changed from their current default. Defaults can change between
@@ -812,7 +812,10 @@ do
eval junk=\$$name
case "$junk" in
*"$mail_version"*)
- val=`echo "$junk" | sed "s/$mail_version/"'$mail_version/g'` || exit 1
+ case "$pattern" in
+ "") pattern=`echo "$mail_version" | sed 's/\./\\\\./g'` || exit 1
+ esac
+ val=`echo "$junk" | sed "s/$pattern/"'$mail_version/g'` || exit 1
eval ${name}='"$val"'
esac
done
@@ -838,6 +841,9 @@ bin/postconf -c $CONFIG_DIRECTORY -e \
# If Postfix is being installed locally from source code, do the
# post-install processing now.
+# The unexpansion above may have side effects on exported variables.
+# It does not matter because bin/postfix below will override them.
+
test -n "$install_root" || {
bin/postfix post-install $post_install_options || exit 1
}
diff --git a/postfix/proto/INSTALL.html b/postfix/proto/INSTALL.html
index f1e3672bc..77a2dca1b 100644
--- a/postfix/proto/INSTALL.html
+++ b/postfix/proto/INSTALL.html
@@ -286,10 +286,7 @@ shared-library support).
This installs shared libraries in $shlib_directory, typically
/usr/lib/postfix or /usr/local/lib/postfix, with file names
libpostfix-name.so, where the name is a source-code
-directory name such as "util" or "global", and the version
-is the Postfix release version: x.y.z for stable releases,
-x.y-date for snapshot (development) releases, or
-x.y-date-nonprod for non-production releases.
+directory name such as "util" or "global".
See section 4.3.3 "Customizing Postfix shared libraries and
database plugins" below for how to customize the Postfix shared-library
diff --git a/postfix/src/global/mail_params.c b/postfix/src/global/mail_params.c
index ba77e91cf..f7b2d2ce1 100644
--- a/postfix/src/global/mail_params.c
+++ b/postfix/src/global/mail_params.c
@@ -527,6 +527,8 @@ static char *read_param_from_file(const char *path)
void mail_params_init()
{
static const CONFIG_STR_TABLE first_str_defaults[] = {
+ /* $mail_version may appear in other parameters. */
+ VAR_MAIL_VERSION, DEF_MAIL_VERSION, &var_mail_version, 1, 0,
VAR_SYSLOG_FACILITY, DEF_SYSLOG_FACILITY, &var_syslog_facility, 1, 0,
VAR_INET_PROTOCOLS, DEF_INET_PROTOCOLS, &var_inet_protocols, 0, 0,
VAR_MULTI_CONF_DIRS, DEF_MULTI_CONF_DIRS, &var_multi_conf_dirs, 0, 0,
@@ -566,7 +568,6 @@ void mail_params_init()
VAR_DEFAULT_PRIVS, DEF_DEFAULT_PRIVS, &var_default_privs, 1, 0,
VAR_ALIAS_DB_MAP, DEF_ALIAS_DB_MAP, &var_alias_db_map, 0, 0,
VAR_MAIL_RELEASE, DEF_MAIL_RELEASE, &var_mail_release, 1, 0,
- VAR_MAIL_VERSION, DEF_MAIL_VERSION, &var_mail_version, 1, 0,
VAR_DB_TYPE, DEF_DB_TYPE, &var_db_type, 1, 0,
VAR_HASH_QUEUE_NAMES, DEF_HASH_QUEUE_NAMES, &var_hash_queue_names, 1, 0,
VAR_RCPT_DELIM, DEF_RCPT_DELIM, &var_rcpt_delim, 0, 0,
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h
index 48a909033..8a4f8971c 100644
--- a/postfix/src/global/mail_version.h
+++ b/postfix/src/global/mail_version.h
@@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20140626"
+#define MAIL_RELEASE_DATE "20140627"
#define MAIL_VERSION_NUMBER "2.12"
#ifdef SNAPSHOT
diff --git a/postfix/src/postfix/postfix.c b/postfix/src/postfix/postfix.c
index a1ec5ff4f..6909e1c24 100644
--- a/postfix/src/postfix/postfix.c
+++ b/postfix/src/postfix/postfix.c
@@ -160,9 +160,9 @@
/* multiple Postfix instances, such as postfix-files, dynamicmaps.cf,
/* and the multi-instance template files main.cf.proto and master.cf.proto.
/* .IP "\fBshlib_directory (see 'postconf -d' output)\fR"
-/* The location of Postfix shared libraries (libpostfix-*.so.*),
-/* and of Postfix database plugins that have a relative pathname in
-/* the dynamicmaps.cf file.
+/* The location of Postfix shared libraries (libpostfix-*.so),
+/* and the default location of Postfix database plugins (libpostfix-*.so)
+/* that have a relative pathname in the dynamicmaps.cf file.
/* .PP
/* Other configuration parameters:
/* .IP "\fBimport_environment (see 'postconf -d' output)\fR"
diff --git a/postfix/src/postmulti/postmulti.c b/postfix/src/postmulti/postmulti.c
index 00c57010a..1dd13997b 100644
--- a/postfix/src/postmulti/postmulti.c
+++ b/postfix/src/postmulti/postmulti.c
@@ -359,9 +359,9 @@
/* multiple Postfix instances, such as postfix-files, dynamicmaps.cf,
/* and the multi-instance template files main.cf.proto and master.cf.proto.
/* .IP "\fBshlib_directory (see 'postconf -d' output)\fR"
-/* The location of Postfix shared libraries (libpostfix-*.so.*),
-/* and of Postfix database plugins that have a relative pathname in
-/* the dynamicmaps.cf file.
+/* The location of Postfix shared libraries (libpostfix-*.so),
+/* and the default location of Postfix database plugins (libpostfix-*.so)
+/* that have a relative pathname in the dynamicmaps.cf file.
/* FILES
/* $meta_directory/main.cf.proto, stock configuration file
/* $meta_directory/master.cf.proto, stock configuration file
@@ -789,14 +789,13 @@ static INSTANCE *load_instance(INSTANCE *ip)
};
/*
- * XXX: We could really use a "postconf -E" to expand values in the
- * context of the target main.cf!
+ * Expand parameter values in the context of the target main.cf file.
*/
#define REQUEST_PARAM_COUNT 5 /* # of requested parameters */
cmd = argv_alloc(REQUEST_PARAM_COUNT + 3);
name = concatenate(var_command_dir, "/", "postconf", (char *) 0);
- argv_add(cmd, name, "-c", ip->config_dir,
+ argv_add(cmd, name, "-xc", ip->config_dir,
VAR_QUEUE_DIR, VAR_DATA_DIR,
VAR_MULTI_NAME, VAR_MULTI_GROUP, VAR_MULTI_ENABLE,
(char *) 0);
diff --git a/postfix/src/util/dict_test.c b/postfix/src/util/dict_test.c
index 4b4529847..93d3f7dca 100644
--- a/postfix/src/util/dict_test.c
+++ b/postfix/src/util/dict_test.c
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
DEFINE_DICT_LMDB_MAP_SIZE;
DEFINE_DICT_DB_CACHE_SIZE;