Req #26936 [Com]: Add an option to compile imap with imap-uw c-client linkage

From: Date: Fri, 16 Feb 2018 22:24:44 +0000
Subject: Req #26936 [Com]: Add an option to compile imap with imap-uw c-client linkage
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-213998@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=26936&edit=1 ID: 26936 Comment by: jdolecek at NetBSD dot org Reported by: jdolecek at NetBSD dot org Summary: Add an option to compile imap with imap-uw c-client linkage Status: Open Type: Feature/Change Request Package: IMAP related Operating System: NetBSD 1.6 ZG PHP Version: 4.3.4 Block user comment: N Private report: N New Comment: We've found alternative solution for NetBSD pkgsrc, and do not need to maintain this patch any more. You can close this bug. Thank you. Previous Comments: ------------------------------------------------------------------------ [2017-11-25 20:08:02] jdolecek at NetBSD dot org I've uploaded up-to-date patch (as of 7.1, applies also for 7.2). It would be really nice to have this option, would reduce amount of patches we keep for NetBSD pkgsrc package system. ------------------------------------------------------------------------ [2004-01-16 10:16:43] jdolecek at NetBSD dot org 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 this bug report at https://bugs.php.net/bug.php?id=26936&edit=1

« previous php.bugs (#213998) next »