[gnome-software/gnome-3-22] Make flatpakref installation work
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/gnome-3-22] Make flatpakref installation work
- Date: Tue, 6 Dec 2016 11:56:13 +0000 (UTC)
commit 0b6e0c177ca564d0d57cd451ec356de8158935fb
Author: Kalev Lember <klember redhat com>
Date: Tue Dec 6 10:01:43 2016 +0100
Make flatpakref installation work
This commit adds a flatpak::file-type key and uses that to figure out
the correct installation method for different local file types:
.flatpak, .flatpakrepo and .flatpakref.
src/plugins/gs-flatpak.c | 17 ++++++++++++++---
src/plugins/gs-flatpak.h | 2 ++
2 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/src/plugins/gs-flatpak.c b/src/plugins/gs-flatpak.c
index e6aaedc..672195e 100644
--- a/src/plugins/gs-flatpak.c
+++ b/src/plugins/gs-flatpak.c
@@ -1977,8 +1977,16 @@ gs_flatpak_app_install (GsFlatpak *self,
}
}
- /* use the source for local apps */
- if (gs_app_get_local_file (app) != NULL) {
+ if (g_strcmp0 (gs_app_get_flatpak_file_type (app), "flatpak") == 0) {
+ /* no local_file set */
+ if (gs_app_get_origin (app) == NULL) {
+ g_set_error (error,
+ GS_PLUGIN_ERROR,
+ GS_PLUGIN_ERROR_NOT_SUPPORTED,
+ "no local_file set for %s",
+ gs_app_get_unique_id (app));
+ return FALSE;
+ }
g_debug ("installing bundle %s", gs_app_get_unique_id (app));
xref = flatpak_installation_install_bundle (self->installation,
gs_app_get_local_file (app),
@@ -1986,7 +1994,7 @@ gs_flatpak_app_install (GsFlatpak *self,
app,
cancellable, error);
} else {
- /* no origin */
+ /* no origin set */
if (gs_app_get_origin (app) == NULL) {
g_set_error (error,
GS_PLUGIN_ERROR,
@@ -2075,6 +2083,7 @@ gs_flatpak_file_to_app_bundle (GsFlatpak *self,
/* load metadata */
app = gs_plugin_create_app (self, FLATPAK_REF (xref_bundle));
+ gs_app_set_flatpak_file_type (app, "flatpak");
gs_app_set_kind (app, AS_APP_KIND_DESKTOP);
gs_app_set_state (app, AS_APP_STATE_AVAILABLE_LOCAL);
gs_app_set_size_installed (app, flatpak_bundle_ref_get_installed_size (xref_bundle));
@@ -2257,6 +2266,7 @@ gs_flatpak_file_to_app_repo (GsFlatpak *self,
/* create source */
app = gs_app_new (repo_id);
+ gs_app_set_flatpak_file_type (app, "flatpakrepo");
gs_app_set_kind (app, AS_APP_KIND_SOURCE);
gs_app_add_quirk (app, AS_APP_QUIRK_NOT_LAUNCHABLE);
gs_app_set_name (app, GS_APP_QUALITY_NORMAL, repo_title);
@@ -2349,6 +2359,7 @@ gs_flatpak_file_to_app_ref (GsFlatpak *self,
/* load metadata */
app = gs_plugin_create_app (self, FLATPAK_REF (xref));
+ gs_app_set_flatpak_file_type (app, "flatpakref");
gs_app_set_kind (app, AS_APP_KIND_DESKTOP);
gs_app_set_state (app, AS_APP_STATE_AVAILABLE_LOCAL);
gs_flatpak_set_metadata (self, app, FLATPAK_REF (xref));
diff --git a/src/plugins/gs-flatpak.h b/src/plugins/gs-flatpak.h
index 4a50a22..f2dc4ef 100644
--- a/src/plugins/gs-flatpak.h
+++ b/src/plugins/gs-flatpak.h
@@ -37,10 +37,12 @@ G_DECLARE_FINAL_TYPE (GsFlatpak, gs_flatpak, GS, FLATPAK, GObject)
#define gs_app_get_flatpak_arch(app) gs_app_get_metadata_item(app,"flatpak::arch")
#define gs_app_get_flatpak_branch(app) gs_app_get_metadata_item(app,"flatpak::branch")
#define gs_app_get_flatpak_commit(app) gs_app_get_metadata_item(app,"flatpak::commit")
+#define gs_app_get_flatpak_file_type(app) gs_app_get_metadata_item(app,"flatpak::file-type")
#define gs_app_set_flatpak_name(app,val) gs_app_set_metadata(app,"flatpak::name",val)
#define gs_app_set_flatpak_arch(app,val) gs_app_set_metadata(app,"flatpak::arch",val)
#define gs_app_set_flatpak_branch(app,val) gs_app_set_metadata(app,"flatpak::branch",val)
#define gs_app_set_flatpak_commit(app,val) gs_app_set_metadata(app,"flatpak::commit",val)
+#define gs_app_set_flatpak_file_type(app,val) gs_app_set_metadata(app,"flatpak::file-type",val)
GsFlatpak *gs_flatpak_new (GsPlugin *plugin,
AsAppScope scope);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]