2026-05-18  Werner Koch  <wk@gnupg.org>

	Release 2.1.0.
	+ commit 5bc31cad011192ef5d06304a28f3b8bf1382081c


2026-05-18  NIIBE Yutaka  <gniibe@fsij.org>

	io:w32:spawn_sans_helper: Fix inherit of HANDLES to child process.
	+ commit 168212932fb696db116780a342b23cabbcc1b74e
	* src/w32-io.c (_gpgme_io_spawn_sans_helper): Inherit HANDLES
	correctly, even when an argument is not modified.

2026-05-17  Werner Koch  <wk@gnupg.org>

	Support setting attributes for CMS signatures.
	+ commit 8081d34e5f620a614f58617700f9b473392e6478
	* src/gpgme.h.in (GPGME_SIG_NOTATION_UNPROTECTED): New.
	(struct _gpgme_sig_notation): Add field 'unprotected'.
	* src/sig-notation.c (sig_notation_set_flags): Set flag.
	* src/engine-gpgsm.c (gpgsm_sign): Implement setting of notations.

	* tests/run-support.h: Add conversion macros.
	* tests/run-sign.c (struct mystringlist_s): New.
	(xmalloc): New.
	(xstrtokenize): New.
	(print_result): Add arg fp and adjust callers.
	(main): Add options --binary and --notation.

2026-05-15  NIIBE Yutaka  <gniibe@fsij.org>

	engine:gpgconf: Increase the buffer size.
	+ commit c848e90334ed08fad0b679fdd02c26a9cc44e907
	* src/engine-gpgconf.c (gpgconf_read): Update to 2048.

	w32:tests: Use pinentry executable instead of script.
	+ commit 45ccb2fa0ee4613a5327a8d7cddd060be4fbeec1
	* tests/gpg/pinentry: Remove.
	* tests/gpg/pinentry.c: New.
	* tests/gpg/Makefile.am (EXTRA_DIST): Remove pinentry script.
	(noinst_PROGRAMS): Add pinentry executable and its rules to build.
	* tests/json/Makefile.am (gpg-agent.conf): Use pinentry executable.

2026-05-14  NIIBE Yutaka  <gniibe@fsij.org>

	w32:tests: Fix Makefiles and start-stop-agent for EXEEXT.
	+ commit 1291cfe1c14ea2b015a8cec7b4b60d1e234b49d8
	* tests/gpg/Makefile.am: Care about EXEEXT.
	* tests/gpgsm/Makefile.am: Likewise.
	* tests/json/Makefile.am: Likewise.
	* tests/start-stop-agent: Use EXEEXT.  Handle \r correctly.

	w32: Add cast for assuan_fd_t.
	+ commit 11eaae97fa79bfcbced89a8fbf76092eb35dfa4f
	* src/assuan-support.c (my_pipe, my_close, my_read, my_write, my_spawn)
	(my_socketpair, my_connect): Cast assuan_fd_t between int.
	* src/engine-assuan.c (start): Likewise.
	* src/engine-g13.c (start): Likewise.
	* src/engine-gpgsm.c (gpgsm_new, prepare): Likewise.

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

	Make GPGME_DECRYPT_SESSION_HASH also work for gnupg 2.2.55.
	+ commit a05c27e670b72c9afe5dee38b2c5bb02654d7f52
	* src/engine-gpg.c (have_usable_session_hash): New.
	(gpg_decrypt): Use here.

2026-04-23  Werner Koch  <wk@gnupg.org>

	New decryption flag GPGME_DECRYPT_SESSION_HASH.
	+ commit 63f18298d3f5c5f7551301b1e183890c503c644a
	* src/gpgme.h.in (_gpgme_op_decrypt_result): Add field session_hash.
	(gpgme_decrypt_flags_t): Add flag GPGME_DECRYPT_SESSION_HASH.
	(gpgme_status_code_t): Add flags GPGME_STATUS_SESSION_HASH.
	* src/status-table.c (status_table): Add "SESSION_HASH".
	* src/decrypt.c (release_op_data): Free new field.
	(_gpgme_decrypt_status_handler): Handle new status code.
	* src/engine-gpg.c (gpg_decrypt): Implement
	  GPGME_DECRYPT_SESSION_HASH.

	* tests/run-decrypt.c (print_result): Print session_hash.
	(main): Add option --show-session-hash.

	indent: Align a debug output.
	+ commit b96968f7a9676359d8439570ef89957fede285e7
	* src/dirinfo.c (get_gpgconf_item): Add blanks to a string.

