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/dirinfo.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 '')
| -rw-r--r-- | src/dirinfo.c | 16 | 
1 files changed, 9 insertions, 7 deletions
| diff --git a/src/dirinfo.c b/src/dirinfo.c index 27c0dd76..2e387fa1 100644 --- a/src/dirinfo.c +++ b/src/dirinfo.c @@ -38,6 +38,7 @@ enum    {      WANT_HOMEDIR,      WANT_AGENT_SOCKET, +    WANT_GPGCONF_NAME,      WANT_GPG_NAME,      WANT_GPGSM_NAME,      WANT_G13_NAME, @@ -49,6 +50,7 @@ static struct {    int  valid;         /* Cached information is valid.  */    char *homedir;    char *agent_socket; +  char *gpgconf_name;    char *gpg_name;    char *gpgsm_name;    char *g13_name; @@ -194,13 +196,14 @@ get_gpgconf_item (int what)    LOCK (dirinfo_lock);    if (!dirinfo.valid)      { -      const char *pgmname; +      char *pgmname;        pgmname = _gpgme_get_gpgconf_path ();        if (pgmname && access (pgmname, F_OK))          {            _gpgme_debug (DEBUG_INIT,                          "gpgme_dinfo: gpgconf='%s' [not installed]\n", pgmname); +          free (pgmname);            pgmname = NULL; /* Not available.  */          }        else @@ -212,12 +215,13 @@ get_gpgconf_item (int what)               GnuPG-1.  */            pgmname = _gpgme_get_gpg_path ();            if (pgmname) -            dirinfo.gpg_name = strdup (pgmname); +            dirinfo.gpg_name = pgmname;          }        else          {            read_gpgconf_dirs (pgmname, 0);            read_gpgconf_dirs (pgmname, 1); +          dirinfo.gpgconf_name = pgmname;          }        /* Even if the reading of the directories failed (e.g. due to an           too old version gpgconf or no gpgconf at all), we need to @@ -249,6 +253,7 @@ get_gpgconf_item (int what)      {      case WANT_HOMEDIR: result = dirinfo.homedir; break;      case WANT_AGENT_SOCKET: result = dirinfo.agent_socket; break; +    case WANT_GPGCONF_NAME: result = dirinfo.gpgconf_name; break;      case WANT_GPG_NAME:   result = dirinfo.gpg_name; break;      case WANT_GPGSM_NAME: result = dirinfo.gpgsm_name; break;      case WANT_G13_NAME:   result = dirinfo.g13_name; break; @@ -294,14 +299,11 @@ _gpgme_get_default_g13_name (void)    return get_gpgconf_item (WANT_G13_NAME);  } -/* Return the default gpgconf file name.  Returns NULL if not known. -   Because gpgconf is the binary used to retrieved all these default -   names, this function is merely a simple wrapper around the function -   used to locate this binary.  */ +/* Return the default gpgconf file name.  Returns NULL if not known.  */  const char *  _gpgme_get_default_gpgconf_name (void)  { -  return _gpgme_get_gpgconf_path (); +  return get_gpgconf_item (WANT_GPGCONF_NAME);  }  /* Return the default UI-server socket name.  Returns NULL if not | 
