diff --git a/ChangeLog b/ChangeLog
index cd21925b..c878fbf2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,968 +1,972 @@
+2010-05-07  Werner Koch  <wk@g10code.com>
+
+	* configure.ac: Change checks to always require libassuan.
+
 2010-05-07  Marcus Brinkmann  <marcus@g10code.de>
 
 	* autogen.sh: Update the thing.
 
 	* configure.ac: Check for locale.h.
 
 2010-05-06  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Detect Windows CE.
 	(HAVE_W32CE_SYSTEM): New symbol and automake conditional.
 	* ltmain.sh, m4/libtool.m4: Patch so that it works for Windows CE.
 
 	* configure.ac: Require libgpg-error 1.8.
 
 2010-03-15  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (emacs_local_vars_begin)
 	(emacs_local_vars_read_only, emacs_local_vars_end): New.
 
 2010-01-22  Werner Koch  <wk@g10code.com>
 
 	* autogen.sh (--build-w32): Add --with-libassuan-prefix.
 
 2010-01-11  Marcus Brinkmann  <marcus@g10code.de>
 
 	Release 1.3.0.
 
 2009-12-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Do not use echo -n.  Test for __thread.
 
 2009-12-17  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Make largefile check more robust.
 
 2009-12-10  Werner Koch  <wk@g10code.com>
 
 	* configure.ac: Check for getgid and getegid.
 
 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	Update to libtool 2.2.6a.
 	* configure.ac: Invoke AC_CONFIG_MACRO_DIR.
 	(AC_LIBTOOL_WIN32_DLL, AC_LIBTOOL_RC): Replace by ...
 	(LT_PREREQ, LT_INIT, LT_LANG): ... these.
 	* config.guess, config.sub, install-sh, ltmain.sh, m4/libtool.m4:
 	Updated to libtool 2.2.6a.
 	* m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4,
 	m4/lt~obsolete.m4: New files from libtool 2.2.6a.
 
 2009-11-10  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Activate UIServer if FD passing is enabled and
 	Assuan is available.
 
 2009-10-30  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Check for argp.h and error_t.
 
 2009-10-26  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (NEED_GPG_VERSION_DEFAULT): Bump to 1.4.0 as 1.3.0
 	was development versions only.
 
 2009-10-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add support for G13.
 
 2009-10-20  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AC_CONFIG_FILES): Remove assuan/Makefile.
 
 2009-10-20  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Replace internal libassuan by external libassuan.
 	* m4/libassuan.m4: New file.
 	* Makefile.am (assuan): Remove variable.
 	(SUBDIRS): Remove ${assuan}.
 	* assuan/: Removed.
 
 2009-06-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add AC_TYPE_UINTPTR_T.
 
 	* assuan/assuan.h [_ASSUAN_IN_GPGME_BUILD_ASSUAN]: Declare
 	_gpgme_io_connect.
 
 2009-06-18  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released GPGME 1.2.0.
 
 	* configure.ac (my_version): Set to 1.2.0.
 	(LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump.
 	(LIBGPGME_LT_REVISION): Reset.
 
 2009-05-05  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add infrastructure for compile time check of
 	_FILE_OFFSET_BITS.
 
 2009-04-19  Moritz  <moritz@gnu.org>
 
 	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Specify --with-gpg.
 
 2009-03-06  Marcus Brinkmann  <marcus@g10code.de>
 
 	* assuan/: Update to libassuan SVN 2009-03-06.
 
 2009-01-26  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (AC_CONFIG_FILES): Add tests/opassuan/Makefile.
 
 2008-12-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	Release GPGME 1.1.8.
 
 	* configure.ac: Bump API revision.
 
 2008-11-03  Marcus Brinkmann  <marcus@g10code.com>
 
 	* configure.ac: Replace gpgme paths with src.
 	* gpgme: Move to ...
 	* src: ... this new directory.
 
 2008-10-20  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (AC_CONFIG_FILES): Add gpgme.h.
 	(GNUPG_FIX_HDR_VERSION): Remove.
 
 2008-10-17  Marcus Brinkmann  <marcus@g10code.com>
 
 	Release GPGME 1.1.7.
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump for release.
 
 2008-09-19  Moritz  <moritz@gnu.org>
 
 	* configure.ac: Remove bogus "esac".
 
 2008-09-16  Marcus Brinkmann  <marcus@g10code.com>
 
 	* configure.ac (_XOPEN_SOURCE) [apple-darwin]: Define it. 
 
 2008-07-04  Werner Koch  <wk@g10code.com>
 
 	* config.guess, config.sub: Update to 2007-11-19.  Also update
 	missing et al scripts. 
 
 2008-04-01  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (AC_INIT): Fix quoting.
 
 2008-01-30  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Bump required version of automake up to 1.10.
 	* autogen.sh: Fix aclocal check.
 
 2008-01-04  Marcus Brinkmann  <marcus@g10code.de>
 
 	Release GPGME 1.1.6.
 
 	* configure.ac: Support gpgconf.
 
 2007-09-27  Marcus Brinkmann  <marcus@g10code.de>
 
 	* assuan-pipe-connect.c (pipe_connect_gpgme): Do not close process
 	handle here.  Use this function also on Unix systems.
 
 	* assuan-pipe-connect.c (pipe_connect_gpgme): Fix last change.
 
 	* assuan-pipe-connect.c (pipe_connect_gpgme): New function, use it
 	if _ASSUAN_IN_GPGME_BUILD_ASSUAN.
 
 2007-09-17  Werner Koch  <wk@g10code.com>
 
 	* configure.ac: Use the svn version magic.
 
 2007-09-07  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Check for C++, Qt and support --enable-w32-qt.
 	* m4/pkg.m4: New file.
 
 2007-08-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (--enable-w32-glib): Use --enableval, not
 	--withval.
 
 2007-07-16  Marcus Brinkmann  <marcus@g10code.de>
 
 	* assuan/assuan-socket.c (_assuan_close): Always use close().
 	* assuan/assuan.h (_gpgme_io_close): New prototype.
 	(close): New macro, define as _gpgme_io_close.
 
 2007-07-13  Marcus Brinkmann  <marcus@g10code.de>
 
 	* assuan/assuan-io.c (_assuan_simple_read, _assuan_simple_write):
 	Always use read/write (which means _gpgme_io_read and
 	_gpgme_io_write).
 
 2007-07-09  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 1.1.5.
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump for release.
 
 2007-07-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (GPGSM_DEFAULT) [*-mingw32*]: Initialize it.
 	(HAVE_ASSUAN_H): Set to 1 if we have it.
 	(funopen): Use AC_REPLACE_FUNCS.
 	(USE_DESCRIPTOR_PASSING): Define to 1 if we have it.  Do not
 	define it at all if we don't.
 	(NETLIBS) [have_w32_system]: Add -lws2_32.
 	(DIRSEP_C, DIRSEP_S, EXPSEP_C, EXPSEP_S, PATHSEP_S)
 	[HAVE_DOSISH_SYSTEM]: Remove definitions.
 
 	* assuan/assuan.h (_assuan_funopen): Define to _gpgme_funopen.
 	* assuan/funopen.c: Move to ../gpgme/funopen.c.
 	* assuan/Makefile.am (libassuan_la_SOURCES): Remove funopen.c.
 
 2007-07-04  Marcus Brinkmann  <marcus@g10code.de>
 
 	* assuan/Makefile.am (INCLUDES): Include $(top_srcdir)/gpgme.
 	* assuan/assuan.h: Include <ath.h> instead of trying to duplicate
 	the definitions.
 	
 	* assuan/: Update files to 2007-07-04 version of assuan.
 
 	* autogen.sh: Use = not == in test.
 
 2007-03-05  Werner Koch  <wk@g10code.com>
 
 	Released 1.1.4.
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump for release.
 
 	* autogen.sh: New option --force.
 
 2007-01-29  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 1.1.3.
 	
 	* configure.ac (LIBGPGME_LT_REVISION): Bump for release.
 
 2007-01-26  Werner Koch  <wk@g10code.com>
 
 	* configure.ac: Changed gpg and gpgsm version checks to work with
 	arbitrary names of the gpg binary. New option --disable-gpg-test
 	and --disable-gpgsm-test.
 
 2007-01-09  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION): Must define
 	after it may have been changed by an option.
 
 2007-01-08  Werner Koch  <wk@g10code.com>
 
 	* configure.ac: Require gpg-error 1.4 due to the use of
 	gpg_error_from_syserror.
 	(HAVE_ASSUAN_H): New.
 
 2007-01-05  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add options --with-gpg-version and
 	--with-gpgsm-version to allow overriding the minimum version
 	requirements.
 
 2006-12-17  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Fix two typos in last change.
 
 2006-12-03  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Use descriptor passing only if --enable-fd-passing
 	is provided.
 
 	* configure.ac: Add check for use of descriptor passing.
 
 2006-11-29  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (NEED_GPG_VERSION): Bump to 1.3.0.
 
 2006-09-19  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Turn stpcpy into a replacement function.
 	Check for unistd.h and add setenv as replacement function.
 
 2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Check for network libraries and set NETLIBS.
 
 2006-07-06  Marcus Brinkmann  <marcus@g10code.de>
 
 	* lang, lang/cl: New subdirectories.
 	* lang/Makefile.am, lang/README: New files.
 	* configure.ac (AC_CONFIG_FILES): Add lang/Makefile,
 	lang/cl/Makefile and lang/cl/gpgme.asd.
 	* Makefile.am (SUBDIRS): Add lang.
 
 2006-03-02  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump for release.
 
 2006-02-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 1.1.1.
 
 	* configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump for
 	release.
 	(LIBGPGME_LT_REVISION): Reset to 0 for release.
 
 2006-01-05  Werner Koch  <wk@g10code.com>
 
 	* configure.ac: Test for inline feature.
 	(AH_BOTTOM): New to define the pure attribute.
 
 2006-01-03  Werner Koch  <wk@g10code.com>
 
 	* configure.ac: Append SVN revision to the version.
 
 2005-11-18  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (BUILD_REVISION): New.
 
 2005-11-17  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add support for --enable-w32-glib (disabled by
 	default).  Invoke AM_PATH_GLIB_2_0.
 
 2005-11-16  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (CFLAGS) [W32]: Make sure that -mms-bitfields are used.
 
 2005-11-15  Werner Koch  <wk@g10code.com>
 
 	* configure.ac: Create BUILD_FILEVERSION from SVN Revision.
 
 	* autogen.sh [W32]: Build shared and static versions of the library.
 
 2005-10-20  Marcus Brinkmann  <marcus@g10code.de>
 
 	* w32-dll/ChangeLog, w32-dll/build-dll, w32-dll/gpgme.def: Remove
 	files.
 
 	* configure.ac: Instead checking for windres and dlltool, invoke
 	AC_LIBTOOL_WIN32_DLL and AC_LIBTOOL_RC.
 	* src/Makefile.am [HAVE_W32_SYSTEM]: Use libtool, which simplifies
 	the rules.
 
 2005-10-01  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 1.1.0.
 
 	* configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump for
 	release.
 	(LIBGPGME_LT_REVISION): Reset to 0 for release.
 
 2005-09-12  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (HAVE_PTH): Don't add $PTH_CFLAGS to $CFLAGS here.
 
 2005-08-26  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (SEPCONSTANTS): New to define DIRSEP_C et al.
 
 2005-08-19  Werner Koch  <wk@g10code.com>
 
 	* configure.ac [W32]: Create values for versioninfo.rc and list
 	substuture versioninfo.rc.
 	* configure.ac: Define ENABLE_GPGSM.
 
 2005-08-08  Werner Koch  <wk@g10code.com>
 
 	* configure.ac (stpcpy): Changed from replace to test.
 
 2005-03-24  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AH_BOTTOM): Removed.
 
 2005-03-09  Werner Koch  <wk@g10code.com>
 
 	* acinclude.m4 (GNUPG_CHECK_VA_COPY): Assume no when cross-compiling.
 
 	* Makefile.am (EXTRA_DIST): Include autogen.sh
 
 	* autogen.sh: Added the usual code to build for W32 (--build-w32).
 
 	* configure.ac: Fixed the mingw32 host string, removed OS/2 stuff.
 	(HAVE_DRIVE_LETTERS): Removed.
 	(HAVE_W32_SYSTEM): Added.
 	(AC_GNU_SOURCE): New to replace the identical AH_VERBATIM.
 	(AH_BOTTOM): Added.
 
 2004-12-28  Werner Koch  <wk@g10code.com>
 
 	Released 1.0.2.
 
 	* Makefile.am (AUTOMAKE_OPTIONS): Build bzip 2 version.
 	(ACLOCAL_AMFLAGS): Add -I m4.
 	* configure.ac: Require automake 1.9.3 and autoconf 2.59.
 	* acinclude.m4: Changed quoting for automake 1.9.
 	* README: Use SHA1 instead of MD5.
 
 2004-12-11  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Replace ttyname_r if it doesn't exist (and warn in
 	that case).
 
 2004-12-07  Marcus Brinkmann  <marcus@g10code.de>
 
 	* README: Refer to COPYING.LESSER and "each file" instead of
 	COPYING.
 	* COPYING.LESSER: New file.
 	* gpgme.spec.in (%doc): Add COPYING.LESSER.
 	* acinclude.m4, configure.ac, Makefile.am: Change license to LGPL
 	2.1 or later.
 	* TODO: Add copyright notice.
 	* README.CVS: Likewise.
 
 	* configure.ac (GPGSM_VERSION): Fix filter to get it.
 
 2004-10-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 1.0.1.
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump up to 2.
 	(AC_INIT): Set version to 1.0.1.
 
 	* configure.ac: Set HAVE_GPGSM to true only if $GPGSM is not "no".
 
 2004-09-30  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 1.0.0.
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump up to 1.
 	(AC_INIT): Set version to 1.0.0.
 
 	* Makefile.am (EXTRA_DIST): Remove README-alpha.
 	* README-alpha: Remove file.
 
 2004-09-17  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Disable AC_CONFIG_MACRO_DIR for now.
 
 2004-09-14  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Improve diagnostics with version check.
 
 	* configure.ac: Print diagnostics about found thread libraries at
 	the end.  Check for the versions of GPG and GPGSM and print the
 	found versions at the end.
 	(HAVE_GPGSM): Do not require GPGSM to exist and be readable.
 	(AC_CONFIG_MACRO_DIR): Invoke with argument m4.
 
 	* acinclude.m4: Add copyright notice.
 	(jm_GLIBC21, AM_PATH_GPG_ERROR, _AC_PTH_ERROR, _AC_PTH_VERBOSE,
 	AC_CHECK_PTH): Removed.
 
 2004-06-23  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Check for <sys/uio.h>.
 
 2004-06-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 0.9.0.
 
 	* configure.ac (AC_INIT): Set version number to 0.9.0.
 	(LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump up by one.
 	(LIBGPGME_LT_REVISION): Reset to zero.
 
 2004-05-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (GPGME_CONFIG_API_VERSION): New variable,
 	substitute it.
 
 2004-04-29  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 0.4.7.
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump it up.
 
 2004-04-02  Thomas Schwinge  <schwinge@nic-nac-project.de>
 
 	* autogen.sh: Added ACLOCAL_FLAGS.
 
 2004-04-06  Werner Koch  <wk@gnupg.org>
 
 	Released 0.4.6.
 	
 	* config.guess, config.sub, ltmain.sh: Updated to those from
 	libtools 1.5.4.
 
 2004-03-07  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 0.4.5.
 
 	* configure.ac (NEED_GPGSM_VERSION): Bump up to 1.9.6.
 
 	* Makefile.am (EXTRA_DIST): Remove autogen.sh and README.CVS.
 
 2004-02-18  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac: Make the check for funopen fail with just a
 	warning.
 
 2004-02-11  Werner Koch  <wk@gnupg.org>
 
 	* autogen.sh (check_version): Removed bashism and simplified.
 
 2004-02-10  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac: Fixed funopen test change.
 
 2004-02-06  Moritz Schulte  <mo@g10code.com>
 
 	* configure.ac: Fix funopen replacement mechanism.
 
 2004-01-31  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add invocation of AC_SYS_LARGEFILE, AC_TYPE_OFF_T
 	and AC_FUNC_FSEEKO.
 
 2004-01-12  Werner Koch  <wk@gnupg.org>
 
 	Released 0.4.4.
 	
 	* configure.ac: Bumbed LT_Revision; now at C12/A1/R1. 
 	(NEED_GPGSM_VERSION): Set to 1.9.3.
 	(min_automake_version): Added.
 	* README.CVS: New.
 	* Makefile.am (EXTRA_DIST): Added README.CVS.
 	* autogen.sh: Updated.
 
 2003-11-19  Werner Koch  <wk@gnupg.org>
 
 	* acinclude.m4: Add AM_PATH_GPG_ERROR.
 	* configure.ac: Check for timegm.  Made warning messages more
 	prominent.
 
 2003-10-06  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 0.4.3.
 
 	* configure.ac (LIBGPGME_LT_CURRENT, LIBGPGME_LT_AGE): Bump up by 1.
 	(LIBGPGME_LT_REVISION): Set to 0.
 
 2003-09-13  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Require libgpg-error 0.5.
 
 	* acinclude.m4: Remove libtool cruft, add jm_GLIBC21.
 	* configure.ac: Add check for getenv_r, and call jm_GLIBC21.
 	Define HAVE_THREAD_SAFE_GETENV if appropriate.
 
 2003-09-03  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Remove GPGME_CONFIG_LIBS and GPGME_CONFIG_CFLAGS.
 
 2003-09-02  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Move invocation of AC_CANONICAL_HOST up to
 	suppress warning by autoconf.
 
 2003-08-30  Robert Schiele <rschiele@uni-mannheim.de>
 
 	* gpgme.spec.in: %{_infodir}/dir is not packaged,
 	remove to prevent checking failure.
 
 2003-08-18  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: If building Assuan, check for funopen and
 	fopencookie, and make isascii, putc_unlocked and memrchr
 	replacement functions.
 	(AM_PATH_GPG_ERROR): Require 0.3.
 
 2003-07-31  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AC_INIT): Bump version to 0.4.3.
 
 2003-07-30  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (LIBGPGME_LT_REVISION): Bump up to 1.
 
 	Released 0.4.2.
 
 2003-07-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Complain if libgpg-error is not found.
 
 2003-06-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AC_INIT): Bump version to 0.4.2.
 
 2003-06-06  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (LIBGPGME_LT_CURRENT): Bump up to 11.
 
 	* configure.ac: Use AM_PATH_GPG_ERROR.
 
 	* configure.ac: Check for libgpg-error.  Define
 	GPG_ERR_SOURCE_DEFAULT.
 
 2003-05-26  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (NEED_GPG_VERSION): Bump up to 1.2.2.
 
 2003-05-18  Marcus Brinkmann  <marcus@g10code.de>
 
 	In all files, replace the Gpgme* type names with the new gpgme_*
 	type names.
 
 2003-02-01  Marcus Brinkmann  <marcus@g10code.de>
 
 	* assuan/: Update files to 2002-11-10 version of assuan.
 
 2003-01-29  Marcus Brinkmann  <marcus@g10code.de>
 
 	* bonobo/gpgme.c, bonobo/main.c, bonobo/main.h, bonobo/Makefile,
 	bonobo/Makefile.am, bonobo/Makefile.in: Dead files removed.
 	* configure.ac: Remove automake conditional BUILD_BONOBO
 	(AC_CONFIG_FILES): Remove bonobo/Makefile.
 	* Makefile.am (bonobo): Remove variable.
 	(SUBDIRS): Remove ${bonobo}.
 	
 	* configure.ac: Remove all uses of GNUPG_CHECK_TYPEDEF, for byte,
 	ushort, ulong, u16 and u32.
 	* acinclude.m4 (GNUPG_CHECK_TYPEDEF): Remove macro.
 
 2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: New conditional HAVE_LD_VERSION_SCRIPT.
 	Call AC_CANONICAL_HOST, use host instead target.
 
 2002-12-23  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Bump up to 0.4.1.
 	
 	Released 0.4.0.
 
 2002-12-23  Marcus Brinkmann  <marcus@g10code.de>
 
 	* autogen.sh (automake_vers): Require 1.7 (really 1.7.1) for the
 	conditional source distribution bug fix.
 
 2002-12-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (LIBGPGME_LT_CURRENT): Increase by one.
 	(LIBGPGME_LT_AGE, LIBGPGME_LT_REVISION): Set to 0.
 
 2002-11-28  Marcus Brinkmann  <marcus@g10code.de>
 
 	* NEWS: Add note about moving "gpgmeplug" to the "cryptplug"
 	package.
 	* README: Remove instructions related to "gpgmeplug".
 	* configure.ac: Remove enable option "gpgmeplug" and automake
 	conditional BUILD_GPGMEPLUG, as well as the status info about it.
 	(GPGMEPLUG): Remove variable.
 	* Makefile.am (gpgmeplug): Remove variable.
 	(SUBDIRS): Remove ${gpgmeplug}.
 	* cryptplug.h, gpgme-openpgp.c, gpgmeplug.dox, gpgme-smime.c,
 	Makefile.am, gpgmeplug.c, ChangeLog: Files removed.
 
 2002-11-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Disable GPGSM for all dosish systems.
 
 2002-10-12  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add automake conditional HAVE_GPGSM.
 
 2002-10-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AC_INIT): Bump version up to 0.4.0.
 	(NEED_GPG_VERSION): Bump up to 1.2.0.
 	(NEED_GPGSM_VERSION): Bump up to 0.9.0.
 	* README: Update version numbers.
 	* NEWS: Start entry for 0.4.0.
 
 2002-09-20  Werner Koch  <wk@gnupg.org>
 
 	Released 0.3.11.
 	
 	* configure.ac: Bump up LIBGPGME_LT_REVISION.
 
 	* configure.ac (AC_CHECK_HEADERS): Check for sys/select.h.
 
 2002-09-04  Marcus Brinkmann  <marcus@g10code.de>
 
 	* autogen.sh (autoconf_vers): Bump up to 2.53 to get the @&t@
 	quadrigraph.  Always cutting the edge!
 
 2002-09-02  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Create and substitute LTLIBOBJS.
 
 2002-09-02  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 0.3.10.
 
 	* NEWS: Update for 0.3.9 release.
 	* configure.ac: Bump up LIBGPGME_LT_REVISION.
 
 2002-08-29  Marcus Brinkmann  <marcus@g10code.de>
 
 	* gpgme.spec.in: Changed user name in Wojciech Polak's email
 	address from ghostface to polak per request by himself.
 
 2002-08-28  Werner Koch  <wk@gnupg.org>
 
 	* acinclude.m4 (GNUPG_CHECK_VA_COPY): New.
 	* configure.ac: Use it.
 
 2002-08-23  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac (GPGME_CONFIG_CFLAGS): Renamed from GPGME_CFLAGS
 	and removed the libpath because it is set by the config script.
 
 2002-08-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Bump version number to 0.3.10.
 
 	* NEWS: Add template for development version.
 
 2002-08-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 0.3.9.
 
 	* NEWS: Update for 0.3.9 release.
 	* Makefile.am (EXTRA_DIST): Add gpgme.spec.in.
 
 2002-08-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	* jnlib/argparse.c, jnlib/argparse.h, jnlib/ChangeLog,
 	jnlib/dotlock.c, jnlib/dotlock.h, jnlib/libjnlib-config.h,
 	jnlib/logging.c, jnlib/logging.h,jnlib/Makefile.am,
 	jnlib/mischelp.h, jnlib/README, jnlib/stringhelp.c,
 	jnlib/stringhelp.h, jnlib/strlist.c, jnlib/strlist.h,
 	jnlib/types.h, jnlib/xmalloc.c, jnlib/xmalloc.h: Remove files.
 
 2002-08-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	* Makefile.am (SUBDIRS): Remove jnlib.
 	* configure.ac: Don't check for unsigned short or unsigned long.
 	Don't check for memicmp, strlwr, strtoul, memmove, stricmp.
 	Make stpcpy a replaced function.
 	Don't define HAVE_JNLIB_LOGGING.
 	Don't generate jnlib/Makefile.
 
 2002-07-02  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac: Bumbed version number to 0.3.9; add a comment on
 	when to change it.
 
 	* gpgme.spec.in: New. Contributed by Wojciech Polak.
 	* Makefile.am (dist-hook): New.
 
 	* AUTHORS: Added Wojciech and bug reporting addresses.
 
 2002-06-25  Werner Koch  <wk@gnupg.org>
 
 	Released 0.3.8.
 	
 	* configure.ac: Bumbed LT version to 9/3/0.
 	(NEED_GPGSM_VERSION): Need 0.3.8 due to fixed export command.
 
 2002-06-04  Marcus Brinkmann  <marcus@g10code.de>
 
 	Released 0.3.7.
 
 	* configure.ac (AC_INIT): Set version to 0.3.7.
 	(LIBGPGME_LT_REVISION): Add one.
 
 	* README: Document version requirement correctly.
 
 2002-06-02  Marcus Brinkmann  <marcus@g10code.de>
 
 	* acinclude.m4: Fix Pth check so that it doesn't error out if pth
 	is not found.
 
 2002-06-02  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add checks for Pth and pthreads.
 	* acinclude.m4: Add slightly hacked check for pth (seems to be an
 	autoconf version problem).
 
 2002-05-21  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac (NEED_GPGSM_VERSION): We need gpgsm 0.3.7.
 
 2002-05-03  Werner Koch  <wk@gnupg.org>
 
 	Released 0.3.6.
 
 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
 
 	* acconfig.h: File removed.
 	* configure.ac (NEED_GPG_VERSION): Add description.
 	(NEED_GPGSM_VERSION): Likewise.
 	(HAVE_DOSISH_SYSTEM): Likewise.
 	(HAVE_DRIVE_LETTERS): Likewise.
 	(GPG_PATH): Likewise.
 	(GPGSM_PATH): Likewise.
 	* acinclude.m4 (GNUPG_CHECK_TYPEDEF): Likewise.
 
 2002-04-01  Werner Koch  <wk@gnupg.org>
 
 	Released 0.3.5.
 
 2002-03-17  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac: Add automake conditional HAVE_DOSISH_SYSTEM.
 
 2002-03-04  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac: Bumbed version to 0.3.4-cvs to continue development.
 
 	Released 0.3.4.
 	
 	* configure.ac: Bumbed LT version numbers to (7,1,0), requires
 	gpgsm 0.3.1.
 
 2002-03-03  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AC_INIT): Change version number to snapshot CVS
 	version.
 
 2002-02-13  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac (vasprintf,fopencookie): Add checks.
 
 2002-02-12  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AC_INIT): Bump version to 0.3.3.
 	* jnlib/Makefile.am: Rever to older version that includes xmalloc
 	but not dotlock and some other files.  Reported by Stéphane
 	Corthésy.
 	
 2002-02-10  Marcus Brinkmann  <marcus@g10code.de>
 
 	* Released 0.3.2.
 
 	* configure.ac (AC_INIT): Bump version to 0.3.2.
 	* jnlib/libjnlibconfig.h: Revert to older version that doesn't
 	expect libgcrypt.  Reported by Jose Carlos Garcia Sogo
 	<jsogo@debian.org>.
 
 2002-02-09  Marcus Brinkmann  <marcus@g10code.de>
 
 	* Released 0.3.1.
 
 	* configure.ac (LIBGPGME_LT_CURRENT): Bump it up to 6!
 	(NEED_GPGSM_VERSION): Bump it up to 0.3.0!
 	(AC_INIT): Bump version to 0.3.1
 
 2002-01-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (HAVE_JNLIB_LOGGING): Define always for assuan.
 
 2001-12-19  Werner Koch  <wk@gnupg.org>
 
 	* configure.ac (VERSION,PACKAGE): Defined and subst.  Used for
 	AM_INIT_AUTOMAKE and moved all version number more to the top.
 
 2001-12-18  Marcus Brinkmann  <marcus@g10code.de>
 
 	* autogen.sh (libtool_vers): Bump to 1.4.
 
 	* configure.ac (LIBGPGME_LT_CURRENT): Increment.
 	(LIBGPGME_LT_AGE): Reset.
 	Improve comment.
 	Fix wrong comment character.
 
 2001-12-18  Werner Koch  <wk@gnupg.org>
 
 	* acinclude.m4 (GNUPG_FIX_HDR_VERSION): Fixed for new automake.
 
 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (GPG): Substitute this variable.
 	(GPGSM): Likewise.
 
 2001-11-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (AC_CONFIG_FILES): Add tests/gpg/Makefile and
 	tests/gpgsm/Makefile.
 
 2001-11-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	* Makefile.am (gpgmeplug): New variable, set to gpgmeplug if
 	[BUILD_GPGMEPLUG].
 	* configure.ac (AC_CONFIG_FILES): Add gpgmeplug/Makefile.
 	Support --enable-gpgmeplug.
 
 2001-11-21  Marcus Brinkmann  <marcus@g10code.de>
 
 	* autogen.sh: Tighten version dependencies.
 
 2001-11-20  Marcus Brinkmann  <marcus@g10code.de>
 
 	* Makefile.am (SUBDIRS): Support building the assuan library
 	(currently if GPGSM_PATH is set)..
 	* configure.ac: Support building the assuan library.
 	* assuan: New directory, populated with the Assuan library
 	(copied from the newpg repository).
 
 2001-11-20  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.ac (NEED_GPGSM_VERSION): New variable.  Treat it
 	similarly to NEED_GPG_VERSION.
 	* acconfig.h: Likewise.
 
 2001-11-18  Marcus Brinkmann  <marcus@g10code.de>
 
 	* configure.in: Renamed to ...
 	* configure.ac: ... this.  Update to autoconf 2.52.  Lots of small
 	changes in the transition.  Support --with-gpg=PATH and
 	--with-gpgsm=PATH options.  Check if test suites can be run.
 	* acconfig.h: Add GPGSM_PATH.
 	* Makefile.am: New variable `tests', set to `tests' if
 	RUN_GPG_TESTS.
 	(SUBDIRS): Replace string `tests' with variable `tests'.
 
 2001-10-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* autogen.sh: Invoke automake with `-a' (add missing files).
 	Do not invoke configure.
 
 2001-09-17  Werner Koch  <wk@gnupg.org>
 
 	Released 0.2.3.
 	
 	* configure.in (NEED_GPG_VERSION): Set to 1.0.6. Incremented LT
 	current and age.
 
 	* Makefile.am (SUBDIRS): Add doc
 
 2001-06-12  Werner Koch  <wk@gnupg.org>
 
 	Released 0.2.2.
 
 2001-04-05  Werner Koch  <wk@gnupg.org>
 
 	* configure.in (NEED_GPG_VERSION): Set to 1.0.4g 
 
 2001-04-02  Werner Koch  <wk@gnupg.org>
 
 	Released 0.2.1.
 
 	Changed the copyright notices all over the place.
 	
 2001-02-28  Werner Koch  <wk@gnupg.org>
 
 	Released 0.2.0.
 
 2001-01-18  Werner Koch  <wk@gnupg.org>
 
 	* autogen.sh: Added option --build-w32.
 
 
  Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 g10 Code GmbH
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without
  modifications, as long as this notice is preserved.
 
  This file is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/configure.ac b/configure.ac
index 6ac1a5ea..300b2292 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,949 +1,947 @@
 # configure.ac for GPGME
 # Copyright (C) 2000 Werner Koch (dd9jn)
 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
 #               2009, 2010  g10 Code GmbH
 # 
 # This file is part of GPGME.
 # 
 # GPGME is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Lesser General Public License as
 # published by the Free Software Foundation; either version 2.1 of the
 # License, or (at your option) any later version.
 # 
 # GPGME is distributed in the hope that it will be useful, but WITHOUT
 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
 # Public License for more details.
 # 
 # You should have received a copy of the GNU Lesser General Public
 # License along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  
 # (Process this file with autoconf to produce a configure script.)
 AC_PREREQ(2.59)
 min_automake_version="1.10"
 
 # Version number: Remember to change it immediately *after* a release.
 #                 Make sure to run  "svn up" and "./autogen.sh --force"
 #                  before a "make dist".  See below for the LT versions.
 #
 # The SVN version is usually the next intended release version with
 # the string "-svnNNN" appended.  The reason for this is that tests for a
 # specific feature can already be done under the assumption that the
 # SVN version is the most recent one in a branch.  To disable the SVN
 # version for the real release, set the my_issvn macro to no.
 m4_define(my_version, [1.3.1])
 m4_define(my_issvn, [yes])
 
 m4_define([svn_revision], m4_esyscmd([printf "%d" $( (svn info 2>/dev/null \
             || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')]))
 AC_INIT([gpgme], 
         [my_version[]m4_if(my_issvn,[yes],[-svn[]svn_revision])],
         [bug-gpgme@gnupg.org])
 
 
 # LT Version numbers, remember to change them just *before* a release.
 #   (Code changed:			REVISION++)
 #   (Interfaces added/removed/changed:	CURRENT++, REVISION=0)
 #   (Interfaces added:			AGE++)
 #   (Interfaces removed/changed:	AGE=0)
 #
 LIBGPGME_LT_CURRENT=18
 # Subtract 2 from this value if you want to make the LFS transition an
 # ABI break.  [Note to self: Remove this comment with the next regular break.]
 LIBGPGME_LT_AGE=7
 LIBGPGME_LT_REVISION=0
 
 # If the API is changed in an incompatible way: increment the next counter.
 GPGME_CONFIG_API_VERSION=1
 ##############################################
 
+NEED_LIBASSUAN_API=2
+NEED_LIBASSUAN_VERSION=2.0.0
+
 
 BUILD_REVISION=svn_revision
 PACKAGE=$PACKAGE_NAME
 VERSION=$PACKAGE_VERSION
 
 AC_CONFIG_SRCDIR(src/gpgme.h.in)
 dnl FIXME: Enable this with autoconf 2.59.
 dnl AC_CONFIG_MACRO_DIR(m4)
 AM_CONFIG_HEADER(config.h)
 AC_CONFIG_MACRO_DIR([m4])
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
 AM_MAINTAINER_MODE
 AC_CANONICAL_HOST
 
 # Enable GNU extensions on systems that have them.
 AC_GNU_SOURCE
 
 AH_VERBATIM([_REENTRANT],
 [/* To allow the use of GPGME in multithreaded programs we have to use
   special features from the library.
   IMPORTANT: gpgme is not yet fully reentrant and you should use it
   only from one thread.  */
 #ifndef _REENTRANT
 # define _REENTRANT 1
 #endif])
 
 AC_PROG_CC
 AC_PROG_CXX
 
 AC_SUBST(LIBGPGME_LT_CURRENT)
 AC_SUBST(LIBGPGME_LT_AGE)
 AC_SUBST(LIBGPGME_LT_REVISION)
 
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
 
 # Don't default to build static libs.
 LT_PREREQ([2.2.6])
 LT_INIT([win32-dll disable-static])
 LT_LANG([Windows Resource])
 
 # For now we hardcode the use of version scripts.  It would be better
 # to write a test for this or even implement this within libtool.
 have_ld_version_script=no
 case "${host}" in
     *-*-linux*)
 	have_ld_version_script=yes
         ;;
     *-*-gnu*)
 	have_ld_version_script=yes
         ;;
     *-apple-darwin*)
         AC_DEFINE(_XOPEN_SOURCE, 500, Activate POSIX interface on MacOS X)
         ;;
 esac
 
 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
 
 GPG_DEFAULT=no
 GPGSM_DEFAULT=no
 GPGCONF_DEFAULT=no
 G13_DEFAULT=no
 component_system=None
 have_dosish_system=no
 have_w32_system=no
 build_w32_glib=no
 build_w32_qt=no
 case "${host}" in
     *-mingw32ce*)
         have_w32ce_system=yes
 	;;
 esac
 case "${host}" in
     *-mingw32ce*|*-mingw32*)
         # special stuff for Windoze NT
 	have_dosish_system=yes
         have_w32_system=yes
         GPG_DEFAULT='c:\\gnupg\\gpg.exe'
 	GPGSM_DEFAULT='c:\\gnupg\\gpgsm.exe'
         GPGCONF_DEFAULT='c:\\gnupg\\gpgconf.exe'
         G13_DEFAULT='c:\\gnupg\\g13.exe'
         #component_system='COM+'
 
 	AM_PATH_GLIB_2_0
 	AC_ARG_ENABLE(w32-glib,
 	    AC_HELP_STRING([--enable-w32-glib], [build GPGME Glib for W32]),
 	    		   build_w32_glib=$enableval)
 
 	# Check disabled, because the qt-dev packages in gpg4win do
 	# not provide any support for cross compilation.
 	# PKG_CHECK_MODULES(QT4_CORE, QtCore)
 
 	# Use it like this:
 	# ./configure --enable-w32-qt QT4_CORE_CFLAGS="..." QT4_CORE_LIBS="..."
 	AC_SUBST(QT4_CORE_CFLAGS)
 	AC_SUBST(QT4_CORE_LIBS)
 	AC_ARG_ENABLE(w32-qt,
 	    AC_HELP_STRING([--enable-w32-qt], [build GPGME Qt for W32]),
 	    		   build_w32_qt=$enableval)
         ;;
     *)
 	AC_CHECK_PTH(1.2.0,,,no,have_pth=yes)
 	if test "$have_pth" = yes; then
 	  AC_DEFINE(HAVE_PTH, ,[Define if we have Pth.])
 	fi
 	AC_CHECK_LIB(pthread,pthread_create,have_pthread=yes)
 	if test "$have_pthread" = yes; then
 	  AC_DEFINE(HAVE_PTHREAD, ,[Define if we have pthread.])
 	fi
 
 	# XXX: Probably use exec-prefix here?
 #	GPG_DEFAULT='/usr/bin/gpg'
 #	GPGSM_DEFAULT='/usr/bin/gpgsm'
 #	GPGCONF_DEFAULT='/usr/bin/gpgconf'
 #	G13_DEFAULT='/usr/bin/g13'
 	;;
 esac
 
 if test "$have_dosish_system" = yes; then
    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
              [Defined if we run on some of the PCDOS like systems 
               (DOS, Windoze. OS/2) with special properties like
               no file modes])
 fi
 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
 
 if test "$have_w32_system" = yes; then
    AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
 fi
 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
 if test "$have_w32ce_system" = yes; then
    AC_DEFINE(HAVE_W32CE_SYSTEM,1, [Defined if we run on a W32 CE API based system])
 fi
 AM_CONDITIONAL(HAVE_W32CE_SYSTEM, test "$have_w32ce_system" = yes)
 AM_CONDITIONAL(BUILD_W32_GLIB, test "$build_w32_glib" = yes)
 AM_CONDITIONAL(BUILD_W32_QT, test "$build_w32_qt" = yes)
 
 AM_CONDITIONAL(HAVE_PTH, test "$have_pth" = "yes")
 AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
 
 
 
 # Checks for header files.
 AC_CHECK_HEADERS([locale.h])
 AC_CHECK_HEADERS(sys/select.h)
 AC_CHECK_HEADERS([sys/uio.h])
 
 
 # Type checks.
 AC_C_INLINE
 AC_CHECK_SIZEOF(unsigned int)
 AC_SYS_LARGEFILE
 AC_TYPE_OFF_T
 AC_TYPE_UINTPTR_T
 
 # A simple compile time check in gpgme.h for GNU/Linux systems that
 # prevents a file offset bits mismatch between gpgme and the application.
 NEED__FILE_OFFSET_BITS=0
 case "$ac_cv_sys_file_offset_bits" in
   "" | no | unknown) ;;
   *)
   NEED__FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits
   ;;
 esac
 AC_SUBST(NEED__FILE_OFFSET_BITS)
 
 
 # Checks for compiler features.
 if test "$GCC" = yes; then
     CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
     if test "$have_w32_system" = yes; then
        CFLAGS="$CFLAGS -mms-bitfields"
     fi
 fi
 
 # Only used for debugging, so no serious test needed (for actual
 # functionality you have to test libc as well, this only tests the
 # compiler).
 AC_CACHE_CHECK([for __thread],[gpgme_cv_tls_works],
    AC_COMPILE_IFELSE([__thread int foo;],
      gpgme_cv_tls_works=yes,gpgme_cv_tls_works=no))
 if test "$gpgme_cv_tls_works" = yes; then
   AC_DEFINE(HAVE_TLS, [1], [Define if __thread is supported])
 fi
 
 
 # Checks for library functions.
 AC_FUNC_FSEEKO
 
 AC_REPLACE_FUNCS(vasprintf)
 if test "$ac_cv_func_vasprintf" != yes; then
   GNUPG_CHECK_VA_COPY
 fi
 
 # Try to find a thread-safe version of ttyname().
 AC_REPLACE_FUNCS(ttyname_r)
 if test "$ac_cv_func_ttyname_r" != yes; then
   AC_MSG_WARN([
 ***
 *** ttyname() is not thread-safe and ttyname_r() does not exist
 ***])
 fi
 
 # Try to find a thread-safe version of getenv().
 have_thread_safe_getenv=no
 jm_GLIBC21
 if test $GLIBC21 = yes; then
   have_thread_safe_getenv=yes
 fi
 if test $have_thread_safe_getenv = yes; then
   AC_DEFINE(HAVE_THREAD_SAFE_GETENV, [1], [Define if getenv() is thread-safe])
 fi
 have_getenv_r=no
 AC_CHECK_FUNCS(getenv_r, have_getenv_r=yes)
 if test $have_getenv_r = no && test $have_thread_safe_getenv = no; then
   AC_MSG_WARN([
 ***
 *** getenv() is not thread-safe and getenv_r() does not exist
 ***])
 fi
 
 # For converting time strings to seconds since Epoch, we need the timegm
 # function.
 AC_CHECK_FUNCS(timegm)
 if test "$ac_cv_func_timegm" != yes; then
   AC_MSG_WARN([
 ***
 *** timegm() not available - a non-thread-safe kludge will be used
 *** and the TZ variable might be changed at runtime.
 ***])
 fi
 
 # Checking for libgpg-error.
 AM_PATH_GPG_ERROR(1.8,, AC_MSG_ERROR([libgpg-error was not found]))
 AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_GPGME,
           [The default error source for GPGME.])
 
 # And for libassuan.
-NEED_LIBASSUAN_VERSION=1.1.0
 have_libassuan=no
-AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_VERSION",
+AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
                   have_libassuan=yes, have_libassuan=no)
+if test "$have_libassuan" = "yes"; then
+  AC_DEFINE_UNQUOTED(GPGME_LIBASSUAN_VERSION, "$libassuan_version",
+                     [version of the libassuan library])
+fi
 AM_CONDITIONAL(HAVE_ASSUAN, test "$have_libassuan" = "yes")
 if test "$have_libassuan" = "yes"; then
   AC_DEFINE(ENABLE_ASSUAN,1,[Whether Assuan support is enabled])
 fi
 
 # Checks for system services
 NEED_GPG_VERSION_DEFAULT=1.4.0
 NEED_GPGSM_VERSION_DEFAULT=1.9.6
 NEED_GPGCONF_VERSION_DEFAULT=2.0.4
 NEED_G13_VERSION_DEFAULT=2.1.0
 NEED_GPG_VERSION="$NEED_GPG_VERSION_DEFAULT"
 NEED_GPGSM_VERSION="$NEED_GPGSM_VERSION_DEFAULT"
 NEED_GPGCONF_VERSION="$NEED_GPGCONF_VERSION_DEFAULT"
 NEED_G13_VERSION="$NEED_G13_VERSION_DEFAULT"
 AC_ARG_WITH(gpg-version,
 	    AC_HELP_STRING([--with-gpg-version=VER], [require GnuPG version VER]),
 	    NEED_GPG_VERSION=$withval)
 if test "$NEED_GPG_VERSION" = "yes"; then
   NEED_GPG_VERSION="$NEED_GPG_VERSION_DEFAULT"
 fi
 if test "$NEED_GPG_VERSION" = "no"; then
   NEED_GPG_VERSION=0.0.0
 fi
 AC_ARG_WITH(gpgsm-version,
 	    AC_HELP_STRING([--with-gpgsm-version=VER], [require GPGSM version VER]),
 	    NEED_GPGSM_VERSION=$withval)
 if test "$NEED_GPGSM_VERSION" = "yes"; then
   NEED_GPGSM_VERSION="$NEED_GPGSM_VERSION_DEFAULT"
 fi
 if test "$NEED_GPGSM_VERSION" = "no"; then
   NEED_GPGSM_VERSION=0.0.0
 fi
 AC_ARG_WITH(gpgconf-version,
 	    AC_HELP_STRING([--with-gpgconf-version=VER], [require GPGCONF version VER]),
 	    NEED_GPGCONF_VERSION=$withval)
 if test "$NEED_GPGCONF_VERSION" = "yes"; then
   NEED_GPGCONF_VERSION="$NEED_GPGCONF_VERSION_DEFAULT"
 fi
 if test "$NEED_GPGCONF_VERSION" = "no"; then
   NEED_GPGCONF_VERSION=0.0.0
 fi
 AC_ARG_WITH(g13-version,
 	    AC_HELP_STRING([--with-g13-version=VER], [require G13 version VER]),
 	    NEED_G13_VERSION=$withval)
 if test "$NEED_G13_VERSION" = "yes"; then
   NEED_G13_VERSION="$NEED_G13_VERSION_DEFAULT"
 fi
 if test "$NEED_G13_VERSION" = "no"; then
   NEED_G13_VERSION=0.0.0
 fi
 
 AC_DEFINE_UNQUOTED(NEED_GPG_VERSION, "$NEED_GPG_VERSION",
 				     [Min. needed GnuPG version.])
 AC_DEFINE_UNQUOTED(NEED_GPGSM_VERSION, "$NEED_GPGSM_VERSION",
 				       [Min. needed GPGSM version.])
 AC_DEFINE_UNQUOTED(NEED_GPGCONF_VERSION, "$NEED_GPGCONF_VERSION",
 				         [Min. needed GPGCONF version.])
 AC_DEFINE_UNQUOTED(NEED_G13_VERSION, "$NEED_G13_VERSION",
 				     [Min. needed G13 version.])
 
 
 NO_OVERRIDE=no
 AC_ARG_WITH(gpg,
 	    AC_HELP_STRING([--with-gpg=PATH], [use GnuPG binary at PATH]),
 	    GPG=$withval, NO_OVERRIDE=yes)
 if test "$NO_OVERRIDE" = "yes" || test "$GPG" = "yes"; then
   GPG=
   NO_OVERRIDE=yes
   if test "$cross_compiling" != "yes"; then
     AC_PATH_PROG(GPG, gpg)
   fi
   if test -z "$GPG"; then
     GPG="$GPG_DEFAULT"
   fi
 fi
 if test "$GPG" = no; then
   if test "$NO_OVERRIDE" = "yes"; then
     if test "$cross_compiling" != "yes"; then
       AC_MSG_WARN([
 ***
 *** Could not find GnuPG, install GnuPG or use --with-gpg=PATH to enable it
 ***])
     else
       AC_MSG_ERROR([
 ***
 *** Can not determine path to GnuPG when cross-compiling, use --with-gpg=PATH
 ***])
     fi
   fi
 else
   AC_DEFINE_UNQUOTED(GPG_PATH, "$GPG", [Path to the GnuPG binary.])
   AC_SUBST(GPG)
 fi
 dnl Check for GnuPG version requirement.
 GPG_VERSION=unknown
 ok=maybe
 if test -z "$GPG" -o "x$GPG" = "xno"; then
   ok=no
 else
   if test "$cross_compiling" = "yes"; then
     AC_MSG_WARN([GnuPG version can not be checked when cross compiling])
     ok=no
   else
     if test ! -x "$GPG"; then
       AC_MSG_WARN([GnuPG not executable, version check disabled])
       ok=no
     fi
   fi
 fi
 if test "$ok" = "maybe"; then
   AC_MSG_CHECKING(for GPG >= $NEED_GPG_VERSION)
   req_major=`echo $NEED_GPG_VERSION | \
              sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
   req_minor=`echo $NEED_GPG_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
   req_micro=`echo $NEED_GPG_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
   GPG_VERSION=`$GPG --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
   major=`echo $GPG_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
   minor=`echo $GPG_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
   micro=`echo $GPG_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
 
   if test "$major" -gt "$req_major"; then
     ok=yes
   else
     if test "$major" -eq "$req_major"; then
       if test "$minor" -gt "$req_minor"; then
         ok=yes
       else
         if test "$minor" -eq "$req_minor"; then
           if test "$micro" -ge "$req_micro"; then
             ok=yes
 	  fi
         fi
       fi
     fi
   fi
   if test "$ok" = "yes"; then
     AC_MSG_RESULT(yes)
   else
     AC_MSG_RESULT(no)
     AC_MSG_WARN([GPG must be at least version $NEED_GPG_VERSION])
   fi
 fi
 run_gpg_test="$ok"
 AC_ARG_ENABLE(gpg-test,
   AC_HELP_STRING([--disable-gpg-test], [disable GPG run test]),
          run_gpg_test=$enableval)
 AM_CONDITIONAL(RUN_GPG_TESTS, test "$run_gpg_test" = "yes")
 AC_SUBST(GPG_PATH)
 
 NO_OVERRIDE=no
 AC_ARG_WITH(gpgsm,
 	    AC_HELP_STRING([--with-gpgsm=PATH], [use GpgSM binary at PATH]),
 	    GPGSM=$withval, NO_OVERRIDE=yes)
 if test "$NO_OVERRIDE" = "yes" || test "$GPGSM" = "yes"; then
   GPGSM=
   NO_OVERRIDE=yes
   if test "$cross_compiling" != "yes"; then
     AC_PATH_PROG(GPGSM, gpgsm)
   fi
   if test -z "$GPGSM"; then
     GPGSM="$GPGSM_DEFAULT"
   fi
 fi
 if test "$GPGSM" = no; then
   if test "$NO_OVERRIDE" = "yes"; then
     if test "$cross_compiling" != "yes"; then
       AC_MSG_WARN([
 ***
 *** Could not find GpgSM, install GpgSM or use --with-gpgsm=PATH to enable it
 ***])
     else
       AC_MSG_ERROR([
 ***
 *** Can not determine path to GpgSM when cross-compiling, use --with-gpgsm=PATH
 ***])
     fi
   fi
 else
   AC_DEFINE_UNQUOTED(GPGSM_PATH, "$GPGSM", [Path to the GPGSM binary.])
   AC_DEFINE(ENABLE_GPGSM,1,[Whether GPGSM support is enabled])
 fi
 AM_CONDITIONAL(HAVE_GPGSM, test "$GPGSM" != "no")
 
 
 dnl Check for GPGSM version requirement.
 GPGSM_VERSION=unknown
 ok=maybe
 if test -z "$GPGSM" -o "x$GPGSM" = "xno"; then
   ok=no
 else
   if test "$cross_compiling" = "yes"; then
     AC_MSG_WARN([GPGSM version can not be checked when cross compiling])
     ok=no
   else
     if test ! -x "$GPGSM"; then
       AC_MSG_WARN([GPGSM not executable, version check disabled])
       ok=no
     fi
   fi
 fi
 if test "$ok" = "maybe"; then
   AC_MSG_CHECKING(for GPGSM >= $NEED_GPGSM_VERSION)
   req_major=`echo $NEED_GPGSM_VERSION | \
              sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
   req_minor=`echo $NEED_GPGSM_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
   req_micro=`echo $NEED_GPGSM_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
   GPGSM_VERSION=`$GPGSM --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
   major=`echo $GPGSM_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
   minor=`echo $GPGSM_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
   micro=`echo $GPGSM_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
 
   if test "$major" -gt "$req_major"; then
     ok=yes
   else
     if test "$major" -eq "$req_major"; then
       if test "$minor" -gt "$req_minor"; then
         ok=yes
       else
         if test "$minor" -eq "$req_minor"; then
           if test "$micro" -ge "$req_micro"; then
             ok=yes
 	  fi
         fi
       fi
     fi
   fi
   if test "$ok" = "yes"; then
     AC_MSG_RESULT(yes)
   else
     AC_MSG_RESULT(no)
     AC_MSG_WARN([GPGSM must be at least version $NEED_GPGSM_VERSION])
   fi
 fi
 run_gpgsm_test="$ok"
 AC_ARG_ENABLE(gpgsm-test,
   AC_HELP_STRING([--disable-gpgsm-test], [disable GPGSM run test]),
          run_gpgsm_test=$enableval)
 AM_CONDITIONAL(RUN_GPGSM_TESTS, test "$run_gpgsm_test" = "yes")
 
-# Require libassuan if GPGSM is here.
-require_libassuan=no
-if test "$GPGSM" != "no"; then
-  require_libassuan=yes
-fi
-if test "$G13" != "no"; then
-  require_libassuan=yes
-fi
-
 
 NO_OVERRIDE=no
 AC_ARG_WITH(gpgconf,
 	    AC_HELP_STRING([--with-gpgconf=PATH],
                            [use gpgconf binary at PATH]),
 	    GPGCONF=$withval, NO_OVERRIDE=yes)
 if test "$NO_OVERRIDE" = "yes" || test "$GPGCONF" = "yes"; then
   GPGCONF=
   NO_OVERRIDE=yes
   if test "$cross_compiling" != "yes"; then
     AC_PATH_PROG(GPGCONF, gpgconf)
   fi
   if test -z "$GPGCONF"; then
     GPGCONF="$GPGCONF_DEFAULT"
   fi
 fi
 if test "$GPGCONF" = no; then
   if test "$NO_OVERRIDE" = "yes"; then
     if test "$cross_compiling" != "yes"; then
       AC_MSG_WARN([
 ***
 *** Could not find gpgconf, install gpgconf or use --with-gpgconf=PATH to enable it
 ***])
     else
       AC_MSG_ERROR([
 ***
 *** Can not determine path to gpgconf when cross-compiling, use --with-gpgconf=PATH
 ***])
     fi
   fi
 else
   AC_DEFINE_UNQUOTED(GPGCONF_PATH, "$GPGCONF", [Path to the GPGCONF binary.])
   AC_DEFINE(ENABLE_GPGCONF,1,[Whether GPGCONF support is enabled])
 fi
 AM_CONDITIONAL(HAVE_GPGCONF, test "$GPGCONF" != "no")
 
 dnl Check for GPGCONF version requirement.
 GPGCONF_VERSION=unknown
 ok=maybe
 if test -z "$GPGCONF" -o "x$GPGCONF" = "xno"; then
   ok=no
 else
   if test "$cross_compiling" = "yes"; then
     AC_MSG_WARN([GPGCONF version can not be checked when cross compiling])
     ok=no
   else
     if test ! -x "$GPGCONF"; then
       AC_MSG_WARN([GPGCONF not executable, version check disabled])
       ok=no
     fi
   fi
 fi
 if test "$ok" = "maybe"; then
   AC_MSG_CHECKING(for GPGCONF >= $NEED_GPGCONF_VERSION)
   req_major=`echo $NEED_GPGCONF_VERSION | \
              sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
   req_minor=`echo $NEED_GPGCONF_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
   req_micro=`echo $NEED_GPGCONF_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
   GPGCONF_VERSION=`$GPGCONF --version | sed -n '1 s/[[^0-9]]*\(.*\)/\1/p'`
   major=`echo $GPGCONF_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
   minor=`echo $GPGCONF_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
   micro=`echo $GPGCONF_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
 
   if test "$major" -gt "$req_major"; then
     ok=yes
   else
     if test "$major" -eq "$req_major"; then
       if test "$minor" -gt "$req_minor"; then
         ok=yes
       else
         if test "$minor" -eq "$req_minor"; then
           if test "$micro" -ge "$req_micro"; then
             ok=yes
 	  fi
         fi
       fi
     fi
   fi
   if test "$ok" = "yes"; then
     AC_MSG_RESULT(yes)
   else
     AC_MSG_RESULT(no)
     AC_MSG_WARN([GPGCONF must be at least version $NEED_GPGCONF_VERSION])
   fi
 fi
 run_gpgconf_test="$ok"
 AC_ARG_ENABLE(gpgconf-test,
   AC_HELP_STRING([--disable-gpgconf-test], [disable GPGCONF run test]),
          run_gpgconf_test=$enableval)
 AM_CONDITIONAL(RUN_GPGCONF_TESTS, test "$run_gpgconf_test" = "yes")
 
 
 NO_OVERRIDE=no
 AC_ARG_WITH(g13,
 	    AC_HELP_STRING([--with-g13=PATH],
                            [use g13 binary at PATH]),
 	    G13=$withval, NO_OVERRIDE=yes)
 if test "$NO_OVERRIDE" = "yes" || test "$G13" = "yes"; then
   G13=
   NO_OVERRIDE=yes
   if test "$cross_compiling" != "yes"; then
     AC_PATH_PROG(G13, g13)
   fi
   if test -z "$G13"; then
     G13="$G13_DEFAULT"
   fi
 fi
 if test "$G13" = no; then
   if test "$NO_OVERRIDE" = "yes"; then
     if test "$cross_compiling" != "yes"; then
       AC_MSG_WARN([
 ***
 *** Could not find g13, install g13 or use --with-g13=PATH to enable it
 ***])
     else
       AC_MSG_ERROR([
 ***
 *** Can not determine path to g13 when cross-compiling, use --with-g13=PATH
 ***])
     fi
   fi
 else
   AC_DEFINE_UNQUOTED(G13_PATH, "$G13", [Path to the G13 binary.])
   AC_DEFINE(ENABLE_G13,1,[Whether G13 support is enabled])
 fi
 AM_CONDITIONAL(HAVE_G13, test "$G13" != "no")
 
 dnl Check for G13 version requirement.
 G13_VERSION=unknown
 ok=maybe
 if test -z "$G13" -o "x$G13" = "xno"; then
   ok=no
 else
   if test "$cross_compiling" = "yes"; then
     AC_MSG_WARN([G13 version can not be checked when cross compiling])
     ok=no
   else
     if test ! -x "$G13"; then
       AC_MSG_WARN([G13 not executable, version check disabled])
       ok=no
     fi
   fi
 fi
 if test "$ok" = "maybe"; then
   AC_MSG_CHECKING(for G13 >= $NEED_G13_VERSION)
   req_major=`echo $NEED_G13_VERSION | \
              sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
   req_minor=`echo $NEED_G13_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
   req_micro=`echo $NEED_G13_VERSION | \
 	     sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
   G13_VERSION=`$G13 --version | sed -n '1 s/.*\ \([[0-9]].*\)/\1/p'`
   major=`echo $G13_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
   minor=`echo $G13_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
   micro=`echo $G13_VERSION | \
 	 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
 
   if test "$major" -gt "$req_major"; then
     ok=yes
   else
     if test "$major" -eq "$req_major"; then
       if test "$minor" -gt "$req_minor"; then
         ok=yes
       else
         if test "$minor" -eq "$req_minor"; then
           if test "$micro" -ge "$req_micro"; then
             ok=yes
 	  fi
         fi
       fi
     fi
   fi
   if test "$ok" = "yes"; then
     AC_MSG_RESULT(yes)
   else
     AC_MSG_RESULT(no)
     AC_MSG_WARN([G13 must be at least version $NEED_G13_VERSION])
   fi
 fi
 run_g13_test="$ok"
 AC_ARG_ENABLE(g13-test,
   AC_HELP_STRING([--disable-g13-test], [disable G13 run test]),
          run_g13_test=$enableval)
 AM_CONDITIONAL(RUN_G13_TESTS, test "$run_g13_test" = "yes")
 
 
 # Check for funopen
 AC_CHECK_FUNCS(funopen)
 if test $ac_cv_func_funopen != yes; then
     # No funopen but we can implement that in terms of fopencookie.
     AC_CHECK_FUNCS(fopencookie)
     if test $ac_cv_func_fopencookie = yes; then
         AC_REPLACE_FUNCS(funopen)
     else
         AC_MSG_WARN([
 ***
 *** No implementation of fopencookie or funopen available
 ***])
     fi
 fi
 
 # Check for getgid etc
 AC_CHECK_FUNCS(getgid getegid)
 
 
 # Replacement functions.
 AC_REPLACE_FUNCS(stpcpy)
 # Check for unistd.h for setenv replacement function.
 AC_CHECK_HEADERS(unistd.h)
 AC_REPLACE_FUNCS(setenv)
 
 # Assuan check for descriptor passing.
 AC_CHECK_MEMBER(struct cmsghdr.cmsg_len,
                 [supports_descriptor_passing=yes],
                 [supports_descriptor_passing=no
                  AC_MSG_WARN([
 ***
 *** Data structure for sending ancillary data missing.
 *** Descriptor passing won't work.
 ***])],[
 #include <stdlib.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/un.h>
 #if HAVE_SYS_UIO_H
 #include <sys/uio.h>
 #endif
 #include <unistd.h>
        ])
 
+use_descriptor_passing=no
 AC_ARG_ENABLE(fd-passing,
   AC_HELP_STRING([--enable-fd-passing], [use FD passing if supported]),
   use_descriptor_passing=$enableval)
 
 if test "$supports_descriptor_passing" != "yes"; then
   use_descriptor_passing=no
 fi
 
 if test "$use_descriptor_passing" = "yes"; then
 AC_DEFINE(USE_DESCRIPTOR_PASSING,1,
           [Defined if descriptor passing is enabled and supported])
 fi
 
 AM_CONDITIONAL(USE_DESCRIPTOR_PASSING, test "$use_descriptor_passing" = "yes")
 
 
 uiserver=no
 if test "$use_descriptor_passing" = "yes" && test "$have_libassuan" = "yes"; then
   uiserver=yes
 fi
 if test "$uiserver" != "no"; then
   AC_DEFINE(ENABLE_UISERVER, 1,
             [Defined if we are building with uiserver support.])
 fi
 AM_CONDITIONAL(HAVE_UISERVER, test "$uiserver" != "no")
 
 
 AM_CONDITIONAL(BUILD_COMPLUS, test "$component_system" = "COM+")
 
 # Generate values for the DLL version info
 if test "$have_w32_system" = yes; then
     BUILD_TIMESTAMP=`date --iso-8601=minutes`
     changequote(,)dnl 
     BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
     changequote([,])dnl
     BUILD_FILEVERSION="${BUILD_FILEVERSION}${BUILD_REVISION}"
 fi
 AC_SUBST(BUILD_REVISION)
 AC_SUBST(BUILD_TIMESTAMP)
 AC_SUBST(BUILD_FILEVERSION)
 
 # Add a few constants to help porting to W32
 AH_VERBATIM([SEPCONSTANTS],
 [
 /* Separators as used in $PATH.  */
 #ifdef HAVE_DOSISH_SYSTEM
 #define PATHSEP_C ';'
 #else
 #define PATHSEP_C ':'
 #endif
 ])
 
 AH_BOTTOM([
 /* Definition of GCC specific attributes.  */
 #if __GNUC__ > 2 
 # define GPGME_GCC_A_PURE  __attribute__ ((__pure__))
 #else
 # define GPGME_GCC_A_PURE
 #endif
 ])
 
 
 # Substitution used for gpgme-config 
 GPGME_CONFIG_LIBS="-lgpgme"
 GPGME_CONFIG_CFLAGS=""
 AC_SUBST(GPGME_CONFIG_API_VERSION)
 AC_SUBST(GPGME_CONFIG_LIBS)
 AC_SUBST(GPGME_CONFIG_CFLAGS)
 
 # Frob'da Variables
 LTLIBOBJS=`echo "$LIB@&t@OBJS" |
            sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`
 AC_SUBST(LTLIBOBJS)
 
 # Some checks for gpgme-tool
 AC_CHECK_HEADER([argp.h])
 AC_CHECK_TYPES([error_t], [],
    [AC_DEFINE([error_t], [int],
    [Define to a type to use for `error_t' if it is not otherwise available.])],
    [#include <errno.h>])
 
 
 # A substitution to set generated files in a Emacs buffer to read-only.
 AC_SUBST(emacs_local_vars_begin, ['Local Variables:'])
 AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t'])
 AC_SUBST(emacs_local_vars_end, ['End:'])
 
 
 # Last check.
 die=no
-if test "$require_libassuan" = "no"; then
+if test "$have_libassuan" = "no"; then
    die=yes
    AC_MSG_NOTICE([[
 ***
 *** You need libassuan to build this program with GPGSM support.
 *** This library is for example available at
-***   ftp://ftp.gnupg.org/pub/gcrypt/alpha/libassuan/
-*** (at least version $NEED_LIBASSUAN_VERSION is required).
+***   ftp://ftp.gnupg.org/gcrypt/libassuan/
+*** (at least version $NEED_LIBASSUAN_VERSION (API $NEED_LIBASSUAN_API) is required).
 ***]])
 fi
 
 if test "$die" = "yes"; then
     AC_MSG_ERROR([[
 ***
 *** Required libraries not found. Please consult the above messages
 *** and install them before running configure again.
 ***]])
 fi
 
 
 #
 # Create config files 
 
 AC_CONFIG_FILES(Makefile src/Makefile
 		tests/Makefile 
                 tests/gpg/Makefile
                 tests/gpgsm/Makefile
                 tests/opassuan/Makefile
 		doc/Makefile complus/Makefile
                 src/versioninfo.rc
                 src/gpgme.h)
 AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config)
 AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
 AC_OUTPUT
 
 echo "
