From: Wietse Venema
Date: Sat, 24 May 2014 05:00:00 +0000 (-0500)
Subject: postfix-2.12-20140524-nonprod
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5da2a21b38995909be18e1412b8e6acb66f3c6ae;p=thirdparty%2Fpostfix.git
postfix-2.12-20140524-nonprod
---
diff --git a/postfix/HISTORY b/postfix/HISTORY
index ac5d9fd54..3524b8d90 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -19831,3 +19831,22 @@ Apologies for any names omitted.
Cleanup: port for ancient Solaris9 revealed some non-portability.
Files: master/Makefile.in, makedefs, sys_defs.h.
+
+20140524
+
+ Cleanup: specify database library dependencies with variables
+ named AUXLIBS_CDB, AUXLIBS_LDAP, etc. The global AUXLIBS
+ variable is still supported, but the new variables are
+ required when building dynamically-loadable building database
+ plugins. Files: RELEASE_NOTES, INSTALL.html, CDB_README.html,
+ LDAP_README.html, LMDB_README.html, MYSQL_README.html,
+ PCRE_README.html, PGSQL_README.html, SQLITE_README.html,
+ makedefs, util/Makefile.in, global/Makefile.in.
+
+ Workaround: reportedly, MacOS can fail to move a symlink
+ with a relative target across file system boundaries, because
+ it examines the symlink with stat() instead of lstat().
+ Files: makedefs, Makefile.in.
+
+ Cleanup: use readlink to verify symlink target. File:
+ postfix-install.
diff --git a/postfix/INSTALL b/postfix/INSTALL
index ea8d1dba8..715dddf8b 100644
--- a/postfix/INSTALL
+++ b/postfix/INSTALL
@@ -201,6 +201,11 @@ where the type is a database type such as "ldap" or "lmdb", and where the
version is the same as for Postfix shared libraries. The installed
dynamicmaps.cf configuration file is given a suffix with the same version.
+NOTE: Postfix 2.12 expects that you specify database library dependencies with
+variables named AUXLIBS_CDB, AUXLIBS_LDAP, etc. The old AUXLIBS variable is
+still supported, but the new variables are required when building database
+plugins.
+
To override the default location or shared-library version, specify, for
example:
@@ -349,8 +354,13 @@ The following is an extensive list of names and values.
_____________________________________________________________________________
|Name/Value |Description |
|______________________________|______________________________________________|
-|AUXLIBS="object_library..." |Specifies one or more non-default object |
-| |libraries. |
+| |Specifies one or more non-default object |
+| |libraries. Postfix 2,12 and later specify some|
+| |of their database library dependencies with |
+|AUXLIBS="object_library..." |AUXLIBS_CDB, AUXLIBS_LDAP, AUXLIBS_LMDB, |
+| |AUXLIBS_MYSQL, AUXLIBS_PCRE, AUXLIBS_PGSQL, |
+| |AUXLIBS_SDBM, and AUXLIBS_SQLITE, |
+| |respectively. |
|______________________________|______________________________________________|
|CC=compiler_command |Specifies a non-default compiler. On many |
| |systems, the default is gcc. |
diff --git a/postfix/Makefile.in b/postfix/Makefile.in
index 281361019..927a655ca 100644
--- a/postfix/Makefile.in
+++ b/postfix/Makefile.in
@@ -55,14 +55,17 @@ libexec/post-install: conf/post-install
libexec/postfix-files: conf/postfix-files conf/makedefs.out Makefile
rm -f $@
- if [ "${SHLIB_DIR}" = "no" -o "${SHLIB_DIR}" = "" ]; then \
+ (if [ "${SHLIB_DIR}" = "no" -o "${SHLIB_DIR}" = "" ]; then \
sed -e '/^\$$shlib_directory/d' \
- -e '/^\$$plugin_directory/d' conf/postfix-files >$@; \
+ -e '/^\$$plugin_directory/d' conf/postfix-files; \
elif [ "${PLUGIN_DIR}" = "no" -o "${PLUGIN_DIR}" = "" ]; then \
- sed -e '/^\$$plugin_directory/d' conf/postfix-files | $(EXPAND) >$@; \
+ sed -e '/^\$$plugin_directory/d' conf/postfix-files | $(EXPAND); \
else \
- $(EXPAND) conf/postfix-files >$@; \
- fi
+ $(EXPAND) conf/postfix-files; \
+ fi) | case "$(MAKE_FIX)" in \
+ *cant-move-relative-symlink*) sed 's/:l:dynamic/:h:dynamic/';; \
+ *) cat;; \
+ esac > $@
libexec/postfix-script: conf/postfix-script
rm -f $@ && ln -f $? $@
@@ -127,6 +130,7 @@ tidy: clean
rm -f README_FILES/RELEASE_NOTES
ln -s ../RELEASE_NOTES README_FILES
rm -f bin/[!CRS]* lib/[!CRS]* include/[!CRS]* libexec/[!CRS]* plugins/[!CRS]* \
+ src/*/libpostfix-*.so.* src/*/libpostfix-*.dylib.* \
src/*/postfix-*.so.* src/*/postfix-*.dylib.* \
junk */junk */*/junk \
*core */*core */*/*core \
diff --git a/postfix/README_FILES/CDB_README b/postfix/README_FILES/CDB_README
index 502b7c491..0b37e4cd4 100644
--- a/postfix/README_FILES/CDB_README
+++ b/postfix/README_FILES/CDB_README
@@ -42,7 +42,7 @@ To build Postfix after you have installed tinycdb, use something like:
% make tidy
% CDB=../../../tinycdb-0.5
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
- "AUXLIBS=$CDB/libcdb.a"
+ "AUXLIBS_CDB=$CDB/libcdb.a"
% make
Alternatively, for the D.J.B. version of CDB:
@@ -50,9 +50,14 @@ Alternatively, for the D.J.B. version of CDB:
% make tidy
% CDB=../../../cdb-0.75
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
- "AUXLIBS=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
+ "AUXLIBS_CDB=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/
+ byte.a"
% make
+Postfix versions before 2.12 should use AUXLIBS instead of AUXLIBS_CDB. Postfix
+2.12 and later still support the old global AUXLIBS variable, but AUXLIBS_CDB
+is required when building dynamically-loadable database plugins.
+
After Postfix has been built with cdb support, you can use "cdb" tables
wherever you can use read-only "hash", "btree" or "dbm" tables. However, the
"ppoossttmmaapp --ii" (incremental record insertion) and "ppoossttmmaapp --dd" (incremental
diff --git a/postfix/README_FILES/INSTALL b/postfix/README_FILES/INSTALL
index b058e42e5..fab89619e 100644
--- a/postfix/README_FILES/INSTALL
+++ b/postfix/README_FILES/INSTALL
@@ -201,6 +201,11 @@ where the type is a database type such as "ldap" or "lmdb", and where the
version is the same as for Postfix shared libraries. The installed
dynamicmaps.cf configuration file is given a suffix with the same version.
+NOTE: Postfix 2.12 expects that you specify database library dependencies with
+variables named AUXLIBS_CDB, AUXLIBS_LDAP, etc. The old AUXLIBS variable is
+still supported, but the new variables are required when building database
+plugins.
+
To override the default location or shared-library version, specify, for
example:
@@ -349,8 +354,13 @@ The following is an extensive list of names and values.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|NNaammee//VVaalluuee |DDeessccrriippttiioonn |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
-|AUXLIBS="object_library..." |Specifies one or more non-default object |
-| |libraries. |
+| |Specifies one or more non-default object |
+| |libraries. Postfix 2,12 and later specify some|
+| |of their database library dependencies with |
+|AUXLIBS="object_library..." |AUXLIBS_CDB, AUXLIBS_LDAP, AUXLIBS_LMDB, |
+| |AUXLIBS_MYSQL, AUXLIBS_PCRE, AUXLIBS_PGSQL, |
+| |AUXLIBS_SDBM, and AUXLIBS_SQLITE, |
+| |respectively. |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|CC=compiler_command |Specifies a non-default compiler. On many |
| |systems, the default is gcc. |
diff --git a/postfix/README_FILES/LDAP_README b/postfix/README_FILES/LDAP_README
index 4079dd47c..b99506aaf 100644
--- a/postfix/README_FILES/LDAP_README
+++ b/postfix/README_FILES/LDAP_README
@@ -26,9 +26,6 @@ Topics covered in this document:
BBuuiillddiinngg PPoossttffiixx wwiitthh LLDDAAPP ssuuppppoorrtt
-[Note: instructions to build as a dynamicmaps.cf-style plugin will be added
-later.]
-
These instructions assume that you build Postfix from source code as described
in the INSTALL document. Some modification may be required if you build Postfix
from a vendor-specific source package.
@@ -55,14 +52,18 @@ this in the top level of your Postfix source tree should work:
% make tidy
% make makefiles CCARGS="-I/usr/local/include -DHAS_LDAP" \
- AUXLIBS="-L/usr/local/lib -lldap -L/usr/local/lib -llber"
+ AUXLIBS_LDAP="-L/usr/local/lib -lldap -L/usr/local/lib -llber"
+
+Postfix versions before 2.12 should use AUXLIBS instead of AUXLIBS_LDAP.
+Postfix 2.12 and later still support the old global AUXLIBS variable, but
+AUXLIBS_LDAP is required when building dynamically-loadable database plugins.
On Solaris 2.x you may have to specify run-time link information, otherwise
ld.so will not find some of the shared libraries:
% make tidy
% make makefiles CCARGS="-I/usr/local/include -DHAS_LDAP" \
- AUXLIBS="-L/usr/local/lib -R/usr/local/lib -lldap \
+ AUXLIBS_LDAP="-L/usr/local/lib -R/usr/local/lib -lldap \
-L/usr/local/lib -R/usr/local/lib -llber"
The 'make tidy' command is needed only if you have previously built Postfix
diff --git a/postfix/README_FILES/LMDB_README b/postfix/README_FILES/LMDB_README
index 214a8c20a..fc8917f76 100644
--- a/postfix/README_FILES/LMDB_README
+++ b/postfix/README_FILES/LMDB_README
@@ -24,20 +24,21 @@ This document describes:
BBuuiillddiinngg PPoossttffiixx wwiitthh LLMMDDBB ssuuppppoorrtt
-[Note: instructions to build as a dynamicmaps.cf-style plugin will be added
-later.]
-
Postfix normally does not enable LMDB support. To build Postfix with LMDB
support, use something like:
% make makefiles CCARGS="-DHAS_LMDB -I/usr/local/include" \
- AUXLIBS="-L/usr/local/lib -llmdb"
+ AUXLIBS_LMDB="-L/usr/local/lib -llmdb"
% make
+Postfix versions before 2.12 should use AUXLIBS instead of AUXLIBS_LMDB.
+Postfix 2.12 and later still support the old global AUXLIBS variable, but
+AUXLIBS_LMDB is required when building dynamically-loadable database plugins.
+
Solaris may need this:
% make makefiles CCARGS="-DHAS_LMDB -I/usr/local/include" \
- AUXLIBS="-R/usr/local/lib -L/usr/local/lib -llmdb"
+ AUXLIBS_LMDB="-R/usr/local/lib -L/usr/local/lib -llmdb"
% make
The exact pathnames depend on how LMDB was installed.
@@ -50,7 +51,7 @@ When building Postfix fails with:
Add the "-lpthread" library to the "make makefiles" command.
- % make makefiles .... AUXLIBS="... -lpthread"
+ % make makefiles .... AUXLIBS_LMDB="... -lpthread"
CCoonnffiigguurriinngg LLMMDDBB sseettttiinnggss
diff --git a/postfix/README_FILES/MYSQL_README b/postfix/README_FILES/MYSQL_README
index 796dce5e1..41cf47df9 100644
--- a/postfix/README_FILES/MYSQL_README
+++ b/postfix/README_FILES/MYSQL_README
@@ -17,9 +17,6 @@ service.
BBuuiillddiinngg PPoossttffiixx wwiitthh MMyySSQQLL ssuuppppoorrtt
-[Note: instructions to build as a dynamicmaps.cf-style plugin will be added
-later.]
-
These instructions assume that you build Postfix from source code as described
in the INSTALL document. Some modification may be required if you build Postfix
from a vendor-specific source package.
@@ -36,17 +33,21 @@ obtained from:
In order to build Postfix with mysql map support, you will need to add -
DHAS_MYSQL and -I for the directory containing the mysql headers, and the
-mysqlclient library (and libm) to AUXLIBS, for example:
+mysqlclient library (and libm) to AUXLIBS_MYSQL, for example:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
- 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
+ 'AUXLIBS_MYSQL=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
+
+Postfix versions before 2.12 should use AUXLIBS instead of AUXLIBS_MYSQL.
+Postfix 2.12 and later still support the old global AUXLIBS variable, but
+AUXLIBS_MYSQL is required when building dynamically-loadable database plugins.
On Solaris, use this instead:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
- 'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
+ 'AUXLIBS_MYSQL=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
-lmysqlclient -lz -lm'
Then, just run 'make'. This requires libz, the compression library. Older mysql
diff --git a/postfix/README_FILES/PCRE_README b/postfix/README_FILES/PCRE_README
index f11476225..051efaa81 100644
--- a/postfix/README_FILES/PCRE_README
+++ b/postfix/README_FILES/PCRE_README
@@ -16,9 +16,6 @@ pcre_table(5) manual page. Information about PCRE itself can be found at http:/
BBuuiillddiinngg PPoossttffiixx wwiitthh PPCCRREE ssuuppppoorrtt
-[Note: instructions to build as a dynamicmaps.cf-style plugin will be added
-later.]
-
These instructions assume that you build Postfix from source code as described
in the INSTALL document. Some modification may be required if you build Postfix
from a vendor-specific source package.
@@ -39,17 +36,21 @@ NOTE: pcre versions prior to 2.06 cannot be used.
In order to build Postfix with PCRE support you need to add -DHAS_PCRE and a -
I for the PCRE include file to CCARGS, and add the path to the PCRE library to
-AUXLIBS, for example:
+AUXLIBS_PCRE, for example:
make -f Makefile.init makefiles \
"CCARGS=-DHAS_PCRE -I/usr/local/include" \
- "AUXLIBS=-L/usr/local/lib -lpcre"
+ "AUXLIBS_PCRE=-L/usr/local/lib -lpcre"
+
+Postfix versions before 2.12 should use AUXLIBS instead of AUXLIBS_PCRE.
+Postfix 2.12 and later still support the old global AUXLIBS variable, but
+AUXLIBS_PCRE is required when building dynamically-loadable database plugins.
Solaris needs run-time path information too:
make -f Makefile.init makefiles \
"CCARGS=-DHAS_PCRE -I/usr/local/include" \
- "AUXLIBS=-L/usr/local/lib -R/usr/local/lib -lpcre"
+ "AUXLIBS_PCRE=-L/usr/local/lib -R/usr/local/lib -lpcre"
TThhiinnggss ttoo kknnooww
diff --git a/postfix/README_FILES/PGSQL_README b/postfix/README_FILES/PGSQL_README
index 604e6a4b2..b05bb2546 100644
--- a/postfix/README_FILES/PGSQL_README
+++ b/postfix/README_FILES/PGSQL_README
@@ -17,9 +17,6 @@ service.
BBuuiillddiinngg PPoossttffiixx wwiitthh PPoossttggrreeSSQQLL ssuuppppoorrtt
-[Note: instructions to build as a dynamicmaps.cf-style plugin will be added
-later.]
-
These instructions assume that you build Postfix from source code as described
in the INSTALL document. Some modification may be required if you build Postfix
from a vendor-specific source package.
@@ -37,7 +34,11 @@ For example:
% make tidy
% make -f Makefile.init makefiles \
'CCARGS=-DHAS_PGSQL -I/usr/local/include/pgsql' \
- 'AUXLIBS=-L/usr/local/lib -lpq'
+ 'AUXLIBS_PGSQL=-L/usr/local/lib -lpq'
+
+Postfix versions before 2.12 should use AUXLIBS instead of AUXLIBS_PGSQL.
+Postfix 2.12 and later still support the old global AUXLIBS variable, but
+AUXLIBS_PGSQL is required when building dynamically-loadable database plugins.
Then just run 'make'.
diff --git a/postfix/README_FILES/SQLITE_README b/postfix/README_FILES/SQLITE_README
index 97f6bbe88..0d1c475c0 100644
--- a/postfix/README_FILES/SQLITE_README
+++ b/postfix/README_FILES/SQLITE_README
@@ -11,9 +11,6 @@ if you want.
BBuuiillddiinngg PPoossttffiixx wwiitthh SSQQLLiittee ssuuppppoorrtt
-[Note: instructions to build as a dynamicmaps.cf-style plugin will be added
-later.]
-
The Postfix SQLite client utilizes the sqlite3 library, which can be obtained
from:
@@ -27,7 +24,11 @@ For example:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_SQLITE -I/usr/local/include' \
- 'AUXLIBS=-L/usr/local/lib -lsqlite3 -lpthread'
+ 'AUXLIBS_SQLITE=-L/usr/local/lib -lsqlite3 -lpthread'
+
+Postfix versions before 2.12 should use AUXLIBS instead of AUXLIBS_SQLITE.
+Postfix 2.12 and later still support the old global AUXLIBS variable, but
+AUXLIBS_SQLITE is required when building dynamically-loadable database plugins.
Then, just run 'make'.
diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES
index 01fe66826..65fd80e75 100644
--- a/postfix/RELEASE_NOTES
+++ b/postfix/RELEASE_NOTES
@@ -16,29 +16,64 @@ specifies the release date of a stable release or snapshot release.
If you upgrade from Postfix 2.10 or earlier, read RELEASE_NOTES-2.11
before proceeding.
-Major changes with snapshot 20140522
+Incompatible changes with snapshot 20140524
+===========================================
+
+Postfix 2.12 expects that you specify database library dependencies
+with variables named AUXLIBS_CDB, AUXLIBS_LDAP, etc. The old AUXLIBS
+variable is still supported, but the new variables are required
+when building dynamically-loadable database plugins. See CDB_README,
+LDAP_README, etc. for details.
+
+Major changes with snapshot 20140524
====================================
Support to build Postfix with Postfix shared libraries, and with
-support for database plugins. Postfix shared libraries introduce
-minor runtime overhead and result in smaller Postfix executable
-files. Postfix database plugins are useful primarily for people
-who distribute pre-compiled packages.
+dynamically-loadable database plugins. Postfix shared libraries
+introduce minor runtime overhead and result in smaller Postfix
+executable files. Dynamically-loadable database plugins are useful
+primarily for people who install pre-compiled packages.
This is based on Debian code by LaMont Jones, and based on a port
by Viktor Dukhovni. Currently, support exists for recent versions
-of Linux, FreeBSD and MacOS X.
+of Linux, FreeBSD and MacOS X, as well as ancient Solaris 9.
-Postfix shared libraries and database plugins require changes in
-the Postix build procedure (specifically, the makedefs and Makefile.in
-files). These changes are introduced early in the annual Postfix
+Postfix shared libraries and dynamically-loadable database plugins
+require changes in the Postfix build procedure (specifically, the
+makedefs and Makefile.in files, and scripts that install or update
+Postfix). These changes are introduced early in the annual Postfix
development cycle to give down-stream maintainers sufficient time
to prepare their build systems for the next stable Postfix release.
+Building with Postfix shared libraries and database plugins
+-----------------------------------------------------------
+
+Please see the INSTALL section "Building with Postfix shared libraries
+and database plugins" for fine-tuning details.
+
+To build with Postfix shared libraries (libpostfix-*.so.*), use:
+
+% make makefiles shared=yes ...other arguments...
+
+To build with dynamicmaps.cf support and dynamically-loadable
+database plugins (postfix-*.so.*), use:
+
+% make makefiles dynamicmaps=yes ...other arguments...
+
+This implicitly enables support for libpostfix-*.so.* shared
+libraries. Database plugin support is available for CDB, LDAP, LMDB,
+MySQL, PCRE, PGSQL, SDBM, and SQLITE.
+
+NOTE: Postfix 2.12 expects that you specify database library
+dependencies with variables named AUXLIBS_CDB, AUXLIBS_LDAP, etc.
+The old AUXLIBS variable is still supported, but the new variables
+are required when building dynamically-loadable database plugins.
+See CDB_README, LDAP_README, etc. for details.
+
Differences with Debian
-----------------------
-Besides changes to the Postfix "build" system as described below,
+Besides changes to the Postfix "build" system as described above,
the user-visible changes with respect to Debian are:
- The new shlib_directory parameter specifies the location of the
@@ -55,13 +90,7 @@ the user-visible changes with respect to Debian are:
among all Postfix instances just like postfix-files and other
files. Files in /etc are meant to be instance-specific.
-Building with Postfix shared libraries and database plugins
------------------------------------------------------------
-
-Please see the INSTALL section "Building with Postfix shared libraries
-and database plugins".
-
-Fuurther information
+Further information
--------------------
Maintainers may also benefit from the makedefs documentation
diff --git a/postfix/conf/postfix-files b/postfix/conf/postfix-files
index 7fc51c016..16b70d018 100644
--- a/postfix/conf/postfix-files
+++ b/postfix/conf/postfix-files
@@ -43,6 +43,8 @@
# it is a good idea to "u" all the files that have special ownership or
# permissions, so that running "make install" fixes any glitches.
#
+# Note: order matters. Update shared libraries and database plugins
+# before daemon/command-line programs.
$config_directory:d:root:-:755:u
$data_directory:d:$mail_owner:-:700:uc
$daemon_directory:d:root:-:755:u
@@ -64,11 +66,13 @@ $queue_directory/public:d:$mail_owner:$setgid_group:710:uc
$queue_directory/pid:d:root:-:755:uc
$queue_directory/saved:d:$mail_owner:-:700:ucr
$queue_directory/trace:d:$mail_owner:-:700:ucr
+# Update shared libraries before daemon or command-line programs.
$shlib_directory/lib${LIB_PREFIX}util${LIB_SUFFIX}:f:root:-:755
$shlib_directory/lib${LIB_PREFIX}global${LIB_SUFFIX}:f:root:-:755
$shlib_directory/lib${LIB_PREFIX}dns${LIB_SUFFIX}:f:root:-:755
$shlib_directory/lib${LIB_PREFIX}tls${LIB_SUFFIX}:f:root:-:755
$shlib_directory/lib${LIB_PREFIX}master${LIB_SUFFIX}:f:root:-:755
+# Update database plugins before daemon or command-line programs.
$plugin_directory/${LIB_PREFIX}cdb${LIB_SUFFIX}:f:root:-:755
$plugin_directory/${LIB_PREFIX}ldap${LIB_SUFFIX}:f:root:-:755
$plugin_directory/${LIB_PREFIX}lmdb${LIB_SUFFIX}:f:root:-:755
diff --git a/postfix/html/CDB_README.html b/postfix/html/CDB_README.html
index b0a56242a..cfde3b64f 100644
--- a/postfix/html/CDB_README.html
+++ b/postfix/html/CDB_README.html
@@ -67,7 +67,7 @@ like:
% make tidy
% CDB=../../../tinycdb-0.5
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
- "AUXLIBS=$CDB/libcdb.a"
+ "AUXLIBS_CDB=$CDB/libcdb.a"
% make
@@ -79,11 +79,16 @@ like:
% make tidy
% CDB=../../../cdb-0.75
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
- "AUXLIBS=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
+ "AUXLIBS_CDB=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
% make
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_CDB. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_CDB is required when building
+dynamically-loadable database plugins.
+
After Postfix has been built with cdb support, you can use
"cdb" tables wherever you can use read-only "hash", "btree" or
"dbm" tables. However, the "postmap -i" (incremental record
diff --git a/postfix/html/INSTALL.html b/postfix/html/INSTALL.html
index 7098dd9e6..4f865c4a1 100644
--- a/postfix/html/INSTALL.html
+++ b/postfix/html/INSTALL.html
@@ -302,6 +302,11 @@ is the same as for Postfix shared libraries. The installed
dynamicmaps.cf configuration file is given a suffix with the same
version.
+ NOTE: Postfix 2.12 expects that you specify database library
+dependencies with variables named AUXLIBS_CDB, AUXLIBS_LDAP, etc.
+The old AUXLIBS variable is still supported, but the new variables
+are required when building database plugins.
+
To override the default location or shared-library version,
specify, for example:
@@ -513,7 +518,10 @@ $ make
| Name/Value | Description |
| AUXLIBS="object_library..." | Specifies
-one or more non-default object libraries. |
+one or more non-default object libraries. Postfix 2,12 and later
+specify some of their database library dependencies with AUXLIBS_CDB,
+AUXLIBS_LDAP, AUXLIBS_LMDB, AUXLIBS_MYSQL, AUXLIBS_PCRE, AUXLIBS_PGSQL,
+AUXLIBS_SDBM, and AUXLIBS_SQLITE, respectively.
| CC=compiler_command | Specifies a
non-default compiler. On many systems, the default is gcc.
diff --git a/postfix/html/LDAP_README.html b/postfix/html/LDAP_README.html
index 820d4bd5e..20f55cd22 100644
--- a/postfix/html/LDAP_README.html
+++ b/postfix/html/LDAP_README.html
@@ -55,9 +55,6 @@ it to each.
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -95,10 +92,15 @@ your Postfix source tree should work:
% make tidy
% make makefiles CCARGS="-I/usr/local/include -DHAS_LDAP" \
- AUXLIBS="-L/usr/local/lib -lldap -L/usr/local/lib -llber"
+ AUXLIBS_LDAP="-L/usr/local/lib -lldap -L/usr/local/lib -llber"
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_LDAP. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_LDAP is required when building
+dynamically-loadable database plugins.
+
On Solaris 2.x you may have to specify run-time link information,
otherwise ld.so will not find some of the shared libraries:
@@ -106,7 +108,7 @@ otherwise ld.so will not find some of the shared libraries:
% make tidy
% make makefiles CCARGS="-I/usr/local/include -DHAS_LDAP" \
- AUXLIBS="-L/usr/local/lib -R/usr/local/lib -lldap \
+ AUXLIBS_LDAP="-L/usr/local/lib -R/usr/local/lib -lldap \
-L/usr/local/lib -R/usr/local/lib -llber"
diff --git a/postfix/html/LMDB_README.html b/postfix/html/LMDB_README.html
index d80007f56..ed8f1eea1 100644
--- a/postfix/html/LMDB_README.html
+++ b/postfix/html/LMDB_README.html
@@ -44,26 +44,28 @@ the database file without the ".lmdb" suffix.
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
Postfix normally does not enable LMDB support. To
build Postfix with LMDB support, use something like:
% make makefiles CCARGS="-DHAS_LMDB -I/usr/local/include" \
- AUXLIBS="-L/usr/local/lib -llmdb"
+ AUXLIBS_LMDB="-L/usr/local/lib -llmdb"
% make
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_LMDB. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_LMDB is required when building
+dynamically-loadable database plugins.
+
Solaris may need this:
% make makefiles CCARGS="-DHAS_LMDB -I/usr/local/include" \
- AUXLIBS="-R/usr/local/lib -L/usr/local/lib -llmdb"
+ AUXLIBS_LMDB="-R/usr/local/lib -L/usr/local/lib -llmdb"
% make
@@ -84,7 +86,7 @@ undefined reference to `pthread_mutex_lock'
-% make makefiles .... AUXLIBS="... -lpthread"
+% make makefiles .... AUXLIBS_LMDB="... -lpthread"
diff --git a/postfix/html/MYSQL_README.html b/postfix/html/MYSQL_README.html
index d85e6ba04..e2e7df090 100644
--- a/postfix/html/MYSQL_README.html
+++ b/postfix/html/MYSQL_README.html
@@ -33,9 +33,6 @@ clients by using the Postfix proxymap(8) service.
Building Postfix with MySQL support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -55,23 +52,28 @@ which can be obtained from:
In order to build Postfix with mysql map support, you will need to add
-DHAS_MYSQL and -I for the directory containing the mysql headers, and
-the mysqlclient library (and libm) to AUXLIBS, for example:
+the mysqlclient library (and libm) to AUXLIBS_MYSQL, for example:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
- 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
+ 'AUXLIBS_MYSQL=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_MYSQL. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_MYSQL is required when building
+dynamically-loadable database plugins.
+
On Solaris, use this instead:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
- 'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
+ 'AUXLIBS_MYSQL=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
-lmysqlclient -lz -lm'
diff --git a/postfix/html/PCRE_README.html b/postfix/html/PCRE_README.html
index 7385d6f54..2dadc2580 100644
--- a/postfix/html/PCRE_README.html
+++ b/postfix/html/PCRE_README.html
@@ -32,9 +32,6 @@ itself can be found at http://www.pcre.org/.
Building Postfix with PCRE support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -59,23 +56,28 @@ Expressions), which can be obtained from:
In order to build Postfix with PCRE support you need to add
-DHAS_PCRE and a -I for the PCRE include file to CCARGS, and add
-the path to the PCRE library to AUXLIBS, for example:
+the path to the PCRE library to AUXLIBS_PCRE, for example:
make -f Makefile.init makefiles \
"CCARGS=-DHAS_PCRE -I/usr/local/include" \
- "AUXLIBS=-L/usr/local/lib -lpcre"
+ "AUXLIBS_PCRE=-L/usr/local/lib -lpcre"
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_PCRE. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_PCRE is required when building
+dynamically-loadable database plugins.
+
Solaris needs run-time path information too:
make -f Makefile.init makefiles \
"CCARGS=-DHAS_PCRE -I/usr/local/include" \
- "AUXLIBS=-L/usr/local/lib -R/usr/local/lib -lpcre"
+ "AUXLIBS_PCRE=-L/usr/local/lib -R/usr/local/lib -lpcre"
diff --git a/postfix/html/PGSQL_README.html b/postfix/html/PGSQL_README.html
index f7c643d4f..601b1259b 100644
--- a/postfix/html/PGSQL_README.html
+++ b/postfix/html/PGSQL_README.html
@@ -33,9 +33,6 @@ clients by using the Postfix proxymap(8) service.
Building Postfix with PostgreSQL support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -56,10 +53,15 @@ the location of the libpq library file.
% make tidy
% make -f Makefile.init makefiles \
'CCARGS=-DHAS_PGSQL -I/usr/local/include/pgsql' \
- 'AUXLIBS=-L/usr/local/lib -lpq'
+ 'AUXLIBS_PGSQL=-L/usr/local/lib -lpq'
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_PGSQL. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_PGSQL is required when building
+dynamically-loadable database plugins.
+
Then just run 'make'.
Configuring PostgreSQL lookup tables
diff --git a/postfix/html/SQLITE_README.html b/postfix/html/SQLITE_README.html
index e1987243c..53866c3a6 100644
--- a/postfix/html/SQLITE_README.html
+++ b/postfix/html/SQLITE_README.html
@@ -26,9 +26,6 @@ databases: you can use one for a virtual(5) table,
Building Postfix with SQLite support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
The Postfix SQLite client utilizes the sqlite3 library,
which can be obtained from:
@@ -47,10 +44,15 @@ name of the standard POSIX thread library (pthread). For example:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_SQLITE -I/usr/local/include' \
- 'AUXLIBS=-L/usr/local/lib -lsqlite3 -lpthread'
+ 'AUXLIBS_SQLITE=-L/usr/local/lib -lsqlite3 -lpthread'
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_SQLITE. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_SQLITE is required when building
+dynamically-loadable database plugins.
+
Then, just run 'make'.
Using SQLite tables
diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html
index 61c316fed..9ebfa0ffa 100644
--- a/postfix/html/postconf.5.html
+++ b/postfix/html/postconf.5.html
@@ -9557,6 +9557,12 @@ earlier: "/etc/postfix/post-install set-permissions".
This parameter defaults to "no" when Postfix shared libraries are
disabled at compile time.
+ NOTE: You can change the location of these files after Postfix
+is built. However, you may have to run ldconfig if you move the
+libpostfix-*.so.* files to a non-system directory. No ldconfig is
+needed if you keep the libpostfix-*.so.* files in the compiled-in
+default $shlib_directory location.
+
This feature is available in Postfix 2.12 and later.
diff --git a/postfix/makedefs b/postfix/makedefs
index 6ca70bb81..fdaced829 100644
--- a/postfix/makedefs
+++ b/postfix/makedefs
@@ -16,7 +16,11 @@
# environment variables. Use quotes if variables contain
# whitespace or shell meta characters.
# .IP \fBAUXLIBS=\fIobject_library...\fR
-# Specifies one or more non-default object libraries.
+# Specifies one or more non-default object libraries. Postfix
+# 2,12 and later specify some of their database library
+# dependencies with AUXLIBS_CDB, AUXLIBS_LDAP, AUXLIBS_LMDB,
+# AUXLIBS_MYSQL, AUXLIBS_PCRE, AUXLIBS_PGSQL, AUXLIBS_SDBM,
+# and AUXLIBS_SQLITE, respectively.
# .IP \fBCC=\fIcompiler_command\fR
# Specifies a non-default compiler. On many systems, the default
# is \fBgcc\fR.
@@ -76,9 +80,9 @@
# .IP \fBdynamicmaps=yes\fR
# .IP \fBdynamicmaps=no\fR
# Enable (disable) Postfix builds with the configuration file
-# $plugin_directory/dynamicmaps.cf for database plugins
-# typically named postfix-*.so.*. The setting "dynamicmaps=yes"
-# implicitly enables Postfix shared libraries.
+# $plugin_directory/dynamicmaps.cf for dynamically-loadable
+# database plugins typically named postfix-*.so.*. The setting
+# "dynamicmaps=yes" implicitly enables Postfix shared libraries.
# .IP \fIinstallation_parameter\fB=\fIvalue\fR...
# Override the compiled-in default value of the specified
# installation parameter(s). The following parameters are
@@ -530,6 +534,7 @@ ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix543
: ${CC=cc}
CCARGS="$CCARGS"
CCWARN='$(WARN)'
+ MAKE_FIX=cant-move-relative-symlink
# Darwin > 1.3 uses awk and flat_namespace
case $RELEASE in
1.[0-3]) AWK=gawk;;
@@ -664,7 +669,7 @@ case "$CCARGS" in
*) pcre_cflags=`(pcre-config --cflags) 2>/dev/null` &&
pcre_libs=`(pcre-config --libs) 2>/dev/null` && {
CCARGS="$CCARGS -DHAS_PCRE $pcre_cflags"
- AUXLIBS="$AUXLIBS $pcre_libs"
+ AUXLIBS_PCRE="$pcre_libs"
}
;;
esac
@@ -707,7 +712,8 @@ sendmail_path_macro=DEF_SENDMAIL_PATH
shlib_directory_macro=DEF_SHLIB_DIR
# shlib_directory and plugin_directory are checked here because "no"
-# is not a good answer. Instead, build with "shared=no".
+# is not a good answer. Instead, build with "dynamicmaps=no" or
+# "shared=no" as appropriate.
for parm_name in command_directory config_directory daemon_directory \
data_directory mailq_path newaliases_path plugin_directory \
@@ -866,7 +872,7 @@ no|"")
PLUGIN_LD=
;;
-*) error "Specify \"shared=yes\" or \"shared=no\"" 1>&2
+*) error "Specify \"shared=yes\" or \"shared=no\""
;;
esac
@@ -896,21 +902,39 @@ DEFINED_MAP_TYPES=`
END { print names }
'`
-sed 's/ / /g' <) {
s/\b(lmtp):/$1<\/a>:/g;
s/\b(local):/$1<\/a>:/g;
s/([^\/])\b(virtual):/$1$2<\/a>:/g;
+
+ # Database library dependencies.
+
+ s/\b(AUXLIBS_)([A-Z]+)\b/$1$2<\/a>/g;
}
continue {
if ($printit)
diff --git a/postfix/postfix-install b/postfix/postfix-install
index a935476f9..123afc756 100644
--- a/postfix/postfix-install
+++ b/postfix/postfix-install
@@ -263,30 +263,37 @@ compare_or_replace() {
}
}
+myreadlink() {
+ ls -l -- "$@" | awk '
+ /->/ { print $NF; next }
+ { exit(1) }
+ '
+}
+
compare_or_symlink() {
- (cmp $1 $2 >/dev/null 2>&1 && echo Skipping $2...) || {
+ case $1 in
+ /*) dest=`echo $1 | sed '
+ s;^'$install_root';;
+ s;/\./;/;g
+ s;//*;/;g
+ s;^/;;
+ '`
+ link=`echo $2 | sed '
+ s;^'$install_root';;
+ s;/\./;/;g
+ s;//*;/;g
+ s;^/;;
+ s;/[^/]*$;/;
+ s;[^/]*/;../;g
+ s;$;'$dest';
+ '`
+ ;;
+ *) link=$1
+ ;;
+ esac
+ (test $link = "`myreadlink $2`" >/dev/null 2>&1 && echo Skipping $2...) || {
echo Updating $2...
rm -f $tempdir/junk || exit 1
- case $1 in
- /*) dest=`echo $1 | sed '
- s;^'$install_root';;
- s;/\./;/;g
- s;//*;/;g
- s;^/;;
- '`
- link=`echo $2 | sed '
- s;^'$install_root';;
- s;/\./;/;g
- s;//*;/;g
- s;^/;;
- s;/[^/]*$;/;
- s;[^/]*/;../;g
- s;$;'$dest';
- '`
- ;;
- *) link=$1
- ;;
- esac
ln -s $link $tempdir/junk || exit 1
mv -f $tempdir/junk $2 || {
echo $0: Error: your mv command has trouble renaming symlinks. 1>&2
diff --git a/postfix/proto/CDB_README.html b/postfix/proto/CDB_README.html
index afe8a82ee..24f709da8 100644
--- a/postfix/proto/CDB_README.html
+++ b/postfix/proto/CDB_README.html
@@ -67,7 +67,7 @@ like:
% make tidy
% CDB=../../../tinycdb-0.5
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
- "AUXLIBS=$CDB/libcdb.a"
+ "AUXLIBS_CDB=$CDB/libcdb.a"
% make
@@ -79,11 +79,16 @@ like:
% make tidy
% CDB=../../../cdb-0.75
% make -f Makefile.init makefiles "CCARGS=-DHAS_CDB -I$CDB" \
- "AUXLIBS=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
+ "AUXLIBS_CDB=$CDB/cdb.a $CDB/alloc.a $CDB/buffer.a $CDB/unix.a $CDB/byte.a"
% make
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_CDB. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_CDB is required when building
+dynamically-loadable database plugins.
+
After Postfix has been built with cdb support, you can use
"cdb" tables wherever you can use read-only "hash", "btree" or
"dbm" tables. However, the "postmap -i" (incremental record
diff --git a/postfix/proto/INSTALL.html b/postfix/proto/INSTALL.html
index d0824c1c6..6f09e9fdc 100644
--- a/postfix/proto/INSTALL.html
+++ b/postfix/proto/INSTALL.html
@@ -302,6 +302,12 @@ is the same as for Postfix shared libraries. The installed
dynamicmaps.cf configuration file is given a suffix with the same
version.
+ NOTE: Postfix 2.12 expects that you specify database library
+dependencies with variables named AUXLIBS_CDB, AUXLIBS_LDAP, etc.
+The old AUXLIBS variable is still supported, but the new variables
+are required when building database plugins. See CDB_README,
+LDAP_README, etc. for details.
+
To override the default location or shared-library version,
specify, for example:
@@ -513,7 +519,10 @@ $ make
| Name/Value | Description |
| AUXLIBS="object_library..." | Specifies
-one or more non-default object libraries. |
+one or more non-default object libraries. Postfix 2,12 and later
+specify some of their database library dependencies with AUXLIBS_CDB,
+AUXLIBS_LDAP, AUXLIBS_LMDB, AUXLIBS_MYSQL, AUXLIBS_PCRE, AUXLIBS_PGSQL,
+AUXLIBS_SDBM, and AUXLIBS_SQLITE, respectively. |
| CC=compiler_command | Specifies a
non-default compiler. On many systems, the default is gcc.
diff --git a/postfix/proto/LDAP_README.html b/postfix/proto/LDAP_README.html
index af16bc55e..bf4ea3736 100644
--- a/postfix/proto/LDAP_README.html
+++ b/postfix/proto/LDAP_README.html
@@ -55,9 +55,6 @@ it to each.
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -95,10 +92,15 @@ your Postfix source tree should work:
% make tidy
% make makefiles CCARGS="-I/usr/local/include -DHAS_LDAP" \
- AUXLIBS="-L/usr/local/lib -lldap -L/usr/local/lib -llber"
+ AUXLIBS_LDAP="-L/usr/local/lib -lldap -L/usr/local/lib -llber"
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_LDAP. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_LDAP is required when building
+dynamically-loadable database plugins.
+
On Solaris 2.x you may have to specify run-time link information,
otherwise ld.so will not find some of the shared libraries:
@@ -106,7 +108,7 @@ otherwise ld.so will not find some of the shared libraries:
% make tidy
% make makefiles CCARGS="-I/usr/local/include -DHAS_LDAP" \
- AUXLIBS="-L/usr/local/lib -R/usr/local/lib -lldap \
+ AUXLIBS_LDAP="-L/usr/local/lib -R/usr/local/lib -lldap \
-L/usr/local/lib -R/usr/local/lib -llber"
diff --git a/postfix/proto/LMDB_README.html b/postfix/proto/LMDB_README.html
index e7bcdcba8..16e68a793 100644
--- a/postfix/proto/LMDB_README.html
+++ b/postfix/proto/LMDB_README.html
@@ -44,26 +44,28 @@ the database file without the ".lmdb" suffix.
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
Postfix normally does not enable LMDB support. To
build Postfix with LMDB support, use something like:
% make makefiles CCARGS="-DHAS_LMDB -I/usr/local/include" \
- AUXLIBS="-L/usr/local/lib -llmdb"
+ AUXLIBS_LMDB="-L/usr/local/lib -llmdb"
% make
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_LMDB. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_LMDB is required when building
+dynamically-loadable database plugins.
+
Solaris may need this:
% make makefiles CCARGS="-DHAS_LMDB -I/usr/local/include" \
- AUXLIBS="-R/usr/local/lib -L/usr/local/lib -llmdb"
+ AUXLIBS_LMDB="-R/usr/local/lib -L/usr/local/lib -llmdb"
% make
@@ -84,7 +86,7 @@ undefined reference to `pthread_mutex_lock'
-% make makefiles .... AUXLIBS="... -lpthread"
+% make makefiles .... AUXLIBS_LMDB="... -lpthread"
diff --git a/postfix/proto/MYSQL_README.html b/postfix/proto/MYSQL_README.html
index 5d99c5de9..efa67d245 100644
--- a/postfix/proto/MYSQL_README.html
+++ b/postfix/proto/MYSQL_README.html
@@ -33,9 +33,6 @@ clients by using the Postfix proxymap(8) service.
Building Postfix with MySQL support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -55,23 +52,28 @@ which can be obtained from:
In order to build Postfix with mysql map support, you will need to add
-DHAS_MYSQL and -I for the directory containing the mysql headers, and
-the mysqlclient library (and libm) to AUXLIBS, for example:
+the mysqlclient library (and libm) to AUXLIBS_MYSQL, for example:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
- 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
+ 'AUXLIBS_MYSQL=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_MYSQL. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_MYSQL is required when building
+dynamically-loadable database plugins.
+
On Solaris, use this instead:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
- 'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
+ 'AUXLIBS_MYSQL=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
-lmysqlclient -lz -lm'
diff --git a/postfix/proto/PCRE_README.html b/postfix/proto/PCRE_README.html
index c25b9aedc..480aebdcf 100644
--- a/postfix/proto/PCRE_README.html
+++ b/postfix/proto/PCRE_README.html
@@ -32,9 +32,6 @@ itself can be found at http://www.pcre.org/.
Building Postfix with PCRE support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -59,23 +56,28 @@ ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.
In order to build Postfix with PCRE support you need to add
-DHAS_PCRE and a -I for the PCRE include file to CCARGS, and add
-the path to the PCRE library to AUXLIBS, for example:
+the path to the PCRE library to AUXLIBS_PCRE, for example:
make -f Makefile.init makefiles \
"CCARGS=-DHAS_PCRE -I/usr/local/include" \
- "AUXLIBS=-L/usr/local/lib -lpcre"
+ "AUXLIBS_PCRE=-L/usr/local/lib -lpcre"
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_PCRE. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_PCRE is required when building
+dynamically-loadable database plugins.
+
Solaris needs run-time path information too:
make -f Makefile.init makefiles \
"CCARGS=-DHAS_PCRE -I/usr/local/include" \
- "AUXLIBS=-L/usr/local/lib -R/usr/local/lib -lpcre"
+ "AUXLIBS_PCRE=-L/usr/local/lib -R/usr/local/lib -lpcre"
diff --git a/postfix/proto/PGSQL_README.html b/postfix/proto/PGSQL_README.html
index 907c69429..92e3af1ff 100644
--- a/postfix/proto/PGSQL_README.html
+++ b/postfix/proto/PGSQL_README.html
@@ -33,9 +33,6 @@ clients by using the Postfix proxymap(8) service.
Building Postfix with PostgreSQL support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
These instructions assume that you build Postfix from source
code as described in the INSTALL document. Some modification may
be required if you build Postfix from a vendor-specific source
@@ -56,10 +53,15 @@ the location of the libpq library file.
% make tidy
% make -f Makefile.init makefiles \
'CCARGS=-DHAS_PGSQL -I/usr/local/include/pgsql' \
- 'AUXLIBS=-L/usr/local/lib -lpq'
+ 'AUXLIBS_PGSQL=-L/usr/local/lib -lpq'
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_PGSQL. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_PGSQL is required when building
+dynamically-loadable database plugins.
+
Then just run 'make'.
Configuring PostgreSQL lookup tables
diff --git a/postfix/proto/SQLITE_README.html b/postfix/proto/SQLITE_README.html
index 2894aa1c5..2d03bf70e 100644
--- a/postfix/proto/SQLITE_README.html
+++ b/postfix/proto/SQLITE_README.html
@@ -26,9 +26,6 @@ access(5) table, and one for an aliases(5) table if you want.
Building Postfix with SQLite support
- [Note: instructions to build as a dynamicmaps.cf-style plugin
-will be added later.]
-
The Postfix SQLite client utilizes the sqlite3 library,
which can be obtained from:
@@ -47,10 +44,15 @@ name of the standard POSIX thread library (pthread). For example:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_SQLITE -I/usr/local/include' \
- 'AUXLIBS=-L/usr/local/lib -lsqlite3 -lpthread'
+ 'AUXLIBS_SQLITE=-L/usr/local/lib -lsqlite3 -lpthread'
+ Postfix versions before 2.12 should use AUXLIBS instead of
+AUXLIBS_SQLITE. Postfix 2.12 and later still support the old global
+AUXLIBS variable, but AUXLIBS_SQLITE is required when building
+dynamically-loadable database plugins.
+
Then, just run 'make'.
Using SQLite tables
diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto
index e7553f837..79e9581f0 100644
--- a/postfix/proto/postconf.proto
+++ b/postfix/proto/postconf.proto
@@ -15904,6 +15904,12 @@ deliveries. See default_delivery_status_filter for details.
This parameter defaults to "no" when Postfix shared libraries are
disabled at compile time.
+ NOTE: You can change the location of these files after Postfix
+is built. However, you may have to run ldconfig if you move the
+libpostfix-*.so.* files to a non-system directory. No ldconfig is
+needed if you keep the libpostfix-*.so.* files in the compiled-in
+default $shlib_directory location.
+
This feature is available in Postfix 2.12 and later.
%PARAM plugin_directory see 'postconf -d' output
diff --git a/postfix/src/global/Makefile.in b/postfix/src/global/Makefile.in
index 4b513142b..2cde9463d 100644
--- a/postfix/src/global/Makefile.in
+++ b/postfix/src/global/Makefile.in
@@ -127,7 +127,7 @@ MAKES =
.c.o:; $(CC) $(SHLIB_CFLAGS) $(CFLAGS) -c $*.c
-all: $(LIB) $(PLUGIN_MAP_SO) $(PLUGIN_MAP_OBJ)
+all: $(LIB) $(PLUGIN_MAP_SO_MAKE) $(PLUGIN_MAP_OBJ)
$(OBJS) $(PLUGIN_MAP_OBJ): ../../conf/makedefs.out
@@ -145,30 +145,32 @@ $(LIB_DIR)/$(LIB): $(LIB)
cp $(LIB) $(LIB_DIR)
$(RANLIB) $(LIB_DIR)/$(LIB)
-plugin_map_so: $(PLUGIN_MAP_SO)
+plugin_map_so_make: $(PLUGIN_MAP_SO)
$(LIB_PREFIX)ldap$(LIB_SUFFIX): dict_ldap.o
- $(PLUGIN_LD) -o $@ dict_ldap.o
+ $(PLUGIN_LD) -o $@ dict_ldap.o $(AUXLIBS_LDAP) $(SYSLIBS)
$(LIB_PREFIX)mysql$(LIB_SUFFIX): dict_mysql.o
- $(PLUGIN_LD) -o $@ dict_mysql.o
+ $(PLUGIN_LD) -o $@ dict_mysql.o $(AUXLIBS_MYSQL) $(SYSLIBS)
$(LIB_PREFIX)pgsql$(LIB_SUFFIX): dict_pgsql.o
- $(PLUGIN_LD) -o $@ dict_pgsql.o
+ $(PLUGIN_LD) -o $@ dict_pgsql.o $(AUXLIBS_PGSQL) $(SYSLIBS)
$(LIB_PREFIX)sqlite$(LIB_SUFFIX): dict_sqlite.o
- $(PLUGIN_LD) -o $@ dict_sqlite.o
+ $(PLUGIN_LD) -o $@ dict_sqlite.o $(AUXLIBS_SQLITE) $(SYSLIBS)
+
+$(LIB_PREFIX)cdb$(LIB_SUFFIX): mkmap_cdb.o $(LIB_DIR)/dict_cdb.o
+ $(PLUGIN_LD) -o $@ mkmap_cdb.o $(LIB_DIR)/dict_cdb.o \
+ $(AUXLIBS_CDB) $(SYSLIBS)
$(LIB_PREFIX)lmdb$(LIB_SUFFIX): mkmap_lmdb.o $(LIB_DIR)/dict_lmdb.o \
- $(LIB_DIR)/slmdb.o
+ $(LIB_DIR)/slmdb.o
$(PLUGIN_LD) -o $@ mkmap_lmdb.o $(LIB_DIR)/dict_lmdb.o \
- $(LIB_DIR)/slmdb.o
-
-$(LIB_PREFIX)cdb$(LIB_SUFFIX): mkmap_cdb.o $(LIB_DIR)/dict_cdb.o
- $(PLUGIN_LD) -o $@ mkmap_cdb.o $(LIB_DIR)/dict_cdb.o
+ $(LIB_DIR)/slmdb.o $(AUXLIBS_LMDB) $(SYSLIBS)
$(LIB_PREFIX)sdbm$(LIB_SUFFIX): mkmap_sdbm.o $(LIB_DIR)/dict_sdbm.o
- $(PLUGIN_LD) -o $@ mkmap_sdbm.o $(LIB_DIR)/dict_sdbm.o
+ $(PLUGIN_LD) -o $@ mkmap_sdbm.o $(LIB_DIR)/dict_sdbm.o \
+ $(AUXLIBS_SDBM) $(SYSLIBS)
update: $(LIB_DIR)/$(LIB) $(HDRS) $(PLUGIN_MAP_SO_UPDATE)
-for i in $(HDRS); \
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h
index 6272c6c31..ab05f8547 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 "20140523"
+#define MAIL_RELEASE_DATE "20140524"
#define MAIL_VERSION_NUMBER "2.12"
#ifdef SNAPSHOT
diff --git a/postfix/src/util/Makefile.in b/postfix/src/util/Makefile.in
index 60e9e97bd..56a1ccadf 100644
--- a/postfix/src/util/Makefile.in
+++ b/postfix/src/util/Makefile.in
@@ -153,7 +153,7 @@ $(LIB_DIR)/$(LIB): $(LIB)
plugin_map_so_make: $(PLUGIN_MAP_SO)
$(LIB_PREFIX)pcre$(LIB_SUFFIX): dict_pcre.o
- $(PLUGIN_LD) -o $@ dict_pcre.o
+ $(PLUGIN_LD) -o $@ dict_pcre.o $(AUXLIBS_PCRE) $(SYSLIBS)
update: $(LIB_DIR)/$(LIB) $(HDRS) $(PLUGIN_MAP_SO_UPDATE) \
$(PLUGIN_MAP_OBJ_UPDATE)
|