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