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

	Release 1.61.
	+ commit 687c9da501c21a64f7dcedfa73146a4670009cea


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

	Revert "Fix possible lockup in an atexit handler"
	+ commit ff90817a95208c407c6e5a74eeb585db3b5baff9
	* src/estream.c (_gpgrt_fflush): Do not use the in_atexit flag.

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

	Fix possible lockup in an atexit handler.
	+ commit 50f0c56bdd36f7f709a62503942ac55399dafb9c
	* src/estream.c (_gpgrt_fflush): Add arg in_atexit and skip the flush in
	  this mode if the lock can not be taken.  Change all callers.

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

	Fix possible stack overflow in es_printf for %.100f format.
	+ commit f7ded3ce666ca8e27226dfa05b1e6b8636728441
	* configure.ac: Add test for snprintf.
	* src/gpgrt-int.h: Do not re-map snprintf if KEEP_SYSTEM_SNPRINTF is
	  defined.
	* src/estream-printf.c (KEEP_SYSTEM_SNPRINTF): Define.
	  (pr_float): Increase static buffer size.  Use snprintf for long
	  double.

	* tests/t-printf.c: Include float.h.
	(check_large_float): New.

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

	Fix out-of-bounds read in vfnameconcat.
	+ commit 48fae7f604398035ab8cb9970301667312231471
	* src/stringutils.c (_gpgrt_vfnameconcat): Use the correct value for
	  the trailing slash check.

2026-04-27  Jakub Bogusz  <qboosh@pld-linux.org>

	po: update Polish translation.
	+ commit e1762f6de18740e62729625bf47c772532095757


2026-04-27  NIIBE Yutaka  <gniibe@fsij.org>

	build: Add cross compile support for wasm*-*-emscripten target.
	+ commit 15ccba67c50fdb3db93ba0162e4cedc47921c2f8
	* configure.ac: Add wasm*-*-emscripten target to generate
	lock-obj-pub.native.h.

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

	Release 1.60.
	+ commit def87da3272626e59bf5100840da2ab2bfa67f30


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

	build:cross: Remove section name to dump.
	+ commit 98660a48161adcede916c52fbef6cae6d5ccb0f0
	* src/gen-lock-obj.sh: Don't specify section name.

2026-03-25  m  <meik.michalke@gnupg.com>

	autogen.sh: fixed typo.
	+ commit a82d83194590f3fc305b88abdeebd17a45683e3d


2026-03-17  Mikhail Filippov  <mikhail@filippov.me>

	spawn:w32: Fix use-after-scope of handle array.
	+ commit 7957a1f72005b7eeb7a3f79e6f67e232729df3db
	* src/spawn-w32.c (_gpgrt_process_spawn): Move the hd[32] array
	declaration from inside the inner block to the function scope, so that
	the array remains live when CreateProcessW is called.

2026-03-04  Sachin T  <sachin.t@ibm.com>

	build: Revert pkg-config requirement.
	+ commit e5a81daca8e0a8238b74ba6cb0e2738d1f60444a
	* configure.ac: Don't use PKG_CHECK_MODULES.
	* src/Makefile.am (mkheader): Remove EXTRA_LIBS_FOR_BUILD.

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

	build: Put a work-around for AC_LIB_PROG_LD issue.
	+ commit 158a36d23bdab83057352d6fff09618ecab2c7a3
	* m4/libtool.m4 (AC_LIB_PROG_LD): Define here.

	build: Fix m4/Makefile.am.
	+ commit a4951fabc1e5b2d189997a5da5faf927cb18478e
	* m4/Makefile.am: Update.

	build: Add forgotten m4 file for gettext.
	+ commit b31584791efc4938a1021f547bd930f8dffbf53a
	* m4/intlmacosx.m4: New.
	* m4/Makefile.am: Update.

2026-02-26  NIIBE Yutaka  <gniibe@fsij.org>

	w32:estream: Use INVALID_SOCKET to check invalid socket.
	+ commit c2c60d911b0913081e4a0c0903795f9d9f49fe7b
	* src/estream.c (IS_INVALID_SOCKET): New.
	(func_sock_read, func_sock_write, func_sock_ioctl, func_sock_destroy):
	Use IS_INVALID_SOCKET.

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

	Release 1.59.
	+ commit 3debf5485c4de18f0154ffd80726bc54e6e28a46


2026-02-13  Ineiev  <ineiev@gnu.org>

	po: Update Russian translation.
	+ commit 57db619a0a697e494def58cf067352c4101753ca