2026-04-21  Ingo Klöcker  <dev@ingo-kloecker.de>

	Add flag fields is_de_vs and beta_compliance to encryption results.
	+ commit 2100e1fbdfeb9ecda00787032a8256938a113dde
	* src/encrypt.c (_gpgme_encrypt_status_handler): Handle the compliance
	status line.
	* src/gpgme.h.in (struct _gpgme_op_encrypt_result): Add fields is_de_vs
	and beta_compliance.
	(gpgme_status_code_t): Add status code for the encryption compliance
	status line.
	* src/status-table.c (status_table): Add encryption compliance status
	line.

	* tests/run-encrypt.c (print_encrypt_result): Print compliance.

2026-03-24  Ingo Klöcker  <dev@ingo-kloecker.de>

	gpgsm: Read all pending lines before waiting for more data.
	+ commit 775e1eb923fa0f2f66363d5329acfebc13c864b3
	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Add a loop to read
	all pending lines.

2026-03-18  NIIBE Yutaka  <gniibe@fsij.org>

	Fix passphrase cancel handling.
	+ commit 8b89678aed6dcc87eff15c9a468b3e8a6a8600d0
	* src/passphrase.c (op_data_t): Add "canceled" field.
	(_gpgme_passphrase_status_handler): Mark "canceled" when it sees
	GPGME_STATUS_CANCELED_BY_USER.  Reset at
	GPGME_STATUS_PINENTRY_LAUNCHED.  Return GPG_ERR_CANCELED when
	"canceled" is marked at GPGME_STATUS_EOF.

2026-03-10  NIIBE Yutaka  <gniibe@fsij.org>

	Handle the case when pinentry is invoked multiple times.
	+ commit 53c8f29125ff9664120879b78fb11a6e766f89f4
	* src/passphrase.c (_gpgme_passphrase_status_handler): Reset
	no_passphrase and bad_passphrase field.

2026-02-05  Ingo Klöcker  <dev@ingo-kloecker.de>

	Don't cap ISO dates beyond year 2037 on Windows.
	+ commit 021927f2f7be962d2549c978c262edd3f5c2da58
	* src/conversion.c (_gpgme_parse_timestamp): On Windows, disable hack
	for 32-bit time_t.

2026-01-28  Collin Funk  <collin.funk1@gmail.com>

	Fix build with libassuan 2.
	+ commit e4623a83adf401b2758a150233e1513885f3dea6
	* src/assuan-support.c: Include util.h for the assuan_pid_t
	definition.

2026-01-15  NIIBE Yutaka  <gniibe@fsij.org>

	build: Update build-aux and m4 from libgpg-error and libassuan.
	+ commit 9e4e122097b491c2050b0e7993b19ec6de8be104
	* build-aux/compile, build-aux/depcomp, build-aux/ltmain.sh: Update.
	* build-aux/mdate-sh, build-aux/missing: Likewise.
	* m4/gpg-error.m4, m4/libassuan.m4, m4/ltoptions.m4: Likewise.
	* m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4: Likewise.