-	GPGME v${VERSION} has been configured as follows:
+        GPGME v${VERSION} has been configured as follows:
 
-	GnuPG path:      $GPG
+        GnuPG path:      $GPG
         GnuPG version:   $GPG_VERSION, min. $NEED_GPG_VERSION
 
-	GpgSM path:      $GPGSM
+        GpgSM path:      $GPGSM
         GpgSM version:   $GPGSM_VERSION, min. $NEED_GPGSM_VERSION
 
-	GpgConf path:    $GPGCONF
+        GpgConf path:    $GPGCONF
         GpgConf version: $GPGCONF_VERSION, min. $NEED_GPGCONF_VERSION
 
-	G13 path:        $G13
+        G13 path:        $G13
         G13 version:     $G13_VERSION, min. $NEED_G13_VERSION
 
-        Assuan version:  $LIBASSUAN_VERSION
+        Assuan version:  $libassuan_version, min. $NEED_LIBASSUAN_VERSION
 
-	UI Server:       $uiserver
+        UI Server:       $uiserver
         FD Passing:      $use_descriptor_passing
 
-	GPGME Pthread:   $have_pthread
-	GPGME Pth:       $have_pth
+        GPGME Pthread:   $have_pthread
+        GPGME Pth:       $have_pth
 "
diff --git a/m4/ChangeLog b/m4/ChangeLog
index 8eba5f0b..21a98334 100644
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,39 +1,43 @@
+2010-05-07  Werner Koch  <wk@g10code.com>
+
+	* libassuan.m4: Update from libassuan svn.
+
 2009-11-10  Marcus Brinkmann  <marcus@g10code.de>
 
 	* libassuan.m4: Fix LIBASSUAN_VERSION.
 
 2006-06-08  Marcus Brinkmann  <marcus@g10code.de>
 
 	* pth.m4: Add --all to pth-config invocation.
 
 2006-02-22  Marcus Brinkmann  <marcus@g10code.de>
 
 	* pth.m4: Fix code generation (required for Max OS X).
 	Submitted by Emanuele Giaquinta <exg@gentoo.org>.
 
 2005-11-17  Marcus Brinkmann  <marcus@g10code.de>
 
 	* glib-2.0.m4: New file.
 
 2004-12-28  Werner Koch  <wk@g10code.com>
 
 	* pth.m4: Changed quoting for use with automake 1.9.
 
 2004-09-14  Marcus Brinkmann  <marcus@g10code.de>
 
 	* pth.m4: Disable _ac_pth_line, and don't fail if Pth is not
 	found.