2026-02-04  NIIBE Yutaka  <gniibe@fsij.org>

	spawn:w32: Fix with GPGRT_PROCESS_*_KEEP flags.
	+ commit 97c0106a9a771fe015ceb5585b3c10a78663e1fd
	* src/spawn-w32.c (_gpgrt_process_spawn): Don't close
	the handle when GPGRT_PROCESS_*_KEEP is specified.

	spawn:w32: Fix preparing the environment block.
	+ commit ce261e592b3bb46bb0373cafd7bcd77c837a67c3
	* src/spawn-w32.c (prepare_env_block): Copy environment
	variables correctly by memmove.

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

	spawn:posix: Take care of POSIX semaphore "shared" semantics.
	+ commit 20c673e15bd772ee39f626f8203427b5f47601b7
	* src/spawn-posix.c (spawn_detached): Don't call _gpgrt_post_syscall
	on the child process.
	(_gpgrt_process_spawn): Likewise.

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

	build: Fix typos in texinfo.tex.
	+ commit 9a68e459efdf608eddd5a043e7c7cea1d1532ac8
	* build-aux/texinfo.tex: Fix typos.

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

	m4: Fix m4 macros for strict C compiler.
	+ commit a05a501008842c22f23aef5be3ce4ebcd138a882
	* m4/ax_cc_for_build.m4.: Fix for no arg.

	build: Remove unused build-aux/libtool.patch.
	+ commit e0517a60eb0441fff567b86f637cb24d0f848379
	* build-aux/libtool.patch: Remove.

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

	w32:tests: Fix a test failure for tilde expansion.
	+ commit 4a1381642740210875ac461e21ea5a53a5c67912
	* tests/t-stringutils.c: [HAVE_W32_SYSTEM] (mygethome): Use
	fnameconcat to get HOME, instead of the environment variable.

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

	w32:spawn: Handle the case where ->hProcess has invalid handle.
	+ commit 753f59cd2c7af7e2665729721728ce5f9f08013b
	* src/spawn-w32.c (_gpgrt_process_terminat): Care about the case
	it's INVALID_HANDLE_VALUE.

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

	Release 1.58.
	+ commit e880193c55f0321bbefc16be3194fdbb7a48078f


	w32: Fix a syntax error in a non-DLL build.
	+ commit 421e101cf9760a4bc4f296d12ce25a7c3fe5b7b2
	* src/w32-utils.c (_gpgrt_w32__init_utils): Fix syntax error.

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

	Release 1.57.
	+ commit 39d7b85a7d69975f1dfec5a0add10b4d57dcfc9e


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

	argparse: gpgrt_fconcat to get the SYSCONFDIR.
	+ commit 6fe7cf710254d78ada27fbf63747ab0e97bc6979
	* src/stringutils.c (_gpgrt_fconcat): New internal function.
	* src/argparse.c (_gpgrt_argparser): Use it.

	New function gpgrt_fconcat.
	+ commit 34dba88757fedb61d1ea63616a3e03837ccf50ab
	* src/w32-utils.c: New.
	* src/init.c (_gpg_err_init, DllMain): Call new init function.
	* src/visibility.c (gpgrt_fconcat): New.
	* src/gpg-error.h.in (gpgrt_fconcat): New prototype.
	(GPGRT_FCONCAT_ABS): New.
	(GPGRT_FCONCAT_TILDE): New.
	(GPGRT_FCONCAT_SYSCONF): New.
	* src/gpg-error.def.in (gpgrt_fconcat): New.
	* src/gpg-error.vers: (gpgrt_fconcat): New.
	* src/stringutils.c (_gpgrt_vfnameconcat): Repalce want-abs but a new
	flags arg.  Change to support GPGRT_FCONCAT_SYSCONF.  Fix tilde
	expansion under Windows to use CISDL_PROFILE instead of $HOME.  Adjust
	all callers.

	* src/gpg-error.c (main): New command "fconcat".

2025-11-26  Daniel Cerqueira  <dan.git@lispclub.com>

	po: Update Portuguese Translation.
	+ commit a2a752fe21cce949a7b6b82bd903b46a73cce968


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

	Dynload GetThreadUILanguage to keep support for Windows XP.
	+ commit cb7f580639cc7cc43cf279b0755e8261882b9f93
	* src/w32-gettext.c (get_thread_ui_language): New func ptr.
	(module_init): Initialize it.
	(my_nl_locale_name): Use it instead of a direct call.

2025-11-26  Ingo Klöcker  <dev@ingo-kloecker.de>

	Use UI language instead of locale for translations.
	+ commit 7f3e0c3942812d975fecc75b32493bb0c48b100c
	* src/w32-gettext.c (my_nl_locale_name): Use GetThreadUILanguage instead
	of GetThreadLocale.

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

	build: On zOS use pkg-config to find zoslib.
	+ commit f090f07f1065dca26a013e173f132d39eda973c1
	* configure.ac (EXTRA_LIBS_FOR_BUILD): Use "openedition" instead of
	"zOS" for build tools checking.  Also chnage to use pkg-config.

