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

From: Date: Sat, 25 Nov 2017 20:08:04 +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-212719@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: 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. Previous Comments: ------------------------------------------------------------------------ [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 (#212719) next »