Commit 424589b9 424589b91c3f367e4c9926804df4bf73bf100e59 by Sergey Poznyakoff

Enable GSASL by default.

* am/gsasl.m4 (MU_CHECK_GSASL): Enable GSASL by default.  Other minor fixes.
* am/tls.m4 (MU_CHECK_TLS): Rename to MU_CHECK_GNUTLS.  Check option
arguments.  Check for gnutls library version.
* configure.ac: Update.
* README: Document the change.
* NEWS: Document the change.
1 parent 00906d3b
1 GNU mailutils NEWS -- history of user-visible changes. 2011-11-21 1 GNU mailutils NEWS -- history of user-visible changes. 2011-11-23
2 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 2 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 See the end of file for copying conditions. 4 See the end of file for copying conditions.
...@@ -147,6 +147,15 @@ all available DBM libraries it can use. ...@@ -147,6 +147,15 @@ all available DBM libraries it can use.
147 147
148 ** Imap and nntp clients are not yet implemented 148 ** Imap and nntp clients are not yet implemented
149 149
150 ** Link with GSASL by default
151
152 GSASL is used by several Mailutils components (notably pop3d
153 and imap4d as well as their client counterparts) for authentification.
154 Since this version, it is enabled by default if configure detects the
155 presense of GNU SASL version 0.2.3 or later.
156
157 This can be disabled using the --without-gsasl option.
158
150 ** Experimental features 159 ** Experimental features
151 160
152 The C++ and Python bindings are considered experimental and unstable. 161 The C++ and Python bindings are considered experimental and unstable.
......
...@@ -156,11 +156,14 @@ mailutils-specific configuration options: ...@@ -156,11 +156,14 @@ mailutils-specific configuration options:
156 Disable the TLS/SSL encryption via GnuTLS (a Transport Layer 156 Disable the TLS/SSL encryption via GnuTLS (a Transport Layer
157 Security Library) in IMAP4/POP3 daemons and utilities. 157 Security Library) in IMAP4/POP3 daemons and utilities.
158 158
159 --with-gsasl 159 --without-gsasl
160 160
161 Enable GNU SASL support (Simple Authentication and Security 161 Disable GNU SASL support.
162 Layer framework). IMAP4d supports this mechanism. This 162
163 requires GSASL version 0.2.3 or newer. 163 GSASL is used by several Mailutils components (notably pop3d
164 and imap4d as well as their client counterparts) for
165 authentification. It is enabled by default if configure
166 detects the presense of GNU SASL version 0.2.3 or later.
164 167
165 --with-gssapi 168 --with-gssapi
166 169
......
...@@ -14,20 +14,20 @@ dnl ...@@ -14,20 +14,20 @@ dnl
14 dnl You should have received a copy of the GNU General Public License along 14 dnl You should have received a copy of the GNU General Public License along
15 dnl with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. 15 dnl with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
16 dnl 16 dnl
17
18 dnl MU_CHECK_GSASL([VERSION = `'],[ACTION-IF-TRUE=`'],[ACTION-IF-FALSE=`']
17 AC_DEFUN([MU_CHECK_GSASL], 19 AC_DEFUN([MU_CHECK_GSASL],
18 [AC_CACHE_CHECK([whether to use GNU SASL library], 20 [if test "x$mu_cv_lib_gsasl" = x; then
19 [mu_cv_lib_gsasl],
20 [if test "x$mu_cv_lib_gsasl" = x; then
21 cached="" 21 cached=""
22 mu_cv_lib_gsasl=no 22 mu_cv_lib_gsasl=no
23 23
24 AC_ARG_WITH(gsasl, 24 AC_ARG_WITH(gsasl,
25 AC_HELP_STRING([--with-gsasl], [use libgsasl for SASL authentication]), 25 AC_HELP_STRING([--without-gsasl], [do not use libgsasl]),
26 [case $withval in 26 [case $withval in
27 yes|no) wantgsasl=$withval;; 27 yes|no) wantgsasl=$withval;;
28 *) AC_MSG_ERROR([bad value for --with-gsasl: $withval]);; 28 *) AC_MSG_ERROR([bad value for --with-gsasl: $withval]);;
29 esac], 29 esac],
30 [wantgsasl=no]) 30 [wantgsasl=yes])
31 31
32 if test $wantgsasl = yes; then 32 if test $wantgsasl = yes; then
33 AC_CHECK_HEADER(gsasl.h, 33 AC_CHECK_HEADER(gsasl.h,
...@@ -56,9 +56,17 @@ main() ...@@ -56,9 +56,17 @@ main()
56 LIBS=$save_LIBS 56 LIBS=$save_LIBS
57 fi 57 fi
58 fi 58 fi
59 fi]) 59 else
60 cached=" (cached) "
61 fi
60 if test $mu_cv_lib_gsasl != no; then 62 if test $mu_cv_lib_gsasl != no; then
61 GSASL_LIBS=$mu_cv_lib_gsasl 63 GSASL_LIBS=$mu_cv_lib_gsasl
62 ifelse([$2],,,[$2]) 64 m4_if([$2],,,[$2])
65 fi
66 m4_if([$3],,,[if test $mu_cv_lib_gsasl = no; then
67 $3
63 fi]) 68 fi])
69 AC_MSG_CHECKING([whether to use GSASL])
70 AC_MSG_RESULT(${cached}${mu_cv_lib_gsasl})
71 ])
64 72
......
...@@ -15,34 +15,62 @@ dnl ...@@ -15,34 +15,62 @@ dnl
15 dnl You should have received a copy of the GNU General Public License along 15 dnl You should have received a copy of the GNU General Public License along
16 dnl with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. 16 dnl with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
17 dnl 17 dnl
18 AC_DEFUN([MU_CHECK_TLS], 18
19 dnl MU_CHECK_GNUTLS([VERSION = `'],[ACTION-IF-TRUE=`'],[ACTION-IF-FALSE=`']
20 AC_DEFUN([MU_CHECK_GNUTLS],
19 [ 21 [
20 if test "x$WITH_GNUTLS" = x; then 22 if test "x$mu_cv_lib_gnutls" = x; then
21 cached="" 23 cached=""
22 AC_ARG_WITH([gnutls], 24 AC_ARG_WITH([gnutls],
23 AC_HELP_STRING([--without-gnutls], 25 AC_HELP_STRING([--without-gnutls],
24 [do not use GNU TLS library]), 26 [do not use GNU TLS library]),
25 [WITH_GNUTLS=$withval], 27 [case "$withval" in
26 [WITH_GNUTLS=yes]) 28 yes|no) mu_cv_lib_gnutls=$withval;;
29 *) AC_MSG_ERROR([bad value for --with-gnutls: $withval]);;
30 esac],
31 [mu_cv_lib_gnutls=yes])
27 32
28 if test "$WITH_GNUTLS" != "no"; then 33 if test "$mu_cv_lib_gnutls" != "no"; then
29 AC_CHECK_HEADER(gnutls/gnutls.h, 34 AC_CHECK_HEADER(gnutls/gnutls.h,
30 [:], 35 [:],
31 [WITH_GNUTLS=no]) 36 [mu_cv_lib_gnutls=no])
32 if test "$WITH_GNUTLS" != "no"; then 37 if test "$mu_cv_lib_gnutls" != "no"; then
33 saved_LIBS=$LIBS 38 saved_LIBS=$LIBS
34 AC_CHECK_LIB(gcrypt, main, 39 AC_CHECK_LIB(gcrypt, main,
35 [TLS_LIBS="-lgcrypt"], 40 [TLS_LIBS="-lgcrypt"],
36 [WITH_GNUTLS=no]) 41 [mu_cv_lib_gnutls=no])
37 LIBS="$LIBS $TLS_LIBS" 42 LIBS="$LIBS $TLS_LIBS"
38 AC_CHECK_LIB(gnutls, gnutls_global_init, 43 AC_CHECK_LIB(gnutls, gnutls_global_init,
39 [TLS_LIBS="-lgnutls $TLS_LIBS"], 44 [TLS_LIBS="-lgnutls $TLS_LIBS"],
40 [WITH_GNUTLS=no]) 45 [mu_cv_lib_gnutls=no])
41 LIBS=$saved_LIBS 46 LIBS=$saved_LIBS
47 m4_if([$1],,,[if test $mu_cv_lib_gnutls != no; then
48 LIBS="$LIBS $TLS_LIBS"
49 AC_TRY_RUN([
50 #include <gnutls/gnutls.h>
51
52 int
53 main()
54 {
55 return gnutls_check_version ("$1") == (char*) 0;
56 }],
57 [:],
58 [mu_cv_lib_gnutls=no],
59 [mu_cv_lib_gnutls=no])
60 LIBS=$saved_LIBS
61 fi])
42 fi 62 fi
43 fi 63 fi
44 else 64 else
45 cached=" (cached) " 65 cached=" (cached) "
46 fi 66 fi
47 AC_MSG_CHECKING([whether to use TLS libraries]) 67
48 AC_MSG_RESULT(${cached}${WITH_GNUTLS})]) 68 m4_if([$2],,,[if test $mu_cv_lib_gnutls != no; then
69 $2
70 fi])
71 m4_if([$3],,,[if test $mu_cv_lib_gnutls = no; then
72 $3
73 fi])
74
75 AC_MSG_CHECKING([whether to use GNU TLS])
76 AC_MSG_RESULT(${cached}${mu_cv_lib_gnutls})])
......
...@@ -251,13 +251,13 @@ AC_SUBST(SERV_AUTHLIBS) ...@@ -251,13 +251,13 @@ AC_SUBST(SERV_AUTHLIBS)
251 AC_SUBST(SERV_AUTHINCS) 251 AC_SUBST(SERV_AUTHINCS)
252 252
253 AC_ARG_WITH([gssapi], 253 AC_ARG_WITH([gssapi],
254 AC_HELP_STRING([--with-gssapi], 254 AC_HELP_STRING([--with-gssapi@<:@=PATH@:>@],
255 [use GSSAPI authentication]), 255 [use GSSAPI authentication]),
256 [WITH_GSSAPI=$withval], 256 [status_gssapi=$withval],
257 [WITH_GSSAPI=no]) 257 [status_gssapi=no])
258 258
259 if test "x$WITH_GSSAPI" != "xno"; then 259 if test "x$status_gssapi" != "xno"; then
260 MU_CHECK_GSSAPI($WITH_GSSAPI) 260 MU_CHECK_GSSAPI($status_gssapi)
261 if test "$GSSAPI_IMPL" = "none"; then 261 if test "$GSSAPI_IMPL" = "none"; then
262 AC_CACHE_SAVE 262 AC_CACHE_SAVE
263 AC_MSG_RESULT([GSSAPI libraries not found]) 263 AC_MSG_RESULT([GSSAPI libraries not found])
...@@ -299,19 +299,19 @@ AC_SUBST(SITE_CRAM_MD5_PWD,"\$(sysconfdir)/cram-md5.pwd") ...@@ -299,19 +299,19 @@ AC_SUBST(SITE_CRAM_MD5_PWD,"\$(sysconfdir)/cram-md5.pwd")
299 299
300 AC_ARG_WITH(cram-passwd, 300 AC_ARG_WITH(cram-passwd,
301 AC_HELP_STRING([--with-cram-passwd=FILE], 301 AC_HELP_STRING([--with-cram-passwd=FILE],
302 [use keep passwords for CRAM-MD5 authentication method in FILE (default $SITE_CRAM_MD5_PWD)]), 302 [keep passwords for CRAM-MD5 authentication method in FILE (default $SITE_CRAM_MD5_PWD)]),
303 [case "${withval}" in 303 [case "${withval}" in
304 /*) SITE_CRAM_MD5_PWD="${withval}";; 304 /*) SITE_CRAM_MD5_PWD="${withval}";;
305 ./*|../*) AC_MSG_ERROR(Bad value for --with-cram-passwd);; 305 ./*|../*) AC_MSG_ERROR(Bad value for --with-cram-passwd);;
306 *) SITE_CRAM_MD5_PWD="\$(sysconfdir)/${withval}";; 306 *) SITE_CRAM_MD5_PWD="\$(sysconfdir)/${withval}";;
307 esac]) 307 esac])
308 308
309 MU_CHECK_TLS 309 MU_CHECK_GNUTLS([1.2.1],[
310 if test "$WITH_GNUTLS" != "no"; then
311 MU_AUTHLIBS="$MU_AUTHLIBS $TLS_LIBS" 310 MU_AUTHLIBS="$MU_AUTHLIBS $TLS_LIBS"
312 AC_DEFINE(WITH_GNUTLS,1,[Define if mailutils is using GNU TLS]) 311 AC_DEFINE(WITH_GNUTLS,1,[Define if mailutils is using GNU TLS])
313 AC_DEFINE(WITH_TLS,1,[Define if mailutils is using TLS]) 312 AC_DEFINE(WITH_TLS,1,[Define if mailutils is using TLS])
314 fi 313 status_gnutls=yes
314 ])
315 315
316 AC_SUBST(SITE_MAIL_RC) 316 AC_SUBST(SITE_MAIL_RC)
317 AC_ARG_WITH([mail-rc], 317 AC_ARG_WITH([mail-rc],
...@@ -1394,9 +1394,9 @@ status_pam=$status_pam ...@@ -1394,9 +1394,9 @@ status_pam=$status_pam
1394 status_ltdl=$status_ltdl 1394 status_ltdl=$status_ltdl
1395 status_dbm="$status_dbm" 1395 status_dbm="$status_dbm"
1396 status_ldap=$status_ldap 1396 status_ldap=$status_ldap
1397 status_gnutls=$WITH_GNUTLS 1397 status_gnutls=$status_gnutls
1398 status_gsasl=$status_gsasl 1398 status_gsasl=$status_gsasl
1399 status_gssapi=$WITH_GSSAPI 1399 status_gssapi=$status_gssapi
1400 status_guile=$useguile 1400 status_guile=$useguile
1401 status_python=$status_python 1401 status_python=$status_python
1402 status_cxx=$mu_cv_enable_cxx 1402 status_cxx=$mu_cv_enable_cxx
......