2025-11-19  Daniel Nylander  <po@danielnylander.se>

	po: Update Swedish translation.
	+ commit baf43baea909603ca22d8bf26661f1503566be54


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

	spawn:posix: Rename the field to ENVP to avoid a build issue.
	+ commit 26d740f940b3cbda43e0b06a45c86f21ebc236ed
	* src/spawn-posix.c (struct gpgrt_spawn_actions): Rename the field to
	ENVP.
	(my_exec, _gpgrt_spawn_actions_set_environ): Follow the change.

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

	argparse: Use SYSCONFDIR for /etc.
	+ commit a9fc729253eec88f56d810bd2a8edd327267c5b4
	* src/Makefile.am (libgpg_error_la_CPPFLAGS): Add SYSCONFDIR.
	* src/argparse.c (_gpgrt_argparser): Use it.

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

	Release 1.56.
	+ commit b3b68bde07b02dd2b6d78356ac90baa652a309fa


	estream: Implictly enable sysopen when the the share flag is given.
	+ commit 461cb5a8ea24785ef4f8c5282e09e69bf487fa7f
	* src/estream.c (parse_mode): Fix parsing of "share". Set sysopen
	flag.

	estream: Extend the new share keyword to allow all modes.
	+ commit 0b170a499a87abc4a18b6f7d76beb44901fa0cdd
	* src/estream.c (X_SHARE_RW): Replace by ...
	(X_SHARE_CUSTOM,X_SHARE_READ,X_SHARE_WRITE,X_SHARE_DEL): new.
	(func_file_create_w32): Set share_mode accordingly.
	(parse_mode): Extend the "share" keyword.

	* src/gpg-error.c (main): Add option --openmode to allow testing of
	the share modes.

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

	Update copyright and version string in gpg-error.m4.
	+ commit 413b65f34fd1d58ae879412bfa248521ff284b3c
	* src/gpg-error.m4: Update.

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

	estream: New mode keyword "share=rw".
	+ commit 2344947717d29170c918a195541db568648c7aa3
	* src/estream.c (X_SAMETHREAD): Move to the top.  Also for the other
	 X_constants.
	(_gpgrt_fopen): Move setting of FILE_FLAG_SEQUENTIAL_SCAN to ...
	(func_file_create_w32): here. Replace arg flags_and_attrs by xflags
	and use cflags to set certain properties.
	(parse_mode): Add mode keyword "share=rw".

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

	Also fix for test(1) operator -o.
	+ commit a51f30e923670040136dbf68f2a4275f586d129a
	* autogen.sh: Don't use -o operator, but shell ||.
	* src/gpgrt-config.in: Likewise.

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

	Fixes for obsoleted/removed test(1) operator -a.
	+ commit 6344dd1cad8f44b9a6ab39570795479e32bf7058
	* autogen.sh: Here.
	* configure.ac: And here.
	* src/gen-lock-obj.sh: And here.
	* src/gpg-error.m4 (AM_PATH_GPG_ERROR): And here.
	* src/gpgrt-config.in (eval_compare_version): And here.
	* src/gpgrt.m4 (AM_PATH_GPGRT): And here.

	Silence warnings when enabling the trace functions.
	+ commit 3cf07222264c1966333429280059dfed917b36e9
	* src/w32-estream.c (reader): Use correct printf format specifiers for
	the trace functions.

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

	w32: Don't convert slash->backslash when it's under Wine.
	+ commit 0313b660f8bd4e82ec8af6da593d745b9e658ce8
	* src/sysutils.c (_gpgrt_fname_to_wchar): No change under Wine.

	w32:spawn: Fix thread-unfriendly internal check.
	+ commit 00a40c0c599fb439facf1af55495d7ca1e496683
	* src/gpgrt-int.h (_gpgrt_windows_feature): New.
	* src/init.c (windows_specific_init): New.
	(real_init) [HAVE_W32_SYSTEM]: Call windows_specific_init.
	(_gpgrt_windows_feature): New.
	* src/spawn-w32.c (check_windows_version): Remove.
	(_gpgrt_process_spawn): Use _gpgrt_windows_feature.

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

	estream: Support the %b conversion specifier from C23.
	+ commit 6ac5332e4f6988112f4272cfe7a2eee31173ff3f
	* src/estream-printf.c (CONSSPEC_BIN): New.
	(compute_type): Handle it.
	(parse_format): Support 'b'.
	(do_format): Divert 'b' to pr_integer.
	(pr_integer): Print binary format.

	* tests/t-printf.c (check_fprintf_sf): Add two simple testcases.

	Set build specific variable for zOS.
	+ commit 7ee191f54c2a830767207fb6563380a87f60ddf0
	* configure.ac (EXTRA_LIBS_FOR_BUILD): New ac_subst.
	* src/Makefile.am (mkheader): Append that var to the rule.

2025-07-20  Ben Kibbey  <bjk@luxsci.net>

	syscfg: Add x86_64 Android arch.
	+ commit c6eacfae7c067149b08d07f2cadf2da14f888de5
	* src/syscfg/lock-obj-pub.x86_64-unknown-linux-androideabi.h: New.
	* src/Makefile.am (lock_obj_pub): Add it.

	syscfg: Add i686 Android arch.
	+ commit 7e05d3bda6ad10d564d151fa2c4c4939aa8892d4
	* src/syscfg/lock-obj-pub.i686-unknown-linux-androideabi.h: New.
	* src/Makefile.am (lock_obj_pub): Add it.

	syscfg: Add armv7a alias to arm for Android.
	+ commit 5caa2a6944ec12593a12aba772cfde5efc73b019
	* src/mkheader.c (canon_host_triplet): Add alias.

	syscfg: Add 64-bit Android arch.
	+ commit 587287c4a735b68ff3405ffcd2ea02da4ca82282
	* src/syscfg/lock-obj-pub.aarch64-unknown-linux-androideabi.h: New.
	* src/Makefile.am (lock_obj_pub): Add it.

2025-07-16  NIIBE Yutaka  <gniibe@fsij.org>

	w32:spawn: Support pipe I/O for GPGRT_PROCESS_DETACHED.
	+ commit 8a38d914512ca928ffa5c79199bd410c9324e0e6
	* src/spawn-w32.c (struct gpgrt_spawn_actions): Add detached field.
	(spawn_detached): Merge into ...
	(_gpgrt_process_spawn): ... here, supporting pipe I/O.
	(_gpgrt_process_release): Handle detached process.
	(_gpgrt_process_wait_list): Likewise.

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

	w32:spawn: New flag GPGRT_PROCESS_STDIO_NUL.
	+ commit 311fb769d1ddb1aa6d7463b5b516359afebf208a
	* src/gpg-error.h.in (GPGRT_PROCESS_STDIO_NUL): New.
	* src/spawn-w32.c (w32_open_null): Add ENABLE_NULL_DEVICE argument.
	(_gpgrt_process_spawn): Follow the change.

	w32:spawn: Fix resource leaks for HANDLEs by w32_open_null.
	+ commit f28bf71b86ba6eac4260084f3a164a5c273c4628
	* src/spawn-w32.c (_gpgrt_process_spawn): Don't modify hd fields in
	ACT.  Clean up use of hd_in, hd_out, and hd_err.

