Add patch to automatically install application updates (i#1248)
This commit is contained in:
parent
b59e1f44fc
commit
0f8fa87137
@ -0,0 +1,89 @@
|
|||||||
|
From 69ba099e9d49979a6dacdcd879d98f72744d298a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Milan Crha <mcrha@redhat.com>
|
||||||
|
Date: Tue, 11 May 2021 11:13:52 +0200
|
||||||
|
Subject: [PATCH] gs-update-monitor: Automatically install application updates
|
||||||
|
|
||||||
|
The application updates, so called online updates, should be installed immediately
|
||||||
|
when found, when the user has enabled automatic updates.
|
||||||
|
|
||||||
|
Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1248
|
||||||
|
---
|
||||||
|
src/gs-update-monitor.c | 47 +++++++++++++++++++++++++++++++++++++++--
|
||||||
|
1 file changed, 45 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/gs-update-monitor.c b/src/gs-update-monitor.c
|
||||||
|
index b3209185d..234c7de95 100644
|
||||||
|
--- a/src/gs-update-monitor.c
|
||||||
|
+++ b/src/gs-update-monitor.c
|
||||||
|
@@ -475,6 +475,7 @@ get_updates_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
|
||||||
|
guint64 security_timestamp_old = 0;
|
||||||
|
g_autoptr(GError) error = NULL;
|
||||||
|
g_autoptr(GsAppList) apps = NULL;
|
||||||
|
+ gboolean should_download;
|
||||||
|
|
||||||
|
/* get result */
|
||||||
|
apps = gs_plugin_loader_job_process_finish (GS_PLUGIN_LOADER (object), res, &error);
|
||||||
|
@@ -509,7 +510,9 @@ get_updates_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
|
||||||
|
|
||||||
|
g_debug ("got %u updates", gs_app_list_length (apps));
|
||||||
|
|
||||||
|
- if (should_download_updates (monitor) &&
|
||||||
|
+ should_download = should_download_updates (monitor);
|
||||||
|
+
|
||||||
|
+ if (should_download &&
|
||||||
|
(security_timestamp_old != security_timestamp ||
|
||||||
|
check_if_timestamp_more_than_days_ago (monitor, "install-timestamp", 14))) {
|
||||||
|
g_autoptr(GsPluginJob) plugin_job = NULL;
|
||||||
|
@@ -528,8 +531,48 @@ get_updates_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
|
||||||
|
download_finished_cb,
|
||||||
|
monitor);
|
||||||
|
} else {
|
||||||
|
- notify_about_pending_updates (monitor, apps);
|
||||||
|
+ g_autoptr(GsAppList) update_online = NULL;
|
||||||
|
+ g_autoptr(GsAppList) update_offline = NULL;
|
||||||
|
+ GsAppList *notify_list;
|
||||||
|
+
|
||||||
|
+ update_online = gs_app_list_new ();
|
||||||
|
+ update_offline = gs_app_list_new ();
|
||||||
|
+ for (guint i = 0; i < gs_app_list_length (apps); i++) {
|
||||||
|
+ GsApp *app = gs_app_list_index (apps, i);
|
||||||
|
+ if (_should_auto_update (app)) {
|
||||||
|
+ g_debug ("download for auto-update %s", gs_app_get_unique_id (app));
|
||||||
|
+ gs_app_list_add (update_online, app);
|
||||||
|
+ } else {
|
||||||
|
+ gs_app_list_add (update_offline, app);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g_debug ("Received %u apps to update, %u are online and %u offline updates; will%s download online updates",
|
||||||
|
+ gs_app_list_length (apps),
|
||||||
|
+ gs_app_list_length (update_online),
|
||||||
|
+ gs_app_list_length (update_offline),
|
||||||
|
+ should_download ? "" : " not");
|
||||||
|
+
|
||||||
|
+ if (should_download && gs_app_list_length (update_online) > 0) {
|
||||||
|
+ g_autoptr(GsPluginJob) plugin_job = NULL;
|
||||||
|
+
|
||||||
|
+ plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_DOWNLOAD,
|
||||||
|
+ "list", update_online,
|
||||||
|
+ NULL);
|
||||||
|
+ g_debug ("Getting %u online updates", gs_app_list_length (update_online));
|
||||||
|
+ gs_plugin_loader_job_process_async (monitor->plugin_loader,
|
||||||
|
+ plugin_job,
|
||||||
|
+ monitor->cancellable,
|
||||||
|
+ download_finished_cb,
|
||||||
|
+ monitor);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (should_download)
|
||||||
|
+ notify_list = update_offline;
|
||||||
|
+ else
|
||||||
|
+ notify_list = apps;
|
||||||
|
|
||||||
|
+ notify_about_pending_updates (monitor, notify_list);
|
||||||
|
reset_update_notification_timestamp (monitor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
Name: gnome-software
|
Name: gnome-software
|
||||||
Version: 40.2
|
Version: 40.2
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: A software center for GNOME
|
Summary: A software center for GNOME
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -20,6 +20,7 @@ URL: https://wiki.gnome.org/Apps/Software
|
|||||||
Source0: https://download.gnome.org/sources/gnome-software/40/%{name}-%{tarball_version}.tar.xz
|
Source0: https://download.gnome.org/sources/gnome-software/40/%{name}-%{tarball_version}.tar.xz
|
||||||
|
|
||||||
Patch01: 0001-crash-with-broken-theme.patch
|
Patch01: 0001-crash-with-broken-theme.patch
|
||||||
|
Patch02: 0002-gs-update-monitor_automatically_install_application_updates.patch
|
||||||
|
|
||||||
BuildRequires: appstream-devel >= %{appstream_version}
|
BuildRequires: appstream-devel >= %{appstream_version}
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -202,6 +203,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
|||||||
%{_datadir}/gtk-doc/html/gnome-software
|
%{_datadir}/gtk-doc/html/gnome-software
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 23 2021 Milan Crha <mcrha@redhat.com> - 40.2-2
|
||||||
|
- Add patch to automatically install application updates (i#1248)
|
||||||
|
|
||||||
* Fri Jun 04 2021 Milan Crha <mcrha@redhat.com> - 40.2-1
|
* Fri Jun 04 2021 Milan Crha <mcrha@redhat.com> - 40.2-1
|
||||||
- Update to 40.2
|
- Update to 40.2
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user