[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