2025-07-14  NIIBE Yutaka  <gniibe@fsij.org>

	w32:spawn: Fix inheriting HANDLEs.
	+ commit 0b01950237abe1cc28ef1fa5459e20c300af0946
	* src/spawn-w32.c (spawn_detached): Use EXTENDED_STARTUPINFO_PRESENT
	to enable lpAttributeList in STARTUPINFOEXW.
	(_gpgrt_process_spawn): Likewise.

2025-07-02  NIIBE Yutaka  <gniibe@fsij.org>

	gpgrt-config: It's gcc which supports -print-search-dirs option.
	+ commit cac7168088147a4d308b5ae7482135bc00db9f69
	* src/gpgrt-config.in (determine_gpgrt_libdir): Default to gcc.

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

	spawn: Define _GPGRT_NEED_AFLOCAL for OS without AF_LOCAL.
	+ commit dffca928fbc94dd738c8a118eb64e0889441c077
	* src/spawn-posix.c (_GPGRT_NEED_AFLOCAL): Add.

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

	spawn:posix: Use 1024 for arbitrary limit, following GPGME.
	+ commit 6cb61bb9cb552c430cc3a466ee056df5ed5a06e1
	* src/spawn-posix.c (get_max_fds): Use 1024 (was: 256).

	spawn:posix: Add an improvement when closefrom is not available.
	+ commit d302aff1eff1c51240007a75a1b2d7c08b326055
	* src/gpgrt-int.h (_gpgrt_close_all_fds): Fix function declaration.
	* src/spawn-posix.c (USE_GET_MAX_FDS): Define when closefrom is not
	available.
	(get_max_fds): Add an argument of FALLBACK_MAX_FDS.
	(_gpgrt_close_all_fds, my_exec, spawn_detached): Likewise.
	(_gpgrt_process_spawn): [USE_GET_MAX_FDS && _SC_OPEN_MAX]: It's a
	parent process which calls sysconf.

	posix:spawn: Use getdents64 when closefrom is not available.
	+ commit 9cc016c38df1531d6081317bfcc7ea705172e2ac
	* configure.ac (AC_CHECK_FUNCS): Check getdents64.
	* src/spawn-posix.c [!HAVE_CLOSEFROM] (get_max_fds): Use getdents64
	instead of readdir, for AS-Safety.

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

	spawn:posix: Fix spawning a process on POSIX machine.
	+ commit 2c029e737e88494038b5143f1232b458977f31d4
	* src/spawn-posix.c (get_max_fds): Don't use _POSIX_OPEN_MAX, since
	it's irrelevant;  It's a minimum value of OPEN_MAX.

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

	w32: Allow building on Windows with gcc < 12.
	+ commit 1d4e09c9b1b184d0369a90c2adacab8f197310f6
	* src/spawn-w32.c (_WIN32_WINNT): Define.

2025-06-10  Collin Funk via Gnupg-devel  <gnupg-devel@gnupg.org>

	argparse: Remove a duplicated condition.
	+ commit 0cee6a44f8a22c8a015115bd5567e25e207cdbfe
	* src/argparse.c (emulated_registry_lookup): Remove duplicated
	condition.

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

	libtool: Add support for zOS.
	+ commit c42825f1612b13c27c2472c4190d64655891078b
	* m4/libtool.m4: Add casefor  openedition.

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

	argparse: Fix a memory leak.
	+ commit ba7ed54668e4d7baea563f8b94cc887a41642f8d
	* src/argparse.c (handle_meta_echo): Free the STRING.

	yat2m: Release the memory after the use.
	+ commit 98d8f3d396b58d3086fd0416246908eba078917b
	* doc/yat2m.c (add_content): Fix the type of LINE.
	(finish_page): Clean up.

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

	Release 1.55.
	+ commit 99381397a06564fd8ae1c623c11036a5da099a4f


	Add commands mkdir and chdir to gpg-error.
	+ commit c002490a8f6dda044ae41118a6019da9ea3fc98c
	* src/gpg-error.c (main): Add new commands mkdir and chdir.  Allow for
	commands w/o dashes.

	w32: Yet another extended length path kludge.
	+ commit fba44d619d388aa413f4f50756c287a722437475
	* src/sysutils.c (_gpgrt_fname_to_wchar): Change threshold from 255
	to 250.

2025-04-22  Werner Koch  <wk@gnupg.org>

	w32: More changes to the extended length path handling.
	+ commit 65114f24e13f835a289f791ed7a5e408b2843d59
	* src/sysutils.c (has_path_separator): New.
	(_gpgrt_fname_to_wchar): Rewrite to add the prefix only when needed.
	----

	GetFullPathNameW has no MAX_PATH limit and thus can be used with any
	input.  We now prefix the resulting absolute path after the call to
	GFPN.  This allows to check whether the CWD is an UNC and thus use the
	right prefix.  We also don't run the entire thing for just a drive
	letter etc and further skip the prefix if the absolute path is less
	than MAX_PATH.  This gives better backward compatibility.

	There is also now a GPGRT_DISABLE_EXTLENPATH=-2 which does not disable
	the extended path handling but enables debug output.  To actually
	disable the feature a positive value must be used.

	Updates-commit 28ae4ee194ec56e98123d3aceda130161dfd2df8