2026-01-14  Ingo Klöcker  <dev@ingo-kloecker.de>

	Allow setting export filters when exporting keys.
	+ commit 1823e06216f2e9eee302ae1233d635a4a92c03f6
	* src/context.h (struct gpgme_context): New field export_filter.
	* src/engine-backend.h (struct engine_ops): Add arg export_filter to
	field 'export' and field 'export_ext'.
	* src/engine-gpg.c (export_common): Add arg export_filter and pass
	option --export-filter with argument value to gpg.
	(gpg_export, gpg_export_ext): Add arg export_filter and pass it to
	export_common. Adjust all callers of the two functions.
	* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Add dummy arg
	export_filter.
	* src/gpgme.c (gpgme_release): Free 'export_filter'.
	(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "export-filter".

	* tests/run-export.c (main): Add option --export-filter.

2026-01-09  NIIBE Yutaka  <gniibe@fsij.org>

	tests: It's start-stop-agent which invokes gpg-agent.
	+ commit 9a1f409499c4e086e95c8dbca712929ee3c418ef
	* tests/gpgsm/Makefile.am (gpgsm.conf): Don't touch agent-program.
	* tests/start-stop-agent: Don't modify gpg.conf and gpgsm.conf.

	w32:spawn: Support the case without no helper.
	+ commit 64f80903ec9bc8897f9b2dcebb7068c02ff9ae07
	* src/w32-io.c (_gpgme_io_spawn_sans_helper): New.
	(_gpgme_io_spawn): Use _gpgme_io_spawn_sans_helper.

2026-01-08  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Use SetHandleInformation for _gpgme_io_pipe.
	+ commit 58c57b25575c83f372deee64d67e359ec1afb5c9
	* src/w32-io.c (_gpgme_io_pipe): Create a pipe with bInheritHandle =
	TRUE, and then clear an end by SetHandleInformation.

	w32: Fix for process handle.
	+ commit dd559a6b142f672b8a633b89791349772208d9b8
	* src/assuan-support.c (my_waitpid): Call __assuan_waitpid for
	libassuan 3.
	* src/w32-io.c (_gpgme_io_spawn): Use process handle for libassuan 3.

2025-12-25  NIIBE Yutaka  <gniibe@fsij.org>

	tests:gpg: Use GPGME_PINENTRY_MODE_LOOPBACK for tests.
	+ commit 538d7cd52b809fcd77a554f04cd2c8ac8915732c
	* tests/gpg/t-decrypt-verify.c (main): Call gpgme_set_pinentry_mode.
	* tests/gpg/t-decrypt.c (main): Likewise.
	* tests/gpg/t-edit-sign.c (main): Likewise.
	* tests/gpg/t-edit.c (main): Likewise.
	* tests/gpg/t-encrypt-mixed.c (main): Likewise.
	* tests/gpg/t-encrypt-sign.c (main): Likewise.
	* tests/gpg/t-encrypt-sign.c (main): Likewise.
	* tests/gpg/t-encrypt-sym.c (main): Likewise.
	* tests/gpg/t-file-name.c (main): Likewise.
	* tests/gpg/t-sig-notation.c (main): Likewise.
	* tests/gpg/t-sign.c (main): Likewise.
	* tests/gpg/t-signers.c (main): Likewise.
	* tests/gpg/t-thread1.c (main): Likewise.
	* tests/gpg/Makefile.am (gpg-agent.conf): We use the passphrase_cb.

2025-12-24  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Fix debug print on 64-bit machine.
	+ commit 11a8ef0e26bfaa6c76b48ff203fd9d85350f326b
	* src/w32-io.c (release_hddesc): Cast SOCKET to (void *) and use %p.
	(reader, create_reader, destroy_reader, writer): Likewise.
	(create_writer, find_writer): Likewise.
	(_gpgme_io_socket): Likewise.  Add "z" modifier for NFDS.

2025-12-23  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Fix spawn for 64-bit machine.
	+ commit 936015d49c389a6cafc40025f7881625ded90120
	* src/priv-io.h (struct spawn_fd_item_s): Use HANDLE for peer_name
	field.
	* src/dirinfo.c (read_gpgconf_dirs): Use ASSUAN_INVALID_FD for default
	value for peer_name field of CFD.
	* src/engine-gpgconf.c (gpgconf_read, gpgconf_write)
	(gpgconf_query_swdb): Likewise.
	* src/version.c (_gpgme_get_program_version): Likewise.
	* src/w32-io.c (handle_to_fd): Remove.
	(_gpgme_io_spawn): Assign HD to the peer_name field.  Use %p for
	printing the value of peer_name field.
	* src/gpgme-w32spawn.c (my_spawn): Use peer_name field with no cast.
	Use %p for printing the value of peer_name field.  Remove wrong
	CloseHandle calls.
	(translate_get_from_file): Use HANDLE type for the TO variable.
	Use strtoull on 64-bit machine.  Use ASSUAN_INVALID_FD.

2025-12-22  NIIBE Yutaka  <gniibe@fsij.org>

	Fix a regression wrt the auto-key-locate option.
	+ commit d242561dae2699aaa8eb88a1a7ce7a1033471eb0
	* src/keylist.c (gpgme_get_key): Don't call gpgme_set_ctx_flag when
	it's "".

	tests:w32: Use Sleep instead of _sleep.
	+ commit 5252c63ecae536d3923859f282e349e1dcd38529
	* tests/gpg/t-wait.c [HAVE_W32_SYSTEM] (sleep): Use Sleep.

2025-12-15  NIIBE Yutaka  <gniibe@fsij.org>

	Fix function prototypes to match ones in libassuan.
	+ commit 527c7fff9679afe08927943b9da654e27e75ba93
	* src/assuan-support.c (my_read, my_write): Use ssize_t.
	(my_socket, my_connect): Use int instead of assuan_fd_t for older
	libassuan.
	* tests/gpg/t-encrypt-large.c (read_cb, write_cb): Use gpgme_ssize_t.

	Fix build with libassuan 2.
	+ commit 77b9e1de7d7614e8e7eb79f507a1de292efb30a7
	* src/util.h (assuan_pid_t): Typedef if not available.

2025-12-11  NIIBE Yutaka  <gniibe@fsij.org>

	Fix portability for the use of the assuan types.
	+ commit 46938bdde47579786c79770eb54b9b742a1e0365
	* src/assuan-support.c (my_spawn, my_waitpid): Use assuan_pid_t.
	(my_socket, my_connect): Use assuan_fd_t.
	* src/engine-gpg.c (start): Remove unused PID.
	* src/engine-spawn.c (engspawn_start): Likewise.
	* src/gpgme-w32spawn.c: Add util.h for assuan types.
	* src/version.c: Likewise.
	* src/wait-user.c: Likewise.
	* src/posix-io.c (_gpgme_io_spawn): Use assuan_pid_t.
	* src/priv-io.h (_gpgme_io_spawn): Likewise.
	* src/w32-io.c (_gpgme_io_spawn): Likewise.
	* src/wait-private.c: Include util.h earlier.

	w32: Add a cast for GetProcAddress, add AM_CFLAGS for w32spawn.
	+ commit 5fa2e405807dec8f88e9a8a25ab381820631a078
	* src/Makefile.am (gpgme_w32spawn_CFLAGS): Add AM_CFLAGS.
	* src/gpgme-w32spawn.c (my_spawn): GetProcAddress returns an address
	for the symbol.  The correctness should be checked by human when
	writing the code (not by the function prototype).

2025-12-05  NIIBE Yutaka  <gniibe@fsij.org>

	Avoid K&R-style function definition.
	+ commit 8b8dbd55c03a21feeac55359b56f5157a6225d33
	* src/stpcpy.c (__stpcpy): Supply function prototype.

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

	Treat empty DISPLAY envvar as unset.
	+ commit 94fa3c2b25a1979bb838c7d9f9f74375072f4efe
	* src/engine-gpg.c (gpg_new): Do not pass option --display if DISPLAY
	is set to the empty string.
	* src/engine-gpgsm.c (gpgsm_new): Likewiese for sending the display
	option.
	* src/engine-g13.c (g13_new): Ditto.
	* src/engine-assuan.c (llass_new): Ditto.
	* src/engine-uiserver.c (uiserver_new): Ditto.

2025-11-10  Giacomo Tesio  <giacomo@tesio.it>

	gpgme_get_key: respect caller's ctx configuration.
	+ commit 964bc14ccfba84b050c20dc5035414438b10bd74


2025-10-29  Ingo Klöcker  <dev@ingo-kloecker.de>

	doc: Clarify that keygrip lists multiple keygrips for combined algos.
	+ commit 2360b937cf8f9bc52655e45dccd1885dd4c7ac32
	* doc/gpgme.texi (section Data type gpgme_subkey_t): Amend documentation
	of keygrip member.
	* src/gpgme.h.in (_gpgme_subkey): Ditto.

2025-10-27  Werner Koch  <wk@gnupg.org>

	Improve tracing for engine-gpgsm.
	+ commit eba8776a3f590d964430e515a030145236c0da33
	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): More tracing
	calls.

