mirror of
https://github.com/flatpak/flatpak.git
synced 2026-03-19 23:48:25 -04:00
dir: Pass FlatpakRemoteState to flatpak_dir_find_remote_related
Closes: #1575 Approved by: alexlarsson
This commit is contained in:
committed by
Atomic Bot
parent
d791625d77
commit
1936d2daae
@@ -357,6 +357,7 @@ ask_for_remote (FlatpakTransaction *self, const char **remotes)
|
||||
|
||||
static gboolean
|
||||
add_related (FlatpakTransaction *self,
|
||||
FlatpakRemoteState *state,
|
||||
const char *remote,
|
||||
const char *ref,
|
||||
GError **error)
|
||||
@@ -371,7 +372,7 @@ add_related (FlatpakTransaction *self,
|
||||
if (self->no_pull)
|
||||
related = flatpak_dir_find_local_related (self->dir, ref, remote, NULL, &local_error);
|
||||
else
|
||||
related = flatpak_dir_find_remote_related (self->dir, ref, remote, NULL, &local_error);
|
||||
related = flatpak_dir_find_remote_related (self->dir, state, ref, NULL, &local_error);
|
||||
if (related == NULL)
|
||||
{
|
||||
g_printerr (_("Warning: Problem looking for related refs: %s\n"), local_error->message);
|
||||
@@ -401,6 +402,7 @@ add_related (FlatpakTransaction *self,
|
||||
static gboolean
|
||||
add_deps (FlatpakTransaction *self,
|
||||
GKeyFile *metakey,
|
||||
FlatpakRemoteState *state,
|
||||
const char *remote,
|
||||
const char *ref,
|
||||
GError **error)
|
||||
@@ -473,7 +475,7 @@ add_deps (FlatpakTransaction *self,
|
||||
}
|
||||
|
||||
if (runtime_remote != NULL &&
|
||||
!add_related (self, runtime_remote, full_runtime_ref, error))
|
||||
!add_related (self, state, runtime_remote, full_runtime_ref, error))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
@@ -607,13 +609,13 @@ flatpak_transaction_add_ref (FlatpakTransaction *self,
|
||||
|
||||
if (self->add_deps)
|
||||
{
|
||||
if (!add_deps (self, metakey, remote, ref, error))
|
||||
if (!add_deps (self, metakey, state, remote, ref, error))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
flatpak_transaction_add_op (self, remote, ref, subpaths, commit, bundle, kind);
|
||||
|
||||
if (!add_related (self, remote, ref, error))
|
||||
if (!add_related (self, state, remote, ref, error))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
|
||||
@@ -10806,8 +10806,8 @@ add_related (FlatpakDir *self,
|
||||
|
||||
GPtrArray *
|
||||
flatpak_dir_find_remote_related (FlatpakDir *self,
|
||||
FlatpakRemoteState *state,
|
||||
const char *ref,
|
||||
const char *remote_name,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@@ -10817,18 +10817,13 @@ flatpak_dir_find_remote_related (FlatpakDir *self,
|
||||
g_auto(GStrv) parts = NULL;
|
||||
g_autoptr(GPtrArray) related = g_ptr_array_new_with_free_func ((GDestroyNotify)flatpak_related_free);
|
||||
g_autofree char *url = NULL;
|
||||
g_autoptr(FlatpakRemoteState) state = NULL;
|
||||
|
||||
parts = flatpak_decompose_ref (ref, error);
|
||||
if (parts == NULL)
|
||||
return NULL;
|
||||
|
||||
state = flatpak_dir_get_remote_state (self, remote_name, cancellable, error);
|
||||
if (state == NULL)
|
||||
return NULL;
|
||||
|
||||
if (!ostree_repo_remote_get_url (self->repo,
|
||||
remote_name,
|
||||
state->remote,
|
||||
&url,
|
||||
error))
|
||||
return FALSE;
|
||||
@@ -10894,18 +10889,22 @@ flatpak_dir_find_remote_related (FlatpakDir *self,
|
||||
|
||||
extension_ref = g_build_filename ("runtime", extension, parts[2], branch, NULL);
|
||||
|
||||
if (flatpak_summary_lookup_ref (state->summary, extension_collection_id, extension_ref, &checksum, NULL))
|
||||
checksum = flatpak_remote_state_lookup_ref (state, extension_ref, NULL, NULL);
|
||||
if (checksum)
|
||||
{
|
||||
add_related (self, related, extension, extension_collection_id, extension_ref, checksum, no_autodownload, download_if, autodelete, locale_subset);
|
||||
add_related (self, related, extension, extension_collection_id, extension_ref, checksum,
|
||||
no_autodownload, download_if, autodelete, locale_subset);
|
||||
}
|
||||
else if (subdirectories)
|
||||
{
|
||||
g_auto(GStrv) refs = flatpak_summary_match_subrefs (state->summary, extension_collection_id, extension_ref);
|
||||
g_auto(GStrv) refs = flatpak_remote_state_match_subrefs (state, extension_ref);
|
||||
int j;
|
||||
for (j = 0; refs[j] != NULL; j++)
|
||||
{
|
||||
if (flatpak_summary_lookup_ref (state->summary, extension_collection_id, refs[j], &checksum, NULL))
|
||||
add_related (self, related, extension, extension_collection_id, refs[j], checksum, no_autodownload, download_if, autodelete, locale_subset);
|
||||
g_autofree char *subref_checksum = flatpak_remote_state_lookup_ref (state, refs[j], NULL, NULL);
|
||||
if (subref_checksum)
|
||||
add_related (self, related, extension, extension_collection_id, refs[j], subref_checksum,
|
||||
no_autodownload, download_if, autodelete, locale_subset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -691,7 +691,7 @@ FlatpakRemoteState * flatpak_dir_get_remote_state_optional (FlatpakDir *self,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
GPtrArray * flatpak_dir_find_remote_related (FlatpakDir *dir,
|
||||
const char *remote_name,
|
||||
FlatpakRemoteState *state,
|
||||
const char *ref,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
@@ -2264,13 +2264,18 @@ flatpak_installation_list_remote_related_refs_sync (FlatpakInstallation *self,
|
||||
g_autoptr(FlatpakDir) dir = NULL;
|
||||
g_autoptr(GPtrArray) related = NULL;
|
||||
g_autoptr(GPtrArray) refs = g_ptr_array_new_with_free_func (g_object_unref);
|
||||
g_autoptr(FlatpakRemoteState) state = NULL;
|
||||
int i;
|
||||
|
||||
dir = flatpak_installation_get_dir (self, error);
|
||||
if (dir == NULL)
|
||||
return NULL;
|
||||
|
||||
related = flatpak_dir_find_remote_related (dir, ref, remote_name,
|
||||
state = flatpak_dir_get_remote_state_optional (dir, remote_name, cancellable, error);
|
||||
if (state == NULL)
|
||||
return NULL;
|
||||
|
||||
related = flatpak_dir_find_remote_related (dir, state, ref,
|
||||
cancellable, error);
|
||||
if (related == NULL)
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user