2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-29 13:18:12 +00:00

snapshot-20020114

This commit is contained in:
Wietse Venema 2002-01-14 00:00:00 -05:00 committed by Viktor Dukhovni
parent 2e7d506175
commit 046bb3324d
14 changed files with 146 additions and 45 deletions

View File

@ -5953,8 +5953,17 @@ Apologies for any names omitted.
Rewrote postfix-install. The postfix-files file now controls
what is installed. Refined the semantics of many post-install
operations. post-install now auto-saves settings that override
main.cf.
operations. post-install now auto-saves settings that
override main.cf.
20020114
Bugfix: alternate_config_directories did not take comma
or whitespace as separators. File: global/mail_conf.c.
Victor Duchovny, Norgan Stanley.
Bugfix: the rewritten postfix-install script did not chattr
+S the Postfix queue.
Open problems:

View File

@ -183,6 +183,10 @@ again.
6 - Installing the software after successful compilation
========================================================
This text describes how to install Postfix from source code. See
the PACKAGE_README file if you are building a package for distribution
to other systems.
IMPORTANT: if you are REPLACING an existing sendmail installation
with Postfix, you may need to keep the old sendmail program running
for some time in order to flush the mail queue. As superuser,

View File

@ -14,7 +14,7 @@ default: update
update depend printfck clean tidy depend_update: Makefiles
$(MAKE) MAKELEVEL= $@
install:
install upgrade:
@echo Please review the INSTALL instructions first.
makefiles Makefiles:

View File

@ -14,7 +14,7 @@ default: update
update depend printfck clean tidy depend_update: Makefiles
$(MAKE) MAKELEVEL= $@
install:
install upgrade:
@echo Please review the INSTALL instructions first.
makefiles Makefiles:

View File

@ -56,9 +56,9 @@ be lost when you update a table while Postfix is running.
Building Postfix on Linux with a specific Berkeley DB version
=============================================================
Some Linux systems systems ship with multiple Berkeley DB
implementations. Normally, Postfix builds with the default DB
version that ships with the system.
Some Linux systems ship with multiple Berkeley DB implementations.
Normally, Postfix builds with the default DB version that ships
with the system.
On Linux, you need to edit the makedefs script in order to specify
a non-default DB library.

View File

@ -167,7 +167,7 @@ parameter below, "server_host", would be defined in main.cf as
postfix-users@postfix.org mailing list.
debuglevel (0)
What level to set for debugging in the the OpenLDAP libraries.
What level to set for debugging in the OpenLDAP libraries.
Don't use quotes in these variables; at least, not until the Postfix
configuration routines understand how to deal with quoted strings.

View File

@ -245,8 +245,8 @@ are supported.
With the above settings, the Postfix local delivery agent expands
aliases and .forward files, and delegates mailbox delivery to the
the Cyrus LMTP server. Postfix makes a connection to port 24 on
the local host, subsequently transmitting the message to the lmtpd
Cyrus LMTP server. Postfix makes a connection to port 24 on the
local host, subsequently transmitting the message to the lmtpd
server managed by the Cyrus master process.

View File

@ -0,0 +1,80 @@
Hints and tips for Postfix packagers
====================================
1) The installed main.cf file must be small. PLEASE resist the
temptation to list all 100 million Postfix parameters in the main.cf
file. Postfix is supposed to be easy to configure. Listing all
100 million parameters in main.cf defeats the purpose.
2) Please provide the sample-xxx files. If these files are not
installed in the same directory as main.cf, PLEASE update the notice
at the top of main.cf that advises the user of the existence of
the sample-xxx files. Without the sample-xxx files, Postfix will
be much more difficult to configure.
Building a package for distribution to other systems
====================================================
You can build a Postfix package on a machine that does not have
Postfix installed on it. All you need is Postfix source code and
a compilation environment that is compatible with the target system.
You can build a pre-built Postfix package as an unprivileged user,
but the result will be cleaner if you build the package as root.
After successful Postfix compilation, execute:
% sh postfix-install
You will be prompted for installation parameters. Specify an
install_root directory other than /. The mail_owner and setgid_group
installation parameter settings will be recorded in the main.cf
file, but they won't take effect until the package is unpacked and
installed on the destination machine.
If you want to fully automate the process, specify all the non-default
installation parameters on the command line:
% sh postfix-install -non-interactive install_root=/some/where ...
Begin Security Alert.
When building an archive for distribution, be sure to archive only
files and symbolic links, not their parent directories. Otherwise,
unpacking a pre-built Postfix package may mess up permission and/or
ownership of system directories such as / /etc /usr /usr/bin /var
/var/spool and so on. This is especially an issue if you executed
postfix-install (see above) as an unprivileged user.
End Security Alert.
Thus, instead of simply tarring up a pre-built tree it is much
safer if you jump the following hoops:
% cd /install/root
% rm -f /some/where/outputfile
% find . \! -type d -print | xargs tar rf /some/where/outputfile
% gzip /some/where/outputfile
Installing a pre-built Postfix package
======================================
To unpack a pre-built Postfix package, execute the equivalent of:
# umask 022
# gzip -d <outputfile.tar.gz | (cd / ; tar xvpf -)
The umask command is necessary for getting the correct permissions
on non-Postfix directories that need to be created in the process.
Create the necessary mail_owner account and setgid_group group for
exclusive use by Postfix.
Execute the post-install script in the Postfix configuration
directory to set ownership and permission of Postfix files and
directories. Specify any non-default settings for mail_owner or
setgid_group on the post-install command line:
# sh post-install upgrade-package setgid_group=xxx mail_owner=yyy
This will also update the main.cf and master.cf files if necessary.

