Compare commits
24 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf0a4b6273 | ||
|
|
525e6b3c00 | ||
|
|
cd5d018c41 | ||
|
|
6af7d40ead | ||
|
|
e52a24f162 | ||
|
|
2491fb7e1b | ||
|
|
84e4965cfd | ||
|
|
f1c225fb8a | ||
|
|
912f073597 | ||
|
|
e140f3b903 | ||
|
|
e4250e1ac5 | ||
|
|
16c4e7a7c9 | ||
|
|
2899a37895 | ||
|
|
3855d3bfa5 | ||
|
|
6f67a26d3d | ||
|
|
81ba583271 | ||
|
|
3ab284ac8b | ||
|
|
ce55212e71 | ||
|
|
b20ae8b775 | ||
|
|
27e8cc775f | ||
|
|
d83f8c6acb | ||
|
|
8835513012 | ||
|
|
39a5130100 | ||
|
|
8310adfd60 |
11 changed files with 903 additions and 7745 deletions
97
.gitignore
vendored
97
.gitignore
vendored
|
|
@ -1,2 +1,95 @@
|
|||
/gnome-software-*.tar.xz
|
||||
/gnome-software-*-build
|
||||
/gnome-software-0.1.tar.xz
|
||||
/gnome-software-3.9.1.tar.xz
|
||||
/gnome-software-3.9.2.tar.xz
|
||||
/gnome-software-3.9.3.tar.xz
|
||||
/fedora-20.xml.gz
|
||||
/fedora-20-icons.tar.gz
|
||||
/gnome-software-3.10.0.tar.xz
|
||||
/gnome-software-3.11.1.tar.xz
|
||||
/fedora-20-codecs.xml
|
||||
/web-apps.xml
|
||||
/gnome-software-3.11.2.tar.xz
|
||||
/gnome-software-3.11.3.tar.xz
|
||||
/gnome-software-3.11.4.tar.xz
|
||||
/fedora-rawhide-icons.tar.gz
|
||||
/fedora-rawhide.xml.gz
|
||||
/gnome-software-3.11.5.tar.xz
|
||||
/gnome-software-3.11.90.tar.xz
|
||||
/gnome-software-3.11.91.tar.xz
|
||||
/gnome-software-3.11.92.tar.xz
|
||||
/gnome-software-3.12.0.tar.xz
|
||||
/gnome-software-3.12.1.tar.xz
|
||||
/gnome-software-3.13.1.tar.xz
|
||||
/fedora-21-icons.tar.gz
|
||||
/fedora-21.xml.gz
|
||||
/gnome-software-3.13.2.tar.xz
|
||||
/gnome-software-3.13.3-7491627.tar.xz
|
||||
/gnome-software-3.13.3.tar.xz
|
||||
/gnome-software-3.13.4.tar.xz
|
||||
/gnome-software-3.13.5-5c89189.tar.xz
|
||||
/gnome-software-3.13.90.tar.xz
|
||||
/gnome-software-3.13.91.tar.xz
|
||||
/gnome-software-3.13.92.tar.xz
|
||||
/gnome-software-3.14.0.tar.xz
|
||||
/gnome-software-3.14.1.tar.xz
|
||||
/gnome-software-3.14.2.tar.xz
|
||||
/gnome-software-3.15.2.tar.xz
|
||||
/gnome-software-3.15.4.tar.xz
|
||||
/gnome-software-3.15.90.tar.xz
|
||||
/gnome-software-3.15.91.tar.xz
|
||||
/gnome-software-3.15.92.tar.xz
|
||||
/gnome-software-3.16.0.tar.xz
|
||||
/gnome-software-3.16.1.tar.xz
|
||||
/gnome-software-3.16.2.tar.xz
|
||||
/gnome-software-3.17.1.tar.xz
|
||||
/gnome-software-3.17.2.tar.xz
|
||||
/gnome-software-3.17.3.tar.xz
|
||||
/gnome-software-3.17.90.tar.xz
|
||||
/gnome-software-3.17.91.tar.xz
|
||||
/gnome-software-3.17.92.tar.xz
|
||||
/gnome-software-3.18.0.tar.xz
|
||||
/gnome-software-3.18.1.tar.xz
|
||||
/gnome-software-3.18.2.tar.xz
|
||||
/gnome-software-3.18.3.tar.xz
|
||||
/gnome-software-3.19.4.tar.xz
|
||||
/gnome-software-3.19.90.tar.xz
|
||||
/gnome-software-3.19.91.tar.xz
|
||||
/gnome-software-3.19.92.tar.xz
|
||||
/gnome-software-3.20.0.tar.xz
|
||||
/gnome-software-3.20.1.tar.xz
|
||||
/gnome-software-3.20.2.tar.xz
|
||||
/gnome-software-3.21.1.tar.xz
|
||||
/gnome-software-3.21.2.tar.xz
|
||||
/gnome-software-3.21.4.tar.xz
|
||||
/gnome-software-3.21.90.tar.xz
|
||||
/gnome-software-3.21.91.tar.xz
|
||||
/gnome-software-3.21.92.tar.xz
|
||||
/gnome-software-3.22.0.tar.xz
|
||||
/gnome-software-3.22.1.tar.xz
|
||||
/gnome-software-3.22.2.tar.xz
|
||||
/gnome-software-3.23.2.tar.xz
|
||||
/gnome-software-3.23.3.tar.xz
|
||||
/gnome-software-3.23.90.tar.xz
|
||||
/gnome-software-3.23.91.tar.xz
|
||||
/gnome-software-3.23.92.tar.xz
|
||||
/gnome-software-3.24.0.tar.xz
|
||||
/gnome-software-3.24.1.tar.xz
|
||||
/gnome-software-3.24.2.tar.xz
|
||||
/gnome-software-3.24.3.tar.xz
|
||||
/gnome-software-3.25.3.tar.xz
|
||||
/gnome-software-3.25.4.tar.xz
|
||||
/gnome-software-3.25.90.tar.xz
|
||||
/gnome-software-3.25.91.tar.xz
|
||||
/gnome-software-3.26.0.tar.xz
|
||||
/gnome-software-3.26.1.tar.xz
|
||||
/gnome-software-3.26.2.tar.xz
|
||||
/gnome-software-3.26.3.tar.xz
|
||||
/gnome-software-3.26.4.tar.xz
|
||||
/gnome-software-3.26.5.tar.xz
|
||||
/gnome-software-3.26.6.tar.xz
|
||||
/gnome-software-3.26.7.tar.xz
|
||||
/f28.png
|
||||
/gnome-software-3.28.0.tar.xz
|
||||
/gnome-software-3.28.1.tar.xz
|
||||
/gnome-software-3.28.2.tar.xz
|
||||
/f29.png
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
From 7afc2c4e3f4ffac704b28098eae3136313d791d3 Mon Sep 17 00:00:00 2001
|
||||
From: Kalev Lember <klember@redhat.com>
|
||||
Date: Mon, 8 Oct 2018 11:02:50 +0200
|
||||
Subject: [PATCH 1/2] Include the distro version in Fedora distro upgrade app
|
||||
IDs
|
||||
|
||||
If we use just "org.fedoraproject.Fedora", GsAppList deduplicates based
|
||||
on the app ID and only keeps on of the returned apps.
|
||||
|
||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1628497
|
||||
---
|
||||
.../gs-plugin-fedora-pkgdb-collections.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c b/plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c
|
||||
index fc644ad47..5b8137e3d 100644
|
||||
--- a/plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c
|
||||
+++ b/plugins/fedora-pkgdb-collections/gs-plugin-fedora-pkgdb-collections.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
||||
*
|
||||
- * Copyright (C) 2016-2017 Kalev Lember <klember@redhat.com>
|
||||
+ * Copyright (C) 2016-2018 Kalev Lember <klember@redhat.com>
|
||||
* Copyright (C) 2017 Richard Hughes <richard@hughsie.com>
|
||||
*
|
||||
* Licensed under the GNU General Public License Version 2
|
||||
@@ -280,6 +280,7 @@ static GsApp *
|
||||
_create_upgrade_from_info (GsPlugin *plugin, PkgdbItem *item)
|
||||
{
|
||||
GsApp *app;
|
||||
+ g_autofree gchar *app_id = NULL;
|
||||
g_autofree gchar *app_version = NULL;
|
||||
g_autofree gchar *background = NULL;
|
||||
g_autofree gchar *cache_key = NULL;
|
||||
@@ -293,7 +294,7 @@ _create_upgrade_from_info (GsPlugin *plugin, PkgdbItem *item)
|
||||
if (app != NULL)
|
||||
return app;
|
||||
|
||||
- /* create app */
|
||||
+ app_id = g_strdup_printf ("org.fedoraproject.Fedora-%u", item->version);
|
||||
app_version = g_strdup_printf ("%u", item->version);
|
||||
|
||||
/* icon from disk */
|
||||
@@ -302,7 +303,7 @@ _create_upgrade_from_info (GsPlugin *plugin, PkgdbItem *item)
|
||||
as_icon_set_filename (ic, "/usr/share/pixmaps/fedora-logo-sprite.png");
|
||||
|
||||
/* create */
|
||||
- app = gs_app_new ("org.fedoraproject.Fedora");
|
||||
+ app = gs_app_new (app_id);
|
||||
gs_app_set_state (app, AS_APP_STATE_AVAILABLE);
|
||||
gs_app_set_kind (app, AS_APP_KIND_OS_UPGRADE);
|
||||
gs_app_set_name (app, GS_APP_QUALITY_LOWEST, item->name);
|
||||
--
|
||||
2.19.1
|
||||
|
||||
File diff suppressed because it is too large
Load diff
76
0002-Sort-distro-upgrades-in-the-plugin-loader.patch
Normal file
76
0002-Sort-distro-upgrades-in-the-plugin-loader.patch
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
From be925f12287faee9d4c65635a3e69d18617b0213 Mon Sep 17 00:00:00 2001
|
||||
From: Kalev Lember <klember@redhat.com>
|
||||
Date: Mon, 8 Oct 2018 11:34:15 +0200
|
||||
Subject: [PATCH 2/2] Sort distro upgrades in the plugin loader
|
||||
|
||||
... so that we can rely on the order in UI code.
|
||||
---
|
||||
lib/gs-plugin-loader.c | 13 +++++++++++++
|
||||
src/gs-update-monitor.c | 5 +++--
|
||||
src/gs-updates-page.c | 3 ++-
|
||||
3 files changed, 18 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
|
||||
index 2fb02e3c6..033438a88 100644
|
||||
--- a/lib/gs-plugin-loader.c
|
||||
+++ b/lib/gs-plugin-loader.c
|
||||
@@ -1484,6 +1484,13 @@ gs_plugin_loader_app_sort_match_value_cb (GsApp *app1, GsApp *app2, gpointer use
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static gint
|
||||
+gs_plugin_loader_app_sort_version_cb (GsApp *app1, GsApp *app2, gpointer user_data)
|
||||
+{
|
||||
+ return as_utils_vercmp (gs_app_get_version (app1),
|
||||
+ gs_app_get_version (app2));
|
||||
+}
|
||||
+
|
||||
/******************************************************************************/
|
||||
|
||||
static gboolean
|
||||
@@ -3673,6 +3680,12 @@ gs_plugin_loader_job_process_async (GsPluginLoader *plugin_loader,
|
||||
gs_plugin_loader_app_sort_name_cb);
|
||||
}
|
||||
break;
|
||||
+ case GS_PLUGIN_ACTION_GET_DISTRO_UPDATES:
|
||||
+ if (gs_plugin_job_get_sort_func (plugin_job) == NULL) {
|
||||
+ gs_plugin_job_set_sort_func (plugin_job,
|
||||
+ gs_plugin_loader_app_sort_version_cb);
|
||||
+ }
|
||||
+ break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
diff --git a/src/gs-update-monitor.c b/src/gs-update-monitor.c
|
||||
index 3441b161f..2f39ae0bd 100644
|
||||
--- a/src/gs-update-monitor.c
|
||||
+++ b/src/gs-update-monitor.c
|
||||
@@ -308,8 +308,9 @@ get_upgrades_finished_cb (GObject *object,
|
||||
g_settings_set (monitor->settings, "upgrade-notification-timestamp", "x",
|
||||
g_date_time_to_unix (now));
|
||||
|
||||
- /* just get the first result : FIXME, do we sort these by date? */
|
||||
- app = gs_app_list_index (apps, 0);
|
||||
+ /* rely on the app list already being sorted with the
|
||||
+ * chronologically newest release last */
|
||||
+ app = gs_app_list_index (apps, gs_app_list_length (apps) - 1);
|
||||
|
||||
/* TRANSLATORS: this is a distro upgrade, the replacement would be the
|
||||
* distro name, e.g. 'Fedora' */
|
||||
diff --git a/src/gs-updates-page.c b/src/gs-updates-page.c
|
||||
index cd9db05d4..e84293e03 100644
|
||||
--- a/src/gs-updates-page.c
|
||||
+++ b/src/gs-updates-page.c
|
||||
@@ -1084,7 +1084,8 @@ gs_updates_page_get_upgrades_cb (GObject *source_object,
|
||||
gs_updates_page_clear_flag (self, GS_UPDATES_PAGE_FLAG_HAS_UPGRADES);
|
||||
gtk_widget_set_visible (self->upgrade_banner, FALSE);
|
||||
} else {
|
||||
- /* rely on the app list already being sorted */
|
||||
+ /* rely on the app list already being sorted with the
|
||||
+ * chronologically newest release last */
|
||||
GsApp *app = gs_app_list_index (list, gs_app_list_length (list) - 1);
|
||||
g_debug ("got upgrade %s", gs_app_get_id (app));
|
||||
gs_upgrade_banner_set_app (GS_UPGRADE_BANNER (self->upgrade_banner), app);
|
||||
--
|
||||
2.19.1
|
||||
|
||||
|
|
@ -1,686 +0,0 @@
|
|||
From 0c79d9fb08a348a45a18f15427c945a63b44982e Mon Sep 17 00:00:00 2001
|
||||
Date: Mon, 24 Nov 2025 16:06:51 +0100
|
||||
Subject: [PATCH 1/3] flatpak: Fix XbSilo lifetime in
|
||||
gs_flatpak_refine_wildcard()
|
||||
|
||||
The function uses pre-cached data in the hash tables, consisting of XbNode-s
|
||||
from an XbSilo. The nodes are referenced, but the silos the node belongs to
|
||||
is not referenced (by the XbNode).
|
||||
|
||||
This change keeps the XbSilo alive as long as it's needed for the nodes
|
||||
in the pre-cached data. It also does not call gs_flatpak_ref_silo() multiple
|
||||
times for the same GsFlatpak instance, which could invalidate the XbNode-s
|
||||
in the pre-cached data when a change in the silo or in the installation
|
||||
had been received while the function was still processing the apps.
|
||||
|
||||
Related downstream bug https://bugzilla.redhat.com/show_bug.cgi?id=2416542
|
||||
Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2900
|
||||
---
|
||||
plugins/flatpak/gs-flatpak.c | 18 ++++++++---
|
||||
plugins/flatpak/gs-flatpak.h | 4 +++
|
||||
plugins/flatpak/gs-plugin-flatpak.c | 49 ++++++++++++++++++++---------
|
||||
3 files changed, 51 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
|
||||
index b409475c7..a40ab54fb 100644
|
||||
--- a/plugins/flatpak/gs-flatpak.c
|
||||
+++ b/plugins/flatpak/gs-flatpak.c
|
||||
@@ -3748,16 +3748,19 @@ gboolean
|
||||
gs_flatpak_refine_wildcard (GsFlatpak *self, GsApp *app,
|
||||
GsAppList *list, GsPluginRefineRequireFlags require_flags,
|
||||
gboolean interactive,
|
||||
+ XbSilo **inout_silo,
|
||||
+ gchar **inout_silo_filename,
|
||||
+ GHashTable **inout_installed_by_desktopid,
|
||||
GHashTable **inout_components_by_id,
|
||||
GHashTable **inout_components_by_bundle,
|
||||
GCancellable *cancellable, GError **error)
|
||||
{
|
||||
const gchar *id;
|
||||
GPtrArray* components = NULL;
|
||||
+ XbSilo *silo;
|
||||
+ GHashTable *silo_installed_by_desktopid;
|
||||
+ const gchar *silo_filename;
|
||||
g_autoptr(GError) error_local = NULL;
|
||||
- g_autoptr(XbSilo) silo = NULL;
|
||||
- g_autoptr(GHashTable) silo_installed_by_desktopid = NULL;
|
||||
- g_autofree gchar *silo_filename = NULL;
|
||||
|
||||
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcard, "Flatpak (refine wildcard)", NULL);
|
||||
|
||||
@@ -3766,10 +3769,15 @@ gs_flatpak_refine_wildcard (GsFlatpak *self, GsApp *app,
|
||||
if (id == NULL)
|
||||
return TRUE;
|
||||
|
||||
- silo = gs_flatpak_ref_silo (self, interactive, &silo_filename, &silo_installed_by_desktopid, cancellable, error);
|
||||
- if (silo == NULL)
|
||||
+ if (*inout_silo == NULL)
|
||||
+ *inout_silo = gs_flatpak_ref_silo (self, interactive, inout_silo_filename, inout_installed_by_desktopid, cancellable, error);
|
||||
+ if (*inout_silo == NULL)
|
||||
return FALSE;
|
||||
|
||||
+ silo = *inout_silo;
|
||||
+ silo_filename = *inout_silo_filename;
|
||||
+ silo_installed_by_desktopid = *inout_installed_by_desktopid;
|
||||
+
|
||||
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardQuerySilo, "Flatpak (query silo)", NULL);
|
||||
|
||||
if (*inout_components_by_id != NULL) {
|
||||
diff --git a/plugins/flatpak/gs-flatpak.h b/plugins/flatpak/gs-flatpak.h
|
||||
index 66ff59967..34e1416b5 100644
|
||||
--- a/plugins/flatpak/gs-flatpak.h
|
||||
+++ b/plugins/flatpak/gs-flatpak.h
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
#include <gnome-software.h>
|
||||
#include <flatpak.h>
|
||||
+#include <xmlb.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@@ -108,6 +109,9 @@ gboolean gs_flatpak_refine_wildcard (GsFlatpak *self,
|
||||
GsAppList *list,
|
||||
GsPluginRefineRequireFlags require_flags,
|
||||
gboolean interactive,
|
||||
+ XbSilo **inout_silo,
|
||||
+ gchar **inout_silo_filename,
|
||||
+ GHashTable **inout_installed_by_desktopid,
|
||||
GHashTable **inout_components_by_id,
|
||||
GHashTable **inout_components_by_bundle,
|
||||
GCancellable *cancellable,
|
||||
diff --git a/plugins/flatpak/gs-plugin-flatpak.c b/plugins/flatpak/gs-plugin-flatpak.c
|
||||
index 3d0503d46..f5d4a1d67 100644
|
||||
--- a/plugins/flatpak/gs-plugin-flatpak.c
|
||||
+++ b/plugins/flatpak/gs-plugin-flatpak.c
|
||||
@@ -667,12 +667,29 @@ gs_plugin_flatpak_refine_app (GsPluginFlatpak *self,
|
||||
return gs_flatpak_refine_app (flatpak, app, require_flags, interactive, FALSE, event_callback, event_user_data, cancellable, error);
|
||||
}
|
||||
|
||||
+typedef struct {
|
||||
+ XbSilo *silo;
|
||||
+ gchar *silo_filename;
|
||||
+ GHashTable *installed_by_desktopid;
|
||||
+ GHashTable *components_by_id;
|
||||
+ GHashTable *components_by_bundle;
|
||||
+} RefineInstallationData;
|
||||
+
|
||||
static void
|
||||
-unref_nonnull_hash_table (gpointer ptr)
|
||||
+refine_installation_data_free (gpointer ptr)
|
||||
{
|
||||
- GHashTable *hash_table = ptr;
|
||||
- if (hash_table != NULL)
|
||||
- g_hash_table_unref (hash_table);
|
||||
+ RefineInstallationData *data = ptr;
|
||||
+
|
||||
+ if (data == NULL)
|
||||
+ return;
|
||||
+
|
||||
+ g_clear_pointer (&data->silo_filename, g_free);
|
||||
+ g_clear_pointer (&data->installed_by_desktopid, g_hash_table_unref);
|
||||
+ g_clear_pointer (&data->components_by_id, g_hash_table_unref);
|
||||
+ g_clear_pointer (&data->components_by_bundle, g_hash_table_unref);
|
||||
+ /* free the silo as the last, just in case, because the data from it is in the above hash tables */
|
||||
+ g_clear_object (&data->silo);
|
||||
+ g_free (data);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -761,8 +778,7 @@ refine_thread_cb (GTask *task,
|
||||
gboolean interactive = (data->job_flags & GS_PLUGIN_REFINE_FLAGS_INTERACTIVE) != 0;
|
||||
GsPluginEventCallback event_callback = data->event_callback;
|
||||
void *event_user_data = data->event_user_data;
|
||||
- g_autoptr(GPtrArray) array_components_by_id = NULL; /* (element-type GHashTable) */
|
||||
- g_autoptr(GPtrArray) array_components_by_bundle = NULL; /* (element-type GHashTable) */
|
||||
+ g_autoptr(GPtrArray) installation_data = NULL; /* (element-type RefineInstallationData) */
|
||||
g_autoptr(GsAppList) app_list = NULL;
|
||||
g_autoptr(GError) local_error = NULL;
|
||||
|
||||
@@ -783,10 +799,9 @@ refine_thread_cb (GTask *task,
|
||||
* (e.g. inserting an app in the list on every call results in
|
||||
* an infinite loop) */
|
||||
app_list = gs_app_list_copy (list);
|
||||
- array_components_by_id = g_ptr_array_new_full (self->installations->len, unref_nonnull_hash_table);
|
||||
- g_ptr_array_set_size (array_components_by_id, self->installations->len);
|
||||
- array_components_by_bundle = g_ptr_array_new_full (self->installations->len, unref_nonnull_hash_table);
|
||||
- g_ptr_array_set_size (array_components_by_bundle, self->installations->len);
|
||||
+
|
||||
+ installation_data = g_ptr_array_new_full (self->installations->len, refine_installation_data_free);
|
||||
+ g_ptr_array_set_size (installation_data, self->installations->len);
|
||||
|
||||
for (guint j = 0; j < gs_app_list_length (app_list); j++) {
|
||||
GsApp *app = gs_app_list_index (app_list, j);
|
||||
@@ -796,16 +811,20 @@ refine_thread_cb (GTask *task,
|
||||
|
||||
for (guint i = 0; i < self->installations->len; i++) {
|
||||
GsFlatpak *flatpak = g_ptr_array_index (self->installations, i);
|
||||
- GHashTable *components_by_id = array_components_by_id->pdata[i];
|
||||
- GHashTable *components_by_bundle = array_components_by_bundle->pdata[i];
|
||||
+ RefineInstallationData *inst_data = g_ptr_array_index (installation_data, i);
|
||||
+
|
||||
+ if (inst_data == NULL) {
|
||||
+ inst_data = g_new0 (RefineInstallationData, 1);
|
||||
+ installation_data->pdata[i] = inst_data;
|
||||
+ }
|
||||
|
||||
- if (!gs_flatpak_refine_wildcard (flatpak, app, list, require_flags, interactive, &components_by_id, &components_by_bundle,
|
||||
+ if (!gs_flatpak_refine_wildcard (flatpak, app, list, require_flags, interactive, &inst_data->silo,
|
||||
+ &inst_data->silo_filename, &inst_data->installed_by_desktopid,
|
||||
+ &inst_data->components_by_id, &inst_data->components_by_bundle,
|
||||
cancellable, &local_error)) {
|
||||
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||
return;
|
||||
}
|
||||
- array_components_by_id->pdata[i] = components_by_id;
|
||||
- array_components_by_bundle->pdata[i] = components_by_bundle;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 546c6ee17b5959d2a696a6cb346a1f8b94aba303 Mon Sep 17 00:00:00 2001
|
||||
Date: Wed, 7 Jan 2026 18:37:52 +0100
|
||||
Subject: [PATCH 2/3] flatpak: Simplify wildcard app lookup function
|
||||
|
||||
By flipping the order of traversing app and installation the code
|
||||
can be simplified to not have too many in/out arguments.
|
||||
|
||||
Suggested by Philip Withnall
|
||||
---
|
||||
plugins/flatpak/gs-flatpak.c | 251 ++++++++++++++--------------
|
||||
plugins/flatpak/gs-flatpak.h | 9 +-
|
||||
plugins/flatpak/gs-plugin-flatpak.c | 61 +------
|
||||
3 files changed, 130 insertions(+), 191 deletions(-)
|
||||
|
||||
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
|
||||
index a40ab54fb..782b0bb48 100644
|
||||
--- a/plugins/flatpak/gs-flatpak.c
|
||||
+++ b/plugins/flatpak/gs-flatpak.c
|
||||
@@ -3745,167 +3745,158 @@ gs_flatpak_refine_app (GsFlatpak *self,
|
||||
}
|
||||
|
||||
gboolean
|
||||
-gs_flatpak_refine_wildcard (GsFlatpak *self, GsApp *app,
|
||||
- GsAppList *list, GsPluginRefineRequireFlags require_flags,
|
||||
- gboolean interactive,
|
||||
- XbSilo **inout_silo,
|
||||
- gchar **inout_silo_filename,
|
||||
- GHashTable **inout_installed_by_desktopid,
|
||||
- GHashTable **inout_components_by_id,
|
||||
- GHashTable **inout_components_by_bundle,
|
||||
- GCancellable *cancellable, GError **error)
|
||||
+gs_flatpak_refine_wildcards (GsFlatpak *self,
|
||||
+ GPtrArray *wildcard_apps,
|
||||
+ GsAppList *list,
|
||||
+ GsPluginRefineRequireFlags require_flags,
|
||||
+ gboolean interactive,
|
||||
+ GCancellable *cancellable,
|
||||
+ GError **error)
|
||||
{
|
||||
- const gchar *id;
|
||||
- GPtrArray* components = NULL;
|
||||
- XbSilo *silo;
|
||||
- GHashTable *silo_installed_by_desktopid;
|
||||
- const gchar *silo_filename;
|
||||
g_autoptr(GError) error_local = NULL;
|
||||
+ g_autoptr(XbSilo) silo = NULL;
|
||||
+ g_autoptr(GHashTable) silo_installed_by_desktopid = NULL;
|
||||
+ g_autoptr(GHashTable) components_by_id = NULL;
|
||||
+ g_autoptr(GHashTable) components_by_bundle = NULL;
|
||||
+ g_autoptr(GPtrArray) components_with_id = NULL;
|
||||
+ g_autoptr(GPtrArray) bundles = NULL;
|
||||
+ g_autofree gchar *silo_filename = NULL;
|
||||
|
||||
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcard, "Flatpak (refine wildcard)", NULL);
|
||||
|
||||
- /* not enough info to find */
|
||||
- id = gs_app_get_id (app);
|
||||
- if (id == NULL)
|
||||
- return TRUE;
|
||||
-
|
||||
- if (*inout_silo == NULL)
|
||||
- *inout_silo = gs_flatpak_ref_silo (self, interactive, inout_silo_filename, inout_installed_by_desktopid, cancellable, error);
|
||||
- if (*inout_silo == NULL)
|
||||
+ silo = gs_flatpak_ref_silo (self, interactive, &silo_filename, &silo_installed_by_desktopid, cancellable, error);
|
||||
+ if (silo == NULL)
|
||||
return FALSE;
|
||||
|
||||
- silo = *inout_silo;
|
||||
- silo_filename = *inout_silo_filename;
|
||||
- silo_installed_by_desktopid = *inout_installed_by_desktopid;
|
||||
-
|
||||
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardQuerySilo, "Flatpak (query silo)", NULL);
|
||||
|
||||
- if (*inout_components_by_id != NULL) {
|
||||
- components = g_hash_table_lookup (*inout_components_by_id, gs_app_get_id (app));
|
||||
- } else {
|
||||
- g_autoptr(GPtrArray) components_with_id = NULL;
|
||||
- *inout_components_by_id = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_ptr_array_unref);
|
||||
- components_with_id = xb_silo_query (silo, "components/component/id", 0, &error_local);
|
||||
- if (components_with_id == NULL) {
|
||||
- if (g_error_matches (error_local, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
|
||||
- return TRUE;
|
||||
- g_propagate_error (error, g_steal_pointer (&error_local));
|
||||
- return FALSE;
|
||||
+ components_by_id = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_ptr_array_unref);
|
||||
+ components_with_id = xb_silo_query (silo, "components/component/id", 0, &error_local);
|
||||
+ if (components_with_id == NULL) {
|
||||
+ if (g_error_matches (error_local, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
|
||||
+ return TRUE;
|
||||
+ g_propagate_error (error, g_steal_pointer (&error_local));
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ for (guint i = 0; i < components_with_id->len; i++) {
|
||||
+ XbNode *node = g_ptr_array_index (components_with_id, i);
|
||||
+ XbNode *comp_node = xb_node_get_parent (node);
|
||||
+ const gchar *comp_id = xb_node_get_text (node);
|
||||
+ GPtrArray *comps = g_hash_table_lookup (components_by_id, comp_id);
|
||||
+ if (comps == NULL) {
|
||||
+ comps = g_ptr_array_new_with_free_func (g_object_unref);
|
||||
+ g_hash_table_insert (components_by_id, g_strdup (comp_id), comps);
|
||||
}
|
||||
- for (guint i = 0; i < components_with_id->len; i++) {
|
||||
- XbNode *node = g_ptr_array_index (components_with_id, i);
|
||||
- XbNode *comp_node = xb_node_get_parent (node);
|
||||
- const gchar *comp_id = xb_node_get_text (node);
|
||||
- GPtrArray *comps = g_hash_table_lookup (*inout_components_by_id, comp_id);
|
||||
- if (comps == NULL) {
|
||||
- comps = g_ptr_array_new_with_free_func (g_object_unref);
|
||||
- g_hash_table_insert (*inout_components_by_id, g_strdup (comp_id), comps);
|
||||
+ g_ptr_array_add (comps, comp_node);
|
||||
+ }
|
||||
+
|
||||
+ components_by_bundle = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
|
||||
+ bundles = xb_silo_query (silo, "/components/component/bundle[@type='flatpak']", 0, NULL);
|
||||
+ for (guint b = 0; bundles != NULL && b < bundles->len; b++) {
|
||||
+ XbNode *bundle_node = g_ptr_array_index (bundles, b);
|
||||
+ g_autoptr(XbNode) component_node = xb_node_get_parent (bundle_node);
|
||||
+ g_autoptr(XbNode) components_node = xb_node_get_parent (component_node);
|
||||
+ const gchar *origin = xb_node_get_attr (components_node, "origin");
|
||||
+ if (origin != NULL) {
|
||||
+ const gchar *bundle = xb_node_get_text (bundle_node);
|
||||
+ if (bundle != NULL) {
|
||||
+ g_autofree gchar *key = g_strconcat (origin, "\n", bundle, NULL);
|
||||
+ g_hash_table_insert (components_by_bundle, g_steal_pointer (&key), g_steal_pointer (&component_node));
|
||||
}
|
||||
- g_ptr_array_add (comps, comp_node);
|
||||
- if (components == NULL && g_strcmp0 (id, comp_id) == 0)
|
||||
- components = comps;
|
||||
}
|
||||
}
|
||||
|
||||
GS_PROFILER_END_SCOPED (FlatpakRefineWildcardQuerySilo);
|
||||
|
||||
- if (components == NULL)
|
||||
- return TRUE;
|
||||
-
|
||||
gs_flatpak_ensure_remote_title (self, interactive, cancellable);
|
||||
|
||||
- if (*inout_components_by_bundle == NULL) {
|
||||
- g_autoptr(GPtrArray) bundles = NULL;
|
||||
-
|
||||
- *inout_components_by_bundle = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
|
||||
- bundles = xb_silo_query (silo, "/components/component/bundle[@type='flatpak']", 0, NULL);
|
||||
- for (guint b = 0; bundles != NULL && b < bundles->len; b++) {
|
||||
- XbNode *bundle_node = g_ptr_array_index (bundles, b);
|
||||
- g_autoptr(XbNode) component_node = xb_node_get_parent (bundle_node);
|
||||
- g_autoptr(XbNode) components_node = xb_node_get_parent (component_node);
|
||||
- const gchar *origin = xb_node_get_attr (components_node, "origin");
|
||||
- if (origin != NULL) {
|
||||
- const gchar *bundle = xb_node_get_text (bundle_node);
|
||||
- if (bundle != NULL) {
|
||||
- g_autofree gchar *key = g_strconcat (origin, "\n", bundle, NULL);
|
||||
- g_hash_table_insert (*inout_components_by_bundle, g_steal_pointer (&key), g_steal_pointer (&component_node));
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
+ for (guint j = 0; j < wildcard_apps->len; j++) {
|
||||
+ GsApp *app = g_ptr_array_index (wildcard_apps, j);
|
||||
+ GPtrArray *components = NULL;
|
||||
+ const gchar *id;
|
||||
|
||||
+ /* not enough info to find */
|
||||
+ id = gs_app_get_id (app);
|
||||
+ if (id == NULL)
|
||||
+ continue;
|
||||
|
||||
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardGenerateApps, "Flatpak (create app)", NULL);
|
||||
- for (guint i = 0; i < components->len; i++) {
|
||||
- XbNode *component = g_ptr_array_index (components, i);
|
||||
- g_autoptr(GsApp) new = NULL;
|
||||
+ components = g_hash_table_lookup (components_by_id, id);
|
||||
+ if (components == NULL)
|
||||
+ continue;
|
||||
|
||||
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardCreateAppstreamApp, "Flatpak (create Appstream app)", NULL);
|
||||
- new = gs_appstream_create_app (self->plugin, silo, component, silo_filename ? silo_filename : "",
|
||||
- self->scope, error);
|
||||
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardCreateAppstreamApp);
|
||||
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardGenerateApps, "Flatpak (create app)", NULL);
|
||||
+ for (guint i = 0; i < components->len; i++) {
|
||||
+ XbNode *component = g_ptr_array_index (components, i);
|
||||
+ g_autoptr(GsApp) new = NULL;
|
||||
|
||||
- if (new == NULL)
|
||||
- return FALSE;
|
||||
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardCreateAppstreamApp, "Flatpak (create Appstream app)", NULL);
|
||||
+ new = gs_appstream_create_app (self->plugin, silo, component, silo_filename ? silo_filename : "",
|
||||
+ self->scope, error);
|
||||
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardCreateAppstreamApp);
|
||||
|
||||
- gs_flatpak_claim_app (self, new);
|
||||
-
|
||||
- /* The appstream plugin did not find the component in the plugin's cache,
|
||||
- thus read the required info from the 'bundle' element. */
|
||||
- if (gs_flatpak_app_get_ref_name (new) == NULL ||
|
||||
- gs_flatpak_app_get_ref_arch (new) == NULL) {
|
||||
- const gchar *xref_str = NULL;
|
||||
- g_autoptr(XbNode) child = NULL;
|
||||
- g_autoptr(XbNode) next = NULL;
|
||||
- for (child = xb_node_get_child (component); child != NULL && xref_str == NULL;
|
||||
- g_object_unref (child), child = g_steal_pointer (&next)) {
|
||||
- next = xb_node_get_next (child);
|
||||
- if (g_strcmp0 (xb_node_get_element (child), "bundle") == 0 &&
|
||||
- g_strcmp0 (xb_node_get_attr (child, "type"), "flatpak") == 0) {
|
||||
- xref_str = xb_node_get_text (child);
|
||||
- break;
|
||||
+ if (new == NULL)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ gs_flatpak_claim_app (self, new);
|
||||
+
|
||||
+ /* The appstream plugin did not find the component in the plugin's cache,
|
||||
+ thus read the required info from the 'bundle' element. */
|
||||
+ if (gs_flatpak_app_get_ref_name (new) == NULL ||
|
||||
+ gs_flatpak_app_get_ref_arch (new) == NULL) {
|
||||
+ const gchar *xref_str = NULL;
|
||||
+ g_autoptr(XbNode) child = NULL;
|
||||
+ g_autoptr(XbNode) next = NULL;
|
||||
+ for (child = xb_node_get_child (component); child != NULL && xref_str == NULL;
|
||||
+ g_object_unref (child), child = g_steal_pointer (&next)) {
|
||||
+ next = xb_node_get_next (child);
|
||||
+ if (g_strcmp0 (xb_node_get_element (child), "bundle") == 0 &&
|
||||
+ g_strcmp0 (xb_node_get_attr (child, "type"), "flatpak") == 0) {
|
||||
+ xref_str = xb_node_get_text (child);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
- }
|
||||
- if (xref_str != NULL) {
|
||||
- g_auto(GStrv) split = NULL;
|
||||
-
|
||||
- /* get the kind/name/arch/branch */
|
||||
- split = g_strsplit (xref_str, "/", -1);
|
||||
- if (g_strv_length (split) == 4) {
|
||||
- const gchar *comp_type = xb_node_get_attr (component, "type");
|
||||
- AsComponentKind kind = as_component_kind_from_string (comp_type);
|
||||
- if (kind != AS_COMPONENT_KIND_UNKNOWN)
|
||||
- gs_app_set_kind (new, kind);
|
||||
- else if (g_ascii_strcasecmp (split[0], "app") == 0)
|
||||
- gs_app_set_kind (new, AS_COMPONENT_KIND_DESKTOP_APP);
|
||||
- else if (g_ascii_strcasecmp (split[0], "runtime") == 0)
|
||||
- gs_flatpak_set_runtime_kind_from_id (new);
|
||||
- gs_flatpak_app_set_ref_name (new, split[1]);
|
||||
- gs_flatpak_app_set_ref_arch (new, split[2]);
|
||||
- gs_app_set_branch (new, split[3]);
|
||||
- gs_app_set_metadata (new, "GnomeSoftware::packagename-value", xref_str);
|
||||
+ if (xref_str != NULL) {
|
||||
+ g_auto(GStrv) split = NULL;
|
||||
+
|
||||
+ /* get the kind/name/arch/branch */
|
||||
+ split = g_strsplit (xref_str, "/", -1);
|
||||
+ if (g_strv_length (split) == 4) {
|
||||
+ const gchar *comp_type = xb_node_get_attr (component, "type");
|
||||
+ AsComponentKind kind = as_component_kind_from_string (comp_type);
|
||||
+ if (kind != AS_COMPONENT_KIND_UNKNOWN)
|
||||
+ gs_app_set_kind (new, kind);
|
||||
+ else if (g_ascii_strcasecmp (split[0], "app") == 0)
|
||||
+ gs_app_set_kind (new, AS_COMPONENT_KIND_DESKTOP_APP);
|
||||
+ else if (g_ascii_strcasecmp (split[0], "runtime") == 0)
|
||||
+ gs_flatpak_set_runtime_kind_from_id (new);
|
||||
+ gs_flatpak_app_set_ref_name (new, split[1]);
|
||||
+ gs_flatpak_app_set_ref_arch (new, split[2]);
|
||||
+ gs_app_set_branch (new, split[3]);
|
||||
+ gs_app_set_metadata (new, "GnomeSoftware::packagename-value", xref_str);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
- }
|
||||
|
||||
- if (gs_flatpak_app_get_ref_name (new) == NULL ||
|
||||
- gs_flatpak_app_get_ref_arch (new) == NULL) {
|
||||
- g_debug ("Failed to get ref info for '%s' from wildcard '%s', skipping it...", gs_app_get_id (new), id);
|
||||
- } else {
|
||||
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardRefineNewApp, "Flatpak (refine new app)", NULL);
|
||||
- if (!gs_flatpak_refine_app_internal (self, new, require_flags, interactive, FALSE, *inout_components_by_bundle,
|
||||
- silo, silo_filename, silo_installed_by_desktopid, cancellable, error))
|
||||
- return FALSE;
|
||||
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardRefineNewApp);
|
||||
+ if (gs_flatpak_app_get_ref_name (new) == NULL ||
|
||||
+ gs_flatpak_app_get_ref_arch (new) == NULL) {
|
||||
+ g_debug ("Failed to get ref info for '%s' from wildcard '%s', skipping it...", gs_app_get_id (new), id);
|
||||
+ } else {
|
||||
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardRefineNewApp, "Flatpak (refine new app)", NULL);
|
||||
+ if (!gs_flatpak_refine_app_internal (self, new, require_flags, interactive, FALSE, components_by_bundle,
|
||||
+ silo, silo_filename, silo_installed_by_desktopid, cancellable, error))
|
||||
+ return FALSE;
|
||||
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardRefineNewApp);
|
||||
|
||||
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardSubsumeMetadata, "Flatpak (subsume metadata)", NULL);
|
||||
- gs_app_subsume_metadata (new, app);
|
||||
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardSubsumeMetadata);
|
||||
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardSubsumeMetadata, "Flatpak (subsume metadata)", NULL);
|
||||
+ gs_app_subsume_metadata (new, app);
|
||||
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardSubsumeMetadata);
|
||||
|
||||
- gs_app_list_add (list, new);
|
||||
+ gs_app_list_add (list, new);
|
||||
+ }
|
||||
}
|
||||
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardGenerateApps);
|
||||
}
|
||||
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardGenerateApps);
|
||||
|
||||
GS_PROFILER_END_SCOPED (FlatpakRefineWildcard);
|
||||
|
||||
diff --git a/plugins/flatpak/gs-flatpak.h b/plugins/flatpak/gs-flatpak.h
|
||||
index 34e1416b5..1f7d35a8f 100644
|
||||
--- a/plugins/flatpak/gs-flatpak.h
|
||||
+++ b/plugins/flatpak/gs-flatpak.h
|
||||
@@ -104,16 +104,11 @@ gboolean gs_flatpak_refine_app_state (GsFlatpak *self,
|
||||
void *event_user_data,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
-gboolean gs_flatpak_refine_wildcard (GsFlatpak *self,
|
||||
- GsApp *app,
|
||||
+gboolean gs_flatpak_refine_wildcards (GsFlatpak *self,
|
||||
+ GPtrArray *wildcard_apps,
|
||||
GsAppList *list,
|
||||
GsPluginRefineRequireFlags require_flags,
|
||||
gboolean interactive,
|
||||
- XbSilo **inout_silo,
|
||||
- gchar **inout_silo_filename,
|
||||
- GHashTable **inout_installed_by_desktopid,
|
||||
- GHashTable **inout_components_by_id,
|
||||
- GHashTable **inout_components_by_bundle,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
gboolean gs_flatpak_launch (GsFlatpak *self,
|
||||
diff --git a/plugins/flatpak/gs-plugin-flatpak.c b/plugins/flatpak/gs-plugin-flatpak.c
|
||||
index f5d4a1d67..c06b1fb5f 100644
|
||||
--- a/plugins/flatpak/gs-plugin-flatpak.c
|
||||
+++ b/plugins/flatpak/gs-plugin-flatpak.c
|
||||
@@ -667,31 +667,6 @@ gs_plugin_flatpak_refine_app (GsPluginFlatpak *self,
|
||||
return gs_flatpak_refine_app (flatpak, app, require_flags, interactive, FALSE, event_callback, event_user_data, cancellable, error);
|
||||
}
|
||||
|
||||
-typedef struct {
|
||||
- XbSilo *silo;
|
||||
- gchar *silo_filename;
|
||||
- GHashTable *installed_by_desktopid;
|
||||
- GHashTable *components_by_id;
|
||||
- GHashTable *components_by_bundle;
|
||||
-} RefineInstallationData;
|
||||
-
|
||||
-static void
|
||||
-refine_installation_data_free (gpointer ptr)
|
||||
-{
|
||||
- RefineInstallationData *data = ptr;
|
||||
-
|
||||
- if (data == NULL)
|
||||
- return;
|
||||
-
|
||||
- g_clear_pointer (&data->silo_filename, g_free);
|
||||
- g_clear_pointer (&data->installed_by_desktopid, g_hash_table_unref);
|
||||
- g_clear_pointer (&data->components_by_id, g_hash_table_unref);
|
||||
- g_clear_pointer (&data->components_by_bundle, g_hash_table_unref);
|
||||
- /* free the silo as the last, just in case, because the data from it is in the above hash tables */
|
||||
- g_clear_object (&data->silo);
|
||||
- g_free (data);
|
||||
-}
|
||||
-
|
||||
static gboolean
|
||||
refine_app (GsPluginFlatpak *self,
|
||||
GsApp *app,
|
||||
@@ -778,8 +753,7 @@ refine_thread_cb (GTask *task,
|
||||
gboolean interactive = (data->job_flags & GS_PLUGIN_REFINE_FLAGS_INTERACTIVE) != 0;
|
||||
GsPluginEventCallback event_callback = data->event_callback;
|
||||
void *event_user_data = data->event_user_data;
|
||||
- g_autoptr(GPtrArray) installation_data = NULL; /* (element-type RefineInstallationData) */
|
||||
- g_autoptr(GsAppList) app_list = NULL;
|
||||
+ g_autoptr(GPtrArray) wildcard_apps = g_ptr_array_new_with_free_func (g_object_unref); /* (element-type GsApp) (owned) */
|
||||
g_autoptr(GError) local_error = NULL;
|
||||
|
||||
assert_in_worker (self);
|
||||
@@ -790,38 +764,17 @@ refine_thread_cb (GTask *task,
|
||||
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||
return;
|
||||
}
|
||||
- }
|
||||
-
|
||||
- /* Refine wildcards.
|
||||
- *
|
||||
- * Use a copy of the list for the loop because a function called
|
||||
- * on the plugin may affect the list which can lead to problems
|
||||
- * (e.g. inserting an app in the list on every call results in
|
||||
- * an infinite loop) */
|
||||
- app_list = gs_app_list_copy (list);
|
||||
-
|
||||
- installation_data = g_ptr_array_new_full (self->installations->len, refine_installation_data_free);
|
||||
- g_ptr_array_set_size (installation_data, self->installations->len);
|
||||
-
|
||||
- for (guint j = 0; j < gs_app_list_length (app_list); j++) {
|
||||
- GsApp *app = gs_app_list_index (app_list, j);
|
||||
|
||||
- if (!gs_app_has_quirk (app, GS_APP_QUIRK_IS_WILDCARD))
|
||||
- continue;
|
||||
+ if (gs_app_has_quirk (app, GS_APP_QUIRK_IS_WILDCARD) && gs_app_get_id (app) != NULL)
|
||||
+ g_ptr_array_add (wildcard_apps, g_object_ref (app));
|
||||
+ }
|
||||
|
||||
+ /* Refine wildcards. */
|
||||
+ if (wildcard_apps->len > 0) {
|
||||
for (guint i = 0; i < self->installations->len; i++) {
|
||||
GsFlatpak *flatpak = g_ptr_array_index (self->installations, i);
|
||||
- RefineInstallationData *inst_data = g_ptr_array_index (installation_data, i);
|
||||
-
|
||||
- if (inst_data == NULL) {
|
||||
- inst_data = g_new0 (RefineInstallationData, 1);
|
||||
- installation_data->pdata[i] = inst_data;
|
||||
- }
|
||||
|
||||
- if (!gs_flatpak_refine_wildcard (flatpak, app, list, require_flags, interactive, &inst_data->silo,
|
||||
- &inst_data->silo_filename, &inst_data->installed_by_desktopid,
|
||||
- &inst_data->components_by_id, &inst_data->components_by_bundle,
|
||||
- cancellable, &local_error)) {
|
||||
+ if (!gs_flatpak_refine_wildcards (flatpak, wildcard_apps, list, require_flags, interactive, cancellable, &local_error)) {
|
||||
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||
return;
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 8472d717356a801e6c0171156738ea48480fa695 Mon Sep 17 00:00:00 2001
|
||||
Date: Wed, 7 Jan 2026 18:45:47 +0100
|
||||
Subject: [PATCH 3/3] flatpak: Hold silo lock when refining wildcard apps
|
||||
|
||||
The refine can take a long time, thus hold the silo lock to not have
|
||||
it invalidated from another thread. Object reference is not enough
|
||||
for the XbSilo, it breaks as soon as the underlying file changes.
|
||||
---
|
||||
plugins/flatpak/gs-flatpak.c | 16 +++++++++++-----
|
||||
1 file changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
|
||||
index 782b0bb48..c5437125d 100644
|
||||
--- a/plugins/flatpak/gs-flatpak.c
|
||||
+++ b/plugins/flatpak/gs-flatpak.c
|
||||
@@ -59,7 +59,7 @@ struct _GsFlatpak {
|
||||
AsComponentScope scope;
|
||||
GsPlugin *plugin;
|
||||
XbSilo *silo;
|
||||
- GMutex silo_lock;
|
||||
+ GRecMutex silo_lock;
|
||||
gchar *silo_filename;
|
||||
GHashTable *silo_installed_by_desktopid;
|
||||
gint silo_change_stamp;
|
||||
@@ -1187,11 +1187,11 @@ gs_flatpak_ref_silo (GsFlatpak *self,
|
||||
g_autoptr(GFile) file = NULL;
|
||||
g_autoptr(GPtrArray) xremotes = NULL;
|
||||
g_autoptr(GPtrArray) desktop_paths = NULL;
|
||||
- g_autoptr(GMutexLocker) locker = NULL;
|
||||
+ g_autoptr(GRecMutexLocker) locker = NULL;
|
||||
g_autoptr(XbBuilder) builder = NULL;
|
||||
g_autoptr(GMainContext) old_thread_default = NULL;
|
||||
|
||||
- locker = g_mutex_locker_new (&self->silo_lock);
|
||||
+ locker = g_rec_mutex_locker_new (&self->silo_lock);
|
||||
/* everything is okay */
|
||||
if (self->silo != NULL && xb_silo_is_valid (self->silo) &&
|
||||
g_atomic_int_get (&self->silo_change_stamp_current) == g_atomic_int_get (&self->silo_change_stamp)) {
|
||||
@@ -3754,6 +3754,7 @@ gs_flatpak_refine_wildcards (GsFlatpak *self,
|
||||
GError **error)
|
||||
{
|
||||
g_autoptr(GError) error_local = NULL;
|
||||
+ g_autoptr(GRecMutexLocker) silo_locker = NULL;
|
||||
g_autoptr(XbSilo) silo = NULL;
|
||||
g_autoptr(GHashTable) silo_installed_by_desktopid = NULL;
|
||||
g_autoptr(GHashTable) components_by_id = NULL;
|
||||
@@ -3764,6 +3765,11 @@ gs_flatpak_refine_wildcards (GsFlatpak *self,
|
||||
|
||||
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcard, "Flatpak (refine wildcard)", NULL);
|
||||
|
||||
+ /* the refine can take a long time, thus hold the silo lock to not have
|
||||
+ it invalidated from another thread; object reference is not enough
|
||||
+ for the XbSilo, it breaks as soon as the underlying file changes */
|
||||
+ silo_locker = g_rec_mutex_locker_new (&self->silo_lock);
|
||||
+
|
||||
silo = gs_flatpak_ref_silo (self, interactive, &silo_filename, &silo_installed_by_desktopid, cancellable, error);
|
||||
if (silo == NULL)
|
||||
return FALSE;
|
||||
@@ -4810,7 +4816,7 @@ gs_flatpak_finalize (GObject *object)
|
||||
g_object_unref (self->plugin);
|
||||
g_hash_table_unref (self->broken_remotes);
|
||||
g_mutex_clear (&self->broken_remotes_mutex);
|
||||
- g_mutex_clear (&self->silo_lock);
|
||||
+ g_rec_mutex_clear (&self->silo_lock);
|
||||
g_hash_table_unref (self->app_silos);
|
||||
g_mutex_clear (&self->app_silos_mutex);
|
||||
g_clear_pointer (&self->remote_title, g_hash_table_unref);
|
||||
@@ -4831,7 +4837,7 @@ gs_flatpak_init (GsFlatpak *self)
|
||||
{
|
||||
/* XbSilo needs external locking as we destroy the silo and build a new
|
||||
* one when something changes */
|
||||
- g_mutex_init (&self->silo_lock);
|
||||
+ g_rec_mutex_init (&self->silo_lock);
|
||||
|
||||
g_mutex_init (&self->installed_refs_mutex);
|
||||
self->installed_refs = NULL;
|
||||
--
|
||||
GitLab
|
||||
|
||||
38
116.patch
Normal file
38
116.patch
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
From 086f4b4bf3ce478a9a1cb009f56a7c08d1aa6e57 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Thu, 11 Oct 2018 19:12:01 -0700
|
||||
Subject: [PATCH] Ensure generic-updates plugin runs after packagekit-refine
|
||||
|
||||
9eab01082b07acd525b8a390ab6b43136cf400a5 made generic-updates
|
||||
check the 'scope' and 'kind' for a package update before adding
|
||||
it to the generic 'OS Updates' "app" which is used to display
|
||||
updates for packages that aren't appdata-ified. The 'scope' and
|
||||
'kind' for package updates are set by packagekit-refine...but
|
||||
that change did not ensure that generic-updates runs *after*
|
||||
packagekit-refine. This can result in gnome-software failing to
|
||||
'see' these generic updates on a first update scan, and only
|
||||
picking them up on a retry. To fix this, we should ensure that
|
||||
packagekit-refine runs before generic-updates.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1638563
|
||||
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
---
|
||||
plugins/core/gs-plugin-generic-updates.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/plugins/core/gs-plugin-generic-updates.c b/plugins/core/gs-plugin-generic-updates.c
|
||||
index d8e2db39..ef79c65b 100644
|
||||
--- a/plugins/core/gs-plugin-generic-updates.c
|
||||
+++ b/plugins/core/gs-plugin-generic-updates.c
|
||||
@@ -28,6 +28,7 @@ void
|
||||
gs_plugin_initialize (GsPlugin *plugin)
|
||||
{
|
||||
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "appstream");
|
||||
+ gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "packagekit-refine");
|
||||
}
|
||||
|
||||
static gboolean
|
||||
--
|
||||
2.18.1
|
||||
|
||||
1
dnf5-plugin/.gitignore
vendored
1
dnf5-plugin/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
checkout-gs-dnf5
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ ! -d checkout-gs-dnf5 ]; then
|
||||
git clone --branch main https://gitlab.gnome.org/mcrha/gnome-software.git checkout-gs-dnf5 && \
|
||||
cd checkout-gs-dnf5 && \
|
||||
git checkout -b wip/dnf5daemon origin/wip/dnf5daemon && \
|
||||
cd - >/dev/null
|
||||
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Failed to clone dnf5-plugin repository" 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
PATCH_PATH=../0001-dnf5-plugin.patch
|
||||
|
||||
cd checkout-gs-dnf5 && \
|
||||
echo "Updating gs-dnf5 git 'main' repository" && \
|
||||
git checkout main && \
|
||||
git pull --rebase && \
|
||||
echo "Updating gs-dnf5 git 'dnf5-pugin' repository" && \
|
||||
git checkout wip/dnf5daemon && \
|
||||
git pull --rebase && \
|
||||
echo -n "at " >../${PATCH_PATH} && \
|
||||
git log HEAD | head -n 5 | grep -E "commit|Date" >>../${PATCH_PATH} && \
|
||||
echo "" >>../${PATCH_PATH} && \
|
||||
git diff main >>../${PATCH_PATH} && \
|
||||
cd - >/dev/null
|
||||
|
||||
if [ "$?" = "0" ]; then
|
||||
echo "Patch '${PATCH_PATH}' updated"
|
||||
else
|
||||
echo "Failed to update patch '${PATCH_PATH}'" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -1,132 +1,87 @@
|
|||
%global appstream_version 0.16.4
|
||||
%global flatpak_version 1.14.1
|
||||
%global fwupd_version 1.6.2
|
||||
%global glib2_version 2.76.0
|
||||
%global gtk4_version 4.16.0
|
||||
%global json_glib_version 1.6.0
|
||||
%global libadwaita_version 1.6.0
|
||||
%global libxmlb_version 0.3.4
|
||||
%global packagekit_version 1.2.5
|
||||
%global dnf5_version 5.2.16
|
||||
|
||||
# Disable WebApps for RHEL builds
|
||||
%bcond webapps %[!0%{?rhel}]
|
||||
# Disable parental control for RHEL builds
|
||||
%bcond malcontent %[!0%{?rhel}]
|
||||
# Disable rpm-ostree support for RHEL builds
|
||||
%bcond rpmostree %[!0%{?rhel}]
|
||||
# Disable DKMS/akmods support for RHEL builds
|
||||
%bcond dkms %[!0%{?rhel}]
|
||||
|
||||
%bcond packagekit 0
|
||||
%bcond dnf5 1
|
||||
|
||||
# this is not a library version
|
||||
%define gs_plugin_version 23
|
||||
|
||||
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||
|
||||
%global __provides_exclude_from ^%{_libdir}/%{name}/plugins-%{gs_plugin_version}/.*\\.so.*$
|
||||
%global glib2_version 2.46.0
|
||||
%global gtk3_version 3.22.4
|
||||
%global json_glib_version 1.2.0
|
||||
%global packagekit_version 1.1.1
|
||||
%global appstream_glib_version 0.7.8
|
||||
%global libsoup_version 2.52.0
|
||||
%global gsettings_desktop_schemas_version 3.12.0
|
||||
%global gnome_desktop_version 3.18.0
|
||||
%global fwupd_version 1.0.7
|
||||
%global flatpak_version 0.9.4
|
||||
|
||||
Name: gnome-software
|
||||
Version: 49.3
|
||||
Release: 1%{?dist}
|
||||
Version: 3.28.2
|
||||
Release: 4%{?dist}
|
||||
Summary: A software center for GNOME
|
||||
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://apps.gnome.org/Software
|
||||
Source0: https://download.gnome.org/sources/gnome-software/49/%{name}-%{tarball_version}.tar.xz
|
||||
License: GPLv2+
|
||||
URL: https://wiki.gnome.org/Apps/Software
|
||||
Source0: https://download.gnome.org/sources/gnome-software/3.28/%{name}-%{version}.tar.xz
|
||||
# /usr/share/backgrounds/f28/default/standard/f28.png from f28-backgrounds-base
|
||||
Source1: f28.png
|
||||
# /usr/share/backgrounds/f29/default/wide/f29.png from f29-backgrounds-base
|
||||
Source2: f29.png
|
||||
|
||||
%if %{with dnf5}
|
||||
# to update the patch enter the ./dnf5-plugin/ directory and run from
|
||||
# it the ./update-patch.sh script
|
||||
Patch: 0001-dnf5-plugin.patch
|
||||
%endif
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2416542
|
||||
Patch: 0002-rhbug2416542-crash-under-gs_flatpak_refine_wildcard.patch
|
||||
|
||||
# ostree and flatpak not on i686 for Fedora and RHEL 10
|
||||
# https://github.com/containers/composefs/pull/229#issuecomment-1838735764
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 10
|
||||
ExcludeArch: %{ix86}
|
||||
%endif
|
||||
Patch0: 0001-Include-the-distro-version-in-Fedora-distro-upgrade-.patch
|
||||
Patch1: 0002-Sort-distro-upgrades-in-the-plugin-loader.patch
|
||||
# Fixes an ordering issue which often causes the first scan for updates
|
||||
# to miss 'generic' ones
|
||||
# https://gitlab.gnome.org/GNOME/gnome-software/merge_requests/116
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1638563
|
||||
Patch2: 116.patch
|
||||
|
||||
BuildRequires: gettext
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: docbook-style-xsl
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gettext
|
||||
BuildRequires: git-core
|
||||
BuildRequires: fwupd-devel >= %{fwupd_version}
|
||||
BuildRequires: glib2-devel >= %{glib2_version}
|
||||
BuildRequires: gnome-desktop3-devel
|
||||
BuildRequires: gsettings-desktop-schemas-devel >= %{gsettings_desktop_schemas_version}
|
||||
BuildRequires: gspell-devel
|
||||
BuildRequires: gtk3-devel >= %{gtk3_version}
|
||||
BuildRequires: gtk-doc
|
||||
BuildRequires: itstool
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: json-glib-devel >= %{json_glib_version}
|
||||
BuildRequires: libappstream-glib-devel >= %{appstream_glib_version}
|
||||
BuildRequires: libsoup-devel
|
||||
BuildRequires: meson
|
||||
BuildRequires: pkgconfig(appstream) >= %{appstream_version}
|
||||
BuildRequires: pkgconfig(flatpak) >= %{flatpak_version}
|
||||
BuildRequires: pkgconfig(fwupd) >= %{fwupd_version}
|
||||
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
|
||||
BuildRequires: pkgconfig(gio-unix-2.0) >= %{glib2_version}
|
||||
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
|
||||
BuildRequires: pkgconfig(gmodule-2.0) >= %{glib2_version}
|
||||
BuildRequires: pkgconfig(gsettings-desktop-schemas)
|
||||
BuildRequires: pkgconfig(gtk4) >= %{gtk4_version}
|
||||
BuildRequires: pkgconfig(gudev-1.0)
|
||||
BuildRequires: pkgconfig(json-glib-1.0) >= %{json_glib_version}
|
||||
BuildRequires: pkgconfig(libadwaita-1) >= %{libadwaita_version}
|
||||
BuildRequires: pkgconfig(libdnf)
|
||||
BuildRequires: pkgconfig(libsoup-3.0)
|
||||
%if %{with malcontent}
|
||||
BuildRequires: pkgconfig(malcontent-0)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(ostree-1)
|
||||
%if %{with packagekit}
|
||||
BuildRequires: pkgconfig(packagekit-glib2) >= %{packagekit_version}
|
||||
%endif
|
||||
BuildRequires: pkgconfig(polkit-gobject-1)
|
||||
BuildRequires: pkgconfig(rpm)
|
||||
%if %{with rpmostree}
|
||||
BuildRequires: pkgconfig(rpm-ostree-1)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(sysprof-capture-4)
|
||||
BuildRequires: pkgconfig(xmlb) >= %{libxmlb_version}
|
||||
BuildRequires: systemd
|
||||
BuildRequires: PackageKit-glib-devel >= %{packagekit_version}
|
||||
BuildRequires: polkit-devel
|
||||
BuildRequires: libsecret-devel
|
||||
BuildRequires: flatpak-devel >= %{flatpak_version}
|
||||
BuildRequires: ostree-devel
|
||||
BuildRequires: libgudev1-devel
|
||||
BuildRequires: valgrind-devel
|
||||
BuildRequires: liboauth-devel
|
||||
BuildRequires: snapd-glib-devel
|
||||
|
||||
%if 0%{?fedora} == 27
|
||||
Requires: appstream-data >= 27-9
|
||||
%else
|
||||
Requires: appstream-data
|
||||
Requires: appstream%{?_isa} >= %{appstream_version}
|
||||
%if %{with webapps}
|
||||
Requires: epiphany-runtime%{?_isa}
|
||||
%endif
|
||||
%if %{with dnf5}
|
||||
Requires: dnf5daemon-server%{?_isa} >= %{dnf5_version}
|
||||
Requires: dnf5daemon-server-polkit
|
||||
Requires: libdnf5-plugin-appstream%{?_isa}
|
||||
Requires: rpm-plugin-dbus-announce%{?_isa}
|
||||
%if 0%{?fedora}
|
||||
Requires: epiphany-runtime
|
||||
%endif
|
||||
Requires: flatpak%{?_isa} >= %{flatpak_version}
|
||||
Requires: flatpak-libs%{?_isa} >= %{flatpak_version}
|
||||
Requires: fwupd%{?_isa} >= %{fwupd_version}
|
||||
Requires: glib2%{?_isa} >= %{glib2_version}
|
||||
%if !0%{?rhel}
|
||||
Requires: gnome-app-list
|
||||
%endif
|
||||
Requires: gnome-desktop3%{?_isa} >= %{gnome_desktop_version}
|
||||
# gnome-menus is needed for app folder .directory entries
|
||||
Requires: gnome-menus%{?_isa}
|
||||
Requires: gsettings-desktop-schemas%{?_isa}
|
||||
Requires: gtk4 >= %{gtk4_version}
|
||||
Requires: gsettings-desktop-schemas%{?_isa} >= %{gsettings_desktop_schemas_version}
|
||||
Requires: gtk3%{?_isa} >= %{gtk3_version}
|
||||
Requires: json-glib%{?_isa} >= %{json_glib_version}
|
||||
Requires: iso-codes
|
||||
Requires: libadwaita >= %{libadwaita_version}
|
||||
Requires: libappstream-glib%{?_isa} >= %{appstream_glib_version}
|
||||
# librsvg2 is needed for gdk-pixbuf svg loader
|
||||
Requires: librsvg2%{?_isa}
|
||||
Requires: libxmlb%{?_isa} >= %{libxmlb_version}
|
||||
Requires: libsoup%{?_isa} >= %{libsoup_version}
|
||||
Requires: PackageKit%{?_isa} >= %{packagekit_version}
|
||||
|
||||
%if %{with packagekit}
|
||||
Recommends: PackageKit%{?_isa} >= %{packagekit_version}
|
||||
%endif
|
||||
Recommends: %{name}-fedora-langpacks
|
||||
|
||||
Obsoletes: gnome-software-snap < 3.33.1
|
||||
Obsoletes: gnome-software-editor < 3.35.1
|
||||
# this is not a library version
|
||||
%define gs_plugin_version 11
|
||||
|
||||
%description
|
||||
gnome-software is an application that makes it easy to add, remove
|
||||
|
|
@ -140,79 +95,39 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
|||
These development files are for building gnome-software plugins outside
|
||||
the source tree. Most users do not need this subpackage installed.
|
||||
|
||||
%package fedora-langpacks
|
||||
Summary: Contains fedora-langpacks plugin
|
||||
%package editor
|
||||
Summary: Banner designer for GNOME Software
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description fedora-langpacks
|
||||
The fedora-langpacks plugin ensures langpacks packages are installed
|
||||
for the current locale.
|
||||
%description editor
|
||||
Editor for designing banners for GNOME Software.
|
||||
|
||||
%if %{with rpmostree}
|
||||
%package rpm-ostree
|
||||
Summary: rpm-ostree backend for gnome-software
|
||||
%package snap
|
||||
Summary: Support for Ubuntu Snap packages
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: rpm-ostree%{?_isa}
|
||||
Supplements: (gnome-software%{?_isa} and rpm-ostree%{?_isa})
|
||||
Supplements: (gnome-software%{?_isa} and snapd%{?_isa})
|
||||
|
||||
%description rpm-ostree
|
||||
gnome-software is an application that makes it easy to add, remove
|
||||
and update software in the GNOME desktop.
|
||||
|
||||
This package includes the rpm-ostree backend.
|
||||
%endif
|
||||
%description snap
|
||||
Adds support for Snap packages from the Snap store.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -S gendiff -n %{name}-%{tarball_version}
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%meson \
|
||||
-Dsnap=false \
|
||||
%if %{with malcontent}
|
||||
-Dmalcontent=true \
|
||||
%else
|
||||
-Dmalcontent=false \
|
||||
%endif
|
||||
-Dgudev=true \
|
||||
%if %{with packagekit}
|
||||
-Dpackagekit=true \
|
||||
-Dpackagekit_autoremove=true \
|
||||
%else
|
||||
-Dpackagekit=false \
|
||||
%endif
|
||||
%if %{with dnf5}
|
||||
-Ddnf5=true \
|
||||
%endif
|
||||
-Dexternal_appstream=false \
|
||||
%if %{with rpmostree}
|
||||
-Drpm_ostree=true \
|
||||
%else
|
||||
-Drpm_ostree=false \
|
||||
%endif
|
||||
%if %{with webapps}
|
||||
-Dwebapps=true \
|
||||
-Dhardcoded_foss_webapps=true \
|
||||
-Dhardcoded_proprietary_webapps=false \
|
||||
%else
|
||||
-Dwebapps=false \
|
||||
-Dhardcoded_foss_webapps=false \
|
||||
-Dhardcoded_proprietary_webapps=false \
|
||||
%endif
|
||||
%if %{with dkms}
|
||||
-Ddkms=true \
|
||||
%else
|
||||
-Ddkms=false \
|
||||
%endif
|
||||
-Dtests=false
|
||||
-Denable-snap=true \
|
||||
-Denable-gudev=true \
|
||||
-Denable-packagekit=true \
|
||||
-Denable-external-appstream=false \
|
||||
-Denable-rpm-ostree=false \
|
||||
-Denable-tests=false \
|
||||
-Denable-ubuntuone=false \
|
||||
-Denable-ubuntu-reviews=false
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
# remove unneeded dpkg and dummy plugins
|
||||
rm %{buildroot}%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dpkg.so
|
||||
rm %{buildroot}%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dummy.so
|
||||
|
||||
# make the software center load faster
|
||||
desktop-file-edit %{buildroot}%{_datadir}/applications/org.gnome.Software.desktop \
|
||||
--set-key=X-AppInstall-Package --set-value=%{name}
|
||||
|
|
@ -220,113 +135,591 @@ desktop-file-edit %{buildroot}%{_datadir}/applications/org.gnome.Software.deskto
|
|||
# set up for Fedora
|
||||
cat >> %{buildroot}%{_datadir}/glib-2.0/schemas/org.gnome.software-fedora.gschema.override << FOE
|
||||
[org.gnome.software]
|
||||
%if 0%{?rhel}
|
||||
official-repos = [ 'rhel-%{?rhel}' ]
|
||||
%else
|
||||
official-repos = [ 'anaconda', 'fedora', 'fedora-debuginfo', 'fedora-source', 'koji-override-0', 'koji-override-1', 'rawhide', 'rawhide-debuginfo', 'rawhide-source', 'updates', 'updates-debuginfo', 'updates-source', 'updates-testing', 'updates-testing-debuginfo', 'updates-testing-source', 'fedora-modular', 'fedora-modular-debuginfo', 'fedora-modular-source', 'rawhide-modular', 'rawhide-modular-debuginfo', 'rawhide-modular-source', 'fedora-cisco-openh264', 'fedora-cisco-openh264-debuginfo' ]
|
||||
required-repos = [ 'fedora', 'updates' ]
|
||||
packaging-format-preference = [ 'flatpak:fedora-testing', 'flatpak:fedora', 'rpm' ]
|
||||
%endif
|
||||
official-repos = [ 'fedora', 'fedora-debuginfo', 'fedora-source', 'koji-override-0', 'koji-override-1', 'rawhide', 'rawhide-debuginfo', 'rawhide-source', 'updates', 'updates-debuginfo', 'updates-source', 'updates-testing', 'updates-testing-debuginfo', 'updates-testing-source' ]
|
||||
FOE
|
||||
|
||||
# Install upgrade background image
|
||||
mkdir -p %{buildroot}%{_datadir}/gnome-software/backgrounds
|
||||
cp -a %{SOURCE1} %{buildroot}%{_datadir}/gnome-software/backgrounds/
|
||||
cp -a %{SOURCE2} %{buildroot}%{_datadir}/gnome-software/backgrounds/
|
||||
|
||||
%find_lang %name --with-gnome
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
%post
|
||||
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
%postun
|
||||
if [ $1 -eq 0 ]; then
|
||||
touch --no-create %{_datadir}/icons/hicolor &> /dev/null || :
|
||||
gtk-update-icon-cache %{_datadir}/icons/hicolor &> /dev/null || :
|
||||
glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
|
||||
fi
|
||||
|
||||
%posttrans
|
||||
gtk-update-icon-cache %{_datadir}/icons/hicolor &> /dev/null || :
|
||||
glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
|
||||
|
||||
%files -f %{name}.lang
|
||||
%doc AUTHORS NEWS README.md
|
||||
%doc AUTHORS README.md
|
||||
%license COPYING
|
||||
%{_bindir}/gnome-software
|
||||
%{_datadir}/applications/gnome-software-local-file-flatpak.desktop
|
||||
%{_datadir}/applications/gnome-software-local-file-fwupd.desktop
|
||||
%if %{with packagekit} || %{with rpmostree} || %{with dnf5}
|
||||
%{_datadir}/applications/gnome-software-local-file-packagekit.desktop
|
||||
%endif
|
||||
%{_datadir}/applications/gnome-software-local-file.desktop
|
||||
%{_datadir}/applications/org.gnome.Software.desktop
|
||||
%{_datadir}/bash-completion/completions/gnome-software
|
||||
%{_mandir}/man1/gnome-software.1*
|
||||
%{_datadir}/icons/hicolor/*/apps/org.gnome.Software.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Software-symbolic.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-addon.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-application.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-codecs.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-driver.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-firmware.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-input-sources.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-language.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-os-updates.svg
|
||||
%{_datadir}/icons/hicolor/scalable/categories/system-component-runtime.svg
|
||||
%{_datadir}/metainfo/org.gnome.Software.metainfo.xml
|
||||
%if %{with webapps}
|
||||
%dir %{_datadir}/gnome-software
|
||||
%{_datadir}/gnome-software/*.png
|
||||
%{_mandir}/man1/gnome-software.1.gz
|
||||
%{_datadir}/icons/hicolor/*/apps/*
|
||||
%{_datadir}/gnome-software/backgrounds/
|
||||
%{_datadir}/gnome-software/featured-*.svg
|
||||
%{_datadir}/gnome-software/featured-*.jpg
|
||||
%{_datadir}/metainfo/org.gnome.Software.appdata.xml
|
||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Epiphany.metainfo.xml
|
||||
%endif
|
||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Flatpak.metainfo.xml
|
||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Fwupd.metainfo.xml
|
||||
%dir %{_libdir}/gnome-software/plugins-%{gs_plugin_version}
|
||||
%{_libdir}/gnome-software/libgnomesoftware.so.%{gs_plugin_version}
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_appstream.so
|
||||
%if %{with dnf5}
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dnf5.so
|
||||
%endif
|
||||
%if %{with webapps}
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_epiphany.so
|
||||
%endif
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fedora-pkgdb-collections.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_flatpak.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fwupd.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_generic-updates.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-blocklist.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_icons.so
|
||||
%if %{with malcontent}
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_malcontent.so
|
||||
%endif
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_modalias.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_os-release.so
|
||||
%if %{with packagekit}
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit.so
|
||||
%endif
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_provenance-license.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_provenance.so
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_repos.so
|
||||
%if %{with webapps}
|
||||
%dir %{_datadir}/swcatalog
|
||||
%dir %{_datadir}/swcatalog/xml
|
||||
%{_datadir}/swcatalog/xml/gnome-pwa-list-foss.xml
|
||||
%endif
|
||||
%if %{with packagekit}
|
||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Odrs.metainfo.xml
|
||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Steam.metainfo.xml
|
||||
%dir %{_libdir}/gs-plugins-%{gs_plugin_version}
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_appstream.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_desktop-categories.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_desktop-menu-path.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_dpkg.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_dummy.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_epiphany.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fedora-pkgdb-collections.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_flatpak.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fwupd.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_generic-updates.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-blacklist.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-featured.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-popular.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_icons.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_key-colors-metadata.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_key-colors.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_modalias.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_odrs.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_os-release.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-history.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-local.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-offline.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-proxy.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refine-repos.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refine.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refresh.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-upgrade.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-url-to-app.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_provenance-license.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_provenance.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_repos.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_rewrite-resource.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_shell-extensions.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_steam.so
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_systemd-updates.so
|
||||
%{_sysconfdir}/xdg/autostart/gnome-software-service.desktop
|
||||
%{_datadir}/app-info/xmls/org.gnome.Software.Featured.xml
|
||||
%{_datadir}/dbus-1/services/org.freedesktop.PackageKit.service
|
||||
%endif
|
||||
%{_datadir}/dbus-1/services/org.gnome.Software.service
|
||||
%{_datadir}/gnome-shell/search-providers/org.gnome.Software-search-provider.ini
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.software.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.software-fedora.gschema.override
|
||||
%{_libexecdir}/gnome-software-cmd
|
||||
%{_libexecdir}/gnome-software-restarter
|
||||
%{_userunitdir}/gnome-software.service
|
||||
|
||||
%if %{with dkms}
|
||||
%{_datadir}/polkit-1/actions/org.gnome.software.dkms-helper.policy
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dkms.so
|
||||
%{_libexecdir}/gnome-software-dkms-helper
|
||||
%endif
|
||||
|
||||
%files fedora-langpacks
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fedora-langpacks.so
|
||||
|
||||
%if %{with rpmostree}
|
||||
%files rpm-ostree
|
||||
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_rpm-ostree.so
|
||||
%endif
|
||||
%files snap
|
||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_snap.so
|
||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Snap.metainfo.xml
|
||||
|
||||
%files devel
|
||||
%{_libdir}/pkgconfig/gnome-software.pc
|
||||
%dir %{_includedir}/gnome-software
|
||||
%{_includedir}/gnome-software/*.h
|
||||
%{_libdir}/gnome-software/libgnomesoftware.so
|
||||
%dir %{_datadir}/gtk-doc
|
||||
%dir %{_datadir}/gtk-doc/html
|
||||
%{_datadir}/gtk-doc/html/gnome-software/
|
||||
%{_datadir}/gtk-doc/html/gnome-software
|
||||
|
||||
%files editor
|
||||
%{_bindir}/gnome-software-editor
|
||||
%{_datadir}/applications/org.gnome.Software.Editor.desktop
|
||||
%{_mandir}/man1/gnome-software-editor.1*
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
* Thu Oct 11 2018 Adam Williamson <awilliam@redhat.com> - 3.28.2-4
|
||||
- Backport MR#116 to fix bug with generic updates (#1638563)
|
||||
|
||||
* Mon Oct 08 2018 Kalev Lember <klember@redhat.com> - 3.28.2-3
|
||||
- Backport fixes for N+2 distro upgrades (#1628497)
|
||||
|
||||
* Thu Sep 06 2018 Kalev Lember <klember@redhat.com> - 3.28.2-2
|
||||
- Add artwork for F29 Beta upgrades
|
||||
|
||||
* Wed May 09 2018 Kalev Lember <klember@redhat.com> - 3.28.2-1
|
||||
- Update to 3.28.2
|
||||
|
||||
* Wed Apr 18 2018 Kalev Lember <klember@redhat.com> - 3.28.1-1.1
|
||||
- Sync F28 upgrade background image with final F28 artwork
|
||||
|
||||
* Mon Apr 09 2018 Kalev Lember <klember@redhat.com> - 3.28.1-1
|
||||
- Update to 3.28.1
|
||||
|
||||
* Thu Mar 15 2018 Kalev Lember <klember@redhat.com> - 3.28.0-4
|
||||
- Fix opening results from gnome-shell search provider
|
||||
|
||||
* Wed Mar 14 2018 Kalev Lember <klember@redhat.com> - 3.28.0-3
|
||||
- Fix crash on initial run with no network (#1554986)
|
||||
|
||||
* Tue Mar 13 2018 Kalev Lember <klember@redhat.com> - 3.28.0-2
|
||||
- Backport an upstream patch to fix shell extensions app ID
|
||||
|
||||
* Mon Mar 12 2018 Kalev Lember <klember@redhat.com> - 3.28.0-1
|
||||
- Update to 3.28.0
|
||||
- Move org.gnome.Software.Featured.xml from -editor to main package
|
||||
|
||||
* Fri Mar 02 2018 Kalev Lember <klember@redhat.com> - 3.26.7-1
|
||||
- Update to 3.26.7
|
||||
- Ship a background image for F28 beta upgrades
|
||||
|
||||
* Thu Feb 08 2018 Kalev Lember <klember@redhat.com> - 3.26.6-1
|
||||
- Update to 3.26.6
|
||||
- Add fedora-workstation-repositories to nonfree-sources schema defaults
|
||||
|
||||
* Mon Jan 08 2018 Kalev Lember <klember@redhat.com> - 3.26.5-1
|
||||
- Update to 3.26.5
|
||||
- Drop unused --without packagekit option
|
||||
|
||||
* Sun Dec 17 2017 Kalev Lember <klember@redhat.com> - 3.26.4-1
|
||||
- Update to 3.26.4
|
||||
|
||||
* Tue Nov 21 2017 Kalev Lember <klember@redhat.com> - 3.26.3-1
|
||||
- Update to 3.26.3
|
||||
|
||||
* Thu Nov 09 2017 Kalev Lember <klember@redhat.com> - 3.26.2-1
|
||||
- Update to 3.26.2
|
||||
|
||||
* Wed Oct 25 2017 Kalev Lember <klember@redhat.com> - 3.26.1-3
|
||||
- Fix "too many results returned" error after distro upgrades (#1496489)
|
||||
|
||||
* Tue Oct 10 2017 Kalev Lember <klember@redhat.com> - 3.26.1-2
|
||||
- Backport a flatpakref installation fix
|
||||
|
||||
* Sun Oct 08 2017 Kalev Lember <klember@redhat.com> - 3.26.1-1
|
||||
- Update to 3.26.1
|
||||
|
||||
* Mon Sep 11 2017 Kalev Lember <klember@redhat.com> - 3.26.0-1
|
||||
- Update to 3.26.0
|
||||
|
||||
* Sun Aug 27 2017 Kalev Lember <klember@redhat.com> - 3.25.91-1
|
||||
- Update to 3.25.91
|
||||
|
||||
* Tue Aug 15 2017 Kalev Lember <klember@redhat.com> - 3.25.90-1
|
||||
- Update to 3.25.90
|
||||
|
||||
* Fri Aug 11 2017 Igor Gnatenko <ignatenko@redhat.com> - 3.25.4-6
|
||||
- Rebuilt after RPM update (№ 3)
|
||||
|
||||
* Thu Aug 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 3.25.4-5
|
||||
- Rebuilt for RPM soname bump
|
||||
|
||||
* Thu Aug 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 3.25.4-4
|
||||
- Rebuilt for RPM soname bump
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.25.4-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.25.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Fri Jul 21 2017 Kalev Lember <klember@redhat.com> - 3.25.4-1
|
||||
- Update to 3.25.4
|
||||
|
||||
* Tue Jul 18 2017 Kalev Lember <klember@redhat.com> - 3.25.3-6
|
||||
- Drop a meson workaround now that meson is fixed
|
||||
|
||||
* Wed Jun 28 2017 Neal Gompa <ngompa13@gmail.com> - 3.25.3-5
|
||||
- Actually properly enable snap subpackage after removing conditional
|
||||
|
||||
* Wed Jun 28 2017 Neal Gompa <ngompa13@gmail.com> - 3.25.3-4
|
||||
- Remove unnecessary arch-specific conditional for snap subpackage
|
||||
|
||||
* Tue Jun 27 2017 Neal Gompa <ngompa13@gmail.com> - 3.25.3-3
|
||||
- Ensure snap subpackage is installed if snapd is installed
|
||||
|
||||
* Fri Jun 23 2017 Richard Hughes <rhughes@redhat.com> - 3.24.3-2
|
||||
- Enable the snap subpackage
|
||||
|
||||
* Fri Jun 23 2017 Kalev Lember <klember@redhat.com> - 3.25.3-1
|
||||
- Update to 3.25.3
|
||||
- Switch to the meson build system
|
||||
- Add an -editor subpackage with new banner editor
|
||||
|
||||
* Mon May 15 2017 Richard Hughes <rhughes@redhat.com> - 3.24.3-1
|
||||
- Update to 3.23.3
|
||||
- Fix a common crash when installing flatpakrepo files
|
||||
- Ensure we show the banner when upgrades are available
|
||||
|
||||
* Tue May 09 2017 Kalev Lember <klember@redhat.com> - 3.24.2-1
|
||||
- Update to 3.24.2
|
||||
|
||||
* Tue Apr 25 2017 Adam Williamson <awilliam@redhat.com> - 3.24.1-2
|
||||
- Backport crasher fix from upstream (RHBZ #1444669 / BGO #781217)
|
||||
|
||||
* Tue Apr 11 2017 Kalev Lember <klember@redhat.com> - 3.24.1-1
|
||||
- Update to 3.24.1
|
||||
|
||||
* Tue Mar 21 2017 Kalev Lember <klember@redhat.com> - 3.24.0-1
|
||||
- Update to 3.24.0
|
||||
|
||||
* Thu Mar 16 2017 Kalev Lember <klember@redhat.com> - 3.23.92-1
|
||||
- Update to 3.23.92
|
||||
|
||||
* Mon Feb 27 2017 Richard Hughes <rhughes@redhat.com> - 3.23.91-1
|
||||
- Update to 3.23.91
|
||||
|
||||
* Mon Feb 13 2017 Richard Hughes <rhughes@redhat.com> - 3.23.90-1
|
||||
- Update to 3.23.90
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.23.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Dec 15 2016 Richard Hughes <rhughes@redhat.com> - 3.23.3-1
|
||||
- Update to 3.23.3
|
||||
|
||||
* Wed Nov 23 2016 Kalev Lember <klember@redhat.com> - 3.23.2-1
|
||||
- Update to 3.23.2
|
||||
|
||||
* Tue Nov 08 2016 Kalev Lember <klember@redhat.com> - 3.22.2-1
|
||||
- Update to 3.22.2
|
||||
|
||||
* Wed Oct 12 2016 Kalev Lember <klember@redhat.com> - 3.22.1-1
|
||||
- Update to 3.22.1
|
||||
|
||||
* Mon Sep 19 2016 Kalev Lember <klember@redhat.com> - 3.22.0-1
|
||||
- Update to 3.22.0
|
||||
|
||||
* Wed Sep 14 2016 Kalev Lember <klember@redhat.com> - 3.21.92-1
|
||||
- Update to 3.21.92
|
||||
- Don't set group tags
|
||||
|
||||
* Thu Sep 01 2016 Kalev Lember <klember@redhat.com> - 3.21.91-1
|
||||
- Update to 3.21.91
|
||||
|
||||
* Wed Aug 17 2016 Kalev Lember <klember@redhat.com> - 3.21.90-2
|
||||
- Rebuilt for fixed libappstream-glib headers
|
||||
|
||||
* Wed Aug 17 2016 Kalev Lember <klember@redhat.com> - 3.21.90-1
|
||||
- Update to 3.21.90
|
||||
- Tighten -devel subpackage dependencies
|
||||
|
||||
* Thu Jul 28 2016 Richard Hughes <rhughes@redhat.com> - 3.21.4-2
|
||||
- Allow building without PackageKit for the atomic workstation.
|
||||
|
||||
* Mon Jul 18 2016 Richard Hughes <rhughes@redhat.com> - 3.21.4-1
|
||||
- Update to 3.21.4
|
||||
|
||||
* Thu May 26 2016 Kalev Lember <klember@redhat.com> - 3.21.2-2
|
||||
- Build with flatpak support
|
||||
|
||||
* Mon May 23 2016 Richard Hughes <rhughes@redhat.com> - 3.21.2-1
|
||||
- Update to 3.21.2
|
||||
|
||||
* Tue May 10 2016 Kalev Lember <klember@redhat.com> - 3.21.1-2
|
||||
- Require PackageKit 1.1.1 for system upgrade support
|
||||
|
||||
* Mon Apr 25 2016 Richard Hughes <rhughes@redhat.com> - 3.21.1-1
|
||||
- Update to 3.21.1
|
||||
|
||||
* Mon Apr 25 2016 Richard Hughes <rhughes@redhat.com> - 3.20.2-1
|
||||
- Update to 3.20.1
|
||||
- Allow popular and featured apps to match any plugin
|
||||
- Do not make the ODRS plugin depend on xdg-app
|
||||
- Fix many of the os-upgrade issues and implement the latest mockups
|
||||
- Make all the plugins more threadsafe
|
||||
- Return all update descriptions newer than the installed version
|
||||
- Show some non-fatal error messages if installing fails
|
||||
- Use a background PackageKit transaction when downloading upgrades
|
||||
|
||||
* Wed Apr 13 2016 Kalev Lember <klember@redhat.com> - 3.20.1-1
|
||||
- Update to 3.20.1
|
||||
|
||||
* Fri Apr 01 2016 Richard Hughes <rhughes@redhat.com> - 3.20.1-2
|
||||
- Set the list of official sources
|
||||
- Compile with xdg-app support
|
||||
|
||||
* Tue Mar 22 2016 Kalev Lember <klember@redhat.com> - 3.20.0-1
|
||||
- Update to 3.20.0
|
||||
|
||||
* Mon Mar 14 2016 Richard Hughes <rhughes@redhat.com> - 3.19.92-1
|
||||
- Update to 3.19.92
|
||||
|
||||
* Thu Mar 03 2016 Kalev Lember <klember@redhat.com> - 3.19.91-2
|
||||
- Set minimum required json-glib version
|
||||
|
||||
* Mon Feb 29 2016 Richard Hughes <rhughes@redhat.com> - 3.19.91-1
|
||||
- Update to 3.19.91
|
||||
|
||||
* Mon Feb 15 2016 Richard Hughes <rhughes@redhat.com> - 3.19.90-1
|
||||
- Update to 3.19.90
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.19.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Fri Jan 15 2016 Richard Hughes <rhughes@redhat.com> - 3.19.4-1
|
||||
- Update to 3.19.4
|
||||
|
||||
* Thu Dec 03 2015 Kalev Lember <klember@redhat.com> - 3.18.3-2
|
||||
- Require librsvg2 for the gdk-pixbuf svg loader
|
||||
|
||||
* Thu Nov 05 2015 Richard Hughes <rhughes@redhat.com> - 3.18.3-1
|
||||
- Update to 3.18.3
|
||||
- Use the correct user agent string when downloading firmware
|
||||
- Fix a crash in the limba plugin
|
||||
- Fix installing web applications
|
||||
|
||||
* Mon Oct 26 2015 Kalev Lember <klember@redhat.com> - 3.18.2-2
|
||||
- Fix apps reappearing as installed a few seconds after removal (#1275163)
|
||||
|
||||
* Thu Oct 15 2015 Kalev Lember <klember@redhat.com> - 3.18.2-1
|
||||
- Update to 3.18.2
|
||||
|
||||
* Tue Oct 13 2015 Kalev Lember <klember@redhat.com> - 3.18.1-1
|
||||
- Update to 3.18.1
|
||||
|
||||
* Wed Oct 07 2015 Kalev Lember <klember@redhat.com> - 3.18.0-2
|
||||
- Backport two crasher fixes from upstream
|
||||
|
||||
* Mon Sep 21 2015 Kalev Lember <klember@redhat.com> - 3.18.0-1
|
||||
- Update to 3.18.0
|
||||
|
||||
* Tue Sep 15 2015 Kalev Lember <klember@redhat.com> - 3.17.92-2
|
||||
- Update dependency versions
|
||||
|
||||
* Tue Sep 15 2015 Richard Hughes <rhughes@redhat.com> - 3.17.92-1
|
||||
- Update to 3.17.92
|
||||
|
||||
* Thu Sep 10 2015 Richard Hughes <rhughes@redhat.com> - 3.17.91-2
|
||||
- Fix firmware updates
|
||||
|
||||
* Thu Sep 03 2015 Kalev Lember <klember@redhat.com> - 3.17.91-1
|
||||
- Update to 3.17.91
|
||||
|
||||
* Wed Aug 19 2015 Kalev Lember <klember@redhat.com> - 3.17.90-1
|
||||
- Update to 3.17.90
|
||||
|
||||
* Wed Aug 12 2015 Richard Hughes <rhughes@redhat.com> - 3.17.3-1
|
||||
- Update to 3.17.3
|
||||
|
||||
* Wed Jul 22 2015 David King <amigadave@amigadave.com> - 3.17.2-3
|
||||
- Bump for new gnome-desktop3
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.17.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Fri Jun 05 2015 Kalev Lember <kalevlember@gmail.com> - 3.17.2-1
|
||||
- Update to 3.17.2
|
||||
|
||||
* Mon May 25 2015 Kalev Lember <kalevlember@gmail.com> - 3.17.1-1
|
||||
- Update to 3.17.1
|
||||
|
||||
* Fri May 15 2015 Kalev Lember <kalevlember@gmail.com> - 3.16.2-2
|
||||
- Fix a crash under Wayland (#1221968)
|
||||
|
||||
* Mon May 11 2015 Kalev Lember <kalevlember@gmail.com> - 3.16.2-1
|
||||
- Update to 3.16.2
|
||||
|
||||
* Tue Apr 14 2015 Kalev Lember <kalevlember@gmail.com> - 3.16.1-1
|
||||
- Update to 3.16.1
|
||||
|
||||
* Mon Mar 23 2015 Kalev Lember <kalevlember@gmail.com> - 3.16.0-1
|
||||
- Update to 3.16.0
|
||||
|
||||
* Mon Mar 16 2015 Kalev Lember <kalevlember@gmail.com> - 3.15.92-1
|
||||
- Update to 3.15.92
|
||||
- Use license macro for the COPYING file
|
||||
- Add a patch to adapt to gnome-terminal desktop file rename
|
||||
|
||||
* Mon Mar 02 2015 Kalev Lember <kalevlember@gmail.com> - 3.15.91-1
|
||||
- Update to 3.15.91
|
||||
|
||||
* Sat Feb 21 2015 Kalev Lember <kalevlember@gmail.com> - 3.15.90-3
|
||||
- Export DisplayName property on the packagekit session service
|
||||
|
||||
* Thu Feb 19 2015 Kalev Lember <kalevlember@gmail.com> - 3.15.90-2
|
||||
- Backport a crash fix
|
||||
|
||||
* Tue Feb 17 2015 Richard Hughes <rhughes@redhat.com> - 3.15.90-1
|
||||
- Update to 3.15.90
|
||||
|
||||
* Mon Jan 19 2015 Richard Hughes <rhughes@redhat.com> - 3.15.4-1
|
||||
- Update to 3.15.4
|
||||
|
||||
* Tue Nov 25 2014 Kalev Lember <kalevlember@gmail.com> - 3.15.2-1
|
||||
- Update to 3.15.2
|
||||
|
||||
* Thu Nov 13 2014 Richard Hughes <rhughes@redhat.com> - 3.14.2-3
|
||||
- Fix non-Fedora build
|
||||
|
||||
* Tue Nov 11 2014 Richard Hughes <rhughes@redhat.com> - 3.14.2-2
|
||||
- Backport a patch to fix compilation
|
||||
|
||||
* Mon Nov 10 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.2-1
|
||||
- Update to 3.14.2
|
||||
|
||||
* Sat Nov 08 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.1-3
|
||||
- Update the list of system apps
|
||||
|
||||
* Sat Nov 01 2014 David King <amigadave@amigadave.com> - 3.14.1-2
|
||||
- Rebuild for new libappstream-glib (#1156494)
|
||||
|
||||
* Mon Oct 13 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.1-1
|
||||
- Update to 3.14.1
|
||||
|
||||
* Thu Oct 09 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.0-2
|
||||
- Depend on gnome-menus for app folder directory entries
|
||||
|
||||
* Mon Sep 22 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.0-1
|
||||
- Update to 3.14.0
|
||||
|
||||
* Wed Sep 17 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.92-2
|
||||
- Set minimum required dependency versions (#1136343)
|
||||
|
||||
* Tue Sep 16 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.92-1
|
||||
- Update to 3.13.92
|
||||
- Replace gnome-system-log with gnome-logs in the system apps list
|
||||
|
||||
* Tue Sep 02 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.91-1
|
||||
- Update to 3.13.91
|
||||
|
||||
* Tue Aug 19 2014 Richard Hughes <rhughes@redhat.com> - 3.13.90-1
|
||||
- Update to 3.13.90
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.13.5-0.2.git5c89189
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Mon Aug 11 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.5-0.1.git5c89189
|
||||
- Update to 3.13.5 git snapshot
|
||||
- Ship HighContrast icons
|
||||
|
||||
* Sun Aug 03 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.4-2
|
||||
- Replace Epiphany with Firefox in the system apps list
|
||||
|
||||
* Wed Jul 23 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.4-1
|
||||
- Update to 3.13.4
|
||||
|
||||
* Wed Jun 25 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.3-1
|
||||
- Update to 3.13.3
|
||||
|
||||
* Thu Jun 12 2014 Richard Hughes <rhughes@redhat.com> - 3.13.3-0.2.git7491627
|
||||
- Depend on the newly-created appstream-data package and stop shipping
|
||||
the metadata here.
|
||||
|
||||
* Sat Jun 07 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.3-0.1.git7491627
|
||||
- Update to 3.13.3 git snapshot
|
||||
|
||||
* Wed May 28 2014 Richard Hughes <rhughes@redhat.com> - 3.13.2-2
|
||||
- Rebuild with new metadata.
|
||||
|
||||
* Wed May 28 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.2-1
|
||||
- Update to 3.13.2
|
||||
|
||||
* Thu May 15 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.1-4
|
||||
- Depend on gsettings-desktop-schemas
|
||||
|
||||
* Mon May 12 2014 Richard Hughes <rhughes@redhat.com> - 3.13.1-3
|
||||
- Update the metadata and use appstream-util to install the metadata.
|
||||
|
||||
* Wed May 07 2014 Kalev Lember <kalevlember@gmail.com> - 3.13.1-2
|
||||
- Drop gnome-icon-theme dependency
|
||||
|
||||
* Mon Apr 28 2014 Richard Hughes <rhughes@redhat.com> - 3.13.1-1
|
||||
- Update to 3.13.1
|
||||
|
||||
* Fri Apr 11 2014 Kalev Lember <kalevlember@gmail.com> - 3.12.1-2
|
||||
- Rebuild with new metadata.
|
||||
|
||||
* Fri Apr 11 2014 Richard Hughes <rhughes@redhat.com> - 3.12.1-1
|
||||
- Update to 3.12.1
|
||||
|
||||
* Mon Mar 24 2014 Richard Hughes <rhughes@redhat.com> - 3.12.0-1
|
||||
- Update to 3.12.0
|
||||
|
||||
* Thu Mar 20 2014 Richard Hughes <rhughes@redhat.com> - 3.11.92-1
|
||||
- Update to 3.11.92
|
||||
|
||||
* Tue Mar 18 2014 Richard Hughes <rhughes@redhat.com> - 3.11.91-2
|
||||
- Rebuild with new metadata.
|
||||
|
||||
* Sat Mar 08 2014 Richard Hughes <rhughes@redhat.com> - 3.11.91-1
|
||||
- Update to 3.11.91
|
||||
|
||||
* Tue Feb 18 2014 Richard Hughes <rhughes@redhat.com> - 3.11.90-1
|
||||
- Update to 3.11.90
|
||||
|
||||
* Mon Feb 03 2014 Richard Hughes <rhughes@redhat.com> - 3.11.5-2
|
||||
- Require epiphany-runtime rather than the full application
|
||||
|
||||
* Mon Feb 03 2014 Richard Hughes <rhughes@redhat.com> - 3.11.5-1
|
||||
- Update to 3.11.5
|
||||
|
||||
* Thu Jan 30 2014 Richard Hughes <rhughes@redhat.com> - 3.11.4-3
|
||||
- Rebuild for libpackagekit-glib soname bump
|
||||
|
||||
* Wed Jan 22 2014 Richard Hughes <rhughes@redhat.com> - 3.11.4-2
|
||||
- Rebuild with metadata that has the correct screenshot url.
|
||||
|
||||
* Thu Jan 16 2014 Richard Hughes <rhughes@redhat.com> - 3.11.4-1
|
||||
- Update to 3.11.4
|
||||
|
||||
* Tue Dec 17 2013 Richard Hughes <rhughes@redhat.com> - 3.11.3-1
|
||||
- Update to 3.11.3
|
||||
|
||||
* Tue Nov 19 2013 Richard Hughes <rhughes@redhat.com> - 3.11.2-1
|
||||
- Update to 3.11.2
|
||||
|
||||
* Tue Oct 29 2013 Richard Hughes <rhughes@redhat.com> - 3.11.1-1
|
||||
- Update to 3.11.1
|
||||
- Add a gnome shell search provider
|
||||
- Add a module to submit the user rating to the fedora-tagger web service
|
||||
- Add support for 'missing' codecs that we know exist but we can't install
|
||||
- Add support for epiphany web applications
|
||||
- Handle offline installation sensibly
|
||||
- Save the user rating if the user clicks the rating stars
|
||||
- Show a modal error message if install or remove actions failed
|
||||
- Show a star rating on the application details page
|
||||
- Show font screenshots
|
||||
- Show more detailed version numbers when required
|
||||
- Show screenshots to each application
|
||||
|
||||
* Wed Sep 25 2013 Richard Hughes <richard@hughsie.com> 3.10.0-1
|
||||
- New upstream release.
|
||||
- New metadata for fedora, updates and updates-testing
|
||||
- Add a plugin to query the PackageKit prepared-update file directly
|
||||
- Do not clear the offline-update trigger if rebooting succeeded
|
||||
- Do not load incompatible projects when parsing AppStream data
|
||||
- Lots of updated translations
|
||||
- Show the window right away when starting
|
||||
|
||||
* Fri Sep 13 2013 Richard Hughes <richard@hughsie.com> 3.9.3-1
|
||||
- New upstream release.
|
||||
- Lots of new and fixed UI and updated metadata for Fedora 20
|
||||
|
||||
* Tue Sep 03 2013 Richard Hughes <richard@hughsie.com> 3.9.2-1
|
||||
- New upstream release.
|
||||
- Allow stock items in the AppStream XML
|
||||
- Extract the AppStream URL and description from the XML
|
||||
- Only present the window when the overview is complete
|
||||
- Return the subcategories sorted by name
|
||||
|
||||
* Mon Sep 02 2013 Richard Hughes <richard@hughsie.com> 3.9.1-1
|
||||
- New upstream release which is a technical preview for the alpha.
|
||||
|
||||
* Sun Sep 01 2013 Richard Hughes <richard@hughsie.com> 0.1-3
|
||||
- Use buildroot not RPM_BUILD_ROOT
|
||||
- Own all gnome-software directories
|
||||
- Drop gtk-update-icon-cache requires and the mime database functionality
|
||||
|
||||
* Thu Aug 29 2013 Richard Hughes <richard@hughsie.com> 0.1-2
|
||||
- Add call to desktop-file-validate and fix other review comments.
|
||||
|
||||
* Wed Aug 28 2013 Richard Hughes <richard@hughsie.com> 0.1-1
|
||||
- First release for Fedora package review
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
runpath:
|
||||
allowed_paths:
|
||||
- /usr/lib/gnome-software
|
||||
- /usr/lib/rpm-ostree
|
||||
- /usr/lib64/gnome-software
|
||||
- /usr/lib64/rpm-ostree
|
||||
4
sources
4
sources
|
|
@ -1 +1,3 @@
|
|||
SHA512 (gnome-software-49.3.tar.xz) = 0414ea55ad3b83bcd50514985e3d2026207801c040934805bb26d162e88f0619a9d70aa6ba324a29acfab02573490b928c83594b54f57ec2a8ad00e6c127f657
|
||||
SHA512 (gnome-software-3.28.2.tar.xz) = ca22ea589c19f3c5aae32fb2540646d3b3c8faf86f857dd414caf61b716bc50dea16281955c594a629f684da5ac87eeada6ac68247a9b0545600b739fa436dd7
|
||||
SHA512 (f28.png) = 468ece7c735d3f11f863c347aa22752ff5805effa47e4e3b97dd3b777ab5705423edc4e51c3491885128e684f243362e79f9f8ec42277bd0673abea48a36d5b2
|
||||
SHA512 (f29.png) = 7bcb036c9edf069e65edeabbb08460321dedf996d40ae71a8e1e1ba4131288e60a15c5c7e3115229a2850cade018f0ff935da3ee439768597e37830cad5e77bb
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue