2024-12-04  Werner Koch  <wk@gnupg.org>
	    lgh1

	Add a configure test for gettid.
	+ commit 4a62318422ca3f0f72b6fd00031daba556a10687
	* configure.ac (HAVE_GETTID,HAVE_SYS_GETTID): New test.
	* src/debug.c: Include syscall.h if needed.
	(tid_log_callback) [HAVE_SYS_GETTID]: Use SYS_gettid

2024-11-14  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Add Kyber algorithm.
	+ commit 56718f8d204f8a5895feb1a99c4b8ecd42b78010
	* lang/cpp/src/key.h (enum Subkey::PubkeyAlgo): Add AlgoKyber with
	same value as GPGME_PK_KYBER.

2024-11-14  Werner Koch  <wk@gnupg.org>

	Support the Kyber algorithm in key listings.
	+ commit 62b6c1f16ae0ed7b0eb1b095ee383aa0910314bb
	* src/gpgme.h.in (GPGME_PK_KYBER): New.
	* src/conversion.c (_gpgme_map_pk_algo): Handle Kyber.
	* src/gpgme.c (gpgme_pubkey_algo_string): Support Kyber.
	(gpgme_pubkey_algo_name): Add Kyber.

2024-11-06  Werner Koch  <wk@gnupg.org>

	Release 1.24.0.
	+ commit 98b10fbc63b323a146e66a2ea8f7ff8f216b31d7


2024-11-05  Werner Koch  <wk@gnupg.org>

	Include the full commit id.
	+ commit 0ad30e670aecce24eb1e59854d8f639ceb4009a6
	* autogen.sh: Update to version 2024-07-04 from libgpg-error.
	* configure.ac (BUILD_COMMITID): New.  Append to VERSION file.
	* src/version.c (cright_blurb): Use BUILD_COMMITID here.

2024-10-29  Werner Koch  <wk@gnupg.org>

	core: New context flags "known-notations".
	+ commit a304ec0ede937e21df5b4a311cbaf8d89f13ef59
	* src/gpgme.c (gpgme_set_ctx_flag): Add "known-notations".
	(gpgme_get_ctx_flag): Ditto.
	(gpgme_release): Free variable.
	* src/context.h (struct gpgme_context): Add "known_notations".

	* src/engine-gpg.c (struct engine_gpg): Add "known_notations".
	(gpg_release): Free variable.
	(gpg_set_engine_flags): Set variable.
	(add_known_notations): New.
	(gpg_decrypt, gpg_verify): Call function.

	* tests/run-decrypt.c (main): Add option --known-notations.
	* tests/run-verify.c (main): Ditto.

	core: Add new helper _gpgme_strtokenize.
	+ commit c835676f7dfe39830d5b0500ad2cb809832428d1
	* src/conversion.c (spacep): New.
	(_gpgme_strtokenize): New.

2024-10-23  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Fix typo.
	+ commit e656e51d535cdce2db3e1a4848029a2410c30108
	* lang/qt/src/Makefile.am (camelcase_headers): Fix typo in header name.

	qt: Put attributes before declarations.
	+ commit 7d02ba8a9308b25140f6d1b9a5ad5c14f0b36374
	* lang/qt/src/downloadjob.h (DownloadJob::start): Move QGPGME_DEPRECATED
	before the whole function declaration.

	cpp: Put attributes before declarations.
	+ commit c4b39a77950b3b737de06eca044b35a845fc6299
	* lang/cpp/src/key.h (UserID::Signature::Notation): Move
	GPGMEPP_DEPRECATED before the whole typedef declaration.
	* lang/cpp/src/verificationresult.h (Signature::Notation): Ditto.

	cpp: Add/change some includes.
	+ commit bff4b847fc6361c6027afc1e8c78aa7580e2a27c
	* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h,
	lang/cpp/src/gpgrevokekeyeditinteractor.h: Include <string>.
	* lang/cpp/src/key.h: Include <ctime> instead of <sys/time.h>.

2024-10-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Add support for new flag fields beta_compliance.
	+ commit 2a0595906970505debf64e166b9a35cccbf1b424
	* lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h
	(class DecryptionResult): Add method isBetaCompliance.
	* lang/cpp/src/decryptionresult.cpp (operator<<): Add new flag.
	* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): Add method
	isBetaCompliance.
	(class Subkey): Add method isBetaCompliance.
	* lang/cpp/src/key.cpp:
	(Key::isDeVs): Remove duplicate check of is_de_vs of first subkey.
	(operator<<): Add new flag.
	* lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h
	(class Signature): Add method isBetaCompliance.
	* lang/cpp/src/verificationresult.cpp (operator<<): Add new flag.

2024-10-09  Tobias Fella  <tobias.fella@gnupg.com>

	core: fix passing --proc-all-sigs to gpgtar.
	+ commit 227c9c763b30072e9a58bbbe7f66056aa966378f
	* src/engine-gpg.c: Pass --gpg-args before passing --proc-all-sigs
	  if using gpgtar

2024-10-07  Werner Koch  <wk@gnupg.org>

	core: New flag fields beta_compliance.
	+ commit 1a7bc88ee756df127761c90a4b66d885f0c9de74
	* src/gpgme.h.in (struct _gpgme_subkey): Add field beta_compliance.
	(struct _gpgme_op_decrypt_result): Ditto.
	(struct _gpgme_signature): Ditto.
	* src/util.h (PARSE_COMPLIANCE_FLAGS): Handle the new 2023 value.
	* tests/run-decrypt.c: Append a "(beta)" to the vs-de compliance.
	* tests/run-keylist.c: Ditto.
	* tests/run-verify.c: Ditto.

2024-09-26  Werner Koch  <wk@gnupg.org>

	core: Allow GPGME_CREATE_ADSK also for gnupg 2.2.45.
	+ commit 3bf1ea97bcabac31d29f17320cdad2f75f759435
	* src/engine-gpg.c (gpg_addadsk): Extend the version check.

2024-09-20  Ingo Klöcker  <dev@ingo-kloecker.de>

	core: Report failed encryption/signing if gpgtar didn't emit SUCCESS.
	+ commit 79ca846993638de359936f86eafaa23f75c9f85d
	src/encrypt-sign.c (encrypt_sym_status_handler): Add call of
	_gpgme_encrypt_status_handler.
	(encrypt_sign_start): Call _gpgme_op_encrypt_init_result with
	success_required=1 if archive is created. Always call
	_gpgme_op_sign_init_result with success_required=0 because the encrypt
	status handler already checks for SUCCESS.
	src/encrypt.c (op_data_t): Add success_seen flag.
	(_gpgme_encrypt_status_handler): Return error if we didn't see a
	required SUCCESS on GPGME_STATUS_EOF. Set success_seen flag on
	GPGME_STATUS_SUCCESS.
	(encrypt_sym_status_handler): Add call of _gpgme_encrypt_status_handler.
	(_gpgme_op_encrypt_init_result): Add argument success_required. Set
	success_seen flag if SUCCESS is not required.
	(encrypt_start): Call _gpgme_op_encrypt_init_result with
	success_required=1 if archive is created.
	src/ops.h (_gpgme_op_sign_init_result, _gpgme_op_encrypt_init_result):
	Add argument success_required to prototypes.
	src/sign.c (op_data_t): Add success_seen flag.
	(_gpgme_sign_status_handler): Return error if we didn't see a
	required SUCCESS on GPGME_STATUS_EOF. Set success_seen flag on
	GPGME_STATUS_SUCCESS.
	(sign_init_result): Add argument success_required. Set success_seen
	flag if SUCCESS is not required.
	(_gpgme_op_sign_init_result): Add argument success_required and
	forward it to sign_init_result.
	(sign_start): Call sign_init_result with success_required=1 if archive
	is created.

2024-09-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	doc,build: Look for yat2m in $prefix/bin.
	+ commit 9747f189620a4c89f88f50c5960baa511eea0a97
	* configure.ac: Look for yat2m first in $prefix/bin and then in $PATH.

	doc,build: Fix "make install" if yat2m isn't available.
	+ commit e4b04ae15363ee8b2159dbc2586fbf93792598f6
	* configure.ac: Add hint for YAT2M variable. Set HAVE_YAT2M if yat2m was
	found.
	* doc/Makefile.am (myman_pages): Set to empty string if yat2m isn't
	available

2024-09-10  Sébastien Noel  <sebastien@twolife.be>

	doc: Provide a man page for gpgme-json.
	+ commit 8e7f443045f8e77bb5c841c2b7bfe2e1e3fcceb9
	* doc/gpgme-json.texi: New.
	* configure.ac: Check for yat2m.
	* doc/Makefile.am (YAT2M_OPTIONS): New.  Also add all the other man
	page stuff similar to what is used in gnupg.

2024-09-09  Werner Koch  <wk@gnupg.org>

	core: New encryption flags GPGME_ENCRYPT_ADD_RECP and _CHG_RECP.
	+ commit cd79fc39736fda6ce38f1f79700cf658c47372f9
	* src/gpgme.h.in (GPGME_ENCRYPT_ADD_RECP, GPGME_ENCRYPT_CHG_RECP):
	New flag values.
	* src/engine-gpg.c (have_cmd_modify_recipients): New.
	(gpg_encrypt): Check availability of the feature and prepare command.

	* tests/run-encrypt.c (main): New options --add-recipients
	and --change-recipients.

2024-09-04  Ingo Klöcker  <dev@ingo-kloecker.de>

	core: Treat email-only user IDs with upper case letters as email address
	+ commit 2264b64b85e6d522fdc5e06d5260f5b7b5414417
	* src/key.c (_gpgme_key_append_name): Support email-only user IDs with
	upper case letters.

	* tests/gpg/t-keylist.c (struct key_info_s): Add algo, length, sec_algo,
	sec_length.
	(keys): Add expected algo and length for primary and secondary subkeys.
	(main): Factor out code for checking a key and the code for the keylist
	test. Call the factored out test function and a new test function.
	(check_key, test_keylist, key_with_email_only_user_id,
	key_info_email_only_user_id,
	test_email_only_user_id_with_upper_case_letters): New.

2024-09-02  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,python: Fix build with setuptools 72.2.0+
	+ commit ecd0c86d62351d267bdc9566286c532a394c711b
	* lang/python/setup.py.in (BuildExtFirstHack.run): Extend members of the
	extension instead of lists that were passed to the extension.

2024-08-29  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Add pkgconfig file for gpgmepp.
	+ commit 569348ee84068ade5e05902dd9d670a1a30c7ca1
	* configure.ac: Add substitutions GPGMEPP_PKGCONFIG_LIBS,
	GPGMEPP_PKGCONFIG_CFLAGS, GPGMEPP_PKGCONFIG_HOST. Apply them. Configure
	gpgmepp.pc file.
	* lang/cpp/src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New.
	(EXTRA_DIST): Add gpgmepp.pc.in.
	* lang/cpp/src/gpgmepp.pc.in: New.

2024-08-28  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Go with default answer on unknown question by key edit interface.
	+ commit 7579c40124c9b287bb67e974bda46e879e1a1ab1
	* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl):
	Send empty string to edit interface if General Error occurred.