2025-04-21  NIIBE Yutaka  <gniibe@fsij.org>

	Mark the initializations with __nonstring__ attribute.
	+ commit 1c58363541fcc331511d067ce388f32298fd8d29
	* src/b64enc.c (bintoasc): Use GPGRT_ATTR_NONSTRING.
	* src/gpg-error.h.in (GPGRT_ATTR_NONSTRING): New.

2025-04-17  Werner Koch  <wk@gnupg.org>

	Release 1.54.
	+ commit 9d47a0f1f8ae0b9aa4c2d0c230c08c8fbe243f42


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

	w32: Fix extended length path handling for UNC specified files.
	+ commit 28ae4ee194ec56e98123d3aceda130161dfd2df8
	* src/sysutils.c (_gpgrt_fname_to_wchar): Fix the extended length path
	support for UNC file names.  Also add an envvar to disable the entire
	extended length path support.

	Add command --fopen to gpg-error to help testing.
	+ commit 3c9beea348cdeaa3f3026a934b40badfb4d4bab2
	* src/gpg-error.c (main): Implement command --fopen.  Also ignore log
	file settings from the Registry.

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

	Release 1.53.
	+ commit f9e98ed8315eaf0468870149d22c5dcf992288ec


	tests: Check that we do not use the es macros in the public API.
	+ commit 26b876030dbda890b9630595419b422aa182c0dd
	* tests/t-version.c: Undef the macros.

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

	Use gpgrt_stream_t for the API of gpgrt_nvc_*.
	+ commit 32475a7868f5e2e1c274a65ecc6791375054eaa4
	* src/gpg-error.h.in (gpgrt_nvc_parse): Use gpgrt_stream_t.
	(gpgrt_nvc_write): Likewise.

2025-04-08  Werner Koch  <wk@gnupg.org>

	Release 1.52.
	+ commit be471d158e4951f4b17335b0fc9ae2387a786b5b


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

	argparse: Make getreg meta command work on Unix.
	+ commit 9864dd4d66342cca340f8ebe57f46b2fa274bac0
	* src/argparse.c (_gpgrt_argparse_internal_s): Add fields no_registry
	and registry.
	(initialize): Init them.
	(emulated_registry_lookup): New.
	(handle_meta_getenv): Use it.
	* tests/etc/t-argparse.conf: Add a getreg meta command.
	* tests/t-argparse.c (opt): Add a disable-akr command.
	* tests/etc/Registry: New.

	Add a section mode to the name-value functions.
	+ commit d0b7d33536736ef6f3d41575b6f58b2d3a7c139b
	* src/gpg-error.h.in (GPGRT_NVC_SECTION): New.
	* src/name-value.c (_gpgrt_name_value_container): Add section_mode.
	(_gpgrt_nvc_new): Set it.
	(_gpgrt_nvc_get_flag): Return it.
	(valid_name): Add arg sectionmode and change callers.
	(do_nvc_parse): Parse section names in section mode.
	(_gpgrt_nvc_write): Return an error in section mode.

	Allow name-value lookup w/o a trailing colon for the name.
	+ commit afb277e5bdd92c16a4fdbd33b89dab4c03a5ae62
	* src/name-value.c (_gpgrt_name_value_entry): Add field namelen.
	(ascii_memcasecmp): New.
	(same_name_p): New.
	(valid_name): Strip the colon and return the length.
	(do_nvc_add): Set namelen.
	(_gpgrt_nvc_lookup): Simplify.

	* tests/t-name-value.c (test_getting_values): Add some extra tests.

	New public API gpgrt_nvc_* and gpgrt_nve_*
	+ commit 7ec1f27b60eec95297c5267ab5ebbdb73b263c3f
	* src/name-value.c: New.
	* tests/t-name-value.c: New.
	* src/gpg-error.def.in: Add new functions.
	* src/gpg-error.h.in: Ditto.
	* src/gpg-error.vers: Ditto.
	* src/visibility.c: Ditto.
	* src/visibility.h: Ditto.

	Update the copyright notice.
	+ commit 17bb01f86d1d75bb57418a0101c0f08a49bfdd07
	* configure.ac (GPGRT_STD_COPYRIGHT_LINE): New.
	* src/gpg-error.c (my_strusage): Use it here.

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

	w32: Improve the detection of the need for a \\?\ prefix.
	+ commit a4a692fcf1ed128693ec6d64d5e3163775aad10b
	* src/sysutils.c (_gpgrt_fname_to_wchar): Use the no-max-path prefix
	for shorter files and for filenames with path separators.

	Add test cases for the strlist functions.
	+ commit b6b0af7d4eb2c65318ac87253dc3979f99b301dd
	* tests/t-strlist.c: new.

	tests: Add macros to improve the debug output.
	+ commit be036dccd756e326470afcd7928a1d20790fc24a
	* tests/t-common.h (current_func): New var.
	(enter_test_function, leave_test_function): New macros.
	(die, fail, show): Print the fucntion name.

