2018-05-02  Werner Koch  <wk@gnupg.org>

	Release 1.31.
	+ commit 10a984d25048a09d1c489224bae866372e8066a1
	* configure.ac: Set LT version to C24/A24/R2.

2018-05-01  Werner Koch  <wk@gnupg.org>

	core,w32: Avoid recursive use of npth_unprotect.
	+ commit b26a227173e8e9b91be14f06ee781c6e214e50ff
	* src/w32-estream.c (reader): Use standard free.
	(writer): Ditto.

2018-05-01  emma peel  <emma.peel@riseup.net>

	po: new Spanish translation.
	+ commit 7e2517a29619c35257b38aa137b6772e471d7e4e


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

	Release 1.30.
	+ commit cac048bf8454ade95a905f9d3840b1ec284fce20
	* configure.ac: Bump LT version to C24/A/24/R1.

	build: More release creation automation.
	+ commit d1d4c4f8eb9830bfb671054e1558342106ba9d8d
	* Makefile.am: Add release and sign-release targets.

	core: Fix gpgrt_poll for Windows under nPth.
	+ commit 4f45f3e0bb404b4a9787cb55ca154c6f60c1437b
	* src/estream.c (_gpgrt_poll) [W32]: Use syscall clamp.

2018-04-13  NIIBE Yutaka  <gniibe@fsij.org>

	doc: Fix yat2m build for cross compilation.
	+ commit 792877a08ca7bc9d1377161dc9af374602a394cc
	* doc/Makefile.am: Fix target of yat2m-for-build.

2018-04-12  NIIBE Yutaka  <gniibe@fsij.org>

	build: Check -lsocket -lnsl for Solaris.
	+ commit e35749023ca68de6f1f85d3072f7b36fd6f6fe7c
	* configure.ac: Check inet_addr for -lnsl, and socket for -lsocket.

2018-04-11  Damien Goutte-Gattat via Gnupg-devel  <gnupg-devel@gnupg.org>

	build: Make sure version.texi is generated in time.
	+ commit 8ef76d9373db16f1ca176f9c87c8dac2758c8b85
	[[PGP Signed Part:Good signature from AA4373E6C82C78AD Damien Goutte-Gattat <dgouttegattat@incenp.org> (trust undefined) created at 2018-04-11T17:05:27+0200 using RSA]]
	[1. text/plain]

	* doc/Makefile.am (yat2m-stamp): Depend on version.texi.

2018-04-11  Werner Koch  <wk@gnupg.org>

	Release 1.29.
	+ commit c3825327da826e434ada9abde34e6bbd7ef61737
	* configure.ac: Bump LT version to C24/A24/R0.

	core: Finalize the API for argparse.
	+ commit e901c9fb04f5a96ba2bd49225b396ce7857a3782
	* src/gpg-error.h.in (ARGPARSE_end): Simplify.
	* src/argparse.c (_gpgrt_argparse_internal_s): Add field opts.
	(deinitialize): Release new field.
	(initialize): Add arg opts and create a copy of the option list.  Add
	the internal options.
	(_gpgrt_argparse): Rename arg opts to opts_orig and set new local var
	opts.  Adjust all references to opts.
	(find_long_option): Adjust for chnaged type of OPTS.  Re-indent.
	(arg_parse): Remove internal option assignment.  Rename arg opts to
	opts_orig and set new local var opts.  Adjust all references to opts.
	(show_help): Adjust all references to opts.

2018-03-27  NIIBE Yutaka  <gniibe@fsij.org>

	doc: Support cross compilation for yat2m.
	+ commit efc4769339d42a4a399c040c146cf4a29c02ea4f
	* configure.ac (HAVE_YAT2M): New.
	* doc/Makefile.am [CROSS_COMPILING]: Supported.

2018-03-22  Werner Koch  <wk@gnupg.org>

	build: Add option --git-build to autogen.sh.
	+ commit 1b30d21c8780f5510815d4fb2523afad9fff85dc


	yat2m: Avoid compiler warnings.
	+ commit 30621ee4c13006d08881994c32c89f60604c0188
	* doc/yat2m.c (evaluate_conditions): Mark args unused
	(proc_texi_cmd): Avoid shadowing warning.

	core: Add Base-64 encoder.
	+ commit ffc8f805165a13d16ed227051c59d732117ec9d4
	* src/b64enc.c: Change to fit into libgpg-error.
	* src/Makefile.am: Add b64enc.c
	* src/b64dec.c: Use xtrymalloc etc.  Always use gpg_err_code_t.
	(_gpgrt_b64dec_start): Set decoder flag
	(_gpgrt_b64dec_finish): Check for conflict.
	(_gpgrt_b64state): Move to ...
	* src/gpgrt-int.h: here.  Add new fields.
	* src/visibility.c (gpgrt_b64enc_start): New.
	(gpgrt_b64enc_write): New.
	(gpgrt_b64enc_finish): New.
	* src/gpg-error.vers, src/gpg-error.def.in: Add new functions.
	* src/gpg-error.h.in: Ditto.
	* src/visibility.h: Ditto.

	* tests/t-b64dec.c: Remove.
	* tests/t-b64.c: New.
	* tests/Makefile.am (TESTS): Replace t-b64dec by t-b64.

2018-03-22  NIIBE Yutaka  <gniibe@fsij.org>

	doc: Fix build and installation of yat2m.
	+ commit 4dc6d4d2067c726cdb13593bf151637319ff65e6
	* configure.ac (YAT2M): Require it when cross compiling.
	* doc/Makefile.am (bin_PROGRAMS): Add yat2m.

