static gboolean gs_plugin_app_source_enable (GsPlugin *plugin, GsApp *app, GCancellable *cancellable, GError **error) { GsPluginData *priv = gs_plugin_get_data (plugin); ProgressData data; g_autoptr(PkResults) results = NULL; data.app = app; data.plugin = plugin; data.ptask = NULL; /* do sync call */ gs_plugin_status_update (plugin, app, GS_PLUGIN_STATUS_WAITING); results = pk_client_repo_enable (PK_CLIENT (priv->task), gs_app_get_origin (app), TRUE, cancellable, gs_plugin_packagekit_progress_cb, &data, error); if (!gs_plugin_packagekit_results_valid (results, error)) { gs_utils_error_add_unique_id (error, app); return FALSE; } return TRUE; }
/** * pk_debuginfo_install_enable_repos: **/ static gboolean pk_debuginfo_install_enable_repos (PkDebuginfoInstallPrivate *priv, GPtrArray *array, gboolean enable, GError **error) { guint i; gboolean ret = TRUE; PkResults *results = NULL; const gchar *repo_id; GError *error_local = NULL; PkError *error_code = NULL; /* enable all debuginfo repos we found */ for (i=0; i<array->len; i++) { repo_id = g_ptr_array_index (array, i); /* enable this repo */ results = pk_client_repo_enable (priv->client, repo_id, enable, NULL, NULL, NULL, &error_local); if (results == NULL) { *error = g_error_new (1, 0, "failed to enable %s: %s", repo_id, error_local->message); g_error_free (error_local); ret = FALSE; goto out; } /* check error code */ error_code = pk_results_get_error_code (results); if (error_code != NULL) { *error = g_error_new (1, 0, "failed to enable repo: %s, %s", pk_error_enum_to_string (pk_error_get_code (error_code)), pk_error_get_details (error_code)); ret = FALSE; goto out; } g_debug ("setting %s: %i", repo_id, enable); g_object_unref (results); } out: if (error_code != NULL) g_object_unref (error_code); return ret; }