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

Reply via email to