2018-03-21  Werner Koch  <wk@gnupg.org>

	po: Merge GnuPG's strings from argparse.c.
	+ commit e492e0a0a73e1ea9c80f355a25f632af69d3a569


	tools: Use gpgrt_argparse for the gpg-error tool.
	+ commit 11ce9bc3d6fe75859e18112824ae7ec3ca0fc8df
	* src/gpg-error.c (show_usage): Remove.
	(my_strusage): New.
	(main): Change to use argparse.  Also use log_error.

	core: Add public function gpgrt_usage.
	+ commit ed78ef7f06649f85f1c94c4fb2bd3f6b16fd9a63
	* src/visibility.c (gpgrt_usage): New.

	core: Add the group of argparse functions.
	+ commit 13d6fbfd4360cb74588556a3a0058c4057d0bcf0
	* src/visibility.c (gpgrt_argparse): New.
	(gpgrt_strusage): New.
	(gpgrt_set_strusage): New.
	(gpgrt_set_usage_outfnc): New.
	(gpgrt_set_fixed_string_mapper): New.
	* src/gpg-error.def.in, src/gpg-error.vers: Add new functions.
	* src/gpg-error.h.in: Add ARGPARSE macros from the former argparse.h.
	(gpgrt_argparse_t): New.
	(gpgrt_opt_t): New.
	* configure.ac (AH_BOTTOM): Request argparse macros.
	* src/Makefile.am (libgpg_error_la_SOURCES): Add argparse.c.
	* src/argparse.h: Remove.
	* src/argparse.c: Revamp to fit into libgpg-error.
	(_gpgrt_argparse): New.
	(_gpgrt_usage): Rename from usage.
	(_gpgrt_strusage): Rename from strusage.  Define two new levels and
	templates for three common licenses.
	(_gpgrt_set_strusage): Rename from set_strusage.
	(_gpgrt_set_usage_outfnc): New.
	(_gpgrt_set_fixed_string_mapper): New.

	* tests/t-argparse.c: New.

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

	core: Fix regression on arm64 due to invalid use of va_list.
	+ commit 791177de023574223eddf7288eb7c5a0721ac623
	* src/logging.c (_gpgrt_log_printhex): Provide a dummy arg instead of
	NULL.

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

	core: Fix building on W64.
	+ commit c36a60687976d98b54dac17f699dfca4918a737c
	* src/w32-add.h: Remove hack to define pid_t.
	* src/gpg-error.h.in: Eval macro to define pid_t.
	* src/mkheader.c (have_sys_types_h, sys_types_h_included): New.
	(parse_config_h): Test for sys/types.h.
	(write_special): Protect inclusion of sys/types.h.  Define new macro
	'define:pid_t'.

2018-03-13  Werner Koch  <wk@gnupg.org>

	Release 1.28.
	+ commit e32342397eab85fed5ef709317cc50dc7cbc41a5


2018-02-28  NIIBE Yutaka  <gniibe@fsij.org>
	    Karsten Merker  <merker@debian.org>

	syscfg: Add a riscv64 architecture.
	+ commit 596c0d701edeb45e0069bb74b9343e3d5b708ef0
	* src/syscfg/lock-obj-pub.riscv64-unknown-linux-gnu.h: New.
	* src/Makefile.am (lock_obj_pub): Add it.

2018-02-21  Werner Koch  <wk@gnupg.org>
	    Todd Zullinger

	build: Document how to use git send-email.
	+ commit 70058cd9f944d620764e57c838209afae8a58c78
	* autogen.rc: Add patches_to.
	* autogen.sh: Run git config sendemail.to.
	* doc/HACKING: Describe use of git send-email.

2018-02-21  Thorsten Behrens  <Thorsten.Behrens@CIB.de>

	doc: clarify patch submission workflow.
	+ commit 887530733d0486ab68ff351c4855f5450c2d50e6


2017-12-11  Werner Koch  <wk@gnupg.org>

	core: Avoid using estream_t in the public API.
	+ commit f9a33a7f7e44a644ff4e31f7e9f1c2c1ec1f8eee
	* src/gpg-error.h.in: Always use gpgrt_stream-t.

2017-12-08  Werner Koch  <wk@gnupg.org>

	core: Rename the gpgrt_log_levels enum values.
	+ commit de167fa92d009745c51dae547990845282cbb351
	* src/gpg-error.h.in (gprt_log_levels): Rename to GPGRT_LOGLVL.

2017-11-29  Werner Koch  <wk@gnupg.org>

	core: Wrap blocking system calls of the spawn functions.
	+ commit 4acf116ba6d144c2cfa39ff54a23b8864b4ce895


	core: Unify syscall_clamp functions.
	+ commit adc786d034b63176b941a1ef8d996acbf8d0ea5d
	* src/estream.c (_gpgrt_set_syscall_clamp)
	(_gpgrt_get_syscall_clamp): Move to ...
	* src/syscall-clamp.c: new file.
	(_gpgrt_pre_syscall, _gpgrt_post_syscall): New.
	* src/Makefile.am (libgpg_error_la_SOURCES): Add that file.
	* src/estream.c: Replace the syscall wrapper with the new functions.
	* src/posix-lock.c: Ditto.
	* src/w32-lock.c: Ditto.
	* src/posix-thread.c: Ditto.
	* src/w32-thread.c: Ditto.

	core: Implement the spawn functions.
	+ commit 1865c0ba1769b407a3c504f1ab0a4278704a9fc1
	* src/gpg-error.h.in  (GPGRT_SPAWN_NONBLOCK): New const.
	(GPGRT_SPAWN_RUN_ASFW): New const.
	(GPGRT_SPAWN_DETACHED): New const.
	(gpgrt_make_pipe): New function.
	(gpgrt_create_pipe): New macro.
	(gpgrt_create_inbound_pipe): New macro.
	(gpgrt_create_outbound_pipe): New macro.
	(gpgrt_spawn_process): New function.
	(gpgrt_spawn_process_fd): New function.
	(gpgrt_spawn_process_detached): New function.
	(gpgrt_wait_process): New function.
	(gpgrt_wait_processes): New function.
	(gpgrt_kill_process): New function.
	(gpgrt_release_process): New function.
	* src/gpg-error.def.in, src/gpg-error.vers: Add new functions.
	* src/visibility.c, src/visibility.h: Add wrappers for new functions.
	* src/spawn-posix.c: Rework to better fit the use in gpgrt.  Rename
	all public function with a _gpgrt prefix.
	* src/spawn-w32.c: Ditto.
	* src/gpgrt-int.h: Likewise.
	* src/Makefile.am (arch_sources): Add spawn-posix.c and spawn-w32.c.
	* src/w32-add.h: Add pid_t typedef as a temporary hack.
	* configure.ac: Check for signal.h and getrlimit.
	(AC_FUNC_FORK): New.

	Import and relicense exechelp* functions from GnuPG.
	+ commit 8f41cc23b12485404203be5881aaaadb78696b4d
	* src/spawn-posix.c: New.  Taken from GnuPG's exechelp-posix.c.
	* src/spawn-w32.c: New.  Taken from GnuPG's exechelp-w32.c.
	* src/gpgrt-int.h: Include prototypes from GnuPG's exechelp.h.

