From ca63fab6b1642f1c13a44681bee0684fd64238ac Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 30 Apr 2015 11:06:24 -0400 Subject: [PATCH] repo: Initialize GPGME in instance init() Initially I had this in class_init() but there it would get invoked during introspection scanning. --- src/libostree/ostree-repo.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 262d0e9d..5bdba3c6 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -507,6 +507,15 @@ ostree_repo_class_init (OstreeRepoClass *klass) static void ostree_repo_init (OstreeRepo *self) { + static gsize gpgme_initialized; + + if (g_once_init_enter (&gpgme_initialized)) + { + gpgme_check_version (NULL); + gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL)); + g_once_init_leave (&gpgme_initialized, 1); + } + g_mutex_init (&self->cache_lock); g_mutex_init (&self->txn_stats_lock); @@ -3056,9 +3065,6 @@ sign_data (OstreeRepo *self, cancellable, error)) goto out; - gpgme_check_version (NULL); - gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL)); - if ((err = gpgme_new (&context)) != GPG_ERR_NO_ERROR) { ot_gpgme_error_to_gio_error (err, error);