diff options
| author | Werner Koch <[email protected]> | 2013-12-27 15:08:20 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2013-12-27 15:08:20 +0000 | 
| commit | 02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b (patch) | |
| tree | c2286910441497fa7af0debbeca2da61f61617d0 /src/w32-util.c | |
| parent | Document API change for GPGME_EVENT_DONE from 2009. (diff) | |
| download | gpgme-02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b.tar.gz gpgme-02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b.zip  | |
Locate engine names only at runtime and prefer GnuPG-2.
* configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION)
(NEED_G13_VERSION, NEED_GPGCONF_VERSION): Remove vars and all related
checks.  Do not check for any engine version.
(HAVE_ASSUAN): Remove AM conditional.
* src/Makefile.am: Remove separate component vars and always build all
engines but uiserver.
* src/dirinfo.c (WANT_GPGCONF_NAME): New.
(struct dirinfo): Add field gpgconf_name.
(_gpgme_get_default_gpgconf_name): Use WANT_GPGCONF_NAME.
(get_gpgconf_item): Set gpgconf name and adjust for _gpgme_get_*_path
now returning a malloced string.
* src/engine.c (engine_ops): Always init all engines except for
uiserver.
* src/posix-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path):
Remove unused functions.
(walk_path): New.
(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path ): Re-implement using
walk_path.
* src/w32-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path): Remove
unused functions.
(_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Return a malloced
string.
* src/engine-g13.c (g13_get_req_version): Use a hardwired string with
the required version.  This info belongs into this file.
* src/engine-gpg.c (gpg_get_req_version): Ditto.
* src/engine-gpgconf.c (gpgconf_get_req_version): Ditto.
* src/engine-gpgsm.c (gpgsm_get_req_version): Ditto.
* tests/t-engine-info.c: Replace now useless test by an info output.
* tests/gpg/Makefile.am (GPG, GPG_AGENT): Hardwire gpg and gpg-agent.
* tests/gpgsm/Makefile.am (GPGSM): Hardwire gpgsm.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'src/w32-util.c')
| -rw-r--r-- | src/w32-util.c | 74 | 
1 files changed, 19 insertions, 55 deletions
diff --git a/src/w32-util.c b/src/w32-util.c index 4cee1cb6..31a58bbd 100644 --- a/src/w32-util.c +++ b/src/w32-util.c @@ -374,7 +374,7 @@ find_program_in_inst_dir (const char *inst_dir, const char *name)    /* If an installation directory has been passed, this overrides a       location given bu the registry.  The idea here is that we prefer -     a a program installed alongside with gpgme.  We don't want the +     a program installed alongside with gpgme.  We don't want the       registry to override this to have a better isolation of an gpgme       aware applications for other effects.  Note that the "Install       Directory" registry item has been used for ages in Gpg4win and @@ -424,72 +424,36 @@ find_program_at_standard_place (const char *name)  } -const char * +/* Return the full file name of the GPG binary.  This function is used +   if gpgconf was not found and thus it can be assumed that gpg2 is +   not installed.  This function is only called by get_gpgconf_item +   and may not be called concurrently. */ +char *  _gpgme_get_gpg_path (void)  { -  static char *gpg_program; +  char *gpg;    const char *inst_dir;    inst_dir = _gpgme_get_inst_dir (); -  LOCK (get_path_lock); -  if (!gpg_program) -    gpg_program = find_program_in_inst_dir (inst_dir, "gpg.exe"); -  if (!gpg_program) -    gpg_program = find_program_at_standard_place ("GNU\\GnuPG\\gpg.exe"); -  UNLOCK (get_path_lock); -  return gpg_program; +  gpg = find_program_in_inst_dir (inst_dir, "gpg.exe"); +  if (!gpg) +    gpg = find_program_at_standard_place ("GNU\\GnuPG\\gpg.exe"); +  return gpg;  } - -const char * -_gpgme_get_gpgsm_path (void) -{ -  static char *gpgsm_program; -  const char *inst_dir; - -  inst_dir = _gpgme_get_inst_dir (); -  LOCK (get_path_lock); -  if (!gpgsm_program) -    gpgsm_program = find_program_in_inst_dir (inst_dir, "gpgsm.exe"); -  if (!gpgsm_program) -    gpgsm_program = find_program_at_standard_place ("GNU\\GnuPG\\gpgsm.exe"); -  UNLOCK (get_path_lock); -  return gpgsm_program; -} - - -const char * +/* This function is only called by get_gpgconf_item and may not be +   called concurrently.  */ +char *  _gpgme_get_gpgconf_path (void)  { -  static char *gpgconf_program; -  const char *inst_dir; - -  inst_dir = _gpgme_get_inst_dir (); -  LOCK (get_path_lock); -  if (!gpgconf_program) -    gpgconf_program = find_program_in_inst_dir (inst_dir, "gpgconf.exe"); -  if (!gpgconf_program) -    gpgconf_program -      = find_program_at_standard_place ("GNU\\GnuPG\\gpgconf.exe"); -  UNLOCK (get_path_lock); -  return gpgconf_program; -} - - -const char * -_gpgme_get_g13_path (void) -{ -  static char *g13_program; +  char *gpgconf;    const char *inst_dir;    inst_dir = _gpgme_get_inst_dir (); -  LOCK (get_path_lock); -  if (!g13_program) -    g13_program = find_program_in_inst_dir (inst_dir, "g13.exe"); -  if (!g13_program) -    g13_program = find_program_at_standard_place ("GNU\\GnuPG\\g13.exe"); -  UNLOCK (get_path_lock); -  return g13_program; +  gpgconf = find_program_in_inst_dir (inst_dir, "gpgconf.exe"); +  if (!gpgconf) +    gpgconf = find_program_at_standard_place ("GNU\\GnuPG\\gpgconf.exe"); +  return gpgconf;  }  | 