2025-09-25  NIIBE Yutaka  <gniibe@fsij.org>

	build: Avoid using -o for test(1).
	+ commit 5517c5fe3da6eab1ccddea6fbd7fde1aefdab25c
	* configure.ac: Use || in shell level, instead of -o of test.

2025-09-23  Werner Koch  <wk@gnupg.org>

	Release 2.0.1.
	+ commit e4adebe020b07bc47e583817576ce98ca93e9711


2025-08-29  NIIBE Yutaka  <gniibe@fsij.org>

	gpgsm: Extend gpgsm_assuan_simple_command to consule diag output.
	+ commit cff9df67d34fa21fc8f3ba47300e1671c4526629
	* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Take care about
	diag output.

	gpgsm: Introduce two phase interactions to consume diag output.
	+ commit 52bde50b879c2b9318c87eb9f377bed6557366e2
	* src/engine-gpgsm.c (prepare): Move the first part from...
	(start): ... here.
	(gpgsm_decrypt, gpgsm_delete, gpgsm_encrypt)
	(gpgsm_export, gpgsm_export_ext, gpgsm_genkey)
	(gpgsm_import, gpgsm_keylist, gpgsm_keylist_ext)
	(gpgsm_sign, gpgsm_verify, gpgsm_getauditlog)
	(gpgsm_passwd): Follow the change.