2017-11-28  Werner Koch  <wk@gnupg.org>

	core: Change new functions to return gpg_err_code_t.
	+ commit 513415c71781ab400ebb01f6b4cf2984ec6b1757
	* src/gpg-error.h.in (gpgrt_sentenv, gpgrt_mkdir, gpgrt_chdir): Change
	return type to gpg_err_code_t.
	* src/sysutils.c (_gpgrt_setenv): Implement that.
	(_gpgrt_mkdir): Ditto.
	(_gpgrt_chdir): Ditto.
	* gpgscm/ffi.c (do_setenv, do_mkdir): Adjust for this change.

	gpgscm: Some adjustments for use in gpgrt.
	+ commit 930d27ba6b1205395add0c79139e62355a1d5b62
	* gpgscm/Makefile.am: Remove cruft leftover from GnuPG.  Link to the
	just build libgpg-error.
	* gpgscm/private.h: Include gpgrt.h and provide i18n macros.
	(xfree, xtrymalloc, xtrycalloc, xtryrealloc): New macros.
	(xmalloc, xstrdup): New inline functions.
	* gpgscm/main.c: Remove inclusion of gcrypt.h and gpg-error.h.  Remove
	all other gnupg specific headers.
	(opts, parse_arguments): Temporary comment out.
	(main): Adjust for use with gpgrt.  Temporary comment out some stuff.
	* gpgscm/ffi-private.h: Include local gpgrt.h instead of gpg-error.h.
	* gpgscm/ffi.h: Ditto.
	* gpgscm/ffi.c: Remove gpg-error.h and headers from GnuPG.
	(do_getenv): Use gpgrt_getenv.
	(do_setenv): Use gpgrt_setenv.
	(do_mkdtemp): Temporary return an error.
	(unlink_recursively): Use gpgrt_bsprintf.
	(do_getcwd): Use gpgrt_getcwd.
	(do_mkdir): Use gpgrt_mkdir.
	(do_get_isotime): Temporary return an error.
	(do_get_time): Directly use time().

	core: New API functions gpgrt_mkdir, gpgrt_chdir, gpgrt_getcwd.
	+ commit 4a2538e69dd35377bce0fb584f72322c69a111b3
	* src/gpg-error.h.in (gpgrt_mkdir, gpgrt_chdir, gpgrt_getcwd): New.
	* src/visibility.c, src/visibility.h: Add wrappers.
	* src/gpg-error.vers, src/gpg-error.def.in: Add them.
	* src/sysutils.c (modestr_to_mode): New.
	(_gpgrt_mkdir, _gpgrt_chdir, _gpgrt_getcwd): New.
	* m4/gnupg-misc.m4: New.
	* m4/Makefile.am (EXTRA_DIST): Add new M4 file.
	* configure.ac: Call new GNUPG_FUNC_MKDIR_TAKES_ONE_ARG.
	(AC_CHECK_FUNCS): Add stat.

	core: Prepare to build with gpgscm.
	+ commit 241e9a73891fcd12f124aab1a299c2cf4f8eebc4
	* configure.ac: New option --enable-gpgscm.  Create gpgscm/Makefile.
	(GPGRT_ENABLE_LOG_MACROS): Define.
	* Makefile.am (SUBDIRS): Add gpgscm
	* src/logging.c (_gpgrt_logv_clock): Do not use the log_debug macro.

	core: New API functions gpgrt_getenv and gpgrt_setenv.
	+ commit b67daca506991507cea9d383df7faf95117e58a6
	* src/gpg-error.h.in (gpgrt_getenv, gpgrt_setenv): New.
	(gpgrt_unsetenv): New macro.
	* src/gpg-error.vers, src/gpg-error.def.in: Add them.
	* src/visibility.c (gpgrt_getenv, gpgrt_setenv): New.
	* src/visibility.h: Add them.
	* src/sysutils.c: Include string.h and on Windows windows.h.
	(_gpgrt_getenv): New.
	(_gpgrt_setenv): New.

2017-11-27  Werner Koch  <wk@gnupg.org>

	core: Install new files gpgrt.m4 and gpgrt-config.
	+ commit 97b0881216af24f2a46c11650e23691cff9cb12a
	* src/gpgrt.m4: New.  Bascially a copy of libgpg-error.m4
	* src/gpg-error-config.in: Decide which name to print.
	* src/Makefile.am (nodist_bin_SCRIPTS): Add gpgrt-config.
	(m4data_DATA): Add gpgrt.m4
	(EXTRA_DIST): Add gpgrt.m4.
	(BUILT_SOURCES): Add gpgrt-config.
	(CLEANFILES): Add gpgrt-config.
	(gpgrt-config): Create from gpg-error-config.

	core: Avoid endless recursion if log_set_sink has not been used.
	+ commit 84ebd2f34882d29510f819a797fade0297fe9ab9
	* src/logging.c (_gpgrt_log_set_sink): Do not call gf_is_valid if the
	default sink has been requested.

	core: Add new macro log_assert to the API.
	+ commit d1e3401013f85620f3136958be079c13ca758b20
	* src/gpg-error.h.in (log_assert): New macro.

2017-11-22  Werner Koch  <wk@gnupg.org>

	core: Do not use the estream_t alias in gpg-error.h.
	+ commit e0ef8126c20216f79b7ad147c103bb2cf2790c59
	* src/gpg-error.h.in: Use gpgrt_stream_t in prototypes.

