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=refs%2Fheads%2F20140508-nonprod;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.

Building Postfix with LDAP 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 @@ -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.

Building Postfix with LMDB support

-

[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.

Building Postfix with LDAP 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 @@ -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.

Building Postfix with LMDB support

-

[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)