-	
+
 	* glibc21.m4: New file.
 	* gpg-error.m4: New file.
 	* pth.m4: New file.
 
  Copyright 2004 g10 Code GmbH
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without
  modifications, as long as this notice is preserved.
 
  This file is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/m4/libassuan.m4 b/m4/libassuan.m4
index b7fec3ac..bac1be81 100644
--- a/m4/libassuan.m4
+++ b/m4/libassuan.m4
@@ -1,79 +1,133 @@
 dnl Autoconf macros for libassuan
 dnl       Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; as a special exception the author gives
 dnl unlimited permission to copy and/or distribute it, with or without
 dnl modifications, as long as this notice is preserved.
 dnl
 dnl This file is distributed in the hope that it will be useful, but
 dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-
-dnl AM_PATH_LIBASSUAN([MINIMUM-VERSION,
-dnl                   [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
-dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
 dnl
-AC_DEFUN([AM_PATH_LIBASSUAN],
+dnl Common code used for libassuan detection [internal]
+dnl Returns ok set to yes or no.
+dnl
+AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
 [ AC_ARG_WITH(libassuan-prefix,
-            AC_HELP_STRING([--with-libassuan-prefix=PFX],
-                           [prefix where LIBASSUAN is installed (optional)]),
+              AC_HELP_STRING([--with-libassuan-prefix=PFX],
+                             [prefix where LIBASSUAN is installed (optional)]),
      libassuan_config_prefix="$withval", libassuan_config_prefix="")
   if test x$libassuan_config_prefix != x ; then
-     libassuan_config_args="$libassuan_config_args --prefix=$libassuan_config_prefix"
-     if test x${LIBASSUAN_CONFIG+set} != xset ; then
-        LIBASSUAN_CONFIG=$libassuan_config_prefix/bin/libassuan-config
-     fi
+    libassuan_config_args="$libassuan_config_args --prefix=$libassuan_config_prefix"
+    if test x${LIBASSUAN_CONFIG+set} != xset ; then
+      LIBASSUAN_CONFIG=$libassuan_config_prefix/bin/libassuan-config
+    fi
   fi
-
   AC_PATH_PROG(LIBASSUAN_CONFIG, libassuan-config, no)
-  min_libassuan_version=ifelse([$1], ,0.0.1,$1)
-  AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version)
+
+  tmp=ifelse([$1], ,1:0.9.2,$1)
+  if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
+    req_libassuan_api=`echo "$tmp"     | sed 's/\(.*\):\(.*\)/\1/'`
+    min_libassuan_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
+  else
+    req_libassuan_api=0
+    min_libassuan_version="$tmp"
+  fi
+
+  if test "$LIBASSUAN_CONFIG" != "no" ; then
+    libassuan_version=`$LIBASSUAN_CONFIG --version`
+  fi
+  libassuan_version_major=`echo $libassuan_version | \
+               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+  libassuan_version_minor=`echo $libassuan_version | \
+               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+  libassuan_version_micro=`echo $libassuan_version | \
+               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
+
+  AC_MSG_CHECKING(for LIBASSUAN ifelse([$2], ,,[$2 ])- version >= $min_libassuan_version)
   ok=no
   if test "$LIBASSUAN_CONFIG" != "no" ; then
+    ifelse([$2], ,,[if `$LIBASSUAN_CONFIG --thread=$2 2> /dev/null` ; then])
     req_major=`echo $min_libassuan_version | \
                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
     req_minor=`echo $min_libassuan_version | \
                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
     req_micro=`echo $min_libassuan_version | \
                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-    libassuan_config_version=`$LIBASSUAN_CONFIG $libassuan_config_args --version`
-    major=`echo $libassuan_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-    minor=`echo $libassuan_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-    micro=`echo $libassuan_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-    if test "$major" -gt "$req_major"; then
+    if test "$libassuan_version_major" -gt "$req_major"; then
         ok=yes
     else 
-        if test "$major" -eq "$req_major"; then
-            if test "$minor" -gt "$req_minor"; then
+        if test "$libassuan_version_major" -eq "$req_major"; then
+            if test "$libassuan_version_minor" -gt "$req_minor"; then
                ok=yes
             else
-               if test "$minor" -eq "$req_minor"; then
-                   if test "$micro" -ge "$req_micro"; then
+               if test "$libassuan_version_minor" -eq "$req_minor"; then
+                   if test "$libassuan_version_micro" -ge "$req_micro"; then
                      ok=yes
                    fi
                fi
             fi
         fi
     fi
+    ifelse([$2], ,,[fi])
   fi
+
+  if test $ok = yes; then
+    AC_MSG_RESULT([yes ($libassuan_version)])
+  else
+    AC_MSG_RESULT(no)
+  fi
+
+  if test $ok = yes; then
+    if test "$req_libassuan_api" -gt 0 ; then
+      tmp=`$LIBASSUAN_CONFIG --api-version 2>/dev/null || echo 0`
+      if test "$tmp" -gt 0 ; then
+        AC_MSG_CHECKING([LIBASSUAN ifelse([$2], ,,[$2 ])API version])
+        if test "$req_libassuan_api" -eq "$tmp" ; then
+          AC_MSG_RESULT(okay)
+        else
+          ok=no
+          AC_MSG_RESULT([does not match.  want=$req_libassuan_api got=$tmp.])
+        fi
+      fi
+    fi
+  fi
+
+])
+
+dnl AM_CHECK_LIBASSUAN([MINIMUM-VERSION,
+dnl                    [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl Test whether libassuan has at least MINIMUM-VERSION. This is
+dnl used to test for features only available in newer versions.
+dnl
+AC_DEFUN([AM_CHECK_LIBASSUAN],
+[ _AM_PATH_LIBASSUAN_COMMON($1)
+  if test $ok = yes; then
+    ifelse([$2], , :, [$2])
+  else
+    ifelse([$3], , :, [$3])
+  fi
+])
+
+
+
+
+dnl AM_PATH_LIBASSUAN([MINIMUM-VERSION,
+dnl                   [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
+dnl
+AC_DEFUN([AM_PATH_LIBASSUAN],
+[ _AM_PATH_LIBASSUAN_COMMON($1)
   if test $ok = yes; then
     LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG $libassuan_config_args --cflags`
     LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG $libassuan_config_args --libs`
-    LIBASSUAN_VERSION="$libassuan_config_version"
-    AC_MSG_RESULT(yes)
     ifelse([$2], , :, [$2])
   else
     LIBASSUAN_CFLAGS=""
     LIBASSUAN_LIBS=""
-    LIBASSUAN_VERSION=""
-    AC_MSG_RESULT(no)
     ifelse([$3], , :, [$3])
   fi
   AC_SUBST(LIBASSUAN_CFLAGS)
   AC_SUBST(LIBASSUAN_LIBS)
-  AC_SUBST(LIBASSUAN_VERSION)
 ])