From: jdolecek at NetBSD dot org Operating system: NetBSD 1.6 ZG PHP version: 4.3.4 PHP Bug Type: IMAP related Bug description: Add an option to compile imap with imap-uw c-client linkage
Description: ------------ It would be nice if it would be possible to compile imap module directly with imap-uw linkage file, so that all supported authentication modules and protocols would be available. Actually, patches implementing this are in NetBSD pkgsrc system for some time, and I hope such option would be useful for other systems too. Having this option integrated in main PHP tree would ease our package maintenance, too :) Note there is similar (now closed) PR #4136 with same issue. The bug DB entry claims it was fixed in CVS, I don't know why it was backed off. Anyway, following patch adds configure option --with-imap-linkage. This option makes php_imap.c #include directly c-client linkage.c, instead of using list of hardcoded stuff. Default is same as now, i.e. to NOT use linkage.c. The --with-imap-linkage also disables the --with-kerberos check, since that is not needed in this case. Patch #1 -- cut here -- --- 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 -- cut here -- --- 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 */ -- cut here -- Reproduce code: --------------- Code inspection - php_imap.c uses fixed list instead of using imap-uw supplied linkage.c. -- Edit bug report at http://bugs.php.net/?id=26936&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=26936&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=26936&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=26936&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=26936&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=26936&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=26936&r=needscript Try newer version: http://bugs.php.net/fix.php?id=26936&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=26936&r=support Expected behavior: http://bugs.php.net/fix.php?id=26936&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=26936&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=26936&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=26936&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26936&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=26936&r=dst IIS Stability: http://bugs.php.net/fix.php?id=26936&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=26936&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=26936&r=float