2025-07-18  Werner Koch  <wk@gnupg.org>

	Make it easier to maintain gpgme.h by using forward declarations.
	+ commit 6a1f72b4702488f5ee4e14ef308876349ac8a005
	* src/gpgme.h.in: Use forward declarations for the key objects.

2025-07-16  Werner Koch  <wk@gnupg.org>

	Rename an internal function for clarity.
	+ commit 1821ebaa333dfadf936b8fc38dd8483abee7aab3
	* src/key.c (_gpgme_key_add_sig): Rename to ...
	(_gpgme_key_add_uid_sig): this.

2025-07-15  Werner Koch  <wk@gnupg.org>

	gnupg-manage-keys: Implement a new tool.
	+ commit 9e3266ccbbdf6ab9b37ec4e0c5342630dc0ffa82
	* tools/gnupg-key-manage.c: new.
	* tools/Makefile.am: New.
	* configure.ac: Add Makefile.
	* Makefile.am (SUBDIRS): Add tools directory.

2025-07-05  Collin Funk via Gnupg-devel  <gnupg-devel@gnupg.org>

	Fix an uninitialized variable.
	+ commit 6e37569847d7948c63c14dd67c42993eb21d6018
	* src/engine-gpg.c (gpg_getdirect): Initialize ERR to zero to satisfy
	the loop condition.

2025-07-03  Collin Funk via Gnupg-devel  <gnupg-devel@gnupg.org>

	Remove duplicate character passed to strchr.
	+ commit 74b725457432173865299c046adc4b42d263ecac
	* src/keylist.c (parse_sec_field15): Remove duplicate '0' character.

2025-06-23  NIIBE Yutaka  <gniibe@fsij.org>

	Use sysconf as a fallback mechanism in the initialization.
	+ commit 8caa7cc517ebf61c5e47c9b571169740a9301acb
	* src/posix-io.c (max_fds_fallback): New.
	[_SC_OPEN_MAX] (_gpgme_io_subsystem_init): Set max_fds_fallback.
	(get_max_fds): Use max_fds_fallback.

	Fix debug output of posix-io.c.
	+ commit 075e5be9fbee6022e640ffd759b2d500d29bf5cd
	* src/posix-io.c (_gpgme_io_select_poll): Emit the file descriptor
	information just like _gpgme_io_select_select.

