From: jdolecek at NetBSD dot org Operating system: NetBSD 1.6ZH PHP version: 4.3.4 PHP Bug Type: IMAP related Bug description: Please add option to use umap-uw linkage.c
Description: ------------ In NetBSD pkgsrc, we patch the imap module to use directly umap-iw linkage.c, so that all available authenticators and methods would be compiled in for PHP. Since some other people might find this useful, it would be nice to have a configure option to enable this. This is the patch we currently use. It adds option --with-imap-linkage, which changes the code to use the linkage.c supplied by imap-uw package, instead of hardcoded list. It also disables the Kerberos check, since it's not necessary to explicitly link against Kerberos libs if the imap libraries contain Kerberos support. Note this adresses same problem as to Bug #4136. I don't know why the change to use linkage.c unconditionally was removed. Patch #1 --- config.m4.orig 2003-10-03 07:25:35.000000000 +0200 +++ config.m4 @@ -54,6 +54,14 @@ AC_DEFUN(PHP_IMAP_TEST_BUILD, [ ]) ]) +dsl Must be before --with-kerberos, affects the check +PHP_ARG_WITH(imap-linkage,use IMAP c-client linkage, +[ --with-imap-linkage Use IMAP c-client linkage to determine supported ite ms.]) + +if test "$PHP_IMAP_LINKAGE" != "no"; then + AC_DEFINE(HAVE_IMAP_LINKAGE, 1, [ ]) +fi + AC_DEFUN(PHP_IMAP_KRB_CHK, [ AC_ARG_WITH(kerberos, [ --with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerbe ros install dir.],[ @@ -90,7 +98,7 @@ AC_DEFUN(PHP_IMAP_KRB_CHK, [ PHP_ADD_LIBRARY(k5crypto, 1, IMAP_SHARED_LIBADD) PHP_ADD_LIBRARY(com_err, 1, IMAP_SHARED_LIBADD) PHP_ADD_INCLUDE($PHP_KERBEROS_DIR/include) - else + elif test "$PHP_IMAP_LINKAGE" != "yes"; then AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [ AC_MSG_ERROR([This c-client library is built with Kerberos support. --- cut here -- Patch #2 --- php_imap.c.orig 2003-09-04 09:48:30.000000000 +0200 +++ php_imap.c @@ -408,6 +408,11 @@ PHP_MINIT_FUNCTION(imap) ZEND_INIT_MODULE_GLOBALS(imap, php_imap_init_globals, NULL) +/* + * Optionally use the installed c-client linkage.c to determine which drivers + * are authenticators are linked in. Otherwise use this fixed list. + */ +#ifndef HAVE_IMAP_LINKAGE #ifndef PHP_WIN32 mail_link(&unixdriver); /* link in the unix driver */ mail_link(&mhdriver); /* link in the mh driver */ @@ -423,6 +428,10 @@ PHP_MINIT_FUNCTION(imap) mail_link(&tenexdriver); /* link in the tenex driver */ mail_link(&mtxdriver); /* link in the mtx driver */ mail_link(&dummydriver); /* link in the dummy driver */ +#else /* HAVE_IMAP_LINKAGE */ + /* link in the c-client mail and auth drivers */ +#include "linkage.c" +#endif /* HAVE_IMAP_LINKAGE */ #ifndef PHP_WIN32 auth_link(&auth_log); /* link in the log authenticator */ Reproduce code: --------------- Code inspection. -- Edit bug report at http://bugs.php.net/?id=26972&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=26972&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=26972&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=26972&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=26972&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=26972&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=26972&r=needscript Try newer version: http://bugs.php.net/fix.php?id=26972&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=26972&r=support Expected behavior: http://bugs.php.net/fix.php?id=26972&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=26972&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=26972&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=26972&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26972&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=26972&r=dst IIS Stability: http://bugs.php.net/fix.php?id=26972&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=26972&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=26972&r=float