[Pkg-gnupg-commit] [gpgme] 96/103: New upstream version 1.10.0

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Dec 14 18:53:08 UTC 2017


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

dkg pushed a commit to branch master
in repository gpgme.

commit f2411bc7a5b4473487d263f1dd82d9ce3e14feee
Merge: b8f9796 6a42eb5
Author: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
Date:   Thu Dec 14 12:47:55 2017 -0500

    New upstream version 1.10.0

 AUTHORS                                            |  31 +-
 ChangeLog                                          | 832 +++++++++++++++++++++
 NEWS                                               |  52 +-
 README                                             |  39 +-
 VERSION                                            |   2 +-
 acinclude.m4                                       |   2 +-
 autogen.sh                                         | 136 +++-
 configure.ac                                       |  47 +-
 doc/defsincdate                                    |   2 +-
 doc/gpgme.texi                                     | 519 +++++++++++--
 doc/texinfo.tex                                    |  10 +-
 doc/uiserver.texi                                  |   4 +-
 gpgme.spec                                         |   2 +-
 lang/cpp/Makefile.am                               |   3 +-
 lang/cpp/README                                    |   2 +-
 lang/cpp/src/GpgmeppConfig.cmake.in.in             |   2 +-
 lang/cpp/src/Makefile.am                           |   3 +-
 lang/cpp/src/callbacks.cpp                         |   2 +
 lang/cpp/src/callbacks.h                           |   2 +
 lang/cpp/src/configuration.cpp                     |   2 +
 lang/cpp/src/configuration.h                       |  10 +-
 lang/cpp/src/context.cpp                           |  50 ++
 lang/cpp/src/context.h                             |  26 +
 lang/cpp/src/context_p.h                           |   2 +
 lang/cpp/src/context_vanilla.cpp                   |   2 +
 lang/cpp/src/data_p.h                              |   2 +
 lang/cpp/src/decryptionresult.cpp                  |   8 +
 lang/cpp/src/decryptionresult.h                    |   3 +
 lang/cpp/src/defaultassuantransaction.cpp          |   2 +
 lang/cpp/src/defaultassuantransaction.h            |   2 +
 lang/cpp/src/editinteractor.cpp                    |   2 +
 lang/cpp/src/editinteractor.h                      |   2 +
 lang/cpp/src/encryptionresult.cpp                  |   2 +
 lang/cpp/src/encryptionresult.h                    |   2 +
 lang/cpp/src/engineinfo.cpp                        |   2 +
 lang/cpp/src/engineinfo.h                          |  25 +-
 lang/cpp/src/error.h                               |   2 +
 lang/cpp/src/eventloopinteractor.cpp               |   2 +
 lang/cpp/src/eventloopinteractor.h                 |   2 +
 lang/cpp/src/exception.cpp                         |   2 +
 lang/cpp/src/exception.h                           |   2 +
 lang/cpp/src/global.h                              |   2 +
 lang/cpp/src/gpgadduserideditinteractor.cpp        |   2 +
 lang/cpp/src/gpgadduserideditinteractor.h          |   2 +
 lang/cpp/src/gpgagentgetinfoassuantransaction.cpp  |   2 +
 lang/cpp/src/gpgagentgetinfoassuantransaction.h    |   2 +
 lang/cpp/src/gpggencardkeyinteractor.cpp           |   3 +-
 lang/cpp/src/gpggencardkeyinteractor.h             |   3 +-
 lang/cpp/src/gpgmefw.h                             |   2 +
 lang/cpp/src/gpgmepp_export.h                      |   3 +-
 lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp    |   2 +
 lang/cpp/src/gpgsetexpirytimeeditinteractor.h      |   2 +
 lang/cpp/src/gpgsetownertrusteditinteractor.cpp    |   2 +
 lang/cpp/src/gpgsetownertrusteditinteractor.h      |   2 +
 lang/cpp/src/gpgsignkeyeditinteractor.cpp          |   6 +
 lang/cpp/src/gpgsignkeyeditinteractor.h            |   2 +
 lang/cpp/src/importresult.cpp                      |   2 +
 lang/cpp/src/importresult.h                        |   2 +
 lang/cpp/src/interfaces/assuantransaction.h        |   4 +-
 lang/cpp/src/interfaces/dataprovider.h             |   2 +
 lang/cpp/src/interfaces/passphraseprovider.h       |   2 +
 lang/cpp/src/interfaces/progressprovider.h         |   2 +
 lang/cpp/src/key.cpp                               |  13 +-
 lang/cpp/src/keygenerationresult.cpp               |   2 +
 lang/cpp/src/keygenerationresult.h                 |   2 +
 lang/cpp/src/keylistresult.cpp                     |   2 +
 lang/cpp/src/keylistresult.h                       |   2 +
 lang/cpp/src/notation.h                            |   2 +
 lang/cpp/src/result.h                              |   2 +
 lang/cpp/src/result_p.h                            |   2 +
 lang/cpp/src/scdgetinfoassuantransaction.cpp       |   2 +
 lang/cpp/src/scdgetinfoassuantransaction.h         |   2 +
 lang/cpp/src/signingresult.cpp                     |   2 +
 lang/cpp/src/signingresult.h                       |   2 +
 lang/cpp/src/swdbresult.cpp                        |   3 +-
 lang/cpp/src/swdbresult.h                          |   5 +-
 lang/cpp/src/tofuinfo.cpp                          |   3 +-
 lang/cpp/src/tofuinfo.h                            |   3 +-
 lang/cpp/src/trustitem.cpp                         |   2 +
 lang/cpp/src/trustitem.h                           |   2 +
 lang/cpp/src/util.h                                |   2 +
 lang/cpp/src/verificationresult.cpp                |   8 +
 lang/cpp/src/verificationresult.h                  |   3 +
 lang/cpp/src/vfsmountresult.cpp                    |   4 +-
 lang/python/MANIFEST.in                            |   3 +-
 lang/python/Makefile.am                            | 106 ++-
 lang/python/examples/exportimport.py               |   2 +-
 lang/python/gpgme-h-clean.py                       |  53 --
 lang/python/gpgme.i                                |   5 +
 lang/python/setup.py.in                            | 140 +++-
 lang/python/{gpg => src}/__init__.py               |   0
 lang/python/{gpg => src}/callbacks.py              |   0
 lang/python/{gpg => src}/constants/__init__.py     |   0
 lang/python/{gpg => src}/constants/create.py       |   0
 .../python/{gpg => src}/constants/data/__init__.py |   0
 .../python/{gpg => src}/constants/data/encoding.py |   0
 lang/python/{gpg => src}/constants/event.py        |   0
 lang/python/{gpg => src}/constants/import.py       |   0
 .../{gpg => src}/constants/keylist/__init__.py     |   0
 lang/python/{gpg => src}/constants/keylist/mode.py |   0
 lang/python/{gpg => src}/constants/keysign.py      |   0
 lang/python/{gpg => src}/constants/md.py           |   0
 lang/python/{gpg => src}/constants/pk.py           |   0
 lang/python/{gpg => src}/constants/protocol.py     |   0
 lang/python/{gpg => src}/constants/sig/__init__.py |   0
 lang/python/{gpg => src}/constants/sig/mode.py     |   0
 lang/python/{gpg => src}/constants/sig/notation.py |   0
 lang/python/{gpg => src}/constants/sigsum.py       |   0
 lang/python/{gpg => src}/constants/status.py       |   0
 .../python/{gpg => src}/constants/tofu/__init__.py |   0
 lang/python/{gpg => src}/constants/tofu/policy.py  |   0
 lang/python/{gpg => src}/constants/validity.py     |   0
 lang/python/{gpg => src}/core.py                   | 108 ++-
 lang/python/{gpg => src}/errors.py                 | 109 ++-
 lang/python/{gpg => src}/results.py                |   4 +-
 lang/python/{gpg => src}/util.py                   |   0
 lang/python/tests/Makefile.am                      |  15 +-
 lang/python/tests/final.py                         |   2 +
 lang/python/tests/run-tests.py                     |  30 +-
 lang/python/tests/support.py                       |   6 +
 lang/python/tests/t-callbacks.py                   |   3 +-
 lang/python/tests/t-data.py                        |   8 +
 lang/python/tests/t-edit.py                        |   3 +-
 lang/python/tests/t-encrypt-sym.py                 |   3 +-
 lang/python/tests/t-file-name.py                   |   1 +
 lang/python/tests/t-idiomatic.py                   |   1 +
 lang/python/tests/t-keylist-from-data.py           |   2 -
 lang/python/tests/t-keylist.py                     |   3 +
 lang/python/tests/t-protocol-assuan.py             |   2 +
 lang/python/tests/t-quick-key-manipulation.py      |   5 +
 lang/python/tests/t-sig-notation.py                |   1 +
 lang/python/tests/t-trustlist.py                   |   1 +
 lang/python/tests/t-verify.py                      |   1 +
 lang/python/tests/t-wait.py                        |   1 +
 lang/python/tests/t-wrapper.py                     |   2 +
 lang/python/{gpg => }/version.py.in                |   0
 lang/qt/Makefile.am                                |   3 +-
 lang/qt/README                                     |   4 +-
 lang/qt/doc/Makefile.am                            |   3 +-
 lang/qt/src/Makefile.am                            |  12 +-
 lang/qt/src/abstractimportjob.h                    |   3 +-
 lang/qt/src/adduseridjob.h                         |   3 +-
 lang/qt/src/changeexpiryjob.h                      |   3 +-
 lang/qt/src/changeownertrustjob.h                  |   3 +-
 lang/qt/src/changepasswdjob.h                      |   3 +-
 lang/qt/src/cryptoconfig.cpp                       |   3 +-
 lang/qt/src/cryptoconfig.h                         |   3 +-
 lang/qt/src/dataprovider.cpp                       |   9 +-
 lang/qt/src/dataprovider.h                         |   3 +-
 lang/qt/src/decryptjob.h                           |   5 +-
 lang/qt/src/decryptverifyjob.h                     |   5 +-
 lang/qt/src/defaultkeygenerationjob.h              |   2 +
 lang/qt/src/deletejob.h                            |   3 +-
 lang/qt/src/dn.cpp                                 |   5 +-
 lang/qt/src/dn.h                                   |   3 +-
 lang/qt/src/downloadjob.h                          |   3 +-
 lang/qt/src/encryptjob.h                           |   3 +-
 lang/qt/src/exportjob.h                            |   3 +-
 lang/qt/src/hierarchicalkeylistjob.h               |   3 +-
 lang/qt/src/importfromkeyserverjob.h               |   3 +-
 lang/qt/src/importjob.h                            |   3 +-
 lang/qt/src/job.cpp                                |   6 +-
 lang/qt/src/job.h                                  |   3 +-
 lang/qt/src/keyformailboxjob.h                     |   3 +-
 lang/qt/src/keygenerationjob.h                     |   3 +-
 lang/qt/src/keylistjob.h                           |   3 +-
 lang/qt/src/listallkeysjob.h                       |   3 +-
 lang/qt/src/multideletejob.h                       |   3 +-
 lang/qt/src/protocol.h                             |   7 +-
 lang/qt/src/protocol_p.h                           |  16 +-
 lang/qt/src/qgpgme_export.h                        |   3 +-
 lang/qt/src/qgpgmeadduseridjob.cpp                 |   3 +-
 lang/qt/src/qgpgmeadduseridjob.h                   |   3 +-
 lang/qt/src/qgpgmebackend.cpp                      |   3 +-
 lang/qt/src/qgpgmebackend.h                        |   3 +-
 lang/qt/src/qgpgmechangeexpiryjob.cpp              |   3 +-
 lang/qt/src/qgpgmechangeexpiryjob.h                |   3 +-
 lang/qt/src/qgpgmechangeownertrustjob.cpp          |   3 +-
 lang/qt/src/qgpgmechangeownertrustjob.h            |   3 +-
 lang/qt/src/qgpgmechangepasswdjob.cpp              |   3 +-
 lang/qt/src/qgpgmechangepasswdjob.h                |   3 +-
 lang/qt/src/qgpgmedecryptjob.cpp                   |   3 +-
 lang/qt/src/qgpgmedecryptjob.h                     |   3 +-
 lang/qt/src/qgpgmedecryptverifyjob.cpp             |   3 +-
 lang/qt/src/qgpgmedecryptverifyjob.h               |   3 +-
 lang/qt/src/qgpgmedeletejob.cpp                    |   3 +-
 lang/qt/src/qgpgmedeletejob.h                      |   3 +-
 lang/qt/src/qgpgmedownloadjob.cpp                  |   3 +-
 lang/qt/src/qgpgmedownloadjob.h                    |   3 +-
 lang/qt/src/qgpgmeencryptjob.cpp                   |   3 +-
 lang/qt/src/qgpgmeencryptjob.h                     |   3 +-
 lang/qt/src/qgpgmeexportjob.cpp                    |   3 +-
 lang/qt/src/qgpgmeexportjob.h                      |   3 +-
 lang/qt/src/qgpgmeimportfromkeyserverjob.cpp       |   3 +-
 lang/qt/src/qgpgmeimportfromkeyserverjob.h         |   3 +-
 lang/qt/src/qgpgmeimportjob.cpp                    |   3 +-
 lang/qt/src/qgpgmeimportjob.h                      |   3 +-
 lang/qt/src/qgpgmekeyformailboxjob.cpp             |   3 +-
 lang/qt/src/qgpgmekeyformailboxjob.h               |   3 +-
 lang/qt/src/qgpgmekeygenerationjob.cpp             |   3 +-
 lang/qt/src/qgpgmekeygenerationjob.h               |   3 +-
 lang/qt/src/qgpgmekeylistjob.cpp                   |   3 +-
 lang/qt/src/qgpgmekeylistjob.h                     |   3 +-
 lang/qt/src/qgpgmelistallkeysjob.cpp               |   3 +-
 lang/qt/src/qgpgmelistallkeysjob.h                 |   3 +-
 lang/qt/src/qgpgmenewcryptoconfig.cpp              |   4 +-
 lang/qt/src/qgpgmenewcryptoconfig.h                |   3 +-
 lang/qt/src/qgpgmequickjob.cpp                     | 123 +++
 ...{defaultkeygenerationjob.h => qgpgmequickjob.h} |  64 +-
 lang/qt/src/qgpgmerefreshkeysjob.cpp               |   3 +-
 lang/qt/src/qgpgmerefreshkeysjob.h                 |   3 +-
 lang/qt/src/qgpgmesecretkeyexportjob.cpp           |   3 +-
 lang/qt/src/qgpgmesecretkeyexportjob.h             |   3 +-
 lang/qt/src/qgpgmesignencryptjob.cpp               |   3 +-
 lang/qt/src/qgpgmesignencryptjob.h                 |   3 +-
 lang/qt/src/qgpgmesignjob.cpp                      |   3 +-
 lang/qt/src/qgpgmesignjob.h                        |   3 +-
 lang/qt/src/qgpgmesignkeyjob.cpp                   |   3 +-
 lang/qt/src/qgpgmesignkeyjob.h                     |   3 +-
 lang/qt/src/qgpgmetofupolicyjob.cpp                |   3 +-
 lang/qt/src/qgpgmetofupolicyjob.h                  |   3 +-
 lang/qt/src/qgpgmeverifydetachedjob.cpp            |   3 +-
 lang/qt/src/qgpgmeverifydetachedjob.h              |   3 +-
 lang/qt/src/qgpgmeverifyopaquejob.cpp              |   3 +-
 lang/qt/src/qgpgmeverifyopaquejob.h                |   3 +-
 lang/qt/src/qgpgmewkspublishjob.cpp                |   3 +-
 lang/qt/src/qgpgmewkspublishjob.h                  |   3 +-
 .../src/{defaultkeygenerationjob.h => quickjob.h}  |  57 +-
 lang/qt/src/refreshkeysjob.h                       |   3 +-
 lang/qt/src/signencryptjob.h                       |   5 +-
 lang/qt/src/signjob.h                              |   3 +-
 lang/qt/src/signkeyjob.h                           |   3 +-
 lang/qt/src/specialjob.h                           |   3 +-
 lang/qt/src/threadedjobmixin.cpp                   |   3 +-
 lang/qt/src/threadedjobmixin.h                     |   3 +-
 lang/qt/src/tofupolicyjob.h                        |   3 +-
 lang/qt/src/verifydetachedjob.h                    |   5 +-
 lang/qt/src/verifyopaquejob.h                      |   5 +-
 lang/qt/src/wkspublishjob.h                        |   3 +-
 lang/qt/tests/Makefile.am                          |  17 +-
 lang/qt/tests/run-keyformailboxjob.cpp             |   3 +-
 lang/qt/tests/t-config.cpp                         |   3 +-
 lang/qt/tests/t-encrypt.cpp                        |  34 +-
 lang/qt/tests/t-keylist.cpp                        |   3 +-
 lang/qt/tests/t-keylocate.cpp                      |   3 +-
 lang/qt/tests/t-ownertrust.cpp                     |   3 +-
 lang/qt/tests/t-support.cpp                        |   3 +-
 lang/qt/tests/t-support.h                          |   3 +-
 lang/qt/tests/t-tofuinfo.cpp                       |  33 +-
 lang/qt/tests/t-various.cpp                        |  16 +-
 lang/qt/tests/t-verify.cpp                         |   3 +-
 lang/qt/tests/t-wkspublish.cpp                     |   3 +-
 src/context.h                                      |   3 +
 src/conversion.c                                   |   2 +-
 src/data.c                                         |   4 +
 src/debug.c                                        |   2 +-
 src/decrypt-verify.c                               |   3 +-
 src/decrypt.c                                      | 145 ++--
 src/delete.c                                       |  54 +-
 src/edit.c                                         |   2 +-
 src/engine-assuan.c                                |   1 +
 src/engine-backend.h                               |   6 +-
 src/engine-g13.c                                   |   1 +
 src/engine-gpg.c                                   |  42 +-
 src/engine-gpgconf.c                               |  60 +-
 src/engine-gpgsm.c                                 |  11 +-
 src/engine-spawn.c                                 |   1 +
 src/engine-uiserver.c                              |   6 +-
 src/engine.c                                       |  23 +-
 src/engine.h                                       |   8 +-
 src/genkey.c                                       |   2 +-
 src/gpgconf.c                                      |  21 +
 src/gpgme-w32spawn.c                               |   1 -
 src/gpgme.c                                        |   8 +
 src/gpgme.def                                      |   5 +
 src/gpgme.h.in                                     |  45 +-
 src/import.c                                       |  13 +-
 src/key.c                                          |   2 +-
 src/keylist.c                                      |  44 +-
 src/libgpgme.vers                                  |   3 +
 src/parsetlv.h                                     |   2 +-
 src/posix-io.c                                     | 110 ++-
 src/status-table.c                                 |  22 +-
 src/trustlist.c                                    |   2 +-
 src/util.h                                         |  26 +-
 src/verify.c                                       |   4 +
 tests/ChangeLog-2011                               |   2 +-
 tests/gpg/Makefile.am                              |  24 +-
 tests/gpg/cipher-1.asc                             |  22 +-
 tests/gpg/cipher-2.asc                             |  25 +-
 tests/gpg/t-encrypt-mixed.c                        |   3 +-
 tests/gpg/t-gpgconf.c                              |  20 +
 tests/gpg/t-keylist.c                              |   3 +-
 tests/gpg/t-thread-keylist-verify.c                |   3 +-
 tests/gpg/t-thread-keylist.c                       |   3 +-
 tests/gpgsm/Makefile.am                            |  25 +-
 tests/run-decrypt.c                                |   3 +-
 tests/run-identify.c                               |   2 +-
 tests/run-keylist.c                                |  10 +
 tests/run-support.h                                |  18 +-
 tests/run-verify.c                                 |  21 +
 tests/start-stop-agent                             |  13 +
 tests/t-data.c                                     |  27 +-
 303 files changed, 3377 insertions(+), 837 deletions(-)

diff --cc ChangeLog
index 40c0b4d,dda15a7..3691aee
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,6299 -1,16 +1,7131 @@@
 -No more ChangeLog files
 -========================
++2017-12-12  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.10.0.
++	+ commit 6a42eb5f3809d5eb3767667c190b395d028886e7
+ 
+ 
++	Require libgpg-error 1.24 and libassuan 2.4.2.
++	+ commit d4d04d6c0432b032f6ea23c8517fd6a5f623bb67
++	* src/util.h (GPG_ERR_FALSE): Remove due to newer libgpg-error.
+ 
 -Local Variables:
 -buffer-read-only: t
 -mode: text
 -End:
++2017-12-11  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Don't use QDateTime::toSecsSinceEpoch.
++	+ commit b61d0fbb74f04408dfe8637c719b97217e061a3c
++	* lang/qt/src/qgpgmequickjob.cpp (addSubkeyWorker)
++	(createWorker): Use toMSecsSinceEpoch instead toSecsSinceEpoch.
++
++2017-12-11  Werner Koch  <wk at gnupg.org>
++
++	core,w32: Fix popping up of console windows due to gpgconf.
++	+ commit 0a567a94d94cd93c5d88f5db802925c95f0974d0
++	* src/gpgme-w32spawn.c (my_spawn): Create w/o DETACHED_PROCESS.
++
++2017-12-07  Andre Heinecke  <aheinecke at intevation.de>
++
++	cpp: Fix handling of lsig promotion.
++	+ commit 1458adaea4acdcf7ebbead6668476fce92db5af8
++	* src/gpgsignkeyeditinteractor.cpp (SignKeyState): Add second
++	CONFIRM state.
++	(makeTable): Properly handle local_promote_okay.
++	(action): Handle CONFIRM2.
++
++	tests: Print userid signatures in run-keylist.
++	+ commit 5ba1cbdf39efd90c7987bfc2bc030b6504e70076
++	* tests/run-keylist.c (main): Print UID signatures if there
++	are any.
++
++2017-12-04  Werner Koch  <wk at gnupg.org>
++
++	core: Also check for a failed selftest in gpgm_data_new.
++	+ commit 0c1244a2b7e30ab0610ae70166e1b5d0219782c3
++	* src/data.c (_gpgme_data_new): Check for failed selftest.
++	* tests/run-support.h (make_filename): Print a message on mallooc
++	failure.
++	(init_gpgme_basic): New.
++	* tests/run-identify.c (main): Call init_gpgme_basic becuase we do not
++	need to setup a protocol.
++	* tests/t-data.c: Define PGM and include run-support.h.
++	(make_filename): Remove.
++	(main): Call init_gpgme_basic.
++
++2017-12-04  Tobias Mueller  <muelli at cryptobitch.de>
++
++	python: Default whence argument for Data() to SEEK_SET.
++	+ commit 3cf9aedc92b6c65d2cb34037e52b9a299637d03b
++	* lang/python/gpgme.i: copied signature from gpgme.h and defaulted the
++	value to SEEK_SET.
++	* lang/python/tests/t-data.py: Added a test for no second argument
++
++2017-12-01  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Add job for quick commands.
++	+ commit 7d1ac5d61de3c55bf7ff14997b4b111a0f90c177
++	* lang/qt/src/qgpgmequickjob.cpp,
++	lang/qt/src/qgpgmequickjob.h,
++	lang/qt/src/quickjob.h: New.
++	* lang/qt/src/Makefile.am,
++	lang/qt/src/protocol.h,
++	lang/qt/src/protocol_p.h,
++	lang/qt/src/job.cpp: Update accordingly.
++
++	cpp: Wrap create_key and create_subkey.
++	+ commit 8e2d6c28a5e923f829b5a26d19d9d897949aa1fe
++	* lang/cpp/src/context.cpp,
++	lang/cpp/src/context.h (Context::startCreateKey)
++	(Context::createKey, Context::createSubkey)
++	(Context::startCreateSubkey): New.
++
++	Fix uid parsing for ldap keyserver.
++	+ commit 651b3d8207cc7d85699f89fc4c21cb1243453aa8
++	* src/engine-gpg.c (gpg_keylist_preprocess): Check field count
++	for uid and add fallback.
++
++2017-11-30  Werner Koch  <wk at gnupg.org>
++
++	tests: Add missing variable to gpgsm tests Makefile.
++	+ commit f43016500774ab82f222249202bda6c463aaf63f
++	* tests/gpgsm/Makefile.am (GPG_AGENT): Set var.  It is used later.
++
++2017-11-21  NIIBE Yutaka  <gniibe at fsij.org>
++
++	tests: Make portability fix.
++	+ commit c441fb73130f4c117094d7da4de9fe56f886e65d
++	* lang/python/tests/Makefile.am: Distinguish target and path.
++	* tests/gpg/Makefile.am: Ditto.
++	* tests/gpgsm/Makefile.am: Ditto.
++
++2017-11-14  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Fix IODeviceDataProvider with Process.
++	+ commit 56b27b21d5f8dd95b9d6415c5e98b821774f3093
++	* lang/qt/src/dataprovider.cpp (blocking_read): Keep
++	reading if process is not atEnd.
++
++2017-10-12  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
++
++	core: use getdents64 syscall on linux instead of getdents.
++	+ commit 00daac15530eabed5e61d841b2df939c2242667c
++	* src/posix-io.c (get_max_fds): use getdents64 instead of getdents.
++
++2017-10-04  Werner Koch  <wk at gnupg.org>
++
++	core: Allow disabling the use of SYS_getdents for Linux.
++	+ commit 4632adf403611b50be2b4e852a4607070935d0e5
++	* configure.ac (USE_LINUX_GETDENTS): New ac_define.  Add option
++	--disable-linux-getdents.
++	* src/posix-io.c: Make use of USE_LINUX_GETDENTS.
++
++2017-10-04  Colin Watson  <cjwatson at debian.org>
++
++	core: Restore get_max_fds optimization on Linux.
++	+ commit b5b996b1a142abb90296f5feadf0b5b19c59f738
++	* src/posix-io.c (get_max_fds): Restore Linux optimization, this time
++	using open/getdents/close rather than opendir/readdir/closedir.
++
++2017-09-04  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Add test for version info.
++	+ commit bd5d470cef513b2f459316869b81267cde7a9f13
++	* lang/qt/tests/t-various.cpp (TestVarious::testVersion): New.
++
++	cpp: Fix version info comparison.
++	+ commit 58d7bcead3394fa80c2a05d0d1e0fb4d9a1048b0
++	* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<):
++	Fix logic.
++	* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator>):
++	New.
++	* NEWS: Mention added API
++
++2017-08-24  Werner Koch  <wk at gnupg.org>
++
++	core: New context flag "auto-key-retrieve"
++	+ commit 47f61df0704485b8165c9cf2a27ad57bcd864239
++	* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag
++	"auto-key-retrieve".
++	* src/context.h (gpgme_context): New field auto_key_retrieve.
++	* src/engine-backend.h (struct engine_ops): Add arg auto_key_retrieve
++	to field 'decrypt'.
++	* src/engine-gpg.c (gpg_decrypt): Add arg auto_key_retrieve and pass
++	option --auto-key-retrieve to gpg.  Adjust all callers.
++	(gpg_verify): Ditto.
++	* src/engine-gpgsm.c (gpgsm_decrypt): Add dummy arg auto_key_retrieve.
++	* src/engine-uiserver.c (uiserver_decrypt): Ditto.
++	* tests/run-verify.c (main): Add option --auto-key-retrieve.
++
++	core: New public enum gpgme_keyorg_t.
++	+ commit 9bde9144f0c2d0087799511e9b041dc945a4cfa8
++	* src/gpgme.h.in (gpgme_keyorg_t): New.
++	* src/keylist.c (parse_keyorg): New.
++	(keylist_colon_handler): Set key->ORIGIN.
++
++2017-08-24  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
++
++	gpgconf: Add more comments.
++	+ commit 91e47d71652bd0f83b51089c343c3c4836bdfa8a
++	* src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir):
++	Add comments.
++
++2017-08-23  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
++
++	Fix a couple of bugs pointed out by clang compiler warnings.
++	+ commit bfb3a01a0c55aa327dcab061fa808672362cb09d
++	* src/engine-gpgconf.c (gpgconf_config_dir_cb): Fix cast.
++	* src/key.c (_gpgme_key_add_sig): Fix pointer reference.
++
++2017-08-21  Alon Bar-Lev  <alon.barlev at gmail.com>
++
++	python: Support parallel build in tests.
++	+ commit 57c12593082e4ad302041269f1c35f2fe7d2fb1a
++	* lang/python/tests/Makefile.am: Depend xcheck with all which was lost
++	due to the check hack.
++
++2017-08-21  Justus Winter  <justus at g10code.com>
++
++	python: Improve keylist test.
++	+ commit 70c8be9efe8de40bec0f0673589f3c9be7136674
++	* lang/python/tests/t-keylist.py: Check a keylist matching no keys.
++
++2017-08-16  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
++
++	doc: Add version information.
++	+ commit b9b08e46934eea9083afb2eaf4bffa23d6c27801
++	* doc/gpgme.texi (since): New macro.  Use it to add version
++	information to those APIs that are mentioned in the NEWS file.
++
++	doc: Clarify import keys operation further.
++	+ commit 0ee7f4f178284dae153a59be710bc994820369e5
++	* doc/gpgme.texi (gpgme_op_import_keys): Further clarifications.
++
++	gpgconf: Fix some warnings.
++	+ commit 3244d4daff892d5d3c39e78f4eb0934379beda2c
++	* tests/gpg/t-gpgconf.c (main): Fix warnings.
++	* src/engine-gpgconf.c (struct gpgconf_config_dir_s): New struct.
++	(gpgconf_config_dir_cb, gpgconf_conf_dir) Use it to fix warning.
++
++	gpgconf: Fix symbol export.
++	+ commit 97a1abe72e73f85bbf922fa588d002a226db5459
++	* gpgme.def: Fix last change.
++	(gpgme_op_conf_save): Replace duplicate from c&p ...
++	(gpgme_op_conf_dir): ... with this.
++
++2017-08-15  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
++
++	NEWS: Add missing entry.
++	+ commit fa3918598de35fef0bf626035d59ea36c53832b9
++
++
++	gpgconf: Add access to --list-dirs for non-default engine.
++	+ commit 9f24e6c9010e171fd11c5cdac797cb8ce2e501dd
++	* src/engine-assuan.c (_gpgme_engine_ops_assuan): Add conf_dir.
++	* src/engine-g13.c (_gpgme_engine_ops_g13): Likewise.
++	* src/engine-gpg.c (_gpgme_engine_ops_gpg): Likewise.
++	* src/engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Likewise.
++	* src/engine-spawn.c (_gpgme_engine_ops_spawn): Likewise.
++	* src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Likewise.
++	* src/engine-backend.h (struct engine_ops): Likewise.
++	* src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir):
++	New functions.
++	(struct engine_ops): Add gpgconf_conf_dir.
++	* src/engine.c (_gpgme_engine_op_conf_dir): New function.
++	* src/engine.h (_gpgme_engine_op_conf_dir): New prototype.
++	* src/gpgconf.c (gpgme_op_conf_dir): New function.
++	* src/gpgme.def (gpgme_op_conf_save): New symbol.
++	* src/gpgme.h.in (gpgme_op_conf_dir): New prototype.
++	* src/libgpgme.vers (gpgme_op_conf_dir): New symbol.
++	* tests/gpg/t-gpgconf.c (main): Test gpgme_op_conf_dir.
++
++2017-08-11  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
++
++	g10: Add new delete operations that allow more flags.
++	+ commit a0cc6e01a8900b34cf231d8b5335ef3f85d01fdf
++	* NEWS: Document new interfaces.
++	* doc/gpgme.texi: Document new interfaces.
++	* src/gpgme.h.in (GPGME_DELETE_ALLOW_SECRET, GPGME_DELETE_FORCE,
++	gpgme_op_delete_ext_start, gpgme_op_delete_ext): New.
++	* src/delete.c (delete_start): Change allow_secret argument to flags.
++	(gpgme_op_delete_ext, gpgme_op_delete_ext_start): New functions.
++	* src/engine-backend.h (delete): Change allow_secret argument to flags.
++	* src/engine.c (_gpgme_engine_op_delete): Likewise.
++	* src/engine.h (_gpgme_engine_op_delete): Likewise (for prototype).
++	* src/engine-gpgsm.c (gpgsm_delete): Likewise.
++	* src/engine-gpg.c (gpg_delete): Likewise.  Implement GPGME_DELETE_FORCE.
++	* src/gpgme.def (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
++	* src/libgpgme.vers (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
++
++2017-08-10  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
++
++	doc: Clarify import keys operation.
++	+ commit dfb3ca85680534b3885ab04d3fba4752c5a6f998
++	* doc/gpgme.texi (gpgme_op_import_start): Fix grammar.
++	(gpgme_op_import_keys): Clarify some wording and fix result.
++	* src/import.c (gpgme_op_import_keys): Clarify comment.
++
++	doc: Add more tofu documentation.
++	+ commit 274609baceda3378b21f84c3ae6a44806dad2dba
++	* doc/gpgme.texi (gpgme_tofu_info_t): Document structure.
++	(gpgme_sigsum_t): Document GPGME_SIGSUM_TOFU_CONFLICT.
++
++2017-07-27  Andre Heinecke  <aheinecke at intevation.de>
++
++	core: Fix status parsing for decrypt + verify.
++	+ commit d3796e4504a2b4f422de17d78f3acfe8dd199c9c
++	* src/decrypt.c (parse_status_error): Don't modify args.
++
++2017-07-26  Andre Heinecke  <aheinecke at intevation.de>
++
++	cpp: Fix Key::isDeVs for subkeys.
++	+ commit c7be41a5f850addceb2a95444bad2a31cdcd1ce5
++	* lang/cpp/src/key.cpp (Key::isDeVs): Check all subkeys.
++
++2017-07-13  Justus Winter  <justus at g10code.com>
++
++	tests: Fix distcheck.
++	+ commit 7fde780cc1773c6d3902d4f49a8d4aadbf3223d4
++	* tests/start-stop-agent: Remove backup file.
++
++	tests: Make agent spawning more robust.
++	+ commit 9cd2b58dfb2c21cce64520cf4c726859b583d14e
++	* tests/gpgsm/Makefile.am (gpgsm.conf): Add agent-program directive.
++	* tests/start-stop-agent: Update agent-program directive.
++
++2017-07-12  Werner Koch  <wk at gnupg.org>
++
++	tests: Fix printf compiler warning for an error case.
++	+ commit 46d2e48105e0929ec38dd4106004dd60d941df9a
++	* tests/gpg/t-keylist.c (main): Cast DIM to int.
++
++	core: Return NO_SECKEY error code on decryption.
++	+ commit ad0c5ab4cd8d3a1b11b37dc137b75a67aa26da37
++	* src/decrypt.c (op_data_t): Add flag any_no_seckey.
++	(_gpgme_decrypt_status_handler): Consult that flag.
++	(_gpgme_decrypt_status_handler): Set that flag.
++
++	core: Return CANCELED and BAD_PASSPHRASE error code on decryption.
++	+ commit d37bc7e025cdc6228da45b2b527e9f3bfef71c71
++	* src/decrypt.c (op_data_t): Add field pkdecrypt_failed.
++	(_gpgme_decrypt_status_handler): Consult new field.
++	(parse_status_error): Handle some error codes.
++
++	core: Simplify parsing of STATUS_ERROR in decrypt.c.
++	+ commit 87703dbb86ac8fd8abd23170f8038ea6e3dbde28
++	* src/decrypt.c (_gpgme_decrypt_status_handler): Factor some code out
++	to ...
++	(parse_status_error): new.  Modernize parsing.
++
++2017-07-11  Justus Winter  <justus at g10code.com>
++
++	python: Improve error handling.
++	+ commit 1e68f93dc547ae75b921e43db35e3599de92e2cb
++	* NEWS: Update.
++	* lang/python/src/core.py (Context.__read__): New helper function.
++	(Context.encrypt): Attach partial results to exceptions.
++	(Context.decrypt): Likewise.
++	(Context.sign): Likewise.
++	(Context.verify): Likewise.
++	* lang/python/src/errors.py (GpgError): Move the core of GPGMEError to
++	this class, add a nicer interface for it.  This makes the errors
++	thrown by this library more uniform, and allows us to track the
++	underlying error in synthesized high-level errors.
++	(GPGMEError): Simplify.
++	(...): Make sure to call the parent classes' constructor in all other
++	classes.
++
++2017-07-10  Andre Heinecke  <aheinecke at intevation.de>
++
++	Add isDeVs to ostream operator.
++	+ commit fe79eb8de3dc780eafb38a0a0a016748e764ff04
++	* lang/cpp/src/decryptionresult.cpp,
++	lang/cpp/src/verificationresult.cpp: Extend ostream operator
++	to include isDeVs.
++
++2017-06-12  Andre Heinecke  <aheinecke at intevation.de>
++
++	cpp: Fix CMake config library name for GPGME.
++	+ commit 5c53c702605b8d4458a14e6303cdc13f3b106efa
++	* lang/cpp/src/GpgmeppConfig.cmake.in.in: The link library
++	is of course also dynamic.
++
++2017-06-01  Justus Winter  <justus at g10code.com>
++
++	Add flag 'is_de_vs' to decryption results and signatures.
++	+ commit 05fa2a9c7764b28fdac35eb72631439df948ca0e
++	* NEWS: Update.
++	* lang/cpp/src/decryptionresult.cpp (DecryptionResult::isDeVs): New
++	function.
++	* lang/cpp/src/decryptionresult.h (DecryptionResult::isDeVs): New
++	prototype.
++	* lang/cpp/src/verificationresult.cpp (Signature::isDeVs): New
++	function.
++	* lang/cpp/src/verificationresult.h (Signature::isDeVs): New
++	prototype.
++	* lang/python/src/results.py (DecryptResult): Turn field 'is_de_vs'
++	into a boolean.
++	(Signature): Likewise.
++	* src/decrypt.c (_gpgme_decrypt_status_handler): Handle the new
++	compliance status line.
++	* src/verify.c (_gpgme_verify_status_handler): Likewise.
++	* src/gpgme.h.in (gpgme_status_code_t): Add new status codes for the
++	new status lines.
++	* src/keylist.c (parse_pub_field18): Move function to 'util.h'.
++	(keylist_colon_handler): Adapt callsites.
++	* src/status-table.c (status_table): Add new status lines.
++	* src/util.h (PARSE_COMPLIANCE_FLAGS): New macro.  This used to be
++	'parse_pub_field18', but turned into a macro to make it polymorphic.
++
++2017-05-18  Justus Winter  <justus at g10code.com>
++
++	python: Fix build in certain cases.
++	+ commit 84a203e60b9935bd8536cd2832fbc55d7f011341
++	* lang/python/setup.py.in: Prepend the Python build dir to the list of
++	include directories so that it takes precedence over any other include
++	directory.
++
++2017-05-10  Justus Winter  <justus at g10code.com>
++
++	tests: Remove remnants of 'check-local'.
++	+ commit a9b4c0ad0d1085ff76742e44cf0cf926e89d1f4c
++	* tests/gpgsm/Makefile.am (check-local): Drop rule and the dependency
++	on it.
++
++	python: Fix test environment creation.
++	+ commit 6b4dd3b929ac23271bfa96edb9dbb142eca0a30f
++	* lang/python/tests/Makefile.am (pubring-stamp): Do not depend on the
++	configuration files, this can trigger superfluous rebuilds.
++
++	tests: Make sure to kill all previously running daemons.
++	+ commit a226eca84670ef4e171c3a54e7caefb3a89254a4
++	* lang/python/tests/Makefile.am: Kill all previously running daemons
++	before creating the private key store.
++	* lang/qt/tests/Makefile.am: Likewise.
++	* tests/gpg/Makefile.am: Likewise.
++	* tests/gpgsm/Makefile.am: Likewise.
++
++	tests: Harmonize test suites.
++	+ commit 15adff073bb89dc032d8342cfbbdad2850943f52
++	* lang/python/tests/Makefile.am: Create test environment as part of
++	'make all'.
++	* tests/gpg/Makefile.am: Make sure the private keystore is created
++	first.
++	* tests/gpgsm/Makefile.am: Create test environment as part of
++	'make all'.  Make sure the private keystore is created
++	first.
++
++	qt: Stop agent on clean.
++	+ commit 093b5497b7231590ce91ccf73ba64ebc0757f9e9
++	* lang/qt/tests/Makefile.am (clean-local): Stop agent.
++
++2017-05-10  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Add a missing include <functional>
++	+ commit 5e27bf98b4c48cf6a239bcc94b7b67515ff339e7
++	* lang/qt/src/qgpgmenewcryptoconfig.cpp: Include functional.
++
++	qt: Undeprecate API that I find useful.
++	+ commit cc2ef3d07c0d261bb9e8e8c0f2706e1a08e4ec53
++	* lang/qt/src/decryptjob.h,
++	lang/qt/src/decryptverifyjob.h,
++	lang/qt/src/signencryptjob.h,
++	lang/qt/src/verifydetachedjob.h,
++	lang/qt/src/verifyopaquejob.h: Undeprecate ByteArray based API.
++
++	qt, tests: Don't use internal API.
++	+ commit b56f398eff4e3e70dea714c3174a5512dd9bcf33
++	* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp:
++	Only use exported API.
++
++2017-05-03  Andre Heinecke  <aheinecke at intevation.de>
++
++	core: Don't split gpgconf strings on comma.
++	+ commit df4eb611e33dcab7bebf07b13734c7db7ccf40da
++	* src/engine-gpgconf.c (gpgconf_parse_option): Don't split
++	strings on comma.
++
++2017-04-25  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt, cpp: Add additional copyright BSI notes.
++	+ commit 28734240e2a2ce67b64df55364f35e1648376311
++	* lang/cpp/Makefile.am,
++	lang/cpp/src/Makefile.am,
++	lang/cpp/src/callbacks.cpp,
++	lang/cpp/src/callbacks.h,
++	lang/cpp/src/configuration.cpp,
++	lang/cpp/src/configuration.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_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/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/interfaces/assuantransaction.h,
++	lang/cpp/src/interfaces/dataprovider.h,
++	lang/cpp/src/interfaces/passphraseprovider.h,
++	lang/cpp/src/interfaces/progressprovider.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/qt/Makefile.am,
++	lang/qt/doc/Makefile.am,
++	lang/qt/src/Makefile.am,
++	lang/qt/src/defaultkeygenerationjob.h,
++	lang/qt/tests/Makefile.am: Add missing copyright.
++
++	Change copyright from Intevation to BSI.
++	+ commit 70035834326d0d04a5904ae01bc3757e577facf4
++	* lang/cpp/src/gpggencardkeyinteractor.cpp,
++	lang/cpp/src/gpggencardkeyinteractor.h,
++	lang/cpp/src/gpgmepp_export.h,
++	lang/cpp/src/swdbresult.cpp,
++	lang/cpp/src/swdbresult.h,
++	lang/cpp/src/tofuinfo.cpp,
++	lang/cpp/src/tofuinfo.h,
++	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.cpp,
++	lang/qt/src/cryptoconfig.h,
++	lang/qt/src/dataprovider.cpp,
++	lang/qt/src/dataprovider.h,
++	lang/qt/src/decryptjob.h,
++	lang/qt/src/decryptverifyjob.h,
++	lang/qt/src/deletejob.h,
++	lang/qt/src/dn.cpp,
++	lang/qt/src/dn.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/keyformailboxjob.h,
++	lang/qt/src/keygenerationjob.h,
++	lang/qt/src/keylistjob.h,
++	lang/qt/src/listallkeysjob.h,
++	lang/qt/src/multideletejob.h,
++	lang/qt/src/protocol.h,
++	lang/qt/src/protocol_p.h,
++	lang/qt/src/qgpgme_export.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/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/qgpgmekeyformailboxjob.cpp,
++	lang/qt/src/qgpgmekeyformailboxjob.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/qgpgmetofupolicyjob.cpp,
++	lang/qt/src/qgpgmetofupolicyjob.h,
++	lang/qt/src/qgpgmeverifydetachedjob.cpp,
++	lang/qt/src/qgpgmeverifydetachedjob.h,
++	lang/qt/src/qgpgmeverifyopaquejob.cpp,
++	lang/qt/src/qgpgmeverifyopaquejob.h,
++	lang/qt/src/qgpgmewkspublishjob.cpp,
++	lang/qt/src/qgpgmewkspublishjob.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/tofupolicyjob.h,
++	lang/qt/src/verifydetachedjob.h,
++	lang/qt/src/verifyopaquejob.h,
++	lang/qt/src/wkspublishjob.h,
++	lang/qt/tests/run-keyformailboxjob.cpp,
++	lang/qt/tests/t-config.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-support.h,
++	lang/qt/tests/t-tofuinfo.cpp,
++	lang/qt/tests/t-various.cpp,
++	lang/qt/tests/t-verify.cpp,
++	lang/qt/tests/t-wkspublish.cpp,
++	tests/gpg/t-encrypt-mixed.c,
++	tests/gpg/t-thread-keylist-verify.c,
++	tests/gpg/t-thread-keylist.c,
++	tests/run-decrypt.c: Change Intevation GmbH copyright to BSI.
++
++2017-04-24  Andre Heinecke  <aheinecke at intevation.de>
++
++	doc: Improve doc on passphrase_cb / pinentry mode.
++	+ commit 8d61aba1fe0379ba14494f8ae2011ba531554ef4
++	* doc/gpgme.texi (Passphrase Callback): Mention pinentry_mode and
++	restrictions.
++	(Pinentry Mode): Fix wording and clarify versions that need
++	loopback mode for passphrase_cb to work.
++
++2017-04-24  Justus Winter  <justus at g10code.com>
++
++	tests: Update encrypted sample files.
++	+ commit ac28e66f46132ae4a854d04b2f17acd4d55e4296
++	* tests/gpg/cipher-1.asc: Update file.
++	* tests/gpg/cipher-2.asc: Likewise.
++
++2017-04-11  Justus Winter  <justus at g10code.com>
++
++	python: Skip TOFU test if not supported by GnuPG.
++	+ commit 979d48e823357af9999a2adb34d75adaade8dec2
++	* lang/python/tests/support.py (have_tofu_support): New function.
++	* lang/python/tests/t-quick-key-manipulation.py: Skip TOFU test if not
++	supported by GnuPG.
++
++2017-04-11  Alon Bar-Lev  <alon.barlev at gmail.com>
++
++	python: use autoconf pre-processor when building via autoconf.
++	+ commit a827382cafe7f1425455dcc8bf5ef049172eb493
++	* configure.ac: Add AC_PROG_CPP.
++	* lang/python/Makefile.am: Set CPP environment for setup.py to use.
++
++	python: fix run-tests missing python_libdir.
++	+ commit d785c053a982bddefd7014dc6856d1af345fe9fb
++	* lang/python/tests/run-tests.py: Set python_libdir if --python-libdir
++	is set.
++
++2017-04-10  Justus Winter  <justus at g10code.com>
++
++	python: Fix distcheck.
++	+ commit db476e923415f8e458720aaafde7234b802a33ab
++	* lang/python/Makefile.am (uninstall-local): Explicitly request the
++	scheme 'posix_prefix'.  On Python2.7 the default scheme is
++	'posix_local', breaking distcheck.
++
++2017-04-10  Alon Bar-Lev  <alon.barlev at gmail.com>
++
++	python: Support alternatate libdir for tests.
++	+ commit 3cc90b67fa970e716c8672ec5c5f591fa11ab216
++	* lang/python/tests/run-tests.py: Add --python-libdir optional
++	parameter.
++
++	python: Read gpg-error.h using the pre-processor.
++	+ commit 7309ce6f5f7c86570953a141965d4f54cd9ad9a0
++	* lang/python/setup.py.in: Read gpg-error.h using the pre-processor.
++
++	python: Remove unneeded stats copy.
++	+ commit df8433bffa9e669897243f08edf7845762250e4a
++	* lang/python/setup.py.in: errors.i, gpgme.h are generated and always
++	newer than the original.
++
++	python: Remove usage of PYTHON_VERSIONS.
++	+ commit 25e6444b3f4601c7821beab06bc4520deacb007b
++	* configure.ac: Remove PYTHON_VERSIONS subst.
++	* lang/python/Makefile.am: Use basename of python as builddir prefix.
++	* lang/python/tests/run-tests.py: Likewise.
++
++	tests: Do not use check-local magic as dependency.
++	+ commit ebefc6cbf937d14ced65f7ded79c4ba901507d23
++	* tests/gpg/Makefile.am: Use BUILT_SOURCES instead of check-local
++	and initial.test.
++	* lang/qt/tests/Makefile.am: Ditto.
++
++	python: support .pydistutils.cfg mode.
++	+ commit 365c649ad073f2697438dc014160943ae31a1447
++	* lang/python/setup.py.in: Do not parse arguments.
++
++2017-04-07  Alon Bar-Lev  <alon.barlev at gmail.com>
++
++	python: simplify build, some fixups.
++	+ commit 49195c487e6c923f7137f092b982e7d833d98de6
++	* lang/python/gpg/version.py.in: Rename to lang/python/version.py.in.
++	configure.ac: Generate version.py.in in lang/python.
++	* lang/python/MANIFEST.in: Include version.py explicitly.
++	* lang/python/gpg: Rename to 'src'.
++	* lang/python/Makefile.am: Do not copy source files, do not use absolute
++	directories, support lib64 in uninstall, clean also dist directory, use
++	symlink for gpg src.
++	* lang/python/setup.py.in: Use builddir, copy sources into builddir,
++	copy version.py into module.
++
++2017-04-05  Justus Winter  <justus at g10code.com>
++
++	python: Fix vpath builds, fix distcheck.
++	+ commit e7d9c0c3d773f826dbd2ed417d04e25c410f3374
++	* lang/python/gpgme-h-clean.py: Delete file.
++	* lang/python/MANIFEST.in: Adapt accordingly.
++	* lang/python/Makefile.am (EXTRA_DIST): Likewise.
++	(COPY_FILES_GPG): Bring variable back.
++	(copystamp): Copy files.
++	(clean-local): Delete copied files.
++	(install-exec-local): Do not create and install list of installed
++	files.
++	(uninstall-local): Instead, create some explicit rules to uninstall
++	the extension.
++	* lang/python/setup.py.in: Parse arguments.  Locate files either in
++	the source directory, or in the build base directory.  Inline the code
++	from 'gpgme-h-clean.py'.  Copy 'helpers.c', add source directory as
++	include directory.
++
++2017-04-05  Alon Bar-Lev  <alon.barlev at gmail.com>
++
++	python: Generate files into build directory.
++	+ commit 801d7d8c5dd530d26ad6c4bcc94d986e6e022da4
++	* lang/python/setup.py.in: Generate files within BuildExtFirstHack
++	adjust build flags at this point instead of global.
++	* lang/python/Makefile.am: Remove logic of separate source directory per
++	python version in favor of build directory.
++	* lang/python/tests/run-tests.py: Adjust build directory location.
++
++2017-04-03  Pietro Cerutti  <gahr at gahr.ch>
++
++	FreeBSD's closefrom(2) does not return errors.
++	+ commit 50565982cdd502c3852fcc6f598932bd32b5cdc3
++
++
++2017-04-03  Igor Gnatenko  <ignatenkobrain at fedoraproject.org>
++
++	qt: pass fmt to gpgrt_asprintf()
++	+ commit 5d4f977dac542340c877fdd4b1304fa8f6e058e6
++	* lang/qt/src/dn.cpp (parse_dn_part): Add fmt argument instead of
++	using name directly.
++
++	GnuPG-Bug-Id: 3023
++
++2017-03-30  Andre Heinecke  <aheinecke at intevation.de>
++
++	python: Don't treat skipped tests as error.
++	+ commit f8a9ecc6290ebd73fa36647cdfca285fe4d94a62
++	* lang/python/tests/run-tests.py (failed): Don't count skipped tests
++	for the return code.
++
++2017-03-30  Justus Winter  <justus at g10code.com>
++
++	python: Fix skipping tests if running with GnuPG < 2.1.12.
++	+ commit 159505a28864399cc5405d9f85f35ab011a3259e
++	* final.py: Import 'support.py' for the side-effect of checking the
++	GnuPG version.
++	* t-data.py: Likewise.
++	* t-protocol-assuan.py: Likewise.
++	* t-wrapper.py: Likewise.
++	* t-callbacks.py: Avoid warning about 'support' being unused.
++	* t-edit.py: Likewise.
++	* t-encrypt-sym.py: Likewise.
++	* t-file-name.py: Likewise.
++	* t-idiomatic.py: Likewise.
++	* t-sig-notation.py: Likewise.
++	* t-trustlist.py: Likewise.
++	* t-verify.py: Likewise.
++	* t-wait.py: Likewise.
++	* t-keylist-from-data.py: Trim unused imports.
++
++2017-03-30  Andre Heinecke  <aheinecke at intevation.de>
++
++	qt: Handle if gpg does not support tofu in test.
++	+ commit 2c063a8d60418ee59ae80da221420c6f3fa19abb
++	* lang/qt/src/t-tofuinfo.cpp (TestTofuInfo::testSupported): Treat
++	it as unsupported if secret keylisting already fails.
++
++2017-03-29  Alon Bar-Lev  <alon.barlev at gmail.com>
++
++	python,build: Reinstate prepare target.
++	+ commit 9786e3a96e6772166f3523e74a748b9db20fae7c
++	* lang/python/Makefile.am: Fix 'prepare' target.
++	* lang/python/setup.py.in: Use 'abs_top_builddir' instead of guessing
++	the path.
++
++2017-03-28  Justus Winter  <justus at g10code.com>
++
++	tests: Run the threading tests only on UNIX.
++	+ commit 7e9f7752c992f957ccfde3b274865c633096e3bb
++	* tests/gpg/Makefile.am (tests_unix): Add 't-thread-keylist' and
++	't-thread-keylist-verify'.
++	(c_tests): Drop them here.
++
++	tests: Make error message more helpful.
++	+ commit a13e4abe9463579ef23d1acea39a093abfc6528d
++	* tests/gpg/t-keylist.c (main): Print number of returned and expected
++	keys.
++
 +2017-03-28  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.9.0.
 +	+ commit aa0390ec3b910bbbc323a15ec3c3351e77785a9a
 +	* configure.ac <c>: Bump LT version to C29/A18/R0.
 +	<cpp>: Bump LT version to C10/A4/R0.
 +	<qt>: Bump LT version to C9/A2/R0.
 +
++2017-03-28  Andre Heinecke  <aheinecke at intevation.de>
++
++	Revert "qt: Disable testEncryptDecryptNowrap"
++	+ commit a2ccb3172896a90bc27c95964ef94bd7c0924802
++	This reverts commit 57d60b20f16dd5f1bccbbcaa0a6ed75a554a6414.
++
++2017-03-28  Werner Koch  <wk at gnupg.org>
++
 +	core: Prepare for new key listing data send by gpg.
 +	+ commit 813ae5fa2d712aa9679b791c67c9c1c43d36ffe4
 +	* src/gpgme.h.in (gpgme_user_id_t): New fields 'origin' and
 +	'last_update'.
 +	(gpgme_key_t): New fields 'origin' and 'last_update'.
 +	* src/conversion.c (_gpgme_parse_timestamp_ul): New.
 +	* src/keylist.c (keylist_colon_handler): Parse fields 19 and 20.
 +
 +	* tests/run-keylist.c (main): Print new fields.
 +
 +2017-03-27  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Disable testEncryptDecryptNowrap.
 +	+ commit 57d60b20f16dd5f1bccbbcaa0a6ed75a554a6414
 +	* lang/qt/tests/t-encrypt.cpp (EncryptTest::testEncryptDecryptNowrap):
 +	Disable test.
 +
 +2017-03-27  Justus Winter  <justus at g10code.com>
 +
 +	python: Skip tests if running with GnuPG < 2.1.12.
 +	+ commit 348da58fe0c3656e6177c98fef6b4c4331326c8e
 +	* lang/python/tests/support.py (assert_gpg_version): Fix error
 +	message.  Skip all tests when we use GnuPG older than 2.1.12.
 +
 +2017-03-24  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Respect decrypt flags in new functions.
 +	+ commit 18b7906078cf08962c54c1e711cf2d91a24fd4e5
 +	* lang/cpp/src/context.cpp: Respect directly provided flags
 +	in the new decrypt functions.
 +
 +	qt: Add unittest for decrypt unwrap.
 +	+ commit 5493164f8665fabf795f3b34a7084770a38ae940
 +	* lang/qt/tests/t-encrypt.cpp
 +	(EncryptTest::testEncryptDecryptNowrap): New.
 +
 +	cpp: Use gpgme_op_decrypt_ex and add new flags.
 +	+ commit 8ad37ecc297f208d0a63783c1ffae33ad4c3c81a
 +	* lang/cpp/src/context.cpp: New decrypt and decryptVerify functions
 +	that take flags as arguments. Use new variants in old functions.
 +	(Context::setDecryptionFlags): New helper.
 +	(Context::Private::Private): Initialize new member.
 +	* lang/cpp/src/context_p.h (Context::Private::decryptFlags): New.
 +	* lang/cpp/src/context.h (Context::DecryptFlags): New enum.
 +	(Context::EncryptionFlags): Extend for EncryptWrap.
 +
 +2017-03-24  Werner Koch  <wk at gnupg.org>
 +
 +	core: New flags GPGME_DECRYPT_UNWRAP and GPGME_ENCRYPT_WRAP.
 +	+ commit 6ac1f2cdedb085b4ac9372c1e591497e2e618de4
 +	* src/gpgme.h.in (GPGME_ENCRYPT_WRAP): New const.
 +	(gpgme_decrypt_flags_t): New enum.
 +	(GPGME_DECRYPT_VERIFY): New const
 +	(GPGME_DECRYPT_UNWRAP): New const
 +	(gpgme_op_decrypt_ext_start): New func.
 +	(gpgme_op_decrypt_ext): New func.
 +	* src/decrypt-verify.c (gpgme_op_decrypt_ext_start): New.
 +	(gpgme_op_decrypt_ext): New.
 +	(decrypt_verify_start): Add arg FLAGS.  Replace call to
 +	engine_op_decrypt_verify by the plain decrypt with the flag set.
 +	(gpgme_op_decrypt_verify_start): Pass the flag.
 +	(gpgme_op_decrypt_verify): Pass the flag.
 +	* src/decrypt.c (decrypt_start): Rename to ...
 +	(_gpgme_decrypt_start): this.  Add arg FLAGS.  Pass FLAGS to
 +	engine_op_decrypt.
 +	(gpgme_op_decrypt_start): Adjust for chnage pass 0 for FLAG.
 +	(gpgme_op_decrypt_start): Ditto.
 +	* src/engine.c (_gpgme_engine_op_decrypt_verify): Remove.
 +	(_gpgme_engine_op_decrypt): Add arg FLAGS.
 +	* src/gpgme.def, src/libgpgme.vers: Add new functions.
 +	* src/engine-backend.h (struct engine_ops): Remove member
 +	'decrypt_verify'.  Add FLAGS to 'decrypt'.  Adjust all initialization.
 +	* src/engine-uiserver.c (uiserver_decrypt): Remove.
 +	(uiserver_decrypt_verify): Remove.
 +	(_uiserver_decrypt): Rename to ...
 +	(uiserver_decrypt): this.  Replace arg VERIFY by new arg FLAGS.
 +	* src/engine-gpg.c (gpg_decrypt): Support GPGME_DECRYPT_UNWRAP.
 +	(gpg_encrypt): Support GPGME_ENCRYPT_WRAP.
 +
 +	* tests/run-decrypt.c (main): New option --unwrap.
 +	* tests/run-encrypt.c (main): New option --wrap.
 +
 +2017-03-22  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Add test for Data::toKeys.
 +	+ commit 66c334650bd64fdb72c4bd5975e25b8659d320ec
 +	* lang/qt/tests/t-various.cpp (TestVarious::testKeyFromFile): New.
 +
 +	cpp: Wrap keylist_from_data.
 +	+ commit 8ddb42ada46f00d8393f6c2df7d6b79a4a5878f0
 +	* lang/cpp/data.h, lang/cpp/data.cpp (GpgME::Data::toKeys): New.
 +
 +	qt: Initialize library first in tests.
 +	+ commit 121873b821636052c10d9e0bd885eb9013c52096
 +	* lang/qt/tests/t-support.cpp (QGpgMETest::initTestCase): Initialize
 +	library.
 +
 +2017-03-22  Justus Winter  <justus at g10code.com>
 +
 +	python: Improve Python detection.
 +	+ commit 104635eb503ec764146731888a6975b4329660fd
 +	* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Prefer the generic
 +	'pythonX' over 'pythonX.Y'.  This way we select the users preferred
 +	version for both flavors.  Prefer 'python' over 'python3' but not over
 +	'python2' so that the algorithm still finds a 'python2' even if
 +	'python' is a Python3.
 +
 +2017-03-21  Werner Koch  <wk at gnupg.org>
 +
 +	core: New API gpgme_op_set_uid_flag.
 +	+ commit 421ddd1e6706046c5062417fd69a87e10c9fc0a9
 +	* src/gpgme.h.in (gpgme_op_set_uid_flag_start): New.
 +	(gpgme_op_set_uid_flag_start): New.
 +	* src/gpgme.def, src/libgpgme.vers: Add them.
 +	* src/genkey.c (addrevuid_start): Change arg revoke to a flag.
 +	(gpgme_op_revuid_start): Pass GENKEY_EXTRAFLAG_REVOKE for the fomer
 +	revoke parameter.
 +	(gpgme_op_revuid): Ditto.
 +	(set_uid_flag): New.
 +	(gpgme_op_set_uid_flag_start): New.
 +	(gpgme_op_set_uid_flag): New.
 +	* src/engine.h (GENKEY_EXTRAFLAG_SETPRIMARY): new.
 +	* src/engine-gpg.c (gpg_adduid): Implement that flag.
 +
 +	* tests/run-genkey.c (main): New command --set-primary.
 +
 +2017-03-21  Justus Winter  <justus at g10code.com>
 +
 +	python: Wrap 'gpgme_op_keylist_from_data_start'.
 +	+ commit f3e8d8a4518de2768692e0b392262d0da6d0fd84
 +	* NEWS: Update.
 +	* lang/python/gpg/core.py (Context.keylist): New keyword argument
 +	'source'.  If given, list keys from 'source'.
 +	* lang/python/gpgme.i: Wrap the argument to
 +	'gpgme_op_keylist_from_data_start'.
 +	* lang/python/tests/Makefile.am (py_tests): Add new test.
 +	* lang/python/tests/support.py (EphemeralContext): Do not throw an
 +	error if no agent has been started in the context.
 +	* lang/python/tests/t-keylist-from-data.py: New file.
 +
 +2017-03-21  Werner Koch  <wk at gnupg.org>
 +
 +	core: Extend gpgme_get_dirinfo to return the gpg-wks-client name.
 +	+ commit 55ac5eed9f59081283d34098a9e0ada753d61d59
 +	* src/dirinfo.c (WANT_GPG_WKS_CLIENT_NAME): New const.
 +	(struct dirinfo): New field 'gpg_wks_client_name'.
 +	(get_gpgconf_item): Build it on demand.
 +	(gpgme_get_dirinfo): New value "gpg-wks-client-name" for WHAT.
 +
 +	core: New encryption flag GPGME_ENCRYPT_THROW_KEYIDS.
 +	+ commit fab8b1a166fff7265d8a7a7acbbf5f30d26cc93c
 +	* src/gpgme.h.in (GPGME_ENCRYPT_THROW_KEYIDS): New flag.
 +	* src/engine-gpg.c (gpg_encrypt): Implement flag
 +	(gpg_encrypt_sign): Implement flag.
 +
 +	* tests/run-encrypt.c (main): New option --throw-keyids.
 +
 +2017-03-21  Andre Heinecke  <aheinecke at intevation.de>
 +	    Werner Koch  <wk at gnupg.org>
 +
 +	core: New public API gpgme_op_keylist_from_data_start.
 +	+ commit 35023f313622fb1b34108dd934e84831c58b81aa
 +	* src/gpgme.h.in: New API gpgme_op_keylist_from_data_start.
 +	* src/libgpgme.vers, src/gpgme.def: Add it.
 +	* src/keylist.c (gpgme_op_keylist_from_data_start): New.
 +	* src/engine-backend.h (engine_ops): Add field 'keylist_data'.  Change
 +	all engines to pass NULL for it.
 +	* src/engine.c (_gpgme_engine_op_keylist_data): New.
 +	* src/engine-gpg.c (gpg_keylist_data): New.
 +	(_gpgme_engine_ops_gpg): Register gpg_keylist_data.
 +
 +	* tests/run-keylist.c (main): New option --from-file.
 +
 +2017-03-20  Werner Koch  <wk at gnupg.org>
 +
 +	core,cpp: New key flag 'is_de_vs'.
 +	+ commit ea9686ec71a2dd2225ce2b6d6d4038821d36205f
 +	* src/gpgme.h.in (_gpgme_subkey): New flag is_de_vs.
 +	* tests/run-keylist.c (main): Print that flag.
 +	* src/keylist.c (parse_pub_field18): New.
 +	(keylist_colon_handler): Parse compliance flags.
 +	* lang/cpp/src/key.cpp (Key::isDeVs): New.
 +	(Subkey::isDeVs): New.
 +
 +	* lang/cpp/src/key.h (class Key): New method isDeVs.
 +	(class Subkey): New method isDeVs.
 +
 +2017-03-20  Justus Winter  <justus at g10code.com>
 +
 +	tests: Fix distcheck.
 +	+ commit 392e51dd1181d035c19918222da65d08fdb2ee6d
 +	* tests/start-stop-agent: Do not create 'gpg-agent.conf' if it does
 +	not exist.
 +
 +	python: Fix version check.
 +	+ commit 57e64d019d993fdeb4323def5352f8ecc98c6fd9
 +	* lang/python/tests/support.py (assert_gpg_version): Cope with
 +	non-released versions.
 +
 +	tests: Use 'gpg-agent --allow-loopback-pinentry' if applicable.
 +	+ commit 16b202d9999591b71fb8bb49f6db10ef96d4cbe8
 +	* lang/python/tests/Makefile.am (gpg-agent.conf): Do not hard-code the
 +	option.  This breaks gpg-agent from GnuPG 2.0.
 +	* tests/start-stop-agent: Rather, check if the option is supported and
 +	add it to the configuration if it is.
 +
 +	python: Skip tests if GnuPG is too old.
 +	+ commit e1cf8bab319ba1dea41ba5d711dbb66ffd8e6fd6
 +	* lang/python/tests/support.py (assert_gpg_version): New function.
 +	* lang/python/tests/t-callbacks.py: Use the new function to skip the
 +	test if GnuPG is too old.
 +	* lang/python/tests/t-edit.py: Likewise.
 +	* lang/python/tests/t-encrypt-sym.py: Likewise.
 +	* lang/python/tests/t-quick-key-creation.py: Likewise.
 +	* lang/python/tests/t-quick-key-manipulation.py: Likewise.
 +	* lang/python/tests/t-quick-key-signing.py: Likewise.
 +
 +	python: Remove superfluous initialization.
 +	+ commit 4572e8d2ac1d3b45e75ce71265c99e591fbf0e28
 +	* lang/python/tests/support.py (init_gpgme): Remove.  This is an
 +	remnant from the c tests.  Nowadays, the Python bindings initialize
 +	GPGME automagically.
 +	* lang/python/tests/initial.py: Remove call to 'support.init_gpgme'.
 +	* 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-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.
 +
 +2017-03-14  Justus Winter  <justus at g10code.com>
 +
 +	python: Make error message more helpful.
 +	+ commit 9d6825be092f1590f28b5bab462eeb944d9b800c
 +	* lang/python/tests/run-tests.py: Make the error message shown when we
 +	cannot locate the python module in the build tree more helpful.
 +
 +	python: Make tests more robust.
 +	+ commit ac4849953860547b06a167ca9612c4de369d02b6
 +	* lang/python/tests/support.py (TemporaryDirectory): Always use our
 +	own version even if 'tempfile.TemporaryDirectory' is provided, because
 +	we need to use 'shutil.rmtree(..., ignore_errors=True)' to avoid it
 +	tripping over gpg-agent deleting its own sockets.
 +
 +	python: Improve build system integration.
 +	+ commit a4201035fdc050f337a6b9f520c8ddbb569e2eb4
 +	* lang/python/Makefile.am: Use 'set -e' when chaining shell commands
 +	together in rules.
 +
 +	build: Improve Python detection.
 +	+ commit 6a371663886a7ba6073f385a3ab5f5a03de8e008
 +	* configure.ac: Do not error out too early if we don't find a matching
 +	Python version.  We handle this case later.
 +
 +	build: Tune M4 macros for our needs.
 +	+ commit 5189c08af9468cdeb6f16a6ecd0fee53e1e3aa0e
 +	* m4/ax_python_devel.m4: Do not emit 'HAVE_PYTHON'.
 +	* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Add newer Python
 +	versions, drop older ones.  Also, sort the list with older versions at
 +	the front, newer and generic versions towards the end.  This makes the
 +	algorithm pick the lowest version that meets the version requirement.
 +
 +	build: Add M4 macros for python.
 +	+ commit 067da472f919e78c95a0a01b68e79a8b7dff173b
 +	* m4/python.m4: New file.
 +
 +2017-03-13  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Add test for DN parser.
 +	+ commit 43aa3eed15dcc4f848915ceabeff35c29c1c57e4
 +	* qt/tests/t-various.cpp (testDN): New.
 +
 +	qt: Use gpgrt_asprintf instead of qstrdup.
 +	+ commit 9d5048d47446450a34cae4f27eb81c02ea5d4afc
 +	* lang/qt/src/dn.cpp (parse_dn_part): Use gpgrt_asprintf instead
 +	of qstrdup.
 +
 +2017-03-09  Werner Koch  <wk at gnupg.org>
 +
 +	core: Fix status error return for gpgsm.
 +	+ commit d2240a2a1819874929bdab820bcbd3bee7f94407
 +	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Make sure CB_ERR
 +	is returned.
 +	* src/import.c (parse_import_res): Do not return an error for the last
 +	field.
 +	(import_status_handler): Actually return the error from
 +	parse_import_res.
 +
 +2017-03-02  Justus Winter  <justus at g10code.com>
 +
 +	python: Print path of the Python module used during tests.
 +	+ commit 41398779abbcb1ec2d7491e141469a752fc706ff
 +	* lang/python/tests/initial.py: Print path of the Python module used
 +	during tests.  Useful to detect if by any mistake the wrong module is
 +	picked up.
 +
 +2017-03-02  Werner Koch  <wk at gnupg.org>
 +
 +	core: Fix minor code style thing.
 +	+ commit ef035f079fb067f207e5477d5ed6c5a68fb41f59
 +	* src/engine-gpg.c (gpg_add_algo_usage_expire): Use double parenthesis
 +	for bit tests.
 +
 +2017-03-02  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Add subkey keygrip to API.
 +	+ commit 8071a6b2ca33c2a46ed1d50ae7283241daaafcd3
 +	* lang/cpp/src/key.cpp (Subkey::keyGrip): New.
 +	* lang/cpp/src/key.h: Update accordingly.
 +
 +2017-03-01  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Add interactor to generate keys on smartcard.
 +	+ commit d63258066d008de113ed1170f1b0e787a5bdaba1
 +	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 +	Handle new states.
 +	* lang/cpp/src/gpggencardkeyinteractor.cpp,
 +	lang/cpp/src/gpggencardkeyinteractor.h: New.
 +	* lang/cpp/src/Makefile.am: Update accordingly.
 +
 +	qt: Allow creation of default keys without name.
 +	+ commit fbafb5474d8898ba1b267f4b4dfbefe39f04e72f
 +	* lang/qt/src/defaultkeygenerationjob.cpp
 +	(DefaultKeyGenerationJob::start): Handle empty name and email.
 +
 +2017-02-26  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
 +
 +	doc: Correct documentation for recp arg of gpgme_op_encrypt_sign_start.
 +	+ commit 5b49095b89b07591c69827df3973ffabfb3e97b8
 +	* doc/gpgme.texi (gpgme_op_encrypt_sign_start): recp is an array of
 +	gpgme_key_t, not a single element.
 +
 +2017-02-20  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix test.
 +	+ commit a7c6353edab57b67180aa127ec77d9353c2366fb
 +	* lang/python/tests/t-quick-key-manipulation.py: Modify the
 +	configuration file in the ephemeral home directory, not the one used
 +	by all the tests.
 +
 +2017-02-17  Justus Winter  <justus at g10code.com>
 +
 +	python: Support manipulating the TOFU policy.
 +	+ commit 15fbac9e72a4d1bff9a3b9e9822f9175b09fbcd5
 +	* NEWS: Update.
 +	* doc/gpgme.texi: Fix typos.
 +	* lang/python/gpg/constants/__init__.py: Import new files.
 +	* lang/python/gpg/constants/tofu/__init__.py: New file.
 +	* lang/python/gpg/constants/tofu/policy.py: New file.
 +	* lang/python/gpg/core.py (Context.key_tofu_policy): New function.
 +	* lang/python/gpgme.i: Nice reprs for gpgme_tofu_info_t.
 +	* lang/python/setup.py.in: Install new package.
 +	* lang/python/tests/t-quick-key-manipulation.py: Extend test.
 +
 +	python: Support quick key signing.
 +	+ commit 48634e651fcd02431c0518d42ada1f3b402feb2c
 +	* NEWS: Update.
 +	* doc/gpgme.texi (gpgme_op_keysign): Fix the description of the
 +	'expire' argument.
 +	* lang/python/gpg/constants/__init__.py: Import new file.
 +	* lang/python/gpg/constants/keysign.py: New file.
 +	* lang/python/gpg/core.py (Context.key_sign): New function.
 +	* lang/python/tests/Makefile.am (py_tests): Add new test.
 +	* lang/python/tests/t-quick-key-signing.py: New test.
 +
 +	python: Fix teardown of ephemeral contexts.
 +	+ commit de8494b16bc50c60a8438f2cae1f8c88e8949f7a
 +	* lang/python/tests/support.py (EphemeralContext): New function.
 +	* lang/python/tests/t-quick-key-creation.py: Use the new function to
 +	manage ephemeral contexts.
 +	* lang/python/tests/t-quick-key-manipulation.py: Likewise.
 +	* lang/python/tests/t-quick-subkey-creation.py: Likewise.
 +
 +	python: Fix using strings as commands in the assuan protocol.
 +	+ commit 9350168a1eed3f055040d7cc8a9bf4cdf745b23a
 +	* lang/python/gpg/core.py (Context.assuan_transact): Fix testing
 +	whether the command is a string on Python2.
 +	* lang/python/tests/t-protocol-assuan.py: Improve the test to detect
 +	this problem.
 +
 +2017-02-16  Justus Winter  <justus at g10code.com>
 +
 +	python: Support adding and revoking UIDs.
 +	+ commit 7641b7b5f2c9d5b38c60cd9326bcb4810c37dae5
 +	* NEWS: Update.
 +	* lang/python/gpg/core.py (Context.key_add_uid): New function.
 +	(Context.key_revoke_uid): Likewise.
 +	* lang/python/tests/Makefile.am (XTESTS): Add new test.
 +	* lang/python/tests/t-quick-key-manipulation.py: New file.
 +
 +	python: Support quick subkey creation.
 +	+ commit 13bace25e3d8422f93fd24919994be36042fd220
 +	* NEWS: Update.
 +	* lang/python/gpg/core.py (Context.create_subkey): New function.
 +	* lang/python/tests/Makefile.am (XTESTS): Add new test.
 +	* lang/python/tests/t-quick-subkey-creation.py: New file.
 +
 +	python: Support quick key creation.
 +	+ commit 476b97822b169c30cc246c1de2ff94cf89084706
 +	* NEWS: Update.
 +	* lang/python/gpg/constants/__init__.py: Import new file.
 +	* lang/python/gpg/constants/create.py: New file.
 +	* lang/python/gpg/core.py (Context.create_key): New function.
 +	* lang/python/tests/Makefile.am (XTESTS): Add new test.
 +	* lang/python/tests/support.py (TemporaryDirectory): New class.
 +	* lang/python/tests/t-quick-key-creation.py: New file.
 +
 +	python: Fix passphrase callback wrapping.
 +	+ commit 3bdce4aa3ddd4a3f55b24678faf978d61daa8909
 +	* lang/python/helpers.c (pyPassphraseCb): Cope with 'passphrase_info'
 +	being NULL.
 +
 +	python: Fix error handling.
 +	+ commit 048c5f74b61d5e4fa7617ce7c9111c6754bd4409
 +	* lang/python/gpgme.i (typemap gpgme_key_t[]): Set an error if a
 +	non-key element is discovered.
 +
 +2017-02-15  Justus Winter  <justus at g10code.com>
 +
 +	core: Fix expiration time handling when creating keys.
 +	+ commit de708e5934cda380dbc3ae51f587c09041de7562
 +	* NEWS: Update.
 +	* doc/gpgme.texi (gpgme_op_createkey): Clarify the meaning of the
 +	'expire' parameter.
 +	(GPGME_CREATE_NOEXPIRE): Document new flag.
 +	(gpgme_op_createsubkey): Clarify the meaning of the 'expire'
 +	parameter.
 +	* src/engine-gpg.c (gpg_add_algo_usage_expire): Fix handling of the
 +	expiration time.
 +	* src/gpgme.h.in (GPGME_CREATE_NOEXPIRE): New macro.
 +
 +	python: Fix build system integration.
 +	+ commit 27544d0a74267ab6057dc816ea3311bc9149a200
 +	* lang/python/Makefile.am (copystamp): Also copy the setup script, and
 +	link the header files.
 +	(all-local): Use local setup script.
 +	(sdist): Fix Python source distribution creation.
 +	(CLEANFILES): Remove now obsolete files.
 +	(install-exec-local): Use local setup script.
 +	* lang/python/setup.py.in: Adjust relative paths to in-tree files.
 +
 +	python: Update lists of functions returning gpgme_error_t.
 +	+ commit 25f0435a0022a70af77660d72d33f17bec2d4e51
 +	* lang/python/gpg/core.py (Context._errorcheck): Add instructions how
 +	to update the list.  Update list.
 +	(Data._errorcheck): Likewise.
 +	(Context.set_engine_info): Simplify.
 +
 +	core: Fix error types.
 +	+ commit 6df6e01ed5a581765d245bf7303cda4497d0eb22
 +	* NEWS: Update.
 +	* src/data.c (gpgme_data_set_flag): Return a 'gpgme_error_t'.
 +	* src/error.c (gpgme_strerror_r): Fix type of first argument.
 +	* src/gpgme.h.in (gpgme_strerror_r): Adapt.
 +	(gpgme_data_set_flag): Likewise.
 +
 +2017-02-14  Justus Winter  <justus at g10code.com>
 +
 +	python: Wrap utility functions.
 +	+ commit 92adc9bbf640eb5d9177d3ba0189e0f6cee4e995
 +	* NEWS: Update.
 +	* lang/python/gpg/core.py (pubkey_algo_string): New function.
 +	(pubkey_algo_name): Add docstring.
 +	(hash_algo_name): Likewise.
 +	(get_protocol_name): Likewise.
 +	(addrspec_from_uid): New function.
 +	* lang/python/gpgme.i (gpgme_pubkey_algo_string): Result must be
 +	freed.
 +	(gpgme_addrspec_from_uid): Likewise.
 +
 +	python: Use the correct function to free buffers.
 +	+ commit 9fc9533c2835ec53c4fd4f822b09e9fec14626d0
 +	* lang/python/gpgme.i (char *): Free using 'gpgme_free'.
 +
 +	python: Add keylist mode parameter.
 +	+ commit fdc4e33dc3f6c84fe9d7bf9795c603ae3cf5f28d
 +	* NEWS: Update.
 +	* lang/python/gpg/core.py (Context.keylist): Add 'mode' parameter.
 +
 +	python: Nicer repr for user ids.
 +	+ commit e17ab84129045512cf60c221ee43aa877507662f
 +	* lang/python/gpgme.i (_gpgme_user_id): Provide a nicer repr() for
 +	user ids.
 +
 +	python: Add convenience functions for the home directory.
 +	+ commit 99b7f4f34dd595579181a696ae976a678fe00d49
 +	* NEWS: Update.
 +	* lang/python/gpg/core.py (Context.__init__): Add 'home_dir' argument.
 +	(__repr__): Include 'home_dir'.
 +	(Context.home_dir): New property.
 +
 +	qt: Make sure to remove the tofu.db on clean.
 +	+ commit 30a603580e0f196c721fa4bd44d24077d9bc06c3
 +	* lang/qt/tests/Makefile.am (CLEANFILES): Add 'tofu.db'.
 +
 +2017-02-14  Tobias Mueller  <muelli at cryptobitch.de>
 +
 +	python: Extend SWIG gpgme_{sub,}key with a __repr__ method.
 +	+ commit 01d5c17587578c729bbbb60f8a65635975e35592
 +	* lang/python/gpgme.i: Added a genericrepr macro and use it for
 +	gpgme_key, gpgme_subkey, and gpgme_key_sig.
 +
 +	python: Remove the -builtin flag for SWIG.
 +	+ commit aa49be1ab80c200ab6b62d33bf5d0f5aa334fc56
 +	* lang/python/setup.py.in: Call SWIG without the builtin flag.
 +
 +	python: Call SWIG_NewPointerObj rather than SWIG_Python_NewPointerObj.
 +	+ commit d35651917097ae2eee7d52396d53d010bc34df19
 +	* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Provide a "self"
 +	variable for SWIG_NewPointerObj and call SWIG_NewPointerObj rather than
 +	SWIG_Python_NewPointerObj.
 +
 +	python: Conditionally provide py3 argument to SWIG.
 +	+ commit d184dbbba8987d9f387feb25791ed891e108dabc
 +	* lang/python/setup.py.in: Only call with -py3 when we run under python3
 +	or higher.
 +
 +2017-02-13  Justus Winter  <justus at g10code.com>
 +
 +	python: Use one copy of the source tree per Python version.
 +	+ commit fe65a26ab584bd70fad45c7c4d44330e30a748a4
 +	* lang/python/Makefile.am (copystamp): Create one copy per Python
 +	version.
 +	(all-local): Adapt.
 +	(clean-local): Likewise.
 +	(install-exec-local): Likewise.
 +	* lang/python/tests/run-tests.py: Likewise.
 +
 +	build: Use macOS' compatibility macros to enable all features.
 +	+ commit 60273e8b2c11d42215a5707bc55e3e0d8f350e07
 +	* configure.ac: On macOS, use the compatibility macros to expose every
 +	feature of the libc.  This is the equivalent of _GNU_SOURCE on GNU
 +	libc.
 +
 +	Revert "Disable fd-passing for Apple."
 +	+ commit f8db658f8b4c3c7941d0029273fb23fbe1ba74ad
 +	The actual bug has been located, so this can be reverted.
 +
 +	This reverts commit ef5b4ae37d13142e89a051908dc080cda3d24baa.
 +
 +2017-02-13  Igor Gnatenko  <ignatenkobrain at fedoraproject.org>
 +
 +	qt: Add missing #include <functional>
 +	+ commit 60064c665ec98a2a994fc6c8ad701e60b963ce7e
 +	* lang/qt/src/qgpgmenewcryptoconfig.cpp,
 +	lang/qt/src/threadedjobmixin.h: Include functional.
 +
 +2017-02-07  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Don't rely on implicit include in t-verify.
 +	+ commit 903bf16a416b1bf608b1e647937c9b06864b0141
 +	* lang/qt/tests/t-various.cpp: Include QTemporaryDir
 +
 +2017-02-06  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
 +
 +	doc: Document that gpgme_op_genkey() parms parameter is not XML.
 +	+ commit ad22bee5387b1e9a40e8c822a081db3228bb9def
 +	* doc/gpgme.texi (GnupgKeyParms): document that input format is not
 +	true XML.
 +
 +2017-02-03  Werner Koch  <wk at gnupg.org>
 +
 +	core: Optimize fork/exec for *BSD and Solaris.
 +	+ commit 51bd69f216a9e2930eeba4b5f6c20e952a381720
 +	* configure.ac (closefrom): Add to ac_check_funcs.
 +	* src/posix-io.c (_gpgme_io_spawn): Use closefrom.
 +
 +	core: Fix possible deadlock due to get_max_fds.
 +	+ commit 93a59070c699d569d1eac7ba22355fe3f5d10882
 +	* src/posix-io.c (get_max_fds): Do not use the Linux optimization.
 +
 +	core: Minor cleanup of commit 195c735.
 +	+ commit afc308598d1ddaf20d54b4eab30b959066a4e5e6
 +	* src/verify.c (parse_tofu_user): For cleanness use gpg_error ...
 +	(_gpgme_verify_status_handler): ... and gpg_err_code.
 +
 +2017-02-02  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Add test for tofu conflict.
 +	+ commit 43160a39f27f6c3507447620666c85af00b3499c
 +	* lang/qt/tests/t-tofuinfo.cpp (TofuInfoTest::testTofuConflict): New.
 +
 +	core: Handle multiple TOFU_USER lines in verify.
 +	+ commit 195c73589232160f45d00f4901c9bb2b0162f0e5
 +	* src/verify.c (op_data_t): Add conflict_user_seen.
 +	(parse_tofu_user): Return ERR_DUP_VALUE for mutltiple TOFU_USERS.
 +	(_gpgme_verify_status_handler): Handle ERR_DUP_VALUE from
 +	parse_tofu_user to ignore the next TOFU_STATS.
 +
 +2017-02-02  Werner Koch  <wk at gnupg.org>
 +
 +	core: Replace all calls to *sprintf by gpgrt_*sprintf.
 +	+ commit 15050ce5fce4ed815503db7c029abb38d08970d6
 +	* configure.ac (vasprintf): Remove check.
 +	* src/vasprintf.c: Remove file.
 +	* src/util.h (vasprintf, asprintf): Remove prototypes.  Replace all
 +	calls to vasprintf and asprintf by gpgrt_vasprintf or gpgrt_asprintf.
 +	Also take care to use gpgrt_free on the returned value.
 +	* src/w32-util.c (_gpgme_get_gpgconf_path): Replace a gpgrt_asprintf
 +	by _gpgme_strconcat.
 +	(snprintf): New macro to use gpgrt_snprintf instead of the system's
 +	standard snprintf.
 +
 +	core: Remove unused check for funopen/fopencookie.
 +	+ commit 563420a88f8a4f561a2faea4d2b4a1c58b375fd8
 +	* configure.ac (funopen): Remove check.
 +	* src/funopen.c: Remove file.
 +
 +	core: Un-deprecate gpgme_data_rewind.
 +	+ commit d19bea52afe6efb66a46af6aa4d09928c5d05ee5
 +	* src/gpgme.h.in (gpgme_data_rewind): Un-deprecate.
 +	* src/data-compat.c (gpgme_data_rewind): Move to ...
 +	* src/data.c (gpgme_data_rewind): here.
 +
 +	core: Move all deprecated stuff to the end of gpgme.h.
 +	+ commit 9b7d81998b734fabeb4fbc697f08fc7795eaa90a
 +
 +
 +2017-02-01  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	core: Cleanup gpgme_key_unref frees.
 +	+ commit 8ede86795a1d419c01b4910ec2fd1fb18b629452
 +	* src/key.c (gpgme_key_unref): Nowadays we assume free(NULL) is ok.
 +
 +	core: Fix leakage of address for mail only uids.
 +	+ commit b5075030bec9b21bf4e515bc1686df3fa43eced2
 +	* src/key.c (gpgme_key_unref): Always free address if set.
 +	(_gpgme_key_append_name): Remove memory optimization for address.
 +
 +	core: Improve mailbox only uid handling.
 +	+ commit a28d31fdb623f2ee30e8094d09f1a0d1ae446a9b
 +	* src/key.c (_gpgme_key_append_name): Set email and remove name
 +	for uid only keys.
 +
 +2017-01-31  Justus Winter  <justus at g10code.com>
 +
 +	qt: Increase timeout when waiting for signals.
 +	+ commit ba594d85e35e63301755977234d3af88a167a215
 +	* lang/qt/tests/t-support.h (QSIGNALSPY_TIMEOUT): New macro.
 +	* lang/qt/tests/t-encrypt.cpp: Use the new macro as timeout when
 +	waiting for signals.
 +	* lang/qt/tests/t-keylist.cpp: Likewise.
 +	* lang/qt/tests/t-keylocate.cpp: Likewise.
 +	* lang/qt/tests/t-ownertrust.cpp: Likewise.
 +	* lang/qt/tests/t-wkspublish.cpp: Likewise.
 +
 +2017-01-31  Werner Koch  <wk at gnupg.org>
 +
 +	core: Add new context flag "redraw".
 +	+ commit 752d3597ef02a95efd693373132bf1e246f0edb0
 +	* src/context.h (struct gpgme_context): New field 'redraw_suggested'.
 +	* src/op-support.c (_gpgme_op_reset): Clear REDRAW_SUGGESTED.
 +	* src/progress.c (_gpgme_progress_status_handler): Set REDRAW_SUGGESTED.
 +	* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "redraw".
 +	* tests/run-sign.c (main): Use it.
 +
 +2017-01-30  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	tests: Reduce iterations / threads.
 +	+ commit 7bd6ab4a91d43d7cbf5d347c0c12e0e4f9f7e3bf
 +	* tests/gpg/t-gpgconf.c (main): Reduce iterations to 10.
 +	* tests/gpg/t-thread-keylist-verify.c,
 +	tests/gpg/t-thread-keylist.c (THREAD_COUNT): Reduce to 10.
 +
 +2017-01-26  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	python: Ensure quick-random is used if gpg is gpg2.
 +	+ commit f3ca2c9ce9fd4a03e293065f10b92589a7e642d6
 +	* lang/python/tests/Makefile.am (gpg.conf): Configure
 +	agent-program accordingly.
 +
 +2017-01-25  Tobias Mueller  <muelli at cryptobitch.de>
 +
 +	python: default op_keylist_start parameters.
 +	+ commit 9291ebaa4151a1f6c8c0601095ec45809b963383
 +	* lang/python/gpgme.i: Added gpgme_op_keylist_start with defaults
 +	* lang/python/tests/t-keylist.py: Added tests for default parameters
 +
 +2017-01-25  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	tests: Use --debug-quick-random for tests.
 +	+ commit a98951a30a6ae603ffac4ec8c5168aa6d1019933
 +	* tests/start-stop-agent: Don't autostart agent on --stop and
 +	running check. Use --debug-quick-random when starting.
 +
 +2017-01-23  Justus Winter  <justus at g10code.com>
 +
 +	w32: Fix closing file descriptors.
 +	+ commit 6f02133bb07726afa6950e5b4685e75621276e60
 +	* src/w32-io.c (writer): Only stop once the buffer is drained.
 +	(destroy_writer): Wait for the writers buffer to be drained.  This
 +	aligns '_gpgme_io_close's behavior with close(2) and fclose(3).
 +
 +2017-01-17  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	tests: Add safeguards against nullptr deref.
 +	+ commit ca69df8c8d3f044340aee2a118cc20d33cd600a1
 +	* t-gpgconf.c (main): Test some values before dereferencing them.
 +
 +2017-01-16  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Use QVERIFY instead of Q_ASSERT in conf test.
 +	+ commit abfd241d1a1ae8e30e18b7c5e0658b8c54d89544
 +	* lang/qt/tests/t-config.cpp: Use QVERIFY instead of Q_ASSERT.
 +
 +	qt: Add test for CryptoConfig.
 +	+ commit 8aba08d1d0871f439fb7193adc4a2f43a81ee216
 +	* lang/qt/tests/t-config.cpp: New.
 +	* lang/qt/tests/Makefile.am: Update accordingly.
 +
 +2017-01-16  Justus Winter  <justus at g10code.com>
 +
 +	tests: Fix distcheck.
 +	+ commit 92543da94cbf8e807b1b33070d273f995cdd5c62
 +	* tests/gpg/Makefile.am (CLEANFILES): Remove gpgconf backups.
 +
 +	Fix changing options with gpgconf.
 +	+ commit 0e242278dfaa64ce31a45b72f5fa0806a3dba898
 +	* src/engine-gpgconf.c (gpgconf_write): Connect a pipe to the child's
 +	stderr, and wait for it to be closed as an indication that gpgconf has
 +	exited.  Also improve error handling.
 +
 +2017-01-12  Justus Winter  <justus at g10code.com>
 +
 +	tests: Improve the gpgconf test.
 +	+ commit 186dcd3494eda7383de57a530fd15776410531a5
 +	* tests/gpg/t-gpgconf.c: Include support functions.
 +	(fail_if_err): Remove macro.
 +	(init_gpgme): Remove function.
 +	(lookup): New function.
 +	(main): Update some values and verify that the changes are applied.
 +	* tests/gpg/t-support.h (test): New assert-like macro.
 +
 +2017-01-12  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Add support for stringValueList in CryptoConf.
 +	+ commit 9640dc58e498966b482dcded6990cf4b47c556ac
 +	* lang/qt/src/Makefile.am (qgpgme_sources): Add cryptoconfig.cpp
 +	* lang/qt/src/cryptoconfig.cpp: New.
 +	* lang/qt/src/cryptoconfig.h (CryptoConfigEntry::stringValueList):
 +	New.
 +	* lang/qt/src/qgpgmenewcryptoconfig.cpp
 +	(QGpgMENewCryptoConfigEntry::stringValueList): New.
 +	* lang/qt/src/qgpgmenewcryptoconfig.h: Update accordingly.
 +
 +	qt: Don't use qstrdup in test passphrase cb.
 +	+ commit a09ed3f26a1fab54079c37c49df5c440cc792f78
 +	* lang/qt/tests/t-support.h (TestPassphraseProvider::getPassphrase):
 +	Use gpgrt_asprintf instead of strdup.
 +
 +2017-01-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Clean up test dirs on failure.
 +	+ commit 56926c9b5012e8135541a933af1d69c5a81f02b3
 +	* t-encrypt.cpp,
 +	t-keylist.cpp,
 +	t-keylocate.cpp,
 +	t-ownertrust.cpp,
 +	t-tofuinfo.cpp,
 +	t-various.cpp,
 +	t-verify.cpp,
 +	t-wkspublish.cpp: Use QVERIFY instead of Q_ASSERT
 +
 +	qt: Add test for uid functions.
 +	+ commit 9e643ab67168dfbd189ccc0bfed8fb59253ee79c
 +	* lang/qt/tests/t-various.cpp: New.
 +	* lang/qt/tests/Makefile.am: Update accordingly.
 +
 +	cpp: Add revuid and adduid support.
 +	+ commit e416f9961837039f259558edf41fccbc181ad128
 +	* lang/cpp/src/context.cpp
 +	(Context::revUid, Context::startRevUid),
 +	(Context::addUid, Context::startAddUid): New.
 +	* lang/cpp/src/context.h: Declare new functions.
 +	* lang/cpp/src/key.cpp (Key::UserID::revoke)
 +	(Key::addUid): Idomatic helpers.
 +	lang/cpp/src/key.h: Declare new functions.
 +	* NEWS: Update accordingly.
 +
 +	Fix Qgpgme build for macos.
 +	+ commit efe58fe011f195d98adb4f03b1e1068a26ba287b
 +	* lang/qt/src/dn.cpp: Include string.h
 +	(parse_dn_part): Use qstrdup.
 +	* lang/qt/tests/t-support.h (getPassphrase): Use qstrdup.
 +
 +	Fix cmake configuration files for MacOS.
 +	+ commit 2e661b9e1a9b50656a5c9646d7444a98477010c1
 +	* configure.ac: Set HAVE_MACOS_SYSTEM conditional.
 +	* lang/qt/src/Makefile.am,
 +	lang/cpp/src/Makefile.am,
 +	lang/qt/src/QGpgmeConfig.cmake.in.in,
 +	lang/cpp/src/GpgmeConfig.cmake.in.in: Use libsuffix again to
 +	distinguish between macos .dylib
 +
 +2017-01-03  Justus Winter  <justus at g10code.com>
 +
 +	python: Improve compatibility with Scheme tests.
 +	+ commit b14419f68b3aaa90025e0e97151de7c3da7806fb
 +	* lang/python/tests/run-tests.py: Add stub --parallel option.
 +
 +	python: Add a switch '--quiet' to the test runner.
 +	+ commit d0e91d28f63b74e53673902e675be8a54b6b90d3
 +	* lang/python/tests/run-tests.py: Add and honor a switch '--quiet'.
 +	This way we can use this script to run Python tests one by one without
 +	the noise, and the script will setup the necessary environment for us.
 +
 +2017-01-02  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Update config sync doc / comment.
 +	+ commit ececfd5de81f1851943be7b284b672d5b02aceb4
 +	* lang/qt/src/cryptoconfig.h (CryptoConfig::sync): Document
 +	that runtime option is always set.
 +	* lang/qt/Src/qgpgmenewcryptoconfig.cpp
 +	(QGpgMENewCryptoConfigComponent::sync): Remove outdated comment
 +	and warn on error.
 +
 +	core: Always use runtime for gpgconf changes.
 +	+ commit 7103315829847163f1c6f52cad25d1ddb33358f0
 +	* src/engine-gpgconf.c (gpgconf_write): Add --runtime.
 +	* src/gpgme.h.in (gpgme_conf_opt_change): Document this
 +	behavior.
 +
 +2017-01-01  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Fix gpg_addkey() to work with GPGME_CREATE_NOPASSWD as well.
 +	+ commit a4b9f1a2b404fd8627d5ac567617510abd55d980
 +	* src/engine-gpg.c (gpg_addkey): Pass --batch to gpg when
 +	GPGME_CREATE_NOPASSWD is set to fix pinentry without loopback mode.
 +
 +2016-12-27  Ben Kibbey  <bjk at luxsci.net>
 +
 +	Fix GPGME_CREATE_NOPASSWD without pinentry loopback.
 +	+ commit d83b8f0dc84d6cf7fe2e091bd1b103ceedfa3d6c
 +	* src/engine-gpg.c(gpg_createkey): Pass --batch to gpg when
 +	GPGME_CREATE_NOPASSWD is set.
 +
 +2016-12-19  Raphael Kubo da Costa  <rakuco at FreeBSD.org>
 +
 +	Qt: Make sure extended grep is used with '|'.
 +	+ commit 211844f049d714cd4d5aab96347705cb0c209c5d
 +	* m4/qt.m4: Use grep -E when using the alternation character.
 +
 +2016-12-16  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Ensure that hasSecret is correct after update.
 +	+ commit da5343a9d2c8c0ca6431162aac4bd5c73b4ae6dd
 +	* lang/cpp/src/key.cpp (Key::update): Check for
 +	a secret key first before listing public keys.
 +
 +2016-12-15  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Fix addrSpec for keys without email.
 +	+ commit 85e05537e15346896a271d3f62bead9dd7e3f180
 +	* lang/cpp/src/key.cpp (UserID::addrSpec): Use uid->address instead
 +	of normalizing again.
 +	(&operator<<(std::ostream &, const UserID &): Print it.
 +
 +	cpp: Fix update of partial key in verifyresult.
 +	+ commit 5673f3e54af535155893290a685b3afb44c7f58d
 +	* lang/cpp/src/verificationresult.cpp
 +	(Signature::key(bool,bool)): Don't update the returned copy
 +	but the actual key of the signature.
 +
 +2016-12-07  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Clarify what "checking on bit" means.
 +	+ commit 7880335273382f05cbbe38aa965a566c4127ba6a
 +	* doc/gpgme.texi (gpgme_sigsum_t summary): Clarify what "you
 +	can check one bit means"
 +
 +2016-12-05  Tobias Mueller  <muelli at cryptobitch.de>
 +
 +	python: Try to be more helpful when given a string to encrypt().
 +	+ commit 05896c210f7fa9ce7b97784a75e49dc4489e9252
 +	* lang/python/helpers.c (_gpg_obj2gpgme_data_t): Extended error
 +	message.
 +	* lang/python/tests/t-encrypt.py: Test for "encode" in error message.
 +
 +	python: Define a macro for wrapping fragile result objects.
 +	+ commit fb7f4cb973abc9f5eb05eb240607be35c1be986c
 +	* lang/python/gpgme.i (wrapresult): New Macro.
 +
 +2016-12-01  Tobias Mueller  <muelli at cryptobitch.de>
 +
 +	python: Check "buffer" when writing to sys.stdout for python2 compat.
 +	+ commit ae21d2705fc46725e1f9af1651b68d16155d1501
 +	* lang/python/tests/support.py (print_data): Add check for buffer.
 +
 +	python: Make Context have a repr method.
 +	+ commit 154389f2a5e4c13081cf0624222aad29ee480b56
 +	* lang/python/gpg/core.py (Context.__repr__): New function.
 +
 +	python: Make Results have a nicer __repr__.
 +	+ commit db2f6c1ca3d2ef228f4ca6653d594537622c8588
 +	* lang/python/gpg/results.py (Result.__str__): Renamed to '__repr__'
 +	...
 +	* lang/python/gpg/results.py (Result.__repr__): ... and added fields.
 +
 +2016-11-25  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix removing the TOFU database.
 +	+ commit fd4d476214ae06e33f4a6dac534d3deca5cc6cd3
 +	* lang/python/Makefile.am (CLEANFILES): Move 'tofu.db'...
 +	* lang/python/tests/Makefile.am (CLEANFILES): ... here.
 +
 +	tests: Remove tofu.db.
 +	+ commit 9b22f82afc5518961e4bea1fc516b79800e379a2
 +	* lang/python/Makefile.am (CLEANFILES): Add 'tofu.db'.
 +	* tests/gpg/Makefile.am (CLEANFILES): Likewise.
 +
 +2016-11-17  Heiko Becker  <heirecka at exherbo.org>
 +
 +	Remove a forgotten instance of @libsuffix@
 +	+ commit 572c1aac107125ce62230251713349348373db5a
 +	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove a forgotten
 +	instance of @libsuffix at .
 +
 +2016-11-16  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.8.0.
 +	+ commit f06220b691e9711afdabaa19886244ae7724eed5
 +	* 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).
 +	+ commit 9fc92a15bd0a30437a39d0eb28b6f40edc22e6e8
 +	* 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.
 +
 +2016-11-16  Daniel Kahn Gillmor  <dkg at fifthhorseman.net>
 +
 +	doc,tests: Require use of ctx_flag before use of session_key.
 +	+ commit 573064742145aa5f9bf04baa88af918c0c4d5e12
 +	* 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.
 +	+ commit b2c07bd47bd608afa5cc819b60a7b5bb8c9dd96a
 +	* 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.
 +	+ commit 45abe6d142e314ba7099ad80b6365af171b06fec
 +	* 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".
 +	+ commit 7659d42468b604db2936b021425683f407eba4a7
 +	* 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.
 +	+ commit 3234b1bf1d6939772677d64f6c1e1820ec98e3cd
 +	* 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.
 +	+ commit cad1210fb8a7402cb29e607f8f9680005314120d
 +	* 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.
 +	+ commit 9451faa2ee333904cff59f92ab62918e13ab4b87
 +	* 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.
 +	+ commit d09a84eaf1e4f8c6c2e462995fa15c1a5690a6ce
 +	* cpp/src/context.cpp, cpp/src/context.h (Context::setSender),
 +	(Context::getSender): Add simple wrappers.
 +
 +	qt, cpp: Enable dll build for windows.
 +	+ commit f3790ddf56558fb0a08af95fdbae979cd6589aad
 +	* lang/cpp/src/Makefile.am,
 +	lang/qt/src/Makefile.am: Add -no-undefined to LDFLAGS.
 +
 +	w32: Fix build of w32-glib.
 +	+ commit b91c383386fe9eadd90afdb9bb1f8ec6c528173b
 +	* 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.
 +	+ commit 16a30205064914eef578d84d07141b5d51d82838
 +	* 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.
 +	+ commit d50bdb269e86db36a443958e3bfc6816a44d468e
 +	* doc/gpgme.texi: Documentation about gpgme_cancel_async should refer
 +	to the correct name.
 +
 +	core: Non-zero values should set _armor, _textmode, and _online.
 +	+ commit da035768bd9a880becee5d0d553dfe12299f96eb
 +	* 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.
 +	+ commit 41d8c7e51a8989be633b9ada124c58a01fae7d54
 +	* 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.
 +	+ commit 6e57379c8e37c0863f7d12819a5a7d0781bd76d2
 +	* 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.
 +	+ commit ddd0a3cf90ac4b0a27ea610ebd7b9b8016ff43c4
 +	* 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.
 +	+ commit 2a39bd6c30d21c43c86645a7908ce6c57dad5e20
 +	* 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.
 +	+ commit d0030efb45ec8436dd84a9623d2f66b80c6b9e10
 +	* 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.
 +	+ commit 4d5174e4a83dcd524f8085f6646145f81b50a02a
 +	* 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.
 +	+ commit 09b64554328445e99a8cc78fc34ea49c2ea2e7f9
 +	* 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.
 +	+ commit f1f341062e24724e26928d893dd5769d3ccf5fa2
 +	* 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.
 +	+ commit 10f2e1c30be651e74a03f4563a9f212d7416adb3
 +	* 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.
 +	+ commit 3509cf2f9846360848b6c08d36cbca18373c935e
 +	* 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.
 +	+ commit 512de91f9a8da8f491e09653eb4b5bdd0a027198
 +	* lang/cpp/src/engineinfo.h
 +	(EngineInfo::Version::Version(const char*)),
 +	(EngineInfo::Version::Version()): New.
 +
 +	cpp: Don't include gpgme.h in tofuinfo header.
 +	+ commit 4d3f33d0e9d960df2c34fb4d215987ab4d36111c
 +	* lang/cpp/src/tofuinfo.h: Don't include gpgme.h
 +
 +	cpp: Extend gpgmefw for tofuinfo and swdb query.
 +	+ commit 23979b9be5a6028e3e9cafc3aff632bc720b81f2
 +	* 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.
 +	+ commit df08a0ca3f029b06b7e3a6bd63330df5cb96585a
 +	* 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.
 +	+ commit aad94cb7c313d4501bed748f48830cbb93c67e20
 +	* 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.
 +	+ commit 34a4e8017be452e8ead6b9c2da84be1ec7929cae
 +	* 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.
 +	+ commit 0c2038c0043c1e79547b55e79c3d3e267dae801c
 +	* 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.
 +	+ commit b4658f6a1110bb0b54bd5dfc9df8e8b390e38d61
 +	* 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.
 +	+ commit bf9aa0ccf7b0165aa3a1af2bdb18daca7c02ce74
 +	* 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.
 +	+ commit b5c4d56cfdcafade3467be100fca6f1c89ecab73
 +	* lang/qt/src/Makefile.am: Install cmake config file in qgpgme subdir.
 +
 +	qt: Require gpgmepp from cmake config script.
 +	+ commit 4149194d2e2f2f4d142926ba4d4efbd336b543f2
 +	* lang/qt/src/QGpgmeConfig.cmake.in.in: Require cpp.
 +
 +	qt, cpp: Add all generated files to cleanfiles.
 +	+ commit 8486f213423311174ebff5cba74127cbd9bb3c2a
 +	* 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.
 +	+ commit 627c5deed84b4481710b6c0de06b26e886679bbe
 +	* 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.
 +	+ commit 567123de21247cab05762d799400739a12eb67ae
 +	* 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.
 +	+ commit 4b3264345084a0c9bf9f97fb233df700d7608e66
 +	* 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.
 +	+ commit 20dc37a0e7e1531b0e568a6ec29b1c2d18de59c3
 +	* 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.
 +	+ commit 70b7064e5c4f3eff9c296c00156724bc0cdaa64f
 +	* 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.
 +	+ commit 2fac017618a76882605125b05ff1f7393fe99860
 +	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.
 +	+ commit b8159eadb5636cd9d93ee60c41e75d5978927870
 +	* 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.
 +	+ commit 26cbba3c9cb04a68b95f3a6000ac9bd93fe76dd7
 +	* lang/qt/src/wkspublishjob.h: Improve doc.
 +
 +2016-10-18  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.7.1.
 +	+ commit 2c490cdb3e50761c498357982445ebb01f18dc1e
 +	* 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.
 +	+ commit 05e8e1260baa5cbc6f1d6e387e642c1f6c188d44
 +	* tests/gpg/t-cancel.c: Include sys/time.h and protect sys/select.h.
 +
 +	python: Call ln(1) in a portable way.
 +	+ commit c6cab5a2bd6e7ed226c6c3f0b78b3f48b47db74c
 +	* 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.
 +	+ commit 1e8c34a9192956bb2fe96a7a6a76ff59de8d1c0c
 +	* 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.
 +	+ commit f526d0e22e8b881ccbca66b46a0e1b68bbc4cd6b
 +	* 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.
 +	+ commit 1e6073ffa98db2c265adbcf0dbbe70c067a910f0
 +	* 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.
 +
 +	python: Fix example.
 +	+ commit cabd4c74e52c8983d624b6877cddc7f8912eff04
 +	* lang/python/examples/inter-edit.py: Fix example.
 +
 +2016-10-13  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp: Fix version number.
 +	+ commit 56302e7bb6a694a7c570f389f9a7883efdfdaf42
 +	* configure.ac (LIBGPGMEPP_LT_CURRENT): Bump.
 +
 +	qt, cpp: Fix permissions of Config files.
 +	+ commit a274c7590aa0e38d682d5177904983632f471cb0
 +	* lang/cpp/src/Makefile.am,
 +	lang/qt/src/Makefile.am: Do not install config files as executable.
 +
 +	qt: Install SpecialJob.
 +	+ commit 2538c12fa0728f4113f83f69f8c8ec9efb163872
 +	* lang/qt/src/Makefile.am: Install SpecialJob
 +	* NEWS: mention it.
 +
 +	qt, cpp: Fix expected targets in Config files.
 +	+ commit a3cf30f89418c8a6bc9456533d95ba7fc2a33a4c
 +	* 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.
 +	+ commit e5a35af5573651b96a90ef4a537b040333595472
 +	* 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.
 +	+ commit ce7385caabb57e5435695cc912acffe2815770b7
 +	* 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.
 +	+ commit 54f94b14e2bb9b38ffd89f509406bfbd012da632
 +	* 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.
 +	+ commit e7ceb83a5969581f5e1b0b6a69d18a93b594f6d4
 +	* 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.
 +	+ commit b6b820bff14a9aa8fa67755b246c90062ffdba14
 +	* 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.
 +	+ commit 34e9dfee81958160f6604849b63369ae4de67417
 +	* 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.
 +	+ commit f131a5e72b0881cafcc3b0a91da8f050af2684a6
 +	* 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.
 +	+ commit 098a2da15b1b46b145add623dec0488abd39bd74
 +	* 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.
 +	+ commit 0ea2ff67900c243fff9f689658dcb23d1c0961cd
 +	* 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.
 +	+ commit 857592041b8355cd58a7068c9f2446cf8dc0968f
 +	* 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.
 +	+ commit 8033cff441e9ea185531290273ec343f3402703c
 +	* configure.ac (LIBGPGMEPP_LT_REVISION): Bump revision.
 +
 +	qt: Fix spelling error in WKSPublishJob.
 +	+ commit 88c7e84ede4b6017cac3a396e8c87c2bd3a2bf58
 +	* 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.
 +	+ commit 24779c9e2301bd17fd328d65b0383e1cbc944119
 +	* lang/qt/tests/t-encrypt.cpp: Disable tests that require
 +	a password for 2.0.
 +
 +	Add warning flags for c++ compiler, too.
 +	+ commit 4984cc93db6b55f2420a9abd844c074a5fb4ed0c
 +	* configure.ac (CXXFLAGS): Add Wall and Wextra.
 +
 +	qt: Fix unused variable warnings.
 +	+ commit 9d1df990386010e0581b542a76a4f5d85d8d11b5
 +	* 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.
 +	+ commit 370ee1aa802ec6a4030a39b2df7d24a0c47e5ac7
 +	* 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.
 +	+ commit 39dd7585f5a7d801942efcb375d6dd46d01d2968
 +	* lang/cpp/src/context.cpp: Fix pragmas.
 +
 +	qt: Disable t-wkspublish test.
 +	+ commit 52a91ccc6a25425d4374b77040e30efb6816940f
 +	* 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.
 +	+ commit 453ab9d24ca48c9e01d21e1454d6b08de1938b76
 +	* 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.
 +	+ commit 68fb8371a1dd5f4e05e50b1733f9996d139cbf38
 +	* lang/python/Makefile.am: Add 'prepare' target.
 +
 +2016-09-29  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	cpp, qt: Handle modified includedir installation.
 +	+ commit 7302791c0d308c3284ac24a743035d27a0c0b6ba
 +	* 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.
 +	+ commit 145392f07f42ef23ebcb83a917b4d8e2964e7aa8
 +	* 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.
 +	+ commit a423603f80d9eb653ce9c171662db2175d7456f5
 +	* 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.
 +	+ commit c38fabfea0601ed5f61e27e0bf43f8e74c67ce2a
 +	* lang/python/gpgme.i: Correctly translate Python number to size_t.
 +
 +	python: Correctly translate off_t.
 +	+ commit 1d80e7374aa3150306c86afe7acdc8e8eb05143f
 +	* lang/python/gpgme.i: Improve int/long translations, correctly handle
 +	off_t with large file support.
 +
 +	python: Include 'config.h'.
 +	+ commit 3703a4723899d7563937b4b99f5bbe4dd8d3dfed
 +	* 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.
 +	+ commit 95f38652f696476b38a040644eac40b4511d2b32
 +	 * 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.
 +	+ commit a11450eb048df79a3f2b00ebef6d7cab07ad5054
 +	* 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.
 +	+ commit 9b38817968b90caf73f123255fe427691e82fec4
 +	* tests/gpgsm/t-decrypt.c (main): Check data matches expected.
 +	Only print result if it does not.
 +
 +	cpp, qt: Include config.h.
 +	+ commit a142f187b7ddb2728ec3e1743da4a0c4538ab40a
 +	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.
 +	+ commit 583aafdd6870a7fb12a34d90993fd0f46928592c
 +	* src/assuan-support.c (my_recvmsg, my_sendmsg, my_waitpid)
 +	(my_socketpair) [W32]: Mark unused parameters.
 +
 +	core: Fix error checking in _gpgme_mkstemp.
 +	+ commit c447b64d5989845a2ae2cf8fb30a92d2a0bd05af
 +	* src/w32-util.c (_gpgme_mkstemp): Fix error checking.
 +	(dlopen): Mark FLAGS as unused.
 +
 +	core: New helper function _gpgme_strconcat.
 +	+ commit dc39552d01094eff2bef5f9fcd1c16928909d20e
 +	* 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.
 +	+ commit 7a6543c2dfeef874a34086c8f3eeb1dbdf1ce822
 +	* 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.
 +	+ commit dee56820cabde60c43c9bf8281b8d411cb2ad644
 +	* 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.
 +	+ commit d0cf6b15121c9b42dbcef243e5ce30c9996a449c
 +	* tests/gpg/t-eventloop.c (do_select): Supply timeout value to select.
 +
 +	doc: Fix minor errors in I/O callback example.
 +	+ commit 0aaf1dedd629446ab991fff76581b4b58e4872a0
 +	* 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.
 +	+ commit ae324b51ffa338b891387bff2657d60c1fd3ae40
 +	* 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.
 +	+ commit e7ab75379feadcc2894d9d4cde0f16ad0044780d
 +	* configure.ac: Bump LT vesion to C26/A15/R0.
 +
 +	python: Create install dir.
 +	+ commit 936928632b02d7cc2ac645543bb03e4c94285f05
 +	* 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.
 +	+ commit 0763357e39d140b068ee9838a5da08be75426d9f
 +	* 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.
 +	+ commit bfb6890ded99f040fe8ecf910f927a136e4acfda
 +	* 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.
 +	+ commit 29207bcd3bf4de7264197db6758130375b16d9bb
 +	* 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.
 +	+ commit df7e92b4d585b7dce919c5a3aab9524f6e183cbe
 +	* 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.
 +	+ commit ef99b74eb12463db7da5806a316e3b55f8097c5c
 +	* configure.ac: Test for 'PYTHON_VERSION' as 'AX_PYTHON_DEVEL' sets
 +	'PYTHON' but clears the former.
 +
 +2016-09-19  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	core: Remove moc artifact.
 +	+ commit e3c35147d6adb754d4eb0781a54af2a8f0803663
 +	* src/moc_kdpipeiodevice.cpp: Removed.
 +	* src/Makefile.am (EXTRA_DIST): Remove moc_kdpipeiodevice.cpp.
 +
 +	qt: Improve README.
 +	+ commit 3f92253e0e476d77aa11463bc51ade367985855f
 +	* lang/qt/README: Add more content. Clearly note license difference.
 +
 +	cpp: Improve README.
 +	+ commit 66febf9942c321d30b8770f6aa6cd6ce2315d34f
 +	* lang/cpp/README: Add more content, move license to bottom.
 +
 +	qt: Add debug output for testTofuPolicy.
 +	+ commit d438cb59a068b6f076e6bd70d3a2c46bc05ccb5c
 +	* 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.
 +	+ commit 9d62bacac7826cb73bb18fac7268f3d2df662d7b
 +	* 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.
 +	+ commit a8ff34fc3025af4079cede7f8f9fdf40189b8638
 +	* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): New.
 +
 +	qt: Add job for tofupolicy.
 +	+ commit 77aecfb5c97cea1a99f1ff627748cf71767bac5c
 +	* 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.
 +	+ commit 4d384d7bfef044094695271576ca233625bb520a
 +	* src/context.cpp, src/context.h (setTofuPolicy, setTofuPolicyStart):
 +	New.
 +
 +	cpp: Declare sizes of tofu-info enums.
 +	+ commit 32baac8cdec6fee51bdfc3c55cb2ee141e086df4
 +	* 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.
 +	+ commit bd24db313d860ae46d37776dcf1067455d1b9880
 +	* lang/cpp/src/context.cpp (GpgME): Use pragma to silence wardning.
 +
 +	core: Document the version a function has been deprecated.
 +	+ commit b615316168f4d33311909d4056b236d13c69488f
 +	* 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.
 +	+ commit 3d6340e8c59ee11a95e03fb213ad9b228be47833
 +	* 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.
 +	+ commit 6af7bee076bacbc0cdfe7de342bce43ca5671b3b
 +	* 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'.
 +	+ commit a458e7fe2006d92bd5a838e2747fb66bbac4b1b8
 +	* 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.
 +	+ commit 268e251b802cc7c19831722d7e3a52777a0f412f
 +	* src/engine-gpg.c (gpg_createkey_legacy): Remove.
 +	(gpg_genkey): Remove call.
 +
 +	core: Fix setting og the verification result.
 +	+ commit 1f9641dd0fb08e4a3df3b507b974a3f78887920f
 +	* 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.
 +	+ commit ed1f2700a73060e2615697491ea9e49ded4293e6
 +	* 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.
 +	+ commit d2b72d3cc19fe2a7d548dac38d55e069e0c9a904
 +	* 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.
 +	+ commit 7c37719d79345a665ec2f4570e3f257033b58c62
 +	* 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.
 +	+ commit d79dcb78d867aaf55b85aea117c4ae6035a1531a
 +	* src/engine-gpg.c (gpg_createkey_legacy): Mark unused variables.
 +
 +	core: New function gpgme_op_keysign.
 +	+ commit bfd2bd0ccc9fed8284ef932ac788d4ca0dba0336
 +	* 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.
 +	+ commit 594c3b8b052e60b6be77ed532fe46549133a9726
 +	* 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.
 +	+ commit 4011b2b2a1050f0837e989da3db9b5459e71ccd6
 +	* 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.
 +	+ commit 44d18200d5ffe8691e18d93ce6c534660702b982
 +	* lang/python/gpgme.i (gpgme_engine_info_t): Improve error handling.
 +
 +	python: Adapt to TOFU changes.
 +	+ commit f6cd560ca74248dd719a37cfb34386148727a92d
 +	* lang/python/pyme/results.py (TofuInfo): Drop.
 +	(Signature): The TOFU information moved to the key.
 +
 +	python: Improve build system integration.
 +	+ commit 99db351288d5bb075f124ef10e540e25bc36b70a
 +	* 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.
 +	+ commit c943380b7a2cc9b32f81c22224fc6f92e8ea8469
 +	* 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.
 +	+ commit c22f5884c50557f54704f4becc5a8c1ee0749547
 +	* 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.
 +	+ commit 24b4162d908b48a92660020be0b776c2874fb05a
 +	* 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.
 +	+ commit 3210f3e4725afc5ee2810b9a1361918ec9c42ca4
 +	* 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.
 +	+ commit cc353701b0fde4c811ddc1e9a91b852dfe9f4e06
 +	* 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.
 +	+ commit 51f9acbca935c5287d9a28205037b0923e9a65f5
 +
 +
 +	core: Cast away the common const problem with spawn and argv.
 +	+ commit 686a065f639ef006e33c164e282d787bcd169754
 +	* src/dirinfo.c (read_gpgconf_dirs): Use a cast to assignd to ARGV.
 +
 +	core: Fix condition-always-true warning in trace macro.
 +	+ commit 3009e6162eaa39adaaf45f06fc4f88c7153360ee
 +	* src/data-compat.c (old_user_read): Cast AMT.
 +
 +	core: Mark unused function args.
 +	+ commit 4a200146b602349eebb4eac2e102357748d7ba5b
 +
 +
 +	tests: Mark lots of unused vars and fix const mismatches.
 +	+ commit 9064eebdc05e7149c2c8cc899fbd7874622fb769
 +
 +
 +	tests: Use gpgme_io_write in passhrase callbacks.
 +	+ commit 4491ef0a9a15d3b307d1ade37ff620ef9fcb2478
 +	* 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*.
 +	+ commit 3972f476e00f27d41a0aeabcb66600905b6737bd
 +
 +
 +	build: Use more compiler warnings.
 +	+ commit 0510591c36591816a6ff3f87a04451001b7ed46f
 +	* configure.ac: Add useful compiler warnings.
 +
 +	core: New function gpgme_op_create_key.
 +	+ commit 00c501d296da287bec2fd6a0e3912abfbde90a98
 +	* 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.
 +	+ commit 70a3be27a509a1b5ea7372bee93d83c5019427ff
 +	* 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.
 +	+ commit 4abff7d750a1abf5b388a4c87ec321fc3e4aed10
 +	* 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().
 +	+ commit c0c50318bd8ef6c8119ad9fdc53ad9087ded4c32
 +	* 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.
 +	+ commit 1d5bbbf1185a0d1f82750f10b69dad3999f7ef4c
 +	* lang/python/gpgme.i: Avoid functions not available in Python 2.7.
 +	* lang/python/helpers.c: Likewise.
 +
 +	python: Avoid hardcoding the interpreter.
 +	+ commit 70999d81618b3d3ae6b61a43be2ce703ad284275
 +	* lang/python/setup.py.in: Avoid hardcoding the interpreter.
 +
 +	python: Do not rely on subprocess.DEVNULL.
 +	+ commit b48b852a846129914d6c63ec7b47388cdcf6acca
 +	* lang/python/setup.py.in: Do not rely on subprocess.DEVNULL.
 +
 +	tests: Fix version comparison.
 +	+ commit dfd99ab50c3bc1d6745b6f682791e4885e8d8a9a
 +	* tests/gpg/t-sig-notation.c: Fix version comparison.
 +
 +	tests: Make signature notation test compatible with older GnuPGs.
 +	+ commit a0263ad282d350b548cbbc27e96f196d9217d040
 +	* 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.
 +
 +2016-09-12  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	qt: Fix some includes.
 +	+ commit d480f6b701894f78f3f4016d69c0e3b87939930b
 +	* 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.
 +	+ commit 7b9e6ea376d04fb4694ed22369abaae92ce3ec86
 +	* lang/qt/tests/t-tofuinfo.cpp: Adjust member names.
 +
 +2016-09-07  Werner Koch  <wk at gnupg.org>
 +
 +	core,cpp: Extend the TOFU information.
 +	+ commit 120b14783c0312d782dc08ce4949a6209d5ccc7b
 +	* 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.
 +	+ commit 151da95470f174dc770b2111890ad650a1697276
 +	* tests/gpg/t-encrypt-mixed.c (main): Set passphrase cb.
 +
 +	core: Check for gpg version for loopback mode.
 +	+ commit e8cb143c8337b122a6790f769ddb0a97c4baccd3
 +	* src/engine-gpg.c (build_argv): Check for version 2.1.0
 +	before adding pinentry-mode.
 +
 +	core: Fix passphrase cb for mixed sym encrypt.
 +	+ commit efe7e11dfa2ff911b477ce748292e53e7a50347e
 +	* 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.
 +	+ commit ab3fbdbd05cfd1b039bb5b1eb3941fbb4bcf6307
 +	* lang/qt/tests/t-tofuinfo.cpp (testTofuSignCount)
 +	(testTofuKeyList): Ensure distinct messages. Clarify comment.
 +
 +	qt: Enable signcount checks in tofuinfo test.
 +	+ commit 965b842fad6ec6fbd8902f3a32119abcd0728fe4
 +	* lang/qt/tests/t-tofuinfo.cpp: Enable checks for signcount.
 +
 +	cpp: Add convenience update function to a key.
 +	+ commit 79439e76cc5b302222874a1f9e93665cb12801ac
 +	* lang/cpp/src/key.cpp (Key::update): New.
 +	* lang/cpp/src/key.h: Update accordingly.
 +
 +	cpp: Add ostream operators for key and uid.
 +	+ commit 444d85ace0dddff5c511961927052d9946035b00
 +	* lang/cpp/src/key.cpp (Key, UserID): Add ostream operator.
 +	* lang/cpp/src/key.h: Update accordingly.
 +
 +	qt: Add missing header redirection.
 +	+ commit 8a39a595eb802b80a6ad756b0ee8939e9733e86f
 +	* lang/qt/src/keyformailboxjob.h,
 +	lang/qt/src/qgpgmekeyformailboxjob.h: Fix includes.
 +
 +	qt: Include cpp before core directory.
 +	+ commit e3a4697894cc5a93c295e84bb10c743bc7fdc87e
 +	* 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.
 +	+ commit 05570bd3d05fb3d7934c1122f0d5ef5fdbaa7974
 +	* lang/qt/src/t-support.cpp (copyKeyring): Fix seckey copy.
 +
 +	qt: Fix and extend TofuInfo test.
 +	+ commit 9fc72e928bf2cf239bd3b0facdf33ceb1acc975b
 +	* 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.
 +	+ commit c875f07e559a7c53fc173b4c3f9f5715f3fbb8f8
 +	* 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.
 +	+ commit 4e37d0bb1255558ce20e1a5ac83a2d06a37f8b0b
 +	* 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.
 +	+ commit 5a92cc96da183ebb19867a2a910f53ba41e76ae9
 +	* lang/qt/src/Makefile.am: Reorder include directives.
 +
 +	cpp: Add WithTofu Keylist Mode.
 +	+ commit f311b92ceaedb12c9e00a722b6b47bbe6b50871e
 +	* 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.
 +	+ commit 053e6e0a7b8ea38ad9d4160c84814867bbb9fcf6
 +	* 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.
 +	+ commit f08904b810d77d87c66d9c7875c4e7f2bde5dd92
 +	* t-wkspublish.cpp (testWKSPublishCreate): Remove context.
 +
 +	qt: Add test for wkspublishjob.
 +	+ commit df04b232b8897f030534f8c3fbc87064edf8ae7d
 +	* lang/qt/tests/t-wkspublish.cpp: New.
 +	* lang/qt/tests/Makefile.am: Update accordingly.
 +
 +	qt: Add WKSPublishJob.
 +	+ commit 94420b05775122b25885c66ac67f77c59d01644d
 +	* 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.
 +	+ commit de7b67f9b2e6bd43a036fa0bcc6a8ca4f5b10986
 +	* 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.
 +	+ commit abcd9a283ee8f81870622c8e1dbdc7aad38c0358
 +	* lang/cpp/src/context.cpp (dirInfo): New.
 +	* lang/cpp/src/global.h (dirInfo): New.
 +
 +	Cpp: Add support for spawn engine.
 +	+ commit ece8b02a839d6fc566fea7b6e59fabff164f6cf5
 +	* 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.
 +	+ commit 9ee103957e4136337b92d238283f8ef30fd4a7c5
 +	* 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.
 +	+ commit 38798fee5b539d6153a8a7856152959412ee59b5
 +	* 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.
 +	+ commit 1eefc2d43c0adb2ce516f8e3509ace2fb562e401
 +	* src/verify.c (parse_tofu_stats): Set ENCRCOUNT field.
 +
 +	cpp: Get rid of AssuanResult due to its deprecation.
 +	+ commit e20b0f0201543834f15c5d50cd3b2ece69a35d70
 +	* 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.
 +	+ commit d2e40fb7adf667f3e2d2457ee4c646ea4d4d88b3
 +	* lang/qt/tests/t-tofuinfo.cpp: Switch to UID based API.
 +
 +	Cpp: Add Key to signature.
 +	+ commit 7c5a4974b71c30e824cbfcb3a0a70064e5ed5adb
 +	* lang/cpp/src/verificationresult.cpp,
 +	lang/cpp/src/verificationresult.h (Signature::key): New.
 +
 +	Cpp: Use fpr field for primaryFingerprint.
 +	+ commit 40ea1c85773cbe324557c34b3a4282f609fcdaf6
 +	* 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.
 +	+ commit 799b168243e6499ac01bf59e0656547f353a2589
 +	* 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.
 +	+ commit 2972c44bd7e97b2169dea9c4a49d9754afdae3f0
 +	* 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.
 +	+ commit be4ff75d7d5ac6ed15feb245ef3cec59b4bad561
 +	* 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'.
 +	+ commit 3955dce06e9d056599e5ec7d40301e66b9305195
 +	* 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.
 +	+ commit 26c5ba528ce1411d96655952ec48359105695c0f
 +	* src/mbox-util.c: New.
 +	* src/mbox-util.h: New.
 +
 +	core: Add new items for gpgme_get_dirinfo.
 +	+ commit 24e61984c9532924135c57b8ff98489a2d3bd4a3
 +	* 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.
 +	+ commit c9e7dcb100d807583d8e312da459561138231376
 +	* 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.
 +	+ commit 3e60788810f93cfcd7f08e5882aff32ed7b6f831
 +	* 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.
 +	+ commit 30f156280f18500ee522db58aecd40711c8af685
 +	* src/w32-io.c(_gpgme_io_spawn): Remove spawnhelper not found
 +	diagnostic.
 +
 +	core: Fail loudly in case w32 spawner not found.
 +	+ commit 9cf983b0199950c8f8cccee2cb8e45aafcba9fd1
 +	* 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.
 +	+ commit 64194b0f8df1afe6135cd119fd3216fc8db68033
 +	* 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".
 +	+ commit 8c09dd9989bcd434a8cb5997770cb8414b96bd5c
 +	* 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.
 +	+ commit b7b0e7b5bfefd51c8092ea54f262b18aebf78128
 +	* 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.
 +	+ commit 391e55411cda11446ca9de4dd0dc2b54d3e6fff5
 +	* lang/qt/tests/t-encrypt.cpp (testProgress): New.
 +
 +	Cpp: Provide size-hint for seekable and mem data.
 +	+ commit df7bbf5a66576a5a320b54c8f6ad52bc84f0e833
 +	* 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.
 +	+ commit fe1e8e71aa18b4ac6471292b2894b8859f42f7c8
 +	* 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.
 +	+ commit 293d1736911fd5e77b8cec305168b35b2420c612
 +	* 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.
 +	+ commit 75c974c4e0a31981325f7d151bd13f2523f5df20
 +	* lang/qt/src/defaultkeygenerationjob.cpp: Include moc.
 +
 +2016-08-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add DefaultKeyGenerationJob.
 +	+ commit 105f5446e69db00291164397cf0d8e68374cf420
 +	* 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.
 +	+ commit 59e2251a083b0ed61b3ab6d47015cef7cc6ceb05
 +	* 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.
 +	+ commit 8c5abc8d932affab4bc79a85e3f98f6f6b982ae8
 +	* 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.
 +	+ commit b7d99e02188b7907b09fec3032fc1fd82fc2668a
 +	* 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.
 +	+ commit 48691db97b759d67aa7b49c36bb704b5806ade2e
 +	* lang/Makefile.am (DIST_SUBDIRS): New.
 +
 +	core: Do not identify PNG files as PGP signatures.
 +	+ commit a9168185ba97aa1d827315cd8017899bf904aded
 +	* src/data-identify.c (next_openpgp_packet): Blacklist PNG files.
 +
 +2016-08-10  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Cpp: Handle empty recipients consistently.
 +	+ commit 09667a6006986a782af98ca1de4d6521e1b8f353
 +	* 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.
 +	+ commit b602d8bc7bd726afb52dc60cc07e4609e88d4511
 +	* src/engine-gpg.c (gpg_encrypt_sign): Handle ENCRYPT_SYMMETRIC
 +	flag.
 +
 +	Qt: Remove unused variable.
 +	+ commit d467018ce36f5be36751267c3b6079e8c1ee5d8a
 +	* lang/qt/src/qgpgmerefreshkeysjob.cpp (slotStatus): Remove
 +	unused variable typ.
 +
 +	Qt: Create TestPassphraseProvider on stack.
 +	+ commit a27d7755d071aad42efc2aa4ea3899ba7b17f8bf
 +	* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp: Create
 +	TestPassphraseProvider on stack.
 +
 +	Cpp: Clarify ownership of provider classes.
 +	+ commit 21d5e71d486da8e37cf53f2b968646b39a6daa72
 +	* 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.
 +	+ commit 04f994d5db6db0575dc73c2356c7d51424e2d9fe
 +	* 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.
 +	+ commit 270887309f4b673b13e58c29ea3989c56989590e
 +	* src/engine-gpg.c (gpg_encrypt): Initialize err.
 +
 +	Qt: Fix t-keylist moc include.
 +	+ commit 0c222e1b3cabe1a8b84a2877420cdd5df56171b5
 +	* 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.
 +	+ commit 969f223d8de21d7c8b0f7646bbf8dbb5864e8d03
 +	* lang/qt/tests/t-support.cpp: Remove accidentally commited
 +	debug output.
 +
 +	Qt: Add encryption test and refactor testsuite.
 +	+ commit f209ec8f581ae597b37f2e3a5e452e4b53b2d4c7
 +	* 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.
 +	+ commit 34b456c3fb9e59788b07a75441da482bb28bda87
 +	* 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.
 +	+ commit 17372393798ea5e2d6838f3dd1e001dd4a66c941
 +	* lang/cpp/src/context.h (EncryptionFlags): Extend.
 +	* lang/cpp/src/context.cpp (encryptflags2encryptflags): Ditto.
 +
 +	Cpp: Fix simple symmetric encryption.
 +	+ commit bf776ce94cf454f1b3f1645b1cde09cd1c54324b
 +	* 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.
 +	+ commit 3d2f027d0f40e7ec4ab48cee89ff0ee10b423566
 +	* 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.
 +	+ commit b5e16b036f0045524a583d8a366d8a3366fc0005
 +	* 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.
 +	+ commit ab6f66d676581cb497e581e4af40e2fe5bff507b
 +	* 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.
 +	+ commit 2a613e87156b23c4aa6aa5ce38505cb285de6a18
 +	* 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.
 +	+ commit 6f3dc66634e30d86aa6250c4ac22f9b8f7ec1be9
 +	* 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.
 +	+ commit 56e26b54da9f16961209275d7a61883d3ea898ca
 +	* 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.
 +	+ commit 4c8265d32ddff5960a464b8d4e8d7d2258495b2e
 +	* 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.
 +	+ commit 0bd7d8c1977183abc414e11aafa26a4f834ca2a5
 +	* 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.
 +	+ commit 135185b7ef2225aa5e8c54a6cf1265d3e6cbbe48
 +	* doc/gpgme.texi: Document the Assuan protocol.
 +
 +2016-07-28  Justus Winter  <justus at g10code.com>
 +
 +	python: Fix out-of-tree build.
 +	+ commit 4e728de8421e2ade2061786aaebcdae3f60da3b8
 +	* lang/python/MANIFEST.in: Add 'private.h'.
 +
 +	python: Improve error handling.
 +	+ commit 5a7c7a86f7e8eaf10e37138617a2d838f9d4466f
 +	* 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.
 +	+ commit b9e6eacd06ffeb36854c208aa4325cff3e3dfbbe
 +	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.
 +	+ commit 2ff58fcbd5c060dac3a7feec478819d2c5a164ec
 +	* 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.
 +	+ commit 2f754440f28e8f81babdf7efa6186edbc8ad99fd
 +	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.
 +	+ commit b5aa05c3b261c3846ebbcf76e7505cff5459f918
 +	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.
 +	+ commit 1d2f22aae668ce136cacd254875e118dc1faa6a2
 +	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.
 +	+ commit de69fa496c09386d5e99747670d6887cf52dd09e
 +	* 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.
 +	+ commit 355d7072863ac1f0f725e77141a59f3ed8a5e4af
 +	* 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.
 +	+ commit 78f7bf4dcf75206faae5776c2ee4166628313532
 +	* lang/python/pyme/core.py (Context.__init__): Add 'protocol'
 +	parameter.
 +	(Context.protocol): New accessors.
 +
 +	python: Expose less functions to the Python world.
 +	+ commit 3d4dc3f0218234a27103bdb6f93b17c0703b71a2
 +	* 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.
 +	+ commit 6a7ee33abd5059f5ae2f70a7dd9f610c16552f8e
 +	* 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.
 +	+ commit e545ca3f682b615ce447c186a2c73489a32b0592
 +	* lang/python/pyme/version.py.in (gpgme_versionstr): New variable.
 +
 +	python: Add an idiomatic interface.
 +	+ commit 1f318b7aaaa77672fab117d54fe75221780df83c
 +	* 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.
 +	+ commit d2f2cbd297c4d2f2c3264ecc3ffb7a2b3a70bd55
 +	* lang/qt/tests/t-keylocate.cpp: Disable test for gnupg < 2.0.10
 +
 +	Cpp: Add EngineInfo::Version class.
 +	+ commit 41de1ab904eaddffb2de17b1de8ef41e462daabe
 +	* 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.
 +	+ commit e7f4c364732660c6cda25720b7dbc5b1c917e368
 +	* Makefile.am (pubring-stamp): Fix config.
 +
 +	Qt: Fix tests if gpg2 is gpg.
 +	+ commit e4c0645c1eea9380d80a20895eb83c9dd7228776
 +	* 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.
 +	+ commit fddcc62abd57cb04e84861abd3991c7d529c2464
 +	* 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}.
 +	+ commit a9670d152a4598aef1ae0960a79fb6f5d8db55ad
 +	* build-aux/config.guess: Update.
 +	* build-aux/config.sub: Update.
 +
 +	core: New GPGME_DATA_ENCODING_MIME.
 +	+ commit d8d5f5a16712244fe6eff860b6ac5f007b1bf870
 +	* 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.
 +	+ commit 2095b1573a8196ba3efdf817324d1b3ee05cbb93
 +	* 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.
 +	+ commit 537cb871fd59f3a20c697a046715e6339ff6633b
 +	* 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.
 +	+ commit 1bff47ee58bcf9d0016fb7ac7e37cbf075abd059
 +	* 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.
 +	+ commit 57b51685528153f5a50ab0999feec25c83190501
 +	* 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.
 +	+ commit 938f7e9c8b466594d05c0347fe627b225263a6a6
 +	* m4/qt.m4 (FIND_QT): Do not set fpic for windows.
 +
 +	m4: Use LIBS instead of LDFLAGS for Qt libs.
 +	+ commit 744978cce8f9dfb2363b9d274ee99f25cfcf0e40
 +	* m4/qt.m4: Modify LIBS instead of LDFLAGS for link test.
 +
 +	Bump version to 1.7.0.
 +	+ commit bf742fb88545689addfca18192baf2f56a1895e1
 +	* configure.ac(mym4_version_minor),
 +	(mym4_version_micro): Next release will be 1.7.0
 +
 +	Qt: Install CamelCase forward includes.
 +	+ commit fd87c4679c4bfe19390fa2047dff23bb213a4b18
 +	* lang/qt/src/Makefile.am (camelcase_headers): New. Create and install
 +	CamelCase headers.
 +
 +	Qt: Export VerifyDetachedJob.
 +	+ commit 86ab2ee2d603111d24500b8d64a9a1dd82f8bdc0
 +	* lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Export it.
 +
 +	Qt/Cpp: Add version headers.
 +	+ commit b03c48cfb06faae7d7033a0532f319cbcf13f18a
 +	* 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.
 +	+ commit 362b8cdf4e0d5cd54ec2b325508dcdefac686f2c
 +	* 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.
 +	+ commit ce662891373eba6cce1cf8df516cb2370970737e
 +	* 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.
 +	+ commit ed070313155a1c79a57ba69f4299f2aefc65fad7
 +	* 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.
 +	+ commit 007382ce94a6318557370c440f7d609a030a119e
 +	* 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.
 +	+ commit 98cba522c906115efcba1f8cc0bec7e5edb51ecd
 +	* 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.
 +	+ commit c53f87c5f9ca63119152f41dcebfb175d4df2cef
 +	* lang/python/pyme/results.py (Result.__init__): Skip missing fields.
 +
 +2016-07-11  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Fix memleaks in tests.
 +	+ commit bfa8ac7e02c16790ee5bd3b42c26699f4821d72e
 +	* 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.
 +	+ commit b1f42e8f25ada220ec8e4762cfebc3a49b1f7d56
 +	* lang/qt/src/protocol.h (Protocol): Add doc.
 +
 +	Qt: Disable t-tofuinfo tests.
 +	+ commit 02babb29612d554c37b63a49f78acc45653b557e
 +	* lang/qt/tests/t-tofuinfo.cpp: Disable tests.
 +
 +2016-07-08  Justus Winter  <justus at g10code.com>
 +
 +	src: Fix error handling.
 +	+ commit de74fe59feef9adc858ac04004880bfd44315d0d
 +	* src/encrypt.c (encrypt_status_handler): Fix error handling, ||
 +	conflates errors.
 +
 +	python: Fix raising stashed exceptions.
 +	+ commit 8a93f345b701332270c9829a4d0a93537f98a8d8
 +	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.
 +	+ commit 52efcf1ee9fc8ba4c6bd23d8fe4f5f7993ba9fb1
 +	* 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.
 +	+ commit 38c408560c6ebc3ea5eeeade01d38750bf5799e5
 +	* 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.
 +	+ commit 49286ac1c82c480e2c718f828c57da9778ccd0b9
 +	* lang/cpp/src/Makefile.am (CLEANFILES): Remove generated file.
 +
 +2016-07-06  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Add test for publicKeyAlgorithmAsString.
 +	+ commit fc0267233239b42e9fb74a8acd7511503e287a9e
 +	* lang/qt/tests/t-keylist.cpp (testPubkeyAlgoAsString): New.
 +
 +	Cpp: Expose gpgme_pubkey_algo_name.
 +	+ commit e41ae4db9e70d9aebf80ebbd4ce03977435c2ccf
 +	* 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.
 +	+ commit 9f93346d21271b916f15d80420669f5d659a40de
 +	* lang/qt/tests/t-keylist.cpp (testSingleKeyListSync): Check
 +	pubkeyAlgo.
 +
 +	Cpp: Add PubkeyAlgo enum.
 +	+ commit c28007d0407bcc3621b8266d6d77eb0d069aec35
 +	* 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.
 +	+ commit 4934893e27a50f5715dcd4d2907ecbe629921b32
 +	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include cpp before
 +	gpgme src directory.
 +
 +	Revert "Qt: More robust lookup of Cpp's context.h"
 +	+ commit 7a8c04f66d382dc49d962ad18c46d7ad332ccc0f
 +	* 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.
 +	+ commit 49a6ee50587c9d4b6f07e60ce1a939c863e7f15c
 +	* 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.
 +	+ commit 47bfbc9026b49b9918359af5fcc1621aab0d1065
 +	* 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.
 +	+ commit 72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e
 +	* 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.
 +	+ commit 329ab93f7ed862d7f4c0501fca5355936a74ac52
 +	* 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.
 +	+ commit 8fa9b5696ca9f8386971e6f36646536f9579ceaa
 +	* 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.
 +	+ commit efb5059b9b6e81db7b0c016aa9fb70abe98308ea
 +	* 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.
 +	+ commit 80498ab662238a31325e78c0037ea6752f680a37
 +	* 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.
 +	+ commit d75c118aae18e20f08dbbb69c7998e1f3694ccd0
 +	* 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.
 +	+ commit fbd6ac4655ebf56d91ebd9a4ff499c8319fcd087
 +	* lang/qt/tests/t-tofuinfo.cpp: New.
 +	* lang/qt/tests/Makefile.am: Update accordingly.
 +
 +	Cpp: Add TofuInfo to signatures.
 +	+ commit 93c5d420fcfe275aeff2b3d5ce99629edbe6625d
 +	* 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.
 +	+ commit 948ce7d1edf12ecb5080a4816ca15f495d6393f5
 +	* src/gpgme.h.in: Mention that Address is not always in addr-spec.
 +
 +	core: Fix identify for armored detached sigs.
 +	+ commit 570bf2a648f14b34c4c45d3890b7300529a82d37
 +	* 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.
 +	+ commit 15fc5c34c88ecbb61272705af60f7054b41c57f7
 +	* 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.
 +	+ commit 82d484c852d07958ac93efb3d2d7b7726fbb5231
 +	* 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.
 +	+ commit 3364549c19682f56d4d9c52ab7f76862c5a456cf
 +	* 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".
 +	+ commit cf37a57d28c43ec36277e84ca44458b7287b940b
 +	* src/data-identify.c (inspect_pgp_message): New.
 +	(basic_detection): Un-const arg DATA. Call inspect_pgp_message.
 +
 +	core: Add a base 64 decoder.
 +	+ commit f8b8027ae63c957557ed6bdc7e5a30ef1bdd8e77
 +	* 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.
 +	+ commit bb8cf6236582fc9eb6564046599989af52779a26
 +	* 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.
 +	+ commit 5905e8bbd809c1408edad4fa4eb0527fa51cbea3
 +	* 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.
 +	+ commit 32d4bbf5e3e5f88e4a6852d72a35ee30df9d5279
 +	* 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.
 +	+ commit 8997d88bf97d1784706becbf8e9dc74e4656e311
 +	* 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.
 +	+ commit a324d0cffe93cab955698c2c065b2f2227e379e4
 +	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.
 +	+ commit 856bcfe2934237011984fab0bc69800a7c25c34b
 +	* 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.
 +	+ commit 6641c7814b30e3e8f18105b2636545cc1bd07552
 +	* 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.
 +	+ commit f3618bc615e3eff1f52fb5849cbf0f0b95515a61
 +	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.
 +	+ commit 616929b6edf00b4a774b727385d39b785a112b90
 +	* 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.
 +	+ commit 5464060baef2da8f5ea377118758e451c55e3787
 +	* 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.
 +	+ commit 5492853d7b84b4e1d0b11b234e32252ba8d1608d
 +	* 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.
 +	+ commit 7eef399d89d4c3877cb795ed5ba45ecb241e67be
 +	* 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.
 +	+ commit a852f99a0ac9dc7f7493b403f811f5f7518fae40
 +	* lang/python/helpers.c (pygpgme_stash_callback_exception): Fix leak.
 +
 +	python: Fix license.
 +	+ commit 3bacce03e60dc45cc2da99a2f5c504612202e802
 +	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.
 +	+ commit 8173c4f1f8a145c4b1d454f6f05e26950e23d675
 +	* 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.
 +	+ commit 77d149e8614c381458e07808a7930ce3fb92cdc3
 +	* lang/python/helpers.c (pyPassphraseCb): Handle write errors.
 +	(pyEditCb): Likewise.
 +
 +	python: Add function to raise exceptions from c.
 +	+ commit 5ebc205439cac266685d2532466df8b3457dea23
 +	* lang/python/helpers.c (pygpgme_raise_exception): New function.
 +
 +	python: Fix stripping deprecated functionality.
 +	+ commit 8426304b67a0b0a5630db500abf740b0e0b9e43c
 +	* 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.
 +	+ commit 990492ea4f7dafbb75de15ea91c30cbf090034b5
 +	* lang/python/gpgme.i: Use correct Python type for size.
 +
 +	python: Implement the context manager protocol.
 +	+ commit e3c5913a33edcbd7329b8d154c669f95ce782038
 +	* 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.
 +	+ commit f8f9bf06bc3190968ba6613032d60a3bf2c8a6d9
 +	* 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.
 +	+ commit 8196edf9ca5c8f2f02553e7f22d9c79dbd229882
 +	* 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.
 +	+ commit 26c3accc95ab77ddbe60db822e2938ad5f480d41
 +	* 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.
 +	+ commit 89eb0cd4d65bc033ed6342810b26232797482d64
 +	* lang/python/gpgme.i (object_to_gpgme_t): Properly propagate
 +	exceptions.
 +
 +	python: Initialize GPGME for the user.
 +	+ commit ae06f7c2fe0e49baeab5a827dc38ba8c57a6404c
 +	* 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.
 +	+ commit bbf19124bbec9eb6298cef2914baae7ac74382fe
 +	* lang/python/tests/Makefile.am (gpg-agent.conf): Use
 +	'allow-loopback-pinentry'.
 +
 +	python: Make Python detection more robust.
 +	+ commit 1607aa7fe5dd686ba3bfb6de4a2b602d6a458c86
 +	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.
 +	+ commit 73c47535b631a55687ecc5eff1d1d9a9fd71021e
 +	* 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.
 +	+ commit 54314a9c7d7ad52981c836ca742644a1fa69b518
 +	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 +	Use whitelist instead of blacklist.
 +
 +	Qt: Fix debug output in t-ownertrust.
 +	+ commit 9d6f85bd25e51445f1776b498875e77b529311b1
 +	* 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.
 +	+ commit c88c9ef384b6f7bda9a61b58f26c2f89ae25f684
 +	* lang/python/tests/t-sig-notation.py (check_result): Check critical
 +	flag.
 +	* tests/gpg/t-sig-notation.c (check_result): Likewise.
 +
 +2016-06-01  Werner Koch  <wk at gnupg.org>
 +
 +	core: Set notation flags for verify.
 +	+ commit 1cacd7d00a7b3de4a5e11ccce5ee6c50e0a5516d
 +	* 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.
 +	+ commit 8ad17f402f6420880dcf06a13a54feadb52c0208
 +	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.
 +	+ commit afa0dd56e1cce64fe08bff3c64b12aecce54fd2d
 +	* 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.
 +	+ commit 89d22f9229f2ecd559ac6ea91dae60eeff940fa5
 +	* 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.
 +	+ commit 3915842657f0849a038752fd7445f96081a89dd9
 +	* 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.
 +	+ commit 2ae847c02731994d99e69d3d025ff01f41406452
 +	* 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.
 +	+ commit ebfe2300c33a3bad311e9ac1530e6c92636a08a4
 +	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.
 +	+ commit e74cd9fb80f12b764d5e4561e73d55644147e9e7
 +	* 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.
 +	+ commit bf188e280b8b4fc775f33c47e2e1e275ed044004
 +	* 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.
 +	+ commit ce73ae9d0cbf782cd3a1949fc4f568f0d1da60d9
 +	* 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.
 +	+ commit 00ff6d07330028da370c869e3ec442eb76f8cbb8
 +	* 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.
 +	+ commit 7bc9cc717e428f48d4b27016f44c9f3900b1fba6
 +	* 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.
 +	+ commit 0ebd6a1b43a96bffa78da89dc8629edac0a74d35
 +	* python/lang/pyme/util.py (GpgmeWrapper): Move...
 +	* python/lang/pyme/core.py: ... here.
 +
 +	python: Support status callbacks.
 +	+ commit 8b57f06e0c04f5c9b87a3c76618230d757412076
 +	* 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.
 +	+ commit 72afb68f8c2f0cb326f20b289215402fd849339d
 +	* 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.
 +	+ commit 00e93b2cae0585ff10425421d9097a846943b21c
 +	* lang/qt/tests/Makefile.am (LDADD): Explicitly add -lstdc++
 +
 +	Cpp: Set -std=c++11 also if CXXCPP is already set.
 +	+ commit b107fc8a92bd16bc0d868c771b6334d6594e6395
 +	* 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.
 +	+ commit 09803c4a81b9431fd4c8f30abb1c60c4c735f0cb
 +	* 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.
 +	+ commit 283f0bdc3d32624dac93d02ba3df516e69d8d4ba
 +	* lang/python/helpers.c (pyProgressCb): Fix getting hook data.
 +	* lang/python/tests/t-callbacks.py: Show that this works.
 +
 +	python: Move edit callback function.
 +	+ commit 5476ca6813fc9d8833d5224f19d4bb7515380ab5
 +	* lang/python/gpgme.i (pyEditCb): Move...
 +	* lang/python/helpers.c: ... here.
 +	* lang/python/helpers.h (pyEditCb): New prototype.
 +
 +	python: Port more tests.
 +	+ commit a42d814a65fdc29a3be6efa97433997495696a88
 +	* 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.
 +	+ commit c9cc0412e940c78c3e9bacb6ff1459b5bb5bb9ad
 +	* 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.
 +	+ commit 10df06ee8f9192309bf124872438f7c32457e1c6
 +	* 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".
 +	+ commit dac2c5441d418536632f014c8b0e1359580279d1
 +	* 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.
 +	+ commit a92946a8cacc44f655249d84b316deae59e62671
 +	* 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.
 +	+ commit eaf2d018e63c15cd9a81e5c1fd2fedbf8829f7b9
 +	* lang/qt/tests/t-ownertrust.cpp: New test.
 +	* lang/qt/tests/Makefile.am: Add test.
 +
 +	Cpp: Ignore STATUS_KEY_CONSIDERED when editing.
 +	+ commit 5df858cbf196b2a53d600b7f45655f7b35c1fe93
 +	* 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.
 +	+ commit 88f2c1c0d16eee6bb36a901623ea65ac69499f03
 +	* 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.
 +	+ commit 5aa8e588e166abeef2e3d677ab6830f2d7af1b5d
 +	* 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.
 +	+ commit 0d4e95621e05d50cd454049a424bb9ee098a5db6
 +	* 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.
 +	+ commit d90857a08c4fe5b73b6d6d46fd6200efdd72db44
 +	* 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.
 +	+ commit 2f748b5a2d162be4f23b18782219771ead54cb51
 +	* 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.
 +	+ commit 464d404c8816fc93baf945816c93e86bdeb0ea39
 +	* 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.
 +	+ commit c1c893e3384a07ff864507902fbac4a7fee4d6f1
 +	* 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.
 +	+ commit 07f71cd17706093ca6b1507c41609356d479ae9f
 +	* 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.
 +	+ commit 375523ead3a749d77d286c56f10d403c07f2b014
 +	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Add -DBUILDING_QGPGME.
 +
 +2016-05-18  Justus Winter  <justus at gnupg.org>
 +
 +	python: Various fixes.
 +	+ commit 2c3a5d93e78cfca22785e51c5a65184a47da4bff
 +	* 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.
 +	+ commit f0dca0ab92ed18d80e30d7d39db1596b4112794f
 +	* 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.
 +	+ commit 30b447fcfe0e4f362c2575e1b9388e8144b5b2fd
 +	* tests/run-encrypt.c: New.
 +
 +	Return dedicated error code for all subkeys expired or revoked.
 +	+ commit 315fb73d4a774e2c699ac1804f5377559b4d0027
 +	* 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.
 +	+ commit 9b36ebf37a3b889c955ba68038bd5b3d9c5cde4e
 +	* 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.
 +	+ commit 4711a1e181153a2395e5f523047595abd47965db
 +	* m4/ax_python_devel.m4: New file.
 +
 +	python: Clean up examples.
 +	+ commit 10328324c8fc9725cd0c885eaebfc80dc32c1ff6
 +	* 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.
 +	+ commit 64e5fe767f45e9ccb0fb3fe919171c222132a54c
 +	* pyme/core.py: Import GPGMEError.
 +
 +	Fixes c5d118b2.
 +
 +	python: Port more tests.
 +	+ commit 9ceaec25918c6c5f2dfafe4e20181b83ce78f6ce
 +	* 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.
 +	+ commit 52f2295d528029a36a3e0a89c777297762b3fc9b
 +	* 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.
 +	+ commit 66ded1a5ce7236254f8541addecd4c3bc7b2878e
 +	* lang/qt/tests/t-keylist.cpp: Add copyright header.
 +
 +2016-05-12  Justus Winter  <justus at gnupg.org>
 +
 +	python: Share generated methods between objects.
 +	+ commit 11314f0db6e57597e3f56351a86fdb36a7a17dd7
 +	* 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.
 +	+ commit c5d118b2a76e9528df780d11da9566ff7c22e4f5
 +	* lang/python/pyme/core.py (Data.write): Handle errors.
 +	* lang/python/pyme/errors.py (GPGMEError.fromSyserror): New function.
 +
 +	python: Fix writing to data buffers.
 +	+ commit f7094d8358e933f3ce074eade7a40b2a7d291180
 +	* 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.
 +	+ commit e64bffe0307d14204b00a177a472cd4f99c07561
 +	* 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.
 +	+ commit ed0ce84fbd2904bf59ac66ae7422716db3624efa
 +	* lang/python/util.py (GpgmeWrap.__getattr__): Cache generated wrapper
 +	functions.
 +
 +	python: Fix function invocation.
 +	+ commit e3d3d366bd1a1aea8a38ae5dcbf71ea3c784e920
 +	* lang/python/pyme/core.py (Data.new_from_fd): Fix function
 +	invocation.
 +
 +	python: Fix name of exception, make slot methods explicit.
 +	+ commit af9371eb63664c92fb67e8e7e03cc984e7d38a7f
 +	* lang/python/pyme/util.py (GpgmeWrapper._getctype): Fix exception,
 +	add docstring.
 +	(GpgmeWrapper._getnameprepend): New function.
 +	(GpgmeWrapper._errorcheck): Likewise.
 +
 +	python: Handle interpreter shutdown.
 +	+ commit ce5121ad53b0e17fbf9150b354c80da73f7fe190
 +	* 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.
 +	+ commit c89d3a71ad20ff02755539a44f254b1e59054c4a
 +	* lang/python/examples/t-edit.py: Check if key is found.
 +
 +	python: Fix type translation.
 +	+ commit d60deb8a127fb35c01acc729f33b014840af0e7b
 +	* 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.
 +	+ commit b8de79160b2e05ac84d8feb61ff7ed1f7015a623
 +	* lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add gpgme.h location.
 +
 +2016-05-11  Justus Winter  <justus at gnupg.org>
 +
 +	python: Fix simple example.
 +	+ commit bbeee5e1a060f2d1e37a08220eb552cf4673a058
 +	* lang/python/examples/simple.py: Flush stdout, encode name as
 +	UTF-8 before passing it to GPGME.
 +
 +	python: Integrate into the build system.
 +	+ commit a29babd07cf9f9625d2b5aa2eb6b7bc9d1828359
 +	* 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.
 +	+ commit c303292aca26c43b6efe98719edb3ff7b2d6665d
 +	* 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.
 +	+ commit 11392a80d9a85bcd8718b105e6d58038e61beaac
 +	Cherry picked from 0267c151.
 +
 +2016-05-10  Andre Heinecke  <aheinecke at intevation.de>
 +
 +	Qt: Make Protocol class public API.
 +	+ commit 56c4d9ea9520c95612e525b2fa1359db6fa88f4a
 +	* 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.
 +	+ commit 97225bb01cd2ffa1d84c7fedbc577275de4a4893
 +	* lang/qt/doc/Doxyfile.in: Quiet and no undocumented warnings.
 +
 +	Qt: Only install public headers.
 +	+ commit 740f92a7b83389ee9bde98b7bd25556793500b8b
 +	* lang/qt/src/Makefile.am: Do not install all headers.
 +
 +	Qt: Add test for async keylisting.
 +	+ commit 0e3195948ddaba3af07d2415bb496491076edc17
 +	* 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.
 +	+ commit fc38c15136c87ce971a8381fa87399088dd5a3cc
 +	* 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.
 +	+ commit a579be82c84f0b9732ee3d52ff2142a3decf95d7
 +	* configure.ac: Use common error highliting for qt lang options.
 +
 +	Qt: Fix license mentioned in README.
 +	+ commit 11ff8d5964bf66f905818514f6a51fc881ea1a56
 +	* lang/qt/README: License is GPLv2+ and not LGPL.
 +
 +	Add maybe mode for langs and default to it.
 +	+ commit cd267791e9bd73505a2a1ea90c85df988e153c19
 +	* configure.ac (languages): Warn and disable langs for which
 +	requirements are not met.
 +
 +	Cpp: Handle PINENTRY_LAUNCHED status line.
 +	+ commit 3fad1216770f446a89801d842aa8667356a5ec95
 +	* 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.
 +	+ commit 5489532ad6ccf3a9b59405686b8a17352f1ecf06
 +	* lang/cpp/src/key.cpp (Subkey::algoName): New.
 +	* lang/cpp/src/key.h: Declare.
 +
 +	Cpp: Add support for gpgme_data_identify.
 +	+ commit d949d711dc1d944a9d627d39a89af74943a5a8c1
 +	* lang/cpp/src/data.cpp (Data::type): New.
 +	* lang/cpp/src/data.h (Data::Type): New enum mapping.
 +
 +	Fix configuration without Qt language.
 +	+ commit 6dba47c3a2c32d7c1e1d91a96030f99f606433ea
 +	* 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.
 +	+ commit 8e7074dbb8093cc342e330bcd6b172b4f769a0c6
 +	* configure.ac (LIBGPGMEPP_LT_CURRENT, LIBQGPGME_LT_CURRENT): Bump.
 +
 +	Qt / Cpp: Mention coding style in READMES.
 +	+ commit d2b55101195efe9702e855a48fc6e21839fb98cc
 +	* src/lang/cpp/README, src/lang/qt/README: Add hacking note.
 +
 +	Qt: Add doc generation with doxygen.
 +	+ commit a1e95f36ce1895cd9894f6d3ca76640c42c2f9fc
 +	* 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.
 +	+ commit d9f7a18ed88127e7f05d770d55118d1e928f3b3f
 +	* 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.
 +	+ commit afd8fad6e275e2f74b2ad045dce05d826986e2ec
 +	* 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.
 +	+ commit e18256fc5f613da9406da60c3ef2f84f2be04ef0
 +	* src/lang/qt/predicates.h, src/lang/qt/stl_util.h: Removed.
 +
 +	Qt: Remove usage of stl_util.h and predicates.h.
 +	+ commit d293bd32293929eeb3f6ec35f916a4678fb51729
 +	* src/lang/qt/qgpgmelistallkeysjob.cpp: Use comperators from
 +	  gpgmepp instead of detail. Remove boost usage.
 +
 +	Cpp: Add string comparators for keys.
 +	+ commit 1bb162a54ba480413c4da07f2578efe6860494c0
 +	* 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.
 +	+ commit 691950e18cf08a3f9bbc2004501834cd47bea579
 +	* 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.
 +	+ commit cc68ff5f7210ac879fbdf719fcd5944f9ae5602b
 +	* 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)
 +	+ commit f98898ab1a6952e0c3a5d235963a27eba2e19e46
 +	* 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.
 +	+ commit c07aaef6eb8a9b5e623479f27d562fd1570bf4bb
 +	* configure.ac: Call ax_cxx_compile_stdcxx
 +	* m4/ax_cxx_compile_stdcxx.m4
 +
 +	Qt: Add static factor methods for protocol.
 +	+ commit 0991485170ca4ef90fd566540522027d0fc59a72
 +	* 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.
 +	+ commit faf987dd62893955251378a2a715edd2892a540c
 +	* 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.
 +	+ commit b7b9e38399a572cb61a297db552026eac5b2a5e1
 +	* 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.
 +	+ commit 0cc9006dbc59d87c6bcda88b36d59dcb69ac35cb
 +	* lang/qt/src/qgpgmebackend.h (Protocol): Make all functions
 +	 pure virtual.
 +
 +	Qt: Don't declare showErrorDialog anymore.
 +	+ commit 3e38cc6fc67c420dec3e9e8afd072b4c8a157c85
 +	* cpp/qt/src/job.h: Remove showErrorDialog.
 +
 +	Qt: Only use GpgME based config class.
 +	+ commit 7071b2a9c00b85d434d01b6166269ebf48b01b81
 +	* 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.
 +	+ commit 63c115b067400e1b02c7d849c99f54dc9f394d68
 +	* 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.
 +	+ commit 576be46f34b42e896a5e3be65560a4b518a758be
 +	* lang/qt/Makefile.am (nodist_qgpgme_SOURCES): Change to real name.
 +
 +	Add missing files to QGpgME.
 +	+ commit a440050fc2c11e4867da9d4707616fa23ac52141
 +	* 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.
 +	+ commit 226e51052ae73efa8d9f30729b28de68d35231af
 +	* 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.
 +	+ commit 8347f3d5fc3e476aa767fbbaf09a1310a6154280
 +	* 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.
 +	+ commit 58ed9c17f00f420035ecc6973a6c6ed948757a9a
 +	* 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.
 +	+ commit a06603d75e80aba58df58f9a41770c56b6a1f0b8
 +	* lang/cpp/src/Makefile.am (libgpgmepp_la_LDFLAGS): Add version info.
 +
 +	Add cmake configuration files.
 +	+ commit 77c3fb450c7adf36804a55d76ff49a06a71d22a0
 +	* 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.
 +	+ commit 98e5b672422ca1e38ca38ff0357cee6cc936aee0
 +	* lang/cpp/src/gpgme_export.h: Fix variable name. Add Windows ifdefs.
 +
 +	Add header installation.
 +	+ commit c5291a88913ace8f2115021b69c7aeb59b4f79d4
 +	* 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.
 +	+ commit a313b3e28cc42785365822519b25d6a87dfdf0c9
 +	* 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.
 +	+ commit 7286fc7f3d51d475f82c7c9821d031290f5b0066
 +	* lang/README: Note down cpp.
 +	* cpp/README: Add README based on original repo version.
 +
 +	Add buildsystem for Gpgmepp.
 +	+ commit f5fd787b5b45cb14d539b5c26f44066eb9ac0f75
 +	* 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.
 +	+ commit 433bb8e84b2d1e50b5c5b9f7f2006b60cd7d7785
 +	* 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.
 +	+ commit 0855a1296a1908016f011eb5e6552854ac53e63a
 +	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.
 +	+ commit e79199468ac54ce4fe919603ff7bada97267174f
 +	* 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.
 +	+ commit 83415dffaea53611dbce77b50d8ddfb2a50aed2e
 +	* 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.
 +	+ commit 67d7f7a9383763b01daf877c846bf3e32f647fa5
 +	* 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.
 +	+ commit 3b6e9a3d0afcdd3c2f1de19f15924c3404c7140a
 +	* 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.
 +	+ commit dfa79f9300b837b0f7f2ea44afa589bfcda1dbd9
 +	* 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.
 +	+ commit bb2d11c1eebd4bcfb0f2cfce728026a7420dca47
 +	* src/w32-io.c (_gpgme_io_spawn): Add a new diagnostic.
 +
 +	w32: Improve locating gpgconf on 64 bit systems.
 +	+ commit a82e9b182f62966207cad0972be6fa284329a5a1
 +	* src/w32-util.c (find_program_at_standard_place): Fallback to
 +	CSIDL_PROGRAM_FILESX86.
 +
 +	w32: Add new global flag "w32-inst-dir".
 +	+ commit bb600aa8fd2f9575ee7afc64c978e3e7523b1173
 +	* 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.
 +	+ commit 0d9d0a6b5b0c6f474a079bbaef11078c5df5f3b5
 +	* 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.
 +	+ commit f0ccce855bd99fca7cfbbcafe3544e3113fedc67
 +	* 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.
 +	+ commit c4b6b35bfa98e478f1d13f4ce3e664771f2604c2
 +	* 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.
 +	+ commit 107bff70edb611309f627058dd4777a5da084b1a
 +	* configure.ac: Set LT version to C25/A14/R0.
 +
 +	Make use of GPGRT macros is available.
 +	+ commit c4f4b5c0a6fc172f7ceedc1a0021169e7f31b941
 +	* 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++.
 +	+ commit 3f53d3d5d9e73a053b1e89073ef8f7cf01bfc8e6
 +	* src/gpgme.h.in (_GPGME_INLINE): Move definition into the
 +	extern-C-scope.
 +
 +	Add configure option --enable-build-timestamp.
 +	+ commit ff91e699f7c14ea6cbc27b487cb40e9f6bd58901
 +	* configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default.
 +
 +2015-08-25  Daiki Ueno  <ueno at gnu.org>
 +
 +	Relax ttyname_r error checks.
 +	+ commit 028a0ef3336c5180797fb247448683195376c007
 +	* 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.
 +	+ commit 97f1f3e883808743da5ee144abab25de062f34ac
 +	* src/gpgme.h.in: Reorder prototypes.  Chnage some comments.
 +
 +	Improve error return by checking the FAILURE status.
 +	+ commit 8ddc5801ade02297924447df5745c8877a96e5e3
 +	* 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.
 +	+ commit 491fcd91b84564232d5d061942baa50b99e166c0
 +	* 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.
 +	+ commit ad46f4f655e653580343c15f1b0b365b7d307d1b
 +	* src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb.
 +
 +	w32: Look for gpgconf in the new GnuPG 2.1 install dir.
 +	+ commit a7dbab23ea4976d106d649aa515ffb2968a085ed
 +	* 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.
 +	+ commit 06d6fd8ca01354c8f7cfc847c4ac1b868268cbaa
 +	* 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.
 +	+ commit df098d6a437109c57516db75addf3764a6dfda81
 +	* src/debug.c (debug_init) [W32]: Show libgpgme installation dir.
 +
 +	Add an export secret key feature.
 +	+ commit 2b632bbb78eee2b94c122f66d171a7c80e9c4fb0
 +	* 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.
 +	+ commit ccbaccbf2e0ba582d181b9ee4d8543d7c1248b2c
 +	* 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.
 +	+ commit 70b3e5964ea0592bd09d1877d720b2c63f501970
 +	* 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.
 +	+ commit 6dd24c3c6133ec54f75abd056191a8027fe01de0
 +	* 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().
 +	+ commit 4fadcf06ec8b0ebfb05c7622dbc3b73fd3c1bad9
 +	* 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.
 +	+ commit 2b6ae3dadf4432f7a72fd119144b835f7b1adcc4
 +	* 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().
 +	+ commit e07d38f5f9f3b94e403f1265ff7fd3d7009dd557
 +	* 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.
 +	+ commit 8f28e3caf95d7bc99e9271bfc2b44080166af31f
 +	* 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.
 +	+ commit a7fbd5293ed0ba2c179837a4a2b859376d30e35e
 +	* Missed a couple of files, these 2 go for the same reason as the
 +	  previous 3.
 +
 +	Removed GUI examples.
 +	+ commit 1cd0aef0afb196094d90673002d4c210a04911c9
 +	* 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.
 +	+ commit 08086dd6901740e155e4361212b4e9cff8a47296
 +	* 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.
 +	+ commit 157c8be183153ff588f98874a3205aa483d0fd23
 +	* 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.
 +	+ commit c23f8897105ce2bb6e62d9c44ca0779fcc08a919
 +	* 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.
 +	+ commit 052a9e3c5671d1ab69551f7b0abd0bbf859d4aba
 +
 +
 +	Fix regression with gpgsm 2.0 due to "OPTION with-secret".
 +	+ commit ddbd54ef881bd2c3481d62b89bef7241667b64ee
 +	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate
 +	on a status lines.
 +
 +	tests: Add option --secret to run-keylist.
 +	+ commit 7addffc0826e7f36afcc7f66268e9ee2a37e2042
 +
 +
 +	Fix compiler warnings about unused value in TRACE macros.
 +	+ commit 8b9f84828cd04a7dab37e219123edc1905da8e6b
 +	* 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.
 +	+ commit a5b040cc57c65b3d105666b90c7eb59ee6ff3882
 +	* 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.
 +	+ commit 87d713ff41454bd08a345c63605f6fc7ac854dd4
 +	* 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.
 +	+ commit 0d28a696163677d6b34a802b6beddecd805d0fc7
 +	* 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.
 +	+ commit 90405ac84b78ba7e5458ea09986749594a01195a
 +	* 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.
 +	+ commit 29887c9b28c0db14bf75e227a8082d23a2c151d2
 +	* 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.
 +	+ commit c39cea7a07cec9ab34cd2026f47b6fba80fea3c8
 +	* 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.
 +	+ commit 0e6e6689ef1aea36c1cb3cb47e94f1f2ebbd97cb
 +
 +
 +	Strings vs. Bytes.
 +	+ commit 40290507bcdc63ab9023393d071167d455d70737
 +	* CLI input must be byte encoded.
 +
 +	More byte changes and passphrase changes.
 +	+ commit 325b0ca341ae3ac8c3232f557ea2c381b4843969
 +	* 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.
 +	+ commit ba3c9f2617955dc828309a4800e4f5b3f1c3a949
 +	* Another string to byte change.
 +
 +	Updated encrypt-to-all.
 +	+ commit 1c87ecb86ae364b18f69bca726021271fefaa1c1
 +	* 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.
 +	+ commit 24c738f5bb5c253a17962c62867d6c847250b41e
 +	* Changed example passphrase to something that meets the current minimum
 +	  requirements.
 +
 +	example email.
 +	+ commit 8345bf6f43c4f671124eaa1b713a7f5ac5780cbd
 +	* 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.
 +	+ commit 4fc123981514c7087114e08ee8ca63de1a1db59f
 +	* 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.
 +	+ commit 90079786c5cde4dd8ceb2e0fcda7605b08ccd021
 +	* 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.
 +	+ commit ebd8734ad705afa4edc409787a00d4968d25e018
 +	* 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.
 +	+ commit d2712d9f6f086911184453219a096c61f6829d3b
 +
 +
 +	w32: Use -static-libgcc to avoid linking to libgcc_s_sjlj-1.dll.
 +	+ commit 524dacfbb6bb131f05a4ecab3d7bcd91c1b43d33
 +	* 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.
 +	+ commit 8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0
 +	* 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.
 +	+ commit 119f27032b822ace8c012b96f9e41bcf23251a54
 +	* 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.
 +	+ commit 428ea7696585bc24d127b903840554ca659069b6
 +
 +
 +2014-12-11  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.5.3.
 +	+ commit 37d927a9706fff6d8ef8d45073984ea2f92afb31
 +	* 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.
 +	+ commit 05258d427513a933f01d4df13aca834d797f91e7
 +	* 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.
 +	+ commit c62ce32b9c01ee9ceb1d69e7344fb79a9162d232
 +	* configure.ac: Set LT version to C24/A13/R1.
 +
 +	Update the previous commit.
 +	+ commit 81ce87111f5a3f966188629abb07a4d0702e6db0
 +	* 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.
 +	+ commit 5942b0c7e0593b82b4c4a142c214d7a2649de104
 +	* 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.
 +	+ commit 8031341283f4fcb1f226aa6f66bc5a6042586815
 +	* 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.
 +	+ commit 4027a0a89724df3aeef8a964c529548d724b6a5a
 +	* 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".
 +	+ commit 2e8ecc24cf74f918c303c315da3bb18636a5e288
 +	* 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.
 +	+ commit 36997e0f746ce2d38de997055141542583cc0f52
 +	* 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.
 +	+ commit 4160ef90a1b1b778c735f31f98a6966ba3b3ea90
 +	* src/gpgme-tool.c (cmd_keylist): Print keyid.  Print FPR only if
 +	available.
 +
 +	Handle modern keyserver output which may emit the fingerprint.
 +	+ commit 3450bff52baef2c14118958cf79ead46940d58f0
 +	* src/engine-gpg.c (read_colon_line): Split preprocessed lines.
 +	(gpg_keylist_preprocess): Limit keyid field and print fingerprint.
 +
 +	gpgme-tool: Install gpgme-tool.
 +	+ commit 488e44cdb531035fa8813b95b212f9728abc7e62
 +	* src/Makefile.am (bin_PROGRAMS): New.  Add gpgme-tools.
 +	(noinst_PROGRAMS): Remove.
 +
 +	gpgme-tool: Fix segv for external key listing.
 +	+ commit e5ab11607281b9838da2728268a8f9f0daa2b04d
 +	* 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.
 +	+ commit 16835c3b5d1cea18512b2c93e884d8ca513a2ee7
 +	* configure.ac: Change LT version to C24/A13/R0.
 +
 +	Fix possible realloc overflow for gpgsm and uiserver engines.
 +	+ commit 2cbd76f7911fc215845e89b50d6af5ff4a83dd77
 +	* 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.
 +	+ commit 68116fa5f67238a60bb8be375cc959262fa021d3
 +	* 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.
 +	+ commit 86260b47c9e306e325103d1af767842357647e60
 +	* 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.
 +	+ commit 4dc9af24156b4fd52c7b76e7522b9b7a64e5386a
 +	* 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.
 +	+ commit 0eca21113c1d1ab2aea58e1ea21075f472f99c23
 +	* configure.ac: Change LT version to C22/A11/R0.
 +
 +2014-05-13  Werner Koch  <wk at gnupg.org>
 +
 +	Add 6 new GPGME_STATUS_ codes.
 +	+ commit de6caeed6d6432101c673c35717f152d5facf823
 +	* 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.
 +	+ commit 88f15336ec0eadde68ff2618349efb9006b8e801
 +	* 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.
 +	+ commit de4a1ea684e1591975feb801e7651309e1ee2c49
 +	* 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.
 +	+ commit d5fb92cdaed21eea2f1a921e4f11df72635a8462
 +	* 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.
 +	+ commit 991cde9e79fec70aad093ded383c5574d30f9388
 +	* 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.
 +	+ commit 62711e5614e44e65a7c7bb7d21493d09d3081271
 +	* 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.
 +	+ commit 85a07ca7e3dffdefc8ae74beebb59e47a6e6bd1b
 +	* 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.
 +	+ commit 2bb26185e3b9a048033c559517d6ba7d2eb47066
 +	* 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.
 +	+ commit d3bd8fff863f62b6d0e228aea754efbbde861e9a
 +	* 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.
 +	+ commit 4f2d652e60700e03809307a10015ff9003ac3579
 +	* 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.
 +	+ commit 77931a9a1468b0cfbaafd4153867d90764a6d258
 +	* 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.
 +	+ commit 443f6b76a964b77e2e61c03592a83ffa0a6da4b1
 +	* 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.
 +	+ commit 617d3be629229cbebfdc2d26a4e854bc4fe38a68
 +	* 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.
 +	+ commit 766355b5d4f63261c428531fdbdafb8b67de9369
 +	* 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.
 +	+ commit dd9c8c56719db093b8daa23aa40b2be71bbd1526
 +	* src/gpgme.c (gpgme_io_writen): Use new var buffer.
 +
 +	Change implementation return type to match the definition.
 +	+ commit 75a6255935f450d56f3637cbb2b6c8161ace57ab
 +	* 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.
 +	+ commit 40938feb3f3393b0cdc6ec61ca2e77ff0b82c69a
 +	* 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.
 +	+ commit 651d9e1c6bc1cab248024c3850ef64698247588f
 +	* 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.
 +	+ commit f916ab753b7d17210cd455666870038949f72851
 +	* 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.
 +	+ commit 1a504aab384947c1a6e949affd14bc696297fc8d
 +	* 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.
 +	+ commit ab6e718327451e418782990c5a0a4e72588e3f0b
 +	* 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.
 +	+ commit 121efcc5618374a1b4450b1d6a18bb3c35edb1fd
 +	* 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.
 +	+ commit d63058b852b83515e7715103c04a684ecf59838a
 +	* 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.
 +	+ commit 6564e5e78e8c6e5a120675a5699b5b75248cfbc7
 +	* 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.
 +	+ commit 02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b
 +	* 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.
 +	+ commit b0aaa3f9aef36634b5c391812362f016114f02ba
 +	* doc/gpgme.texi (I/O Callback Interface): Fix description for the
 +	event arg.
 +
 +	Fix possible segv in the gpgme_op_card_edit.
 +	+ commit 372bd439834c69d502668007c8c683233d676bd5
 +	* 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.
 +	+ commit eae9c32bd9c80ca4a4ecf794808211808f2ebbdd
 +	* 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.
 +	+ commit d788c35e19df9eade8eb0b880ca1dc47ae7928ad
 +	* configure.ac: Change LT version to C22/A11/R0.
 +
 +	Make test suite workable with GnuPG 2.1.
 +	+ commit 3ca7e96e384d5872c71ceb3b2e2a05b0c1b7e1a0
 +	* 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.
 +	+ commit 069ac580373923f5635b7172ecff79eb189f6944
 +	* 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.
 +	+ commit 8579091c4f6a36e6bb06fcfbd147a776166fd3ea
 +	* 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.
 +	+ commit a4c80126ae4754c8478c69a8a24a6ffd975485fc
 +	* 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.
 +	+ commit 3881ea4e83d1533ef497b7332398fc1850e29205
 +	* 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.
 +	+ commit 393a9471f2f3ac0a5b14f3534a5bfc7ffe948567
 +
 +
 +2013-06-18  Werner Koch  <wk at gnupg.org>
 +
 +	Add function gpgme_signers_count.
 +	+ commit f2eeccbdfaf855a81abb92abe5ab4c702712bac7
 +	* 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.
 +	+ commit 009e26a989f8a251563303f155c51fe012af52a4
 +	* configure.ac: Set LT version to C21/A10/R0.
 +
 +	Add convenience macro GPGME_PROTOCOL_OPENPGP.
 +	+ commit 2e8feb6016dede400053f76fc3a418e1dd567bef
 +	* src/gpgme.h.in (GPGME_PROTOCOL_OPENPGP): New.
 +
 +2013-05-23  Werner Koch  <wk at gnupg.org>
 +
 +	w32: Fix installing of .def file.
 +	+ commit c29dad2315406bed75b9547103650bef642e6aa7
 +	* src/Makefile.am (install-def-file): Create libdir first.
 +
 +	Fix libtool 2.4.2 to correctly detect .def files.
 +	+ commit d739d4d8cf9c873b0f3bb7836aaf3d0ba31a7b7f
 +	* 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.
 +	+ commit d4371ed30da2e8b3d9f440613af299a952bde2b1
 +	* 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.
 +	+ commit 567e6481d767af60390d649897b897a8b0e7e9a5
 +	* 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.
 +	+ commit 0c1de7abd57b677998792e6cd5df5ddfb6e451b7
 +	* src/gpgme-tool.c (gt_sign_encrypt): Pass NULL for recp if no
 +	recipients are given.
 +
 +	tests: Print auditlog in plain text format.
 +	+ commit 18254f88f82da7542a986dca60917fb48d5bccd3
 +	* 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.
 +	+ commit e99356306d7bda61802530ebeb07d9ba73c4dec0
 +	* 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.
 +	+ commit 6d0d8e7ba0bb989c251545fa8af35b97d1a703ba
 +	* 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.
 +	+ commit 9e7df9aa6d81f0abbabb03a2346d80eb5d375f81
 +	* 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.
 +	+ commit 9f330be8210d2498fe93d4166b6f6c02fca76475
 +	* 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.
 +	+ commit 2118f497010a9a41c29d062a7605ff2e136f8f4e
 +	* src/w32-io.c (reader, writer): Also print file_sock.
 +
 +2013-05-06  Werner Koch  <wk at gnupg.org>
 +
 +	Simplify a debug code function.
 +	+ commit a7e5f1096f02af7bfb678b0bea8da6ccfc28cc79
 +	* src/debug.c (_gpgme_debug): Remove static space string.
 +
 +2013-05-01  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.4.1.
 +	+ commit 5075c0da7c464af2a45cd36db134ed7e88f155af
 +	* configure.ac: Bump LT version to C20/A9/R1.
 +
 +	Disable fd-passing for Apple.
 +	+ commit ef5b4ae37d13142e89a051908dc080cda3d24baa
 +	* 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.
 +	+ commit f623a6b94c527795d0b6f7e66a3966e5d9e1c454
 +	* 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.
 +	+ commit 867b950b9306904a0ff522d0ef4a43789393cfc4
 +	* configure.ac (NEED__FILE_OFFSET_BITS): Do not define under Windows.
 +
 +2013-02-26  Werner Koch  <wk at gnupg.org>
 +
 +	Release 1.4.0.
 +	+ commit ef5cd38123dfbef7843f374ee697b0b5e8730c46
 +	* configure.ac: Bump LT version to C20/A9/R0.
 +
 +	Enable FD passing and thus building of the UI-server.
 +	+ commit 5090f6f246bfad2eb80f3cc222963f73996d8028
 +	* 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.
 +	+ commit cdae524b282ef0ea67c3880b3e0f852c84c351ce
 +	* 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.
 +	+ commit 787b5f14b933e5cee2624f79a23a60947f8134c8
 +	* configure.ac (NEED_GPG_ERROR_VERSION): New.  Improve reporting for
 +	missing libgpg-error.
 +
 +	Change the various version numbers to the new scheme.
 +	+ commit d8b46c919f45666af0d541e00dcedf57e6c4b66f
 +	* 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.
 +	+ commit 863c0f2a3eaf2a5d46c5518e5ac3486cc1a49bd3
 +	* m4/gpg-error.m4: Update from libgpg-error.
 +	* m4/libassuan.m4: Update from libassuan.
 +
 +	Update helper scripts.
 +	+ commit fdcd5736e610cd64e47da73dcafe8bc4a6a67666
 +	* 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.
 +	+ commit 967e043ac42330ee692f23d05ce3a0dd457f2119
 +	* 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.
 +	+ commit f48f75b1e812d33b76e439412efffa8277ab9abe
 +	* 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.
 +	+ commit 4f381554411ef019d79492f1751543f145604bcf
 +	* 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.
 +	+ commit 02a2cf0ccb4d01700adf6d18316d7705d519a048
 +	* 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.
 +	+ commit 61a0d92b679f248505f1bf16386bc41a5bf2ba1d
 +	* 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.
 +	+ commit 29eced50687dd8a39dafe704102ae09ea8e8533a
 +	* src/gpgme.c (gpgme_io_read): New.
 +
 +2012-11-16  Werner Koch  <wk at gnupg.org>
 +
 +	Improve parsing of the GIT revision number.
 +	+ commit 322552a88db47896881e55c00ca301137cd160c6
 +	* configure.ac (git_revision): Use git rev-parse.
 +
 +	Fix non-portable use of chmod in autogen.sh.
 +	+ commit cd6de92f42cb6e5b85bc376d5544496cb4d6a88a
 +	* 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.
 +	+ commit 1a17acd8e9b7c0ef924f98bfb1502fe12e83c363
 +	* 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.
 +	+ commit c97d067f27899d890a99036fcbed9263f4f68875
 +	* 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.
 +	+ commit 12a0c93433a0b1d7e8019fc35a63476db39327fa
 +	* 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.
 +	+ commit cc59b75b21516198b39a56950afbcec140d8ba48
 +	* 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.
 +	+ commit bd24feaa86f8154e550107990392ac9ac05e60d4
 +	* 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.
 +	+ commit 14a8fd4eec126cad282a85c5aa336a6b55229b52
 +	* 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.
 +	+ commit e11e7fc5586613525035c3358e15ae24accb96ea
 +	* 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+
 +	+ commit aa30b47aa010bf46876f2335e288f8bd8718e396
 +	* 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 &).
 +	+ commit 3f1329e1c9b99b1632cc4c4eec2e4399676fd93d
 +
 +	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.
 +	+ commit c28ebca9f2e21344d68e9fdcec60553f225c2e54
 +
 +	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.
 +	+ commit 3d69b51f7f083193db28f364da4590c33b5e44e6
 +	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.
 +	+ commit dda3702a9024a08da7bb949e15b63a47d23d59f5
 +	* 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.
 +	+ commit 193eb62538b9413e0dfbd04c075f871d5aa9130b
 +	* 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.
 +	+ commit db33945ab3b8c173a3fc2dd1a0d22d7fc15d8730
 +	* doc/HACKING (License policy): New.
 +	* doc/DCO: New.
 +	* AUTHORS: Change maintainer address.
 +
 +	Add gpgme_set_global_flag to help debugging.
 +	+ commit c62b79a1d6e576d94e08cb81c2f5dbcb42ecf8cf
 +	* 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.
 +	+ commit 83e74202cd7c4c975d149c49e2507fdb0e60ef32
 +
 +
 +	Fix sign error in position calculation for mem_seek.
 +	+ commit 8384ccbd1a51447dccbd608fc5df3c24cb8999b1
 +	* data-mem.c (mem_seek): Fix sign error in position calculation.
 +
 +	Allow null context on gpgme_set_locale.
 +	+ commit 434735f71e6969248651ac01c6bd6f6789a6305d
 +	* 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.
 +	+ commit e7aeaebb01395b170c91f290bf3ff5021023420f
 +	* 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).
 +	+ commit 9f081da7356288a96e8ea4d81a74ff706c00b0cd
 +	* 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.
 +	+ commit 9c8608f702ec0f44ae55cd7f33bd8df0a2d48508
 +	* 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.
 +	+ commit 295dd3f238fa656493d34e8a718958d62226b56c
 +	* src/gpgme-config.in: Remove unused pth stuff.
 +
 +	Update signature summary for the case of missing X.509 keys.
 +	+ commit d6402b888fd00b883bbfc00c91a2aa9706e4377e
 +	* 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.
 +	+ commit 1a21574b48ee91eedbf95251ee600648b377d1e7
 +	* 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.
 +	+ commit 4cb408d33efe80e7d102049dea244d22907d8395
 +
 +
 +2012-04-13  W. Trevor King  <wking at drexel.edu>
 +
 +	status-table.c: include string.h for strcmp.
 +	+ commit 62bbe58280737d73badbe518f140e40480205176
 +	* 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.
 +	+ commit c318e69d8fa5f9e92d4aac3dd44fae5adcaade72
 +	* 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.
 +	+ commit bb62104adf78e8416b3c56b8b2621edd723b56cd
 +	* doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.
 +
 +	Update Werner Koch's distribution signing key in the README.
 +	+ commit 6ec9e21dd1ea2f8509700bce018aef6ad7e9a927
 +	* README: Update signing key.
 +
 +2012-03-12  Marcus Brinkmann  <marcus.brinkmann at ruhr-uni-bochum.de>
 +
 +	Do not rely on glibc name of syscall.
 +	+ commit ff0a640a18e7b7457e6c2edfdc8307bf44628b60
 +	* src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.
 +
 +	Update config.guess and config.sub to latest version.
 +	+ commit ced1ad01aed32d1e4c5000f3b901db018ef7bf1e
 +	* 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.
 +	+ commit 885243e05467e79e2375b3febe7904053ab45dfc
 +	* 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.
 +	+ commit dae3073aaa8b7feb1c844fdaf711f79141b9cc65
 +	* 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.
 +	+ commit 0052a72f89c6830818e354358fdd84702d3494c8
 +	* tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.
 +
 +	Link gpgme-tool directly to libassuan, as it uses its interface.
 +	+ commit 3f03897cbd223d4a75eb62c3b7bdfeb800661641
 +	* src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS at .
 +
 +2012-01-19  Werner Koch  <wk at gnupg.org>
 +
 +	Support the mingw-w64 toolchain.
 +	+ commit 24a10a4af948ebb1c767b69a92fa5bbe933a417c
 +	* autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.
 +
 +	Fix Solaris problems with ttyname_r.
 +	+ commit 2f304957f5122a5d9da643dc9951ee67ece06eaf
 +	* 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.
 +	+ commit c96778297f5477448a676fcf0c61044bdbccc86d
 +	* configure.ac: Move header checks.
 +
 +	For W32 use a build number instead of abbreviated commit id.
 +	+ commit 574b087e84f5652cf9d8eba8aa16b8d6bb988035
 +	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.
 +	+ commit a0149630ce6d3e17a7475e20e8b2e31ed5ba57fd
 +	* configure.ac: Minor cleanups.
 +
 +	Update to libtool 2.4.2.
 +	+ commit 4cfddadcd0a569f0b204dccea3c975ce0bdfb232
 +	* ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4,
 +	* m4/lt~obsolete.m4: Update.
 +
 +	Add ttyname_r check macro from gnulib.
 +	+ commit 3ef528b63679df912551d5d21fc36e465cf50c40
 +	* m4/gnupg-ttyname.m4: New. Taken from current gnulib.
 +
 +2011-12-02  Werner Koch  <wk at gnupg.org>
 +
 +	Generate the ChangeLog from commit logs.
 +	+ commit a4c4ee1aaea4359432bdf60dd572f549ef8dee83
 +	* 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 f8e233b,0000000..81c871d
mode 100644,000000..100644
--- a/VERSION
+++ b/VERSION
@@@ -1,1 -1,0 +1,1 @@@
- 1.9.0
++1.10.0
diff --cc doc/defsincdate
index 33f93d6,0000000..6a1f09f
mode 100644,000000..100644
--- a/doc/defsincdate
+++ b/doc/defsincdate
@@@ -1,1 -1,0 +1,1 @@@
- 1479299220
++1512709151
diff --cc gpgme.spec
index 4077c19,0000000..1a79ae6
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.9.0
++Version: 1.10.0
 +Release: 1
 +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