2025-06-20  NIIBE Yutaka  <gniibe@fsij.org>

	posix: Clean up get_max_fds implementation.
	+ commit e8e5434cc4f5cc3c322659792cc1850a5c5b26b8
	* src/posix-io.c (get_max_fds): Return type is int.
	Ifdef-out TRACE.
	Remove call to sysconf.
	Use long for R and POS.
	Use aligned buffer for struct linux_dirent64.

2025-06-03  Werner Koch  <wk@gnupg.org>

	Release 2.0.0.
	+ commit e17ba578861905857da0a514b4fc9b88a57f7346


2025-05-24  Werner Koch  <wk@gnupg.org>

	Fix an include guard.
	+ commit e763305ff1ce2aeaef1087f543ceb473bc3cb8d2
	* src/json-common.h (GPGME_JSON_COMMON_H): Fix guard.

2025-05-23  Werner Koch  <wk@gnupg.org>

	json: Fix minor memory leak.
	+ commit 66de35a9b1170815e51005996441318bd9574e68
	* src/json-core.c (json_core_process_request): Fix leak and worng
	formatting in interactive mode in case of an error.

	Refactor gpgme-json for future re-use.
	+ commit d7267db472a4e4f65c8139f68d9d976c64b79636
	* src/gpgme-json.c: Factor large chunks of code out to ...
	* src/json-core.c: new file and ...
	* src/json-util.c: new file and ...
	* src/json-common.h: new file.
	* src/Makefile.am (gpgme_json_SOURCES): Add new files.

2025-05-14  Ingo Klöcker  <dev@ingo-kloecker.de>

	Treat empty algorithm the same way as unset algorithm.
	+ commit 15ae7da74bc403d19df8d3ca3c0176b7dac98e18
	* src/engine-gpg.c (gpg_add_algo_usage_expire): Add "default" as
	algorithm argument if algo is NULL or an empty string.

2025-05-13  Ingo Klöcker  <dev@ingo-kloecker.de>

	Add algorithm, usage and expire also if only the group flag is set.
	+ commit 8f08ca0e382085f9caba8ff969aa1ce66b6a84c8
	* src/engine-gpg.c (gpg_add_algo_usage_expire): Check flags for
	GPGME_CREATE_GROUP flag.

2025-05-12  Werner Koch  <wk@gnupg.org>

	Add GPGME_CREATE_GROUP flag for gpgme_op_createkey and _createsubkey.
	+ commit 905bd760a99a455af6717b66311fc2197dea1055
	* src/gpgme.h.in (GPGME_CREATE_GROUP): New.
	* src/engine-gpg.c (gpg_add_algo_usage_expire): Pass to engine.
	* tests/run-genkey.c (parse_usage_string): Support here too.

2025-05-05  Werner Koch  <wk@gnupg.org>

	Change timestamp fields from signed to unsigned long.
	+ commit f2d40473b522e348d96a70c089d2191d0b978098
	* src/gpgme.h.in (struct _gpgme_subkey): Chnage timestamp and expires.
	(struct _gpgme_key_sig): Ditto.
	(struct _gpgme_new_signature): Ditto.

	Allow signing using an exactly specified subkey.
	+ commit bfd320abfeaf0c7a16af3057279c77a45bfa961a
	* src/engine-gpg.c (append_args_from_signers): Detect exactly
	specified keys and apped the '!' suffix.

	Mark the subkey used to find a key.
	+ commit 87d6da1188db3c7df899821e4c0d895c61504522
	* src/gpgme.h.in (struct _gpgme_subkey): New flag subkey_match.
	* src/keylist.c (spacep): New.
	(op_data_t): Add field requested_subkey.
	(release_op_data): Free it.
	(exact_match_pattern): New.
	(maybe_setup_for_requested_subkey): New.
	(gpgme_op_keylist_start): Call it here.
	(gpgme_op_keylist_ext_start): Call it for each pattern until one
	found.
	(gpgme_op_keylist_next): Set the subkey_match field.
	---

	This is needed for