2017-11-17  Werner Koch  <wk@gnupg.org>

	w32: Avoid unused code warning.
	+ commit a950326d20990fa33cee637d5b54d708fff585b2
	* src/w32-estream.c (_gpgrt_w32_poll) [!ENABLE_TRACING]: Do not use
	waitinfo.

	w32: Add new API fucntion gpgrt_w32_reg_query_string.
	+ commit b5c4a2721d7b4bd54705c53e6f294ab2ef66a6f7
	* src/w32-reg.c: New.
	* src/w32-add.h: Add gpgrt_w32_reg_query_string.
	* src/visibility.c (gpgrt_w32_reg_query_string): New wrapper.
	* src/gpg-error.def.in: Add gpgrt_w32_reg_query_string.
	* configure.ac (ac_check_funcs): Add stpcpy.
	* src/Makefile.am (arch_sources): Add w32-reg.c
	(socklibs): New.
	(libgpg_error_la_LIBADD): Add socklibs.
	* src/gpgrt-int.h (xfree, xtrymalloc, xtrycalloc)
	(xtryrealloc): New internal macros.
	(_gpgrt_stpcpy, stpcpy): New replacement fucntion and macro.
	* src/logging.c (_gpgrt_logv_internal): Use new registry query
	function and add standard registry key.

	core: New API functions gpgrt_strdup and gpgrt_strconcat.
	+ commit 0d8d46c76a32176be440b062d2501bbb044fb99d
	* src/visibility.c (gpgrt_strdup): New API fucntion.
	(gpgrt_strconcat): New API fucntion.
	* src/visibility.h: Add corresponding macros.
	* src/gpg-error.def.in: Add them.
	* src/gpg-error.vers: Add them.
	* src/gpgrt-int.h (DIM): New macro.
	* src/init.c (_gpgrt_strdup): New.
	(_gpgrt_strconcat_core): New.
	(_gpgrt_strconcat): New.

	core: New API functions gpgrt_malloc, gpgrt_calloc, and gpgrt_realloc.
	+ commit 80c18e1b212cc91946864db7a53da50e9f91b861
	* src/visibility.c (gpgrt_realloc): New API function.
	(gpgrt_malloc): New API function.
	(gpgrt_calloc): New API function.
	* src/visibility.h: Add corresponding macros.
	* src/gpg-error.def.in: Add them.
	* src/gpg-error.vers: Add them.
	* src/init.c (_gpgrt_calloc): New.
	* src/gpg-error.h.in: Add prototypes.

	core: Add logging API.
	+ commit 1b653e7f37e2eb2a8f590a43651eb8aecbe8756e
	* src/visibility.c (gpgrt_get_errorcount): New API.
	(gpgrt_inc_errorcount): New API.
	(gpgrt_log_set_sink): New API.
	(gpgrt_log_set_socket_dir_cb): New API.
	(gpgrt_log_set_pid_suffix_cb): New API.
	(gpgrt_log_set_prefix): New API.
	(gpgrt_log_get_prefix): New API.
	(gpgrt_log_test_fd): New API.
	(gpgrt_log_get_fd): New API.
	(gpgrt_log_get_stream): New API.
	(gpgrt_log): New API.
	(gpgrt_logv): New API.
	(gpgrt_logv_prefix): New API.
	(gpgrt_log_string): New API.
	(gpgrt_log_info): New API.
	(gpgrt_log_error): New API.
	(gpgrt_log_fatal): New API.
	(gpgrt_log_bug): New API.
	(gpgrt_log_debug): New API.
	(gpgrt_log_debug_string): New API.
	(gpgrt_log_printf): New API.
	(gpgrt_log_flush): New API.
	(gpgrt_log_printhex): New API.
	(gpgrt_log_clock): New API.
	(_gpgrt_log_assert): New function for the ABI.
	* src/visibility.h: Add corresponding macros.
	* src/gpg-error.def.in: Add new functions.
	* src/gpg-error.vers: Add new functions.
	* src/gpg-error.h.in (GPGRT_LOG_WITH_PREFIX): New constant.
	(GPGRT_LOG_WITH_TIME): New constant.
	(GPGRT_LOG_WITH_PID): New constant.
	(GPGRT_LOG_RUN_DETACHED): New constant.
	(GPGRT_LOG_NO_REGISTRY): New constant.
	(GPGRT_LOG_BEGIN): New enum value.
	(GPGRT_LOG_CONT): New enum value.
	(GPGRT_LOG_INFO): New enum value.
	(GPGRT_LOG_WARN): New enum value.
	(GPGRT_LOG_ERROR): New enum value.
	(GPGRT_LOG_FATAL): New enum value.
	(GPGRT_LOG_BUG): New enum value.
	(GPGRT_LOG_DEBUG): New enum value.
	(log_get_errorcount, log_inc_errorcount, log_set_file, log_set_fd)
	(log_set_stream, log_set_socket_dir_cb, log_set_pid_suffix_cb)
	(log_set_prefix, log_get_prefix, log_test_fd, log_get_fd)
	(log_get_stream, log_log, log_logv, log_logv_prefix, log_string)
	(log_bug, log_fatal, log_error, log_info, log_debug, log_debug_string)
	(log_printf, log_printhex, log_clock)
	(log_flush) [GPGRT_ENABLE_LOG_MACROS]: New wrapper macros.
	(gpgrt_assert): New macro.
	* src/gpgrt-int.h: Add prototypes for logging.c.
	(gpgrt_assert): Redefine for internal use.
	* src/logging.h: Remove.
	* src/logging.c: Include gpgrt-int.h instead of the stuff from GnuPG.
	Use _gpgrt malloc funcsions and the internal versions of the estream
	functions.  Rename all public fucntions with a _gpgrt_ prefix.
	(print_prefix): Return the printed length.
	(_gpgrt_logv_internal): Ditto.
	(_gpgrt_log_printhex): Change order of args and turn into a printf
	like function.
	(_gpgrt_logv_printhex): New. Take the core of the former
	log_printhex.
	(_gpgrt_log_clock): Turn into a printf like functions.
	(_gpgrt_logv_clock): New.  Take the core of the former log_clock.

	New configure options and macros for internal use.
	+ commit 9c904765c9b2b75e73b196b381470f0fb2f3b458
	* configure.ac: Add option --enable-log-clock.
	* configure.ac: Add option --enable-werror.
	* src/sysutils.c: New.
	* src/Makefile.am (libgpg_error_la_SOURCES): Add sysutils.c
	* src/gpgrt-int.h: Add internal i18n macros and hacks to make working
	with sockets easier.
	(es_stdin, es_stdout, es_stderr): New internal macros.
	(snprintf): New macro.

2017-10-05  Werner Koch  <wk@gnupg.org>

	gpgscm: Add required configure checks.
	+ commit 7c48edad2c782f416854eaa5c03bcf546d68eae2
	* configure.ac: Add new checks.
	* m4/readline.m4: New.  Taken from gnupg.
	* m4/Makefile.am (EXTRA_DIST): Add it.

