static gboolean pk_backend_repo_enable_thread (PkBackend *self) { const gchar *repo; GError *error = NULL; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (disabled != NULL, FALSE); repo = pk_backend_get_string (self, "repo_id"); g_return_val_if_fail (repo != NULL, FALSE); if (g_hash_table_remove (disabled, repo)) { /* reload configuration to preserve ordering */ if (disabled_repos_configure (disabled, TRUE, &error)) { pk_backend_repo_list_changed (self); } } else { int code = ALPM_ERR_DB_NOT_NULL; g_set_error (&error, ALPM_ERROR, code, "[%s]: %s", repo, alpm_strerror (code)); } if (error != NULL) { pk_backend_error (self, error); g_error_free (error); } pk_backend_thread_finished (self); return (error == NULL); }
gboolean pk_backend_enable_signatures (PkBackend *self, GError **error) { g_return_val_if_fail (self != NULL, FALSE); return disabled_repos_configure (disabled, TRUE, error); }
static void pk_backend_repo_enable_thread (PkBackendJob *job, GVariant *params, gpointer user_data) { const gchar *repo; GError *error = NULL; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (disabled != NULL, FALSE); repo = pk_backend_get_string (self, "repo_id"); if (g_hash_table_remove (disabled, repo)) { /* reload configuration to preserve ordering */ if (disabled_repos_configure (disabled, &error)) { pk_backend_repo_list_changed (self); } } else { int code = PM_ERR_DB_NOT_NULL; g_set_error (&error, ALPM_ERROR, code, "[%s]: %s", repo, alpm_strerror (code)); } if (error != NULL) { pk_backend_error (self, error); g_error_free (error); } pk_backend_job_finished (self); }
static gboolean backend_repo_enable_thread (PkBackend *backend) { GError *error = NULL; const gchar *repo; gboolean enabled; g_return_val_if_fail (pacman != NULL, FALSE); g_return_val_if_fail (disabled_repos != NULL, FALSE); g_return_val_if_fail (backend != NULL, FALSE); repo = pk_backend_get_string (backend, "repo_id"); enabled = pk_backend_get_bool (backend, "enabled"); g_return_val_if_fail (repo != NULL, FALSE); if (enabled) { /* check that repo is indeed disabled */ if (g_hash_table_remove (disabled_repos, repo)) { /* reload configuration to preserve the correct order */ if (disabled_repos_configure (disabled_repos, &error)) { pk_backend_repo_list_changed (backend); } else { backend_error (backend, error); pk_backend_thread_finished (backend); return FALSE; } } else { pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, "Could not find repo [%s]", repo); pk_backend_thread_finished (backend); return FALSE; } } else { PacmanDatabase *database = pacman_manager_find_sync_database (pacman, repo); if (database != NULL) { if (pacman_manager_unregister_database (pacman, database, &error)) { g_hash_table_insert (disabled_repos, g_strdup (repo), GINT_TO_POINTER (1)); } else { backend_error (backend, error); pk_backend_thread_finished (backend); return FALSE; } } else { pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, "Could not find repo [%s]", repo); pk_backend_thread_finished (backend); return FALSE; } } pk_backend_thread_finished (backend); return TRUE; }
gboolean pk_backend_initialize_databases (PkBackend *self, GError **error) { g_return_val_if_fail (self != NULL, FALSE); disabled = disabled_repos_new (error); if (disabled == NULL) { return FALSE; } if (!disabled_repos_configure (disabled, TRUE, error)) { return FALSE; } return TRUE; }
gboolean backend_initialize_databases (PkBackend *backend, GError **error) { g_return_val_if_fail (pacman != NULL, FALSE); g_return_val_if_fail (backend != NULL, FALSE); disabled_repos = disabled_repos_new (error); if (disabled_repos == NULL) { return FALSE; } if (!disabled_repos_configure (disabled_repos, error)) { return FALSE; } return TRUE; }