2025-03-18  Werner Koch  <wk@gnupg.org>

	New decrypt flags GPGME_DECRYPT_LISTONLY.
	+ commit 91a59d2a35540769c055da2341b5face0be6c286
	* src/gpgme.h.in (GPGME_DECRYPT_LISTONLY): New.
	* src/decrypt.c (op_data_t): Add member list_only.
	(_gpgme_decrypt_status_handler): Do not return NO_DATA in list_only
	mode.
	(_gpgme_op_decrypt_init_result): Add arg flags and set the list_only
	flag.
	(_gpgme_decrypt_start): Pss flags to the init function.
	* src/decrypt-verify.c (decrypt_verify_start): Ditto.
	* src/engine-gpg.c (gpg_decrypt): Add --list-only if flag is set.

	* tests/run-decrypt.c (main): Add option --list-only.

2025-03-14  Werner Koch  <wk@gnupg.org>

	Add API gpgme_op_random_value.
	+ commit 926b1f1f1e3e382f08cc57fc86d5892649514007
	* src/genrandom.c (getrandom_size_t): New.
	(gpgme_op_random_value): New.
	* src/gpgme.def: Add new function.
	* src/libgpgme.vers: Ditto.
	* src/gpgme.h.in: Add prototype.

	* tests/run-genrandom.c: Add an option to use the new function.

2025-03-10  NIIBE Yutaka  <gniibe@fsij.org>

	m4: Update libassuan.m4.
	+ commit 7568566ef3d1230ee134b3db3128c8681ebecf37
	* m4/libassuan.m4: Update from libassuan master.

2025-02-26  Werner Koch  <wk@gnupg.org>

	Add API gpgme_op_random_bytes.
	+ commit 0a64c7d0c6d0463cf2e06b3a01ef5be4d879bcf0
	* src/genrandom.c: New.
	* src/Makefile.am: Add new file.
	* src/engine-backend.h (struct engine_ops): Add func ptr getdirect.
	Adjust all engine_ops.
	* src/engine-gpg.c (gpg_getdirect): New.
	(_gpgme_engine_ops_gpg): Connect new handler.
	* src/gpgme.h.in (gpgme_random_mode_t): New.
	(GPGME_RANDOM_MODE_NORMAL): New.
	(GPGME_RANDOM_MODE_ZBASE32): New.
	(gpgme_op_random_bytes): New public function
	* src/libgpgme.vers: Add function.
	* src/gpgme.def: Add function.

	* tests/run-genrandom.c: New.
	* tests/Makefile.am: Add new file.

2025-02-21  Werner Koch  <wk@gnupg.org>

	Remove now unused functions.
	+ commit 2e21919a1b2663137c123917cee0a12b98ad36b2
	* src/engine.c (_gpgme_engine_op_trustlist): Remove.
	* src/libgpgme.vers (gpgme_op_trustlist_end)
	(gpgme_op_trustlist_next)
	(gpgme_op_trustlist_start): Remove.
	* src/gpgme.def: Ditto.
	* src/key.c (otrust_to_string)
	(validity_to_string)
	(capabilities_to_string)
	(get_keysig): Remove

	Remove the long deprecated and never working trust list functions.
	+ commit 7e6a65e66a96278bed5fed6d0b75887c0f032c4e
	* src/trust-item.c: Remove file.
	* src/trustlist.c: Remove file.
	* src/Makefile.am (main_sources): Remove those files.
	* src/gpgme.h.in (GPGME_EVENT_NEXT_TRUSTITEM): Remove.
	(gpgme_trust_item_t, GpgmeTrustItem): Remove.
	(gpgme_op_trustlist_start): Remove.
	(gpgme_op_trustlist_next): Remove.
	(gpgme_op_trustlist_end): Remove.
	(gpgme_trust_item_ref): Remove.
	(gpgme_trust_item_unref, gpgme_trust_item_release): Remove.
	* src/gpgme.def: Remove removed functions.
	* src/libgpgme.vers: Ditto.

	Remove long deprecated functions.
	+ commit d54d6eaa642ba6de179ef280930525c7367c9b88
	* src/gpgme.h.in (GPGME_EXPORT_MODE_NOUID): Remove.  This was a
	left-over from an experiment.
	(gpgme_attr_t,_gpgme_attr_t) Remove.  Deprecated sinze 2003.
	(gpgme_get_sig_ulong_attr): Ditto.
	(gpgme_get_sig_string_attr): Ditto.
	(gpgme_key_get_string_attr): Ditto.
	(gpgme_key_get_ulong_attr): Ditto.
	(gpgme_key_sig_get_string_attr): Ditto.
	(gpgme_key_sig_get_ulong_attr): Ditto.
	(gpgme_trust_item_get_string_attr): Ditto.
	(gpgme_trust_item_get_int_attr): Ditto.
	* src/gpgme.def: Remove them here too.
	* src/libgpgme.vers: Ditto.
	* src/trust-item.c: Remove corresponding implementations.
	* src/verify.c: Ditto.
	* src/key.c: Ditto.