2017-08-21  Justus Winter  <justus@g10code.com>

	gpgscm: Fix -Wimplicit-fallthrough warnings.
	+ commit dda5fb3474a81047e5bd52a194640fb44e1d60ab
	* tests/gpgscm/scheme.c (CASE): Rearrange so that the case statement
	is at the front.
	(Eval_Cycle): Improve fallthrough annotations.

2017-08-08  Werner Koch  <wk@gnupg.org>

	build: New configure option --enable-all-tests.
	+ commit 3aa37d802ac10a38414a8cfe120de92a76968836
	* configure.ac: New option --enable-all-tests.
	* tests/gpgscm/ffi.c (ffi_init): New gloabl var *run-all-tests*.
	* tests/openpgp/all-tests.scm (all-tests): Use that var instead
	of *maintainer-mode*.
	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add --enable-all-tests.

	gpgscm: Make the test summary stand out.
	+ commit c2fbc80c643db372f16aed100393cd2d4de46979
	* tests/gpgscm/tests.scm (test-pool): Add delimiter lines.

2017-08-07  Justus Winter  <justus@g10code.com>

	tests: Do not run all tests unless in maintainer mode.
	+ commit d230224c38dd4b31348f7a1ad24be9e27935dc80
	* configure.ac: Leak the maintainer mode flag into 'config.h'.
	* tests/gpgscm/ffi.c: Pass it into the scheme environment.
	* tests/openpgp/all-tests.scm: Only run tests against non-default
	configurations (keyring, extended-key-format) in maintainer mode.

2017-07-18  Justus Winter  <justus@g10code.com>

	gpgscm,w32: Fix testing for absolute paths.
	+ commit c4230af0e62d7c8812eaedf4e6451a6288ff5769
	* tests/gpgscm/main.c (path_absolute_p): New function.
	(load): Use new function.

2017-07-14  Justus Winter  <justus@g10code.com>

	gpgscm: Library improvements.
	+ commit a4dbace8c1d771bed5783aadf87a8075454e5a35
	* tests/gpgscm/repl.scm (prompt-yes-no?): New function.
	* tests/gpgscm/tests.scm (pathsep-split): Likewise.
	(pathsep-join): Likewise.
	(with-path): Use the new function.

	gpgscm: Fail early if the test setup fails.
	+ commit c67386dcd95dd6a451b861e178503b29a7b13502
	* tests/gpgscm/tests.scm (make-environment-cache): Check status code
	of setup script.