2025-04-01  Werner Koch  <wk@gnupg.org>

	New public API gpgrt_strlist_*
	+ commit 47097806f13d93daffb73b4221f3f18a99f66b2b
	* src/strlist.c: Rename all functions to have a _gpgrt_strlist prefix.
	(append_to_strlist2, strlist_length): Remove.
	(_gpgrt_strlist_free): rtake care of the wipe flag.
	(_gpgrt_strlist_add): Add a flags arg to use it for prepend and
	append.  Return an error on failure.
	(_gpgrt_strlist_tokenize): Ditto.
	(_gpgrt_strlist_copy): Chnage to return an error on failure.
	(_gpgrt_strlist_pop): Ditto.
	* src/Makefile.am (libgpg_error_la_SOURCES): Add strlist.c.
	* src/argparse.c (trim_spaces): Move to ...
	* src/stringutils.c (_gpgrt_trim_spaces): here and rename.
	* src/visibility.c: Add wrappers for all exported functions.
	* src/visibility.h: MArk exported functions as visisble.
	* src/gpg-error.def.in: Export new functions
	* src/gpg-error.vers: Ditto.
	* src/gpg-error.h.in (GPGRT_STRLIST_APPEND): New.
	(GPGRT_STRLIST_WIPE): New.
	(gpgrt_strlist_free): New.
	(gpgrt_strlist_add): New.
	(gpgrt_strlist_tokenize): New.
	(gpgrt_strlist_copy): New.
	(gpgrt_strlist_rev): New.
	(gpgrt_strlist_prev): New.
	(gpgrt_strlist_last): New.
	(gpgrt_strlist_pop): New.
	(gpgrt_strlist_find): New.
	(gpgrt_strlist_count): New inline function.

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

	Fix logic for finding the beta version number.
	+ commit 542b6fce139047b5a0fa42ae11179a2308ac8f9e
	* autogen.sh: Check if $tmp is empty after each assignment.

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

	gpgrt-config: Append default directory to PKG_CONFIG_PATH.
	+ commit dbf1e0dc47229384d59cb19084de39a855e5c871
	* src/gpgrt-config.in: Fix initializing PKG_CONFIG_PATH.

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

	Skip gpg-error-config-test.sh for specific incompatible pkg-config.
	+ commit b6df311368133df90c3bf338fbf5c90bd8d950f8
	* src/gpg-error-config-test.sh.in: Skip the test with pkgconf 1.8.0.

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

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

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

	spawn: Care about closefrom/close call is interrupted.
	+ commit 0f4fe2edf5e50cc72b3decea486f2cf57d265d8e
	* src/spawn-posix.c (closefrom_really): Handle interrupted call of
	closefrom.
	(close_except): Likewise for call of close.
	(_gpgrt_close_all_fds): Use closefrom_really and close_except.

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

	spawn: Use closefrom when available.
	+ commit e3e793302b67e37727caf11a868b5b91d7c13f8c
	* configure.ac (AC_CHECK_FUNCS): Check closefrom.
	* src/spawn-posix.c [HAVE_CLOSEFROM]: Use closefrom if possible.

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

	New Windows API gpgrt_w32_reg_get_string.
	+ commit 652328c786f37e3a3de5c3b143ce9e0d524bfeb4
	* src/w32-reg.c (_gpgrt_w32_reg_query_string): Implement a prefix for
	root and consider an empty string for root also HKCU.
	* src/visibility.c (gpgrt_w32_reg_get_string): New.
	* src/gpg-error.def.in: Add new function.

	* src/gpg-error.c (my_strusage): Print the Windows version (32 or 64
	bit) of the binary.
	(main): New command --getreg.

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

	Minor cleanness fix for autogen.sh.
	+ commit 65a4bc30d99aada8e5f17711bc5a4ff242d22881
	* autogen.sh (w32root): Remove double slash in case of HOME=/.

2024-12-02  Daniel Cerqueira  <dan.git@lispclub.com>

	po: Update Portuguese Translation.
	+ commit 7baf9f6b4030012a9d813d5e0c108dd836479ad4


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

	autogen.sh: New command --print-tsdir.
	+ commit e15a7c411dcadb229f4ff1ae0259c51dde9fd535
	* autogen.sh: New command --print-tsdir.
	(maintainer_mode_option): Allow setting via autogen.rc

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

	spawn:w32: Fix a memory leak on an error path.
	+ commit eb005c30157f4ce0cd335955f13567dda03685e3
	* src/spawn-w32.c (spawn_detached): Make sure to release
	lpAttributeList.
	(_gpgrt_process_spawn): Likewise.

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

	Release 1.51.
	+ commit b0bb9266010d84b30fa2dc6a2127b7e40dc03660


2024-10-23  NIIBE Yutaka  <gniibe@fsij.org>

	Avoid use of 'nullptr' for an identifier.
	+ commit d14c69a7f256a9444c5c64b808d8767e5a8ba68e
	* tests/t-printf.c (check_fprintf_sf): Use 'null_ptr'
	as an identifier.

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

	spawn: Shorter identifier gpgrt_spawn_actions_set_env_rev.
	+ commit 1bca948594d9f8c26231bfb7ff7b2f3ebf9df295
	* src/gpg-error.def.in: Rename to gpgrt_spawn_actions_set_env_rev.
	* src/gpg-error.h.in: Likewise.
	* src/gpg-error.vers: Likewise.
	* src/gpgrt-int.h: Likewise.
	* src/spawn-posix.c: Likewise.
	* src/spawn-w32.c: Likewise.
	* src/visibility.c: Likewise.
	* src/visibility.h: Likewise.
	* tests/t-spawn.c (run_test): Use gpgrt_spawn_actions_set_env_rev.