2025-02-03  Werner Koch  <wk@gnupg.org>

	core: Fix regression for RSA in gpgme_pubkey_algo_string.
	+ commit 7d09f1f9fbf8889f467a06432f1954f9ad4f5922
	* src/gpgme.c (gpgme_pubkey_algo_string): Consider all RSA variants.

2025-02-03  Ingo Klöcker  <dev@ingo-kloecker.de>

	python: Remove Python bindings.
	+ commit 932caf37d36eca2caec59bf48bc505364a5765bb
	* README: Update.
	* configure.ac: Remove checks, variables and file generations related to
	the Python bindings. Remove python from available_languages and
	default_languages.
	* lang/Makefile.am (DIST_SUBDIRS): Remove python.
	* lang/python: Remove.
	* m4/ax_pkg_swig.m4, m4/ax_python_devel.m4, m4/python.m4: Remove.

	cpp,qt: Remove C++ and Qt bindings.
	+ commit 763d5f5d6a88ec938b8678ab597e1404af724553
	* README: Update.
	* configure.ac: Remove checks, variables and file generations related to
	the C++/Qt bindings. Remove cpp and qt* from available_languages and
	default_languages.
	* lang/Makefile.am (DIST_SUBDIRS): Remove cpp and qt.
	* lang/cpp, lang/qt: Remove.
	* m4/ax_check_compile_flag.m4, m4/ax_cxx_compile_stdcxx.m4,
	m4/ax_gcc_func_attribute.m4, m4/pkg.m4, m4/qt5.m4, m4/qt6.m4: Remove.

2025-01-15  Ingo Klöcker  <dev@ingo-kloecker.de>

	build: Fix generation of ChangeLog on secondary working trees.
	+ commit f6403a998f812b95534c1b6911b4ae5590c0d970
	* Makefile.am (gen-ChangeLog): Use test -e instead of test -d to check
	for git working trees.

2025-01-15  NIIBE Yutaka  <gniibe@fsij.org>

	build: Remove defining GPG_ERR_ENABLE_ERRNO_MACROS.
	+ commit fa17f2aaedb50cb576c47b191b3599e384272bc2
	* configure.ac (GPG_ERR_ENABLE_ERRNO_MACROS): Remove.

2025-01-02  Ingo Klöcker  <dev@ingo-kloecker.de>

	tests,json: Prevent failing tests after 2027-05-15.
	+ commit b9f9e24c00448851027683757ee5cf3f8c569ff1
	* tests/json/key-with-revokers.asc: Replace with new public key.
	* tests/json/t-keylist-revokers.out.json: Update to new public key.

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

	build,python: Fix uninstalling in distcheck.
	+ commit 7a42ec5d466dfb5d4571773e22a51d0786b76d85
	* lang/python/Makefile.am (uninstall-local): Get platlib path relative
	to data path.

	build,python: Add Python 3.13 and remove Python 3.8.
	+ commit 27da4ec6350d803354d691c06a31c47176ec1064
	* configure.ac: Look for Python 3.13. Don't look for Python 3.8 anymore.
	* lang/python/setup.py.in: Update Python versions in classifiers.
	* m4/python.m4: Add python3.13 as valid interpreter. Remove python3.8.

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>
