import gnome-software-3.36.1-9.el8
This commit is contained in:
parent
e0c9e6eacf
commit
33bfd4973e
117
SOURCES/flatpak-same-runtime-origin.patch
Normal file
117
SOURCES/flatpak-same-runtime-origin.patch
Normal file
@ -0,0 +1,117 @@
|
||||
diff -up gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c.10 gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c
|
||||
--- gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c.10 2020-05-22 16:51:19.868380300 +0200
|
||||
+++ gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c 2021-06-21 21:24:00.233689928 +0200
|
||||
@@ -1844,12 +1844,13 @@ gs_flatpak_refine_app_state (GsFlatpak *
|
||||
}
|
||||
|
||||
static GsApp *
|
||||
-gs_flatpak_create_runtime (GsFlatpak *self, GsApp *parent, const gchar *runtime)
|
||||
+gs_flatpak_create_runtime (GsFlatpak *self, GsApp *parent, const gchar *runtime, GCancellable *cancellable)
|
||||
{
|
||||
g_autofree gchar *source = NULL;
|
||||
g_auto(GStrv) split = NULL;
|
||||
g_autoptr(GsApp) app_cache = NULL;
|
||||
g_autoptr(GsApp) app = NULL;
|
||||
+ const gchar *origin;
|
||||
|
||||
/* get the name/arch/branch */
|
||||
split = g_strsplit (runtime, "/", -1);
|
||||
@@ -1864,6 +1865,24 @@ gs_flatpak_create_runtime (GsFlatpak *se
|
||||
gs_app_set_kind (app, AS_APP_KIND_RUNTIME);
|
||||
gs_app_set_branch (app, split[2]);
|
||||
|
||||
+ origin = gs_app_get_origin (parent);
|
||||
+ if (origin != NULL) {
|
||||
+ g_autoptr(FlatpakRemoteRef) xref = NULL;
|
||||
+
|
||||
+ xref = flatpak_installation_fetch_remote_ref_sync (self->installation,
|
||||
+ origin,
|
||||
+ FLATPAK_REF_KIND_RUNTIME,
|
||||
+ gs_app_get_id (app),
|
||||
+ gs_flatpak_app_get_ref_arch (parent),
|
||||
+ gs_app_get_branch (app),
|
||||
+ cancellable,
|
||||
+ NULL);
|
||||
+
|
||||
+ /* Prefer runtime from the same origin as the parent application */
|
||||
+ if (xref)
|
||||
+ gs_app_set_origin (app, origin);
|
||||
+ }
|
||||
+
|
||||
/* search in the cache */
|
||||
app_cache = gs_plugin_cache_lookup (self->plugin, gs_app_get_unique_id (app));
|
||||
if (app_cache != NULL) {
|
||||
@@ -1898,6 +1917,7 @@ gs_flatpak_set_app_metadata (GsFlatpak *
|
||||
GsApp *app,
|
||||
const gchar *data,
|
||||
gsize length,
|
||||
+ GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
gboolean secure = TRUE;
|
||||
@@ -1951,7 +1971,7 @@ gs_flatpak_set_app_metadata (GsFlatpak *
|
||||
gs_app_add_kudo (app, GS_APP_KUDO_SANDBOXED_SECURE);
|
||||
|
||||
/* create runtime */
|
||||
- app_runtime = gs_flatpak_create_runtime (self, app, runtime);
|
||||
+ app_runtime = gs_flatpak_create_runtime (self, app, runtime, cancellable);
|
||||
if (app_runtime != NULL) {
|
||||
gs_plugin_refine_item_scope (self, app_runtime);
|
||||
gs_app_set_runtime (app, app_runtime);
|
||||
@@ -2046,7 +2066,7 @@ gs_plugin_refine_item_metadata (GsFlatpa
|
||||
}
|
||||
|
||||
/* parse key file */
|
||||
- if (!gs_flatpak_set_app_metadata (self, app, str, len, error))
|
||||
+ if (!gs_flatpak_set_app_metadata (self, app, str, len, cancellable, error))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -2506,6 +2526,7 @@ gs_flatpak_file_to_app_bundle (GsFlatpak
|
||||
if (!gs_flatpak_set_app_metadata (self, app,
|
||||
g_bytes_get_data (metadata, NULL),
|
||||
g_bytes_get_size (metadata),
|
||||
+ cancellable,
|
||||
error))
|
||||
return NULL;
|
||||
|
||||
diff -up gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.10 gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c
|
||||
--- gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.10 2021-06-21 20:38:42.585590510 +0200
|
||||
+++ gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c 2021-06-21 21:23:00.977665979 +0200
|
||||
@@ -852,6 +852,36 @@ gs_plugin_app_install (GsPlugin *plugin,
|
||||
ref, NULL, error)) {
|
||||
gs_flatpak_error_convert (error);
|
||||
return FALSE;
|
||||
+ } else {
|
||||
+ GsApp *runtime;
|
||||
+
|
||||
+ runtime = gs_app_get_runtime (app);
|
||||
+ if (runtime != NULL && gs_app_get_origin (runtime) != NULL) {
|
||||
+ g_autoptr(FlatpakInstalledRef) runtime_ref = NULL;
|
||||
+
|
||||
+ runtime_ref = flatpak_installation_get_installed_ref (gs_flatpak_get_installation (flatpak),
|
||||
+ gs_flatpak_app_get_ref_kind (runtime),
|
||||
+ gs_flatpak_app_get_ref_name (runtime),
|
||||
+ gs_flatpak_app_get_ref_arch (runtime),
|
||||
+ gs_app_get_branch (runtime),
|
||||
+ cancellable,
|
||||
+ NULL);
|
||||
+ if (runtime_ref == NULL) {
|
||||
+ g_autoptr(GError) error_local = NULL;
|
||||
+
|
||||
+ g_clear_pointer (&ref, g_free);
|
||||
+ ref = gs_flatpak_app_get_ref_display (runtime);
|
||||
+ if (!flatpak_transaction_add_install (transaction, gs_app_get_origin (runtime), ref, NULL, &error_local)) {
|
||||
+ if (g_error_matches (error_local, FLATPAK_ERROR, FLATPAK_ERROR_ALREADY_INSTALLED)) {
|
||||
+ g_clear_error (&error_local);
|
||||
+ } else {
|
||||
+ g_propagate_error (error, g_steal_pointer (&error_local));
|
||||
+ gs_flatpak_error_convert (error);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
Name: gnome-software
|
||||
Version: 3.36.1
|
||||
Release: 8%{?dist}
|
||||
Release: 9%{?dist}
|
||||
Summary: A software center for GNOME
|
||||
|
||||
License: GPLv2+
|
||||
@ -38,6 +38,7 @@ Patch5: gnome-software-3.36.1-unrelated-refs.patch
|
||||
Patch6: be-able-to-disable-odrs.patch
|
||||
Patch7: crash-when-run-as-root.patch
|
||||
Patch8: gs-updates-page-keep-showing-installing-apps.patch
|
||||
Patch9: flatpak-same-runtime-origin.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gettext
|
||||
@ -225,6 +226,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
%{_datadir}/gtk-doc/html/gnome-software
|
||||
|
||||
%changelog
|
||||
* Mon Jun 21 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-9
|
||||
- Resolves: #1972545 (flatpak: Prefer runtime from the same origin as the application)
|
||||
|
||||
* Mon May 24 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-8
|
||||
- Resolves: #1888404 (Updates page hides ongoing updates on refresh)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user