"Fossies" - the Fresh Open Source Software Archive

Member "gpgme-1.15.1/ChangeLog" (8 Jan 2021, 458574 Bytes) of package /linux/privat/gpgme-1.15.1.tar.bz2:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "ChangeLog": 1.15.0_vs_1.15.1.

    1 2021-01-08  Werner Koch  <wk@gnupg.org>
    2 
    3 	Release 1.15.1.
    4 	+ commit bb9880778fb16cdb6de83905e45bf6c965770013
    5 
    6 
    7 	Make distcheck make target a bit more reliable.
    8 	+ commit 133050b3fa28122a4b60dbbde698fb14379ccf95
    9 	* Makefile.am (release): Do not pass --parallel
   10 
   11 2021-01-05  Ingo Klöcker  <dev@ingo-kloecker.de>
   12 
   13 	core: Make listing of signatures work if only secret keys are listed.
   14 	+ commit 5137d7fc214d0d9dcb947ccdc32fa87979f9a6d0
   15 	* src/engine-gpg.c (gpg_keylist_build_options): Add "--with-sig-check"
   16 	argument if signatures shall be listed.
   17 	* tests/gpg/t-keylist-secret-sig.c: New.
   18 	* tests/gpg/Makefile.am (c_tests): Add new test.
   19 
   20 2021-01-04  Ingo Klöcker  <dev@ingo-kloecker.de>
   21 
   22 	cpp: Add const-overload of UserID::Signature::operator<
   23 	+ commit a6220adf3081c9c848f6d0a6fc3774cb168ccf9c
   24 	lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<):
   25 	Add const-overload. Deprecate non-const overload.
   26 
   27 2021-01-04  Andre Heinecke  <aheinecke@gnupg.org>
   28 
   29 	Qt: Undeprecate QByteArray based start functs.
   30 	+ commit 543e2106386f00ebecf7653e7896fa12a6e828ff
   31 	* lang/qt/src/encryptjob.h, lang/qt/src/signjob.h (start):
   32 	Undeprecate QByteArray based functions.
   33 
   34 2020-12-03  NIIBE Yutaka  <gniibe@fsij.org>
   35 
   36 	python: Fix key_export*.
   37 	+ commit 7a4fe82a017b751ad756c93d2b9e31d7be045275
   38 	* lang/python/src/core.py (key_export): Just raise an error.
   39 	(key_export_minimal, key_export_secret): Ditto.
   40 
   41 2020-11-24  NIIBE Yutaka  <gniibe@fsij.org>
   42 
   43 	core: Call _gpgme_passphrase_status_handler when exporting keys.
   44 	+ commit 53ac732bae46e1f883998e987fc84d4cababde12
   45 	* src/export.c (export_status_handler): Call the handler.
   46 
   47 2020-11-20  Andre Heinecke  <aheinecke@gnupg.org>
   48 
   49 	Revert "cpp: Use portable off_t size_t"
   50 	+ commit a5c4b030258714dd72a2e276114183309cad3ec3
   51 	This reverts commit 88294023c196497cfa6737be262c8b0c09d2a3ce.
   52 
   53 2020-11-20  NIIBE Yutaka  <gniibe@fsij.org>
   54 
   55 	m4: Update with newer autoconf constructs.
   56 	+ commit 4c6fd361593e22092770d120d68a18b4f70e0bb8
   57 	* src/gpgme.m4: Replace AC_HELP_STRING to AS_HELP_STRING.
   58 
   59 2020-11-18  Andre Heinecke  <aheinecke@gnupg.org>
   60 
   61 	cpp: Use portable off_t size_t.
   62 	+ commit 88294023c196497cfa6737be262c8b0c09d2a3ce
   63 	* configure.ac: Configure cpp data.h.in
   64 	* lang/cpp/src/Makefile.am: Generate data.h
   65 	* lang/cpp/src/data.cpp, lang/cpp/src/data.h: Use portable
   66 	types.
   67 	* lang/qt/src/Makefile.am: Include build dir.
   68 	* lang/qt/tests/makefile.am: Include build dir.
   69 
   70 2020-11-18  Ingo Klöcker  <dev@ingo-kloecker.de>
   71 	    Daniel Kahn Gillmor
   72 
   73 	qt: Avoid empty "rem@gnupg.org" signature notations.
   74 	+ commit 3c185c2159cdcc23f44773fe1cfb624b27598c80
   75 	* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Check remark for being
   76 	an empty string instead of a null QString.
   77 
   78 2020-11-18  NIIBE Yutaka  <gniibe@fsij.org>
   79 
   80 	build: Update with newer autoconf constructs.
   81 	+ commit 223779dfdeb7808809372587fa135a8cc2616ce8
   82 	* configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE.
   83 	Use AS_HELP_STRING instead of AC_HELP_STRING.
   84 	* m4/libtool.m4: Update from libgpg-error.
   85 	* m4/gpg-error.m4: Update from libgpg-error.
   86 	* m4/libassuan.m4: Update from libassuan.
   87 
   88 2020-11-12  Andre Heinecke  <aheinecke@gnupg.org>
   89 
   90 	qt: Fix export of qDebug GpgME::Error overload.
   91 	+ commit df5a89e6929479dc1bf301974fe7d607d024bc1f
   92 	* lang/qt/src/debug.cpp: Include debug.h to get the export decl.
   93 
   94 2020-11-12  Werner Koch  <wk@gnupg.org>
   95 
   96 	build: Use ~/.gnupg-autogen.sh for the release targets.
   97 	+ commit 27abdac25dcd4ba57e073a5de2f057830e623282
   98 	* Makefile.am (sign-release): Use global config vars.
   99 
  100 	Post release updates.
  101 	+ commit 01a0d8ec1aa8543dca0986c6dcb5cabc535aae2c
  102 
  103 
  104 	Release 1.15.0.
  105 	+ commit feea38c89d4ceb40334f884da9ab07cc4b73e757
  106 	* configure.ac: Bump LT versions to c=C35/A24/R0, cpp=C18/A13/R0,
  107 	qt=C12/A5/R0.
  108 
  109 2020-11-12  NIIBE Yutaka  <gniibe@fsij.org>
  110 	    Louis Dupré Bertoni
  111 
  112 	core: Support exporting secret keys.
  113 	+ commit 3382ecb17eb5d2a373cf2eccb301854fff42f6aa
  114 	* src/export.c (export_start): Set command handler for passphrase
  115 	interaction for the case when it's secret keys.
  116 	(export_ext_start): Likewise.
  117 
  118 2020-11-12  NIIBE Yutaka  <gniibe@fsij.org>
  119 
  120 	python: Fix a test for newer GnuPG (>= 2.3).
  121 	+ commit 7139afc5cdc0d8203dc75d7c91fa94b704b3d64f
  122 	* lang/python/tests/t-quick-subkey-creation.py: Specify RSA.
  123 
  124 2020-11-11  Andre Heinecke  <aheinecke@gnupg.org>
  125 
  126 	qt: Add export macro for QDebug operator.
  127 	+ commit 81f0dc7293a525af7cfbcb53cce050df718e0f91
  128 	* lang/qt/src/debug.h: Add export macro.
  129 
  130 2020-11-11  NIIBE Yutaka  <gniibe@fsij.org>
  131 
  132 	qt: Allow build with older GnuPG (< 2.2.18).
  133 	+ commit 276f3390e18b34e6211b4c75876a0ab4c10a5ac9
  134 	* lang/qt/tests/t-remarks.cpp (initTestCase): Check gpg for
  135 	allow-weak-key-signatures option.
  136 
  137 2020-11-09  Werner Koch  <wk@gnupg.org>
  138 
  139 	Require at least libgpg-error 1.36.
  140 	+ commit eb99e8c483a70764408868602ef322602e9e72ce
  141 	* configure.ac (NEED_GPG_ERROR_VERSION): Require 1.36.
  142 	* src/cJSON.c: Remove code for older version.
  143 	* src/engine.c (gpgme_get_engine_info): Ditto.
  144 	* src/gpgme-json.c: Ditto.
  145 	* src/op-support.c: Ditto.
  146 	* src/util.h: Ditto.
  147 
  148 2020-11-04  Ben Kibbey  <bjk@luxsci.net>
  149 
  150 	Parse STATUS_CANCELED_BY_USER.
  151 	+ commit 35ca460019ea29ae646d08c954d4d4bf2dc1e8e1
  152 	* src/gpgme.h.in (GPGME_STATUS_CANCELED_BY_USER): New.
  153 	* src/status-table.c (status_table_s): Add "CANCELED_BY_USER".
  154 	* src/passphrase.c (_gpgme_passphrase_status_handler): Return
  155 	GPG_ERR_CANCELED during GPGME_STATUS_CANCELED_BY_USER.
  156 
  157 2020-11-03  Ingo Klöcker  <dev@ingo-kloecker.de>
  158 
  159 	qt: Make audit parameters of result signal optional.
  160 	+ commit 0fee135997438c63ab30891ec7e662093ec57491
  161 	lang/qt/src/quickjob.h (QuickJob::result): Make parameters
  162 	auditLogAsHtml and audigLogError optional.
  163 
  164 	cpp: Mark helper functions as static.
  165 	+ commit b41f5fec1c42e0113ccbdbb7c258899793631b0a
  166 	lang/cpp/src/key.cpp (find_subkey, verify_subkey, find_uid, verify_uid,
  167 	find_signature, verify_signature): Mark as static.
  168 
  169 	cpp: Make signatures belonging to the same user ID sortable.
  170 	+ commit 6a6d2a27648490f08aaf0759a533aef08b32070d
  171 	lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<):
  172 	New.
  173 	lang/cpp/src/key.cpp (signature_index): New.
  174 
  175 2020-10-29  Ingo Klöcker  <dev@ingo-kloecker.de>
  176 
  177 	qt: Add support for revoke signature quick command.
  178 	+ commit f042739d3a2ed23a90441a81782e4c3ac6ffb1c5
  179 	* lang/qt/src/quickjob.h (QuickJob::startRevokeSignature): New.
  180 	* lang/qt/src/qgpgmequickjob.h, lang/qt/src/qgpgmequickjob.cpp
  181 	(QGpgMEQuickJob::startRevokeSignature): New.
  182 	* lang/qt/src/qgpgmequickjob.cpp (revokeSignatureWorker): New.
  183 
  184 	qt: Some minor cleanups.
  185 	+ commit 60328c4690beb8a82f5a3cc0d35b434e151c6365
  186 	* lang/qt/src/qgpgmequickjob.h: (GpgME::Key, QDateTime, QString):
  187 	Remove superfluous forward declarations.
  188 	(QGpgMEQuickJob): Remove superfluous second template argument. It is
  189 	identical to the default.
  190 	(QGpgMEQuickJob::result): Remove. It is already defined in the base
  191 	class.
  192 
  193 	cpp: Add support for gpgme_op_revsig.
  194 	+ commit 4166d263e421cb4f98c4ca6bef549613c35e149e
  195 	* lang/cpp/src/context.cpp, lang/cpp/src/context.h
  196 	(Context::revokeSignature, Context::startRevokeSignature): New.
  197 	* lang/cpp/src/context.cpp
  198 	(getLFSeparatedListOfStrings, getLFSeparatedListOfUserIds): New.
  199 	(getLFSeparatedListOfFingerprintsFromSubkeys): Extracted second part
  200 	of function to getLFSeparatedListOfStrings.
  201 
  202 	core: New function gpgme_op_revsig.
  203 	+ commit f3407d0ee4e34ed33be18de5f886a4da2affbf9f
  204 	* src/gpgme.h.in (gpgme_op_revsig_start, gpgme_op_revsig): New.
  205 	(GPGME_REVSIG_LFSEP): New.
  206 	* src/context.h (ctx_op_data_id_t): Add OPDATA_REVSIG.
  207 	* src/revsig.c: New.
  208 	* src/Makefile.am (main_sources): Add revsig.
  209 	* src/libgpgme.vers, src/gpgme.def: Add gpgme_op_revsig and
  210 	gpgme_op_revsig_start.
  211 	* src/engine.h, src/engine.c: (_gpgme_engine_op_revsig): New.
  212 	* src/engine-backend.h (engine_ops): Add 'revsig' and adjust all
  213 	engine initializers.
  214 	* src/engine-gpg.c (gpg_revsig): New.
  215 	(_gpgme_engine_ops_gpg): Set revsig to gpg_revsig.
  216 	* doc/gpgme.texi: Document new functions.
  217 	* tests/run-keysign.c: Add option --revoke.
  218 
  219 2020-10-28  NIIBE Yutaka  <gniibe@fsij.org>
  220 
  221 	python: Handle the when case __doc__ is None.
  222 	+ commit 089164a0c0d6024cbb133327d47a28ca3716cd56
  223 	* lang/python/src/core.py (GpgmeWrapper): Check if None.
  224 
  225 2020-10-23  Ingo Klöcker  <dev@ingo-kloecker.de>
  226 
  227 	cpp: Add support for gpgme_cancel.
  228 	+ commit 74c8131d809be49d64f482961fee1e6e0dbe4f4f
  229 	* lang/cpp/src/context.cpp, lang/cpp/context.h
  230 	(Context::cancelPendingOperationImmediately): New.
  231 	* NEWS: Mention added API
  232 
  233 	Add Assuan transaction that forwards status lines to another object.
  234 	+ commit ff23e24063feb9e1628858fd32df37be557072a6
  235 	* lang/cpp/src/Makefile.am: Add new files.
  236 	* lang/cpp/src/interfaces/statusconsumer.h,
  237 	lang/cpp/src/statusconsumerassuantransaction.cpp,
  238 	lang/cpp/src/statusconsumerassuantransaction.h: New.
  239 	* NEWS: Mention new API.
  240 
  241 	qt: Add QDebug stream operator for GpgME::Error.
  242 	+ commit b21cabb311803677104fa98809bc88b21243f358
  243 	* lang/qt/src/Makefile.am: Add new files.
  244 	* lang/qt/src/debug.h, lang/qt/src/debug.cpp: New.
  245 	* NEWS: Mention it.
  246 
  247 	cpp, qt: Add missing comparison operators for version info comparison.
  248 	+ commit c3406462d11b4241d4feee9be08e0ebe4f2e0bfa
  249 	* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<=,
  250 	EngineInfo::Version::operator>=, EngineInfo::Version::operator!=):
  251 	New.
  252 	* lang/qt/tests/t-various.cpp (TestVarious::testVersion): Add tests for
  253 	new comparison operators.
  254 	* NEWS: Mention added API
  255 
  256 	cpp, qt: Fix version info comparison.
  257 	+ commit 2f53a2f4be86c0829213e2a9f846b7f8f0b106dc
  258 	* lang/cpp/src/engineinfo.h
  259 	(EngineInfo::Version::operator>(const Version &)): Fix logic.
  260 	(EngineInfo::Version::operator>(const char *)): Use Version-overload of
  261 	operator>.
  262 
  263 	* lang/qt/tests/t-various.cpp: Add test.
  264 
  265 2020-10-03  Werner Koch  <wk@gnupg.org>
  266 
  267 	tests: Fix gcc incompatibility.
  268 	+ commit 25e2d717f44682f83c483ceba6ba81bad7fc3e97
  269 	* tests/json/t-json.c: Remove var definitions inside a for statement.
  270 
  271 2020-10-01  NIIBE Yutaka  <gniibe@fsij.org>
  272 
  273 	gpgsm: Fix leaked fd.
  274 	+ commit fd904f87f8d43ad477b9d35d834f384e917b26fd
  275 	* src/engine-gpgsm.c (gpgsm_new): Close gpgsm->diag_cb.server_fd.
  276 
  277 2020-09-09  Werner Koch  <wk@gnupg.org>
  278 
  279 	core: Fully implement the inquire callback for assuan_transact.
  280 	+ commit e4ee706e270c38937afe26ce9f54d17d037cb86f
  281 	* src/engine-assuan.c (inquire_cb): Implement returning data.
  282 
  283 	* tests/opassuan/t-command.c (inq_cb): Send some test data.
  284 
  285 2020-09-08  Ingo Klöcker  <dev@ingo-kloecker.de>
  286 
  287 	qt: Update the documentation of ListAllKeysJob.
  288 	+ commit 973c8116c840b4f1e0c3c80a7956641550c3388d
  289 	* lang/qt/src/listallkeysjob.h (ListAllKeysJob::start): Document that
  290 	the mergeKeys argument is ignored with gpg >= 2.1.
  291 
  292 	cpp: Update key with --with-secret instead of updating it twice.
  293 	+ commit 3dd7377e120f10576b3b4334b6149f027ceec126
  294 	* lang/cpp/src/key.cpp (Key::update): Call Context::key() only once
  295 	with KeyListMode::WithSecret.
  296 
  297 2020-09-07  Ingo Klöcker  <dev@ingo-kloecker.de>
  298 
  299 	qt: List keys once with --with-secret instead of twice.
  300 	+ commit 13bcc6680ac2030d45e4f36a64864bcd6a1d42a9
  301 	* lang/qt/src/qgpgmelistallkeysjob.cpp
  302 	(do_list_keys): Rename to do_list_keys_legacy and put into unnamed
  303 	namespace.
  304 	(merge_keys): Put into unnamed namespace.
  305 	(list_keys): Rename to list_keys_legacy and put into unnamed namespace.
  306 	(do_list_keys, list_keys): New.
  307 	* lang/qt/tests/t-keylist.cpp (testListAllKeysSync): New.
  308 
  309 	cpp: Add keylist mode WithSecret.
  310 	+ commit 188cc9e9b553998d2a8ec52bd8282365e22bf400
  311 	* lang/cpp/src/global.h (WithSecret): New.
  312 	* lang/cpp/src/context.cpp (operator<<): Handle WithSecret.
  313 	* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t,
  314 	convert_from_gpgme_keylist_mode_t): Ditto.
  315 
  316 	cpp: Add missing keylist modes.
  317 	+ commit b714a6bbc8038c1b226bc920dd02ce8fbae7da8a
  318 	* lang/cpp/src/util.h
  319 	(add_to_gpgme_keylist_mode_t): Sort modes as in enum definition and
  320 	add missing modes to check.
  321 	(convert_from_gpgme_keylist_mode_t): Add missing handling of
  322 	GPGME_KEYLIST_MODE_WITH_TOFU and GPGME_KEYLIST_MODE_WITH_KEYGRIP.
  323 
  324 2020-09-03  Ingo Klöcker  <dev@ingo-kloecker.de>
  325 
  326 	cpp: Copy some more subkey properties when merging keys.
  327 	+ commit 4d87ea2851ae1156cfb1d754cf32b5c9073d4252
  328 	* lang/cpp/src/key.cpp (Key::mergeWith): Also merge secret flag and
  329 	keygrip
  330 
  331 2020-08-28  Werner Koch  <wk@gnupg.org>
  332 
  333 	qt: Fix an rfc2253 parser flaw.
  334 	+ commit b088d81cefe45c16409085f1560ad1d4c235a696
  335 	* lang/qt/src/dn.cpp (parse_dn_part): Fix parser.
  336 
  337 2020-08-14  Ingo Klöcker  <dev@ingo-kloecker.de>
  338 
  339 	core: Add error handling to setexpire.
  340 	+ commit f66f856c89b7c02e368afe2343de7cce50e6109e
  341 	* src/genkey.c (setexpire, gpgme_op_setexpire_start,
  342 	gpgme_op_setexpire): Move to ...
  343 	* src/setexpire.c: New.
  344 	* src/Makefile.am (main_sources): Add that file.
  345 	* src/context.h (ctx_op_data_id_t): Add OPDATA_SETEXPIRE.
  346 
  347 	* lang/qt/tests/t-various.cpp (testSetExpire): Test error handling.
  348 
  349 2020-08-11  Ingo Klöcker  <dev@ingo-kloecker.de>
  350 
  351 	qt: Support changing expiry of subkeys.
  352 	+ commit 4f2cd3a0c6a8f3633040ff0e8cca787b2bd61fb2
  353 	* lang/qt/src/changeexpiryjob.h (ChangeExpiryJob::start): New overload
  354 	that accepts subkeys (with empty implementation).
  355 	* lang/qt/src/qgpgmechangeexpiryjob.h,
  356 	lang/qt/src/qgpgmechangeexpiryjob.cpp (QGpgMEChangeExpiryJob::start):
  357 	New overload that accepts subkeys.
  358 
  359 2020-08-10  Ingo Klöcker  <dev@ingo-kloecker.de>
  360 
  361 	cpp: Make private helper a file static.
  362 	+ commit c813734c9ce0a77f5a9d463a6b16074e522cc2ce
  363 	* lang/cpp/src/context.h, lang/cpp/src/context.cpp
  364 	(Context::getLFSeparatedListOfFingerprintsFromSubkeys): Remove
  365 	from Context; make it a static function instead
  366 
  367 2020-08-06  Andre Heinecke  <aheinecke@gnupg.org>
  368 
  369 	cpp: Use cstdlib getenv for portability.
  370 	+ commit 0676d41ef57db4da469aa9b733f8965606b667ec
  371 	* lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private):
  372 	Use std::getenv.
  373 
  374 2020-08-05  Ingo Klöcker  <dev@ingo-kloecker.de>
  375 
  376 	qt: Port to new setExpire()
  377 	+ commit 89501509134ab9cff87219fcaee9c1a758efa2fe
  378 	* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Use new
  379 	setExpire() instead of edit() with GpgSetExpiryTimeEditInteractor
  380 
  381 2020-08-04  Ingo Klöcker  <dev@ingo-kloecker.de>
  382 
  383 	qt: Add test for setExpire.
  384 	+ commit 84c6b6e2fea1176991bd89ac421af492d4550d6e
  385 	* lang/qt/tests/t-various.cpp (TestVarious::testSetExpire): New.
  386 
  387 	cpp: Add support for gpgme_op_setexpire.
  388 	+ commit aa03205fe5e8a8fa2b0feecb8a142aff2a1b25df
  389 	* lang/cpp/src/context.cpp
  390 	(Context::setExpire, Context::startSetExpire): New.
  391 	(Context::getLFSeparatedListOfFingerprintsFromSubkeys):
  392 	New helper.
  393 	* lang/cpp/src/context.h
  394 	(Context::SetExpireFlags): New enum.
  395 	(Context::setExpire, Context::startSetExpire): Add
  396 	prototypes.
  397 	(Context::getLFSeparatedListOfFingerprintsFromSubkeys):
  398 	Add as private helper.
  399 
  400 	cpp: Add ostream operator for subkey.
  401 	+ commit 197ba151e70c0aef35ee713b119d49e4637c1d05
  402 	* lang/cpp/src/key.cpp (Subkey): Add ostream operator.
  403 	* lang/cpp/src/key.h: Update accordingly.
  404 
  405 2020-08-04  Ingo Klöcker  <dev@ingo-kloecker.de>
  406 	    Andre Heinecke  <aheinecke@gnupg.org>
  407 
  408 	core: New function gpgme_op_setexpire.
  409 	+ commit db82e99a8a40c57a237dad030928d0fcf6b03ad7
  410 	* src/gpgme.h.in (gpgme_op_setexpire_start, gpgme_op_setexpire): New.
  411 	* src/libgpgme.vers, src/gpgme.def: Add new functions.
  412 	* src/genkey.c (setexpire): New.
  413 	(gpgme_op_setexpire_start, gpgme_op_setexpire): New.
  414 	* src/engine.h, src/engine.c: (_gpgme_engine_op_setexpire): New.
  415 	* src/engine-backend.h (engine_ops): Add 'setexpire' and adjust all
  416 	engine initializers.
  417 	* src/engine-gpg.c (gpg_setexpire): New.
  418 	(_gpgme_engine_ops_gpg): Set setexpire to gpg_setexpire.
  419 	* doc/gpgme.texi: Document new functions.
  420 	* tests/run-genkey.c: Add option --setexpire.
  421 
  422 2020-07-16  Werner Koch  <wk@gnupg.org>
  423 
  424 	Release 1.14.0.
  425 	+ commit 6d7bf78ca5af35b0860aa20b12f799ab03752190
  426 	* configure.ac: Bump LT versions to c=C34/A23/R0 cpp=C17/A11/R0
  427 	qt=C11/A4/R0.
  428 
  429 2020-07-16  Andre Heinecke  <aheinecke@gnupg.org>
  430 
  431 	qt, cpp: Support export modes.
  432 	+ commit 690d967196d9f888e2b7c12d8c77ad752d7e15bf
  433 	* lang/cpp/context.cpp, lang/cpp/context.h
  434 	(Context::startPublicKeyExport, Context::exportPublicKeys): Extend
  435 	with flags paramenter.
  436 	(Context::ExportMode): New.
  437 	* lang/qt/src/exportjob.h (ExportJob::setExportMode): New.
  438 	* lang/qt/src/qgpgmeexportjob.cpp, lang/qt/src/qgpgmeexportjob.h:
  439 	Update accordingly.
  440 
  441 2020-07-16  Werner Koch  <wk@gnupg.org>
  442 
  443 	core: Also allow GPGME_EXPORT_MODE_SSH for gpgme_op_export.
  444 	+ commit dfeedcc28d0406f5ad8ff8ad397e1ef930676535
  445 	* src/export.c (export_start): Allow that mode.
  446 
  447 	core: New export mode to export as OpenSSH public key.
  448 	+ commit 7f9e0ca57b29cc96bd1ca717d891c11db7435c5a
  449 	* src/gpgme.h.in (GPGME_EXPORT_MODE_SSH): New.
  450 	* src/export.c (export_ext_start): Allow for new mode.
  451 	* src/engine-gpg.c (export_common): Implement.
  452 	* tests/run-export.c (status_cb): New.
  453 	(main): New options --status and --ssh.
  454 
  455 2020-07-15  Werner Koch  <wk@gnupg.org>
  456 
  457 	core: Deprecate the non-working trustlist functions.
  458 	+ commit 858909168298e8c6fb6f9f9009be2ee2d0d9f0ec
  459 	* src/gpgme.h.in: Clarify that the trustlist function should not be
  460 	used.
  461 	* src/engine.c (_gpgme_engine_op_trustlist): Always return an error.
  462 	* src/engine-backend.h (struct engine_ops): Remove trustlist member.
  463 	* src/engine-gpg.c (gpg_trustlist): Remove.
  464 	(struct engine_ops): Remove that member.  Also in all other engines.
  465 	* tests/gpg/t-trustlist.c: Remove.
  466 	* lang/python/tests/t-trustlist.py: Remove.
  467 
  468 	core: New keylist mode GPGME_KEYLIST_MODE_WITH_KEYGRIP.
  469 	+ commit c8048bf8eb988f22b20215197f4739bedafc4264
  470 	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_KEYGRIP): New.
  471 	* src/gpgme-json.c (op_keylist): New flag "keygrip".
  472 	* src/engine-gpg.c (gpg_keylist_build_options): Pass the options.
  473 
  474 	* lang/cpp/src/global.h (WithKeygrip): New.
  475 	* lang/cpp/src/context.cpp: Add check.
  476 	* lang/cpp/src/key.cpp (Key::update): Handle WithKeygrip.
  477 	* lang/cpp/src/verificationresult.cpp: Ditto.
  478 	* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Ditto.
  479 
  480 2020-07-14  Werner Koch  <wk@gnupg.org>
  481 
  482 	python: Workaround for a regression in GnuPG 2.2.21.
  483 	+ commit 32b80cf3c7d278ddf27117617a3e95e4a12c28c8
  484 	* lang/python/tests/support.py (is_gpg_version): New.
  485 	* lang/python/tests/t-encrypt-sym.py: Add workaround.
  486 
  487 2020-06-09  Andre Heinecke  <aheinecke@gnupg.org>
  488 
  489 	doc: Explain verify_result_t.status == 0 more.
  490 	+ commit 88f3202521d422d94bfd79e61bde00707d6f28c9
  491 	* doc/gpgme.texi (gpgme_verify_result_t): Explain
  492 	GPGME_STATUS_NO_ERROR more clearly.
  493 
  494 2020-06-05  Werner Koch  <wk@gnupg.org>
  495 
  496 	core: Fix setting of the chain_model signature result.
  497 	+ commit 728ead8ebd426307c6b3f1e3794b3a7ab585eebd
  498 	* src/verify.c (parse_trust): Fix detection of "chain" keyword.
  499 
  500 2020-05-11  NIIBE Yutaka  <gniibe@fsij.org>
  501 
  502 	tests: Remove/change tests for GnuPG 2.3 with no gpg.keyserver.
  503 	+ commit 0cc040e82f9943792a58e73dbc97e20d312858fb
  504 	* lang/qt/tests/t-config.cpp (testKeyserver): Remove.
  505 	* tests/gpg/t-gpgconf.c (main): Test with dirmngr.keyserver.
  506 
  507 2020-05-08  Andre Heinecke  <aheinecke@gnupg.org>
  508 
  509 	w32: Explicitly link ws2_32.
  510 	+ commit 52f930c1ed7eee6336a41598c90ef3605b7ed02b
  511 	* src/Makefile.am (gpgme_w32_extra_libs): New.
  512 	(libgpgme_la_LIBADD, libgpgme_glib_la_LIBADD): Use it.
  513 
  514 2020-05-08  dupgit  <olivier.delhomme@free.fr>
  515 
  516 	GPGME_CREATE_NOEXPIRE is only available since 1.9.0.
  517 	+ commit 49c13854f3bf49bc0bf18c6ae6bbf9d66b6625c2
  518 	 * doc/gpgme.texi: Fixes version number from 1.8.0 to
  519 	   1.9.0 for GPGME_CREATE_NOEXPIRE.
  520 
  521 	GnuPG-Bug-Id: T4922
  522 
  523 2020-05-08  Werner Koch  <wk@gnupg.org>
  524 
  525 	core: Make sure the keygrip is available in WITH_SECRET mode.
  526 	+ commit 004fdf61c8b94f646409f4d5855adf8e43b29627
  527 	* src/engine-gpg.c (gpg_keylist_build_options): Send --with-keygrip
  528 	if --with-secret is used.
  529 
  530 2020-05-08  Andre Heinecke  <aheinecke@gnupg.org>
  531 
  532 	tests, json: Do not check for keygrip of pubkeys.
  533 	+ commit 5c0d1c7f76c95bad8bce4ad3bafd121ec5101d3c
  534 	* tests/json/t-keylist-secret.out.json: Do not check for keygrip
  535 	of bravo key.
  536 
  537 2020-03-27  NIIBE Yutaka  <gniibe@fsij.org>
  538 
  539 	tests: Add ECC key generation for tests/gpgsm.
  540 	+ commit 3658e2df65d321e334a8c96b4d252a4be20354bd
  541 	* tests/gpgsm/t-genkey.c (check_result): New.
  542 
  543 	build: Fix library dependency.
  544 	+ commit 71ef398bfd72d505290376d82575eb4f3aece035
  545 	* src/Makefile.am (gpgme_tool_LDADD): Add @GPG_ERROR_LIBS@.
  546 
  547 2020-03-17  Werner Koch  <wk@gnupg.org>
  548 
  549 	core: New context flags "include-key-block" and "auto-key-import".
  550 	+ commit 3afa534645e3826c95e7c70d7ae61ffa2d63acec
  551 	* src/gpgme.c (gpgme_set_ctx_flag): Add flags "include-key-block" and
  552 	"auto-key-import".
  553 	(gpgme_get_ctx_flag): Ditto.
  554 	* src/context.h (struct gpgme_context): Add flags include_key_block
  555 	and auto_key_import.
  556 	* src/engine-gpg.c (struct engine_gpg): Likewise.
  557 	(gpg_set_engine_flags): Set the flags for gpg versions >= 2.2.20.
  558 	(gpg_decrypt): Set option according to the new flags.
  559 	(gpg_encrypt): Ditto.
  560 	(gpg_encrypt_sign): Ditto.
  561 	(gpg_sign): Ditto.
  562 	(gpg_verify): Ditto.
  563 
  564 	tests/run-verify: Add option --auto-key-import.
  565 	tests/run-sign: add option --include-key-block.
  566 
  567 2020-03-03  Bernhard Reiter  <bernhard@intevation.de>
  568 
  569 	python: fix minor typo in howto.
  570 	+ commit 11edc073a3d2bf72e49827e97349cb364612f300
  571 
  572 
  573 2020-02-19  Andre Heinecke  <aheinecke@gnupg.org>
  574 
  575 	qt: Change logging category.
  576 	+ commit ec9690cf5ce85f43997ac2a3abd3e728012aee4a
  577 	* lang/qt/src/*: Change logging category to macro to QGPGME_LOG.
  578 
  579 	qt: Log execution args of gpg-card.
  580 	+ commit ba08aadfa7d254f459f51470a7331c6cc2de5199
  581 	* lang/qt/src/qgpgmegpgcardjob.cpp (do_work): Log call.
  582 
  583 2020-02-12  Andre Heinecke  <aheinecke@gnupg.org>
  584 
  585 	qt: Add dummy context to make mixin happy.
  586 	+ commit 9ca679c15054fbc1cc20e428a6ddf6a67dd0491e
  587 	* lang/qt/qgpgmegpgcardjob.cpp (QGpgMEGpgCardJob): Add context.
  588 
  589 	qt: Add GpgCardJob following the job pattern.
  590 	+ commit 77feaa451074741c2d07051915bc23d8b8377242
  591 	* lang/qt/src/Makefile.am: Add new files.
  592 	* lang/qt/src/job.cpp (GpgCardJob): Add impl stuff.
  593 	* lang/qt/src/protocol.h (gpgCardJob): Get one.
  594 	* lang/qt/src/qgpgmebackend.cpp,
  595 	lang/qt/src/qgpgmebackend.h: Add helpers to get the job.
  596 	* lang/qt/src/qgpgmegpgcardjob.cpp,
  597 	lang/qt/src/gpgcardjob.h,
  598 	lang/qt/src/qgpgmegpgcardjob.h: New.
  599 
  600 2020-01-29  Andre Heinecke  <aheinecke@gnupg.org>
  601 
  602 	Do not test for a bug in older GnuPG versions.
  603 	+ commit cff600f1f65a2164ab25ff2b039cba008776ce62
  604 	* tests/json/t-keylist-secret.out.json
  605 
  606 2020-01-24  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
  607 
  608 	m4/python: Scan for python 3.8 as well.
  609 	+ commit 414938cfedbdb97b83d00e8619dec9502096be22
  610 	* m4/python.m4: Scan for python 3.8 as well.
  611 
  612 2020-01-17  Andre Heinecke  <aheinecke@gnupg.org>
  613 
  614 	core: Add MacOS fallbacks to look for binaries.
  615 	+ commit 39052913f2154fa8e9575727e27d4101ef8b6460
  616 	* src/posix-util.c (find_executable): New.
  617 	(walk_path_str): Factored out from walk_path.
  618 	(walk_path): Replaced by find_executable.
  619 	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use find_executable.
  620 
  621 2019-12-13  Andre Heinecke  <aheinecke@gnupg.org>
  622 
  623 	cpp, qt: Use uidhash to select uids for signing.
  624 	+ commit 194272dbc3e326cc32c1464bc6fda0c0d10b5559
  625 	* lang/cpp/src/gpgsignkeyeditinteractor.cpp (action):
  626 	Use uidhash instead of number.
  627 	(GpgSignKeyEditInteractor::setKey): New.
  628 	* lang/cpp/src/gpgsignkeyeditinteractor.h: Update accordingly.
  629 	* lang/cpp/src/key.h, lang/cpp/src/key.cpp: Wrap uidhash.
  630 	* lang/qt/src/qgpgmesignkeyjob.cpp: Set the key.
  631 
  632 2019-12-13  Werner Koch  <wk@gnupg.org>
  633 
  634 	core: Extend gpgme_user_id_t with uidhash member.
  635 	+ commit 5eeae535ee0df981d8ae8b758b5bb0d190c7fd89
  636 	* src/gpgme.h.in (struct _gpgme_user_id): Add field 'uidhash'.
  637 	* src/key.c (gpgme_key_unref): Free it.
  638 	* src/keylist.c (keylist_colon_handler): Set it.
  639 	* tests/run-keylist.c (main): Print it.
  640 
  641 2019-12-11  Andre Heinecke  <aheinecke@gnupg.org>
  642 
  643 	Revert "doc: Remove UI Server documentation"
  644 	+ commit 7e7eaf43424556c3c25edc7b67e760ab60de55ce
  645 	This reverts commit 1b2ad3b73c37d0583b8e438b4707dca60e26ae7e.
  646 
  647 2019-12-06  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
  648 
  649 	gpg: Avoid error diagnostics with --override-session-key when verifying.
  650 	+ commit ae4d7761a15b82eb98b0bcc72af2ae2e8973e1f9
  651 	* src/engine-gpg.c (gpg_decrypt): only send --no-keyring when we are
  652 	not verifying.
  653 
  654 2019-12-04  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
  655 
  656 	gpgme-tool: Fix help text for INCLUDE_CERTS.
  657 	+ commit c0c97dbbe6e08d338ba56abec023bd57287e3239
  658 	* src/gpgme-tool.c (hlp_include_certs): added missing newline.
  659 
  660 2019-11-27  Werner Koch  <wk@gnupg.org>
  661 
  662 	core,w32: Silence compiler warnings.
  663 	+ commit d480a3c8f3a3fff867b84fd8feca9f111ae4adc7
  664 	* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Add some casts.
  665 
  666 2019-11-12  Andre Heinecke  <aheinecke@gnupg.org>
  667 
  668 	doc: Remove UI Server documentation.
  669 	+ commit 1b2ad3b73c37d0583b8e438b4707dca60e26ae7e
  670 	* doc/Makefile.am: Remove uiserver.texi
  671 	* doc/gpgme.texi: Remove UI-Server mentions.
  672 	* doc/uiserver.texi: Removed.
  673 
  674 2019-11-08  NIIBE Yutaka  <gniibe@fsij.org>
  675 
  676 	qt,tests: Take care for old DSA key using deprecated digest algo.
  677 	+ commit c49324200734e8ee8524bc096195e24e8aae87cb
  678 	* lang/qt/tests/t-remarks.cpp (initTestCase): Supply
  679 	allow-weak-key-signatures flag for GnuPG 2.3, which
  680 	normally rejects use of SHA1 digest.
  681 
  682 2019-11-06  Andre Heinecke  <aheinecke@gnupg.org>
  683 
  684 	qt, tests: Add check for supported versions.
  685 	+ commit e7b5c6405da515101f62acce2837e6c0cc115b76
  686 	* lang/qt/tests/t-encrypt.cpp (decryptSupported): Moved to
  687 	t-support as loopbackSupported.
  688 	* lang/qt/tests/t-remarks.cpp: Check for loopbackSupported.
  689 	* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.h
  690 	(loopbackSupported): New.
  691 
  692 	qt, tests: Replace accidentally commited assert.
  693 	+ commit 024edbbd3c0059654e13c1c6acf78456450469ab
  694 	* lang/qt/test/t-remarks.cpp (testRemarkReplaceSingleUIDExportable):
  695 	Use QVERIFY instead of assert.
  696 
  697 	qt,tests: Add test to add an exportable certify.
  698 	+ commit a56f6015e9518180237a70b8abc5ab9804212986
  699 	* lang/qt/test/t-remarks.cpp (testRemarkReplaceSingleUIDExportable):
  700 	New.
  701 
  702 2019-11-06  NIIBE Yutaka  <gniibe@fsij.org>
  703 
  704 	python: Fix how to generate documentation.
  705 	+ commit 1b840a151ad7f9680ec5144da5efb0ee6c1dcf1f
  706 	* lang/python/doc/Makefile.am: Explicitly write rules to generate rst
  707 	and texinfo files.
  708 
  709 2019-11-04  Andre Heinecke  <aheinecke@gnupg.org>
  710 
  711 	qt, tests: Add testcase for multiple remarsk.
  712 	+ commit 9cf4db1e5271ae1dd6f7ecb11513203cec368bc6
  713 	* lang/qt/tests/t-remarks.cpp (testMultipleRemarks): New.
  714 
  715 	cpp: Add API to obtain mutliple remarks.
  716 	+ commit cb7668caeb71429afce1aded9128334182b233e1
  717 	* lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::remarks): New.
  718 	* NEWS: Mention this.
  719 
  720 	qt,tests: Move remarks test out and extend it.
  721 	+ commit db888b1cc05723423a3154fe89e6191812c9c869
  722 	* lang/qt/tests/t-various.cpp (testRemarks): Move out.
  723 	* lang/qt/tests/t-remarks.cpp: New.
  724 	* lang/qt/tests/Makefile.am: Update accordingly.
  725 
  726 	cpp: Fix dupe_ok state for single uid.
  727 	+ commit 08933c183a4c299eb4696092d6d229f607fce985
  728 	* lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable):
  729 	Add transition from command to dupe_ok
  730 
  731 2019-11-01  Andre Heinecke  <aheinecke@gnupg.org>
  732 
  733 	qt: Allow adding empty remarks.
  734 	+ commit d61491dd25d86a2bee54e4be29b715d97840be67
  735 	* lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Allow empty
  736 	remarks.
  737 
  738 	cpp: Minor optimization in remark lookup.
  739 	+ commit 174caaa6f53e1125724a47dad3a5c991298aee6d
  740 	* lang/cpp/src/key.cpp (UserID::remark): Use C-API.
  741 
  742 	cpp: Fix adding duplicated sigs on multiple uids.
  743 	+ commit 266e05eee859b83d97079c2fbbd2f1da010fa412
  744 	* lang/cpp/src/gpgsignkeyeditinteractor.cpp: Add another
  745 	state DUPE_OK2 to allow gpg looping over all uids.
  746 
  747 	cpp: Add env var to control editinteractor debug.
  748 	+ commit a4d5394b4607382d846e8c156439ac182f9945d7
  749 	* lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private):
  750 	Read "GPGMEPP_INTERACTOR_DEBUG" env var.
  751 	(EditInteractor::Private::~Private): Close debug file.
  752 
  753 2019-10-29  Andre Heinecke  <aheinecke@gnupg.org>
  754 
  755 	core: Fix parsing of userid sigs after a subpkg.
  756 	+ commit 1242c6c93ac63383f648dd84cff847b86f4925f9
  757 	* src/keylist.c (keylist_colon_handler): Do not clear
  758 	out the tmp_uid when a subpacket line is encountered.
  759 
  760 	qt,tests: Add test for remarks.
  761 	+ commit 1f3ca698f16465761649d402b999f0e2c9184344
  762 	* lang/qt/tests/t-various.cpp (testRemark): New.
  763 
  764 	qt: Extend signkeyjob to handle remarks and dups.
  765 	+ commit 373acd6923f2fc968fb870d2a8a9b49398cb652f
  766 	* lang/qt/src/qgpgmesignkeyjob.cpp: Handle remarks and
  767 	dupeOK.
  768 	* lang/qt/src/signkeyjob.h (SignKeyJob::setDupeOk),
  769 	(SignKeyJob::setRemark): New.
  770 
  771 	cpp: Add support for multiple keysigs in edit.
  772 	+ commit 36f7f7a478228a64d3d51a4901a264c8f55f90bb
  773 	* lang/cpp/src/gpgsignkeyeditinteractor.cpp
  774 	(GpgSignKeyEditInteractor::setDupeOk): New.
  775 	(makeTable): Add new tansitions.
  776 	(SignKeyState): Add DUPE_OK Status.
  777 	(GpgSignKeyEditInteractor::action): Handle DUPE_OK.
  778 	(GpgSignKeyEditInteractor::Private::Private): Carry flag.
  779 
  780 	cpp: Add convenience API to obtain remarks.
  781 	+ commit 83ecf1686a9a4e7de3a7b176cf272d9f9f640445
  782 	* lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::remark): New.
  783 
  784 	core: Add cert-notation support and extended-edit.
  785 	+ commit 0224408c6332648461bdbba562f1a61c947c8ed3
  786 	* src/context.h (gpgme_context): Add new flag for extended-edit.
  787 	* src/engine-gpg.c (append_args_from_sig_notations): Add flags to
  788 	control the kind of notations.
  789 	(gpg_edit): Respect extended-edit and notations.
  790 	(gpg_encrypt_sign, gpg_sign): Update call to
  791 	append_args_from_sig_notations.
  792 	* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Support
  793 	extended-edit.
  794 	* NEWS, doc/gpgme.texi: Mention extended-edit.
  795 
  796 2019-10-28  Andre Heinecke  <aheinecke@gnupg.org>
  797 
  798 	core,w32: Initialize dbg_help for socket debugging.
  799 	+ commit fe2892618c20cd40c342cce26ffb6ac4644fd3c3
  800 	* src/w32-io.c (_gpgme_io_select): Initialize dbg_help.
  801 
  802 2019-08-06  NIIBE Yutaka  <gniibe@fsij.org>
  803 
  804 	json: Fix t-decrypt-verify.out for GnuPG >= 2.3.
  805 	+ commit b97434fbf087f3176daf39699ff579d38d265317
  806 	* tests/json/t-decrypt-verify.out.json: Remove check with key of
  807 	04071FB807287134.
  808 
  809 2019-07-16  Andre Heinecke  <aheinecke@gnupg.org>
  810 
  811 	core: Fix arg counting in enginge-gpg.
  812 	+ commit 6f4a886b30caaac3a30fcf30a7525d656d7e25ce
  813 	* src/engine-gpg.c (build_argv): Properly check for all
  814 	arguments and allocate memory for them.
  815 
  816 2019-07-12  NIIBE Yutaka  <gniibe@fsij.org>
  817 
  818 	python: doc: Remove generated files, put rules in Makefile.
  819 	+ commit 36428d8cf153a33faac6a951752cdc76e23f9737
  820 	* lang/python/doc/Makefile.am (EXTRA_DIST): Remove files not
  821 	distributed like files under meta.
  822 	* Add rules to generate .rst and .texi files.
  823 	* lang/python/doc/rst: Remove .rst files to be generated.
  824 	* lang/python/doc/texinfo: Remove .texi files to be generated.
  825 
  826 	python: doc: Add suffix for org files.
  827 	+ commit d9387650ffb159bbd04db74c4a1dba6f94e83116
  828 
  829 
  830 2019-06-13  Werner Koch  <wk@gnupg.org>
  831 
  832 	Release 1.13.1.
  833 	+ commit ea11c2a13cd44caf0bab395bd5132bf232318ad8
  834 	* configure.ac: Bump LT versions to c=C33/A22/R1 cpp=C16/A10/R0
  835 	qt=C10/A3/R4.
  836 
  837 	python: Fix regression in t-decrypt-verify test.
  838 	+ commit 7d0a979c07d2a32c1e39a9403f009cbe026f77ff
  839 	* lang/python/tests/t-decrypt-verify.py: Comment recent changes.
  840 
  841 	python: Set a default-key into gpg.conf for the tests.
  842 	+ commit ad1395f210f3a3d5839f482f1933eac80a94d174
  843 	* lang/python/tests/Makefile.am (gpg.conf): Set a default key.
  844 
  845 	core: At debug levels up to 9 print only an ascii dump.
  846 	+ commit 4f11210b21a1914a1daf67474e9b82084b2cac01
  847 	* src/debug.c (_gpgme_debug_buffer): Switch between two output
  848 	formats.
  849 
  850 2019-06-06  Werner Koch  <wk@gnupg.org>
  851 
  852 	tests: Minor fix to run-threaded.c.
  853 	+ commit f6fd90c99aea8b604d76ae49d29bc5269c236a98
  854 	* tests/run-threaded.c (random_data_close): Correct FD test.
  855 
  856 	core: Add commented debug helper to posix-io.c.
  857 	+ commit f84abcad253ace782708c05760e52793814896f4
  858 	* src/posix-io.c (_gpgme_is_fd_valid): New out-commented function.
  859 
  860 	core: Fix error return value of _gpgme_run_io_cb.
  861 	+ commit 6b9ff1ba391a4364b37cb116748194f3f33b4f12
  862 	* src/wait.c (_gpgme_run_io_cb): Fix return code.
  863 
  864 2019-06-06  Andre Heinecke  <aheinecke@gnupg.org>
  865 
  866 	tests: Add option "allow-del" to run-threaded.
  867 	+ commit e6f28273062ff26344163e219c1b784ae99de980
  868 	* tests/run-threaded.c (main): Handle allow-del.
  869 	(allow-del): New. Variable to allow deletion of keys.
  870 	(import): Delete key after import if allow-del is set.
  871 	(delete_impres): Delete keys from an import result.
  872 	(delete_fpr): Delete a key by fingerprint.
  873 
  874 2019-06-05  Andre Heinecke  <aheinecke@gnupg.org>
  875 
  876 	tests: Implement import in run-threaded.
  877 	+ commit 024a7f75d4b8e017b92a13552b23e7fb1d22a5ce
  878 	* tests/run-threaded.c (import): New.
  879 	(do_data_op): Call it.
  880 
  881 2019-06-05  Werner Koch  <wk@gnupg.org>
  882 
  883 	core: Prettify _gpgme_io_select debug output again and fix TRACE_SYSRES.
  884 	+ commit 0f68c9f16bdae7295cac4cbf3c9a197840989a85
  885 	* src/debug.c (_gpgme_debug): Take better care of NULL userinfo.
  886 	(_gpgme_debug_end): Rework.
  887 	(_trace_sysres): Print ERRNO and not the supplied RES.
  888 
  889 2019-06-05  Andre Heinecke  <aheinecke@gnupg.org>
  890 
  891 	tests: Use synced output for error in run-threaded.
  892 	+ commit 3a3648e3a56712261bda4fa866bd2419a740cec8
  893 	* tests/run-threaded.c (do_data_op): Use synced out macro.
  894 
  895 	tests: Avoid variable named the same as a macro.
  896 	+ commit 3a11421d0f63b8cb5afa407cd65f763b11033241
  897 	* tests/run-threaded.c (decrypt, verify): Don't use a variable name
  898 	that is also a macro.
  899 
  900 	tests,w32: Fix thread creation in run-threaded.
  901 	+ commit 9bbe15ebbc41533fa219d5b3017a26a75bc72731
  902 	* tests/run-threaded.c (create_thread): Check proper return
  903 	value and not return value of CloseHandle.
  904 
  905 2019-06-05  Werner Koch  <wk@gnupg.org>
  906 
  907 	core: Improve the debug messages even more.
  908 	+ commit 8f9f3224aac78ce9d54e19e73acf7ab659787168
  909 	* src/debug.c (_gpgme_debug): Add arg LINE.  Chnage all callers.
  910 	(_gpgme_debug_begin): Remove.
  911 	* src/debug.h (TRACE_SEQ): Use the LINE arg of _gpgme_debug.
  912 
  913 	core: Avoid explicit locks in the debug code.
  914 	+ commit 856d2e8d64f668855b1c22d3d38fe783904c6c48
  915 	* src/debug.c (debug_lock): Remove.  Also remove all users.
  916 	(_gpgme_debug): Use gpgrt_bsprintf to prepare the output and finally
  917 	print using standard fprintf.  Reformat to prefix to be narrower.
  918 
  919 2019-06-04  Werner Koch  <wk@gnupg.org>
  920 
  921 	json: Print "nan", "-inf", "inf" if needed.
  922 	+ commit f56c996318dfa1c9f0d10582b18c2fce10d24668
  923 	* src/cJSON.c (print_number): Print NaN and INF.
  924 
  925 	json: Improve handling of large exponents in the JSON parsor.
  926 	+ commit fabe96126b4ed9c5e07b713813d7db26a02e5e5f
  927 	* src/cJSON.c: Include stdint.h.
  928 	(parse_number): Avoid overflob in SUBSCALE and cap integer values.
  929 
  930 	core: Implement recpstring option parsing for gpgsm.
  931 	+ commit 1024884e07f750ce781fa74dffa62e126bdda622
  932 	* src/engine-gpg.c (append_args_from_recipients_string): Detect bad
  933 	options.
  934 	* src/engine-gpgsm.c (set_recipients_from_string): Implement option
  935 	parsing.
  936 
  937 	core: Make gpgme_op_encrypt_ext work for CMS.
  938 	+ commit e9ca36f876e1066227668981f5a9e1a7f1031d9e
  939 	* src/engine-gpgsm.c (gpgsm_encrypt): Fix argument check.
  940 
  941 2019-06-04  NIIBE Yutaka  <gniibe@fsij.org>
  942 
  943 	python: Fix typo in DecryptionError exception.
  944 	+ commit 47135ffdb923de66bc275a37e31811ad22c73dd7
  945 	* lang/python/src/errors.py (DecryptionError): Rename from
  946 	DeryptionError.
  947 	(UnsupportedAlgorithm): Use DecryptionError.
  948 
  949 2019-06-03  Andre Heinecke  <aheinecke@gnupg.org>
  950 
  951 	Add NEWS for 1.13.1.
  952 	+ commit 49883023f661a18d73f9f2c7a3a98902af62ef6b
  953 	* NEWS: Add news for 1.13.1
  954 
  955 2019-05-06  Andre Heinecke  <aheinecke@gnupg.org>
  956 
  957 	python: Make EXTRA_DIST files explicit.
  958 	+ commit f9c923bb2d87711235312e8085964372d7480ce4
  959 	* configure.ac: Configure new Makefiles.
  960 	* lang/python/Makefile.am: Remove dirs from extra dist and use
  961 	subdirs.
  962 	* lang/python/examples/Makefile.am, lang/python/src/Makefile.am,
  963 	lang/python/doc/Makefile.am: New. Files that list EXTRA_DIST files.
  964 
  965 	Python, doc: Minor style improvement.
  966 	+ commit 63055f13407760c877e5a3a94e564dfb3077dd47
  967 	* lang/python/src/core.py (Context): Retab and shorten
  968 	max line length.
  969 
  970 	Merge remote-tracking branch 'origin/dkg/fix-T4276'
  971 	+ commit f303806a110a9813023a5fd9468a55ab0f7fb39d
  972 
  973 
  974 2019-05-03  Andre Heinecke  <aheinecke@gnupg.org>
  975 
  976 	Always use maintainer mode -Wno cflags.
  977 	+ commit 33b13d1c290d7ce35c636cce4265b512fb8e64c3
  978 	* configure.ac (CFLAGS): Move -Wno flags out of the maintainer mode.
  979 
  980 	cpp: Fix initialization warning.
  981 	+ commit 0ed81498147723f0e9282df5ae08b8b8e40edd2f
  982 	* lanc/cpp/src/gpggencardkeyinteractor.cpp
  983 	(GpgGenCardKeyInteractor::Private): Fix initialization warning.
  984 
  985 2019-05-03  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
  986 
  987 	python: stop raising BadSignatures from decrypt(verify=True)
  988 	+ commit 4100794e305ba22241ea5a4f7b42bb5189fbd948
  989 	* src/core.py (decrypt): filter out signatures with errors from the
  990 	returned verify_result, but avoid raising BadSignatures
  991 	* tests/t-decrypt-verify.py: ensure that only a single signature is
  992 	returned when evaluating cipher-3.asc, since the other signature is
  993 	unknown.
  994 
  995 	python/tests: try to decrypt and verify new test data.
  996 	+ commit bd2d282e572b5d02669238c9e087259b85638477
  997 	* lang/python/tests/t-decrypt.py: test decryption of cipher-3.asc and
  998 	cipher-no-sig.asc
  999 	* lang/python/tests/t-decrypt-verify.py: test decryption and
 1000 	verification of cipher-3.asc and cipher-no-sig.asc
 1001 
 1002 	tests: add two new types of encrypted data.
 1003 	+ commit c5c3a9d10be415ea7bc0cd9730ad6085f16ee7a0
 1004 	* tests/gpg/cipher-3.asc: add an encrypted file containing signatures
 1005 	(one from a known key, and one from an unknown key)
 1006 	* tests/gpg/cipher-no-sig.asc: add an encrypted file containing no
 1007 	signatures at all
 1008 
 1009 	python: make it easier to run a limited number of tests.
 1010 	+ commit 30bd1c097544376f257d426d5feb4706fb5d3afd
 1011 	* lang/python/tests/Makefile.am: prefer py_tests from the environment
 1012 	if present.
 1013 
 1014 2019-05-02  Andre Heinecke  <aheinecke@gnupg.org>
 1015 
 1016 	tests: Add cms mode to run-import.
 1017 	+ commit 4746c5c9e2dd9a3ee471a429c19bc1f7fd1d07db
 1018 	* tests/run-import.c (show_usage): Add doc for cms / openpgp.
 1019 	(main): Handle protocol.
 1020 
 1021 2019-04-24  Andre Heinecke  <aheinecke@gnupg.org>
 1022 
 1023 	cpp: Add wrapper for gpgme_set_global_flag.
 1024 	+ commit 7981ec4147f3058d5b56905903456247993dc6f7
 1025 	* lang/cpp/src/context.cpp (setGlobalFlag): New.
 1026 	* lang/cpp/src/global.h (setGlobalFlag): Export it.
 1027 
 1028 2019-04-19  NIIBE Yutaka  <gniibe@fsij.org>
 1029 
 1030 	core: Fix duplication of close_notify_handler for gpgsm.
 1031 	+ commit 7673ef7953482f42cab50dca1810e5c9d10f461e
 1032 	* src/engine-gpgsm.c [!USE_DESCRIPTOR_PASSING] (gpgsm_new): Remove
 1033 	last call to _gpgme_io_set_close_notify.
 1034 
 1035 	core: Fix error return.
 1036 	+ commit 814f6c8de8006830f19a029a879bd92f9e584789
 1037 	* src/engine.c (_gpgme_set_engine_info): Add error return.
 1038 
 1039 2019-04-09  Andre Heinecke  <aheinecke@gnupg.org>
 1040 
 1041 	core,w32: Fix minor potential memleak.
 1042 	+ commit 140d694e1fddf16fa3fd2371b9a852ebb14622c8
 1043 	* src/w32-util.c (_gpgme_create_process_utf8): Free converted
 1044 	startup info strings.
 1045 
 1046 	core,w32: Fix new w32-util functions.
 1047 	+ commit ecbba12b869106ba03e10b7b7dd80f74d086831b
 1048 	* src/w32-util.c (_gpgme_access): Respect mode parameter.
 1049 	(_gpgme_create_process_utf8): Convert startupinfo, too.
 1050 
 1051 	core,w32: Improve handling of Unicode paths.
 1052 	+ commit a82e3a0ae57a48ba173e282a050680751006c074
 1053 	* src/dirinfo.c (get_gpgconf_item): Use _gpgme_access.
 1054 	* src/posix-util.c (_gpgme_access): Add forward to normal access.
 1055 	* src/sys-util.h (_gpgme_access): New for posix and w32.
 1056 	* src/w32-io.c (_gpgme_io_spawn): Use _gpgme_crate_process_utf8.
 1057 	* src/w32-util.c (utf8_to_wchar, utf8_to_wchar0): The usual w32 conv.
 1058 	(find_program_in_dir): Use _gpgme_access.
 1059 	(find_program_at_standard_place): Use wchar API and convert to UTF-8.
 1060 	(_gpgme_access): Convert UTF-8 to wchar and use wchar API.
 1061 	(_gpgme_create_process_utf8): Convert UTF-8 to wchar and use wchar API.
 1062 
 1063 	core,w32: Show w32-spawn warning only once.
 1064 	+ commit 937adfdcbb22f715c5a331e5e2d4546ac15a1b7e
 1065 	* src/w32-io.c (_gpgme_io_spawn): Show MessageBox only once.
 1066 
 1067 2019-03-27  Andre Heinecke  <aheinecke@gnupg.org>
 1068 
 1069 	core, w32: Fix format string errors on windows.
 1070 	+ commit 4a4680f8901ecdcb7e8d5ed55f48226ccfccd7c8
 1071 	* src/debug.c (_gpgme_debug): Use gpgrt_vasprintf instead of
 1072 	vfprintf to have a more portable format.
 1073 
 1074 	core: Fix assuan logger-fd hack for windows.
 1075 	+ commit 19a4c4daa2cfd075b181d5131a4b8b4d54714b8c
 1076 	* src/assuan-support.c (my_spawn): Zero is a perfectly fine fd.
 1077 
 1078 2019-03-26  Andre Heinecke  <aheinecke@gnupg.org>
 1079 
 1080 	core,w32,glib: Fix build of w32-glib-io.c.
 1081 	+ commit 213c4bc1eb1f45695cc3955cc722ebb363dcbdd0
 1082 	* src/w32-glib-io.c (_gpgme_io_pipe, _gpgme_io_connect): Do not
 1083 	use TRACE_SUC in a return statement.
 1084 
 1085 2019-03-26  Werner Koch  <wk@gnupg.org>
 1086 
 1087 	Release GPGME 1.13.0.
 1088 	+ commit 1b5a6bf27ac9b2e5a1fc4d5e879bd4901fcad5bb
 1089 	* configure.ac: Bump LT versions.
 1090 	                For C to C33/A22/R0.
 1091 	                For C++ to C15/A9/R0.
 1092 	                For Qt to C10/A3/R3.
 1093 
 1094 2019-03-26  Andre Heinecke  <aheinecke@gnupg.org>
 1095 
 1096 	core: Fix a strtoul to strtol.
 1097 	+ commit 10576dc427b3746e2c3b9bc40efe618a3bd40519
 1098 	* src/assuan-support.c (my_spawn): Fix using strtoul for
 1099 	a long.
 1100 
 1101 	cpp: Fix GenCardKeyInteractor and extend it.
 1102 	+ commit ffdb75217bc09561cf651dab15cd26e0024d89a7
 1103 	* NEWS: Mention interface change.
 1104 	* lang/cpp/src/gpggencardkeyinteractor.cpp
 1105 	(GpgGenCardKeyInteractor::setAlgo): New.
 1106 	(GpgGenCardKeyInteractor::action),
 1107 	(GpgGenCardKeyInteractor::nextState: Handle new interface.
 1108 
 1109 2019-03-25  Andre Heinecke  <aheinecke@gnupg.org>
 1110 
 1111 	core, w32: Add hack to translate diag logger-fd.
 1112 	+ commit 129def87b262241483ba3a8b6771ad6d07c2e3be
 1113 	* src/assuan-support.c (my_spawn): Add hack to
 1114 	mark the logger fd for w32spawn translation.
 1115 
 1116 2019-03-20  Andre Heinecke  <aheinecke@gnupg.org>
 1117 
 1118 	qt: Handle diagnostic audit log for CMS.
 1119 	+ commit 47369569e23482bdd24a136b071192352b1d1347
 1120 	* lang/qt/src/threadedjobmixin.cpp(_detail::audit_log_as_html):
 1121 	Handle CMS audit log.
 1122 
 1123 2019-03-19  Werner Koch  <wk@gnupg.org>
 1124 	    Andre Heinecke  <aheinecke@gnupg.org>
 1125 
 1126 	core: Support GPGME_AUDITLOG_DIAG for gpgsm.
 1127 	+ commit dd21ec997cf4b6ba18538c63c728478110ad1f60
 1128 	* src/engine-gpgsm.c (struct engine_gpgsm): Add fields diag_cb and
 1129 	diagnostics.
 1130 	(close_notify_handler): Close the diag fd on status fd close.
 1131 	Handle diag close.
 1132 	(gpgsm_cancel): Handle diag.
 1133 	(gpgsm_release): Free DIAGNOSTICS.
 1134 	(gpgsm_new): Support the diag feature.
 1135 	(start): Set a handler for the diag fd.
 1136 	(gpgsm_getauditlog): Support GPGME_AUDITLOG_DIAG.
 1137 
 1138 2019-03-13  Andre Heinecke  <aheinecke@gnupg.org>
 1139 
 1140 	cpp: Fix Error::hasSystemError.
 1141 	+ commit c4cc47ee8f0bedc58e58ab416689d7014b0df2e7
 1142 	* lang/cpp/src/context.cpp (Error::hasSystemError): Invert logic to
 1143 	do what it says.
 1144 
 1145 2019-02-28  Werner Koch  <wk@gnupg.org>
 1146 
 1147 	json: Fix cosmetic error in the repl.
 1148 	+ commit 1bdab961c51fc038c33ae8116595aa0213ab1dd5
 1149 	* src/gpgme-json.c (native_messaging_repl): Use correct var with sizeof.
 1150 
 1151 	tests: Let run-verify print the de-vs flag.
 1152 	+ commit b159b2eddd9df5df6cc8f29bd999cf1603c56991
 1153 	* tests/run-verify.c (print_result): Chack is_de_vs.
 1154 	* tests/run-import.c (main): Fix bad parameter for format string.
 1155 
 1156 2019-02-27  Andre Heinecke  <aheinecke@gnupg.org>
 1157 
 1158 	json: Limit recursion depth.
 1159 	+ commit 4a117859e7a512458ab78cfedfae0372805196b1
 1160 	* src/cJSON.c (MAX_DEPTH): New. Maximum recursion depth.
 1161 	(parse_value, parse_array, parse_object): Carry and check
 1162 	depth argument.
 1163 	(cJSON_ParseWithOpts): Initialize depth.
 1164 
 1165 2019-02-21  Andre Heinecke  <aheinecke@gnupg.org>
 1166 
 1167 	cpp: Add ostream operators for import result.
 1168 	+ commit 73b2f40ae5e6881991dea609b0781373b28d7d30
 1169 	* lang/cpp/src/importresult.cpp: Add ostream operators.
 1170 	* lang/cpp/src/importresult.h: Update accordingly.
 1171 
 1172 	cpp: Make GpgME::Data::toKeys really const.
 1173 	+ commit 6175025c822678102c3f089e37952aa84b19a3ec
 1174 	* lang/cpp/src/data.cpp (GpgME::Data::toKeys): Rewind afterards.
 1175 
 1176 2019-02-19  Werner Koch  <wk@gnupg.org>
 1177 
 1178 	core,w32: Fix missing sentinel in dir name builder.
 1179 	+ commit 4c49417cc0dbd7f34269aff00fccafba150af744
 1180 	* src/w32-util.c (_gpgme_get_gpgconf_path): Add NULL top strconcat.
 1181 
 1182 2019-02-11  Andre Heinecke  <aheinecke@gnupg.org>
 1183 
 1184 	tests: Fix memleak in run-threaded.
 1185 	+ commit f8312d7c333193582dcb5816198219b9564023f0
 1186 	* tests/run-threaded.c (verify): Free msg.
 1187 
 1188 2019-02-10  Ben McGinnes  <ben@adversary.org>
 1189 
 1190 	python: examples.
 1191 	+ commit 302d5ef52e095378231efd54677b5c315354ad78
 1192 	* A rather obvious variant of the existing key import examples, except
 1193 	  directed at Mailvelope's keyserver.
 1194 	* Yeah, Werner, I know ... but it exists because I used it and there's
 1195 	  no harm in sharing.
 1196 
 1197 2019-01-30  Ben McGinnes  <ben@adversary.org>
 1198 
 1199 	python: docs.
 1200 	+ commit e005052f4d5b29beda2252f8042dbf5728f5e2aa
 1201 	* Version bump in preparation for whenever GPGME 1.13.0 happens.
 1202 	* Ran the post_installer.py for docs preparation again.
 1203 
 1204 2019-01-27  Ben McGinnes  <ben@adversary.org>
 1205 
 1206 	python: post installer script.
 1207 	+ commit 2de1e599770cdb129b84302d963f65fdd3ddd2a4
 1208 	* Removed auto-generated .texi files from doc/src/ so only the
 1209 	  corrected versions are left.
 1210 	* Which means now it is complete, but with the initial work to expand
 1211 	  it with info file generation later.
 1212 
 1213 	python: post installer docs fix script.
 1214 	+ commit 1e265723653042bc1010b457537b69a2011b43b7
 1215 	* Moved post_installer.py into the examples/howto/ directory.
 1216 	* Added instructions for its use to the Python Bindings HOWTO.
 1217 	* Ran it as intended from the lang/python/ directory in order to both
 1218 	  prove it works and quickly and easily get the updated howto
 1219 	  replicated.  Also to fix all those .texi files.
 1220 
 1221 2019-01-25  Werner Koch  <wk@gnupg.org>
 1222 
 1223 	json: Better use gpgme_free.
 1224 	+ commit ed81892917f47dddc23aa99d88733e3f8f344256
 1225 	* src/gpgme-json.c (subkey_to_json): here
 1226 
 1227 	json: Fix minor memory leaks.
 1228 	+ commit 7f2423371964263784252cf839269023b6573bd2
 1229 	* src/gpgme-json.c (interactive_repl): Fix memleak.
 1230 	(subkey_to_json): Ditto
 1231 	(op_config): Delay init of j_comps to avoid a leak on error.
 1232 
 1233 2019-01-16  NIIBE Yutaka  <gniibe@fsij.org>
 1234 
 1235 	build: With LD_LIBRARY_PATH defined, use --disable-new-dtags.
 1236 	+ commit 66bcb8acb2452cf19318023ed0ff1ea7d7bb8439
 1237 	* configure.ac (LDADD_FOR_TESTS_KLUDGE): New for --disable-new-dtags.
 1238 	* tests/Makefile.am (LDADD): Use LDADD_FOR_TESTS_KLUDGE.
 1239 	* lang/cpp/tests/Makefile.am, lang/qt/tests/Makefile.am: Likewise.
 1240 	* tests/gpg/Makefile.am, tests/gpgsm/Makefile.am: Likewise.
 1241 	* tests/json/Makefile.am, tests/opassuan/Makefile.am: Likewise.
 1242 
 1243 2019-01-15  Andre Heinecke  <aheinecke@gnupg.org>
 1244 
 1245 	tests: Add diagnostic example to run-import.c.
 1246 	+ commit ce327f994a2888b807b63cf202ddcecc3fb9c685
 1247 	* tests/run-import.c (main): Show diagnostics in verbose mode.
 1248 
 1249 2019-01-09  Andre Heinecke  <aheinecke@gnupg.org>
 1250 
 1251 	qt: Use tofu conflict test keys without expiry.
 1252 	+ commit 66376f3e206a1aa791d712fb8577bb3490268f60
 1253 	* lang/qt/tests/t-tofuinfo.cpp: Use new test keys without
 1254 	expiry.
 1255 
 1256 2019-01-02  Ben McGinnes  <ben@adversary.org>
 1257 
 1258 	python docs: post installer.
 1259 	+ commit a0dbdfebbb60f0d34dd16894803e95221d8be668
 1260 	* Merging post installer script.
 1261 	* Included ammended Sphinx config file to try to reduce the
 1262 	  auto-generated EPUB validation failures it produces.
 1263 
 1264 	python: post installer doc fix script.
 1265 	+ commit a2e7c863c821ca035f1e3f8077bdae3b0f81f5eb
 1266 	* Got rid of the bash bit in the comments.
 1267 	* Made the final printed instructions far more obvious.
 1268 
 1269 	python: examples.
 1270 	+ commit 207d4289d84971d11ec1824fbe7d4a2be63b56e4
 1271 	* Fixed inter-edit.py so it will actually work now.
 1272 	* made 3 others executable.
 1273 	* Fixed the semantics of assuan.py's instructions.
 1274 
 1275 2018-12-26  Ben McGinnes  <ben@adversary.org>
 1276 
 1277 	python: examples.
 1278 	+ commit d406471d4bf9c79140e4bc91de7d316ec7465892
 1279 	* Fixed inter-edit.py so it will actually work now.
 1280 	* made 3 others executable.
 1281 	* Fixed the semantics of assuan.py's instructions.
 1282 
 1283 2018-12-24  Ben McGinnes  <ben@adversary.org>
 1284 
 1285 	python: docs processing.
 1286 	+ commit ef9355c2fe8f81ccd73e0ed45ce33e925928f8e1
 1287 	* Added some EPUB specific config options to the Sphinx config file
 1288 	  which might help reduce some of Sphinx's more stupid default errors
 1289 	  with EPUB validation.
 1290 	* Added lang/python/post_installer.py script for automating the
 1291 	  generation of .texi and .rst "source" files from the real source
 1292 	  files written in Org mode.  Includes recreating the Sphinx Makefile
 1293 	  which is excluded due to the m4 toolchain in parent directories, it
 1294 	  also handles the rewriting of the reST index file properly and
 1295 	  rewrites the .texi files so they don't impale themselves on Unicode.
 1296 
 1297 2018-12-21  Ben McGinnes  <ben@adversary.org>
 1298 
 1299 	python: docs.
 1300 	+ commit 06bca0eaa8de8405fafc892ab7864990f8853bcf
 1301 	* Found a bug in org-mode's export to texinfo function which will
 1302 	  require either manual modification of each file or a customs sed run
 1303 	  over the generated files for all updates.
 1304 	* Manually updated the current files for now, but will need to add
 1305 	  some post-install processing scripts for future use (I already have
 1306 	  some of these for my specific setup, they just need to be made a
 1307 	  little more generic and platform independent for here).
 1308 
 1309 	python: groups example.
 1310 	+ commit dc5f416351e47bfafb46a53f8fd8435dd6c231ba
 1311 	* Tightened code a little more.
 1312 
 1313 2018-12-17  Ben McGinnes  <ben@adversary.org>
 1314 
 1315 	python docs: house keeping.
 1316 	+ commit daded4925489d306f6a65271c2f55101b331187c
 1317 	* Dropped the ASCII copyright line, since even MS have conceded their
 1318 	  battle against Unicode enough to load UTF-8.
 1319 	* Fixed the drafts section since there will be less need of multiple
 1320 	  output format testing from next year.
 1321 
 1322 2018-12-17  Werner Koch  <wk@gnupg.org>
 1323 
 1324 	core: Silence newer compiler warnings.
 1325 	+ commit 8b41fb08f00f01fe0dd8b2b5455d3422d97ddc60
 1326 	* configure.ac: Add -Wno-format-truncation and
 1327 	  -Wno-sizeof-pointer-div.
 1328 	* src/b64dec.c (_gpgme_b64dec_proc): Add fallthrough annotation.
 1329 	* src/cJSON.c (parse_string): Ditto.
 1330 	* src/gpgme-json.c (main): Ditto.
 1331 
 1332 2018-12-16  Ben McGinnes  <ben@adversary.org>
 1333 
 1334 	python: howto and examples.
 1335 	+ commit fbc298dc1b0fbb51ebc92a9d56c45b78c5e9989d
 1336 	* Tightening up both the documentation and some of the example code.
 1337 
 1338 2018-12-13  Ben McGinnes  <ben@adversary.org>
 1339 
 1340 	python: examples bugfix.
 1341 	+ commit 4308d172816f3172454fac1dc0771014056764a1
 1342 	* Fixed a bug in the ProtonMail importers (pmkey-*.py) where multiple
 1343 	  keys found for a username would always result in the last email
 1344 	  address checked being returned in the printed output for all located
 1345 	  keys.
 1346 
 1347 2018-12-12  Ben McGinnes  <ben@adversary.org>
 1348 
 1349 	python: new example script.
 1350 	+ commit 3849b60e22432ef33f0d1d39b88e07922ad7779e
 1351 	* Though Keybase really should not be encouraged due to
 1352 	  disengenuosness and FUD emanating from that souce, this new script
 1353 	  will obtain a key hosted on that site and import it when supplied
 1354 	  with the keybase username.
 1355 
 1356 	python: what's new summary.
 1357 	+ commit 3ca7cf07f5d3ec4af89e69ed13ea7ab701e33c03
 1358 	* Added a little more detail to the what's new section.
 1359 
 1360 	python: advanced howto example.
 1361 	+ commit 64758a0dac4c7c3b312dccbc1661813e2c3e2888
 1362 	* Added Cython requirement to this advanced use case.
 1363 
 1364 	python: howto examples equirements.
 1365 	+ commit 4c324ac1beb710714262af0040dea21232ba87d9
 1366 	* Added small requirements.txt file for additional modules not in the
 1367 	  standard python library and not including the bindings themselves
 1368 	  and not including Cython, which is for more advanced examples.
 1369 
 1370 2018-12-10  Ben McGinnes  <ben@adversary.org>
 1371 
 1372 	python: hkp key importer.
 1373 	+ commit 772b5aae24a2a3a996f399024845de612192fc2f
 1374 	* Tweaked it slightly to avoid repetition of key searches when there
 1375 	  is only one search pattern to check (i.e. usually a single key ID or
 1376 	  fingerprint).
 1377 
 1378 	python: HKP search and import updates.
 1379 	+ commit 2e7a14c9b369096775a035091c197f2d438142a0
 1380 	* Tweaked the code again so that it can also handle the cases where
 1381 	  someone has included a hexadecimal string in their user ID.
 1382 	* Updated the HOWTO to match.
 1383 	* Exported to .rst and .texi.
 1384 
 1385 	python: key import via HKP example.
 1386 	+ commit fe7e01d164b64ad5e7f65cb80e4bf13f06d8d3ef
 1387 	* Fixed the logic used to search for any given pattern.
 1388 	* Added a sensible method of checking whether a pattern is a key ID or
 1389 	  fingerprint.
 1390 
 1391 	python: docs updates.
 1392 	+ commit 7c63bfe4ab434b61a871aec4bc1d0a05b4c068e6
 1393 	* Multiple updates, expanding on the Windows installation issues.
 1394 	* Also adding to the new maintenance mode reference document.
 1395 	* Includes content relating to the resolution of T4271 and T4191.
 1396 
 1397 2018-12-07  Andre Heinecke  <aheinecke@intevation.de>
 1398 
 1399 	core: Fix ERR_INV_ARG check in genkey_start.
 1400 	+ commit 78f6291a3bf56769f53af66fe39718ddd2d74bf2
 1401 	* src/genkey.c (gpgme_op_genkey_start): Fix check for
 1402 	parms.
 1403 
 1404 2018-12-05  Ben McGinnes  <ben@adversary.org>
 1405 
 1406 	python: examples.
 1407 	+ commit dc5600d306f808767068bad5117232fc3d35ac43
 1408 	* cut some of then poor len usage.
 1409 
 1410 2018-12-05  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 1411 
 1412 	python: overhaul logic of Context.decrypt()
 1413 	+ commit 65c28da4e49a8778607fdcf6f51a840166616d9f
 1414 	* lang/python/src/core.py (Context.decrypt): simplify and clarify the
 1415 	logic behind handling verify=False.
 1416 	* lang/python/tests/t-decrypt.py: ensure that we test verify=False
 1417 
 1418 	python: ctx.decrypt() has problematic error handling.
 1419 	+ commit 878a0ad01265dba5b06429276bdcc5c21fedb6f5
 1420 	* lang/python/src/core.py (Context.decrypt): document odd
 1421 	error-handling behavior as a potential problem to be addressed.
 1422 
 1423 	python: Clarify the meaning of ctx.decrypt(verify=[])
 1424 	+ commit 5d8b4f74891af22379899ccee9e8ee849144eee3
 1425 	* lang/python/src/core.py (Context.decrypt): docstring clarification
 1426 	of what it means to pass an empty list to the verify argument.
 1427 
 1428 	python: gpg.Context.decrypt verify_sigs and sink_result are bools.
 1429 	+ commit b8fa76a30c02afc3d7f6aad0a59bb613d1b711fc
 1430 	Both of these function-internal variables are never used for anything
 1431 	other than a binary state.  Implement them as the booleans they are.
 1432 	Otherwise, casual readers of the code might think that they're
 1433 	supposed to represent something other than a flag (e.g. "verify_sigs"
 1434 	could mean "the signatures to verify", and "sink_result" could mean
 1435 	"the place where we sink the result").
 1436 
 1437 	Signed-Off-By: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
 1438 
 1439 	python: clarify documentation for verify argument for Context.decrypt()
 1440 	+ commit 49af6d76e55f348c7b3cece756d6ac643d17ee68
 1441 	It's easy to miss that verify can take a list of keys.  Make it more
 1442 	obvious to the average python dev who reads docstrings.
 1443 
 1444 	python: simplify Context.decrypt()
 1445 	+ commit 2491e6f92f5b562cbd6f7f931df630cb106f6688
 1446 	In the course of trying to address https://dev.gnupg.org/T4271, i
 1447 	discovered that gpg.Context.decrypt() has a bit of superfluous code.
 1448 	This changeset is intended to simplify the code without making any
 1449 	functional changes.
 1450 
 1451 2018-12-05  Ben McGinnes  <ben@adversary.org>
 1452 
 1453 	python: windows c and cython.
 1454 	+ commit 1dffdcc6e9d249111eb8761d29ef3b35b32a8c3d
 1455 	* added warning that he Windows C runtime issues will also affect use
 1456 	  with Cython and that relying on binary installers would remove that
 1457 	  possible use case.
 1458 
 1459 2018-12-04  Ben McGinnes  <ben@adversary.org>
 1460 
 1461 	python: sphinx modification.
 1462 	+ commit c8a04af676d981b42172c9bdad82eb83f91c8ce6
 1463 	* The make.bat file incorrectly triggers the trailing whitespace check
 1464 	  in the git repo (it doesn't actually have any trailing whitespace,
 1465 	  but triggers the error on every line).
 1466 	* Will need to add a script to handle future org-mode conversions of
 1467 	  the index page anyway, so will get that script to deal with this
 1468 	  problem too by generating the make.bat file if the platform is
 1469 	  detected as Windows.
 1470 
 1471 	python: Sphinx support.
 1472 	+ commit 6d8823b81162c18406d40ec59bd252cfdf1df648
 1473 	* Added framework from sphinx-quickstart to lang/python/doc/rst/ so
 1474 	  that Python developers already using Sphinx can use the generated
 1475 	  reST files with existing documentation systems.
 1476 	* Note that when generating source files from Org-mode, the index page
 1477 	  will require manual intervention to match the Sphinx requirements.
 1478 
 1479 	python: docs update.
 1480 	+ commit 8613727f1ee985c3cfa2c815523312914f033ffd
 1481 	* Expanded the section on issues with Windows installations, with
 1482 	  greater detail of which versions of Visual Studio are needed
 1483 	  depending on which version of CPython is to be used.
 1484 	* Included a recommendation which is a bit harsh without being totally
 1485 	  prickish.
 1486 	* Updated all files to not link to author's key or related data in
 1487 	  order to make them all consistent with the changes in commit
 1488 	  649b19688132dd315e361c0f5b63ba6d8f45996d.
 1489 
 1490 2018-12-04  NIIBE Yutaka  <gniibe@fsij.org>
 1491 
 1492 	build: Remove --with-*-prefix, which is no need any more.
 1493 	+ commit 5dbac555f23bcec4adcfd82de61878f0f23ff272
 1494 	* autogen.rc (configure_opts): Remove --with-*-prefix.
 1495 
 1496 2018-12-03  Andre Heinecke  <aheinecke@intevation.de>
 1497 
 1498 	qt,cpp: Consistently use nullptr and override.
 1499 	+ commit 1d31420650bfa7ca1d1503cc7431b3360e86022c
 1500 	* lang/cpp/src/Makefile.am, lang/qt/src/Makefile.am (AM_CPPFLAGS):
 1501 	Add suggest-override and zero-as-null-pointer-constant warnings.
 1502 
 1503 	* lang/cpp/src/*, lang/qt/src/*: Consistenly use nullptr and override.
 1504 
 1505 2018-11-30  Ben McGinnes  <ben@adversary.org>
 1506 
 1507 	python: documentation fixes.
 1508 	+ commit 2e3a681d0c35bbf6db584fedc9d7f0a010430b51
 1509 	* Typographic and whitespace error correction pertaining to the
 1510 	  previous update.
 1511 
 1512 	python: documentation.
 1513 	+ commit 3b056a01a252bb72df5744409ba494e1a6e54d31
 1514 	* Added long description to setup.py.in.
 1515 	* Added maintenance mode details with clarification for what type of
 1516 	  things would be a bug as far as MM is concerned and what wouldn't
 1517 	  be.
 1518 	** Includes a not too subtle hint directed towards the donations page.
 1519 	* Miscellaneous tightening of documentation.
 1520 
 1521 2018-11-28  Andre Heinecke  <aheinecke@intevation.de>
 1522 
 1523 	tests, json: Make them run on debian stable.
 1524 	+ commit a9cfb6dad8ac60543bcb06f4d0515f4a64ad897a
 1525 	* tests/json/t-json.c (main): Relax version check a bit.
 1526 
 1527 2018-11-26  Ben McGinnes  <ben@adversary.org>
 1528 
 1529 	python docs: checking key signatures.
 1530 	+ commit 1c92f3ff55ad0cdda06d05ad0a83193e3a147b7e
 1531 	* Added instructions for checking key certifications or key
 1532 	  signatures (depending on preferred terminology).
 1533 	* Added pendulum module to recommended installations, but not to
 1534 	  requirements.
 1535 
 1536 2018-11-22  Ben McGinnes  <ben@adversary.org>
 1537 
 1538 	python: docs update.
 1539 	+ commit c87155e6eba2e97e4e6c6ee7e2591088a5489556
 1540 	* Added documentation for the new methods added to gpgme.version.
 1541 	* Removed the Flask based advanced use case from the what-is-new
 1542 	  section as that type of code will not be added here.
 1543 
 1544 	python: version as integers.
 1545 	+ commit de6bb23279796b9ae4dc369d58591cb75f818684
 1546 	* lang/python/version.py.in: added gpg.version.versionintlist
 1547 	* If gpg.version.versionintlist[2] ever returns -1 then there's a
 1548 	  serious problem with the build and it should be lodged as a bug if
 1549 	  it's repeatable.  Seeing this should never happen, but checking for
 1550 	  it is better than not doing so.
 1551 
 1552 2018-11-19  Werner Koch  <wk@gnupg.org>
 1553 
 1554 	core: Fix format string errors in w32-io.c and use of TRACE_SUC.
 1555 	+ commit b182838f71d8349d6cd7be9ecfb859b893d09127
 1556 	* src/w32-io.c: Fix use of TRACE_SUC.  Fix some format strung errors.
 1557 
 1558 2018-11-19  Ben McGinnes  <ben@adversary.org>
 1559 
 1560 	python: import type.
 1561 	+ commit fd34415bdd57332424bd5a98d279e2331678a2fb
 1562 	* Fixed bug T4242 and tested that dropping "Import" in favour of
 1563 	  "import_type" does indeed work just fine.
 1564 
 1565 	python: import constant.
 1566 	+ commit f773ad392da57e6be4ade93c44baa5d2057c40b6
 1567 	* lang/python/src/constants/__init__.py: dropped use of Import
 1568 	  capitalisation and renamed lang/python/src/constants/import.py to
 1569 	  lang/python/src/constants/import_type.py to address bug T4242.
 1570 	* lang/python/doc/src/gpgme-python-howto: minor docs updates.
 1571 
 1572 2018-11-16  Werner Koch  <wk@gnupg.org>
 1573 
 1574 	core: Protect the trace macros for fun and profit.
 1575 	+ commit 7a1e7006d06fdbab86ea79a197c316744b09d933
 1576 	* src/debug.h: Protect macros using.
 1577 	(_trace_err, _trace_sysres, _trace_syserr): New helper inline
 1578 	functions.
 1579 
 1580 	core: Fix a LF problem in the new debug fucntion.
 1581 	+ commit 7eda50a673d15320022375360fd220e8381b69ab
 1582 	* src/debug.c (_gpgme_debug): Print a LF for an empty FORMAT unless we
 1583 	are in legacy mode.
 1584 
 1585 	core: Remove old debug helper function.
 1586 	+ commit 94d274a1a33c6fb30981290b127f2c4babc27245
 1587 	* src/debug.c (_gpgme_debug): Remove.
 1588 	(_gpgme_debugf): Rename to _gpgme_debug.
 1589 
 1590 	core: Simplify the trace maros by using variadics.
 1591 	+ commit 5857491a2aa7d4975100d90f1ad62c08aa345e3e
 1592 	* src/debug.h (TRACE_BEG, TRACE_LOG, TRACE_SUC): Use variadic macros
 1593 	and remove the TRACE_BEG1 et al.  Change all users to always pass a
 1594 	format string.
 1595 	(TRACE): Ditto.
 1596 	* src/debug.c (_gpgme_debugf): New.
 1597 	* configure.ac <GCC>: Add -Wno-format-zero-length.
 1598 
 1599 2018-11-15  Andre Heinecke  <aheinecke@intevation.de>
 1600 
 1601 	tests: Add run-threaded for multithread tests.
 1602 	+ commit d0402f886b720d03369887c807581bd980ee70cf
 1603 	* tests/Makefile.am (run-threaded): Add.
 1604 	* tests/run-threaded.c: New.
 1605 
 1606 	tests,json: Clean openpgp-revocs.d.
 1607 	+ commit 004e2cad2f26250cd010684f11dc187f08e6f9e1
 1608 	* tests/json/clean-local: Remove revocs.d
 1609 
 1610 	tests,json: Move version check into t-json.
 1611 	+ commit 40d962b43a183070ba8602cac1e83f2292ebf2c3
 1612 	* tests/gpg/t-support.h (check_gpg_version, compare_versions),
 1613 	(parse_version_string, parse_version_number): Remove version
 1614 	check code.
 1615 	* tests/json/t-json.c (check_gpg_version, compare_versions),
 1616 	(parse_version_string, parse_version_number): Add.
 1617 
 1618 2018-11-14  Andre Heinecke  <aheinecke@intevation.de>
 1619 
 1620 	tests,json: Add sig-notations test.
 1621 	+ commit d3dae4a445d950c94c952ddf54e534ef71675bd1
 1622 	* tests/json/t-sig-notations.in.json,
 1623 	tests/json/t-sig-notations.out.json: New
 1624 	* tests/json/Makefile.am (EXTRA_DIST): Add files.
 1625 	* tests/json/t-json.c: Register it.
 1626 
 1627 	tests,json: Fix distcheck.
 1628 	+ commit def030e843bd4576597272abe9fe12f846066576
 1629 	* tests/json/Makefile.am (EXTRA_DIST): Add inital and final scripts.
 1630 	(t_json_SOURCES): Don't use cJSON.o as source.
 1631 
 1632 	tests,json: Add more tests.
 1633 	+ commit d0087d45f0207bf82a4f078d972c28c4d1cd2690
 1634 	* t-config-opt.in.json,
 1635 	 t-config-opt.out.json,
 1636 	 t-import.in.json,
 1637 	 t-import.out.json,
 1638 	 t-sign.in.json,
 1639 	 t-sign.out.json: New.
 1640 
 1641 	tests,json: Add missing files and chunking test.
 1642 	+ commit 88b7221eb737a3102ec61ea385990b7ea7ef2b30
 1643 	* tests/json/Makefile.am, tests/json/final.test,
 1644 	tests/json/initial.test: New.
 1645 	* tests/json/t-chunking.in.json, tests/json/t-chunking.out.json:
 1646 	New test.
 1647 	* tests/json/t-json.c: Register new test.
 1648 
 1649 	tests,json: Fix match if the first child differs.
 1650 	+ commit 27ca12e815c0a582d357641a04b889d648b8766e
 1651 	* tests/json/t-json.c (test_contains): Try all siblings of
 1652 	the haystack child.
 1653 
 1654 	tests,json: Add the bulk of tests.
 1655 	+ commit dd4b80a5f640232bb44eb825ff5a74ec295fad10
 1656 	* t-json.c (tests): Register new tests.
 1657 	* t-createkey.in.json,
 1658 	  t-createkey.out.json,
 1659 	  t-decrypt-verify.in.json,
 1660 	  t-decrypt-verify.out.json,
 1661 	  t-decrypt.in.json,
 1662 	  t-decrypt.out.json,
 1663 	  t-delete.in.json,
 1664 	  t-delete.out.json,
 1665 	  t-encrypt-sign.in.json,
 1666 	  t-encrypt-sign.out.json,
 1667 	  t-encrypt.in.json,
 1668 	  t-encrypt.out.json,
 1669 	  t-export-secret-info.in.json,
 1670 	  t-export-secret-info.out.json,
 1671 	  t-export.in.json,
 1672 	  t-export.out.json,
 1673 	  t-json.c,
 1674 	  t-keylist-secret.in.json,
 1675 	  t-keylist-secret.out.json,
 1676 	  t-keylist.in.json,
 1677 	  t-keylist.out.json,
 1678 	  t-verify.in.json,
 1679 	  t-verify.out.json,
 1680 	  t-version.in.json,
 1681 	  t-version.out.json: New.
 1682 
 1683 	tests,json: Add wildcard string matching.
 1684 	+ commit 9a31fdcb11d04d47dfcc38a8409b84436c549108
 1685 	* tests/json/t-json.c (test_contains): When searching for "*" accept
 1686 	every string.
 1687 
 1688 	tests,json: Skip tests for older GnuPG versions.
 1689 	+ commit e55e467d5ffb32c428566a876616d309ef2d15cd
 1690 	* tests/json/t-json.c (main): Skip if version is not at least
 1691 	2.2.0
 1692 
 1693 	tests,json: Suffix .json to test pattern.
 1694 	+ commit ca2e2b3d6973b1f942571ba65bd8b57153847777
 1695 	* tests/json/t-config.in, tests/json/t-config.out: Renamed.
 1696 	* t-json.c (run_test): Use new naming pattern.
 1697 
 1698 	tests,gpg: Add version check hlp to t-support.
 1699 	+ commit 5b61c092e7444749b08e39ac5aa9fb0818e1a076
 1700 	* t-support.h (parse_version_number, parse_version_string)
 1701 	(compare_versions): New. Copy&Paste from src/version.c
 1702 	(check_gpg_version): New helper to check for a gpg version.
 1703 
 1704 	tests,json: Improve verbose mode and add verbose 2.
 1705 	+ commit 9933641cce595ba308d0f3a1f3ae8f13a9743dd1
 1706 	* tests/json/t-json.c (main): Handle multiple verbose args.
 1707 	(test-contains): Improve verbose output
 1708 
 1709 	tests,json: Fix and improve t-json.
 1710 	+ commit 3e5684d99b881787f9739e53fd8e8c22eadc2146
 1711 	* tests/json/t-json.c (run_test): Terminate argv array correctly.
 1712 	(run_test): Note and handle empty response.
 1713 
 1714 	tests: Add json testrunner.
 1715 	+ commit 0c31837766e016227b3c8dfd44c476949cd4741e
 1716 	* configure.ac: Configure makefile.
 1717 	* tests/Makefile.am: Run json tests if gpg tests are run.
 1718 	* tests/json/t-json.c: New testrunner for json tests.
 1719 	* tests/json/t-config.in, tests/json/t-config.out: First test.
 1720 
 1721 2018-11-13  NIIBE Yutaka  <gniibe@fsij.org>
 1722 
 1723 	build: Update gpg-error.m4 and libassuan.m4.
 1724 	+ commit c4aa4af50f3102b251cfff9c9755e2dde8d1bd1f
 1725 	* m4/gpg-error.m4: Update from master.
 1726 	* m4/libassuan.m4: Update from master.
 1727 
 1728 2018-11-12  NIIBE Yutaka  <gniibe@fsij.org>
 1729 
 1730 	Fix the previous commit.
 1731 	+ commit 895176f42af3a1b13614f15dd537a426bb4ac16a
 1732 
 1733 
 1734 	build: Make gpgme.m4 use gpgrt-config with *.pc.
 1735 	+ commit 60828a505a1c74fd34476c181df2a588ea6f9c83
 1736 	* src/gpgme.m4 (_AM_PATH_GPGME_CONFIG): Use gpgrt-config with gpgme.pc
 1737 	when possible.
 1738 	(AM_PATH_GPGME_GLIB): Likewise with gpgme-glib.pc.
 1739 
 1740 	build: Provide gpgme-glib.pc too.
 1741 	+ commit a76e145a1057e11953b71f804cf3a499c3ad5362
 1742 	* src/gpgme-glib.pc.in: New.
 1743 	* src/gpgme.pc.in (avail_lang): Remove.
 1744 
 1745 	build: Provide gpgme.pc, generated by configure.
 1746 	+ commit f3e60521899e6126229b6efedc9f011b84122e11
 1747 	* configure.ac: Generate src/gpgme.pc.
 1748 	* src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New.
 1749 	(EXTRA_DIST): Add gpgme.pc.in.
 1750 	* src/gpgme.pc.in: New.
 1751 	* src/gpgme-config.in: Use variables.
 1752 
 1753 2018-11-08  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 1754 
 1755 	spelling: fix misspellings.
 1756 	+ commit 2557d0ae6ff0336b041129b7bf5c1e3a8c20a805
 1757 
 1758 
 1759 2018-11-06  Ben McGinnes  <ben@adversary.org>
 1760 
 1761 	docs: python bindings.
 1762 	+ commit d0a5caf73c2d6b73dd043f62574c31946e4f347d
 1763 	* Continued restructuring as part of moving beyond mere;y the HOWTO
 1764 	  file.
 1765 	* Generated the alternative source files for reST and Texinfo.
 1766 	* Fixed some errors and updated links after moving the what's new
 1767 	  section to two new files (yes, two).
 1768 
 1769 	python examples: another importer.
 1770 	+ commit 0cb625da84d7e5deeacad113c404a8bc2154c8e7
 1771 	* Fixed a similar type of bug with the non-protonmail importer.
 1772 
 1773 	python examples: protonmail hkp scripts.
 1774 	+ commit 1b9d30db089e9de3ef859195ad58d2164a0231a0
 1775 	* fixed a bug in the import try statement for both versions.
 1776 
 1777 2018-11-05  Werner Koch  <wk@gnupg.org>
 1778 
 1779 	gpg: Avoid error diagnostics with --override-session-key.
 1780 	+ commit bded8ebc59c7fdad2617f4c9232a58047656834c
 1781 	* src/engine-gpg.c (gpg_decrypt): Add --no-keyring.
 1782 
 1783 2018-11-03  Ben McGinnes  <ben@adversary.org>
 1784 
 1785 	docs: typo.
 1786 	+ commit 13e09bd21a531b448f2f34b1f075315502b76fb6
 1787 	* lang/python/doc/src/gpgme-python-howto: s/Revokinging/Revoking/g
 1788 
 1789 2018-11-02  Werner Koch  <wk@gnupg.org>
 1790 
 1791 	w32: Fix a few compiler warnings.
 1792 	+ commit 5262ce0c815193fc901b00a9b4132925ba672df7
 1793 	* src/debug.h (TRACE_SYSERR_NR): New.
 1794 	* src/w32-io.c: Fix compiler warnings.
 1795 
 1796 	w32: Log all errors from CloseHandle and WFSO in w32-io.
 1797 	+ commit ed3f5ad760a28566fa2571e0c7392467bfc3770d
 1798 	* src/w32-io.c (close_handle, _close_handle): New macro and function;
 1799 	use in place of all CloseHandle calls.
 1800 	(wait_for_single_object, _wait_for_single_object): Likewise.
 1801 
 1802 	w32: Don't use CloseHandle on an arbitrary integer.
 1803 	+ commit 4faa0ccf58c7a0f64f51dcbc8466add660080414
 1804 	* src/assuan-support.c (my_waitpid): Do not close the PID = it is not
 1805 	a handle.
 1806 
 1807 	w32: Revamp the closing of system objects.
 1808 	+ commit da89528ac39b687bfbed2209ca2637e3bd8e0ac5
 1809 	* src/w32-io.c (hddesc_t): New.
 1810 	(reader_context_s, writer_context_s): Replace file_sock and file_hd by
 1811 	the hddesc_t hdd.
 1812 	(fd_table): Ditto.  Add want_reader and want_writer.
 1813 	(hddesc_lock): New lock variable.
 1814 	(new_hddesc, ref_hddesc): New.
 1815 	(release_hddesc): New.
 1816 	(reader, writer): Call release_hddesc.
 1817 	(create_reader, create_writer): Change for new hddesc scheme.
 1818 	(destroy_reader, destroy_writer): Replace closing by a call to
 1819 	release_hddesc.
 1820 	(_gpgme_io_pipe): Change for new hddesc scheme.
 1821 	(_gpgme_io_close): Ditto.
 1822 	(_gpgme_io_dup): Ditto.  Use want_reader and want_writer.
 1823 	(_gpgme_io_socket): Change for new hddesc scheme.
 1824 
 1825 	core: Print a dump of the I/O data only at level 8.
 1826 	+ commit 337c10825525d4084f3f437fde5af3806707e6a4
 1827 	* src/debug.h (TRACE_SUC3): New.
 1828 	(TRACE_LOGBUFX): New.
 1829 	* src/posix-io.c: Use TRACE_LOGBUFX instead of TRACE_LOGBUF.
 1830 	* src/w32-glib-io.c: Ditto.
 1831 
 1832 	w32: Fix and improve CancelSynchronousIo use.
 1833 	+ commit acef4f775f273bbef63bc81afbad8feaabc7414e
 1834 	* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Fix name of DLL
 1835 	and print trace info only on error.
 1836 
 1837 2018-11-01  Werner Koch  <wk@gnupg.org>
 1838 
 1839 	w32: Use CancelSynchronousIo in destroy_reader.
 1840 	+ commit 63ba09b541dabbe838253926896e721cb9be564a
 1841 	* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): New.
 1842 	* src/w32-io.c (destroy_reader): Use it here.
 1843 
 1844 	w32: Merge all the object tables of w32-io into one.
 1845 	+ commit 338e9edfdb9239f1c9d4409f6d08d79a9d6f285b
 1846 	* src/w32-io.c (fd_table_size): New.  Used in most places instead of
 1847 	the MAX_SLAFD constant.
 1848 	(reader_table, writer_table, notify_table): Merge them into ...
 1849 	(fd_table): this table.  Chnage all affected code to take just one
 1850 	lock.
 1851 
 1852 2018-10-31  Werner Koch  <wk@gnupg.org>
 1853 
 1854 	w32: Remove unused arg from two functions.
 1855 	+ commit 79fc7c0fe825014e75bb825c4966a04a22e78254
 1856 	* src/w32-io.c (find_reader, find_writer): Remove unused start_it
 1857 	arg.  It is always passed as true.  Change callers.
 1858 
 1859 	w32: Remove all support for WindowsCE.
 1860 	+ commit 3c04dea3ecebed35208f6b631b2e8b04222ea432
 1861 	* configure.ac: Remove WindwosCE support.
 1862 	* contrib/: Remove all; it was only used for WindowsCE.
 1863 	* src/w32-ce.c, src/w32-ce.h: Remove files.
 1864 	* src/Makefile.am (system_components): Remove these files.
 1865 	* src/ath.c, src/ath.h: Remove W32CE support.
 1866 	* src/data-compat.c (gpgme_data_new_from_filepart): Ditto.
 1867 	(gpgme_data_new_from_file): Ditto.
 1868 	* src/debug.c (debug_init, _gpgme_debug): Ditto.
 1869 	* src/gpgme-tool.c (gpgme_server): Ditto.
 1870 	(main): Ditto.
 1871 	* src/priv-io.h: Do not include w32-ce.h.
 1872 	* src/util.h: Remove WindowsCE support.
 1873 	* src/w32-io.c: Ditto.
 1874 	* src/w32-util.c: Ditto.
 1875 	* src/debug.h (TRACE_SUC4): New.
 1876 
 1877 	w32: Remove cruft in w32-io from WindowsME times.
 1878 	+ commit 2e07d4f89a26bb56a55b2743d39fb37532028ffd
 1879 	* src/w32-io.c (set_synchronize): Remove.
 1880 	(create_reader, create_writer): No need for set_synchronize.
 1881 
 1882 2018-10-30  Ben McGinnes  <ben@adversary.org>
 1883 
 1884 	docs: python docs restructure.
 1885 	+ commit 78be1e2f543667576a49286476e7d66a707dd17e
 1886 	* Moved the what's new section out of the HOWTO (mostly), in
 1887 	  anticipation of expanding the docs to be more than merely a HOWTO.
 1888 
 1889 	docs: python.
 1890 	+ commit d5c22966d5bf397cccfa171095885cd207ef6ae3
 1891 	* dropped the ".org" extension and added a mode line for each file as
 1892 	  this will make scripting format conversions a lot easier.
 1893 
 1894 2018-10-30  Werner Koch  <wk@gnupg.org>
 1895 
 1896 	w32: Fix previous commit.
 1897 	+ commit 9eef23fcf39f2b2eb2645afd31a79ba1286d9885
 1898 	* src/w32-io.c (_gpgme_io_spawn): Move freeing of TMP_NAME behind its
 1899 	use in an error handling.
 1900 
 1901 2018-10-29  Andre Heinecke  <aheinecke@intevation.de>
 1902 
 1903 	core,w32: Fix memleak of tmp_name in w32-io.
 1904 	+ commit 7a1b58045f980c4df76daf225a2a1b604e8604d2
 1905 	* src/w32-io.c (_gpgme_io_spawn): Free tmp_name.
 1906 
 1907 	tests: Add repeat argument to run-verify.
 1908 	+ commit 681525be003433728d127303d40712803b70cb9c
 1909 	* tests/run-verify.c (main): Add repeat argument.
 1910 
 1911 	core: Do not crash if CMS plaintext is ignored.
 1912 	+ commit 8f27511862cabac8fa1dd8f883cb78faebc05ef6
 1913 	* src/engine-gpgsm.c (gpgsm_verify): Fix handling both
 1914 	plaintext and signed_text as NULL.
 1915 
 1916 	cpp,tests: Add another test runner.
 1917 	+ commit 62c736ba76a19d3b41af69e1f340a53b80f13fe0
 1918 	* lang/cpp/tests/run-verify.cpp: New.
 1919 	* lang/cpp/tests/Makefile.am: Update accordingly.
 1920 
 1921 2018-10-25  Andre Heinecke  <aheinecke@intevation.de>
 1922 
 1923 	cpp: Add some convenience functions.
 1924 	+ commit 05a0e97f5c12c06082fbeab0fba6f86ddbfbe6b2
 1925 	* lang/cpp/src/context.cpp (Context::create): New.
 1926 	* lang/cpp/src/context.h: Update accordingly.
 1927 	* lang/cpp/src/key.cpp, lang/cpp/src/key.h:
 1928 	(Key::isBad, Subkey::isBad, UserID::isBad)
 1929 	(UserID::Signature::isBad): Add shorthand for the isX checks.
 1930 	* NEWS: Mention it.
 1931 
 1932 2018-10-23  Ben McGinnes  <ben@adversary.org>
 1933 
 1934 	docs: python howto.
 1935 	+ commit 04791c896712857feaf9a472a48d7a4c4f287775
 1936 	* Fixed a few spelling and grammatical errors.
 1937 
 1938 2018-10-21  Ben McGinnes  <ben@adversary.org>
 1939 
 1940 	Python: docs tweaks.
 1941 	+ commit 59e38e3d2c14b40045e15c45b6c2f300e8f097dc
 1942 	* Fixed a minor error in how the reST version of the HOWTO is
 1943 	  generated.
 1944 	* Updated the help() in __init__.py with a little more detail as to
 1945 	  why not to use the lower level functions.
 1946 
 1947 2018-10-20  Ben McGinnes  <ben@adversary.org>
 1948 
 1949 	python bindings: callback test.
 1950 	+ commit 651a1afe80bcc421da26f38015e8a322e140f130
 1951 	* lang/python/tests/t-callbacks.py: Updated test logic to try
 1952 	  generating a key which expires in 2099 and if that fails then
 1953 	  fallback to an expiration in 2037 in an attempt to catch the 32-bit
 1954 	  systems.
 1955 
 1956 2018-10-18  Werner Koch  <wk@gnupg.org>
 1957 
 1958 	core: Fix segv in genkey when no endtag is provided.
 1959 	+ commit fbac11b19d97730494dc9dad3b7f71453ef15581
 1960 	* src/genkey.c (get_key_parameter): Provide a fallback ENDTAG.
 1961 
 1962 	core: Return an error if NULL is provided for genkey's parms.
 1963 	+ commit 174af15725d4989a840ff3098996cc8a0568f724
 1964 	* src/debug.c (_gpgme_debug_buffer): Bail out of BUF is NULL.
 1965 	* src/genkey.c (gpgme_op_genkey): Do no deref a NULL in
 1966 	TRACE_LOGBUF.
 1967 	(gpgme_op_genkey_start): Ditto. Return an error if PARMS is NULL.
 1968 
 1969 2018-10-18  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 1970 
 1971 	python: do not export HAVE_CXX11 definition.
 1972 	+ commit 9de1c96ac3cf6fa126325002b61a1b606037ca88
 1973 	* lang/python/gpgme.i: ignore HAVE_CXX11 in SWIG interface
 1974 
 1975 2018-10-17  Werner Koch  <wk@gnupg.org>
 1976 
 1977 	python: Auto-check for all installed python versions.
 1978 	+ commit ff6ff616aea6f59b7f2ce1176492850ecdf3851e
 1979 	* m4/python.m4 (AM_PATH_PYTHON): Add a 4th arg.
 1980 	* configure.ac (available_languages): Remove separate python2 and
 1981 	python3 and keep just python.  Simplify test for pythons.  Use an
 1982 	explicit list of python versions to test.
 1983 
 1984 2018-10-16  Werner Koch  <wk@gnupg.org>
 1985 
 1986 	core: Really remove CR from version output.
 1987 	+ commit d63d6d8b8030ec1dc19f9f66c8af3b2f3288d309
 1988 	* src/version.c (_gpgme_get_program_version): Fix test.
 1989 
 1990 2018-10-10  NIIBE Yutaka  <gniibe@fsij.org>
 1991 
 1992 	build: Let configure create the VERSION file.
 1993 	+ commit 85dd0fa4b5f026a13da842bf64ab8a37a68918d4
 1994 	* autogen.sh: Update from libgpg-error.
 1995 	* configure.ac: Use mym4_version to create VERSION file.
 1996 	* Makefile.am (dist-hook): Do not create VERSION.
 1997 	(EXTRA_DIST): Add VERSION.
 1998 
 1999 2018-10-09  Andre Heinecke  <aheinecke@intevation.de>
 2000 
 2001 	cpp: Add KeyListMode::Locate.
 2002 	+ commit c565cf42a38a8bda936df8c52936589cc8a06ca3
 2003 	* cpp/src/global.h (KeyListMode): Add Locate.
 2004 
 2005 	cpp: Add first manual tests.
 2006 	+ commit 9f85f4967e617e9f97529b89f530c1bc36b52a5c
 2007 	* lang/cpp/Makefile.am: Add tests subdir.
 2008 	* lang/cpp/tests/Makefile.am: New.
 2009 	* lang/cpp/tests/README,
 2010 	lang/cpp/tests/run-getkey.cpp,
 2011 	lang/cpp/tests/run-keylist.cpp: New.
 2012 	* configure.ac: Configure tests makefile.
 2013 
 2014 	core: Add trust-model flag.
 2015 	+ commit 85627e58184529e982369cfc00ed7865244c13d6
 2016 	* src/context.h (gpgme_context): Extend with trust_model.
 2017 	* src/engine-gpg.c (engine_gpg): Extend with trust_model.
 2018 	(gpg_set_engine_flags): Take trust_model from context.
 2019 	(build_argv): Handle trust_model.
 2020 	(gpg_release): Free trust_model.
 2021 	* src/gpgme.c (gpgme_set_ctx_flag): Handle trust-model flag.
 2022 	(gpgme_release): Release trust-model.
 2023 	* doc/gpgme.texi: Document new flag for gpgme_set_ctx_flag.
 2024 	(Context Flags): New subsection for the context flags.
 2025 	* tests/run-keylist.c (show_usage, main): Add new --trust-model
 2026 	parameter.
 2027 
 2028 	cpp: Initialize all gpgme_key_t's in context.
 2029 	+ commit 7a1e6dbfb16f71f692a53f7e0955bde86dbb7fee
 2030 	* lang/cpp/src/context.cpp (Context::startKeyListing),
 2031 	(Context::keyListResult, Context::signingKeys): Initialize key.
 2032 
 2033 	core: Ensure r_key init in gpgme_get_key.
 2034 	+ commit ecfa88e65fda9c9766ad526d57e2fc8b2884f634
 2035 	* src/keylist.c (gpgme_get_key): Move r_key init above
 2036 	the first invalid value check.
 2037 
 2038 	qt, tests: Add test for single get key.
 2039 	+ commit bf4aae45129c1093ee7712bdbcdfe1c8f2ca7c0f
 2040 	* lang/qt/tests/t-keylist.cpp (testGetKey): New.
 2041 
 2042 2018-10-08  Werner Koch  <wk@gnupg.org>
 2043 
 2044 	Release 1.12.0.
 2045 	+ commit 1aff2512d846ea640d400caa31c20c40230b3b04
 2046 	* configure.ac: Bump core LT version to C32/A21/R0.  Bump C++ LT
 2047 	version to C14/A8/R0.
 2048 
 2049 	* lang/qt/tests/Makefile.am (CLEANFILES): Add reader status files.
 2050 	* Makefile.am (EXTRA_DIST): Add conf/whatisthis.
 2051 
 2052 2018-10-05  Werner Koch  <wk@gnupg.org>
 2053 
 2054 	core: Apply GPGME_EXPORT_MODE_NOUID also to keyserver exports.
 2055 	+ commit 913601f4879f011878b53b885f35524df98b5570
 2056 	* src/engine-gpg.c (export_common): Add keyserver-options to the
 2057 	send-keys commands.
 2058 
 2059 	build: Move config.h to conf/config.h.
 2060 	+ commit ecfa48fffa93f3d1b66354d2d46872ff614c4a68
 2061 	* conf/: New dir.
 2062 	* configure.ac (AC_CONFIG_HEADER): Move header to conf dir.
 2063 	* doc/Makefile.am (mkdefsinc): Adjust rule.
 2064 	* lang/python/Makefile.am (copystamp): Ditto.
 2065 
 2066 2018-10-04  Ben McGinnes  <ben@adversary.org>
 2067 
 2068 	docs: whitespace bug.
 2069 	+ commit 033da18b88af69b7846de62af4aeea359d27ec20
 2070 	* Same as before, but exported.
 2071 
 2072 	docs: org to texinfo whitspace bug.
 2073 	+ commit a8d4aa6f763599bbd8ea36ef98b7b4931bf326dc
 2074 	* replaced "." in headings with "·" to prevent whitspace being
 2075 	  appended by texinfo and breaking git.
 2076 
 2077 	docs: python.
 2078 	+ commit 0b5930b276186afd1ca1dd91d82db7e60dd20606
 2079 	* Fixed an error in the new index page and then exported to the other
 2080 	  two "source" formats.
 2081 
 2082 	docs: python.
 2083 	+ commit 48258879720a4f423d0efa955da942d69f3c49d4
 2084 	* lang/python/doc/meta/TODO.org: Added the two major documentation
 2085 	  build system tasks to the TODO list.
 2086 	* Added an index page in preparation for sorting out the second of
 2087 	  those TODO lists (Docutils is a lot easier to handle than Texinfo).
 2088 	* Meanwhile, have confirmed that it all builds just fine under
 2089 	  GNU/Linux, OS X and FreeBSD while retaining the documentation, so
 2090 	  that's a nice improvement from 1.11.1.
 2091 
 2092 	python: makefiles.
 2093 	+ commit f3fc73738264d21baf0e9b49fdd5cb67faa11d31
 2094 	* doc/Makefile.am: Removed a bit I forgot about.
 2095 	* Renamed lang/python/docs to lang/python/doc bvecause apparently
 2096 	  automake cares about that too.
 2097 	* Decided to be extra explicit in the manifest because if I don't then
 2098 	  all sorts of things get deleted ... like lang/python
 2099 	* Tested on an external linux system just in case my osx workstation
 2100 	  introduces too much weirdness.
 2101 
 2102 	python: make file.
 2103 	+ commit 2cca422ca4b2df831a824393077d0b52d79532aa
 2104 	* lang/python/Makefile.am: Attempting to remove the docs/meta
 2105 	  directory did a lot worse than I thought it was doing, so better to
 2106 	  just be sure the documentation is available than destroy the entire
 2107 	  bindings directory.
 2108 
 2109 	python: make file.
 2110 	+ commit 582f14d97a900106dce0c8d8666a443c6ec25050
 2111 	* lang/python/Makefile.am: Now that gpg2 has been renamed back to gpg
 2112 	  and gpg1 is semi-deprecated, we should check what the actual gpg
 2113 	  binary is with gpgconf and use that rather than make assumptions per
 2114 	  system.
 2115 	* Also, it means less worry if gpg3 is ever a thing.  (Trust me, I
 2116 	  remember the Python 1 to 2 transition as well as the current 2 to 3
 2117 	  transition).  ;)
 2118 
 2119 2018-10-03  Ben McGinnes  <ben@adversary.org>
 2120 
 2121 	docs: more whitespace checks.
 2122 	+ commit a174b269432fd37e8546c43e0127580e826432da
 2123 	* lang/python/docs/texinfo/short-history.texi:
 2124 
 2125 	dpcs: python howto.
 2126 	+ commit 962dfca9b86b53bb00f5b89e453b9eed95454934
 2127 	* More updates to the docs themselves and the versions to be available
 2128 	  with the next release.
 2129 	* .texi and .rst copies of the HOWTO and the short history of (this
 2130 	  part) of the project.
 2131 
 2132 	docs: python.
 2133 	+ commit 2151b9828af3760867e856ab939b835a6e2f42e7
 2134 	* More restructuring.  Also the painstaking task of deciphering some
 2135 	  of the more eclectic aspects of Texinfo and make.
 2136 
 2137 	docs: python bindings.
 2138 	+ commit a982f9131520bce0b25f84cba19040bbe5f275bb
 2139 	* Restructured the docs directory to account for the GNU preferred
 2140 	  source doc format (.texi) and the Python preferred source doc
 2141 	  format (.rst) and the real source doc format (.org).
 2142 	* Both the perceived source formats will need to be generated from the
 2143 	  .org files and included at this stage.  Unfortunately there is not
 2144 	  yet a native org-to-rst transformation method in the org-mode
 2145 	  software in Emacs nor is there a a direct means of going from reST
 2146 	  to Org-mode from Docutils.  There's only third party packages like
 2147 	  Pandoc and, while very good, there is no guarantee of consistency;
 2148 	  so we can't entirely automate this bit (yet).
 2149 
 2150 	docs: pre-python preparation.
 2151 	+ commit b2802053192ba0000866b145b715a557d34ed0eb
 2152 	* doc/Makefile.am: removed the python howto from this file, restoring
 2153 	  it to just the main project and the newer .js files.
 2154 	* deleted: doc/gpgme-python-howto.texi
 2155 	* renamed the Short_History.org file to short-history.org to keep the
 2156 	  naming conventions similar.
 2157 	* All the Python files can (and should) live together.
 2158 
 2159 2018-10-02  Ben McGinnes  <ben@adversary.org>
 2160 
 2161 	python bindings: CPython order.
 2162 	+ commit 23894ac9a96081428a590791010ca8beebaf6f9f
 2163 	* Changed the order of python versions the configure/make process
 2164 	  checks for, placing Python 3.7 ahead of 3.6.
 2165 	* Updated the HOWTO documentation to reflect this change.
 2166 
 2167 2018-10-02  Werner Koch  <wk@gnupg.org>
 2168 
 2169 	core: add experimental GPGME_EXPORT_MODE_NOUID.
 2170 	+ commit 7b861945fdc71fd3c82c91f824172dadd2220fa0
 2171 	* src/gpgme.h.in (GPGME_EXPORT_MODE_NOUID): New.
 2172 	* src/export.c (export_start): Adjust option check.
 2173 	* src/engine-gpg.c (export_common): Implement option.
 2174 
 2175 2018-09-30  Ben McGinnes  <ben@adversary.org>
 2176 
 2177 	docs: python bindings.
 2178 	+ commit 76bdfabb057f4ffc56beee15b48d8fa836ba7cce
 2179 	* Tightened up the docs a little bit, updated the "what's new"
 2180 	  section, dropped the "-draft" version in preparation for GPGME
 2181 	  1.12.0's release.
 2182 	* Exported another .texi version (and updated the draft copies to this
 2183 	  commit (which ought to be 1.11.1-beta313).
 2184 
 2185 	python bindings: fixing decrypt-verify.
 2186 	+ commit 837a4760533e80f075cd727f18354904b8a54132
 2187 	* lang/python/src/core.py: First restoring the exception to the being
 2188 	  just that.
 2189 	* The means to manipulate the error output is temporarily in commented
 2190 	  out code, but ought to be added to a proper test later.
 2191 	* In the mean time the original test, with a very slight change, works
 2192 	  again.
 2193 
 2194 	python bindings: ctx.decrypt.
 2195 	+ commit 11403a46358f9b6e98776974f3c70f211d9adf85
 2196 	* lang/python/src/core.py: Fixed methods of detecting whether verify
 2197 	  is a boolean variable or a list.
 2198 	* Added methods of catching the missing keys exceptions.
 2199 	* Still retained PEP8 compliance (which might have been where one or
 2200 	  two problems crept in).
 2201 	* Though this is essentially the correct behaviour, it still does not
 2202 	  quite fit the otiginal test; so that will also require some adjustment.
 2203 
 2204 2018-09-27  Ben McGinnes  <ben@adversary.org>
 2205 
 2206 	example: local signatures.
 2207 	+ commit ce045a1ef9c63042fcffb5487b19646d67addba0
 2208 	* lang/python/examples/howto/local-sign-group.py: added the bit where
 2209 	  specifying the signing key is actually used for signing rather than
 2210 	  just pruning the list of keys to certify.
 2211 
 2212 	example: python bindings.
 2213 	+ commit a047e0f68ef471097e514665249063f267257b19
 2214 	* lang/python/examples/howto/local-sign-group.py: locally sign every
 2215 	  key in a group line except one's own keys.  Intended to address the
 2216 	  sort of thing one might see on lists like PGPNET or other closed
 2217 	  groups amongst activists, journalists, etc. where everyone encrypts
 2218 	  to all recipients, but may not sign everyone's keys publicly..
 2219 
 2220 	docs: python bindings installation.
 2221 	+ commit 1d40d360bccb05b4c66313a60a902d04a0d3c9ff
 2222 	* lang/python/docs/gpgme-python-howto.org: added a section on
 2223 	  installing the bindings to a python virtualenv.
 2224 
 2225 	tests: python bindings.
 2226 	+ commit b9aea3b9c2c2762a9ae8d677196f82acc6a1c028
 2227 	* Fixed the final assertion to look for what will actually be reported
 2228 	  in that case instead of something else (i.e. it looks for an
 2229 	  IMPORT_ERROR status code).
 2230 
 2231 	examples: python bindings.
 2232 	+ commit 7c9f49a4991c1ccd0cb582875207b373d4fccf50
 2233 	* Fixed homedir specifying logic in several cases.
 2234 
 2235 2018-09-25  Ben McGinnes  <ben@adversary.org>
 2236 
 2237 	docs: a typographical two-step.
 2238 	+ commit b625258d54782040195cc5ad3b255685af6f6c4e
 2239 	* Sometimes you really do need or want punctuation in a heading, but
 2240 	  ideally without something else generating whitespace and other
 2241 	  annoyances to go with it.
 2242 	* Trying a real decimal point instead.
 2243 
 2244 	docs and examples: python bindings.
 2245 	+ commit 62e4e2cb5edb09183b9f9d448f992fe65cb6db85
 2246 	* Woumd up the "what's new" section.
 2247 	* Added an example for sending a key to the keyservers via hkp4py.
 2248 	* Updated the export key code to use a more complete check for the
 2249 	  $GNUPGHOME location.
 2250 	* Expanded on the installation and reinstallation troubleshooting
 2251 	  section.
 2252 
 2253 2018-09-24  Ben McGinnes  <ben@adversary.org>
 2254 
 2255 	docs: python bindings howto.
 2256 	+ commit e9da4d97107b40a48583775df34783f07be5dfdb
 2257 	* Added a What's New section to summarise changes since the last
 2258 	  release.  There have been quite a few and some attention does need
 2259 	  to be drawn to some of them.
 2260 	* Confirming certain issues with some platform builds, especially
 2261 	  BSD/OSX vs. Linux issues which will need to update the installation
 2262 	  troubleshooting guides.
 2263 
 2264 2018-09-23  Ben McGinnes  <ben@adversary.org>
 2265 
 2266 	docs and examples: python bindings howto.
 2267 	+ commit b12b2cc99621fe32a2d698ce7f091f3225f35bd0
 2268 	* Added more comprehensive examples using hkp4py and added a couple
 2269 	  more example scripts for protonmail.
 2270 
 2271 	examples: python bindings and hkp4py updates.
 2272 	+ commit ced4bdbbb239c1fe209665b4f5a7aeb9651889ed
 2273 	* Mostly tightening up the details on the hkp4py example script.
 2274 	* Also fixed a typo in the LGPL boiler plate text included in all the
 2275 	  other example scripts for the HOWTO.
 2276 
 2277 	python bindings: importing from keyservers with hkp4py.
 2278 	+ commit 6ed9a77c92c32f77092b36c149185d4359cd6e55
 2279 	* added a new example script to search the keyservers and import the
 2280 	  results, this time using Marcel Fest's hkp4py module.
 2281 	* Updated the key importing section to match this addition.
 2282 	* Tested with the current version of hkp4py from github.
 2283 
 2284 2018-09-22  Ben McGinnes  <ben@adversary.org>
 2285 
 2286 	docs: python bindings howto.
 2287 	+ commit 3622576105ae1924d9b40ce0d09bf9a7accc0ed1
 2288 	* Confirmed that updates to the tests have significant'y improved that
 2289 	  output.
 2290 	* Updated some of the additional notes for the section on hkp4py.
 2291 	** This is in anticipation adding at least import examples using that
 2292 	   module as well.  It may also include adding examples of exporting a
 2293 	   key and uploading it to the keyservers.
 2294 
 2295 2018-09-20  Werner Koch  <wk@gnupg.org>
 2296 
 2297 	python: Fix a couple of syntax errors.
 2298 	+ commit 6878126b6f53cdf7daeeaf68116dda008564c2fa
 2299 	* lang/python/tests/t-keylist-from-data.py: Add missing line
 2300 	continuation.
 2301 	* lang/python/tests/t-keylist.py: Ditto.
 2302 	* lang/python/tests/t-quick-key-creation.py: Ditto.
 2303 	* lang/python/tests/t-quick-subkey-creation.py: Ditto.
 2304 
 2305 	python: Silence a few warnings.
 2306 	+ commit dcdabf5f2ef84e1f304fcc0590ec4bb160354af5
 2307 	* src/gpgme.h.in: Obsolete "class" also for Python.
 2308 	* lang/python/gpgme.i: Silenece a swig warning.  Silence a gcc
 2309 	warning.
 2310 
 2311 	python: Fix regression in the test suite.
 2312 	+ commit 9f19b3aaecd23a12b2e6692faeefa936e490d343
 2313 	* lang/python/tests/Makefile.am (GNUPGHOME): Remove stray backslash.
 2314 
 2315 	tests: Don't try using keys from a scmartcard.
 2316 	+ commit a824f4498ea9bae5dca515c56e2455ec0ce98b50
 2317 	* tests/gpg/Makefile.am: Disable scdaemon
 2318 	* lang/python/tests/Makefile.am: Ditto.
 2319 
 2320 2018-09-20  Ben McGinnes  <ben@adversary.org>
 2321 
 2322 	docs: python bindings and its special request.
 2323 	+ commit 5cb67257f2b3b5fcfd3444e366f26a0f2ae09504
 2324 	* Added some material on using the new-ish hkp4py module with GPGME.
 2325 	* Example code will be added later once a couple of little issues are
 2326 	  addressed.
 2327 
 2328 2018-09-19  Werner Koch  <wk@gnupg.org>
 2329 
 2330 	json: Remove subkey-algo from createkey command.
 2331 	+ commit c569adb5e3e3082bd68cdc34a2d349b7c28d3768
 2332 	* src/gpgme-json.c (op_createkey): Remove subkey-algo param.
 2333 	(GPG_AGENT_ALLOWS_KEYGEN_TRHOUGH_BROWSER): Fix typo.
 2334 	* lang/js/src/Keyring.js: Remove subkey-algo support.
 2335 	* lang/js/src/permittedOperations.js: Ditto.
 2336 
 2337 2018-09-18  Ben McGinnes  <ben@adversary.org>
 2338 
 2339 	docs: python bindings.
 2340 	+ commit 362caaf02f3a25b7e626572aa30b87771c2c8f4d
 2341 	* Updated the Cython example code slightly, along with the
 2342 	  corresponding explanation.
 2343 
 2344 2018-09-17  Ben McGinnes  <ben@adversary.org>
 2345 
 2346 	docs: python bindings howto.
 2347 	+ commit f4d83800d89173e618cceca44b584778217fadb3
 2348 	* Tightened up the Cython demonstration.
 2349 
 2350 2018-09-16  Ben McGinnes  <ben@adversary.org>
 2351 
 2352 	docs: cython sanitized.
 2353 	+ commit 44c846345e91413b9d6a1f7b26f59db5b1c32433
 2354 	* Sanitized the shell command examples of extraneous whitespace.
 2355 	* Removed keycount.c as sanitising it is pointless and it will be
 2356 	  generated by Cython when the example is followed.
 2357 	* Regenerated the .texi version.
 2358 
 2359 	docs: python bindings howto.
 2360 	+ commit 61c08f7435570783f5c267e42d288d31bf77e560
 2361 	* Added new advanced section with an example of using the Python
 2362 	  bindings with CPython code compiled back to C code using Cython.
 2363 	* Though it may seem a bit counter-intuitive to use the bindings just
 2364 	  to go back to C via a different route, this is not actually stupid.
 2365 	* Added examples/howto/advanced/cython/ directory.
 2366 	* Added keycount.pyx, setup.py and the keycount.c file which the first
 2367 	  two generated with Cython.  Not including the .so and .o files from
 2368 	  the build.
 2369 	* Exported the .texi version of the howto for the main docs.
 2370 
 2371 	docs: even more edits.
 2372 	+ commit fbec29fdac7a4f162e73f24dac2a6b205239ef03
 2373 	* doc/gpgme-python-howto.texi: hunting down and killing commas,
 2374 	  Oxford or not it can't stay in a heading.
 2375 
 2376 	docs: more edits.
 2377 	+ commit 2a1b0b88d96b722817f3ac9edf002a54c65084b8
 2378 	* lang/python/docs/gpgme-python-howto.org: more tweaks and edits,
 2379 	  along with another build of output formats.
 2380 	* doc/gpgme-python-howto.texi: updated texinfo version for parent docs.
 2381 
 2382 	docs: whitespace culled.
 2383 	+ commit 91b26b0638d9f92f0e90aab1c3750c14d72db301
 2384 	* lang/python/docs/gpgme-python-howto.org: Identified and fixed the
 2385 	  headings which kept generating lines with trailing whitespace when
 2386 	  exporting to Texinfo format and adjusted them to prevent that.
 2387 
 2388 	docs: renaming and drafts.
 2389 	+ commit 766ec0e4a36c120ed4ef5463b5fdf8e7ed3b4563
 2390 	* lang/python/docs/gpgme-python-howto.org: Renamed file to better fit
 2391 	  the rest of the project's docs.
 2392 	* Added a section on the very unofficial drafts I periodically post
 2393 	  links to since they're often the easiest way to get a web version in
 2394 	  front of someone in a hurry.
 2395 
 2396 2018-09-15  Ben McGinnes  <ben@adversary.org>
 2397 
 2398 	docs: python howto texinfo update.
 2399 	+ commit 76f77022848894ee9d8490255cefdd0100248b45
 2400 	* doc/gpgme-python-howto.texi:
 2401 
 2402 	docs: Python howto update.
 2403 	+ commit 7e9df9b9e33131f5d7c58ad58249f9ae766f1341
 2404 	* lang/python/docs/GPGMEpythonHOWTOen.org: Added corresponding GPGME
 2405 	  version number to table at the start and cut the shortcut from the
 2406 	  groups.py example.
 2407 	* doc/gpgme-python-howto.texi: New export of Texinfo file for docs
 2408 	  build.
 2409 
 2410 	docs: generated whitespace.
 2411 	+ commit 93a2ea0207fac0a18a48b671df11dc8575579c39
 2412 	* doc/gpgme-python-howto.texi: culled whitespace included with the
 2413 	  org-mode export.
 2414 
 2415 	Docs: including howto with standard docs.
 2416 	+ commit 2e5b0603709855eb1d8a1a3fd51d3245f4301ada
 2417 	* gpgme.spec.in: Added gpgme-python-howto.info build on the grounds
 2418 	  that it now deals with certain possible installation issues and end
 2419 	  users encountering them would want the docs to hand.
 2420 	* doc/gpgme.texi: updated the copyright year to this year.
 2421 
 2422 	Docs: Python bindings HOWTO.
 2423 	+ commit b19faa26e01df4d78286e013313e5ab25f517d49
 2424 	* Added doc/gpgme-python-howto.texi: generated from
 2425 	  GPGMEpythonHOWTOen.org and then slightly modified so the generated
 2426 	  Info file doesn't use camelCase.
 2427 	* doc/Makefile.am: Updated makefile to include the Python HOWTO with
 2428 	  gpgme_TEXINFOS and to export the generated files to the webserver
 2429 	  along with the main GPGME one.
 2430 
 2431 	Python bindings: docs.
 2432 	+ commit d04fb0bf1271c91b88686c947a5b14ffc9b505ef
 2433 	* lang/python/docs/GPGMEpythonHOWTOen.org: Fixed a few errors in the
 2434 	  newer sections.
 2435 	* Updated code in the examples using secret key exporting and group
 2436 	  lines to reflect the Python 2.7 compatibility fixes added.
 2437 
 2438 	Python bindings: examples.
 2439 	+ commit 4e8a92ed14ea3da3d92f07d5f62fd325a2adebde
 2440 	* lang/python/examples/howto/export-secret-keys.py and groups.py:
 2441 	  Updated the backwards compatibility adjustments to account for
 2442 	  unicode differences between python 2 and 3.
 2443 
 2444 	Python examples: backwards compatibility.
 2445 	+ commit 864ef9b40f5f9d0c66a458b6033277938d7d1d50
 2446 	* lang/python/examples/howto/groups.py: subprocess update
 2447 	* lang/python/examples/howto/export-secret-keys.py: subprocess update
 2448 
 2449 	  Both of these try the nice and easy method of getting the subprocess
 2450 	  output available in Python 3, but will fall back to the older Popen
 2451 	  method if it doesn't work.  Essentially this is to be a little nicer
 2452 	  to Python 2.7.15 (even though the examples are filled with warnings
 2453 	  that py2 support is not guaranteed with the examples).
 2454 
 2455 2018-09-10  Thomas Oberndörfer  <thomas@mailvelope.com>
 2456 
 2457 	js: Fix errorDetails of GPGME_Signature.
 2458 	+ commit dd7d37ca21684d4d77db4f513c6212776fc6ea82
 2459 	* lang/js/src/Signature.js (GPGME_Signature.errorDetails):
 2460 	Access properties from the summary object.
 2461 
 2462 2018-09-08  Ben McGinnes  <ben@adversary.org>
 2463 
 2464 	estreams revised.
 2465 	+ commit 2375959180aa8eb0d23cc3f8240c3f5b5262b819
 2466 	* Egon Spengler was right, crossing the streams is bad.
 2467 	* Restored both src/gpgme.def and src/libgpgme.vers to use the
 2468 	  estreams symbols without the leading underscore.
 2469 	* The new_from_estream() function added to lang/python/src/core.py and
 2470 	  set to alias the new_from_stream() function remains.
 2471 	* Opted for the solution favouring Linux onthree main grounds:
 2472 	  1. Andre reported major problems with Windows as well, so the number
 2473 	     of potentially affected systems would vastly increase.
 2474 	  2. All the BSDs and OS X have spent far more time and development
 2475 	     work in order to accommodate the eccentricities of both Microsoft
 2476 	     and the GNU Project (ref. GCC), so they're more likely to be able
 2477 	     to cope with doing so again than the other way around.
 2478 	  3. If I really have to I can write a custom installer for OS X to
 2479 	     try this and, if it fails, to then patch the two symbol entries and
 2480 	     recompile from scratch.  That said, I may not have to since it
 2481 	     actually behaved during the most recent tests for this
 2482 	     commit; into ten separate CPython installations and all five
 2483 	     supported versions (standard source installs and OS X Framework
 2484 	     installs for each version).
 2485 
 2486 2018-09-02  Ben McGinnes  <ben@adversary.org>
 2487 
 2488 	estreams symbols for python bindings.
 2489 	+ commit 879cc1f84fbf09cb4eeb78bce16f52a1a36032ba
 2490 	* It turns out that even though some platforms detect differing
 2491 	  symbols for estreams, the two types do not appear to be in
 2492 	  conflict.  At least they don't from the BSD/OS X side of things.
 2493 	  As a consequence both versions are now included.
 2494 
 2495 2018-08-31  Ben McGinnes  <ben@adversary.org>
 2496 
 2497 	docs: python bindings.
 2498 	+ commit 55991aa91667b9184cc9fc86a3ac21b9640511ef
 2499 	* minor typographic update.
 2500 
 2501 2018-08-30  Ben McGinnes  <ben@adversary.org>
 2502 
 2503 	python bindings: estreams fix.
 2504 	+ commit 1d00fb987b903e245d484bddfe3c0a0aba670ac1
 2505 	* lang/python/src/core.py: Adjusted new_from_estream function to alias
 2506 	  new_from_stream instead of fd.
 2507 	* fixed the _gpgme import errors introduced in commit
 2508 	  08cd34afb762975b0273575035dacf69449ef241 by changing the exported
 2509 	  functions/types to match the inner module where all the work is
 2510 	  done, rather than the outer one(s).
 2511 
 2512 2018-08-29  Ben McGinnes  <ben@adversary.org>
 2513 
 2514 	python bindings: core.
 2515 	+ commit 18ea83867168e8db0a2f2c8057d087363083486c
 2516 	* lang/python/src/core.py: expanded gpgme_error check lists.
 2517 
 2518 	python bindings: core.
 2519 	+ commit dcedddecb6f8f11682aed3b09b88ee1511010faf
 2520 	* lang/python/src/core.py: added gpgme_data_set_flag to the errorcheck
 2521 	  funtion.
 2522 
 2523 	python bindings: core.
 2524 	+ commit 6078b5303362b2e5ce56660967fac313ca3d5ae9
 2525 	* lang/python/src/core.py: added new function new_from_estream to wrap
 2526 	  new_from_fd just like new_from_stream does and for the same reason.
 2527 
 2528 2018-08-29  Andre Heinecke  <aheinecke@intevation.de>
 2529 
 2530 	json: Fix detached verify.
 2531 	+ commit 1420c3bd681648b032d756536311621a3627bedb
 2532 	* src/gpgme-json.c (op_verify): Only create output and
 2533 	use it for clearsigned and opaque signed.
 2534 
 2535 2018-08-29  Ben McGinnes  <ben@adversary.org>
 2536 
 2537 	docs: python bindings - protonmail examples.
 2538 	+ commit f7e5ae7f1618bd355b885c5c32dd028afad35453
 2539 	* lang/python/docs/GPGMEpythonHOWTOen.org: Updated links to the
 2540 	  ProtonMail keyserver import scripts and added a warning regarding
 2541 	  being unable to update third party keys.
 2542 	* lang/python/examples/howto/pmkey-import-alt.py: added usage.
 2543 	* lang/python/examples/howto/pmkey-import.py: added usage.
 2544 
 2545 2018-08-28  Ben McGinnes  <ben@adversary.org>
 2546 
 2547 	docs: python bindings HOWTO.
 2548 	+ commit 02d0b97bfedc732351cc4e89c92fcd9d31209535
 2549 	* Finished CFFI vs SWIG bit in known issues.
 2550 	* tidied up some of the structure.
 2551 	* Fixed some minor errors and links.
 2552 
 2553 	docs: python bindings.
 2554 	+ commit a8a983c5bc0f0deeeebda455ad73309fff48b61f
 2555 	* Added section on why no CFFI.
 2556 
 2557 	docs: python howto.
 2558 	+ commit c2831e2377843c8625df158ef32e01f8c19494eb
 2559 	* Added another key import example using ProtonMail's new keyserver.
 2560 
 2561 2018-08-28  Andre Heinecke  <aheinecke@intevation.de>
 2562 
 2563 	json: Delete primary key if subkey gen fails.
 2564 	+ commit 3bdf8be6d2c57319399fe14e27e52b323a17750a
 2565 	* src/gpgme-json.c (op_delete): Delete primary key on
 2566 	subkey gen error.
 2567 
 2568 	json: Allow NULL request in encode and chunk.
 2569 	+ commit 7d3c13df263ed88c17005920e75e0486abeae5b9
 2570 	* src/gpgme-json.c (encode_and_chunk): Don't error on NULL
 2571 	request.
 2572 
 2573 2018-08-27  Ben McGinnes  <ben@adversary.org>
 2574 
 2575 	docs: python bindings.
 2576 	+ commit 1c261b9fa3462360b6c3f43b243091cd50534903
 2577 	* Added details on installation troubleshooting.
 2578 
 2579 2018-08-27  Werner Koch  <wk@gnupg.org>
 2580 
 2581 	json: Do not put FILE_NAME into the verify result.
 2582 	+ commit 53c5b9a265d33f2cc54f489375a929602338aee8
 2583 	* src/gpgme-json.c (verify_result_to_json): Remove "file_name".
 2584 
 2585 2018-08-27  Jasper Spaans  <jasper@startmail.com>
 2586 
 2587 	core: Export gpgme_data_new_from_estream function.
 2588 	+ commit 08cd34afb762975b0273575035dacf69449ef241
 2589 
 2590 
 2591 2018-08-23  Andre Heinecke  <aheinecke@intevation.de>
 2592 
 2593 	json: Add sender and file name to encrypt.
 2594 	+ commit a5f8dac77d50480a208c99398df323c58ce6dc58
 2595 	* src/gpgme-json.c (hlp_encrypt, op_encrypt): Support sender
 2596 	and file_name.
 2597 
 2598 2018-08-21  Andre Heinecke  <aheinecke@intevation.de>
 2599 
 2600 	json: Add proper decrypt_result_t handling.
 2601 	+ commit 263dadb04aed4f973248b32c52af6ca59bcb7c1f
 2602 	* src/gpgme-json.c (recipient_to_json, decrypt_result_to_json):
 2603 	New.
 2604 	(op_decrypt, hlp_decrypt): Update.
 2605 
 2606 	js: Update extra_dist files.
 2607 	+ commit 738a8e6f950af08305c082d59a91d3d5d45800fa
 2608 	* lang/js/BrowserTestExtension/Makefile.am,
 2609 	lang/js/Makefile.am (EXTRA_DIST): Update.
 2610 
 2611 	Add example manifests for gpgme-json.
 2612 	+ commit 9608996d88549b60da490e5eeb41db023f97a038
 2613 	* doc/examples/gpgme-chrome.json, doc/examples/gpgme-mozilla.json: New.
 2614 	* doc/Makefile.am (EXTRA_DIST): Include them.
 2615 
 2616 	js: Improve README.
 2617 	+ commit 605eb8a8bfcb12141d7cc5626e75af812cda6c75
 2618 	* lang/js/README: Clarify structure at the beginning.
 2619 
 2620 	Remove js as language from configure.ac.
 2621 	+ commit fe3de5b86b4a25f5b23cf1af2fd1809ef6c087a0
 2622 	* configure.ac: Remove js language.
 2623 
 2624 2018-08-20  Andre Heinecke  <aheinecke@intevation.de>
 2625 
 2626 	json: Add subkey_algo and defaults to createkey.
 2627 	+ commit 8103eeba809b6e7156d861783309574b93909169
 2628 	* src/gpgme-json.c (op_createkey, hlp_createkey): Add subkey_algo
 2629 	handling.
 2630 	(hlp_createkey): Fix documentation of expiry.
 2631 
 2632 2018-08-19  Ben McGinnes  <ben@adversary.org>
 2633 
 2634 	Python bindings examples.
 2635 	+ commit 75bc5e6356eca1b7fb76653e7c82c2477f8859b0
 2636 	* import-key.py: fixed a minor typo.
 2637 	* pmkey-import.py: locates and imports keys from the ProtonMail keyserver.
 2638 	* pmkey-import-alt.py: the same as the previous except with setting an
 2639 	  alternative $GNUPGHOME directory.
 2640 
 2641 2018-08-18  Ben McGinnes  <ben@adversary.org>
 2642 
 2643 	Python bindings setup file.
 2644 	+ commit 03b899dbe14a3c32fd018c20c7d5156366fdcc3d
 2645 	* Moved the build import back up where it belongs.
 2646 	* Included comments indicating how to build and install for multiple
 2647 	  Python versions beyond the first 2 on the same system.
 2648 
 2649 	Python bindings tests: Near PEP8 compliance.
 2650 	+ commit 5facba45c83f7daaacc49e66306e13a35aeb74be
 2651 	* PEP8 compliance for the vast majoeity of the tests.
 2652 
 2653 	Python bindings examples: PEP8 conpliance.
 2654 	+ commit b5fbe90676f46b9615919133753a65b20318fe63
 2655 	* Appears to be complete compliance.
 2656 
 2657 	Python bindings setup: Near PEP8 compliance.
 2658 	+ commit fc55caccfc87253e1703df66b21917cc399fba62
 2659 	* lang/python/version.py.in: Fixed most things, but there's still an
 2660 	  issue near the build portion with the existing Python bugs referenced.
 2661 	* lang/python/setup.py.in: Now PEP8 compliant.
 2662 
 2663 	Python bindings constants: PEP8 compliance (almost)
 2664 	+ commit 8a6a73b9c4f92b159450edb5e4a780fc7389ca82
 2665 	* PEP8 compliance for all constants except the globals in
 2666 	  src/constants/__init__.py depending on whether the import sequence
 2667 	  affects the globals themselves.
 2668 
 2669 	Python bindings src: PEP8 compliance.
 2670 	+ commit 7962cde13c5cbdc643bbde795e2c29e638dfc186
 2671 	* import namespace clearance for src/*.py.
 2672 	* Fixed a handful of is/is not None checks as well.
 2673 
 2674 2018-08-13  Ben McGinnes  <ben@adversary.org>
 2675 
 2676 	Symmetric example.
 2677 	+ commit 279cac0ffbb3d865d997dc7fc9c1b53bbb55d3a2
 2678 	* lang/python/examples/howto/symcrypt-file.py: *sigh*; passphrase was
 2679 	  right the first time, just the error check that wasn't.
 2680 	* I really should stop second guessing myself one of these days ...
 2681 
 2682 	Symmetric encryption example.
 2683 	+ commit a256d84882616341b3f357340533893a1db8b5c1
 2684 	* lang/python/examples/howto/symcrypt-file.py: Fixed the error code
 2685 	  and the passphrase key word arg.
 2686 
 2687 	Symmetric encryption example.
 2688 	+ commit ed5ef8293cdbfcc3b91268eeae1eb6b4f8d271bb
 2689 	* lang/python/examples/howto/symcrypt-file.py: A variation on standard
 2690 	  key based encryption.
 2691 
 2692 2018-08-10  Ben McGinnes  <ben@adversary.org>
 2693 
 2694 	PEP8 compliance and other code fixes.
 2695 	+ commit 94bf13e78e65e1d1bc2e5d6b2311f9c9657bfe5f
 2696 	* Ran all the .py files in src/ and below through Yapf.
 2697 	* Included some manual edits of core.py, this time successfully making
 2698 	  two notorious sections a bit more pythonic than scheming.
 2699 	* Left the module imports as is.
 2700 	* This will be committed if it passes the most essential test:
 2701 	  compiling, installing and running it.
 2702 
 2703 2018-08-09  Ben McGinnes  <ben@adversary.org>
 2704 
 2705 	Link fixes.
 2706 	+ commit b6d2a66b41fee5b7fb484566aefcdbcc4cdad094
 2707 	* lang/python/README: Fixed links in both versions of the README.
 2708 
 2709 2018-08-08  Andre Heinecke  <aheinecke@intevation.de>
 2710 
 2711 	json: Wipe memory in cJSON_Delete.
 2712 	+ commit 4dd1d0abd34a382d1cd67cabb737950a39cb3fdc
 2713 	* src/cJSON.c (cJSON_Delete): Wipe memory on deletion.
 2714 
 2715 	json: Only use calloc instead of malloc.
 2716 	+ commit fdc07b3ddc2f68e6fcb33703ea41126d0a841290
 2717 	* src/cJSON.c, src/gpgme-json.c (CALLOC_ONLY): New define
 2718 	to change xmalloc / xtrymalloc to use calloc.
 2719 
 2720 	json: Add checks when skipping byte.
 2721 	+ commit 974a95db04f9cdea02867f0246445b4679517ba0
 2722 	* src/cJSON.c (parse_string, cJSON_Minify): Check for
 2723 	terminating NULL byte when skipping the byte after a an escaped
 2724 	quote.
 2725 
 2726 	json: Don't error out if chunksize is omitted.
 2727 	+ commit 6e48bb0f1cbf662026bf0f70549b52bafe00c017
 2728 	* src/gpgme-json.c (encode_and_chunk): Don't error out
 2729 	if no chunksize is provided.
 2730 
 2731 	cpp: Fix use after free in gencardkeyinteractor.
 2732 	+ commit 3b782443600e8091c5f19580cb218100bcbb4ad7
 2733 	* lang/cpp/src/gpggencardkeyinteractor.cpp
 2734 	(GpgGenCardKeyInteractor::Private::keysize): Change to string.
 2735 
 2736 2018-08-06  Andre Heinecke  <aheinecke@intevation.de>
 2737 
 2738 	Make GNUPGHOME for tests overridable.
 2739 	+ commit d09d19fa9fe1e81dd819b32208b4bd09f83e3918
 2740 	* lang/python/tests/Makefile.am,
 2741 	lang/qt/tests/Makefile.am,
 2742 	tests/Makefile.am,
 2743 	tests/gpg/Makefile.am,
 2744 	tests/gpgsm/Makefile.am,
 2745 	tests/opassuan/Makefile.am (GNUPGHOME): Make variable explict.
 2746 
 2747 2018-07-24  Andre Heinecke  <aheinecke@intevation.de>
 2748 
 2749 	cpp: Add safety checks for key update.
 2750 	+ commit a6e5c8bf18696007c48c6f362aa355020fe82f21
 2751 	* lang/cpp/src/key.cpp (Key::update): Check that the key is
 2752 	not NULL.
 2753 	* lang/cpp/src/verificationresult.cpp (GpgME::Signature::key):
 2754 	Check for fingerprint.
 2755 
 2756 2018-07-22  Ben McGinnes  <ben@adversary.org>
 2757 
 2758 	docs: python bindings howto.
 2759 	+ commit 4d1642b11ea64b8009a8720d9b59e89636d691d2
 2760 	* Fixed and tested the changes necessary for org-mode to correctly
 2761 	  parse pythonic (Python 3) indentation.
 2762 	* Updated the source blocks to recommended upper case for BEGIN_SRC
 2763 	  and END_SRC.
 2764 	* Tested and confirmed XHTML output matches correct examples.
 2765 	* Tested against pseudo-control output via exporting from org-mode to
 2766 	  org-mode and then exporting that to XHTML.  Remaining differences
 2767 	  appear to be discarding the custom tags used to provide X[HT]ML id
 2768 	  elements to each section which does not appear to offer any benefit.
 2769 	* Exporting directly to XHTML or other HTML output should no longer
 2770 	  cause problems, but if there are any then the first step should be
 2771 	  exporting from org-to-org and then exporting that to XHTML.
 2772 
 2773 	doc: python bindings howto.
 2774 	+ commit d7c5366d58d035d7b7119f955824e842d0b6bbe0
 2775 	* Another retrofitting of the HOWTO Python example code, this time
 2776 	  following adjustments to python-mode configuration and having
 2777 	  trawled through the org-mode mailing lists for clues.
 2778 
 2779 	doc: python bindings howto.
 2780 	+ commit b47e1bb98a8ff93cae560449bfa9103c47f4d4f8
 2781 	* Added org-mode byline.
 2782 
 2783 2018-07-19  Werner Koch  <wk@gnupg.org>
 2784 
 2785 	core: Clear all flags for a new data property.
 2786 	+ commit 5ef492c5635ae1677eed6f439a75a86a99dbbe18
 2787 	* src/data.c (PROPERTY_TABLE_ALLOCATION_CHUNK): New.
 2788 	(insert_into_property_table): Use it here.  Clear all flags.
 2789 
 2790 	core: Blank out the plaintext after decryption failure.
 2791 	+ commit 085cdeddef637cc057362fcbde13b0261b8699ec
 2792 	* src/data.h (data_prop_t): New enum.
 2793 	(struct gpgme_data): Add field propidx.
 2794 	* src/data.c (property_t): New.
 2795 	(property_table, property_table_size, property_table_lock): New.
 2796 	(insert_into_property_table): New.
 2797 	(remove_from_property_table): New.
 2798 	(_gpgme_data_get_dserial): New.
 2799 	(_gpgme_data_set_prop): New.
 2800 	(_gpgme_data_get_prop): New.
 2801 	(_gpgme_data_new): Connect new object to property_table.
 2802 	(_gpgme_data_release): Remove from property_table.
 2803 	(gpgme_data_read): With DATA_PROP_BLANKOUT set don't fill the buffer.
 2804 	* src/data-mem.c (gpgme_data_release_and_get_mem): Likewise.
 2805 	* src/decrypt.c (struct op_data): Add field plaintext_dserial.
 2806 	(_gpgme_op_decrypt_init_result): Add arg plaintext and init new field.
 2807 	(_gpgme_decrypt_status_handler): Set DATA_PROP_BLANKOUT on decryption
 2808 	failure.
 2809 	(_gpgme_decrypt_start): Pass PLAIN to the init function.
 2810 	* src/decrypt-verify.c (decrypt_verify_start): Ditto.
 2811 	* configure.ac: Check for stdint.h and bail out if uint64_t is not
 2812 	available.
 2813 
 2814 2018-07-19  Andre Heinecke  <aheinecke@intevation.de>
 2815 
 2816 	cpp: Print origin and last update for key/uid.
 2817 	+ commit 8168dfbeb12042a7f7b1bad918ef60df92bfd1a7
 2818 	* lang/cpp/src/key.cpp: Print origin and last update in
 2819 	iostream operators.
 2820 
 2821 2018-07-19  Werner Koch  <wk@gnupg.org>
 2822 
 2823 	json: Don't use strdup but the xtrystrdup wrapper.
 2824 	+ commit af2c74d6c06a9fb08f7de15d41162d09f871a62e
 2825 	* src/gpgme-json.c (create_keylist_patterns): Use CNT as first arg for
 2826 	xcalloc.
 2827 	(process_request): s/strdup/xtrystrdup/.
 2828 
 2829 	core: New interface gpgme_data_new_from_estream.
 2830 	+ commit f42cd70f18d53df47cc2d027bade736377d39b71
 2831 	* src/gpgme.h.in (gpgme_data_new_from_estream): New.
 2832 	* src/data-estream.c: New.
 2833 	* src/data.h (gpgme_data): New union member e_stream.
 2834 
 2835 2018-07-18  Andre Heinecke  <aheinecke@intevation.de>
 2836 
 2837 	json: Fix memleak in native msging repl.
 2838 	+ commit 98a75a16ccdfe51799a27894d2eb26dba04b34f2
 2839 	* src/gpgme-json.c (native_messaging_repl): Free request and
 2840 	response after each loop.
 2841 
 2842 	json: Ensure that native msging request is string.
 2843 	+ commit 6d7b4382c3e12ba1dbbd0762dfa850c76750d838
 2844 	* src/gpgme-json.c (native_messaging_repl): Ensure that the
 2845 	request is NULL terminated.
 2846 
 2847 	json: Fix crash by ensuring response is never NULL.
 2848 	+ commit 82e4b900a96c837392259469a9a5821a95e7a707
 2849 	* src/gpgme-json.c (encode_and_chunk): Try to always
 2850 	return at least an error.
 2851 	(process_request): Double check that it does not return NULL.
 2852 
 2853 	json: Fix memory errors in create_keylist_patterns.
 2854 	+ commit b78140daf7720132711314a4e5ed878b49da99f4
 2855 	* src/gpgme-json.c (create_keylist_patterns): Reserve two
 2856 	pointers more then linefeeds.
 2857 	(create_keylist_patterns): Fix loop to count linebreaks.
 2858 	(create_keylist_patterns): Use calloc for good measure.
 2859 
 2860 	qt: Handle encoding for diagnostics.
 2861 	+ commit 16462c54b3503e77bc48c2486234531d7bc31b6d
 2862 	* lang/qt/src/threadedjobmixin.cpp (fromEncoding)
 2863 	(stringFromGpgOutput): New helpers.
 2864 	(markupDiagnostics): Use it.
 2865 
 2866 2018-07-16  Andre Heinecke  <aheinecke@intevation.de>
 2867 
 2868 	json: Fix crash on invalid json.
 2869 	+ commit 1686e07e77a1eee3b2708d0231a5a549956021f7
 2870 	* src/gpgme-json.c (process_request): Init res. Check for
 2871 	json object before encode and chunk.
 2872 
 2873 	json: Fix uninitialized key unref in op_delete.
 2874 	+ commit cc21101a7494ea0a17c3012fcb86e77b00b494fa
 2875 	* src/gpgme-json.c (op_delete): Init key.
 2876 
 2877 2018-07-16  Werner Koch  <wk@gnupg.org>
 2878 
 2879 	json: Minor cleanups in cJSON.c.
 2880 	+ commit 1933f5b8056b2671301379106cca4504c4187795
 2881 	* src/cJSON.c: Add comments on the origin of the code.
 2882 	(parse_string): Allocate an extra byte for safeness.
 2883 	(cJSON_AddItemToArray): Allo ARRAY to be NULL.
 2884 
 2885 	json: Fix buffer overflow in cJSON.c.
 2886 	+ commit 013a7f47ab486c380b3c97637d3b15f11de74fe8
 2887 	* src/cJSON.c (parse_string): Correctly detect bad hex.
 2888 
 2889 2018-07-13  Ben McGinnes  <ben@adversary.org>
 2890 
 2891 	python bindings: example scripts.
 2892 	+ commit 1bb3f8409d4bbec403bea768184a691d9d7ea42d
 2893 	* Fixed incorrect mention of output prompt referencing secret keys
 2894 	  when the scripts are only for exporting public keys in whole or
 2895 	  minimised forms.
 2896 
 2897 2018-07-11  Andre Heinecke  <aheinecke@intevation.de>
 2898 
 2899 	json: Add with-sec-fprs param to export.
 2900 	+ commit 6cc842c9aa76d19448141e5117ac59452d7a1ff3
 2901 	* src/gpgme-json.c (add_secret_fprs): New helper.
 2902 	(op_export, hlp_export): Extend for with-sec fprs.
 2903 
 2904 2018-07-10  Ben McGinnes  <ben@adversary.org>
 2905 
 2906 	example scripts: python work-arounds.
 2907 	+ commit 0e760e396fbf13e902d0dc0c048bff0d5410fa16
 2908 	* fixed three typos which were guaranteed to break said script.
 2909 
 2910 2018-07-09  Ben McGinnes  <ben@adversary.org>
 2911 
 2912 	docs: python bindings howto.
 2913 	+ commit 1eceacaff4ad5d6a4b759a7d00907dbc8278f12c
 2914 	* Complete typographic overhaul.
 2915 	* Removed all section level indentation since it does not affect
 2916 	  output formatting, but might affect source code examples.
 2917 	* In text-mode stripped out all tabs which had crept in and replaced
 2918 	  them with four spaces.
 2919 	* Updated all code examples (again) to conform with Python-mode.
 2920 	* Bumped version number in preparation for next release of GPG 2.2.9
 2921 	  and corresponding GPGME release.
 2922 
 2923 2018-07-09  Andre Heinecke  <aheinecke@intevation.de>
 2924 
 2925 	json: Add with-secret without secret only.
 2926 	+ commit 40471ec12f7b4ba37922813a02ebb2aaaa963b51
 2927 	* src/gpgme-json.c (op_keylist, hlp_keylist): Add "with-secret"
 2928 	as a flag to do a public keylist with secret information.
 2929 
 2930 	tests: Add --with-secret to run-keylist.c.
 2931 	+ commit c287f09ac0f090a65299ac7c15e3c9b4947d4b67
 2932 	* run-keylist.c (show_usage, main): Add --with-secret.
 2933 
 2934 	doc: More explicit doc for EXTERN and LOCAL modes.
 2935 	+ commit 31bc51e2aff0a28b551410c9def2f578d0d28cea
 2936 	* doc/gpgme.texi (GPGME_KEYLIST_MODE_EXTERN),
 2937 	(GPGME_KEYLIST_MODE_LOCATE, GPGME_KEYLIST_MODE_LOCAL): Mention
 2938 	command line flags for CMS and OpenPGP Protocol.
 2939 
 2940 	Add ctx flag for auto-key-locate.
 2941 	+ commit 7bc5d3c7e41c6e42a583a61a4c9504058fbb2976
 2942 	* src/context.h (gpgme_context): Add auto_key_locate.
 2943 	* src/engine-gpg.c (engine_gpg): Add auto_key_locate.
 2944 	(gpg_set_engine_flags, build_argv): Handle auto_key_locate.
 2945 	(gpg_release): Free auto_key_locate.
 2946 	* src/gpgme.c (gpgme_release): Free auto_key_locate.
 2947 	(gpgme_get_ctx_flag, gpgme_set_ctx_flag): Handle auto-key-locate.
 2948 	* doc/gpgme.texi: Document auto-key-locate flag.
 2949 	* tests/run-keylist.c (show_usage, main): Add --from-wkd option.
 2950 
 2951 2018-07-07  Ben McGinnes  <ben@adversary.org>
 2952 
 2953 	python bindings: howto examples.
 2954 	+ commit cacca62d06c6cf4a291f7ab2571cf52d671d140f
 2955 	* Made sure all example scripts meet PEP8 compliance.
 2956 	* Required fixing approx. a dozen of them in minor ways.
 2957 
 2958 2018-07-05  Andre Heinecke  <aheinecke@intevation.de>
 2959 
 2960 	qt: Handle OpenPGP Diagnostic log.
 2961 	+ commit 66c2a99422dd9a52d8342165ed1d033c4f29b9e0
 2962 	* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html):
 2963 	Handle OpenPGP audit log differently.
 2964 
 2965 	cpp: Add enum mapping for GPGME_AUDIT_LOG_DIAG.
 2966 	+ commit 629afebe5017db97f2a318f6878fe1f9d3e60189
 2967 	* src/context.cpp (to_auditlog_flags): Map DIAG value.
 2968 	* src/context.h (AuditLogFlags): Add it.
 2969 
 2970 	core: Add gpg auditlog to get diagnostics.
 2971 	+ commit a2458806f8bf04b66795e1dde765b42fe1ef6797
 2972 	* src/engine-gpg.c (engine_gpg): Add diagnostics member.
 2973 	(gpg_release): Release diagnostics data.
 2974 	(gpg_new): Set up logger-fd and diagnostics.
 2975 	(gpg_getauditlog): New. Copy diagnostics to a user data.
 2976 	(engine_ops): Add getauditlog.
 2977 	* src/engine-gpgsm.c (gpgsm_getauditlog): Return not implemented
 2978 	for GPGME_AUDITLOG_DIAG.
 2979 	* src/getauditlog.c (getauditlog_start): Don't reset engine
 2980 	for diagnostics.
 2981 	* src/gpgme.h.in (GPGME_AUDITLOG_DIAG): New.
 2982 	(GPGME_AUDITLOG_DEFAULT): New alias to 0.
 2983 	* tests/run-decrypt.c (show_usage, main): Add --diagnostics.
 2984 	* doc/gpgme.texi(Additional Logs): Document getauditlog.
 2985 
 2986 2018-07-04  Andre Heinecke  <aheinecke@intevation.de>
 2987 
 2988 	cpp: Fix memory of DecryptionResult::symkeyAlgo.
 2989 	+ commit 7d65dc2a5c4f32139a1b9b1f0bd375f7ab1c58f6
 2990 	* lang/cpp/src/decryptionresult.cpp (Private, ~Private): strdup
 2991 	the symkey algo.
 2992 
 2993 	json: Add keylist mode locate.
 2994 	+ commit 76b847091593669c8a7e38918267d6be97dbd4d0
 2995 	* src/gpgme-json.c (op_keylist, hlp_keylist): Add locate.
 2996 
 2997 2018-07-01  Ben McGinnes  <ben@adversary.org>
 2998 
 2999 	python bindings: scheming serpents.
 3000 	+ commit 5bca49975063f788b2499342d5a565faf54511db
 3001 	* Apparently I am wrong and Scheme is the new Python after all.
 3002 	* Non-import related PEP8 compliance must wait for another day, though
 3003 	  the other PEP8 fixes remain.
 3004 
 3005 	python bindings: gpg.core.
 3006 	+ commit 789ea1b019885d5d1db1662e3cd4fda33636e30c
 3007 	* Changed id/else statements to a more pythonic form from scheme
 3008 	  masquerading as python - sorry Justus, it had to go ;).
 3009 	* With the added bonus of enabling PEP8 compliance in those sections.
 3010 	* Fixed remaining PEP8 compliance issues with the exception of the
 3011 	  imports at the beginning of the file (changing those will break the
 3012 	  entire module, so we'll cope with it as it is).
 3013 
 3014 2018-06-29  Ben McGinnes  <ben@adversary.org>
 3015 
 3016 	m4 update: python 3.7.
 3017 	+ commit 35e29e139534ed217340879732a7adfdbd57c91d
 3018 	* Fixed an error in arcane m4 syntax.
 3019 
 3020 	python bindings: python 3.7.
 3021 	+ commit 43a2b5754571292b25402e20cd044ebda9316c77
 3022 	* Bindings confirmed to work with the newly released 3.7.0.
 3023 	* Updated M4 file to reflect this change and correct the Python binary
 3024 	  search order (3.7 is not yet given priority, but will still be found
 3025 	  first via the more generic python3 executable).
 3026 	* Updated setup.py.in, bindings documentation and README to reflect this.
 3027 
 3028 2018-06-28  Ben McGinnes  <ben@adversary.org>
 3029 
 3030 	whitespace police:
 3031 	+ commit 48174b2bcc319e4542aefd0cc3aae02c4083784e
 3032 	* There's always one or, in this case, two.
 3033 
 3034 	docs: python bindings howto.
 3035 	+ commit 6aec7d6e4a5173f54a079719020704a0098b8f0a
 3036 	* Updated official doc (the org-mode file) with the instructions on
 3037 	  importing and exporting both public and secret keys.
 3038 
 3039 	python bindings examples.
 3040 	+ commit a7ccdc51efd8c199b902eb942e9db7b3549e721f
 3041 	* Added a secret key export variant which saves output as both GPG
 3042 	  binary and ASCII armoured, plus saves in $GNUPGHOME and uses
 3043 	  multiple methods of determining what that location is.
 3044 
 3045 	python bindings examples.
 3046 	+ commit 7fc7e80e54235c558051cbf72b51dd60b4ca485e
 3047 	* Added a key import variant which accesses the SKS keyservers in a
 3048 	  RESTful fashion and then imports or attempts to import the response.
 3049 
 3050 	python bindings examples: three export scripts.
 3051 	+ commit 0d163a7d121eacacc5f6da11a3dee3548f98f124
 3052 	* Example of default exporting keys.
 3053 	* Example of exporting minimised keys.
 3054 	* Example of exporting secret keys to a file with correct permissions.
 3055 
 3056 	python bindings: import example.
 3057 	+ commit 4251cae34da0d825a29f509ac828f7ecb90c1752
 3058 	* Added an example script for importing a key from a file (either
 3059 	  ASCII armoured or not).
 3060 
 3061 	python bindings: export secret keys.
 3062 	+ commit a5b91b21f561d7b13ddcb62fca3749ed92ea8720
 3063 	* The holy grail: a function to export secret keys.
 3064 	* GPGME will still invoke pinentry and gpg-agent as usual to authorise
 3065 	  the export.
 3066 	* Mostly similar to the two previous export functions for public keys
 3067 	  except that it will return None if the result had a length of zero
 3068 	  bytes.  Meaning that the difference between the specified pattern
 3069 	  (if any) not matching available keys and an incorrect passphrase is
 3070 	  not able to be determined from this function (or the underlying one
 3071 	  for that matter).
 3072 
 3073 	python bindings: export public keys.
 3074 	+ commit 7faef33d13fa8efce152ca7aa6e9d39030c1cf08
 3075 	* Updated key_export and key_export_minimal to return None where a
 3076 	  pattern matched no keys in a manner simnilar to the possible result
 3077 	  of key_export_secret.
 3078 
 3079 	python bindings: export public keys.
 3080 	+ commit 89c548efdf46bd7d9e6f0ca34a07efbbf420e821
 3081 	* Added functions for exporting public keys to gpg.core in both
 3082 	  complete form and in minimised form.
 3083 	* Rather than letting people need to worry about the export modes we
 3084 	  are simply separating the functions as people would be more familiar
 3085 	  with from the command line usage anyway.
 3086 	* Functions added for Context are: ctx.key_export_minimal and
 3087 	  ctx.key_export as the default or full export.
 3088 
 3089 2018-06-20  Andre Heinecke  <aheinecke@intevation.de>
 3090 
 3091 	json: Add file handling for debug output.
 3092 	+ commit d8beab30c44482fb7a3e445b92cec482792b2ca0
 3093 	* src/gpgme-json.c (main): Add possibilty to set log file.
 3094 
 3095 2018-06-19  Andre Heinecke  <aheinecke@intevation.de>
 3096 
 3097 	Prepare build system for gpgme-js and dist it.
 3098 	+ commit d27703ea4f0eed950cddf0157dc78bcb5d8d1c65
 3099 	* configure.ac: Add js as language.
 3100 	* lang/Makefile.am: Add js as dist language.
 3101 	* lang/js/BrowserTestExtension/Makefile.am,
 3102 	lang/js/DemoExtension/Makefile.am,
 3103 	lang/js/Makefile.am,
 3104 	lang/js/src/Makefile.am: Populate EXTRA_DIST variables.
 3105 
 3106 2018-06-17  Ben McGinnes  <ben@adversary.org>
 3107 
 3108 	python bindings: core import statements.
 3109 	+ commit 19c5267f868aa41e73752ac1c76ec7ae1efe07b8
 3110 	* Fixed the bit I broke while fixing the PEP8 compliance issues.
 3111 
 3112 	python bindings: core — PEP8 compliance.
 3113 	+ commit a5b24ae46c81d3abd3bb18bf0390cab6ebb2bd77
 3114 	* Fixed most of the PEP8 errors in core.py
 3115 	* Those remaining may need more than little edits and are a bit
 3116 	  strange (too clearly the result of a programmer who has spent far
 3117 	  too much time dealing with Lisp so that for Python it looks
 3118 	  ... strange).
 3119 
 3120 	python bindings: core - key import.
 3121 	+ commit 5a80e755008bbb3f4c7f91ffccd38f26cd8b3960
 3122 	* Wrapped the key import function in the try/exception statements
 3123 	  needed to catch at least the most likely unsuccessful import attempt
 3124 	  errors.
 3125 	* Mostly draws on the file error and no data import statuses for
 3126 	  errors, with a couple of exceptions.
 3127 
 3128 	python bindings: core key import.
 3129 	+ commit 0e762608ef5a598030b8d0e56261a830e1b7b724
 3130 	* The foundation of a pythonic key import function authored by Jacob
 3131 	  Adams.
 3132 	* A unit testing script for the same function originally authored by
 3133 	  Tobias Mueller
 3134 	* Added DCO reference for Jacob Adams to the GPGME AUTHORS file.
 3135 	* Additional details regarding this patch are available here:
 3136 	  https://dev.gnupg.org/T4001
 3137 
 3138 2018-06-10  Ben McGinnes  <ben@adversary.org>
 3139 
 3140 	script: groups.py.
 3141 	+ commit 92cd060f5e2f4fdbfbe4812ebe8ef57e82e1609f
 3142 	* Added check for if it is run on a Windows system so that the correct
 3143 	  binary filename is invoked.
 3144 
 3145 2018-06-08  Andre Heinecke  <aheinecke@intevation.de>
 3146 
 3147 	cpp: Add proper gpgme_op_createkey.
 3148 	+ commit 8dff414e170e4df8ea661028c4ac1588311ca26e
 3149 	* lang/cpp/src/context.cpp, lang/cpp/src/context.h
 3150 	(Context::createKeyEx): New.
 3151 
 3152 	json: Return fingerprint as createkey result.
 3153 	+ commit 54146d90dd5518c24c30e6d2ebeb7f47ed4eb29e
 3154 	* src/gpgme-json.c (op_createkey): Return fingerprint of new key.
 3155 
 3156 	json: Add op_createkey.
 3157 	+ commit 6c74a59e8855d1cac0d8001ad1b7843d2d15be5e
 3158 	* src/gpgme-json.c (hlp_createkey, op_createkey): New.
 3159 	(process_request, hlp_help): Add it.
 3160 
 3161 	json: Generalize chunking and getmore.
 3162 	+ commit af8510fb7f4d5c90cc53f10dcc740f377af73d68
 3163 	* src/gpgme-json.c (MIN_REPLY_CHUNK_SIZE): Lower value to
 3164 	new real minimum.
 3165 	(DEF_REPLY_CHUNK_SIZE): Don't chunk by default.
 3166 	(pending_data): Remove type and base64.
 3167 	(make_data_object): Remove chunksize handling as this is now
 3168 	generic.
 3169 	(encode_and_chunk): Setup the pending_data buffer for chunking
 3170 	if required.
 3171 	(op_getmore): Changed to generically work on a response.
 3172 	(hlp_getmore): Update accordingly.
 3173 	(hlp_help): Document chunksize as generic parameter for all commands.
 3174 	(process_request): Use encode_and_chunk on the response.
 3175 	(hlp_encrypt, op_encrypt, hlp_decrypt, op_decrypt),
 3176 	(hlp_verify, op_verify, hlp_sign, op_sign),
 3177 	(op_keylist, hlp_keylist, hlp_export, op_export): Update accordingly.
 3178 
 3179 2018-06-07  Andre Heinecke  <aheinecke@intevation.de>
 3180 
 3181 	json: Rework verify_result_to_json.
 3182 	+ commit e48f4a18f807ee42b31968b84f6ae7811d8d8a45
 3183 	* src/gpgme-json.c (sigsum_to_json): Add bool repr.
 3184 	(signature_to_json, verify_result_to_json): Extend and follow better
 3185 	pattern.
 3186 	(hlp_decrypt, hlp_verify): Expand doc.
 3187 
 3188 	json: Add direct way to query a config option.
 3189 	+ commit 906ea48df3e178bea3e2c744ddd834b23fe553fb
 3190 	* src/gpgme-json.c (op_config_opt, hlp_config_opt): New operation.
 3191 	(process_request, hlp_help): Add it.
 3192 
 3193 	json: Add op_config to query gpgconf.
 3194 	+ commit 7e18c7a07a1e2c58ef4d5ddeed46bcce098bdf6c
 3195 	* src/gpgme-json.c (op_config, hlp_config): New.
 3196 	(hlp_help, process_request): Add config.
 3197 	(conf_arg_to_json, conf_opt_to_json, conf_comp_to_json): New
 3198 	helpers.
 3199 
 3200 2018-06-07  Ben McGinnes  <ben@adversary.org>
 3201 
 3202 	examples: python howto.
 3203 	+ commit a3a08584d6e57c4b2a40d74dc52a7d8c5c11b501
 3204 	* Uses the groups module to prepare a list of recipients and encrypt
 3205 	  to those.
 3206 	* The main version (encrypt-to-group.py) tries to check for invalid
 3207 	  recipients, but still falls back to always trust for the second
 3208 	  encryption attempt.
 3209 	* The gullible version doesn't try pruning the recipient list at all,
 3210 	  it just tries to encrypt and if it fails, switches straight to
 3211 	  always trust.
 3212 	* The trustno1 version doesn't use the always trust model at all and
 3213 	  only attempts pruning the list of invalid recipients.
 3214 
 3215 2018-06-06  Werner Koch  <wk@gnupg.org>
 3216 
 3217 	core: Return a better error code on certain decryption failures.
 3218 	+ commit 2c4c5692472f5870f907c2c3f01870879cb0c34b
 3219 	* src/decrypt.c (op_data_t): Add field first_status_error.
 3220 	(parse_status_error): Set it.
 3221 	(_gpgme_decrypt_status_handler): Prefer an ERROR code over a
 3222 	NO_SECKEY.
 3223 
 3224 2018-06-05  Werner Koch  <wk@gnupg.org>
 3225 
 3226 	json: Allow to compile with libgpg-error < 1.28.
 3227 	+ commit 998fec8a4fbc46315fe6836980954eed402b38c5
 3228 	* src/cJSON.c: Use gpgrt fucntion only if available.
 3229 
 3230 2018-06-02  Ben McGinnes  <ben@adversary.org>
 3231 
 3232 	docs: python bindings howto.
 3233 	+ commit 897423422b9d3b856bfb72fbe1995b91d153a54e
 3234 	* Another attempt at fixing the org-mode version.
 3235 	* A proof reader ascertained there were tabs in it instead of whitespace.
 3236 	* Stripped the lot out and replaced with standard 4 spaces, fixed
 3237 	  every incorrect example ... and it still breaks upon save and/or export.
 3238 	* Added the reference to the mutt-groups.py script to demonstrate the
 3239 	  groups.py module/code.
 3240 
 3241 	Authors: DCO.
 3242 	+ commit e144a6d70657675e28d43e42b48d879ff9b81d73
 3243 	* Added mine to the GPGME AUTHORS file.  Mainly so I'm doing what I
 3244 	  say myself when about to request another from someone ...  ;)
 3245 
 3246 2018-06-01  Andre Heinecke  <aheinecke@intevation.de>
 3247 
 3248 	cpp: Add gpgme_(get)set_ctx_flag.
 3249 	+ commit 00b027af86f33782933c6200fe1ffe40e85f4346
 3250 	* NEWS: Mention API extensions.
 3251 	* lang/cpp/src/context.cpp, lang/cpp/src/context.h
 3252 	(Context::setFlag, Context::getFlag): New.
 3253 
 3254 	cpp: Add legacy_cipher_nomdc.
 3255 	+ commit d46768c96082b4fd076506d7d3f0c03e61c59d51
 3256 	* lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h
 3257 	(DecryptionResult::isLegacyCipherNoMDC): New.
 3258 
 3259 2018-06-01  Werner Koch  <wk@gnupg.org>
 3260 
 3261 	core: New context flag "ignore-mdc-error".
 3262 	+ commit 662604c5bcb4e03d3c9ecc670d4f320a2418ebb3
 3263 	* src/context.h (gpgme_context): Add field ignore_mdc_error.
 3264 	* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Set/get it.
 3265 	* src/engine-gpg.c (engine_gpg): Add flags.ignore_mdc_error.
 3266 	(gpg_set_engine_flags): Set it.
 3267 	(build_argv): Pass option to gpg.
 3268 	* src/decrypt.c (_gpgme_decrypt_status_handler): Take care of flag.
 3269 	(gpgme_op_decrypt_result): Clear flag.
 3270 	(gpgme_op_decrypt): Clear flag.
 3271 	* src/decrypt-verify.c (gpgme_op_decrypt_verify): Clear flag
 3272 	(gpgme_op_decrypt_ext): Clear flag.
 3273 
 3274 	* tests/run-decrypt.c (show_usage): Add option --ignore-mdc-error.
 3275 
 3276 	core: New decryption result flag 'legacy_cipher_nomdc'.
 3277 	+ commit dd19cabe81b7bf4177ea2ca741f6eb6cd1cab25e
 3278 	* src/gpgme.h.in (_gpgme_op_decrypt_result): Add flag
 3279 	legacy_cipher_nomdc.
 3280 	* src/decrypt.c (parse_status_error): Set this flag.
 3281 	* tests/run-decrypt.c (print_result): print it.
 3282 	(main): Print the result even on error.
 3283 
 3284 	core: Remove cruft from the engine-gpg code.
 3285 	+ commit e2aa38b56a991a0da052acfe7566cc7a146d3bb6
 3286 	* src/engine-gpg.c (read_status): Remove the handling of
 3287 	GPGME_STATUS_END_STREAM; this was used only by the former experimental
 3288 	--pipemode of gpg but that is not even anymore invoked here.
 3289 	(struct engine_gpg): Remove cmd.linked_data and .linked_idx.
 3290 	(build_argv): Remove code for linked_data.
 3291 	(gpg_new): Ditto.
 3292 	(gpg_set_command_handler): Remove arr linked_data.
 3293 	* src/engine-backend.h (engine_ops): Remove arg data from
 3294 	set_command_handler.
 3295 	* src/engine.c (_gpgme_engine_set_command_handler): Remove arg
 3296 	linked_data and adjust all callers.
 3297 
 3298 	core: Minor cleanup in engine-gpg and -gpgsm.
 3299 	+ commit 2219fc19d58ae1071493de92093b711f3c71454a
 3300 	* src/engine-gpg.c: Remove errno.h.
 3301 	(build_argv): Use gpg_error_from_syserror instead of ERRNO.
 3302 	* src/engine-gpgsm.c: Remove errno.h.
 3303 	(status_handler): Remove check for EINTR; gpgme_data_write already
 3304 	handles EINTR.
 3305 
 3306 2018-05-29  Andre Heinecke  <aheinecke@intevation.de>
 3307 
 3308 	cpp: Add gpgme_data_rewind to cpp API.
 3309 	+ commit 618aa7f08db41911f25632d9fba23bca80908ebe
 3310 	* lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::rewind): New.
 3311 	* lang/qt/tests/t-various.cpp (testDataRewind): Test it.
 3312 
 3313 2018-05-28  Werner Koch  <wk@gnupg.org>
 3314 
 3315 	json: Fix compiler warning.
 3316 	+ commit 77166851f165b1220dcf0116bb61f81e58e4512f
 3317 	* src/gpgme-json.c (op_version): Mark request as unused.
 3318 
 3319 	json: Do not allow to export or delete secret keys.
 3320 	+ commit 0de991fee05a9733ac29b2fa35643fe4607e56cb
 3321 	* src/gpgme-json.c (op_export, op_delete): Return GPG_ERR_FORBIDDEN if
 3322 	"secret" is used.
 3323 
 3324 	json: Fix use of get_context.
 3325 	+ commit 368f2d9db30df16328b34787419de99fe3e1e2f1
 3326 	* src/gpgme-json.c (create_onetime_context): New.
 3327 	(release_onetime_context): New.
 3328 	(op_sign): Use the new fucntions to create a separate context.
 3329 	(op_encrypt): Use a separate context for key listings.
 3330 	(create_keylist_patterns): Remove unneeded cast.
 3331 
 3332 2018-05-25  Andre Heinecke  <aheinecke@intevation.de>
 3333 
 3334 	json: Implement encrypt-sign.
 3335 	+ commit 7aa00917c7f13294584daba31a506730f0015ef5
 3336 	* src/gpgme-json.c (op_encrypt): Add optional signing_keys param.
 3337 	(get_keys, create_keylist_patterns): Add param for json object name.
 3338 
 3339 	json: Implement delete command.
 3340 	+ commit 73dc5e933d609989bd9ec428c89ada95d5eaec8a
 3341 	* src/gpgme-json.c (op_delete): New.
 3342 	(hlp_help, process_request): Add it.
 3343 
 3344 	json: Implement op_export.
 3345 	+ commit a1bbe7473a4d0f31d471d6cceb2f7e1382860194
 3346 	* src/gpgme-json.c (op_export): New.
 3347 	(hlp_getmore, process_request): Add it.
 3348 
 3349 	json: Fix double ctx alloc.
 3350 	+ commit 897522527d493307d15809a41496f8b76ec4edfe
 3351 	* src/gpgme-json.c (op_keylist): Only get one ctx.
 3352 
 3353 	json: Add guard in create_keylist_patterns.
 3354 	+ commit 10683b1a913c39238c9871f5aa607334f32467f7
 3355 	* src/gpgme-json.c (create_keylist_patterns): Guard against
 3356 	a string ending with a linbreak.
 3357 
 3358 	json: Implement import operation.
 3359 	+ commit 1ff16dad595946af140b324fad2bceca7ddbc378
 3360 	* src/gpgme-json.c (op_import): New.
 3361 	(import_status_to_json, import_result_to_json): New.
 3362 	(hlp_help, process_request): Add import.
 3363 
 3364 	json: Improve keylist help.
 3365 	+ commit fe06929deec6544e2f267937dc5dafe2555bf485
 3366 	* src/gpgme-json.c (hlp_keylist): Clarify doc about keys parameter.
 3367 
 3368 	json: Fix keylist pattern handling.
 3369 	+ commit 10724e363d6b5b06f51808287ad63e142e419ae6
 3370 	* src/gpgme-json.c (xfree_array): New helper.
 3371 	(create_keylist_patterns): Convert keystring to gpgme patterns.
 3372 	(op_sign, op_keylist): Use it.
 3373 
 3374 	json: Add additional commands to help.
 3375 	+ commit ed20936ce4d5bb066828346b9a06d2dfa8d6afb2
 3376 	* src/gpgme-json.c (hlp_help): Add additional commands.
 3377 
 3378 	json: Refactor signature and ei code.
 3379 	+ commit aa59f4970ac106ccd17fa9fadfc264d11e4cd347
 3380 	* src/gpgme-json.c (add_summary_to_object): Changed to:
 3381 	sigsum_to_json.
 3382 	(add_signature_to_object): Changed to signature_to_json.
 3383 	(add_signatures_to_object): Changed to verify_result_to_json.
 3384 	(add_ei_to_object): Changed to engine_info_to_json.
 3385 	(op_decrypt, op_verify, op_version): Use new functions.
 3386 
 3387 	json: Implement keylist.
 3388 	+ commit 546e3295eaade073c34364c4ea6ab007532824d8
 3389 	* src/gpgme-json.c (xjson_AddStringToObject0)
 3390 	(xjson_AddItemToObject): New helpers.
 3391 	(sig_notation_to_json, key_sig_to_json, tofu_to_json)
 3392 	(uid_to_json, subkey_to_json, key_to_json): New
 3393 	GPGME to JSON functions.
 3394 	(op_keylist): New.
 3395 	(process_request): Add op_keylist.
 3396 
 3397 	json: Deduplicate input handling code.
 3398 	+ commit a46c27b32111b1737a405c5be48c0f9ddbbbb353
 3399 	* gpgme-json.c (get_string_data): New.
 3400 	(op_verify, op_sign, op_decrypt, op_encrypt): Use it.
 3401 
 3402 2018-05-24  Ben McGinnes  <ben@adversary.org>
 3403 
 3404 	examples: mutt crypt-hooks generator.
 3405 	+ commit 321005c12f716814d86e139eb265437bda01380f
 3406 	* Added a script which demonstrates how the groups module works.
 3407 	* Script generates Mutt/Neomutt crypt-hooks for every group entry in
 3408 	  gpg.conf, including those entries for multiple keys (Mutt handles
 3409 	  that differently).
 3410 
 3411 	docs: python bindings howto.
 3412 	+ commit 48e946a96d05effd56b34761b98eebb6b2a6fae1
 3413 	* Fixed the groups.py script so it really does what is described (the
 3414 	  old code had the same result for groups, group_lines and
 3415 	  group_lists).
 3416 	* Updated the corresponding example in the doc to match.
 3417 
 3418 	doc: python bindings howto.
 3419 	+ commit 9038d30017b2e38b183d093f9b5d46e1f24c70a6
 3420 	* Fixed org-mode python source indenting.
 3421 	** Note: nested indented blocks do not indent correctly when exported
 3422 	   to [X]HTML.
 3423 
 3424 2018-05-24  Andre Heinecke  <aheinecke@intevation.de>
 3425 
 3426 	json: Add code to gpg_error based messages.
 3427 	+ commit 9fca7c84067c0d4c968c8920dc8ef9449769c5ea
 3428 	* src/gpgme-json.c (gpg_error_object): New.
 3429 	(error_object_v): Extend to take error.
 3430 
 3431 	json: Implement op_version.
 3432 	+ commit 61f4532ba979dea1acd8c7de9b7d56bb8ff552d5
 3433 	* src/gpgme-json.c (op_version): New.
 3434 	(process_request): Extend for version.
 3435 	(protocol_to_string, add_ei_to_object): New helpers.
 3436 
 3437 	json: Implement op_verify.
 3438 	+ commit 5fbf81c18b277b30639ba09e8c5d21573b444b00
 3439 	* src/gpgme-json.c (op_verify): New.
 3440 	(hlp_help): Add verify.
 3441 	(process_request): Add verify.
 3442 
 3443 	json: Put signature info before data output.
 3444 	+ commit c679ed24778c997fee72d3613babad8680855882
 3445 	* src/gpgme-json.c (op_decrypt): Move info before data.
 3446 
 3447 	json: Add sign to help.
 3448 	+ commit a6cd3a1197eb4efea0950394959c252f24475f67
 3449 	* src/gpgme-json.c (hlp_help): Add sign.
 3450 
 3451 	json: Add op_sign.
 3452 	+ commit 1c0a55a60847563fecf92a383457ab3576aec5d8
 3453 	* src/gpgme-json.c (op_sign): New.
 3454 
 3455 	json: Fix invalid function call.
 3456 	+ commit b344933e4cb17f2f26c4ed355217428bda8b8c40
 3457 	* src/gpgme-json.c (add_signatures_to_object): Fix call to
 3458 	xjson_CreateArray.
 3459 
 3460 	json: Print signatures for decrypt/verify.
 3461 	+ commit 45036c3c4c11f7bd56a00805564108e9377b657e
 3462 	* gpgme-json.c (xJSON_CreateArray),
 3463 	(add_summary_to_object, validity_to_string): New helpers.
 3464 	(add_signature_to_object, add_signatures_to_object)
 3465 	(add_signatures_object): New.
 3466 	(op_decrypt): Handle verify_result.
 3467 	(hlp_help): Mention decrypt.
 3468 
 3469 	json: Minor typo fixes.
 3470 	+ commit fd5e14660a6f4eb1a89d69534e3e435f7fb05f8a
 3471 	* src/gpgme-json.c: Minor typo fixes.
 3472 
 3473 2018-05-23  Ben McGinnes  <ben@adversary.org>
 3474 
 3475 	docs and examples: python howto.
 3476 	+ commit 3a9e6a8e088e233097866bb0560a36cfbbc4470e
 3477 	* Updated the decryption example code in the HOWTO and the
 3478 	  corresponding decrypt-file.py script to gracefully handle a
 3479 	  decryption failure.  This error will always be triggered when GPGME
 3480 	  is used to try to decrypt an old, MDC-less encrypted message or
 3481 	  file.
 3482 
 3483 2018-05-22  Andre Heinecke  <aheinecke@intevation.de>
 3484 
 3485 	cpp: Expose sessionKey and symkeyAlgo.
 3486 	+ commit 28e3778ce21069006153bc156a414de6d9347962
 3487 	* lang/cpp/decryptionresult.cpp, lang/cpp/decryptionresult.h
 3488 	(DecryptionResult::symkeyAlgo, DecryptionResult::sessionKey): New.
 3489 
 3490 2018-05-17  Andre Heinecke  <aheinecke@intevation.de>
 3491 
 3492 	core, w32: Add w64 handling for regkeys.
 3493 	+ commit e04b8142df21a49e6c4a3f8234cc14bfec217222
 3494 	* src/w32-util.c (_gpgme_get_gpg_path): Use new defines.
 3495 	(GNUPG_REGKEY_2): x64 aware regkey as used by GnuPG in Gpg4win 2.x
 3496 	(GNUPG_REGKEY_3): x64 aware regkey as used by GnuPG in Gpg4win 3.x
 3497 	(_gpgme_get_gpgconf_path): Use new regkeys. Add another fallback.
 3498 
 3499 2018-05-17  Werner Koch  <wk@gnupg.org>
 3500 
 3501 	core: Always fail if an OpenPG message is not integrity protected.
 3502 	+ commit 8a0c8c52510d9c2d934f85159f04b666286b1786
 3503 	* src/decrypt.c (struct op_data_t): Add field not_integrity_protected.
 3504 	(parse_decryption_info): Set this.  Also rename mode to aead_algo for
 3505 	clarity.
 3506 	(_gpgme_decrypt_status_handler): Force failure in case of a missing
 3507 	MDC.
 3508 
 3509 2018-05-09  Werner Koch  <wk@gnupg.org>
 3510 
 3511 	json: Improve auto-base64 encoding to not split UTF-8 chars.
 3512 	+ commit e54b110aec3165a32ff9551d0c5227b88aa3dd4f
 3513 	* src/gpgme-json.c (make_data_object): Switch to Base64 also for UTF-8
 3514 	characters.
 3515 
 3516 	core: Make the status-fd monitor work for all gpgsm commands.
 3517 	+ commit e2a8a87bf9cfae5d4e8a5953c2a5303b44feb398
 3518 	* src/engine-gpgsm.c (status_handler): Call the status monitor also
 3519 	here.
 3520 
 3521 2018-05-05  Ben McGinnes  <ben@adversary.org>
 3522 
 3523 	python: key expiration datetime stamp tests.
 3524 	+ commit 46da79e3de99a7b65748994921d6aab73b9974e7
 3525 	* Changed the expiration date for the generated test key to NYE this
 3526 	  century, rather than the NYE this millennium as originally suggested
 3527 	  in job #3815.
 3528 	* This covers the lifetimes of current users (except, maybe, some very
 3529 	  healthy millennials) as well as the 32-bit clock end date in 2038;
 3530 	  without falling foul of OpenPGP's 2106 expiration.
 3531 
 3532 2018-05-04  Andre Heinecke  <aheinecke@intevation.de>
 3533 
 3534 	qt: Respect --disable-gpg-test for tests.
 3535 	+ commit 26820ba62920acfe2775bce8fc2bc8b3f17b1c10
 3536 	* lang/qt/Makefile.am: Respect --disable-gpg-test
 3537 
 3538 2018-04-26  Andre Heinecke  <aheinecke@intevation.de>
 3539 
 3540 	qt: Fix filename handling in cryptoconfig.
 3541 	+ commit 6b267c56fd6e54fb1c254455c04495534260b547
 3542 	* src/qgpgmenewcryptoconfig.cpp (QGpgMENewCryptoConfigEntry::urlValue):
 3543 	Build url from local file.
 3544 	(QGpgMENewCryptoConfigEntry::setURLValue): Set native seperated
 3545 	path.
 3546 
 3547 2018-04-20  Maximilian Krambach  <maximilian.krambach@intevation.de>
 3548 
 3549 	js: encrypt improvement and decrypt method.
 3550 	+ commit 6ab25e40d904007755c5d999bf66ae264236e745
 3551 	* Compatibility class gpgme_openpgpjs offers an API that should accept
 3552 	  openpgpjs syntax, throwing errors if a parameter is unexpected/not
 3553 	  implemented
 3554 	* tried to be more generic in methods
 3555 	* waiting for multiple answers if 'more' is in the answer
 3556 	* more consistency checking on sending and receiving
 3557 	* updated the example extension
 3558 
 3559 2018-04-20  Andre Heinecke  <aheinecke@intevation.de>
 3560 
 3561 	core: Do not modify args for ignored failures.
 3562 	+ commit 7706fa2c922f5e02570b01f145ed474e82341042
 3563 	* src/op-support.c (_gpgme_parse_failure): Ignore gpg-exit failures
 3564 	before modifying args.
 3565 
 3566 2018-04-20  Werner Koch  <wk@gnupg.org>
 3567 
 3568 	Release 1.11.1.
 3569 	+ commit 2e9a14912fb906c17017553ccd0941d172e095ff
 3570 	* configure.ac: Bump LT version to C31/A20/R1.  For cpp to C13/A7/R0.
 3571 	For qt to: C10/A3/R2.
 3572 
 3573 	core: Remove another debug output leftover.
 3574 	+ commit f779362ffbc7b9334d98f9ee50bfe3c2dc177215
 3575 	* src/decrypt.c (_gpgme_decrypt_status_handler): Remove log debug.
 3576 
 3577 	build: More release creation automation.
 3578 	+ commit d11bec5ef5e576dab52c1dc7d87758e4f9bf3583
 3579 	* Makefile.am: Add release and sign-release targets.
 3580 
 3581 2018-04-19  Werner Koch  <wk@gnupg.org>
 3582 
 3583 	json: Remove the -noinstall flag used during development.
 3584 	+ commit ab43d85b9a76fb5ba321f4c7280b4d72bfd67f59
 3585 	* src/Makefile.am (gpgme-json_LDFLAGS): Remove.
 3586 
 3587 2018-04-19  Andre Heinecke  <aheinecke@intevation.de>
 3588 
 3589 	cpp: Add origin and last_update to UserID.
 3590 	+ commit d65d6329319bff8cc555999fc92a20e151762a10
 3591 	* NEWS: Mention it.
 3592 	* lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::lastUpdate),
 3593 	(UserID::origin): New.
 3594 	(gpgme_origin_to_pp_origin): New helper.
 3595 
 3596 	cpp: Add origin and last_update.
 3597 	+ commit 0adaf7bafd352f1c3a1e797493780150e3bb0adc
 3598 	* NEWS: mention interface change.
 3599 	* lang/cpp/src/key.cpp (Key::origin, Key::lastUpdate): New.
 3600 	* lang/cpp/src/key.h (Key::Origin): New enum.
 3601 
 3602 2018-04-19  Werner Koch  <wk@gnupg.org>
 3603 
 3604 	core: Remove leftover debug output.
 3605 	+ commit b52a91f5a6818db6b3dd7ce86c01b5d5f6700d0d
 3606 	* src/verify.c (_gpgme_verify_status_handler): Remove debug output.
 3607 
 3608 	tests: Fix t-verify test for GnuPG < 2.2.7.
 3609 	+ commit 3d8e5c07511938a0b30b4626530822338abd9ec0
 3610 	* tests/gpg/t-verify.c (check_result): Tweak for gnupg < 2.2.7.
 3611 
 3612 2018-04-18  Werner Koch  <wk@gnupg.org>
 3613 
 3614 	Release 1.11.0.
 3615 	+ commit 3f55c52b9adc3680c7a9fb0e598598e6ed3a2a5d
 3616 	* configure.ac: Bump LT version to C31/A20/R0.  For cpp to C12/A6/R0.
 3617 	For qt to: C10/A3/R1.
 3618 
 3619 	json: Add stpcpy replacement.
 3620 	+ commit 8e34a14fe694a8c765973aaa3a8b2a2d2c3ba8b9
 3621 	* src/gpgme-json.c [!HAVE_STPCPY](_my_stpcpy): New.
 3622 
 3623 	core: New convenience constant GPGME_KEYLIST_MODE_LOCATE.
 3624 	+ commit 55e9a94680370e584fbe5d21161a2cee3fe95744
 3625 	* src/gpgme.h.in (GPGME_KEYLIST_MODE_LOCATE): New.
 3626 
 3627 	json: Add command "decrypt" to gpgme-json.
 3628 	+ commit e5273fc4431dfb597a2d9cf4af5172572476a2de
 3629 	* src/gpgme-json.c (make_data_object): Enable auto-detection of
 3630 	base-64.
 3631 	(op_encrypt): Support a 'mime' flag.
 3632 	(op_decrypt): New.
 3633 	(process_request): Add command "encrypt".
 3634 
 3635 	core: Add 'is_mime' flags to the verify and decrypt results.
 3636 	+ commit 65479fe7b871ad6237d5a8959b73afcc7db784da
 3637 	* src/op-support.c (_gpgme_parse_plaintext): Add arg r_mime.
 3638 	* src/decrypt.c (_gpgme_decrypt_status_handler): Ser mime flag.
 3639 	* src/verify.c (_gpgme_verify_status_handler): Ditto.
 3640 	* src/gpgme.h.in (gpgme_op_verify_result_t): Append fields 'is_mime'
 3641 	and '_unused'.
 3642 	(gpgme_op_decrypt_result_t): New field 'is_mime'.  Shrink '_unused'.
 3643 
 3644 	* tests/run-decrypt.c (print_result): Print MIME flag.
 3645 	* tests/run-verify.c (print_result): Ditto.
 3646 
 3647 	core: Fix possible compliance mode detection error.
 3648 	+ commit 23177e4410d05d590c0f2e1675dc645bbb4ad62c
 3649 	* src/verify.c (_gpgme_verify_status_handler): Insert missing break.
 3650 
 3651 	json: Improve help meta command in gpgme-json.
 3652 	+ commit 49a617f8bbff116884ca5c7238c2e0ea4e26ce59
 3653 	* src/gpgme-json.c (process_meta_commands): Add ",help CMD".
 3654 
 3655 	json: Add command "getmore" to gpgme-json.
 3656 	+ commit ed1052842df633bc149b14c4cb17859e3c66afe4
 3657 	* src/gpgme-json.c (MIN_REPLY_CHUNK_SIZE): New const.
 3658 	(DEF_REPLY_CHUNK_SIZE): New const.
 3659 	(MAX_REPLY_CHUNK_SIZE): New const.
 3660 	(pending_data): New var.
 3661 	(add_base64_to_object): Chnage to take a plain data pointer.
 3662 	(get_chunksize): New.
 3663 	(make_data_object): New.
 3664 	(op_encrypt): Get chunksize and use make_data_object.
 3665 	(op_getmore): New.
 3666 	(process_request): Release pending data for all commands but "getmore"
 3667 	and "help".
 3668 
 3669 	json: Add meta command ,read to gpgme-json.
 3670 	+ commit e69b175e8ed5430b56e2e8f3d68c16a45f0fed17
 3671 	* src/gpgme-json.c: Include stat.h.
 3672 	(get_file): New.
 3673 	(process_meta_commands): Implement ",read".
 3674 
 3675 2018-04-17  Werner Koch  <wk@gnupg.org>
 3676 
 3677 	core: Extend decryption result with symkey_algo.
 3678 	+ commit 01435da498af9f7538d7ee810392d7eaa407957e
 3679 	* src/gpgme.h.in (gpgme_op_decrypt_result_t): Add field 'symkey_algo'.
 3680 	* src/decrypt.c (release_op_data): Free SYMKEY_ALGO.
 3681 	(gpgme_op_decrypt_result): Make sure SYMKEY_ALGO is not NULL.
 3682 	(parse_decryption_info): New.
 3683 	(_gpgme_decrypt_status_handler): Parse DECRYPTION_INFO status.
 3684 	* src/conversion.c (_gpgme_cipher_algo_name): New.
 3685 	(_gpgme_cipher_mode_name): New.
 3686 
 3687 	* tests/run-decrypt.c (print_result): Print SYMKEY_ALGO
 3688 
 3689 	* src/util.h (_gpgme_map_gnupg_error): Remove obsolete prototype.
 3690 
 3691 	core: New keyword --file for OpenPGP recpstring.
 3692 	+ commit 3589da0500f1c80717e658d103a0cb2751d27b49
 3693 	* src/engine-gpg.c (append_args_from_recipients_string): Add new
 3694 	flags.
 3695 
 3696 	core: For OpenPGP let offline mode disable dirmngr.
 3697 	+ commit c143ab692c7fc7cf2ec0aebe40b9479ee15eaba9
 3698 	* src/engine-gpg.c (struct engine_gpg): New flag.offline.
 3699 	(gpg_set_engine_flags): Set it.  Also fix setting of no_symkey_cache.
 3700 	(build_argv): Pass --disable-dirmngr in offline mode.
 3701 
 3702 2018-04-17  Tobias Mueller  <muelli@cryptobitch.de>
 3703 
 3704 	python: Fix crash by leaving struct members intact.
 3705 	+ commit bbfa7c42337bb619e6af20bf051fe0755ed5a9fd
 3706 	* lang/python/setup.py.in: Copy gpgme.h instead of parsing it.
 3707 
 3708 2018-04-17  Werner Koch  <wk@gnupg.org>
 3709 
 3710 	core: Allow for --hidden keyword in OpenPGP recpstrings.
 3711 	+ commit 4bba3b8e2c350b8ff0d562ec63cc03a096448d84
 3712 	* src/engine-gpg.c (append_args_from_recipients_string): Add special
 3713 	keywords.
 3714 
 3715 	core: New encryption flag GPGME_ENCRYPT_WANT_ADDRESS.
 3716 	+ commit 86efba2be270d2cdd0bc66c9d3fe190495b7af2f
 3717 	* src/gpgme.h.in (GPGME_ENCRYPT_WANT_ADDRESS): New flag.
 3718 	* src/engine-gpg.c (add_arg_recipient): New.
 3719 	(add_arg_recipient_string): New.
 3720 	(append_args_from_recipients): Call new helper function.
 3721 	(append_args_from_recipients_string): Ditto.
 3722 	* src/gpgme-json.c (op_encrypt): Add flag "want-address".
 3723 
 3724 	core: Add extended versions of the encrypt functions.
 3725 	+ commit a1f76b3b54b75a150fe272b804d85ffd40a507a6
 3726 	* src/gpgme.h.in (gpgme_op_encrypt_ext_start) New.
 3727 	(gpgme_op_encrypt_ext): New.
 3728 	(gpgme_op_encrypt_sign_ext_start): New.
 3729 	(gpgme_op_encrypt_sign_ext): New.
 3730 	* src/libgpgme.vers, tests/run-encrypt.c: Add them.
 3731 
 3732 	* src/encrypt.c (encrypt_start): Add arg recpstring.
 3733 	(gpgme_op_encrypt): Factor code out to ...
 3734 	(gpgme_op_encrypt_ext): new function with new arg recpstring.
 3735 	(gpgme_op_encrypt_start): Factor code out to ...
 3736 	(gpgme_op_encrypt_ext_start): new function with new arg recpstring.
 3737 	* src/encrypt-sign.c (encrypt_sign_start): Add arg recpstring.
 3738 	(gpgme_op_encrypt_sign): Factor code out to ...
 3739 	(gpgme_op_encrypt_sign_ext): new function with new arg recpstring.
 3740 	(gpgme_op_encrypt_sign_start): Factor code out to ...
 3741 	(gpgme_op_encrypt_sign_ext_start): new function with new arg
 3742 	recpstring.
 3743 
 3744 	* src/engine-backend.h (struct engine_ops): Change fields encrypt and
 3745 	encrypt_sign.
 3746 	* src/engine.c (_gpgme_engine_op_encrypt): Add arg recpstring and pass
 3747 	to engine.
 3748 	(_gpgme_engine_op_encrypt_sign): Ditto.
 3749 	* src/engine-gpg.c (append_args_from_recipients_string): New.
 3750 	(gpg_encrypt): Add arg recpstring and call new function as needed.
 3751 	(gpg_encrypt_sign): Ditto.
 3752 	* src/engine-gpgsm.c (set_recipients_from_string): New.
 3753 	(gpgsm_encrypt): Add arg recpstring and call new function as needed.
 3754 	* src/engine-uiserver.c (set_recipients_from_string): New.
 3755 	(uiserver_encrypt): Add arg recpstring and call new function as
 3756 	needed.
 3757 
 3758 	* tests/run-encrypt.c (xstrdup): New.
 3759 	(main): Add option --keystring.
 3760 
 3761 	* src/gpgme-json.c (get_keys): Simplify.
 3762 	(op_encrypt): Modify to make use of the extended encrypt function.
 3763 
 3764 2018-04-12  Werner Koch  <wk@gnupg.org>
 3765 
 3766 	core: Tweak STATUS_FAILURE handling.
 3767 	+ commit b99502274ae5efdf6df0d967900ec3d1e64373d7
 3768 	* src/op-support.c (_gpgme_parse_failure): Ignore failures with
 3769 	location "gpg-exit".
 3770 	* tests/gpg/t-verify.c (main): Adjust for the now working checking of
 3771 	the second key.
 3772 
 3773 	core: For a failed verification return the sig's fingerprint.
 3774 	+ commit 478d1650bbef84958ccce439fac982ef57b16cd0
 3775 	* src/verify.c (parse_new_sig): Parse the new ERRSIG fpr.
 3776 
 3777 	tests: Avoid segv in run-verify due to Policy URLs.
 3778 	+ commit ee8fad3ea0cbc82f31c86b3483abd8549df62b69
 3779 	* tests/run-verify.c (print_result): Take care of Policy URLs.
 3780 
 3781 	tests: Add another check to gpg/t-verify.
 3782 	+ commit bdf7cd2e28432cf0fa7e0758acdfee03d7bfd45f
 3783 	* tests/gpg/t-verify.c (PGM): New.  Use it instead of __FILE__.
 3784 	(test_sig1_plus_unknown_key): New test signature.
 3785 	(check_result): Allow checking of several signatures.
 3786 	(main): Check a signature with a know and an unknown key.
 3787 
 3788 	core: Add new context flag "no-symkey-cache".
 3789 	+ commit f7700a016926f0d8e9cb3c0337837deb7fe01079
 3790 	* src/gpgme.c (gpgme_set_ctx_flag): Set flag.
 3791 	(gpgme_get_ctx_flag): Get flag.
 3792 	* src/context.h (struct gpgme_context): Add field no_symkey_cache.
 3793 	* src/engine-gpg.c (struct engine_gpg): Ditto.
 3794 	(gpg_set_engine_flags): Set flag.
 3795 	(build_argv): Pass option --no-symkey-cache to gpg.
 3796 
 3797 	* tests/run-decrypt.c (print_result): Fix segv for symmetric messages.
 3798 	(main): New option --no-symkey-cache.
 3799 	* tests/run-encrypt.c (main): New option --no-symkey-cache.
 3800 
 3801 2018-04-04  Andre Heinecke  <aheinecke@intevation.de>
 3802 
 3803 	qt: Add test for resetting config value.
 3804 	+ commit 5eb261d6028ab2c0ddd9af8e3e1f82e479c6109c
 3805 	* lang/qt/tests/t-config.cpp (CryptoConfigTest::testDefault): New.
 3806 
 3807 2018-03-29  Werner Koch  <wk@gnupg.org>
 3808 
 3809 	json: Build only a dummy if libgpg-error is < 1.28.
 3810 	+ commit 60d7a1e8f625ea0db455bff989534dd52f0650c7
 3811 
 3812 
 3813 2018-03-29  Ben McGinnes  <ben@adversary.org>
 3814 
 3815 	example: revoke UID.
 3816 	+ commit 3b91f6af378ccc37dcf8924cbc157894c35b5192
 3817 	* Script to revoke a UID on an existing key.
 3818 
 3819 	docs: python bindings howto.
 3820 	+ commit d65864989c0560b5f51cb8d05d9ea9f1957b453e
 3821 	* Added section on revoking UIDs.
 3822 
 3823 	example: key signing.
 3824 	+ commit 56bbfd39acea90eb87a28b11a515b0314cdda54c
 3825 	* Added script for signing or certifying keys.
 3826 
 3827 	doc: python bindings howto.
 3828 	+ commit 5a553f5a317e5ad5ab0274d58854df1ecf390e0d
 3829 	* Fixed a typo.
 3830 
 3831 2018-03-28  Ben McGinnes  <ben@adversary.org>
 3832 
 3833 	docs python bindings howto.
 3834 	+ commit 2f507b045909d32bf29d23da04db02b078e5fb9d
 3835 	* PEP8 compliance: a collection of minor edits across multiple example
 3836 	  code snippets.
 3837 
 3838 	example: add user ID.
 3839 	+ commit 5cd419341807d8ae23fec7bd9bb7025a8a2dcb3c
 3840 	* Added script to add a UID to an existing key.
 3841 
 3842 2018-03-28  Werner Koch  <wk@gnupg.org>
 3843 
 3844 	json: Remove the "message" object thingy again.
 3845 	+ commit 3345a17dda2222e3c1592235e8a1cd9493192777
 3846 	* src/gpgme-json.c (process_request): Remove 'nm_mode'.
 3847 
 3848 	json: Make native messaging work.
 3849 	+ commit 4b2fa657d195382d14ac99be40b66327e0fc855c
 3850 	* src/gpgme-json.c (opt_debug): New.
 3851 	(process_request): Add optional arg nm_mode.  In this mode take the
 3852 	request from a "message" object.
 3853 	(native_messaging_repl): Add debug output and call process_request
 3854 	in NM_MODE.
 3855 	(main): Add option --debug.  Parse envvar GPGME_JSON_DEBUG as an
 3856 	alternative way to enable this.  Use a default log file.
 3857 
 3858 2018-03-27  Andre Heinecke  <aheinecke@intevation.de>
 3859 
 3860 	core: Initialize key return value in gpgme_get_key.
 3861 	+ commit 7c220e387d511b0cf66f99370759c36b729cc444
 3862 	* src/keylist.c (gpgme_get_key): Set r_key to NULL.
 3863 
 3864 2018-03-27  Ben McGinnes  <ben@adversary.org>
 3865 
 3866 	doc: python bindings howto.
 3867 	+ commit a2eedef630891397f8eccb5bb426a0728588bf41
 3868 	* Fixed some minor PEP8 compliance issues in the key creation examples.
 3869 
 3870 	example: key creation.
 3871 	+ commit f9159b1d75d3209b1c22bbb0ed4472800b60a522
 3872 	* Script to generate a new key with encryption subkey taking input
 3873 	  from interactive prompts.
 3874 	* Will also take a passphrase via pinentry and uses passphrase caching
 3875 	  of five minutes when used in conjunction with the temp homedir
 3876 	  script.
 3877 
 3878 	script: temp homedir config.
 3879 	+ commit 1b5da37a47ceef41545e0b2474738613f36be949
 3880 	* added passphrase caching of 5 minutes.
 3881 
 3882 2018-03-25  Ben McGinnes  <ben@adversary.org>
 3883 
 3884 	doc: python bindings howto.
 3885 	+ commit 5b32efbaf37920b2e99d4bb87cb383b2809b1688
 3886 	* Testing the addition of a HTML header set in org-mode in order to
 3887 	  had RSS update links for files.
 3888 	* This should work with any [X]HTML export from current versions of
 3889 	  Org-Mode, but if it also works on website generated pages then it'll
 3890 	  tick off one of the wishlist itmes.
 3891 
 3892 	script: temp homedir.
 3893 	+ commit 40a9dea5d56506400b67b0c11f6e55a1629dc6fe
 3894 	* Fixed whitespace.
 3895 
 3896 	doc: python bindings howto.
 3897 	+ commit 3b724aae423f2de01812165d54df2a7b524c82f6
 3898 	* Added a reference to new script which will setup a temporary homedir
 3899 	  for a user.
 3900 
 3901 	script: temporary homedir creation.
 3902 	+ commit dde1aae312958776fab475d6c0cdfa19cc255863
 3903 	* Script to create a temporary gnupg homedir in the user's directory
 3904 	  for testing or scripting purposes.
 3905 	* Creates a hidden directory on POSIX systems with the correct
 3906 	  permissions (700).
 3907 	* Creates a gpg.conf in that directory containing the same
 3908 	  configuration options as used in the "Danger Mouse" example in the
 3909 	  HOWTO with the correct permissions (600).
 3910 
 3911 	doc: python bindings howto.
 3912 	+ commit 22247f658ce2f8e527c26746358cfc2643c4832f
 3913 	* Fixed the plaintext, result and verify_result references in the
 3914 	  decryption section.
 3915 
 3916 2018-03-23  Ben McGinnes  <ben@adversary.org>
 3917 
 3918 	doc: python bindings howto.
 3919 	+ commit e6180f2b36cc8a6c6154e5f3d702324af573132a
 3920 	* Fixed a minor spelling error and a minor grammatical error.
 3921 
 3922 2018-03-23  Werner Koch  <wk@gnupg.org>
 3923 
 3924 	core: Need to increase an array in the gpg engine.
 3925 	+ commit 4763974ef6932c503e35c3d14fe47a66a5323f48
 3926 	* src/engine-gpg.c (build_argv): Allcate one slot more for ARGV.
 3927 
 3928 	json: Use a request origin of "browser".
 3929 	+ commit e5abf4827aead50437bbdff8cfdd5e9fdc6ed72d
 3930 	* src/gpgme-json.c (_create_new_context): Set flag.
 3931 
 3932 	core: New gpgme_set_ctx_flag "request-origin".
 3933 	+ commit b9000bc293164ff62efa7e91e5cf6d5fc19d482f
 3934 	* src/context.h (gpgme_context): Add 'request_origin'.
 3935 	* src/gpgme.c (gpgme_release): Free that field.
 3936 	(gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "request-origin".
 3937 	* src/engine-backend.h (engine_ops): Add 'set_engine_ops' func ptr and
 3938 	adjust all users.
 3939 	* src/engine.c (_gpgme_engine_set_engine_flags): New.
 3940 	* src/op-support.c (_gpgme_op_reset): Call that func.
 3941 	* src/engine-gpg.c (struct engine_gpg): Add 'request_origin'.
 3942 	(gpg_set_engine_flags): New.
 3943 	(_gpgme_engine_ops_gpg): Hook it.
 3944 	(build_argv): Use command line option --request-origin.
 3945 	* src/engine-gpgsm.c (struct engine_gpgsm): Add 'request_origin'.
 3946 	(gpgsm_set_engine_flags): New.
 3947 	(_gpgme_engine_ops_gpgsm): Hook it.
 3948 	(start): Send OPTION "request-origin".
 3949 	* src/engine-assuan.c (struct engine_llass): Add 'request_origin'.
 3950 	(gpgsm_set_engine_flags): New.
 3951 	(_gpgme_engine_ops_assuan): Hook it.
 3952 	(start): Send OPTION "pretend-request-origin".
 3953 
 3954 	build: Allow building with released libgpg-error.
 3955 	+ commit eee68c1b13fbe21c123f469712817e0c81f16383
 3956 	* src/gpgme-json.c (add_base64_to_object): Return an error if building
 3957 	with an older libgpg-error.
 3958 
 3959 	json: Finish op:encrypt.
 3960 	+ commit d83482a1d768fc5afd3aa4836f2fefe5c549d02e
 3961 	* src/gpgme-json.c (add_base64_to_object): New.
 3962 	(data_from_base64_string): New.
 3963 	(op_encrypt): Employ them.
 3964 	(process_request): Print unformated json.
 3965 
 3966 	json: Add a new function to cJSON.
 3967 	+ commit 6525d78d0a1d303c449762082942e71d3002b9ca
 3968 	* src/cJSON.c (cJSON_CreateStringConvey): New.
 3969 
 3970 2018-03-22  Ben McGinnes  <ben@adversary.org>
 3971 
 3972 	doc: python bindings howto.
 3973 	+ commit 65ed4ac82598734551b87fc89deab3cee010bd37
 3974 	* Fixed table.
 3975 
 3976 2018-03-21  Ben McGinnes  <ben@adversary.org>
 3977 
 3978 	doc and examples: python bindings HOWTO.
 3979 	+ commit 5722148bacab5862b40a027861d64683a0f214ea
 3980 	* Added GPGME Python bindings HOWTO in Australian/British English.
 3981 	** en-US "translation" still to be done.
 3982 	* Added several example scripts comprised of the "Basic Functions"
 3983 	  section of the HOWTO (plus the work-around at the end).
 3984 	** As these scripts are very basic examples they are released under
 3985 	   both the GPLv2+ and the LGPLv2.1+ (just like GPGME itself).
 3986 
 3987 	examples: multi-key selection operations.
 3988 	+ commit 05e59933056ee8ef8ba7579351a58ed25dd7f754
 3989 	* Temporarily removing multi-key selection based examples.
 3990 	* There are a few issues with getting the key selections to play
 3991 	  nicely with gpg.Context().keylist object types.
 3992 	* Will troubleshoot them separately and restore them when that's
 3993 	  worked out, but I don't want these more complicated examples to
 3994 	  delay merging the HOWTO with master.
 3995 
 3996 	example: group encryption.
 3997 	+ commit 61a988036bd3f0d43f7d55bfa43f5f05bec978c4
 3998 	* Troubleshooting.
 3999 
 4000 	examples: encryption.
 4001 	+ commit 7ddff71908a85111c8e0da41312197b3b1a77da6
 4002 	* Fixed two incorrect Context() objects.
 4003 
 4004 	example: key selection.
 4005 	+ commit c6a0395f0a3a57071f0c943f7815f58a02f9d2f3
 4006 	* Removed extraneous blank line.
 4007 
 4008 	example: key selection.
 4009 	+ commit 0a0d57fd41380cd797d29e11cec8a77c7404e960
 4010 	* Similar to group-key-selection.py, but does not use an existing
 4011 	  group from gpg.conf; instead takes multiple key IDs, fingerprints or
 4012 	  patterns on the command line and adds them to a keylist object.
 4013 
 4014 	example: sign and encrypt to group.
 4015 	+ commit 0ccc57c9512246d82d46e7732bfb0f95c18ca9d3
 4016 	* Begins to string together some of the simpler examples to do more
 4017 	  useful things.
 4018 	* Signs and encrypts a file while encrypting to every key in a group
 4019 	  specified in the gpg.conf file.
 4020 
 4021 2018-03-21  Werner Koch  <wk@gnupg.org>
 4022 
 4023 	json: Use gpgrt_argparse instead of argsparse.c.
 4024 	+ commit e14f1f687ff618716ed17e309a0475df95e1c0aa
 4025 	* src/gpgme-json.c: Remove header argparse.h.  Define
 4026 	GPGRT_ENABLE_ARGPARSE_MACROS.
 4027 	(interactive_repl): Replace strusage by gpgrt_strusage.
 4028 	(my_strusage): Add SPDX level.
 4029 	(main): Switch to gpgrt_argparse stuff but keep very limited
 4030 	functionality when building with an older libgpg-error.
 4031 
 4032 2018-03-21  Ben McGinnes  <ben@adversary.org>
 4033 
 4034 	example: group key selection.
 4035 	+ commit 8b401bfc76eac762553f76faab53c2f4cd117a8d
 4036 	* Example of preparing a keylist object using an existing group line
 4037 	  from the gpg.conf file.
 4038 
 4039 	example groups work around.
 4040 	+ commit 6c6af9a7b0ae4e7182d669bec282c6edaaa7eaa1
 4041 	* Updated usage so it only references importing the final list of
 4042 	  lists produced.  Trying to use some of the mid-points can have
 4043 	  unpredictable results (this is part of the problem with work
 4044 	  arounds).
 4045 
 4046 	example: groups.
 4047 	+ commit a4e3f827652c59d850b4e5506a92c1ecd190c1bb
 4048 	* Added a docstring.
 4049 
 4050 	example: verify signatures.
 4051 	+ commit ad6cb4f9b8b97a2bc501c17fc542a84b725dedea
 4052 	* Added example for verifying detached signatures against the files
 4053 	  they're the signatures for.
 4054 
 4055 	example: verify signed file.
 4056 	+ commit ae2767eb27b6a76284ee4403e575869afe2e80a8
 4057 	* Added example to verify normal and clearsigned files.
 4058 
 4059 	doc: python bindings howto.
 4060 	+ commit e57388a69f61d14e3df3c842d227fb450c96c807
 4061 	* Fixed minor error in one of the verification examples.
 4062 
 4063 	example: detach sign file.
 4064 	+ commit ac6a552c37147a000de74f49d1bff34dad52252e
 4065 	* Added example to make detached signatures of a file with key selection.
 4066 
 4067 	example: encrypt-sign-file.py.
 4068 	+ commit af6cbba18ba5e2bbecce5f8268c146282cd12367
 4069 	* Adjusted the doc string.
 4070 
 4071 	examples: doc strings.
 4072 	+ commit 6fa2a344282e369e6aca8155bc77dd2c12a29414
 4073 	* Fixed minor errors in two doc strings.
 4074 
 4075 	example: clear signing.
 4076 	+ commit 1fdd1f306d45f6aeee91c7f016f7c37286ee3b3b
 4077 	* Added example to clear sign a file with signing key selection.
 4078 
 4079 	doc: python bindings howto.
 4080 	+ commit 1d2746433c9632fc0c7bc10b59280fca15895545
 4081 	* deconstructed and fixed all three signing methods.
 4082 
 4083 	example: sign file.
 4084 	+ commit 0390ede18696520be9cc1a42f628e23159b7c2eb
 4085 	* Similar to encrypt file except for signing a file in normal mode.
 4086 	* Noticed additional changes to be made to the howto to match this,
 4087 	  but they will have to wait due to a power outage (currently running
 4088 	  on battery and a mobile connection, but that won't last).
 4089 
 4090 2018-03-20  Werner Koch  <wk@gnupg.org>
 4091 
 4092 	json: Implement op:encrypt.
 4093 	+ commit 6073789a6d3514263404c93fa795a398bfd93d91
 4094 
 4095 
 4096 	core: Do not clobber R_KEY in gpgme_get_key on error.
 4097 	+ commit 343d3e2232a22d0999e1693f0f95e5e290005829
 4098 	* src/keylist.c (gpgme_get_key): Assign a value to the return
 4099 	parameter only on success.
 4100 
 4101 	core: Fix ABI regression in recent commit.
 4102 	+ commit 9e1e6554834d0e803dd0889deaef4f11047c7e47
 4103 	* src/gpgme.h.in (_gpgme_op_import_result): Move new field
 4104 	'skipped_v3_keys' to the end.
 4105 
 4106 2018-03-20  Ben McGinnes  <ben@adversary.org>
 4107 
 4108 	doc: python bindings howto.
 4109 	+ commit 52e262991f1fdf7da93882c3b22c05537376cf49
 4110 	* Fixed typos in examples.
 4111 
 4112 	example: keycount.
 4113 	+ commit 96d0395bccbbff91f73c06cb7bd6c131f04b8a9a
 4114 	* Fixed missing parenthesis.
 4115 
 4116 	example: decrypt file.
 4117 	+ commit 51258975d763c9471859d635e6080c2ec02e8647
 4118 	* Decrypts a file taking file names as command line parameters.
 4119 
 4120 	example: groups work-around.
 4121 	+ commit 29e918171f352c71a90a16c04d4a3dcafa5db682
 4122 	* Added groups selection work around code.
 4123 	* Intended for use as a module to be imported by other scripts,
 4124 	  usually with "from groups import group_lists" or "from groups import
 4125 	  group_lines" or similar.
 4126 
 4127 2018-03-19  Ben McGinnes  <ben@adversary.org>
 4128 
 4129 	example: encrypt file.
 4130 	+ commit 7221bb67642eb01a07957d66d0cbcd4ef8aadbf8
 4131 	* Nested encryption in try/except statement in case recipient key is
 4132 	  untrusted or invalid.
 4133 
 4134 	example: sign and encrypt file.
 4135 	+ commit f3fe47e8fd2e7bc748016befcae494421223368c
 4136 	* Example to sign and encrypt a file.
 4137 	* Similar to encrypt-file.py except all keys are considered trusted
 4138 	  and signs with the default key.
 4139 	* Also encrypts to the default key.
 4140 
 4141 	example: encrypt file.
 4142 	+ commit f0790f224d7af9521efe96e69a8f719fb89a5af2
 4143 	* Fixed typo in second encryption call.
 4144 
 4145 	example: encrypt file.
 4146 	+ commit 7ab42e79ade89f28507ea42d51148a40b4bfc736
 4147 	* Example to encrypt a file to a single key.
 4148 	* Takes key ID and/or fpr as a CLI parameter.
 4149 	* Takes path and filename as a CLI parameter.
 4150 	* Encrypts to specified key only, no signing and writes the output in
 4151 	  both ASCII armoured and GPG binary formats with output filenames
 4152 	  based on input filename.
 4153 
 4154 	example: python bindings key count.
 4155 	+ commit cfbdcb7fb3fa438cafba82e4fb8f327df596f98e
 4156 	* Added script wo count the number of keys in both the public and
 4157 	  secret key stores.
 4158 
 4159 	doc: python bindings examples.
 4160 	+ commit b30ebf89725641018b3b08f77876530f9b983fa2
 4161 	* Explicitly stated that all this code is released under the GPLv2+
 4162 	  and the LGPLv2.1+.
 4163 
 4164 	doc: python bindings example README.
 4165 	+ commit 8f7672ad1b267f122f647bb5f984734d0ff66a5c
 4166 	* Added the same license as used with the HOWTO.
 4167 	* Since these examples are so basic, they'll be dual licensed the same
 4168 	  as GPGME itself (otherwise it would slip too dangerously against the
 4169 	  need for permissive licensing of crypto libraries).
 4170 
 4171 	docs: python bindings examples.
 4172 	+ commit 6950a63e63d60685ddb6f4cbff7b826b8acb5b13
 4173 	* Added reference to location where all the examples included in the
 4174 	  HOWTO will be available as executable scripts.
 4175 	* Included a short README file in that location.
 4176 
 4177 	example: python bindings encryption.
 4178 	+ commit 3e0f68fdff1998dae9cb6f8510a3e945a268d1f6
 4179 	* Since we don't want to encourage accessing the low level functions
 4180 	  (e.g. op_encrypt), but since this example can still be useful to
 4181 	  understand, renaming it and will add new encryption examples to
 4182 	  match the instructions in the HOWTO.
 4183 
 4184 	doc: python bindings howto.
 4185 	+ commit d5f6dec048d3d4d94f1fcdb3f4249cf6e71c4b92
 4186 	* Slight python-gnupg clarification.  See also this thread:
 4187 	  https://lists.gnupg.org/pipermail/gnupg-devel/2018-March/033528.html
 4188 
 4189 	doc: python bindings howto.
 4190 	+ commit 0fb8a5d45c1c77a5928d6e356271da055aa55994
 4191 	* Adjusted the python-gnupg so the comments regarding insecure
 4192 	  invocation of commands via subprocess (shell=True) were a major
 4193 	  historical issue and not a a current issue.
 4194 	* Not including Vinay Sajip's requested change to say it is now secure
 4195 	  since no audit of the current code base has been performed and my
 4196 	  last major inspection of that code was around the time I first
 4197 	  ported PyME to Python 3 in 2015.
 4198 
 4199 	doc: python bindings todo list.
 4200 	+ commit bf67cf433fe82924ed40e79785e95403c07cc068
 4201 	* Checked off several points of howto coverage as completed.
 4202 	* Reorganised to move S/MIME coverage to its own separate group of tasks.
 4203 	* Noted only revocation remains for howto completion.
 4204 
 4205 	doc: python bindings howto.
 4206 	+ commit 1779d7b9d6769b2e47f1e90260290e25c8c3aa02
 4207 	* deconstructing multi-recipient encryption.
 4208 
 4209 	doc: python bindings howto.
 4210 	+ commit 64c5886132aceefc9d9600a3a6dbbbf404b95b81
 4211 	* Replaced the single encryption methods with one main way (i.e. cut
 4212 	  the low level stuff involving SEEK_SET instructions).
 4213 
 4214 2018-03-18  Ben McGinnes  <ben@adversary.org>
 4215 
 4216 	doc: python bindings howto.
 4217 	+ commit 4811ff7b6c8ef97c7d4858ce235e9bf8227f4917
 4218 	* moved single encrytion examples up to the first ones, pending merge
 4219 	  and major cut.
 4220 	* This is basically just to make future checks of revisions a little easier.
 4221 
 4222 	doc: python bindings howto.
 4223 	+ commit 82c5af225f2bdf3acc6fc652a96ee61c9b057395
 4224 	* Stripped decryption example to the bare bones as suggested by Justus.
 4225 
 4226 2018-03-16  Ben McGinnes  <ben@adversary.org>
 4227 
 4228 	doc: python bindings howto.
 4229 	+ commit b549f69d0520bb74957b95cec9ea918dba2374f6
 4230 	* Made the changes suggested by Jakub Wilk on gnupg-devel.
 4231 	* Still need to make the far more comprehensive changes suggested by Justus.
 4232 
 4233 2018-03-16  Werner Koch  <wk@gnupg.org>
 4234 
 4235 	json: Add framework for the gpgme-json tool.
 4236 	+ commit d2b31d8c106423bd0eaa5fffaa39b0983c9ae525
 4237 	* src/gpgme-json.c: New.
 4238 	* src/Makefile.am (bin_PROGRAMS): Add gpgme-json.
 4239 	(gpgme_json_SOURCES, gpgme_json_LDADD): New.
 4240 
 4241 	core: Adjust cJSON code for use in GPGME.
 4242 	+ commit 81c90d0cd0f959fd5e01baed9b4af0ec35ecb85c
 4243 	* src/cJSON.c: Remove util.h.  Use gpgrt alloc functions.
 4244 	(cJSON_Delete): Do not clobber ERRNO.
 4245 	(cJSON_AddItemToObject): Return OBJECT or NULL.
 4246 	(cJSON_AddNullToObject): New.
 4247 	(cJSON_AddTrueToObject): New.
 4248 	(cJSON_AddFalseToObject): New.
 4249 	(cJSON_AddBoolToObject): New.
 4250 	(cJSON_AddNumberToObject): New.
 4251 	(cJSON_AddStringToObject): New.
 4252 	* src/cJSON.h (cJSON__h): Replace macro by cJSON_h for C compliance.
 4253 	(cJSON_AddNullToObject): Remove macro.
 4254 	(cJSON_AddTrueToObject): Remove macro.
 4255 	(cJSON_AddFalseToObject): Remove macro.
 4256 	(cJSON_AddBoolToObject): Remove macro.
 4257 	(cJSON_AddNumberToObject): Remove macro.
 4258 	(cJSON_AddStringToObject): Remove macro.
 4259 
 4260 2018-03-15  Ben McGinnes  <ben@adversary.org>
 4261 
 4262 	doc: python bindings howto.
 4263 	+ commit 431897a4c48fe1bc9d37f655097aabaf5b685d11
 4264 	* Added clarification on why it's not on PyPI.
 4265 
 4266 2018-03-15  Andre Heinecke  <aheinecke@intevation.de>
 4267 
 4268 	cpp: Expose skipped_v3_keys.
 4269 	+ commit ad95288d3b3efc38998841add4fe658c84701f98
 4270 	* lang/cpp/src/importresult.cpp,
 4271 	 lang/cpp/src/importresult.h (ImportResult::numV3KeysSkipped): New.
 4272 
 4273 	core: Parse skipped_v3_keys.
 4274 	+ commit a630a1e3e74c926163864b013cb164b4cd1866fc
 4275 	* src/gpgme.h.in (gpgme_import_result_t): Extend with skipped_v3_keys.
 4276 	* src/import.c (gpgme_op_import_result): Extend debug with new field.
 4277 	(parse_import_res): Parse skipped_v3_keys.
 4278 	* tests/gpg/t-support.h, tests/run-support.h (print_import_result):
 4279 	Print skipped_v3_keys.
 4280 
 4281 2018-03-15  Ben McGinnes  <ben@adversary.org>
 4282 
 4283 	doc: python bindings howto.
 4284 	+ commit 22e2445beee46ed1e527a98e635153c7cf03786f
 4285 	* fixed custom_id for decryption so the XHTML validates.
 4286 
 4287 	doc: python bindings howto.
 4288 	+ commit 94a95ac12364989db7f4be333107f3c023551857
 4289 	* Promoted final encryption example so that it will appear as heading
 4290 	  6.1.3 when exported to HTML or PDF.
 4291 
 4292 	doc: python bindings howto.
 4293 	+ commit 3d0c7a2202c8e9bd4f284fd00069d34b8d3d3d4c
 4294 	* Fixed a minor typographic error.
 4295 	* Bumped version number in preparation for merge with master.
 4296 	* While there are probably a few more things worthy of being added
 4297 	  (mainly how to revoke things), this document is essentially ready
 4298 	  for publication now.
 4299 
 4300 	doc: python bindings howto.
 4301 	+ commit 961aea212ef48914ecbfa169addf951b0854b0b4
 4302 	* Added key signing.
 4303 
 4304 	doc: python bindings howto.
 4305 	+ commit 7ac65b10837740caf68cdade791b8c5ce4eb1b03
 4306 	* Added a new user ID for Danger Mouse.
 4307 	* Removed the empty entry for key preferences since that is handled
 4308 	  through gpg.conf and/or editing the key directly.
 4309 
 4310 	doc: python bindings howto.
 4311 	+ commit 9e3e4a835c64f5d06de821b1fd648af37827ff26
 4312 	* Spell checking and fixing the few errors.
 4313 
 4314 	doc: python bindings howto.
 4315 	+ commit b02d9d0a7b96b186eb3063d94bde369339181461
 4316 	* Added an encryption subkey to Danger Mouse's primary key.
 4317 
 4318 	doc: python bindings howto.
 4319 	+ commit 5432e5f9d1dfc02812d0b181f8d88cdf4a2bfbfb
 4320 	* generated a new primary key for Danger Mouse in an alternative homedir.
 4321 
 4322 	doc: python bindings howto.
 4323 	+ commit 5d1dd2abe5cf787875d12afe46c78c75385d7b31
 4324 	* Added sections for key generation and key editing.
 4325 
 4326 	doc: python bindings howto.
 4327 	+ commit 1d05e6aa4ea467c8c5926b827cfcfba357d03312
 4328 	* Added c.get_key instructions and examples.
 4329 
 4330 	doc: python bindings howto.
 4331 	+ commit b35aaef7a3b793b8f6f5b42596c0a6a51e87f78c
 4332 	* Added text for verifying signatures.
 4333 
 4334 2018-03-14  Ben McGinnes  <ben@adversary.org>
 4335 
 4336 	doc: python bindings howto.
 4337 	+ commit 6bc12a0eeb20409770cb8b923d08c18c2b730cb8
 4338 	* Added 4 signature verification methods and partial text for them.
 4339 
 4340 	doc: python bindings howto.
 4341 	+ commit e5c85fba25de1187949697e2dae0e89345b71e89
 4342 	* Added description for detached signatures.
 4343 
 4344 	doc: python bindings howto.
 4345 	+ commit ada059b07178147821b1598c935aa70ae45e3e6c
 4346 	* Fixed multiple sample code examples of writing output to a file.
 4347 	* Added the description of detached signatures.
 4348 
 4349 2018-03-14  Werner Koch  <wk@gnupg.org>
 4350 
 4351 	core: Import cJSON code from the payproc project.
 4352 	+ commit 8eb08b318913644d918002f3195f7ec0e75ae239
 4353 	* src/cJSON.c: New.
 4354 	* src/cJSON.h: New.
 4355 	* src/cJSON.readme: New.
 4356 
 4357 2018-03-14  Ben McGinnes  <ben@adversary.org>
 4358 
 4359 	doc: python bindings todo.
 4360 	+ commit ef27f3781a37e264d0eb7d1745eb2c804ec062c4
 4361 	* minor phrasing fix.
 4362 
 4363 	doc: python bindings howto.
 4364 	+ commit 423fdcd4653cb01f07f2b0e72cfcf49554930f70
 4365 	* Added recommended method of single encryption with description.
 4366 
 4367 2018-03-13  Ben McGinnes  <ben@adversary.org>
 4368 
 4369 	doc: python binding howto.
 4370 	+ commit a71205dc3b58970adf591b4e4553824a33f353db
 4371 	* Clarified which English dialects this is written in.
 4372 	* Translating to American can happen *after* it's done.
 4373 	** The Yank version would probably want to change some of the examples
 4374 	   anyway.
 4375 	* Began the description for normal/default signing.
 4376 
 4377 	doc: python bindings howto.
 4378 	+ commit a10dcb4f138eb5a21881cdbc4806c25129d4ae4e
 4379 	* Added a section on key selection.
 4380 	* Included recommendation for using fingerprint when selecting one
 4381 	  specific key.
 4382 	* Also included the most ironically amusing example of multiple key
 4383 	  selection in a GPG guide.  Hey, it's public data ... (heh).
 4384 
 4385 	doc: python bindings howto.
 4386 	+ commit 952b6042f78017c476452088261af8d352cfa729
 4387 	* Added explanation of the ascendance of Python 3 over Python 2 in the
 4388 	  guide to the intro.
 4389 	* Expanded key selection description so people know what not to
 4390 	  include regarding key IDs with this key selection method.
 4391 
 4392 	doc: python bindings howto.
 4393 	+ commit c92da2c7eb148ce9fb06495a8470dd9caf662f9a
 4394 	* Added key selection for specifying signing key or keys.
 4395 
 4396 	doc: python bindings howto.
 4397 	+ commit e489ddd08af29fdad8db8aa0aec0c314daa3678c
 4398 	* During the course of working out the updated signature methods,
 4399 	  determined that key selection (including counting) will beed to be
 4400 	  presented before the basic functions.
 4401 	* Moved "working with keys" up.
 4402 
 4403 	doc: python bindings howto.
 4404 	+ commit f29bda8d7146b4bc0bf73d6e613131545ff86b73
 4405 	* Signatures have changed as a result of the recent update from Justus.
 4406 	* Sample code updated.
 4407 	* Text to follow later.
 4408 
 4409 	doc: python bindings howto.
 4410 	+ commit c27a7a3f994dad0eccee890185582f4350fbf233
 4411 	* Added text description for the decryption example.
 4412 
 4413 2018-03-12  Ben McGinnes  <ben@adversary.org>
 4414 
 4415 	doc: python bindings howto.
 4416 	+ commit f81adeba992a9fd3b5a199e9a2e242a0f53cf639
 4417 	* Added a miscellaneous work-arounds section at the end.
 4418 	* Included code in said miscellaneous section for accessing the groups
 4419 	  specified in a gpg.conf file.
 4420 	* It's a bit ugly since it does require subprocess (but not call,
 4421 	  Popen or shell access and only accesses one command).
 4422 
 4423 	doc: python bindings howto.
 4424 	+ commit 36dfbdffea60c529a6d1e1ff3e507be016b6a0f6
 4425 	* Fixed a spelling error in the key counting text.
 4426 
 4427 	doc: python bindings howto.
 4428 	+ commit 484e9a6229ac9c80c6be4df638bce711f08a74c6
 4429 	* updated multi-encryption final example to be complete.
 4430 	* second example shows most likely method of reading plaintext.
 4431 	* updated example filenames to stick with running gag
 4432 	  (i.e. secret_plans.txt).
 4433 
 4434 	doc: python bindings howto.
 4435 	+ commit a8f48b6f577d562c25fd0191c0cc2cc8e96078c1
 4436 	* error corrections.
 4437 	* multiple typesetting fixes only required due to certain archaic
 4438 	  eccentricities of LaTeX.
 4439 	* a couple of minor python PEP8 compliance corrections.
 4440 
 4441 	doc: python bindings howto.
 4442 	+ commit 83b1336ceebb86e13a55bbf220df2d750f6b3ec6
 4443 	* Fixed an error in the encryption try/except statement.
 4444 
 4445 	doc: python bindings howto.
 4446 	+ commit 0e1300ce777dd0c87f31ac8bc49846b9df242df9
 4447 	* Added a more complicated encryption example with a few variations on
 4448 	  the encryption method to account for untrusted recipient keys,
 4449 	  signing or not signing, including or excluding default keys and so
 4450 	  on.
 4451 
 4452 	doc: python bindings howto.
 4453 	+ commit 7ebc5a357057d01b7ef965521ab68b7cb7e20a8f
 4454 	* Switched from links to some external docs to using footnotes where
 4455 	  necessary.
 4456 	* Ideally the howto should be as stand alone as possible.
 4457 	* Also it makes it difficult to convert to another format for
 4458 	  proof-reading if there are links that the conversion can't find.
 4459 
 4460 2018-03-09  Ben McGinnes  <ben@adversary.org>
 4461 
 4462 	doc: python bindings HOWTO.
 4463 	+ commit 172baaf4d3e4ed03a4d3437be9efa3dfe6a847bc
 4464 	* Added instructions and code to count the number of public and secret
 4465 	  keys available since it was quick and easy.
 4466 
 4467 	doc: python TODO list.
 4468 	+ commit f2c1e8d8d54068a7f072efa178fc30460821eff3
 4469 	* Slightly tweaked one heading to make it clear it wasn't a duplicate.
 4470 
 4471 	doc: python bindings howto.
 4472 	+ commit 01686463948ac6096dd8579a110c478d3a1f9a83
 4473 	* Wrote the text description explaining each step in the most basic
 4474 	  encryption operation.
 4475 	* Will need to include additional examples for encrypting to multiple
 4476 	  recipients using Context().encrypt instead of Context().op_encrypt.
 4477 
 4478 	doc: python bindings TODO list.
 4479 	+ commit 93252df9dc4c9932467814745655350a8cab900e
 4480 	* Updated to reflect the most recent work on the HOWTO for the Python
 4481 	  bindings.
 4482 
 4483 	doc: python bindings howto.
 4484 	+ commit ab81c2d868bba79fdb8f8d7f576b6bd88c6bdf3c
 4485 	* Added example for verifying both detached and "in-line" signatures.
 4486 
 4487 2018-03-08  Ben McGinnes  <ben@adversary.org>
 4488 
 4489 	docs: TODO.
 4490 	+ commit e846c3daeeb4e7092169cdb7bf4f55e0b105aac3
 4491 	* Removed WS.
 4492 
 4493 	doc: TODO list update.
 4494 	+ commit 6849924ffbd48ba3f9d32b4a59a02e1d2083fc19
 4495 	* Closed off a few ancient items and added recommendation to others to
 4496 	  use the dev.gnupg.org site for real bugs/features updates.
 4497 	* See also this statement on the gnupg-devel list regarding this file:
 4498 	  https://lists.gnupg.org/pipermail/gnupg-devel/2018-March/033499.html
 4499 
 4500 	docs: python bindings howto update.
 4501 	+ commit fa4927146b68dd045903285f1c45fb64deb2e361
 4502 	* Added all four signing code examples that are most likely to be
 4503 	  used: armoured, clearsigned, detached armoured and detached binary.
 4504 	* May remove some examples and just discuss the differences, but it
 4505 	  depends on the way the text is filled out.
 4506 
 4507 	doc: python bindings howto update.
 4508 	+ commit c767a4a3590bd8a224d0268746df443942cb28c2
 4509 	* Added example of decryption.
 4510 	* included some quick notes for myself regarding aspects to explain
 4511 	  when I flesh out the explanatory text.
 4512 
 4513 	doc: Basic operation of the python bindings.
 4514 	+ commit 75463d589522cba427f9e5a3a408192ffad8bb21
 4515 	* Added sample code for encrypting some text to a single key.
 4516 	* Basically I'm just lifting existing production code and changing the
 4517 	  key IDs from mine to "0x12345678DEADBEEF" for these first few
 4518 	  examples.
 4519 	* I'll fill in the text description after.
 4520 	* Note: due to my regional location, I might split some tasks into
 4521 	  more commits in order to be sure no work gets lost in case of
 4522 	  emergency (or to put it another way: I know Telstra too well to
 4523 	  trust them).
 4524 
 4525 	doc-howto: fundamental aspects of GPGME vs Python.
 4526 	+ commit a98f2c556fe6e33a9cd38279e64e4b09f05cc675
 4527 	* Added a section for those pythonistas who are too used to web
 4528 	  programming.  Stressed that it's not simply not RESTful, it's not
 4529 	  even REST-like.
 4530 	* Letting me move on to drawing a very loose parallel between a
 4531 	  session and a context.  The differences should become obvious in the
 4532 	  subsequent sections.
 4533 
 4534 	doc: Added multiple TODOs for inclusion in the HOWTO.
 4535 	+ commit e8adab68f8c0cd865ff220f06dfaff7fe183e8a1
 4536 	* Some instructions to include are fairly obvious; as with encryption,
 4537 	  decryption and signature verification.
 4538 	* Some are a little less obvious.
 4539 	* This includes the requests received to specifically include subkey
 4540 	  management (adding and revoking subkeys on a primary key that's
 4541 	  being retained.
 4542 	* Added the UID equivalents to the list, as well as key selection
 4543 	  matters (and may or may not include something for handling group
 4544 	  lines since that involves wrapping a CLI binary).
 4545 	* Key control documentation and examples requested by Mike Ingle of
 4546 	  confidantmail.org.
 4547 
 4548 2018-03-07  Ben McGinnes  <ben@adversary.org>
 4549 
 4550 	GPL compatible license for documentation.
 4551 	+ commit 47d401d159852ea08e90af21d91bb4b93be9000d
 4552 	* Added the same, slightly modified GPL based license that is used in
 4553 	  other parts of GnuPG.
 4554 
 4555 	HOWTO update.
 4556 	+ commit 8a76deb11efd7dadfde6e8e7e69fbcd92577982f
 4557 	* removed one bit of whitespace.
 4558 	* Marked up references to gpgme.h.
 4559 	* Fixed one spelling error.
 4560 	* Removed py2.6 from python search order since even if it is
 4561 	  supported, it shouldn't be encouraged.
 4562 
 4563 	GPGME Python bindings HOWTO.
 4564 	+ commit 5215d58ae2521d81c3db0b45dfbdce01a679acab
 4565 	* Started work on the GPGME Python bindings HOWTO.
 4566 	* 1,050 words to begin with at approx. 7.5KB.
 4567 	* Got as far as installation.
 4568 	* Includes instruction not to use PyPI for this.
 4569 
 4570 	TODO - HOWTO.
 4571 	+ commit 8f2c0f4534ea2a07f071f360a63e877f60dc52f2
 4572 	* Added suv-entry for the new HOWTO being started and, since it has
 4573 	  been started, checked it off.
 4574 
 4575 	TODO.
 4576 	+ commit d4778bb23d0817ee6fbcbe4f0ff0ff0429bf3669
 4577 	* Slightly expanded the list.
 4578 
 4579 	copyright fix.
 4580 	+ commit 3a746d5d46ffd7d332dc24fd6a4d24efc5fc1230
 4581 	* Made the copyright line a new top level org heading in order to
 4582 	  prevent it getting folded into other tasks which will eventually get
 4583 	  closed (so it doesn't go missing if those items are subsequently
 4584 	  archived).
 4585 
 4586 	Nuxed doubles.
 4587 	+ commit 13d2164cd9f313b409b2210d9e63465681cccc99
 4588 	* Just because there's a lot of documentation which needs to be added,
 4589 	  doesn't mean it needs to be listed twice.  Merged the two lists.
 4590 
 4591 	Removed double.
 4592 	+ commit 1516c56ee4da28eb720bbacb026892393d10b24a
 4593 	* default.profraw didn't need to be listed twice.
 4594 
 4595 2018-03-04  Ben McGinnes  <ben@adversary.org>
 4596 
 4597 	IDENTIFY.
 4598 	+ commit f61d4f585f27c13fabf7a23ad295bdc8bea7c838
 4599 	* Fixed sp error in docstring.
 4600 
 4601 2018-03-03  Ben McGinnes  <ben@adversary.org>
 4602 
 4603 	Missed a couple.
 4604 	+ commit 75f5e6e6672a1bbd16b7680313c0f96796c219bd
 4605 	* WS indicated 2 custom-ids were missed, now they're set.
 4606 
 4607 	TODO DONE.
 4608 	+ commit b438e5e44c2eaf22549db94141a3ec8731556674
 4609 	* Marked off a TODO for this clean-up.
 4610 
 4611 	TODO.
 4612 	+ commit 1d910672539686e2e17fd8fa1a894cee92863417
 4613 	* WS removal
 4614 
 4615 	TODO updates.
 4616 	+ commit 12a87af1df906744a14079ff7ff88e7d60679695
 4617 	* Updated TODO with tags to make everything appear properly when
 4618 	  exported to HTML or PDF.
 4619 	* Added a couple more items, mainly to do with docs or future bindings.
 4620 	* Marked some, but not all as actual TODO items.
 4621 	* Some items should probably be removed, but haven't been yet.
 4622 	* Some have probably been completed already.
 4623 
 4624 2018-02-27  Ben McGinnes  <ben@adversary.org>
 4625 
 4626 	New stuff.
 4627 	+ commit 85bdca3b2b095afb672f19abbffccd2bcb8bbd0a
 4628 	* Added the idea for alternative Emacs bindings (to extend the
 4629 	  existing ones, not replace them outright).
 4630 	* Added a reference to the API Squared part of the project.
 4631 
 4632 	TODO the TODO.
 4633 	+ commit 8047e1374fe6e69e8c4502e58e6522ea86e4bef4
 4634 	* Added an actual TODO to fix the TODOs.
 4635 	* Pretty sure I know who will be completing this one ...  ;)
 4636 
 4637 	TODO ... the TODO.
 4638 	+ commit 73c51bc9858de2aab25844e7e283a6334038ccc8
 4639 	* If we're going to use Org, let's actually use Org.
 4640 	* Added the properties tags for each point.
 4641 	* Some of thems still need custom ID tags assigned properly.
 4642 	* Probably ought to make them actual TODOs at some point, but that can
 4643 	  wait until they can be marked as DONE anyway.
 4644 	* Will add a TODO for some of this stuff ... oh, the irony.
 4645 
 4646 2018-02-27  NIIBE Yutaka  <gniibe@fsij.org>
 4647 
 4648 	core: Support non-thread-safe getenv.
 4649 	+ commit 59fe3f26c1ca0fba16f76738cd05aaf80fb735ef
 4650 	* src/get-env.c (_gpgme_getenv): Use gpgrt_lock_lock
 4651 	and gpgrt_lock_unlock to protect call of getnev.
 4652 
 4653 2018-02-26  Ben McGinnes  <ben@adversary.org>
 4654 
 4655 	WS removal.
 4656 	+ commit c58f61e92226c4a03f216f5d07bdc5479ce8a2d9
 4657 	* Whitespace removal.
 4658 
 4659 	LaTeX headers.
 4660 	+ commit 6f2e2e0f150d5c6d53de5bc48af137f7864d5fd9
 4661 	* Set LaTeX headers to enable ligatures and a 12pt font by default.
 4662 	* Paper size left for regional defaults.
 4663 	* Using XeLaTeX for easier font control.
 4664 	* Using default LaTeX font of Latin Main, but that's easy enough to change.
 4665 
 4666 2018-02-19  Ben McGinnes  <ben@adversary.org>
 4667 
 4668 	Renaming ad infinitum ...
 4669 	+ commit 272a8e778a959cb24298f488e77fce9bffd23b7a
 4670 	* Dropped the .txt from the end of the file ...
 4671 
 4672 	Text conversion.
 4673 	+ commit c82b17c6ce490738efb07186532e752e6f70ea07
 4674 	* Exported from Org Mode to UTF-8 text.
 4675 	* Removed my name from just under the title.
 4676 
 4677 	Title fix.
 4678 	+ commit ea481d4bb9e6197fbc195187d1362b844e2cba2e
 4679 	* Fixed title.
 4680 
 4681 	Conflict with Phabricator files.
 4682 	+ commit 1ae3ead2cd854258954e784bf51f03822321aefe
 4683 	* The developers of Phabricator, the web front-end on dev.gnupg.org
 4684 	  have not implemented renderers for Markdown, Org-Mode or any other
 4685 	  common markdown like language.
 4686 	* They also refuse to do so.
 4687 	* Instead they re-invented the wheel and implemented their own version
 4688 	  of Markdown-like thing which is incompatible with everything else.
 4689 	  It is called Remarkup.
 4690 	* The developers of Phabricator and Remarkup have refused to provide
 4691 	  conversion tools to move files to/from any format to/from Remarkup.
 4692 	* They expect everyone to learn their new favourite pet project.
 4693 	* Remarkup may or may not display Org Mode files, but if so then it is
 4694 	  likely to only want to do so as plain text.
 4695 	* There is an unaffiliated and unofficial project to convert Github
 4696 	  Markdown to Remarkup via Pandoc.  This might be adapted for our use,
 4697 	  but requires testing.
 4698 	* Until then exporting from Org Mode to UTF-8 text is likely the least
 4699 	  worst plan.
 4700 	* Which means renaming this file to README.org first.
 4701 
 4702 	Schizophrenic file types.
 4703 	+ commit fe4f3edd70949329cb992dd963de2de3c86dcd81
 4704 	* Removed Markdown style heading underlining.
 4705 	* Removed in-line file type declaration (which is not correctly parsed
 4706 	  by the web interface on dev.gnupg.org).
 4707 
 4708 2018-02-16  Andre Heinecke  <aheinecke@intevation.de>
 4709 
 4710 	cpp: Add shorthand for key locate.
 4711 	+ commit 7f9d5c6cd204bfd84ea477b284df795b1dadb1af
 4712 	* lang/cpp/src/key.cpp (Key::locate): New static helper.
 4713 	* lang/cpp/src/key.h: Update accordingly.
 4714 
 4715 2018-02-16  Ben McGinnes  <ben@adversary.org>
 4716 
 4717 	History path.
 4718 	+ commit fb16eaa685fe488f12f4df9b59d1f3689c813034
 4719 	* Fixed a typo in a filepath reference.
 4720 	* Moved conjecture regarding the first version of Python used to a
 4721 	  footnote.
 4722 
 4723 2018-02-15  Ben McGinnes  <ben@adversary.org>
 4724 
 4725 	LaTeX margins.
 4726 	+ commit 6f15d821404742ac2683f54ca4102ee4aaedacf2
 4727 	* Added LaTeX header for 1 inch margins in the quite likely event that
 4728 	  all PDF output ultimately uses LaTeX.
 4729 
 4730 	TODO Documentation.
 4731 	+ commit 235d899a5fc24cdf9c856adbc021a69c43985c99
 4732 	* Checked off the decision to stick with Org Mode.
 4733 
 4734 	TODO.
 4735 	+ commit 40da5022922172ed898172956a8ccf5622e5638d
 4736 	* Beginning to turn the first part of this into something kind of like
 4737 	  an actual TODO list as Org Mode uses it (maybe).
 4738 
 4739 2018-02-15  NIIBE Yutaka  <gniibe@fsij.org>
 4740 
 4741 	tests: Fix previous commit.
 4742 	+ commit 3224d7f0ea83a3c2baaa9f97846c4a5b392d2c59
 4743 
 4744 
 4745 	tests: More Makefile portability.
 4746 	+ commit ba6e610baa138ba9b43be303df2c5981dd04de5a
 4747 	* tests/gpg/Makefile.am: Invoke GPG with TESTS_ENVIRONMENT.
 4748 
 4749 	tests: Makefile portability.
 4750 	+ commit b5ec21b9baf017b4cee88c9ef3cc1a638547cd20
 4751 	* tests/gpg/Makefile.am: Don't use "export" directive.
 4752 	* tests/gpgsm/Makefile.am: Ditto.
 4753 	* lang/qt/tests/Makefile.am: Ditto.
 4754 	* lang/python/tests/Makefile.am: Ditto.
 4755 
 4756 	build: More Makefile fix.
 4757 	+ commit c9a351f5af289c8f6919854c40f235c781b76ec7
 4758 	* lang/python/tests/Makefile.am: Avoid target with '/'.
 4759 
 4760 2018-02-14  Ben McGinnes  <ben@adversary.org>
 4761 
 4762 	Short History.
 4763 	+ commit 3c3b149996036e7ff4cc4c77ef2d97062d880409
 4764 	* Fixed or updated the most fundamental errors.
 4765 	* Also included some details on which modules are available on PyPI,
 4766 	  as well as what happened to the PyME commit log.
 4767 
 4768 	Subsectioned history.
 4769 	+ commit 7c662d22a8f7d2e6ad6532014f2ecc1769de16fb
 4770 	* Split the main parts down into subsections.
 4771 	* Still need to cull the incorrect stuff towards the end and add more
 4772 	  recent changes.
 4773 
 4774 	History.
 4775 	+ commit a1bc710c5fb7a7d2253434c1443e33e019020a55
 4776 	* Reshaping the history file to fit Org Mode's structuring for docs.
 4777 	* Also said history needs to be a bit more clear (it was kind of
 4778 	  unfinished).
 4779 
 4780 	TODO.
 4781 	+ commit fccd2ea3871f5d63fb038db0733a34f9c5d550c3
 4782 	* Updated TODO.
 4783 	* The entirety of the old TODO has been replaced with either more
 4784 	  relevant tasks or goals for the examples and a more measured
 4785 	  approach to the docs and why, in this project, Org Mode trumps reST,
 4786 	  even though it's Python through and through.
 4787 
 4788 	TODO.
 4789 	+ commit 487ed9337e8e07d1c63e53b785cc39e3bd35ff6e
 4790 	* Removed reST version of file.
 4791 
 4792 	TODO.
 4793 	+ commit c4fa4216199b16c1f169725c0a1e0a40764b1ebb
 4794 	* Converted document from reST to org-mode.
 4795 
 4796 	Short History.
 4797 	+ commit 1d48b04cfb3d1de654f3995578e9434a6b7b2fed
 4798 	* Removed reST version.
 4799 
 4800 	Short History.
 4801 	+ commit d86fd7c54c462ef23c70370624e07fcc1bc15121
 4802 	* Converted document from reST to org-mode.
 4803 
 4804 	House keeping.
 4805 	+ commit 1b5719cd57d80dcd9577141491a0860912e74cd4
 4806 	* Added a bunch of things to .gitignore that might otherwise creep in
 4807 	  during Python development.
 4808 	* This really should be merged ASAP.  You'll thank me later ...
 4809 
 4810 2018-02-14  NIIBE Yutaka  <gniibe@fsij.org>
 4811 
 4812 	build: Fix Makefiles for portability.
 4813 	+ commit f1d8a7975b0a166f55aef06eb25d50230781b96f
 4814 	* tests/gpg/Makefile.am: Don't allow target with '/'.
 4815 	* tests/gpgsm/Makefile.am: Ditto.
 4816 
 4817 2018-02-13  Andre Heinecke  <aheinecke@intevation.de>
 4818 
 4819 	configure: Fix mingw check for getenv.
 4820 	+ commit 5ec890b9c76db0f23cc396108ff6f1fe658855a8
 4821 	* configure.ac: have_thread_safe_getenv=yes with have_w32_system.
 4822 
 4823 2018-02-13  NIIBE Yutaka  <gniibe@fsij.org>
 4824 
 4825 	configure: MinGW has thread-safe getenv.
 4826 	+ commit 77ca9cc2db2c6da303b9224a931679a325ebda1e
 4827 	* configure.ac: have_thread_safe_getenv=yes with have_w64_system.
 4828 
 4829 2018-02-09  Andre Heinecke  <aheinecke@intevation.de>
 4830 
 4831 	cpp: Add SpawnShowWindow flag.
 4832 	+ commit 7e27a0ff64626026521dc5877b278794cea72e61
 4833 	* lang/cpp/src/context.h (SpawnShowWindow): New.
 4834 
 4835 	core, w32: Enable spawning GUI applications.
 4836 	+ commit 201db83a7f1b7759173b6e9f0a844caef4da6cce
 4837 	* src/engine-spawn.c (engspawn_start): Translate spawn flag
 4838 	to IOSPAWN flag.
 4839 	* src/gpgme-w32spawn.c (my_spawn): Handle the new flag.
 4840 	* src/gpgme.h.in (GPGME_SPAWN_SHOW_WINDOW): New.
 4841 	* src/priv-io.h (IOSPAWN_FLAG_SHOW_WINDOW): New.
 4842 
 4843 	core, w32: Fix flags passing to gpgme-w32-spawn.
 4844 	+ commit f10605ffb5cc9d457c3e432918fdfbfaf3d04185
 4845 	* src/w32-io.c (_gpgme_io_spawn): Don't hardcode flags value.
 4846 
 4847 	cpp: Add conveniance Data::toString.
 4848 	+ commit 5a5b0d4996c17bfbc69b90f89fec23732f92813a
 4849 	* lang/cpp/src/data.h, lang/cpp/src/data.cpp: Add Data::toString.
 4850 
 4851 2018-01-30  NIIBE Yutaka  <gniibe@fsij.org>
 4852 
 4853 	Fix for BSD Make.
 4854 	+ commit 59fcabbdf537b2745ef0c3cae908b21970a5b39b
 4855 	* tests/gpg/Makefile.am, tests/gpgsm/Makefile.am: Remove ./.
 4856 
 4857 2018-01-29  NIIBE Yutaka  <gniibe@fsij.org>
 4858 
 4859 	Fix compile error message.
 4860 	+ commit bbb5e70e7e8598978b6c61b13ba77705ff86e469
 4861 	* src/get-env.c (_gpgme_getenv): Fix error message.
 4862 
 4863 	tests: Fix for NetBSD.
 4864 	+ commit 58130b97f6582455fd355ac58ae3182a28812cfc
 4865 	* tests/gpg/pinentry: Use /bin/sh instead of Bash.
 4866 
 4867 	core: Implement _gpgme_getenv for NetBSD.
 4868 	+ commit 37d62e9d0f685c257fdb5f303e60ff01f8a36a2f
 4869 	* src/get-env.c [HAVE_GETENV_R] (_gpgme_getenv): New.
 4870 
 4871 2017-12-12  Werner Koch  <wk@gnupg.org>
 4872 
 4873 	Release 1.10.0.
 4874 	+ commit 6a42eb5f3809d5eb3767667c190b395d028886e7
 4875 
 4876 
 4877 	Require libgpg-error 1.24 and libassuan 2.4.2.
 4878 	+ commit d4d04d6c0432b032f6ea23c8517fd6a5f623bb67
 4879 	* src/util.h (GPG_ERR_FALSE): Remove due to newer libgpg-error.
 4880 
 4881 2017-12-11  Andre Heinecke  <aheinecke@intevation.de>
 4882 
 4883 	qt: Don't use QDateTime::toSecsSinceEpoch.
 4884 	+ commit b61d0fbb74f04408dfe8637c719b97217e061a3c
 4885 	* lang/qt/src/qgpgmequickjob.cpp (addSubkeyWorker)
 4886 	(createWorker): Use toMSecsSinceEpoch instead toSecsSinceEpoch.
 4887 
 4888 2017-12-11  Werner Koch  <wk@gnupg.org>
 4889 
 4890 	core,w32: Fix popping up of console windows due to gpgconf.
 4891 	+ commit 0a567a94d94cd93c5d88f5db802925c95f0974d0
 4892 	* src/gpgme-w32spawn.c (my_spawn): Create w/o DETACHED_PROCESS.
 4893 
 4894 2017-12-07  Andre Heinecke  <aheinecke@intevation.de>
 4895 
 4896 	cpp: Fix handling of lsig promotion.
 4897 	+ commit 1458adaea4acdcf7ebbead6668476fce92db5af8
 4898 	* src/gpgsignkeyeditinteractor.cpp (SignKeyState): Add second
 4899 	CONFIRM state.
 4900 	(makeTable): Properly handle local_promote_okay.
 4901 	(action): Handle CONFIRM2.
 4902 
 4903 	tests: Print userid signatures in run-keylist.
 4904 	+ commit 5ba1cbdf39efd90c7987bfc2bc030b6504e70076
 4905 	* tests/run-keylist.c (main): Print UID signatures if there
 4906 	are any.
 4907 
 4908 2017-12-04  Werner Koch  <wk@gnupg.org>
 4909 
 4910 	core: Also check for a failed selftest in gpgm_data_new.
 4911 	+ commit 0c1244a2b7e30ab0610ae70166e1b5d0219782c3
 4912 	* src/data.c (_gpgme_data_new): Check for failed selftest.
 4913 	* tests/run-support.h (make_filename): Print a message on mallooc
 4914 	failure.
 4915 	(init_gpgme_basic): New.
 4916 	* tests/run-identify.c (main): Call init_gpgme_basic becuase we do not
 4917 	need to setup a protocol.
 4918 	* tests/t-data.c: Define PGM and include run-support.h.
 4919 	(make_filename): Remove.
 4920 	(main): Call init_gpgme_basic.
 4921 
 4922 2017-12-04  Tobias Mueller  <muelli@cryptobitch.de>
 4923 
 4924 	python: Default whence argument for Data() to SEEK_SET.
 4925 	+ commit 3cf9aedc92b6c65d2cb34037e52b9a299637d03b
 4926 	* lang/python/gpgme.i: copied signature from gpgme.h and defaulted the
 4927 	value to SEEK_SET.
 4928 	* lang/python/tests/t-data.py: Added a test for no second argument
 4929 
 4930 2017-12-01  Andre Heinecke  <aheinecke@intevation.de>
 4931 
 4932 	qt: Add job for quick commands.
 4933 	+ commit 7d1ac5d61de3c55bf7ff14997b4b111a0f90c177
 4934 	* lang/qt/src/qgpgmequickjob.cpp,
 4935 	lang/qt/src/qgpgmequickjob.h,
 4936 	lang/qt/src/quickjob.h: New.
 4937 	* lang/qt/src/Makefile.am,
 4938 	lang/qt/src/protocol.h,
 4939 	lang/qt/src/protocol_p.h,
 4940 	lang/qt/src/job.cpp: Update accordingly.
 4941 
 4942 	cpp: Wrap create_key and create_subkey.
 4943 	+ commit 8e2d6c28a5e923f829b5a26d19d9d897949aa1fe
 4944 	* lang/cpp/src/context.cpp,
 4945 	lang/cpp/src/context.h (Context::startCreateKey)
 4946 	(Context::createKey, Context::createSubkey)
 4947 	(Context::startCreateSubkey): New.
 4948 
 4949 	Fix uid parsing for ldap keyserver.
 4950 	+ commit 651b3d8207cc7d85699f89fc4c21cb1243453aa8
 4951 	* src/engine-gpg.c (gpg_keylist_preprocess): Check field count
 4952 	for uid and add fallback.
 4953 
 4954 2017-11-30  Werner Koch  <wk@gnupg.org>
 4955 
 4956 	tests: Add missing variable to gpgsm tests Makefile.
 4957 	+ commit f43016500774ab82f222249202bda6c463aaf63f
 4958 	* tests/gpgsm/Makefile.am (GPG_AGENT): Set var.  It is used later.
 4959 
 4960 2017-11-21  NIIBE Yutaka  <gniibe@fsij.org>
 4961 
 4962 	tests: Make portability fix.
 4963 	+ commit c441fb73130f4c117094d7da4de9fe56f886e65d
 4964 	* lang/python/tests/Makefile.am: Distinguish target and path.
 4965 	* tests/gpg/Makefile.am: Ditto.
 4966 	* tests/gpgsm/Makefile.am: Ditto.
 4967 
 4968 2017-11-14  Andre Heinecke  <aheinecke@intevation.de>
 4969 
 4970 	qt: Fix IODeviceDataProvider with Process.
 4971 	+ commit 56b27b21d5f8dd95b9d6415c5e98b821774f3093
 4972 	* lang/qt/src/dataprovider.cpp (blocking_read): Keep
 4973 	reading if process is not atEnd.
 4974 
 4975 2017-10-12  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 4976 
 4977 	core: use getdents64 syscall on linux instead of getdents.
 4978 	+ commit 00daac15530eabed5e61d841b2df939c2242667c
 4979 	* src/posix-io.c (get_max_fds): use getdents64 instead of getdents.
 4980 
 4981 2017-10-04  Werner Koch  <wk@gnupg.org>
 4982 
 4983 	core: Allow disabling the use of SYS_getdents for Linux.
 4984 	+ commit 4632adf403611b50be2b4e852a4607070935d0e5
 4985 	* configure.ac (USE_LINUX_GETDENTS): New ac_define.  Add option
 4986 	--disable-linux-getdents.
 4987 	* src/posix-io.c: Make use of USE_LINUX_GETDENTS.
 4988 
 4989 2017-10-04  Colin Watson  <cjwatson@debian.org>
 4990 
 4991 	core: Restore get_max_fds optimization on Linux.
 4992 	+ commit b5b996b1a142abb90296f5feadf0b5b19c59f738
 4993 	* src/posix-io.c (get_max_fds): Restore Linux optimization, this time
 4994 	using open/getdents/close rather than opendir/readdir/closedir.
 4995 
 4996 2017-09-04  Andre Heinecke  <aheinecke@intevation.de>
 4997 
 4998 	qt: Add test for version info.
 4999 	+ commit bd5d470cef513b2f459316869b81267cde7a9f13
 5000 	* lang/qt/tests/t-various.cpp (TestVarious::testVersion): New.
 5001 
 5002 	cpp: Fix version info comparison.
 5003 	+ commit 58d7bcead3394fa80c2a05d0d1e0fb4d9a1048b0
 5004 	* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<):
 5005 	Fix logic.
 5006 	* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator>):
 5007 	New.
 5008 	* NEWS: Mention added API
 5009 
 5010 2017-08-24  Werner Koch  <wk@gnupg.org>
 5011 
 5012 	core: New context flag "auto-key-retrieve"
 5013 	+ commit 47f61df0704485b8165c9cf2a27ad57bcd864239
 5014 	* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag
 5015 	"auto-key-retrieve".
 5016 	* src/context.h (gpgme_context): New field auto_key_retrieve.
 5017 	* src/engine-backend.h (struct engine_ops): Add arg auto_key_retrieve
 5018 	to field 'decrypt'.
 5019 	* src/engine-gpg.c (gpg_decrypt): Add arg auto_key_retrieve and pass
 5020 	option --auto-key-retrieve to gpg.  Adjust all callers.
 5021 	(gpg_verify): Ditto.
 5022 	* src/engine-gpgsm.c (gpgsm_decrypt): Add dummy arg auto_key_retrieve.
 5023 	* src/engine-uiserver.c (uiserver_decrypt): Ditto.
 5024 	* tests/run-verify.c (main): Add option --auto-key-retrieve.
 5025 
 5026 	core: New public enum gpgme_keyorg_t.
 5027 	+ commit 9bde9144f0c2d0087799511e9b041dc945a4cfa8
 5028 	* src/gpgme.h.in (gpgme_keyorg_t): New.
 5029 	* src/keylist.c (parse_keyorg): New.
 5030 	(keylist_colon_handler): Set key->ORIGIN.
 5031 
 5032 2017-08-24  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
 5033 
 5034 	gpgconf: Add more comments.
 5035 	+ commit 91e47d71652bd0f83b51089c343c3c4836bdfa8a
 5036 	* src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir):
 5037 	Add comments.
 5038 
 5039 2017-08-23  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
 5040 
 5041 	Fix a couple of bugs pointed out by clang compiler warnings.
 5042 	+ commit bfb3a01a0c55aa327dcab061fa808672362cb09d
 5043 	* src/engine-gpgconf.c (gpgconf_config_dir_cb): Fix cast.
 5044 	* src/key.c (_gpgme_key_add_sig): Fix pointer reference.
 5045 
 5046 2017-08-21  Alon Bar-Lev  <alon.barlev@gmail.com>
 5047 
 5048 	python: Support parallel build in tests.
 5049 	+ commit 57c12593082e4ad302041269f1c35f2fe7d2fb1a
 5050 	* lang/python/tests/Makefile.am: Depend xcheck with all which was lost
 5051 	due to the check hack.
 5052 
 5053 2017-08-21  Justus Winter  <justus@g10code.com>
 5054 
 5055 	python: Improve keylist test.
 5056 	+ commit 70c8be9efe8de40bec0f0673589f3c9be7136674
 5057 	* lang/python/tests/t-keylist.py: Check a keylist matching no keys.
 5058 
 5059 2017-08-16  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
 5060 
 5061 	doc: Add version information.
 5062 	+ commit b9b08e46934eea9083afb2eaf4bffa23d6c27801
 5063 	* doc/gpgme.texi (since): New macro.  Use it to add version
 5064 	information to those APIs that are mentioned in the NEWS file.
 5065 
 5066 	doc: Clarify import keys operation further.
 5067 	+ commit 0ee7f4f178284dae153a59be710bc994820369e5
 5068 	* doc/gpgme.texi (gpgme_op_import_keys): Further clarifications.
 5069 
 5070 	gpgconf: Fix some warnings.
 5071 	+ commit 3244d4daff892d5d3c39e78f4eb0934379beda2c
 5072 	* tests/gpg/t-gpgconf.c (main): Fix warnings.
 5073 	* src/engine-gpgconf.c (struct gpgconf_config_dir_s): New struct.
 5074 	(gpgconf_config_dir_cb, gpgconf_conf_dir) Use it to fix warning.
 5075 
 5076 	gpgconf: Fix symbol export.
 5077 	+ commit 97a1abe72e73f85bbf922fa588d002a226db5459
 5078 	* gpgme.def: Fix last change.
 5079 	(gpgme_op_conf_save): Replace duplicate from c&p ...
 5080 	(gpgme_op_conf_dir): ... with this.
 5081 
 5082 2017-08-15  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
 5083 
 5084 	NEWS: Add missing entry.
 5085 	+ commit fa3918598de35fef0bf626035d59ea36c53832b9
 5086 
 5087 
 5088 	gpgconf: Add access to --list-dirs for non-default engine.
 5089 	+ commit 9f24e6c9010e171fd11c5cdac797cb8ce2e501dd
 5090 	* src/engine-assuan.c (_gpgme_engine_ops_assuan): Add conf_dir.
 5091 	* src/engine-g13.c (_gpgme_engine_ops_g13): Likewise.
 5092 	* src/engine-gpg.c (_gpgme_engine_ops_gpg): Likewise.
 5093 	* src/engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Likewise.
 5094 	* src/engine-spawn.c (_gpgme_engine_ops_spawn): Likewise.
 5095 	* src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Likewise.
 5096 	* src/engine-backend.h (struct engine_ops): Likewise.
 5097 	* src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir):
 5098 	New functions.
 5099 	(struct engine_ops): Add gpgconf_conf_dir.
 5100 	* src/engine.c (_gpgme_engine_op_conf_dir): New function.
 5101 	* src/engine.h (_gpgme_engine_op_conf_dir): New prototype.
 5102 	* src/gpgconf.c (gpgme_op_conf_dir): New function.
 5103 	* src/gpgme.def (gpgme_op_conf_save): New symbol.
 5104 	* src/gpgme.h.in (gpgme_op_conf_dir): New prototype.
 5105 	* src/libgpgme.vers (gpgme_op_conf_dir): New symbol.
 5106 	* tests/gpg/t-gpgconf.c (main): Test gpgme_op_conf_dir.
 5107 
 5108 2017-08-11  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
 5109 
 5110 	g10: Add new delete operations that allow more flags.
 5111 	+ commit a0cc6e01a8900b34cf231d8b5335ef3f85d01fdf
 5112 	* NEWS: Document new interfaces.
 5113 	* doc/gpgme.texi: Document new interfaces.
 5114 	* src/gpgme.h.in (GPGME_DELETE_ALLOW_SECRET, GPGME_DELETE_FORCE,
 5115 	gpgme_op_delete_ext_start, gpgme_op_delete_ext): New.
 5116 	* src/delete.c (delete_start): Change allow_secret argument to flags.
 5117 	(gpgme_op_delete_ext, gpgme_op_delete_ext_start): New functions.
 5118 	* src/engine-backend.h (delete): Change allow_secret argument to flags.
 5119 	* src/engine.c (_gpgme_engine_op_delete): Likewise.
 5120 	* src/engine.h (_gpgme_engine_op_delete): Likewise (for prototype).
 5121 	* src/engine-gpgsm.c (gpgsm_delete): Likewise.
 5122 	* src/engine-gpg.c (gpg_delete): Likewise.  Implement GPGME_DELETE_FORCE.
 5123 	* src/gpgme.def (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
 5124 	* src/libgpgme.vers (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
 5125 
 5126 2017-08-10  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
 5127 
 5128 	doc: Clarify import keys operation.
 5129 	+ commit dfb3ca85680534b3885ab04d3fba4752c5a6f998
 5130 	* doc/gpgme.texi (gpgme_op_import_start): Fix grammar.
 5131 	(gpgme_op_import_keys): Clarify some wording and fix result.
 5132 	* src/import.c (gpgme_op_import_keys): Clarify comment.
 5133 
 5134 	doc: Add more tofu documentation.
 5135 	+ commit 274609baceda3378b21f84c3ae6a44806dad2dba
 5136 	* doc/gpgme.texi (gpgme_tofu_info_t): Document structure.
 5137 	(gpgme_sigsum_t): Document GPGME_SIGSUM_TOFU_CONFLICT.
 5138 
 5139 2017-07-27  Andre Heinecke  <aheinecke@intevation.de>
 5140 
 5141 	core: Fix status parsing for decrypt + verify.
 5142 	+ commit d3796e4504a2b4f422de17d78f3acfe8dd199c9c
 5143 	* src/decrypt.c (parse_status_error): Don't modify args.
 5144 
 5145 2017-07-26  Andre Heinecke  <aheinecke@intevation.de>
 5146 
 5147 	cpp: Fix Key::isDeVs for subkeys.
 5148 	+ commit c7be41a5f850addceb2a95444bad2a31cdcd1ce5
 5149 	* lang/cpp/src/key.cpp (Key::isDeVs): Check all subkeys.
 5150 
 5151 2017-07-13  Justus Winter  <justus@g10code.com>
 5152 
 5153 	tests: Fix distcheck.
 5154 	+ commit 7fde780cc1773c6d3902d4f49a8d4aadbf3223d4
 5155 	* tests/start-stop-agent: Remove backup file.
 5156 
 5157 	tests: Make agent spawning more robust.
 5158 	+ commit 9cd2b58dfb2c21cce64520cf4c726859b583d14e
 5159 	* tests/gpgsm/Makefile.am (gpgsm.conf): Add agent-program directive.
 5160 	* tests/start-stop-agent: Update agent-program directive.
 5161 
 5162 2017-07-12  Werner Koch  <wk@gnupg.org>
 5163 
 5164 	tests: Fix printf compiler warning for an error case.
 5165 	+ commit 46d2e48105e0929ec38dd4106004dd60d941df9a
 5166 	* tests/gpg/t-keylist.c (main): Cast DIM to int.
 5167 
 5168 	core: Return NO_SECKEY error code on decryption.
 5169 	+ commit ad0c5ab4cd8d3a1b11b37dc137b75a67aa26da37
 5170 	* src/decrypt.c (op_data_t): Add flag any_no_seckey.
 5171 	(_gpgme_decrypt_status_handler): Consult that flag.
 5172 	(_gpgme_decrypt_status_handler): Set that flag.
 5173 
 5174 	core: Return CANCELED and BAD_PASSPHRASE error code on decryption.
 5175 	+ commit d37bc7e025cdc6228da45b2b527e9f3bfef71c71
 5176 	* src/decrypt.c (op_data_t): Add field pkdecrypt_failed.
 5177 	(_gpgme_decrypt_status_handler): Consult new field.
 5178 	(parse_status_error): Handle some error codes.
 5179 
 5180 	core: Simplify parsing of STATUS_ERROR in decrypt.c.
 5181 	+ commit 87703dbb86ac8fd8abd23170f8038ea6e3dbde28
 5182 	* src/decrypt.c (_gpgme_decrypt_status_handler): Factor some code out
 5183 	to ...
 5184 	(parse_status_error): new.  Modernize parsing.
 5185 
 5186 2017-07-11  Justus Winter  <justus@g10code.com>
 5187 
 5188 	python: Improve error handling.
 5189 	+ commit 1e68f93dc547ae75b921e43db35e3599de92e2cb
 5190 	* NEWS: Update.
 5191 	* lang/python/src/core.py (Context.__read__): New helper function.
 5192 	(Context.encrypt): Attach partial results to exceptions.
 5193 	(Context.decrypt): Likewise.
 5194 	(Context.sign): Likewise.
 5195 	(Context.verify): Likewise.
 5196 	* lang/python/src/errors.py (GpgError): Move the core of GPGMEError to
 5197 	this class, add a nicer interface for it.  This makes the errors
 5198 	thrown by this library more uniform, and allows us to track the
 5199 	underlying error in synthesized high-level errors.
 5200 	(GPGMEError): Simplify.
 5201 	(...): Make sure to call the parent classes' constructor in all other
 5202 	classes.
 5203 
 5204 2017-07-10  Andre Heinecke  <aheinecke@intevation.de>
 5205 
 5206 	Add isDeVs to ostream operator.
 5207 	+ commit fe79eb8de3dc780eafb38a0a0a016748e764ff04
 5208 	* lang/cpp/src/decryptionresult.cpp,
 5209 	lang/cpp/src/verificationresult.cpp: Extend ostream operator
 5210 	to include isDeVs.
 5211 
 5212 2017-06-12  Andre Heinecke  <aheinecke@intevation.de>
 5213 
 5214 	cpp: Fix CMake config library name for GPGME.
 5215 	+ commit 5c53c702605b8d4458a14e6303cdc13f3b106efa
 5216 	* lang/cpp/src/GpgmeppConfig.cmake.in.in: The link library
 5217 	is of course also dynamic.
 5218 
 5219 2017-06-01  Justus Winter  <justus@g10code.com>
 5220 
 5221 	Add flag 'is_de_vs' to decryption results and signatures.
 5222 	+ commit 05fa2a9c7764b28fdac35eb72631439df948ca0e
 5223 	* NEWS: Update.
 5224 	* lang/cpp/src/decryptionresult.cpp (DecryptionResult::isDeVs): New
 5225 	function.
 5226 	* lang/cpp/src/decryptionresult.h (DecryptionResult::isDeVs): New
 5227 	prototype.
 5228 	* lang/cpp/src/verificationresult.cpp (Signature::isDeVs): New
 5229 	function.
 5230 	* lang/cpp/src/verificationresult.h (Signature::isDeVs): New
 5231 	prototype.
 5232 	* lang/python/src/results.py (DecryptResult): Turn field 'is_de_vs'
 5233 	into a boolean.
 5234 	(Signature): Likewise.
 5235 	* src/decrypt.c (_gpgme_decrypt_status_handler): Handle the new
 5236 	compliance status line.
 5237 	* src/verify.c (_gpgme_verify_status_handler): Likewise.
 5238 	* src/gpgme.h.in (gpgme_status_code_t): Add new status codes for the
 5239 	new status lines.
 5240 	* src/keylist.c (parse_pub_field18): Move function to 'util.h'.
 5241 	(keylist_colon_handler): Adapt callsites.
 5242 	* src/status-table.c (status_table): Add new status lines.
 5243 	* src/util.h (PARSE_COMPLIANCE_FLAGS): New macro.  This used to be
 5244 	'parse_pub_field18', but turned into a macro to make it polymorphic.
 5245 
 5246 2017-05-18  Justus Winter  <justus@g10code.com>
 5247 
 5248 	python: Fix build in certain cases.
 5249 	+ commit 84a203e60b9935bd8536cd2832fbc55d7f011341
 5250 	* lang/python/setup.py.in: Prepend the Python build dir to the list of
 5251 	include directories so that it takes precedence over any other include
 5252 	directory.
 5253 
 5254 2017-05-10  Justus Winter  <justus@g10code.com>
 5255 
 5256 	tests: Remove remnants of 'check-local'.
 5257 	+ commit a9b4c0ad0d1085ff76742e44cf0cf926e89d1f4c
 5258 	* tests/gpgsm/Makefile.am (check-local): Drop rule and the dependency
 5259 	on it.
 5260 
 5261 	python: Fix test environment creation.
 5262 	+ commit 6b4dd3b929ac23271bfa96edb9dbb142eca0a30f
 5263 	* lang/python/tests/Makefile.am (pubring-stamp): Do not depend on the
 5264 	configuration files, this can trigger superfluous rebuilds.
 5265 
 5266 	tests: Make sure to kill all previously running daemons.
 5267 	+ commit a226eca84670ef4e171c3a54e7caefb3a89254a4
 5268 	* lang/python/tests/Makefile.am: Kill all previously running daemons
 5269 	before creating the private key store.
 5270 	* lang/qt/tests/Makefile.am: Likewise.
 5271 	* tests/gpg/Makefile.am: Likewise.
 5272 	* tests/gpgsm/Makefile.am: Likewise.
 5273 
 5274 	tests: Harmonize test suites.
 5275 	+ commit 15adff073bb89dc032d8342cfbbdad2850943f52
 5276 	* lang/python/tests/Makefile.am: Create test environment as part of
 5277 	'make all'.
 5278 	* tests/gpg/Makefile.am: Make sure the private keystore is created
 5279 	first.
 5280 	* tests/gpgsm/Makefile.am: Create test environment as part of
 5281 	'make all'.  Make sure the private keystore is created
 5282 	first.
 5283 
 5284 	qt: Stop agent on clean.
 5285 	+ commit 093b5497b7231590ce91ccf73ba64ebc0757f9e9
 5286 	* lang/qt/tests/Makefile.am (clean-local): Stop agent.
 5287 
 5288 2017-05-10  Andre Heinecke  <aheinecke@intevation.de>
 5289 
 5290 	qt: Add a missing include <functional>
 5291 	+ commit 5e27bf98b4c48cf6a239bcc94b7b67515ff339e7
 5292 	* lang/qt/src/qgpgmenewcryptoconfig.cpp: Include functional.
 5293 
 5294 	qt: Undeprecate API that I find useful.
 5295 	+ commit cc2ef3d07c0d261bb9e8e8c0f2706e1a08e4ec53
 5296 	* lang/qt/src/decryptjob.h,
 5297 	lang/qt/src/decryptverifyjob.h,
 5298 	lang/qt/src/signencryptjob.h,
 5299 	lang/qt/src/verifydetachedjob.h,
 5300 	lang/qt/src/verifyopaquejob.h: Undeprecate ByteArray based API.
 5301 
 5302 	qt, tests: Don't use internal API.
 5303 	+ commit b56f398eff4e3e70dea714c3174a5512dd9bcf33
 5304 	* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp:
 5305 	Only use exported API.
 5306 
 5307 2017-05-03  Andre Heinecke  <aheinecke@intevation.de>
 5308 
 5309 	core: Don't split gpgconf strings on comma.
 5310 	+ commit df4eb611e33dcab7bebf07b13734c7db7ccf40da
 5311 	* src/engine-gpgconf.c (gpgconf_parse_option): Don't split
 5312 	strings on comma.
 5313 
 5314 2017-04-25  Andre Heinecke  <aheinecke@intevation.de>
 5315 
 5316 	qt, cpp: Add additional copyright BSI notes.
 5317 	+ commit 28734240e2a2ce67b64df55364f35e1648376311
 5318 	* lang/cpp/Makefile.am,
 5319 	lang/cpp/src/Makefile.am,
 5320 	lang/cpp/src/callbacks.cpp,
 5321 	lang/cpp/src/callbacks.h,
 5322 	lang/cpp/src/configuration.cpp,
 5323 	lang/cpp/src/configuration.h,
 5324 	lang/cpp/src/context_glib.cpp,
 5325 	lang/cpp/src/context_p.h,
 5326 	lang/cpp/src/context_qt.cpp,
 5327 	lang/cpp/src/context_vanilla.cpp,
 5328 	lang/cpp/src/data_p.h,
 5329 	lang/cpp/src/decryptionresult.cpp,
 5330 	lang/cpp/src/decryptionresult.h,
 5331 	lang/cpp/src/defaultassuantransaction.cpp,
 5332 	lang/cpp/src/defaultassuantransaction.h,
 5333 	lang/cpp/src/editinteractor.cpp,
 5334 	lang/cpp/src/editinteractor.h,
 5335 	lang/cpp/src/encryptionresult.cpp,
 5336 	lang/cpp/src/encryptionresult.h,
 5337 	lang/cpp/src/engineinfo.cpp,
 5338 	lang/cpp/src/engineinfo.h,
 5339 	lang/cpp/src/error.h,
 5340 	lang/cpp/src/eventloopinteractor.cpp,
 5341 	lang/cpp/src/eventloopinteractor.h,
 5342 	lang/cpp/src/exception.cpp,
 5343 	lang/cpp/src/exception.h,
 5344 	lang/cpp/src/global.h,
 5345 	lang/cpp/src/gpgadduserideditinteractor.cpp,
 5346 	lang/cpp/src/gpgadduserideditinteractor.h,
 5347 	lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
 5348 	lang/cpp/src/gpgagentgetinfoassuantransaction.h,
 5349 	lang/cpp/src/gpgmefw.h,
 5350 	lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
 5351 	lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
 5352 	lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
 5353 	lang/cpp/src/gpgsetownertrusteditinteractor.h,
 5354 	lang/cpp/src/gpgsignkeyeditinteractor.cpp,
 5355 	lang/cpp/src/gpgsignkeyeditinteractor.h,
 5356 	lang/cpp/src/importresult.cpp,
 5357 	lang/cpp/src/importresult.h,
 5358 	lang/cpp/src/interfaces/assuantransaction.h,
 5359 	lang/cpp/src/interfaces/dataprovider.h,
 5360 	lang/cpp/src/interfaces/passphraseprovider.h,
 5361 	lang/cpp/src/interfaces/progressprovider.h,
 5362 	lang/cpp/src/keygenerationresult.cpp,
 5363 	lang/cpp/src/keygenerationresult.h,
 5364 	lang/cpp/src/keylistresult.cpp,
 5365 	lang/cpp/src/keylistresult.h,
 5366 	lang/cpp/src/notation.h,
 5367 	lang/cpp/src/result.h,
 5368 	lang/cpp/src/result_p.h,
 5369 	lang/cpp/src/scdgetinfoassuantransaction.cpp,
 5370 	lang/cpp/src/scdgetinfoassuantransaction.h,
 5371 	lang/cpp/src/signingresult.cpp,
 5372 	lang/cpp/src/signingresult.h,
 5373 	lang/cpp/src/trustitem.cpp,
 5374 	lang/cpp/src/trustitem.h,
 5375 	lang/cpp/src/util.h,
 5376 	lang/cpp/src/verificationresult.cpp,
 5377 	lang/cpp/src/verificationresult.h,
 5378 	lang/cpp/src/vfsmountresult.cpp,
 5379 	lang/qt/Makefile.am,
 5380 	lang/qt/doc/Makefile.am,
 5381 	lang/qt/src/Makefile.am,
 5382 	lang/qt/src/defaultkeygenerationjob.h,
 5383 	lang/qt/tests/Makefile.am: Add missing copyright.
 5384 
 5385 	Change copyright from Intevation to BSI.
 5386 	+ commit 70035834326d0d04a5904ae01bc3757e577facf4
 5387 	* lang/cpp/src/gpggencardkeyinteractor.cpp,
 5388 	lang/cpp/src/gpggencardkeyinteractor.h,
 5389 	lang/cpp/src/gpgmepp_export.h,
 5390 	lang/cpp/src/swdbresult.cpp,
 5391 	lang/cpp/src/swdbresult.h,
 5392 	lang/cpp/src/tofuinfo.cpp,
 5393 	lang/cpp/src/tofuinfo.h,
 5394 	lang/qt/src/abstractimportjob.h,
 5395 	lang/qt/src/adduseridjob.h,
 5396 	lang/qt/src/changeexpiryjob.h,
 5397 	lang/qt/src/changeownertrustjob.h,
 5398 	lang/qt/src/changepasswdjob.h,
 5399 	lang/qt/src/cryptoconfig.cpp,
 5400 	lang/qt/src/cryptoconfig.h,
 5401 	lang/qt/src/dataprovider.cpp,
 5402 	lang/qt/src/dataprovider.h,
 5403 	lang/qt/src/decryptjob.h,
 5404 	lang/qt/src/decryptverifyjob.h,
 5405 	lang/qt/src/deletejob.h,
 5406 	lang/qt/src/dn.cpp,
 5407 	lang/qt/src/dn.h,
 5408 	lang/qt/src/downloadjob.h,
 5409 	lang/qt/src/encryptjob.h,
 5410 	lang/qt/src/exportjob.h,
 5411 	lang/qt/src/hierarchicalkeylistjob.h,
 5412 	lang/qt/src/importfromkeyserverjob.h,
 5413 	lang/qt/src/importjob.h,
 5414 	lang/qt/src/job.cpp,
 5415 	lang/qt/src/job.h,
 5416 	lang/qt/src/keyformailboxjob.h,
 5417 	lang/qt/src/keygenerationjob.h,
 5418 	lang/qt/src/keylistjob.h,
 5419 	lang/qt/src/listallkeysjob.h,
 5420 	lang/qt/src/multideletejob.h,
 5421 	lang/qt/src/protocol.h,
 5422 	lang/qt/src/protocol_p.h,
 5423 	lang/qt/src/qgpgme_export.h,
 5424 	lang/qt/src/qgpgmeadduseridjob.cpp,
 5425 	lang/qt/src/qgpgmeadduseridjob.h,
 5426 	lang/qt/src/qgpgmebackend.cpp,
 5427 	lang/qt/src/qgpgmebackend.h,
 5428 	lang/qt/src/qgpgmechangeexpiryjob.cpp,
 5429 	lang/qt/src/qgpgmechangeexpiryjob.h,
 5430 	lang/qt/src/qgpgmechangeownertrustjob.cpp,
 5431 	lang/qt/src/qgpgmechangeownertrustjob.h,
 5432 	lang/qt/src/qgpgmechangepasswdjob.cpp,
 5433 	lang/qt/src/qgpgmechangepasswdjob.h,
 5434 	lang/qt/src/qgpgmedecryptjob.cpp,
 5435 	lang/qt/src/qgpgmedecryptjob.h,
 5436 	lang/qt/src/qgpgmedecryptverifyjob.cpp,
 5437 	lang/qt/src/qgpgmedecryptverifyjob.h,
 5438 	lang/qt/src/qgpgmedeletejob.cpp,
 5439 	lang/qt/src/qgpgmedeletejob.h,
 5440 	lang/qt/src/qgpgmedownloadjob.cpp,
 5441 	lang/qt/src/qgpgmedownloadjob.h,
 5442 	lang/qt/src/qgpgmeencryptjob.cpp,
 5443 	lang/qt/src/qgpgmeencryptjob.h,
 5444 	lang/qt/src/qgpgmeexportjob.cpp,
 5445 	lang/qt/src/qgpgmeexportjob.h,
 5446 	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
 5447 	lang/qt/src/qgpgmeimportfromkeyserverjob.h,
 5448 	lang/qt/src/qgpgmeimportjob.cpp,
 5449 	lang/qt/src/qgpgmeimportjob.h,
 5450 	lang/qt/src/qgpgmekeyformailboxjob.cpp,
 5451 	lang/qt/src/qgpgmekeyformailboxjob.h,
 5452 	lang/qt/src/qgpgmekeygenerationjob.cpp,
 5453 	lang/qt/src/qgpgmekeygenerationjob.h,
 5454 	lang/qt/src/qgpgmekeylistjob.cpp,
 5455 	lang/qt/src/qgpgmekeylistjob.h,
 5456 	lang/qt/src/qgpgmelistallkeysjob.cpp,
 5457 	lang/qt/src/qgpgmelistallkeysjob.h,
 5458 	lang/qt/src/qgpgmenewcryptoconfig.cpp,
 5459 	lang/qt/src/qgpgmenewcryptoconfig.h,
 5460 	lang/qt/src/qgpgmerefreshkeysjob.cpp,
 5461 	lang/qt/src/qgpgmerefreshkeysjob.h,
 5462 	lang/qt/src/qgpgmesecretkeyexportjob.cpp,
 5463 	lang/qt/src/qgpgmesecretkeyexportjob.h,
 5464 	lang/qt/src/qgpgmesignencryptjob.cpp,
 5465 	lang/qt/src/qgpgmesignencryptjob.h,
 5466 	lang/qt/src/qgpgmesignjob.cpp,
 5467 	lang/qt/src/qgpgmesignjob.h,
 5468 	lang/qt/src/qgpgmesignkeyjob.cpp,
 5469 	lang/qt/src/qgpgmesignkeyjob.h,
 5470 	lang/qt/src/qgpgmetofupolicyjob.cpp,
 5471 	lang/qt/src/qgpgmetofupolicyjob.h,
 5472 	lang/qt/src/qgpgmeverifydetachedjob.cpp,
 5473 	lang/qt/src/qgpgmeverifydetachedjob.h,
 5474 	lang/qt/src/qgpgmeverifyopaquejob.cpp,
 5475 	lang/qt/src/qgpgmeverifyopaquejob.h,
 5476 	lang/qt/src/qgpgmewkspublishjob.cpp,
 5477 	lang/qt/src/qgpgmewkspublishjob.h,
 5478 	lang/qt/src/refreshkeysjob.h,
 5479 	lang/qt/src/signencryptjob.h,
 5480 	lang/qt/src/signjob.h,
 5481 	lang/qt/src/signkeyjob.h,
 5482 	lang/qt/src/specialjob.h,
 5483 	lang/qt/src/threadedjobmixin.cpp,
 5484 	lang/qt/src/threadedjobmixin.h,
 5485 	lang/qt/src/tofupolicyjob.h,
 5486 	lang/qt/src/verifydetachedjob.h,
 5487 	lang/qt/src/verifyopaquejob.h,
 5488 	lang/qt/src/wkspublishjob.h,
 5489 	lang/qt/tests/run-keyformailboxjob.cpp,
 5490 	lang/qt/tests/t-config.cpp,
 5491 	lang/qt/tests/t-encrypt.cpp,
 5492 	lang/qt/tests/t-keylist.cpp,
 5493 	lang/qt/tests/t-keylocate.cpp,
 5494 	lang/qt/tests/t-ownertrust.cpp,
 5495 	lang/qt/tests/t-support.cpp,
 5496 	lang/qt/tests/t-support.h,
 5497 	lang/qt/tests/t-tofuinfo.cpp,
 5498 	lang/qt/tests/t-various.cpp,
 5499 	lang/qt/tests/t-verify.cpp,
 5500 	lang/qt/tests/t-wkspublish.cpp,
 5501 	tests/gpg/t-encrypt-mixed.c,
 5502 	tests/gpg/t-thread-keylist-verify.c,
 5503 	tests/gpg/t-thread-keylist.c,
 5504 	tests/run-decrypt.c: Change Intevation GmbH copyright to BSI.
 5505 
 5506 2017-04-24  Andre Heinecke  <aheinecke@intevation.de>
 5507 
 5508 	doc: Improve doc on passphrase_cb / pinentry mode.
 5509 	+ commit 8d61aba1fe0379ba14494f8ae2011ba531554ef4
 5510 	* doc/gpgme.texi (Passphrase Callback): Mention pinentry_mode and
 5511 	restrictions.
 5512 	(Pinentry Mode): Fix wording and clarify versions that need
 5513 	loopback mode for passphrase_cb to work.
 5514 
 5515 2017-04-24  Justus Winter  <justus@g10code.com>
 5516 
 5517 	tests: Update encrypted sample files.
 5518 	+ commit ac28e66f46132ae4a854d04b2f17acd4d55e4296
 5519 	* tests/gpg/cipher-1.asc: Update file.
 5520 	* tests/gpg/cipher-2.asc: Likewise.
 5521 
 5522 2017-04-11  Justus Winter  <justus@g10code.com>
 5523 
 5524 	python: Skip TOFU test if not supported by GnuPG.
 5525 	+ commit 979d48e823357af9999a2adb34d75adaade8dec2
 5526 	* lang/python/tests/support.py (have_tofu_support): New function.
 5527 	* lang/python/tests/t-quick-key-manipulation.py: Skip TOFU test if not
 5528 	supported by GnuPG.
 5529 
 5530 2017-04-11  Alon Bar-Lev  <alon.barlev@gmail.com>
 5531 
 5532 	python: use autoconf pre-processor when building via autoconf.
 5533 	+ commit a827382cafe7f1425455dcc8bf5ef049172eb493
 5534 	* configure.ac: Add AC_PROG_CPP.
 5535 	* lang/python/Makefile.am: Set CPP environment for setup.py to use.
 5536 
 5537 	python: fix run-tests missing python_libdir.
 5538 	+ commit d785c053a982bddefd7014dc6856d1af345fe9fb
 5539 	* lang/python/tests/run-tests.py: Set python_libdir if --python-libdir
 5540 	is set.
 5541 
 5542 2017-04-10  Justus Winter  <justus@g10code.com>
 5543 
 5544 	python: Fix distcheck.
 5545 	+ commit db476e923415f8e458720aaafde7234b802a33ab
 5546 	* lang/python/Makefile.am (uninstall-local): Explicitly request the
 5547 	scheme 'posix_prefix'.  On Python2.7 the default scheme is
 5548 	'posix_local', breaking distcheck.
 5549 
 5550 2017-04-10  Alon Bar-Lev  <alon.barlev@gmail.com>
 5551 
 5552 	python: Support alternatate libdir for tests.
 5553 	+ commit 3cc90b67fa970e716c8672ec5c5f591fa11ab216
 5554 	* lang/python/tests/run-tests.py: Add --python-libdir optional
 5555 	parameter.
 5556 
 5557 	python: Read gpg-error.h using the pre-processor.
 5558 	+ commit 7309ce6f5f7c86570953a141965d4f54cd9ad9a0
 5559 	* lang/python/setup.py.in: Read gpg-error.h using the pre-processor.
 5560 
 5561 	python: Remove unneeded stats copy.
 5562 	+ commit df8433bffa9e669897243f08edf7845762250e4a
 5563 	* lang/python/setup.py.in: errors.i, gpgme.h are generated and always
 5564 	newer than the original.
 5565 
 5566 	python: Remove usage of PYTHON_VERSIONS.
 5567 	+ commit 25e6444b3f4601c7821beab06bc4520deacb007b
 5568 	* configure.ac: Remove PYTHON_VERSIONS subst.
 5569 	* lang/python/Makefile.am: Use basename of python as builddir prefix.
 5570 	* lang/python/tests/run-tests.py: Likewise.
 5571 
 5572 	tests: Do not use check-local magic as dependency.
 5573 	+ commit ebefc6cbf937d14ced65f7ded79c4ba901507d23
 5574 	* tests/gpg/Makefile.am: Use BUILT_SOURCES instead of check-local
 5575 	and initial.test.
 5576 	* lang/qt/tests/Makefile.am: Ditto.
 5577 
 5578 	python: support .pydistutils.cfg mode.
 5579 	+ commit 365c649ad073f2697438dc014160943ae31a1447
 5580 	* lang/python/setup.py.in: Do not parse arguments.
 5581 
 5582 2017-04-07  Alon Bar-Lev  <alon.barlev@gmail.com>
 5583 
 5584 	python: simplify build, some fixups.
 5585 	+ commit 49195c487e6c923f7137f092b982e7d833d98de6
 5586 	* lang/python/gpg/version.py.in: Rename to lang/python/version.py.in.
 5587 	configure.ac: Generate version.py.in in lang/python.
 5588 	* lang/python/MANIFEST.in: Include version.py explicitly.
 5589 	* lang/python/gpg: Rename to 'src'.
 5590 	* lang/python/Makefile.am: Do not copy source files, do not use absolute
 5591 	directories, support lib64 in uninstall, clean also dist directory, use
 5592 	symlink for gpg src.
 5593 	* lang/python/setup.py.in: Use builddir, copy sources into builddir,
 5594 	copy version.py into module.
 5595 
 5596 2017-04-05  Justus Winter  <justus@g10code.com>
 5597 
 5598 	python: Fix vpath builds, fix distcheck.
 5599 	+ commit e7d9c0c3d773f826dbd2ed417d04e25c410f3374
 5600 	* lang/python/gpgme-h-clean.py: Delete file.
 5601 	* lang/python/MANIFEST.in: Adapt accordingly.
 5602 	* lang/python/Makefile.am (EXTRA_DIST): Likewise.
 5603 	(COPY_FILES_GPG): Bring variable back.
 5604 	(copystamp): Copy files.
 5605 	(clean-local): Delete copied files.
 5606 	(install-exec-local): Do not create and install list of installed
 5607 	files.
 5608 	(uninstall-local): Instead, create some explicit rules to uninstall
 5609 	the extension.
 5610 	* lang/python/setup.py.in: Parse arguments.  Locate files either in
 5611 	the source directory, or in the build base directory.  Inline the code
 5612 	from 'gpgme-h-clean.py'.  Copy 'helpers.c', add source directory as
 5613 	include directory.
 5614 
 5615 2017-04-05  Alon Bar-Lev  <alon.barlev@gmail.com>
 5616 
 5617 	python: Generate files into build directory.
 5618 	+ commit 801d7d8c5dd530d26ad6c4bcc94d986e6e022da4
 5619 	* lang/python/setup.py.in: Generate files within BuildExtFirstHack
 5620 	adjust build flags at this point instead of global.
 5621 	* lang/python/Makefile.am: Remove logic of separate source directory per
 5622 	python version in favor of build directory.
 5623 	* lang/python/tests/run-tests.py: Adjust build directory location.
 5624 
 5625 2017-04-03  Pietro Cerutti  <gahr@gahr.ch>
 5626 
 5627 	FreeBSD's closefrom(2) does not return errors.
 5628 	+ commit 50565982cdd502c3852fcc6f598932bd32b5cdc3
 5629 
 5630 
 5631 2017-04-03  Igor Gnatenko  <ignatenkobrain@fedoraproject.org>
 5632 
 5633 	qt: pass fmt to gpgrt_asprintf()
 5634 	+ commit 5d4f977dac542340c877fdd4b1304fa8f6e058e6
 5635 	* lang/qt/src/dn.cpp (parse_dn_part): Add fmt argument instead of
 5636 	using name directly.
 5637 
 5638 	GnuPG-Bug-Id: 3023
 5639 
 5640 2017-03-30  Andre Heinecke  <aheinecke@intevation.de>
 5641 
 5642 	python: Don't treat skipped tests as error.
 5643 	+ commit f8a9ecc6290ebd73fa36647cdfca285fe4d94a62
 5644 	* lang/python/tests/run-tests.py (failed): Don't count skipped tests
 5645 	for the return code.
 5646 
 5647 2017-03-30  Justus Winter  <justus@g10code.com>
 5648 
 5649 	python: Fix skipping tests if running with GnuPG < 2.1.12.
 5650 	+ commit 159505a28864399cc5405d9f85f35ab011a3259e
 5651 	* final.py: Import 'support.py' for the side-effect of checking the
 5652 	GnuPG version.
 5653 	* t-data.py: Likewise.
 5654 	* t-protocol-assuan.py: Likewise.
 5655 	* t-wrapper.py: Likewise.
 5656 	* t-callbacks.py: Avoid warning about 'support' being unused.
 5657 	* t-edit.py: Likewise.
 5658 	* t-encrypt-sym.py: Likewise.
 5659 	* t-file-name.py: Likewise.
 5660 	* t-idiomatic.py: Likewise.
 5661 	* t-sig-notation.py: Likewise.
 5662 	* t-trustlist.py: Likewise.
 5663 	* t-verify.py: Likewise.
 5664 	* t-wait.py: Likewise.
 5665 	* t-keylist-from-data.py: Trim unused imports.
 5666 
 5667 2017-03-30  Andre Heinecke  <aheinecke@intevation.de>
 5668 
 5669 	qt: Handle if gpg does not support tofu in test.
 5670 	+ commit 2c063a8d60418ee59ae80da221420c6f3fa19abb
 5671 	* lang/qt/src/t-tofuinfo.cpp (TestTofuInfo::testSupported): Treat
 5672 	it as unsupported if secret keylisting already fails.
 5673 
 5674 2017-03-29  Alon Bar-Lev  <alon.barlev@gmail.com>
 5675 
 5676 	python,build: Reinstate prepare target.
 5677 	+ commit 9786e3a96e6772166f3523e74a748b9db20fae7c
 5678 	* lang/python/Makefile.am: Fix 'prepare' target.
 5679 	* lang/python/setup.py.in: Use 'abs_top_builddir' instead of guessing
 5680 	the path.
 5681 
 5682 2017-03-28  Justus Winter  <justus@g10code.com>
 5683 
 5684 	tests: Run the threading tests only on UNIX.
 5685 	+ commit 7e9f7752c992f957ccfde3b274865c633096e3bb
 5686 	* tests/gpg/Makefile.am (tests_unix): Add 't-thread-keylist' and
 5687 	't-thread-keylist-verify'.
 5688 	(c_tests): Drop them here.
 5689 
 5690 	tests: Make error message more helpful.
 5691 	+ commit a13e4abe9463579ef23d1acea39a093abfc6528d
 5692 	* tests/gpg/t-keylist.c (main): Print number of returned and expected
 5693 	keys.
 5694 
 5695 2017-03-28  Werner Koch  <wk@gnupg.org>
 5696 
 5697 	Release 1.9.0.
 5698 	+ commit aa0390ec3b910bbbc323a15ec3c3351e77785a9a
 5699 	* configure.ac <c>: Bump LT version to C29/A18/R0.
 5700 	<cpp>: Bump LT version to C10/A4/R0.
 5701 	<qt>: Bump LT version to C9/A2/R0.
 5702 
 5703 2017-03-28  Andre Heinecke  <aheinecke@intevation.de>
 5704 
 5705 	Revert "qt: Disable testEncryptDecryptNowrap"
 5706 	+ commit a2ccb3172896a90bc27c95964ef94bd7c0924802
 5707 	This reverts commit 57d60b20f16dd5f1bccbbcaa0a6ed75a554a6414.
 5708 
 5709 2017-03-28  Werner Koch  <wk@gnupg.org>
 5710 
 5711 	core: Prepare for new key listing data send by gpg.
 5712 	+ commit 813ae5fa2d712aa9679b791c67c9c1c43d36ffe4
 5713 	* src/gpgme.h.in (gpgme_user_id_t): New fields 'origin' and
 5714 	'last_update'.
 5715 	(gpgme_key_t): New fields 'origin' and 'last_update'.
 5716 	* src/conversion.c (_gpgme_parse_timestamp_ul): New.
 5717 	* src/keylist.c (keylist_colon_handler): Parse fields 19 and 20.
 5718 
 5719 	* tests/run-keylist.c (main): Print new fields.
 5720 
 5721 2017-03-27  Andre Heinecke  <aheinecke@intevation.de>
 5722 
 5723 	qt: Disable testEncryptDecryptNowrap.
 5724 	+ commit 57d60b20f16dd5f1bccbbcaa0a6ed75a554a6414
 5725 	* lang/qt/tests/t-encrypt.cpp (EncryptTest::testEncryptDecryptNowrap):
 5726 	Disable test.
 5727 
 5728 2017-03-27  Justus Winter  <justus@g10code.com>
 5729 
 5730 	python: Skip tests if running with GnuPG < 2.1.12.
 5731 	+ commit 348da58fe0c3656e6177c98fef6b4c4331326c8e
 5732 	* lang/python/tests/support.py (assert_gpg_version): Fix error
 5733 	message.  Skip all tests when we use GnuPG older than 2.1.12.
 5734 
 5735 2017-03-24  Andre Heinecke  <aheinecke@intevation.de>
 5736 
 5737 	cpp: Respect decrypt flags in new functions.
 5738 	+ commit 18b7906078cf08962c54c1e711cf2d91a24fd4e5
 5739 	* lang/cpp/src/context.cpp: Respect directly provided flags
 5740 	in the new decrypt functions.
 5741 
 5742 	qt: Add unittest for decrypt unwrap.
 5743 	+ commit 5493164f8665fabf795f3b34a7084770a38ae940
 5744 	* lang/qt/tests/t-encrypt.cpp
 5745 	(EncryptTest::testEncryptDecryptNowrap): New.
 5746 
 5747 	cpp: Use gpgme_op_decrypt_ex and add new flags.
 5748 	+ commit 8ad37ecc297f208d0a63783c1ffae33ad4c3c81a
 5749 	* lang/cpp/src/context.cpp: New decrypt and decryptVerify functions
 5750 	that take flags as arguments. Use new variants in old functions.
 5751 	(Context::setDecryptionFlags): New helper.
 5752 	(Context::Private::Private): Initialize new member.
 5753 	* lang/cpp/src/context_p.h (Context::Private::decryptFlags): New.
 5754 	* lang/cpp/src/context.h (Context::DecryptFlags): New enum.
 5755 	(Context::EncryptionFlags): Extend for EncryptWrap.
 5756 
 5757 2017-03-24  Werner Koch  <wk@gnupg.org>
 5758 
 5759 	core: New flags GPGME_DECRYPT_UNWRAP and GPGME_ENCRYPT_WRAP.
 5760 	+ commit 6ac1f2cdedb085b4ac9372c1e591497e2e618de4
 5761 	* src/gpgme.h.in (GPGME_ENCRYPT_WRAP): New const.
 5762 	(gpgme_decrypt_flags_t): New enum.
 5763 	(GPGME_DECRYPT_VERIFY): New const
 5764 	(GPGME_DECRYPT_UNWRAP): New const
 5765 	(gpgme_op_decrypt_ext_start): New func.
 5766 	(gpgme_op_decrypt_ext): New func.
 5767 	* src/decrypt-verify.c (gpgme_op_decrypt_ext_start): New.
 5768 	(gpgme_op_decrypt_ext): New.
 5769 	(decrypt_verify_start): Add arg FLAGS.  Replace call to
 5770 	engine_op_decrypt_verify by the plain decrypt with the flag set.
 5771 	(gpgme_op_decrypt_verify_start): Pass the flag.
 5772 	(gpgme_op_decrypt_verify): Pass the flag.
 5773 	* src/decrypt.c (decrypt_start): Rename to ...
 5774 	(_gpgme_decrypt_start): this.  Add arg FLAGS.  Pass FLAGS to
 5775 	engine_op_decrypt.
 5776 	(gpgme_op_decrypt_start): Adjust for chnage pass 0 for FLAG.
 5777 	(gpgme_op_decrypt_start): Ditto.
 5778 	* src/engine.c (_gpgme_engine_op_decrypt_verify): Remove.
 5779 	(_gpgme_engine_op_decrypt): Add arg FLAGS.
 5780 	* src/gpgme.def, src/libgpgme.vers: Add new functions.
 5781 	* src/engine-backend.h (struct engine_ops): Remove member
 5782 	'decrypt_verify'.  Add FLAGS to 'decrypt'.  Adjust all initialization.
 5783 	* src/engine-uiserver.c (uiserver_decrypt): Remove.
 5784 	(uiserver_decrypt_verify): Remove.
 5785 	(_uiserver_decrypt): Rename to ...
 5786 	(uiserver_decrypt): this.  Replace arg VERIFY by new arg FLAGS.
 5787 	* src/engine-gpg.c (gpg_decrypt): Support GPGME_DECRYPT_UNWRAP.
 5788 	(gpg_encrypt): Support GPGME_ENCRYPT_WRAP.
 5789 
 5790 	* tests/run-decrypt.c (main): New option --unwrap.
 5791 	* tests/run-encrypt.c (main): New option --wrap.
 5792 
 5793 2017-03-22  Andre Heinecke  <aheinecke@intevation.de>
 5794 
 5795 	qt: Add test for Data::toKeys.
 5796 	+ commit 66c334650bd64fdb72c4bd5975e25b8659d320ec
 5797 	* lang/qt/tests/t-various.cpp (TestVarious::testKeyFromFile): New.
 5798 
 5799 	cpp: Wrap keylist_from_data.
 5800 	+ commit 8ddb42ada46f00d8393f6c2df7d6b79a4a5878f0
 5801 	* lang/cpp/data.h, lang/cpp/data.cpp (GpgME::Data::toKeys): New.
 5802 
 5803 	qt: Initialize library first in tests.
 5804 	+ commit 121873b821636052c10d9e0bd885eb9013c52096
 5805 	* lang/qt/tests/t-support.cpp (QGpgMETest::initTestCase): Initialize
 5806 	library.
 5807 
 5808 2017-03-22  Justus Winter  <justus@g10code.com>
 5809 
 5810 	python: Improve Python detection.
 5811 	+ commit 104635eb503ec764146731888a6975b4329660fd
 5812 	* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Prefer the generic
 5813 	'pythonX' over 'pythonX.Y'.  This way we select the users preferred
 5814 	version for both flavors.  Prefer 'python' over 'python3' but not over
 5815 	'python2' so that the algorithm still finds a 'python2' even if
 5816 	'python' is a Python3.
 5817 
 5818 2017-03-21  Werner Koch  <wk@gnupg.org>
 5819 
 5820 	core: New API gpgme_op_set_uid_flag.
 5821 	+ commit 421ddd1e6706046c5062417fd69a87e10c9fc0a9
 5822 	* src/gpgme.h.in (gpgme_op_set_uid_flag_start): New.
 5823 	(gpgme_op_set_uid_flag_start): New.
 5824 	* src/gpgme.def, src/libgpgme.vers: Add them.
 5825 	* src/genkey.c (addrevuid_start): Change arg revoke to a flag.
 5826 	(gpgme_op_revuid_start): Pass GENKEY_EXTRAFLAG_REVOKE for the fomer
 5827 	revoke parameter.
 5828 	(gpgme_op_revuid): Ditto.
 5829 	(set_uid_flag): New.
 5830 	(gpgme_op_set_uid_flag_start): New.
 5831 	(gpgme_op_set_uid_flag): New.
 5832 	* src/engine.h (GENKEY_EXTRAFLAG_SETPRIMARY): new.
 5833 	* src/engine-gpg.c (gpg_adduid): Implement that flag.
 5834 
 5835 	* tests/run-genkey.c (main): New command --set-primary.
 5836 
 5837 2017-03-21  Justus Winter  <justus@g10code.com>
 5838 
 5839 	python: Wrap 'gpgme_op_keylist_from_data_start'.
 5840 	+ commit f3e8d8a4518de2768692e0b392262d0da6d0fd84
 5841 	* NEWS: Update.
 5842 	* lang/python/gpg/core.py (Context.keylist): New keyword argument
 5843 	'source'.  If given, list keys from 'source'.
 5844 	* lang/python/gpgme.i: Wrap the argument to
 5845 	'gpgme_op_keylist_from_data_start'.
 5846 	* lang/python/tests/Makefile.am (py_tests): Add new test.
 5847 	* lang/python/tests/support.py (EphemeralContext): Do not throw an
 5848 	error if no agent has been started in the context.
 5849 	* lang/python/tests/t-keylist-from-data.py: New file.
 5850 
 5851 2017-03-21  Werner Koch  <wk@gnupg.org>
 5852 
 5853 	core: Extend gpgme_get_dirinfo to return the gpg-wks-client name.
 5854 	+ commit 55ac5eed9f59081283d34098a9e0ada753d61d59
 5855 	* src/dirinfo.c (WANT_GPG_WKS_CLIENT_NAME): New const.
 5856 	(struct dirinfo): New field 'gpg_wks_client_name'.
 5857 	(get_gpgconf_item): Build it on demand.
 5858 	(gpgme_get_dirinfo): New value "gpg-wks-client-name" for WHAT.
 5859 
 5860 	core: New encryption flag GPGME_ENCRYPT_THROW_KEYIDS.
 5861 	+ commit fab8b1a166fff7265d8a7a7acbbf5f30d26cc93c
 5862 	* src/gpgme.h.in (GPGME_ENCRYPT_THROW_KEYIDS): New flag.
 5863 	* src/engine-gpg.c (gpg_encrypt): Implement flag
 5864 	(gpg_encrypt_sign): Implement flag.
 5865 
 5866 	* tests/run-encrypt.c (main): New option --throw-keyids.
 5867 
 5868 2017-03-21  Andre Heinecke  <aheinecke@intevation.de>
 5869 	    Werner Koch  <wk@gnupg.org>
 5870 
 5871 	core: New public API gpgme_op_keylist_from_data_start.
 5872 	+ commit 35023f313622fb1b34108dd934e84831c58b81aa
 5873 	* src/gpgme.h.in: New API gpgme_op_keylist_from_data_start.
 5874 	* src/libgpgme.vers, src/gpgme.def: Add it.
 5875 	* src/keylist.c (gpgme_op_keylist_from_data_start): New.
 5876 	* src/engine-backend.h (engine_ops): Add field 'keylist_data'.  Change
 5877 	all engines to pass NULL for it.
 5878 	* src/engine.c (_gpgme_engine_op_keylist_data): New.
 5879 	* src/engine-gpg.c (gpg_keylist_data): New.
 5880 	(_gpgme_engine_ops_gpg): Register gpg_keylist_data.
 5881 
 5882 	* tests/run-keylist.c (main): New option --from-file.
 5883 
 5884 2017-03-20  Werner Koch  <wk@gnupg.org>
 5885 
 5886 	core,cpp: New key flag 'is_de_vs'.
 5887 	+ commit ea9686ec71a2dd2225ce2b6d6d4038821d36205f
 5888 	* src/gpgme.h.in (_gpgme_subkey): New flag is_de_vs.
 5889 	* tests/run-keylist.c (main): Print that flag.
 5890 	* src/keylist.c (parse_pub_field18): New.
 5891 	(keylist_colon_handler): Parse compliance flags.
 5892 	* lang/cpp/src/key.cpp (Key::isDeVs): New.
 5893 	(Subkey::isDeVs): New.
 5894 
 5895 	* lang/cpp/src/key.h (class Key): New method isDeVs.
 5896 	(class Subkey): New method isDeVs.
 5897 
 5898 2017-03-20  Justus Winter  <justus@g10code.com>
 5899 
 5900 	tests: Fix distcheck.
 5901 	+ commit 392e51dd1181d035c19918222da65d08fdb2ee6d
 5902 	* tests/start-stop-agent: Do not create 'gpg-agent.conf' if it does
 5903 	not exist.
 5904 
 5905 	python: Fix version check.
 5906 	+ commit 57e64d019d993fdeb4323def5352f8ecc98c6fd9
 5907 	* lang/python/tests/support.py (assert_gpg_version): Cope with
 5908 	non-released versions.
 5909 
 5910 	tests: Use 'gpg-agent --allow-loopback-pinentry' if applicable.
 5911 	+ commit 16b202d9999591b71fb8bb49f6db10ef96d4cbe8
 5912 	* lang/python/tests/Makefile.am (gpg-agent.conf): Do not hard-code the
 5913 	option.  This breaks gpg-agent from GnuPG 2.0.
 5914 	* tests/start-stop-agent: Rather, check if the option is supported and
 5915 	add it to the configuration if it is.
 5916 
 5917 	python: Skip tests if GnuPG is too old.
 5918 	+ commit e1cf8bab319ba1dea41ba5d711dbb66ffd8e6fd6
 5919 	* lang/python/tests/support.py (assert_gpg_version): New function.
 5920 	* lang/python/tests/t-callbacks.py: Use the new function to skip the
 5921 	test if GnuPG is too old.
 5922 	* lang/python/tests/t-edit.py: Likewise.
 5923 	* lang/python/tests/t-encrypt-sym.py: Likewise.
 5924 	* lang/python/tests/t-quick-key-creation.py: Likewise.
 5925 	* lang/python/tests/t-quick-key-manipulation.py: Likewise.
 5926 	* lang/python/tests/t-quick-key-signing.py: Likewise.
 5927 
 5928 	python: Remove superfluous initialization.
 5929 	+ commit 4572e8d2ac1d3b45e75ce71265c99e591fbf0e28
 5930 	* lang/python/tests/support.py (init_gpgme): Remove.  This is an
 5931 	remnant from the c tests.  Nowadays, the Python bindings initialize
 5932 	GPGME automagically.
 5933 	* lang/python/tests/initial.py: Remove call to 'support.init_gpgme'.
 5934 	* lang/python/tests/t-callbacks.py: Likewise.
 5935 	* lang/python/tests/t-decrypt-verify.py: Likewise.
 5936 	* lang/python/tests/t-decrypt.py: Likewise.
 5937 	* lang/python/tests/t-edit.py: Likewise.
 5938 	* lang/python/tests/t-encrypt-large.py: Likewise.
 5939 	* lang/python/tests/t-encrypt-sign.py: Likewise.
 5940 	* lang/python/tests/t-encrypt-sym.py: Likewise.
 5941 	* lang/python/tests/t-encrypt.py: Likewise.
 5942 	* lang/python/tests/t-export.py: Likewise.
 5943 	* lang/python/tests/t-file-name.py: Likewise.
 5944 	* lang/python/tests/t-idiomatic.py: Likewise.
 5945 	* lang/python/tests/t-import.py: Likewise.
 5946 	* lang/python/tests/t-keylist.py: Likewise.
 5947 	* lang/python/tests/t-sig-notation.py: Likewise.
 5948 	* lang/python/tests/t-sign.py: Likewise.
 5949 	* lang/python/tests/t-signers.py: Likewise.
 5950 	* lang/python/tests/t-trustlist.py: Likewise.
 5951 	* lang/python/tests/t-verify.py: Likewise.
 5952 	* lang/python/tests/t-wait.py: Likewise.
 5953 
 5954 2017-03-14  Justus Winter  <justus@g10code.com>
 5955 
 5956 	python: Make error message more helpful.
 5957 	+ commit 9d6825be092f1590f28b5bab462eeb944d9b800c
 5958 	* lang/python/tests/run-tests.py: Make the error message shown when we
 5959 	cannot locate the python module in the build tree more helpful.
 5960 
 5961 	python: Make tests more robust.
 5962 	+ commit ac4849953860547b06a167ca9612c4de369d02b6
 5963 	* lang/python/tests/support.py (TemporaryDirectory): Always use our
 5964 	own version even if 'tempfile.TemporaryDirectory' is provided, because
 5965 	we need to use 'shutil.rmtree(..., ignore_errors=True)' to avoid it
 5966 	tripping over gpg-agent deleting its own sockets.
 5967 
 5968 	python: Improve build system integration.
 5969 	+ commit a4201035fdc050f337a6b9f520c8ddbb569e2eb4
 5970 	* lang/python/Makefile.am: Use 'set -e' when chaining shell commands
 5971 	together in rules.
 5972 
 5973 	build: Improve Python detection.
 5974 	+ commit 6a371663886a7ba6073f385a3ab5f5a03de8e008
 5975 	* configure.ac: Do not error out too early if we don't find a matching
 5976 	Python version.  We handle this case later.
 5977 
 5978 	build: Tune M4 macros for our needs.
 5979 	+ commit 5189c08af9468cdeb6f16a6ecd0fee53e1e3aa0e
 5980 	* m4/ax_python_devel.m4: Do not emit 'HAVE_PYTHON'.
 5981 	* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Add newer Python
 5982 	versions, drop older ones.  Also, sort the list with older versions at
 5983 	the front, newer and generic versions towards the end.  This makes the
 5984 	algorithm pick the lowest version that meets the version requirement.
 5985 
 5986 	build: Add M4 macros for python.
 5987 	+ commit 067da472f919e78c95a0a01b68e79a8b7dff173b
 5988 	* m4/python.m4: New file.
 5989 
 5990 2017-03-13  Andre Heinecke  <aheinecke@intevation.de>
 5991 
 5992 	qt: Add test for DN parser.
 5993 	+ commit 43aa3eed15dcc4f848915ceabeff35c29c1c57e4
 5994 	* qt/tests/t-various.cpp (testDN): New.
 5995 
 5996 	qt: Use gpgrt_asprintf instead of qstrdup.
 5997 	+ commit 9d5048d47446450a34cae4f27eb81c02ea5d4afc
 5998 	* lang/qt/src/dn.cpp (parse_dn_part): Use gpgrt_asprintf instead
 5999 	of qstrdup.
 6000 
 6001 2017-03-09  Werner Koch  <wk@gnupg.org>
 6002 
 6003 	core: Fix status error return for gpgsm.
 6004 	+ commit d2240a2a1819874929bdab820bcbd3bee7f94407
 6005 	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Make sure CB_ERR
 6006 	is returned.
 6007 	* src/import.c (parse_import_res): Do not return an error for the last
 6008 	field.
 6009 	(import_status_handler): Actually return the error from
 6010 	parse_import_res.
 6011 
 6012 2017-03-02  Justus Winter  <justus@g10code.com>
 6013 
 6014 	python: Print path of the Python module used during tests.
 6015 	+ commit 41398779abbcb1ec2d7491e141469a752fc706ff
 6016 	* lang/python/tests/initial.py: Print path of the Python module used
 6017 	during tests.  Useful to detect if by any mistake the wrong module is
 6018 	picked up.
 6019 
 6020 2017-03-02  Werner Koch  <wk@gnupg.org>
 6021 
 6022 	core: Fix minor code style thing.
 6023 	+ commit ef035f079fb067f207e5477d5ed6c5a68fb41f59
 6024 	* src/engine-gpg.c (gpg_add_algo_usage_expire): Use double parenthesis
 6025 	for bit tests.
 6026 
 6027 2017-03-02  Andre Heinecke  <aheinecke@intevation.de>
 6028 
 6029 	cpp: Add subkey keygrip to API.
 6030 	+ commit 8071a6b2ca33c2a46ed1d50ae7283241daaafcd3
 6031 	* lang/cpp/src/key.cpp (Subkey::keyGrip): New.
 6032 	* lang/cpp/src/key.h: Update accordingly.
 6033 
 6034 2017-03-01  Andre Heinecke  <aheinecke@intevation.de>
 6035 
 6036 	cpp: Add interactor to generate keys on smartcard.
 6037 	+ commit d63258066d008de113ed1170f1b0e787a5bdaba1
 6038 	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 6039 	Handle new states.
 6040 	* lang/cpp/src/gpggencardkeyinteractor.cpp,
 6041 	lang/cpp/src/gpggencardkeyinteractor.h: New.
 6042 	* lang/cpp/src/Makefile.am: Update accordingly.
 6043 
 6044 	qt: Allow creation of default keys without name.
 6045 	+ commit fbafb5474d8898ba1b267f4b4dfbefe39f04e72f
 6046 	* lang/qt/src/defaultkeygenerationjob.cpp
 6047 	(DefaultKeyGenerationJob::start): Handle empty name and email.
 6048 
 6049 2017-02-26  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 6050 
 6051 	doc: Correct documentation for recp arg of gpgme_op_encrypt_sign_start.
 6052 	+ commit 5b49095b89b07591c69827df3973ffabfb3e97b8
 6053 	* doc/gpgme.texi (gpgme_op_encrypt_sign_start): recp is an array of
 6054 	gpgme_key_t, not a single element.
 6055 
 6056 2017-02-20  Justus Winter  <justus@g10code.com>
 6057 
 6058 	python: Fix test.
 6059 	+ commit a7c6353edab57b67180aa127ec77d9353c2366fb
 6060 	* lang/python/tests/t-quick-key-manipulation.py: Modify the
 6061 	configuration file in the ephemeral home directory, not the one used
 6062 	by all the tests.
 6063 
 6064 2017-02-17  Justus Winter  <justus@g10code.com>
 6065 
 6066 	python: Support manipulating the TOFU policy.
 6067 	+ commit 15fbac9e72a4d1bff9a3b9e9822f9175b09fbcd5
 6068 	* NEWS: Update.
 6069 	* doc/gpgme.texi: Fix typos.
 6070 	* lang/python/gpg/constants/__init__.py: Import new files.
 6071 	* lang/python/gpg/constants/tofu/__init__.py: New file.
 6072 	* lang/python/gpg/constants/tofu/policy.py: New file.
 6073 	* lang/python/gpg/core.py (Context.key_tofu_policy): New function.
 6074 	* lang/python/gpgme.i: Nice reprs for gpgme_tofu_info_t.
 6075 	* lang/python/setup.py.in: Install new package.
 6076 	* lang/python/tests/t-quick-key-manipulation.py: Extend test.
 6077 
 6078 	python: Support quick key signing.
 6079 	+ commit 48634e651fcd02431c0518d42ada1f3b402feb2c
 6080 	* NEWS: Update.
 6081 	* doc/gpgme.texi (gpgme_op_keysign): Fix the description of the
 6082 	'expire' argument.
 6083 	* lang/python/gpg/constants/__init__.py: Import new file.
 6084 	* lang/python/gpg/constants/keysign.py: New file.
 6085 	* lang/python/gpg/core.py (Context.key_sign): New function.
 6086 	* lang/python/tests/Makefile.am (py_tests): Add new test.
 6087 	* lang/python/tests/t-quick-key-signing.py: New test.
 6088 
 6089 	python: Fix teardown of ephemeral contexts.
 6090 	+ commit de8494b16bc50c60a8438f2cae1f8c88e8949f7a
 6091 	* lang/python/tests/support.py (EphemeralContext): New function.
 6092 	* lang/python/tests/t-quick-key-creation.py: Use the new function to
 6093 	manage ephemeral contexts.
 6094 	* lang/python/tests/t-quick-key-manipulation.py: Likewise.
 6095 	* lang/python/tests/t-quick-subkey-creation.py: Likewise.
 6096 
 6097 	python: Fix using strings as commands in the assuan protocol.
 6098 	+ commit 9350168a1eed3f055040d7cc8a9bf4cdf745b23a
 6099 	* lang/python/gpg/core.py (Context.assuan_transact): Fix testing
 6100 	whether the command is a string on Python2.
 6101 	* lang/python/tests/t-protocol-assuan.py: Improve the test to detect
 6102 	this problem.
 6103 
 6104 2017-02-16  Justus Winter  <justus@g10code.com>
 6105 
 6106 	python: Support adding and revoking UIDs.
 6107 	+ commit 7641b7b5f2c9d5b38c60cd9326bcb4810c37dae5
 6108 	* NEWS: Update.
 6109 	* lang/python/gpg/core.py (Context.key_add_uid): New function.
 6110 	(Context.key_revoke_uid): Likewise.
 6111 	* lang/python/tests/Makefile.am (XTESTS): Add new test.
 6112 	* lang/python/tests/t-quick-key-manipulation.py: New file.
 6113 
 6114 	python: Support quick subkey creation.
 6115 	+ commit 13bace25e3d8422f93fd24919994be36042fd220
 6116 	* NEWS: Update.
 6117 	* lang/python/gpg/core.py (Context.create_subkey): New function.
 6118 	* lang/python/tests/Makefile.am (XTESTS): Add new test.
 6119 	* lang/python/tests/t-quick-subkey-creation.py: New file.
 6120 
 6121 	python: Support quick key creation.
 6122 	+ commit 476b97822b169c30cc246c1de2ff94cf89084706
 6123 	* NEWS: Update.
 6124 	* lang/python/gpg/constants/__init__.py: Import new file.
 6125 	* lang/python/gpg/constants/create.py: New file.
 6126 	* lang/python/gpg/core.py (Context.create_key): New function.
 6127 	* lang/python/tests/Makefile.am (XTESTS): Add new test.
 6128 	* lang/python/tests/support.py (TemporaryDirectory): New class.
 6129 	* lang/python/tests/t-quick-key-creation.py: New file.
 6130 
 6131 	python: Fix passphrase callback wrapping.
 6132 	+ commit 3bdce4aa3ddd4a3f55b24678faf978d61daa8909
 6133 	* lang/python/helpers.c (pyPassphraseCb): Cope with 'passphrase_info'
 6134 	being NULL.
 6135 
 6136 	python: Fix error handling.
 6137 	+ commit 048c5f74b61d5e4fa7617ce7c9111c6754bd4409
 6138 	* lang/python/gpgme.i (typemap gpgme_key_t[]): Set an error if a
 6139 	non-key element is discovered.
 6140 
 6141 2017-02-15  Justus Winter  <justus@g10code.com>
 6142 
 6143 	core: Fix expiration time handling when creating keys.
 6144 	+ commit de708e5934cda380dbc3ae51f587c09041de7562
 6145 	* NEWS: Update.
 6146 	* doc/gpgme.texi (gpgme_op_createkey): Clarify the meaning of the
 6147 	'expire' parameter.
 6148 	(GPGME_CREATE_NOEXPIRE): Document new flag.
 6149 	(gpgme_op_createsubkey): Clarify the meaning of the 'expire'
 6150 	parameter.
 6151 	* src/engine-gpg.c (gpg_add_algo_usage_expire): Fix handling of the
 6152 	expiration time.
 6153 	* src/gpgme.h.in (GPGME_CREATE_NOEXPIRE): New macro.
 6154 
 6155 	python: Fix build system integration.
 6156 	+ commit 27544d0a74267ab6057dc816ea3311bc9149a200
 6157 	* lang/python/Makefile.am (copystamp): Also copy the setup script, and
 6158 	link the header files.
 6159 	(all-local): Use local setup script.
 6160 	(sdist): Fix Python source distribution creation.
 6161 	(CLEANFILES): Remove now obsolete files.
 6162 	(install-exec-local): Use local setup script.
 6163 	* lang/python/setup.py.in: Adjust relative paths to in-tree files.
 6164 
 6165 	python: Update lists of functions returning gpgme_error_t.
 6166 	+ commit 25f0435a0022a70af77660d72d33f17bec2d4e51
 6167 	* lang/python/gpg/core.py (Context._errorcheck): Add instructions how
 6168 	to update the list.  Update list.
 6169 	(Data._errorcheck): Likewise.
 6170 	(Context.set_engine_info): Simplify.
 6171 
 6172 	core: Fix error types.
 6173 	+ commit 6df6e01ed5a581765d245bf7303cda4497d0eb22
 6174 	* NEWS: Update.
 6175 	* src/data.c (gpgme_data_set_flag): Return a 'gpgme_error_t'.
 6176 	* src/error.c (gpgme_strerror_r): Fix type of first argument.
 6177 	* src/gpgme.h.in (gpgme_strerror_r): Adapt.
 6178 	(gpgme_data_set_flag): Likewise.
 6179 
 6180 2017-02-14  Justus Winter  <justus@g10code.com>
 6181 
 6182 	python: Wrap utility functions.
 6183 	+ commit 92adc9bbf640eb5d9177d3ba0189e0f6cee4e995
 6184 	* NEWS: Update.
 6185 	* lang/python/gpg/core.py (pubkey_algo_string): New function.
 6186 	(pubkey_algo_name): Add docstring.
 6187 	(hash_algo_name): Likewise.
 6188 	(get_protocol_name): Likewise.
 6189 	(addrspec_from_uid): New function.
 6190 	* lang/python/gpgme.i (gpgme_pubkey_algo_string): Result must be
 6191 	freed.
 6192 	(gpgme_addrspec_from_uid): Likewise.
 6193 
 6194 	python: Use the correct function to free buffers.
 6195 	+ commit 9fc9533c2835ec53c4fd4f822b09e9fec14626d0
 6196 	* lang/python/gpgme.i (char *): Free using 'gpgme_free'.
 6197 
 6198 	python: Add keylist mode parameter.
 6199 	+ commit fdc4e33dc3f6c84fe9d7bf9795c603ae3cf5f28d
 6200 	* NEWS: Update.
 6201 	* lang/python/gpg/core.py (Context.keylist): Add 'mode' parameter.
 6202 
 6203 	python: Nicer repr for user ids.
 6204 	+ commit e17ab84129045512cf60c221ee43aa877507662f
 6205 	* lang/python/gpgme.i (_gpgme_user_id): Provide a nicer repr() for
 6206 	user ids.
 6207 
 6208 	python: Add convenience functions for the home directory.
 6209 	+ commit 99b7f4f34dd595579181a696ae976a678fe00d49
 6210 	* NEWS: Update.
 6211 	* lang/python/gpg/core.py (Context.__init__): Add 'home_dir' argument.
 6212 	(__repr__): Include 'home_dir'.
 6213 	(Context.home_dir): New property.
 6214 
 6215 	qt: Make sure to remove the tofu.db on clean.
 6216 	+ commit 30a603580e0f196c721fa4bd44d24077d9bc06c3
 6217 	* lang/qt/tests/Makefile.am (CLEANFILES): Add 'tofu.db'.
 6218 
 6219 2017-02-14  Tobias Mueller  <muelli@cryptobitch.de>
 6220 
 6221 	python: Extend SWIG gpgme_{sub,}key with a __repr__ method.
 6222 	+ commit 01d5c17587578c729bbbb60f8a65635975e35592
 6223 	* lang/python/gpgme.i: Added a genericrepr macro and use it for
 6224 	gpgme_key, gpgme_subkey, and gpgme_key_sig.
 6225 
 6226 	python: Remove the -builtin flag for SWIG.
 6227 	+ commit aa49be1ab80c200ab6b62d33bf5d0f5aa334fc56
 6228 	* lang/python/setup.py.in: Call SWIG without the builtin flag.
 6229 
 6230 	python: Call SWIG_NewPointerObj rather than SWIG_Python_NewPointerObj.
 6231 	+ commit d35651917097ae2eee7d52396d53d010bc34df19
 6232 	* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Provide a "self"
 6233 	variable for SWIG_NewPointerObj and call SWIG_NewPointerObj rather than
 6234 	SWIG_Python_NewPointerObj.
 6235 
 6236 	python: Conditionally provide py3 argument to SWIG.
 6237 	+ commit d184dbbba8987d9f387feb25791ed891e108dabc
 6238 	* lang/python/setup.py.in: Only call with -py3 when we run under python3
 6239 	or higher.
 6240 
 6241 2017-02-13  Justus Winter  <justus@g10code.com>
 6242 
 6243 	python: Use one copy of the source tree per Python version.
 6244 	+ commit fe65a26ab584bd70fad45c7c4d44330e30a748a4
 6245 	* lang/python/Makefile.am (copystamp): Create one copy per Python
 6246 	version.
 6247 	(all-local): Adapt.
 6248 	(clean-local): Likewise.
 6249 	(install-exec-local): Likewise.
 6250 	* lang/python/tests/run-tests.py: Likewise.
 6251 
 6252 	build: Use macOS' compatibility macros to enable all features.
 6253 	+ commit 60273e8b2c11d42215a5707bc55e3e0d8f350e07
 6254 	* configure.ac: On macOS, use the compatibility macros to expose every
 6255 	feature of the libc.  This is the equivalent of _GNU_SOURCE on GNU
 6256 	libc.
 6257 
 6258 	Revert "Disable fd-passing for Apple."
 6259 	+ commit f8db658f8b4c3c7941d0029273fb23fbe1ba74ad
 6260 	The actual bug has been located, so this can be reverted.
 6261 
 6262 	This reverts commit ef5b4ae37d13142e89a051908dc080cda3d24baa.
 6263 
 6264 2017-02-13  Igor Gnatenko  <ignatenkobrain@fedoraproject.org>
 6265 
 6266 	qt: Add missing #include <functional>
 6267 	+ commit 60064c665ec98a2a994fc6c8ad701e60b963ce7e
 6268 	* lang/qt/src/qgpgmenewcryptoconfig.cpp,
 6269 	lang/qt/src/threadedjobmixin.h: Include functional.
 6270 
 6271 2017-02-07  Andre Heinecke  <aheinecke@intevation.de>
 6272 
 6273 	qt: Don't rely on implicit include in t-verify.
 6274 	+ commit 903bf16a416b1bf608b1e647937c9b06864b0141
 6275 	* lang/qt/tests/t-various.cpp: Include QTemporaryDir
 6276 
 6277 2017-02-06  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 6278 
 6279 	doc: Document that gpgme_op_genkey() parms parameter is not XML.
 6280 	+ commit ad22bee5387b1e9a40e8c822a081db3228bb9def
 6281 	* doc/gpgme.texi (GnupgKeyParms): document that input format is not
 6282 	true XML.
 6283 
 6284 2017-02-03  Werner Koch  <wk@gnupg.org>
 6285 
 6286 	core: Optimize fork/exec for *BSD and Solaris.
 6287 	+ commit 51bd69f216a9e2930eeba4b5f6c20e952a381720
 6288 	* configure.ac (closefrom): Add to ac_check_funcs.
 6289 	* src/posix-io.c (_gpgme_io_spawn): Use closefrom.
 6290 
 6291 	core: Fix possible deadlock due to get_max_fds.
 6292 	+ commit 93a59070c699d569d1eac7ba22355fe3f5d10882
 6293 	* src/posix-io.c (get_max_fds): Do not use the Linux optimization.
 6294 
 6295 	core: Minor cleanup of commit 195c735.
 6296 	+ commit afc308598d1ddaf20d54b4eab30b959066a4e5e6
 6297 	* src/verify.c (parse_tofu_user): For cleanness use gpg_error ...
 6298 	(_gpgme_verify_status_handler): ... and gpg_err_code.
 6299 
 6300 2017-02-02  Andre Heinecke  <aheinecke@intevation.de>
 6301 
 6302 	qt: Add test for tofu conflict.
 6303 	+ commit 43160a39f27f6c3507447620666c85af00b3499c
 6304 	* lang/qt/tests/t-tofuinfo.cpp (TofuInfoTest::testTofuConflict): New.
 6305 
 6306 	core: Handle multiple TOFU_USER lines in verify.
 6307 	+ commit 195c73589232160f45d00f4901c9bb2b0162f0e5
 6308 	* src/verify.c (op_data_t): Add conflict_user_seen.
 6309 	(parse_tofu_user): Return ERR_DUP_VALUE for mutltiple TOFU_USERS.
 6310 	(_gpgme_verify_status_handler): Handle ERR_DUP_VALUE from
 6311 	parse_tofu_user to ignore the next TOFU_STATS.
 6312 
 6313 2017-02-02  Werner Koch  <wk@gnupg.org>
 6314 
 6315 	core: Replace all calls to *sprintf by gpgrt_*sprintf.
 6316 	+ commit 15050ce5fce4ed815503db7c029abb38d08970d6
 6317 	* configure.ac (vasprintf): Remove check.
 6318 	* src/vasprintf.c: Remove file.
 6319 	* src/util.h (vasprintf, asprintf): Remove prototypes.  Replace all
 6320 	calls to vasprintf and asprintf by gpgrt_vasprintf or gpgrt_asprintf.
 6321 	Also take care to use gpgrt_free on the returned value.
 6322 	* src/w32-util.c (_gpgme_get_gpgconf_path): Replace a gpgrt_asprintf
 6323 	by _gpgme_strconcat.
 6324 	(snprintf): New macro to use gpgrt_snprintf instead of the system's
 6325 	standard snprintf.
 6326 
 6327 	core: Remove unused check for funopen/fopencookie.
 6328 	+ commit 563420a88f8a4f561a2faea4d2b4a1c58b375fd8
 6329 	* configure.ac (funopen): Remove check.
 6330 	* src/funopen.c: Remove file.
 6331 
 6332 	core: Un-deprecate gpgme_data_rewind.
 6333 	+ commit d19bea52afe6efb66a46af6aa4d09928c5d05ee5
 6334 	* src/gpgme.h.in (gpgme_data_rewind): Un-deprecate.
 6335 	* src/data-compat.c (gpgme_data_rewind): Move to ...
 6336 	* src/data.c (gpgme_data_rewind): here.
 6337 
 6338 	core: Move all deprecated stuff to the end of gpgme.h.
 6339 	+ commit 9b7d81998b734fabeb4fbc697f08fc7795eaa90a
 6340 
 6341 
 6342 2017-02-01  Andre Heinecke  <aheinecke@intevation.de>
 6343 
 6344 	core: Cleanup gpgme_key_unref frees.
 6345 	+ commit 8ede86795a1d419c01b4910ec2fd1fb18b629452
 6346 	* src/key.c (gpgme_key_unref): Nowadays we assume free(NULL) is ok.
 6347 
 6348 	core: Fix leakage of address for mail only uids.
 6349 	+ commit b5075030bec9b21bf4e515bc1686df3fa43eced2
 6350 	* src/key.c (gpgme_key_unref): Always free address if set.
 6351 	(_gpgme_key_append_name): Remove memory optimization for address.
 6352 
 6353 	core: Improve mailbox only uid handling.
 6354 	+ commit a28d31fdb623f2ee30e8094d09f1a0d1ae446a9b
 6355 	* src/key.c (_gpgme_key_append_name): Set email and remove name
 6356 	for uid only keys.
 6357 
 6358 2017-01-31  Justus Winter  <justus@g10code.com>
 6359 
 6360 	qt: Increase timeout when waiting for signals.
 6361 	+ commit ba594d85e35e63301755977234d3af88a167a215
 6362 	* lang/qt/tests/t-support.h (QSIGNALSPY_TIMEOUT): New macro.
 6363 	* lang/qt/tests/t-encrypt.cpp: Use the new macro as timeout when
 6364 	waiting for signals.
 6365 	* lang/qt/tests/t-keylist.cpp: Likewise.
 6366 	* lang/qt/tests/t-keylocate.cpp: Likewise.
 6367 	* lang/qt/tests/t-ownertrust.cpp: Likewise.
 6368 	* lang/qt/tests/t-wkspublish.cpp: Likewise.
 6369 
 6370 2017-01-31  Werner Koch  <wk@gnupg.org>
 6371 
 6372 	core: Add new context flag "redraw".
 6373 	+ commit 752d3597ef02a95efd693373132bf1e246f0edb0
 6374 	* src/context.h (struct gpgme_context): New field 'redraw_suggested'.
 6375 	* src/op-support.c (_gpgme_op_reset): Clear REDRAW_SUGGESTED.
 6376 	* src/progress.c (_gpgme_progress_status_handler): Set REDRAW_SUGGESTED.
 6377 	* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "redraw".
 6378 	* tests/run-sign.c (main): Use it.
 6379 
 6380 2017-01-30  Andre Heinecke  <aheinecke@intevation.de>
 6381 
 6382 	tests: Reduce iterations / threads.
 6383 	+ commit 7bd6ab4a91d43d7cbf5d347c0c12e0e4f9f7e3bf
 6384 	* tests/gpg/t-gpgconf.c (main): Reduce iterations to 10.
 6385 	* tests/gpg/t-thread-keylist-verify.c,
 6386 	tests/gpg/t-thread-keylist.c (THREAD_COUNT): Reduce to 10.
 6387 
 6388 2017-01-26  Andre Heinecke  <aheinecke@intevation.de>
 6389 
 6390 	python: Ensure quick-random is used if gpg is gpg2.
 6391 	+ commit f3ca2c9ce9fd4a03e293065f10b92589a7e642d6
 6392 	* lang/python/tests/Makefile.am (gpg.conf): Configure
 6393 	agent-program accordingly.
 6394 
 6395 2017-01-25  Tobias Mueller  <muelli@cryptobitch.de>
 6396 
 6397 	python: default op_keylist_start parameters.
 6398 	+ commit 9291ebaa4151a1f6c8c0601095ec45809b963383
 6399 	* lang/python/gpgme.i: Added gpgme_op_keylist_start with defaults
 6400 	* lang/python/tests/t-keylist.py: Added tests for default parameters
 6401 
 6402 2017-01-25  Andre Heinecke  <aheinecke@intevation.de>
 6403 
 6404 	tests: Use --debug-quick-random for tests.
 6405 	+ commit a98951a30a6ae603ffac4ec8c5168aa6d1019933
 6406 	* tests/start-stop-agent: Don't autostart agent on --stop and
 6407 	running check. Use --debug-quick-random when starting.
 6408 
 6409 2017-01-23  Justus Winter  <justus@g10code.com>
 6410 
 6411 	w32: Fix closing file descriptors.
 6412 	+ commit 6f02133bb07726afa6950e5b4685e75621276e60
 6413 	* src/w32-io.c (writer): Only stop once the buffer is drained.
 6414 	(destroy_writer): Wait for the writers buffer to be drained.  This
 6415 	aligns '_gpgme_io_close's behavior with close(2) and fclose(3).
 6416 
 6417 2017-01-17  Andre Heinecke  <aheinecke@intevation.de>
 6418 
 6419 	tests: Add safeguards against nullptr deref.
 6420 	+ commit ca69df8c8d3f044340aee2a118cc20d33cd600a1
 6421 	* t-gpgconf.c (main): Test some values before dereferencing them.
 6422 
 6423 2017-01-16  Andre Heinecke  <aheinecke@intevation.de>
 6424 
 6425 	qt: Use QVERIFY instead of Q_ASSERT in conf test.
 6426 	+ commit abfd241d1a1ae8e30e18b7c5e0658b8c54d89544
 6427 	* lang/qt/tests/t-config.cpp: Use QVERIFY instead of Q_ASSERT.
 6428 
 6429 	qt: Add test for CryptoConfig.
 6430 	+ commit 8aba08d1d0871f439fb7193adc4a2f43a81ee216
 6431 	* lang/qt/tests/t-config.cpp: New.
 6432 	* lang/qt/tests/Makefile.am: Update accordingly.
 6433 
 6434 2017-01-16  Justus Winter  <justus@g10code.com>
 6435 
 6436 	tests: Fix distcheck.
 6437 	+ commit 92543da94cbf8e807b1b33070d273f995cdd5c62
 6438 	* tests/gpg/Makefile.am (CLEANFILES): Remove gpgconf backups.
 6439 
 6440 	Fix changing options with gpgconf.
 6441 	+ commit 0e242278dfaa64ce31a45b72f5fa0806a3dba898
 6442 	* src/engine-gpgconf.c (gpgconf_write): Connect a pipe to the child's
 6443 	stderr, and wait for it to be closed as an indication that gpgconf has
 6444 	exited.  Also improve error handling.
 6445 
 6446 2017-01-12  Justus Winter  <justus@g10code.com>
 6447 
 6448 	tests: Improve the gpgconf test.
 6449 	+ commit 186dcd3494eda7383de57a530fd15776410531a5
 6450 	* tests/gpg/t-gpgconf.c: Include support functions.
 6451 	(fail_if_err): Remove macro.
 6452 	(init_gpgme): Remove function.
 6453 	(lookup): New function.
 6454 	(main): Update some values and verify that the changes are applied.
 6455 	* tests/gpg/t-support.h (test): New assert-like macro.
 6456 
 6457 2017-01-12  Andre Heinecke  <aheinecke@intevation.de>
 6458 
 6459 	qt: Add support for stringValueList in CryptoConf.
 6460 	+ commit 9640dc58e498966b482dcded6990cf4b47c556ac
 6461 	* lang/qt/src/Makefile.am (qgpgme_sources): Add cryptoconfig.cpp
 6462 	* lang/qt/src/cryptoconfig.cpp: New.
 6463 	* lang/qt/src/cryptoconfig.h (CryptoConfigEntry::stringValueList):
 6464 	New.
 6465 	* lang/qt/src/qgpgmenewcryptoconfig.cpp
 6466 	(QGpgMENewCryptoConfigEntry::stringValueList): New.
 6467 	* lang/qt/src/qgpgmenewcryptoconfig.h: Update accordingly.
 6468 
 6469 	qt: Don't use qstrdup in test passphrase cb.
 6470 	+ commit a09ed3f26a1fab54079c37c49df5c440cc792f78
 6471 	* lang/qt/tests/t-support.h (TestPassphraseProvider::getPassphrase):
 6472 	Use gpgrt_asprintf instead of strdup.
 6473 
 6474 2017-01-11  Andre Heinecke  <aheinecke@intevation.de>
 6475 
 6476 	qt: Clean up test dirs on failure.
 6477 	+ commit 56926c9b5012e8135541a933af1d69c5a81f02b3
 6478 	* t-encrypt.cpp,
 6479 	t-keylist.cpp,
 6480 	t-keylocate.cpp,
 6481 	t-ownertrust.cpp,
 6482 	t-tofuinfo.cpp,
 6483 	t-various.cpp,
 6484 	t-verify.cpp,
 6485 	t-wkspublish.cpp: Use QVERIFY instead of Q_ASSERT
 6486 
 6487 	qt: Add test for uid functions.
 6488 	+ commit 9e643ab67168dfbd189ccc0bfed8fb59253ee79c
 6489 	* lang/qt/tests/t-various.cpp: New.
 6490 	* lang/qt/tests/Makefile.am: Update accordingly.
 6491 
 6492 	cpp: Add revuid and adduid support.
 6493 	+ commit e416f9961837039f259558edf41fccbc181ad128
 6494 	* lang/cpp/src/context.cpp
 6495 	(Context::revUid, Context::startRevUid),
 6496 	(Context::addUid, Context::startAddUid): New.
 6497 	* lang/cpp/src/context.h: Declare new functions.
 6498 	* lang/cpp/src/key.cpp (Key::UserID::revoke)
 6499 	(Key::addUid): Idomatic helpers.
 6500 	lang/cpp/src/key.h: Declare new functions.
 6501 	* NEWS: Update accordingly.
 6502 
 6503 	Fix Qgpgme build for macos.
 6504 	+ commit efe58fe011f195d98adb4f03b1e1068a26ba287b
 6505 	* lang/qt/src/dn.cpp: Include string.h
 6506 	(parse_dn_part): Use qstrdup.
 6507 	* lang/qt/tests/t-support.h (getPassphrase): Use qstrdup.
 6508 
 6509 	Fix cmake configuration files for MacOS.
 6510 	+ commit 2e661b9e1a9b50656a5c9646d7444a98477010c1
 6511 	* configure.ac: Set HAVE_MACOS_SYSTEM conditional.
 6512 	* lang/qt/src/Makefile.am,
 6513 	lang/cpp/src/Makefile.am,
 6514 	lang/qt/src/QGpgmeConfig.cmake.in.in,
 6515 	lang/cpp/src/GpgmeConfig.cmake.in.in: Use libsuffix again to
 6516 	distinguish between macos .dylib
 6517 
 6518 2017-01-03  Justus Winter  <justus@g10code.com>
 6519 
 6520 	python: Improve compatibility with Scheme tests.
 6521 	+ commit b14419f68b3aaa90025e0e97151de7c3da7806fb
 6522 	* lang/python/tests/run-tests.py: Add stub --parallel option.
 6523 
 6524 	python: Add a switch '--quiet' to the test runner.
 6525 	+ commit d0e91d28f63b74e53673902e675be8a54b6b90d3
 6526 	* lang/python/tests/run-tests.py: Add and honor a switch '--quiet'.
 6527 	This way we can use this script to run Python tests one by one without
 6528 	the noise, and the script will setup the necessary environment for us.
 6529 
 6530 2017-01-02  Andre Heinecke  <aheinecke@intevation.de>
 6531 
 6532 	qt: Update config sync doc / comment.
 6533 	+ commit ececfd5de81f1851943be7b284b672d5b02aceb4
 6534 	* lang/qt/src/cryptoconfig.h (CryptoConfig::sync): Document
 6535 	that runtime option is always set.
 6536 	* lang/qt/Src/qgpgmenewcryptoconfig.cpp
 6537 	(QGpgMENewCryptoConfigComponent::sync): Remove outdated comment
 6538 	and warn on error.
 6539 
 6540 	core: Always use runtime for gpgconf changes.
 6541 	+ commit 7103315829847163f1c6f52cad25d1ddb33358f0
 6542 	* src/engine-gpgconf.c (gpgconf_write): Add --runtime.
 6543 	* src/gpgme.h.in (gpgme_conf_opt_change): Document this
 6544 	behavior.
 6545 
 6546 2017-01-01  Ben Kibbey  <bjk@luxsci.net>
 6547 
 6548 	Fix gpg_addkey() to work with GPGME_CREATE_NOPASSWD as well.
 6549 	+ commit a4b9f1a2b404fd8627d5ac567617510abd55d980
 6550 	* src/engine-gpg.c (gpg_addkey): Pass --batch to gpg when
 6551 	GPGME_CREATE_NOPASSWD is set to fix pinentry without loopback mode.
 6552 
 6553 2016-12-27  Ben Kibbey  <bjk@luxsci.net>
 6554 
 6555 	Fix GPGME_CREATE_NOPASSWD without pinentry loopback.
 6556 	+ commit d83b8f0dc84d6cf7fe2e091bd1b103ceedfa3d6c
 6557 	* src/engine-gpg.c(gpg_createkey): Pass --batch to gpg when
 6558 	GPGME_CREATE_NOPASSWD is set.
 6559 
 6560 2016-12-19  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
 6561 
 6562 	Qt: Make sure extended grep is used with '|'.
 6563 	+ commit 211844f049d714cd4d5aab96347705cb0c209c5d
 6564 	* m4/qt.m4: Use grep -E when using the alternation character.
 6565 
 6566 2016-12-16  Andre Heinecke  <aheinecke@intevation.de>
 6567 
 6568 	cpp: Ensure that hasSecret is correct after update.
 6569 	+ commit da5343a9d2c8c0ca6431162aac4bd5c73b4ae6dd
 6570 	* lang/cpp/src/key.cpp (Key::update): Check for
 6571 	a secret key first before listing public keys.
 6572 
 6573 2016-12-15  Andre Heinecke  <aheinecke@intevation.de>
 6574 
 6575 	cpp: Fix addrSpec for keys without email.
 6576 	+ commit 85e05537e15346896a271d3f62bead9dd7e3f180
 6577 	* lang/cpp/src/key.cpp (UserID::addrSpec): Use uid->address instead
 6578 	of normalizing again.
 6579 	(&operator<<(std::ostream &, const UserID &): Print it.
 6580 
 6581 	cpp: Fix update of partial key in verifyresult.
 6582 	+ commit 5673f3e54af535155893290a685b3afb44c7f58d
 6583 	* lang/cpp/src/verificationresult.cpp
 6584 	(Signature::key(bool,bool)): Don't update the returned copy
 6585 	but the actual key of the signature.
 6586 
 6587 2016-12-07  Andre Heinecke  <aheinecke@intevation.de>
 6588 
 6589 	Clarify what "checking on bit" means.
 6590 	+ commit 7880335273382f05cbbe38aa965a566c4127ba6a
 6591 	* doc/gpgme.texi (gpgme_sigsum_t summary): Clarify what "you
 6592 	can check one bit means"
 6593 
 6594 2016-12-05  Tobias Mueller  <muelli@cryptobitch.de>
 6595 
 6596 	python: Try to be more helpful when given a string to encrypt().
 6597 	+ commit 05896c210f7fa9ce7b97784a75e49dc4489e9252
 6598 	* lang/python/helpers.c (_gpg_obj2gpgme_data_t): Extended error
 6599 	message.
 6600 	* lang/python/tests/t-encrypt.py: Test for "encode" in error message.
 6601 
 6602 	python: Define a macro for wrapping fragile result objects.
 6603 	+ commit fb7f4cb973abc9f5eb05eb240607be35c1be986c
 6604 	* lang/python/gpgme.i (wrapresult): New Macro.
 6605 
 6606 2016-12-01  Tobias Mueller  <muelli@cryptobitch.de>
 6607 
 6608 	python: Check "buffer" when writing to sys.stdout for python2 compat.
 6609 	+ commit ae21d2705fc46725e1f9af1651b68d16155d1501
 6610 	* lang/python/tests/support.py (print_data): Add check for buffer.
 6611 
 6612 	python: Make Context have a repr method.
 6613 	+ commit 154389f2a5e4c13081cf0624222aad29ee480b56
 6614 	* lang/python/gpg/core.py (Context.__repr__): New function.
 6615 
 6616 	python: Make Results have a nicer __repr__.
 6617 	+ commit db2f6c1ca3d2ef228f4ca6653d594537622c8588
 6618 	* lang/python/gpg/results.py (Result.__str__): Renamed to '__repr__'
 6619 	...
 6620 	* lang/python/gpg/results.py (Result.__repr__): ... and added fields.
 6621 
 6622 2016-11-25  Justus Winter  <justus@g10code.com>
 6623 
 6624 	python: Fix removing the TOFU database.
 6625 	+ commit fd4d476214ae06e33f4a6dac534d3deca5cc6cd3
 6626 	* lang/python/Makefile.am (CLEANFILES): Move 'tofu.db'...
 6627 	* lang/python/tests/Makefile.am (CLEANFILES): ... here.
 6628 
 6629 	tests: Remove tofu.db.
 6630 	+ commit 9b22f82afc5518961e4bea1fc516b79800e379a2
 6631 	* lang/python/Makefile.am (CLEANFILES): Add 'tofu.db'.
 6632 	* tests/gpg/Makefile.am (CLEANFILES): Likewise.
 6633 
 6634 2016-11-17  Heiko Becker  <heirecka@exherbo.org>
 6635 
 6636 	Remove a forgotten instance of @libsuffix@
 6637 	+ commit 572c1aac107125ce62230251713349348373db5a
 6638 	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove a forgotten
 6639 	instance of @libsuffix@.
 6640 
 6641 2016-11-16  Werner Koch  <wk@gnupg.org>
 6642 
 6643 	Release 1.8.0.
 6644 	+ commit f06220b691e9711afdabaa19886244ae7724eed5
 6645 	* configure.ac: Set version to 1.8.0.  Set LT version C28/A17/RO.
 6646 	Set CPP LT version to C9/A3/R0.  Set Qt LT version to C8/A1/R0.
 6647 
 6648 	core: Do not leak the override session key to ps(1).
 6649 	+ commit 9fc92a15bd0a30437a39d0eb28b6f40edc22e6e8
 6650 	* src/engine-gpg.c (struct engine_gpg): New field
 6651 	override_session_key.
 6652 	(gpg_release): Free that field.
 6653 	(gpg_decrypt): With gnupg 2.1.16 use --override-session-key-fd.
 6654 
 6655 	* tests/run-decrypt.c (main): Fix setting over the override key.
 6656 
 6657 2016-11-16  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 6658 
 6659 	doc,tests: Require use of ctx_flag before use of session_key.
 6660 	+ commit 573064742145aa5f9bf04baa88af918c0c4d5e12
 6661 	* doc/gpgme.texi: Document requirements of verifying that it is OK to
 6662 	use session_key.
 6663 	* tests/run-decrypt.c: Ensure that we fail if we're unable to access
 6664 	the session key, so that we do not violate the guidance above.
 6665 
 6666 
 6667 	Changed the description
 6668 
 6669 	 -@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns
 6670 	 -@code{GPG_ERR_NO_ERROR} or @code{gpgme_get_ctx_flag (ctx,
 6671 	 -"export-session-key")} returns @code{"1"}.
 6672 	 +@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns success
 6673 	 +or @code{gpgme_get_ctx_flag (ctx, "export-session-key")} returns true
 6674 	 +(non-empty string).
 6675 
 6676 	to get gpgme_get_ctx_flag for boolean values in sync with its own
 6677 	description.
 6678 
 6679 	Note that I don't agree with the above suggestion but it does not
 6680 	really harm to have it in the man page.
 6681 
 6682 2016-11-15  Andre Heinecke  <aheinecke@intevation.de>
 6683 
 6684 	qt, cpp: Add cmake config files for w32.
 6685 	+ commit b2c07bd47bd608afa5cc819b60a7b5bb8c9dd96a
 6686 	* lang/cpp/src/GpgmeppConfig-w32.cmake.in.in
 6687 	lang/qt/src/QGpgmeConfig-w32.cmake.in.in: New.
 6688 	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
 6689 	lang/qt/src/QGpgmeConfig.cmake.in.in: Remove libsuffix handling.
 6690 	* lang/cpp/src/Makefile.am,
 6691 	lang/qt/src/Makefile.am: Create / install w32 config files.
 6692 	* configure.ac: Configure them.
 6693 
 6694 	qt: Use new style connect in th..mixin.
 6695 	+ commit 45abe6d142e314ba7099ad80b6365af171b06fec
 6696 	* lang/qt/src/threadedjobmixin.h
 6697 	(ThreadedJobMixin::lateInitialization): Use new style connect.
 6698 
 6699 2016-11-15  Werner Koch  <wk@gnupg.org>
 6700 
 6701 	core: Implement context flag "override-session-key".
 6702 	+ commit 7659d42468b604db2936b021425683f407eba4a7
 6703 	* src/gpgme.c (gpgme_set_ctx_flag): Add flags "export-session-key" and
 6704 	"override-session-key".
 6705 	(gpgme_get_ctx_flag): Ditto.
 6706 	(gpgme_set_export_session_keys): Remove.
 6707 	(gpgme_get_export_session_keys): Remove.
 6708 	* src/gpgme.def, src/libgpgme.vers: Remove them.
 6709 	* src/context.h (struct gpgme_context): Add field
 6710 	override_session_key.
 6711 	* src/decrypt-verify.c (decrypt_verify_start): Pass
 6712 	override_session_key value to the engine.
 6713 	* src/decrypt.c (decrypt_start): Ditto.
 6714 	* src/engine.c (_gpgme_engine_op_decrypt): Ditto.
 6715 	(_gpgme_engine_op_decrypt_verify): Ditto.
 6716 	* src/engine-backend.h (struct engine_ops): Extend DECRYPT and
 6717 	DECRYPT_VERIFY_START with override_session_key.
 6718 	* src/engine-uiserver.c (_uiserver_decrypt): Add stub arg
 6719 	override_session_key.
 6720 	(uiserver_decrypt): Ditto.
 6721 	(uiserver_decrypt_verify): Ditto.
 6722 	* src/engine-gpgsm.c (gpgsm_decrypt): Ditto.
 6723 	* src/engine-gpg.c (gpg_decrypt): Add arg override_session_key and set
 6724 	corresponding gpg option.
 6725 
 6726 	* tests/run-decrypt.c (print_result): Print the session key if
 6727 	available.
 6728 	(main): Add options --export-session-key and --override-session-key.
 6729 
 6730 	core: Add public function gpgme_get_ctx_flag.
 6731 	+ commit 3234b1bf1d6939772677d64f6c1e1820ec98e3cd
 6732 	* src/gpgme.h.in (gpgme_get_ctx_flag): New.
 6733 	* src/gpgme.c (gpgme_set_ctx_flag): Move down the file and add a trace
 6734 	statement.
 6735 	(gpgme_get_ctx_flag): New.
 6736 	* src/gpgme.def, src/libgpgme.vers: Add new interface.
 6737 
 6738 2016-11-15  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 6739 
 6740 	core: Enable extraction of session keys.
 6741 	+ commit cad1210fb8a7402cb29e607f8f9680005314120d
 6742 	* src/gpgme.c (gpgme_set_export_session_keys): New function.
 6743 	(gpgme_get_export_session_keys): New function.
 6744 	* src/gpgme.h.in (struct _gpgme_op_decrypt_result): Add session_key
 6745 	member.
 6746 	(gpgme_{set,get}_export_session_keys): Declare new functions.
 6747 	* src/libgpgme.vers, src/gpgme.def: Export new functions in shared
 6748 	object.
 6749 	* src/engine.h: (_gpgme_engine_op_decrypt) Add export_session_key
 6750 	parameter.
 6751 	(_gpgme_engine_op_decrypt_verify): Add export_session_key parameter.
 6752 	* src/engine-backend.h: (struct engine_ops): Change function
 6753 	pointer declarations to match.
 6754 	* src/context.h (struct gpgme_context): Add export_session_keys member.
 6755 	* src/decrypt.c (release_op_data): Free result.session_key.
 6756 	(_gpgme_decrypt_status_handler): Store a copy of the exported session
 6757 	key.
 6758 	(decrypt_start): Pass export_session_keys from the context.
 6759 	* src/decrypt-verify.c (decrypt_verify_start): Pass
 6760 	export_session_keys from context.
 6761 	* src/engine.c (_gpgme_engine_op_decrypt): Pass through
 6762 	export_session_key flag.
 6763 	(_gpgme_engine_op_decrypt_verify): Pass through export_session_key
 6764 	flag.
 6765 	* src/engine-gpg.c (gpg_decrypt): If export_session_key is set, add
 6766 	--export-session-key to argument list.
 6767 	* src/engine-gpgsm.c (gpgsm_decrypt): Ignore export_session_key for
 6768 	now, since gpgsm offers no such mechanism.
 6769 	* src/engine-uiserver.c (_uiserver_decrypt): If export_session_key is
 6770 	set, add --export-session-key flag to cmd.
 6771 	* doc/gpgme.texi: Document new functions and session_key member of
 6772 	decrypt_result_t.
 6773 	* doc/uiserver.texi: Add --export-session-key flag to DECRYPT command.
 6774 
 6775 2016-11-14  Andre Heinecke  <aheinecke@intevation.de>
 6776 
 6777 	qt: Add API to get the context for a Job.
 6778 	+ commit 9451faa2ee333904cff59f92ab62918e13ab4b87
 6779 	* lang/qt/src/job.cpp,
 6780 	lang/qt/src/job.h (Job::context): New.
 6781 	* lang/qt/src/threadedjobmixin.cpp
 6782 	(ThreadedJobMixin::~ThreadedJobMixin): New. Unregister context.
 6783 	(ThreadedJobMixin::lateInitialization): Register context.
 6784 	* NEWS: Update for cpp and qt.
 6785 
 6786 	cpp: Add get / set Sender API.
 6787 	+ commit d09a84eaf1e4f8c6c2e462995fa15c1a5690a6ce
 6788 	* cpp/src/context.cpp, cpp/src/context.h (Context::setSender),
 6789 	(Context::getSender): Add simple wrappers.
 6790 
 6791 	qt, cpp: Enable dll build for windows.
 6792 	+ commit f3790ddf56558fb0a08af95fdbae979cd6589aad
 6793 	* lang/cpp/src/Makefile.am,
 6794 	lang/qt/src/Makefile.am: Add -no-undefined to LDFLAGS.
 6795 
 6796 	w32: Fix build of w32-glib.
 6797 	+ commit b91c383386fe9eadd90afdb9bb1f8ec6c528173b
 6798 	* src/Makefile.am (main_sources): Remove system_components_not_extra.
 6799 	(libgpgme_la_SOURCES): Add system_components_not_extra.
 6800 	(libgpgme_glib_la_SOURCES): Remove duplicated ath files.
 6801 
 6802 2016-11-11  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 6803 
 6804 	doc: Correct deftypefun for gpgme_op_decrypt_verify_start.
 6805 	+ commit 16a30205064914eef578d84d07141b5d51d82838
 6806 	* doc/gpgme.texi: Documentationabout gpgme_op_decrypt_verify_start was
 6807 	stored under the name gpgme_op_decrypt_verify instead.
 6808 
 6809 	doc: Correct text about gpgme_cancel_async.
 6810 	+ commit d50bdb269e86db36a443958e3bfc6816a44d468e
 6811 	* doc/gpgme.texi: Documentation about gpgme_cancel_async should refer
 6812 	to the correct name.
 6813 
 6814 	core: Non-zero values should set _armor, _textmode, and _online.
 6815 	+ commit da035768bd9a880becee5d0d553dfe12299f96eb
 6816 	* src/gpgme.c (gpgme_set_armor, gpgme_set_textmode,
 6817 	gpgme_set_offline): Ensure that non-zero values actually set the
 6818 	appropriate internal bit.
 6819 
 6820 2016-11-11  Alon Bar-Lev  <alon.barlev@gmail.com>
 6821 
 6822 	tests,python: Atomic directory creation.
 6823 	+ commit 41d8c7e51a8989be633b9ada124c58a01fae7d54
 6824 	* lang/python/tests/Makefile.am:  Use MIDIR_P.
 6825 	* tests/gpg/Makefile.am: Ditto.
 6826 	* tests/gpgsm/Makefile.am: Ditto.
 6827 
 6828 2016-11-10  Werner Koch  <wk@gnupg.org>
 6829 
 6830 	core: Use better error code when using select with a too high fd.
 6831 	+ commit 6e57379c8e37c0863f7d12819a5a7d0781bd76d2
 6832 	* src/posix-io.c (_gpgme_io_select): Return EMFILE instead of EBADF.
 6833 
 6834 2016-11-10  Andre Heinecke  <aheinecke@intevation.de>
 6835 
 6836 	tests: Reduce thread count in new thread tests.
 6837 	+ commit ddd0a3cf90ac4b0a27ea610ebd7b9b8016ff43c4
 6838 	* gpg/t-thread-keylist-verify.c,
 6839 	gpg/t-thread-keylist.c: Reduce threads to 100
 6840 
 6841 2016-11-10  Werner Koch  <wk@gnupg.org>
 6842 
 6843 	core: Detect unreadable keyrings.
 6844 	+ commit 2a39bd6c30d21c43c86645a7908ce6c57dad5e20
 6845 	* src/keylist.c (op_data_t): Add field keydb_search_err.
 6846 	(keylist_status_handler): Parse STATUS_ERROR into that var.
 6847 	(gpgme_op_keylist_next): Use that err instead of GPG_ERR_EOF.
 6848 
 6849 2016-11-10  Andre Heinecke  <aheinecke@intevation.de>
 6850 
 6851 	tests: Fix additional memleaks in thread tests.
 6852 	+ commit d0030efb45ec8436dd84a9623d2f66b80c6b9e10
 6853 	* tests/gpg/t-thread-keylist-verify.c (start_verify): Release
 6854 	data.
 6855 	(start_keylist): Unref keys.
 6856 	* tests/gpg/t-thread-keylist.c (start_keylist): Unref keys.
 6857 
 6858 	tests: Improve new thread tests.
 6859 	+ commit 4d5174e4a83dcd524f8085f6646145f81b50a02a
 6860 	* tests/gpg/t-thread-keylist-verify.c (start_keylist): Mark
 6861 	arg as unused. Release context.
 6862 	(start_verify): Ditto.
 6863 	(main): Mark args as unused.
 6864 	* tests/gpg/t-thread-keylist.c (start_keylist):  Mark
 6865 	arg as unused. Release context.
 6866 	(main): Mark args as unused.
 6867 
 6868 	core: Use gpgrt locking for thread safeness.
 6869 	+ commit 09b64554328445e99a8cc78fc34ea49c2ea2e7f9
 6870 	* configure.ac: Require libgpg-error 1.17. No longer
 6871 	check for pthread.
 6872 	* doc/gpgme.texi: Document removed neccessity for thread
 6873 	safe gpgme flavours.
 6874 	* src/sema.h (DEFINE_GLOBAL_LOCK),
 6875 	(DEFINE_STATIC_LOCK, INIT_LOCK, DECLARE_LOCK)
 6876 	(DESTROY_LOCK, LOCK, UNLOCK): Change to gpgrt equivalents.
 6877 	* src/posix-sema.c, src/w32-sema.c: Removed.
 6878 	* src/Makefile.am: Remove libpthread and
 6879 	Update accordingly.
 6880 	* src/ath.c, src/ath.h (ath_mutex_init)
 6881 	(ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Removed.
 6882 	* src/ath.h (ATH_MUTEX_INITIALIZER): Removed.
 6883 	* src/version.c (do_subsystem_inits): sema_subsystem_init is
 6884 	no longer required.
 6885 	* tests/gpg/Makefile.am: Add new threading tests.
 6886 	(t_thread1_LDADD, t_cancel_LDADD):
 6887 	Use just gpgme.
 6888 	* tests/gpg/t-thread-keylist-verify.c,
 6889 	tests/gpg/t-thread-keylist.c: New.
 6890 	* src/gpgme-config.in: Use -lgpgme for thread-model pthread.
 6891 
 6892 2016-11-09  Justus Winter  <justus@g10code.com>
 6893 
 6894 	python: Require at least GPGME 1.7 for out-of-tree builds.
 6895 	+ commit f1f341062e24724e26928d893dd5769d3ccf5fa2
 6896 	* lang/python/setup.py.in: Bump required version to 1.7.
 6897 
 6898 2016-11-09  Werner Koch  <wk@gnupg.org>
 6899 
 6900 	w32: Better protect the IO-system's fd_table.
 6901 	+ commit 10f2e1c30be651e74a03f4563a9f212d7416adb3
 6902 	* src/w32-io.c (fd_table_lock): New.
 6903 	(new_fd): Lock allocation of a new slot.
 6904 	(release_fd): Lock deallocation of a slot.
 6905 
 6906 2016-11-04  Andre Heinecke  <aheinecke@intevation.de>
 6907 
 6908 	cpp: Add API for swdb queries.
 6909 	+ commit 3509cf2f9846360848b6c08d36cbca18373c935e
 6910 	* lang/cpp/src/swdbresult.cpp,
 6911 	 lang/cpp/src/swdbresult.h (SwdbResult): New.
 6912 	* lang/cpp/src/Makefile.am: Update accordingly.
 6913 
 6914 	cpp: Add more EngineInfo::Version ctors.
 6915 	+ commit 512de91f9a8da8f491e09653eb4b5bdd0a027198
 6916 	* lang/cpp/src/engineinfo.h
 6917 	(EngineInfo::Version::Version(const char*)),
 6918 	(EngineInfo::Version::Version()): New.
 6919 
 6920 	cpp: Don't include gpgme.h in tofuinfo header.
 6921 	+ commit 4d3f33d0e9d960df2c34fb4d215987ab4d36111c
 6922 	* lang/cpp/src/tofuinfo.h: Don't include gpgme.h
 6923 
 6924 	cpp: Extend gpgmefw for tofuinfo and swdb query.
 6925 	+ commit 23979b9be5a6028e3e9cafc3aff632bc720b81f2
 6926 	* lang/cpp/src/gpgmefw.h (gpgme_tofu_info_t)
 6927 	(gpgme_query_swdb_result_t): New forwards.
 6928 
 6929 2016-11-04  Werner Koch  <wk@gnupg.org>
 6930 
 6931 	w32: Fix locating gpgconf on 64 bit systems.
 6932 	+ commit df08a0ca3f029b06b7e3a6bd63330df5cb96585a
 6933 	* src/w32-util.c (find_program_at_standard_place): Use access to check
 6934 	whether the binary is at CSIDL_PROGRAM_FILES before testing
 6935 	CSIDL_PROGRAM_FILESX86.
 6936 
 6937 2016-11-03  Werner Koch  <wk@gnupg.org>
 6938 
 6939 	core: Add gpgme_op_query_swdb and helper.
 6940 	+ commit aad94cb7c313d4501bed748f48830cbb93c67e20
 6941 	* src/gpgme.h.in (gpgme_query_swdb_result_t): New.
 6942 	(gpgme_op_query_swdb): New.
 6943 	(gpgme_op_query_swdb_result): New.
 6944 	* src/libgpgme.vers, src/gpgme.def: Add the two new functions.
 6945 	* src/queryswdb.c: New.
 6946 	* src/Makefile.am (main_sources): Add new file.
 6947 	* src/context.h (OPDATA_QUERY_SWDB): New.
 6948 	* src/engine-backend.h (struct engine_ops): Add field 'query_swdb'.
 6949 	Adjust all initializer.
 6950 	* src/engine.c (_gpgme_engine_op_query_swdb): New.
 6951 	* src/engine-gpgconf.c (parse_swdb_line): New.
 6952 	(gpgconf_query_swdb): New.
 6953 	(_gpgme_engine_ops_gpgconf): Register that function.
 6954 
 6955 	* src/util.h (GPG_ERR_TOO_OLD): Define for older libgpg-error.
 6956 	(GPG_ERR_ENGINE_TOO_OLD): Ditto.
 6957 
 6958 	* tests/run-swdb.c: New.
 6959 	* tests/Makefile.am (noinst_PROGRAMS): Add new debug tool.
 6960 
 6961 2016-11-03  Andre Heinecke  <aheinecke@intevation.de>
 6962 
 6963 	qt: Change license of export / version header.
 6964 	+ commit 34a4e8017be452e8ead6b9c2da84be1ec7929cae
 6965 	* lang/qt/src/qgpgme_export.h,
 6966 	lang/qt/src/qgpgme_version.h: Change license to GPLv2+
 6967 
 6968 2016-11-03  Werner Koch  <wk@gnupg.org>
 6969 
 6970 	core: Make use of --homedir in gpgconf.
 6971 	+ commit 0c2038c0043c1e79547b55e79c3d3e267dae801c
 6972 	* src/engine-gpgconf.c (struct engine_gpgconf): Add field 'version'.
 6973 	(have_gpgconf_version): New.
 6974 	(gpgconf_release): Free VERSION.
 6975 	(gpgconf_new): Set VERSION.
 6976 	(gpgconf_read, gpgconf_write): Use --homedir with recent gnupg.
 6977 
 6978 2016-11-02  Andras Mantia  <andras@kdab.com>
 6979 
 6980 	qt: Fix build with g++ 4.8.x.
 6981 	+ commit b4658f6a1110bb0b54bd5dfc9df8e8b390e38d61
 6982 	* lang/qt/src/defaultkeygenerationjob.cpp
 6983 	(DefaultKeyGenerationJob::start): Explicitly connect pointer
 6984 	in the QPointer.
 6985 
 6986 2016-11-02  Andre Heinecke  <aheinecke@intevation.de>
 6987 
 6988 	qt, cpp: Fix versioning in cmake config and header.
 6989 	+ commit bf9aa0ccf7b0165aa3a1af2bdb18daca7c02ce74
 6990 	* configure.ac (VERSION_MAJOR, VERSION_MINOR, VERSION_MICRO): New
 6991 	subst variables for the version header.
 6992 	* lang/cpp/src/GpgmeppConfigVersion.cmake.in,
 6993 	lang/cpp/src/gpgmepp_version.h.in,
 6994 	lang/qt/src/QGpgmeConfigVersion.cmake.in,
 6995 	lang/qt/src/qgpgme_version.h.in: Use new variables.
 6996 
 6997 	qt: Install cmake config into qgpgme subdir.
 6998 	+ commit b5c4d56cfdcafade3467be100fca6f1c89ecab73
 6999 	* lang/qt/src/Makefile.am: Install cmake config file in qgpgme subdir.
 7000 
 7001 	qt: Require gpgmepp from cmake config script.
 7002 	+ commit 4149194d2e2f2f4d142926ba4d4efbd336b543f2
 7003 	* lang/qt/src/QGpgmeConfig.cmake.in.in: Require cpp.
 7004 
 7005 	qt, cpp: Add all generated files to cleanfiles.
 7006 	+ commit 8486f213423311174ebff5cba74127cbd9bb3c2a
 7007 	* cpp/src/Makefile.am (CLEANFILES),
 7008 	qt/src/Makefile.am (CLEANFILES): Add all generated files
 7009 	to cleanfiles.
 7010 
 7011 2016-11-01  Andre Heinecke  <aheinecke@intevation.de>
 7012 
 7013 	qt: Add Distinguished Name parser from libkleo.
 7014 	+ commit 627c5deed84b4481710b6c0de06b26e886679bbe
 7015 	* lang/qt/src/dn.cpp (DN, DN::Attribute): New public API.
 7016 	* lang/qt/src/dn.h: New.
 7017 	* lang/qt/src/Makefile.am: Update accordingly.
 7018 
 7019 	qt, cpp: Install version headers in subdirs.
 7020 	+ commit 567123de21247cab05762d799400739a12eb67ae
 7021 	* lang/cpp/src/Makefile.am,
 7022 	lang/qt/src/Makefile.am: Install version headers in include
 7023 	subdirs.
 7024 
 7025 2016-10-31  Justus Winter  <justus@g10code.com>
 7026 
 7027 	python: Use vanity modules for constants in tests and examples.
 7028 	+ commit 4b3264345084a0c9bf9f97fb233df700d7608e66
 7029 	* lang/python/gpg/constants/sig/notation.py: New file.
 7030 	* lang/python/gpg/constants/sig/__init__.py: Import new module.
 7031 
 7032 	* lang/python/examples/assuan.py: Use more specific module for
 7033 	constants, e.g. 'protocol.ASSUAN' instead of 'PROTOCOL_ASSUAN'.
 7034 	* lang/python/examples/testCMSgetkey.py: Likewise.
 7035 	* lang/python/tests/initial.py: Likewise.
 7036 	* lang/python/tests/t-callbacks.py: Likewise.
 7037 	* lang/python/tests/t-decrypt-verify.py: Likewise.
 7038 	* lang/python/tests/t-decrypt.py: Likewise.
 7039 	* lang/python/tests/t-edit.py: Likewise.
 7040 	* lang/python/tests/t-encrypt-large.py: Likewise.
 7041 	* lang/python/tests/t-encrypt-sign.py: Likewise.
 7042 	* lang/python/tests/t-encrypt-sym.py: Likewise.
 7043 	* lang/python/tests/t-encrypt.py: Likewise.
 7044 	* lang/python/tests/t-export.py: Likewise.
 7045 	* lang/python/tests/t-file-name.py: Likewise.
 7046 	* lang/python/tests/t-idiomatic.py: Likewise.
 7047 	* lang/python/tests/t-import.py: Likewise.
 7048 	* lang/python/tests/t-keylist.py: Likewise.
 7049 	* lang/python/tests/t-protocol-assuan.py: Likewise.
 7050 	* lang/python/tests/t-sig-notation.py: Likewise.
 7051 	* lang/python/tests/t-sign.py: Likewise.
 7052 	* lang/python/tests/t-signers.py: Likewise.
 7053 	* lang/python/tests/t-trustlist.py: Likewise.
 7054 	* lang/python/tests/t-verify.py: Likewise.
 7055 	* lang/python/tests/t-wait.py: Likewise.
 7056 
 7057 	python: Import the topmost module in tests and examples.
 7058 	+ commit 20dc37a0e7e1531b0e568a6ec29b1c2d18de59c3
 7059 	* examples/verifydetails.py: Only import the topmost module 'gpg' and
 7060 	update the code accordingly.
 7061 	* tests/support.py: Likewise.
 7062 	* tests/t-callbacks.py: Likewise.
 7063 	* tests/t-data.py: Likewise.
 7064 	* tests/t-decrypt-verify.py: Likewise.
 7065 	* tests/t-decrypt.py: Likewise.
 7066 	* tests/t-edit.py: Likewise.
 7067 	* tests/t-encrypt-large.py: Likewise.
 7068 	* tests/t-encrypt-sign.py: Likewise.
 7069 	* tests/t-encrypt-sym.py: Likewise.
 7070 	* tests/t-encrypt.py: Likewise.
 7071 	* tests/t-export.py: Likewise.
 7072 	* tests/t-file-name.py: Likewise.
 7073 	* tests/t-import.py: Likewise.
 7074 	* tests/t-keylist.py: Likewise.
 7075 	* tests/t-sig-notation.py: Likewise.
 7076 	* tests/t-sign.py: Likewise.
 7077 	* tests/t-signers.py: Likewise.
 7078 	* tests/t-trustlist.py: Likewise.
 7079 	* tests/t-verify.py: Likewise.
 7080 	* tests/t-wait.py: Likewise.
 7081 	* tests/t-wrapper.py: Likewise.
 7082 
 7083 	python: Improve constants module.
 7084 	+ commit 70b7064e5c4f3eff9c296c00156724bc0cdaa64f
 7085 	* lang/python/gpg/constants/__init__.py: Import all modules below
 7086 	'constants/'.  Interface hygiene: delete 'util'.
 7087 	* lang/python/gpg/constants/data/encoding.py: Delete 'util'.
 7088 	* lang/python/gpg/constants/event.py: Likewise.
 7089 	* lang/python/gpg/constants/import.py: Likewise.
 7090 	* lang/python/gpg/constants/keylist/mode.py: Likewise.
 7091 	* lang/python/gpg/constants/md.py: Likewise.
 7092 	* lang/python/gpg/constants/pk.py: Likewise.
 7093 	* lang/python/gpg/constants/protocol.py: Likewise.
 7094 	* lang/python/gpg/constants/sig/mode.py: Likewise.
 7095 	* lang/python/gpg/constants/sigsum.py: Likewise.
 7096 	* lang/python/gpg/constants/validity.py: Likewise.
 7097 	* lang/python/gpg/errors.py: Likewise.
 7098 
 7099 2016-10-31  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 7100 
 7101 	python: Rename Python module from PyME to gpg.
 7102 	+ commit 2fac017618a76882605125b05ff1f7393fe99860
 7103 	This follows weeks of discussion on the gnupg-devel mailing list.
 7104 	Hopefully it will make it easier for people using Python to use GnuPG
 7105 	in the future.
 7106 
 7107 2016-10-25  Werner Koch  <wk@gnupg.org>
 7108 
 7109 	core: New API functions gpgme_set_sender, gpgme_get_sender.
 7110 	+ commit b8159eadb5636cd9d93ee60c41e75d5978927870
 7111 	* src/context.h (struct gpgme_context): Add field 'sender'.
 7112 	* src/gpgme.c: Include mbox-util.h.
 7113 	(gpgme_release): Free SENDER.
 7114 	(gpgme_set_sender): New.
 7115 	(gpgme_get_sender): New.
 7116 	* src/gpgme.def, src/libgpgme.vers: Add new functions.
 7117 
 7118 	* src/engine-gpg.c (append_args_from_sender): New.
 7119 	(gpg_encrypt_sign, gpg_sign): Call append_args_from_sender.
 7120 	(gpg_verify): Add arg CTX.  Call append_args_from_sender/
 7121 	* src/engine-gpgsm.c (gpgsm_verify): Add dummy arg CTX.
 7122 	* src/engine-uiserver.c (uiserver_verify): Ditto.
 7123 	* src/engine.c (_gpgme_engine_op_verify): Add arg CTX.
 7124 	* src/verify.c (verify_start): Pass CTX to engine function.
 7125 
 7126 	* tests/gpg/t-verify.c (main): Add some checks for new functions.
 7127 	* tests/run-sign.c (main): Add option --sender.
 7128 	* tests/run-verify.c (main): Ditto.
 7129 
 7130 2016-10-19  Andre Heinecke  <aheinecke@intevation.de>
 7131 
 7132 	qt: Improve WKSPublishJob apidoc.
 7133 	+ commit 26cbba3c9cb04a68b95f3a6000ac9bd93fe76dd7
 7134 	* lang/qt/src/wkspublishjob.h: Improve doc.
 7135 
 7136 2016-10-18  Werner Koch  <wk@gnupg.org>
 7137 
 7138 	Release 1.7.1.
 7139 	+ commit 2c490cdb3e50761c498357982445ebb01f18dc1e
 7140 	* configure.ac: Set LT version to C27/A16/R0.  Note that the LT
 7141 	versions for cpp and Qt have already been updated.
 7142 
 7143 2016-10-14  Werner Koch  <wk@gnupg.org>
 7144 
 7145 	tests: Make t-cancel more portable.
 7146 	+ commit 05e8e1260baa5cbc6f1d6e387e642c1f6c188d44
 7147 	* tests/gpg/t-cancel.c: Include sys/time.h and protect sys/select.h.
 7148 
 7149 	python: Call ln(1) in a portable way.
 7150 	+ commit c6cab5a2bd6e7ed226c6c3f0b78b3f48b47db74c
 7151 	* lang/python/Makefile.am: Specify target dir for ln.
 7152 
 7153 2016-10-14  Andre Heinecke  <aheinecke@intevation.de>
 7154 
 7155 	cpp: Fix init of string from null.
 7156 	+ commit 1e8c34a9192956bb2fe96a7a6a76ff59de8d1c0c
 7157 	* lang/cpp/src/key.cpp (UserID::addrSpecFromString): Check return
 7158 	value before creating the string.
 7159 
 7160 2016-10-13  Justus Winter  <justus@g10code.com>
 7161 
 7162 	python: Make 'get_key' more idiomatic.
 7163 	+ commit f526d0e22e8b881ccbca66b46a0e1b68bbc4cd6b
 7164 	* lang/python/pyme/core.py (Context.get_key): Raise errors.KeyNotFound
 7165 	if the key is not found.  This error is both a KeyError for idiomatic
 7166 	error handling as well as a GPGMEError so we don't break existing
 7167 	code.
 7168 	* lang/python/pyme/errors.py (KeyNotFound): New class.
 7169 	* lang/python/tests/support.py (no_such_key): New variable.
 7170 	* lang/python/tests/t-keylist.py: Test the new behavior.
 7171 
 7172 	python: Return public keys by default.
 7173 	+ commit 1e6073ffa98db2c265adbcf0dbbe70c067a910f0
 7174 	* lang/python/pyme/core.py (Core.get_key): Return public keys by
 7175 	default, improve docstring.
 7176 	* lang/python/examples/testCMSgetkey.py: Update example.
 7177 	* lang/python/examples/verifydetails.py: Likewise.
 7178 
 7179 	python: Fix example.
 7180 	+ commit cabd4c74e52c8983d624b6877cddc7f8912eff04
 7181 	* lang/python/examples/inter-edit.py: Fix example.
 7182 
 7183 2016-10-13  Andre Heinecke  <aheinecke@intevation.de>
 7184 
 7185 	cpp: Fix version number.
 7186 	+ commit 56302e7bb6a694a7c570f389f9a7883efdfdaf42
 7187 	* configure.ac (LIBGPGMEPP_LT_CURRENT): Bump.
 7188 
 7189 	qt, cpp: Fix permissions of Config files.
 7190 	+ commit a274c7590aa0e38d682d5177904983632f471cb0
 7191 	* lang/cpp/src/Makefile.am,
 7192 	lang/qt/src/Makefile.am: Do not install config files as executable.
 7193 
 7194 	qt: Install SpecialJob.
 7195 	+ commit 2538c12fa0728f4113f83f69f8c8ec9efb163872
 7196 	* lang/qt/src/Makefile.am: Install SpecialJob
 7197 	* NEWS: mention it.
 7198 
 7199 	qt, cpp: Fix expected targets in Config files.
 7200 	+ commit a3cf30f89418c8a6bc9456533d95ba7fc2a33a4c
 7201 	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
 7202 	lang/qt/src/QGpgmeConfig.cmake.in.in: Remove KF5 variants.
 7203 
 7204 2016-10-11  Daniel Vrátil  <dvratil@kde.org>
 7205 
 7206 	qt: Add missing implementation of MultiDeleteJob.
 7207 	+ commit e5a35af5573651b96a90ef4a537b040333595472
 7208 	* lang/qt/src/multideletejob.h: Fix include, cryptobackend.h is now
 7209 	called protocol.h
 7210 	* lang/qt/src/multideletejob.cpp: New file.
 7211 	* lang/qt/src/Makefile.am: Add multideletejob.cpp.
 7212 
 7213 	qt: Install abstractimportjob.h.
 7214 	+ commit ce7385caabb57e5435695cc912acffe2815770b7
 7215 	* lang/cpp/src/Makefile.am: Install abstractimportjob.h since it's
 7216 	included from importjob.h
 7217 
 7218 2016-10-11  Andre Heinecke  <aheinecke@intevation.de>
 7219 
 7220 	cpp: Add API for gpgme_addrspec_from_uid.
 7221 	+ commit 54f94b14e2bb9b38ffd89f509406bfbd012da632
 7222 	* lang/cpp/src/key.cpp (UserID::addrSpecFromString): New static
 7223 	function to expose addrspec from uid.
 7224 	(UserID::addrSpec): New. Get addrSpec from Userid.
 7225 	* NEWS: Update accordingly.
 7226 
 7227 2016-10-10  Andre Heinecke  <aheinecke@intevation.de>
 7228 
 7229 	Add NEWS for cpp and qt, bump cpp version.
 7230 	+ commit e7ceb83a5969581f5e1b0b6a69d18a93b594f6d4
 7231 	* NEWS: Add entries for cpp and qt changes.
 7232 	* configure.ac: Bump cpp version because of added API.
 7233 
 7234 	Add convenience function to get key from sig.
 7235 	+ commit b6b820bff14a9aa8fa67755b246c90062ffdba14
 7236 	* lang/cpp/src/verificationresult.cpp (Signature::key(bool, bool)):
 7237 	New. Can be used to search / update the key associcated with this
 7238 	signature.
 7239 
 7240 	cpp: Return null key if the signature had no key.
 7241 	+ commit 34e9dfee81958160f6604849b63369ae4de67417
 7242 	* lang/cpp/src/verificationresult.cpp (Private): Add null key
 7243 	to list when there is no key associated with the signature.
 7244 
 7245 	qt: Add simple verify test.
 7246 	+ commit f131a5e72b0881cafcc3b0a91da8f050af2684a6
 7247 	* lang/qt/tests/t-verify.cpp: New. Small test if a signature
 7248 	returns a key with fingerprint.
 7249 	* lang/qt/tests/Makefile.am: Add new test.
 7250 
 7251 	core: Fix w32 crash in find_program_in_dir.
 7252 	+ commit 098a2da15b1b46b145add623dec0488abd39bd74
 7253 	* src/w32-util.c (find_program_in_dir): Fix call to _gpgme_strconcat.
 7254 
 7255 2016-10-08  Werner Koch  <wk@gnupg.org>
 7256 
 7257 	core: New helper function gpgme_addrspec_from_uid.
 7258 	+ commit 0ea2ff67900c243fff9f689658dcb23d1c0961cd
 7259 	* src/gpgme.h.in: Add gpgme_addrspec_from_uid.
 7260 	* src/gpgme.def, src/libgpgme.vers: Ditto.
 7261 	* src/mbox-util.c (gpgme_addrspec_from_uid): New.
 7262 
 7263 2016-10-06  Justus Winter  <justus@g10code.com>
 7264 
 7265 	Add missing includes.
 7266 	+ commit 857592041b8355cd58a7068c9f2446cf8dc0968f
 7267 	* lang/cpp/src/key.cpp: Include <strings.h> for 'strcasecmp'.
 7268 	* tests/gpg/t-cancel.c: Include <sys/select.h> for 'fd_set' and
 7269 	friends.
 7270 
 7271 2016-10-05  Andre Heinecke  <aheinecke@intevation.de>
 7272 
 7273 	cpp: Bump Revision.
 7274 	+ commit 8033cff441e9ea185531290273ec343f3402703c
 7275 	* configure.ac (LIBGPGMEPP_LT_REVISION): Bump revision.
 7276 
 7277 	qt: Fix spelling error in WKSPublishJob.
 7278 	+ commit 88c7e84ede4b6017cac3a396e8c87c2bd3a2bf58
 7279 	* src/qgpgmewkspublishjob.cpp,
 7280 	src/qgpgmewkspublishjob.h,
 7281 	src/wkspublishjob.h,
 7282 	tests/t-wkspublish.cpp: Fix spelling of received.
 7283 	* src/configure.ac (LIBQGPGME_LT_CURRENT): Bump
 7284 	accordingly.
 7285 
 7286 	qt: Disable tests that require a password for 2.0.
 7287 	+ commit 24779c9e2301bd17fd328d65b0383e1cbc944119
 7288 	* lang/qt/tests/t-encrypt.cpp: Disable tests that require
 7289 	a password for 2.0.
 7290 
 7291 	Add warning flags for c++ compiler, too.
 7292 	+ commit 4984cc93db6b55f2420a9abd844c074a5fb4ed0c
 7293 	* configure.ac (CXXFLAGS): Add Wall and Wextra.
 7294 
 7295 	qt: Fix unused variable warnings.
 7296 	+ commit 9d1df990386010e0581b542a76a4f5d85d8d11b5
 7297 	* qt/src/qgpgmenewcryptoconfig.cpp,
 7298 	qt/src/threadedjobmixin.h,
 7299 	qt/tests/t-encrypt.cpp,
 7300 	qt/tests/t-support.h,
 7301 	qt/tests/t-wkspublish.cpp: Mark additional variables as unused.
 7302 
 7303 	cpp: Add support for URL Data encodings.
 7304 	+ commit 370ee1aa802ec6a4030a39b2df7d24a0c47e5ac7
 7305 	* lang/cpp/src/data.h (Data::Encoding): Extend enum.
 7306 	* lang/cpp/src/data.cpp (Data::encoding),
 7307 	Data::setEncoding): Support new values.
 7308 
 7309 	cpp: Fix gcc diagnostic push / pop.
 7310 	+ commit 39dd7585f5a7d801942efcb375d6dd46d01d2968
 7311 	* lang/cpp/src/context.cpp: Fix pragmas.
 7312 
 7313 	qt: Disable t-wkspublish test.
 7314 	+ commit 52a91ccc6a25425d4374b77040e30efb6816940f
 7315 	* lang/qt/tests/Makefile.am (TESTS): Remove t-wkspublish.
 7316 
 7317 2016-09-30  Alon Bar-Lev  <alon.barlev@gmail.com>
 7318 
 7319 	python: Link 'data.h' and 'config.h' into the builddir.
 7320 	+ commit 453ab9d24ca48c9e01d21e1454d6b08de1938b76
 7321 	* lang/python/Makefile.am: Link to the files.
 7322 	* lang/python/gpgme.i: Update path.
 7323 	* lang/python/setup.py.in: Do not add the top builddir to the include
 7324 	path.
 7325 
 7326 	python: Add 'prepare' target.
 7327 	+ commit 68fb8371a1dd5f4e05e50b1733f9996d139cbf38
 7328 	* lang/python/Makefile.am: Add 'prepare' target.
 7329 
 7330 2016-09-29  Andre Heinecke  <aheinecke@intevation.de>
 7331 
 7332 	cpp, qt: Handle modified includedir installation.
 7333 	+ commit 7302791c0d308c3284ac24a743035d27a0c0b6ba
 7334 	* lang/cpp/src/Makefile.am,
 7335 	lang/qt/src/Makefile.am: Replace resolved_includedir.
 7336 	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
 7337 	lang/qt/src/QGpgmeConfig.cmake.in.in: Use resolved_includedir
 7338 	instead of relying on a common installation prefix.
 7339 
 7340 2016-09-27  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 7341 
 7342 	Clarify licensing.
 7343 	+ commit 145392f07f42ef23ebcb83a917b4d8e2964e7aa8
 7344 	* src/b64dec.c, src/mbox-util.c, src/mbox-util.h: These three files
 7345 	  are explicitly licensed under LGPL, but their comments suggest that
 7346 	  details about the warranty can be found in the GPL.  Adjust comments
 7347 	  to refer to the correct license.
 7348 
 7349 2016-09-27  Justus Winter  <justus@g10code.com>
 7350 
 7351 	tests: Fix check for gpg versions not reporting the critical flag.
 7352 	+ commit a423603f80d9eb653ce9c171662db2175d7456f5
 7353 	* lang/python/tests/t-sig-notation.py: Also blacklist 2.0.x.
 7354 	* tests/gpg/t-sig-notation.c: Likewise.
 7355 
 7356 2016-09-26  Justus Winter  <justus@g10code.com>
 7357 
 7358 	python: Correctly translate to size_t.
 7359 	+ commit c38fabfea0601ed5f61e27e0bf43f8e74c67ce2a
 7360 	* lang/python/gpgme.i: Correctly translate Python number to size_t.
 7361 
 7362 	python: Correctly translate off_t.
 7363 	+ commit 1d80e7374aa3150306c86afe7acdc8e8eb05143f
 7364 	* lang/python/gpgme.i: Improve int/long translations, correctly handle
 7365 	off_t with large file support.
 7366 
 7367 	python: Include 'config.h'.
 7368 	+ commit 3703a4723899d7563937b4b99f5bbe4dd8d3dfed
 7369 	* lang/python/Makefile.am: Pass 'top_builddir' to 'setup.py'.
 7370 	* lang/python/gpgme.i: Include 'config.h'.
 7371 	* lang/python/helpers.c: Likewise.
 7372 	* lang/python/helpers.h: Likewise.
 7373 	* lang/python/setup.py.in: Make sure that 'config.h' can be found.
 7374 
 7375 2016-09-23  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
 7376 
 7377 	Fix spelling.
 7378 	+ commit 95f38652f696476b38a040644eac40b4511d2b32
 7379 	 * lang/cpp/src/context.h, lang/qt/src/protocol.h,
 7380 	   lang/qt/src/wkspublishjob.h, src/data-identify.c, src/engine-gpg.c:
 7381 	   minor spelling cleanup.
 7382 
 7383 	move some file encodings to UTF-8.
 7384 	+ commit a11450eb048df79a3f2b00ebef6d7cab07ad5054
 7385 	* THANKS, doc/ChangeLog-2011, tests/ChangeLog-2011,
 7386 	  tests/gpg/geheim.txt: convert from iso 8859-1 to utf-8.
 7387 	* lang/qt/src/dataprovider.cpp, lang/qt/src/qgpgmerefreshkeysjob.cpp,
 7388 	  lang/qt/src/qgpgmesecretkeyexportjob.cpp: replace U+FFFD REPLACEMENT
 7389 	  CHARACTER with proper U+00E4 LATIN SMALL LETTER A WITH DIAERESIS.
 7390 
 7391 2016-09-23  Andre Heinecke  <aheinecke@intevation.de>
 7392 
 7393 	tests: Check data after decryption.
 7394 	+ commit 9b38817968b90caf73f123255fe427691e82fec4
 7395 	* tests/gpgsm/t-decrypt.c (main): Check data matches expected.
 7396 	Only print result if it does not.
 7397 
 7398 	cpp, qt: Include config.h.
 7399 	+ commit a142f187b7ddb2728ec3e1743da4a0c4538ab40a
 7400 	lang/cpp/src/callbacks.cpp,
 7401 	lang/cpp/src/configuration.cpp,
 7402 	lang/cpp/src/context.cpp,
 7403 	lang/cpp/src/context_glib.cpp,
 7404 	lang/cpp/src/context_qt.cpp,
 7405 	lang/cpp/src/context_vanilla.cpp,
 7406 	lang/cpp/src/data.cpp,
 7407 	lang/cpp/src/decryptionresult.cpp,
 7408 	lang/cpp/src/defaultassuantransaction.cpp,
 7409 	lang/cpp/src/editinteractor.cpp,
 7410 	lang/cpp/src/encryptionresult.cpp,
 7411 	lang/cpp/src/engineinfo.cpp,
 7412 	lang/cpp/src/eventloopinteractor.cpp,
 7413 	lang/cpp/src/exception.cpp,
 7414 	lang/cpp/src/gpgadduserideditinteractor.cpp,
 7415 	lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
 7416 	lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
 7417 	lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
 7418 	lang/cpp/src/gpgsignkeyeditinteractor.cpp,
 7419 	lang/cpp/src/importresult.cpp,
 7420 	lang/cpp/src/key.cpp,
 7421 	lang/cpp/src/keygenerationresult.cpp,
 7422 	lang/cpp/src/keylistresult.cpp,
 7423 	lang/cpp/src/scdgetinfoassuantransaction.cpp,
 7424 	lang/cpp/src/signingresult.cpp,
 7425 	lang/cpp/src/tofuinfo.cpp,
 7426 	lang/cpp/src/trustitem.cpp,
 7427 	lang/cpp/src/verificationresult.cpp,
 7428 	lang/cpp/src/vfsmountresult.cpp,
 7429 	lang/qt/src/dataprovider.cpp,
 7430 	lang/qt/src/defaultkeygenerationjob.cpp,
 7431 	lang/qt/src/gpgme_backend_debug.cpp,
 7432 	lang/qt/src/job.cpp,
 7433 	lang/qt/src/qgpgmeadduseridjob.cpp,
 7434 	lang/qt/src/qgpgmebackend.cpp,
 7435 	lang/qt/src/qgpgmechangeexpiryjob.cpp,
 7436 	lang/qt/src/qgpgmechangeownertrustjob.cpp,
 7437 	lang/qt/src/qgpgmechangepasswdjob.cpp,
 7438 	lang/qt/src/qgpgmedecryptjob.cpp,
 7439 	lang/qt/src/qgpgmedecryptverifyjob.cpp,
 7440 	lang/qt/src/qgpgmedeletejob.cpp,
 7441 	lang/qt/src/qgpgmedownloadjob.cpp,
 7442 	lang/qt/src/qgpgmeencryptjob.cpp,
 7443 	lang/qt/src/qgpgmeexportjob.cpp,
 7444 	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
 7445 	lang/qt/src/qgpgmeimportjob.cpp,
 7446 	lang/qt/src/qgpgmekeyformailboxjob.cpp,
 7447 	lang/qt/src/qgpgmekeygenerationjob.cpp,
 7448 	lang/qt/src/qgpgmekeylistjob.cpp,
 7449 	lang/qt/src/qgpgmelistallkeysjob.cpp,
 7450 	lang/qt/src/qgpgmenewcryptoconfig.cpp,
 7451 	lang/qt/src/qgpgmerefreshkeysjob.cpp,
 7452 	lang/qt/src/qgpgmesecretkeyexportjob.cpp,
 7453 	lang/qt/src/qgpgmesignencryptjob.cpp,
 7454 	lang/qt/src/qgpgmesignjob.cpp,
 7455 	lang/qt/src/qgpgmesignkeyjob.cpp,
 7456 	lang/qt/src/qgpgmetofupolicyjob.cpp,
 7457 	lang/qt/src/qgpgmeverifydetachedjob.cpp,
 7458 	lang/qt/src/qgpgmeverifyopaquejob.cpp,
 7459 	lang/qt/src/qgpgmewkspublishjob.cpp,
 7460 	lang/qt/src/threadedjobmixin.cpp,
 7461 	lang/qt/tests/run-keyformailboxjob.cpp,
 7462 	lang/qt/tests/t-encrypt.cpp,
 7463 	lang/qt/tests/t-keylist.cpp,
 7464 	lang/qt/tests/t-keylocate.cpp,
 7465 	lang/qt/tests/t-ownertrust.cpp,
 7466 	lang/qt/tests/t-support.cpp,
 7467 	lang/qt/tests/t-tofuinfo.cpp,
 7468 	lang/qt/tests/t-wkspublish.cpp: Include config.h
 7469 
 7470 2016-09-22  Werner Koch  <wk@gnupg.org>
 7471 
 7472 	w32: Silence some warnings about unused parameters.
 7473 	+ commit 583aafdd6870a7fb12a34d90993fd0f46928592c
 7474 	* src/assuan-support.c (my_recvmsg, my_sendmsg, my_waitpid)
 7475 	(my_socketpair) [W32]: Mark unused parameters.
 7476 
 7477 	core: Fix error checking in _gpgme_mkstemp.
 7478 	+ commit c447b64d5989845a2ae2cf8fb30a92d2a0bd05af
 7479 	* src/w32-util.c (_gpgme_mkstemp): Fix error checking.
 7480 	(dlopen): Mark FLAGS as unused.
 7481 
 7482 	core: New helper function _gpgme_strconcat.
 7483 	+ commit dc39552d01094eff2bef5f9fcd1c16928909d20e
 7484 	* src/conversion.c: Include stdarg.h.
 7485 	(do_strconcat): New.
 7486 	(_gpgme_strconcat): New.
 7487 	* src/util.h: Provide fallback for GPGRT_ATTR_SENTINEL.
 7488 	(_gpgme_strconcat): New with sentinel.
 7489 
 7490 	* src/w32-util.c (find_program_in_dir): Replace malloc and stpcpy by
 7491 	_gpgme_strconcat.
 7492 	(find_program_at_standard_place): Ditto.
 7493 	(_gpgme_set_default_gpg_name): Ditto.
 7494 	(_gpgme_set_default_gpgconf_name): Ditto.
 7495 	(_gpgme_mkstemp): Ditto.
 7496 	(_gpgme_set_override_inst_dir): Repalce malloc and strcpy by strdup.
 7497 
 7498 2016-09-22  Daiki Ueno  <ueno@gnu.org>
 7499 
 7500 	tests: Add test for cancellation.
 7501 	+ commit 7a6543c2dfeef874a34086c8f3eeb1dbdf1ce822
 7502 	* tests/gpg/t-cancel.c: New file.
 7503 	* tests/gpg/Makefile.am (tests_skipped): New variable, default to
 7504 	t-genkey and t-cancel.
 7505 	(noinst_PROGRAMS): Add $(tests_skipped).
 7506 	* tests/gpg/.gitignore: Add t-cancel.
 7507 
 7508 	gpg: Add option --exit-on-status-write-error.
 7509 	+ commit dee56820cabde60c43c9bf8281b8d411cb2ad644
 7510 	* src/engine-gpg.c (gpg_new): Add --exit-on-status-write-error if the
 7511 	engine version is latest enough to expect progress output from gpg.
 7512 
 7513 	tests: Fix select usage in t-eventloop.
 7514 	+ commit d0cf6b15121c9b42dbcef243e5ce30c9996a449c
 7515 	* tests/gpg/t-eventloop.c (do_select): Supply timeout value to select.
 7516 
 7517 	doc: Fix minor errors in I/O callback example.
 7518 	+ commit 0aaf1dedd629446ab991fff76581b4b58e4872a0
 7519 	* gpgme.texi (I/O Callback Example): Fix typos, add timeout to select,
 7520 	and initialize mutex as recursive.
 7521 
 7522 2016-09-21  Andreas Stieger  <astieger@suse.com>
 7523 
 7524 	cpp: Avoid missing returns in non-void functions.
 7525 	+ commit ae324b51ffa338b891387bff2657d60c1fd3ae40
 7526 	* lang/cpp/src/context.cpp
 7527 	  (Context::signaturePolicyURL): return nullptr on default
 7528 	  (to_tofu_policy_t): add default case for unknown
 7529 	* lang/cpp/src/key.cpp
 7530 	  (Key::primaryFingerprint): return nullptr on default
 7531 	* lang/cpp/src/tofuinfo.cpp
 7532 	  (GpgME::TofuInfo::policy): add default case for unknown
 7533 
 7534 2016-09-21  Werner Koch  <wk@gnupg.org>
 7535 
 7536 	Release 1.7.0.
 7537 	+ commit e7ab75379feadcc2894d9d4cde0f16ad0044780d
 7538 	* configure.ac: Bump LT vesion to C26/A15/R0.
 7539 
 7540 	python: Create install dir.
 7541 	+ commit 936928632b02d7cc2ac645543bb03e4c94285f05
 7542 	* lang/python/Makefile.am (install-exec-local): Create dir.
 7543 
 7544 2016-09-20  Werner Koch  <wk@gnupg.org>
 7545 
 7546 	tests: Make "make -j distcheck" work in Python.
 7547 	+ commit 0763357e39d140b068ee9838a5da08be75426d9f
 7548 	* lang/python/Makefile.am (SUBDIRS): Make current dir fist.
 7549 	* lang/python/tests/Makefile.am (xcheck): Depend on pubring-stamp.
 7550 	(CLEANFILES): Remove private-keys-v1.d/gpg-sample.stamp.
 7551 	(check-local): Remove.
 7552 	(initial.py): Remove dependency.
 7553 	(./pubring-stamp): Depend on conf files and the
 7554 	private-keys-v1.d/gpg-sample.stamp file.  Also replace use of
 7555 	basename.
 7556 
 7557 	tests: Use --batch for gpg import.
 7558 	+ commit bfb6890ded99f040fe8ecf910f927a136e4acfda
 7559 	* lang/python/tests/Makefile.am (./pubring-stamp): Use --batch with
 7560 	GPG to avoid Pinentries during import when using GnuPG >= 2.1.
 7561 	Replace touch by echo.
 7562 	* tests/gpg/Makefile.am (./pubring-stamp): Ditto.
 7563 
 7564 	tests: Improve portability.
 7565 	+ commit 29207bcd3bf4de7264197db6758130375b16d9bb
 7566 	* lang/qt/tests/Makefile.am (clean-local): Avoid non-portable "--"
 7567 	* lang/python/Makefile.am (copystamp): Use well defined cp -R instead
 7568 	of cp -r.
 7569 
 7570 	build: Create swdb file.
 7571 	+ commit df7e92b4d585b7dce919c5a3aab9524f6e183cbe
 7572 	* Makefile.am (distcheck-hook): New.
 7573 	(dist-hook): s/VERSION/PACKAGE_VERSION/ for future compatibility.
 7574 
 7575 2016-09-20  Justus Winter  <justus@g10code.com>
 7576 
 7577 	python: Fix detection of Python available versions.
 7578 	+ commit ef99b74eb12463db7da5806a316e3b55f8097c5c
 7579 	* configure.ac: Test for 'PYTHON_VERSION' as 'AX_PYTHON_DEVEL' sets
 7580 	'PYTHON' but clears the former.
 7581 
 7582 2016-09-19  Andre Heinecke  <aheinecke@intevation.de>
 7583 
 7584 	core: Remove moc artifact.
 7585 	+ commit e3c35147d6adb754d4eb0781a54af2a8f0803663
 7586 	* src/moc_kdpipeiodevice.cpp: Removed.
 7587 	* src/Makefile.am (EXTRA_DIST): Remove moc_kdpipeiodevice.cpp.
 7588 
 7589 	qt: Improve README.
 7590 	+ commit 3f92253e0e476d77aa11463bc51ade367985855f
 7591 	* lang/qt/README: Add more content. Clearly note license difference.
 7592 
 7593 	cpp: Improve README.
 7594 	+ commit 66febf9942c321d30b8770f6aa6cd6ce2315d34f
 7595 	* lang/cpp/README: Add more content, move license to bottom.
 7596 
 7597 	qt: Add debug output for testTofuPolicy.
 7598 	+ commit d438cb59a068b6f076e6bd70d3a2c46bc05ccb5c
 7599 	* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): Add
 7600 	debug output.
 7601 
 7602 2016-09-19  Ben Kibbey  <bjk@luxsci.net>
 7603 
 7604 	core: Check for GPG_TTY as well as DISPLAY.
 7605 	+ commit 9d62bacac7826cb73bb18fac7268f3d2df662d7b
 7606 	* src/engine-assuan.c (llass_new): Update --ttyname from GPG_TTY.
 7607 	* src/engine-g13.c (g13_new): Ditto.
 7608 	* src/engine-gpg.c (gpg_new): Ditto.
 7609 	* src/engine-uiserver.c (uiserver_new): Ditto.
 7610 	* src/engine-gpgsm.c (gpgsm_new): Ditto.
 7611 
 7612 2016-09-16  Andre Heinecke  <aheinecke@intevation.de>
 7613 
 7614 	qt: Add test for setting tofu policy.
 7615 	+ commit a8ff34fc3025af4079cede7f8f9fdf40189b8638
 7616 	* lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): New.
 7617 
 7618 	qt: Add job for tofupolicy.
 7619 	+ commit 77aecfb5c97cea1a99f1ff627748cf71767bac5c
 7620 	* lang/qt/src/job.cpp, lang/qt/src/protocol.h,
 7621 	lang/qt/src/protocol_p.h: Register job.
 7622 	* lang/qt/src/qgpgmetofupolicyjob.cpp,
 7623 	lang/qt/src/qgpgmetofupolicyjob.h,
 7624 	lang/qt/src/tofupolicyjob.h: New.
 7625 	* lang/qt/src/Makefile.am: Update accordingly.
 7626 
 7627 	cpp: Add support for gpgme_op_tofu_policy.
 7628 	+ commit 4d384d7bfef044094695271576ca233625bb520a
 7629 	* src/context.cpp, src/context.h (setTofuPolicy, setTofuPolicyStart):
 7630 	New.
 7631 
 7632 	cpp: Declare sizes of tofu-info enums.
 7633 	+ commit 32baac8cdec6fee51bdfc3c55cb2ee141e086df4
 7634 	* lang/cpp/src/tofuinfo.h (Policy, Validity): Declare sizes.
 7635 
 7636 2016-09-16  Werner Koch  <wk@gnupg.org>
 7637 
 7638 	cpp: Silence use of deprecated function warning.
 7639 	+ commit bd24db313d860ae46d37776dcf1067455d1b9880
 7640 	* lang/cpp/src/context.cpp (GpgME): Use pragma to silence wardning.
 7641 
 7642 	core: Document the version a function has been deprecated.
 7643 	+ commit b615316168f4d33311909d4056b236d13c69488f
 7644 	* src/gpgme.h.in (_GPGME_DEPRECATED): Change to take versio numbers
 7645 	for documentation.  Change all places.
 7646 	(_GPGME_DEPRECATED_OUTSIDE_GPGME): Ditto.
 7647 	* lang/python/gpgme-h-clean.py: Adjust RE.
 7648 
 7649 	core: Map GPGME_STATUS_EOF to the empty string.
 7650 	+ commit 3d6340e8c59ee11a95e03fb213ad9b228be47833
 7651 	* src/status-table.c (_gpgme_status_to_string): Return "" for EOF.
 7652 	* src/engine-gpg.c (read_status): Ditto.  The old code accidently used
 7653 	GPGME_STATUS_EOF which is the integer 0 and neiteyr NULL nor a string.
 7654 
 7655 2016-09-16  Justus Winter  <justus@g10code.com>
 7656 	    Kai Michaelis  <kai@gnupg.org>
 7657 
 7658 	python: Release the GIL during calls into GPGME.
 7659 	+ commit 6af7bee076bacbc0cdfe7de342bce43ca5671b3b
 7660 	* lang/python/helpers.c (pyme_raise_callback_exception): Re-acquire
 7661 	the Global Interpreter Lock.
 7662 	(pyPassphraseCb, pyme_set_passphrase_cb, pyProgressCb,
 7663 	pyme_set_progress_cb, pyStatusCb, pyme_set_status_cb,
 7664 	_pyme_interact_cb, pyDataReadCb, pyDataWriteCb, pyDataSeekCb,
 7665 	pyDataReleaseCb, pyme_data_new_from_cbs, _pyme_assuan_data_cb,
 7666 	_pyme_assuan_inquire_cb, _pyme_assuan_status_cb): Likewise.
 7667 	* lang/python/setup.py.in: Make 'gpgme-config' emit the correct
 7668 	cflags, and SWIG generate code to release the GIL before calling us.
 7669 
 7670 2016-09-16  Justus Winter  <justus@g10code.com>
 7671 
 7672 	python: Adapt to 'gpgme_op_interact'.
 7673 	+ commit a458e7fe2006d92bd5a838e2747fb66bbac4b1b8
 7674 	* lang/python/examples/inter-edit.py: Update example.
 7675 	* lang/python/gpgme.i (gpgme_edit_cb_t): Turn into
 7676 	'gpgme_interact_cb_t'.
 7677 	* lang/python/helpers.c (_pyme_edit_cb): Turn into
 7678 	'_pyme_interact_cb_t'.
 7679 	* lang/python/private.h (_pyme_edit_cb): Likewise.
 7680 	* lang/python/pyme/constants/__init__.py: Replace numeric status codes
 7681 	with the keywords.
 7682 	* lang/python/pyme/constants/status.py: Likewise.
 7683 	* lang/python/pyme/core.py (Context.interact): New method.
 7684 	(Context.op_edit): Deprecate, update docstring, implement using
 7685 	Context.interact.
 7686 	* lang/python/tests/t-edit.py: Test both interfaces.
 7687 
 7688 2016-09-16  Werner Koch  <wk@gnupg.org>
 7689 
 7690 	core: Remove stub to try implementing gpg < 2.1 support for createkey.
 7691 	+ commit 268e251b802cc7c19831722d7e3a52777a0f412f
 7692 	* src/engine-gpg.c (gpg_createkey_legacy): Remove.
 7693 	(gpg_genkey): Remove call.
 7694 
 7695 	core: Fix setting og the verification result.
 7696 	+ commit 1f9641dd0fb08e4a3df3b507b974a3f78887920f
 7697 	* src/verify.c (parse_new_sig): Proberly handle the RC in an ERRSIG
 7698 	status.
 7699 
 7700 2016-09-15  Werner Koch  <wk@gnupg.org>
 7701 
 7702 	core: New function gpgme_op_interact, deprecate gpgme_op_edit.
 7703 	+ commit ed1f2700a73060e2615697491ea9e49ded4293e6
 7704 	* src/gpgme.h.in (gpgme_interact_cb_t): New.
 7705 	(GPGME_INTERACT_CARD): New.
 7706 	(gpgme_op_interact_start, gpgme_op_interact): New.
 7707 	* src/libgpgme.vers, src/gpgme.def: Add new functions.
 7708 	* src/edit.c (op_data_t): Rename fnc to fnc_old and change users.  Add
 7709 	fnc.
 7710 	(edit_status_handler): Call old or new callback.
 7711 	(command_handler): Ditto.
 7712 	(interact_start): New.
 7713 	(gpgme_op_interact_start, gpgme_op_interact_start): New.
 7714 	* src/status-table.c (_gpgme_status_to_string): New.
 7715 
 7716 	* tests/gpg/t-edit.c (edit_fnc): Rename to interact_fnc and change
 7717 	type of STATUS.  Use gpgme_io_writen.
 7718 	(main): s/gpgme_op_edit/gpgme_op_interact/.
 7719 
 7720 	core: Minor change of the gpgme_op_edit semantics.
 7721 	+ commit d2b72d3cc19fe2a7d548dac38d55e069e0c9a904
 7722 	* src/edit.c (command_handler): Handle special error code.
 7723 	* src/engine-gpg.c (read_status): Ditto.
 7724 	* src/engine-gpgsm.c (status_handler): Ditto.
 7725 	* src/engine-uiserver.c (status_handler): Ditto.
 7726 	* src/util.h (GPG_ERR_FALSE): Define for older libgpg-error versions.
 7727 
 7728 2016-09-14  Werner Koch  <wk@gnupg.org>
 7729 
 7730 	core: New function gpgme_op_tofu_policy.
 7731 	+ commit 7c37719d79345a665ec2f4570e3f257033b58c62
 7732 	* src/gpgme.h.in (gpgme_op_tofu_policy_start): New function.
 7733 	(gpgme_op_tofu_policy): New function.
 7734 	* src/libgpgme.vers, src/gpgme.def: Add new functions.
 7735 	* src/tofupolicy.c: New.
 7736 	* src/Makefile.am (main_sources): Add that file.
 7737 	* src/context.h (ctx_op_data_id_t): Add OPDATA_TOFU_POLICY.
 7738 	* src/engine.c (_gpgme_engine_op_tofu_policy): New.
 7739 	* src/engine-backend.h (engine_ops): Add funcptr 'tofu_policy'.
 7740 	Adjust all engine initializations.
 7741 	* src/engine-gpg.c (gpg_tofu_policy): New.
 7742 	(_gpgme_engine_ops_gpg): Register this function.
 7743 
 7744 	* tests/run-tofu.c: New.
 7745 	* tests/Makefile.am (noinst_PROGRAMS): Add it.
 7746 
 7747 	core: Defer implementation of gpgme_op_createkey with gpg < 2.1.
 7748 	+ commit d79dcb78d867aaf55b85aea117c4ae6035a1531a
 7749 	* src/engine-gpg.c (gpg_createkey_legacy): Mark unused variables.
 7750 
 7751 	core: New function gpgme_op_keysign.
 7752 	+ commit bfd2bd0ccc9fed8284ef932ac788d4ca0dba0336
 7753 	* src/gpgme.h.in (gpgme_op_keysign_start, gpgme_op_keysign): New.
 7754 	(GPGME_KEYSIGN_LOCAL): New.
 7755 	(GPGME_KEYSIGN_LFSEP): New.
 7756 	(GPGME_KEYSIGN_NOEXPIRE): New.
 7757 	* src/context.h (ctx_op_data_id_t): Add OPDATA_KEYSIGN.
 7758 	* src/keysign.c: New.
 7759 	* src/Makefile.am (main_sources): Add keysig.
 7760 	* src/libgpgme.vers, src/gpgme.def: Add gpgme_op_keysign_start.
 7761 	* src/engine.c (_gpgme_engine_op_keysign): New.
 7762 	* src/engine-backend.h (engine_ops): Add 'keysign' and adjust all
 7763 	engine initializers.
 7764 	* src/engine-gpg.c (_add_arg): Add args PREFIX and ARGLEN and change
 7765 	callers to set them.
 7766 	(add_arg_pfx): New.
 7767 	(add_arg_len): New.
 7768 	(gpg_keysign): New.
 7769 	(_gpgme_engine_ops_gpg): Set keysign to gpg_keysign.
 7770 	* tests/run-keysign.c: New.
 7771 	* tests/Makefile.am (noinst_PROGRAMS): Add run-keysign.
 7772 
 7773 2016-09-14  Justus Winter  <justus@g10code.com>
 7774 
 7775 	python: Clarify that we support Python 2.7 too.
 7776 	+ commit 594c3b8b052e60b6be77ed532fe46549133a9726
 7777 	* lang/python/README: Use 'Python' instead of 'Python 3'.
 7778 	* lang/python/pyme/version.py.in: Likewise.
 7779 	* lang/python/setup.py.in: Add classifier for 2.7, drop 3 only.
 7780 
 7781 	python: Trim imports.
 7782 	+ commit 4011b2b2a1050f0837e989da3db9b5459e71ccd6
 7783 	* lang/python/examples/encrypt-to-all.py: Drop unused import of 'os'.
 7784 	* lang/python/examples/signverify.py: Likewise.
 7785 	* lang/python/examples/simple.py: Likewise.
 7786 	* lang/python/examples/verifydetails.py: Likewise.
 7787 
 7788 	python: Improve error handling.
 7789 	+ commit 44d18200d5ffe8691e18d93ce6c534660702b982
 7790 	* lang/python/gpgme.i (gpgme_engine_info_t): Improve error handling.
 7791 
 7792 	python: Adapt to TOFU changes.
 7793 	+ commit f6cd560ca74248dd719a37cfb34386148727a92d
 7794 	* lang/python/pyme/results.py (TofuInfo): Drop.
 7795 	(Signature): The TOFU information moved to the key.
 7796 
 7797 	python: Improve build system integration.
 7798 	+ commit 99db351288d5bb075f124ef10e540e25bc36b70a
 7799 	* configure.ac: Try to compile a Python module for each version.
 7800 	* m4/m4_ax_swig_python.m4: Drop unused file.
 7801 
 7802 2016-09-14  Werner Koch  <wk@gnupg.org>
 7803 
 7804 	core: New function gpgme_op_revuid.
 7805 	+ commit c943380b7a2cc9b32f81c22224fc6f92e8ea8469
 7806 	* src/engine.h (GENKEY_EXTRAFLAG_REVOKE): New.
 7807 	* src/genkey.c (adduid_start): Rename to addrevuid_start.  Add arg
 7808 	REVOKE and pass it as extraflags.  Remove useless ARMOR extraflag.
 7809 	Adjust callers.
 7810 	(gpgme_op_revuid_start, gpgme_op_revuid): New.
 7811 	* src/gpgme.def, src/libgpgme.vers: Add them.
 7812 
 7813 	* tests/run-genkey.c: Add option --revuid.
 7814 
 7815 	core: Change a parameter for the engine's genkey function.
 7816 	+ commit c22f5884c50557f54704f4becc5a8c1ee0749547
 7817 	* src/engine.h (GENKEY_EXTRAFLAG_ARMOR): New.
 7818 	* src/engine-backend.h (engine_ops): Rename USE_ARMOR in genkey to
 7819 	EXTRAFLAGS.
 7820 	* src/engine.c (_gpgme_engine_op_genkey): Ditto.
 7821 	* src/engine-gpg.c (gpg_createkey_from_param): Ditto and test the
 7822 	flags.
 7823 	(gpg_createkey_legacy): Ditto.
 7824 	(gpg_createkey): Ditto.
 7825 	(gpg_addkey): Ditto.
 7826 	(gpg_genkey): Ditto.
 7827 
 7828 2016-09-14  Justus Winter  <justus@g10code.com>
 7829 
 7830 	python: Build for both Python2 and Python3.
 7831 	+ commit 24b4162d908b48a92660020be0b776c2874fb05a
 7832 	* NEWS: Update.
 7833 	* configure.ac: Check for multiple Python versions.
 7834 	* lang/python/Makefile.am: Build and install for both Python versions.
 7835 	* lang/python/tests/Makefile.am: Test both versions.
 7836 	* lang/python/tests/run-tests.py: New test runner.
 7837 
 7838 2016-09-14  Werner Koch  <wk@gnupg.org>
 7839 
 7840 	core: New function gpgme_op_adduid.
 7841 	+ commit 3210f3e4725afc5ee2810b9a1361918ec9c42ca4
 7842 	* src/genkey.c: Replace most error codes GPG_ERR_INV_VALUE by
 7843 	GPG_ERR_INV_ARG.
 7844 	(struct op_data_t): Add field UIDMODE.
 7845 	(genkey_status_handler): Use UIDMODE.
 7846 	(adduid_start): New.
 7847 	(gpgme_op_adduid_start, gpgme_op_adduid): New.
 7848 	* src/gpgme.def, src/libgpgme.vers: Add them.
 7849 	* tests/run-genkey.c: Add option --adduid.
 7850 
 7851 	core: New function gpgme_op_createsubkey.
 7852 	+ commit cc353701b0fde4c811ddc1e9a91b852dfe9f4e06
 7853 	* src/genkey.c (createsubkey_start): New.
 7854 	(gpgme_op_createsubkey_start, gpgme_op_createsubkey): New.
 7855 	* src/gpgme.def, src/libgpgme.vers: Add them.
 7856 	* src/engine-gpg.c (gpg_createkey): Factor some code out to ...
 7857 	(gpg_add_algo_usage_expire): new.
 7858 	(gpg_addkey): Implement.
 7859 	* tests/run-genkey.c: Add option --addkey.
 7860 
 7861 2016-09-13  Werner Koch  <wk@gnupg.org>
 7862 
 7863 	core: Use const char * where appropriate.
 7864 	+ commit 51f9acbca935c5287d9a28205037b0923e9a65f5
 7865 
 7866 
 7867 	core: Cast away the common const problem with spawn and argv.
 7868 	+ commit 686a065f639ef006e33c164e282d787bcd169754
 7869 	* src/dirinfo.c (read_gpgconf_dirs): Use a cast to assignd to ARGV.
 7870 
 7871 	core: Fix condition-always-true warning in trace macro.
 7872 	+ commit 3009e6162eaa39adaaf45f06fc4f88c7153360ee
 7873 	* src/data-compat.c (old_user_read): Cast AMT.
 7874 
 7875 	core: Mark unused function args.
 7876 	+ commit 4a200146b602349eebb4eac2e102357748d7ba5b
 7877 
 7878 
 7879 	tests: Mark lots of unused vars and fix const mismatches.
 7880 	+ commit 9064eebdc05e7149c2c8cc899fbd7874622fb769
 7881 
 7882 
 7883 	tests: Use gpgme_io_write in passhrase callbacks.
 7884 	+ commit 4491ef0a9a15d3b307d1ade37ff620ef9fcb2478
 7885 	* tests/gpg/t-support.h (passphrase_cb): Use gpgme_io_write.
 7886 	* tests/gpgsm/t-support.h (passphrase_cb): Ditto.
 7887 	* tests/run-support.h (passphrase_cb): Ditto.
 7888 
 7889 	core: Do not pass const char* to functions taking a char*.
 7890 	+ commit 3972f476e00f27d41a0aeabcb66600905b6737bd
 7891 
 7892 
 7893 	build: Use more compiler warnings.
 7894 	+ commit 0510591c36591816a6ff3f87a04451001b7ed46f
 7895 	* configure.ac: Add useful compiler warnings.
 7896 
 7897 	core: New function gpgme_op_create_key.
 7898 	+ commit 00c501d296da287bec2fd6a0e3912abfbde90a98
 7899 	* src/engine-backend.h (engine_ops): Change prototype of genkey.
 7900 	* src/engine-gpgsm.c (gpgsm_genkey): Change accordingly.
 7901 	* src/engine-gpg.c (gpg_genkey): Change it to a dispatcher.
 7902 	(gpg_createkey_from_param): New for the old functionality.
 7903 	(gpg_createkey_legacy): New.  Stub for now.
 7904 	(gpg_createkey): New.
 7905 	(gpg_addkey): New.  Stub for now.
 7906 	(gpg_adduid): New.  Stub for now.
 7907 	* src/engine.c (_gpgme_engine_op_genkey): Add new args.
 7908 	* src/genkey.c (op_data_t): Add field ERROR_CODE.
 7909 	(parse_error): New.
 7910 	(genkey_status_handler): Parse ERROR status line.
 7911 	(genkey_start): Use NULL/0 for the new args.
 7912 	(createkey_start): New.
 7913 	(gpgme_op_createkey_start, gpgme_op_createkey): New.
 7914 	* src/gpgme.def, src/libgpgme.vers: Add gpgme_op_createkey_start and
 7915 	gpgme_op_createkey.
 7916 	* src/gpgme.h.in (_gpgme_op_genkey_result): Add fields PUBKEY and
 7917 	SECKEY.
 7918 	(GPGME_CREATE_SIGN): New.
 7919 	(GPGME_CREATE_ENCR): New.
 7920 	(GPGME_CREATE_CERT): New.
 7921 	(GPGME_CREATE_AUTH): New.
 7922 	(GPGME_CREATE_NOPASSWD): New.
 7923 	(GPGME_CREATE_SELFSIGNED): New.
 7924 	(GPGME_CREATE_NOSTORE): New.
 7925 	(GPGME_CREATE_WANTPUB): New.
 7926 	(GPGME_CREATE_WANTSEC): New.
 7927 	(GPGME_CREATE_FORCE): New.
 7928 
 7929 	* tests/run-genkey.c: New.
 7930 	* tests/Makefile.am (noinst_PROGRAMS): Add it.
 7931 
 7932 2016-09-13  Justus Winter  <justus@g10code.com>
 7933 
 7934 	python: Handle slight differences between Python 2 and 3.
 7935 	+ commit 70a3be27a509a1b5ea7372bee93d83c5019427ff
 7936 	* lang/python/helpers.c (pyDataWriteCb): Handle Python integers being
 7937 	returned on Python 2.
 7938 	(pyDataSeekCb): Likewise.
 7939 	* lang/python/pyme/core.py (Data.__init__): Fix testing for string
 7940 	argument.
 7941 	(Data.new_from_filepart): Likewise.
 7942 	* lang/python/pyme/util.py (is_a_string): New function.
 7943 	* lang/python/tests/t-encrypt-large.py (read_cb): Force evaluation of
 7944 	generator.
 7945 	* lang/python/tests/t-idiomatic.py: Partly skip test on Python 2.
 7946 	* lang/python/tests/t-verify.py (check_result): Here, the difference
 7947 	between 2 and 3 really matters.  We cannot change the char *
 7948 	conversion in Python 2 without breaking all existing applications, and
 7949 	using bytestrings in Python 3 would be very inconvenient.
 7950 
 7951 	python: Fix types and error handling.
 7952 	+ commit 4abff7d750a1abf5b388a4c87ec321fc3e4aed10
 7953 	* lang/python/helpers.c (_pyme_edit_cb): Drop the const.
 7954 	(_pyme_assuan_{data,inquire,status}_cb): Fix error handling.
 7955 
 7956 2016-09-12  Justus Winter  <justus@g10code.com>
 7957 
 7958 	python: Avoid Python3-only form of super().
 7959 	+ commit c0c50318bd8ef6c8119ad9fdc53ad9087ded4c32
 7960 	* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Use more
 7961 	compatible form of super.
 7962 	(GpgmeWrapper.__setattr__): Likewise.
 7963 	(Context.__init__): Likewise.
 7964 	(Data.__init__): Likewise.
 7965 
 7966 	python: Make type translation compatible with Python 2.7.
 7967 	+ commit 1d5bbbf1185a0d1f82750f10b69dad3999f7ef4c
 7968 	* lang/python/gpgme.i: Avoid functions not available in Python 2.7.
 7969 	* lang/python/helpers.c: Likewise.
 7970 
 7971 	python: Avoid hardcoding the interpreter.
 7972 	+ commit 70999d81618b3d3ae6b61a43be2ce703ad284275
 7973 	* lang/python/setup.py.in: Avoid hardcoding the interpreter.
 7974 
 7975 	python: Do not rely on subprocess.DEVNULL.
 7976 	+ commit b48b852a846129914d6c63ec7b47388cdcf6acca
 7977 	* lang/python/setup.py.in: Do not rely on subprocess.DEVNULL.
 7978 
 7979 	tests: Fix version comparison.
 7980 	+ commit dfd99ab50c3bc1d6745b6f682791e4885e8d8a9a
 7981 	* tests/gpg/t-sig-notation.c: Fix version comparison.
 7982 
 7983 	tests: Make signature notation test compatible with older GnuPGs.
 7984 	+ commit a0263ad282d350b548cbbc27e96f196d9217d040
 7985 	* lang/python/tests/t-sig-notation.py: Only check the critical flag
 7986 	when GnuPG >= 2.1.13 is used.
 7987 	* tests/gpg/t-sig-notation.c: Likewise.
 7988 
 7989 2016-09-12  Andre Heinecke  <aheinecke@intevation.de>
 7990 
 7991 	qt: Fix some includes.
 7992 	+ commit d480f6b701894f78f3f4016d69c0e3b87939930b
 7993 	* lang/qt/src/qgpgmekeyformailboxjob.cpp: Explicitly include
 7994 	QStringList.
 7995 	* lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp: Move
 7996 	includes into impl. Explicitly include QDir.
 7997 
 7998 2016-09-12  Justus Winter  <justus@g10code.com>
 7999 
 8000 	qt: Fix tofu test.
 8001 	+ commit 7b9e6ea376d04fb4694ed22369abaae92ce3ec86
 8002 	* lang/qt/tests/t-tofuinfo.cpp: Adjust member names.
 8003 
 8004 2016-09-07  Werner Koch  <wk@gnupg.org>
 8005 
 8006 	core,cpp: Extend the TOFU information.
 8007 	+ commit 120b14783c0312d782dc08ce4949a6209d5ccc7b
 8008 	* src/gpgme.h.in (struct _gpeme_tofu_info): Rename FIRSTSEEN to
 8009 	SIGNFIRST and LASTSEEN to SIGNLAST.  Add ENCRFIST and ENCRLAST.
 8010 	* src/keylist.c (parse_tfs_record): Parse to ENCRFIRST and ENCRLAST.
 8011 	* src/verify.c (parse_tofu_stats): Ditto.
 8012 	* tests/run-keylist.c (main): Adjust and print encrypt stats.
 8013 	* tests/run-verify.c (print_result): Ditto.
 8014 
 8015 	* lang/cpp/src/tofuinfo.h (TofuInfo): Rename firstSeen to signFirst
 8016 	and lastSeen to signLast.  Add encrCount, encrFirst and encrLast.
 8017 	* lang/cpp/src/tofuinfo.cpp (encrCount, encrFirst, encrLast): New.
 8018 
 8019 2016-09-06  Andre Heinecke  <aheinecke@intevation.de>
 8020 
 8021 	tests: Set passphrase cb in t-encrypt-mixed.
 8022 	+ commit 151da95470f174dc770b2111890ad650a1697276
 8023 	* tests/gpg/t-encrypt-mixed.c (main): Set passphrase cb.
 8024 
 8025 	core: Check for gpg version for loopback mode.
 8026 	+ commit e8cb143c8337b122a6790f769ddb0a97c4baccd3
 8027 	* src/engine-gpg.c (build_argv): Check for version 2.1.0
 8028 	before adding pinentry-mode.
 8029 
 8030 	core: Fix passphrase cb for mixed sym encrypt.
 8031 	+ commit efe7e11dfa2ff911b477ce748292e53e7a50347e
 8032 	* src/encrypt.c (encrypt_start): Handle SYMMETRIC flag.
 8033 	* src/encrypt-sign.c (encrypt_sign_start): Ditto.
 8034 
 8035 2016-09-05  Andre Heinecke  <aheinecke@intevation.de>
 8036 
 8037 	qt: Clarify comment and strings in tofuinfo test.
 8038 	+ commit ab3fbdbd05cfd1b039bb5b1eb3941fbb4bcf6307
 8039 	* lang/qt/tests/t-tofuinfo.cpp (testTofuSignCount)
 8040 	(testTofuKeyList): Ensure distinct messages. Clarify comment.
 8041 
 8042 	qt: Enable signcount checks in tofuinfo test.
 8043 	+ commit 965b842fad6ec6fbd8902f3a32119abcd0728fe4
 8044 	* lang/qt/tests/t-tofuinfo.cpp: Enable checks for signcount.
 8045 
 8046 	cpp: Add convenience update function to a key.
 8047 	+ commit 79439e76cc5b302222874a1f9e93665cb12801ac
 8048 	* lang/cpp/src/key.cpp (Key::update): New.
 8049 	* lang/cpp/src/key.h: Update accordingly.
 8050 
 8051 	cpp: Add ostream operators for key and uid.
 8052 	+ commit 444d85ace0dddff5c511961927052d9946035b00
 8053 	* lang/cpp/src/key.cpp (Key, UserID): Add ostream operator.
 8054 	* lang/cpp/src/key.h: Update accordingly.
 8055 
 8056 	qt: Add missing header redirection.
 8057 	+ commit 8a39a595eb802b80a6ad756b0ee8939e9733e86f
 8058 	* lang/qt/src/keyformailboxjob.h,
 8059 	lang/qt/src/qgpgmekeyformailboxjob.h: Fix includes.
 8060 
 8061 	qt: Include cpp before core directory.
 8062 	+ commit e3a4697894cc5a93c295e84bb10c743bc7fdc87e
 8063 	* lang/qt/src/Makefile.am (AM_CPPFLAGS): Include cpp before core.
 8064 
 8065 2016-08-25  Andre Heinecke  <aheinecke@intevation.de>
 8066 
 8067 	qt: Fix 2.1 t-support copy.
 8068 	+ commit 05570bd3d05fb3d7934c1122f0d5ef5fdbaa7974
 8069 	* lang/qt/src/t-support.cpp (copyKeyring): Fix seckey copy.
 8070 
 8071 	qt: Fix and extend TofuInfo test.
 8072 	+ commit 9fc72e928bf2cf239bd3b0facdf33ceb1acc975b
 8073 	* lang/qt/tests/t-tofuinfo.cpp: Delete executed jobs.
 8074 	(testTofuKeyList): New.
 8075 	(testSupported): Activate for 2.1.16
 8076 	(signAndVerify): Disable sigcount tests.
 8077 
 8078 	qt: Fix keyring copy in tests.
 8079 	+ commit c875f07e559a7c53fc173b4c3f9f5715f3fbb8f8
 8080 	* lang/qt/test/t-encrypt.cpp,
 8081 	lang/qt/test/t-tofuinfo.cpp: Assert on copy failure.
 8082 	* lang/qt/test/t-support.cpp (copyKeyrings): Fix path.
 8083 
 8084 	qt: Add generic flag support for keylistjobs.
 8085 	+ commit 4e37d0bb1255558ce20e1a5ac83a2d06a37f8b0b
 8086 	* lang/qt/src/keylistjob.h (addMode): New.
 8087 	* lang/qt/src/qgpgmekeylistjob.h (addMode): New.
 8088 	* lang/qt/src/qgpgmekeylistjob.cpp (addMode: New.
 8089 
 8090 	qt: Ensure that current src dir is included first.
 8091 	+ commit 5a92cc96da183ebb19867a2a910f53ba41e76ae9
 8092 	* lang/qt/src/Makefile.am: Reorder include directives.
 8093 
 8094 	cpp: Add WithTofu Keylist Mode.
 8095 	+ commit f311b92ceaedb12c9e00a722b6b47bbe6b50871e
 8096 	* lang/cpp/src/context.cpp: Handle WithTofu.
 8097 	* lang/cpp/src/global.h (KeyListMode): Add WithTofu.
 8098 	* lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Handle WithTofu.
 8099 
 8100 	qt: Fix tofuinfo test when gpg is gpg2.
 8101 	+ commit 053e6e0a7b8ea38ad9d4160c84814867bbb9fcf6
 8102 	* lang/qt/tests/t-support.cpp (QGpgMETest::copyKeyrings): New helper.
 8103 	* lang/qt/tests/t-support.h: Declare.
 8104 	* lang/qt/tests/t-encrypt.cpp: use it
 8105 	* lang/qt/tests/t-tofuinbo.cpp: ditto.
 8106 
 8107 	qt: Remove unused variable in test.
 8108 	+ commit f08904b810d77d87c66d9c7875c4e7f2bde5dd92
 8109 	* t-wkspublish.cpp (testWKSPublishCreate): Remove context.
 8110 
 8111 	qt: Add test for wkspublishjob.
 8112 	+ commit df04b232b8897f030534f8c3fbc87064edf8ae7d
 8113 	* lang/qt/tests/t-wkspublish.cpp: New.
 8114 	* lang/qt/tests/Makefile.am: Update accordingly.
 8115 
 8116 	qt: Add WKSPublishJob.
 8117 	+ commit 94420b05775122b25885c66ac67f77c59d01644d
 8118 	* lang/qt/src/Makefile.am: Add new files.
 8119 	* lang/qt/src/job.cpp: Include moc / subclass stub.
 8120 	* lang/qt/src/protocol.h: Add virtual for new job.
 8121 	* lang/qt/src/protocol_p.h: Add job.
 8122 	* lang/qt/src/wkspublishjob.h: Interface for WKSPublishJob.
 8123 	* lang/qt/src/qgpgmewkspublishjob.cpp,
 8124 	lang/qt/src/qgpgmewkspublishjob.h: New.
 8125 
 8126 	Cpp: Change firstSeen / lastSeen return values.
 8127 	+ commit de7b67f9b2e6bd43a036fa0bcc6a8ca4f5b10986
 8128 	* lang/cpp/src/tofuinfo.cpp,
 8129 	lang/cpp/src/tofuinfo.h (TofuInfo::firstSeen, TofuInfo::lastSeen):
 8130 	Change return values to unsigned long and update doc.
 8131 
 8132 	Cpp: Add wrapper for gpgme_get_dirinfo.
 8133 	+ commit abcd9a283ee8f81870622c8e1dbdc7aad38c0358
 8134 	* lang/cpp/src/context.cpp (dirInfo): New.
 8135 	* lang/cpp/src/global.h (dirInfo): New.
 8136 
 8137 	Cpp: Add support for spawn engine.
 8138 	+ commit ece8b02a839d6fc566fea7b6e59fabff164f6cf5
 8139 	* lang/cpp/src/context.cpp (Context::spawn, Context::spawnAsync): New.
 8140 	* lang/cpp/src/context.h: Add prototypes.
 8141 	(SpawnFlags): New.
 8142 	* lang/cpp/src/global.h (SpawnEngine): Added.
 8143 
 8144 2016-08-25  Werner Koch  <wk@gnupg.org>
 8145 
 8146 	core: Add GPGME_KEYLIST_MODE_WITH_TOFU.
 8147 	+ commit 9ee103957e4136337b92d238283f8ef30fd4a7c5
 8148 	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_TOFU): New.
 8149 	* src/engine-gpg.c (gpg_keylist_build_options): Use that.
 8150 	* src/keylist.c: Include limits.h.
 8151 	(parse_tfs_record): New.
 8152 	(keylist_colon_handler): Support TFS record.
 8153 	* tests/run-keylist.c: Include time.h.
 8154 	(isotimestr): New.
 8155 	(main): Add option --tofu.  Print TOFU info.
 8156 	* tests/run-verify.c: Include time.h.
 8157 	(isotimestr): New.
 8158 	(print_result): Use isotimestr for TOFU dates.
 8159 
 8160 2016-08-24  Werner Koch  <wk@gnupg.org>
 8161 
 8162 	core: Adjust for TOFU_STATS change in gnupg 2.1.16.
 8163 	+ commit 38798fee5b539d6153a8a7856152959412ee59b5
 8164 	* src/gpgme.h.in (_gpgme_tofu_info): Change 'firstseen' and 'lastseen'
 8165 	to a timestamp value.
 8166 	* src/verify.c (parse_tofu_stats): Do not cap these values at UINT_MAX.
 8167 
 8168 	core: Set the 'encrcount' field in gpgme_tofu_info_t.
 8169 	+ commit 1eefc2d43c0adb2ce516f8e3509ace2fb562e401
 8170 	* src/verify.c (parse_tofu_stats): Set ENCRCOUNT field.
 8171 
 8172 	cpp: Get rid of AssuanResult due to its deprecation.
 8173 	+ commit e20b0f0201543834f15c5d50cd3b2ece69a35d70
 8174 	* lang/cpp/src/assuanresult.cpp: Remove.
 8175 	* lang/cpp/src/assuanresult.h: Remove.
 8176 	* lang/cpp/src/Makefile.am: Remove these files.
 8177 	* lang/cpp/src/context.cpp: Remove header assuanresult.h
 8178 	(assuanTransact): Change return type to Error.  Use
 8179 	gpgme_op_assuan_transact_ext.
 8180 	(startAssuanTransaction): Change return type to Error.
 8181 	(assuanResult): Remove
 8182 	* lang/cpp/src/context.h (assuanResult): Adjust for changes.
 8183 
 8184 2016-08-24  Andre Heinecke  <aheinecke@intevation.de>
 8185 
 8186 	Qt: Adapt (disabled) tofuinfo test to new API.
 8187 	+ commit d2e40fb7adf667f3e2d2457ee4c646ea4d4d88b3
 8188 	* lang/qt/tests/t-tofuinfo.cpp: Switch to UID based API.
 8189 
 8190 	Cpp: Add Key to signature.
 8191 	+ commit 7c5a4974b71c30e824cbfcb3a0a70064e5ed5adb
 8192 	* lang/cpp/src/verificationresult.cpp,
 8193 	lang/cpp/src/verificationresult.h (Signature::key): New.
 8194 
 8195 	Cpp: Use fpr field for primaryFingerprint.
 8196 	+ commit 40ea1c85773cbe324557c34b3a4282f609fcdaf6
 8197 	* lang/cpp/src/key.cpp (Key::primaryFingerprint): Return
 8198 	fpr value if available.
 8199 
 8200 2016-08-23  Andre Heinecke  <aheinecke@intevation.de>
 8201 
 8202 	Cpp: Move tofuinfo from signature to userid.
 8203 	+ commit 799b168243e6499ac01bf59e0656547f353a2589
 8204 	* lang/cpp/src/key.cpp (UserID::tofuInfo): New.
 8205 	* lang/cpp/src/key.h: Update accordingly.
 8206 	* lang/cpp/src/tofuinfo.cpp: Remove dropped fields.
 8207 	* lang/cpp/src/tofuinfo.h: Update accordingly.
 8208 	* lang/cpp/src/verificationresult.cpp,
 8209 	lang/cpp/src/verificationresult.h: Remove tofu info.
 8210 	* lang/qt/tests/t-tofuinfo.cpp: Disable for now.
 8211 
 8212 2016-08-23  Werner Koch  <wk@gnupg.org>
 8213 
 8214 	core: Put the protocol into a TOFU created key object.
 8215 	+ commit 2972c44bd7e97b2169dea9c4a49d9754afdae3f0
 8216 	* src/verify.c (parse_tofu_user): Add arg 'protocol' and store it in
 8217 	the KEY.
 8218 	(_gpgme_verify_status_handler): Pass protocol.
 8219 
 8220 	core: Change the way TOFU information are represented.
 8221 	+ commit be4ff75d7d5ac6ed15feb245ef3cec59b4bad561
 8222 	* src/gpgme.h.in (struct _gpgme_signature): Remove field 'tofu'.  Add
 8223 	field 'key'.
 8224 	(struct _gpgme_key): Add field 'fpr'.
 8225 	(struct _gpgme_user_id): Add field 'tofu'.
 8226 	(struct _gpgme_tofu_info): Remove fields 'address' and 'fpr'.
 8227 	* src/key.c (gpgme_key_unref): Release TOFU and FPR.
 8228 	* src/keylist.c (keylist_colon_handler): Store the fingerprint of the
 8229 	first subkey also in KEY.
 8230 	* src/verify.c (release_tofu_info): Remove.
 8231 	(release_op_data): Release KEY.
 8232 	(parse_tofu_user): Rewrite for new data structure.
 8233 	(parse_tofu_stats): Ditto.
 8234 	(parse_tofu_stats_long): Ditto.
 8235 	* tests/run-verify.c (print_result): Ditto.
 8236 	* tests/run-keylist.c (main): Print more fields.
 8237 
 8238 	core: Extend gpgme_user_id_t with 'address'.
 8239 	+ commit 3955dce06e9d056599e5ec7d40301e66b9305195
 8240 	* src/mbox-util.c, src/mbox-util.h: Adjust for use in gpgme.
 8241 	* src/Makefile.am (main_sources): Add mbox-util.
 8242 	* src/key.c (_gpgme_key_append_name): Set 'address' field of uid.
 8243 	(gpgme_key_unref): Free it.
 8244 
 8245 2016-08-22  Werner Koch  <wk@gnupg.org>
 8246 
 8247 	core: New code for parsing mail addresses.
 8248 	+ commit 26c5ba528ce1411d96655952ec48359105695c0f
 8249 	* src/mbox-util.c: New.
 8250 	* src/mbox-util.h: New.
 8251 
 8252 	core: Add new items for gpgme_get_dirinfo.
 8253 	+ commit 24e61984c9532924135c57b8ff98489a2d3bd4a3
 8254 	* src/dirinfo.c (WANT_SYSCONFDIR, WANT_LIBEXECDIR, WANT_LIBDIR): New.
 8255 	(WANT_DATADIR, WANT_LCOALEDIR, WANT_AGENT_SSH_SOCKET): New
 8256 	(WANT_DIRMNGR_SOCKET): New.
 8257 	(dirinfo): Add fields 'sysconfdir', 'bindir', 'libexecdir', 'libdir',
 8258 	'datadir', 'localedir', 'agent_ssh_socket', and 'dirmngr_socket'.
 8259 	(parse_output): Set these fields.
 8260 	(get_gpgconf_item): Return them.
 8261 	(gpgme_get_dirinfo): Likewise.
 8262 
 8263 	core: Base gpgme_get_dirinfo(uiserver-socket) on the socket dir.
 8264 	+ commit c9e7dcb100d807583d8e312da459561138231376
 8265 	* src/dirinfo.c (dirname_len): New.
 8266 	(parse_output): Change computation of UISRV_SOCKET.
 8267 
 8268 2016-08-21  Werner Koch  <wk@gnupg.org>
 8269 
 8270 	core: New commands --lang and --have-lang for gpgme-config.
 8271 	+ commit 3e60788810f93cfcd7f08e5882aff32ed7b6f831
 8272 	* configure.ac (GPGME_CONFIG_AVAIL_LANG): New ac_subst.
 8273 	* src/gpgme-config.in (avail_lang): Add commands --lang and
 8274 	--have-lang.
 8275 
 8276 2016-08-18  Andre Heinecke  <aheinecke@intevation.de>
 8277 
 8278 	core: Remove (now) useless diagnostic.
 8279 	+ commit 30f156280f18500ee522db58aecd40711c8af685
 8280 	* src/w32-io.c(_gpgme_io_spawn): Remove spawnhelper not found
 8281 	diagnostic.
 8282 
 8283 	core: Fail loudly in case w32 spawner not found.
 8284 	+ commit 9cf983b0199950c8f8cccee2cb8e45aafcba9fd1
 8285 	* src/w32-io.c (_gpgme_io_spawn): Show a message box in
 8286 	case gpgme-w32spawn.exe not found.
 8287 
 8288 2016-08-17  Andre Heinecke  <aheinecke@intevation.de>
 8289 
 8290 	Cpp: Fix some pedantic warnings.
 8291 	+ commit 64194b0f8df1afe6135cd119fd3216fc8db68033
 8292 	* lang/cpp/src/context.cpp,
 8293 	lang/cpp/src/context.h (Context::getKeysFromRecipients): Remove
 8294 	ignored / invalid const qualifier.
 8295 	* lang/cpp/src/result.h: Don't shadow error function in ctor.
 8296 
 8297 2016-08-16  Werner Koch  <wk@gnupg.org>
 8298 
 8299 	core: New global flag "require-gnupg".
 8300 	+ commit 8c09dd9989bcd434a8cb5997770cb8414b96bd5c
 8301 	* src/gpgme.c (gpgme_set_global_flag): Add flag.
 8302 	* src/engine.c (engine_minimal_version): New variable.
 8303 	(_gpgme_set_engine_minimal_version): New function.
 8304 	(gpgme_get_engine_info): Check that flag.
 8305 
 8306 	* tests/run-keylist.c (main): New option --require-gnupg.
 8307 
 8308 	core: Simplify setting of dummy versions.
 8309 	+ commit b7b0e7b5bfefd51c8092ea54f262b18aebf78128
 8310 	* src/engine.c (_gpgme_engine_info_release): Do not assert but free
 8311 	FILE_NAME.
 8312 	(gpgme_get_engine_info): Provide default for VERSION and REQ_VERSION.
 8313 	Use calloc instead of malloc.
 8314 	(_gpgme_set_engine_info): Ditto.
 8315 	* src/engine-assuan.c (llass_get_version): Return NULL.
 8316 	(llass_get_req_version): Ditto.
 8317 	* src/engine-spawn.c (engspawn_get_version): Ditto.
 8318 	(engspawn_get_req_version): Ditto.
 8319 	* src/engine-uiserver.c (uiserver_get_version): Ditto.
 8320 	(uiserver_get_req_version): Ditto.
 8321 
 8322 2016-08-12  Andre Heinecke  <aheinecke@intevation.de>
 8323 
 8324 	Qt: Add test for progress signal of encryptjob.
 8325 	+ commit 391e55411cda11446ca9de4dd0dc2b54d3e6fff5
 8326 	* lang/qt/tests/t-encrypt.cpp (testProgress): New.
 8327 
 8328 	Cpp: Provide size-hint for seekable and mem data.
 8329 	+ commit df7bbf5a66576a5a320b54c8f6ad52bc84f0e833
 8330 	* lang/cpp/src/data.cpp (GpgME::Data::Data): Set size-hint for
 8331 	mem and DataProvider based Data.
 8332 
 8333 2016-08-12  Werner Koch  <wk@gnupg.org>
 8334 
 8335 	core: Make use of the "size-hint" in engine-gpg.
 8336 	+ commit fe1e8e71aa18b4ac6471292b2894b8859f42f7c8
 8337 	* src/engine-gpg.c: Include data.h.
 8338 	(add_input_size_hint): New.
 8339 	(gpg_decrypt, gpg_encrypt, gpg_encrypt_sign, gpg_sign)
 8340 	(gpg_verify): Call new function,
 8341 
 8342 	* tests/run-encrypt.c (status_cb): Print to stderr.
 8343 	(progress_cb): New.o
 8344 	(main): Add option --progress.  Print full-status lines.  Provide a
 8345 	size for the input data.
 8346 
 8347 	core: Add gpgme_data_set_flag to add more meta data to data objects.
 8348 	+ commit 293d1736911fd5e77b8cec305168b35b2420c612
 8349 	* src/gpgme.h.in (gpgme_data_set_flag): New public function.
 8350 	* src/data.c (gpgme_data_set_flag): New.
 8351 	(_gpgme_data_get_size_hint): New.
 8352 	* src/data.h (strucy gpgme_data): Add field 'size_hint'.
 8353 	* src/gpgme.def, src/libgpgme.vers: Add new function.
 8354 	* src/conversion.c (_gpgme_string_to_off): New.
 8355 
 8356 2016-08-12  Andre Heinecke  <aheinecke@intevation.de>
 8357 
 8358 	Qt: Fix defaultkeygenerationjob build.
 8359 	+ commit 75c974c4e0a31981325f7d151bd13f2523f5df20
 8360 	* lang/qt/src/defaultkeygenerationjob.cpp: Include moc.
 8361 
 8362 2016-08-11  Andre Heinecke  <aheinecke@intevation.de>
 8363 
 8364 	Qt: Add DefaultKeyGenerationJob.
 8365 	+ commit 105f5446e69db00291164397cf0d8e68374cf420
 8366 	* lang/qt/src/defaultkeygenerationjob.cpp,
 8367 	lang/qt/src/defaultkeygenerationjob.h: New.
 8368 	* lang/qt/src/Makefile.am: Update accordingly.
 8369 
 8370 	Qt: Ensure all public classes are exported.
 8371 	+ commit 59e2251a083b0ed61b3ab6d47015cef7cc6ceb05
 8372 	* src/abstractimportjob.h,
 8373 	src/cryptoconfig.h,
 8374 	src/deletejob.h,
 8375 	src/exportjob.h,
 8376 	src/importfromkeyserverjob.h,
 8377 	src/importjob.h,
 8378 	src/keygenerationjob.h,
 8379 	src/keylistjob.h,
 8380 	src/listallkeysjob.h,
 8381 	src/refreshkeysjob.h,
 8382 	src/signencryptjob.h,
 8383 	src/specialjob.h,
 8384 	src/verifydetachedjob.h: Export classes.
 8385 
 8386 	Qt: Add KeyForMailboxJob.
 8387 	+ commit 8c5abc8d932affab4bc79a85e3f98f6f6b982ae8
 8388 	* lang/qt/src/job.cpp: Include moc and make subclass.
 8389 	* lang/qt/src/keyformailboxjob.h,
 8390 	lang/qt/src/qgpgmekeyformailboxjob.cpp,
 8391 	lang/qt/src/qgpgmekeyformailboxjob.h: New.
 8392 	* lang/qt/tests/run-keyformailboxjob.cpp: New manual test.
 8393 	* lang/qt/tests/Makefile.am: Add run-keyformailboxjob.
 8394 	* lang/qt/src/Makefile.am: Update accordingly.
 8395 	* lang/qt/src/protocol.h, lang/qt/src/protocol_p.h: Add
 8396 	keyformailboxjob.
 8397 
 8398 2016-08-10  Werner Koch  <wk@gnupg.org>
 8399 
 8400 	doc: Get rid of version.texi.
 8401 	+ commit b7d99e02188b7907b09fec3032fc1fd82fc2668a
 8402 	* configure.ac (CC_FOR_BUILD): New.
 8403 	* doc/mkdefsinc.c: New.  Taken from GnuPG and modified for gpgme.
 8404 	* doc/Makefile.am (EXTRA_DIST): Add defsincdate and mkdefsinc.c
 8405 	(BUILT_SOURCES): new.
 8406 	(gpgme.texi): New dependency.
 8407 	(mkdefsinc, defsincdate, defs.inc): New rules.
 8408 	(dist-hook): New.
 8409 	* doc/gpgme.texi: Include defs.inc.  Remove version.texi.
 8410 
 8411 	build: Declare all languages for make dist.
 8412 	+ commit 48691db97b759d67aa7b49c36bb704b5806ade2e
 8413 	* lang/Makefile.am (DIST_SUBDIRS): New.
 8414 
 8415 	core: Do not identify PNG files as PGP signatures.
 8416 	+ commit a9168185ba97aa1d827315cd8017899bf904aded
 8417 	* src/data-identify.c (next_openpgp_packet): Blacklist PNG files.
 8418 
 8419 2016-08-10  Andre Heinecke  <aheinecke@intevation.de>
 8420 
 8421 	Cpp: Handle empty recipients consistently.
 8422 	+ commit 09667a6006986a782af98ca1de4d6521e1b8f353
 8423 	* lang/cpp/src/context.cpp (Context::getKeysFromRecipients):
 8424 	New helper.
 8425 	(Context::encrypt, Context::startEncryption, Context::signAndEncrypt)
 8426 	(Context::startCombinedSigningAndEncryption): Use new helper.
 8427 	* lang/cpp/src/context.h (Context::getKeysFromRecipients): Add
 8428 	as private helper.
 8429 
 8430 	core: Handle ENCRYPT_SYMMETRIC also for sig & enc.
 8431 	+ commit b602d8bc7bd726afb52dc60cc07e4609e88d4511
 8432 	* src/engine-gpg.c (gpg_encrypt_sign): Handle ENCRYPT_SYMMETRIC
 8433 	flag.
 8434 
 8435 	Qt: Remove unused variable.
 8436 	+ commit d467018ce36f5be36751267c3b6079e8c1ee5d8a
 8437 	* lang/qt/src/qgpgmerefreshkeysjob.cpp (slotStatus): Remove
 8438 	unused variable typ.
 8439 
 8440 	Qt: Create TestPassphraseProvider on stack.
 8441 	+ commit a27d7755d071aad42efc2aa4ea3899ba7b17f8bf
 8442 	* lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp: Create
 8443 	TestPassphraseProvider on stack.
 8444 
 8445 	Cpp: Clarify ownership of provider classes.
 8446 	+ commit 21d5e71d486da8e37cf53f2b968646b39a6daa72
 8447 	* lang/cpp/src/context.h: Note that the context does not take
 8448 	ownership of providers.
 8449 
 8450 2016-08-10  Justus Winter  <justus@g10code.com>
 8451 
 8452 	tests: Fix memory leak.
 8453 	+ commit 04f994d5db6db0575dc73c2356c7d51424e2d9fe
 8454 	* tests/gpg/t-encrypt-mixed.c (main): Free 'text2'.
 8455 
 8456 2016-08-10  Andre Heinecke  <aheinecke@intevation.de>
 8457 
 8458 	core: Ensure err is initalized in gpg_encrypt.
 8459 	+ commit 270887309f4b673b13e58c29ea3989c56989590e
 8460 	* src/engine-gpg.c (gpg_encrypt): Initialize err.
 8461 
 8462 	Qt: Fix t-keylist moc include.
 8463 	+ commit 0c222e1b3cabe1a8b84a2877420cdd5df56171b5
 8464 	* lang/qt/tests/t-keylist.cpp: Don't include t-support.moc
 8465 
 8466 2016-08-09  Andre Heinecke  <aheinecke@intevation.de>
 8467 
 8468 	Qt: Clean up debug output in tests.
 8469 	+ commit 969f223d8de21d7c8b0f7646bbf8dbb5864e8d03
 8470 	* lang/qt/tests/t-support.cpp: Remove accidentally commited
 8471 	debug output.
 8472 
 8473 	Qt: Add encryption test and refactor testsuite.
 8474 	+ commit f209ec8f581ae597b37f2e3a5e452e4b53b2d4c7
 8475 	* lang/qt/tests/Makefile.am: Add t-encrypt and t-support.
 8476 	* lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.c (QGpgMETest):
 8477 	New. Class to handle common cleanup / init.
 8478 	* lang/qt/tests/t-keylist.cpp,
 8479 	lang/qt/tests/t-keylocate.cpp,
 8480 	lang/qt/tests/t-ownertrust.cpp,
 8481 	lang/qt/tests/t-tofuinfo.cpp: Inherit QGpgMETest.
 8482 	* lang/qt/tests/t-encrypt.cpp: New. Test Symetric and Asymectric
 8483 	encryption. Mixed encryption test is disabled.
 8484 
 8485 	Qt: Add support for EncryptJobs with generic flags.
 8486 	+ commit 34b456c3fb9e59788b07a75441da482bb28bda87
 8487 	* lang/qt/src/encryptjob.h, lang/qt/src/signencryptjob.h,
 8488 	lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeencryptjob.cpp,
 8489 	lang/qt/src/qgpgmesignencryptjob.cpp,
 8490 	lang/qt/src/qgpgmeencryptjob.cpp: Add start and exec overloads
 8491 	that accept generic EncryptFlags.
 8492 
 8493 	Cpp: Add support for all EncryptionFlags.
 8494 	+ commit 17372393798ea5e2d6838f3dd1e001dd4a66c941
 8495 	* lang/cpp/src/context.h (EncryptionFlags): Extend.
 8496 	* lang/cpp/src/context.cpp (encryptflags2encryptflags): Ditto.
 8497 
 8498 	Cpp: Fix simple symmetric encryption.
 8499 	+ commit bf776ce94cf454f1b3f1645b1cde09cd1c54324b
 8500 	* lang/cpp/src/context.cpp (Context::encrypt): If no recipients
 8501 	are provided encrypt with NULL and not an empty array.
 8502 
 8503 	core: Add support for mixed symmetric and asym enc.
 8504 	+ commit 3d2f027d0f40e7ec4ab48cee89ff0ee10b423566
 8505 	* src/gpgme.h.in (gpgme_encrypt_flags_t): New flag
 8506 	GPGME_ENCRYPT_SYMMETRIC.
 8507 	* src/engine-gpg.c (gpg_encrypt): Also add --symmetric if the flag
 8508 	is given.
 8509 	* NEWS: Mention new flag.
 8510 	* tests/run-encrypt.c (show_usage): Extend for --symmetric.
 8511 	(main): Handle --symmetric.
 8512 	(main): Set passphrase_cb in loopback mode.
 8513 	(main): Fix encrypt call if no recipients are given.
 8514 	* tests/gpg/t-encrypt-mixed.c: New.
 8515 	* tests/gpg/Makefile.am (c_tests): Add new test.
 8516 	* doc/gpgme.texi: Document new flag.
 8517 
 8518 2016-08-08  Werner Koch  <wk@gnupg.org>
 8519 
 8520 	core: Let GPGME_PROTOCOL_ASSUAN pass Assuan comments through.
 8521 	+ commit b5e16b036f0045524a583d8a366d8a3366fc0005
 8522 	* src/engine-assuan.c (llass_new): Set ASSUAN_CONVEY_COMMENTS,
 8523 
 8524 2016-08-08  Andre Heinecke  <aheinecke@intevation.de>
 8525 
 8526 	Prepend LD_LIBRARY_PATH for python tests.
 8527 	+ commit ab6f66d676581cb497e581e4af40e2fe5bff507b
 8528 	* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Prepend path
 8529 	instead of setting the value.
 8530 
 8531 2016-08-05  Justus Winter  <justus@g10code.com>
 8532 
 8533 	python: Clean up and modernize examples.
 8534 	+ commit 2a613e87156b23c4aa6aa5ce38505cb285de6a18
 8535 	* lang/python/examples/Examples.rst: Delete file.
 8536 	* lang/python/examples/t-edit.py: Likewise.  This is actually a test
 8537 	case and has been moved to 'tests'.
 8538 	* lang/python/examples/assuan.py: New file.
 8539 	* lang/python/examples/decryption-filter.py: Likewise.
 8540 	* lang/python/examples/delkey.py: Modernize.
 8541 	* lang/python/examples/encrypt-to-all.py: Likewise.
 8542 	* lang/python/examples/exportimport.py: Likewise.
 8543 	* lang/python/examples/genkey.py: Likewise.
 8544 	* lang/python/examples/inter-edit.py: Likewise.
 8545 	* lang/python/examples/sign.py: Likewise.
 8546 	* lang/python/examples/signverify.py: Likewise.
 8547 	* lang/python/examples/simple.py: Likewise.
 8548 	* lang/python/examples/testCMSgetkey.py: Likewise.
 8549 	* lang/python/examples/verifydetails.py: Likewise.
 8550 
 8551 2016-08-04  Werner Koch  <wk@gnupg.org>
 8552 
 8553 	core: Extend gpgme_subkey_t to carry the keygrip.
 8554 	+ commit 6f3dc66634e30d86aa6250c4ac22f9b8f7ec1be9
 8555 	* src/gpgme.h.in (struct _gpgme_subkey): Add file 'keygrip'.
 8556 	* src/key.c (gpgme_key_unref): Free KEYGRIP.
 8557 	* src/keylist.c (keylist_colon_handler): Parse GRP records.
 8558 	* src/engine-gpg.c (gpg_keylist_build_options): Do not use
 8559 	--with-fingerprint options for gpg versions >= 2.1.15.
 8560 
 8561 	* tests/run-keylist.c (main): Print subkeys and keygrips.
 8562 
 8563 2016-08-03  Justus Winter  <justus@g10code.com>
 8564 
 8565 	python: Add a nicer interface to list keys.
 8566 	+ commit 56e26b54da9f16961209275d7a61883d3ea898ca
 8567 	* lang/python/pyme/core.py (Context.keylist): New method.
 8568 	* lang/python/tests/t-keylist.py: Test new method.
 8569 
 8570 2016-08-02  Justus Winter  <justus@g10code.com>
 8571 
 8572 	python: Add a flag identifying in-tree builds.
 8573 	+ commit 4c8265d32ddff5960a464b8d4e8d7d2258495b2e
 8574 	* lang/python/helpers.c (pyme_in_tree_build): New variable.
 8575 	* lang/python/helpers.h (pyme_in_tree_build): New declaration.
 8576 	* lang/python/pyme/version.py.in (in_tree_build): New variable.
 8577 	* lang/python/setup.py.in: Rework macro handling, set 'IN_TREE_BUILD'
 8578 	as appropriate.
 8579 
 8580 	python: Fix build system integration.
 8581 	+ commit 0bd7d8c1977183abc414e11aafa26a4f834ca2a5
 8582 	* lang/python/Makefile.am: Be more careful when cleaning the build
 8583 	directory, we must not delete the generated file 'pyme/version.py'.
 8584 
 8585 	doc: Document the Assuan protocol.
 8586 	+ commit 135185b7ef2225aa5e8c54a6cf1265d3e6cbbe48
 8587 	* doc/gpgme.texi: Document the Assuan protocol.
 8588 
 8589 2016-07-28  Justus Winter  <justus@g10code.com>
 8590 
 8591 	python: Fix out-of-tree build.
 8592 	+ commit 4e728de8421e2ade2061786aaebcdae3f60da3b8
 8593 	* lang/python/MANIFEST.in: Add 'private.h'.
 8594 
 8595 	python: Improve error handling.
 8596 	+ commit 5a7c7a86f7e8eaf10e37138617a2d838f9d4466f
 8597 	* lang/python/pyme/core.py (Context.protocol): Check that the engine
 8598 	is usable before setting the protocol.
 8599 	(Context._errorcheck): Add missing functions.
 8600 
 8601 	src: Fix dummy engine versions.
 8602 	+ commit b9e6eacd06ffeb36854c208aa4325cff3e3dfbbe
 8603 	Previously, 'gpgme_engine_check_version' failed for these protocols
 8604 	because the version parser failed to parse the dummy versions.
 8605 
 8606 	* src/engine-assuan.c (llass_get_version): Use a version triple that
 8607 	the parser can understand.
 8608 	(llass_get_req_version): Likewise.
 8609 	* src/engine-spawn.c (engspawn_get_version): Likewise.
 8610 	(engspawn_get_req_version): Likewise.
 8611 	* src/engine-uiserver.c (uiserver_get_version): Likewise.
 8612 	(uiserver_get_req_version): Likewise.
 8613 
 8614 	python: Drop superfluous imports and trim public interface.
 8615 	+ commit 2ff58fcbd5c060dac3a7feec478819d2c5a164ec
 8616 	* lang/python/pyme/__init__.py: Avoid leaking low-level 'gpgme', make
 8617 	sure the main module looks nice and tidy, appease pyflakes.
 8618 	* lang/python/pyme/errors.py: Appease pyflakes.
 8619 	* lang/python/pyme/util.py: Avoid leaking low-level 'gpgme' into the
 8620 	module namespace.
 8621 	* lang/python/pyme/version.py.in: Likewise.
 8622 	* lang/python/tests/t-keylist.py: Drop superfluous imports.
 8623 	* lang/python/tests/t-sig-notation.py: Likewise.
 8624 	* lang/python/tests/t-sign.py: Likewise.
 8625 	* lang/python/tests/t-signers.py: Likewise.
 8626 
 8627 	python: Rename compiled SWIG module.
 8628 	+ commit 2f754440f28e8f81babdf7efa6186edbc8ad99fd
 8629 	Avoid the name pygpgme, as this is the name of another popular Python
 8630 	binding for GPGME.
 8631 
 8632 	This commit renames the compiled Python module produced by SWIG.
 8633 
 8634 	* lang/python/Makefile.am: Rename the compiled Python module.
 8635 	* lang/python/gpgme.i: Likewise.
 8636 	* lang/python/pyme/core.py: Likewise.
 8637 	* lang/python/pyme/errors.py: Likewise.
 8638 	* lang/python/pyme/util.py: Likewise.
 8639 	* lang/python/pyme/version.py.in: Likewise.
 8640 	* lang/python/setup.py.in: Likewise.
 8641 
 8642 	python: Rename exported functions.
 8643 	+ commit b5aa05c3b261c3846ebbcf76e7505cff5459f918
 8644 	Avoid the name pygpgme, as this is the name of another popular Python
 8645 	binding for GPGME.
 8646 
 8647 	This commit renames all functions that are exported to the Python
 8648 	world.
 8649 
 8650 	* lang/python/helpers.c: Rename all exported functions.
 8651 	* lang/python/helpers.h: Likewise.
 8652 	* lang/python/pyme/core.py: Likewise.
 8653 
 8654 	python: Rename private functions.
 8655 	+ commit 1d2f22aae668ce136cacd254875e118dc1faa6a2
 8656 	Avoid the name pygpgme, as this is the name of another popular Python
 8657 	binding for GPGME.
 8658 
 8659 	This commit renames all functions that are not exported to the Python
 8660 	world.
 8661 
 8662 	* lang/python/gpgme.i: Rename all private functions.
 8663 	* lang/python/helpers.c: Likewise.
 8664 	* lang/python/helpers.h: Likewise.
 8665 	* lang/python/private.h: Likewise.  Also move the SWIG runtime helper
 8666 	prototypes here.
 8667 
 8668 	python: Support the Assuan engine.
 8669 	+ commit de69fa496c09386d5e99747670d6887cf52dd09e
 8670 	* lang/python/gpgme.i: Add typemaps for the Assuan protocol callbacks.
 8671 	* lang/python/helpers.c (_pyme_assuan_{data,inquire,status}_cb): New
 8672 	functions.
 8673 	* lang/python/private.h (_pyme_assuan_{data,inquire,status}_cb): New
 8674 	prototypes.
 8675 	* lang/python/pyme/core.py (Context.assuan_transact): New method.
 8676 	* lang/python/pyme/util.py (percent_escape): New function.
 8677 	* lang/python/tests/Makefile.am (py_tests): Add new test.
 8678 	* lang/python/tests/t-protocol-assuan.py: New file.
 8679 
 8680 	python: Improve engine information handling.
 8681 	+ commit 355d7072863ac1f0f725e77141a59f3ed8a5e4af
 8682 	* lang/python/gpgme.i (gpgme_engine_info_t): Wrap engine infos.
 8683 	* lang/python/pyme/core.py (Context.engine_info): New property.
 8684 	(Context.{g,s}et_engine_info): Improve docstrings.
 8685 	* lang/python/pyme/results.py (EngineInfo): New class.
 8686 
 8687 	python: Add accessors for the protocol.
 8688 	+ commit 78f7bf4dcf75206faae5776c2ee4166628313532
 8689 	* lang/python/pyme/core.py (Context.__init__): Add 'protocol'
 8690 	parameter.
 8691 	(Context.protocol): New accessors.
 8692 
 8693 	python: Expose less functions to the Python world.
 8694 	+ commit 3d4dc3f0218234a27103bdb6f93b17c0703b71a2
 8695 	* lang/python/Makefile.am (EXTRA_DIST, COPY_FILES): Add new file.
 8696 	* lang/python/gpgme.i: Include new file and add comments.
 8697 	* lang/python/helpers.c: Include new file.
 8698 	* lang/python/helpers.h: Move functions we do not need to expose...
 8699 	* lang/python/private.h: ... here.
 8700 
 8701 2016-07-19  Ben Kibbey  <bjk@luxsci.net>
 8702 
 8703 	Fix including nil bytes in keylist output.
 8704 	+ commit 6a7ee33abd5059f5ae2f70a7dd9f610c16552f8e
 8705 	* src/gpgme-tool.c (cmd_keylist,gt_result): use strlen().
 8706 
 8707 2016-07-15  Justus Winter  <justus@g10code.com>
 8708 
 8709 	python: Make GPGME's version easily accessible.
 8710 	+ commit e545ca3f682b615ce447c186a2c73489a32b0592
 8711 	* lang/python/pyme/version.py.in (gpgme_versionstr): New variable.
 8712 
 8713 	python: Add an idiomatic interface.
 8714 	+ commit 1f318b7aaaa77672fab117d54fe75221780df83c
 8715 	* configure.ac: Bump required Python version.
 8716 	* lang/python/pyme/__init__.py: Update docstring.  Import Context and
 8717 	Data.
 8718 	* lang/python/pyme/core.py (Context.encrypt): New function.
 8719 	(Context.decrypt): Likewise.
 8720 	(Context.sign): Likewise.
 8721 	(Context.verify): Likewise.
 8722 	* lang/python/pyme/errors.py: Add new errors.
 8723 	* lang/python/pyme/util.py (process_constants): Rework and return the
 8724 	inserted keys.
 8725 	* lang/python/tests/Makefile.am (EXTRA_DIST): Add new keys.
 8726 	* lang/python/tests/encrypt-only.asc: New file.
 8727 	* lang/python/tests/sign-only.asc: Likewise.
 8728 	* lang/python/tests/initial.py: Mark key 'Alpha' as trusted, import
 8729 	new keys.
 8730 	* lang/python/tests/support.py: Add fingerprints of known keys.
 8731 	(in_srcdir): New function.
 8732 	(print_data): Handle bytes too.
 8733 	(mark_key_trusted): New function.
 8734 	* lang/python/tests/t-decrypt-verify.py: Adjust test.  Test idiomatic
 8735 	interface.
 8736 	* lang/python/tests/t-decrypt.py: Test idiomatic interface.
 8737 	* lang/python/tests/t-encrypt-sign.py: Likewise.
 8738 	* lang/python/tests/t-encrypt-sym.py: Likewise.
 8739 	* lang/python/tests/t-encrypt.py: Likewise.
 8740 	* lang/python/tests/t-idiomatic.py: Simplify.
 8741 	* lang/python/tests/t-keylist.py: Adjust to newly trusted key.
 8742 	* lang/python/tests/t-sign.py: Likewise.  Test idiomatic interface.
 8743 	* lang/python/tests/t-signers.py: Likewise.
 8744 	* lang/python/tests/t-verify.py: Likewise.
 8745 
 8746 2016-07-14  Andre Heinecke  <aheinecke@intevation.de>
 8747 
 8748 	Qt: Disable keylocate test for gnupg < 2.0.10.
 8749 	+ commit d2f2cbd297c4d2f2c3264ecc3ffb7a2b3a70bd55
 8750 	* lang/qt/tests/t-keylocate.cpp: Disable test for gnupg < 2.0.10
 8751 
 8752 	Cpp: Add EngineInfo::Version class.
 8753 	+ commit 41de1ab904eaddffb2de17b1de8ef41e462daabe
 8754 	* lang/cpp/src/engineinfo.cpp (EngineInfo::engineVersion): New.
 8755 	* lang/cpp/src/engineinfo.h (EngineInfo::engineVersion): Declare.
 8756 	(EngineInfo::Version): Small helper to work with versions.
 8757 
 8758 	Qt: Fix usage of ignore-invalid-option in tests.
 8759 	+ commit e7f4c364732660c6cda25720b7dbc5b1c917e368
 8760 	* Makefile.am (pubring-stamp): Fix config.
 8761 
 8762 	Qt: Fix tests if gpg2 is gpg.
 8763 	+ commit e4c0645c1eea9380d80a20895eb83c9dd7228776
 8764 	* lang/qt/tests/Makefile.am (pubring-stamp): Loopback and provide
 8765 	passphrase on command line when importing.
 8766 
 8767 2016-07-14  Justus Winter  <justus@g10code.com>
 8768 
 8769 	python: Fix test.
 8770 	+ commit fddcc62abd57cb04e84861abd3991c7d529c2464
 8771 	* lang/python/tests/t-keylist.py: Do not assume key alpha is trusted
 8772 	yet.
 8773 
 8774 2016-07-13  Werner Koch  <wk@gnupg.org>
 8775 
 8776 	build: Update config.{guess,sub} to {2016-05-15,2016-06-20}.
 8777 	+ commit a9670d152a4598aef1ae0960a79fb6f5d8db55ad
 8778 	* build-aux/config.guess: Update.
 8779 	* build-aux/config.sub: Update.
 8780 
 8781 	core: New GPGME_DATA_ENCODING_MIME.
 8782 	+ commit d8d5f5a16712244fe6eff860b6ac5f007b1bf870
 8783 	* src/gpgme.h.in (GPGME_DATA_ENCODING_MIME): New.
 8784 	* src/data.c (gpgme_data_set_encoding): Adjust check.
 8785 	* src/engine-gpg.c (have_gpg_version): New.
 8786 	(gpg_encrypt, gpg_encrypt_sign): Pass flag '--mimemode'.
 8787 	(gpg_sign): Ditto.
 8788 
 8789 	* lang/cpp/src/data.h (GpgME): Add MimeEncoding.
 8790 	* lang/cpp/src/data.cpp (encoding, setEncoding): Support MimeEncoding.
 8791 
 8792 	* src/gpgme-tool.c (server_data_encoding): Add flag --mime.
 8793 
 8794 	core: Pass the engine's version string to the engine's new function.
 8795 	+ commit 2095b1573a8196ba3efdf817324d1b3ee05cbb93
 8796 	* src/engine-backend.h (engine_ops): Add arg 'version' to NEW.
 8797 	* src/engine-assuan.c (llass_new): Add dummy arg 'version'.
 8798 	* src/engine-g13.c (g13_new): Ditto.
 8799 	* src/engine-gpgconf.c (gpgconf_new): Ditto.
 8800 	* src/engine-gpgsm.c (gpgsm_new): Ditto.
 8801 	* src/engine-spawn.c (engspawn_new): Ditto.
 8802 	* src/engine-uiserver.c (uiserver_new): Ditto.
 8803 	* src/engine.c (_gpgme_engine_new): Pass version string to the new
 8804 	function.
 8805 	* src/engine-gpg.c (struct engine_gpg): Add field 'version'.
 8806 	(gpg_new): Add arg 'version'.
 8807 	(gpg_release): Free VERSION.
 8808 
 8809 2016-07-13  Andre Heinecke  <aheinecke@intevation.de>
 8810 
 8811 	Cpp: Add feature enum for new identify.
 8812 	+ commit 537cb871fd59f3a20c697a046715e6339ff6633b
 8813 	* lang/cpp/src/context.cpp (supported_features2): Add
 8814 	BinaryAndFineGrainedIdentify
 8815 	* lang/cpp/src/global.h (Feature2): ditto.
 8816 
 8817 2016-07-12  Justus Winter  <justus@g10code.com>
 8818 
 8819 	python: Port more tests.
 8820 	+ commit 1bff47ee58bcf9d0016fb7ac7e37cbf075abd059
 8821 	* lang/python/pyme/core.py (Context.op_keylist_all): Add missing
 8822 	'op_keylist_end'.
 8823 	(Context.op_trustlist_all): Fix function. Add missing
 8824 	'op_trustlist_end'.
 8825 	* lang/python/tests/Makefile.am (pytests): Add new files.
 8826 	* lang/python/tests/t-import.py: New file.
 8827 	* lang/python/tests/t-keylist.py: Likewise.
 8828 	* lang/python/tests/t-trustlist.py: Check alternate interface.
 8829 
 8830 	python: Improve python packaging.
 8831 	+ commit 57b51685528153f5a50ab0999feec25c83190501
 8832 	* lang/python/Makefile.am: Sign source releases, and upload them.
 8833 	* lang/python/setup.py.in: Add categories.
 8834 
 8835 2016-07-12  Andre Heinecke  <aheinecke@intevation.de>
 8836 
 8837 	m4: Don't set fpic for qt on windows.
 8838 	+ commit 938f7e9c8b466594d05c0347fe627b225263a6a6
 8839 	* m4/qt.m4 (FIND_QT): Do not set fpic for windows.
 8840 
 8841 	m4: Use LIBS instead of LDFLAGS for Qt libs.
 8842 	+ commit 744978cce8f9dfb2363b9d274ee99f25cfcf0e40
 8843 	* m4/qt.m4: Modify LIBS instead of LDFLAGS for link test.
 8844 
 8845 	Bump version to 1.7.0.
 8846 	+ commit bf742fb88545689addfca18192baf2f56a1895e1
 8847 	* configure.ac(mym4_version_minor),
 8848 	(mym4_version_micro): Next release will be 1.7.0
 8849 
 8850 	Qt: Install CamelCase forward includes.
 8851 	+ commit fd87c4679c4bfe19390fa2047dff23bb213a4b18
 8852 	* lang/qt/src/Makefile.am (camelcase_headers): New. Create and install
 8853 	CamelCase headers.
 8854 
 8855 	Qt: Export VerifyDetachedJob.
 8856 	+ commit 86ab2ee2d603111d24500b8d64a9a1dd82f8bdc0
 8857 	* lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Export it.
 8858 
 8859 	Qt/Cpp: Add version headers.
 8860 	+ commit b03c48cfb06faae7d7033a0532f319cbcf13f18a
 8861 	* lang/cpp/src/gpgmepp_version.h.in,
 8862 	lang/qt/src/qgpgme_version.h.in: New. Version information.
 8863 	* lang/qt/src/Makefile.am, lang/cpp/src/Makefile.am: Add them.
 8864 	* configure.ac: Configure them.
 8865 
 8866 	Qt/Cpp: Add license blurb to export headers.
 8867 	+ commit 362b8cdf4e0d5cd54ec2b325508dcdefac686f2c
 8868 	* lang/cpp/src/gpgmepp_export.h,
 8869 	lang/qt/src/qgpgme_export.h: Add license blurb.
 8870 
 8871 2016-07-11  Justus Winter  <justus@g10code.com>
 8872 
 8873 	python: Fix distcheck.
 8874 	+ commit ce662891373eba6cce1cf8df516cb2370970737e
 8875 	* lang/python/Makefile.am (EXTRA_DIST): Add missing files.
 8876 
 8877 2016-07-11  Andre Heinecke  <aheinecke@intevation.de>
 8878 
 8879 	m4: Add compile / link check for qt.
 8880 	+ commit ed070313155a1c79a57ba69f4299f2aefc65fad7
 8881 	* m4/qt.m4 (FIND_QT): Check if a qt application can be compiled and
 8882 	linked.
 8883 
 8884 2016-07-11  Justus Winter  <justus@g10code.com>
 8885 
 8886 	python: Enable out-of-tree build of pyme bindings.
 8887 	+ commit 007382ce94a6318557370c440f7d609a030a119e
 8888 	* lang/python/MANIFEST.in: Update manifest template.
 8889 	* lang/python/Makefile.am: Copy more files, move generation of files
 8890 	to Python build script, add 'sdist' target to build a Python source
 8891 	distribution.
 8892 	* lang/python/gpgme-h-clean.py: Add code to build 'errors.i'.
 8893 	* lang/python/setup.py.in: Generate files, enable out-of-tree builds.
 8894 
 8895 	python: Do not depend on access to internal data structures.
 8896 	+ commit 98cba522c906115efcba1f8cc0bec7e5edb51ecd
 8897 	* lang/python/gpgme.i (gpgme_data_t): Rework so that it works without
 8898 	access to the definition of 'struct gpgme_data'.
 8899 	* lang/python/helpers.c (object_to_gpgme_data_t): Add assertion.
 8900 
 8901 	python: Make result wrapping backwards compatible.
 8902 	+ commit c53f87c5f9ca63119152f41dcebfb175d4df2cef
 8903 	* lang/python/pyme/results.py (Result.__init__): Skip missing fields.
 8904 
 8905 2016-07-11  Andre Heinecke  <aheinecke@intevation.de>
 8906 
 8907 	Qt: Fix memleaks in tests.
 8908 	+ commit bfa8ac7e02c16790ee5bd3b42c26699f4821d72e
 8909 	* lang/qt/tests/t-keylist.cpp(cleanupTestCase): Ensure that
 8910 	posted events are handled for autodeletion.
 8911 	(testSingleKeylistSync): delete job.
 8912 	* lang/qt/tests/t-ownertrust.cpp(cleanupTestCase): Ditto
 8913 	* lang/qt/tests/t-ownertrust.cpp(testChangeOwnerTrust): Delete
 8914 	keylistjobs.
 8915 	* lang/qt/tests/t-keylocate.cpp(cleanupTestCase): Ditto
 8916 
 8917 	Qt: Add some general Protocol documentation.
 8918 	+ commit b1f42e8f25ada220ec8e4762cfebc3a49b1f7d56
 8919 	* lang/qt/src/protocol.h (Protocol): Add doc.
 8920 
 8921 	Qt: Disable t-tofuinfo tests.
 8922 	+ commit 02babb29612d554c37b63a49f78acc45653b557e
 8923 	* lang/qt/tests/t-tofuinfo.cpp: Disable tests.
 8924 
 8925 2016-07-08  Justus Winter  <justus@g10code.com>
 8926 
 8927 	src: Fix error handling.
 8928 	+ commit de74fe59feef9adc858ac04004880bfd44315d0d
 8929 	* src/encrypt.c (encrypt_status_handler): Fix error handling, ||
 8930 	conflates errors.
 8931 
 8932 	python: Fix raising stashed exceptions.
 8933 	+ commit 8a93f345b701332270c9829a4d0a93537f98a8d8
 8934 	Fixes an issue with newer versions of Python.
 8935 
 8936 	* lang/python/helpers.c (pygpgme_raise_callback_exception): Be more
 8937 	careful when restoring the exception.
 8938 
 8939 2016-07-07  Justus Winter  <justus@g10code.com>
 8940 
 8941 	python: Fix distcheck.
 8942 	+ commit 52efcf1ee9fc8ba4c6bd23d8fe4f5f7993ba9fb1
 8943 	* lang/python/INSTALL: Drop obsolete file.
 8944 	* lang/python/Makefile.am (EXTRA_DIST): Add missing files.
 8945 	(CLEANFILES): Remove generated files.
 8946 	(clean-local): Fix permissions of copied files.
 8947 	* lang/python/tests/Makefile.am (TESTS): Use our own setup and
 8948 	teardown scripts.
 8949 	(EXTRA_DIST): Add missing files.
 8950 	* lang/python/tests/final.py: New file.
 8951 	* lang/python/tests/initial.py: Likewise.
 8952 
 8953 	qt: Fix distcheck.
 8954 	+ commit 38c408560c6ebc3ea5eeeade01d38750bf5799e5
 8955 	* lang/qt/src/Makefile.am (qgpgme_headers): Add missing file.
 8956 	(CLEANFILES): Add generated file.
 8957 	* lang/qt/tests/Makefile.am (clean-local): Remove private keys.
 8958 
 8959 	cpp: Fix distcheck.
 8960 	+ commit 49286ac1c82c480e2c718f828c57da9778ccd0b9
 8961 	* lang/cpp/src/Makefile.am (CLEANFILES): Remove generated file.
 8962 
 8963 2016-07-06  Andre Heinecke  <aheinecke@intevation.de>
 8964 
 8965 	Qt: Add test for publicKeyAlgorithmAsString.
 8966 	+ commit fc0267233239b42e9fb74a8acd7511503e287a9e
 8967 	* lang/qt/tests/t-keylist.cpp (testPubkeyAlgoAsString): New.
 8968 
 8969 	Cpp: Expose gpgme_pubkey_algo_name.
 8970 	+ commit e41ae4db9e70d9aebf80ebbd4ce03977435c2ccf
 8971 	* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithmAsString): New
 8972 	static variant.
 8973 	* lang/cpp/src/key.h: Declare function. Clarify comment about name
 8974 	mismatch.
 8975 
 8976 	Qt: Add check for pubkeyAlgo in t-keylist.
 8977 	+ commit 9f93346d21271b916f15d80420669f5d659a40de
 8978 	* lang/qt/tests/t-keylist.cpp (testSingleKeyListSync): Check
 8979 	pubkeyAlgo.
 8980 
 8981 	Cpp: Add PubkeyAlgo enum.
 8982 	+ commit c28007d0407bcc3621b8266d6d77eb0d069aec35
 8983 	* lang/cpp/src/key.h (Subkey::PubkeyAlgo): New enum.
 8984 	(Subkey::publicKeyAlgorithm): Change return type.
 8985 	* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithm): Use enum.
 8986 
 8987 	Qt: Fix include order when buildin test.
 8988 	+ commit 4934893e27a50f5715dcd4d2907ecbe629921b32
 8989 	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include cpp before
 8990 	gpgme src directory.
 8991 
 8992 	Revert "Qt: More robust lookup of Cpp's context.h"
 8993 	+ commit 7a8c04f66d382dc49d962ad18c46d7ad332ccc0f
 8994 	* lang/qt/src/threadedjobmixin.h: Revert using full path
 8995 	for context.h
 8996 
 8997 2016-07-05  Andre Heinecke  <aheinecke@intevation.de>
 8998 
 8999 	Qt: Fix test build with Qt < 5.4.0.
 9000 	+ commit 49a6ee50587c9d4b6f07e60ce1a939c863e7f15c
 9001 	* lang/qt/tests/t-keylist.cpp,
 9002 	lang/qt/tests/t-keylocate.cpp,
 9003 	lang/qt/tests/t-ownertrust.cpp: Use old style SIGNAl syntax for
 9004 	QSignalSpy
 9005 
 9006 	Qt: More robust lookup of Cpp's context.h.
 9007 	+ commit 47bfbc9026b49b9918359af5fcc1621aab0d1065
 9008 	* lang/qt/src/threadedjobmixin.h: When building qgpgme look for
 9009 	context.h in the full cpp subdirectory.
 9010 
 9011 	w32: Fallback to 2.1 reg key for gpgconf search.
 9012 	+ commit 72b83ffc4d7581f4efef3bd7c261d7d7424bcf0e
 9013 	* src/w32-util.c (_gpgme_get_gpgconf_path): Fallback to 2.1 installer
 9014 	 registry key.
 9015 
 9016 2016-07-04  Andre Heinecke  <aheinecke@intevation.de>
 9017 
 9018 	Doc: Document pinentry mode.
 9019 	+ commit 329ab93f7ed862d7f4c0501fca5355936a74ac52
 9020 	* doc/gpgme.texi (Passphrase Callback): Document as context
 9021 	attribute.
 9022 	(gpgme_set_passphrase_cb): Note that this requires LOOPBACK mode
 9023 	with GnuPG 2.1.
 9024 
 9025 	Qt: Add testTofuSignCount.
 9026 	+ commit 8fa9b5696ca9f8386971e6f36646536f9579ceaa
 9027 	* src/lang/qt/tests/t-tofuinfo.cpp(testTofuSignCount): New.
 9028 	(initTestCase): Set gpg-agent loopback pinentry config.
 9029 	(signAndVerify): Helper for tofuTestSignCount.
 9030 
 9031 	Qt: Add test passphrase provider.
 9032 	+ commit efb5059b9b6e81db7b0c016aa9fb70abe98308ea
 9033 	* lang/qt/tests/t-support.h (TestPassphraseProvider): New.
 9034 	* lang/qt/tests/Makefile.am (t_tofuinfo_SOURCES): Add t-support.h
 9035 
 9036 	Cpp: Add support for TOFU_CONFLICT sigsum.
 9037 	+ commit 80498ab662238a31325e78c0037ea6752f680a37
 9038 	* lang/cpp/src/verificationresult.cpp (GpgME::Signature::Summary):
 9039 	Handle TOFU_CONFLICT.
 9040 	* lang/cpp/src/verificationresult.h (Summary): Add TofuConflict.
 9041 
 9042 	Cpp: Add support for pinentry_mode.
 9043 	+ commit d75c118aae18e20f08dbbb69c7998e1f3694ccd0
 9044 	* lang/cpp/src/context.cpp (Context::pinentryMode): Return mode.
 9045 	(Context::setPinentryMode): Set mode.
 9046 	* lang/cpp/src/context.h (PinentryMode): Add enum.
 9047 
 9048 2016-07-01  Andre Heinecke  <aheinecke@intevation.de>
 9049 
 9050 	Qt: Add test for TofuInfo.
 9051 	+ commit fbd6ac4655ebf56d91ebd9a4ff499c8319fcd087
 9052 	* lang/qt/tests/t-tofuinfo.cpp: New.
 9053 	* lang/qt/tests/Makefile.am: Update accordingly.
 9054 
 9055 	Cpp: Add TofuInfo to signatures.
 9056 	+ commit 93c5d420fcfe275aeff2b3d5ce99629edbe6625d
 9057 	* lang/cpp/src/tofuinfo.cpp, lang/cpp/src/tofuinfo.h: New class.
 9058 	* lang/cpp/src/verificationresult.cpp (Signature::tofuInfo): New.
 9059 	(VerificationResult::Private): Handle tofu info.
 9060 	(GpgME::operator<<(std::ostream &os, const Signature &sig)): Include
 9061 	TofuInfo in dump.
 9062 	* lang/cpp/src/verificationresult.h (Signature::tofuInfo): New.
 9063 	* lang/cpp/src/Makefile.am (main_sources, gpgmepp_headers): Add
 9064 	new files.
 9065 	* configure.ac (LIBGPGMEPP_LT_REVISION): Bump for new API.
 9066 
 9067 	core: Clarify documentation of tofu_stats address.
 9068 	+ commit 948ce7d1edf12ecb5080a4816ca15f495d6393f5
 9069 	* src/gpgme.h.in: Mention that Address is not always in addr-spec.
 9070 
 9071 	core: Fix identify for armored detached sigs.
 9072 	+ commit 570bf2a648f14b34c4c45d3890b7300529a82d37
 9073 	* src/data-identify.c (basic_detection): Return signature for
 9074 	signature.
 9075 
 9076 2016-06-27  Andre Heinecke  <aheinecke@intevation.de>
 9077 
 9078 	Cpp: Expose new data_identify values.
 9079 	+ commit 15fc5c34c88ecbb61272705af60f7054b41c57f7
 9080 	* lang/cpp/src/data.cpp (GpgME::Data::type): Handle PGP Encrypted
 9081 	 and Signature.
 9082 	* lang/cpp/src/data.h: Add values accordingly.
 9083 
 9084 	Cpp: Do not treat KEYEXPIRED as error.
 9085 	+ commit 82d484c852d07958ac93efb3d2d7b7726fbb5231
 9086 	* lang/cpp/src/editinteractor.cpp (status_to_error): No error
 9087 	for KEYEXPIRED.
 9088 
 9089 2016-06-24  Andre Heinecke  <aheinecke@intevation.de>
 9090 
 9091 	tests: Add new test tool run-decrypt.
 9092 	+ commit 3364549c19682f56d4d9c52ab7f76862c5a456cf
 9093 	* tests/run-decrypt.c: New.
 9094 	* tests/Makefile.am (noinst_PROGRAMS): Add run-decrypt.
 9095 
 9096 2016-06-23  Werner Koch  <wk@gnupg.org>
 9097 
 9098 	core: Add closer inspection of "PGP MESSAGE".
 9099 	+ commit cf37a57d28c43ec36277e84ca44458b7287b940b
 9100 	* src/data-identify.c (inspect_pgp_message): New.
 9101 	(basic_detection): Un-const arg DATA. Call inspect_pgp_message.
 9102 
 9103 	core: Add a base 64 decoder.
 9104 	+ commit f8b8027ae63c957557ed6bdc7e5a30ef1bdd8e77
 9105 	* src/b64dec.c: New. Taken from gnupg.  Prefix function names with
 9106 	_gpgme_ and change to use standard C malloc functions.
 9107 	* src/util.h.h (struct b64state): New.
 9108 	* src/Makefile.am (main_sources): Add file.
 9109 
 9110 2016-06-22  Werner Koch  <wk@gnupg.org>
 9111 
 9112 	core: Detect compressed signed OpenPGP data.
 9113 	+ commit bb8cf6236582fc9eb6564046599989af52779a26
 9114 	* src/data-identify.c (next_openpgp_packet): Allow partial encoding.
 9115 	(pgp_binary_detection): Handle compressed packets.
 9116 
 9117 2016-06-21  Werner Koch  <wk@gnupg.org>
 9118 
 9119 	tests: Add new test tool run-identify.
 9120 	+ commit 5905e8bbd809c1408edad4fa4eb0527fa51cbea3
 9121 	* src/gpgme-tool.c (gt_identify): Add new strings.
 9122 	* tests/run-identify.c: New.
 9123 	* tests/Makefile.am (noinst_PROGRAMS): Add run-identify.
 9124 
 9125 	core: Enhance gpgme_data_identify to detect binary PGP messages.
 9126 	+ commit 32d4bbf5e3e5f88e4a6852d72a35ee30df9d5279
 9127 	* src/gpgme.h.in (GPGME_DATA_TYPE_PGP_ENCRYPTED): New.
 9128 	(GPGME_DATA_TYPE_PGP_SIGNATURE): New.
 9129 	* src/data-identify.c: Add enum for OpenPGP packet types.
 9130 	(buf32_to_ulong): New.
 9131 	(next_openpgp_packet): New.  Based on the gnupg/kbx/keybox-openpgp.c
 9132 	implementation and relicensed to LGPL by g10 Code.
 9133 	(pgp_binary_detection): New.
 9134 	(basic_detection): Call pgp_binary_detection instead of returning
 9135 	unknown.
 9136 
 9137 2016-06-16  Justus Winter  <justus@g10code.com>
 9138 
 9139 	python: Improve autmatically generated docstrings.
 9140 	+ commit 8997d88bf97d1784706becbf8e9dc74e4656e311
 9141 	* lang/python/gpgme.i: Add comment.
 9142 	* lang/python/pyme/core.py (__getattr__): Rewrite automatically
 9143 	generated doctrings for the wrapper methods.
 9144 
 9145 	python: Make result objects more robust.
 9146 	+ commit a324d0cffe93cab955698c2c065b2f2227e379e4
 9147 	Results returned by the GPGME are fragile, i.e. they are only valid
 9148 	until the next operation is performed in the context.
 9149 
 9150 	We cannot arbitrarily constrain the lifetime of Python objects, we
 9151 	therefore create deep copies of the results.
 9152 
 9153 	* lang/python/gpgme.i (gpgme_tofu_info_t): Turn these into a list.
 9154 	(gpgme_*_result_t): Create deep copies of these objects.
 9155 	* lang/python/helpers.c (pygpgme_wrap_fragile_result): New function.
 9156 	* lang/python/helpers.h (pygpgme_wrap_fragile_result): New prototype.
 9157 	* lang/python/pyme/results.py: New file.
 9158 
 9159 	python: Avoid creating SWIG proxy classes.
 9160 	+ commit 856bcfe2934237011984fab0bc69800a7c25c34b
 9161 	* lang/python/Makefile.am (gpgme_wrap.c): Use '-builtin' to make SWIG
 9162 	generate builtin types for c types.
 9163 	* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Adapt slightly.
 9164 
 9165 	python: Simplify wrapping glue.
 9166 	+ commit 6641c7814b30e3e8f18105b2636545cc1bd07552
 9167 	* lang/python/pyme/core.py: Rename '_getctype' to '_ctype' and turn it
 9168 	  into a string.  Likewise rename '_getnameprepend' to '_cprefix'.
 9169 	* lang/python/helpers.c: Adapt accordingly.
 9170 
 9171 	python: Rework callbacks.
 9172 	+ commit f3618bc615e3eff1f52fb5849cbf0f0b95515a61
 9173 	Simplify how the lifetime of callback arguments is managed.
 9174 
 9175 	* lang/python/gpgme.i (gpgme_edit_cb_t): Check arguments.
 9176 	(PyObject_p_p, void_p_p): Drop rather dangerous interface.
 9177 	(pygpgme_unwrap_gpgme_ctx_t): New function.
 9178 	* lang/python/helpers.c (pygpgme_clear_generic_cb): Drop dangerous
 9179 	function.
 9180 	(pyPassphraseCb): Assert contract.
 9181 	(pygpgme_set_passphrase_cb): Use Python's calling convention so that
 9182 	we can raise exceptions.  Hand in 'self', get the wrapped object, and
 9183 	simply store the hook data as attribute of the wrapper object.
 9184 	(pyProgressCb, pygpgme_set_progress_cb): Likewise.
 9185 	(pygpgme_set_status_cb): Likewise.
 9186 	(pygpgme_data_new_from_cbs): Likewise.
 9187 	* lang/python/helpers.h (pygpgme_clear_generic_cb): Drop prototype.
 9188 	(pygpgme_set_passphrase_cb): Update prototype.
 9189 	(pygpgme_set_progress_cb): Likewise.
 9190 	(pygpgme_set_status_cb): Likewise.
 9191 	(pygpgme_data_new_from_cbs): Likewise.
 9192 	(pygpgme_unwrap_gpgme_ctx_t): New prottotype.
 9193 	* lang/python/pyme/core.py (Context, Data): Update callsites.
 9194 
 9195 	python: Wrap objects implementing the buffer protocol.
 9196 	+ commit 616929b6edf00b4a774b727385d39b785a112b90
 9197 	* lang/python/Makefile.am: Add the toplevel source directory to CFLAGS
 9198 	when compiling the bindings so that we can use private header files.
 9199 	* lang/python/gpgme.i (gpgme_data_t): Rework the object wrapping.  Do
 9200 	not create a Python wrapper object, merely a gpgme_data_t object, and
 9201 	keep references to buffer objects, if any.  If necessary, update the
 9202 	buffer after the function call.
 9203 	(pygpgme_wrap_gpgme_data_t): New function.
 9204 	* lang/python/helpers.c (object_to_gpgme_data_t): Rework object
 9205 	wrapping.  Also wrap objects implementing the buffer protocol.
 9206 	* lang/python/helpers.h (object_to_gpgme_data_t): Update prototype.
 9207 	(pygpgme_wrap_gpgme_data_t): New prototype.
 9208 	* lang/python/tests/t-idiomatic.py: Demonstrate this.
 9209 
 9210 	python: Add properties to wrapped object.
 9211 	+ commit 5464060baef2da8f5ea377118758e451c55e3787
 9212 	* lang/python/pyme/core.py (GpgmeWrapper.__repr__): Saner
 9213 	representation.
 9214 	(GpgmeWrapper.__str__): Construct a nicer human readable string.
 9215 	(GpgmeWrapper._boolean_properties): New field.
 9216 	(GpgmeWrapper.__wrap_boolean_property): New function.
 9217 	(GpgmeWrapper.__getattr__): Wrap functions using properties.
 9218 	(GpgmeWrapper.__setattr__): New method.  Likewise wrap functions.
 9219 	(Context.signers): New property.
 9220 	(Context.pinentry_mode): Likewise.
 9221 	(Context._boolean_properties): List boolean properties.
 9222 	(Context.__init__): Add keyword arguments for properties and apply
 9223 	them.
 9224 
 9225 	python: Improve the documentation.
 9226 	+ commit 5492853d7b84b4e1d0b11b234e32252ba8d1608d
 9227 	* lang/python/Makefile.am: Copy the README file.
 9228 	* lang/python/README: Rename, convert to org, and update.
 9229 	* lang/python/pyme/__init__.py: Move license out of the docstring,
 9230 	update docstring.
 9231 	* lang/python/pyme/core.py: Add and update docstrings.
 9232 
 9233 	python: Get version information from the build system.
 9234 	+ commit 7eef399d89d4c3877cb795ed5ba45ecb241e67be
 9235 	* configure.ac: Generate 'setup.py' and 'version.py'.
 9236 	* lang/python/Makefile.am: Use generated setup script.
 9237 	* lang/python/pyme/version.py: Turn it into a template, and get
 9238 	version information from the build system.  Also drop some variables.
 9239 	* lang/python/setup.py: Likewise.  This way we can avoid importing the
 9240 	version module, which is frowned upon and actually caused a problem.
 9241 
 9242 	python: Fix exception leak.
 9243 	+ commit a852f99a0ac9dc7f7493b403f811f5f7518fae40
 9244 	* lang/python/helpers.c (pygpgme_stash_callback_exception): Fix leak.
 9245 
 9246 	python: Fix license.
 9247 	+ commit 3bacce03e60dc45cc2da99a2f5c504612202e802
 9248 	Other parts of the build system are also LGPLed.
 9249 
 9250 	* lang/python/Makefile.am: Fix license.
 9251 
 9252 2016-06-14  Werner Koch  <wk@gnupg.org>
 9253 
 9254 	core: Make sure FD_SET is not used with an out of range fd.
 9255 	+ commit 8173c4f1f8a145c4b1d454f6f05e26950e23d675
 9256 	* src/posix-io.c (_gpgme_io_select): Check for FD out of range.
 9257 
 9258 2016-06-08  Justus Winter  <justus@g10code.com>
 9259 
 9260 	python: Improve error handling.
 9261 	+ commit 77d149e8614c381458e07808a7930ce3fb92cdc3
 9262 	* lang/python/helpers.c (pyPassphraseCb): Handle write errors.
 9263 	(pyEditCb): Likewise.
 9264 
 9265 	python: Add function to raise exceptions from c.
 9266 	+ commit 5ebc205439cac266685d2532466df8b3457dea23
 9267 	* lang/python/helpers.c (pygpgme_raise_exception): New function.
 9268 
 9269 	python: Fix stripping deprecated functionality.
 9270 	+ commit 8426304b67a0b0a5630db500abf740b0e0b9e43c
 9271 	* lang/python/Makefile.am (gpgme.h): Add script as input.
 9272 	* lang/python/gpgme-h-clean.py (deprec_func): Also match struct
 9273 	members.
 9274 	(line_break): Fix matching on struct members.
 9275 
 9276 	python: Fix type.
 9277 	+ commit 990492ea4f7dafbb75de15ea91c30cbf090034b5
 9278 	* lang/python/gpgme.i: Use correct Python type for size.
 9279 
 9280 	python: Implement the context manager protocol.
 9281 	+ commit e3c5913a33edcbd7329b8d154c669f95ce782038
 9282 	* lang/python/pyme/core.py (Context.__del__): Make function
 9283 	idemptotent.
 9284 	(Context.{__enter__,__exit__}): Implement the context manager
 9285 	protocol.
 9286 	(Data.__del__): Make function idemptotent, drop debug print.
 9287 	(Data.{__enter__,__exit__}): Implement the context manager
 9288 	protocol.
 9289 	* lang/python/tests/t-idiomatic.py: Demonstrate this.
 9290 
 9291 2016-06-07  Justus Winter  <justus@g10code.com>
 9292 
 9293 	python: Fix error handling.
 9294 	+ commit f8f9bf06bc3190968ba6613032d60a3bf2c8a6d9
 9295 	* lang/python/gpgme.i: Fix freeing an uninitialized pointer in the
 9296 	error handling of generated wrapper functions by explicitly storing
 9297 	the pointer in a local variable which can be initialized.
 9298 
 9299 2016-06-06  Justus Winter  <justus@g10code.com>
 9300 
 9301 	python: Wrap file-like objects on demand.
 9302 	+ commit 8196edf9ca5c8f2f02553e7f22d9c79dbd229882
 9303 	* lang/python/gpgme.i (gpgme_data_t): Use new function to create
 9304 	wrapper objects if necessary, and deallocate them after the function
 9305 	call.
 9306 	* lang/python/helpers.c (object_to_gpgme_data_t): New function.
 9307 	* lang/python/helpers.h (object_to_gpgme_data_t): New prototype.
 9308 	* lang/python/tests/Makefile.am (pytests): Add new test.
 9309 	* lang/python/tests/t-idiomatic.py: New file.
 9310 
 9311 	python: Move helper function.
 9312 	+ commit 26c3accc95ab77ddbe60db822e2938ad5f480d41
 9313 	* lang/python/gpgme.i (object_to_gpgme_t): Move...
 9314 	* lang/python/helpers.c: ... here.
 9315 	* lang/python/helpers.h (object_to_gpgme_t): New prototype.
 9316 
 9317 	python: Fix error handling.
 9318 	+ commit 89eb0cd4d65bc033ed6342810b26232797482d64
 9319 	* lang/python/gpgme.i (object_to_gpgme_t): Properly propagate
 9320 	exceptions.
 9321 
 9322 	python: Initialize GPGME for the user.
 9323 	+ commit ae06f7c2fe0e49baeab5a827dc38ba8c57a6404c
 9324 	* lang/python/pyme/core.py: Call 'check_version' and explain why.
 9325 	* lang/python/tests/support.py (init_gpgme): Drop call here.
 9326 
 9327 2016-06-01  Justus Winter  <justus@g10code.com>
 9328 
 9329 	python: Fix test suite with GnuPG prior to 2.1.12.
 9330 	+ commit bbf19124bbec9eb6298cef2914baae7ac74382fe
 9331 	* lang/python/tests/Makefile.am (gpg-agent.conf): Use
 9332 	'allow-loopback-pinentry'.
 9333 
 9334 	python: Make Python detection more robust.
 9335 	+ commit 1607aa7fe5dd686ba3bfb6de4a2b602d6a458c86
 9336 	Previously, missing Python development packages made configure fail
 9337 	instead of merely disabling the bindings.
 9338 
 9339 	* configure.ac: Check for 'PYTHON_VERSION'.
 9340 	* m4/ax_python_devel.m4: Make test non-fatal.
 9341 
 9342 	python: Improve build system integration, fix warnings.
 9343 	+ commit 73c47535b631a55687ecc5eff1d1d9a9fd71021e
 9344 	* lang/python/Makefile.am: Pass CFLAGS to python build system.
 9345 	* lang/python/helpers.c (pyPassphraseCb): Use correct type for length.
 9346 	(pygpgme_data_new_from_cbs): Drop unused variable.
 9347 
 9348 2016-06-01  Andre Heinecke  <aheinecke@intevation.de>
 9349 
 9350 	Cpp: Use whitelist for status messages.
 9351 	+ commit 54314a9c7d7ad52981c836ca742644a1fa69b518
 9352 	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 9353 	Use whitelist instead of blacklist.
 9354 
 9355 	Qt: Fix debug output in t-ownertrust.
 9356 	+ commit 9d6f85bd25e51445f1776b498875e77b529311b1
 9357 	* lang/qt/tests/t-ownertrust.cpp (testChangeOwnerTrust): Remove
 9358 	general debug of trust level. Add debug output for error.
 9359 
 9360 2016-06-01  Justus Winter  <justus@gnupg.org>
 9361 
 9362 	tests: Fix notation tests.
 9363 	+ commit c88c9ef384b6f7bda9a61b58f26c2f89ae25f684
 9364 	* lang/python/tests/t-sig-notation.py (check_result): Check critical
 9365 	flag.
 9366 	* tests/gpg/t-sig-notation.c (check_result): Likewise.
 9367 
 9368 2016-06-01  Werner Koch  <wk@gnupg.org>
 9369 
 9370 	core: Set notation flags for verify.
 9371 	+ commit 1cacd7d00a7b3de4a5e11ccce5ee6c50e0a5516d
 9372 	* src/gpgme.h.in (GPGME_STATUS_NOTATION_FLAGS): New.
 9373 	* src/status-table.c (status_table): Add new status.
 9374 	* src/verify.c (parse_notation): Handle flags.  Also fix NOTATION_DATA
 9375 	in case gpg would not percent-escape spaces.
 9376 	(_gpgme_verify_status_handler): Handle flags.
 9377 	* tests/run-verify.c (print_result): Print notaion data.
 9378 
 9379 2016-05-31  Tobias Mueller  <muelli@cryptobitch.de>
 9380 
 9381 	python: use GPG_ERROR_CONFIG variable.
 9382 	+ commit 8ad17f402f6420880dcf06a13a54feadb52c0208
 9383 	instead of calling gpg-error-config.
 9384 	This is useful when configuring with --with-gpgerror-prefix
 9385 	because then GPG_ERROR_CONFIG contains the correct
 9386 	/path/to/bin/gpg-error-config whereas calling gpg-error-config
 9387 	directly would look in the user's PATH (and not in the prefix
 9388 	where gpg-error-config was installed).
 9389 
 9390 2016-05-31  Justus Winter  <justus@gnupg.org>
 9391 
 9392 	python: Port more tests.
 9393 	+ commit afa0dd56e1cce64fe08bff3c64b12aecce54fd2d
 9394 	* lang/python/gpgme.i: Hide length fields of notations.
 9395 	* lang/python/tests/Makefile.am (pytests): Add new tests.
 9396 	* lang/python/tests/t-decrypt-verify.py: New file.
 9397 	* lang/python/tests/t-sig-notation.py: Likewise.
 9398 	* lang/python/tests/t-verify.py: Likewise.
 9399 
 9400 2016-05-27  Werner Koch  <wk@gnupg.org>
 9401 
 9402 	Speedup closing of fds before exec.
 9403 	+ commit 89d22f9229f2ecd559ac6ea91dae60eeff940fa5
 9404 	* src/posix-io.c [__linux__]: Include dirent.h.
 9405 	(get_max_fds) [__linux__]: Try to figure out the highest used fd.
 9406 
 9407 2016-05-27  Justus Winter  <justus@gnupg.org>
 9408 
 9409 	python: Port more tests.
 9410 	+ commit 3915842657f0849a038752fd7445f96081a89dd9
 9411 	* lang/python/pyme/core.py (Data._error_check): Add
 9412 	'gpgme_data_get_file_name' to the list of functions not returning an
 9413 	error code.
 9414 	* lang/python/tests/Makefile.am (pytests): Add new tests.
 9415 	* lang/python/tests/support.py (verbose): New variable.
 9416 	* lang/python/tests/t-data.py: Test setting and getting the filename.
 9417 	* lang/python/tests/t-encrypt-large.py: New file.
 9418 	* lang/python/tests/t-file-name.py: Likewise.
 9419 	* lang/python/tests/t-trustlist.py: Likewise.
 9420 
 9421 	python: Implement data callbacks.
 9422 	+ commit 2ae847c02731994d99e69d3d025ff01f41406452
 9423 	* lang/python/gpgme.i (object_to_gpgme_t): Set exception on error.
 9424 	* lang/python/helpers.c (pyDataReadCb): New function.
 9425 	(pyDataWriteCb): Likewise.
 9426 	(pyDataSeekCb): Likewise.
 9427 	(pyDataReleaseCb): Likewise.
 9428 	(pygpgme_data_new_from_cbs): Likewise.
 9429 	* lang/python/helpers.h (pygpgme_data_new_from_cbs): New prototype.
 9430 	* lang/python/pyme/core.py (Data.__init__): Fix docstring, fix read
 9431 	callbacks.
 9432 	(Data.__del__): Fix read callbacks.
 9433 	(Data._free_readcb): Drop function.
 9434 	(Data._free_datacbs): New function.
 9435 	(Data.new_from_cbs): Fix setting the callbacks.
 9436 	(Data.write): Raise stashed exceptions.
 9437 	(Data.read): Likewise.
 9438 	* lang/python/tests/t-callbacks.py: Test new functionality.
 9439 	* lang/python/tests/t-data.py: Likewise.
 9440 
 9441 	python: Fix object deallocation.
 9442 	+ commit ebfe2300c33a3bad311e9ac1530e6c92636a08a4
 9443 	Handing a reference to the wrapper object created a non-trivial
 9444 	circular reference that Pythons garbage collector is unable to break.
 9445 	Explicitly break it by using a weak reference.
 9446 
 9447 	* lang/python/helpers.c (pygpgme_stash_callback_exception): Retrieve
 9448 	object from weak reference.
 9449 	* lang/python/pyme/core.py (Context.__del__): Free status callback.
 9450 	(Context.set_passphrase_cb): Use a weak reference.
 9451 	(Context.set_progress_cb): Likewise.
 9452 	(Context.set_status_cb): Likewise.
 9453 	(Context.op_edit): Likewise.
 9454 
 9455 	Improve comments.
 9456 	+ commit e74cd9fb80f12b764d5e4561e73d55644147e9e7
 9457 	* src/gpgme.h.in (gpgme_data_seek_cb_t, gpgme_data_seek): Clarify that
 9458 	these functions return the new offset.
 9459 	(gpgme_data_release_cb_t): Fix name of parameter.
 9460 
 9461 	python: Fix reading data from existing files.
 9462 	+ commit bf188e280b8b4fc775f33c47e2e1e275ed044004
 9463 	* lang/python/pyme/core.py (Data.__init__): Add 'copy' kwargument, and
 9464 	pass it to functions supporting it.  PEP8 fix.
 9465 	(Data.new_from_fd): PEP8 fix.
 9466 	(Data.new_from_file): Give a more helpful error message if copy is
 9467 	False.  PEP8 fix.
 9468 	(Data.new_from_fd): Hand the file descriptor to
 9469 	'gpgme_data_new_from_fd', not a stream.  Fix docstring.
 9470 	* lang/python/tests/t-data.py: Add tests for this.
 9471 
 9472 2016-05-25  Justus Winter  <justus@gnupg.org>
 9473 
 9474 	src: Fix trace string.
 9475 	+ commit ce73ae9d0cbf782cd3a1949fc4f568f0d1da60d9
 9476 	* src/data-compat.c (gpgme_data_new_from_file): Fix trace string.
 9477 
 9478 2016-05-24  Justus Winter  <justus@gnupg.org>
 9479 
 9480 	python: Improve and test Context.wait.
 9481 	+ commit 00ff6d07330028da370c869e3ec442eb76f8cbb8
 9482 	* lang/python/pyme/core.py (Context.wait): Improve docstring.  As the
 9483 	context passed to 'gpgme_wait' is never NULL, it is pointless to look
 9484 	at the returned context.  Always raise exceptions.
 9485 	* lang/python/tests/Makefile.am (pytests): Add new test.
 9486 	* lang/python/tests/t-wait.py: New file.
 9487 
 9488 	python: Make all GnuPG errors available.
 9489 	+ commit 7bc9cc717e428f48d4b27016f44c9f3900b1fba6
 9490 	* lang/python/Makefile.am (errors.i): Generate file.
 9491 	* lang/python/gpgme.i: Include generated file.
 9492 	* lang/python/pyme/errors.py: Pull in all errors and error sources.
 9493 
 9494 	python: Move the base wrapper class.
 9495 	+ commit 0ebd6a1b43a96bffa78da89dc8629edac0a74d35
 9496 	* python/lang/pyme/util.py (GpgmeWrapper): Move...
 9497 	* python/lang/pyme/core.py: ... here.
 9498 
 9499 	python: Support status callbacks.
 9500 	+ commit 8b57f06e0c04f5c9b87a3c76618230d757412076
 9501 	* lang/python/helpers.c (pyStatusCb): New function.
 9502 	(pygpgme_set_status_cb): Likewise.
 9503 	* lang/python/helpers.h (pygpgme_set_status_cb): New prototype.
 9504 	* lang/python/pyme/core.py (Context.__init__): Initialize
 9505 	'last_statuscb'.
 9506 	(Context._free_statuscb): New function.
 9507 	(Context.set_status_cb): Likewise.
 9508 	* lang/python/tests/t-callbacks.py: Test status callbacks.
 9509 
 9510 	python: Improve docstring.
 9511 	+ commit 72afb68f8c2f0cb326f20b289215402fd849339d
 9512 	* lang/python/pyme/core.py (Context.set_progress_cb): Improve
 9513 	docstring.
 9514 
 9515 2016-05-24  Andre Heinecke  <aheinecke@intevation.de>
 9516 
 9517 	Qt: Fix test build with clang.
 9518 	+ commit 00e93b2cae0585ff10425421d9097a846943b21c
 9519 	* lang/qt/tests/Makefile.am (LDADD): Explicitly add -lstdc++
 9520 
 9521 	Cpp: Set -std=c++11 also if CXXCPP is already set.
 9522 	+ commit b107fc8a92bd16bc0d868c771b6334d6594e6395
 9523 	* m4/ax_cxx_compile_stdxx.m4 (AX_CXX_COMPILE_STDCXX): Set CXXCPP if
 9524 	neccessary.
 9525 
 9526 2016-05-24  Justus Winter  <justus@gnupg.org>
 9527 
 9528 	python: Improve support for edit callbacks.
 9529 	+ commit 09803c4a81b9431fd4c8f30abb1c60c4c735f0cb
 9530 	* lang/python/helpers.c (pyEditCb): Stash exceptions.
 9531 	* lang/python/pyme/core.py (Context.op_edit): Hand in 'self'.
 9532 	* lang/python/tests/Makefile.am (py_tests): Add new test.
 9533 	* lang/python/tests/t-callbacks.py: Test edit callbacks.
 9534 	* lang/python/tests/t-edit.py: New file.
 9535 
 9536 2016-05-23  Justus Winter  <justus@gnupg.org>
 9537 
 9538 	python: Fix hook.
 9539 	+ commit 283f0bdc3d32624dac93d02ba3df516e69d8d4ba
 9540 	* lang/python/helpers.c (pyProgressCb): Fix getting hook data.
 9541 	* lang/python/tests/t-callbacks.py: Show that this works.
 9542 
 9543 	python: Move edit callback function.
 9544 	+ commit 5476ca6813fc9d8833d5224f19d4bb7515380ab5
 9545 	* lang/python/gpgme.i (pyEditCb): Move...
 9546 	* lang/python/helpers.c: ... here.
 9547 	* lang/python/helpers.h (pyEditCb): New prototype.
 9548 
 9549 	python: Port more tests.
 9550 	+ commit a42d814a65fdc29a3be6efa97433997495696a88
 9551 	* lang/python/tests/Makefile.am (TESTS_ENVIRONMENT): Set
 9552 	LD_LIBRARY_PATH.
 9553 	(pytests): Add new tests.
 9554 	* lang/python/tests/t-callbacks.py: Trim imports.
 9555 	* lang/python/tests/t-encrypt-sign.py: New file.
 9556 	* lang/python/tests/t-export.py: Likewise.
 9557 	* lang/python/tests/t-signers.py: Likewise.
 9558 
 9559 	python: Translate list of strings.
 9560 	+ commit c9cc0412e940c78c3e9bacb6ff1459b5bb5bb9ad
 9561 	* lang/python/gpgme.i: Add typemap translating list of strings.
 9562 
 9563 2016-05-21  Werner Koch  <wk@gnupg.org>
 9564 
 9565 	api: Return Tofu info for signatures.
 9566 	+ commit 10df06ee8f9192309bf124872438f7c32457e1c6
 9567 	* src/gpgme.h.in (gpgme_tofu_policy_t): New.
 9568 	(gpgme_status_code_t): Add status codes for TOFU.
 9569 	(struct _gpgme_tofu_info, gpgme_tofu_info_t): New.
 9570 	(struct _gpgme_signature): Add field 'tofu'.
 9571 	* src/status-table.c (status_table): Add new codes.
 9572 	* src/verify.c: Include limits.h.
 9573 	(release_tofu_info): New.
 9574 	(release_op_data): Call that.
 9575 	(parse_tofu_user): New.
 9576 	(parse_tofu_stats): New.
 9577 	(parse_tofu_stats_long): New.
 9578 	(_gpgme_verify_status_handler): Handle TOFU status lines.
 9579 
 9580 	* tests/run-verify.c (print_description): New.
 9581 	(print_result): print tofu info.
 9582 
 9583 	api: Add new context flag "raw-description".
 9584 	+ commit dac2c5441d418536632f014c8b0e1359580279d1
 9585 	* src/context.h (struct gpgme_context): Add field raw_description.
 9586 	* src/gpgme.c (gpgme_set_ctx_flag): New flag.
 9587 
 9588 	core: New functions to help parsing of status lines.
 9589 	+ commit a92946a8cacc44f655249d84b316deae59e62671
 9590 	* src/conversion.c (_gpgme_split_fields): New.
 9591 	(_gpgme_strtoul_field): New.
 9592 
 9593 2016-05-20  Andre Heinecke  <aheinecke@intevation.de>
 9594 
 9595 	Qt: Add test for changeownertrust.
 9596 	+ commit eaf2d018e63c15cd9a81e5c1fd2fedbf8829f7b9
 9597 	* lang/qt/tests/t-ownertrust.cpp: New test.
 9598 	* lang/qt/tests/Makefile.am: Add test.
 9599 
 9600 	Cpp: Ignore STATUS_KEY_CONSIDERED when editing.
 9601 	+ commit 5df858cbf196b2a53d600b7f45655f7b35c1fe93
 9602 	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 9603 	Handle GPGME_STATUS_KEY_CONSIDERED.
 9604 
 9605 2016-05-19  Werner Koch  <wk@gnupg.org>
 9606 
 9607 	api: Add new function gpgme_set_ctx_flag.
 9608 	+ commit 88f2c1c0d16eee6bb36a901623ea65ac69499f03
 9609 	* src/gpgme.h.in (gpgme_set_ctx_flag): New prototype.
 9610 	* src/gpgme.c (gpgme_set_ctx_flag): New.
 9611 	* src/gpgme.def, src/libgpgme.vers: Add new function.
 9612 	* src/context.h (struct gpgme_context): Add FULL_STATUS.
 9613 	* src/decrypt.c (_gpgme_decrypt_status_handler): Do not call the
 9614 	  status callback if FULL_STATUS is set.
 9615 	* src/genkey.c (genkey_status_handler): Ditto.
 9616 	* src/passphrase.c (_gpgme_passphrase_status_handler): Ditto.
 9617 	* src/sign.c (_gpgme_sign_status_handler): Ditto.
 9618 
 9619 	* src/engine-backend.h (struct engine_ops): Add SET_STATUS_CB and add
 9620 	adjust all definitions of that variable.
 9621 	* src/engine.c (_gpgme_engine_set_status_cb): New.
 9622 	* src/op-support.c (_gpgme_op_reset): Call this function.
 9623 
 9624 	* src/engine-gpg.c (struct engine_gpg): Add fields MON_CB and
 9625 	MON_CB_VALUE.
 9626 	(gpg_set_status_cb): New.
 9627 	(_gpgme_engine_ops_gpg): Register that function.
 9628 	(read_status): Call the monitor callback.
 9629 
 9630 	* src/engine-gpgsm.c (struct engine_gpgsm): Add fields MON_CB and
 9631 	MON_CB_VALUE.
 9632 	(_gpgme_engine_ops_gpgsm): Register that function.
 9633 	(gpgsm_assuan_simple_command): Change first arg to be an engine
 9634 	context and adjust call callers.  Call the monitor callback.
 9635 
 9636 	* src/engine-uiserver.c (struct engine_uiserver): Add fields MON_CB
 9637 	and MON_CB_VALUE.
 9638 	(_gpgme_engine_ops_uiserver): Register that function.
 9639 	(uiserver_assuan_simple_command): Change first arg to be an engine
 9640 	context and adjust call callers.  Call the monitor callback.
 9641 
 9642 	* tests/run-verify.c (status_cb): New.
 9643 	(print_result): Print algo names.
 9644 	(main): Add option --status.
 9645 
 9646 	api: Remove arbitrary restriction from gpgme_op_verify.
 9647 	+ commit 5aa8e588e166abeef2e3d677ab6830f2d7af1b5d
 9648 	* src/verify.c (verify_start): Do not return GPG_ERR_INV_VALUES when
 9649 	when SIGNED_TEXT is not given.
 9650 
 9651 2016-05-19  Justus Winter  <justus@gnupg.org>
 9652 
 9653 	python: Improve progress callbacks.
 9654 	+ commit 0d4e95621e05d50cd454049a424bb9ee098a5db6
 9655 	* lang/python/helpers.c (pyProgressCb): Stash python errors, convert
 9656 	'what' to Unicode object.
 9657 	* lang/python/pyme/core.py (Context.set_progress_cb): Hand in 'self'.
 9658 	* lang/python/tests/t-callbacks.py: Test progress callbacks.
 9659 
 9660 	python: Robust exception handling in callbacks.
 9661 	+ commit d90857a08c4fe5b73b6d6d46fd6200efdd72db44
 9662 	* lang/python/helpers.c (pygpgme_stash_callback_exception): New
 9663 	function.
 9664 	(pygpgme_raise_callback_exception): Likewise.
 9665 	(pyPassphraseCb): Stash python errors.
 9666 	* lang/python/helpers.h (pygpgme_raise_callback_exception): New
 9667 	prototype.
 9668 	* lang/python/pyme/core.py ({Context,Data}.__init__): Move common
 9669 	initialization to superclass.
 9670 	(Context.set_progress_cb): Hand in 'self'.
 9671 	* lang/python/pyme/util.py (GpgmeWrapper.__init__): New function.
 9672 	(GpgmeWrapper.__getattr__): Raise stashed exceptions.
 9673 	* lang/python/tests/Makefile.am (py_tests): Add new test.
 9674 	* lang/python/tests/t-callbacks.py: New file.
 9675 
 9676 2016-05-19  Andre Heinecke  <aheinecke@intevation.de>
 9677 
 9678 	Qt: Check for graphviz and set HAVE_DOT correctly.
 9679 	+ commit 2f748b5a2d162be4f23b18782219771ead54cb51
 9680 	* configure.ac: Check for graphviz and define HAVE_DOT.
 9681 	* lang/qt/doc/Doxyfile.in (HAVE_DOT): Use variable.
 9682 
 9683 2016-05-19  Justus Winter  <justus@gnupg.org>
 9684 
 9685 	python: Add more tests.
 9686 	+ commit 464d404c8816fc93baf945816c93e86bdeb0ea39
 9687 	* lang/python/tests/Makefile.am (py_tests): Add new tests.
 9688 	* lang/python/tests/support.py (print_data): New function.
 9689 	* lang/python/tests/t-decrypt.py: Use new function.
 9690 	* lang/python/tests/t-encrypt.py: Likewise.
 9691 	* lang/python/tests/t-sign.py: New file.
 9692 	* lang/python/tests/t-encrypt-sym.py: Likewise.
 9693 
 9694 	python: More type conversion fixes.
 9695 	+ commit c1c893e3384a07ff864507902fbac4a7fee4d6f1
 9696 	* lang/python/helpers.c (pyPassphraseCb): Cope with 'uid_hint' being
 9697 	NULL, convert it to an Unicode object, and cope with the callback
 9698 	returning both Unicode and bytes objects.
 9699 
 9700 	python: Fix import.
 9701 	+ commit 07f71cd17706093ca6b1507c41609356d479ae9f
 9702 	* lang/python/helpers.c (pygpgme_exception_init): Make module import
 9703 	relative.
 9704 
 9705 2016-05-19  Andre Heinecke  <aheinecke@intevation.de>
 9706 
 9707 	Qt: Fix compilation of unit tests.
 9708 	+ commit 375523ead3a749d77d286c56f10d403c07f2b014
 9709 	* lang/qt/tests/Makefile.am (AM_CPPFLAGS): Add -DBUILDING_QGPGME.
 9710 
 9711 2016-05-18  Justus Winter  <justus@gnupg.org>
 9712 
 9713 	python: Various fixes.
 9714 	+ commit 2c3a5d93e78cfca22785e51c5a65184a47da4bff
 9715 	* configure.ac: Fix SWIG detection, bump required Python version.
 9716 	* lang/python/Makefile.am: Portability fix.
 9717 
 9718 2016-05-18  Andre Heinecke  <aheinecke@intevation.de>
 9719 
 9720 	Fix typo in compatibility declaration.
 9721 	+ commit f0dca0ab92ed18d80e30d7d39db1596b4112794f
 9722 	* src/op-support.c (GPG_ERR_SUBKEYS_EXP_REV): Change to
 9723 	GPG_ERR_SUBKEYS_EXP_OR_REV.
 9724 
 9725 2016-05-17  Werner Koch  <wk@gnupg.org>
 9726 
 9727 	tests: New maintenance helper run-encrypt.
 9728 	+ commit 30b447fcfe0e4f362c2575e1b9388e8144b5b2fd
 9729 	* tests/run-encrypt.c: New.
 9730 
 9731 	Return dedicated error code for all subkeys expired or revoked.
 9732 	+ commit 315fb73d4a774e2c699ac1804f5377559b4d0027
 9733 	* src/gpgme.h.in (GPGME_STATUS_KEY_CONSIDERED): New.
 9734 	(GPGME_SIGSUM_TOFU_CONFLICT): New.
 9735 	* src/status-table.c (KEY_CONSIDERED): New.
 9736 	* src/op-support.c (_gpgme_parse_inv_recp): Add argc KC_FPR and
 9737 	KC_FLAGS.  Use calloc.  Detect all expired or revoked subkeys.
 9738 	(_gpgme_parse_key_considered): New.
 9739 	* src/sign.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
 9740 	(release_op_data): Free KC_FPR.
 9741 	(_gpgme_sign_status_handler): Handle STATUS_KEY_CONSIDERED.
 9742 	* src/encrypt.c (op_data_t): Add fields KC_FPR and KC_FLAGS.
 9743 	(release_op_data): Free KC_FPR.
 9744 	(_gpgme_encrypt_status_handler): Handle STATUS_KEY_CONSIDERED.
 9745 
 9746 2016-05-17  Andre Heinecke  <aheinecke@intevation.de>
 9747 
 9748 	Qt / Cpp: Port auto_ptr to unique_ptr.
 9749 	+ commit 9b36ebf37a3b889c955ba68038bd5b3d9c5cde4e
 9750 	* lang/cpp/src/context.cpp,
 9751 	lang/cpp/src/context.h,
 9752 	lang/cpp/src/context_p.h (Context::createForEngine),
 9753 	(Context::edit, Context::startEditing),
 9754 	(Context::takeLastEditInteractor, Context::cardEdit),
 9755 	(Context::startCardEditing, Context::takeLastCardEditInteractor),
 9756 	(Context::assuanTransact, Context::startAssuanTransaction),
 9757 	(Context::takeLastAssuanTransaction): Port to unique_ptr.
 9758 	* lang/qt/src/qgpgmeadduseridjob.cpp,
 9759 	lang/qt/src/qgpgmechangeexpiryjob.cpp,
 9760 	lang/qt/src/qgpgmechangeownertrustjob.cpp,
 9761 	lang/qt/src/qgpgmechangepasswdjob.cpp,
 9762 	lang/qt/src/qgpgmesignkeyjob.cpp: Update accordingly.
 9763 
 9764 2016-05-17  Justus Winter  <justus@gnupg.org>
 9765 
 9766 	build: Add python autoconf macro.
 9767 	+ commit 4711a1e181153a2395e5f523047595abd47965db
 9768 	* m4/ax_python_devel.m4: New file.
 9769 
 9770 	python: Clean up examples.
 9771 	+ commit 10328324c8fc9725cd0c885eaebfc80dc32c1ff6
 9772 	* lang/python/examples/delkey.py: Clean up example.
 9773 	* lang/python/examples/encrypt-to-all.py: Likewise.
 9774 	* lang/python/examples/genkey.py: Likewise.
 9775 	* lang/python/examples/inter-edit.py: Likewise.
 9776 	* lang/python/examples/sign.py: Likewise.
 9777 	* lang/python/examples/signverify.py: Likewise.
 9778 	* lang/python/examples/simple.py: Likewise.
 9779 	* lang/python/examples/t-edit.py: Likewise.
 9780 	* lang/python/examples/verifydetails.py: Likewise.
 9781 	* lang/python/pyme/__init__.py: Likewise.
 9782 
 9783 	python: Import GPGMEError.
 9784 	+ commit 64e5fe767f45e9ccb0fb3fe919171c222132a54c
 9785 	* pyme/core.py: Import GPGMEError.
 9786 
 9787 	Fixes c5d118b2.
 9788 
 9789 	python: Port more tests.
 9790 	+ commit 9ceaec25918c6c5f2dfafe4e20181b83ce78f6ce
 9791 	* lang/python/Makefile.am: Add bits from the c test suite.
 9792 	* lang/python/support.py: New file.
 9793 	* lang/python/t-decrypt.py: Likewise.
 9794 	* lang/python/t-encrypt.py: Likewise.
 9795 
 9796 2016-05-13  Andre Heinecke  <aheinecke@intevation.de>
 9797 
 9798 	Qt: Add keyLocateJob and test for it.
 9799 	+ commit 52f2295d528029a36a3e0a89c777297762b3fc9b
 9800 	* configure.ac (LIBQGPGME_LT_REVISION): Bump.
 9801 	* lang/qt/src/protocol.h (locateKeysJob): Add Job.
 9802 	* lang/qt/src/protocol_p.h (locateKeysJob): Implement.
 9803 	* lang/qt/tests/Makefile.am: Add t-keylocate.
 9804 	* lang/qt/tests/t-keylocate.cpp: New.
 9805 
 9806 	Qt: Add missing copyright header in test.
 9807 	+ commit 66ded1a5ce7236254f8541addecd4c3bc7b2878e
 9808 	* lang/qt/tests/t-keylist.cpp: Add copyright header.
 9809 
 9810 2016-05-12  Justus Winter  <justus@gnupg.org>
 9811 
 9812 	python: Share generated methods between objects.
 9813 	+ commit 11314f0db6e57597e3f56351a86fdb36a7a17dd7
 9814 	* lang/python/pyme/util.py (GpgmeWrapper.__getattr__): Monkey-patch
 9815 	the class.
 9816 	* lang/python/tests/t-wrapper.py: Demonstrate the sharing.
 9817 
 9818 	python: Raise exceptions on write errors.
 9819 	+ commit c5d118b2a76e9528df780d11da9566ff7c22e4f5
 9820 	* lang/python/pyme/core.py (Data.write): Handle errors.
 9821 	* lang/python/pyme/errors.py (GPGMEError.fromSyserror): New function.
 9822 
 9823 	python: Fix writing to data buffers.
 9824 	+ commit f7094d8358e933f3ce074eade7a40b2a7d291180
 9825 	* lang/python/gpgme.i: Add typemap for buffers.
 9826 	* lang/python/pyme/core.py (Data.write): Fix function.
 9827 	* lang/python/tests/Makefile.am: Add new test.
 9828 	* lang/python/tests/t-data.py: New file.
 9829 
 9830 	python: Add a test suite.
 9831 	+ commit e64bffe0307d14204b00a177a472cd4f99c07561
 9832 	* configure.ac: Add new Makefile.
 9833 	* lang/python/Makefile.am: Add subdirectory.
 9834 	* lang/python/tests/Makefile.am: New file.
 9835 	* lang/python/tests/t-wrapper.py: Likewise.
 9836 
 9837 	python: Cache generated wrapper functions.
 9838 	+ commit ed0ce84fbd2904bf59ac66ae7422716db3624efa
 9839 	* lang/python/util.py (GpgmeWrap.__getattr__): Cache generated wrapper
 9840 	functions.
 9841 
 9842 	python: Fix function invocation.
 9843 	+ commit e3d3d366bd1a1aea8a38ae5dcbf71ea3c784e920
 9844 	* lang/python/pyme/core.py (Data.new_from_fd): Fix function
 9845 	invocation.
 9846 
 9847 	python: Fix name of exception, make slot methods explicit.
 9848 	+ commit af9371eb63664c92fb67e8e7e03cc984e7d38a7f
 9849 	* lang/python/pyme/util.py (GpgmeWrapper._getctype): Fix exception,
 9850 	add docstring.
 9851 	(GpgmeWrapper._getnameprepend): New function.
 9852 	(GpgmeWrapper._errorcheck): Likewise.
 9853 
 9854 	python: Handle interpreter shutdown.
 9855 	+ commit ce5121ad53b0e17fbf9150b354c80da73f7fe190
 9856 	* lang/python/pyme/core.py: Avoid races at interpreter shutdown.  This
 9857 	silences the most annoying occurrences, however this problem also
 9858 	affects the SWIG generated code, which might indicate that the real
 9859 	problem is somewhere else.  If so, this change can be easily reverted.
 9860 
 9861 	python: Make test case more robust.
 9862 	+ commit c89d3a71ad20ff02755539a44f254b1e59054c4a
 9863 	* lang/python/examples/t-edit.py: Check if key is found.
 9864 
 9865 	python: Fix type translation.
 9866 	+ commit d60deb8a127fb35c01acc729f33b014840af0e7b
 9867 	* lang/python/gpgme.i: Adjust to Python3's string type being
 9868 	'Unicode', not 'bytes'.  Fix type checking.
 9869 	* lang/python/core.py (Data.write): Add docstring mentioning the
 9870 	expected type of parameter 'buffer'.
 9871 	(Data.read): Adjust read loop.  Also, use a saner chunk size, and join
 9872 	all chunks at the end instead of adding them.
 9873 	* lang/python/examples/simple.py: Adjust example.
 9874 
 9875 2016-05-11  Andre Heinecke  <aheinecke@intevation.de>
 9876 
 9877 	Cpp: Ensure gpgme.h is taken from current build.
 9878 	+ commit b8de79160b2e05ac84d8feb61ff7ed1f7015a623
 9879 	* lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add gpgme.h location.
 9880 
 9881 2016-05-11  Justus Winter  <justus@gnupg.org>
 9882 
 9883 	python: Fix simple example.
 9884 	+ commit bbeee5e1a060f2d1e37a08220eb552cf4673a058
 9885 	* lang/python/examples/simple.py: Flush stdout, encode name as
 9886 	UTF-8 before passing it to GPGME.
 9887 
 9888 	python: Integrate into the build system.
 9889 	+ commit a29babd07cf9f9625d2b5aa2eb6b7bc9d1828359
 9890 	* configure.ac: Make Python bindings configurable, add new Makefile.
 9891 	* lang/python/Makefile.am: New file.
 9892 	* lang/python/setup.py: Integrate into the build system.
 9893 	* m4/ax_pkg_swig.m4: New file from the autoconf archive.
 9894 	* m4/m4_ax_swig_python.m4: Likewise.
 9895 
 9896 2016-05-10  Andre Heinecke  <aheinecke@intevation.de>
 9897 
 9898 	Qt / Cpp: Fix make dist.
 9899 	+ commit c303292aca26c43b6efe98719edb3ff7b2d6665d
 9900 	* lang/cpp/src/Makefile.am (EXTRA_DIST): Fix typo.
 9901 	(private_gpgmepp_headers): New. Private headers.
 9902 	(libgpgmepp_la_SOURCES): Add private headers.
 9903 	* lang/qt/src/Makefile.am (t_keylist_SOURCES): Remove non existent
 9904 	header.
 9905 
 9906 2016-05-10  Justus Winter  <justus@gnupg.org>
 9907 
 9908 	python: PEP8 fixes.
 9909 	+ commit 11392a80d9a85bcd8718b105e6d58038e61beaac
 9910 	Cherry picked from 0267c151.
 9911 
 9912 2016-05-10  Andre Heinecke  <aheinecke@intevation.de>
 9913 
 9914 	Qt: Make Protocol class public API.
 9915 	+ commit 56c4d9ea9520c95612e525b2fa1359db6fa88f4a
 9916 	* lang/qt/src/Makefile.am (qgpgme_headers): Add protocol.h
 9917 	(private_qgpgme_headers): Add protocol_p.h
 9918 	* lang/qt/src/protocol.h: New. From QGpgMEBackend.
 9919 	* lang/qt/src/protocol_p.h: New. From QGpgMEBackend.
 9920 	* lang/qt/src/qgpgmebackend.h,
 9921 	lang/qt/src/qgpgmebackend.cpp (Protocol): Removed.
 9922 
 9923 	Qt: Make doxygen quieter.
 9924 	+ commit 97225bb01cd2ffa1d84c7fedbc577275de4a4893
 9925 	* lang/qt/doc/Doxyfile.in: Quiet and no undocumented warnings.
 9926 
 9927 	Qt: Only install public headers.
 9928 	+ commit 740f92a7b83389ee9bde98b7bd25556793500b8b
 9929 	* lang/qt/src/Makefile.am: Do not install all headers.
 9930 
 9931 	Qt: Add test for async keylisting.
 9932 	+ commit 0e3195948ddaba3af07d2415bb496491076edc17
 9933 	* src/lang/qt/tests/t-keylist.cpp(KeyListTest::testKeyListAsync): New.
 9934 
 9935 2016-05-10  Werner Koch  <wk@gnupg.org>
 9936 
 9937 	Allow cc to detect missing cases in a switch.
 9938 	+ commit fc38c15136c87ce971a8381fa87399088dd5a3cc
 9939 	* src/delete.c (delete_status_handler): Remove default case from a
 9940 	switch so that cc can check the use of all enum values.
 9941 
 9942 2016-05-06  Andre Heinecke  <aheinecke@intevation.de>
 9943 
 9944 	Use common error message style for qt lang checks.
 9945 	+ commit a579be82c84f0b9732ee3d52ff2142a3decf95d7
 9946 	* configure.ac: Use common error highliting for qt lang options.
 9947 
 9948 	Qt: Fix license mentioned in README.
 9949 	+ commit 11ff8d5964bf66f905818514f6a51fc881ea1a56
 9950 	* lang/qt/README: License is GPLv2+ and not LGPL.
 9951 
 9952 	Add maybe mode for langs and default to it.
 9953 	+ commit cd267791e9bd73505a2a1ea90c85df988e153c19
 9954 	* configure.ac (languages): Warn and disable langs for which
 9955 	requirements are not met.
 9956 
 9957 	Cpp: Handle PINENTRY_LAUNCHED status line.
 9958 	+ commit 3fad1216770f446a89801d842aa8667356a5ec95
 9959 	* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse):
 9960 	Add GPGME_STATUS_PINENTRY_LAUNCHED.
 9961 
 9962 2016-04-12  Andre Heinecke  <aheinecke@intevation.de>
 9963 
 9964 	Cpp: Add support for pubkey_algo_name.
 9965 	+ commit 5489532ad6ccf3a9b59405686b8a17352f1ecf06
 9966 	* lang/cpp/src/key.cpp (Subkey::algoName): New.
 9967 	* lang/cpp/src/key.h: Declare.
 9968 
 9969 	Cpp: Add support for gpgme_data_identify.
 9970 	+ commit d949d711dc1d944a9d627d39a89af74943a5a8c1
 9971 	* lang/cpp/src/data.cpp (Data::type): New.
 9972 	* lang/cpp/src/data.h (Data::Type): New enum mapping.
 9973 
 9974 	Fix configuration without Qt language.
 9975 	+ commit 6dba47c3a2c32d7c1e1d91a96030f99f606433ea
 9976 	* configure.ac: Define HAVE_DOXYGEN also if qt should not be built.
 9977 
 9978 2016-04-11  Andre Heinecke  <aheinecke@intevation.de>
 9979 
 9980 	Qt/Cpp: Bump so version to 6.
 9981 	+ commit 8e7074dbb8093cc342e330bcd6b172b4f769a0c6
 9982 	* configure.ac (LIBGPGMEPP_LT_CURRENT, LIBQGPGME_LT_CURRENT): Bump.
 9983 
 9984 	Qt / Cpp: Mention coding style in READMES.
 9985 	+ commit d2b55101195efe9702e855a48fc6e21839fb98cc
 9986 	* src/lang/cpp/README, src/lang/qt/README: Add hacking note.
 9987 
 9988 	Qt: Add doc generation with doxygen.
 9989 	+ commit a1e95f36ce1895cd9894f6d3ca76640c42c2f9fc
 9990 	* configure.ac: Look for doxygen if qt is built.
 9991 	 Configure new files.
 9992 	* lang/qt/doc/Doxyfile.in: New.
 9993 	* lang/qt/doc/Makefile.am: New.
 9994 	* lang/qt/README: Update.
 9995 
 9996 	Qt: Fix unit test by adding initial.test dep.
 9997 	+ commit d9f7a18ed88127e7f05d770d55118d1e928f3b3f
 9998 	* lang/qt/tests/t-keylist.cpp: Verify that GNUPGHOME is set.
 9999 	* lang/qt/tests/initial.test: New dummy test.
10000 	* lang/qt/tests/Makefile.am: Add dependency to initial.test
10001 
10002 	Qt: Remove remaining boost usage.
10003 	+ commit afd8fad6e275e2f74b2ad045dce05d826986e2ec
10004 	* lang/qt/src/dataprovider.h,
10005 	 lang/qt/src/decryptjob.h,
10006 	 lang/qt/src/decryptverifyjob.h,
10007 	 lang/qt/src/encryptjob.h,
10008 	 lang/qt/src/qgpgmeadduseridjob.cpp,
10009 	 lang/qt/src/qgpgmechangeexpiryjob.cpp,
10010 	 lang/qt/src/qgpgmechangeownertrustjob.cpp,
10011 	 lang/qt/src/qgpgmechangepasswdjob.cpp,
10012 	 lang/qt/src/qgpgmedecryptjob.cpp,
10013 	 lang/qt/src/qgpgmedecryptverifyjob.cpp,
10014 	 lang/qt/src/qgpgmedeletejob.cpp,
10015 	 lang/qt/src/qgpgmedownloadjob.cpp,
10016 	 lang/qt/src/qgpgmeencryptjob.cpp,
10017 	 lang/qt/src/qgpgmeexportjob.cpp,
10018 	 lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
10019 	 lang/qt/src/qgpgmeimportjob.cpp,
10020 	 lang/qt/src/qgpgmekeygenerationjob.cpp,
10021 	 lang/qt/src/qgpgmekeylistjob.cpp,
10022 	 lang/qt/src/qgpgmenewcryptoconfig.cpp,
10023 	 lang/qt/src/qgpgmenewcryptoconfig.h,
10024 	 lang/qt/src/qgpgmesignencryptjob.cpp,
10025 	 lang/qt/src/qgpgmesignjob.cpp,
10026 	 lang/qt/src/qgpgmesignkeyjob.cpp,
10027 	 lang/qt/src/qgpgmeverifydetachedjob.cpp,
10028 	 lang/qt/src/qgpgmeverifyopaquejob.cpp,
10029 	 lang/qt/src/signencryptjob.h,
10030 	 lang/qt/src/signjob.h,
10031 	 lang/qt/src/threadedjobmixin.cpp,
10032 	 lang/qt/src/threadedjobmixin.h,
10033 	 lang/qt/src/verifydetachedjob.h,
10034 	 lang/qt/src/verifyopaquejob.h: Remove boost usage.
10035 
10036 	Qt: Remove predicates.h and stl_util.h.
10037 	+ commit e18256fc5f613da9406da60c3ef2f84f2be04ef0
10038 	* src/lang/qt/predicates.h, src/lang/qt/stl_util.h: Removed.
10039 
10040 	Qt: Remove usage of stl_util.h and predicates.h.
10041 	+ commit d293bd32293929eeb3f6ec35f916a4678fb51729
10042 	* src/lang/qt/qgpgmelistallkeysjob.cpp: Use comperators from
10043 	  gpgmepp instead of detail. Remove boost usage.
10044 
10045 	Cpp: Add string comparators for keys.
10046 	+ commit 1bb162a54ba480413c4da07f2578efe6860494c0
10047 	* lang/cpp/src/global.h (GPGMEPP_MAKE_STRCMP): New.
10048 	  (_gpgmepp_strcmp): NULL save wrapper around std::strcmp.
10049 	* lang/cpp/src/key.h: Add comparators for various attributes.
10050 
10051 	Cpp: Remove last usages of boost.
10052 	+ commit 691950e18cf08a3f9bbc2004501834cd47bea579
10053 	* lang/cpp/src/configuration.cpp: Use std::remove_pointer.
10054 	  (Configuration::operator<<): std::for_each.
10055 	* lang/cpp/src/context.cpp: Delete manually instead of scoped ptr.
10056 	* lang/cpp/src/scdgetinfoassuantransaction.cpp: Use static_assert.
10057 	  (to_reader_list): Tokenize with getline.
10058 
10059 2016-04-04  Andre Heinecke  <aheinecke@intevation.de>
10060 
10061 	Add pthread in gpgmepp config.
10062 	+ commit cc68ff5f7210ac879fbdf719fcd5944f9ae5602b
10063 	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Add pthread.
10064 
10065 2016-04-03  Andre Heinecke  <aheinecke@intevation.de>
10066 
10067 	Cpp / Qt: Reduce boost usage (memory and tuple)
10068 	+ commit f98898ab1a6952e0c3a5d235963a27eba2e19e46
10069 	* cpp/src/assuanresult.h,
10070 	 cpp/src/configuration.cpp,
10071 	 cpp/src/configuration.h,
10072 	 cpp/src/data.h,
10073 	 cpp/src/decryptionresult.h,
10074 	 cpp/src/defaultassuantransaction.cpp,
10075 	 cpp/src/encryptionresult.cpp,
10076 	 cpp/src/encryptionresult.h,
10077 	 cpp/src/engineinfo.h,
10078 	 cpp/src/gpgagentgetinfoassuantransaction.cpp,
10079 	 cpp/src/gpgsignkeyeditinteractor.cpp,
10080 	 cpp/src/importresult.cpp,
10081 	 cpp/src/importresult.h,
10082 	 cpp/src/key.h,
10083 	 cpp/src/keygenerationresult.h,
10084 	 cpp/src/keylistresult.h,
10085 	 cpp/src/notation.h,
10086 	 cpp/src/signingresult.cpp,
10087 	 cpp/src/signingresult.h,
10088 	 cpp/src/verificationresult.cpp,
10089 	 cpp/src/verificationresult.h,
10090 	 cpp/src/vfsmountresult.h,
10091 	 qt/src/dataprovider.cpp,
10092 	 qt/src/dataprovider.h,
10093 	 qt/src/decryptjob.h,
10094 	 qt/src/decryptverifyjob.h,
10095 	 qt/src/downloadjob.h,
10096 	 qt/src/encryptjob.h,
10097 	 qt/src/qgpgmeadduseridjob.cpp,
10098 	 qt/src/qgpgmechangeexpiryjob.cpp,
10099 	 qt/src/qgpgmechangeownertrustjob.cpp,
10100 	 qt/src/qgpgmechangepasswdjob.cpp,
10101 	 qt/src/qgpgmedecryptjob.cpp,
10102 	 qt/src/qgpgmedecryptjob.h,
10103 	 qt/src/qgpgmedecryptverifyjob.cpp,
10104 	 qt/src/qgpgmedecryptverifyjob.h,
10105 	 qt/src/qgpgmedeletejob.cpp,
10106 	 qt/src/qgpgmedownloadjob.cpp,
10107 	 qt/src/qgpgmedownloadjob.h,
10108 	 qt/src/qgpgmeencryptjob.cpp,
10109 	 qt/src/qgpgmeencryptjob.h,
10110 	 qt/src/qgpgmeexportjob.cpp,
10111 	 qt/src/qgpgmeexportjob.h,
10112 	 qt/src/qgpgmeimportfromkeyserverjob.cpp,
10113 	 qt/src/qgpgmeimportfromkeyserverjob.h,
10114 	 qt/src/qgpgmeimportjob.cpp,
10115 	 qt/src/qgpgmeimportjob.h,
10116 	 qt/src/qgpgmekeygenerationjob.cpp,
10117 	 qt/src/qgpgmekeygenerationjob.h,
10118 	 qt/src/qgpgmekeylistjob.cpp,
10119 	 qt/src/qgpgmekeylistjob.h,
10120 	 qt/src/qgpgmelistallkeysjob.cpp,
10121 	 qt/src/qgpgmelistallkeysjob.h,
10122 	 qt/src/qgpgmenewcryptoconfig.cpp,
10123 	 qt/src/qgpgmenewcryptoconfig.h,
10124 	 qt/src/qgpgmesignencryptjob.cpp,
10125 	 qt/src/qgpgmesignencryptjob.h,
10126 	 qt/src/qgpgmesignjob.cpp,
10127 	 qt/src/qgpgmesignjob.h,
10128 	 qt/src/qgpgmesignkeyjob.cpp,
10129 	 qt/src/qgpgmeverifydetachedjob.cpp,
10130 	 qt/src/qgpgmeverifydetachedjob.h,
10131 	 qt/src/qgpgmeverifyopaquejob.cpp,
10132 	 qt/src/qgpgmeverifyopaquejob.h,
10133 	 qt/src/signencryptjob.h,
10134 	 qt/src/signjob.h,
10135 	 qt/src/threadedjobmixin.h,
10136 	 qt/src/verifydetachedjob.h,
10137 	 qt/src/verifyopaquejob.h: Reduce boost usage.
10138 
10139 	Cpp: Require c++ 11 if cpp binding requested.
10140 	+ commit c07aaef6eb8a9b5e623479f27d562fd1570bf4bb
10141 	* configure.ac: Call ax_cxx_compile_stdcxx
10142 	* m4/ax_cxx_compile_stdcxx.m4
10143 
10144 	Qt: Add static factor methods for protocol.
10145 	+ commit 0991485170ca4ef90fd566540522027d0fc59a72
10146 	* lang/qt/src/qgpgmebackend.cpp (QGpgME::openpgp, QGpgME::smime): New.
10147 	* lang/qt/src/qgpgmebackend.h: Declare.
10148 	* lang/qt/tests/t-keylist.cpp (KeyListTest::testSingleKeyListSync):
10149 	  Use new functions.
10150 
10151 	Qt: Add a unit test for qgpgme.
10152 	+ commit faf987dd62893955251378a2a715edd2892a540c
10153 	* configure.ac: Configure test Makefile.
10154 	* m4/qt.m4: Look up Qt5Test flags.
10155 	* lang/qt/tests/t-keylist.cpp: New. Simple keylist check.
10156 	* lang/qt/tests/Makefile.am: New. General test framework.
10157 
10158 	Qt: Add missing MOC includes.
10159 	+ commit b7b9e38399a572cb61a297db552026eac5b2a5e1
10160 	* qgpgmeadduseridjob.cpp,
10161 	 qgpgmechangeexpiryjob.cpp,
10162 	 qgpgmechangeownertrustjob.cpp,
10163 	 qgpgmechangepasswdjob.cpp,
10164 	 qgpgmedecryptjob.cpp,
10165 	 qgpgmedecryptverifyjob.cpp,
10166 	 qgpgmedeletejob.cpp,
10167 	 qgpgmedownloadjob.cpp,
10168 	 qgpgmeencryptjob.cpp,
10169 	 qgpgmeexportjob.cpp,
10170 	 qgpgmeimportfromkeyserverjob.cpp,
10171 	 qgpgmeimportjob.cpp,
10172 	 qgpgmekeygenerationjob.cpp,
10173 	 qgpgmekeylistjob.cpp,
10174 	 qgpgmelistallkeysjob.cpp,
10175 	 qgpgmerefreshkeysjob.cpp,
10176 	 qgpgmesecretkeyexportjob.cpp,
10177 	 qgpgmesignencryptjob.cpp,
10178 	 qgpgmesignjob.cpp,
10179 	 qgpgmesignkeyjob.cpp,
10180 	 qgpgmeverifydetachedjob.cpp,
10181 	 qgpgmeverifyopaquejob.cpp: Add missing MOC includes.
10182 
10183 	Qt: Declare pure virtuals as such.
10184 	+ commit 0cc9006dbc59d87c6bcda88b36d59dcb69ac35cb
10185 	* lang/qt/src/qgpgmebackend.h (Protocol): Make all functions
10186 	 pure virtual.
10187 
10188 	Qt: Don't declare showErrorDialog anymore.
10189 	+ commit 3e38cc6fc67c420dec3e9e8afd072b4c8a157c85
10190 	* cpp/qt/src/job.h: Remove showErrorDialog.
10191 
10192 	Qt: Only use GpgME based config class.
10193 	+ commit 7071b2a9c00b85d434d01b6166269ebf48b01b81
10194 	* lang/qt/src/qgpgmecryptoconfig.cpp,
10195 	 lang/qt/src/qgpgmecryptoconfig.h: Removed.
10196 	* lang/qt/src/qgpgmebackend.cpp: Return newcryptoconfig.
10197 
10198 2016-04-02  Andre Heinecke  <aheinecke@intevation.de>
10199 
10200 	Add additional include path in config files.
10201 	+ commit 63c115b067400e1b02c7d849c99f54dc9f394d68
10202 	* lang/cpp/src/GpgmeppConfig.cmake.in.in
10203 	 lang/qt/src/QGpgmeConfig.cmake.in.in: Include directory above headers.
10204 
10205 	Qt: Fix library name in nodist variable.
10206 	+ commit 576be46f34b42e896a5e3be65560a4b518a758be
10207 	* lang/qt/Makefile.am (nodist_qgpgme_SOURCES): Change to real name.
10208 
10209 	Add missing files to QGpgME.
10210 	+ commit a440050fc2c11e4867da9d4707616fa23ac52141
10211 	* lang/qt/src/gpgme_backend_debug.cpp,
10212 	 lang/qt/src/gpgme_backend_debug.h,
10213 	 lang/qt/src/predicates.h,
10214 	 lang/qt/src/stl_util.h: New.
10215 
10216 	Add QGpgME code from libkleo.
10217 	+ commit 226e51052ae73efa8d9f30729b28de68d35231af
10218 	* lang/qt/src/Makefile.am,
10219 	lang/qt/src/abstractimportjob.h,
10220 	lang/qt/src/adduseridjob.h,
10221 	lang/qt/src/changeexpiryjob.h,
10222 	lang/qt/src/changeownertrustjob.h,
10223 	lang/qt/src/changepasswdjob.h,
10224 	lang/qt/src/cryptoconfig.h,
10225 	lang/qt/src/decryptjob.h,
10226 	lang/qt/src/decryptverifyjob.h,
10227 	lang/qt/src/deletejob.h,
10228 	lang/qt/src/downloadjob.h,
10229 	lang/qt/src/encryptjob.h,
10230 	lang/qt/src/exportjob.h,
10231 	lang/qt/src/hierarchicalkeylistjob.h,
10232 	lang/qt/src/importfromkeyserverjob.h,
10233 	lang/qt/src/importjob.h,
10234 	lang/qt/src/job.cpp,
10235 	lang/qt/src/job.h,
10236 	lang/qt/src/keygenerationjob.h,
10237 	lang/qt/src/keylistjob.h,
10238 	lang/qt/src/listallkeysjob.h,
10239 	lang/qt/src/multideletejob.h,
10240 	lang/qt/src/qgpgmeadduseridjob.cpp,
10241 	lang/qt/src/qgpgmeadduseridjob.h,
10242 	lang/qt/src/qgpgmebackend.cpp,
10243 	lang/qt/src/qgpgmebackend.h,
10244 	lang/qt/src/qgpgmechangeexpiryjob.cpp,
10245 	lang/qt/src/qgpgmechangeexpiryjob.h,
10246 	lang/qt/src/qgpgmechangeownertrustjob.cpp,
10247 	lang/qt/src/qgpgmechangeownertrustjob.h,
10248 	lang/qt/src/qgpgmechangepasswdjob.cpp,
10249 	lang/qt/src/qgpgmechangepasswdjob.h,
10250 	lang/qt/src/qgpgmecryptoconfig.cpp,
10251 	lang/qt/src/qgpgmecryptoconfig.h,
10252 	lang/qt/src/qgpgmedecryptjob.cpp,
10253 	lang/qt/src/qgpgmedecryptjob.h,
10254 	lang/qt/src/qgpgmedecryptverifyjob.cpp,
10255 	lang/qt/src/qgpgmedecryptverifyjob.h,
10256 	lang/qt/src/qgpgmedeletejob.cpp,
10257 	lang/qt/src/qgpgmedeletejob.h,
10258 	lang/qt/src/qgpgmedownloadjob.cpp,
10259 	lang/qt/src/qgpgmedownloadjob.h,
10260 	lang/qt/src/qgpgmeencryptjob.cpp,
10261 	lang/qt/src/qgpgmeencryptjob.h,
10262 	lang/qt/src/qgpgmeexportjob.cpp,
10263 	lang/qt/src/qgpgmeexportjob.h,
10264 	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
10265 	lang/qt/src/qgpgmeimportfromkeyserverjob.h,
10266 	lang/qt/src/qgpgmeimportjob.cpp,
10267 	lang/qt/src/qgpgmeimportjob.h,
10268 	lang/qt/src/qgpgmekeygenerationjob.cpp,
10269 	lang/qt/src/qgpgmekeygenerationjob.h,
10270 	lang/qt/src/qgpgmekeylistjob.cpp,
10271 	lang/qt/src/qgpgmekeylistjob.h,
10272 	lang/qt/src/qgpgmelistallkeysjob.cpp,
10273 	lang/qt/src/qgpgmelistallkeysjob.h,
10274 	lang/qt/src/qgpgmenewcryptoconfig.cpp,
10275 	lang/qt/src/qgpgmenewcryptoconfig.h,
10276 	lang/qt/src/qgpgmerefreshkeysjob.cpp,
10277 	lang/qt/src/qgpgmerefreshkeysjob.h,
10278 	lang/qt/src/qgpgmesecretkeyexportjob.cpp,
10279 	lang/qt/src/qgpgmesecretkeyexportjob.h,
10280 	lang/qt/src/qgpgmesignencryptjob.cpp,
10281 	lang/qt/src/qgpgmesignencryptjob.h,
10282 	lang/qt/src/qgpgmesignjob.cpp,
10283 	lang/qt/src/qgpgmesignjob.h,
10284 	lang/qt/src/qgpgmesignkeyjob.cpp,
10285 	lang/qt/src/qgpgmesignkeyjob.h,
10286 	lang/qt/src/qgpgmeverifydetachedjob.cpp,
10287 	lang/qt/src/qgpgmeverifydetachedjob.h,
10288 	lang/qt/src/qgpgmeverifyopaquejob.cpp,
10289 	lang/qt/src/qgpgmeverifyopaquejob.h,
10290 	lang/qt/src/refreshkeysjob.h,
10291 	lang/qt/src/signencryptjob.h,
10292 	lang/qt/src/signjob.h,
10293 	lang/qt/src/signkeyjob.h,
10294 	lang/qt/src/specialjob.h,
10295 	lang/qt/src/threadedjobmixin.cpp,
10296 	lang/qt/src/threadedjobmixin.h,
10297 	lang/qt/src/verifydetachedjob.h,
10298 	lang/qt/src/verifyopaquejob.h: New.
10299 	* lang/qt/src/Makefile.am:
10300 
10301 2016-03-08  Andre Heinecke  <aheinecke@intevation.de>
10302 
10303 	Add qgpgme as qt language binding.
10304 	+ commit 8347f3d5fc3e476aa767fbbaf09a1310a6154280
10305 	* configure.ac: Add version defines. Check for qt if neccessary.
10306 	* lang/README: Mention qt
10307 	* lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove comment. Find qgpgme.
10308 	* lang/qt/src/Makefile.am: New. Build qgpgme.
10309 	* lang/qt/README,
10310 	 lang/qt/src/Makefile.am,
10311 	 lang/qt/src/QGpgmeConfig.cmake.in.in,
10312 	 lang/qt/src/QGpgmeConfigVersion.cmake.in,
10313 	 lang/qt/src/dataprovider.cpp,
10314 	 lang/qt/src/dataprovider.h,
10315 	 lang/qt/src/qgpgme_export.h,
10316 	 m4/qt.m4: New.
10317 	* lang/cpp/src/GpgmeppConfig.cmake.in.in,
10318 	 lang/cpp/src/Makefile.am: Fix generated config file.
10319 
10320 	Remove obsolete w32-qt code.
10321 	+ commit 58ed9c17f00f420035ecc6973a6c6ed948757a9a
10322 	* configure.ac (w32-qt): Remove option and Qt checks.
10323 	* src/Makefile.am: Remove BUILD_W32_QT handling.
10324 	* src/kdpipeiodevice.cpp,
10325 	 src/kdpipeiodevice.h,
10326 	 src/kdpipeiodevice.moc,
10327 	 src/w32-qt-io.cpp: Removed.
10328 
10329 2016-03-02  Andre Heinecke  <aheinecke@intevation.de>
10330 
10331 	Add version info for gpgmepp.
10332 	+ commit a06603d75e80aba58df58f9a41770c56b6a1f0b8
10333 	* lang/cpp/src/Makefile.am (libgpgmepp_la_LDFLAGS): Add version info.
10334 
10335 	Add cmake configuration files.
10336 	+ commit 77c3fb450c7adf36804a55d76ff49a06a71d22a0
10337 	* configure.ac: Add libgpgmepp version. Configure cmake files.
10338 	* lang/cpp/src/Makefile.am: Add targets for cmake files.
10339 	 (EXTRA_DIST): Add cmake files.
10340 
10341 	Fix export header and windows export macros.
10342 	+ commit 98e5b672422ca1e38ca38ff0357cee6cc936aee0
10343 	* lang/cpp/src/gpgme_export.h: Fix variable name. Add Windows ifdefs.
10344 
10345 	Add header installation.
10346 	+ commit c5291a88913ace8f2115021b69c7aeb59b4f79d4
10347 	* lang/cpp/src/Makefile.am: Add headers as deps and install them.
10348 	 (AM_CPPFLAGS): Add BUILDING_GPGMEPP to be used in export macros.
10349 
10350 	Add enable-languages build option.
10351 	+ commit a313b3e28cc42785365822519b25d6a87dfdf0c9
10352 	* acinclude.m4 (LIST_MEMBER): New macro.
10353 	* configure.ac (enable-languages): New option. Add info output.
10354 	* lang/Makefile.am: Only add enabled language subdirs.
10355 
10356 2016-02-22  Andre Heinecke  <aheinecke@intevation.de>
10357 
10358 	Add README for gpgmepp.
10359 	+ commit 7286fc7f3d51d475f82c7c9821d031290f5b0066
10360 	* lang/README: Note down cpp.
10361 	* cpp/README: Add README based on original repo version.
10362 
10363 	Add buildsystem for Gpgmepp.
10364 	+ commit f5fd787b5b45cb14d539b5c26f44066eb9ac0f75
10365 	* configure.ac: Configure Makefiles.
10366 	* lang/Makefile.am: Add cpp subdir
10367 	* lang/cpp/Makefile.am: New. Add src subdir.
10368 	* lang/cpp/src/Makefile.am: New. Basic buildsystem.
10369 
10370 	Remove feature check ifdefs.
10371 	+ commit 433bb8e84b2d1e50b5c5b9f7f2006b60cd7d7785
10372 	* lang/cpp/src/assuanresult.cpp,
10373 	 lang/cpp/src/callbacks.cpp,
10374 	 lang/cpp/src/configuration.cpp,
10375 	 lang/cpp/src/context.cpp,
10376 	 lang/cpp/src/context_glib.cpp,
10377 	 lang/cpp/src/context_qt.cpp,
10378 	 lang/cpp/src/context_vanilla.cpp,
10379 	 lang/cpp/src/data.cpp,
10380 	 lang/cpp/src/decryptionresult.cpp,
10381 	 lang/cpp/src/defaultassuantransaction.cpp,
10382 	 lang/cpp/src/editinteractor.cpp,
10383 	 lang/cpp/src/encryptionresult.cpp,
10384 	 lang/cpp/src/engineinfo.cpp,
10385 	 lang/cpp/src/eventloopinteractor.cpp,
10386 	 lang/cpp/src/global.h,
10387 	 lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
10388 	 lang/cpp/src/importresult.cpp,
10389 	 lang/cpp/src/interfaces/assuantransaction.h,
10390 	 lang/cpp/src/key.cpp,
10391 	 lang/cpp/src/keygenerationresult.cpp,
10392 	 lang/cpp/src/keylistresult.cpp,
10393 	 lang/cpp/src/scdgetinfoassuantransaction.cpp,
10394 	 lang/cpp/src/signingresult.cpp,
10395 	 lang/cpp/src/trustitem.cpp,
10396 	 lang/cpp/src/util.h,
10397 	 lang/cpp/src/verificationresult.cpp,
10398 	 lang/cpp/src/vfsmountresult.cpp: Remove feature checks.
10399 
10400 	Initial checkin of gpgmepp sources.
10401 	+ commit 0855a1296a1908016f011eb5e6552854ac53e63a
10402 	Based on git.kde.org/pim/gpgmepp rev. 0e3ebc02
10403 
10404 	* lang/cpp/src/assuanresult.cpp,
10405 	 lang/cpp/src/assuanresult.h,
10406 	 lang/cpp/src/callbacks.cpp,
10407 	 lang/cpp/src/callbacks.h,
10408 	 lang/cpp/src/configuration.cpp,
10409 	 lang/cpp/src/configuration.h,
10410 	 lang/cpp/src/context.cpp,
10411 	 lang/cpp/src/context.h,
10412 	 lang/cpp/src/context_glib.cpp,
10413 	 lang/cpp/src/context_p.h,
10414 	 lang/cpp/src/context_qt.cpp,
10415 	 lang/cpp/src/context_vanilla.cpp,
10416 	 lang/cpp/src/data.cpp,
10417 	 lang/cpp/src/data.h,
10418 	 lang/cpp/src/data_p.h,
10419 	 lang/cpp/src/decryptionresult.cpp,
10420 	 lang/cpp/src/decryptionresult.h,
10421 	 lang/cpp/src/defaultassuantransaction.cpp,
10422 	 lang/cpp/src/defaultassuantransaction.h,
10423 	 lang/cpp/src/editinteractor.cpp,
10424 	 lang/cpp/src/editinteractor.h,
10425 	 lang/cpp/src/encryptionresult.cpp,
10426 	 lang/cpp/src/encryptionresult.h,
10427 	 lang/cpp/src/engineinfo.cpp,
10428 	 lang/cpp/src/engineinfo.h,
10429 	 lang/cpp/src/error.h,
10430 	 lang/cpp/src/eventloopinteractor.cpp,
10431 	 lang/cpp/src/eventloopinteractor.h,
10432 	 lang/cpp/src/exception.cpp,
10433 	 lang/cpp/src/exception.h,
10434 	 lang/cpp/src/global.h,
10435 	 lang/cpp/src/gpgadduserideditinteractor.cpp,
10436 	 lang/cpp/src/gpgadduserideditinteractor.h,
10437 	 lang/cpp/src/gpgagentgetinfoassuantransaction.cpp,
10438 	 lang/cpp/src/gpgagentgetinfoassuantransaction.h,
10439 	 lang/cpp/src/gpgmefw.h,
10440 	 lang/cpp/src/gpgmepp_export.h,
10441 	 lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp,
10442 	 lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
10443 	 lang/cpp/src/gpgsetownertrusteditinteractor.cpp,
10444 	 lang/cpp/src/gpgsetownertrusteditinteractor.h,
10445 	 lang/cpp/src/gpgsignkeyeditinteractor.cpp,
10446 	 lang/cpp/src/gpgsignkeyeditinteractor.h,
10447 	 lang/cpp/src/importresult.cpp,
10448 	 lang/cpp/src/importresult.h,
10449 	 lang/cpp/src/key.cpp,
10450 	 lang/cpp/src/key.h,
10451 	 lang/cpp/src/keygenerationresult.cpp,
10452 	 lang/cpp/src/keygenerationresult.h,
10453 	 lang/cpp/src/keylistresult.cpp,
10454 	 lang/cpp/src/keylistresult.h,
10455 	 lang/cpp/src/notation.h,
10456 	 lang/cpp/src/result.h,
10457 	 lang/cpp/src/result_p.h,
10458 	 lang/cpp/src/scdgetinfoassuantransaction.cpp,
10459 	 lang/cpp/src/scdgetinfoassuantransaction.h,
10460 	 lang/cpp/src/signingresult.cpp,
10461 	 lang/cpp/src/signingresult.h,
10462 	 lang/cpp/src/trustitem.cpp,
10463 	 lang/cpp/src/trustitem.h,
10464 	 lang/cpp/src/util.h,
10465 	 lang/cpp/src/verificationresult.cpp,
10466 	 lang/cpp/src/verificationresult.h,
10467 	 lang/cpp/src/vfsmountresult.cpp,
10468 	 lang/cpp/src/vfsmountresult.h,
10469 	 lang/cpp/src/interfaces/assuantransaction.h,
10470 	 lang/cpp/src/interfaces/dataprovider.h,
10471 	 lang/cpp/src/interfaces/passphraseprovider.h,
10472 	 lang/cpp/src/interfaces/progressprovider.h: New.
10473 
10474 2016-01-15  Werner Koch  <wk@gnupg.org>
10475 
10476 	Fix possible _SC_OPEN_MAX max problem on AIX.
10477 	+ commit e79199468ac54ce4fe919603ff7bada97267174f
10478 	* src/posix-io.c [HAVE_STDINT_H]: Include stdint.h.
10479 	(get_max_fds): Limit returned value for too high values.
10480 
10481 2015-12-09  Werner Koch  <wk@gnupg.org>
10482 
10483 	w32: Avoid conflict with Mingw-w64 version 4.0.4-1.
10484 	+ commit 83415dffaea53611dbce77b50d8ddfb2a50aed2e
10485 	* src/w32-util.c (mkstemp): Rename to my_mkstemp.  Change caller.
10486 
10487 2015-12-04  Daiki Ueno  <ueno@gnu.org>
10488 
10489 	Return on user cancellation of delete operation.
10490 	+ commit 67d7f7a9383763b01daf877c846bf3e32f647fa5
10491 	* src/delete.c (delete_status_handler): Return on ERROR status, if the
10492 	error location is set to "delete_key.secret" and the code is either
10493 	CANCELED or FULLY_CANCELED, which indicates a situation that the user
10494 	selected "No" on the confirmation dialog.
10495 
10496 	doc: Fix minor errors.
10497 	+ commit 3b6e9a3d0afcdd3c2f1de19f15924c3404c7140a
10498 	* doc/gpgme.texi: Fix errors and typos in the cancellation and
10499 	gpgme_import_result_t documentation.
10500 
10501 2015-10-29  Ben Kibbey  <bjk@luxsci.net>
10502 
10503 	Make use of user passphrase handler during passwd.
10504 	+ commit dfa79f9300b837b0f7f2ea44afa589bfcda1dbd9
10505 	* src/passwd.c (passwd_start): set engine passphrase command handler.
10506 
10507 2015-10-28  Werner Koch  <wk@gnupg.org>
10508 
10509 	w32: Add extra diagnostic about possible missing gpgme-w32spawn.exe.
10510 	+ commit bb2d11c1eebd4bcfb0f2cfce728026a7420dca47
10511 	* src/w32-io.c (_gpgme_io_spawn): Add a new diagnostic.
10512 
10513 	w32: Improve locating gpgconf on 64 bit systems.
10514 	+ commit a82e9b182f62966207cad0972be6fa284329a5a1
10515 	* src/w32-util.c (find_program_at_standard_place): Fallback to
10516 	CSIDL_PROGRAM_FILESX86.
10517 
10518 	w32: Add new global flag "w32-inst-dir".
10519 	+ commit bb600aa8fd2f9575ee7afc64c978e3e7523b1173
10520 	* src/gpgme.c (gpgme_set_global_flag): Add flag "w32-inst-dir";
10521 	* src/posix-util.c (_gpgme_set_override_inst_dir): New stub.
10522 	* src/w32-util.c (override_inst_dir): New var.
10523 	(_gpgme_get_inst_dir): Return this var is set.
10524 	(_gpgme_set_override_inst_dir): New.
10525 
10526 2015-10-16  NIIBE Yutaka  <gniibe@fsij.org>
10527 
10528 	cleanup: Fix type mismatch around gpgme_error_t.
10529 	+ commit 0d9d0a6b5b0c6f474a079bbaef11078c5df5f3b5
10530 	* src/data-compat.c (gpgme_error_to_errno): Use gpg_err_code
10531 	to get error code from gpgme_error_t.
10532 	* src/gpgme.c (gpgme_new): Don't use gpgme_error.
10533 
10534 2015-08-31  Werner Koch  <wk@gnupg.org>
10535 
10536 	gpgme-tool: Switch to argparse.c for option parsing.
10537 	+ commit f0ccce855bd99fca7cfbbcafe3544e3113fedc67
10538 	* src/argparse.c, src/argparse.h: New. Taken from current gnupg.
10539 	* src/Makefile.am (gpgme_tool_SOURCES): New.
10540 	* src/gpgme-tool.c: Remove all argp.h stuff.
10541 	(my_strusage): New.
10542 	(main): Change to use argparse.
10543 
10544 2015-08-30  Werner Koch  <wk@gnupg.org>
10545 
10546 	Add gpgme_pubkey_algo_string.
10547 	+ commit c4b6b35bfa98e478f1d13f4ce3e664771f2604c2
10548 	* src/gpgme.h.in (GPGME_PK_EDDSA): New.
10549 	(gpgme_pubkey_algo_string): New.
10550 	* src/conversion.c (_gpgme_map_pk_algo): Add new algo.
10551 	* src/gpgme.c (gpgme_pubkey_algo_string): New.
10552 	(gpgme_pubkey_algo_name): Reformat.
10553 
10554 2015-08-26  Werner Koch  <wk@gnupg.org>
10555 
10556 	Release 1.6.0.
10557 	+ commit 107bff70edb611309f627058dd4777a5da084b1a
10558 	* configure.ac: Set LT version to C25/A14/R0.
10559 
10560 	Make use of GPGRT macros is available.
10561 	+ commit c4f4b5c0a6fc172f7ceedc1a0021169e7f31b941
10562 	* src/gpgme.h.in (_GPGME_INLINE): Define using GPGRT_INLINE if
10563 	possible.  Fix problem with -Wundef by adding an extra "defined()".
10564 	(_GPGME_GCC_VERSION): Define using GPGRT_ macro if possible.
10565 
10566 2015-08-25  Werner Koch  <wk@gnupg.org>
10567 
10568 	Avoid -Wundef warnings if gpgme.h is used by g++.
10569 	+ commit 3f53d3d5d9e73a053b1e89073ef8f7cf01bfc8e6
10570 	* src/gpgme.h.in (_GPGME_INLINE): Move definition into the
10571 	extern-C-scope.
10572 
10573 	Add configure option --enable-build-timestamp.
10574 	+ commit ff91e699f7c14ea6cbc27b487cb40e9f6bd58901
10575 	* configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default.
10576 
10577 2015-08-25  Daiki Ueno  <ueno@gnu.org>
10578 
10579 	Relax ttyname_r error checks.
10580 	+ commit 028a0ef3336c5180797fb247448683195376c007
10581 	* src/engine-assuan.c (llass_new): Don't treat ttyname_r error as
10582 	fatal.
10583 	* src/engine-g13.c (g13_new): Likewise.
10584 	* src/engine-gpg.c (gpg_new): Likewise.
10585 	* src/engine-gpgsm.c (gpgsm_new): Likewise.
10586 	* src/engine-uiserver.c (uiserver_new): Likewise.
10587 
10588 2015-08-25  Werner Koch  <wk@gnupg.org>
10589 
10590 	Cleanup layout of gpgme.h.
10591 	+ commit 97f1f3e883808743da5ee144abab25de062f34ac
10592 	* src/gpgme.h.in: Reorder prototypes.  Chnage some comments.
10593 
10594 	Improve error return by checking the FAILURE status.
10595 	+ commit 8ddc5801ade02297924447df5745c8877a96e5e3
10596 	* src/gpgme.h.in (GPGME_STATUS_FAILURE): New.
10597 	* src/status-table.c (FAILURE): New.
10598 	* src/op-support.c (_gpgme_parse_failure): New.
10599 	* src/passphrase.c (_gpgme_passphrase_status_handler): Forward FAILURE
10600 	status line to the status callback.
10601 
10602 	* src/decrypt.c (op_data_t): Add field failure_code.
10603 	(_gpgme_decrypt_status_handler): Parse that code and act upon it on EOF.
10604 	* src/encrypt.c (op_data_t): Add field failure_code.
10605 	(_gpgme_encrypt_status_handler): Parse that code and act upon it on EOF.
10606 	* src/genkey.c (op_data_t): Add field failure_code.
10607 	(genkey_status_handler): Parse that code and act upon it on EOF.
10608 	* src/passwd.c (op_data_t): Add field failure_code.
10609 	(passwd_status_handler): Parse that code and act upon it on EOF.
10610 	* src/sign.c (op_data_t): Add field failure_code.
10611 	(_gpgme_sign_status_handler): Parse that code and act upon it on EOF.
10612 	* src/verify.c (op_data_t): Add field failure_code.
10613 	(_gpgme_verify_status_handler): Parse that code and act upon it on EOF.
10614 
10615 	tests: Allow using run-sign to test loopback pinentry problems.
10616 	+ commit 491fcd91b84564232d5d061942baa50b99e166c0
10617 	* tests/run-sign.c: Add options --status and --loopback.
10618 
10619 2015-08-24  Werner Koch  <wk@gnupg.org>
10620 
10621 	Call status_cb for an ERROR status seen in the passphrase handler.
10622 	+ commit ad46f4f655e653580343c15f1b0b365b7d307d1b
10623 	* src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb.
10624 
10625 	w32: Look for gpgconf in the new GnuPG 2.1 install dir.
10626 	+ commit a7dbab23ea4976d106d649aa515ffb2968a085ed
10627 	* src/w32-util.c (_gpgme_get_gpgconf_path): Try another location of
10628 	gpgconf.exe.
10629 
10630 	w32: Expect gpgme-w32spawn.exe only in the gpgme installation dir.
10631 	+ commit 06d6fd8ca01354c8f7cfc847c4ac1b868268cbaa
10632 	* src/w32-util.c (find_program_at_standard_place): Remove.
10633 	(_gpgme_get_gpg_path): Make the search order more explicit.
10634 	(_gpgme_get_gpgconf_path): Ditto.
10635 	(_gpgme_get_w32spawn_path): Search only in the inst_dir.
10636 
10637 	w32: Print the installation directory in debug mode.
10638 	+ commit df098d6a437109c57516db75addf3764a6dfda81
10639 	* src/debug.c (debug_init) [W32]: Show libgpgme installation dir.
10640 
10641 	Add an export secret key feature.
10642 	+ commit 2b632bbb78eee2b94c122f66d171a7c80e9c4fb0
10643 	* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET): New.
10644 	(GPGME_EXPORT_MODE_RAW): New.
10645 	(GPGME_EXPORT_MODE_PKCS12): New.
10646 	* src/export.c (export_start, export_ext_start): Allow new flags.
10647 	* src/engine-gpg.c (export_common): Support secret key export.
10648 	* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto.
10649 
10650 	* src/gpgme-tool.c (cmd_export): Add options --secret, --raw,
10651 	and --pkcs12.
10652 	* tests/run-export.c (main): Likewise.
10653 
10654 2015-08-16  Ben Kibbey  <bjk@luxsci.net>
10655 
10656 	Parse INQUIRE_MAXLEN in the passphrase callback.
10657 	+ commit ccbaccbf2e0ba582d181b9ee4d8543d7c1248b2c
10658 	* src/passphrase.c (_gpgme_passphrase_status_handler): Parse
10659 	GPGME_STATUS_INQUIRE_MAXLEN.
10660 	* src/passphrase.c (_gpgme_passphrase_command_handler): Send the
10661 	INQUIRE_MAXLEN status message.
10662 
10663 	Fix gpgme_{get,set}_status_cb to match documentation.
10664 	+ commit 70b3e5964ea0592bd09d1877d720b2c63f501970
10665 	* doc/gpgme.texi: Minor fixes.
10666 	* src/gpgme.c (gpgme_get_status_cb): Set return variables to NULL and
10667 	check for a valid ctx pointer.
10668 
10669 	Parse the INQUIRE_MAXLEN status message.
10670 	+ commit 6dd24c3c6133ec54f75abd056191a8027fe01de0
10671 	* src/gpgme.h.in: (gpgme_status_code_t): Add INQUIRE_MAXLEN.
10672 	* src/status-table.c (status_table_s): Ditto.
10673 	* src/genkey.c (genkey_status_handler): Parse INQUIRE_MAXLEN.
10674 	* src/decrypt.c (_gpgme_decrypt_status_handler): Ditto.
10675 	* src/sign.c (_gpgme_sign_status_handler): Ditto.
10676 
10677 	This status message informs the client of the maximum length of an
10678 	inquired line. It is sent from gpg and forwarded to the client via
10679 	gpgme_status_cb_t.
10680 
10681 	Add gpgme_set/get_status_cb().
10682 	+ commit 4fadcf06ec8b0ebfb05c7622dbc3b73fd3c1bad9
10683 	* src/gpgme.h.in (gpgme_set_status_cb): New.
10684 	(gpgme_get_status_cb): New.
10685 	(gpgme_status_cb_t): New.
10686 	* src/gpgme.c (gpgme_set_status_cb): New.
10687 	(gpgme_get_status_cb): New.
10688 	* src/context.h (status_cb): New.
10689 	(status_cb_value): New.
10690 	* src/gpgme.def: Export new symbols.
10691 	* src/libgpgme.vers: Ditto.
10692 	* doc/gpgme.texi: Document these new functions.
10693 
10694 	Make use of user passphrase handler during genkey.
10695 	+ commit 2b6ae3dadf4432f7a72fd119144b835f7b1adcc4
10696 	* src/genkey.c (genkey_start): set engine passphrase command handler.
10697 
10698 2015-08-12  Ben Kibbey  <bjk@luxsci.net>
10699 
10700 	Also check the return code in gpg_sign().
10701 	+ commit e07d38f5f9f3b94e403f1265ff7fd3d7009dd557
10702 	* src/engine-gpg.c (gpg_sign): Check return value from start().
10703 
10704 2015-08-11  Ben Kibbey  <bjk@luxsci.net>
10705 
10706 	Check the return value when starting gpg.
10707 	+ commit 8f28e3caf95d7bc99e9271bfc2b44080166af31f
10708 	* src/engine-gpg.c (gpg_decrypt, gpg_delete, gpg_passwd): Check return
10709 	value of start().
10710 
10711 2015-08-02  Ben McGinnes  <ben@adversary.org>
10712 
10713 	More GTK2 removal.
10714 	+ commit a7fbd5293ed0ba2c179837a4a2b859376d30e35e
10715 	* Missed a couple of files, these 2 go for the same reason as the
10716 	  previous 3.
10717 
10718 	Removed GUI examples.
10719 	+ commit 1cd0aef0afb196094d90673002d4c210a04911c9
10720 	* GUI examples written with pygtk, which has not been ported to Python
10721 	  3 and won't be as it is for GTK2 and GNOME is moving to GTK3.
10722 	* New GUI examples may be required in future using any of several GUI
10723 	  frameworks (e.g. wxPython, PyQt, PySide, PyGObject, etc.).
10724 
10725 2015-07-31  Andre Heinecke  <aheinecke@intevation.de>
10726 
10727 	Add offline mode support for CMS keylisting.
10728 	+ commit 08086dd6901740e155e4361212b4e9cff8a47296
10729 	* doc/gpgme.texi: Document offline mode.
10730 	* src/context.h (gpgme_context): Add offline.
10731 	* src/engine-backend.h (keylist, keylist_ext): Add engine_flags.
10732 	* src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto.
10733 	  (_gpgme_engine_op_keylist_ext): Ditto.
10734 	* src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): New.
10735 	* src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto.
10736 	* src/engine-gpgsm.c (gpgsm_keylist): Handle engine_flags.
10737 	  (gpgsm_keylist_ext): Ditto.
10738 	* src/gpgme.c (gpgme_set_offline, gpgme_get_offline): New.
10739 	* src/gpgme.def (gpgme_set_offline, gpgme_get_offline): New.
10740 	* src/gpgme.h.in (gpgme_set_offline, gpgme_get_offline): New.
10741 	* src/libgpgme.vers (gpgme_set_offline, gpgme_get_offline): New.
10742 	* src/keylist.c (gpgme_op_keylist_start): Set offline flag.
10743 	  (gpgme_op_keylist_ext_start): Ditto.
10744 	* tests/run-keylist.c (show_usage, main): Add offline argument.
10745 
10746 2015-07-23  Peter Wu  <peter@lekensteyn.nl>
10747 
10748 	build: ignore scissor line for the commit-msg hook.
10749 	+ commit 157c8be183153ff588f98874a3205aa483d0fd23
10750 	* build-aux/git-hooks/commit-msg: Stop processing more lines when the
10751 	  scissor line is encountered.
10752 
10753 2015-07-23  Werner Koch  <wk@gnupg.org>
10754 
10755 	Add option --lib-version to gpgme-tool.
10756 	+ commit c23f8897105ce2bb6e62d9c44ca0779fcc08a919
10757 	* src/gpgme-tool.c (options, parse_options):  Add --lib-version
10758 	(CMD_LIBVERSION): New.
10759 	(main): Implement.
10760 
10761 2015-06-08  Werner Koch  <wk@gnupg.org>
10762 
10763 	Release 1.5.5.
10764 	+ commit 052a9e3c5671d1ab69551f7b0abd0bbf859d4aba
10765 
10766 
10767 	Fix regression with gpgsm 2.0 due to "OPTION with-secret".
10768 	+ commit ddbd54ef881bd2c3481d62b89bef7241667b64ee
10769 	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate
10770 	on a status lines.
10771 
10772 	tests: Add option --secret to run-keylist.
10773 	+ commit 7addffc0826e7f36afcc7f66268e9ee2a37e2042
10774 
10775 
10776 	Fix compiler warnings about unused value in TRACE macros.
10777 	+ commit 8b9f84828cd04a7dab37e219123edc1905da8e6b
10778 	* src/debug.h: Change macros to not have a literal 0 as last
10779 	expression of the comma operator.
10780 	* src/debug.c (_gpgme_debug_frame_end): Return 0.
10781 	(_gpgme_debug): Return 0.
10782 
10783 	Fix test suite for GnuPG 2.1 which uses pubring.kbx.
10784 	+ commit a5b040cc57c65b3d105666b90c7eb59ee6ff3882
10785 	* tests/gpgsm/final.test: New.
10786 	* tests/gpgsm/initial.test: New.
10787 	* tests/gpg/start-stop-agent: Move to ../.
10788 	* tests/gpgsm/Makefile.am (TESTS_ENVIRONMENT): Export top_srcdir.
10789 	(TESTS): Add intial.test and final.test.
10790 	(AM_LDFLAGS): Add -no-install.
10791 	(clean-local): Use start-stop-agent
10792 	(initial.test): Add dependency.
10793 	* tests/gpg/Makefile.am (top_srcdir): Export top_srcdir.
10794 	(AM_LDFLAGS): Add -no-install.
10795 	(check-local): Depend on pubring-stamp instead of pubring.gpg.
10796 	(initial.test): Depend on check-local.
10797 	(./pubring-gpg): Replace by rule for ./pubring-stamp.
10798 
10799 2015-06-05  Matthew Barnes  <mbarnes@redhat.com>
10800 
10801 	Set GPGME_SIGSUM_KEY_REVOKED also for gpg.
10802 	+ commit 87d713ff41454bd08a345c63605f6fc7ac854dd4
10803 	* src/verify.c (calc_sig_summary): Handle GPG_ERR_CERT_REVOKED.
10804 
10805 2015-06-05  Werner Koch  <wk@gnupg.org>
10806 
10807 	Fix segv for userids with a backslash.
10808 	+ commit 0d28a696163677d6b34a802b6beddecd805d0fc7
10809 	* src/engine-gpg.c (gpg_keylist_preprocess): Increment SRC for a
10810 	backslash.
10811 
10812 2015-05-16  Ben McGinnes  <ben@adversary.org>
10813 
10814 	Python 3 port of PyME.
10815 	+ commit 90405ac84b78ba7e5458ea09986749594a01195a
10816 	* Port of PyME 0.9.0 for Python 2 to Python 3 along with most of the
10817 	  example scripts.
10818 	* Intended to be developed in parallel with the original Python 2
10819 	  version until such time as a rewrite of GPGME leads to developing an
10820 	  IO API in Python 3 from scratch.
10821 	* Python 3 PyME and API maintainer has entered, stage left with current
10822 	  GPG key ID 0x321E4E2373590E5D, primary fingerprint is "DB47 24E6 FA42
10823 	  86C9 2B4E  55C4 321E 4E23 7359 0E5D" and signing subkey fingerprint is
10824 	  "B7F0 FE75 9387 430D D0C5  8BDB 7FF2 D371 35C7 553C" for future
10825 	  reference with git commit signatures.
10826 
10827 	Explaining why not all scripts work.
10828 	+ commit 29887c9b28c0db14bf75e227a8082d23a2c151d2
10829 	* Some of them cannot be properly tested on OS X, especially with GTK in
10830 	  the mix (it works on OS X, but is unlikely to be as easily accessible
10831 	  as Cocoa or Qt).
10832 	* Most major functions are showcased and do work, albeit sometimes with
10833 	  false positives of error messages, at least on OS X.
10834 
10835 	Byte encoding.
10836 	+ commit c39cea7a07cec9ab34cd2026f47b6fba80fea3c8
10837 	* More string updates.
10838 	* verifydetails.py still fails, but as Bernhard is still contactable, it
10839 	  might be worth him checking on it instead.
10840 
10841 	No change, note added to explain why.
10842 	+ commit 0e6e6689ef1aea36c1cb3cb47e94f1f2ebbd97cb
10843 
10844 
10845 	Strings vs. Bytes.
10846 	+ commit 40290507bcdc63ab9023393d071167d455d70737
10847 	* CLI input must be byte encoded.
10848 
10849 	More byte changes and passphrase changes.
10850 	+ commit 325b0ca341ae3ac8c3232f557ea2c381b4843969
10851 	* exportimport works, but will still segfault for an as yet unknown
10852 	  reason.
10853 	* genkey produces a traceback error, but does create the key as
10854 	  intended.
10855 	* matched passphrase in signverify.
10856 
10857 	More bytes good.
10858 	+ commit ba3c9f2617955dc828309a4800e4f5b3f1c3a949
10859 	* Another string to byte change.
10860 
10861 	Updated encrypt-to-all.
10862 	+ commit 1c87ecb86ae364b18f69bca726021271fefaa1c1
10863 	* Changed plaintext string to byte literal.
10864 	* Nested key selection in a try/except statement in case of
10865 	  UnicodeEncodeError instances.
10866 	* Tested successfully on over 9,000 keys.
10867 
10868 	Passphrase update.
10869 	+ commit 24c738f5bb5c253a17962c62867d6c847250b41e
10870 	* Changed example passphrase to something that meets the current minimum
10871 	  requirements.
10872 
10873 	example email.
10874 	+ commit 8345bf6f43c4f671124eaa1b713a7f5ac5780cbd
10875 	* changed joe@foo.bar to joe@example.org as it is only a matter of time
10876 	  before ICANN actually creates bar as a gTLD, if they haven't already.
10877 
10878 	Updated string and key data.
10879 	+ commit 4fc123981514c7087114e08ee8ca63de1a1db59f
10880 	* Text changed to byte literals.
10881 	* Changed key type to RSA/RSA.
10882 	* Changed expiry to the future (2020).
10883 
10884 2015-05-08  Ben McGinnes  <ben@adversary.org>
10885 
10886 	String type.
10887 	+ commit 90079786c5cde4dd8ceb2e0fcda7605b08ccd021
10888 	* the plain text string must be bytes and not unicode.
10889 	* Expect most of the example code to have similar issues at present.
10890 
10891 2015-05-05  Ben McGinnes  <ben@adversary.org>
10892 
10893 	Python 3 port of PyME.
10894 	+ commit ebd8734ad705afa4edc409787a00d4968d25e018
10895 	* The entirety of the Python 3 port of PyME up to commit
10896 	  2145348ec54c6027f2ea20f695de0277e2871405
10897 	* The old commit log has been saved as
10898 	  lang/py3-pyme/docs/old-commits.log
10899 	* Can be viewed as a normal (separate) git repository at
10900 	  https://github.com/adversary-org/pyme3
10901 	* Utilising the submodule feature of git was deliberately skipped on
10902 	  humanitarian grounds (in order to prevent pain and suffering on the
10903 	  part of anyone having to manage this repository).
10904 
10905 2015-04-13  Werner Koch  <wk@gnupg.org>
10906 
10907 	Release 1.5.4.
10908 	+ commit d2712d9f6f086911184453219a096c61f6829d3b
10909 
10910 
10911 	w32: Use -static-libgcc to avoid linking to libgcc_s_sjlj-1.dll.
10912 	+ commit 524dacfbb6bb131f05a4ecab3d7bcd91c1b43d33
10913 	* src/Makefile.am (extra_ltoptions): New.
10914 	(libgpgme_la_LDFLAGS): Use it.
10915 	(libgpgme_pthread_la_LDFLAGS): Ditto.
10916 	(libgpgme_glib_la_LDFLAGS): Ditto.
10917 
10918 2015-03-16  Werner Koch  <wk@gnupg.org>
10919 
10920 	Fix potential crash in trace macro.
10921 	+ commit 8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0
10922 	* src/signers.c (gpgme_signers_add): Avoid deref of a NULL KEY in the
10923 	trace macro.
10924 	* src/engine-spawn.c (engspawn_release): Remove always true condition.
10925 	* src/engine-gpg.c (gpg_release): Ditto.
10926 
10927 	Fix one byte too short malloc.
10928 	+ commit 119f27032b822ace8c012b96f9e41bcf23251a54
10929 	* src/engine-spawn.c (add_data): Fix malloc
10930 
10931 2015-01-30  Werner Koch  <wk@gnupg.org>
10932 
10933 	Switch to automake 1.14 and update  build-aux files.
10934 	+ commit 428ea7696585bc24d127b903840554ca659069b6
10935 
10936 
10937 2014-12-11  Werner Koch  <wk@gnupg.org>
10938 
10939 	Release 1.5.3.
10940 	+ commit 37d927a9706fff6d8ef8d45073984ea2f92afb31
10941 	* configure.ac: Set LT version to C24/A13/R2.
10942 
10943 2014-12-08  Werner Koch  <wk@gnupg.org>
10944 
10945 	Return an error for some export key operations.
10946 	+ commit 05258d427513a933f01d4df13aca834d797f91e7
10947 	* src/context.h (OPDATA_EXPORT): New.
10948 	* src/export.c (op_data_t): New.
10949 	(release_op_data): New.
10950 	(parse_error): New.
10951 	(export_status_handler): New.
10952 	(export_start, export_ext_start): Prepare op_data.
10953 	(gpgme_op_export_ext, gpgme_op_export_keys): Return an error from the
10954 	status handler.
10955 
10956 2014-11-21  Werner Koch  <wk@gnupg.org>
10957 
10958 	Release 1.5.2.
10959 	+ commit c62ce32b9c01ee9ceb1d69e7344fb79a9162d232
10960 	* configure.ac: Set LT version to C24/A13/R1.
10961 
10962 	Update the previous commit.
10963 	+ commit 81ce87111f5a3f966188629abb07a4d0702e6db0
10964 	* src/sign.c (gpgme_op_sign_result): Reformat and take care of failed
10965 	malloc.
10966 
10967 2014-11-21  Ben Kibbey  <bjk@luxsci.net>
10968 
10969 	Fix returning new signatures when there are none.
10970 	+ commit 5942b0c7e0593b82b4c4a142c214d7a2649de104
10971 	* src/sign.c (gpgme_op_sign_result): Test that invalid and valid
10972 	signatures add up to gpgme_signers_count().
10973 
10974 2014-11-06  Werner Koch  <wk@gnupg.org>
10975 
10976 	Improve the debug output a bit.
10977 	+ commit 8031341283f4fcb1f226aa6f66bc5a6042586815
10978 	* src/debug.h (TRACE_ERR): Include the line number in the output.
10979 
10980 2014-10-02  Werner Koch  <wk@gnupg.org>
10981 
10982 	build: Implement SYSROOT feature.
10983 	+ commit 4027a0a89724df3aeef8a964c529548d724b6a5a
10984 	* configure.ac: Document SYSROOT.
10985 	* m4/gpg-error.m4: Update from libgpg-error master.
10986 	* src/gpgme.m4: Implement SYSROOT stuff.
10987 
10988 2014-09-24  Werner Koch  <wk@gnupg.org>
10989 
10990 	tests: Delay some test file extraction until "make check".
10991 	+ commit 2e8ecc24cf74f918c303c315da3bb18636a5e288
10992 	* tests/gpg/Makefile.am (all-local): Change to check-local.
10993 	* tests/gpgsm/Makefile.am (all-local): Ditto.
10994 
10995 2014-09-24  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
10996 
10997 	Clean up gpgme's tests/gpg when gpg2.1 is available.
10998 	+ commit 36997e0f746ce2d38de997055141542583cc0f52
10999 	* tests/gpg/Makefile.am: Clean up .gpg-v21-migrated
11000 
11001 2014-08-12  Werner Koch  <wk@gnupg.org>
11002 
11003 	gpgme-tool: Print fingerprint and keyid with keyservers.
11004 	+ commit 4160ef90a1b1b778c735f31f98a6966ba3b3ea90
11005 	* src/gpgme-tool.c (cmd_keylist): Print keyid.  Print FPR only if
11006 	available.
11007 
11008 	Handle modern keyserver output which may emit the fingerprint.
11009 	+ commit 3450bff52baef2c14118958cf79ead46940d58f0
11010 	* src/engine-gpg.c (read_colon_line): Split preprocessed lines.
11011 	(gpg_keylist_preprocess): Limit keyid field and print fingerprint.
11012 
11013 	gpgme-tool: Install gpgme-tool.
11014 	+ commit 488e44cdb531035fa8813b95b212f9728abc7e62
11015 	* src/Makefile.am (bin_PROGRAMS): New.  Add gpgme-tools.
11016 	(noinst_PROGRAMS): Remove.
11017 
11018 	gpgme-tool: Fix segv for external key listing.
11019 	+ commit e5ab11607281b9838da2728268a8f9f0daa2b04d
11020 	* src/gpgme-tool.c (result_xml_escape): Allow for DATA being NULL.
11021 
11022 2014-07-30  Werner Koch  <wk@gnupg.org>
11023 
11024 	Release 1.5.1.
11025 	+ commit 16835c3b5d1cea18512b2c93e884d8ca513a2ee7
11026 	* configure.ac: Change LT version to C24/A13/R0.
11027 
11028 	Fix possible realloc overflow for gpgsm and uiserver engines.
11029 	+ commit 2cbd76f7911fc215845e89b50d6af5ff4a83dd77
11030 	* src/engine-gpgsm.c (status_handler):
11031 	* src/engine-uiserver.c (status_handler):
11032 
11033 2014-06-26  Werner Koch  <wk@gnupg.org>
11034 
11035 	w32: Get IOSPAWN flag back in sync with spawn helper.
11036 	+ commit 68116fa5f67238a60bb8be375cc959262fa021d3
11037 	* src/gpgme-w32spawn.c: Include priv-io.h.
11038 
11039 2014-06-10  Werner Koch  <wk@gnupg.org>
11040 
11041 	Add new reason codes to the INV_RECP status code.
11042 	+ commit 86260b47c9e306e325103d1af767842357647e60
11043 	* src/op-support.c (_gpgme_parse_inv_recp): Add codes 13 and 14.
11044 
11045 2014-06-04  Werner Koch  <wk@gnupg.org>
11046 
11047 	Add new keylist mode GPGME_KEYLIST_MODE_WITH_SECRET.
11048 	+ commit 4dc9af24156b4fd52c7b76e7522b9b7a64e5386a
11049 	* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_SECRET): New.
11050 	* src/engine-gpg.c (gpg_keylist_build_options): Handle new mode.
11051 	* src/engine-gpgsm.c (gpgsm_keylist, gpgsm_keylist_ext): Ditto.
11052 	* src/keylist.c (parse_sec_field15): Add arg key and take care of
11053 	--with-secret output.
11054 
11055 	* src/gpgme-tool.c (gt_get_keylist_mode, cmd_keylist_mode): Add
11056 	"with_secret".  Print card info and and secret flag for subkeys.
11057 
11058 2014-05-21  Werner Koch  <wk@gnupg.org>
11059 
11060 	Release 1.5.0.
11061 	+ commit 0eca21113c1d1ab2aea58e1ea21075f472f99c23
11062 	* configure.ac: Change LT version to C22/A11/R0.
11063 
11064 2014-05-13  Werner Koch  <wk@gnupg.org>
11065 
11066 	Add 6 new GPGME_STATUS_ codes.
11067 	+ commit de6caeed6d6432101c673c35717f152d5facf823
11068 	* src/status-table.c: Also add missing DECRYPTION_INFO entry.
11069 
11070 2014-05-08  Werner Koch  <wk@gnupg.org>
11071 
11072 	Add field CURVE to the key info.
11073 	+ commit 88f15336ec0eadde68ff2618349efb9006b8e801
11074 	* src/gpgme.h.in (struct _gpgme_subkey): Add field CURVE.
11075 	* src/key.c (gpgme_key_unref): Free CURVE.
11076 	* src/keylist.c (keylist_colon_handler): Set CURVE.
11077 
11078 	* src/gpgme.c (gpgme_release): For failsafe reasons reset engine and
11079 	engine info after freeing.
11080 
11081 	Fix a memory access and a double slash bug.
11082 	+ commit de4a1ea684e1591975feb801e7651309e1ee2c49
11083 	* src/engine-spawn.c (engspawn_start): Allocate space for list
11084 	terminator.
11085 	* src/posix-util.c (walk_path): Fix trailing slash detection.
11086 
11087 	Map public key algos returned by gpg to gpgme values.
11088 	+ commit d5fb92cdaed21eea2f1a921e4f11df72635a8462
11089 	* src/conversion.c (_gpgme_map_pk_algo): New.
11090 	* src/decrypt.c (parse_enc_to): Add arg PROTOCOL and map pubkey algo.
11091 	(_gpgme_decrypt_status_handler): Map pubkey algo.
11092 	* src/keylist.c (keylist_colon_handler): Map pubkey algo.
11093 	* src/sign.c (parse_sig_created): Add arg PROTOCOL and map pubkey
11094 	algo.
11095 	* src/verify.c (parse_new_sig): Ditto.
11096 	(parse_valid_sig): Ditto.
11097 
11098 	* src/gpgme.h.in (GPGME_PK_ECC): New.
11099 	(GPGME_MD_SHA224): New.
11100 	* src/gpgme.c (gpgme_pubkey_algo_name): Add GPGME_PK_ECC case.
11101 	(gpgme_hash_algo_name): Add GPGME_MD_SHA224.
11102 
11103 	Add GPGME_ENCRYPT_NO_COMPRESS flag.
11104 	+ commit 991cde9e79fec70aad093ded383c5574d30f9388
11105 	* src/gpgme.h.in (GPGME_ENCRYPT_NO_COMPRESS): New.
11106 	* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign): Implement it.
11107 	* src/gpgme-tool.c (_cmd_sign_encrypt): Add option --no-compress.
11108 
11109 2014-04-16  Werner Koch  <wk@gnupg.org>
11110 
11111 	w32: Fix another memleak on error.
11112 	+ commit 62711e5614e44e65a7c7bb7d21493d09d3081271
11113 	* src/w32-io.c (create_reader): free CTX.
11114 
11115 2014-04-15  Werner Koch  <wk@gnupg.org>
11116 
11117 	w32: Fix memleak in an error code paths.
11118 	+ commit 85a07ca7e3dffdefc8ae74beebb59e47a6e6bd1b
11119 	* src/w32-io.c (create_writer): Free CTX in cased of bad FD.
11120 	* src/w32-util.c (_gpgme_mkstemp): Free TMPNAME in case of a failed
11121 	mkstemp.
11122 
11123 	Fix possible zombie processes.
11124 	+ commit 2bb26185e3b9a048033c559517d6ba7d2eb47066
11125 	* src/posix-io.c (_gpgme_io_waitpid): Protect waitpid agains EINTR.
11126 	(_gpgme_io_dup): Likewise.
11127 	(_gpgme_io_connect): Likewise.
11128 
11129 2014-04-10  Werner Koch  <wk@gnupg.org>
11130 
11131 	Actually implement flags for gpgme_op_spawn.
11132 	+ commit d3bd8fff863f62b6d0e228aea754efbbde861e9a
11133 	* src/spawn.c (gpgme_op_spawn_start, gpgme_op_spawn): Pass FLAGS dow
11134 	to spawn_start and add FLAGS args along the call path.
11135 	* src/engine-spawn.c (engspawn_start): Hack to automagically provide
11136 	argv[0].
11137 
11138 	Add GPGME_PROTOCOL_SPAWN and gpgme_op_spawn.
11139 	+ commit 4f2d652e60700e03809307a10015ff9003ac3579
11140 	* src/gpgme.h.in (GPGME_PROTOCOL_SPAWN): New.
11141 	(GPGME_SPAWN_DETACHED, GPGME_SPAWN_ALLOW_SET_FG): New.
11142 	* src/gpgme.c (gpgme_set_protocol): Add new protocol.
11143 	(gpgme_get_protocol_name): Ditto.
11144 	* src/spawn.c: New.
11145 	* src/libgpgme.vers, src/gpgme.def: Add new public functions.
11146 	* src/engine-spawn.c: New.
11147 	* src/Makefile.am: Add new files.
11148 	* src/engine-backend.h (struct engine_ops): Add OPSPAWN.
11149 	* src/engine.c (engine_ops): Add _gpgme_engine_ops_spawn.
11150 	(gpgme_get_engine_info): Add Spawn to the list of protocols.
11151 	(_gpgme_engine_op_spawn): New.
11152 
11153 	* src/gpgme-tool.c (gt_protocol_from_name): Add new protocol.
11154 	(gt_spawn, cmd_spawn): New.
11155 
11156 	Add gpgme_get_dirinfo.
11157 	+ commit 77931a9a1468b0cfbaafd4153867d90764a6d258
11158 	* src/dirinfo.c (gpgme_get_dirinfo): New.
11159 	* tests/t-engine-info.c (main): Print results from that function.
11160 
11161 	Make use of internal iospawn flags more flexible.
11162 	+ commit 443f6b76a964b77e2e61c03592a83ffa0a6da4b1
11163 	* src/priv-io.h (IOSPAWN_FLAG_DETACHED): New. Renumber the others.
11164 	* src/w32-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS process only if
11165 	IOSPAWN_FLAG_DETACHED is given.
11166 	* src/w32-qt-io.cpp (_gpgme_io_spawn): Ditto.
11167 	* src/w32-glib-io.c (_gpgme_io_spawn): Ditto.
11168 	* src/assuan-support.c (my_spawn): Pass IOSPAWN_FLAG_DETACHED flags.
11169 	* src/dirinfo.c (read_gpgconf_dirs): Ditto.
11170 	* src/engine-gpg.c (start): Ditto.
11171 	* src/engine-gpgconf.c (gpgconf_read, gpgconf_write): Ditto.
11172 	* src/version.c (_gpgme_get_program_version): Ditto.
11173 
11174 	Make sure a spawned process has all standard fds connected.
11175 	+ commit 617d3be629229cbebfdc2d26a4e854bc4fe38a68
11176 	* src/posix-io.c (_gpgme_io_spawn): dup /dev/null also to unsued
11177 	stdout.
11178 
11179 2014-03-13  Werner Koch  <wk@gnupg.org>
11180 
11181 	Add configure option --enable-fixed-path.
11182 	+ commit 766355b5d4f63261c428531fdbdafb8b67de9369
11183 	* configure.ac: Add option --enable-fixed-path.
11184 	(FIXED_SEARCH_PATH): New ac_define.
11185 	* src/posix-util.c (walk_path): Make use of the option.  Remove
11186 	current directory from fallback PATH.
11187 
11188 2014-03-11  Werner Koch  <wk@gnupg.org>
11189 
11190 	Avoid pointer arithmetic on void pointer.
11191 	+ commit dd9c8c56719db093b8daa23aa40b2be71bbd1526
11192 	* src/gpgme.c (gpgme_io_writen): Use new var buffer.
11193 
11194 	Change implementation return type to match the definition.
11195 	+ commit 75a6255935f450d56f3637cbb2b6c8161ace57ab
11196 	* src/gpgme.c (gpgme_get_sub_protocol): Change return type to
11197 	gpgme_protocol_t.
11198 
11199 2014-03-05  Daiki Ueno  <ueno@gnu.org>
11200 
11201 	doc: Fix documentation of struct data types.
11202 	+ commit 40938feb3f3393b0cdc6ec61ca2e77ff0b82c69a
11203 	* gpgme.texi (Key Management): Document is_cardkey and card_number
11204 	members of gpgme_subkey_t.
11205 	(Decrypt): Remove description of the non-existent wrong_key_usage
11206 	member of gpgme_recipient_t.
11207 	(Verify): Document pka_address member of gpgme_signature_t.
11208 	(Creating a Signature): Add missing member names in
11209 	gpgme_new_signature_t.
11210 	(Registering I/O Callbacks): Fix reference of gpgme_io_cbs struct.
11211 
11212 2014-02-21  Werner Koch  <wk@gnupg.org>
11213 
11214 	Always pass correct name to argv[0].  Ignore GPG_AGENT_INFO for gpg2.
11215 	+ commit 651d9e1c6bc1cab248024c3850ef64698247588f
11216 	* src/dirinfo.c (WANT_GPG_ONE_MODE): New.
11217 	(struct dirinfo): Add field "gpg_one_mode".
11218 	(get_gpgconf_item): Set that field and return it if requested.
11219 	(_gpgme_in_gpg_one_mode): New.
11220 	* src/engine-gpg.c (build_argv): Check GPG_AGENT_INFO only in gpg-1
11221 	mode.
11222 
11223 	* src/dirinfo.c (_gpgme_get_basename): New.
11224 	* src/engine-g13.c (g13_new): Take argv[0] from the pgmname.
11225 	* src/engine-gpgsm.c (gpgsm_new): Ditto.
11226 	* src/engine-gpg.c (build_argv): Ditto. Add arg PGMNAME.
11227 	(start): Pass PGMNAME to buildargv.
11228 
11229 2014-02-12  Werner Koch  <wk@gnupg.org>
11230 
11231 	Fix type inconsistency between gpgme.h and gpgme.c.
11232 	+ commit f916ab753b7d17210cd455666870038949f72851
11233 	* src/gpgme.c (gpgme_set_pinentry_mode): Fix type of MODE.
11234 
11235 2014-01-10  Werner Koch  <wk@gnupg.org>
11236 
11237 	Use the generic autogen.sh script.
11238 	+ commit 1a504aab384947c1a6e949affd14bc696297fc8d
11239 	* autogen.rc: New.
11240 	* Makefile.am (EXTRA_DIST): Add it.
11241 	* autogen.sh: Update from GnuPG.
11242 
11243 	* configure.ac (AM_SILENT_RULES): New.
11244 
11245 2014-01-07  Werner Koch  <wk@gnupg.org>
11246 
11247 	Make gpgconf engine work again - fixes 02ba35c1.
11248 	+ commit ab6e718327451e418782990c5a0a4e72588e3f0b
11249 	* src/gpgconf.c: Remove ENABLE_GPGCONF and move prototypes to ...
11250 	* src/engine-backend.h: ... here.
11251 
11252 	Make gpgme_new return a proper error if no engines are installed.
11253 	+ commit 121efcc5618374a1b4450b1d6a18bb3c35edb1fd
11254 	* src/engine.c (gpgme_get_engine_info): Improve error handling.
11255 	(_gpgme_engine_info_copy): Ditto.
11256 	* src/gpgme.c (gpgme_new): Return error GPG_ERR_NO_ENGINE.
11257 
11258 	Print the full PATH in the log if gpg was not found.
11259 	+ commit d63058b852b83515e7715103c04a684ecf59838a
11260 	* src/posix-util.c (walk_path): Keep a copy of PATH.
11261 
11262 2014-01-06  Werner Koch  <wk@gnupg.org>
11263 
11264 	Add global flags disable-gpgconf, gpgconf-name, and gpg-name.
11265 	+ commit 6564e5e78e8c6e5a120675a5699b5b75248cfbc7
11266 	* src/gpgme.c (gpgme_set_global_flag): Add names "disable-gpgconf",
11267 	"gpgconf-name", and "gpg-name".
11268 	* src/dirinfo.c (_gpgme_dirinfo_disable_gpgconf): New.
11269 	(get_gpgconf_item): Minor debug info change.
11270 	* src/posix-util.c (default_gpg_name, default_gpgconf_name): Add vars.
11271 	(_gpgme_set_default_gpg_name): New.
11272 	(_gpgme_set_default_gpgconf_name): New.
11273 	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.
11274 	(walk_path): Add debug output on failure.
11275 	* src/w32-util.c (default_gpg_name, default_gpgconf_name): Add vars.
11276 	(replace_slashes): New.
11277 	(get_basename): New.
11278 	(_gpgme_set_default_gpg_name): New.
11279 	(_gpgme_set_default_gpgconf_name): New.
11280 	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use new vars.
11281 
11282 	* tests/t-engine-info.c (main): Add --verbose and --set-global-flag
11283 	options.
11284 
11285 2013-12-27  Werner Koch  <wk@gnupg.org>
11286 
11287 	Locate engine names only at runtime and prefer GnuPG-2.
11288 	+ commit 02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b
11289 	* configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION)
11290 	(NEED_G13_VERSION, NEED_GPGCONF_VERSION): Remove vars and all related
11291 	checks.  Do not check for any engine version.
11292 	(HAVE_ASSUAN): Remove AM conditional.
11293 	* src/Makefile.am: Remove separate component vars and always build all
11294 	engines but uiserver.
11295 	* src/dirinfo.c (WANT_GPGCONF_NAME): New.
11296 	(struct dirinfo): Add field gpgconf_name.
11297 	(_gpgme_get_default_gpgconf_name): Use WANT_GPGCONF_NAME.
11298 	(get_gpgconf_item): Set gpgconf name and adjust for _gpgme_get_*_path
11299 	now returning a malloced string.
11300 	* src/engine.c (engine_ops): Always init all engines except for
11301 	uiserver.
11302 	* src/posix-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path):
11303 	Remove unused functions.
11304 	(walk_path): New.
11305 	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path ): Re-implement using
11306 	walk_path.
11307 	* src/w32-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path): Remove
11308 	unused functions.
11309 	(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Return a malloced
11310 	string.
11311 	* src/engine-g13.c (g13_get_req_version): Use a hardwired string with
11312 	the required version.  This info belongs into this file.
11313 	* src/engine-gpg.c (gpg_get_req_version): Ditto.
11314 	* src/engine-gpgconf.c (gpgconf_get_req_version): Ditto.
11315 	* src/engine-gpgsm.c (gpgsm_get_req_version): Ditto.
11316 	* tests/t-engine-info.c: Replace now useless test by an info output.
11317 	* tests/gpg/Makefile.am (GPG, GPG_AGENT): Hardwire gpg and gpg-agent.
11318 	* tests/gpgsm/Makefile.am (GPGSM): Hardwire gpgsm.
11319 
11320 2013-08-19  Werner Koch  <wk@gnupg.org>
11321 
11322 	Document API change for GPGME_EVENT_DONE from 2009.
11323 	+ commit b0aaa3f9aef36634b5c391812362f016114f02ba
11324 	* doc/gpgme.texi (I/O Callback Interface): Fix description for the
11325 	event arg.
11326 
11327 	Fix possible segv in the gpgme_op_card_edit.
11328 	+ commit 372bd439834c69d502668007c8c683233d676bd5
11329 	* src/edit.c (gpgme_op_edit_start, gpgme_op_card_edit_start): Do not
11330 	deref a NULL KEY in TRACE_BEG.
11331 
11332 	tests: Fix NULL ptr deref in gpgsm/t-verify.
11333 	+ commit eae9c32bd9c80ca4a4ecf794808211808f2ebbdd
11334 	* tests/gpgsm/t-verify.c (check_result): Do not dereference a sig or
11335 	sig->fpr if NULL.
11336 
11337 2013-08-12  Werner Koch  <wk@gnupg.org>
11338 
11339 	Release 1.4.3.
11340 	+ commit d788c35e19df9eade8eb0b880ca1dc47ae7928ad
11341 	* configure.ac: Change LT version to C22/A11/R0.
11342 
11343 	Make test suite workable with GnuPG 2.1.
11344 	+ commit 3ca7e96e384d5872c71ceb3b2e2a05b0c1b7e1a0
11345 	* tests/gpg/start-stop-agent: New.
11346 	* tests/gpg/initial.test: New.
11347 	* tests/gpg/final.test: New.
11348 	* tests/gpg/Makefile.am (c_tests): New.
11349 	(TESTS): Move all to c_tests.  Add initial.test, final.test, and
11350 	c_tests.
11351 	(TESTS_ENVIRONMENT): Add C_ALL=C
11352 	(private_keys): New.
11353 	(EXTRA_DIST): Add new files.
11354 	(./private-keys-v1.d/gpg-sample.stamp): Copy private keys.
11355 	(all-local): Depend on gpg-sample.stamp.
11356 	* tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F: New.
11357 	* tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD: New.
11358 	* tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66: New.
11359 	* tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C: New.
11360 	* tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD: New.
11361 
11362 	Improve detection of default gpg by configure.
11363 	+ commit 069ac580373923f5635b7172ecff79eb189f6944
11364 	* configure.ac: Move test for gpgconf before test for gpg.
11365 	(GPG, GPGSM, G13): Use gpgconf instead of AC_PATH_PROG if possible.
11366 
11367 2013-08-09  Werner Koch  <wk@gnupg.org>
11368 
11369 	Add function gpgme_data_identify.
11370 	+ commit 8579091c4f6a36e6bb06fcfbd147a776166fd3ea
11371 	* src/gpgme.h.in (gpgme_data_type_t): New.
11372 	(gpgme_data_identify): New prototype.
11373 	* src/data-identify.c: New.
11374 	* src/parsetlv.c, src/parsetlv.h: New.  Take from gpa.
11375 	* src/libgpgme.vers, src/gpgme.def: Add gpgme_data_identify.
11376 	* src/gpgme-tool.c (status): Add STATUS_IDENTIFY_RESULT.
11377 	(gt_identify): New.
11378 	(cmd_identify): New.
11379 
11380 	(hlp_passwd): Move close to cmd_passwd.
11381 
11382 2013-08-02  Werner Koch  <wk@gnupg.org>
11383 
11384 	Prefer GnuPG-2 engines over GnuPG-1.
11385 	+ commit a4c80126ae4754c8478c69a8a24a6ffd975485fc
11386 	* src/util.h: Move some prototypes to ...
11387 	* src/sys-util.h: New.
11388 	* src/Makefile.am (main_sources): Add sys-util.h.
11389 	* configure.ac (AH_VERBATIM): Add DIRSEP_C and DIRSEP_S.
11390 	* src/dirinfo.c: Include sys-util.h.
11391 	(WANT_GPG_NAME, WANT_GPGSM_NAME, WANT_G13_NAME)
11392 	(WANT_UISRV_SOCKET): New.
11393 	(dirinfo): Add corresponding fields.
11394 	(parse_output): Add arg COMPONENTS and set new fields.
11395 	(read_gpgconf_dirs): Add arg components and act upon it.
11396 	(get_gpgconf_item): Call read_gpgconf_dirs two times.  Add debug
11397 	output.
11398 	(_gpgme_get_default_gpg_name): New.
11399 	(_gpgme_get_default_gpgsm_name): New.
11400 	(_gpgme_get_default_g13_name): New.
11401 	(_gpgme_get_default_gpgconf_name): New.
11402 	(_gpgme_get_default_uisrv_socket): New.
11403 	* src/engine-gpg.c, src/engine-g13.c, src/engine-gpgconf.c
11404 	* src/engine-gpgsm.c, src/engine-uiserver.c: Change to use
11405 	_gpgme_get_default_ instead of those from sys-util.h.
11406 	* src/posix-util.c (_gpgme_get_gpg_path): Include sys-util.h.
11407 	(_gpgme_get_uiserver_socket_path): Remove.
11408 	* src/w32-util.c (_gpgme_get_gpg_path): Include sys-util.h.
11409 	(_gpgme_get_uiserver_socket_path): Remove.
11410 
11411 	w32: Try to locate gpg in the gpgme installation dir.
11412 	+ commit 3881ea4e83d1533ef497b7332398fc1850e29205
11413 	* src/w32-util.c (my_hmodule): New.
11414 	(wchar_to_utf8): New.
11415 	(DllMain): New.
11416 	(_gpgme_get_inst_dir): New.
11417 	(find_program_in_dir): New.
11418 	(find_program_in_inst_dir): Add arg INST_DIR.
11419 	(_gpgme_get_gpg_path): Get inst_dir before acquiring the lock.
11420 	(_gpgme_get_gpgconf_path): Ditto.
11421 	(_gpgme_get_g13_path): Ditto.
11422 	(_gpgme_get_w32spawn_path): Ditto.
11423 
11424 2013-07-31  Werner Koch  <wk@gnupg.org>
11425 
11426 	doc: Add --binary option for the OUTPUT command of an uiserver.
11427 	+ commit 393a9471f2f3ac0a5b14f3534a5bfc7ffe948567
11428 
11429 
11430 2013-06-18  Werner Koch  <wk@gnupg.org>
11431 
11432 	Add function gpgme_signers_count.
11433 	+ commit f2eeccbdfaf855a81abb92abe5ab4c702712bac7
11434 	* src/signers.c (gpgme_signers_count): New.
11435 	* src/libgpgme.vers, src/gpgme.def: Add as external symbol.
11436 	* src/gpgme.h.in: Add prototype.
11437 
11438 2013-05-28  Werner Koch  <wk@gnupg.org>
11439 
11440 	Release 1.4.2.
11441 	+ commit 009e26a989f8a251563303f155c51fe012af52a4
11442 	* configure.ac: Set LT version to C21/A10/R0.
11443 
11444 	Add convenience macro GPGME_PROTOCOL_OPENPGP.
11445 	+ commit 2e8feb6016dede400053f76fc3a418e1dd567bef
11446 	* src/gpgme.h.in (GPGME_PROTOCOL_OPENPGP): New.
11447 
11448 2013-05-23  Werner Koch  <wk@gnupg.org>
11449 
11450 	w32: Fix installing of .def file.
11451 	+ commit c29dad2315406bed75b9547103650bef642e6aa7
11452 	* src/Makefile.am (install-def-file): Create libdir first.
11453 
11454 	Fix libtool 2.4.2 to correctly detect .def files.
11455 	+ commit d739d4d8cf9c873b0f3bb7836aaf3d0ba31a7b7f
11456 	* build-aux/ltmain.sh (sed_uncomment_deffile): New.
11457 	(orig_export_symbols): Uncomment def file before testing for EXPORTS.
11458 	* m4/libtool.m4: Do the same for the generated code.
11459 
11460 2013-05-22  Werner Koch  <wk@gnupg.org>
11461 
11462 	Support --no-encrypt-to also with gpgme_op_encrypt_sign.
11463 	+ commit d4371ed30da2e8b3d9f440613af299a952bde2b1
11464 	* src/engine-gpg.c (gpg_encrypt_sign): Support the
11465 	GPGME_ENCRYPT_NO_ENCRYPT_TO flag.
11466 
11467 2013-05-22  Werner Koch  <wk@gnupg.org>
11468 	    Kyle L. Huff  <g10bts@curetheitch.com>
11469 
11470 	Allow symmetric encryption with gpgme_op_encrypt_sign.
11471 	+ commit 567e6481d767af60390d649897b897a8b0e7e9a5
11472 	* src/encrypt-sign.c (encrypt_sym_status_handler): New.
11473 	(encrypt_sign_start): Handle recp == NULL case.
11474 	* src/engine-gpg.c (gpg_encrypt_sign): Implement symmetric encryption.
11475 	* tests/gpg/t-encrypt-sign.c (main): Add a test case for this.
11476 
11477 2013-05-22  Werner Koch  <wk@gnupg.org>
11478 
11479 	gpgme-tool: Allow for symmetric encryption.
11480 	+ commit 0c1de7abd57b677998792e6cd5df5ddfb6e451b7
11481 	* src/gpgme-tool.c (gt_sign_encrypt): Pass NULL for recp if no
11482 	recipients are given.
11483 
11484 	tests: Print auditlog in plain text format.
11485 	+ commit 18254f88f82da7542a986dca60917fb48d5bccd3
11486 	* tests/gpgsm/t-verify.c (show_auditlog): Use plain text format.
11487 
11488 2013-05-18  Werner Koch  <wk@gnupg.org>
11489 
11490 	Improve C++ compatibility of previous patch.
11491 	+ commit e99356306d7bda61802530ebeb07d9ba73c4dec0
11492 	* src/gpgme.h.in: Move gpgme_sssize_t and gpgme_off_t typedefs into
11493 	the extern "C" scope.
11494 
11495 2013-05-16  Werner Koch  <wk@gnupg.org>
11496 
11497 	Make definition of off_t robust against misbehaving w32 toolchains.
11498 	+ commit 6d0d8e7ba0bb989c251545fa8af35b97d1a703ba
11499 	* configure.ac (NEED__FILE_OFFSET_BITS): Change to define gpgme_off_t
11500 	and gpgme_ssize_t.
11501 	(API__OFF_T, API__SSIZE_T): New ac_subst.
11502 	* src/gpgme.h.in: Replace all ssize_t and off_t by ac_subst macros.
11503 	* src/assuan-support.c, src/ath-pthread.c, src/ath.c, src/ath.h
11504 	* src/data-compat.c, src/data-fd.c, src/data-mem.c, src/data-stream.c
11505 	* src/data-user.c, src/data.c, src/data.h, src/engine-gpgsm.c
11506 	* src/engine-uiserver.c, src/gpgme-tool.c, src/gpgme.c: Replace off_t
11507 	by gpgme_off_t and sszie_t by gpgme_ssize_t.
11508 	* src/ath-pthread.c, src/ath.h: Include gpgme.h.
11509 
11510 2013-05-11  Werner Koch  <wk@gnupg.org>
11511 
11512 	w32: Change the way the I/O threads are cleaned up.
11513 	+ commit 9e7df9aa6d81f0abbabb03a2346d80eb5d375f81
11514 	* src/w32-io.c (reader_context_s, create_reader)
11515 	(writer_context_s, create_writer): Rename STOPPED to CLOSE_EV.
11516 	(reader, writer): Remove setting of STOPPED.  Wait for CLOSE_EV and
11517 	then release the context.
11518 	(destroy_reader, destroy_writer): Do not wait but set the CLOSE_EV.
11519 	(kill_reader, kill_writer): Remove.
11520 	(_gpgme_io_close): Add code from kill_reader and kill_writer.
11521 
11522 2013-05-08  Werner Koch  <wk@gnupg.org>
11523 
11524 	Fix hang in socket closing.
11525 	+ commit 9f330be8210d2498fe93d4166b6f6c02fca76475
11526 	* src/w32-io.c (destroy_reader): Call shutdown.
11527 	(reader): Do not print an error in the shutdown case.
11528 
11529 	Improve debug output of the I/O reader and writer.
11530 	+ commit 2118f497010a9a41c29d062a7605ff2e136f8f4e
11531 	* src/w32-io.c (reader, writer): Also print file_sock.
11532 
11533 2013-05-06  Werner Koch  <wk@gnupg.org>
11534 
11535 	Simplify a debug code function.
11536 	+ commit a7e5f1096f02af7bfb678b0bea8da6ccfc28cc79
11537 	* src/debug.c (_gpgme_debug): Remove static space string.
11538 
11539 2013-05-01  Werner Koch  <wk@gnupg.org>
11540 
11541 	Release 1.4.1.
11542 	+ commit 5075c0da7c464af2a45cd36db134ed7e88f155af
11543 	* configure.ac: Bump LT version to C20/A9/R1.
11544 
11545 	Disable fd-passing for Apple.
11546 	+ commit ef5b4ae37d13142e89a051908dc080cda3d24baa
11547 	* configure.ac: Disable fd-passing by default for Apple.
11548 
11549 2013-04-30  Werner Koch  <wk@gnupg.org>
11550 
11551 	Allow reading of long gpgconf output lines.
11552 	+ commit f623a6b94c527795d0b6f7e66a3966e5d9e1c454
11553 	* src/engine-gpgconf.c (gpgconf_read): Rewrite to allow for line
11554 	lengths up to 64k.
11555 
11556 2013-04-29  Werner Koch  <wk@gnupg.org>
11557 
11558 	Fix for i686-w64-mingw32.
11559 	+ commit 867b950b9306904a0ff522d0ef4a43789393cfc4
11560 	* configure.ac (NEED__FILE_OFFSET_BITS): Do not define under Windows.
11561 
11562 2013-02-26  Werner Koch  <wk@gnupg.org>
11563 
11564 	Release 1.4.0.
11565 	+ commit ef5cd38123dfbef7843f374ee697b0b5e8730c46
11566 	* configure.ac: Bump LT version to C20/A9/R0.
11567 
11568 	Enable FD passing and thus building of the UI-server.
11569 	+ commit 5090f6f246bfad2eb80f3cc222963f73996d8028
11570 	* configure.ac: Make --enable-fd-passing the default.
11571 	* src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Syntax fix.
11572 
11573 	w32: Hacks for building with 32 bit mingw64.
11574 	+ commit cdae524b282ef0ea67c3880b3e0f852c84c351ce
11575 	* configure.ac (INSERT__TYPEDEFS_FOR_GPGME_H): Add hacks for 32 bit
11576 	mingw64.
11577 	* src/util.h [W32]: Include winsock2.h before windows to make mingw64
11578 	happy.
11579 	* src/w32-util.c (_WIN32_IE): Need to use 5.1 for mingw64.
11580 
11581 	Improve missing libgpg-error reporting in configure.
11582 	+ commit 787b5f14b933e5cee2624f79a23a60947f8134c8
11583 	* configure.ac (NEED_GPG_ERROR_VERSION): New.  Improve reporting for
11584 	missing libgpg-error.
11585 
11586 	Change the various version numbers to the new scheme.
11587 	+ commit d8b46c919f45666af0d541e00dcedf57e6c4b66f
11588 	* configure.ac: Rename my_foo variables to mym4_foo variables to make
11589 	clear that they are processed by m4.
11590 	(VERSION_NUMBER): New ac_subst.
11591 	(AH_BOTTOM): Add CRIGHTBLURB macro.
11592 	(BUILD_REVISION, BUILD_FILEVERSION, BUILD_TIMESTAMP): Change them to
11593 	work similar to libgpg-error et al.
11594 	* src/versioninfo.rc.in: Remove use of BUILD_NUMBER and get it in line
11595 	with gpg-error et al.
11596 	* src/version.c (cright_blurb): New.
11597 	(gpgme_check_version_internal): Add magic to display the above
11598 	information.
11599 	* tests/t-version.c (main): Add option --verbose.
11600 
11601 	Update GnuPG related m4 files.
11602 	+ commit 863c0f2a3eaf2a5d46c5518e5ac3486cc1a49bd3
11603 	* m4/gpg-error.m4: Update from libgpg-error.
11604 	* m4/libassuan.m4: Update from libassuan.
11605 
11606 	Update helper scripts.
11607 	+ commit fdcd5736e610cd64e47da73dcafe8bc4a6a67666
11608 	* configure.ac: Use AC_CONFIG_AUX_DIR.  Remove args from
11609 	AM_INIT_AUTOMAKE.  Replace AM_CONFIG_HEADER by AC_CONFIG_HEADER.
11610 	* compile, config.guess, config.sub, depcomp, install-sh, ltmain.sh
11611 	* mkinstalldirs, texinfo.texi: Move to build-aux/ and update from
11612 	gnulib (c042abf).
11613 	* build-aux/mdate-sh, build-aux/missing: Install via automake -a -c.
11614 	Update autogen.sh for changed config dir.
11615 	* autogen.sh: Adjust for scripts dir change.  Update W32 toolprefix
11616 	list.
11617 
11618 2013-02-25  Werner Koch  <wk@gnupg.org>
11619 
11620 	Remove included gitlog-to-changelog.
11621 	+ commit 967e043ac42330ee692f23d05ce3a0dd457f2119
11622 	* build-aux/gitlog-to-changelog: Remove.
11623 	* configure.ac (GITLOG_TO_CHANGELOG): Default to just
11624 	gitlog-to-changelog.
11625 
11626 2013-02-12  Werner Koch  <wk@gnupg.org>
11627 
11628 	Add macro GPGME_VERSION_NUMBER.
11629 	+ commit f48f75b1e812d33b76e439412efffa8277ab9abe
11630 	* src/gpgme.h.in (GPGME_VERSION_NUMBER): New.
11631 	* configure.ac (my_version_major, my_version_minor)
11632 	(my_version_micro): New m4 macros.
11633 	(my_version): Build from new m4 macros.
11634 	(VERSION_NUMBER): New ac_subst.
11635 
11636 	Add public function gpgme_get_pinentry_mode.
11637 	+ commit 4f381554411ef019d79492f1751543f145604bcf
11638 	* src/gpgme.c (gpgme_get_pinentry_mode): New.
11639 
11640 2013-02-07  Werner Koch  <wk@gnupg.org>
11641 
11642 	gpgme_tool: Support GPG's new pinentry-mode.
11643 	+ commit 02a2cf0ccb4d01700adf6d18316d7705d519a048
11644 	* src/gpgme-tool.c (log_error): Do not always print the error source.
11645 	(gt_set_pinentry_mode): New.
11646 	(server_passphrase_cb): New.
11647 	(cmd_pinentry_mode): New.
11648 	(register_commands): Add cmd_pinentry_mode.
11649 	(options): Add option --gpg-binary.
11650 	(struct args): Add field gpg-binary.
11651 	(parse_options, main): Implement that option.
11652 
11653 	Add public function gpgme_set_pinentry_mode.
11654 	+ commit 61a0d92b679f248505f1bf16386bc41a5bf2ba1d
11655 	* src/gpgme.c (gpgme_set_pinentry_mode): New.
11656 	* src/gpgme.h.in (gpgme_pinentry_t): New.
11657 	(gpgme_set_pinentry_mode): New.
11658 	* src/context.h (struct gpgme_context): Add field pinentry_mode.
11659 	* src/engine-backend.h (struct engine_ops): Add field
11660 	set_pinentry_mode.
11661 	* src/engine-gpg.c (struct engine_gpg): Add field pinentry_mode.
11662 	(build_argv): Implement pinentry_mode.
11663 	(gpg_set_pinentry_mode): New.
11664 	(_gpgme_engine_ops_gpg): Register gpg_set_pinentry_mode.
11665 
11666 	Add public function gpgme_io_writen.
11667 	+ commit 29eced50687dd8a39dafe704102ae09ea8e8533a
11668 	* src/gpgme.c (gpgme_io_read): New.
11669 
11670 2012-11-16  Werner Koch  <wk@gnupg.org>
11671 
11672 	Improve parsing of the GIT revision number.
11673 	+ commit 322552a88db47896881e55c00ca301137cd160c6
11674 	* configure.ac (git_revision): Use git rev-parse.
11675 
11676 	Fix non-portable use of chmod in autogen.sh.
11677 	+ commit cd6de92f42cb6e5b85bc376d5544496cb4d6a88a
11678 	* autogen.sh: Remove option -c from chmod.
11679 
11680 2012-11-15  Werner Koch  <wk@gnupg.org>
11681 
11682 	Make _gpgme_encode_percent_string work for memory buffers.
11683 	+ commit 1a17acd8e9b7c0ef924f98bfb1502fe12e83c363
11684 	* src/conversion.c (D_gpgme_encode_percent_string): Remove stray
11685 	semicolon.  Reported by Xi Wang.
11686 
11687 2012-10-24  Werner Koch  <wk@gnupg.org>
11688 
11689 	Make local variables configure hack more robust.
11690 	+ commit c97d067f27899d890a99036fcbed9263f4f68875
11691 	* configure.ac (emacs_local_vars_begin): Use extra m4 quoting so that
11692 	newer Emscasen won't take it up as Local Variables for this file.
11693 
11694 	Fix ttyname problem on Android.
11695 	+ commit 12a0c93433a0b1d7e8019fc35a63476db39327fa
11696 	* configure.ac: Define macro and conditional HAVE_ANDROID_SYSTEM.
11697 	* m4/gnupg-ttyname.m4: Force use of replacement on Android.
11698 	* src/ttyname_r.c: Ditto.
11699 
11700 	tests: Adhere to the docs and call gpgme_check_version.
11701 	+ commit cc59b75b21516198b39a56950afbcec140d8ba48
11702 	* tests/t-engine-info.c: Call gpgme_check_version.
11703 
11704 2012-10-19  Werner Koch  <wk@gnupg.org>
11705 
11706 	Trace the use of GPG_ERR_INV_ENGINE.
11707 	+ commit bd24feaa86f8154e550107990392ac9ac05e60d4
11708 	* src/debug.h: Include "gpgme.h"
11709 	(_gpgme_trace_gpgme_error): New.
11710 	(trace_gpg_error): New macro.  Use it in all files where we return
11711 	GPG_ERR_INV_ENGINE; also "include debug.h" as needed.
11712 
11713 	Avoid warning about initialized but not used variable.
11714 	+ commit 14a8fd4eec126cad282a85c5aa336a6b55229b52
11715 	* src/engine-gpgsm.c (gpgsm_set_fd): Do not set DIR if not needed.
11716 
11717 2012-10-11  Werner Koch  <wk@gnupg.org>
11718 
11719 	gpgme-tool: Use membuf functions to build up strings.
11720 	+ commit e11e7fc5586613525035c3358e15ae24accb96ea
11721 	* src/gpgme-tool.c (clear_membuf, init_membuf, put_membuf)
11722 	(put_membuf_str, get_membuf, peek_membuf): Add membuf functions.
11723 	Take from GnuPG master's common/membuf.[ch] and patch for our use.
11724 	(result_xml_escape): Rewrite using new functions.
11725 
11726 	gpgme-tool: Change license from LPGLv2+ to GPLv3+
11727 	+ commit aa30b47aa010bf46876f2335e288f8bd8718e396
11728 	* src/gpgme-tool.c: Change license notice.
11729 
11730 2012-10-11  W. Trevor King  <wking@tremily.us>
11731 
11732 	gpgme-tool: escape special characters in output XML data (<, >, and &).
11733 	+ commit 3f1329e1c9b99b1632cc4c4eec2e4399676fd93d
11734 
11735 	src/gpgme-tool.c (result_xml_escape_replacement, result_xml_escape):
11736 	New.
11737 	(result_xml_tag_data): Use result_xml_escape() to escape data.
11738 	(result_add_error): Use unescaped < and >.
11739 
11740 	gpgme-tool: Fix chain_id -> chain-id in KEYLIST XML.
11741 	+ commit c28ebca9f2e21344d68e9fdcec60553f225c2e54
11742 
11743 	src/gpgme-tool.c (cmd_keylist): Use <chain-id> instead of <chain_id>.
11744 
11745 2012-09-28  W. Trevor King  <wking@tremily.us>
11746 
11747 	gpgme-tool: Return more detailed XML from KEYLIST.
11748 	+ commit 3d69b51f7f083193db28f364da4590c33b5e44e6
11749 	src/gpgme-tool.c (cmd_keylist): Convert output from a list of
11750 	to more detailed XML.
11751 	(xml_preamble1, xml_preamble2, xml_end): Make global.
11752 	(result_add_protocol, result_add_validity): New functions for
11753 	generating XML from GPGME types.
11754 	(result_add_string): Treat NULL strings as "".
11755 	(result_xml_tag_data): Make 'data' a 'const char' so we can use the
11756 	value returned by gpgme_get_protocol_name directly.
11757 
11758 	gpgme-tool: Initialize input_fd and output_fd.
11759 	+ commit dda3702a9024a08da7bb949e15b63a47d23d59f5
11760 	* src/gpgme-tool.c (gpgme_server): Initialize input_fd and output_fd.
11761 
11762 2012-09-26  Werner Koch  <wk@gnupg.org>
11763 
11764 	gpgme-tool: Fix handling of file descriptors.
11765 	+ commit 193eb62538b9413e0dfbd04c075f871d5aa9130b
11766 	* src/gpgme-tool.c (server_reset_fds): Use close/CloseHandle instead
11767 	of the assuan close functions.
11768 	(_cmd_decrypt_verify, _cmd_sign_encrypt, cmd_verify, cmd_import)
11769 	(cmd_export, cmd_genkey, cmd_getauditlog): Use SERVER object instead
11770 	of assuan_get_*_fd functions.
11771 
11772 2012-09-25  Werner Koch  <wk@gnupg.org>
11773 
11774 	Document contribution rules.
11775 	+ commit db33945ab3b8c173a3fc2dd1a0d22d7fc15d8730
11776 	* doc/HACKING (License policy): New.
11777 	* doc/DCO: New.
11778 	* AUTHORS: Change maintainer address.
11779 
11780 	Add gpgme_set_global_flag to help debugging.
11781 	+ commit c62b79a1d6e576d94e08cb81c2f5dbcb42ecf8cf
11782 	* src/gpgme.c (gpgme_set_global_flag): New.
11783 	* src/gpgme.h.in (gpgme_set_global_flag): New.
11784 	* src/gpgme.def, src/libgpgme.vers: Add new public function.
11785 	* src/debug.c (envvar_override): New.:
11786 	(_gpgme_debug_set_debug_envvar): New.
11787 	(debug_init): Take ENVVAR_OVERRIDE in account.
11788 
11789 2012-07-28  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
11790 
11791 	Add two recent contributors.
11792 	+ commit 83e74202cd7c4c975d149c49e2507fdb0e60ef32
11793 
11794 
11795 	Fix sign error in position calculation for mem_seek.
11796 	+ commit 8384ccbd1a51447dccbd608fc5df3c24cb8999b1
11797 	* data-mem.c (mem_seek): Fix sign error in position calculation.
11798 
11799 	Allow null context on gpgme_set_locale.
11800 	+ commit 434735f71e6969248651ac01c6bd6f6789a6305d
11801 	* gpgme.c (gpgme_set_locale): Allow CTX to be a null pointer.
11802 
11803 2012-07-13  Werner Koch  <wk@gnupg.org>
11804 
11805 	Do not include the removed file status-table.h.
11806 	+ commit e7aeaebb01395b170c91f290bf3ff5021023420f
11807 	* src/engine-uiserver.c: Remove status-table.h which is not anymore
11808 	built.  Fixes bug#1412.
11809 
11810 	Make handling of new conf values more robust (bug#1413).
11811 	+ commit 9f081da7356288a96e8ea4d81a74ff706c00b0cd
11812 	* src/engine-gpgconf.c (arg_to_data): Allow for NULL as value.string.
11813 
11814 2012-05-02  Werner Koch  <wk@gnupg.org>
11815 
11816 	Release 1.3.2.
11817 	+ commit 9c8608f702ec0f44ae55cd7f33bd8df0a2d48508
11818 	* configure.ac: Bump LT version to C19/A8/R1.
11819 
11820 	* configure.ac (GITLOG_TO_CHANGELOG): Define.
11821 	* Makefile.am (gen-ChangeLog): Use it.
11822 
11823 	Remove unused pth stuff from gpgme-config.
11824 	+ commit 295dd3f238fa656493d34e8a718958d62226b56c
11825 	* src/gpgme-config.in: Remove unused pth stuff.
11826 
11827 	Update signature summary for the case of missing X.509 keys.
11828 	+ commit d6402b888fd00b883bbfc00c91a2aa9706e4377e
11829 	* src/verify.c (gpgme_op_verify_result): Update summary field.
11830 
11831 2012-04-30  Werner Koch  <wk@gnupg.org>
11832 
11833 	Fix timestamp parsing for y2038 hack.
11834 	+ commit 1a21574b48ee91eedbf95251ee600648b377d1e7
11835 	* src/conversion.c (_gpgme_parse_timestamp): Set ENDP before year 2038
11836 	check.
11837 
11838 2012-04-20  W. Trevor King  <wking@drexel.edu>
11839 
11840 	.gitignore: flesh out rules and add subdirectory-.gitignores.
11841 	+ commit 4cb408d33efe80e7d102049dea244d22907d8395
11842 
11843 
11844 2012-04-13  W. Trevor King  <wking@drexel.edu>
11845 
11846 	status-table.c: include string.h for strcmp.
11847 	+ commit 62bbe58280737d73badbe518f140e40480205176
11848 	* status-table.c: include string.h to avoid `warning: implicit
11849 	declaration of function 'strcmp'`.
11850 
11851 2012-04-03  W. Trevor King  <wking@drexel.edu>
11852 
11853 	gpgme-tool: add help messages for a number of commands.
11854 	+ commit c318e69d8fa5f9e92d4aac3dd44fae5adcaade72
11855 	* src/gpgme-tool.c (hlp_engine, hlp_sub_protocol, hlp_armor, hlp_textmode,
11856 	hlp_include_certs, hlp_keylist_mode, hlp_input, hlp_output, hlp_message,
11857 	hlp_recipient, hlp_signer, hlp_signers_clear, hlp_decrypt, hlp_decrypt_verify,
11858 	hlp_encrypt, hlp_sign_encrypt, hlp_sign, hlp_verify, hlp_import): New strings.
11859 	(hlp_protocol): Fix typo.
11860 	(register_commands): Add documentation strings.
11861 	(doc): Mention Assuan.
11862 
11863 	uiserver.texi: fix decryption -> encryption typo in PREP_ENCRYPT discussion.
11864 	+ commit bb62104adf78e8416b3c56b8b2621edd723b56cd
11865 	* doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.
11866 
11867 	Update Werner Koch's distribution signing key in the README.
11868 	+ commit 6ec9e21dd1ea2f8509700bce018aef6ad7e9a927
11869 	* README: Update signing key.
11870 
11871 2012-03-12  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
11872 
11873 	Do not rely on glibc name of syscall.
11874 	+ commit ff0a640a18e7b7457e6c2edfdc8307bf44628b60
11875 	* src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.
11876 
11877 	Update config.guess and config.sub to latest version.
11878 	+ commit ced1ad01aed32d1e4c5000f3b901db018ef7bf1e
11879 	* config.guess, config.sub: Update to latest version.
11880 
11881 2012-02-14  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
11882 
11883 	Rework status table to be less dynamically generated.
11884 	+ commit 885243e05467e79e2375b3febe7904053ab45dfc
11885 	* src/Makefile.am (EXTRA_DIST): Remove mkstatus.
11886 	(BUILT_SOURCE, MOSTLYCLEANFILES): Remove.
11887 	(main_sources): Remove status-table.h, extra-stati.h.
11888 	Add status-table.c.
11889 	(status-table.h): Remove rules for built source.
11890 	* src/decrypt.c: Don't include extra-stati.h.
11891 	* src/engine-gpg.c: Don't include status-table.h.
11892 	(status_cmp): Remove function.
11893 	(read_status): Use _gpgme_parse_status.
11894 	* src/engine-gpgsm.c: Don't include status-table.h.
11895 	(status_cmp, parse_status): Remove function.
11896 	(gpgsm_assuan_simple_command, status_handler): Use _gpgme_parse_status.
11897 	* src/engine-uiserver.c: Don't include status-table.h.
11898 	(status_cmp, parse_status): Remove function.
11899 	(uiserver_assuan_simple_command, status_handler): Use
11900 	_gpgme_parse_status.
11901 	* src/gpgme.h.in (gpgme_status_code_t): Add
11902 	GPGME_STATUS_DECRYPTION_INFO.
11903 	* src/util.h (_gpgme_status_init,_gpgme_parse_status): New declaration.
11904 	* src/status-table.c: New file.
11905 	* src/extra-stati.h, src/mkstatus: Files removed.
11906 	* version.c (do_subsystem_inits): Call _gpgme_status_init.
11907 
11908 2012-02-08  Marcus Brinkmann  <mb@g10code.com>
11909 
11910 	Use gpgme interface for error handling to avoid linking with gpg-error.
11911 	+ commit dae3073aaa8b7feb1c844fdaf711f79141b9cc65
11912 	* tests/t-data.c, tests/run-export.c, tests/run-keylist.c,
11913 	tests/run-support.h, tests/run-verify.c, tests/gpg/t-decrypt-verify.c,
11914 	tests/gpg/t-edit.c, tests/gpg/t-eventloop.c, tests/gpg/t-keylist-sig.c,
11915 	tests/gpg/t-keylist.c, tests/gpg/t-support.h, tests/gpg/t-trustlist.c,
11916 	tests/gpg/t-verify.c, tests/gpg/t-wait.c, tests/gpgsm/cms-decrypt.c,
11917 	tests/gpgsm/cms-keylist.c, tests/gpgsm/t-keylist.c,
11918 	tests/gpgsm/t-support.h, tests/gpgsm/t-verify.c,
11919 	tests/opassuan/t-command.c: Use gpgme interface for gpg-error functions.
11920 
11921 	Link the thread test to pthread.
11922 	+ commit 0052a72f89c6830818e354358fdd84702d3494c8
11923 	* tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.
11924 
11925 	Link gpgme-tool directly to libassuan, as it uses its interface.
11926 	+ commit 3f03897cbd223d4a75eb62c3b7bdfeb800661641
11927 	* src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS@.
11928 
11929 2012-01-19  Werner Koch  <wk@gnupg.org>
11930 
11931 	Support the mingw-w64 toolchain.
11932 	+ commit 24a10a4af948ebb1c767b69a92fa5bbe933a417c
11933 	* autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.
11934 
11935 	Fix Solaris problems with ttyname_r.
11936 	+ commit 2f304957f5122a5d9da643dc9951ee67ece06eaf
11937 	* m4/gnupg-ttyname.m4: New.  Based on ttyname_r from gnulib.
11938 	* src/ttyname_r.c (_gpgme_ttyname_r): Rename from ttyname_r.
11939 	Implement hacks required for Solaris and possible other non-fully
11940 	Posix systems.
11941 	* src/util.h: Include unistd.h.  Redefine ttyname_r depending on
11942 	REPLACE_TTYNAME_R and put it into the gpgme name space.
11943 
11944 	Try to make configure.ac a bit smaller.
11945 	+ commit c96778297f5477448a676fcf0c61044bdbccc86d
11946 	* configure.ac: Move header checks.
11947 
11948 	For W32 use a build number instead of abbreviated commit id.
11949 	+ commit 574b087e84f5652cf9d8eba8aa16b8d6bb988035
11950 	We would need to use a shortened commit id so that it fits into an 16
11951 	bit Windows variable.  Further it is a random number and not something
11952 	increasing.  Thus a build number made up from the day of the year and
11953 	the hour is much more useful to describe a build number for a specific
11954 	revision.
11955 	* configure.ac [W32]: Replace BUILD_REVISION by BUILD_NUMBER.
11956 	* src/versioninfo.rc.in: Ditto.
11957 
11958 	Adjust configure.ac for modern autoconf.
11959 	+ commit a0149630ce6d3e17a7475e20e8b2e31ed5ba57fd
11960 	* configure.ac: Minor cleanups.
11961 
11962 	Update to libtool 2.4.2.
11963 	+ commit 4cfddadcd0a569f0b204dccea3c975ce0bdfb232
11964 	* ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4,
11965 	* m4/lt~obsolete.m4: Update.
11966 
11967 	Add ttyname_r check macro from gnulib.
11968 	+ commit 3ef528b63679df912551d5d21fc36e465cf50c40
11969 	* m4/gnupg-ttyname.m4: New. Taken from current gnulib.
11970 
11971 2011-12-02  Werner Koch  <wk@gnupg.org>
11972 
11973 	Generate the ChangeLog from commit logs.
11974 	+ commit a4c4ee1aaea4359432bdf60dd572f549ef8dee83
11975 	* build-aux/gitlog-to-changelog: New script.  Taken from gnulib.
11976 	* build-aux/git-log-fix: New file.
11977 	* build-aux/git-log-footer: New file.
11978 	* build-aux/git-hook/commit-msg: New script.
11979 	* doc/HACKING: New file.
11980 	* ChangeLog: New file.
11981 	* Makefile.am (EXTRA_DIST): Add new files.
11982 	(gen-ChangeLog): New.
11983 	(dist-hook): Run gen-ChangeLog.
11984 	* autogen.sh: Install commit-msg hook for git.
11985 
11986 	Rename all ChangeLog files to ChangeLog-2011.
11987 
11988 2011-12-02  Werner Koch  <wk@gnupg.org>
11989 
11990 	NB: Changes done before December 1st, 2011 are described in
11991 	per directory files named ChangeLog-2011.  See doc/HACKING for
11992 	details.
11993 
11994         -----
11995         Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
11996                       2010, 2011, 2012, 2013 g10 Code GmbH
11997 
11998 	Copying and distribution of this file and/or the original GIT
11999 	commit log messages, with or without modification, are
12000 	permitted provided the copyright notice and this notice are
12001 	preserved.