2024-08-26  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Add support for new context flag "proc-all-sigs"
	+ commit 409e314582273be36b9b6516e89f142f2e99e682
	* lang/qt/src/decryptverifyarchivejob.cpp,
	lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add
	member functions setProcessAllSignatures, processAllSignatures.
	* lang/qt/src/decryptverifyarchivejob_p.h
	(DecryptVerifyArchiveJobPrivate): Add member m_processAllSignatures.
	* lang/qt/src/decryptverifyjob.cpp, lang/qt/src/decryptverifyjob.h
	(DecryptVerifyJob): Add member functions setProcessAllSignatures,
	processAllSignatures.
	* lang/qt/src/decryptverifyjob_p.h (DecryptVerifyJobPrivate): Add member
	m_processAllSignatures.
	* lang/qt/src/qgpgmedecryptverifyarchivejob.cpp
	(decrypt_verify_from_file_name): Add argument "processAllSignatures".
	Set context flag "proc-all-sigs" if requested.
	(QGpgMEDecryptVerifyArchiveJob::start): Set context flag "proc-all-sigs"
	if requested.
	(QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_file_name.
	* lang/qt/src/qgpgmedecryptverifyjob.cpp
	(decrypt_verify_from_filename): Add argument "processAllSignatures".
	Set context flag "proc-all-sigs" if requested.
	(QGpgMEDecryptVerifyJob::start, QGpgMEDecryptVerifyJob::exec): Set
	context flag "proc-all-sigs" if requested.
	(QGpgMEDecryptVerifyJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_filename.
	* lang/qt/src/qgpgmeverifydetachedjob.cpp (verify_from_filename): Add
	argument "processAllSignatures". Set context flag "proc-all-sigs" if
	requested.
	(QGpgMEVerifyDetachedJob::start, QGpgMEVerifyDetachedJob::exec): Set
	context flag "proc-all-sigs" if requested.
	(QGpgMEVerifyDetachedJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_filename.
	* lang/qt/src/qgpgmeverifyopaquejob.cpp (verify_from_filename): Add
	argument "processAllSignatures". Set context flag "proc-all-sigs" if
	requested.
	(QGpgMEVerifyOpaqueJob::start, QGpgMEVerifyOpaqueJob::exec): Set
	context flag "proc-all-sigs" if requested.
	(QGpgMEVerifyOpaqueJobPrivate::startIt): Pass
	m_processAllSignatures to decrypt_verify_from_filename.
	* lang/qt/src/verifydetachedjob.cpp, lang/qt/src/verifydetachedjob.h
	(VerifyDetachedJob): Add member functions setProcessAllSignatures,
	processAllSignatures.
	* lang/qt/src/verifydetachedjob_p.h (VerifyDetachedJobPrivate): Add
	member m_processAllSignatures.
	* lang/qt/src/verifyopaquejob.cpp, lang/qt/src/verifyopaquejob.h
	(VerifyOpaqueJob): Add member functions setProcessAllSignatures,
	processAllSignatures.
	* lang/qt/src/verifyopaquejob_p.h (VerifyOpaqueJobPrivate): Add
	member m_processAllSignatures.

	* lang/qt/tests/run-decryptverifyarchivejob.cpp,
	lang/qt/tests/run-decryptverifyjob.cpp,
	lang/qt/tests/run-verifydetachedjob.cpp,
	lang/qt/tests/run-verifyopaquejob.cpp (struct CommandLineOptions): Add
	member processAllSignatures.
	(parseCommandLine): Add command line option --process-all-signatures.
	(main): Pass new option to the job.

2024-08-23  Werner Koch  <wk@gnupg.org>

	New context flag "proc-all-sigs".
	+ commit 37aa9eee7c5696c7b79898a33f9c2883962c2a88
	* src/context.h (struct gpgme_context): Add proc_all_sigs.
	* src/gpgme.c (gpgme_set_ctx_flag): Add flag "proc-all-sigs".
	(gpgme_get_ctx_flag): Ditto.
	* src/engine-gpg.c (engine.gpg): Add flags.proc_all_sigs.
	(have_option_proc_all_sigs): New.
	(gpg_set_engine_flags): Set flag from context.
	(build_argv): Add --proc-all-sigs if requested and supported.

2024-08-07  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt,tests: Add make target to clean the keyring.
	+ commit 0174575c8c169cd00f65ed509d91355dea26995f
	* lang/qt/tests/Makefile.am (clean-keyring): New target.

	qt: Use --quick-set-ownertrust if available.
	+ commit a73eee3655e21c60cbc572216a8a90eff5ac6ea5
	* lang/qt/src/qgpgmechangeownertrustjob.cpp (set_owner_trust): New.
	(QGpgMEChangeOwnerTrustJob::start): Use set_owner_trust if gpg is new
	enough.

	* lang/qt/tests/t-ownertrust.cpp
	(ChangeOwnerTrustTest::testChangeOwnerTrust): Log unexpected error.

	tests,json: Remove no longer needed code.
	+ commit 668a1344c6b230c6a205f5cf56c8ffc0c1ee9287
	* tests/json/t-json.c (parse_version_number, parse_version_string,
	compare_versions, check_gpg_version): Remove.
	(main): Use have_gpg_version from t-support.h.

	qt: Support disabling and enabling of keys.
	+ commit 63822343dfaac8b638ef475d441c4379da3a9804
	* lang/qt/src/Makefile.am: Add new files.
	* lang/qt/src/job.cpp (QuickJob): Move definition of constructor and
	destructor and inclusion of the moc file to quickjob.cpp.
	* lang/qt/src/qgpgmequickjob.cpp (class QGpgMEQuickJobPrivate): New.
	(QGpgMEQuickJob::QGpgMEQuickJob): Instantiate private job class.
	(set_key_enabled): New.
	* lang/qt/src/quickjob.cpp: New.
	* lang/qt/src/quickjob.h (class QuickJob): Add member function
	startSetKeyEnabled.
	* lang/qt/src/quickjob_p.h: New.

	* lang/qt/tests/Makefile.am: Add new test for Qt 5 and Qt 6.
	* lang/qt/tests/t-disablekey.cpp: New.

2024-08-06  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Add support for setting owner trust and for disabling keys.
	+ commit d5f612e9685d18313d445799a19ff83e013f1b0a
	* lang/cpp/src/context.cpp, lang/cpp/src/context.h (class Context): Add
	member functions setOwnerTrust, startSetOwnerTrust, setKeyEnabled,
	startSetKeyEnabled.
	* lang/cpp/src/context.cpp (owner_trust_to_string): New.

	core: New function gpgme_op_setownertrust.
	+ commit d804a7a4bc871f38f6cdc2cd63af3ef004580437
	* src/Makefile.am (main_sources): Add new file.
	* src/context.h (ctx_op_data_id_t): Add OPDATA_SETOWNERTRUST.
	* src/engine.c, src/engine.h (_gpgme_engine_op_setownertrust): New.
	* src/engine-backend.h (engine_ops): Add 'setownertrust' and adjust all
	engine initializers.
	* src/engine-gpg.c (gpg_setownertrust): New.
	(_gpgme_engine_ops_gpg): Set setownertrust to gpg_setownertrust.
	* src/gpgme.h.in (gpgme_op_setownertrust_start, gpgme_op_setownertrust):
	New.
	* src/gpgme.def, src/libgpgme.vers: Add new functions.
	* src/setownertrust.c: New.

	* doc/gpgme.texi: Document new functions.

	* tests/Makefile.am (noinst_PROGRAMS): Add new test program.
	* tests/run-setownertrust.c: New.

	* tests/gpg/Makefile.am (c_tests): Add new file. (LDADD): Add
	@GPG_ERROR_LIBS@.
	* tests/gpg/t-setownertrust.c: New.
	* tests/gpg/t-support.h (have_gpg_version): New.

2024-08-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	w32: Use UTF-8 for localized error descriptions for all threads.
	+ commit 9272b0fb6ebc245a37c74e02f1de00dc1ec99723
	* src/version.c (do_subsystem_inits) [W32]: Switch gettext to UTF-8
	for current thread and all new threads.

2024-07-22  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,qt: Fix include path in CMake files.
	+ commit 5c095553e4344fba63bbf684b2468e36a7b891e8
	* lang/qt/src/Makefile.am (QGpgmeConfig.cmake, QGpgmeQt6Config.cmake):
	Use new variables includeprefix{5,6} instead of replaced variable
	includeprefix.

2024-07-18  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,qt: Don't put generated camel-case headers in tarball.
	+ commit 9ab2ce36f9b9f510d58c2dd9946cd360c963976b
	* lang/qt/src/Makefile.am: Change camelcase5include_HEADERS to
	nodist_camelcase5include_HEADERS. Change camelcase6include_HEADERS to
	nodist_camelcase6include_HEADERS.

	core: Remove obsolete source files.
	+ commit c69240c843f2b80f47cad97b8ba3b314e104b959
	* src/isascii.c, src/putc_unlocked.c: Remove.

	build,qt: Allow building Qt 5 bindings and Qt 6 bindings.
	+ commit 42e151b34ba1e8c07b1ed2e4e1f6299466e499a1
	* configure.ac: Remove "qt" from default_languages. Add "qt5 qt6" to
	default_languages. Remove "qt" from help for --enable-languages. Don't
	fail anymore if "qt5" and "qt6" are enabled. Warn that "qt" is
	deprecated if it was enabled.
	* lang/qt/src/Makefile.am (libqgpgme_la, libqgpgmeqt6_la): New.
	(lib_LTLIBRARIES): Set Qt 5 and/or Qt 6 variant of libqgpgme.
	(AM_CPPFLAGS): Replace with libqgpgme_la_CPPFLAGS for Qt 5 and
	libqgpgmeqt6_la_CPPFLAGS for Qt 6.

	build,qt: Decouple generation of moc files.
	+ commit e6830b58b6de6d4fa02f1055cd0e992c9310b51a
	* m4/qt5.m4: Export moc for Qt 5 in variable MOC5. Unset temporary MOC2.
	* m4/qt6.m4: Export moc for Qt 6 in variable MOC6.
	* lang/qt/src/Makefile.am: Generate .moc5 files from .h files. Generate
	.moc forwarding headers in moc5 subfolder. Add moc5 subfolder to include
	paths for Qt 5-based qgpgme library. Ditto for Qt 6. Clean up moc5 and
	moc6 subfolders.
	* lang/qt/tests/Makefile.am: List tests and test runners for Qt 5 and
	Qt 6. Generate .moc5 files from .cpp files of tests. Generate .moc
	forwarding headers in moc5 subfolder. Generate .hmoc file from
	t-support.h directly in moc5 subfolder. Add moc5 subfolder to include
	paths for all Qt 5-based tests and runners. Ditto for Qt 6. Specify
	sources, LDADD and CPPFLAGS for all tests and test runners for Qt 5 and
	Qt 6. Clean up moc5 and moc6 subfolders.

	build,qt: Remove include directories on uninstall.
	+ commit 899a572b335528aabb769e5832318b0a3e910d08
	* lang/qt/src/Makefile.am (uninstall-include-dirs-qt5,
	uninstall-include-dirs-qt6): New targets.
	(uninstall_include_dirs_qt5, uninstall_include_dirs_qt6): New variables.
	(uninstall-local): Replace with...
	(uninstall-hook): ...this. Add new uninstall_include_dirs_qt* variables.

	build,qt: Decouple handling of include headers.
	+ commit 69558f2c0bede869a1caec70b2046a5138043c32
	* lang/qt/src/Makefile.am (includeprefix): Replace with...
	(includeprefix5, includeprefix6): ...these.
	(qgpgmeincludedir): Replace with...
	(qgpgme5includedir, qgpgme6includedir): ...these.
	(qgpgmeinclude_HEADERS): Replace with...
	(qgpgme5include_HEADERS, qgpgme6include_HEADERS): ...these.
	(nodist_qgpgmeinclude_HEADERS): Replace with...
	(nodist_qgpgme5include_HEADERS, nodist_qgpgme6include_HEADERS): ..these.
	(camelcaseincludedir): Replace with...
	(camelcase5includedir, camelcase6includedir): ...these.
	(camelcaseinclude_HEADERS): Replace with...
	(camelcase5include_HEADERS, camelcase6include_HEADERS): ...these.

	build,qt: Decouple (un)install of CMake files.
	+ commit 576d2db9dd9b7c66686e239ff61ffca606ad9f2a
	* lang/qt/src/Makefile.am (install-cmake-files): Rename target to
	install-cmake-files-qt5 and install-cmake-files-qt6.
	(uninstall-cmake-files): Rename target to uninstall-cmake-files-qt5 and
	uninstall-cmake-files-qt6.
	(install_cmake_files_qt5, uninstall_cmake_files_qt5,
	install_cmake_files_qt6, uninstall_cmake_files_qt6): New variables.
	(install-data-local): Depend on both install-cmake-files-qt* targets.
	(uninstall-local): Depend on both uninstall-cmake-files-qt* targets.

2024-07-15  Ingo Klöcker  <dev@ingo-kloecker.de>

	core: Support all keylist modes and fix possible overrun.
	+ commit aa15a664b3cf9bf578ba6d22c1c0c327af68b1b4
	* src/gpgme-tool.c (gt_get_keylist_mode): Increase NR_KEYLIST_MODES to
	number of keylist modes. Add support for GPGME_KEYLIST_MODE_WITH_TOFU,
	GPGME_KEYLIST_MODE_WITH_KEYGRIP, GPGME_KEYLIST_MODE_WITH_V5FPR. Write
	all modes.
	(hlp_keylist_mode): List all supported keylist modes.
	(cmd_keylist_mode): Add support for GPGME_KEYLIST_MODE_WITH_TOFU,
	GPGME_KEYLIST_MODE_WITH_KEYGRIP, GPGME_KEYLIST_MODE_WITH_V5FPR.

2024-07-10  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,cpp: Fix include paths in forwarding headers in gpgme++ folder.
	+ commit e46748a0d18b8a6d26e6b386f64a99a5cdc6a6e3
	* lang/cpp/src/Makefile.am (build rule for copied headers): Write
	abs_srcdir instead of srcdir in the generated headers.

2024-07-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Replace usage of deprecated Error::asString.
	+ commit f6d020e24fb64cfba5e80cef7f80cad15f08cc3c
	* lang/qt/src/debug.cpp (operator<<): Use Error::asStdString instead of
	Error::asString.
	* lang/qt/src/qgpgmedecryptverifyjob.cpp (decrypt_verify),
	lang/qt/src/qgpgmenewcryptoconfig.cpp
	(QGpgMENewCryptoConfigComponent::sync),
	lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use QDebug operator
	for Error instead of Error::asString.
	* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Use
	errorAsString instead of Error::asString.
	* lang/qt/src/util.h (errorAsString): New.

	* lang/qt/tests/run-decryptverifyarchivejob.cpp (main),
	lang/qt/tests/run-decryptverifyjob.cpp (main),
	lang/qt/tests/run-encryptarchivejob.cpp (main),
	lang/qt/tests/run-encryptjob.cpp (main),
	lang/qt/tests/run-exportjob.cpp (main),
	lang/qt/tests/run-importjob.cpp (main),
	lang/qt/tests/run-receivekeysjob.cpp (main),
	lang/qt/tests/run-refreshkeysjob.cpp (main),
	lang/qt/tests/run-signarchivejob.cpp (main),
	lang/qt/tests/run-signjob.cpp (main),
	lang/qt/tests/run-verifydetachedjob.cpp (main),
	lang/qt/tests/run-verifyopaquejob.cpp (main),
	lang/qt/tests/run-wkdrefreshjob.cpp (main),
	lang/qt/tests/t-ownertrust.cpp (testChangeOwnerTrust),
	lang/qt/tests/t-remarks.cpp (testRemarkOwnKey),
	lang/qt/tests/t-tofuinfo.cpp (testTofuPolicy): Use QDebug operator for
	Error instead of Error::asString.
	* lang/qt/tests/t-changeexpiryjob.cpp (all test functions),
	lang/qt/tests/t-trustsignatures.cpp (all test functions),
	lang/qt/tests/t-various.cpp (testSignKeyWithoutExpiration,
	testSignKeyWithExpiration): Use errorAsString instead of
	Error::asString.

	cpp: Deprecate Error::asString and update users.
	+ commit 28542b14c4df40c7a54bfcf65d7c725bd99fb3e5
	* lang/cpp/src/error.h (Error::asString): Mark as deprecated.
	* lang/cpp/src/context.cpp (operator<<),
	lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl),
	lang/cpp/tests/run-getkey.cpp (main),
	lang/cpp/tests/run-keylist.cpp (main),
	lang/cpp/tests/run-wkdlookup.cpp (main): Use Error::asStdString instead
	of Error::asString.

	cpp: Add safer member function returning text describing an error.
	+ commit 2656d3ee5b1a905d9fe4dd5c8b2d9737e775df31
	* lang/cpp/src/error.h, lang/cpp/src/context.cpp (class Error): New
	member function asStdString.

	qt: Always include C++ binding headers with gpgme++/ prefix.
	+ commit acf574af64d6ace5b090029748ecaf9d87163be7
	* lang/qt/src/Makefile.am, lang/qt/tests/Makefile.am (AM_CPPFLAGS):
	Add builddir instead of srcdir of C++ bindings as include path.
	* lang/qt/src/changeexpiryjob.cpp, lang/qt/src/changeexpiryjob.h,
	lang/qt/src/changeownertrustjob.h, lang/qt/src/dataprovider.cpp,
	lang/qt/src/dataprovider.h, lang/qt/src/debug.cpp,
	lang/qt/src/decryptverifyarchivejob.cpp,
	lang/qt/src/decryptverifyarchivejob.h,
	lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h,
	lang/qt/src/encryptjob.h, lang/qt/src/encryptjob_p.h,
	lang/qt/src/filelistdataprovider.cpp,
	lang/qt/src/filelistdataprovider.h,
	lang/qt/src/hierarchicalkeylistjob.h, lang/qt/src/importjob.cpp,
	lang/qt/src/importjob.h, lang/qt/src/importjob_p.h, lang/qt/src/job.h,
	lang/qt/src/keyformailboxjob.h, lang/qt/src/keylistjob.h,
	lang/qt/src/listallkeysjob.h, lang/qt/src/multideletejob.cpp,
	lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp,
	lang/qt/src/qgpgmeadduseridjob.cpp, lang/qt/src/qgpgmebackend.cpp,
	lang/qt/src/qgpgmechangeexpiryjob.cpp,
	lang/qt/src/qgpgmechangeownertrustjob.cpp,
	lang/qt/src/qgpgmechangepasswdjob.cpp, lang/qt/src/qgpgmedecryptjob.cpp,
	lang/qt/src/qgpgmedecryptjob.h,
	lang/qt/src/qgpgmedecryptverifyarchivejob.cpp,
	lang/qt/src/qgpgmedecryptverifyarchivejob.h,
	lang/qt/src/qgpgmedecryptverifyjob.cpp,
	lang/qt/src/qgpgmedecryptverifyjob.h, lang/qt/src/qgpgmedeletejob.cpp,
	lang/qt/src/qgpgmedownloadjob.cpp,
	lang/qt/src/qgpgmeencryptarchivejob.cpp,
	lang/qt/src/qgpgmeencryptarchivejob.h, lang/qt/src/qgpgmeencryptjob.cpp,
	lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeexportjob.cpp,
	lang/qt/src/qgpgmeimportfromkeyserverjob.cpp,
	lang/qt/src/qgpgmeimportfromkeyserverjob.h,
	lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmeimportjob.h,
	lang/qt/src/qgpgmekeyformailboxjob.h,
	lang/qt/src/qgpgmekeygenerationjob.cpp,
	lang/qt/src/qgpgmekeygenerationjob.h, lang/qt/src/qgpgmekeylistjob.cpp,
	lang/qt/src/qgpgmekeylistjob.h, lang/qt/src/qgpgmelistallkeysjob.cpp,
	lang/qt/src/qgpgmelistallkeysjob.h,
	lang/qt/src/qgpgmenewcryptoconfig.cpp,
	lang/qt/src/qgpgmenewcryptoconfig.h, lang/qt/src/qgpgmequickjob.cpp,
	lang/qt/src/qgpgmereceivekeysjob.h,
	lang/qt/src/qgpgmerefreshsmimekeysjob.cpp,
	lang/qt/src/qgpgmerefreshsmimekeysjob.h,
	lang/qt/src/qgpgmerevokekeyjob.cpp,
	lang/qt/src/qgpgmesetprimaryuseridjob.cpp,
	lang/qt/src/qgpgmesignarchivejob.cpp,
	lang/qt/src/qgpgmesignarchivejob.h,
	lang/qt/src/qgpgmesignencryptarchivejob.cpp,
	lang/qt/src/qgpgmesignencryptarchivejob.h,
	lang/qt/src/qgpgmesignencryptjob.cpp,
	lang/qt/src/qgpgmesignencryptjob.h, lang/qt/src/qgpgmesignjob.cpp,
	lang/qt/src/qgpgmesignjob.h, lang/qt/src/qgpgmesignkeyjob.cpp,
	lang/qt/src/qgpgmetofupolicyjob.cpp,
	lang/qt/src/qgpgmeverifydetachedjob.cpp,
	lang/qt/src/qgpgmeverifydetachedjob.h,
	lang/qt/src/qgpgmeverifyopaquejob.cpp,
	lang/qt/src/qgpgmeverifyopaquejob.h, lang/qt/src/qgpgmewkdlookupjob.cpp,
	lang/qt/src/qgpgmewkdrefreshjob.cpp, lang/qt/src/qgpgmewkdrefreshjob.h,
	lang/qt/src/qgpgmewkspublishjob.cpp, lang/qt/src/quickjob.h,
	lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h,
	lang/qt/src/signencryptarchivejob.cpp,
	lang/qt/src/signencryptarchivejob.h, lang/qt/src/signencryptjob.h,
	lang/qt/src/signencryptjob_p.h, lang/qt/src/signjob.h,
	lang/qt/src/signjob_p.h, lang/qt/src/threadedjobmixin.cpp,
	lang/qt/src/threadedjobmixin.h, lang/qt/src/tofupolicyjob.h,
	lang/qt/src/util.cpp, lang/qt/src/wkdlookupresult.cpp,
	lang/qt/src/wkdlookupresult.h, lang/qt/src/wkdrefreshjob_p.h,
	lang/qt/tests/run-decryptverifyarchivejob.cpp,
	lang/qt/tests/run-decryptverifyjob.cpp,
	lang/qt/tests/run-encryptarchivejob.cpp,
	lang/qt/tests/run-encryptjob.cpp, lang/qt/tests/run-exportjob.cpp,
	lang/qt/tests/run-importjob.cpp, lang/qt/tests/run-keyformailboxjob.cpp,
	lang/qt/tests/run-receivekeysjob.cpp,
	lang/qt/tests/run-refreshkeysjob.cpp,
	lang/qt/tests/run-signarchivejob.cpp, lang/qt/tests/run-signjob.cpp,
	lang/qt/tests/run-verifydetachedjob.cpp,
	lang/qt/tests/run-verifyopaquejob.cpp,
	lang/qt/tests/run-wkdrefreshjob.cpp,
	lang/qt/tests/t-addexistingsubkey.cpp,
	lang/qt/tests/t-changeexpiryjob.cpp, lang/qt/tests/t-config.cpp,
	lang/qt/tests/t-decryptverify.cpp, lang/qt/tests/t-encrypt.cpp,
	lang/qt/tests/t-import.cpp, lang/qt/tests/t-keylist.cpp,
	lang/qt/tests/t-keylocate.cpp, lang/qt/tests/t-ownertrust.cpp,
	lang/qt/tests/t-remarks.cpp, lang/qt/tests/t-revokekey.cpp,
	lang/qt/tests/t-setprimaryuserid.cpp, lang/qt/tests/t-support.cpp,
	lang/qt/tests/t-support.h, lang/qt/tests/t-tofuinfo.cpp,
	lang/qt/tests/t-trustsignatures.cpp, lang/qt/tests/t-various.cpp,
	lang/qt/tests/t-verify.cpp, lang/qt/tests/t-wkdlookup.cpp,
	lang/qt/tests/t-wkspublish.cpp: Include GpgME++ headers with gpgme++/
	prefix.

	build,cpp: Create forwarding headers in a gpgme++ folder.
	+ commit b7435b31f6e6754480a4e6d2910d74ee15f75fc5
	* lang/cpp/src/Makefile.am (copied_headers): New.
	(build rule for all copied headers): New.
	(BUILT_SOURCES): New.
	(CLEANFILES): Add copied_headers.

2024-07-05  NIIBE Yutaka  <gniibe@fsij.org>

	Fix calling CancelSynchronousIo.
	+ commit 95bd4fa813023a56c29a43bdb9ad9777362b389b
	* src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Use HANDLE.

	Fix printing size_t and off_t value for LLP64 Windows.
	+ commit de6068450094783b9ed68ec9553ea59d02a208ff
	* src/debug.h (_trace_sysres_off_t): Use 'z' length specifier.
	* src/w32-io.c (_gpgme_io_read): Likewise.
	(writer, _gpgme_io_write): Likewise.

	Remove ath.h and ath.c.
	+ commit 8b4171680c325d63952c9026aa7fa35f4b23e351
	* src/Makefile.am (system_components): We don't use ath.h any more.
	(main_sources): Remove ath.h and ath.c.

	Don't use ath_self, but get thread ID directly.
	+ commit 9c276e762a25262cd635e97f5aad4b09fa41b427
	* src/debug.c [HAVE_W32_SYSTEM or __linux] (tid_log_callback): Use
	native thread ID call for Windows and Linux, ifdef-out-ed.
	(debug_init): Only call gpgrt_log_set_pid_suffix_cb for relevant
	systems.

2024-07-01  NIIBE Yutaka  <gniibe@fsij.org>

	Use gpgrt_b64dec in libgpg-error.
	+ commit ec2c6dd8bc49e010810cb8ad403a9b8dad5d399e
	* src/b64dec.c: Remove.
	* src/Makefile.am (main_sources): Remove b64dec.c.
	* src/data-identify.c (pgp_binary_detection): Use gpgrt_b64dec in
	libgpg-error.

2024-06-28  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Remove obsolete files.
	+ commit 6ed5c9a38aedcda9e67607c7474042f28121af6e
	* lang/cpp/src/context_glib.cpp, lang/cpp/src/context_qt.cpp: Remove.

2024-06-18  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Allow appending a detached signature to an existing file.
	+ commit 7d5df0bf0d86391151911160db24441966b6d938
	* lang/qt/src/qgpgmesignjob.cpp (sign_to_filename): Add argument
	"appendSignature". Append new detached signature to an existing file if
	requested.
	* lang/qt/src/signjob.cpp, lang/qt/src/signjob.h (class SignJob): Add
	member functions setAppendSignature, appendSignatureEnabled.
	* lang/qt/src/signjob_p.h (struct SignJobPrivate): Add member
	m_appendSignature.

	* lang/qt/tests/run-signjob.cpp (struct CommandLineOptions): Add members
	signingFlags, appendSignature. Initialize armor.
	(parseCommandLine): Add command line options --detach-sign and --append.
	(main): Do not exit if output file exists and append is enabled.
	Pass new options to the job.

2024-06-17  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt,build: Install headers for Qt 5 and Qt 6 in different locations.
	+ commit 09827ffc7745e7dc4275f1c6e46531a959be1f71
	* lang/qt/src/Makefile.am (includeprefix): New.
	(qgpgmeincludedir, camelcaseincludedir): Add $(includeprefix).
	(QGpgmeConfig.cmake, QGpgmeQt6Config.cmake): Add $(includeprefix) to
	replacement for @resolved_includedir@.

2024-06-14  NIIBE Yutaka  <gniibe@fsij.org>

	Update gpg-error.m4 again for spell fix.
	+ commit 53c367629a6360719b6247d148174c6c66f52020


2024-06-13  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt,tests: Fix deprecation warnings (in Qt 6 build)
	+ commit c52e1943a72d42cc7dfbfc82b72345092d8f05c0
	* lang/qt/tests/t-tofuinfo.cpp (TofuInfoTest::signAndVerify,
	TofuInfoTest::testTofuPolicy): Use range-based for loop instead of Qt's
	deprecated foreach.

	qt: Specify import options as list of strings instead of as string.
	+ commit 60b96d149c71f7f5f928944e65732671d6b9eacc
	* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (setImportOptions):
	Change type of argument "options" to QStringList.
	(importOptions): Change return type to QStringList.
	* lang/qt/src/importjob_p.h (struct ImportJobPrivate): Change type of
	member m_importOptions to QStringList.
	* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Change type of argument
	"importOptions" to QStringList. Join list of import options with ','
	when setting the "import-options" context flag.

	* lang/qt/tests/t-import.cpp (ImportTest::testImportWithImportOptions):
	Adapt to API change.

2024-06-13  NIIBE Yutaka  <gniibe@fsij.org>

	m4: Update m4 files.
	+ commit 6c90ec7be23532184f54cf59675130be6d2ae55a
	* m4/gpg-error.m4: Update libgpg-error master.
	* m4/libassuan.m4: Update libassuan master.

	gpgme.m4: Fix setting/using GPG_ERROR_CONFIG.
	+ commit 14b035034ab52c73f8d1aab2c475b3e8709600b4
	gpgm4.m4 (_AM_PATH_GPGRT_CONFIG): Don't set GPG_ERROR_CONFIG and
	gpg_error_config_version.

2024-06-12  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Allow specifying import options when importing keys.
	+ commit 2187a4de8c1731d8621a4b056baf84ee29e0ff00
	* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (class ImportJob):
	Add member functions setImportOptions and importOptions.
	* lang/qt/src/importjob_p.h (struct ImportJobPrivate): Add member
	m_importOptions.
	* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Add arg importOptions
	and adjust the callers. Set import options context flag.

	* lang/qt/tests/t-import.cpp (ImportTest): Add member function
	testImportWithImportOptions.

	tests: Add --import-filter option to usage info of run-import.
	+ commit 5b73b0722a136db9fa7b9bb96bae27b8cfef5987
	* tests/run-import.c (show_usage): Add option --import-filter.

	core: Allow setting import options when importing keys.
	+ commit 3b9815bd8ad723445128ae99883be0072ae389a6
	* src/context.h (struct gpgme_context): New field import_options.
	* src/engine-backend.h (struct engine_ops): Add arg import_options to
	field 'import'.
	* src/engine-gpg.c (gpg_import): Add arg import_options and pass option
	--import-options with argument value to gpg.
	* src/engine-gpgsm.c (gpgsm_import): Add dummy arg import_options.
	* src/engine.c (_gpgme_engine_op_import): Add arg import_options and
	pass option to import function of engine.
	* src/engine.h (_gpgme_engine_op_import): Add arg import_options.
	* src/gpgme.c (gpgme_release): Free 'import_options'.
	(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "import-options".
	* src/import.c (_gpgme_op_import_start, _gpgme_op_import_keys_start,
	_gpgme_op_receive_keys_start): Pass import options stored in context to
	_gpgme_engine_op_import.

	* tests/run-import.c (show_usage, main): Add option --import-options.

	qt,doc: Fix typos.
	+ commit 307256d277d86fac768f09d7df09a5f62b680469
	* lang/qt/README: Fix typos.

2024-06-10  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Align license of some Makefiles with license of other Makefiles.
	+ commit 87319b3fc7667b271f7803132e3cbaa50f3344e4
	* lang/qt/doc/Makefile.am, lang/qt/tests/Makefile.am: Change license
	from LGPL to GPL.

	qt: Fix license headers of Makefiles.
	+ commit 29be63ae37755f1b16607864df0df71df4059549
	* lang/qt/Makefile.am, lang/qt/src/Makefile.am: Files are part of
	QGpgme. Fix wrong package name (GPGME-CL -> QGpgME). Replace references
	to LGPL with references to GPL.

	qt: Fix license headers of CMake config files.
	+ commit 09cc0c81f745ef1e9eb802a7f062f62f621e9301
	* lang/qt/src/QGpgmeConfig-w32.cmake.in.in,
	lang/qt/src/QGpgmeConfig.cmake.in.in,
	lang/qt/src/QGpgmeConfigVersion.cmake.in: Files are part of QGpgME.
	Fix copy&paste error (GPGME-CL -> QGpgME). Fix reference to license
	to check for details.
	* lang/qt/src/QGpgmeQt6Config-w32.cmake.in.in,
	lang/qt/src/QGpgmeQt6Config.cmake.in.in,
	lang/qt/src/QGpgmeQt6ConfigVersion.cmake.in: Files are part of QGpgME.
	Fix reference to license to check for details.

	qt: Fix license headers of dataprovider.*
	+ commit 967b6b726eb645e682cdb2a7b66b74307bd1c03d
	* lang/qt/src/dataprovider.cpp, lang/qt/src/dataprovider.h: Change
	license header from LGPL to GPL.

	cpp: Remove commented out and disabled code.
	+ commit 4136928f0d894e873eb0ecb0bc79931a023ba32c
	* lang/cpp/src/configuration.cpp: Remove disabled, abandoned code.
	* lang/cpp/src/context.cpp: Remove commented out, obsolete code.

2024-06-04  Ingo Klöcker  <dev@ingo-kloecker.de>

	core,w32: Pass file names with forward slashes to gpg and gpgtar.
	+ commit 25dd284b0c42ba4ad434ce43f6ac93f24acd6498
	src/conversion.c, src/util.h (_gpgme_replace_backslashes): New.
	src/engine-gpg.c (_add_arg): Add argument file_name. On Windows, replace
	backslashes in file name arguments with forward slashes.
	(add_arg_ext, add_arg_with_locp, add_arg, add_arg_pfx, add_gpg_arg,
	add_gpg_arg_with_value, add_arg_len): Adjust call of _add_arg.
	(add_file_name_arg, add_file_name_arg_len, add_gpg_arg_with_file_name):
	New.
	(add_file_name_arg_or_data): Call add_file_name_arg for file name.
	(gpg_new): Call add_gpg_arg_with_file_name for home directory.
	(gpg_decrypt): Call add_file_name_arg for output directory and output
	file name.
	(append_args_from_recipients_string): Call add_file_name_arg_len for
	recipients file name.
	(gpg_encrypt): Call add_file_name_arg for output file name, base
	directory and input file name. Call add_gpg_arg_with_file_name to set
	file name stored in message.
	(gpg_encrypt_sign): Call add_file_name_arg for output file name, base
	directory and input file name. Call add_gpg_arg_with_file_name to set
	file name stored in message.
	(gpg_sign): Call add_file_name_arg for output file name, base directory
	and input file name. Call add_gpg_arg_with_file_name to set file name
	stored in message.
	(gpg_verify): Call add_file_name_arg for output directory and output
	file name.

2024-05-29  Ingo Klöcker  <dev@ingo-kloecker.de>

	build,python: Fix make distcheck for Python 3.9+
	+ commit 1245b090126b8e2eeeda599b01b6b085d3607353
	* lang/python/Makefile.am (uninstall-local): Remove installed .egg
	folders.

	build,python: Remove support for Python 3.4, 3.5, 3.7.
	+ commit 09d81da665894997d654dd4add505302654a4294
	* configure.ac: Don't look for Python 3.4, 3.5, 3.7 anymore.

2024-05-29  Ben Greiner  <code@bnavigator.de>

	build,python: Build Python bindings without distutils.
	+ commit 5844d9e700239ad10a5956cd7789bd02360bb0fa
	* m4/python.m4: Add python3.12 and 3.11 as valid interpreters, remove
	EOL 3.4, 3.5, 3.7 (keep 3.6 because some distributions still ship and
	maintain it).
	* lang/python/Makefile.am (clean-local): Remove dist and gpg.egg-info
	created by Python 3.9+ on make install.
	* lang/python/setup.py.in: switch from distutils to setuptools where
	possible, remove obsolete and deprecated -py3 option of swig, add
	classifiers up to 3.12, remove 3.4, 3.5, 3.7.
	* lang/python/doc/src/gpgme-python-howto.org: replace distutils with
	setuptools
	* lang/python/examples/howto/advanced/cython/setup.py: replace distutils
	with setuptools

2024-05-24  Ingo Klöcker  <dev@ingo-kloecker.de>

	tests: Add new files to distribution.
	+ commit 986c5f0b947559b76f9997d238bb4231a79eeee1
	* tests/json/Makefile.am (EXTRA_DIST): Add files added with f2575b63.

	cpp: Fix includes in public headers.
	+ commit 6aa359b1e8d468d4f2f9145666ab6d916f453244
	* lang/cpp/src/defaultassuantransaction.h,
	lang/cpp/src/gpgadduserideditinteractor.h,
	lang/cpp/src/gpgagentgetinfoassuantransaction.h,
	lang/cpp/src/gpggencardkeyinteractor.h,
	lang/cpp/src/gpgsetexpirytimeeditinteractor.h,
	lang/cpp/src/gpgsetownertrusteditinteractor.h,
	lang/cpp/src/gpgsignkeyeditinteractor.h,
	lang/cpp/src/interfaces/assuantransaction.h,
	lang/cpp/src/interfaces/dataprovider.h,
	lang/cpp/src/interfaces/statusconsumer.h,
	lang/cpp/src/scdgetinfoassuantransaction.h,
	lang/cpp/src/statusconsumerassuantransaction.h,
	lang/cpp/src/trustitem.h: Use #include "foo.h" instead of
	#include <foo.h> for own headers.

2024-05-22  Tobias Fella  <tobias.fella@gnupg.com>

	qt,cpp: Implement adding ADSKs to existing keys.
	+ commit 15718cb2954d9df9af979f574cec859feb2ba052
	* lang/cpp/src/context.cpp: Add functions for adding ADSKs.
	* lang/cpp/src/context.h: Ditto.
	* lang/qt/src/qgpgmequickjob.cpp: Add implementation of ADSK job.
	* lang/qt/src/qgpgmequickjob.h: Ditto.
	* lang/qt/src/quickjob.h: Add job for adding ADSKs.

	core: Implement adding ADSKs through gpgme_createsubkey.
	+ commit e42b72bc2ba0b5cacfd5df625df6011b8819fbce
	* src/engine-gpg.c: Add and use function for adding ADSKs.
	* src/genkey.c: Prevent error due to no status line.
	* src/gpgme.h.in: Add flag GPGME_CREATE_ADSK
	* doc/gpgme.texi: Add documentation for ADSKs
	* tests/run-genkey.c: Add test for adding ADSKs

2024-05-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	cpp: Add information about revocation keys to Key.
	+ commit 90eb80134b2d7720b187a6b7fd16f40f23cf1022
	* lang/cpp/src/gpgmefw.h (gpgme_revocation_key_t): New forward
	declaration.
	* lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods
	revocationKey, numRevocationKeys, revocationKeys.
	(class RevocationKey): New.
	(swap): New overload for RevocationKey.
	(operator<<): New overload for RevocationKey.
	* lang/cpp/src/key.cpp (operator<<): Add information about revocation
	keys to the output stream for Key.

	* lang/cpp/tests/run-keylist.cpp (main): Don't output Key if nextKey
	failed, e.g. at the end of the key listing.

	json: Add information about revocation keys to key list result.
	+ commit f2575b6313aeb23d867682856f7842704786349e
	* src/gpgme-json.c (revocation_key_to_json): New.
	(key_to_json): Add list of revocation keys.

	* tests/json/Makefile.am (pubring-stamp): Import new pub key.
	* tests/json/key-with-revokers.asc: New.
	* tests/json/t-json.c (tests): Add "t-keylist-revokers".
	* tests/json/t-keylist-revokers.in.json,
	tests/json/t-keylist-revokers.in.json: New.

	core: Add information about revocation keys to keys.
	+ commit adadfac997a812699049cd9a5f484cbcabff5bfd
	* src/gpgme.h.in (struct _gpgme_revocation_key,
	gpgme_revocation_key_t): New.
	(struct _gpgme_key): Add fields 'revkeys', '_last_revkey'.
	* src/key.c (_gpgme_key_add_rev_key): New.
	(gpgme_key_unref): Free revkeys.
	* src/keylist.c (keylist_colon_handler): Parse rvk lines.
	* src/ops.h (_gpgme_key_add_rev_key): New.

	* tests/run-keylist.c (main): Print revocation key info.

2024-05-21  Werner Koch  <wk@gnupg.org>

	tests: Fix segv in t-json.c.
	+ commit ac4bf86bb65a1e228550cce9314ad17239343c5d
	* tests/json/t-json.c (test_contains): Avoid calling recusivly with no
	child.

	tests: Avoid some compiler warnings.
	+ commit 55a1ae4163ecc97601c8d3d216452b65eec405af
	* tests/gpg/t-support.h (fail_with_syserr): New.
	(check_data): Use it to avoid compiler warnings.
	* tests/run-support.h (fail_with_syserr): New.

2024-05-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	qt: Avoid bogus stringop-overread warning.
	+ commit c933269d3a59e9a36587406ed2c130ea1b292852
	* lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Use
	QByteArray overload of QString::fromUtf8.

	qt: Fix warning about missing return.
	+ commit 333241b286e2c164640812cf39f7e8eff32914d2
	* lang/qt/src/qgpgmeexportjob.cpp (ExportJob::exec): Return a value and
	remove unused argument names.

2024-05-21  Werner Koch  <wk@gnupg.org>

	core: speedup gpgme_get_key.
	+ commit 73403a8ba00303b95c0e39fe3d2b78c913b0ca98
	* src/engine.c (_gpgme_set_engine_info): Change engine_get_version.

2024-05-17  NIIBE Yutaka  <gniibe@fsij.org>

	m4: Update libassuan.m4 from master.
	+ commit 0f5e8182e7cd6b6c4e57c503bbd7ab20f788d779
	* m4/libassuan.m4: Update.

2024-05-16  Ingo Klöcker  <dev@ingo-kloecker.de>

	Require at least libgpg-error 1.47.
	+ commit 3e3db5784ff0f3f06345fc3dbf7b0903f52b3fd5
	* configure.ac (NEED_GPG_ERROR_VERSION): Require 1.47.

2024-05-16  NIIBE Yutaka  <gniibe@fsij.org>