2024-10-11  NIIBE Yutaka  <gniibe@fsij.org>

	spawn: Add new function to modify environment.
	+ commit 1860f6407f834b681c21f67db7236eaad161524c
	* src/gpg-error.def.in (gpgrt_spawn_actions_set_envchange): New.
	* src/gpg-error.vers (gpgrt_spawn_actions_set_envchange): New.
	* src/gpg-error.h.in (gpgrt_spawn_actions_set_envchange): New.
	* src/gpgrt-int.h (_gpgrt_spawn_actions_set_envchange): New.
	* src/spawn-posix.c (struct gpgrt_spawn_actions): New field ENVCHANGE.
	(prepare_environ): New.
	(my_exec): Take care of ENVCHANGE.
	(_gpgrt_spawn_actions_set_envchange): New.
	* src/spawn-w32.c (struct gpgrt_spawn_actions): New field ENVCHANGE.
	(prepare_env_block): New.
	(_gpgrt_spawn_actions_set_envchange): New.
	(spawn_detached, _gpgrt_process_spawn): Take care of ENVCHANGE.
	* src/visibility.c (gpgrt_spawn_actions_set_envchange): New.
	* src/visibility.h (gpgrt_spawn_actions_set_envchange): New.
	* tests/Makefile.am (TESTS): Add t-spawn.
	* tests/t-spawn.c: New.

2024-10-10  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Fix releasing memory for UTF-8 text.
	+ commit 68600fe17c5f8c72e421b5ca9d9622568c6f57fd
	* src/spawn-w32.c (spawn_detached): Use _gpgrt_free_wchar.
	(_gpgrt_process_spawn): Likewise.

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

	estream: Let poll return an error for a closed fd.
	+ commit 4a3dc85f695e6448e6279dc48894b500168f42f9
	* src/estream.c (_gpgrt_poll): Set got_nval.

2024-09-19  NIIBE Yutaka  <gniibe@fsij.org>

	posix: Fix forgotten _gpgrt_post_syscall on error path.
	+ commit bcab96484d4858fcde669b36d309ab7fbc79174e
	* src/spawn-posix.c (do_create_pipe_and_estream): Call post_syscall.

	posix: Fix memory leak for spawn.
	+ commit 4a0c942151da91ad75dbb45d4dc10c4751ee28e4
	* src/spawn-posix.c (spawn_detached): Free ARGV.

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

	w32:spawn: Remove unused function get_max_fds.
	+ commit c2a713fe11e35b4567e0c7d2a20d8ab416b366ad
	* src/spawn-w32.c (get_max_fds): Remove.

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

	w32: Clarify the environment block encoding.
	+ commit 0f7b327ccf6d2018b193d5598c4a8a338f874a59
	* src/spawn-w32.c (_gpgrt_spawn_actions_set_envvars): It's an ASCII
	string.