View File

@ -44,5 +44,5 @@ addresses (breaking down user@domain into user@, domain, user,
canonical maps and virtual maps.
An additional restriction is that regular expression tables cannot
cannot be used for local alias database lookups. That would be a
security exposure anyway.
be used for local alias database lookups. That would be a security
exposure anyway.

View File

@ -327,12 +327,12 @@ $0: Error: some required installation parameters are not defined.
- Either the parameters need to be given in the $config_directory/main.cf
file from a recent Postfix installation,
- Or the parameters need to be specified as name=value arguments
on the $0 command line,
- Or the parameters need to be specified through the process
environment.
- Or the parameters need to be specified as name=value arguments
on the $0 command line,
The following parameters were missing:
$missing

View File

@ -77,7 +77,7 @@
# This parameter setting is not recorded in the installed main.cf file.
# .IP tempdir
# Directory for scratch files while installing Postfix.
# You must must have write permission in this directory.
# You must have write permission in this directory.
# The built-in default directory name is the current directory.
# This parameter setting is not recorded in the installed main.cf file.
# .IP config_directory
@ -184,6 +184,17 @@ test -x bin/postconf || {
exit 1
}
#
# LINUX by default does not synchronously update directories -
# that's dangerous for mail.
#
if [ -f /usr/bin/chattr ]
then
CHATTR="/usr/bin/chattr +S"
else
CHATTR=echo
fi
case `uname -s` in
HP-UX*) FMT=cat;;
*) FMT=fmt;;
@ -277,7 +288,7 @@ useful if you are building ready-to-install packages for distribution
to other machines."
tempdir_prompt="a directory for scratch files while installing
Postfix. You must must have write permission in this directory."
Postfix. You must have write permission in this directory."
config_directory_prompt="the destination directory for installed
Postfix configuration files."
@ -313,10 +324,10 @@ used by any other accounts on the system."
setgid_group_prompt="the group for mail submission and for queue
management commands. Specify a group name with a numerical group
ID that is not shared with other accounts, not even with the Postfix
mail_owner account."
mail_owner account. You can no longer specify \"no\" here."
manpage_path_prompt="the destination directory for the Postfix on-line
manual pages."
manual pages. You can no longer specify \"no\" here."
# Default settings, just to get started.
@ -545,6 +556,7 @@ do
test -z "$owner" || chown $owner $path || exit 1
test -z "$group" || chgrp $group $path || exit 1
chmod $mode $path || exit 1
$CHATTR $path >/dev/null 2>/dev/null
}
continue;;
[fl]) ;;
@ -582,20 +594,11 @@ do
esac) || exit 1
done
# If Postfix is being installed locally from source code, do the
# post-install processing now. The post-install script will update
# main.cf with actual installaton parameter settings.
#
# If Postfix is being packaged for distribution to other systems,
# save the installation parameters to main.cf so they can be used
# as default settings when the post-install script is executed.
# Save the installation parameters to main.cf even when they haven't
# changed from their current default. Defaults can change between
# Postfix releases, and software should not suddenly be installed in
# the wrong place when Postfix is being upgraded.
if [ -z "$install_root" ]
then
export daemon_directory command_directory queue_directory mail_owner \
setgid_group sendmail_path newaliases_path mailq_path manpage_path
${SHELL} conf/post-install $post_install_options || exit 1
else
bin/postconf -c $CONFIG_DIRECTORY -e \
"daemon_directory = $daemon_directory" \
"command_directory = $command_directory" \
@ -607,4 +610,9 @@ else
"newaliases_path = $newaliases_path" \
"manpage_path = $manpage_path" \
|| exit 1
fi
# If Postfix is being installed locally from source code, do the
# post-install processing now.
test -n "$install_root" ||
${SHELL} conf/post-install $post_install_options || exit 1

View File

@ -118,7 +118,7 @@ static void mail_conf_checkdir(const char *config_dir)
while (found == 0 && readlline(buf, fp, (int *) 0)) {
if (split_nameval(vstring_str(buf), &name, &value) == 0
&& strcmp(name, VAR_CONFIG_DIRS) == 0) {
while (found == 0 && (cp = mystrtok(&value, "\t\r\n")) != 0)
while (found == 0 && (cp = mystrtok(&value, ", \t\r\n")) != 0)
if (strcmp(cp, config_dir) == 0)
found = 1;
}

View File

@ -15,7 +15,7 @@
* Version of this program.
*/
#define VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "Snapshot-20020113"
#define DEF_MAIL_VERSION "Snapshot-20020114"
extern char *var_mail_version;
/* LICENSE