aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* gpg-error-config: Don't use local variables.NIIBE Yutaka2018-09-201-136/+137
| | | | | | | | | | | | * src/gpg-error-config-new.in: Use global variables only. -- Since Korn Shell requires different syntax for function to declare local variables, and some OS use Korn Shell as /bin/sh, avoid non-portable use of "local". Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Avoid more space char.NIIBE Yutaka2018-09-201-5/+5
| | | | | | * src/gpg-error-config-new.in: Don't put more space. Signed-off-by: NIIBE Yutaka <[email protected]>
* src: Fix Makefile for BSD make.NIIBE Yutaka2018-09-191-3/+6
| | | | | | | | | | | | | | * src/Makefile.am (BUILT_SOURCES): Add srcdir to err-sources.h and err-codes.h. (CLEANFILES): Move err-sources.h and err-codes.h to... (MAINTAINERCLEANFILES): ... this new target. (gpg_error_LDADD): Remove ./ to generate libgpg-error.la. -- BSD make is not kind enough to mix path and target. Signed-off-by: NIIBE Yutaka <[email protected]>
* Accept pkgconf difference for spaces.NIIBE Yutaka2018-09-191-3/+3
| | | | | | | | | | | | | | * src/gpg-error-config-test.sh (OUTPUT_OLD): Use shell and echo to remove spaces. -- There is an alternative implementation of pkg-conf, named pkgconf. It emits an extra space at the end. Tested on FreeBSD 11.1. Signed-off-by: NIIBE Yutaka <[email protected]>
* syscfg: Support ARC CPUs and simplify aliasing table.Werner Koch2018-09-1810-23/+85
| | | | | | | | | | | | | | | | | | | * src/mkheader.c (xmalloc): New. (xstrdup): Implement using xmalloc. (canon_host_triplet): Add supporr for arc CPU. Adjust alias table to also alias *-pc-*. Rename ibm to unknown. Add internal arg. Add unknown vendor hack. (main): New mode to just print the canonicalized form. * src/Makefile.am (lock_obj_pub): s/-(pc|ibm)-/-unknown/. Also rename files accordingly. -- config.sub does no real aliasing and thus we would need to add several vendors to the alising tables despite that this has no technical meanding. Instead we now replace the vendor with "unknown" for the 4-part-"triplets". This change will make maintenace easier. Signed-off-by: Werner Koch <[email protected]>
* Make gpg-error-config compatible to pkg-config.NIIBE Yutaka2018-09-115-4/+665
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (AC_CONFIG_FILES): Generate src/gpg-error.pc, as well as src/gpg-error-config-old and src/gpg-error-config-new. * src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New. (EXTRA_DIST): Add gpg-error-config-new.in, gpg-error-config-test.sh, and gpg-error.pc.in. (CLEANFILES): Add gpg-error-config gpg-error-config-test.log. (TESTS): New. (gpg-error-config): New target. * src/gpg-error-config-new.in: New. * src/gpg-error-config-test.sh: New. * src/gpg-error.pc.in: New. * src/gpg-error.m4 (GPG_ERROR_MT_CFLAGS): Use --variable. (GPG_ERROR_MT_LIBS, gpg_error_config_host): Likewise. -- This change is to privide gpg-error.pc for pkg-config, so that developers can use pkg-config to configure their applications. The gpg-error-config script is also kept supported for applications which want to avoid dependency of pkg-config. Note that new gpg-error-config script uses gpg-error.pc as master data, so that it can keep compatibility to pkg-config easily. In the new gpg-error-config script, features are added to increase compatibility to pkg-config, like --variable option and multiple module support. However, it is not meant to oriented to be a full-fledged version of pkg-config, only a small set of features is supported. To be conservative, new gpg-error-config is checked at build time against old gpg-error-config. On the host which fails, old gpg-error-config will be installed with a warning. GnuPG-bug-id: 4085 Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Forward compatibility support.NIIBE Yutaka2018-09-051-0/+10
| | | | | | * src/gpg-error-config.in: Support --variable=* option. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Determine output at configure time.NIIBE Yutaka2018-09-041-15/+0
| | | | | | | | | | | | | | * src/gpg-error-config.in (isubdirafter): Remove. Also for --cflags and --libs. * configure.ac (GPG_ERROR_CONFIG_ISUBDIRAFTER): Remove. (GPG_ERROR_CONFIG_CFLAGS): Add -idirafter gpg-extra for W32CE. (GPG_ERROR_CONFIG_CFLAGS): Decide here if adding -I$includedir. (GPG_ERROR_CONFIG_LIBS): Decide here if adding -L$libdir. -- Don't do string substitution at the time of its command invocation, but let it determine at configure time.
* build: use EXEEXT_FOR_BUILD everywhere.Michael Haubenwallner2018-07-171-13/+13
| | | | | | | * src/Makefile.am: Use EXEEXT_FOR_BUILD with all build tools. Signed-off-by: Michael Haubenwallner <[email protected]>
* estream: Always propagate flush event to cookie functions.Werner Koch2018-07-121-3/+4
| | | | | | * src/estream.c (flush_stream): Always call cookie's flush func. Signed-off-by: Werner Koch <[email protected]>
* Remove leftover debug output from gpg-error.Werner Koch2018-07-053-4/+3
| | | | | | | | | * src/gpg-error.c (main): Remove a log_debug. -- Also a few typo fixes. Signed-off-by: Werner Koch <[email protected]>
* core: Initialize values in estream_formatAndre Heinecke2018-07-051-1/+5
| | | | | | | | | | | | | | * src/estream-printf.c (_gpgrt_estream_format): Make sure valuetable.value is inialized even on stack. -- This makes the behavior more consistent with the calloc'ed codepath for more then 8 variables. It also fixes a potential crash if there were unmatched format args provided. GnuPG-Bug-Id: T4054
* core: Fix problem with C11 and stdnoreturn.h.Werner Koch2018-05-301-3/+3
| | | | | | | | | * src/gpg-error.h.in (GPGRT_ATTR_NORETURN): Use gcc specific symbol name __noreturn__. -- GnuPG-bug-id: 4002 Signed-off-by: Werner Koch <[email protected]>
* core,w32: Avoid recursive use of npth_unprotect.Werner Koch2018-05-012-3/+15
| | | | | | | | | | | | | | | | | | | | * src/w32-estream.c (reader): Use standard free. (writer): Ditto. -- There are two errors: The minor one is that we allocated with calloc but released with _gpgrt_free. The major one is the recursive use of npth_unprotect due to the syscall_clamp mechanism: 1. Around the call to _gpgrt_w32_poll 2. By gpgrt_lock_lock on behalf of a the custom allocation handler in the worker threads at their _gpgrt_free. This problem was exhibited by GnuPG's dirmngr component. GnuPG-bug-id: 3937 Signed-off-by: Werner Koch <[email protected]>
* core: Fix gpgrt_poll for Windows under nPth.Werner Koch2018-04-302-0/+4
| | | | | | * src/estream.c (_gpgrt_poll) [W32]: Use syscall clamp. Signed-off-by: Werner Koch <[email protected]>
* doc: Add SPDX indentifier for the versioninfo template.Werner Koch2018-04-231-0/+1
| | | | --
* doc: Beautify comments in gpg-error.h.Werner Koch2018-04-111-74/+84
| | | | | | -- Signed-off-by: Werner Koch <[email protected]>
* core: Finalize the API for argparse.Werner Koch2018-04-112-161/+195
| | | | | | | | | | | | | | | | | | | | | | | | | * 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. -- The old ARGPARSE_end maro was a bit cumbersome and does not allow to chnage the number of internal options. Thus this somewhat larger chnage to keep the internal options out of the API. Note that with this change the internal options now also work in a option file and not just on the command line; that does not make much sense but is probably less surprising. Signed-off-by: Werner Koch <[email protected]>
* core: Remove outdated comments.Werner Koch2018-03-221-42/+0
| | | | --
* core: Add Base-64 encoder.Werner Koch2018-03-229-162/+184
| | | | | | | | | | | | | | | | | | | | | | | * 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. -- Signed-off-by: Werner Koch <[email protected]>
* core: Add file b64enc.c from gnupgWerner Koch2018-03-221-0/+422
| | | | | | | | | -- This is from GnuPG commit fa0ed1c7e2eee7c559026696e6b21acc882a97aa with two tabs replaced by spaces. Signed-off-by: Werner Koch <[email protected]>
* tools: Use gpgrt_argparse for the gpg-error tool.Werner Koch2018-03-211-67/+60
| | | | | | | | * src/gpg-error.c (show_usage): Remove. (my_strusage): New. (main): Change to use argparse. Also use log_error. Signed-off-by: Werner Koch <[email protected]>
* core: Add public function gpgrt_usage.Werner Koch2018-03-216-5/+17
| | | | | | * src/visibility.c (gpgrt_usage): New. Signed-off-by: Werner Koch <[email protected]>
* core: Add the group of argparse functions.Werner Koch2018-03-219-573/+548
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. -- These functions are in use by GnuPG and other software for 20 years and it makes sense to have them always available instead of copying and maintaing the source in several projects. Note that there are minor changes in the API compared to GnuPG. Signed-off-by: Werner Koch <[email protected]>
* core: Import argparse code from gnupg masterWerner Koch2018-03-212-0/+1867
| | | | --
* core: Fix regression on arm64 due to invalid use of va_list.Werner Koch2018-03-181-4/+14
| | | | | | | | | | | * src/logging.c (_gpgrt_log_printhex): Provide a dummy arg instead of NULL. -- Fix Suggested-by: Jakub Wilk <[email protected]> Signed-off-by: Werner Koch <[email protected]>
* core: Fix building on W64Werner Koch2018-03-143-6/+35
| | | | | | | | | | | | | * 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'. -- Regression-due-to: 1865c0ba1769b407a3c504f1ab0a4278704a9fc1 Signed-off-by: Werner Koch <[email protected]>
* build: Update copyright notices and remove gpgscm from the release.Werner Koch2018-03-132-3/+3
| | | | | | -- Signed-off-by: Werner Koch <[email protected]>
* core: Fix regression due to not exporting the process API.Werner Koch2018-03-132-3/+4
| | | | | | | -- Fixes-commit: 0e503cae75cb1a6aa257228a65941b7630ff35d6 Signed-off-by: Werner Koch <[email protected]>
* core: Remove accidently committed time function API.Werner Koch2018-03-121-31/+0
| | | | | | -- Fixes-commit: f9a33a7f7e44a644ff4e31f7e9f1c2c1ec1f8eee
* core: Do not export the process APIWerner Koch2018-03-125-19/+25
| | | | | | | | | -- We may need to change the API and thus we better wait before publishing this new interface. Signed-off-by: Werner Koch <[email protected]>
* syscfg: Add a riscv64 architecture.NIIBE Yutaka2018-02-282-0/+26
| | | | | | | | | | * src/syscfg/lock-obj-pub.riscv64-unknown-linux-gnu.h: New. * src/Makefile.am (lock_obj_pub): Add it. -- Debian-bug-id: 891663 Co-authored-by: Karsten Merker <[email protected]> Signed-off-by: NIIBE Yutaka <[email protected]>
* doc: Typo fixes.Werner Koch2018-02-212-2/+2
| | | | --
* core: Avoid using estream_t in the public API.Werner Koch2017-12-111-4/+33
| | | | | | | | | | * src/gpg-error.h.in: Always use gpgrt_stream-t. -- estream_t can only be used if GPGRT_ENABLE_ES_MACROS is defined. Fixes-commit: 1865c0ba1769b407a3c504f1ab0a4278704a9fc1 Signed-off-by: Werner Koch <[email protected]>
* core: Rename the gpgrt_log_levels enum values.Werner Koch2017-12-083-42/+44
| | | | | | | | | | | * src/gpg-error.h.in (gprt_log_levels): Rename to GPGRT_LOGLVL. -- Explicitly naming them and not distinguishing them from the other log constants is a Good Thing anyway. It also helps against the symbol name clash with the GPGRT enum values from gnupg's logging module. Signed-off-by: Werner Koch <[email protected]>
* core: Wrap blocking system calls of the spawn functions.Werner Koch2017-11-292-10/+44
| | | | Signed-off-by: Werner Koch <[email protected]>
* core: Unify syscall_clamp functions.Werner Koch2017-11-2910-203/+138
| | | | | | | | | | | | | | | * 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. Signed-off-by: Werner Koch <[email protected]>
* core: Implement the spawn functions.Werner Koch2017-11-2910-486/+569
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. -- This does build but porting the tests and further changes are required. Don't assume that the API for the new fucntions is stable. Signed-off-by: Werner Koch <[email protected]>
* Import and relicense exechelp* functions from GnuPG.Werner Koch2017-11-293-0/+1980
| | | | | | | | | | | | | * 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. -- The original files were under (LGPL-3.0+ OR GPL-2.0+) and have entirely been written by g10 Code employees. Being the responsible person at g10 Code, I endorse the license change to LGPL-2.1. Signed-off-by: Werner Koch <[email protected]>
* core: Change new functions to return gpg_err_code_t.Werner Koch2017-11-284-39/+51
| | | | | | | | | | | | | | | | * 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. -- The functions are already a bit different and thus it is useful to let them return a gpg-error style error code and don't let the user implement that for each call. Signed-off-by: Werner Koch <[email protected]>
* core: New API functions gpgrt_mkdir, gpgrt_chdir, gpgrt_getcwd.Werner Koch2017-11-287-81/+248
| | | | | | | | | | | | | | | | | | | | | | * 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. -- The code has been taken from GnuPG. _gpgrt_mkdir was originally written by me as gnupg_mkdir and here relicensed to LGPLv2.1+. _gpgrt_getcwd was originally written by in 2007 and also here relicensed to LGPLv2.1. The new M4 macro was also written by me for use in in GnuPG; it has been taken from GnUPG's acinclude.m4, moved to its own file here, and relicensed to FSFULLR. Signed-off-by: Werner Koch <[email protected]>
* core: Prepare to build with gpgscm.Werner Koch2017-11-281-1/+1
| | | | | | | | | | | | * 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. -- Note that gpscm does not yet build. Signed-off-by: Werner Koch <[email protected]>
* core: New API functions gpgrt_getenv and gpgrt_setenv.Werner Koch2017-11-287-0/+218
| | | | | | | | | | | | | | | | | | | * 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. -- These functions are wrappers to cope with Windows problems. The code is similar to what we have in GnuPG but not identical. Requires better testing. Signed-off-by: Werner Koch <[email protected]>
* core: Install new files gpgrt.m4 and gpgrt-config.Werner Koch2017-11-273-7/+141
| | | | | | | | | | | | | | | | | | * 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. -- These files can be used instead of gpg-error-config or gpg-error.m4. The hope is that providing them early will ease an eventual migration from libgpg-error to libgpgrt easier. Signed-off-by: Werner Koch <[email protected]>
* doc: Add a comment to the Windows registry functions.Werner Koch2017-11-271-1/+5
| | | | --
* core: Avoid endless recursion if log_set_sink has not been used.Werner Koch2017-11-271-2/+3
| | | | | | | * src/logging.c (_gpgrt_log_set_sink): Do not call gf_is_valid if the default sink has been requested. Signed-off-by: Werner Koch <[email protected]>
* core: Add new macro log_assert to the API.Werner Koch2017-11-271-2/+13
| | | | | | * src/gpg-error.h.in (log_assert): New macro. Signed-off-by: Werner Koch <[email protected]>
* core: Do not use the estream_t alias in gpg-error.h.Werner Koch2017-11-221-2/+2
| | | | | | | | | * src/gpg-error.h.in: Use gpgrt_stream_t in prototypes. -- estream_t is not necessary enabled so to keep the namespace clean. Signed-off-by: Werner Koch <[email protected]>
* w32: Avoid unused code warning.Werner Koch2017-11-171-0/+8
| | | | | | | | * src/w32-estream.c (_gpgrt_w32_poll) [!ENABLE_TRACING]: Do not use waitinfo. -- Signed-off-by: Werner Koch <[email protected]>
* w32: Add new API fucntion gpgrt_w32_reg_query_string.Werner Koch2017-11-178-6/+224
| | | | | | | | | | | | | | | | | | | | | | | | * 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. -- This also fixes the build failure on Widnwos for logging.c. The code for gpgrt_w32_reg_query_string has been taken from the function read_w32_registry_string in w32-utils.c in the GPGME package. Signed-off-by: Werner Koch <[email protected]>