[Pkg-gnupg-commit] [gpgme] 60/62: New upstream version 1.8.0

Daniel Kahn Gillmor dkg at fifthhorseman.net
Sat Nov 19 04:03:38 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch experimental
in repository gpgme.

commit d5c945c000598b38214a9b582a5d1c1a163504dd
Merge: b88bd84 f06220b
Author: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
Date:   Fri Nov 18 18:44:32 2016 -0500

    New upstream version 1.8.0

 ChangeLog                                          | 450 +++++++++++++++++++
 Makefile.am                                        |   2 +-
 NEWS                                               |  41 ++
 README                                             |   2 +-
 VERSION                                            |   2 +-
 autogen.sh                                         |   2 +-
 configure.ac                                       |  42 +-
 doc/defsincdate                                    |   2 +-
 doc/gpgme.texi                                     | 296 ++++++++++--
 doc/gpl.texi                                       |   8 +-
 doc/texinfo.tex                                    | 124 +++---
 doc/uiserver.texi                                  |  40 +-
 gpgme.spec                                         |   4 +-
 gpgme.spec.in                                      |   2 +-
 lang/README                                        |   2 +-
 ...g.cmake.in.in => GpgmeppConfig-w32.cmake.in.in} |   8 +-
 lang/cpp/src/GpgmeppConfig.cmake.in.in             |   2 +-
 lang/cpp/src/GpgmeppConfigVersion.cmake.in         |   2 +-
 lang/cpp/src/Makefile.am                           |  24 +-
 lang/cpp/src/context.cpp                           |  10 +
 lang/cpp/src/context.h                             |   4 +
 lang/cpp/src/engineinfo.h                          |  16 +
 lang/cpp/src/gpgmefw.h                             |   6 +
 lang/cpp/src/gpgmepp_version.h.in                  |  11 +-
 lang/cpp/src/swdbresult.cpp                        | 231 ++++++++++
 lang/cpp/src/swdbresult.h                          | 128 ++++++
 lang/cpp/src/tofuinfo.h                            |   2 -
 lang/python/MANIFEST.in                            |   2 +-
 lang/python/Makefile.am                            |  44 +-
 lang/python/README                                 |  12 +-
 lang/python/examples/assuan.py                     |   4 +-
 lang/python/examples/decryption-filter.py          |   6 +-
 lang/python/examples/delkey.py                     |   6 +-
 lang/python/examples/encrypt-to-all.py             |   6 +-
 lang/python/examples/exportimport.py               |  12 +-
 lang/python/examples/genkey.py                     |   8 +-
 lang/python/examples/inter-edit.py                 |   4 +-
 lang/python/examples/sign.py                       |   6 +-
 lang/python/examples/signverify.py                 |  10 +-
 lang/python/examples/simple.py                     |   4 +-
 lang/python/examples/testCMSgetkey.py              |   4 +-
 lang/python/examples/verifydetails.py              |  15 +-
 lang/python/{pyme => gpg}/__init__.py              |  24 +-
 lang/python/{pyme => gpg}/callbacks.py             |   0
 lang/python/{pyme => gpg}/constants/__init__.py    |  32 +-
 .../{pyme => gpg}/constants/data/__init__.py       |   0
 .../{pyme => gpg}/constants/data/encoding.py       |   3 +-
 lang/python/{pyme => gpg}/constants/event.py       |   3 +-
 lang/python/{pyme => gpg}/constants/import.py      |   3 +-
 .../{pyme => gpg}/constants/keylist/__init__.py    |   0
 .../python/{pyme => gpg}/constants/keylist/mode.py |   3 +-
 lang/python/{pyme => gpg}/constants/md.py          |   3 +-
 lang/python/{pyme => gpg}/constants/pk.py          |   3 +-
 lang/python/{pyme => gpg}/constants/protocol.py    |   3 +-
 .../python/{pyme => gpg}/constants/sig/__init__.py |   4 +-
 lang/python/{pyme => gpg}/constants/sig/mode.py    |   3 +-
 .../t-wrapper.py => gpg/constants/sig/notation.py} |  20 +-
 lang/python/{pyme => gpg}/constants/sigsum.py      |   3 +-
 lang/python/{pyme => gpg}/constants/status.py      |   2 +-
 lang/python/{pyme => gpg}/constants/validity.py    |   3 +-
 lang/python/{pyme => gpg}/core.py                  |  30 +-
 lang/python/{pyme => gpg}/errors.py                |  13 +-
 lang/python/{pyme => gpg}/results.py               |   0
 lang/python/{pyme => gpg}/util.py                  |   0
 lang/python/{pyme => gpg}/version.py.in            |   4 +-
 lang/python/gpgme.i                                |  32 +-
 lang/python/helpers.c                              | 124 +++---
 lang/python/helpers.h                              |  12 +-
 lang/python/private.h                              |  28 +-
 lang/python/setup.py.in                            |  18 +-
 lang/python/tests/Makefile.am                      |   2 +-
 lang/python/tests/initial.py                       |   6 +-
 lang/python/tests/support.py                       |   6 +-
 lang/python/tests/t-callbacks.py                   |  58 +--
 lang/python/tests/t-data.py                        |  30 +-
 lang/python/tests/t-decrypt-verify.py              |  29 +-
 lang/python/tests/t-decrypt.py                     |  13 +-
 lang/python/tests/t-edit.py                        |  10 +-
 lang/python/tests/t-encrypt-large.py               |  12 +-
 lang/python/tests/t-encrypt-sign.py                |  25 +-
 lang/python/tests/t-encrypt-sym.py                 |  21 +-
 lang/python/tests/t-encrypt.py                     |  17 +-
 lang/python/tests/t-export.py                      |  10 +-
 lang/python/tests/t-file-name.py                   |  14 +-
 lang/python/tests/t-idiomatic.py                   |  18 +-
 lang/python/tests/t-import.py                      |  10 +-
 lang/python/tests/t-keylist.py                     |  25 +-
 lang/python/tests/t-protocol-assuan.py             |   8 +-
 lang/python/tests/t-sig-notation.py                |  26 +-
 lang/python/tests/t-sign.py                        |  41 +-
 lang/python/tests/t-signers.py                     |  31 +-
 lang/python/tests/t-trustlist.py                   |   6 +-
 lang/python/tests/t-verify.py                      |  75 ++--
 lang/python/tests/t-wait.py                        |  12 +-
 lang/python/tests/t-wrapper.py                     |   6 +-
 lang/qt/src/AbstractImportJob                      |   1 -
 lang/qt/src/Makefile.am                            |  40 +-
 ...ig.cmake.in.in => QGpgmeConfig-w32.cmake.in.in} |   9 +-
 lang/qt/src/QGpgmeConfig.cmake.in.in               |   5 +-
 lang/qt/src/QGpgmeConfigVersion.cmake.in           |   2 +-
 lang/qt/src/SpecialJob                             |   1 -
 lang/qt/src/defaultkeygenerationjob.cpp            |   6 +-
 lang/qt/src/dn.cpp                                 | 495 +++++++++++++++++++++
 lang/qt/src/dn.h                                   | 136 ++++++
 lang/qt/src/job.cpp                                |  10 +-
 lang/qt/src/job.h                                  |  16 +
 lang/qt/src/qgpgme_export.h                        |  40 +-
 lang/qt/src/qgpgme_version.h.in                    |  58 ++-
 lang/qt/src/threadedjobmixin.h                     |  11 +-
 lang/qt/src/wkspublishjob.h                        |  17 +-
 lang/qt/tests/t-tofuinfo.cpp                       |   4 +
 m4/glib-2.0.m4                                     |  22 +-
 m4/pkg.m4                                          |   8 +-
 src/Makefile.am                                    |  35 +-
 src/argparse.c                                     |   4 +-
 src/argparse.h                                     |   2 +-
 src/ath-pthread.c                                  | 188 --------
 src/ath.c                                          |  51 ---
 src/ath.h                                          |  13 -
 src/b64dec.c                                       |   2 +-
 src/context.h                                      |  19 +-
 src/data-identify.c                                |   2 +-
 src/decrypt-verify.c                               |   4 +-
 src/decrypt.c                                      |  15 +-
 src/dirinfo.c                                      |   2 +-
 src/engine-assuan.c                                |   3 +-
 src/engine-backend.h                               |  15 +-
 src/engine-g13.c                                   |   1 +
 src/engine-gpg.c                                   |  73 ++-
 src/engine-gpgconf.c                               | 273 +++++++++++-
 src/engine-gpgsm.c                                 |  13 +-
 src/engine-spawn.c                                 |   3 +-
 src/engine-uiserver.c                              |  32 +-
 src/engine.c                                       |  36 +-
 src/engine.h                                       |  18 +-
 src/export.c                                       |   2 +-
 src/genkey.c                                       |   2 +-
 src/getauditlog.c                                  |   2 +-
 src/gpgconf.c                                      |   4 +-
 src/gpgme-config.in                                |   8 +-
 src/gpgme-tool.c                                   |   2 +-
 src/gpgme-w32spawn.c                               |   2 +-
 src/gpgme.c                                        | 168 +++++--
 src/gpgme.def                                      |   7 +
 src/gpgme.h.in                                     |  74 +++
 src/keylist.c                                      |  17 +-
 src/keysign.c                                      |   2 +-
 src/libgpgme.vers                                  |   7 +
 src/mbox-util.c                                    |   2 +-
 src/mbox-util.h                                    |   2 +-
 src/op-support.c                                   |   2 +-
 src/opassuan.c                                     |   2 +-
 src/parsetlv.c                                     |   2 +-
 src/parsetlv.h                                     |   2 +-
 src/passwd.c                                       |   2 +-
 src/posix-io.c                                     |   6 +-
 src/posix-sema.c                                   |  68 ---
 src/queryswdb.c                                    | 121 +++++
 src/sema.h                                         |  43 +-
 src/sys-util.h                                     |   2 +-
 src/tofupolicy.c                                   |   2 +-
 src/ttyname_r.c                                    |   2 +-
 src/util.h                                         |   5 +
 src/verify.c                                       |   3 +-
 src/version.c                                      |   1 -
 src/w32-ce.c                                       |   2 +-
 src/w32-io.c                                       |  38 +-
 src/w32-sema.c                                     | 117 -----
 src/w32-util.c                                     |  15 +-
 tests/Makefile.am                                  |   4 +-
 tests/gpg/Makefile.am                              |  11 +-
 tests/gpg/t-decrypt-verify.c                       |   2 +-
 tests/gpg/t-thread-keylist-verify.c                | 142 ++++++
 tests/gpg/t-thread-keylist.c                       |  85 ++++
 tests/gpg/t-verify.c                               |  49 ++
 tests/gpgsm/Makefile.am                            |   2 +-
 tests/gpgsm/cms-decrypt.c                          |   2 +-
 tests/gpgsm/cms-keylist.c                          |   2 +-
 tests/opassuan/t-command.c                         |   2 +-
 tests/run-decrypt.c                                |  55 ++-
 tests/run-encrypt.c                                |   2 +-
 tests/run-export.c                                 |   2 +-
 tests/run-genkey.c                                 |   2 +-
 tests/run-identify.c                               |   2 +-
 tests/run-import.c                                 |   2 +-
 tests/run-keylist.c                                |   2 +-
 tests/run-keysign.c                                |   2 +-
 tests/run-sign.c                                   |  18 +-
 tests/run-support.h                                |   2 +-
 tests/run-swdb.c                                   | 151 +++++++
 tests/run-tofu.c                                   |  24 +-
 tests/run-verify.c                                 |  18 +-
 192 files changed, 4051 insertions(+), 1443 deletions(-)

diff --cc ChangeLog
index 1fefdbb,dda15a7..161b7b4
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,4292 -1,16 +1,4742 @@@
 -No more ChangeLog files
 -========================
++2016-11-16  Werner Koch  <wk at gnupg.org>
+ 
 -Do not modify any of the ChangeLog files in GPGME.  Starting on
 -December 1st, 2011 we put change information only in the GIT commit
 -log, and generate a top-level ChangeLog file from logs at "make dist"
 -time.  As such, there are strict requirements on the form of the
 -commit log messages.  See doc/HACKING for details.  The old ChangeLog
 -files have all be renamed to ChangeLog-2011.
++	Release 1.8.0.
++	* configure.ac: Set version to 1.8.0.  Set LT version C28/A17/RO.
++	Set CPP LT version to C9/A3/R0.  Set Qt LT version to C8/A1/R0.
+ 
++	core: Do not leak the override session key to ps(1).
++	* src/engine-gpg.c (struct engine_gpg): New field
++	override_session_key.
++	(gpg_release): Free that field.
++	(gpg_decrypt): With gnupg 2.1.16 use --override-session-key-fd.
+ 
++	* tests/run-decrypt.c (main): Fix setting over the override key.
+ 
 -Local Variables:
 -buffer-read-only: t
 -mode: text
 -End:
