Req #26936 [Opn->Csd]: Add an option to compile imap with imap-uw c-client linkage
| From: | girgias@php.net | Date: | Mon, 15 Jul 2019 00:10:07 +0000 |
| Subject: | Req #26936 [Opn->Csd]: 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-221769@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
Updated by: girgias@php.net
Reported by: jdolecek at NetBSD dot org
Summary: Add an option to compile imap with imap-uw c-client
linkage
-Status: Open
+Status: Closed
Type: Feature/Change Request
Package: IMAP related
Operating System: NetBSD 1.6 ZG
PHP Version: 4.3.4
-Assigned To:
+Assigned To: girgias
Block user comment: N
Private report: N
New Comment:
Closed per request of the original author.
Previous Comments:
------------------------------------------------------------------------
[2018-02-16 22:24:42] jdolecek at NetBSD dot org
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.
------------------------------------------------------------------------
[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