2024-08-27  NIIBE Yutaka  <gniibe@fsij.org>

	w32: Add GPGRT_PROCESS_ALLOW_SET_FG for gpgrt_process_spawn.
	+ commit b79d4206f482b323fb9f9d52a1c715e853752195
	* src/gpg-error.h.in (GPGRT_PROCESS_ALLOW_SET_FG): New.
	* src/spawn-w32.c (_gpgrt_process_spawn): Support the flag.

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

	w32: Allow initialization of new threads to utf8 mode.
	+ commit 7f36440d90964ffe809064365cb16033ba1dda69
	* src/init.c (utf8_for_new_threads): New var.
	(_gpgrt_w32_utf8_for_new_threads): New func.
	(get_tls): Init the TLS utf8 flag from the new var.
	* src/w32-gettext.c (_gpg_w32_gettext_use_utf8): Implement new flag.

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

	Put the full commit id into VERSION.
	+ commit 9c448f7c7a55c8293cd33ea0fcd33dd42032504d
	* autogen.sh <find-version>: Also print the full commit id.
	* configure.ac: Get the full commit id.  Add it to VERSION.
	(BUILD_REVISION): Replace this ac_define by
	(BUILD_COMMITID): this.
	* src/version.c (cright_blurb): Use here.

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

	core: Declare environ for macOS and others.
	+ commit a59e902b887fd92337c9728f668cf9c89da3957a
	* src/spawn-posix.c (environ): Declare.

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

	Release 1.50.
	+ commit bb732615daad9bba9026354ae90f0f5292ea4908


	spawn: New flag GPGRT_PROCESS_NO_EUID_CHECK.
	+ commit bdd1060445fa358d3ca3f1f98334de60cd5d6c10
	* src/gpg-error.h.in (GPGRT_PROCESS_NO_EUID_CHECK): New.
	* src/spawn-posix.c (spawn_detached): Move check to ...
	(_gpgrt_process_spawn): here and skip if flag is set.

	spawn: Keep struct definitions at the top of the file.
	+ commit 0078afb8c60af2c61c01688ca52f51ca95b25721
	* src/spawn-posix.c: Move include and struct defs around.
	* src/spawn-w32.c: Move struct defs around.

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

	Apply spell fix.
	+ commit 82a34b733d89b2c3ebc45d8124378ada19017a65
	* src/gpg-error.m4: Apply spell fix from GnuPG master.

	Fix gpg-error.m4.
	+ commit c690e6e3655e7d9db79cd07cfacf3234ecd548cf
	* src/gpg-error.m4 (_AM_PATH_GPGRT_CONFIG): Don't set
	gpg_error_config_version.
	(AM_PATH_GPG_ERROR): Set GPG_ERROR_CONFIG here and set
	gpg_error_config_version with GPG_ERROR_CONFIG.

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

	spawn: Support the use case in libassuan where PGMNAME==NULL.
	+ commit d53f35a5e6644b94fb25bf6afd365f4b0f5a18e0
	* src/spawn-posix.c (my_exec): When PGMNAME==NULL, just fork.
	(_gpgrt_process_spawn): Support PGMNAME==NULL use case.
	* src/spawn-w32.c (_gpgrt_process_spawn): Return GPG_ERR_INV_ARG,
	when PGMNAME==NULL.

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

	spawn: Expose gpgrt_spawn_actions functions.
	+ commit e644311383350ce704611cce69f322a7d9dd548e
	* src/gpg-error.def.in: Update.
	* src/gpg-error.h.in: Add declarations.
	* src/gpg-error.vers: Update.
	* src/visibility.c: Update.
	* src/visibility.h: Update.

	spawn: Add new GPGRT_PROCESS_NO_CONSOLE for Windows.
	+ commit 03fd278d7f7a1e3e0d082de5efb9d85740cf0ab8
	* src/gpg-error.h.in (GPGRT_PROCESS_NO_CONSOLE): New.
	* src/spawn-w32.c (_gpgrt_process_spawn): Handle
	GPGRT_PROCESS_NO_CONSOLE.

	Fix return type of gpgrt_b64dec_*.
	+ commit 7d132a1a72ad618640640db278056ce04d32fdde
	* src/gpg-error.h.in (gpgrt_b64dec_proc): Return gpg_err_code_t.
	(gpgrt_b64dec_finish): Ditto.
	* src/visibility.c: Fix return type.

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

	spawn:w32: Allow for up to 32 inherited handles.
	+ commit 4ee656242aa93af42e74acb706a13f99212a93d6
	* src/spawn-w32.c (spawn_detached): Increase array size.
	(_gpgrt_process_spawn): Ditto.

	spawn: Avoid bumping the error counter.
	+ commit 60b9a68def583d7c3a1d47daec717a7f71233c55
	* src/spawn-posix.c: Use log_info instead of log_error.
	* src/spawn-w32.c: Ditto.
	(spawn_detached): Fix copying of hd[2]
	(_gpgrt_process_spawn): Ditto.

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

	spawn: Expose spawn functions API.
	+ commit 2caaef8f6b89d7fcbbe3d480d192fe1952576942
	* src/gpg-error.def.in: Update.
	* src/gpg-error.vers: Update.
	* src/gpg-error.h.in: Add declarations.
	* src/visibility.c: Add implementations.
	* src/visibility.h: Expose them.

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

	spawn:w32: Fix setting of dwFlags for CreateProcess.
	+ commit 3be8b2c95faac8543e2ceddb308b8c138dde11d8
	* src/spawn-w32.c (_gpgrt_process_spawn): Only set
	STARTF_USESTDHANDLES with active handles.

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

	spawn: Allow NULL for ACT.
	+ commit adcb4170a40d7cf66181a6b3efc7c187892a1318
	* src/spawn-posix.c (_gpgrt_process_spawn): ACT may be null.
	* src/spawn-w32.c (_gpgrt_process_spawn): Likewise.

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

	Fix process termination check at release.
	+ commit 5fec7d7ada4c5b1978cfba3be8b67475ff1e0859
	* src/spawn-posix.c (_gpgrt_process_release): When NOT terminated,
	terminate and wait.
	* src/spawn-w32.c (_gpgrt_process_release): Likewise.

	Fix how environment variables are specified for spawn.
	+ commit fbe1f5153c3cb8b7c5de40973cceee7f639804e7
	* src/gpgrt-int.h (_gpgrt_spawn_actions_set_envvars)
	[HAVE_W32_SYSTEM]: Assume use with GetEnvironmentStrings.
	(_gpgrt_spawn_actions_set_environ) [!HAVE_W32_SYSTEM]:
	New.
	* src/spawn-posix.c: Follow the change.
	* src/spawn-w32.c: Can specify envvars now.

	Cleaner semantics for _gpgrt_process_spawn without a callback.
	+ commit 6c05b35977c9d15da45b4fe6c0c870dbbf51657c
	* src/gpg-error.h.in (@define:struct_spawn_cb_arg@): Remove.
	(gpgrt_spawn_actions_t): New.
	(@define:spawn_actions_functions@): New.
	* src/gpgrt-int.h (_gpgrt_spawn_actions_new)
	(_gpgrt_spawn_actions_release, _gpgrt_spawn_actions_set_envvars)
	(_gpgrt_spawn_actions_set_redirect): New.
	[HAVE_W32_SYSTEM] (_gpgrt_spawn_actions_set_inherit_handles): New.
	[!HAVE_W32_SYSTEM] (_gpgrt_spawn_actions_set_inherit_fds)
	(_gpgrt_spawn_actions_set_atfork): New.
	(_gpgrt_process_spawn): Use gpgrt_spawn_actions_t.
	(_gpgrt_spawn_helper): Remove.
	* src/mkheader.c: Emit gpgrt_spawn_actions_* definition.
	* src/spawn-posix.c(_gpgrt_spawn_actions_new)
	(_gpgrt_spawn_actions_release, _gpgrt_spawn_actions_set_envvars)
	(_gpgrt_spawn_actions_set_redirect)
	(_gpgrt_spawn_actions_set_inherit_fds)
	(_gpgrt_spawn_actions_set_atfork): New.
	(spawn_detached, _gpgrt_process_spawn): Use gpgrt_spawn_actions_t.
	(_gpgrt_spawn_helper): Remove.
	* src/spawn-w32.c: Ditto, with
	_gpgrt_spawn_actions_set_inherit_handles, but no
	_gpgrt_spawn_actions_set_atfork.

2024-05-28  NIIBE Yutaka  <gniibe@fsij.org>
[--snip--]