++2016-11-16  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
++
++	doc,tests: Require use of ctx_flag before use of session_key.
++	* doc/gpgme.texi: Document requirements of verifying that it is OK to
++	use session_key.
++	* tests/run-decrypt.c: Ensure that we fail if we're unable to access
++	the session key, so that we do not violate the guidance above.
++
++
++	Changed the description
++
++	 - at code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns
++	 - at code{GPG_ERR_NO_ERROR} or @code{gpgme_get_ctx_flag (ctx,
++	 -"export-session-key")} returns @code{"1"}.
++	 + at code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns success
++	 +or @code{gpgme_get_ctx_flag (ctx, "export-session-key")} returns true
++	 +(non-empty string).
++
++	to get gpgme_get_ctx_flag for boolean values in sync with its own
++	description.
++
++	Note that I don't agree with the above suggestion but it does not
++	really harm to have it in the man page.
++
++2016-11-15  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt, cpp: Add cmake config files for w32.
++	* lang/cpp/src/GpgmeppConfig-w32.cmake.in.in
++	lang/qt/src/QGpgmeConfig-w32.cmake.in.in: New.
++	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
++	lang/qt/src/QGpgmeConfig.cmake.in.in: Remove libsuffix handling.
++	* lang/cpp/src/Makefile.am,
++	lang/qt/src/Makefile.am: Create / install w32 config files.
++	* configure.ac: Configure them.
++
++	qt: Use new style connect in th..mixin.
++	* lang/qt/src/threadedjobmixin.h
++	(ThreadedJobMixin::lateInitialization): Use new style connect.
++
++2016-11-15  Werner Koch  <wk at gnupg.org>
++
++	core: Implement context flag "override-session-key".
++	* src/gpgme.c (gpgme_set_ctx_flag): Add flags "export-session-key" and
++	"override-session-key".
++	(gpgme_get_ctx_flag): Ditto.
++	(gpgme_set_export_session_keys): Remove.
++	(gpgme_get_export_session_keys): Remove.
++	* src/gpgme.def, src/libgpgme.vers: Remove them.
++	* src/context.h (struct gpgme_context): Add field
++	override_session_key.
++	* src/decrypt-verify.c (decrypt_verify_start): Pass
++	override_session_key value to the engine.
++	* src/decrypt.c (decrypt_start): Ditto.
++	* src/engine.c (_gpgme_engine_op_decrypt): Ditto.
++	(_gpgme_engine_op_decrypt_verify): Ditto.
++	* src/engine-backend.h (struct engine_ops): Extend DECRYPT and
++	DECRYPT_VERIFY_START with override_session_key.
++	* src/engine-uiserver.c (_uiserver_decrypt): Add stub arg
++	override_session_key.
++	(uiserver_decrypt): Ditto.
++	(uiserver_decrypt_verify): Ditto.
++	* src/engine-gpgsm.c (gpgsm_decrypt): Ditto.
++	* src/engine-gpg.c (gpg_decrypt): Add arg override_session_key and set
++	corresponding gpg option.
++
++	* tests/run-decrypt.c (print_result): Print the session key if
++	available.
++	(main): Add options --export-session-key and --override-session-key.
++
++	core: Add public function gpgme_get_ctx_flag.
++	* src/gpgme.h.in (gpgme_get_ctx_flag): New.
++	* src/gpgme.c (gpgme_set_ctx_flag): Move down the file and add a trace
++	statement.
++	(gpgme_get_ctx_flag): New.
++	* src/gpgme.def, src/libgpgme.vers: Add new interface.
++
++2016-11-15  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
++
++	core: Enable extraction of session keys.
++	* src/gpgme.c (gpgme_set_export_session_keys): New function.
++	(gpgme_get_export_session_keys): New function.
++	* src/gpgme.h.in (struct _gpgme_op_decrypt_result): Add session_key
++	member.
++	(gpgme_{set,get}_export_session_keys): Declare new functions.
++	* src/libgpgme.vers, src/gpgme.def: Export new functions in shared
++	object.
++	* src/engine.h: (_gpgme_engine_op_decrypt) Add export_session_key
++	parameter.
++	(_gpgme_engine_op_decrypt_verify): Add export_session_key parameter.
++	* src/engine-backend.h: (struct engine_ops): Change function
++	pointer declarations to match.
++	* src/context.h (struct gpgme_context): Add export_session_keys member.
++	* src/decrypt.c (release_op_data): Free result.session_key.
++	(_gpgme_decrypt_status_handler): Store a copy of the exported session
++	key.
++	(decrypt_start): Pass export_session_keys from the context.
++	* src/decrypt-verify.c (decrypt_verify_start): Pass
++	export_session_keys from context.
++	* src/engine.c (_gpgme_engine_op_decrypt): Pass through
++	export_session_key flag.
++	(_gpgme_engine_op_decrypt_verify): Pass through export_session_key
++	flag.
++	* src/engine-gpg.c (gpg_decrypt): If export_session_key is set, add
++	--export-session-key to argument list.
++	* src/engine-gpgsm.c (gpgsm_decrypt): Ignore export_session_key for
++	now, since gpgsm offers no such mechanism.
++	* src/engine-uiserver.c (_uiserver_decrypt): If export_session_key is
++	set, add --export-session-key flag to cmd.
++	* doc/gpgme.texi: Document new functions and session_key member of
++	decrypt_result_t.
++	* doc/uiserver.texi: Add --export-session-key flag to DECRYPT command.
++
++2016-11-14  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Add API to get the context for a Job.
++	* lang/qt/src/job.cpp,
++	lang/qt/src/job.h (Job::context): New.
++	* lang/qt/src/threadedjobmixin.cpp
++	(ThreadedJobMixin::~ThreadedJobMixin): New. Unregister context.
++	(ThreadedJobMixin::lateInitialization): Register context.
++	* NEWS: Update for cpp and qt.
++
++	cpp: Add get / set Sender API.
++	* cpp/src/context.cpp, cpp/src/context.h (Context::setSender),
++	(Context::getSender): Add simple wrappers.
++
++	qt, cpp: Enable dll build for windows.
++	* lang/cpp/src/Makefile.am,
++	lang/qt/src/Makefile.am: Add -no-undefined to LDFLAGS.
++
++	w32: Fix build of w32-glib.
++	* src/Makefile.am (main_sources): Remove system_components_not_extra.
++	(libgpgme_la_SOURCES): Add system_components_not_extra.
++	(libgpgme_glib_la_SOURCES): Remove duplicated ath files.
++
++2016-11-11  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
++
++	doc: Correct deftypefun for gpgme_op_decrypt_verify_start.
++	* doc/gpgme.texi: Documentationabout gpgme_op_decrypt_verify_start was
++	stored under the name gpgme_op_decrypt_verify instead.
++
++	doc: Correct text about gpgme_cancel_async.
++	* doc/gpgme.texi: Documentation about gpgme_cancel_async should refer
++	to the correct name.
++
++	core: Non-zero values should set _armor, _textmode, and _online.
++	* src/gpgme.c (gpgme_set_armor, gpgme_set_textmode,
++	gpgme_set_offline): Ensure that non-zero values actually set the
++	appropriate internal bit.
++
++2016-11-11  Alon Bar-Lev  <alon.barlev at gmail.com>
++
++	tests,python: Atomic directory creation.
++	* lang/python/tests/Makefile.am:  Use MIDIR_P.
++	* tests/gpg/Makefile.am: Ditto.
++	* tests/gpgsm/Makefile.am: Ditto.
++
++2016-11-10  Werner Koch  <wk at gnupg.org>
++
++	core: Use better error code when using select with a too high fd.
++	* src/posix-io.c (_gpgme_io_select): Return EMFILE instead of EBADF.
++
++2016-11-10  Andre Heinecke  <aheinecke at intevation.de>
++
++	tests: Reduce thread count in new thread tests.
++	* gpg/t-thread-keylist-verify.c,
++	gpg/t-thread-keylist.c: Reduce threads to 100
++
++2016-11-10  Werner Koch  <wk at gnupg.org>
++
++	core: Detect unreadable keyrings.
++	* src/keylist.c (op_data_t): Add field keydb_search_err.
++	(keylist_status_handler): Parse STATUS_ERROR into that var.
++	(gpgme_op_keylist_next): Use that err instead of GPG_ERR_EOF.
++
++2016-11-10  Andre Heinecke  <aheinecke at intevation.de>
++
++	tests: Fix additional memleaks in thread tests.
++	* tests/gpg/t-thread-keylist-verify.c (start_verify): Release
++	data.
++	(start_keylist): Unref keys.
++	* tests/gpg/t-thread-keylist.c (start_keylist): Unref keys.
++
++	tests: Improve new thread tests.
++	* tests/gpg/t-thread-keylist-verify.c (start_keylist): Mark
++	arg as unused. Release context.
++	(start_verify): Ditto.
++	(main): Mark args as unused.
++	* tests/gpg/t-thread-keylist.c (start_keylist):  Mark
++	arg as unused. Release context.
++	(main): Mark args as unused.
++
++	core: Use gpgrt locking for thread safeness.
++	* configure.ac: Require libgpg-error 1.17. No longer
++	check for pthread.
++	* doc/gpgme.texi: Document removed neccessity for thread
++	safe gpgme flavours.
++	* src/sema.h (DEFINE_GLOBAL_LOCK),
++	(DEFINE_STATIC_LOCK, INIT_LOCK, DECLARE_LOCK)
++	(DESTROY_LOCK, LOCK, UNLOCK): Change to gpgrt equivalents.
++	* src/posix-sema.c, src/w32-sema.c: Removed.
++	* src/Makefile.am: Remove libpthread and
++	Update accordingly.
++	* src/ath.c, src/ath.h (ath_mutex_init)
++	(ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Removed.
++	* src/ath.h (ATH_MUTEX_INITIALIZER): Removed.
++	* src/version.c (do_subsystem_inits): sema_subsystem_init is
++	no longer required.
++	* tests/gpg/Makefile.am: Add new threading tests.
++	(t_thread1_LDADD, t_cancel_LDADD):
++	Use just gpgme.
++	* tests/gpg/t-thread-keylist-verify.c,
++	tests/gpg/t-thread-keylist.c: New.
++	* src/gpgme-config.in: Use -lgpgme for thread-model pthread.
++
++2016-11-09  Justus Winter  <justus at g10code.com>
++
++	python: Require at least GPGME 1.7 for out-of-tree builds.
++	* lang/python/setup.py.in: Bump required version to 1.7.
++
++2016-11-09  Werner Koch  <wk at gnupg.org>
++
++	w32: Better protect the IO-system's fd_table.
++	* src/w32-io.c (fd_table_lock): New.
++	(new_fd): Lock allocation of a new slot.
++	(release_fd): Lock deallocation of a slot.
++
++2016-11-04  Andre Heinecke  <aheinecke at intevation.de>
++
++	cpp: Add API for swdb queries.
++	* lang/cpp/src/swdbresult.cpp,
++	 lang/cpp/src/swdbresult.h (SwdbResult): New.
++	* lang/cpp/src/Makefile.am: Update accordingly.
++
++	cpp: Add more EngineInfo::Version ctors.
++	* lang/cpp/src/engineinfo.h
++	(EngineInfo::Version::Version(const char*)),
++	(EngineInfo::Version::Version()): New.
++
++	cpp: Don't include gpgme.h in tofuinfo header.
++	* lang/cpp/src/tofuinfo.h: Don't include gpgme.h
++
++	cpp: Extend gpgmefw for tofuinfo and swdb query.
++	* lang/cpp/src/gpgmefw.h (gpgme_tofu_info_t)
++	(gpgme_query_swdb_result_t): New forwards.
++
++2016-11-04  Werner Koch  <wk at gnupg.org>
++
++	w32: Fix locating gpgconf on 64 bit systems.
++	* src/w32-util.c (find_program_at_standard_place): Use access to check
++	whether the binary is at CSIDL_PROGRAM_FILES before testing
++	CSIDL_PROGRAM_FILESX86.
++
++2016-11-03  Werner Koch  <wk at gnupg.org>
++
++	core: Add gpgme_op_query_swdb and helper.
++	* src/gpgme.h.in (gpgme_query_swdb_result_t): New.
++	(gpgme_op_query_swdb): New.
++	(gpgme_op_query_swdb_result): New.
++	* src/libgpgme.vers, src/gpgme.def: Add the two new functions.
++	* src/queryswdb.c: New.
++	* src/Makefile.am (main_sources): Add new file.
++	* src/context.h (OPDATA_QUERY_SWDB): New.
++	* src/engine-backend.h (struct engine_ops): Add field 'query_swdb'.
++	Adjust all initializer.
++	* src/engine.c (_gpgme_engine_op_query_swdb): New.
++	* src/engine-gpgconf.c (parse_swdb_line): New.
++	(gpgconf_query_swdb): New.
++	(_gpgme_engine_ops_gpgconf): Register that function.
++
++	* src/util.h (GPG_ERR_TOO_OLD): Define for older libgpg-error.
++	(GPG_ERR_ENGINE_TOO_OLD): Ditto.
++
++	* tests/run-swdb.c: New.
++	* tests/Makefile.am (noinst_PROGRAMS): Add new debug tool.
++
++2016-11-03  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Change license of export / version header.
++	* lang/qt/src/qgpgme_export.h,
++	lang/qt/src/qgpgme_version.h: Change license to GPLv2+
++
++2016-11-03  Werner Koch  <wk at gnupg.org>
++
++	core: Make use of --homedir in gpgconf.
++	* src/engine-gpgconf.c (struct engine_gpgconf): Add field 'version'.
++	(have_gpgconf_version): New.
++	(gpgconf_release): Free VERSION.
++	(gpgconf_new): Set VERSION.
++	(gpgconf_read, gpgconf_write): Use --homedir with recent gnupg.
++
++2016-11-02  Andras Mantia  <andras at kdab.com>
++
++	qt: Fix build with g++ 4.8.x.
++	* lang/qt/src/defaultkeygenerationjob.cpp
++	(DefaultKeyGenerationJob::start): Explicitly connect pointer
++	in the QPointer.
++
++2016-11-02  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt, cpp: Fix versioning in cmake config and header.
++	* configure.ac (VERSION_MAJOR, VERSION_MINOR, VERSION_MICRO): New
++	subst variables for the version header.
++	* lang/cpp/src/GpgmeppConfigVersion.cmake.in,
++	lang/cpp/src/gpgmepp_version.h.in,
++	lang/qt/src/QGpgmeConfigVersion.cmake.in,
++	lang/qt/src/qgpgme_version.h.in: Use new variables.
++
++	qt: Install cmake config into qgpgme subdir.
++	* lang/qt/src/Makefile.am: Install cmake config file in qgpgme subdir.
++
++	qt: Require gpgmepp from cmake config script.
++	* lang/qt/src/QGpgmeConfig.cmake.in.in: Require cpp.
++
++	qt, cpp: Add all generated files to cleanfiles.
++	* cpp/src/Makefile.am (CLEANFILES),
++	qt/src/Makefile.am (CLEANFILES): Add all generated files
++	to cleanfiles.
++
++2016-11-01  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Add Distinguished Name parser from libkleo.
++	* lang/qt/src/dn.cpp (DN, DN::Attribute): New public API.
++	* lang/qt/src/dn.h: New.
++	* lang/qt/src/Makefile.am: Update accordingly.
++
++	qt, cpp: Install version headers in subdirs.
++	* lang/cpp/src/Makefile.am,
++	lang/qt/src/Makefile.am: Install version headers in include
++	subdirs.
++
++2016-10-31  Justus Winter  <justus at g10code.com>
++
++	python: Use vanity modules for constants in tests and examples.
++	* lang/python/gpg/constants/sig/notation.py: New file.
++	* lang/python/gpg/constants/sig/__init__.py: Import new module.
++
++	* lang/python/examples/assuan.py: Use more specific module for
++	constants, e.g. 'protocol.ASSUAN' instead of 'PROTOCOL_ASSUAN'.
++	* lang/python/examples/testCMSgetkey.py: Likewise.
++	* lang/python/tests/initial.py: Likewise.
++	* lang/python/tests/t-callbacks.py: Likewise.
++	* lang/python/tests/t-decrypt-verify.py: Likewise.
++	* lang/python/tests/t-decrypt.py: Likewise.
++	* lang/python/tests/t-edit.py: Likewise.
++	* lang/python/tests/t-encrypt-large.py: Likewise.
++	* lang/python/tests/t-encrypt-sign.py: Likewise.
++	* lang/python/tests/t-encrypt-sym.py: Likewise.
++	* lang/python/tests/t-encrypt.py: Likewise.
++	* lang/python/tests/t-export.py: Likewise.
++	* lang/python/tests/t-file-name.py: Likewise.
++	* lang/python/tests/t-idiomatic.py: Likewise.
++	* lang/python/tests/t-import.py: Likewise.
++	* lang/python/tests/t-keylist.py: Likewise.
++	* lang/python/tests/t-protocol-assuan.py: Likewise.
++	* lang/python/tests/t-sig-notation.py: Likewise.
++	* lang/python/tests/t-sign.py: Likewise.
++	* lang/python/tests/t-signers.py: Likewise.
++	* lang/python/tests/t-trustlist.py: Likewise.
++	* lang/python/tests/t-verify.py: Likewise.
++	* lang/python/tests/t-wait.py: Likewise.
++
++	python: Import the topmost module in tests and examples.
++	* examples/verifydetails.py: Only import the topmost module 'gpg' and
++	update the code accordingly.
++	* tests/support.py: Likewise.
++	* tests/t-callbacks.py: Likewise.
++	* tests/t-data.py: Likewise.
++	* tests/t-decrypt-verify.py: Likewise.
++	* tests/t-decrypt.py: Likewise.
++	* tests/t-edit.py: Likewise.
++	* tests/t-encrypt-large.py: Likewise.
++	* tests/t-encrypt-sign.py: Likewise.
++	* tests/t-encrypt-sym.py: Likewise.
++	* tests/t-encrypt.py: Likewise.
++	* tests/t-export.py: Likewise.
++	* tests/t-file-name.py: Likewise.
++	* tests/t-import.py: Likewise.
++	* tests/t-keylist.py: Likewise.
++	* tests/t-sig-notation.py: Likewise.
++	* tests/t-sign.py: Likewise.
++	* tests/t-signers.py: Likewise.
++	* tests/t-trustlist.py: Likewise.
++	* tests/t-verify.py: Likewise.
++	* tests/t-wait.py: Likewise.
++	* tests/t-wrapper.py: Likewise.
++
++	python: Improve constants module.
++	* lang/python/gpg/constants/__init__.py: Import all modules below
++	'constants/'.  Interface hygiene: delete 'util'.
++	* lang/python/gpg/constants/data/encoding.py: Delete 'util'.
++	* lang/python/gpg/constants/event.py: Likewise.
++	* lang/python/gpg/constants/import.py: Likewise.
++	* lang/python/gpg/constants/keylist/mode.py: Likewise.
++	* lang/python/gpg/constants/md.py: Likewise.
++	* lang/python/gpg/constants/pk.py: Likewise.
++	* lang/python/gpg/constants/protocol.py: Likewise.
++	* lang/python/gpg/constants/sig/mode.py: Likewise.
++	* lang/python/gpg/constants/sigsum.py: Likewise.
++	* lang/python/gpg/constants/validity.py: Likewise.
++	* lang/python/gpg/errors.py: Likewise.
++
++2016-10-31  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
++
++	python: Rename Python module from PyME to gpg.
++	This follows weeks of discussion on the gnupg-devel mailing list.
++	Hopefully it will make it easier for people using Python to use GnuPG
++	in the future.
++
++2016-10-25  Werner Koch  <wk at gnupg.org>
++
++	core: New API functions gpgme_set_sender, gpgme_get_sender.
++	* src/context.h (struct gpgme_context): Add field 'sender'.
++	* src/gpgme.c: Include mbox-util.h.
++	(gpgme_release): Free SENDER.
++	(gpgme_set_sender): New.
++	(gpgme_get_sender): New.
++	* src/gpgme.def, src/libgpgme.vers: Add new functions.
++
++	* src/engine-gpg.c (append_args_from_sender): New.
++	(gpg_encrypt_sign, gpg_sign): Call append_args_from_sender.
++	(gpg_verify): Add arg CTX.  Call append_args_from_sender/
++	* src/engine-gpgsm.c (gpgsm_verify): Add dummy arg CTX.
++	* src/engine-uiserver.c (uiserver_verify): Ditto.
++	* src/engine.c (_gpgme_engine_op_verify): Add arg CTX.
++	* src/verify.c (verify_start): Pass CTX to engine function.
++
++	* tests/gpg/t-verify.c (main): Add some checks for new functions.
++	* tests/run-sign.c (main): Add option --sender.
++	* tests/run-verify.c (main): Ditto.
++
++2016-10-19  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Improve WKSPublishJob apidoc.
++	* lang/qt/src/wkspublishjob.h: Improve doc.
++
 +2016-10-18  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.7.1.
 +	* configure.ac: Set LT version to C27/A16/R0.  Note that the LT
 +	versions for cpp and Qt have already been updated.
 +
 +2016-10-14  Werner Koch  <wk at gnupg.org>
 +
 +	tests: Make t-cancel more portable.
 +	* tests/gpg/t-cancel.c: Include sys/time.h and protect sys/select.h.
 +
 +	python: Call ln(1) in a portable way.
 +	* lang/python/Makefile.am: Specify target dir for ln.
 +
 +2016-10-14  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Fix init of string from null.
 +	* lang/cpp/src/key.cpp (UserID::addrSpecFromString): Check return
 +	value before creating the string.
 +
 +2016-10-13  Justus Winter  <justus at g10code.com>
 +
 +	python: Make 'get_key' more idiomatic.
 +	* lang/python/pyme/core.py (Context.get_key): Raise errors.KeyNotFound
 +	if the key is not found.  This error is both a KeyError for idiomatic
 +	error handling as well as a GPGMEError so we don't break existing
 +	code.
 +	* lang/python/pyme/errors.py (KeyNotFound): New class.
 +	* lang/python/tests/support.py (no_such_key): New variable.
 +	* lang/python/tests/t-keylist.py: Test the new behavior.
 +
 +	python: Return public keys by default.
 +	* lang/python/pyme/core.py (Core.get_key): Return public keys by
 +	default, improve docstring.
 +	* lang/python/examples/testCMSgetkey.py: Update example.
 +	* lang/python/examples/verifydetails.py: Likewise.
 +
 +	GnuPG-bug-id: 2751
 +
 +	python: Fix example.
 +	* lang/python/examples/inter-edit.py: Fix example.
 +
 +	Fixes-commit: a458e7fe
 +
 +2016-10-13  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Fix version number.
 +	* configure.ac (LIBGPGMEPP_LT_CURRENT): Bump.
 +
 +	qt, cpp: Fix permissions of Config files.
 +	* lang/cpp/src/Makefile.am,
 +	lang/qt/src/Makefile.am: Do not install config files as executable.
 +
 +	qt: Install SpecialJob.
 +	* lang/qt/src/Makefile.am: Install SpecialJob
 +	* NEWS: mention it.
 +
 +	qt, cpp: Fix expected targets in Config files.
 +	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
 +	lang/qt/src/QGpgmeConfig.cmake.in.in: Remove KF5 variants.
 +
 +2016-10-11  Daniel Vrátil  <dvratil at kde.org>
 +
 +	qt: Add missing implementation of MultiDeleteJob.
 +	* lang/qt/src/multideletejob.h: Fix include, cryptobackend.h is now
 +	called protocol.h
 +	* lang/qt/src/multideletejob.cpp: New file.
 +	* lang/qt/src/Makefile.am: Add multideletejob.cpp.
 +
 +	qt: Install abstractimportjob.h.
 +	* lang/cpp/src/Makefile.am: Install abstractimportjob.h since it's
 +	included from importjob.h
 +
 +2016-10-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Add API for gpgme_addrspec_from_uid.
 +	* lang/cpp/src/key.cpp (UserID::addrSpecFromString): New static
 +	function to expose addrspec from uid.
 +	(UserID::addrSpec): New. Get addrSpec from Userid.
 +	* NEWS: Update accordingly.
 +
 +2016-10-10  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Add NEWS for cpp and qt, bump cpp version.
 +	* NEWS: Add entries for cpp and qt changes.
 +	* configure.ac: Bump cpp version because of added API.
 +
 +	Add convenience function to get key from sig.
 +	* lang/cpp/src/verificationresult.cpp (Signature::key(bool, bool)):
 +	New. Can be used to search / update the key associcated with this
 +	signature.
 +
 +	cpp: Return null key if the signature had no key.
 +	* lang/cpp/src/verificationresult.cpp (Private): Add null key
 +	to list when there is no key associated with the signature.
 +
 +	qt: Add simple verify test.
 +	* lang/qt/tests/t-verify.cpp: New. Small test if a signature
 +	returns a key with fingerprint.
 +	* lang/qt/tests/Makefile.am: Add new test.
 +
 +	core: Fix w32 crash in find_program_in_dir.
 +	* src/w32-util.c (find_program_in_dir): Fix call to _gpgme_strconcat.
 +
 +2016-10-08  Werner Koch  <wk at gnupg.org>
 +
 +	core: New helper function gpgme_addrspec_from_uid.
 +	* src/gpgme.h.in: Add gpgme_addrspec_from_uid.
 +	* src/gpgme.def, src/libgpgme.vers: Ditto.
 +	* src/mbox-util.c (gpgme_addrspec_from_uid): New.
 +
 +2016-10-06  Justus Winter  <justus at g10code.com>
 +
 +	Add missing includes.
 +	* lang/cpp/src/key.cpp: Include <strings.h> for 'strcasecmp'.
 +	* tests/gpg/t-cancel.c: Include <sys/select.h> for 'fd_set' and
 +	friends.
 +
 +2016-10-05  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Bump Revision.
 +	* configure.ac (LIBGPGMEPP_LT_REVISION): Bump revision.
 +
 +	qt: Fix spelling error in WKSPublishJob.
 +	* src/qgpgmewkspublishjob.cpp,
 +	src/qgpgmewkspublishjob.h,
 +	src/wkspublishjob.h,
 +	tests/t-wkspublish.cpp: Fix spelling of received.
 +	* src/configure.ac (LIBQGPGME_LT_CURRENT): Bump
 +	accordingly.
 +
 +	qt: Disable tests that require a password for 2.0.
 +	* lang/qt/tests/t-encrypt.cpp: Disable tests that require
 +	a password for 2.0.
 +
 +	Add warning flags for c++ compiler, too.
 +	* configure.ac (CXXFLAGS): Add Wall and Wextra.
 +
 +	qt: Fix unused variable warnings.
 +	* qt/src/qgpgmenewcryptoconfig.cpp,
 +	qt/src/threadedjobmixin.h,
 +	qt/tests/t-encrypt.cpp,
 +	qt/tests/t-support.h,
 +	qt/tests/t-wkspublish.cpp: Mark additional variables as unused.
 +
 +	cpp: Add support for URL Data encodings.
 +	* lang/cpp/src/data.h (Data::Encoding): Extend enum.
 +	* lang/cpp/src/data.cpp (Data::encoding),
 +	Data::setEncoding): Support new values.
 +
 +	cpp: Fix gcc diagnostic push / pop.
 +	* lang/cpp/src/context.cpp: Fix pragmas.
 +
 +	qt: Disable t-wkspublish test.
 +	* lang/qt/tests/Makefile.am (TESTS): Remove t-wkspublish.
 +
 +2016-09-30  Alon Bar-Lev  <alon.barlev at gmail.com>
 +
 +	python: Link 'data.h' and 'config.h' into the builddir.
 +	* lang/python/Makefile.am: Link to the files.
 +	* lang/python/gpgme.i: Update path.
 +	* lang/python/setup.py.in: Do not add the top builddir to the include
 +	path.
 +
 +	python: Add 'prepare' target.
 +	* lang/python/Makefile.am: Add 'prepare' target.
 +
 +2016-09-29  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp, qt: Handle modified includedir installation.
 +	* lang/cpp/src/Makefile.am,
 +	lang/qt/src/Makefile.am: Replace resolved_includedir.
 +	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
 +	lang/qt/src/QGpgmeConfig.cmake.in.in: Use resolved_includedir
 +	instead of relying on a common installation prefix.
 +
 +2016-09-27  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
 +
 +	Clarify licensing.
 +	* src/b64dec.c, src/mbox-util.c, src/mbox-util.h: These three files
 +	  are explicitly licensed under LGPL, but their comments suggest that
 +	  details about the warranty can be found in the GPL.  Adjust comments
 +	  to refer to the correct license.
 +
 +2016-09-27  Justus Winter  <justus at g10code.com>
 +
 +	tests: Fix check for gpg versions not reporting the critical flag.
 +	* lang/python/tests/t-sig-notation.py: Also blacklist 2.0.x.
 +	* tests/gpg/t-sig-notation.c: Likewise.
 +
 +2016-09-26  Justus Winter  <justus at g10code.com>
 +
 +	python: Correctly translate to size_t.
 +	* lang/python/gpgme.i: Correctly translate Python number to size_t.
 +
 +	python: Correctly translate off_t.
 +	* lang/python/gpgme.i: Improve int/long translations, correctly handle
 +	off_t with large file support.
 +
 +	python: Include 'config.h'.
 +	* lang/python/Makefile.am: Pass 'top_builddir' to 'setup.py'.
 +	* lang/python/gpgme.i: Include 'config.h'.
 +	* lang/python/helpers.c: Likewise.
 +	* lang/python/helpers.h: Likewise.
 +	* lang/python/setup.py.in: Make sure that 'config.h' can be found.
 +
 +2016-09-23  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
 +
 +	Fix spelling.
 +	 * lang/cpp/src/context.h, lang/qt/src/protocol.h,
 +	   lang/qt/src/wkspublishjob.h, src/data-identify.c, src/engine-gpg.c:
 +	   minor spelling cleanup.
 +
 +	move some file encodings to UTF-8.
 +	* THANKS, doc/ChangeLog-2011, tests/ChangeLog-2011,
 +	  tests/gpg/geheim.txt: convert from iso 8859-1 to utf-8.
 +	* lang/qt/src/dataprovider.cpp, lang/qt/src/qgpgmerefreshkeysjob.cpp,
 +	  lang/qt/src/qgpgmesecretkeyexportjob.cpp: replace U+FFFD REPLACEMENT
 +	  CHARACTER with proper U+00E4 LATIN SMALL LETTER A WITH DIAERESIS.
 +
 +2016-09-23  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	tests: Check data after decryption.
 +	* tests/gpgsm/t-decrypt.c (main): Check data matches expected.
 +	Only print result if it does not.
 +
 +	cpp, qt: Include config.h.
 +	lang/cpp/src/callbacks.cpp,
 +	lang/cpp/src/configuration.cpp,
 +	lang/cpp/src/context.cpp,
 +	lang/cpp/src/context_glib.cpp,
 +	lang/cpp/src/context_qt.cpp,
 +	lang/cpp/src/context_vanilla.cpp,
 +	lang/cpp/src/data.cpp,
 +	lang/cpp/src/decryptionresult.cpp,
 +	lang/cpp/src/defaultassuantransaction.cpp,
 +	lang/cpp/src/editinteractor.cpp,
 +	lang/cpp/src/encryptionresult.cpp,
 +	lang/cpp/src/engineinfo.cpp,
 +	lang/cpp/src/eventloopinteractor.cpp,
 +	lang/cpp/src/exception.cpp,
 +	lang/cpp/src/gpgadduserideditinteractor.cpp,
 +	lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
 +	lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
 +	lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
 +	lang/cpp/src/gpgsignkeyeditinteractor.cpp,
 +	lang/cpp/src/importresult.cpp,
 +	lang/cpp/src/key.cpp,
 +	lang/cpp/src/keygenerationresult.cpp,
 +	lang/cpp/src/keylistresult.cpp,
 +	lang/cpp/src/scdgetinfoassuantransaction.cpp,
 +	lang/cpp/src/signingresult.cpp,
 +	lang/cpp/src/tofuinfo.cpp,
 +	lang/cpp/src/trustitem.cpp,
 +	lang/cpp/src/verificationresult.cpp,
 +	lang/cpp/src/vfsmountresult.cpp,
 +	lang/qt/src/dataprovider.cpp,
 +	lang/qt/src/defaultkeygenerationjob.cpp,
 +	lang/qt/src/gpgme_backend_debug.cpp,
 +	lang/qt/src/job.cpp,
 +	lang/qt/src/qgpgmeadduseridjob.cpp,
 +	lang/qt/src/qgpgmebackend.cpp,
 +	lang/qt/src/qgpgmechangeexpiryjob.cpp,
 +	lang/qt/src/qgpgmechangeownertrustjob.cpp,
 +	lang/qt/src/qgpgmechangepasswdjob.cpp,
 +	lang/qt/src/qgpgmedecryptjob.cpp,
 +	lang/qt/src/qgpgmedecryptverifyjob.cpp,
 +	lang/qt/src/qgpgmedeletejob.cpp,
 +	lang/qt/src/qgpgmedownloadjob.cpp,
 +	lang/qt/src/qgpgmeencryptjob.cpp,
 +	lang/qt/src/qgpgmeexportjob.cpp,
 +	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
 +	lang/qt/src/qgpgmeimportjob.cpp,
 +	lang/qt/src/qgpgmekeyformailboxjob.cpp,
 +	lang/qt/src/qgpgmekeygenerationjob.cpp,
 +	lang/qt/src/qgpgmekeylistjob.cpp,
 +	lang/qt/src/qgpgmelistallkeysjob.cpp,
 +	lang/qt/src/qgpgmenewcryptoconfig.cpp,
 +	lang/qt/src/qgpgmerefreshkeysjob.cpp,
 +	lang/qt/src/qgpgmesecretkeyexportjob.cpp,
 +	lang/qt/src/qgpgmesignencryptjob.cpp,
 +	lang/qt/src/qgpgmesignjob.cpp,
 +	lang/qt/src/qgpgmesignkeyjob.cpp,
 +	lang/qt/src/qgpgmetofupolicyjob.cpp,
 +	lang/qt/src/qgpgmeverifydetachedjob.cpp,
 +	lang/qt/src/qgpgmeverifyopaquejob.cpp,
 +	lang/qt/src/qgpgmewkspublishjob.cpp,
 +	lang/qt/src/threadedjobmixin.cpp,
 +	lang/qt/tests/run-keyformailboxjob.cpp,
 +	lang/qt/tests/t-encrypt.cpp,
 +	lang/qt/tests/t-keylist.cpp,
 +	lang/qt/tests/t-keylocate.cpp,
 +	lang/qt/tests/t-ownertrust.cpp,
 +	lang/qt/tests/t-support.cpp,
 +	lang/qt/tests/t-tofuinfo.cpp,
 +	lang/qt/tests/t-wkspublish.cpp: Include config.h
 +
 +2016-09-22  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Silence some warnings about unused parameters.
 +	* src/assuan-support.c (my_recvmsg, my_sendmsg, my_waitpid)
 +	(my_socketpair) [W32]: Mark unused parameters.
 +
 +	core: Fix error checking in _gpgme_mkstemp.
 +	* src/w32-util.c (_gpgme_mkstemp): Fix error checking.
 +	(dlopen): Mark FLAGS as unused.
 +
 +	core: New helper function _gpgme_strconcat.
 +	* src/conversion.c: Include stdarg.h.
 +	(do_strconcat): New.
 +	(_gpgme_strconcat): New.
 +	* src/util.h: Provide fallback for GPGRT_ATTR_SENTINEL.
 +	(_gpgme_strconcat): New with sentinel.
 +
 +	* src/w32-util.c (find_program_in_dir): Replace malloc and stpcpy by
 +	_gpgme_strconcat.
 +	(find_program_at_standard_place): Ditto.
 +	(_gpgme_set_default_gpg_name): Ditto.
 +	(_gpgme_set_default_gpgconf_name): Ditto.
 +	(_gpgme_mkstemp): Ditto.
 +	(_gpgme_set_override_inst_dir): Repalce malloc and strcpy by strdup.
 +
 +2016-09-22  Daiki Ueno  <ueno at gnu.org>
 +
 +	tests: Add test for cancellation.
 +	* tests/gpg/t-cancel.c: New file.
 +	* tests/gpg/Makefile.am (tests_skipped): New variable, default to
 +	t-genkey and t-cancel.
 +	(noinst_PROGRAMS): Add $(tests_skipped).
 +	* tests/gpg/.gitignore: Add t-cancel.
 +
 +	gpg: Add option --exit-on-status-write-error.
 +	* src/engine-gpg.c (gpg_new): Add --exit-on-status-write-error if the
 +	engine version is latest enough to expect progress output from gpg.
 +
 +	tests: Fix select usage in t-eventloop.
 +	* tests/gpg/t-eventloop.c (do_select): Supply timeout value to select.
 +
 +	doc: Fix minor errors in I/O callback example.
 +	* gpgme.texi (I/O Callback Example): Fix typos, add timeout to select,
 +	and initialize mutex as recursive.
 +
 +2016-09-21  Andreas Stieger  <astieger at suse.com>
 +
 +	cpp: Avoid missing returns in non-void functions.
 +	* lang/cpp/src/context.cpp
 +	  (Context::signaturePolicyURL): return nullptr on default
 +	  (to_tofu_policy_t): add default case for unknown
 +	* lang/cpp/src/key.cpp
 +	  (Key::primaryFingerprint): return nullptr on default
 +	* lang/cpp/src/tofuinfo.cpp
 +	  (GpgME::TofuInfo::policy): add default case for unknown
 +
 +2016-09-21  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.7.0.
 +	* configure.ac: Bump LT vesion to C26/A15/R0.
 +
 +	python: Create install dir.
 +	* lang/python/Makefile.am (install-exec-local): Create dir.
 +
 +2016-09-20  Werner Koch  <wk at gnupg.org>
 +
 +	tests: Make "make -j distcheck" work in Python.
 +	* lang/python/Makefile.am (SUBDIRS): Make current dir fist.
 +	* lang/python/tests/Makefile.am (xcheck): Depend on pubring-stamp.
 +	(CLEANFILES): Remove private-keys-v1.d/gpg-sample.stamp.
 +	(check-local): Remove.
 +	(initial.py): Remove dependency.
 +	(./pubring-stamp): Depend on conf files and the
 +	private-keys-v1.d/gpg-sample.stamp file.  Also replace use of
 +	basename.
 +
 +	tests: Use --batch for gpg import.
 +	* lang/python/tests/Makefile.am (./pubring-stamp): Use --batch with
 +	GPG to avoid Pinentries during import when using GnuPG >= 2.1.
 +	Replace touch by echo.
 +	* tests/gpg/Makefile.am (./pubring-stamp): Ditto.
 +
 +	tests: Improve portability.
 +	* lang/qt/tests/Makefile.am (clean-local): Avoid non-portable "--"
 +	* lang/python/Makefile.am (copystamp): Use well defined cp -R instead
 +	of cp -r.
 +
 +	build: Create swdb file.
 +	* Makefile.am (distcheck-hook): New.
 +	(dist-hook): s/VERSION/PACKAGE_VERSION/ for future compatibility.
 +
 +2016-09-20  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix detection of Python available versions.
 +	* configure.ac: Test for 'PYTHON_VERSION' as 'AX_PYTHON_DEVEL' sets
 +	'PYTHON' but clears the former.
 +
 +	Fixes-commit: 99db3512
 +
 +2016-09-19  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	core: Remove moc artifact.
 +	* src/moc_kdpipeiodevice.cpp: Removed.
 +	* src/Makefile.am (EXTRA_DIST): Remove moc_kdpipeiodevice.cpp.
 +
 +	qt: Improve README.
 +	* lang/qt/README: Add more content. Clearly note license difference.
 +
 +	cpp: Improve README.
 +	* lang/cpp/README: Add more content, move license to bottom.
 +
 +	qt: Add debug output for testTofuPolicy.
 +	* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): Add
 +	debug output.
 +
 +2016-09-19  Ben Kibbey  <bjk at luxsci.net>
 +
 +	core: Check for GPG_TTY as well as DISPLAY.
 +	* src/engine-assuan.c (llass_new): Update --ttyname from GPG_TTY.
 +	* src/engine-g13.c (g13_new): Ditto.
 +	* src/engine-gpg.c (gpg_new): Ditto.
 +	* src/engine-uiserver.c (uiserver_new): Ditto.
 +	* src/engine-gpgsm.c (gpgsm_new): Ditto.
 +
 +2016-09-16  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Add test for setting tofu policy.
 +	* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): New.
 +
 +	qt: Add job for tofupolicy.
 +	* lang/qt/src/job.cpp, lang/qt/src/protocol.h,
 +	lang/qt/src/protocol_p.h: Register job.
 +	* lang/qt/src/qgpgmetofupolicyjob.cpp,
 +	lang/qt/src/qgpgmetofupolicyjob.h,
 +	lang/qt/src/tofupolicyjob.h: New.
 +	* lang/qt/src/Makefile.am: Update accordingly.
 +
 +	cpp: Add support for gpgme_op_tofu_policy.
 +	* src/context.cpp, src/context.h (setTofuPolicy, setTofuPolicyStart):
 +	New.
 +
 +	cpp: Declare sizes of tofu-info enums.
 +	* lang/cpp/src/tofuinfo.h (Policy, Validity): Declare sizes.
 +
 +2016-09-16  Werner Koch  <wk at gnupg.org>
 +
 +	cpp: Silence use of deprecated function warning.
 +	* lang/cpp/src/context.cpp (GpgME): Use pragma to silence wardning.
 +
 +	core: Document the version a function has been deprecated.
 +	* src/gpgme.h.in (_GPGME_DEPRECATED): Change to take versio numbers
 +	for documentation.  Change all places.
 +	(_GPGME_DEPRECATED_OUTSIDE_GPGME): Ditto.
 +	* lang/python/gpgme-h-clean.py: Adjust RE.
 +
 +	core: Map GPGME_STATUS_EOF to the empty string.
 +	* src/status-table.c (_gpgme_status_to_string): Return "" for EOF.
 +	* src/engine-gpg.c (read_status): Ditto.  The old code accidently used
 +	GPGME_STATUS_EOF which is the integer 0 and neiteyr NULL nor a string.
 +
 +2016-09-16  Justus Winter  <justus at g10code.com>
 +	    Kai Michaelis  <kai at gnupg.org>
 +
 +	python: Release the GIL during calls into GPGME.
 +	* lang/python/helpers.c (pyme_raise_callback_exception): Re-acquire
 +	the Global Interpreter Lock.
 +	(pyPassphraseCb, pyme_set_passphrase_cb, pyProgressCb,
 +	pyme_set_progress_cb, pyStatusCb, pyme_set_status_cb,
 +	_pyme_interact_cb, pyDataReadCb, pyDataWriteCb, pyDataSeekCb,
 +	pyDataReleaseCb, pyme_data_new_from_cbs, _pyme_assuan_data_cb,
 +	_pyme_assuan_inquire_cb, _pyme_assuan_status_cb): Likewise.
 +	* lang/python/setup.py.in: Make 'gpgme-config' emit the correct
 +	cflags, and SWIG generate code to release the GIL before calling us.
 +
 +2016-09-16  Justus Winter  <justus at g10code.com>
 +
 +	python: Adapt to 'gpgme_op_interact'.
 +	* lang/python/examples/inter-edit.py: Update example.
 +	* lang/python/gpgme.i (gpgme_edit_cb_t): Turn into
 +	'gpgme_interact_cb_t'.
 +	* lang/python/helpers.c (_pyme_edit_cb): Turn into
 +	'_pyme_interact_cb_t'.
 +	* lang/python/private.h (_pyme_edit_cb): Likewise.
 +	* lang/python/pyme/constants/__init__.py: Replace numeric status codes
 +	with the keywords.
 +	* lang/python/pyme/constants/status.py: Likewise.
 +	* lang/python/pyme/core.py (Context.interact): New method.
 +	(Context.op_edit): Deprecate, update docstring, implement using
 +	Context.interact.
 +	* lang/python/tests/t-edit.py: Test both interfaces.
 +
 +2016-09-16  Werner Koch  <wk at gnupg.org>
 +
 +	core: Remove stub to try implementing gpg < 2.1 support for createkey.
 +	* src/engine-gpg.c (gpg_createkey_legacy): Remove.
 +	(gpg_genkey): Remove call.
 +
 +	core: Fix setting og the verification result.
 +	* src/verify.c (parse_new_sig): Proberly handle the RC in an ERRSIG
 +	status.
 +
 +2016-09-15  Werner Koch  <wk at gnupg.org>
 +
 +	core: New function gpgme_op_interact, deprecate gpgme_op_edit.
 +	* src/gpgme.h.in (gpgme_interact_cb_t): New.
 +	(GPGME_INTERACT_CARD): New.
 +	(gpgme_op_interact_start, gpgme_op_interact): New.
 +	* src/libgpgme.vers, src/gpgme.def: Add new functions.
 +	* src/edit.c (op_data_t): Rename fnc to fnc_old and change users.  Add
 +	fnc.
 +	(edit_status_handler): Call old or new callback.
 +	(command_handler): Ditto.
 +	(interact_start): New.
 +	(gpgme_op_interact_start, gpgme_op_interact_start): New.
 +	* src/status-table.c (_gpgme_status_to_string): New.
 +
 +	* tests/gpg/t-edit.c (edit_fnc): Rename to interact_fnc and change
 +	type of STATUS.  Use gpgme_io_writen.
 +	(main): s/gpgme_op_edit/gpgme_op_interact/.
 +
 +	core: Minor change of the gpgme_op_edit semantics.
 +	* src/edit.c (command_handler): Handle special error code.
 +	* src/engine-gpg.c (read_status): Ditto.
 +	* src/engine-gpgsm.c (status_handler): Ditto.
 +	* src/engine-uiserver.c (status_handler): Ditto.
 +	* src/util.h (GPG_ERR_FALSE): Define for older libgpg-error versions.
 +
 +2016-09-14  Werner Koch  <wk at gnupg.org>
 +
 +	core: New function gpgme_op_tofu_policy.
 +	* src/gpgme.h.in (gpgme_op_tofu_policy_start): New function.
 +	(gpgme_op_tofu_policy): New function.
 +	* src/libgpgme.vers, src/gpgme.def: Add new functions.
 +	* src/tofupolicy.c: New.
 +	* src/Makefile.am (main_sources): Add that file.
 +	* src/context.h (ctx_op_data_id_t): Add OPDATA_TOFU_POLICY.
 +	* src/engine.c (_gpgme_engine_op_tofu_policy): New.
 +	* src/engine-backend.h (engine_ops): Add funcptr 'tofu_policy'.
 +	Adjust all engine initializations.
 +	* src/engine-gpg.c (gpg_tofu_policy): New.
 +	(_gpgme_engine_ops_gpg): Register this function.
 +
 +	* tests/run-tofu.c: New.
 +	* tests/Makefile.am (noinst_PROGRAMS): Add it.
 +
 +	core: Defer implementation of gpgme_op_createkey with gpg < 2.1.
 +	* src/engine-gpg.c (gpg_createkey_legacy): Mark unused variables.
 +
 +	core: New function gpgme_op_keysign.
 +	* src/gpgme.h.in (gpgme_op_keysign_start, gpgme_op_keysign): New.
 +	(GPGME_KEYSIGN_LOCAL): New.
 +	(GPGME_KEYSIGN_LFSEP): New.
 +	(GPGME_KEYSIGN_NOEXPIRE): New.
 +	* src/context.h (ctx_op_data_id_t): Add OPDATA_KEYSIGN.
 +	* src/keysign.c: New.
 +	* src/Makefile.am (main_sources): Add keysig.
 +	* src/libgpgme.vers, src/gpgme.def: Add gpgme_op_keysign_start.
 +	* src/engine.c (_gpgme_engine_op_keysign): New.
 +	* src/engine-backend.h (engine_ops): Add 'keysign' and adjust all
 +	engine initializers.
 +	* src/engine-gpg.c (_add_arg): Add args PREFIX and ARGLEN and change
 +	callers to set them.
 +	(add_arg_pfx): New.
 +	(add_arg_len): New.
 +	(gpg_keysign): New.
 +	(_gpgme_engine_ops_gpg): Set keysign to gpg_keysign.
 +	* tests/run-keysign.c: New.
 +	* tests/Makefile.am (noinst_PROGRAMS): Add run-keysign.
 +
 +2016-09-14  Justus Winter  <justus at g10code.com>
 +
 +	python: Clarify that we support Python 2.7 too.
 +	* lang/python/README: Use 'Python' instead of 'Python 3'.
 +	* lang/python/pyme/version.py.in: Likewise.
 +	* lang/python/setup.py.in: Add classifier for 2.7, drop 3 only.
 +
 +	python: Trim imports.
 +	* lang/python/examples/encrypt-to-all.py: Drop unused import of 'os'.
 +	* lang/python/examples/signverify.py: Likewise.
 +	* lang/python/examples/simple.py: Likewise.
 +	* lang/python/examples/verifydetails.py: Likewise.
 +
 +	python: Improve error handling.
 +	* lang/python/gpgme.i (gpgme_engine_info_t): Improve error handling.
 +
 +	python: Adapt to TOFU changes.
 +	* lang/python/pyme/results.py (TofuInfo): Drop.
 +	(Signature): The TOFU information moved to the key.
 +
 +	python: Improve build system integration.
 +	* configure.ac: Try to compile a Python module for each version.
 +	* m4/m4_ax_swig_python.m4: Drop unused file.
 +
 +2016-09-14  Werner Koch  <wk at gnupg.org>
 +
 +	core: New function gpgme_op_revuid.
 +	* src/engine.h (GENKEY_EXTRAFLAG_REVOKE): New.
 +	* src/genkey.c (adduid_start): Rename to addrevuid_start.  Add arg
 +	REVOKE and pass it as extraflags.  Remove useless ARMOR extraflag.
 +	Adjust callers.
 +	(gpgme_op_revuid_start, gpgme_op_revuid): New.
 +	* src/gpgme.def, src/libgpgme.vers: Add them.
 +
 +	* tests/run-genkey.c: Add option --revuid.
 +
 +	core: Change a parameter for the engine's genkey function.
 +	* src/engine.h (GENKEY_EXTRAFLAG_ARMOR): New.
 +	* src/engine-backend.h (engine_ops): Rename USE_ARMOR in genkey to
 +	EXTRAFLAGS.
 +	* src/engine.c (_gpgme_engine_op_genkey): Ditto.
 +	* src/engine-gpg.c (gpg_createkey_from_param): Ditto and test the
 +	flags.
 +	(gpg_createkey_legacy): Ditto.
 +	(gpg_createkey): Ditto.
 +	(gpg_addkey): Ditto.
 +	(gpg_genkey): Ditto.
 +
 +2016-09-14  Justus Winter  <justus at g10code.com>
 +
 +	python: Build for both Python2 and Python3.
 +	* NEWS: Update.
 +	* configure.ac: Check for multiple Python versions.
 +	* lang/python/Makefile.am: Build and install for both Python versions.
 +	* lang/python/tests/Makefile.am: Test both versions.
 +	* lang/python/tests/run-tests.py: New test runner.
 +
 +2016-09-14  Werner Koch  <wk at gnupg.org>
 +
 +	core: New function gpgme_op_adduid.
 +	* src/genkey.c: Replace most error codes GPG_ERR_INV_VALUE by
 +	GPG_ERR_INV_ARG.
 +	(struct op_data_t): Add field UIDMODE.
 +	(genkey_status_handler): Use UIDMODE.
 +	(adduid_start): New.
 +	(gpgme_op_adduid_start, gpgme_op_adduid): New.
 +	* src/gpgme.def, src/libgpgme.vers: Add them.
 +	* tests/run-genkey.c: Add option --adduid.
 +
 +	core: New function gpgme_op_createsubkey.
 +	* src/genkey.c (createsubkey_start): New.
 +	(gpgme_op_createsubkey_start, gpgme_op_createsubkey): New.
 +	* src/gpgme.def, src/libgpgme.vers: Add them.
 +	* src/engine-gpg.c (gpg_createkey): Factor some code out to ...
 +	(gpg_add_algo_usage_expire): new.
 +	(gpg_addkey): Implement.
 +	* tests/run-genkey.c: Add option --addkey.
 +
 +2016-09-13  Werner Koch  <wk at gnupg.org>
 +
 +	core: Use const char * where appropriate.
 +
 +	core: Cast away the common const problem with spawn and argv.
 +	* src/dirinfo.c (read_gpgconf_dirs): Use a cast to assignd to ARGV.
 +
 +	core: Fix condition-always-true warning in trace macro.
 +	* src/data-compat.c (old_user_read): Cast AMT.
 +
 +	core: Mark unused function args.
 +
 +	tests: Mark lots of unused vars and fix const mismatches.
 +
 +	tests: Use gpgme_io_write in passhrase callbacks.
 +	* tests/gpg/t-support.h (passphrase_cb): Use gpgme_io_write.
 +	* tests/gpgsm/t-support.h (passphrase_cb): Ditto.
 +	* tests/run-support.h (passphrase_cb): Ditto.
 +
 +	core: Do not pass const char* to functions taking a char*.
 +
 +	build: Use more compiler warnings.
 +	* configure.ac: Add useful compiler warnings.
 +
 +	core: New function gpgme_op_create_key.
 +	* src/engine-backend.h (engine_ops): Change prototype of genkey.
 +	* src/engine-gpgsm.c (gpgsm_genkey): Change accordingly.
 +	* src/engine-gpg.c (gpg_genkey): Change it to a dispatcher.
 +	(gpg_createkey_from_param): New for the old functionality.
 +	(gpg_createkey_legacy): New.  Stub for now.
 +	(gpg_createkey): New.
 +	(gpg_addkey): New.  Stub for now.
 +	(gpg_adduid): New.  Stub for now.
 +	* src/engine.c (_gpgme_engine_op_genkey): Add new args.
 +	* src/genkey.c (op_data_t): Add field ERROR_CODE.
 +	(parse_error): New.
 +	(genkey_status_handler): Parse ERROR status line.
 +	(genkey_start): Use NULL/0 for the new args.
 +	(createkey_start): New.
 +	(gpgme_op_createkey_start, gpgme_op_createkey): New.
 +	* src/gpgme.def, src/libgpgme.vers: Add gpgme_op_createkey_start and
 +	gpgme_op_createkey.
 +	* src/gpgme.h.in (_gpgme_op_genkey_result): Add fields PUBKEY and
 +	SECKEY.
 +	(GPGME_CREATE_SIGN): New.
 +	(GPGME_CREATE_ENCR): New.
 +	(GPGME_CREATE_CERT): New.
 +	(GPGME_CREATE_AUTH): New.
 +	(GPGME_CREATE_NOPASSWD): New.
 +	(GPGME_CREATE_SELFSIGNED): New.
 +	(GPGME_CREATE_NOSTORE): New.
 +	(GPGME_CREATE_WANTPUB): New.
 +	(GPGME_CREATE_WANTSEC): New.
 +	(GPGME_CREATE_FORCE): New.
 +
 +	* tests/run-genkey.c: New.
 +	* tests/Makefile.am (noinst_PROGRAMS): Add it.
 +
 +2016-09-13  Justus Winter  <justus at g10code.com>
 +
 +	python: Handle slight differences between Python 2 and 3.
 +	* lang/python/helpers.c (pyDataWriteCb): Handle Python integers being
 +	returned on Python 2.
 +	(pyDataSeekCb): Likewise.
 +	* lang/python/pyme/core.py (Data.__init__): Fix testing for string
 +	argument.
 +	(Data.new_from_filepart): Likewise.
 +	* lang/python/pyme/util.py (is_a_string): New function.
 +	* lang/python/tests/t-encrypt-large.py (read_cb): Force evaluation of
 +	generator.
 +	* lang/python/tests/t-idiomatic.py: Partly skip test on Python 2.
 +	* lang/python/tests/t-verify.py (check_result): Here, the difference
 +	between 2 and 3 really matters.  We cannot change the char *
 +	conversion in Python 2 without breaking all existing applications, and
 +	using bytestrings in Python 3 would be very inconvenient.
 +
 +	python: Fix types and error handling.
 +	* lang/python/helpers.c (_pyme_edit_cb): Drop the const.
 +	(_pyme_assuan_{data,inquire,status}_cb): Fix error handling.
 +
 +2016-09-12  Justus Winter  <justus at g10code.com>
 +
 +	python: Avoid Python3-only form of super().
 +	* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Use more
 +	compatible form of super.
 +	(GpgmeWrapper.__setattr__): Likewise.
 +	(Context.__init__): Likewise.
 +	(Data.__init__): Likewise.
 +
 +	python: Make type translation compatible with Python 2.7.
 +	* lang/python/gpgme.i: Avoid functions not available in Python 2.7.
 +	* lang/python/helpers.c: Likewise.
 +
 +	python: Avoid hardcoding the interpreter.
 +	* lang/python/setup.py.in: Avoid hardcoding the interpreter.
 +
 +	python: Do not rely on subprocess.DEVNULL.
 +	* lang/python/setup.py.in: Do not rely on subprocess.DEVNULL.
 +
 +	tests: Fix version comparison.
 +	* tests/gpg/t-sig-notation.c: Fix version comparison.
 +
 +	Fixes-commit: a0263ad2
 +
 +	tests: Make signature notation test compatible with older GnuPGs.
 +	* lang/python/tests/t-sig-notation.py: Only check the critical flag
 +	when GnuPG >= 2.1.13 is used.
 +	* tests/gpg/t-sig-notation.c: Likewise.
 +
 +	Fixes-commit: c88c9ef3
 +
 +2016-09-12  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Fix some includes.
 +	* lang/qt/src/qgpgmekeyformailboxjob.cpp: Explicitly include
 +	QStringList.
 +	* lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp: Move
 +	includes into impl. Explicitly include QDir.
 +
 +2016-09-12  Justus Winter  <justus at g10code.com>
 +
 +	qt: Fix tofu test.
 +	* lang/qt/tests/t-tofuinfo.cpp: Adjust member names.
 +
 +	Fixes-commit: 120b1478
 +
 +2016-09-07  Werner Koch  <wk at gnupg.org>
 +
 +	core,cpp: Extend the TOFU information.
 +	* src/gpgme.h.in (struct _gpeme_tofu_info): Rename FIRSTSEEN to
 +	SIGNFIRST and LASTSEEN to SIGNLAST.  Add ENCRFIST and ENCRLAST.
 +	* src/keylist.c (parse_tfs_record): Parse to ENCRFIRST and ENCRLAST.
 +	* src/verify.c (parse_tofu_stats): Ditto.
 +	* tests/run-keylist.c (main): Adjust and print encrypt stats.
 +	* tests/run-verify.c (print_result): Ditto.
 +
 +	* lang/cpp/src/tofuinfo.h (TofuInfo): Rename firstSeen to signFirst
 +	and lastSeen to signLast.  Add encrCount, encrFirst and encrLast.
 +	* lang/cpp/src/tofuinfo.cpp (encrCount, encrFirst, encrLast): New.
 +
 +2016-09-06  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	tests: Set passphrase cb in t-encrypt-mixed.
 +	* tests/gpg/t-encrypt-mixed.c (main): Set passphrase cb.
 +
 +	core: Check for gpg version for loopback mode.
 +	* src/engine-gpg.c (build_argv): Check for version 2.1.0
 +	before adding pinentry-mode.
 +
 +	core: Fix passphrase cb for mixed sym encrypt.
 +	* src/encrypt.c (encrypt_start): Handle SYMMETRIC flag.
 +	* src/encrypt-sign.c (encrypt_sign_start): Ditto.
 +
 +2016-09-05  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Clarify comment and strings in tofuinfo test.
 +	* lang/qt/tests/t-tofuinfo.cpp (testTofuSignCount)
 +	(testTofuKeyList): Ensure distinct messages. Clarify comment.
 +
 +	qt: Enable signcount checks in tofuinfo test.
 +	* lang/qt/tests/t-tofuinfo.cpp: Enable checks for signcount.
 +
 +	cpp: Add convenience update function to a key.
 +	* lang/cpp/src/key.cpp (Key::update): New.
 +	* lang/cpp/src/key.h: Update accordingly.
 +
 +	cpp: Add ostream operators for key and uid.
 +	* lang/cpp/src/key.cpp (Key, UserID): Add ostream operator.
 +	* lang/cpp/src/key.h: Update accordingly.
 +
 +	qt: Add missing header redirection.
 +	* lang/qt/src/keyformailboxjob.h,
 +	lang/qt/src/qgpgmekeyformailboxjob.h: Fix includes.
 +
 +	qt: Include cpp before core directory.
 +	* lang/qt/src/Makefile.am (AM_CPPFLAGS): Include cpp before core.
 +
 +2016-08-25  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Fix 2.1 t-support copy.
 +	* lang/qt/src/t-support.cpp (copyKeyring): Fix seckey copy.
 +
 +	qt: Fix and extend TofuInfo test.
 +	* lang/qt/tests/t-tofuinfo.cpp: Delete executed jobs.
 +	(testTofuKeyList): New.
 +	(testSupported): Activate for 2.1.16
 +	(signAndVerify): Disable sigcount tests.
 +
 +	qt: Fix keyring copy in tests.
 +	* lang/qt/test/t-encrypt.cpp,
 +	lang/qt/test/t-tofuinfo.cpp: Assert on copy failure.
 +	* lang/qt/test/t-support.cpp (copyKeyrings): Fix path.
 +
 +	qt: Add generic flag support for keylistjobs.
 +	* lang/qt/src/keylistjob.h (addMode): New.
 +	* lang/qt/src/qgpgmekeylistjob.h (addMode): New.
 +	* lang/qt/src/qgpgmekeylistjob.cpp (addMode: New.
 +
 +	qt: Ensure that current src dir is included first.
 +	* lang/qt/src/Makefile.am: Reorder include directives.
 +
 +	cpp: Add WithTofu Keylist Mode.
 +	* lang/cpp/src/context.cpp: Handle WithTofu.
 +	* lang/cpp/src/global.h (KeyListMode): Add WithTofu.
 +	* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Handle WithTofu.
 +
 +	qt: Fix tofuinfo test when gpg is gpg2.
 +	* lang/qt/tests/t-support.cpp (QGpgMETest::copyKeyrings): New helper.
 +	* lang/qt/tests/t-support.h: Declare.
 +	* lang/qt/tests/t-encrypt.cpp: use it
 +	* lang/qt/tests/t-tofuinbo.cpp: ditto.
 +
 +	qt: Remove unused variable in test.
 +	* t-wkspublish.cpp (testWKSPublishCreate): Remove context.
 +
 +	qt: Add test for wkspublishjob.
 +	* lang/qt/tests/t-wkspublish.cpp: New.
 +	* lang/qt/tests/Makefile.am: Update accordingly.
 +
 +	qt: Add WKSPublishJob.
 +	* lang/qt/src/Makefile.am: Add new files.
 +	* lang/qt/src/job.cpp: Include moc / subclass stub.
 +	* lang/qt/src/protocol.h: Add virtual for new job.
 +	* lang/qt/src/protocol_p.h: Add job.
 +	* lang/qt/src/wkspublishjob.h: Interface for WKSPublishJob.
 +	* lang/qt/src/qgpgmewkspublishjob.cpp,
 +	lang/qt/src/qgpgmewkspublishjob.h: New.
 +
 +	Cpp: Change firstSeen / lastSeen return values.
 +	* lang/cpp/src/tofuinfo.cpp,
 +	lang/cpp/src/tofuinfo.h (TofuInfo::firstSeen, TofuInfo::lastSeen):
 +	Change return values to unsigned long and update doc.
 +
 +	Cpp: Add wrapper for gpgme_get_dirinfo.
 +	* lang/cpp/src/context.cpp (dirInfo): New.
 +	* lang/cpp/src/global.h (dirInfo): New.
 +
 +	Cpp: Add support for spawn engine.
 +	* lang/cpp/src/context.cpp (Context::spawn, Context::spawnAsync): New.
 +	* lang/cpp/src/context.h: Add prototypes.
 +	(SpawnFlags): New.
 +	* lang/cpp/src/global.h (SpawnEngine): Added.
 +
 +2016-08-25  Werner Koch  <wk at gnupg.org>
 +
 +	core: Add GPGME_KEYLIST_MODE_WITH_TOFU.
 +	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_TOFU): New.
 +	* src/engine-gpg.c (gpg_keylist_build_options): Use that.
 +	* src/keylist.c: Include limits.h.
 +	(parse_tfs_record): New.
 +	(keylist_colon_handler): Support TFS record.
 +	* tests/run-keylist.c: Include time.h.
 +	(isotimestr): New.
 +	(main): Add option --tofu.  Print TOFU info.
 +	* tests/run-verify.c: Include time.h.
 +	(isotimestr): New.
 +	(print_result): Use isotimestr for TOFU dates.
 +
 +2016-08-24  Werner Koch  <wk at gnupg.org>
 +
 +	core: Adjust for TOFU_STATS change in gnupg 2.1.16.
 +	* src/gpgme.h.in (_gpgme_tofu_info): Change 'firstseen' and 'lastseen'
 +	to a timestamp value.
 +	* src/verify.c (parse_tofu_stats): Do not cap these values at UINT_MAX.
 +
 +	core: Set the 'encrcount' field in gpgme_tofu_info_t.
 +	* src/verify.c (parse_tofu_stats): Set ENCRCOUNT field.
 +
 +	cpp: Get rid of AssuanResult due to its deprecation.
 +	* lang/cpp/src/assuanresult.cpp: Remove.
 +	* lang/cpp/src/assuanresult.h: Remove.
 +	* lang/cpp/src/Makefile.am: Remove these files.
 +	* lang/cpp/src/context.cpp: Remove header assuanresult.h
 +	(assuanTransact): Change return type to Error.  Use
 +	gpgme_op_assuan_transact_ext.
 +	(startAssuanTransaction): Change return type to Error.
 +	(assuanResult): Remove
 +	* lang/cpp/src/context.h (assuanResult): Adjust for changes.
 +
 +2016-08-24  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Adapt (disabled) tofuinfo test to new API.
 +	* lang/qt/tests/t-tofuinfo.cpp: Switch to UID based API.
 +
 +	Cpp: Add Key to signature.
 +	* lang/cpp/src/verificationresult.cpp,
 +	lang/cpp/src/verificationresult.h (Signature::key): New.
 +
 +	Cpp: Use fpr field for primaryFingerprint.
 +	* lang/cpp/src/key.cpp (Key::primaryFingerprint): Return
 +	fpr value if available.
 +
 +2016-08-23  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Move tofuinfo from signature to userid.
 +	* lang/cpp/src/key.cpp (UserID::tofuInfo): New.
 +	* lang/cpp/src/key.h: Update accordingly.
 +	* lang/cpp/src/tofuinfo.cpp: Remove dropped fields.
 +	* lang/cpp/src/tofuinfo.h: Update accordingly.
 +	* lang/cpp/src/verificationresult.cpp,
 +	lang/cpp/src/verificationresult.h: Remove tofu info.
 +	* lang/qt/tests/t-tofuinfo.cpp: Disable for now.
 +
 +2016-08-23  Werner Koch  <wk at gnupg.org>
 +
 +	core: Put the protocol into a TOFU created key object.
 +	* src/verify.c (parse_tofu_user): Add arg 'protocol' and store it in
 +	the KEY.
 +	(_gpgme_verify_status_handler): Pass protocol.
 +
 +	core: Change the way TOFU information are represented.
 +	* src/gpgme.h.in (struct _gpgme_signature): Remove field 'tofu'.  Add
 +	field 'key'.
 +	(struct _gpgme_key): Add field 'fpr'.
 +	(struct _gpgme_user_id): Add field 'tofu'.
 +	(struct _gpgme_tofu_info): Remove fields 'address' and 'fpr'.
 +	* src/key.c (gpgme_key_unref): Release TOFU and FPR.
 +	* src/keylist.c (keylist_colon_handler): Store the fingerprint of the
 +	first subkey also in KEY.
 +	* src/verify.c (release_tofu_info): Remove.
 +	(release_op_data): Release KEY.
 +	(parse_tofu_user): Rewrite for new data structure.
 +	(parse_tofu_stats): Ditto.
 +	(parse_tofu_stats_long): Ditto.
 +	* tests/run-verify.c (print_result): Ditto.
 +	* tests/run-keylist.c (main): Print more fields.
 +
 +	core: Extend gpgme_user_id_t with 'address'.
 +	* src/mbox-util.c, src/mbox-util.h: Adjust for use in gpgme.
 +	* src/Makefile.am (main_sources): Add mbox-util.
 +	* src/key.c (_gpgme_key_append_name): Set 'address' field of uid.
 +	(gpgme_key_unref): Free it.
 +
 +2016-08-22  Werner Koch  <wk at gnupg.org>
 +
 +	core: New code for parsing mail addresses.
 +	* src/mbox-util.c: New.
 +	* src/mbox-util.h: New.
 +
 +	core: Add new items for gpgme_get_dirinfo.
 +	* src/dirinfo.c (WANT_SYSCONFDIR, WANT_LIBEXECDIR, WANT_LIBDIR): New.
 +	(WANT_DATADIR, WANT_LCOALEDIR, WANT_AGENT_SSH_SOCKET): New
 +	(WANT_DIRMNGR_SOCKET): New.
 +	(dirinfo): Add fields 'sysconfdir', 'bindir', 'libexecdir', 'libdir',
 +	'datadir', 'localedir', 'agent_ssh_socket', and 'dirmngr_socket'.
 +	(parse_output): Set these fields.
 +	(get_gpgconf_item): Return them.
 +	(gpgme_get_dirinfo): Likewise.
 +
 +	core: Base gpgme_get_dirinfo(uiserver-socket) on the socket dir.
 +	* src/dirinfo.c (dirname_len): New.
 +	(parse_output): Change computation of UISRV_SOCKET.
 +
 +2016-08-21  Werner Koch  <wk at gnupg.org>
 +
 +	core: New commands --lang and --have-lang for gpgme-config.
 +	* configure.ac (GPGME_CONFIG_AVAIL_LANG): New ac_subst.
 +	* src/gpgme-config.in (avail_lang): Add commands --lang and
 +	--have-lang.
 +
 +2016-08-18  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	core: Remove (now) useless diagnostic.
 +	* src/w32-io.c(_gpgme_io_spawn): Remove spawnhelper not found
 +	diagnostic.
 +
 +	core: Fail loudly in case w32 spawner not found.
 +	* src/w32-io.c (_gpgme_io_spawn): Show a message box in
 +	case gpgme-w32spawn.exe not found.
 +
 +2016-08-17  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Fix some pedantic warnings.
 +	* lang/cpp/src/context.cpp,
 +	lang/cpp/src/context.h (Context::getKeysFromRecipients): Remove
 +	ignored / invalid const qualifier.
 +	* lang/cpp/src/result.h: Don't shadow error function in ctor.
 +
 +2016-08-16  Werner Koch  <wk at gnupg.org>
 +
 +	core: New global flag "require-gnupg".
 +	* src/gpgme.c (gpgme_set_global_flag): Add flag.
 +	* src/engine.c (engine_minimal_version): New variable.
 +	(_gpgme_set_engine_minimal_version): New function.
 +	(gpgme_get_engine_info): Check that flag.
 +
 +	* tests/run-keylist.c (main): New option --require-gnupg.
 +
 +	core: Simplify setting of dummy versions.
 +	* src/engine.c (_gpgme_engine_info_release): Do not assert but free
 +	FILE_NAME.
 +	(gpgme_get_engine_info): Provide default for VERSION and REQ_VERSION.
 +	Use calloc instead of malloc.
 +	(_gpgme_set_engine_info): Ditto.
 +	* src/engine-assuan.c (llass_get_version): Return NULL.
 +	(llass_get_req_version): Ditto.
 +	* src/engine-spawn.c (engspawn_get_version): Ditto.
 +	(engspawn_get_req_version): Ditto.
 +	* src/engine-uiserver.c (uiserver_get_version): Ditto.
 +	(uiserver_get_req_version): Ditto.
 +
 +2016-08-12  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add test for progress signal of encryptjob.
 +	* lang/qt/tests/t-encrypt.cpp (testProgress): New.
 +
 +	Cpp: Provide size-hint for seekable and mem data.
 +	* lang/cpp/src/data.cpp (GpgME::Data::Data): Set size-hint for
 +	mem and DataProvider based Data.
 +
 +2016-08-12  Werner Koch  <wk at gnupg.org>
 +
 +	core: Make use of the "size-hint" in engine-gpg.
 +	* src/engine-gpg.c: Include data.h.
 +	(add_input_size_hint): New.
 +	(gpg_decrypt, gpg_encrypt, gpg_encrypt_sign, gpg_sign)
 +	(gpg_verify): Call new function,
 +
 +	* tests/run-encrypt.c (status_cb): Print to stderr.
 +	(progress_cb): New.o
 +	(main): Add option --progress.  Print full-status lines.  Provide a
 +	size for the input data.
 +
 +	core: Add gpgme_data_set_flag to add more meta data to data objects.
 +	* src/gpgme.h.in (gpgme_data_set_flag): New public function.
 +	* src/data.c (gpgme_data_set_flag): New.
 +	(_gpgme_data_get_size_hint): New.
 +	* src/data.h (strucy gpgme_data): Add field 'size_hint'.
 +	* src/gpgme.def, src/libgpgme.vers: Add new function.
 +	* src/conversion.c (_gpgme_string_to_off): New.
 +
 +2016-08-12  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Fix defaultkeygenerationjob build.
 +	* lang/qt/src/defaultkeygenerationjob.cpp: Include moc.
 +
 +2016-08-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add DefaultKeyGenerationJob.
 +	* lang/qt/src/defaultkeygenerationjob.cpp,
 +	lang/qt/src/defaultkeygenerationjob.h: New.
 +	* lang/qt/src/Makefile.am: Update accordingly.
 +
 +	Qt: Ensure all public classes are exported.
 +	* src/abstractimportjob.h,
 +	src/cryptoconfig.h,
 +	src/deletejob.h,
 +	src/exportjob.h,
 +	src/importfromkeyserverjob.h,
 +	src/importjob.h,
 +	src/keygenerationjob.h,
 +	src/keylistjob.h,
 +	src/listallkeysjob.h,
 +	src/refreshkeysjob.h,
 +	src/signencryptjob.h,
 +	src/specialjob.h,
 +	src/verifydetachedjob.h: Export classes.
 +
 +	Qt: Add KeyForMailboxJob.
 +	* lang/qt/src/job.cpp: Include moc and make subclass.
 +	* lang/qt/src/keyformailboxjob.h,
 +	lang/qt/src/qgpgmekeyformailboxjob.cpp,
 +	lang/qt/src/qgpgmekeyformailboxjob.h: New.
 +	* lang/qt/tests/run-keyformailboxjob.cpp: New manual test.
 +	* lang/qt/tests/Makefile.am: Add run-keyformailboxjob.
 +	* lang/qt/src/Makefile.am: Update accordingly.
 +	* lang/qt/src/protocol.h, lang/qt/src/protocol_p.h: Add
 +	keyformailboxjob.
 +
 +2016-08-10  Werner Koch  <wk at gnupg.org>
 +
 +	doc: Get rid of version.texi.
 +	* configure.ac (CC_FOR_BUILD): New.
 +	* doc/mkdefsinc.c: New.  Taken from GnuPG and modified for gpgme.
 +	* doc/Makefile.am (EXTRA_DIST): Add defsincdate and mkdefsinc.c
 +	(BUILT_SOURCES): new.
 +	(gpgme.texi): New dependency.
 +	(mkdefsinc, defsincdate, defs.inc): New rules.
 +	(dist-hook): New.
 +	* doc/gpgme.texi: Include defs.inc.  Remove version.texi.
 +
 +	build: Declare all languages for make dist.
 +	* lang/Makefile.am (DIST_SUBDIRS): New.
 +
 +	core: Do not identify PNG files as PGP signatures.
 +	* src/data-identify.c (next_openpgp_packet): Blacklist PNG files.
 +
 +2016-08-10  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Handle empty recipients consistently.
 +	* lang/cpp/src/context.cpp (Context::getKeysFromRecipients):
 +	New helper.
 +	(Context::encrypt, Context::startEncryption, Context::signAndEncrypt)
 +	(Context::startCombinedSigningAndEncryption): Use new helper.
 +	* lang/cpp/src/context.h (Context::getKeysFromRecipients): Add
 +	as private helper.
 +
 +	core: Handle ENCRYPT_SYMMETRIC also for sig & enc.
 +	* src/engine-gpg.c (gpg_encrypt_sign): Handle ENCRYPT_SYMMETRIC
 +	flag.
 +
 +	Qt: Remove unused variable.
 +	* lang/qt/src/qgpgmerefreshkeysjob.cpp (slotStatus): Remove
 +	unused variable typ.
 +
 +	Qt: Create TestPassphraseProvider on stack.
 +	* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp: Create
 +	TestPassphraseProvider on stack.
 +
 +	Cpp: Clarify ownership of provider classes.
 +	* lang/cpp/src/context.h: Note that the context does not take
 +	ownership of providers.
 +
 +2016-08-10  Justus Winter  <justus at g10code.com>
 +
 +	tests: Fix memory leak.
 +	* tests/gpg/t-encrypt-mixed.c (main): Free 'text2'.
 +
 +2016-08-10  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	core: Ensure err is initalized in gpg_encrypt.
 +	* src/engine-gpg.c (gpg_encrypt): Initialize err.
 +
 +	Qt: Fix t-keylist moc include.
 +	* lang/qt/tests/t-keylist.cpp: Don't include t-support.moc
 +
 +2016-08-09  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Clean up debug output in tests.
 +	* lang/qt/tests/t-support.cpp: Remove accidentally commited
 +	debug output.
 +
 +	Qt: Add encryption test and refactor testsuite.
 +	* lang/qt/tests/Makefile.am: Add t-encrypt and t-support.
 +	* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.c (QGpgMETest):
 +	New. Class to handle common cleanup / init.
 +	* lang/qt/tests/t-keylist.cpp,
 +	lang/qt/tests/t-keylocate.cpp,
 +	lang/qt/tests/t-ownertrust.cpp,
 +	lang/qt/tests/t-tofuinfo.cpp: Inherit QGpgMETest.
 +	* lang/qt/tests/t-encrypt.cpp: New. Test Symetric and Asymectric
 +	encryption. Mixed encryption test is disabled.
 +
 +	Qt: Add support for EncryptJobs with generic flags.
 +	* lang/qt/src/encryptjob.h, lang/qt/src/signencryptjob.h,
 +	lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeencryptjob.cpp,
 +	lang/qt/src/qgpgmesignencryptjob.cpp,
 +	lang/qt/src/qgpgmeencryptjob.cpp: Add start and exec overloads
 +	that accept generic EncryptFlags.
 +
 +	Cpp: Add support for all EncryptionFlags.
 +	* lang/cpp/src/context.h (EncryptionFlags): Extend.
 +	* lang/cpp/src/context.cpp (encryptflags2encryptflags): Ditto.
 +
 +	Cpp: Fix simple symmetric encryption.
 +	* lang/cpp/src/context.cpp (Context::encrypt): If no recipients
 +	are provided encrypt with NULL and not an empty array.
 +
 +	core: Add support for mixed symmetric and asym enc.
 +	* src/gpgme.h.in (gpgme_encrypt_flags_t): New flag
 +	GPGME_ENCRYPT_SYMMETRIC.
 +	* src/engine-gpg.c (gpg_encrypt): Also add --symmetric if the flag
 +	is given.
 +	* NEWS: Mention new flag.
 +	* tests/run-encrypt.c (show_usage): Extend for --symmetric.
 +	(main): Handle --symmetric.
 +	(main): Set passphrase_cb in loopback mode.
 +	(main): Fix encrypt call if no recipients are given.
 +	* tests/gpg/t-encrypt-mixed.c: New.
 +	* tests/gpg/Makefile.am (c_tests): Add new test.
 +	* doc/gpgme.texi: Document new flag.
 +
 +2016-08-08  Werner Koch  <wk at gnupg.org>
 +
 +	core: Let GPGME_PROTOCOL_ASSUAN pass Assuan comments through.
 +	* src/engine-assuan.c (llass_new): Set ASSUAN_CONVEY_COMMENTS,
 +
 +2016-08-08  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Prepend LD_LIBRARY_PATH for python tests.
 +	* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Prepend path
 +	instead of setting the value.
 +
 +2016-08-05  Justus Winter  <justus at g10code.com>
 +
 +	python: Clean up and modernize examples.
 +	* lang/python/examples/Examples.rst: Delete file.
 +	* lang/python/examples/t-edit.py: Likewise.  This is actually a test
 +	case and has been moved to 'tests'.
 +	* lang/python/examples/assuan.py: New file.
 +	* lang/python/examples/decryption-filter.py: Likewise.
 +	* lang/python/examples/delkey.py: Modernize.
 +	* lang/python/examples/encrypt-to-all.py: Likewise.
 +	* lang/python/examples/exportimport.py: Likewise.
 +	* lang/python/examples/genkey.py: Likewise.
 +	* lang/python/examples/inter-edit.py: Likewise.
 +	* lang/python/examples/sign.py: Likewise.
 +	* lang/python/examples/signverify.py: Likewise.
 +	* lang/python/examples/simple.py: Likewise.
 +	* lang/python/examples/testCMSgetkey.py: Likewise.
 +	* lang/python/examples/verifydetails.py: Likewise.
 +
 +2016-08-04  Werner Koch  <wk at gnupg.org>
 +
 +	core: Extend gpgme_subkey_t to carry the keygrip.
 +	* src/gpgme.h.in (struct _gpgme_subkey): Add file 'keygrip'.
 +	* src/key.c (gpgme_key_unref): Free KEYGRIP.
 +	* src/keylist.c (keylist_colon_handler): Parse GRP records.
 +	* src/engine-gpg.c (gpg_keylist_build_options): Do not use
 +	--with-fingerprint options for gpg versions >= 2.1.15.
 +
 +	* tests/run-keylist.c (main): Print subkeys and keygrips.
 +
 +2016-08-03  Justus Winter  <justus at g10code.com>
 +
 +	python: Add a nicer interface to list keys.
 +	* lang/python/pyme/core.py (Context.keylist): New method.
 +	* lang/python/tests/t-keylist.py: Test new method.
 +
 +2016-08-02  Justus Winter  <justus at g10code.com>
 +
 +	python: Add a flag identifying in-tree builds.
 +	* lang/python/helpers.c (pyme_in_tree_build): New variable.
 +	* lang/python/helpers.h (pyme_in_tree_build): New declaration.
 +	* lang/python/pyme/version.py.in (in_tree_build): New variable.
 +	* lang/python/setup.py.in: Rework macro handling, set 'IN_TREE_BUILD'
 +	as appropriate.
 +
 +	python: Fix build system integration.
 +	* lang/python/Makefile.am: Be more careful when cleaning the build
 +	directory, we must not delete the generated file 'pyme/version.py'.
 +
 +	doc: Document the Assuan protocol.
 +	* doc/gpgme.texi: Document the Assuan protocol.
 +
 +	GnuPG-bug-id: 2407
 +
 +2016-07-28  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix out-of-tree build.
 +	* lang/python/MANIFEST.in: Add 'private.h'.
 +
 +	Fixes-commit: 3d4dc3f0
 +
 +	python: Improve error handling.
 +	* lang/python/pyme/core.py (Context.protocol): Check that the engine
 +	is usable before setting the protocol.
 +	(Context._errorcheck): Add missing functions.
 +
 +	src: Fix dummy engine versions.
 +	Previously, 'gpgme_engine_check_version' failed for these protocols
 +	because the version parser failed to parse the dummy versions.
 +
 +	* src/engine-assuan.c (llass_get_version): Use a version triple that
 +	the parser can understand.
 +	(llass_get_req_version): Likewise.
 +	* src/engine-spawn.c (engspawn_get_version): Likewise.
 +	(engspawn_get_req_version): Likewise.
 +	* src/engine-uiserver.c (uiserver_get_version): Likewise.
 +	(uiserver_get_req_version): Likewise.
 +
 +	python: Drop superfluous imports and trim public interface.
 +	* lang/python/pyme/__init__.py: Avoid leaking low-level 'gpgme', make
 +	sure the main module looks nice and tidy, appease pyflakes.
 +	* lang/python/pyme/errors.py: Appease pyflakes.
 +	* lang/python/pyme/util.py: Avoid leaking low-level 'gpgme' into the
 +	module namespace.
 +	* lang/python/pyme/version.py.in: Likewise.
 +	* lang/python/tests/t-keylist.py: Drop superfluous imports.
 +	* lang/python/tests/t-sig-notation.py: Likewise.
 +	* lang/python/tests/t-sign.py: Likewise.
 +	* lang/python/tests/t-signers.py: Likewise.
 +
 +	python: Rename compiled SWIG module.
 +	Avoid the name pygpgme, as this is the name of another popular Python
 +	binding for GPGME.
 +
 +	This commit renames the compiled Python module produced by SWIG.
 +
 +	* lang/python/Makefile.am: Rename the compiled Python module.
 +	* lang/python/gpgme.i: Likewise.
 +	* lang/python/pyme/core.py: Likewise.
 +	* lang/python/pyme/errors.py: Likewise.
 +	* lang/python/pyme/util.py: Likewise.
 +	* lang/python/pyme/version.py.in: Likewise.
 +	* lang/python/setup.py.in: Likewise.
 +
 +	python: Rename exported functions.
 +	Avoid the name pygpgme, as this is the name of another popular Python
 +	binding for GPGME.
 +
 +	This commit renames all functions that are exported to the Python
 +	world.
 +
 +	* lang/python/helpers.c: Rename all exported functions.
 +	* lang/python/helpers.h: Likewise.
 +	* lang/python/pyme/core.py: Likewise.
 +
 +	python: Rename private functions.
 +	Avoid the name pygpgme, as this is the name of another popular Python
 +	binding for GPGME.
 +
 +	This commit renames all functions that are not exported to the Python
 +	world.
 +
 +	* lang/python/gpgme.i: Rename all private functions.
 +	* lang/python/helpers.c: Likewise.
 +	* lang/python/helpers.h: Likewise.
 +	* lang/python/private.h: Likewise.  Also move the SWIG runtime helper
 +	prototypes here.
 +
 +	python: Support the Assuan engine.
 +	* lang/python/gpgme.i: Add typemaps for the Assuan protocol callbacks.
 +	* lang/python/helpers.c (_pyme_assuan_{data,inquire,status}_cb): New
 +	functions.
 +	* lang/python/private.h (_pyme_assuan_{data,inquire,status}_cb): New
 +	prototypes.
 +	* lang/python/pyme/core.py (Context.assuan_transact): New method.
 +	* lang/python/pyme/util.py (percent_escape): New function.
 +	* lang/python/tests/Makefile.am (py_tests): Add new test.
 +	* lang/python/tests/t-protocol-assuan.py: New file.
 +
 +	python: Improve engine information handling.
 +	* lang/python/gpgme.i (gpgme_engine_info_t): Wrap engine infos.
 +	* lang/python/pyme/core.py (Context.engine_info): New property.
 +	(Context.{g,s}et_engine_info): Improve docstrings.
 +	* lang/python/pyme/results.py (EngineInfo): New class.
 +
 +	python: Add accessors for the protocol.
 +	* lang/python/pyme/core.py (Context.__init__): Add 'protocol'
 +	parameter.
 +	(Context.protocol): New accessors.
 +
 +	python: Expose less functions to the Python world.
 +	* lang/python/Makefile.am (EXTRA_DIST, COPY_FILES): Add new file.
 +	* lang/python/gpgme.i: Include new file and add comments.
 +	* lang/python/helpers.c: Include new file.
 +	* lang/python/helpers.h: Move functions we do not need to expose...
 +	* lang/python/private.h: ... here.
 +
 +2016-07-19  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Fix including nil bytes in keylist output.
 +	* src/gpgme-tool.c (cmd_keylist,gt_result): use strlen().
 +
 +2016-07-15  Justus Winter  <justus at g10code.com>
 +
 +	python: Make GPGME's version easily accessible.
 +	* lang/python/pyme/version.py.in (gpgme_versionstr): New variable.
 +
 +	python: Add an idiomatic interface.
 +	* configure.ac: Bump required Python version.
 +	* lang/python/pyme/__init__.py: Update docstring.  Import Context and
 +	Data.
 +	* lang/python/pyme/core.py (Context.encrypt): New function.
 +	(Context.decrypt): Likewise.
 +	(Context.sign): Likewise.
 +	(Context.verify): Likewise.
 +	* lang/python/pyme/errors.py: Add new errors.
 +	* lang/python/pyme/util.py (process_constants): Rework and return the
 +	inserted keys.
 +	* lang/python/tests/Makefile.am (EXTRA_DIST): Add new keys.
 +	* lang/python/tests/encrypt-only.asc: New file.
 +	* lang/python/tests/sign-only.asc: Likewise.
 +	* lang/python/tests/initial.py: Mark key 'Alpha' as trusted, import
 +	new keys.
 +	* lang/python/tests/support.py: Add fingerprints of known keys.
 +	(in_srcdir): New function.
 +	(print_data): Handle bytes too.
 +	(mark_key_trusted): New function.
 +	* lang/python/tests/t-decrypt-verify.py: Adjust test.  Test idiomatic
 +	interface.
 +	* lang/python/tests/t-decrypt.py: Test idiomatic interface.
 +	* lang/python/tests/t-encrypt-sign.py: Likewise.
 +	* lang/python/tests/t-encrypt-sym.py: Likewise.
 +	* lang/python/tests/t-encrypt.py: Likewise.
 +	* lang/python/tests/t-idiomatic.py: Simplify.
 +	* lang/python/tests/t-keylist.py: Adjust to newly trusted key.
 +	* lang/python/tests/t-sign.py: Likewise.  Test idiomatic interface.
 +	* lang/python/tests/t-signers.py: Likewise.
 +	* lang/python/tests/t-verify.py: Likewise.
 +
 +2016-07-14  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Disable keylocate test for gnupg < 2.0.10.
 +	* lang/qt/tests/t-keylocate.cpp: Disable test for gnupg < 2.0.10
 +
 +	Cpp: Add EngineInfo::Version class.
 +	* lang/cpp/src/engineinfo.cpp (EngineInfo::engineVersion): New.
 +	* lang/cpp/src/engineinfo.h (EngineInfo::engineVersion): Declare.
 +	(EngineInfo::Version): Small helper to work with versions.
 +
 +	Qt: Fix usage of ignore-invalid-option in tests.
 +	* Makefile.am (pubring-stamp): Fix config.
 +
 +	Qt: Fix tests if gpg2 is gpg.
 +	* lang/qt/tests/Makefile.am (pubring-stamp): Loopback and provide
 +	passphrase on command line when importing.
 +
 +2016-07-14  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix test.
 +	* lang/python/tests/t-keylist.py: Do not assume key alpha is trusted
 +	yet.
 +
 +2016-07-13  Werner Koch  <wk at gnupg.org>
 +
 +	build: Update config.{guess,sub} to {2016-05-15,2016-06-20}.
 +	* build-aux/config.guess: Update.
 +	* build-aux/config.sub: Update.
 +
 +	core: New GPGME_DATA_ENCODING_MIME.
 +	* src/gpgme.h.in (GPGME_DATA_ENCODING_MIME): New.
 +	* src/data.c (gpgme_data_set_encoding): Adjust check.
 +	* src/engine-gpg.c (have_gpg_version): New.
 +	(gpg_encrypt, gpg_encrypt_sign): Pass flag '--mimemode'.
 +	(gpg_sign): Ditto.
 +
 +	* lang/cpp/src/data.h (GpgME): Add MimeEncoding.
 +	* lang/cpp/src/data.cpp (encoding, setEncoding): Support MimeEncoding.
 +
 +	* src/gpgme-tool.c (server_data_encoding): Add flag --mime.
 +
 +	core: Pass the engine's version string to the engine's new function.
 +	* src/engine-backend.h (engine_ops): Add arg 'version' to NEW.
 +	* src/engine-assuan.c (llass_new): Add dummy arg 'version'.
 +	* src/engine-g13.c (g13_new): Ditto.
 +	* src/engine-gpgconf.c (gpgconf_new): Ditto.
 +	* src/engine-gpgsm.c (gpgsm_new): Ditto.
 +	* src/engine-spawn.c (engspawn_new): Ditto.
 +	* src/engine-uiserver.c (uiserver_new): Ditto.
 +	* src/engine.c (_gpgme_engine_new): Pass version string to the new
 +	function.
 +	* src/engine-gpg.c (struct engine_gpg): Add field 'version'.
 +	(gpg_new): Add arg 'version'.
 +	(gpg_release): Free VERSION.
 +
 +2016-07-13  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Add feature enum for new identify.
 +	* lang/cpp/src/context.cpp (supported_features2): Add
 +	BinaryAndFineGrainedIdentify
 +	* lang/cpp/src/global.h (Feature2): ditto.
 +
 +2016-07-12  Justus Winter  <justus at g10code.com>
 +
 +	python: Port more tests.
 +	* lang/python/pyme/core.py (Context.op_keylist_all): Add missing
 +	'op_keylist_end'.
 +	(Context.op_trustlist_all): Fix function. Add missing
 +	'op_trustlist_end'.
 +	* lang/python/tests/Makefile.am (pytests): Add new files.
 +	* lang/python/tests/t-import.py: New file.
 +	* lang/python/tests/t-keylist.py: Likewise.
 +	* lang/python/tests/t-trustlist.py: Check alternate interface.
 +
 +	python: Improve python packaging.
 +	* lang/python/Makefile.am: Sign source releases, and upload them.
 +	* lang/python/setup.py.in: Add categories.
 +
 +2016-07-12  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	m4: Don't set fpic for qt on windows.
 +	* m4/qt.m4 (FIND_QT): Do not set fpic for windows.
 +
 +	m4: Use LIBS instead of LDFLAGS for Qt libs.
 +	* m4/qt.m4: Modify LIBS instead of LDFLAGS for link test.
 +
 +	Bump version to 1.7.0.
 +	* configure.ac(mym4_version_minor),
 +	(mym4_version_micro): Next release will be 1.7.0
 +
 +	Qt: Install CamelCase forward includes.
 +	* lang/qt/src/Makefile.am (camelcase_headers): New. Create and install
 +	CamelCase headers.
 +
 +	Qt: Export VerifyDetachedJob.
 +	* lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Export it.
 +
 +	Qt/Cpp: Add version headers.
 +	* lang/cpp/src/gpgmepp_version.h.in,
 +	lang/qt/src/qgpgme_version.h.in: New. Version information.
 +	* lang/qt/src/Makefile.am, lang/cpp/src/Makefile.am: Add them.
 +	* configure.ac: Configure them.
 +
 +	Qt/Cpp: Add license blurb to export headers.
 +	* lang/cpp/src/gpgmepp_export.h,
 +	lang/qt/src/qgpgme_export.h: Add license blurb.
 +
 +2016-07-11  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix distcheck.
 +	* lang/python/Makefile.am (EXTRA_DIST): Add missing files.
 +
 +2016-07-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	m4: Add compile / link check for qt.
 +	* m4/qt.m4 (FIND_QT): Check if a qt application can be compiled and
 +	linked.
 +
 +2016-07-11  Justus Winter  <justus at g10code.com>
 +
 +	python: Enable out-of-tree build of pyme bindings.
 +	* lang/python/MANIFEST.in: Update manifest template.
 +	* lang/python/Makefile.am: Copy more files, move generation of files
 +	to Python build script, add 'sdist' target to build a Python source
 +	distribution.
 +	* lang/python/gpgme-h-clean.py: Add code to build 'errors.i'.
 +	* lang/python/setup.py.in: Generate files, enable out-of-tree builds.
 +
 +	python: Do not depend on access to internal data structures.
 +	* lang/python/gpgme.i (gpgme_data_t): Rework so that it works without
 +	access to the definition of 'struct gpgme_data'.
 +	* lang/python/helpers.c (object_to_gpgme_data_t): Add assertion.
 +
 +	python: Make result wrapping backwards compatible.
 +	* lang/python/pyme/results.py (Result.__init__): Skip missing fields.
 +
 +2016-07-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Fix memleaks in tests.
 +	* lang/qt/tests/t-keylist.cpp(cleanupTestCase): Ensure that
 +	posted events are handled for autodeletion.
 +	(testSingleKeylistSync): delete job.
 +	* lang/qt/tests/t-ownertrust.cpp(cleanupTestCase): Ditto
 +	* lang/qt/tests/t-ownertrust.cpp(testChangeOwnerTrust): Delete
 +	keylistjobs.
 +	* lang/qt/tests/t-keylocate.cpp(cleanupTestCase): Ditto
 +
 +	Qt: Add some general Protocol documentation.
 +	* lang/qt/src/protocol.h (Protocol): Add doc.
 +
 +	Qt: Disable t-tofuinfo tests.
 +	* lang/qt/tests/t-tofuinfo.cpp: Disable tests.
 +
 +2016-07-08  Justus Winter  <justus at g10code.com>
 +
 +	src: Fix error handling.
 +	* src/encrypt.c (encrypt_status_handler): Fix error handling, ||
 +	conflates errors.
 +
 +	python: Fix raising stashed exceptions.
 +	Fixes an issue with newer versions of Python.
 +
 +	* lang/python/helpers.c (pygpgme_raise_callback_exception): Be more
 +	careful when restoring the exception.
 +
 +2016-07-07  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix distcheck.
 +	* lang/python/INSTALL: Drop obsolete file.
 +	* lang/python/Makefile.am (EXTRA_DIST): Add missing files.
 +	(CLEANFILES): Remove generated files.
 +	(clean-local): Fix permissions of copied files.
 +	* lang/python/tests/Makefile.am (TESTS): Use our own setup and
 +	teardown scripts.
 +	(EXTRA_DIST): Add missing files.
 +	* lang/python/tests/final.py: New file.
 +	* lang/python/tests/initial.py: Likewise.
 +
 +	qt: Fix distcheck.
 +	* lang/qt/src/Makefile.am (qgpgme_headers): Add missing file.
 +	(CLEANFILES): Add generated file.
 +	* lang/qt/tests/Makefile.am (clean-local): Remove private keys.
 +
 +	cpp: Fix distcheck.
 +	* lang/cpp/src/Makefile.am (CLEANFILES): Remove generated file.
 +
 +2016-07-06  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add test for publicKeyAlgorithmAsString.
 +	* lang/qt/tests/t-keylist.cpp (testPubkeyAlgoAsString): New.
 +
 +	Cpp: Expose gpgme_pubkey_algo_name.
 +	* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithmAsString): New
 +	static variant.
 +	* lang/cpp/src/key.h: Declare function. Clarify comment about name
 +	mismatch.
 +
 +	Qt: Add check for pubkeyAlgo in t-keylist.
 +	* lang/qt/tests/t-keylist.cpp (testSingleKeyListSync): Check
 +	pubkeyAlgo.
 +
 +	Cpp: Add PubkeyAlgo enum.
 +	* lang/cpp/src/key.h (Subkey::PubkeyAlgo): New enum.
 +	(Subkey::publicKeyAlgorithm): Change return type.
 +	* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithm): Use enum.
 +
 +	Qt: Fix include order when buildin test.
 +	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include cpp before
 +	gpgme src directory.
 +
 +	Revert "Qt: More robust lookup of Cpp's context.h"
 +	* lang/qt/src/threadedjobmixin.h: Revert using full path
 +	for context.h
 +
 +2016-07-05  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Fix test build with Qt < 5.4.0.
 +	* lang/qt/tests/t-keylist.cpp,
 +	lang/qt/tests/t-keylocate.cpp,
 +	lang/qt/tests/t-ownertrust.cpp: Use old style SIGNAl syntax for
 +	QSignalSpy
 +
 +	Qt: More robust lookup of Cpp's context.h.
 +	* lang/qt/src/threadedjobmixin.h: When building qgpgme look for
 +	context.h in the full cpp subdirectory.
 +
 +	w32: Fallback to 2.1 reg key for gpgconf search.
 +	* src/w32-util.c (_gpgme_get_gpgconf_path): Fallback to 2.1 installer
 +	 registry key.
 +
 +2016-07-04  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Doc: Document pinentry mode.
 +	* doc/gpgme.texi (Passphrase Callback): Document as context
 +	attribute.
 +	(gpgme_set_passphrase_cb): Note that this requires LOOPBACK mode
 +	with GnuPG 2.1.
 +
 +	Qt: Add testTofuSignCount.
 +	* src/lang/qt/tests/t-tofuinfo.cpp(testTofuSignCount): New.
 +	(initTestCase): Set gpg-agent loopback pinentry config.
 +	(signAndVerify): Helper for tofuTestSignCount.
 +
 +	Qt: Add test passphrase provider.
 +	* lang/qt/tests/t-support.h (TestPassphraseProvider): New.
 +	* lang/qt/tests/Makefile.am (t_tofuinfo_SOURCES): Add t-support.h
 +
 +	Cpp: Add support for TOFU_CONFLICT sigsum.
 +	* lang/cpp/src/verificationresult.cpp (GpgME::Signature::Summary):
 +	Handle TOFU_CONFLICT.
 +	* lang/cpp/src/verificationresult.h (Summary): Add TofuConflict.
 +
 +	Cpp: Add support for pinentry_mode.
 +	* lang/cpp/src/context.cpp (Context::pinentryMode): Return mode.
 +	(Context::setPinentryMode): Set mode.
 +	* lang/cpp/src/context.h (PinentryMode): Add enum.
 +
 +2016-07-01  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add test for TofuInfo.
 +	* lang/qt/tests/t-tofuinfo.cpp: New.
 +	* lang/qt/tests/Makefile.am: Update accordingly.
 +
 +	Cpp: Add TofuInfo to signatures.
 +	* lang/cpp/src/tofuinfo.cpp, lang/cpp/src/tofuinfo.h: New class.
 +	* lang/cpp/src/verificationresult.cpp (Signature::tofuInfo): New.
 +	(VerificationResult::Private): Handle tofu info.
 +	(GpgME::operator<<(std::ostream &os, const Signature &sig)): Include
 +	TofuInfo in dump.
 +	* lang/cpp/src/verificationresult.h (Signature::tofuInfo): New.
 +	* lang/cpp/src/Makefile.am (main_sources, gpgmepp_headers): Add
 +	new files.
 +	* configure.ac (LIBGPGMEPP_LT_REVISION): Bump for new API.
 +
 +	core: Clarify documentation of tofu_stats address.
 +	* src/gpgme.h.in: Mention that Address is not always in addr-spec.
 +
 +	core: Fix identify for armored detached sigs.
 +	* src/data-identify.c (basic_detection): Return signature for
 +	signature.
 +
 +2016-06-27  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Expose new data_identify values.
 +	* lang/cpp/src/data.cpp (GpgME::Data::type): Handle PGP Encrypted
 +	 and Signature.
 +	* lang/cpp/src/data.h: Add values accordingly.
 +
 +	Cpp: Do not treat KEYEXPIRED as error.
 +	* lang/cpp/src/editinteractor.cpp (status_to_error): No error
 +	for KEYEXPIRED.
 +
 +2016-06-24  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	tests: Add new test tool run-decrypt.
 +	* tests/run-decrypt.c: New.
 +	* tests/Makefile.am (noinst_PROGRAMS): Add run-decrypt.
 +
 +2016-06-23  Werner Koch  <wk at gnupg.org>
 +
 +	core: Add closer inspection of "PGP MESSAGE".
 +	* src/data-identify.c (inspect_pgp_message): New.
 +	(basic_detection): Un-const arg DATA. Call inspect_pgp_message.
 +
 +	core: Add a base 64 decoder.
 +	* src/b64dec.c: New. Taken from gnupg.  Prefix function names with
 +	_gpgme_ and change to use standard C malloc functions.
 +	* src/util.h.h (struct b64state): New.
 +	* src/Makefile.am (main_sources): Add file.
 +
 +2016-06-22  Werner Koch  <wk at gnupg.org>
 +
 +	core: Detect compressed signed OpenPGP data.
 +	* src/data-identify.c (next_openpgp_packet): Allow partial encoding.
 +	(pgp_binary_detection): Handle compressed packets.
 +
 +2016-06-21  Werner Koch  <wk at gnupg.org>
 +
 +	tests: Add new test tool run-identify.
 +	* src/gpgme-tool.c (gt_identify): Add new strings.
 +	* tests/run-identify.c: New.
 +	* tests/Makefile.am (noinst_PROGRAMS): Add run-identify.
 +
 +	core: Enhance gpgme_data_identify to detect binary PGP messages.
 +	* src/gpgme.h.in (GPGME_DATA_TYPE_PGP_ENCRYPTED): New.
 +	(GPGME_DATA_TYPE_PGP_SIGNATURE): New.
 +	* src/data-identify.c: Add enum for OpenPGP packet types.
 +	(buf32_to_ulong): New.
 +	(next_openpgp_packet): New.  Based on the gnupg/kbx/keybox-openpgp.c
 +	implementation and relicensed to LGPL by g10 Code.
 +	(pgp_binary_detection): New.
 +	(basic_detection): Call pgp_binary_detection instead of returning
 +	unknown.
 +
 +2016-06-16  Justus Winter  <justus at g10code.com>
 +
 +	python: Improve autmatically generated docstrings.
 +	* lang/python/gpgme.i: Add comment.
 +	* lang/python/pyme/core.py (__getattr__): Rewrite automatically
 +	generated doctrings for the wrapper methods.
 +
 +	python: Make result objects more robust.
 +	Results returned by the GPGME are fragile, i.e. they are only valid
 +	until the next operation is performed in the context.
 +
 +	We cannot arbitrarily constrain the lifetime of Python objects, we
 +	therefore create deep copies of the results.
 +
 +	* lang/python/gpgme.i (gpgme_tofu_info_t): Turn these into a list.
 +	(gpgme_*_result_t): Create deep copies of these objects.
 +	* lang/python/helpers.c (pygpgme_wrap_fragile_result): New function.
 +	* lang/python/helpers.h (pygpgme_wrap_fragile_result): New prototype.
 +	* lang/python/pyme/results.py: New file.
 +
 +	python: Avoid creating SWIG proxy classes.
 +	* lang/python/Makefile.am (gpgme_wrap.c): Use '-builtin' to make SWIG
 +	generate builtin types for c types.
 +	* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Adapt slightly.
 +
 +	python: Simplify wrapping glue.
 +	* lang/python/pyme/core.py: Rename '_getctype' to '_ctype' and turn it
 +	  into a string.  Likewise rename '_getnameprepend' to '_cprefix'.
 +	* lang/python/helpers.c: Adapt accordingly.
 +
 +	python: Rework callbacks.
 +	Simplify how the lifetime of callback arguments is managed.
 +
 +	* lang/python/gpgme.i (gpgme_edit_cb_t): Check arguments.
 +	(PyObject_p_p, void_p_p): Drop rather dangerous interface.
 +	(pygpgme_unwrap_gpgme_ctx_t): New function.
 +	* lang/python/helpers.c (pygpgme_clear_generic_cb): Drop dangerous
 +	function.
 +	(pyPassphraseCb): Assert contract.
 +	(pygpgme_set_passphrase_cb): Use Python's calling convention so that
 +	we can raise exceptions.  Hand in 'self', get the wrapped object, and
 +	simply store the hook data as attribute of the wrapper object.
 +	(pyProgressCb, pygpgme_set_progress_cb): Likewise.
 +	(pygpgme_set_status_cb): Likewise.
 +	(pygpgme_data_new_from_cbs): Likewise.
 +	* lang/python/helpers.h (pygpgme_clear_generic_cb): Drop prototype.
 +	(pygpgme_set_passphrase_cb): Update prototype.
 +	(pygpgme_set_progress_cb): Likewise.
 +	(pygpgme_set_status_cb): Likewise.
 +	(pygpgme_data_new_from_cbs): Likewise.
 +	(pygpgme_unwrap_gpgme_ctx_t): New prottotype.
 +	* lang/python/pyme/core.py (Context, Data): Update callsites.
 +
 +	python: Wrap objects implementing the buffer protocol.
 +	* lang/python/Makefile.am: Add the toplevel source directory to CFLAGS
 +	when compiling the bindings so that we can use private header files.
 +	* lang/python/gpgme.i (gpgme_data_t): Rework the object wrapping.  Do
 +	not create a Python wrapper object, merely a gpgme_data_t object, and
 +	keep references to buffer objects, if any.  If necessary, update the
 +	buffer after the function call.
 +	(pygpgme_wrap_gpgme_data_t): New function.
 +	* lang/python/helpers.c (object_to_gpgme_data_t): Rework object
 +	wrapping.  Also wrap objects implementing the buffer protocol.
 +	* lang/python/helpers.h (object_to_gpgme_data_t): Update prototype.
 +	(pygpgme_wrap_gpgme_data_t): New prototype.
 +	* lang/python/tests/t-idiomatic.py: Demonstrate this.
 +
 +	python: Add properties to wrapped object.
 +	* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Saner
 +	representation.
 +	(GpgmeWrapper.__str__): Construct a nicer human readable string.
 +	(GpgmeWrapper._boolean_properties): New field.
 +	(GpgmeWrapper.__wrap_boolean_property): New function.
 +	(GpgmeWrapper.__getattr__): Wrap functions using properties.
 +	(GpgmeWrapper.__setattr__): New method.  Likewise wrap functions.
 +	(Context.signers): New property.
 +	(Context.pinentry_mode): Likewise.
 +	(Context._boolean_properties): List boolean properties.
 +	(Context.__init__): Add keyword arguments for properties and apply
 +	them.
 +
 +	python: Improve the documentation.
 +	* lang/python/Makefile.am: Copy the README file.
 +	* lang/python/README: Rename, convert to org, and update.
 +	* lang/python/pyme/__init__.py: Move license out of the docstring,
 +	update docstring.
 +	* lang/python/pyme/core.py: Add and update docstrings.
 +
 +	python: Get version information from the build system.
 +	* configure.ac: Generate 'setup.py' and 'version.py'.
 +	* lang/python/Makefile.am: Use generated setup script.
 +	* lang/python/pyme/version.py: Turn it into a template, and get
 +	version information from the build system.  Also drop some variables.
 +	* lang/python/setup.py: Likewise.  This way we can avoid importing the
 +	version module, which is frowned upon and actually caused a problem.
 +
 +	python: Fix exception leak.
 +	* lang/python/helpers.c (pygpgme_stash_callback_exception): Fix leak.
 +
 +	python: Fix license.
 +	Other parts of the build system are also LGPLed.
 +
 +	* lang/python/Makefile.am: Fix license.
 +
 +2016-06-14  Werner Koch  <wk at gnupg.org>
 +
 +	core: Make sure FD_SET is not used with an out of range fd.
 +	* src/posix-io.c (_gpgme_io_select): Check for FD out of range.
 +
 +2016-06-08  Justus Winter  <justus at g10code.com>
 +
 +	python: Improve error handling.
 +	* lang/python/helpers.c (pyPassphraseCb): Handle write errors.
 +	(pyEditCb): Likewise.
 +
 +	python: Add function to raise exceptions from c.
 +	* lang/python/helpers.c (pygpgme_raise_exception): New function.
 +
 +	python: Fix stripping deprecated functionality.
 +	* lang/python/Makefile.am (gpgme.h): Add script as input.
 +	* lang/python/gpgme-h-clean.py (deprec_func): Also match struct
 +	members.
 +	(line_break): Fix matching on struct members.
 +
 +	python: Fix type.
 +	* lang/python/gpgme.i: Use correct Python type for size.
 +
 +	python: Implement the context manager protocol.
 +	* lang/python/pyme/core.py (Context.__del__): Make function
 +	idemptotent.
 +	(Context.{__enter__,__exit__}): Implement the context manager
 +	protocol.
 +	(Data.__del__): Make function idemptotent, drop debug print.
 +	(Data.{__enter__,__exit__}): Implement the context manager
 +	protocol.
 +	* lang/python/tests/t-idiomatic.py: Demonstrate this.
 +
 +2016-06-07  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix error handling.
 +	* lang/python/gpgme.i: Fix freeing an uninitialized pointer in the
 +	error handling of generated wrapper functions by explicitly storing
 +	the pointer in a local variable which can be initialized.
 +
 +2016-06-06  Justus Winter  <justus at g10code.com>
 +
 +	python: Wrap file-like objects on demand.
 +	* lang/python/gpgme.i (gpgme_data_t): Use new function to create
 +	wrapper objects if necessary, and deallocate them after the function
 +	call.
 +	* lang/python/helpers.c (object_to_gpgme_data_t): New function.
 +	* lang/python/helpers.h (object_to_gpgme_data_t): New prototype.
 +	* lang/python/tests/Makefile.am (pytests): Add new test.
 +	* lang/python/tests/t-idiomatic.py: New file.
 +
 +	python: Move helper function.
 +	* lang/python/gpgme.i (object_to_gpgme_t): Move...
 +	* lang/python/helpers.c: ... here.
 +	* lang/python/helpers.h (object_to_gpgme_t): New prototype.
 +
 +	python: Fix error handling.
 +	* lang/python/gpgme.i (object_to_gpgme_t): Properly propagate
 +	exceptions.
 +
 +	python: Initialize GPGME for the user.
 +	* lang/python/pyme/core.py: Call 'check_version' and explain why.
 +	* lang/python/tests/support.py (init_gpgme): Drop call here.
 +
 +2016-06-01  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix test suite with GnuPG prior to 2.1.12.
 +	* lang/python/tests/Makefile.am (gpg-agent.conf): Use
 +	'allow-loopback-pinentry'.
 +
 +	python: Make Python detection more robust.
 +	Previously, missing Python development packages made configure fail
 +	instead of merely disabling the bindings.
 +
 +	* configure.ac: Check for 'PYTHON_VERSION'.
 +	* m4/ax_python_devel.m4: Make test non-fatal.
 +
 +	python: Improve build system integration, fix warnings.
 +	* lang/python/Makefile.am: Pass CFLAGS to python build system.
 +	* lang/python/helpers.c (pyPassphraseCb): Use correct type for length.
 +	(pygpgme_data_new_from_cbs): Drop unused variable.
 +
 +2016-06-01  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Use whitelist for status messages.
 +	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 +	Use whitelist instead of blacklist.
 +
 +	Qt: Fix debug output in t-ownertrust.
 +	* lang/qt/tests/t-ownertrust.cpp (testChangeOwnerTrust): Remove
 +	general debug of trust level. Add debug output for error.
 +
 +2016-06-01  Justus Winter  <justus at gnupg.org>
 +
 +	tests: Fix notation tests.
 +	* lang/python/tests/t-sig-notation.py (check_result): Check critical
 +	flag.
 +	* tests/gpg/t-sig-notation.c (check_result): Likewise.
 +
 +	Fixes-commit: 1cacd7d0
 +
 +2016-06-01  Werner Koch  <wk at gnupg.org>
 +
 +	core: Set notation flags for verify.
 +	* src/gpgme.h.in (GPGME_STATUS_NOTATION_FLAGS): New.
 +	* src/status-table.c (status_table): Add new status.
 +	* src/verify.c (parse_notation): Handle flags.  Also fix NOTATION_DATA
 +	in case gpg would not percent-escape spaces.
 +	(_gpgme_verify_status_handler): Handle flags.
 +	* tests/run-verify.c (print_result): Print notaion data.
 +
 +2016-05-31  Tobias Mueller  <muelli at cryptobitch.de>
 +
 +	python: use GPG_ERROR_CONFIG variable.
 +	instead of calling gpg-error-config.
 +	This is useful when configuring with --with-gpgerror-prefix
 +	because then GPG_ERROR_CONFIG contains the correct
 +	/path/to/bin/gpg-error-config whereas calling gpg-error-config
 +	directly would look in the user's PATH (and not in the prefix
 +	where gpg-error-config was installed).
 +
 +2016-05-31  Justus Winter  <justus at gnupg.org>
 +
 +	python: Port more tests.
 +	* lang/python/gpgme.i: Hide length fields of notations.
 +	* lang/python/tests/Makefile.am (pytests): Add new tests.
 +	* lang/python/tests/t-decrypt-verify.py: New file.
 +	* lang/python/tests/t-sig-notation.py: Likewise.
 +	* lang/python/tests/t-verify.py: Likewise.
 +
 +2016-05-27  Werner Koch  <wk at gnupg.org>
 +
 +	Speedup closing of fds before exec.
 +	* src/posix-io.c [__linux__]: Include dirent.h.
 +	(get_max_fds) [__linux__]: Try to figure out the highest used fd.
 +
 +2016-05-27  Justus Winter  <justus at gnupg.org>
 +
 +	python: Port more tests.
 +	* lang/python/pyme/core.py (Data._error_check): Add
 +	'gpgme_data_get_file_name' to the list of functions not returning an
 +	error code.
 +	* lang/python/tests/Makefile.am (pytests): Add new tests.
 +	* lang/python/tests/support.py (verbose): New variable.
 +	* lang/python/tests/t-data.py: Test setting and getting the filename.
 +	* lang/python/tests/t-encrypt-large.py: New file.
 +	* lang/python/tests/t-file-name.py: Likewise.
 +	* lang/python/tests/t-trustlist.py: Likewise.
 +
 +	python: Implement data callbacks.
 +	* lang/python/gpgme.i (object_to_gpgme_t): Set exception on error.
 +	* lang/python/helpers.c (pyDataReadCb): New function.
 +	(pyDataWriteCb): Likewise.
 +	(pyDataSeekCb): Likewise.
 +	(pyDataReleaseCb): Likewise.
 +	(pygpgme_data_new_from_cbs): Likewise.
 +	* lang/python/helpers.h (pygpgme_data_new_from_cbs): New prototype.
 +	* lang/python/pyme/core.py (Data.__init__): Fix docstring, fix read
 +	callbacks.
 +	(Data.__del__): Fix read callbacks.
 +	(Data._free_readcb): Drop function.
 +	(Data._free_datacbs): New function.
 +	(Data.new_from_cbs): Fix setting the callbacks.
 +	(Data.write): Raise stashed exceptions.
 +	(Data.read): Likewise.
 +	* lang/python/tests/t-callbacks.py: Test new functionality.
 +	* lang/python/tests/t-data.py: Likewise.
 +
 +	python: Fix object deallocation.
 +	Handing a reference to the wrapper object created a non-trivial
 +	circular reference that Pythons garbage collector is unable to break.
 +	Explicitly break it by using a weak reference.
 +
 +	* lang/python/helpers.c (pygpgme_stash_callback_exception): Retrieve
 +	object from weak reference.
 +	* lang/python/pyme/core.py (Context.__del__): Free status callback.
 +	(Context.set_passphrase_cb): Use a weak reference.
 +	(Context.set_progress_cb): Likewise.
 +	(Context.set_status_cb): Likewise.
 +	(Context.op_edit): Likewise.
 +
 +	Improve comments.
 +	* src/gpgme.h.in (gpgme_data_seek_cb_t, gpgme_data_seek): Clarify that
 +	these functions return the new offset.
 +	(gpgme_data_release_cb_t): Fix name of parameter.
 +
 +	python: Fix reading data from existing files.
 +	* lang/python/pyme/core.py (Data.__init__): Add 'copy' kwargument, and
 +	pass it to functions supporting it.  PEP8 fix.
 +	(Data.new_from_fd): PEP8 fix.
 +	(Data.new_from_file): Give a more helpful error message if copy is
 +	False.  PEP8 fix.
 +	(Data.new_from_fd): Hand the file descriptor to
 +	'gpgme_data_new_from_fd', not a stream.  Fix docstring.
 +	* lang/python/tests/t-data.py: Add tests for this.
 +
 +2016-05-25  Justus Winter  <justus at gnupg.org>
 +
 +	src: Fix trace string.
 +	* src/data-compat.c (gpgme_data_new_from_file): Fix trace string.
 +
 +2016-05-24  Justus Winter  <justus at gnupg.org>
 +
 +	python: Improve and test Context.wait.
 +	* lang/python/pyme/core.py (Context.wait): Improve docstring.  As the
 +	context passed to 'gpgme_wait' is never NULL, it is pointless to look
 +	at the returned context.  Always raise exceptions.
 +	* lang/python/tests/Makefile.am (pytests): Add new test.
 +	* lang/python/tests/t-wait.py: New file.
 +
 +	python: Make all GnuPG errors available.
 +	* lang/python/Makefile.am (errors.i): Generate file.
 +	* lang/python/gpgme.i: Include generated file.
 +	* lang/python/pyme/errors.py: Pull in all errors and error sources.
 +
 +	python: Move the base wrapper class.
 +	* python/lang/pyme/util.py (GpgmeWrapper): Move...
 +	* python/lang/pyme/core.py: ... here.
 +
 +	python: Support status callbacks.
 +	* lang/python/helpers.c (pyStatusCb): New function.
 +	(pygpgme_set_status_cb): Likewise.
 +	* lang/python/helpers.h (pygpgme_set_status_cb): New prototype.
 +	* lang/python/pyme/core.py (Context.__init__): Initialize
 +	'last_statuscb'.
 +	(Context._free_statuscb): New function.
 +	(Context.set_status_cb): Likewise.
 +	* lang/python/tests/t-callbacks.py: Test status callbacks.
 +
 +	python: Improve docstring.
 +	* lang/python/pyme/core.py (Context.set_progress_cb): Improve
 +	docstring.
 +
 +2016-05-24  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Fix test build with clang.
 +	* lang/qt/tests/Makefile.am (LDADD): Explicitly add -lstdc++
 +
 +	Cpp: Set -std=c++11 also if CXXCPP is already set.
 +	* m4/ax_cxx_compile_stdxx.m4 (AX_CXX_COMPILE_STDCXX): Set CXXCPP if
 +	neccessary.
 +
 +2016-05-24  Justus Winter  <justus at gnupg.org>
 +
 +	python: Improve support for edit callbacks.
 +	* lang/python/helpers.c (pyEditCb): Stash exceptions.
 +	* lang/python/pyme/core.py (Context.op_edit): Hand in 'self'.
 +	* lang/python/tests/Makefile.am (py_tests): Add new test.
 +	* lang/python/tests/t-callbacks.py: Test edit callbacks.
 +	* lang/python/tests/t-edit.py: New file.
 +
 +2016-05-23  Justus Winter  <justus at gnupg.org>
 +
 +	python: Fix hook.
 +	* lang/python/helpers.c (pyProgressCb): Fix getting hook data.
 +	* lang/python/tests/t-callbacks.py: Show that this works.
 +
 +	python: Move edit callback function.
 +	* lang/python/gpgme.i (pyEditCb): Move...
 +	* lang/python/helpers.c: ... here.
 +	* lang/python/helpers.h (pyEditCb): New prototype.
 +
 +	python: Port more tests.
 +	* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Set
 +	LD_LIBRARY_PATH.
 +	(pytests): Add new tests.
 +	* lang/python/tests/t-callbacks.py: Trim imports.
 +	* lang/python/tests/t-encrypt-sign.py: New file.
 +	* lang/python/tests/t-export.py: Likewise.
 +	* lang/python/tests/t-signers.py: Likewise.
 +
 +	python: Translate list of strings.
 +	* lang/python/gpgme.i: Add typemap translating list of strings.
 +
 +2016-05-21  Werner Koch  <wk at gnupg.org>
 +
 +	api: Return Tofu info for signatures.
 +	* src/gpgme.h.in (gpgme_tofu_policy_t): New.
 +	(gpgme_status_code_t): Add status codes for TOFU.
 +	(struct _gpgme_tofu_info, gpgme_tofu_info_t): New.
 +	(struct _gpgme_signature): Add field 'tofu'.
 +	* src/status-table.c (status_table): Add new codes.
 +	* src/verify.c: Include limits.h.
 +	(release_tofu_info): New.
 +	(release_op_data): Call that.
 +	(parse_tofu_user): New.
 +	(parse_tofu_stats): New.
 +	(parse_tofu_stats_long): New.
 +	(_gpgme_verify_status_handler): Handle TOFU status lines.
 +
 +	* tests/run-verify.c (print_description): New.
 +	(print_result): print tofu info.
 +
 +	api: Add new context flag "raw-description".
 +	* src/context.h (struct gpgme_context): Add field raw_description.
 +	* src/gpgme.c (gpgme_set_ctx_flag): New flag.
 +
 +	core: New functions to help parsing of status lines.
 +	* src/conversion.c (_gpgme_split_fields): New.
 +	(_gpgme_strtoul_field): New.
 +
 +2016-05-20  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add test for changeownertrust.
 +	* lang/qt/tests/t-ownertrust.cpp: New test.
 +	* lang/qt/tests/Makefile.am: Add test.
 +
 +	Cpp: Ignore STATUS_KEY_CONSIDERED when editing.
 +	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 +	Handle GPGME_STATUS_KEY_CONSIDERED.
 +
 +2016-05-19  Werner Koch  <wk at gnupg.org>
 +
 +	api: Add new function gpgme_set_ctx_flag.
 +	* src/gpgme.h.in (gpgme_set_ctx_flag): New prototype.
 +	* src/gpgme.c (gpgme_set_ctx_flag): New.
 +	* src/gpgme.def, src/libgpgme.vers: Add new function.
 +	* src/context.h (struct gpgme_context): Add FULL_STATUS.
 +	* src/decrypt.c (_gpgme_decrypt_status_handler): Do not call the
 +	  status callback if FULL_STATUS is set.
 +	* src/genkey.c (genkey_status_handler): Ditto.
 +	* src/passphrase.c (_gpgme_passphrase_status_handler): Ditto.
 +	* src/sign.c (_gpgme_sign_status_handler): Ditto.
 +
 +	* src/engine-backend.h (struct engine_ops): Add SET_STATUS_CB and add
 +	adjust all definitions of that variable.
 +	* src/engine.c (_gpgme_engine_set_status_cb): New.
 +	* src/op-support.c (_gpgme_op_reset): Call this function.
 +
 +	* src/engine-gpg.c (struct engine_gpg): Add fields MON_CB and
 +	MON_CB_VALUE.
 +	(gpg_set_status_cb): New.
 +	(_gpgme_engine_ops_gpg): Register that function.
 +	(read_status): Call the monitor callback.
 +
 +	* src/engine-gpgsm.c (struct engine_gpgsm): Add fields MON_CB and
 +	MON_CB_VALUE.
 +	(_gpgme_engine_ops_gpgsm): Register that function.
 +	(gpgsm_assuan_simple_command): Change first arg to be an engine
 +	context and adjust call callers.  Call the monitor callback.
 +
 +	* src/engine-uiserver.c (struct engine_uiserver): Add fields MON_CB
 +	and MON_CB_VALUE.
 +	(_gpgme_engine_ops_uiserver): Register that function.
 +	(uiserver_assuan_simple_command): Change first arg to be an engine
 +	context and adjust call callers.  Call the monitor callback.
 +
 +	* tests/run-verify.c (status_cb): New.
 +	(print_result): Print algo names.
 +	(main): Add option --status.
 +
 +	api: Remove arbitrary restriction from gpgme_op_verify.
 +	* src/verify.c (verify_start): Do not return GPG_ERR_INV_VALUES when
 +	when SIGNED_TEXT is not given.
 +
 +2016-05-19  Justus Winter  <justus at gnupg.org>
 +
 +	python: Improve progress callbacks.
 +	* lang/python/helpers.c (pyProgressCb): Stash python errors, convert
 +	'what' to Unicode object.
 +	* lang/python/pyme/core.py (Context.set_progress_cb): Hand in 'self'.
 +	* lang/python/tests/t-callbacks.py: Test progress callbacks.
 +
 +	python: Robust exception handling in callbacks.
 +	* lang/python/helpers.c (pygpgme_stash_callback_exception): New
 +	function.
 +	(pygpgme_raise_callback_exception): Likewise.
 +	(pyPassphraseCb): Stash python errors.
 +	* lang/python/helpers.h (pygpgme_raise_callback_exception): New
 +	prototype.
 +	* lang/python/pyme/core.py ({Context,Data}.__init__): Move common
 +	initialization to superclass.
 +	(Context.set_progress_cb): Hand in 'self'.
 +	* lang/python/pyme/util.py (GpgmeWrapper.__init__): New function.
 +	(GpgmeWrapper.__getattr__): Raise stashed exceptions.
 +	* lang/python/tests/Makefile.am (py_tests): Add new test.
 +	* lang/python/tests/t-callbacks.py: New file.
 +
 +2016-05-19  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Check for graphviz and set HAVE_DOT correctly.
 +	* configure.ac: Check for graphviz and define HAVE_DOT.
 +	* lang/qt/doc/Doxyfile.in (HAVE_DOT): Use variable.
 +
 +2016-05-19  Justus Winter  <justus at gnupg.org>
 +
 +	python: Add more tests.
 +	* lang/python/tests/Makefile.am (py_tests): Add new tests.
 +	* lang/python/tests/support.py (print_data): New function.
 +	* lang/python/tests/t-decrypt.py: Use new function.
 +	* lang/python/tests/t-encrypt.py: Likewise.
 +	* lang/python/tests/t-sign.py: New file.
 +	* lang/python/tests/t-encrypt-sym.py: Likewise.
 +
 +	python: More type conversion fixes.
 +	* lang/python/helpers.c (pyPassphraseCb): Cope with 'uid_hint' being
 +	NULL, convert it to an Unicode object, and cope with the callback
 +	returning both Unicode and bytes objects.
 +
 +	python: Fix import.
 +	* lang/python/helpers.c (pygpgme_exception_init): Make module import
 +	relative.
 +
 +2016-05-19  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Fix compilation of unit tests.
 +	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Add -DBUILDING_QGPGME.
 +
 +2016-05-18  Justus Winter  <justus at gnupg.org>
 +
 +	python: Various fixes.
 +	* configure.ac: Fix SWIG detection, bump required Python version.
 +	* lang/python/Makefile.am: Portability fix.
 +
 +2016-05-18  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Fix typo in compatibility declaration.
 +	* src/op-support.c (GPG_ERR_SUBKEYS_EXP_REV): Change to
 +	GPG_ERR_SUBKEYS_EXP_OR_REV.
 +
 +2016-05-17  Werner Koch  <wk at gnupg.org>
 +
 +	tests: New maintenance helper run-encrypt.
 +	* tests/run-encrypt.c: New.
 +
 +	Return dedicated error code for all subkeys expired or revoked.
 +	* src/gpgme.h.in (GPGME_STATUS_KEY_CONSIDERED): New.
 +	(GPGME_SIGSUM_TOFU_CONFLICT): New.
 +	* src/status-table.c (KEY_CONSIDERED): New.
 +	* src/op-support.c (_gpgme_parse_inv_recp): Add argc KC_FPR and
 +	KC_FLAGS.  Use calloc.  Detect all expired or revoked subkeys.
 +	(_gpgme_parse_key_considered): New.
 +	* src/sign.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
 +	(release_op_data): Free KC_FPR.
 +	(_gpgme_sign_status_handler): Handle STATUS_KEY_CONSIDERED.
 +	* src/encrypt.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
 +	(release_op_data): Free KC_FPR.
 +	(_gpgme_encrypt_status_handler): Handle STATUS_KEY_CONSIDERED.
 +
 +2016-05-17  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt / Cpp: Port auto_ptr to unique_ptr.
 +	* lang/cpp/src/context.cpp,
 +	lang/cpp/src/context.h,
 +	lang/cpp/src/context_p.h (Context::createForEngine),
 +	(Context::edit, Context::startEditing),
 +	(Context::takeLastEditInteractor, Context::cardEdit),
 +	(Context::startCardEditing, Context::takeLastCardEditInteractor),
 +	(Context::assuanTransact, Context::startAssuanTransaction),
 +	(Context::takeLastAssuanTransaction): Port to unique_ptr.
 +	* lang/qt/src/qgpgmeadduseridjob.cpp,
 +	lang/qt/src/qgpgmechangeexpiryjob.cpp,
 +	lang/qt/src/qgpgmechangeownertrustjob.cpp,
 +	lang/qt/src/qgpgmechangepasswdjob.cpp,
 +	lang/qt/src/qgpgmesignkeyjob.cpp: Update accordingly.
 +
 +2016-05-17  Justus Winter  <justus at gnupg.org>
 +
 +	build: Add python autoconf macro.
 +	* m4/ax_python_devel.m4: New file.
 +
 +	python: Clean up examples.
 +	* lang/python/examples/delkey.py: Clean up example.
 +	* lang/python/examples/encrypt-to-all.py: Likewise.
 +	* lang/python/examples/genkey.py: Likewise.
 +	* lang/python/examples/inter-edit.py: Likewise.
 +	* lang/python/examples/sign.py: Likewise.
 +	* lang/python/examples/signverify.py: Likewise.
 +	* lang/python/examples/simple.py: Likewise.
 +	* lang/python/examples/t-edit.py: Likewise.
 +	* lang/python/examples/verifydetails.py: Likewise.
 +	* lang/python/pyme/__init__.py: Likewise.
 +
 +	python: Import GPGMEError.
 +	* pyme/core.py: Import GPGMEError.
 +
 +	Fixes c5d118b2.
 +
 +	python: Port more tests.
 +	* lang/python/Makefile.am: Add bits from the c test suite.
 +	* lang/python/support.py: New file.
 +	* lang/python/t-decrypt.py: Likewise.
 +	* lang/python/t-encrypt.py: Likewise.
 +
 +2016-05-13  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add keyLocateJob and test for it.
 +	* configure.ac (LIBQGPGME_LT_REVISION): Bump.
 +	* lang/qt/src/protocol.h (locateKeysJob): Add Job.
 +	* lang/qt/src/protocol_p.h (locateKeysJob): Implement.
 +	* lang/qt/tests/Makefile.am: Add t-keylocate.
 +	* lang/qt/tests/t-keylocate.cpp: New.
 +
 +	Qt: Add missing copyright header in test.
 +	* lang/qt/tests/t-keylist.cpp: Add copyright header.
 +
 +2016-05-12  Justus Winter  <justus at gnupg.org>
 +
 +	python: Share generated methods between objects.
 +	* lang/python/pyme/util.py (GpgmeWrapper.__getattr__): Monkey-patch
 +	the class.
 +	* lang/python/tests/t-wrapper.py: Demonstrate the sharing.
 +
 +	python: Raise exceptions on write errors.
 +	* lang/python/pyme/core.py (Data.write): Handle errors.
 +	* lang/python/pyme/errors.py (GPGMEError.fromSyserror): New function.
 +
 +	python: Fix writing to data buffers.
 +	* lang/python/gpgme.i: Add typemap for buffers.
 +	* lang/python/pyme/core.py (Data.write): Fix function.
 +	* lang/python/tests/Makefile.am: Add new test.
 +	* lang/python/tests/t-data.py: New file.
 +
 +	python: Add a test suite.
 +	* configure.ac: Add new Makefile.
 +	* lang/python/Makefile.am: Add subdirectory.
 +	* lang/python/tests/Makefile.am: New file.
 +	* lang/python/tests/t-wrapper.py: Likewise.
 +
 +	python: Cache generated wrapper functions.
 +	* lang/python/util.py (GpgmeWrap.__getattr__): Cache generated wrapper
 +	functions.
 +
 +	python: Fix function invocation.
 +	* lang/python/pyme/core.py (Data.new_from_fd): Fix function
 +	invocation.
 +
 +	python: Fix name of exception, make slot methods explicit.
 +	* lang/python/pyme/util.py (GpgmeWrapper._getctype): Fix exception,
 +	add docstring.
 +	(GpgmeWrapper._getnameprepend): New function.
 +	(GpgmeWrapper._errorcheck): Likewise.
 +
 +	python: Handle interpreter shutdown.
 +	* lang/python/pyme/core.py: Avoid races at interpreter shutdown.  This
 +	silences the most annoying occurrences, however this problem also
 +	affects the SWIG generated code, which might indicate that the real
 +	problem is somewhere else.  If so, this change can be easily reverted.
 +
 +	python: Make test case more robust.
 +	* lang/python/examples/t-edit.py: Check if key is found.
 +
 +	python: Fix type translation.
 +	* lang/python/gpgme.i: Adjust to Python3's string type being
 +	'Unicode', not 'bytes'.  Fix type checking.
 +	* lang/python/core.py (Data.write): Add docstring mentioning the
 +	expected type of parameter 'buffer'.
 +	(Data.read): Adjust read loop.  Also, use a saner chunk size, and join
 +	all chunks at the end instead of adding them.
 +	* lang/python/examples/simple.py: Adjust example.
 +
 +2016-05-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Ensure gpgme.h is taken from current build.
 +	* lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add gpgme.h location.
 +
 +2016-05-11  Justus Winter  <justus at gnupg.org>
 +
 +	python: Fix simple example.
 +	* lang/python/examples/simple.py: Flush stdout, encode name as
 +	UTF-8 before passing it to GPGME.
 +
 +	python: Integrate into the build system.
 +	* configure.ac: Make Python bindings configurable, add new Makefile.
 +	* lang/python/Makefile.am: New file.
 +	* lang/python/setup.py: Integrate into the build system.
 +	* m4/ax_pkg_swig.m4: New file from the autoconf archive.
 +	* m4/m4_ax_swig_python.m4: Likewise.
 +
 +2016-05-10  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt / Cpp: Fix make dist.
 +	* lang/cpp/src/Makefile.am (EXTRA_DIST): Fix typo.
 +	(private_gpgmepp_headers): New. Private headers.
 +	(libgpgmepp_la_SOURCES): Add private headers.
 +	* lang/qt/src/Makefile.am (t_keylist_SOURCES): Remove non existent
 +	header.
 +
 +2016-05-10  Justus Winter  <justus at gnupg.org>
 +
 +	python: PEP8 fixes.
 +	Cherry picked from 0267c151.
 +
 +2016-05-10  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Make Protocol class public API.
 +	* lang/qt/src/Makefile.am (qgpgme_headers): Add protocol.h
 +	(private_qgpgme_headers): Add protocol_p.h
 +	* lang/qt/src/protocol.h: New. From QGpgMEBackend.
 +	* lang/qt/src/protocol_p.h: New. From QGpgMEBackend.
 +	* lang/qt/src/qgpgmebackend.h,
 +	lang/qt/src/qgpgmebackend.cpp (Protocol): Removed.
 +
 +	Qt: Make doxygen quieter.
 +	* lang/qt/doc/Doxyfile.in: Quiet and no undocumented warnings.
 +
 +	Qt: Only install public headers.
 +	* lang/qt/src/Makefile.am: Do not install all headers.
 +
 +	Qt: Add test for async keylisting.
 +	* src/lang/qt/tests/t-keylist.cpp(KeyListTest::testKeyListAsync): New.
 +
 +2016-05-10  Werner Koch  <wk at gnupg.org>
 +
 +	Allow cc to detect missing cases in a switch.
 +	* src/delete.c (delete_status_handler): Remove default case from a
 +	switch so that cc can check the use of all enum values.
 +
 +2016-05-06  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Use common error message style for qt lang checks.
 +	* configure.ac: Use common error highliting for qt lang options.
 +
 +	Qt: Fix license mentioned in README.
 +	* lang/qt/README: License is GPLv2+ and not LGPL.
 +
 +	Add maybe mode for langs and default to it.
 +	* configure.ac (languages): Warn and disable langs for which
 +	requirements are not met.
 +
 +	Cpp: Handle PINENTRY_LAUNCHED status line.
 +	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 +	Add GPGME_STATUS_PINENTRY_LAUNCHED.
 +
 +2016-04-12  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Add support for pubkey_algo_name.
 +	* lang/cpp/src/key.cpp (Subkey::algoName): New.
 +	* lang/cpp/src/key.h: Declare.
 +
 +	Cpp: Add support for gpgme_data_identify.
 +	* lang/cpp/src/data.cpp (Data::type): New.
 +	* lang/cpp/src/data.h (Data::Type): New enum mapping.
 +
 +	Fix configuration without Qt language.
 +	* configure.ac: Define HAVE_DOXYGEN also if qt should not be built.
 +
 +2016-04-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt/Cpp: Bump so version to 6.
 +	* configure.ac (LIBGPGMEPP_LT_CURRENT, LIBQGPGME_LT_CURRENT): Bump.
 +
 +	Qt / Cpp: Mention coding style in READMES.
 +	* src/lang/cpp/README, src/lang/qt/README: Add hacking note.
 +
 +	Qt: Add doc generation with doxygen.
 +	* configure.ac: Look for doxygen if qt is built.
 +	 Configure new files.
 +	* lang/qt/doc/Doxyfile.in: New.
 +	* lang/qt/doc/Makefile.am: New.
 +	* lang/qt/README: Update.
 +
 +	Qt: Fix unit test by adding initial.test dep.
 +	* lang/qt/tests/t-keylist.cpp: Verify that GNUPGHOME is set.
 +	* lang/qt/tests/initial.test: New dummy test.
 +	* lang/qt/tests/Makefile.am: Add dependency to initial.test
 +
 +	Qt: Remove remaining boost usage.
 +	* lang/qt/src/dataprovider.h,
 +	 lang/qt/src/decryptjob.h,
 +	 lang/qt/src/decryptverifyjob.h,
 +	 lang/qt/src/encryptjob.h,
 +	 lang/qt/src/qgpgmeadduseridjob.cpp,
 +	 lang/qt/src/qgpgmechangeexpiryjob.cpp,
 +	 lang/qt/src/qgpgmechangeownertrustjob.cpp,
 +	 lang/qt/src/qgpgmechangepasswdjob.cpp,
 +	 lang/qt/src/qgpgmedecryptjob.cpp,
 +	 lang/qt/src/qgpgmedecryptverifyjob.cpp,
 +	 lang/qt/src/qgpgmedeletejob.cpp,
 +	 lang/qt/src/qgpgmedownloadjob.cpp,
 +	 lang/qt/src/qgpgmeencryptjob.cpp,
 +	 lang/qt/src/qgpgmeexportjob.cpp,
 +	 lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
 +	 lang/qt/src/qgpgmeimportjob.cpp,
 +	 lang/qt/src/qgpgmekeygenerationjob.cpp,
 +	 lang/qt/src/qgpgmekeylistjob.cpp,
 +	 lang/qt/src/qgpgmenewcryptoconfig.cpp,
 +	 lang/qt/src/qgpgmenewcryptoconfig.h,
 +	 lang/qt/src/qgpgmesignencryptjob.cpp,
 +	 lang/qt/src/qgpgmesignjob.cpp,
 +	 lang/qt/src/qgpgmesignkeyjob.cpp,
 +	 lang/qt/src/qgpgmeverifydetachedjob.cpp,
 +	 lang/qt/src/qgpgmeverifyopaquejob.cpp,
 +	 lang/qt/src/signencryptjob.h,
 +	 lang/qt/src/signjob.h,
 +	 lang/qt/src/threadedjobmixin.cpp,
 +	 lang/qt/src/threadedjobmixin.h,
 +	 lang/qt/src/verifydetachedjob.h,
 +	 lang/qt/src/verifyopaquejob.h: Remove boost usage.
 +
 +	Qt: Remove predicates.h and stl_util.h.
 +	* src/lang/qt/predicates.h, src/lang/qt/stl_util.h: Removed.
 +
 +	Qt: Remove usage of stl_util.h and predicates.h.
 +	* src/lang/qt/qgpgmelistallkeysjob.cpp: Use comperators from
 +	  gpgmepp instead of detail. Remove boost usage.
 +
 +	Cpp: Add string comparators for keys.
 +	* lang/cpp/src/global.h (GPGMEPP_MAKE_STRCMP): New.
 +	  (_gpgmepp_strcmp): NULL save wrapper around std::strcmp.
 +	* lang/cpp/src/key.h: Add comparators for various attributes.
 +
 +	Cpp: Remove last usages of boost.
 +	* lang/cpp/src/configuration.cpp: Use std::remove_pointer.
 +	  (Configuration::operator<<): std::for_each.
 +	* lang/cpp/src/context.cpp: Delete manually instead of scoped ptr.
 +	* lang/cpp/src/scdgetinfoassuantransaction.cpp: Use static_assert.
 +	  (to_reader_list): Tokenize with getline.
 +
 +2016-04-04  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Add pthread in gpgmepp config.
 +	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Add pthread.
 +
 +2016-04-03  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp / Qt: Reduce boost usage (memory and tuple)
 +	* cpp/src/assuanresult.h,
 +	 cpp/src/configuration.cpp,
 +	 cpp/src/configuration.h,
 +	 cpp/src/data.h,
 +	 cpp/src/decryptionresult.h,
 +	 cpp/src/defaultassuantransaction.cpp,
 +	 cpp/src/encryptionresult.cpp,
 +	 cpp/src/encryptionresult.h,
 +	 cpp/src/engineinfo.h,
 +	 cpp/src/gpgagentgetinfoassuantransaction.cpp,
 +	 cpp/src/gpgsignkeyeditinteractor.cpp,
 +	 cpp/src/importresult.cpp,
 +	 cpp/src/importresult.h,
 +	 cpp/src/key.h,
 +	 cpp/src/keygenerationresult.h,
 +	 cpp/src/keylistresult.h,
 +	 cpp/src/notation.h,
 +	 cpp/src/signingresult.cpp,
 +	 cpp/src/signingresult.h,
 +	 cpp/src/verificationresult.cpp,
 +	 cpp/src/verificationresult.h,
 +	 cpp/src/vfsmountresult.h,
 +	 qt/src/dataprovider.cpp,
 +	 qt/src/dataprovider.h,
 +	 qt/src/decryptjob.h,
 +	 qt/src/decryptverifyjob.h,
 +	 qt/src/downloadjob.h,
 +	 qt/src/encryptjob.h,
 +	 qt/src/qgpgmeadduseridjob.cpp,
 +	 qt/src/qgpgmechangeexpiryjob.cpp,
 +	 qt/src/qgpgmechangeownertrustjob.cpp,
 +	 qt/src/qgpgmechangepasswdjob.cpp,
 +	 qt/src/qgpgmedecryptjob.cpp,
 +	 qt/src/qgpgmedecryptjob.h,
 +	 qt/src/qgpgmedecryptverifyjob.cpp,
 +	 qt/src/qgpgmedecryptverifyjob.h,
 +	 qt/src/qgpgmedeletejob.cpp,
 +	 qt/src/qgpgmedownloadjob.cpp,
 +	 qt/src/qgpgmedownloadjob.h,
 +	 qt/src/qgpgmeencryptjob.cpp,
 +	 qt/src/qgpgmeencryptjob.h,
 +	 qt/src/qgpgmeexportjob.cpp,
 +	 qt/src/qgpgmeexportjob.h,
 +	 qt/src/qgpgmeimportfromkeyserverjob.cpp,
 +	 qt/src/qgpgmeimportfromkeyserverjob.h,
 +	 qt/src/qgpgmeimportjob.cpp,
 +	 qt/src/qgpgmeimportjob.h,
 +	 qt/src/qgpgmekeygenerationjob.cpp,
 +	 qt/src/qgpgmekeygenerationjob.h,
 +	 qt/src/qgpgmekeylistjob.cpp,
 +	 qt/src/qgpgmekeylistjob.h,
 +	 qt/src/qgpgmelistallkeysjob.cpp,
 +	 qt/src/qgpgmelistallkeysjob.h,
 +	 qt/src/qgpgmenewcryptoconfig.cpp,
 +	 qt/src/qgpgmenewcryptoconfig.h,
 +	 qt/src/qgpgmesignencryptjob.cpp,
 +	 qt/src/qgpgmesignencryptjob.h,
 +	 qt/src/qgpgmesignjob.cpp,
 +	 qt/src/qgpgmesignjob.h,
 +	 qt/src/qgpgmesignkeyjob.cpp,
 +	 qt/src/qgpgmeverifydetachedjob.cpp,
 +	 qt/src/qgpgmeverifydetachedjob.h,
 +	 qt/src/qgpgmeverifyopaquejob.cpp,
 +	 qt/src/qgpgmeverifyopaquejob.h,
 +	 qt/src/signencryptjob.h,
 +	 qt/src/signjob.h,
 +	 qt/src/threadedjobmixin.h,
 +	 qt/src/verifydetachedjob.h,
 +	 qt/src/verifyopaquejob.h: Reduce boost usage.
 +
 +	Cpp: Require c++ 11 if cpp binding requested.
 +	* configure.ac: Call ax_cxx_compile_stdcxx
 +	* m4/ax_cxx_compile_stdcxx.m4
 +
 +	Qt: Add static factor methods for protocol.
 +	* lang/qt/src/qgpgmebackend.cpp (QGpgME::openpgp, QGpgME::smime): New.
 +	* lang/qt/src/qgpgmebackend.h: Declare.
 +	* lang/qt/tests/t-keylist.cpp (KeyListTest::testSingleKeyListSync):
 +	  Use new functions.
 +
 +	Qt: Add a unit test for qgpgme.
 +	* configure.ac: Configure test Makefile.
 +	* m4/qt.m4: Look up Qt5Test flags.
 +	* lang/qt/tests/t-keylist.cpp: New. Simple keylist check.
 +	* lang/qt/tests/Makefile.am: New. General test framework.
 +
 +	Qt: Add missing MOC includes.
 +	* qgpgmeadduseridjob.cpp,
 +	 qgpgmechangeexpiryjob.cpp,
 +	 qgpgmechangeownertrustjob.cpp,
 +	 qgpgmechangepasswdjob.cpp,
 +	 qgpgmedecryptjob.cpp,
 +	 qgpgmedecryptverifyjob.cpp,
 +	 qgpgmedeletejob.cpp,
 +	 qgpgmedownloadjob.cpp,
 +	 qgpgmeencryptjob.cpp,
 +	 qgpgmeexportjob.cpp,
 +	 qgpgmeimportfromkeyserverjob.cpp,
 +	 qgpgmeimportjob.cpp,
 +	 qgpgmekeygenerationjob.cpp,
 +	 qgpgmekeylistjob.cpp,
 +	 qgpgmelistallkeysjob.cpp,
 +	 qgpgmerefreshkeysjob.cpp,
 +	 qgpgmesecretkeyexportjob.cpp,
 +	 qgpgmesignencryptjob.cpp,
 +	 qgpgmesignjob.cpp,
 +	 qgpgmesignkeyjob.cpp,
 +	 qgpgmeverifydetachedjob.cpp,
 +	 qgpgmeverifyopaquejob.cpp: Add missing MOC includes.
 +
 +	Qt: Declare pure virtuals as such.
 +	* lang/qt/src/qgpgmebackend.h (Protocol): Make all functions
 +	 pure virtual.
 +
 +	Qt: Don't declare showErrorDialog anymore.
 +	* cpp/qt/src/job.h: Remove showErrorDialog.
 +
 +	Qt: Only use GpgME based config class.
 +	* lang/qt/src/qgpgmecryptoconfig.cpp,
 +	 lang/qt/src/qgpgmecryptoconfig.h: Removed.
 +	* lang/qt/src/qgpgmebackend.cpp: Return newcryptoconfig.
 +
 +2016-04-02  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Add additional include path in config files.
 +	* lang/cpp/src/GpgmeppConfig.cmake.in.in
 +	 lang/qt/src/QGpgmeConfig.cmake.in.in: Include directory above headers.
 +
 +	Qt: Fix library name in nodist variable.
 +	* lang/qt/Makefile.am (nodist_qgpgme_SOURCES): Change to real name.
 +
 +	Add missing files to QGpgME.
 +	* lang/qt/src/gpgme_backend_debug.cpp,
 +	 lang/qt/src/gpgme_backend_debug.h,
 +	 lang/qt/src/predicates.h,
 +	 lang/qt/src/stl_util.h: New.
 +
 +	Add QGpgME code from libkleo.
 +	* lang/qt/src/Makefile.am,
 +	lang/qt/src/abstractimportjob.h,
 +	lang/qt/src/adduseridjob.h,
 +	lang/qt/src/changeexpiryjob.h,
 +	lang/qt/src/changeownertrustjob.h,
 +	lang/qt/src/changepasswdjob.h,
 +	lang/qt/src/cryptoconfig.h,
 +	lang/qt/src/decryptjob.h,
 +	lang/qt/src/decryptverifyjob.h,
 +	lang/qt/src/deletejob.h,
 +	lang/qt/src/downloadjob.h,
 +	lang/qt/src/encryptjob.h,
 +	lang/qt/src/exportjob.h,
 +	lang/qt/src/hierarchicalkeylistjob.h,
 +	lang/qt/src/importfromkeyserverjob.h,
 +	lang/qt/src/importjob.h,
 +	lang/qt/src/job.cpp,
 +	lang/qt/src/job.h,
 +	lang/qt/src/keygenerationjob.h,
 +	lang/qt/src/keylistjob.h,
 +	lang/qt/src/listallkeysjob.h,
 +	lang/qt/src/multideletejob.h,
 +	lang/qt/src/qgpgmeadduseridjob.cpp,
 +	lang/qt/src/qgpgmeadduseridjob.h,
 +	lang/qt/src/qgpgmebackend.cpp,
 +	lang/qt/src/qgpgmebackend.h,
 +	lang/qt/src/qgpgmechangeexpiryjob.cpp,
 +	lang/qt/src/qgpgmechangeexpiryjob.h,
 +	lang/qt/src/qgpgmechangeownertrustjob.cpp,
 +	lang/qt/src/qgpgmechangeownertrustjob.h,
 +	lang/qt/src/qgpgmechangepasswdjob.cpp,
 +	lang/qt/src/qgpgmechangepasswdjob.h,
 +	lang/qt/src/qgpgmecryptoconfig.cpp,
 +	lang/qt/src/qgpgmecryptoconfig.h,
 +	lang/qt/src/qgpgmedecryptjob.cpp,
 +	lang/qt/src/qgpgmedecryptjob.h,
 +	lang/qt/src/qgpgmedecryptverifyjob.cpp,
 +	lang/qt/src/qgpgmedecryptverifyjob.h,
 +	lang/qt/src/qgpgmedeletejob.cpp,
 +	lang/qt/src/qgpgmedeletejob.h,
 +	lang/qt/src/qgpgmedownloadjob.cpp,
 +	lang/qt/src/qgpgmedownloadjob.h,
 +	lang/qt/src/qgpgmeencryptjob.cpp,
 +	lang/qt/src/qgpgmeencryptjob.h,
 +	lang/qt/src/qgpgmeexportjob.cpp,
 +	lang/qt/src/qgpgmeexportjob.h,
 +	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
 +	lang/qt/src/qgpgmeimportfromkeyserverjob.h,
 +	lang/qt/src/qgpgmeimportjob.cpp,
 +	lang/qt/src/qgpgmeimportjob.h,
 +	lang/qt/src/qgpgmekeygenerationjob.cpp,
 +	lang/qt/src/qgpgmekeygenerationjob.h,
 +	lang/qt/src/qgpgmekeylistjob.cpp,
 +	lang/qt/src/qgpgmekeylistjob.h,
 +	lang/qt/src/qgpgmelistallkeysjob.cpp,
 +	lang/qt/src/qgpgmelistallkeysjob.h,
 +	lang/qt/src/qgpgmenewcryptoconfig.cpp,
 +	lang/qt/src/qgpgmenewcryptoconfig.h,
 +	lang/qt/src/qgpgmerefreshkeysjob.cpp,
 +	lang/qt/src/qgpgmerefreshkeysjob.h,
 +	lang/qt/src/qgpgmesecretkeyexportjob.cpp,
 +	lang/qt/src/qgpgmesecretkeyexportjob.h,
 +	lang/qt/src/qgpgmesignencryptjob.cpp,
 +	lang/qt/src/qgpgmesignencryptjob.h,
 +	lang/qt/src/qgpgmesignjob.cpp,
 +	lang/qt/src/qgpgmesignjob.h,
 +	lang/qt/src/qgpgmesignkeyjob.cpp,
 +	lang/qt/src/qgpgmesignkeyjob.h,
 +	lang/qt/src/qgpgmeverifydetachedjob.cpp,
 +	lang/qt/src/qgpgmeverifydetachedjob.h,
 +	lang/qt/src/qgpgmeverifyopaquejob.cpp,
 +	lang/qt/src/qgpgmeverifyopaquejob.h,
 +	lang/qt/src/refreshkeysjob.h,
 +	lang/qt/src/signencryptjob.h,
 +	lang/qt/src/signjob.h,
 +	lang/qt/src/signkeyjob.h,
 +	lang/qt/src/specialjob.h,
 +	lang/qt/src/threadedjobmixin.cpp,
 +	lang/qt/src/threadedjobmixin.h,
 +	lang/qt/src/verifydetachedjob.h,
 +	lang/qt/src/verifyopaquejob.h: New.
 +	* lang/qt/src/Makefile.am:
 +
 +2016-03-08  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Add qgpgme as qt language binding.
 +	* configure.ac: Add version defines. Check for qt if neccessary.
 +	* lang/README: Mention qt
 +	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove comment. Find qgpgme.
 +	* lang/qt/src/Makefile.am: New. Build qgpgme.
 +	* lang/qt/README,
 +	 lang/qt/src/Makefile.am,
 +	 lang/qt/src/QGpgmeConfig.cmake.in.in,
 +	 lang/qt/src/QGpgmeConfigVersion.cmake.in,
 +	 lang/qt/src/dataprovider.cpp,
 +	 lang/qt/src/dataprovider.h,
 +	 lang/qt/src/qgpgme_export.h,
 +	 m4/qt.m4: New.
 +	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
 +	 lang/cpp/src/Makefile.am: Fix generated config file.
 +
 +	Remove obsolete w32-qt code.
 +	* configure.ac (w32-qt): Remove option and Qt checks.
 +	* src/Makefile.am: Remove BUILD_W32_QT handling.
 +	* src/kdpipeiodevice.cpp,
 +	 src/kdpipeiodevice.h,
 +	 src/kdpipeiodevice.moc,
 +	 src/w32-qt-io.cpp: Removed.
 +
 +2016-03-02  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Add version info for gpgmepp.
 +	* lang/cpp/src/Makefile.am (libgpgmepp_la_LDFLAGS): Add version info.
 +
 +	Add cmake configuration files.
 +	* configure.ac: Add libgpgmepp version. Configure cmake files.
 +	* lang/cpp/src/Makefile.am: Add targets for cmake files.
 +	 (EXTRA_DIST): Add cmake files.
 +
 +	Fix export header and windows export macros.
 +	* lang/cpp/src/gpgme_export.h: Fix variable name. Add Windows ifdefs.
 +
 +	Add header installation.
 +	* lang/cpp/src/Makefile.am: Add headers as deps and install them.
 +	 (AM_CPPFLAGS): Add BUILDING_GPGMEPP to be used in export macros.
 +
 +	Add enable-languages build option.
 +	* acinclude.m4 (LIST_MEMBER): New macro.
 +	* configure.ac (enable-languages): New option. Add info output.
 +	* lang/Makefile.am: Only add enabled language subdirs.
 +
 +2016-02-22  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Add README for gpgmepp.
 +	* lang/README: Note down cpp.
 +	* cpp/README: Add README based on original repo version.
 +
 +	Add buildsystem for Gpgmepp.
 +	* configure.ac: Configure Makefiles.
 +	* lang/Makefile.am: Add cpp subdir
 +	* lang/cpp/Makefile.am: New. Add src subdir.
 +	* lang/cpp/src/Makefile.am: New. Basic buildsystem.
 +
 +	Remove feature check ifdefs.
 +	* lang/cpp/src/assuanresult.cpp,
 +	 lang/cpp/src/callbacks.cpp,
 +	 lang/cpp/src/configuration.cpp,
 +	 lang/cpp/src/context.cpp,
 +	 lang/cpp/src/context_glib.cpp,
 +	 lang/cpp/src/context_qt.cpp,
 +	 lang/cpp/src/context_vanilla.cpp,
 +	 lang/cpp/src/data.cpp,
 +	 lang/cpp/src/decryptionresult.cpp,
 +	 lang/cpp/src/defaultassuantransaction.cpp,
 +	 lang/cpp/src/editinteractor.cpp,
 +	 lang/cpp/src/encryptionresult.cpp,
 +	 lang/cpp/src/engineinfo.cpp,
 +	 lang/cpp/src/eventloopinteractor.cpp,
 +	 lang/cpp/src/global.h,
 +	 lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
 +	 lang/cpp/src/importresult.cpp,
 +	 lang/cpp/src/interfaces/assuantransaction.h,
 +	 lang/cpp/src/key.cpp,
 +	 lang/cpp/src/keygenerationresult.cpp,
 +	 lang/cpp/src/keylistresult.cpp,
 +	 lang/cpp/src/scdgetinfoassuantransaction.cpp,
 +	 lang/cpp/src/signingresult.cpp,
 +	 lang/cpp/src/trustitem.cpp,
 +	 lang/cpp/src/util.h,
 +	 lang/cpp/src/verificationresult.cpp,
 +	 lang/cpp/src/vfsmountresult.cpp: Remove feature checks.
 +
 +	Initial checkin of gpgmepp sources.
 +	Based on git.kde.org/pim/gpgmepp rev. 0e3ebc02
 +
 +	* lang/cpp/src/assuanresult.cpp,
 +	 lang/cpp/src/assuanresult.h,
 +	 lang/cpp/src/callbacks.cpp,
 +	 lang/cpp/src/callbacks.h,
 +	 lang/cpp/src/configuration.cpp,
 +	 lang/cpp/src/configuration.h,
 +	 lang/cpp/src/context.cpp,
 +	 lang/cpp/src/context.h,
 +	 lang/cpp/src/context_glib.cpp,
 +	 lang/cpp/src/context_p.h,
 +	 lang/cpp/src/context_qt.cpp,
 +	 lang/cpp/src/context_vanilla.cpp,
 +	 lang/cpp/src/data.cpp,
 +	 lang/cpp/src/data.h,
 +	 lang/cpp/src/data_p.h,
 +	 lang/cpp/src/decryptionresult.cpp,
 +	 lang/cpp/src/decryptionresult.h,
 +	 lang/cpp/src/defaultassuantransaction.cpp,
 +	 lang/cpp/src/defaultassuantransaction.h,
 +	 lang/cpp/src/editinteractor.cpp,
 +	 lang/cpp/src/editinteractor.h,
 +	 lang/cpp/src/encryptionresult.cpp,
 +	 lang/cpp/src/encryptionresult.h,
 +	 lang/cpp/src/engineinfo.cpp,
 +	 lang/cpp/src/engineinfo.h,
 +	 lang/cpp/src/error.h,
 +	 lang/cpp/src/eventloopinteractor.cpp,
 +	 lang/cpp/src/eventloopinteractor.h,
 +	 lang/cpp/src/exception.cpp,
 +	 lang/cpp/src/exception.h,
 +	 lang/cpp/src/global.h,
 +	 lang/cpp/src/gpgadduserideditinteractor.cpp,
 +	 lang/cpp/src/gpgadduserideditinteractor.h,
 +	 lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
 +	 lang/cpp/src/gpgagentgetinfoassuantransaction.h,
 +	 lang/cpp/src/gpgmefw.h,
 +	 lang/cpp/src/gpgmepp_export.h,
 +	 lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
 +	 lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
 +	 lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
 +	 lang/cpp/src/gpgsetownertrusteditinteractor.h,
 +	 lang/cpp/src/gpgsignkeyeditinteractor.cpp,
 +	 lang/cpp/src/gpgsignkeyeditinteractor.h,
 +	 lang/cpp/src/importresult.cpp,
 +	 lang/cpp/src/importresult.h,
 +	 lang/cpp/src/key.cpp,
 +	 lang/cpp/src/key.h,
 +	 lang/cpp/src/keygenerationresult.cpp,
 +	 lang/cpp/src/keygenerationresult.h,
 +	 lang/cpp/src/keylistresult.cpp,
 +	 lang/cpp/src/keylistresult.h,
 +	 lang/cpp/src/notation.h,
 +	 lang/cpp/src/result.h,
 +	 lang/cpp/src/result_p.h,
 +	 lang/cpp/src/scdgetinfoassuantransaction.cpp,
 +	 lang/cpp/src/scdgetinfoassuantransaction.h,
 +	 lang/cpp/src/signingresult.cpp,
 +	 lang/cpp/src/signingresult.h,
 +	 lang/cpp/src/trustitem.cpp,
 +	 lang/cpp/src/trustitem.h,
 +	 lang/cpp/src/util.h,
 +	 lang/cpp/src/verificationresult.cpp,
 +	 lang/cpp/src/verificationresult.h,
 +	 lang/cpp/src/vfsmountresult.cpp,
 +	 lang/cpp/src/vfsmountresult.h,
 +	 lang/cpp/src/interfaces/assuantransaction.h,
 +	 lang/cpp/src/interfaces/dataprovider.h,
 +	 lang/cpp/src/interfaces/passphraseprovider.h,
 +	 lang/cpp/src/interfaces/progressprovider.h: New.
 +
 +2016-01-15  Werner Koch  <wk at gnupg.org>
 +
 +	Fix possible _SC_OPEN_MAX max problem on AIX.
 +	* src/posix-io.c [HAVE_STDINT_H]: Include stdint.h.
 +	(get_max_fds): Limit returned value for too high values.
 +
 +2015-12-09  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Avoid conflict with Mingw-w64 version 4.0.4-1.
 +	* src/w32-util.c (mkstemp): Rename to my_mkstemp.  Change caller.
 +
 +2015-12-04  Daiki Ueno  <ueno at gnu.org>
 +
 +	Return on user cancellation of delete operation.
 +	* src/delete.c (delete_status_handler): Return on ERROR status, if the
 +	error location is set to "delete_key.secret" and the code is either
 +	CANCELED or FULLY_CANCELED, which indicates a situation that the user
 +	selected "No" on the confirmation dialog.
 +
 +	doc: Fix minor errors.
 +	* doc/gpgme.texi: Fix errors and typos in the cancellation and
 +	gpgme_import_result_t documentation.
 +
 +2015-10-29  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Make use of user passphrase handler during passwd.
 +	* src/passwd.c (passwd_start): set engine passphrase command handler.
 +
 +2015-10-28  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Add extra diagnostic about possible missing gpgme-w32spawn.exe.
 +	* src/w32-io.c (_gpgme_io_spawn): Add a new diagnostic.
 +
 +	w32: Improve locating gpgconf on 64 bit systems.
 +	* src/w32-util.c (find_program_at_standard_place): Fallback to
 +	CSIDL_PROGRAM_FILESX86.
 +
 +	w32: Add new global flag "w32-inst-dir".
 +	* src/gpgme.c (gpgme_set_global_flag): Add flag "w32-inst-dir";
 +	* src/posix-util.c (_gpgme_set_override_inst_dir): New stub.
 +	* src/w32-util.c (override_inst_dir): New var.
 +	(_gpgme_get_inst_dir): Return this var is set.
 +	(_gpgme_set_override_inst_dir): New.
 +
 +2015-10-16  NIIBE Yutaka  <gniibe at fsij.org>
 +
 +	cleanup: Fix type mismatch around gpgme_error_t.
 +	* src/data-compat.c (gpgme_error_to_errno): Use gpg_err_code
 +	to get error code from gpgme_error_t.
 +	* src/gpgme.c (gpgme_new): Don't use gpgme_error.
 +
 +2015-08-31  Werner Koch  <wk at gnupg.org>
 +
 +	gpgme-tool: Switch to argparse.c for option parsing.
 +	* src/argparse.c, src/argparse.h: New. Taken from current gnupg.
 +	* src/Makefile.am (gpgme_tool_SOURCES): New.
 +	* src/gpgme-tool.c: Remove all argp.h stuff.
 +	(my_strusage): New.
 +	(main): Change to use argparse.
 +
 +2015-08-30  Werner Koch  <wk at gnupg.org>
 +
 +	Add gpgme_pubkey_algo_string.
 +	* src/gpgme.h.in (GPGME_PK_EDDSA): New.
 +	(gpgme_pubkey_algo_string): New.
 +	* src/conversion.c (_gpgme_map_pk_algo): Add new algo.
 +	* src/gpgme.c (gpgme_pubkey_algo_string): New.
 +	(gpgme_pubkey_algo_name): Reformat.
 +
 +2015-08-26  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.6.0.
 +	* configure.ac: Set LT version to C25/A14/R0.
 +
 +	Make use of GPGRT macros is available.
 +	* src/gpgme.h.in (_GPGME_INLINE): Define using GPGRT_INLINE if
 +	possible.  Fix problem with -Wundef by adding an extra "defined()".
 +	(_GPGME_GCC_VERSION): Define using GPGRT_ macro if possible.
 +
 +2015-08-25  Werner Koch  <wk at gnupg.org>
 +
 +	Avoid -Wundef warnings if gpgme.h is used by g++.
 +	* src/gpgme.h.in (_GPGME_INLINE): Move definition into the
 +	extern-C-scope.
 +
 +	Add configure option --enable-build-timestamp.
 +	* configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default.
 +
 +2015-08-25  Daiki Ueno  <ueno at gnu.org>
 +
 +	Relax ttyname_r error checks.
 +	* src/engine-assuan.c (llass_new): Don't treat ttyname_r error as
 +	fatal.
 +	* src/engine-g13.c (g13_new): Likewise.
 +	* src/engine-gpg.c (gpg_new): Likewise.
 +	* src/engine-gpgsm.c (gpgsm_new): Likewise.
 +	* src/engine-uiserver.c (uiserver_new): Likewise.
 +
 +2015-08-25  Werner Koch  <wk at gnupg.org>
 +
 +	Cleanup layout of gpgme.h.
 +	* src/gpgme.h.in: Reorder prototypes.  Chnage some comments.
 +
 +	Improve error return by checking the FAILURE status.
 +	* src/gpgme.h.in (GPGME_STATUS_FAILURE): New.
 +	* src/status-table.c (FAILURE): New.
 +	* src/op-support.c (_gpgme_parse_failure): New.
 +	* src/passphrase.c (_gpgme_passphrase_status_handler): Forward FAILURE
 +	status line to the status callback.
 +
 +	* src/decrypt.c (op_data_t): Add field failure_code.
 +	(_gpgme_decrypt_status_handler): Parse that code and act upon it on EOF.
 +	* src/encrypt.c (op_data_t): Add field failure_code.
 +	(_gpgme_encrypt_status_handler): Parse that code and act upon it on EOF.
 +	* src/genkey.c (op_data_t): Add field failure_code.
 +	(genkey_status_handler): Parse that code and act upon it on EOF.
 +	* src/passwd.c (op_data_t): Add field failure_code.
 +	(passwd_status_handler): Parse that code and act upon it on EOF.
 +	* src/sign.c (op_data_t): Add field failure_code.
 +	(_gpgme_sign_status_handler): Parse that code and act upon it on EOF.
 +	* src/verify.c (op_data_t): Add field failure_code.
 +	(_gpgme_verify_status_handler): Parse that code and act upon it on EOF.
 +
 +	tests: Allow using run-sign to test loopback pinentry problems.
 +	* tests/run-sign.c: Add options --status and --loopback.
 +
 +2015-08-24  Werner Koch  <wk at gnupg.org>
 +
 +	Call status_cb for an ERROR status seen in the passphrase handler.
 +	* src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb.
 +
 +	w32: Look for gpgconf in the new GnuPG 2.1 install dir.
 +	* src/w32-util.c (_gpgme_get_gpgconf_path): Try another location of
 +	gpgconf.exe.
 +
 +	w32: Expect gpgme-w32spawn.exe only in the gpgme installation dir.
 +	* src/w32-util.c (find_program_at_standard_place): Remove.
 +	(_gpgme_get_gpg_path): Make the search order more explicit.
 +	(_gpgme_get_gpgconf_path): Ditto.
 +	(_gpgme_get_w32spawn_path): Search only in the inst_dir.
 +
 +	w32: Print the installation directory in debug mode.
 +	* src/debug.c (debug_init) [W32]: Show libgpgme installation dir.
 +
 +	Add an export secret key feature.
 +	* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET): New.
 +	(GPGME_EXPORT_MODE_RAW): New.
 +	(GPGME_EXPORT_MODE_PKCS12): New.
 +	* src/export.c (export_start, export_ext_start): Allow new flags.
 +	* src/engine-gpg.c (export_common): Support secret key export.
 +	* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto.
 +
 +	* src/gpgme-tool.c (cmd_export): Add options --secret, --raw,
 +	and --pkcs12.
 +	* tests/run-export.c (main): Likewise.
 +
 +2015-08-16  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Parse INQUIRE_MAXLEN in the passphrase callback.
 +	* src/passphrase.c (_gpgme_passphrase_status_handler): Parse
 +	GPGME_STATUS_INQUIRE_MAXLEN.
 +	* src/passphrase.c (_gpgme_passphrase_command_handler): Send the
 +	INQUIRE_MAXLEN status message.
 +
 +	Fix gpgme_{get,set}_status_cb to match documentation.
 +	* doc/gpgme.texi: Minor fixes.
 +	* src/gpgme.c (gpgme_get_status_cb): Set return variables to NULL and
 +	check for a valid ctx pointer.
 +
 +	Parse the INQUIRE_MAXLEN status message.
 +	* src/gpgme.h.in: (gpgme_status_code_t): Add INQUIRE_MAXLEN.
 +	* src/status-table.c (status_table_s): Ditto.
 +	* src/genkey.c (genkey_status_handler): Parse INQUIRE_MAXLEN.
 +	* src/decrypt.c (_gpgme_decrypt_status_handler): Ditto.
 +	* src/sign.c (_gpgme_sign_status_handler): Ditto.
 +
 +	This status message informs the client of the maximum length of an
 +	inquired line. It is sent from gpg and forwarded to the client via
 +	gpgme_status_cb_t.
 +
 +	Add gpgme_set/get_status_cb().
 +	* src/gpgme.h.in (gpgme_set_status_cb): New.
 +	(gpgme_get_status_cb): New.
 +	(gpgme_status_cb_t): New.
 +	* src/gpgme.c (gpgme_set_status_cb): New.
 +	(gpgme_get_status_cb): New.
 +	* src/context.h (status_cb): New.
 +	(status_cb_value): New.
 +	* src/gpgme.def: Export new symbols.
 +	* src/libgpgme.vers: Ditto.
 +	* doc/gpgme.texi: Document these new functions.
 +
 +	Make use of user passphrase handler during genkey.
 +	* src/genkey.c (genkey_start): set engine passphrase command handler.
 +
 +2015-08-12  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Also check the return code in gpg_sign().
 +	* src/engine-gpg.c (gpg_sign): Check return value from start().
 +
 +2015-08-11  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Check the return value when starting gpg.
 +	* src/engine-gpg.c (gpg_decrypt, gpg_delete, gpg_passwd): Check return
 +	value of start().
 +
 +2015-08-02  Ben McGinnes  <ben at adversary.org>
 +
 +	More GTK2 removal.
 +	* Missed a couple of files, these 2 go for the same reason as the
 +	  previous 3.
 +
 +	Removed GUI examples.
 +	* GUI examples written with pygtk, which has not been ported to Python
 +	  3 and won't be as it is for GTK2 and GNOME is moving to GTK3.
 +	* New GUI examples may be required in future using any of several GUI
 +	  frameworks (e.g. wxPython, PyQt, PySide, PyGObject, etc.).
 +
 +2015-07-31  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Add offline mode support for CMS keylisting.
 +	* doc/gpgme.texi: Document offline mode.
 +	* src/context.h (gpgme_context): Add offline.
 +	* src/engine-backend.h (keylist, keylist_ext): Add engine_flags.
 +	* src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto.
 +	  (_gpgme_engine_op_keylist_ext): Ditto.
 +	* src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): New.
 +	* src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto.
 +	* src/engine-gpgsm.c (gpgsm_keylist): Handle engine_flags.
 +	  (gpgsm_keylist_ext): Ditto.
 +	* src/gpgme.c (gpgme_set_offline, gpgme_get_offline): New.
 +	* src/gpgme.def (gpgme_set_offline, gpgme_get_offline): New.
 +	* src/gpgme.h.in (gpgme_set_offline, gpgme_get_offline): New.
 +	* src/libgpgme.vers (gpgme_set_offline, gpgme_get_offline): New.
 +	* src/keylist.c (gpgme_op_keylist_start): Set offline flag.
 +	  (gpgme_op_keylist_ext_start): Ditto.
 +	* tests/run-keylist.c (show_usage, main): Add offline argument.
 +
 +2015-07-23  Peter Wu  <peter at lekensteyn.nl>
 +
 +	build: ignore scissor line for the commit-msg hook.
 +	* build-aux/git-hooks/commit-msg: Stop processing more lines when the
 +	  scissor line is encountered.
 +
 +2015-07-23  Werner Koch  <wk at gnupg.org>
 +
 +	Add option --lib-version to gpgme-tool.
 +	* src/gpgme-tool.c (options, parse_options):  Add --lib-version
 +	(CMD_LIBVERSION): New.
 +	(main): Implement.
 +
 +2015-06-08  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.5.5.
 +
 +	Fix regression with gpgsm 2.0 due to "OPTION with-secret".
 +	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate
 +	on a status lines.
 +
 +	tests: Add option --secret to run-keylist.
 +
 +	Fix compiler warnings about unused value in TRACE macros.
 +	* src/debug.h: Change macros to not have a literal 0 as last
 +	expression of the comma operator.
 +	* src/debug.c (_gpgme_debug_frame_end): Return 0.
 +	(_gpgme_debug): Return 0.
 +
 +	Fix test suite for GnuPG 2.1 which uses pubring.kbx.
 +	* tests/gpgsm/final.test: New.
 +	* tests/gpgsm/initial.test: New.
 +	* tests/gpg/start-stop-agent: Move to ../.
 +	* tests/gpgsm/Makefile.am (TESTS_ENVIRONMENT): Export top_srcdir.
 +	(TESTS): Add intial.test and final.test.
 +	(AM_LDFLAGS): Add -no-install.
 +	(clean-local): Use start-stop-agent
 +	(initial.test): Add dependency.
 +	* tests/gpg/Makefile.am (top_srcdir): Export top_srcdir.
 +	(AM_LDFLAGS): Add -no-install.
 +	(check-local): Depend on pubring-stamp instead of pubring.gpg.
 +	(initial.test): Depend on check-local.
 +	(./pubring-gpg): Replace by rule for ./pubring-stamp.
 +
 +2015-06-05  Matthew Barnes  <mbarnes at redhat.com>
 +
 +	Set GPGME_SIGSUM_KEY_REVOKED also for gpg.
 +	* src/verify.c (calc_sig_summary): Handle GPG_ERR_CERT_REVOKED.
 +
 +2015-06-05  Werner Koch  <wk at gnupg.org>
 +
 +	Fix segv for userids with a backslash.
 +	* src/engine-gpg.c (gpg_keylist_preprocess): Increment SRC for a
 +	backslash.
 +
 +2015-05-16  Ben McGinnes  <ben at adversary.org>
 +
 +	Python 3 port of PyME.
 +	* Port of PyME 0.9.0 for Python 2 to Python 3 along with most of the
 +	  example scripts.
 +	* Intended to be developed in parallel with the original Python 2
 +	  version until such time as a rewrite of GPGME leads to developing an
 +	  IO API in Python 3 from scratch.
 +	* Python 3 PyME and API maintainer has entered, stage left with current
 +	  GPG key ID 0x321E4E2373590E5D, primary fingerprint is "DB47 24E6 FA42
 +	  86C9 2B4E  55C4 321E 4E23 7359 0E5D" and signing subkey fingerprint is
 +	  "B7F0 FE75 9387 430D D0C5  8BDB 7FF2 D371 35C7 553C" for future
 +	  reference with git commit signatures.
 +
 +	Explaining why not all scripts work.
 +	* Some of them cannot be properly tested on OS X, especially with GTK in
 +	  the mix (it works on OS X, but is unlikely to be as easily accessible
 +	  as Cocoa or Qt).
 +	* Most major functions are showcased and do work, albeit sometimes with
 +	  false positives of error messages, at least on OS X.
 +
 +	Byte encoding.
 +	* More string updates.
 +	* verifydetails.py still fails, but as Bernhard is still contactable, it
 +	  might be worth him checking on it instead.
 +
 +	No change, note added to explain why.
 +
 +	Strings vs. Bytes.
 +	* CLI input must be byte encoded.
 +
 +	More byte changes and passphrase changes.
 +	* exportimport works, but will still segfault for an as yet unknown
 +	  reason.
 +	* genkey produces a traceback error, but does create the key as
 +	  intended.
 +	* matched passphrase in signverify.
 +
 +	More bytes good.
 +	* Another string to byte change.
 +
 +	Updated encrypt-to-all.
 +	* Changed plaintext string to byte literal.
 +	* Nested key selection in a try/except statement in case of
 +	  UnicodeEncodeError instances.
 +	* Tested successfully on over 9,000 keys.
 +
 +	Passphrase update.
 +	* Changed example passphrase to something that meets the current minimum
 +	  requirements.
 +
 +	example email.
 +	* changed joe at foo.bar to joe at example.org as it is only a matter of time
 +	  before ICANN actually creates bar as a gTLD, if they haven't already.
 +
 +	Updated string and key data.
 +	* Text changed to byte literals.
 +	* Changed key type to RSA/RSA.
 +	* Changed expiry to the future (2020).
 +
 +2015-05-08  Ben McGinnes  <ben at adversary.org>
 +
 +	String type.
 +	* the plain text string must be bytes and not unicode.
 +	* Expect most of the example code to have similar issues at present.
 +
 +2015-05-05  Ben McGinnes  <ben at adversary.org>
 +
 +	Python 3 port of PyME.
 +	* The entirety of the Python 3 port of PyME up to commit
 +	  2145348ec54c6027f2ea20f695de0277e2871405
 +	* The old commit log has been saved as
 +	  lang/py3-pyme/docs/old-commits.log
 +	* Can be viewed as a normal (separate) git repository at
 +	  https://github.com/adversary-org/pyme3
 +	* Utilising the submodule feature of git was deliberately skipped on
 +	  humanitarian grounds (in order to prevent pain and suffering on the
 +	  part of anyone having to manage this repository).
 +
 +2015-04-13  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.5.4.
 +
 +	w32: Use -static-libgcc to avoid linking to libgcc_s_sjlj-1.dll.
 +	* src/Makefile.am (extra_ltoptions): New.
 +	(libgpgme_la_LDFLAGS): Use it.
 +	(libgpgme_pthread_la_LDFLAGS): Ditto.
 +	(libgpgme_glib_la_LDFLAGS): Ditto.
 +
 +2015-03-16  Werner Koch  <wk at gnupg.org>
 +
 +	Fix potential crash in trace macro.
 +	* src/signers.c (gpgme_signers_add): Avoid deref of a NULL KEY in the
 +	trace macro.
 +	* src/engine-spawn.c (engspawn_release): Remove always true condition.
 +	* src/engine-gpg.c (gpg_release): Ditto.
 +
 +	Fix one byte too short malloc.
 +	* src/engine-spawn.c (add_data): Fix malloc
 +
 +2015-01-30  Werner Koch  <wk at gnupg.org>
 +
 +	Switch to automake 1.14 and update  build-aux files.
 +
 +2014-12-11  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.5.3.
 +	* configure.ac: Set LT version to C24/A13/R2.
 +
 +2014-12-08  Werner Koch  <wk at gnupg.org>
 +
 +	Return an error for some export key operations.
 +	* src/context.h (OPDATA_EXPORT): New.
 +	* src/export.c (op_data_t): New.
 +	(release_op_data): New.
 +	(parse_error): New.
 +	(export_status_handler): New.
 +	(export_start, export_ext_start): Prepare op_data.
 +	(gpgme_op_export_ext, gpgme_op_export_keys): Return an error from the
 +	status handler.
 +
 +2014-11-21  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.5.2.
 +	* configure.ac: Set LT version to C24/A13/R1.
 +
 +	Update the previous commit.
 +	* src/sign.c (gpgme_op_sign_result): Reformat and take care of failed
 +	malloc.
 +
 +2014-11-21  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Fix returning new signatures when there are none.
 +	* src/sign.c (gpgme_op_sign_result): Test that invalid and valid
 +	signatures add up to gpgme_signers_count().
 +
 +2014-11-06  Werner Koch  <wk at gnupg.org>
 +
 +	Improve the debug output a bit.
 +	* src/debug.h (TRACE_ERR): Include the line number in the output.
 +
 +2014-10-02  Werner Koch  <wk at gnupg.org>
 +
 +	build: Implement SYSROOT feature.
 +	* configure.ac: Document SYSROOT.
 +	* m4/gpg-error.m4: Update from libgpg-error master.
 +	* src/gpgme.m4: Implement SYSROOT stuff.
 +
 +2014-09-24  Werner Koch  <wk at gnupg.org>
 +
 +	tests: Delay some test file extraction until "make check".
 +	* tests/gpg/Makefile.am (all-local): Change to check-local.
 +	* tests/gpgsm/Makefile.am (all-local): Ditto.
 +
 +2014-09-24  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
 +
 +	Clean up gpgme's tests/gpg when gpg2.1 is available.
 +	* tests/gpg/Makefile.am: Clean up .gpg-v21-migrated
 +
 +2014-08-12  Werner Koch  <wk at gnupg.org>
 +
 +	gpgme-tool: Print fingerprint and keyid with keyservers.
 +	* src/gpgme-tool.c (cmd_keylist): Print keyid.  Print FPR only if
 +	available.
 +
 +	Handle modern keyserver output which may emit the fingerprint.
 +	* src/engine-gpg.c (read_colon_line): Split preprocessed lines.
 +	(gpg_keylist_preprocess): Limit keyid field and print fingerprint.
 +
 +	gpgme-tool: Install gpgme-tool.
 +	* src/Makefile.am (bin_PROGRAMS): New.  Add gpgme-tools.
 +	(noinst_PROGRAMS): Remove.
 +
 +	gpgme-tool: Fix segv for external key listing.
 +	* src/gpgme-tool.c (result_xml_escape): Allow for DATA being NULL.
 +
 +2014-07-30  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.5.1.
 +	* configure.ac: Change LT version to C24/A13/R0.
 +
 +	Fix possible realloc overflow for gpgsm and uiserver engines.
 +	* src/engine-gpgsm.c (status_handler):
 +	* src/engine-uiserver.c (status_handler):
 +
 +2014-06-26  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Get IOSPAWN flag back in sync with spawn helper.
 +	* src/gpgme-w32spawn.c: Include priv-io.h.
 +
 +2014-06-10  Werner Koch  <wk at gnupg.org>
 +
 +	Add new reason codes to the INV_RECP status code.
 +	* src/op-support.c (_gpgme_parse_inv_recp): Add codes 13 and 14.
 +
 +2014-06-04  Werner Koch  <wk at gnupg.org>
 +
 +	Add new keylist mode GPGME_KEYLIST_MODE_WITH_SECRET.
 +	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_SECRET): New.
 +	* src/engine-gpg.c (gpg_keylist_build_options): Handle new mode.
 +	* src/engine-gpgsm.c (gpgsm_keylist, gpgsm_keylist_ext): Ditto.
 +	* src/keylist.c (parse_sec_field15): Add arg key and take care of
 +	--with-secret output.
 +
 +	* src/gpgme-tool.c (gt_get_keylist_mode, cmd_keylist_mode): Add
 +	"with_secret".  Print card info and and secret flag for subkeys.
 +
 +2014-05-21  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.5.0.
 +	* configure.ac: Change LT version to C22/A11/R0.
 +
 +2014-05-13  Werner Koch  <wk at gnupg.org>
 +
 +	Add 6 new GPGME_STATUS_ codes.
 +	* src/status-table.c: Also add missing DECRYPTION_INFO entry.
 +
 +2014-05-08  Werner Koch  <wk at gnupg.org>
 +
 +	Add field CURVE to the key info.
 +	* src/gpgme.h.in (struct _gpgme_subkey): Add field CURVE.
 +	* src/key.c (gpgme_key_unref): Free CURVE.
 +	* src/keylist.c (keylist_colon_handler): Set CURVE.
 +
 +	* src/gpgme.c (gpgme_release): For failsafe reasons reset engine and
 +	engine info after freeing.
 +
 +	Fix a memory access and a double slash bug.
 +	* src/engine-spawn.c (engspawn_start): Allocate space for list
 +	terminator.
 +	* src/posix-util.c (walk_path): Fix trailing slash detection.
 +
 +	Map public key algos returned by gpg to gpgme values.
 +	* src/conversion.c (_gpgme_map_pk_algo): New.
 +	* src/decrypt.c (parse_enc_to): Add arg PROTOCOL and map pubkey algo.
 +	(_gpgme_decrypt_status_handler): Map pubkey algo.
 +	* src/keylist.c (keylist_colon_handler): Map pubkey algo.
 +	* src/sign.c (parse_sig_created): Add arg PROTOCOL and map pubkey
 +	algo.
 +	* src/verify.c (parse_new_sig): Ditto.
 +	(parse_valid_sig): Ditto.
 +
 +	* src/gpgme.h.in (GPGME_PK_ECC): New.
 +	(GPGME_MD_SHA224): New.
 +	* src/gpgme.c (gpgme_pubkey_algo_name): Add GPGME_PK_ECC case.
 +	(gpgme_hash_algo_name): Add GPGME_MD_SHA224.
 +
 +	Add GPGME_ENCRYPT_NO_COMPRESS flag.
 +	* src/gpgme.h.in (GPGME_ENCRYPT_NO_COMPRESS): New.
 +	* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign): Implement it.
 +	* src/gpgme-tool.c (_cmd_sign_encrypt): Add option --no-compress.
 +
 +2014-04-16  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Fix another memleak on error.
 +	* src/w32-io.c (create_reader): free CTX.
 +
 +2014-04-15  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Fix memleak in an error code paths.
 +	* src/w32-io.c (create_writer): Free CTX in cased of bad FD.
 +	* src/w32-util.c (_gpgme_mkstemp): Free TMPNAME in case of a failed
 +	mkstemp.
 +
 +	Fix possible zombie processes.
 +	* src/posix-io.c (_gpgme_io_waitpid): Protect waitpid agains EINTR.
 +	(_gpgme_io_dup): Likewise.
 +	(_gpgme_io_connect): Likewise.
 +
 +2014-04-10  Werner Koch  <wk at gnupg.org>
 +
 +	Actually implement flags for gpgme_op_spawn.
 +	* src/spawn.c (gpgme_op_spawn_start, gpgme_op_spawn): Pass FLAGS dow
 +	to spawn_start and add FLAGS args along the call path.
 +	* src/engine-spawn.c (engspawn_start): Hack to automagically provide
 +	argv[0].
 +
 +	Add GPGME_PROTOCOL_SPAWN and gpgme_op_spawn.
 +	* src/gpgme.h.in (GPGME_PROTOCOL_SPAWN): New.
 +	(GPGME_SPAWN_DETACHED, GPGME_SPAWN_ALLOW_SET_FG): New.
 +	* src/gpgme.c (gpgme_set_protocol): Add new protocol.
 +	(gpgme_get_protocol_name): Ditto.
 +	* src/spawn.c: New.
 +	* src/libgpgme.vers, src/gpgme.def: Add new public functions.
 +	* src/engine-spawn.c: New.
 +	* src/Makefile.am: Add new files.
 +	* src/engine-backend.h (struct engine_ops): Add OPSPAWN.
 +	* src/engine.c (engine_ops): Add _gpgme_engine_ops_spawn.
 +	(gpgme_get_engine_info): Add Spawn to the list of protocols.
 +	(_gpgme_engine_op_spawn): New.
 +
 +	* src/gpgme-tool.c (gt_protocol_from_name): Add new protocol.
 +	(gt_spawn, cmd_spawn): New.
 +
 +	Add gpgme_get_dirinfo.
 +	* src/dirinfo.c (gpgme_get_dirinfo): New.
 +	* tests/t-engine-info.c (main): Print results from that function.
 +
 +	Make use of internal iospawn flags more flexible.
 +	* src/priv-io.h (IOSPAWN_FLAG_DETACHED): New. Renumber the others.
 +	* src/w32-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS process only if
 +	IOSPAWN_FLAG_DETACHED is given.
 +	* src/w32-qt-io.cpp (_gpgme_io_spawn): Ditto.
 +	* src/w32-glib-io.c (_gpgme_io_spawn): Ditto.
 +	* src/assuan-support.c (my_spawn): Pass IOSPAWN_FLAG_DETACHED flags.
 +	* src/dirinfo.c (read_gpgconf_dirs): Ditto.
 +	* src/engine-gpg.c (start): Ditto.
 +	* src/engine-gpgconf.c (gpgconf_read, gpgconf_write): Ditto.
 +	* src/version.c (_gpgme_get_program_version): Ditto.
 +
 +	Make sure a spawned process has all standard fds connected.
 +	* src/posix-io.c (_gpgme_io_spawn): dup /dev/null also to unsued
 +	stdout.
 +
 +2014-03-13  Werner Koch  <wk at gnupg.org>
 +
 +	Add configure option --enable-fixed-path.
 +	* configure.ac: Add option --enable-fixed-path.
 +	(FIXED_SEARCH_PATH): New ac_define.
 +	* src/posix-util.c (walk_path): Make use of the option.  Remove
 +	current directory from fallback PATH.
 +
 +2014-03-11  Werner Koch  <wk at gnupg.org>
 +
 +	Avoid pointer arithmetic on void pointer.
 +	* src/gpgme.c (gpgme_io_writen): Use new var buffer.
 +
 +	Change implementation return type to match the definition.
 +	* src/gpgme.c (gpgme_get_sub_protocol): Change return type to
 +	gpgme_protocol_t.
 +
 +2014-03-05  Daiki Ueno  <ueno at gnu.org>
 +
 +	doc: Fix documentation of struct data types.
 +	* gpgme.texi (Key Management): Document is_cardkey and card_number
 +	members of gpgme_subkey_t.
 +	(Decrypt): Remove description of the non-existent wrong_key_usage
 +	member of gpgme_recipient_t.
 +	(Verify): Document pka_address member of gpgme_signature_t.
 +	(Creating a Signature): Add missing member names in
 +	gpgme_new_signature_t.
 +	(Registering I/O Callbacks): Fix reference of gpgme_io_cbs struct.
 +
 +2014-02-21  Werner Koch  <wk at gnupg.org>
 +
 +	Always pass correct name to argv[0].  Ignore GPG_AGENT_INFO for gpg2.
 +	* src/dirinfo.c (WANT_GPG_ONE_MODE): New.
 +	(struct dirinfo): Add field "gpg_one_mode".
 +	(get_gpgconf_item): Set that field and return it if requested.
 +	(_gpgme_in_gpg_one_mode): New.
 +	* src/engine-gpg.c (build_argv): Check GPG_AGENT_INFO only in gpg-1
 +	mode.
 +
 +	* src/dirinfo.c (_gpgme_get_basename): New.
 +	* src/engine-g13.c (g13_new): Take argv[0] from the pgmname.
 +	* src/engine-gpgsm.c (gpgsm_new): Ditto.
 +	* src/engine-gpg.c (build_argv): Ditto. Add arg PGMNAME.
 +	(start): Pass PGMNAME to buildargv.
 +
 +2014-02-12  Werner Koch  <wk at gnupg.org>
 +
 +	Fix type inconsistency between gpgme.h and gpgme.c.
 +	* src/gpgme.c (gpgme_set_pinentry_mode): Fix type of MODE.
 +
 +2014-01-10  Werner Koch  <wk at gnupg.org>
 +
 +	Use the generic autogen.sh script.
 +	* autogen.rc: New.
 +	* Makefile.am (EXTRA_DIST): Add it.
 +	* autogen.sh: Update from GnuPG.
 +
 +	* configure.ac (AM_SILENT_RULES): New.
 +
 +2014-01-07  Werner Koch  <wk at gnupg.org>
 +
 +	Make gpgconf engine work again - fixes 02ba35c1.
 +	* src/gpgconf.c: Remove ENABLE_GPGCONF and move prototypes to ...
 +	* src/engine-backend.h: ... here.
 +
 +	Make gpgme_new return a proper error if no engines are installed.
 +	* src/engine.c (gpgme_get_engine_info): Improve error handling.
 +	(_gpgme_engine_info_copy): Ditto.
 +	* src/gpgme.c (gpgme_new): Return error GPG_ERR_NO_ENGINE.
 +
 +	Print the full PATH in the log if gpg was not found.
 +	* src/posix-util.c (walk_path): Keep a copy of PATH.
 +
 +2014-01-06  Werner Koch  <wk at gnupg.org>
 +
 +	Add global flags disable-gpgconf, gpgconf-name, and gpg-name.
 +	* src/gpgme.c (gpgme_set_global_flag): Add names "disable-gpgconf",
 +	"gpgconf-name", and "gpg-name".
 +	* src/dirinfo.c (_gpgme_dirinfo_disable_gpgconf): New.
 +	(get_gpgconf_item): Minor debug info change.
 +	* src/posix-util.c (default_gpg_name, default_gpgconf_name): Add vars.
 +	(_gpgme_set_default_gpg_name): New.
 +	(_gpgme_set_default_gpgconf_name): New.
 +	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.
 +	(walk_path): Add debug output on failure.
 +	* src/w32-util.c (default_gpg_name, default_gpgconf_name): Add vars.
 +	(replace_slashes): New.
 +	(get_basename): New.
 +	(_gpgme_set_default_gpg_name): New.
 +	(_gpgme_set_default_gpgconf_name): New.
 +	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.
 +
 +	* tests/t-engine-info.c (main): Add --verbose and --set-global-flag
 +	options.
 +
 +2013-12-27  Werner Koch  <wk at gnupg.org>
 +
 +	Locate engine names only at runtime and prefer GnuPG-2.
 +	* configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION)
 +	(NEED_G13_VERSION, NEED_GPGCONF_VERSION): Remove vars and all related
 +	checks.  Do not check for any engine version.
 +	(HAVE_ASSUAN): Remove AM conditional.
 +	* src/Makefile.am: Remove separate component vars and always build all
 +	engines but uiserver.
 +	* src/dirinfo.c (WANT_GPGCONF_NAME): New.
 +	(struct dirinfo): Add field gpgconf_name.
 +	(_gpgme_get_default_gpgconf_name): Use WANT_GPGCONF_NAME.
 +	(get_gpgconf_item): Set gpgconf name and adjust for _gpgme_get_*_path
 +	now returning a malloced string.
 +	* src/engine.c (engine_ops): Always init all engines except for
 +	uiserver.
 +	* src/posix-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path):
 +	Remove unused functions.
 +	(walk_path): New.
 +	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path ): Re-implement using
 +	walk_path.
 +	* src/w32-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path): Remove
 +	unused functions.
 +	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Return a malloced
 +	string.
 +	* src/engine-g13.c (g13_get_req_version): Use a hardwired string with
 +	the required version.  This info belongs into this file.
 +	* src/engine-gpg.c (gpg_get_req_version): Ditto.
 +	* src/engine-gpgconf.c (gpgconf_get_req_version): Ditto.
 +	* src/engine-gpgsm.c (gpgsm_get_req_version): Ditto.
 +	* tests/t-engine-info.c: Replace now useless test by an info output.
 +	* tests/gpg/Makefile.am (GPG, GPG_AGENT): Hardwire gpg and gpg-agent.
 +	* tests/gpgsm/Makefile.am (GPGSM): Hardwire gpgsm.
 +
 +2013-08-19  Werner Koch  <wk at gnupg.org>
 +
 +	Document API change for GPGME_EVENT_DONE from 2009.
 +	* doc/gpgme.texi (I/O Callback Interface): Fix description for the
 +	event arg.
 +
 +	Fix possible segv in the gpgme_op_card_edit.
 +	* src/edit.c (gpgme_op_edit_start, gpgme_op_card_edit_start): Do not
 +	deref a NULL KEY in TRACE_BEG.
 +
 +	tests: Fix NULL ptr deref in gpgsm/t-verify.
 +	* tests/gpgsm/t-verify.c (check_result): Do not dereference a sig or
 +	sig->fpr if NULL.
 +
 +2013-08-12  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.4.3.
 +	* configure.ac: Change LT version to C22/A11/R0.
 +
 +	Make test suite workable with GnuPG 2.1.
 +	* tests/gpg/start-stop-agent: New.
 +	* tests/gpg/initial.test: New.
 +	* tests/gpg/final.test: New.
 +	* tests/gpg/Makefile.am (c_tests): New.
 +	(TESTS): Move all to c_tests.  Add initial.test, final.test, and
 +	c_tests.
 +	(TESTS_ENVIRONMENT): Add C_ALL=C
 +	(private_keys): New.
 +	(EXTRA_DIST): Add new files.
 +	(./private-keys-v1.d/gpg-sample.stamp): Copy private keys.
 +	(all-local): Depend on gpg-sample.stamp.
 +	* tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F: New.
 +	* tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD: New.
 +	* tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66: New.
 +	* tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C: New.
 +	* tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD: New.
 +
 +	Improve detection of default gpg by configure.
 +	* configure.ac: Move test for gpgconf before test for gpg.
 +	(GPG, GPGSM, G13): Use gpgconf instead of AC_PATH_PROG if possible.
 +
 +2013-08-09  Werner Koch  <wk at gnupg.org>
 +
 +	Add function gpgme_data_identify.
 +	* src/gpgme.h.in (gpgme_data_type_t): New.
 +	(gpgme_data_identify): New prototype.
 +	* src/data-identify.c: New.
 +	* src/parsetlv.c, src/parsetlv.h: New.  Take from gpa.
 +	* src/libgpgme.vers, src/gpgme.def: Add gpgme_data_identify.
 +	* src/gpgme-tool.c (status): Add STATUS_IDENTIFY_RESULT.
 +	(gt_identify): New.
 +	(cmd_identify): New.
 +
 +	(hlp_passwd): Move close to cmd_passwd.
 +
 +2013-08-02  Werner Koch  <wk at gnupg.org>
 +
 +	Prefer GnuPG-2 engines over GnuPG-1.
 +	* src/util.h: Move some prototypes to ...
 +	* src/sys-util.h: New.
 +	* src/Makefile.am (main_sources): Add sys-util.h.
 +	* configure.ac (AH_VERBATIM): Add DIRSEP_C and DIRSEP_S.
 +	* src/dirinfo.c: Include sys-util.h.
 +	(WANT_GPG_NAME, WANT_GPGSM_NAME, WANT_G13_NAME)
 +	(WANT_UISRV_SOCKET): New.
 +	(dirinfo): Add corresponding fields.
 +	(parse_output): Add arg COMPONENTS and set new fields.
 +	(read_gpgconf_dirs): Add arg components and act upon it.
 +	(get_gpgconf_item): Call read_gpgconf_dirs two times.  Add debug
 +	output.
 +	(_gpgme_get_default_gpg_name): New.
 +	(_gpgme_get_default_gpgsm_name): New.
 +	(_gpgme_get_default_g13_name): New.
 +	(_gpgme_get_default_gpgconf_name): New.
 +	(_gpgme_get_default_uisrv_socket): New.
 +	* src/engine-gpg.c, src/engine-g13.c, src/engine-gpgconf.c
 +	* src/engine-gpgsm.c, src/engine-uiserver.c: Change to use
 +	_gpgme_get_default_ instead of those from sys-util.h.
 +	* src/posix-util.c (_gpgme_get_gpg_path): Include sys-util.h.
 +	(_gpgme_get_uiserver_socket_path): Remove.
 +	* src/w32-util.c (_gpgme_get_gpg_path): Include sys-util.h.
 +	(_gpgme_get_uiserver_socket_path): Remove.
 +
 +	w32: Try to locate gpg in the gpgme installation dir.
 +	* src/w32-util.c (my_hmodule): New.
 +	(wchar_to_utf8): New.
 +	(DllMain): New.
 +	(_gpgme_get_inst_dir): New.
 +	(find_program_in_dir): New.
 +	(find_program_in_inst_dir): Add arg INST_DIR.
 +	(_gpgme_get_gpg_path): Get inst_dir before acquiring the lock.
 +	(_gpgme_get_gpgconf_path): Ditto.
 +	(_gpgme_get_g13_path): Ditto.
 +	(_gpgme_get_w32spawn_path): Ditto.
 +
 +2013-07-31  Werner Koch  <wk at gnupg.org>
 +
 +	doc: Add --binary option for the OUTPUT command of an uiserver.
 +
 +2013-06-18  Werner Koch  <wk at gnupg.org>
 +
 +	Add function gpgme_signers_count.
 +	* src/signers.c (gpgme_signers_count): New.
 +	* src/libgpgme.vers, src/gpgme.def: Add as external symbol.
 +	* src/gpgme.h.in: Add prototype.
 +
 +2013-05-28  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.4.2.
 +	* configure.ac: Set LT version to C21/A10/R0.
 +
 +	Add convenience macro GPGME_PROTOCOL_OPENPGP.
 +	* src/gpgme.h.in (GPGME_PROTOCOL_OPENPGP): New.
 +
 +2013-05-23  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Fix installing of .def file.
 +	* src/Makefile.am (install-def-file): Create libdir first.
 +
 +	Fix libtool 2.4.2 to correctly detect .def files.
 +	* build-aux/ltmain.sh (sed_uncomment_deffile): New.
 +	(orig_export_symbols): Uncomment def file before testing for EXPORTS.
 +	* m4/libtool.m4: Do the same for the generated code.
 +
 +2013-05-22  Werner Koch  <wk at gnupg.org>
 +
 +	Support --no-encrypt-to also with gpgme_op_encrypt_sign.
 +	* src/engine-gpg.c (gpg_encrypt_sign): Support the
 +	GPGME_ENCRYPT_NO_ENCRYPT_TO flag.
 +
 +2013-05-22  Werner Koch  <wk at gnupg.org>
 +	    Kyle L. Huff  <g10bts at curetheitch.com>
 +
 +	Allow symmetric encryption with gpgme_op_encrypt_sign.
 +	* src/encrypt-sign.c (encrypt_sym_status_handler): New.
 +	(encrypt_sign_start): Handle recp == NULL case.
 +	* src/engine-gpg.c (gpg_encrypt_sign): Implement symmetric encryption.
 +	* tests/gpg/t-encrypt-sign.c (main): Add a test case for this.
 +
 +2013-05-22  Werner Koch  <wk at gnupg.org>
 +
 +	gpgme-tool: Allow for symmetric encryption.
 +	* src/gpgme-tool.c (gt_sign_encrypt): Pass NULL for recp if no
 +	recipients are given.
 +
 +	tests: Print auditlog in plain text format.
 +	* tests/gpgsm/t-verify.c (show_auditlog): Use plain text format.
 +
 +2013-05-18  Werner Koch  <wk at gnupg.org>
 +
 +	Improve C++ compatibility of previous patch.
 +	* src/gpgme.h.in: Move gpgme_sssize_t and gpgme_off_t typedefs into
 +	the extern "C" scope.
 +
 +2013-05-16  Werner Koch  <wk at gnupg.org>
 +
 +	Make definition of off_t robust against misbehaving w32 toolchains.
 +	* configure.ac (NEED__FILE_OFFSET_BITS): Change to define gpgme_off_t
 +	and gpgme_ssize_t.
 +	(API__OFF_T, API__SSIZE_T): New ac_subst.
 +	* src/gpgme.h.in: Replace all ssize_t and off_t by ac_subst macros.
 +	* src/assuan-support.c, src/ath-pthread.c, src/ath.c, src/ath.h
 +	* src/data-compat.c, src/data-fd.c, src/data-mem.c, src/data-stream.c
 +	* src/data-user.c, src/data.c, src/data.h, src/engine-gpgsm.c
 +	* src/engine-uiserver.c, src/gpgme-tool.c, src/gpgme.c: Replace off_t
 +	by gpgme_off_t and sszie_t by gpgme_ssize_t.
 +	* src/ath-pthread.c, src/ath.h: Include gpgme.h.
 +
 +2013-05-11  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Change the way the I/O threads are cleaned up.
 +	* src/w32-io.c (reader_context_s, create_reader)
 +	(writer_context_s, create_writer): Rename STOPPED to CLOSE_EV.
 +	(reader, writer): Remove setting of STOPPED.  Wait for CLOSE_EV and
 +	then release the context.
 +	(destroy_reader, destroy_writer): Do not wait but set the CLOSE_EV.
 +	(kill_reader, kill_writer): Remove.
 +	(_gpgme_io_close): Add code from kill_reader and kill_writer.
 +
 +2013-05-08  Werner Koch  <wk at gnupg.org>
 +
 +	Fix hang in socket closing.
 +	* src/w32-io.c (destroy_reader): Call shutdown.
 +	(reader): Do not print an error in the shutdown case.
 +
 +	Improve debug output of the I/O reader and writer.
 +	* src/w32-io.c (reader, writer): Also print file_sock.
 +
 +2013-05-06  Werner Koch  <wk at gnupg.org>
 +
 +	Simplify a debug code function.
 +	* src/debug.c (_gpgme_debug): Remove static space string.
 +
 +2013-05-01  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.4.1.
 +	* configure.ac: Bump LT version to C20/A9/R1.
 +
 +	Disable fd-passing for Apple.
 +	* configure.ac: Disable fd-passing by default for Apple.
 +
 +2013-04-30  Werner Koch  <wk at gnupg.org>
 +
 +	Allow reading of long gpgconf output lines.
 +	* src/engine-gpgconf.c (gpgconf_read): Rewrite to allow for line
 +	lengths up to 64k.
 +
 +2013-04-29  Werner Koch  <wk at gnupg.org>
 +
 +	Fix for i686-w64-mingw32.
 +	* configure.ac (NEED__FILE_OFFSET_BITS): Do not define under Windows.
 +
 +2013-02-26  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.4.0.
 +	* configure.ac: Bump LT version to C20/A9/R0.
 +
 +	Enable FD passing and thus building of the UI-server.
 +	* configure.ac: Make --enable-fd-passing the default.
 +	* src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Syntax fix.
 +
 +	w32: Hacks for building with 32 bit mingw64.
 +	* configure.ac (INSERT__TYPEDEFS_FOR_GPGME_H): Add hacks for 32 bit
 +	mingw64.
 +	* src/util.h [W32]: Include winsock2.h before windows to make mingw64
 +	happy.
 +	* src/w32-util.c (_WIN32_IE): Need to use 5.1 for mingw64.
 +
 +	Improve missing libgpg-error reporting in configure.
 +	* configure.ac (NEED_GPG_ERROR_VERSION): New.  Improve reporting for
 +	missing libgpg-error.
 +
 +	Change the various version numbers to the new scheme.
 +	* configure.ac: Rename my_foo variables to mym4_foo variables to make
 +	clear that they are processed by m4.
 +	(VERSION_NUMBER): New ac_subst.
 +	(AH_BOTTOM): Add CRIGHTBLURB macro.
 +	(BUILD_REVISION, BUILD_FILEVERSION, BUILD_TIMESTAMP): Change them to
 +	work similar to libgpg-error et al.
 +	* src/versioninfo.rc.in: Remove use of BUILD_NUMBER and get it in line
 +	with gpg-error et al.
 +	* src/version.c (cright_blurb): New.
 +	(gpgme_check_version_internal): Add magic to display the above
 +	information.
 +	* tests/t-version.c (main): Add option --verbose.
 +
 +	Update GnuPG related m4 files.
 +	* m4/gpg-error.m4: Update from libgpg-error.
 +	* m4/libassuan.m4: Update from libassuan.
 +
 +	Update helper scripts.
 +	* configure.ac: Use AC_CONFIG_AUX_DIR.  Remove args from
 +	AM_INIT_AUTOMAKE.  Replace AM_CONFIG_HEADER by AC_CONFIG_HEADER.
 +	* compile, config.guess, config.sub, depcomp, install-sh, ltmain.sh
 +	* mkinstalldirs, texinfo.texi: Move to build-aux/ and update from
 +	gnulib (c042abf).
 +	* build-aux/mdate-sh, build-aux/missing: Install via automake -a -c.
 +	Update autogen.sh for changed config dir.
 +	* autogen.sh: Adjust for scripts dir change.  Update W32 toolprefix
 +	list.
 +
 +2013-02-25  Werner Koch  <wk at gnupg.org>
 +
 +	Remove included gitlog-to-changelog.
 +	* build-aux/gitlog-to-changelog: Remove.
 +	* configure.ac (GITLOG_TO_CHANGELOG): Default to just
 +	gitlog-to-changelog.
 +
 +2013-02-12  Werner Koch  <wk at gnupg.org>
 +
 +	Add macro GPGME_VERSION_NUMBER.
 +	* src/gpgme.h.in (GPGME_VERSION_NUMBER): New.
 +	* configure.ac (my_version_major, my_version_minor)
 +	(my_version_micro): New m4 macros.
 +	(my_version): Build from new m4 macros.
 +	(VERSION_NUMBER): New ac_subst.
 +
 +	Add public function gpgme_get_pinentry_mode.
 +	* src/gpgme.c (gpgme_get_pinentry_mode): New.
 +
 +2013-02-07  Werner Koch  <wk at gnupg.org>
 +
 +	gpgme_tool: Support GPG's new pinentry-mode.
 +	* src/gpgme-tool.c (log_error): Do not always print the error source.
 +	(gt_set_pinentry_mode): New.
 +	(server_passphrase_cb): New.
 +	(cmd_pinentry_mode): New.
 +	(register_commands): Add cmd_pinentry_mode.
 +	(options): Add option --gpg-binary.
 +	(struct args): Add field gpg-binary.
 +	(parse_options, main): Implement that option.
 +
 +	Add public function gpgme_set_pinentry_mode.
 +	* src/gpgme.c (gpgme_set_pinentry_mode): New.
 +	* src/gpgme.h.in (gpgme_pinentry_t): New.
 +	(gpgme_set_pinentry_mode): New.
 +	* src/context.h (struct gpgme_context): Add field pinentry_mode.
 +	* src/engine-backend.h (struct engine_ops): Add field
 +	set_pinentry_mode.
 +	* src/engine-gpg.c (struct engine_gpg): Add field pinentry_mode.
 +	(build_argv): Implement pinentry_mode.
 +	(gpg_set_pinentry_mode): New.
 +	(_gpgme_engine_ops_gpg): Register gpg_set_pinentry_mode.
 +
 +	Add public function gpgme_io_writen.
 +	* src/gpgme.c (gpgme_io_read): New.
 +
 +2012-11-16  Werner Koch  <wk at gnupg.org>
 +
 +	Improve parsing of the GIT revision number.
 +	* configure.ac (git_revision): Use git rev-parse.
 +
 +	Fix non-portable use of chmod in autogen.sh.
 +	* autogen.sh: Remove option -c from chmod.
 +
 +2012-11-15  Werner Koch  <wk at gnupg.org>
 +
 +	Make _gpgme_encode_percent_string work for memory buffers.
 +	* src/conversion.c (D_gpgme_encode_percent_string): Remove stray
 +	semicolon.  Reported by Xi Wang.
 +
 +2012-10-24  Werner Koch  <wk at gnupg.org>
 +
 +	Make local variables configure hack more robust.
 +	* configure.ac (emacs_local_vars_begin): Use extra m4 quoting so that
 +	newer Emscasen won't take it up as Local Variables for this file.
 +
 +	Fix ttyname problem on Android.
 +	* configure.ac: Define macro and conditional HAVE_ANDROID_SYSTEM.
 +	* m4/gnupg-ttyname.m4: Force use of replacement on Android.
 +	* src/ttyname_r.c: Ditto.
 +
 +	tests: Adhere to the docs and call gpgme_check_version.
 +	* tests/t-engine-info.c: Call gpgme_check_version.
 +
 +2012-10-19  Werner Koch  <wk at gnupg.org>
 +
 +	Trace the use of GPG_ERR_INV_ENGINE.
 +	* src/debug.h: Include "gpgme.h"
 +	(_gpgme_trace_gpgme_error): New.
 +	(trace_gpg_error): New macro.  Use it in all files where we return
 +	GPG_ERR_INV_ENGINE; also "include debug.h" as needed.
 +
 +	Avoid warning about initialized but not used variable.
 +	* src/engine-gpgsm.c (gpgsm_set_fd): Do not set DIR if not needed.
 +
 +2012-10-11  Werner Koch  <wk at gnupg.org>
 +
 +	gpgme-tool: Use membuf functions to build up strings.
 +	* src/gpgme-tool.c (clear_membuf, init_membuf, put_membuf)
 +	(put_membuf_str, get_membuf, peek_membuf): Add membuf functions.
 +	Take from GnuPG master's common/membuf.[ch] and patch for our use.
 +	(result_xml_escape): Rewrite using new functions.
 +
 +	gpgme-tool: Change license from LPGLv2+ to GPLv3+
 +	* src/gpgme-tool.c: Change license notice.
 +
 +2012-10-11  W. Trevor King  <wking at tremily.us>
 +
 +	gpgme-tool: escape special characters in output XML data (<, >, and &).
 +
 +	src/gpgme-tool.c (result_xml_escape_replacement, result_xml_escape):
 +	New.
 +	(result_xml_tag_data): Use result_xml_escape() to escape data.
 +	(result_add_error): Use unescaped < and >.
 +
 +	gpgme-tool: Fix chain_id -> chain-id in KEYLIST XML.
 +
 +	src/gpgme-tool.c (cmd_keylist): Use <chain-id> instead of <chain_id>.
 +
 +2012-09-28  W. Trevor King  <wking at tremily.us>
 +
 +	gpgme-tool: Return more detailed XML from KEYLIST.
 +	src/gpgme-tool.c (cmd_keylist): Convert output from a list of
 +	to more detailed XML.
 +	(xml_preamble1, xml_preamble2, xml_end): Make global.
 +	(result_add_protocol, result_add_validity): New functions for
 +	generating XML from GPGME types.
 +	(result_add_string): Treat NULL strings as "".
 +	(result_xml_tag_data): Make 'data' a 'const char' so we can use the
 +	value returned by gpgme_get_protocol_name directly.
 +
 +	gpgme-tool: Initialize input_fd and output_fd.
 +	* src/gpgme-tool.c (gpgme_server): Initialize input_fd and output_fd.
 +
 +2012-09-26  Werner Koch  <wk at gnupg.org>
 +
 +	gpgme-tool: Fix handling of file descriptors.
 +	* src/gpgme-tool.c (server_reset_fds): Use close/CloseHandle instead
 +	of the assuan close functions.
 +	(_cmd_decrypt_verify, _cmd_sign_encrypt, cmd_verify, cmd_import)
 +	(cmd_export, cmd_genkey, cmd_getauditlog): Use SERVER object instead
 +	of assuan_get_*_fd functions.
 +
 +2012-09-25  Werner Koch  <wk at gnupg.org>
 +
 +	Document contribution rules.
 +	* doc/HACKING (License policy): New.
 +	* doc/DCO: New.
 +	* AUTHORS: Change maintainer address.
 +
 +	Add gpgme_set_global_flag to help debugging.
 +	* src/gpgme.c (gpgme_set_global_flag): New.
 +	* src/gpgme.h.in (gpgme_set_global_flag): New.
 +	* src/gpgme.def, src/libgpgme.vers: Add new public function.
 +	* src/debug.c (envvar_override): New.:
 +	(_gpgme_debug_set_debug_envvar): New.
 +	(debug_init): Take ENVVAR_OVERRIDE in account.
 +
 +2012-07-28  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
 +
 +	Add two recent contributors.
 +
 +	Fix sign error in position calculation for mem_seek.
 +	* data-mem.c (mem_seek): Fix sign error in position calculation.
 +
 +	Allow null context on gpgme_set_locale.
 +	* gpgme.c (gpgme_set_locale): Allow CTX to be a null pointer.
 +
 +2012-07-13  Werner Koch  <wk at gnupg.org>
 +
 +	Do not include the removed file status-table.h.
 +	* src/engine-uiserver.c: Remove status-table.h which is not anymore
 +	built.  Fixes bug#1412.
 +
 +	Make handling of new conf values more robust (bug#1413).
 +	* src/engine-gpgconf.c (arg_to_data): Allow for NULL as value.string.
 +
 +2012-05-02  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.3.2.
 +	* configure.ac: Bump LT version to C19/A8/R1.
 +
 +	* configure.ac (GITLOG_TO_CHANGELOG): Define.
 +	* Makefile.am (gen-ChangeLog): Use it.
 +
 +	Remove unused pth stuff from gpgme-config.
 +	* src/gpgme-config.in: Remove unused pth stuff.
 +
 +	Update signature summary for the case of missing X.509 keys.
 +	* src/verify.c (gpgme_op_verify_result): Update summary field.
 +
 +2012-04-30  Werner Koch  <wk at gnupg.org>
 +
 +	Fix timestamp parsing for y2038 hack.
 +	* src/conversion.c (_gpgme_parse_timestamp): Set ENDP before year 2038
 +	check.
 +
 +2012-04-20  W. Trevor King  <wking at drexel.edu>
 +
 +	.gitignore: flesh out rules and add subdirectory-.gitignores.
 +
 +2012-04-13  W. Trevor King  <wking at drexel.edu>
 +
 +	status-table.c: include string.h for strcmp.
 +	* status-table.c: include string.h to avoid `warning: implicit
 +	declaration of function 'strcmp'`.
 +
 +2012-04-03  W. Trevor King  <wking at drexel.edu>
 +
 +	gpgme-tool: add help messages for a number of commands.
 +	* src/gpgme-tool.c (hlp_engine, hlp_sub_protocol, hlp_armor, hlp_textmode,
 +	hlp_include_certs, hlp_keylist_mode, hlp_input, hlp_output, hlp_message,
 +	hlp_recipient, hlp_signer, hlp_signers_clear, hlp_decrypt, hlp_decrypt_verify,
 +	hlp_encrypt, hlp_sign_encrypt, hlp_sign, hlp_verify, hlp_import): New strings.
 +	(hlp_protocol): Fix typo.
 +	(register_commands): Add documentation strings.
 +	(doc): Mention Assuan.
 +
 +	uiserver.texi: fix decryption -> encryption typo in PREP_ENCRYPT discussion.
 +	* doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.
 +
 +	Update Werner Koch's distribution signing key in the README.
 +	* README: Update signing key.
 +
 +2012-03-12  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
 +
 +	Do not rely on glibc name of syscall.
 +	* src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.
 +
 +	Update config.guess and config.sub to latest version.
 +	* config.guess, config.sub: Update to latest version.
 +
 +2012-02-14  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
 +
 +	Rework status table to be less dynamically generated.
 +	* src/Makefile.am (EXTRA_DIST): Remove mkstatus.
 +	(BUILT_SOURCE, MOSTLYCLEANFILES): Remove.
 +	(main_sources): Remove status-table.h, extra-stati.h.
 +	Add status-table.c.
 +	(status-table.h): Remove rules for built source.
 +	* src/decrypt.c: Don't include extra-stati.h.
 +	* src/engine-gpg.c: Don't include status-table.h.
 +	(status_cmp): Remove function.
 +	(read_status): Use _gpgme_parse_status.
 +	* src/engine-gpgsm.c: Don't include status-table.h.
 +	(status_cmp, parse_status): Remove function.
 +	(gpgsm_assuan_simple_command, status_handler): Use _gpgme_parse_status.
 +	* src/engine-uiserver.c: Don't include status-table.h.
 +	(status_cmp, parse_status): Remove function.
 +	(uiserver_assuan_simple_command, status_handler): Use
 +	_gpgme_parse_status.
 +	* src/gpgme.h.in (gpgme_status_code_t): Add
 +	GPGME_STATUS_DECRYPTION_INFO.
 +	* src/util.h (_gpgme_status_init,_gpgme_parse_status): New declaration.
 +	* src/status-table.c: New file.
 +	* src/extra-stati.h, src/mkstatus: Files removed.
 +	* version.c (do_subsystem_inits): Call _gpgme_status_init.
 +
 +2012-02-08  Marcus Brinkmann  <mb at g10code.com>
 +
 +	Use gpgme interface for error handling to avoid linking with gpg-error.
 +	* tests/t-data.c, tests/run-export.c, tests/run-keylist.c,
 +	tests/run-support.h, tests/run-verify.c, tests/gpg/t-decrypt-verify.c,
 +	tests/gpg/t-edit.c, tests/gpg/t-eventloop.c, tests/gpg/t-keylist-sig.c,
 +	tests/gpg/t-keylist.c, tests/gpg/t-support.h, tests/gpg/t-trustlist.c,
 +	tests/gpg/t-verify.c, tests/gpg/t-wait.c, tests/gpgsm/cms-decrypt.c,
 +	tests/gpgsm/cms-keylist.c, tests/gpgsm/t-keylist.c,
 +	tests/gpgsm/t-support.h, tests/gpgsm/t-verify.c,
 +	tests/opassuan/t-command.c: Use gpgme interface for gpg-error functions.
 +
 +	Link the thread test to pthread.
 +	* tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.
 +
 +	Link gpgme-tool directly to libassuan, as it uses its interface.
 +	* src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS at .
 +
 +2012-01-19  Werner Koch  <wk at gnupg.org>
 +
 +	Support the mingw-w64 toolchain.
 +	* autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.
 +
 +	Fix Solaris problems with ttyname_r.
 +	* m4/gnupg-ttyname.m4: New.  Based on ttyname_r from gnulib.
 +	* src/ttyname_r.c (_gpgme_ttyname_r): Rename from ttyname_r.
 +	Implement hacks required for Solaris and possible other non-fully
 +	Posix systems.
 +	* src/util.h: Include unistd.h.  Redefine ttyname_r depending on
 +	REPLACE_TTYNAME_R and put it into the gpgme name space.
 +
 +	Try to make configure.ac a bit smaller.
 +	* configure.ac: Move header checks.
 +
 +	For W32 use a build number instead of abbreviated commit id.
 +	We would need to use a shortened commit id so that it fits into an 16
 +	bit Windows variable.  Further it is a random number and not something
 +	increasing.  Thus a build number made up from the day of the year and
 +	the hour is much more useful to describe a build number for a specific
 +	revision.
 +	* configure.ac [W32]: Replace BUILD_REVISION by BUILD_NUMBER.
 +	* src/versioninfo.rc.in: Ditto.
 +
 +	Adjust configure.ac for modern autoconf.
 +	* configure.ac: Minor cleanups.
 +
 +	Update to libtool 2.4.2.
 +	* ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4,
 +	* m4/lt~obsolete.m4: Update.
 +
 +	Add ttyname_r check macro from gnulib.
 +	* m4/gnupg-ttyname.m4: New. Taken from current gnulib.
 +
 +2011-12-02  Werner Koch  <wk at gnupg.org>
 +
 +	Generate the ChangeLog from commit logs.
 +	* build-aux/gitlog-to-changelog: New script.  Taken from gnulib.
 +	* build-aux/git-log-fix: New file.
 +	* build-aux/git-log-footer: New file.
 +	* build-aux/git-hook/commit-msg: New script.
 +	* doc/HACKING: New file.
 +	* ChangeLog: New file.
 +	* Makefile.am (EXTRA_DIST): Add new files.
 +	(gen-ChangeLog): New.
 +	(dist-hook): Run gen-ChangeLog.
 +	* autogen.sh: Install commit-msg hook for git.
 +
 +	Rename all ChangeLog files to ChangeLog-2011.
 +
 +2011-12-02  Werner Koch  <wk at gnupg.org>
 +
 +	NB: Changes done before December 1st, 2011 are described in
 +	per directory files named ChangeLog-2011.  See doc/HACKING for
 +	details.
 +
 +        -----
 +        Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 +                      2010, 2011, 2012, 2013 g10 Code GmbH
 +
 +	Copying and distribution of this file and/or the original GIT
 +	commit log messages, with or without modification, are
 +	permitted provided the copyright notice and this notice are
 +	preserved.
diff --cc VERSION
index 943f9cb,0000000..27f9cd3
mode 100644,000000..100644
--- a/VERSION
+++ b/VERSION
@@@ -1,1 -1,0 +1,1 @@@
- 1.7.1
++1.8.0
diff --cc doc/defsincdate
index 0df13bf,0000000..33f93d6
mode 100644,000000..100644
--- a/doc/defsincdate
+++ b/doc/defsincdate
@@@ -1,1 -1,0 +1,1 @@@
- 1440576360
++1479299220
diff --cc gpgme.spec
index e9e8c5f,0000000..afba50f
mode 100644,000000..100644
--- a/gpgme.spec
+++ b/gpgme.spec
@@@ -1,67 -1,0 +1,67 @@@
 +# This is a template.  The dist target uses it to create the real file.
 +Summary: GPGME - GnuPG Made Easy
 +Name: gpgme
- Version: 1.7.1
++Version: 1.8.0
 +Release: 1
- URL: http://www.gnupg.org/gpgme.html
++URL: https://gnupg.org/gpgme.html
 +Source: ftp://ftp.gnupg.org/gcrypt/alpha/gpgme/%{name}-%{version}.tar.gz
 +Group: Development/Libraries
 +Copyright: GPL
 +BuildRoot: %{_tmppath}/%{name}-%{version}
 +BuildRequires: make
 +Prereq: /sbin/ldconfig /sbin/install-info
 +Requires: gnupg
 +
 +%description
 +GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier
 +for applications. It provides a High-Level Crypto API for encryption,
 +decryption, signing, signature verification and key management.
 +
 +%prep
 +%setup -q
 +
 +%build
 +CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
 +./configure --prefix=/usr
 +make
 +
 +%install
 +rm -fr $RPM_BUILD_ROOT
 +mkdir -p $RPM_BUILD_ROOT
 +make install prefix=$RPM_BUILD_ROOT/usr infodir=$RPM_BUILD_ROOT%{_infodir}
 +rm -f $RPM_BUILD_ROOT%{_infodir}/dir
 +
 +%clean
 +rm -fr $RPM_BUILD_ROOT
 +make distclean
 +
 +%post
 +/sbin/ldconfig
 +/sbin/install-info %{_infodir}/gpgme.info.gz %{_infodir}/dir
 +
 +%preun
 +if [ "$1" = 0 ]; then
 + /sbin/install-info --delete %{_infodir}/gpgme.info.gz %{_infodir}/dir
 +fi
 +
 +%postun
 +/sbin/ldconfig
 +
 +%files
 +%defattr(-,root,root)
 +%doc COPYING COPYING.LESSER AUTHORS README INSTALL NEWS ChangeLog TODO THANKS
 +%attr(0755,root,root) %{_bindir}/gpgme-config
 +%attr(0755,root,root) %{_libdir}/*gpgme.so*
 +%attr(0755,root,root) %{_libdir}/*gpgme.la
 +%attr(0644,root,root) %{_libdir}/*gpgme.a
 +%{_includedir}/gpgme.h
 +%{_datadir}/aclocal/gpgme.m4
 +%{_infodir}/gpgme.info*
 +
 +%changelog
 +* Sat Aug 30 2003 Robert Schiele <rschiele at uni-mannheim.de>
 +- %{_infodir}/dir is not packaged, remove to prevent checking failure
 +* Mon Jul 01 2002 Wojciech Polak <polak at lodz.pdi.net>
 +- initial specfile release for GPGME.
 +
 +# EOF

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list