2017-07-13  Justus Winter  <justus@g10code.com>

	gpgscm: Make loading of modules less verbose.
	+ commit 8377569cae0764fd44701d67626b4c96f0bd8804
	* tests/gpgscm/main.c (load): Increase logging threshold.

	gpgscm: Make it impossible to catch '*interpreter-exit*'.
	+ commit ba3164673676468472ae37f32c3964d231e8a8f8
	* tests/gpgscm/init.scm (throw'): Make it impossible to catch
	'*interpreter-exit*'.  This fixes 'exit' (and with it 'fail') inside
	'catch' statements.

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

	syscfg: Add lock-obj-pub file for ia64-unknown-linux-gnu.
	+ commit 0f5c3f67946fb5389df5b9963e6976b462bf5726
	* src/syscfg/lock-obj-pub.ia64-unknown-linux-gnu.h: new.
	* src/Makefile.am (lock_obj_pub): Add it.

	yat2m: Use version from libgpg-error.
	+ commit 0148ea8d5acde2ad5d0376fb7eaa2221e88f258a
	* doc/yat2m.c (VERSION): Define as PACKAGE_VERSION.
	* doc/Makefile.am (yat2m): Pass PACKAGE_VERSION with -D.

	build: Install yat2m.
	+ commit d81b1379edbc6007a89c3b2fff1b51c8dfe2e868
	* doc/Makefile.am (install-exec-hook): New.
	(uninstall-local): Uninstall yat2m.

	yat2m: Take care of SOURCE_DATE_EPOCH.
	+ commit 5494a5728418938d2e42158bb646b07124184e64
	* doc/yat2m.c (main): Set a default for OPT_DATE.

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

	doc: minor fix for @xref.
	+ commit 187e2ad24fb92210587beb779a1cc746821a169c
	* doc/yat2m.c (proc_texi_cmd): Captalize "see" for xref.

2017-07-05  Justus Winter  <justus@g10code.com>

	doc: Implement simple '@ref'erences.
	+ commit 55d560358f7ee4a8b68f98e051021a05d4c0bb1f
	* doc/yat2m.c (proc_texi_cmd): Handle '@ref'.

2017-06-19  Justus Winter  <justus@g10code.com>

	gpgscm: Limit the number of parallel jobs.
	+ commit 895ae4c6b1bd2fd9758d9c2835d9a3881e57a85a
	* ffi.c (do_wait_processes): Suppress the timeout error.
	* tests.scm (semaphore): New definition.
	(test-pool): Only run a bounded number of tests in parallel.
	(test::started?): New function.
	(run-tests-parallel): Do not report results, do not start the tests.
	(run-tests-sequential): Adapt.
	(run-tests): Parse the number of parallel jobs.

	gpgscm: Improve option parsing.
	+ commit b4628b4a23d7e8b55ef3f17d79ca86ae77cbc685
	* tests/gpgscm/tests.scm (flag): Accept arguments of the form
	'--foo=bar'.

	gpgscm: Improve error handling of foreign functions.
	+ commit f8934d091a274685c1b2a303ac2772adddd303c6
	* tests/gpgscm/ffi.scm (ffi-fail): Do not needlessly join the error
	message.

	gpgscm: Improve error reporting.
	+ commit f57405bea31bac1e3c8e4353aea9bb3cede1b90c
	* tests/gpgscm/init.scm (throw'): Guard against 'args' being atomic.
	* tests/gpgscm/scheme.c (Eval_Cycle): Remove any superfluous colons in
	error messages.

2017-05-31  Justus Winter  <justus@g10code.com>

	Align 'es_poll' semantics closer with POSIX.
	+ commit 4a9857a2b6d8a8e847638416d35398508b3291fd
	* src/estream.c (_gpgrt_poll): Do not return early if some streams are
	found to be ready before even polling the others.

	build: Prepend the maintainer CFLAGS.
	+ commit df1d61d5c84d984fb2d2a6f1b69c57878decf13e
	* configure.ac: Prepend the maintainer CFLAGS making it possible to
	override e.g. the optimization level for debugging.

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

	Fix memory leak for estream.
	+ commit 1e7203515be0b030709109e9da621642dfa20312
	* src/estream.c (do_list_remove): Free the item.
	(do_close): Free the buffer.

2017-05-17  Justus Winter  <justus@g10code.com>

	gpgscm: Fix checking for opcode arguments.
	+ commit d2747ce24d445ae7ef3ec4ed0cca2f30aa833e7c
	* tests/gpgscm/scheme.c (Eval_Cycle): Update 'pcd' after dispatching
	an instruction.

2017-05-11  Justus Winter  <justus@g10code.com>

	tests: Make it possible to run all tests using our infrastructure.
	+ commit 4bc110e219b13d551c0c6c9987b7602e44715032
	* Makefile.am (TESTS_ENVIRONMENT): New variable.
	(check-all): New phony target to run all tests.
	* tests/gpgme/gpgme-defs.scm (have-gpgme?): New function that tests
	whether the GPGME test suite is available instead of exiting the
	process.
	* tests/gpgscm/init.scm (export): New macro.
	* tests/gpgscm/tests.scm (run-tests): New function.
	(load-tests): Likewise.
	* tests/gpgme/run-tests.scm: Simplify and move the parsing of the list
	of tests to 'all-tests.scm'.
	* tests/gpgsm/run-tests.scm: Likewise.
	* tests/migrations/run-tests.scm: Likewise.
	* tests/openpgp/run-tests.scm: Likewise.
	* tests/gpgme/Makefile.am: To select the tests to run, use the
	variable 'TESTS'.  This harmonizes the interface with the automake
	test suite.
	* tests/gpgsm/Makefile.am: Likewise.
	* tests/migrations/Makefile.am: Likewise.
	* tests/openpgp/Makefile.am: Likewise.
	* tests/openpgp/README: Likewise.
	* agent/all-tests.scm: New file.
	* common/all-tests.scm: Likewise.
	* g10/all-tests.scm: Likewise.
	* g13/all-tests.scm: Likewise.
	* tests/gpgme/all-tests.scm: Likewise.
	* tests/gpgsm/all-tests.scm: Likewise.
	* tests/migrations/all-tests.scm: Likewise.
	* tests/openpgp/all-tests.scm: Likewise.
	* tests/run-tests.scm: Likewise.

	tests: Move the makefile parser.
	+ commit 197404aae66c688d004337c0aefe153ef6b10f87
	* tests/gpgme/gpgme-defs.scm (parse-makefile, parse-makefile-expand):
	Move...
	* tests/gpgscm/makefile.scm: ... here.
	* tests/gpgscm/Makefile.am (EXTRA_DIST): Add new file.

	gpgscm: Make it possible to set the logfile name.
	+ commit dd48994b0c99a4099f49ccd437a08ddff39af8a2
	* tests/gpgscm/tests.scm (test): Only set the default log filename
	when it has not been set before.

2017-05-04  Justus Winter  <justus@g10code.com>

	tests: Support tests that are expected to fail.
	+ commit 212a0febf8bbaf735ae2e65722f39a47a1c5b122
	* tests/gpgscm/tests.scm (test-pool): Rework reporting.  Filter using
	the computed test status instead of the return value.  Also print the
	new categories 'failed expectedly' and 'passed unexpectedly'.
	(test): If a test ends with a bang (!), it is expected to fail.  Adapt
	status, status-string, and xml accordingly.

2017-05-03  Justus Winter  <justus@g10code.com>

	gpgscm: Create and re-use frame objects.
	+ commit 272b0ad65ec4c6023d4b5a4fb2f003ada432b6e5
	* tests/gpgscm/scheme-private.h (struct scheme): New field
	'frame_freelist'.
	* tests/gpgscm/scheme.c (enum scheme_types): New type 'T_FRAME'.
	(type_to_string): Handle new type.
	(settype): New macro.
	(gc_disable): Make sure there is at least one frame in the free list.
	(mark): Handle frame objects.
	(finalize_cell): Likewise.
	(dump_stack_initialize): Initialize free list.
	(dump_stack_free): Simplify.
	(frame_length): New variable.
	(dump_stack_make_frame): New function.
	(frame_slots): Likewise.
	(frame_payload): New macro.
	(dump_stack_allocate_frame): New function.
	(dump_stack_deallocate_frame): Likewise.
	(dump_stack_preallocate_frame): Likewise.
	(_s_return): Unpack frame object and deallocate it.
	(s_save): Wrap state in an frame object.
	(dump_stack_mark): Mark the free list.

	gpgscm: Merge opexe_0.
	+ commit df499c6ee5edf0a560138640141a3abef360b4f5
	* tests/gpgscm/scheme-private.h (struct scheme): Remove field 'op'.
	* tests/gpgscm/scheme.c (opexe_0): Inline into 'Eval_Cycle'.
	(_Error_1): Return the opcode to evaluate next.
	(Error_1): Do not return, but set the opcode and goto dispatch.
	(Error_0): Likewise.
	(s_goto): Likewise.
	(s_return): Likewise.
	(s_return_enable_gc): Likewise.
	(s_thread_to): Remove superfluous cast.
	(_s_return): Return the opcode to evaluate next.
	(scheme_init_custom_alloc): Adapt to removal of field 'op'.

2017-04-24  Justus Winter  <justus@g10code.com>

	gpgscm: Refactor cell finalization.
	+ commit 36e266a5cbb78560d32bc33f18f9041db1ff5080
	* tests/gpgscm/scheme.c (finalize_cell): Use switch, return whether
	the cell may be freed.
	(gc): Update callsite.

	gpgscm: Tweak error message display.
	+ commit e8c896c7f9aabad6e1387f538accb54ac6b2b1cc
	* tests/gpgscm/init.scm (throw'): If the first argument to the error
	is a string, display it as such.

	gpgscm: Fix test.
	+ commit b67d1a3f36f2b15fb75de613942668b71cad1bd7
	* tests/gpgscm/t-child.scm: Use 'string-length' on the string.

	gpgscm: Improve syntax checking.
	+ commit 008894eff46724d60a24879d319b427606fcafd1
	* tests/gpgscm/scheme.c (opexe_0): Make sure closure arguments are
	symbols.

	gpgscm: Emit JUnit-style XML reports.
	+ commit 5dc43e579ef4340c668fa7e294f5a69fef9d622e
	* tests/gpgscm/Makefile.am (EXTRA_DIST): Add new file.
	* tests/gpgscm/lib.scm (string-translate): New function.
	* tests/gpgscm/main.c (main): Load new file.
	* tests/gpgscm/tests.scm (dirname): New function.
	(test-pool): Record execution times, emit XML report.
	(test): Record execution times, record log file name, emit XML report.
	(run-tests-parallel): Write XML report.
	(run-tests-sequential): Likewise.
	* tests/gpgscm/xml.scm: New file.
	* tests/gpgme/Makefile.am (CLEANFILES): Add 'report.xml'.
	* tests/gpgsm/Makefile.am: Likewise.
	* tests/migrations/Makefile.am: Likewise.
	* tests/openpgp/Makefile.am: Likewise.

	gpgscm: Make logging less verbose and more useful.
	+ commit a3e51fab6b30774959dc7d4d3409000fdbe1f7b3
	* tests/gpgscm/tests.scm (call-with-io): When being verbose, include
	the pid in the output, and avoid duplicating the command arguments.

	gpgscm: Make test framework less functional.
	+ commit aa843dbcd32c65eeac8c7c3cea4efb3ed7a94a0c
	* tests/gpgscm/tests.scm (test-pool, tests): Previously, these methods
	updated objects by creating new updated copies of the object being
	manipulated.  This made the code awkward without any benefit,
	therefore I change it to just update the object.

	gpgscm: Move 'trace' and 'stringify'.
	+ commit 763bd518b27d4e125fa3dce64417ae2aca2101d4
	* tests/gpgscm/tests.scm (trace, stringify): Move...
	* tests/gpgscm/lib.scm: ... here.

	gpgscm: Avoid fruitless garbage collection cycles.
	+ commit 8bda9387d5be9193fd0f484fd1272367a7422389
	* tests/gpgscm/scheme-private.h (CELL_MINRECOVER): New macro.
	* tests/gpgscm/scheme.c (_get_cell): Move the heuristic to get more
	cells...
	(gc): ... here where every caller benefits from the optimization.

2017-04-19  NIIBE Yutaka  <gniibe@fsij.org>

	Minor clean up.
	+ commit a8d267a7220399f7acf69723fe1d31efd2160319
	* src/b64dec.c (_gpgrt_b64dec_proc): Add a comment.
	* src/estream.c (_gpgrt_fread, _gpgrt_fwrite): Use &&.
	* src/mkheader.c (xstrdup): Use memcpy as we know length.

2017-04-12  NIIBE Yutaka  <gniibe@fsij.org>

	gpgscm: Fix test program.
	+ commit e71c0d39d2fb896df85949a61811e3b19fd050d7
	* tests/gpgscm/t-child.c (main): Fix for setmode.

2017-04-11  Justus Winter  <justus@g10code.com>

	tests: Fix distcheck.
	+ commit b03bcee96fc4eb950c6ae38fd8b5af831b281f02
	* tests/gpgscm/Makefile.am (EXTRA_DIST): Add 'gnupg.scm'.

	tests: Move common functionality.
	+ commit d9dd8135ec6e1a4b7a66bc385714b8c1beba3e96
	* tests/openpgp/defs.scm (with-home-directory,
	with-ephemeral-home-directory): Move...
	* tests/gpgscm/gnupg.scm: ... to this new file.
	* tests/gpgscm/main.c (main): Load the new file.

2017-04-10  Justus Winter  <justus@g10code.com>

	gpgscm: Fix opcode dispatch.
	+ commit afb7060de5c55976d08e0692fbffd0cc108914a0
	* tests/gpgscm/scheme.c (opexe_0): Consider 'op', not 'sc->op'.  The
	former is the opcode we are currently executing.

	gpgscm: Mmap script files.
	+ commit ef41f332cba624e9bca6100ebacd4fffe4e61679
	* tests/gpgscm/main.c (load): Try to mmap the script.
	* tests/gpgscm/scheme.c (scheme_load_memory): New function, a
	generalization of 'scheme_load_string'.
	* tests/gpgscm/scheme.h (scheme_load_memory): New prototype.

	gpgscm: Refactor checking for opcode arguments.
	+ commit 6c9de8ff59a9c637de944706533421dc4cf20708
	* tests/gpgscm/scheme.c (op_code_info): Fix type, add forward
	declaration.
	(check_arguments): New function.
	(Eval_cycle): Use the new function.

	gpgscm: Improve syntax dispatch.
	+ commit 173531921d133a007d30c32cec00546749d8cfbf
	* tests/gpgscm/scheme.c (assign_syntax): Add opcode parameter, store
	opcode in the tag.
	(syntaxnum): Add sc parameter, retrieve opcode from tag.
	(opexe_0): Adapt callsite.
	(scheme_init_custom_alloc): Likewise.

	gpgscm: Make tags mandatory.
	+ commit d6c83fbb06abc99de696b3f9a0b1cb962fa05b26
	* tests/gpgscm/opdefines.h: Make tags mandatory.
	* tests/gpgscm/scheme.c: Likewise.
	* tests/gpgscm/scheme.h: Likewise.

	gpgscm: Add and use opcode for reversing a list in place.
	+ commit be78c20cdd93ed295bfee1aef1e9d2e9253b779c
	* tests/gpgscm/lib.scm (string-split-pln): Use 'reverse!'.
	(string-rtrim): Likewise.
	* tests/gpgscm/opdefines.h (reverse!): New opcode.
	* tests/gpgscm/scheme.c (opexe_0): Handle new opcode.

	gpgscm: Deduplicate code.
	+ commit 8a2d1706e5d4b3d33ff349838f0c51631e32a2ce
	* tests/gpgscm/scheme.c (oblist_add_by_name): Deduplicate.
	(new_slot_spec_in_env): Likewise.

	gpgscm: Move dispatch table into rodata.
	+ commit 5aeeb5af96dce901a8b21613e33baed8b9331692
	* tests/gpgscm/opdefines.h: Use 0 instead of NULL.
	* tests/gpgscm/scheme.c (op_code_info): Use char arrays instead of
	pointers, make arity parameters smaller.
	(INF_ARG): Adapt.
	(_OP_DEF): Likewise.
	(dispatch_table): Likewise.
	(procname): Likewise.
	(Eval_cycle): Likewise.
	(scheme_init_custom_alloc): Likewise.

	gpgscm: Use more threaded code.
	+ commit 49c22bd71892f47835d9e03f3bd3122a1f0b8faa
	* tests/gpgscm/scheme.c (opexe_0): Use 's_thread_to' instead of
	's_goto' wherever possible.

	gpgscm: Remove now obsolete dispatcher function from the opcodes.
	+ commit 6d99d2f287aa40d8add81ce892026dfe05768fd4
	* tests/gpgscm/opdefines.h: Remove now obsolete dispatcher function
	from the opcodes.
	* tests/gpgscm/scheme-private.h (_OP_DEF): Adapt.
	* tests/gpgscm/scheme.c (dispatch_func): Remove type declaration.
	(op_code_info): Remove 'func'.
	(_OP_DEF): Adapt.
	(Eval_Cycle): Always call 'opexe_0'.

	gpgscm: Merge 'opexe_6'.
	+ commit c183d8f4c6cdf6b48265f01e4c007895f2626fc5
	* tests/gpgscm/scheme.c (opexe_6): Merge into 'opexe_0'.
	* tests/gpgscm/opdefines.h: Adapt.

	gpgscm: Merge 'opexe_5'.
	+ commit 72674f169386d68a6d0fc2ba4bc5a065435802a0
	* tests/gpgscm/scheme.c (opexe_5): Merge into 'opexe_0'.
	* tests/gpgscm/opdefines.h: Adapt.

	gpgscm: Merge 'opexe_4'.
	+ commit 5898ead4a99d3bc9e23859daf2cca9632d92f1f7
	* tests/gpgscm/scheme.c (opexe_4): Merge into 'opexe_0'.
	* tests/gpgscm/opdefines.h: Adapt.

	gpgscm: Merge 'opexe_3'.
	+ commit b13610ec7bf2bf199eb22f936bc2f2d4ac240fde
	* tests/gpgscm/scheme.c (opexe_3): Merge into 'opexe_0'.
	* tests/gpgscm/opdefines.h: Adapt.

	gpgscm: Merge 'opexe_2'.
	+ commit 7bc96831c7156fa07cfd55259f309ca4fa676c2e
	* tests/gpgscm/scheme.c (opexe_2): Merge into 'opexe_0'.
	* tests/gpgscm/opdefines.h: Adapt.

	gpgscm: Merge 'opexe_1'.
	+ commit 19a1be5ac3c9f3e26c453cf2ddc6d88af19e2d43
	* tests/gpgscm/scheme.c (opexe_1): Merge into 'opexe_0'.
	* tests/gpgscm/opdefines.h: Adapt.

2017-04-07  Justus Winter  <justus@g10code.com>

	gpgscm: Allocate small integers in the rodata section.
	+ commit 7cee693e31fa1196161d5fbe7149a176049735ac
	* tests/gpgscm/Makefile.am (gpgscm_SOURCES): Add new file.
	* tests/gpgscm/scheme-private.h (struct cell): Move number to the top
	of the union so that we can initialize it.
	(struct scheme): Remove 'integer_segment'.
	* tests/gpgscm/scheme.c (initialize_small_integers): Remove function.
	(small_integers): New variable.
	(MAX_SMALL_INTEGER): Compute.
	(mk_small_integer): Adapt.
	(mark): Avoid marking objects already marked.  This allows us to run
	the algorithm over objects in the rodata section if they are already
	marked.
	(scheme_init_custom_alloc): Remove initialization.
	(scheme_deinit): Remove deallocation.
	* tests/gpgscm/small-integers.h: New file.

	gpgscm: Make global data constant when possible.
	+ commit 9fc4e6cbe6d5d3f2dd1c61ded15e2ad42f8f9460
	* tests/gpgscm/scheme-private.h (struct scheme): Make 'vptr' const.
	* tests/gpgscm/scheme.c (num_zero): Statically initialize and turn
	into constant.
	(num_one): Likewise.
	(charnames): Change type so that it can be stored in rodata.
	(is_ascii_name): Adapt slightly.
	(assign_proc): Make argument const char *.
	(op_code_info): Make some fields const char *.
	(tests): Make const.
	(dispatch_table): Make const.  At least it can be made read-only after
	relocation.
	(Eval_Cycle): Adapt slightly.
	(vtbl): Make const.

	gpgscm: Remove arbitrary limit on number of cell segments.
	+ commit 961f3b3a3001384d5df1d5a9963c5f67f800cd4d
	* tests/gpgscm/scheme-private.h (struct scheme): Remove fixed-size
	arrays for cell segments, replace them with a pointer to the new
	'struct cell_segment' instead.
	* tests/gpgscm/scheme.c (struct cell_segment): New definition.
	(_alloc_cellseg): Allocate the header within the segment, return a
	pointer to the header.
	(_dealloc_cellseg): New function.
	(alloc_cellseg): Insert the segments into a list.
	(_get_cell): Allocate a new segment if less than a quarter of
	CELL_SIGSIZE is recovered during garbage collection.
	(initialize_small_integers): Adapt callsite.
	(gc): Walk the list of segments.
	(scheme_init_custom_alloc): Remove initialization of removed field.
	(scheme_deinit): Adapt deallocation.

	gpgscm: Fix compact vector encoding.
	+ commit a493ad44b6a67026aeae08d25575fee8c0f137b4
	* tests/gpgscm/scheme-private.h (struct cell): Use uintptr_t for
	'_flags'.  This way, '_flags' has the size of a machine word.

2017-04-06  Justus Winter  <justus@g10code.com>

	gpgscm: Avoid mutating integer.
	+ commit 00de0fd1cebd89330765470bbb6e1e8bf5f3dfc9
	* tests/gpgscm/scheme.c (opexe_5): Do not modify the integer in-place
	while printing an vector.  Integer objects may be shared, so they must
	not be mutated.

	gpgscm: Initialize unused slots in vectors.
	+ commit 54ea82c2e7e5700b9644c663142c2d46441a3f4e
