Compare commits
No commits in common. "c8" and "c9s" have entirely different histories.
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/gnome-software-3.36.1.tar.xz
|
/gnome-software-*.tar.xz
|
||||||
|
198
0001-Lower_glib_dependency_to_2_68.patch
Normal file
198
0001-Lower_glib_dependency_to_2_68.patch
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
diff --git a/lib/gs-fedora-third-party.c b/lib/gs-fedora-third-party.c
|
||||||
|
index e79bba8..9e7115a 100644
|
||||||
|
--- a/lib/gs-fedora-third-party.c
|
||||||
|
+++ b/lib/gs-fedora-third-party.c
|
||||||
|
@@ -11,6 +11,10 @@
|
||||||
|
|
||||||
|
#include "gs-fedora-third-party.h"
|
||||||
|
|
||||||
|
+#if !GLIB_CHECK_VERSION(2, 70, 0)
|
||||||
|
+#define g_spawn_check_wait_status g_spawn_check_exit_status
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
struct _GsFedoraThirdParty
|
||||||
|
{
|
||||||
|
GObject parent_instance;
|
||||||
|
diff --git a/lib/gs-icon-downloader.c b/lib/gs-icon-downloader.c
|
||||||
|
index a1a669c..577fda2 100644
|
||||||
|
--- a/lib/gs-icon-downloader.c
|
||||||
|
+++ b/lib/gs-icon-downloader.c
|
||||||
|
@@ -41,7 +41,7 @@ struct _GsIconDownloader
|
||||||
|
GCancellable *cancellable; /* (owned) */
|
||||||
|
};
|
||||||
|
|
||||||
|
-G_DEFINE_FINAL_TYPE (GsIconDownloader, gs_icon_downloader, G_TYPE_OBJECT)
|
||||||
|
+G_DEFINE_TYPE (GsIconDownloader, gs_icon_downloader, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
PROP_MAXIMUM_SIZE = 1,
|
||||||
|
diff --git a/lib/gs-job-manager.c b/lib/gs-job-manager.c
|
||||||
|
index 98d79a7..694a157 100644
|
||||||
|
--- a/lib/gs-job-manager.c
|
||||||
|
+++ b/lib/gs-job-manager.c
|
||||||
|
@@ -100,7 +100,9 @@ watch_data_unref (WatchData *data)
|
||||||
|
watch_free_data_cb,
|
||||||
|
g_steal_pointer (&data),
|
||||||
|
(GDestroyNotify) watch_data_unref);
|
||||||
|
+ #if GLIB_CHECK_VERSION(2, 70, 0)
|
||||||
|
g_source_set_static_name (idle_source, G_STRFUNC);
|
||||||
|
+ #endif
|
||||||
|
g_source_attach (idle_source, callback_context);
|
||||||
|
|
||||||
|
/* Freeing will eventually happen in watch_free_data_cb(). */
|
||||||
|
@@ -359,7 +361,9 @@ gs_job_manager_add_job (GsJobManager *self,
|
||||||
|
watch_call_handler_cb,
|
||||||
|
g_steal_pointer (&idle_data),
|
||||||
|
(GDestroyNotify) watch_call_handler_data_free);
|
||||||
|
+ #if GLIB_CHECK_VERSION(2, 70, 0)
|
||||||
|
g_source_set_static_name (idle_source, G_STRFUNC);
|
||||||
|
+ #endif
|
||||||
|
g_source_attach (idle_source, data->callback_context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -420,7 +424,9 @@ gs_job_manager_remove_job (GsJobManager *self,
|
||||||
|
watch_call_handler_cb,
|
||||||
|
g_steal_pointer (&idle_data),
|
||||||
|
(GDestroyNotify) watch_call_handler_data_free);
|
||||||
|
+ #if GLIB_CHECK_VERSION(2, 70, 0)
|
||||||
|
g_source_set_static_name (idle_source, G_STRFUNC);
|
||||||
|
+ #endif
|
||||||
|
g_source_attach (idle_source, data->callback_context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
|
||||||
|
index 93b33f3..204d55f 100644
|
||||||
|
--- a/lib/gs-plugin-loader.c
|
||||||
|
+++ b/lib/gs-plugin-loader.c
|
||||||
|
@@ -1965,7 +1965,7 @@ get_session_bus_cb (GObject *object,
|
||||||
|
plugin_loader->session_bus_connection = g_bus_get_finish (result, &local_error);
|
||||||
|
if (plugin_loader->session_bus_connection == NULL) {
|
||||||
|
notify_setup_complete (plugin_loader);
|
||||||
|
- g_prefix_error_literal (&local_error, "Error getting session bus: ");
|
||||||
|
+ g_prefix_error (&local_error, "%s", "Error getting session bus: ");
|
||||||
|
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -1987,7 +1987,7 @@ get_system_bus_cb (GObject *object,
|
||||||
|
plugin_loader->system_bus_connection = g_bus_get_finish (result, &local_error);
|
||||||
|
if (plugin_loader->system_bus_connection == NULL) {
|
||||||
|
notify_setup_complete (plugin_loader);
|
||||||
|
- g_prefix_error_literal (&local_error, "Error getting system bus: ");
|
||||||
|
+ g_prefix_error (&local_error, "%s", "Error getting system bus: ");
|
||||||
|
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -2753,12 +2753,21 @@ gs_plugin_loader_init (GsPluginLoader *plugin_loader)
|
||||||
|
/* Set up a thread pool for running old-style jobs
|
||||||
|
* FIXME: This will eventually disappear when all jobs are ported to
|
||||||
|
* be subclasses of #GsPluginJob. */
|
||||||
|
+ #if GLIB_CHECK_VERSION(2, 70, 0)
|
||||||
|
plugin_loader->old_api_thread_pool = g_thread_pool_new_full (gs_plugin_loader_process_old_api_job_cb,
|
||||||
|
plugin_loader,
|
||||||
|
(GDestroyNotify) g_object_unref,
|
||||||
|
20,
|
||||||
|
FALSE,
|
||||||
|
NULL);
|
||||||
|
+ #else
|
||||||
|
+ /* pre-glib 2.70.0 - The items will leak when the thread pool is freed before all jobs are finished */
|
||||||
|
+ plugin_loader->old_api_thread_pool = g_thread_pool_new (gs_plugin_loader_process_old_api_job_cb,
|
||||||
|
+ plugin_loader,
|
||||||
|
+ 20,
|
||||||
|
+ FALSE,
|
||||||
|
+ NULL);
|
||||||
|
+ #endif
|
||||||
|
|
||||||
|
/* get the job manager */
|
||||||
|
plugin_loader->job_manager = gs_job_manager_new ();
|
||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
index da9e7ac..4c847c9 100644
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -156,7 +156,7 @@ gtk = dependency('gtk4',
|
||||||
|
'demos=false',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
-glib = dependency('glib-2.0', version : '>= 2.70.0')
|
||||||
|
+glib = dependency('glib-2.0', version : '>= 2.68.0')
|
||||||
|
json_glib = dependency('json-glib-1.0', version : '>= 1.6.0')
|
||||||
|
libm = cc.find_library('m', required: false)
|
||||||
|
if get_option('soup2')
|
||||||
|
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
|
||||||
|
index c84db84..009a425 100644
|
||||||
|
--- a/plugins/flatpak/gs-flatpak.c
|
||||||
|
+++ b/plugins/flatpak/gs-flatpak.c
|
||||||
|
@@ -4738,7 +4738,7 @@ gs_flatpak_purge_sync (GsFlatpak *self,
|
||||||
|
g_autoptr(FlatpakTransaction) transaction = NULL;
|
||||||
|
transaction = gs_flatpak_transaction_new (installation, GS_FLATPAK_ERROR_MODE_STOP_ON_FIRST_ERROR, cancellable, error);
|
||||||
|
if (transaction == NULL) {
|
||||||
|
- g_prefix_error_literal (error, "failed to build transaction: ");
|
||||||
|
+ g_prefix_error (error, "%s", "failed to build transaction: ");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
flatpak_transaction_set_no_interaction (transaction, TRUE);
|
||||||
|
diff --git a/plugins/fwupd/gs-plugin-fwupd.c b/plugins/fwupd/gs-plugin-fwupd.c
|
||||||
|
index e931b2b..43c4e9f 100644
|
||||||
|
--- a/plugins/fwupd/gs-plugin-fwupd.c
|
||||||
|
+++ b/plugins/fwupd/gs-plugin-fwupd.c
|
||||||
|
@@ -1653,7 +1653,7 @@ finish_update_apps_op (GTask *task,
|
||||||
|
g_autoptr(GsPluginEvent) event = NULL;
|
||||||
|
|
||||||
|
event_error = g_error_copy (error_owned);
|
||||||
|
- g_prefix_error_literal (&event_error, _("Firmware update could not be applied: "));
|
||||||
|
+ g_prefix_error (&event_error, "%s", _("Firmware update could not be applied: "));
|
||||||
|
gs_plugin_fwupd_error_convert (&event_error);
|
||||||
|
|
||||||
|
event = gs_plugin_event_new ("app", self->app_current,
|
||||||
|
diff --git a/plugins/packagekit/gs-plugin-packagekit.c b/plugins/packagekit/gs-plugin-packagekit.c
|
||||||
|
index 3c5f926..409e831 100644
|
||||||
|
--- a/plugins/packagekit/gs-plugin-packagekit.c
|
||||||
|
+++ b/plugins/packagekit/gs-plugin-packagekit.c
|
||||||
|
@@ -2040,7 +2040,7 @@ search_files_cb (GObject *source_object,
|
||||||
|
results = pk_client_generic_finish (client, result, &local_error);
|
||||||
|
|
||||||
|
if (!gs_plugin_packagekit_results_valid (results, g_task_get_cancellable (refine_task), &local_error)) {
|
||||||
|
- g_prefix_error_literal (&local_error, "failed to search files: ");
|
||||||
|
+ g_prefix_error (&local_error, "%s", "failed to search files: ");
|
||||||
|
refine_task_complete_operation_with_error (refine_task, g_steal_pointer (&local_error));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -3071,7 +3071,7 @@ gs_plugin_packagekit_convert_error (GError **error,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (prefix != NULL)
|
||||||
|
- g_prefix_error_literal (error, prefix);
|
||||||
|
+ g_prefix_error (error, "%s", prefix);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/gs-common.c b/src/gs-common.c
|
||||||
|
index 997025a..d665c98 100644
|
||||||
|
--- a/src/gs-common.c
|
||||||
|
+++ b/src/gs-common.c
|
||||||
|
@@ -1027,7 +1027,7 @@ gs_utils_invoke_reboot_ready2_got_session_bus_cb (GObject *source_object,
|
||||||
|
bus = g_bus_get_finish (result, &local_error);
|
||||||
|
if (bus == NULL) {
|
||||||
|
g_dbus_error_strip_remote_error (local_error);
|
||||||
|
- g_prefix_error_literal (&local_error, "Failed to get D-Bus session bus: ");
|
||||||
|
+ g_prefix_error (&local_error, "%s", "Failed to get D-Bus session bus: ");
|
||||||
|
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -1098,7 +1098,7 @@ gs_utils_invoke_reboot_ready1_got_system_bus_cb (GObject *source_object,
|
||||||
|
bus = g_bus_get_finish (result, &local_error);
|
||||||
|
if (bus == NULL) {
|
||||||
|
g_dbus_error_strip_remote_error (local_error);
|
||||||
|
- g_prefix_error_literal (&local_error, "Failed to get D-Bus system bus: ");
|
||||||
|
+ g_prefix_error (&local_error, "%s", "Failed to get D-Bus system bus: ");
|
||||||
|
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -1171,7 +1171,7 @@ gs_utils_invoke_reboot_got_session_bus_cb (GObject *source_object,
|
||||||
|
bus = g_bus_get_finish (result, &local_error);
|
||||||
|
if (bus == NULL) {
|
||||||
|
g_dbus_error_strip_remote_error (local_error);
|
||||||
|
- g_prefix_error_literal (&local_error, "Failed to get D-Bus session bus: ");
|
||||||
|
+ g_prefix_error (&local_error, "%s", "Failed to get D-Bus session bus: ");
|
||||||
|
g_task_return_error (task, g_steal_pointer (&local_error));
|
||||||
|
return;
|
||||||
|
}
|
42
0002-Lower-pango-attributes.patch
Normal file
42
0002-Lower-pango-attributes.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
diff -up gnome-software-45.2/src/gs-origin-popover-row.ui.2 gnome-software-45.2/src/gs-origin-popover-row.ui
|
||||||
|
--- gnome-software-45.2/src/gs-origin-popover-row.ui.2 2023-12-08 10:14:07.848934874 +0100
|
||||||
|
+++ gnome-software-45.2/src/gs-origin-popover-row.ui 2023-12-08 10:14:10.045961688 +0100
|
||||||
|
@@ -79,7 +79,7 @@
|
||||||
|
<property name="margin-end">2</property>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="weight" value="bold"/>
|
||||||
|
- <attribute name="variant" value="all-small-caps"/>
|
||||||
|
+ <!--<attribute name="variant" value="all-small-caps"/>-->
|
||||||
|
</attributes>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
@@ -110,7 +110,7 @@
|
||||||
|
<property name="margin-end">2</property>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="weight" value="bold"/>
|
||||||
|
- <attribute name="variant" value="all-small-caps"/>
|
||||||
|
+ <!--<attribute name="variant" value="all-small-caps"/>-->
|
||||||
|
</attributes>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
@@ -140,7 +140,7 @@
|
||||||
|
<property name="margin-end">2</property>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="weight" value="bold"/>
|
||||||
|
- <attribute name="variant" value="all-small-caps"/>
|
||||||
|
+ <!--<attribute name="variant" value="all-small-caps"/>-->
|
||||||
|
</attributes>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
diff -up gnome-software-45.2/src/gs-review-histogram.ui.2 gnome-software-45.2/src/gs-review-histogram.ui
|
||||||
|
--- gnome-software-45.2/src/gs-review-histogram.ui.2 2023-12-08 10:15:28.246916110 +0100
|
||||||
|
+++ gnome-software-45.2/src/gs-review-histogram.ui 2023-12-01 09:58:33.000000000 +0100
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
<attributes>
|
||||||
|
<attribute name="scale" value="5.0"/>
|
||||||
|
<attribute name="weight" value="light"/>
|
||||||
|
- <attribute name="line-height" value="0.75"/>
|
||||||
|
+ <!--<attribute name="line-height" value="0.75"/>-->
|
||||||
|
</attributes>
|
||||||
|
<layout>
|
||||||
|
<property name="column">0</property>
|
335
0003-Verify-category-sizes.patch
Normal file
335
0003-Verify-category-sizes.patch
Normal file
@ -0,0 +1,335 @@
|
|||||||
|
From f7e394840ff84ae8b55f13ff9692d6b02e8e6ea5 Mon Sep 17 00:00:00 2001
|
||||||
|
Date: Wed, 20 Dec 2023 12:21:24 +0100
|
||||||
|
Subject: [PATCH 1/3] gs-appstream: Increase limit to category apps lookup
|
||||||
|
|
||||||
|
The Overview page currently checks for 100 apps in all categories.
|
||||||
|
Lookup for the same count per category.
|
||||||
|
|
||||||
|
Note: The counts are not accurate, same apps can be in multiple
|
||||||
|
sub-categories, thus the parent category count suffers of duplicity,
|
||||||
|
which the following commit will correct in a different way than
|
||||||
|
checking for id duplicity.
|
||||||
|
---
|
||||||
|
lib/gs-appstream.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/gs-appstream.c b/lib/gs-appstream.c
|
||||||
|
index f110e3c47..d600cac53 100644
|
||||||
|
--- a/lib/gs-appstream.c
|
||||||
|
+++ b/lib/gs-appstream.c
|
||||||
|
@@ -1836,7 +1836,8 @@ static guint
|
||||||
|
gs_appstream_count_component_for_groups (XbSilo *silo,
|
||||||
|
const gchar *desktop_group)
|
||||||
|
{
|
||||||
|
- guint limit = 10;
|
||||||
|
+ /* the overview page checks for 100 apps, then try to get them */
|
||||||
|
+ const guint limit = 100;
|
||||||
|
g_autofree gchar *xpath = NULL;
|
||||||
|
g_auto(GStrv) split = g_strsplit (desktop_group, "::", -1);
|
||||||
|
g_autoptr(GPtrArray) array = NULL;
|
||||||
|
@@ -1896,7 +1897,6 @@ gs_appstream_refine_category_sizes (XbSilo *silo,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- continue;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
||||||
|
|
||||||
|
From 617af44a56f6f62e07fd3fc13ae43d688aa3b85f Mon Sep 17 00:00:00 2001
|
||||||
|
Date: Wed, 20 Dec 2023 12:24:25 +0100
|
||||||
|
Subject: [PATCH 2/3] gs-overview-page: Add debug prints about discovered
|
||||||
|
categories
|
||||||
|
|
||||||
|
For easier debugging, to see what the plugins returned.
|
||||||
|
---
|
||||||
|
src/gs-overview-page.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/gs-overview-page.c b/src/gs-overview-page.c
|
||||||
|
index 6ef5079e9..72000e257 100644
|
||||||
|
--- a/src/gs-overview-page.c
|
||||||
|
+++ b/src/gs-overview-page.c
|
||||||
|
@@ -496,6 +496,7 @@ gs_overview_page_get_categories_cb (GObject *source_object,
|
||||||
|
|
||||||
|
if (gs_category_get_icon_name (cat) != NULL) {
|
||||||
|
found_apps_cnt += gs_category_get_size (cat);
|
||||||
|
+ g_debug ("overview page found category '%s' which claims %u apps", gs_category_get_name (cat), gs_category_get_size (cat));
|
||||||
|
flowbox = GTK_FLOW_BOX (self->flowbox_categories);
|
||||||
|
} else
|
||||||
|
flowbox = GTK_FLOW_BOX (self->flowbox_iconless_categories);
|
||||||
|
@@ -524,6 +525,7 @@ out:
|
||||||
|
* See https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2053 */
|
||||||
|
gtk_widget_set_visible (self->flowbox_categories, found_apps_cnt >= MIN_CATEGORIES_APPS);
|
||||||
|
|
||||||
|
+ g_debug ("overview page found %u category apps", found_apps_cnt);
|
||||||
|
if (found_apps_cnt < MIN_CATEGORIES_APPS && found_apps_cnt > 0) {
|
||||||
|
GsPluginListAppsFlags flags = GS_PLUGIN_LIST_APPS_FLAGS_INTERACTIVE;
|
||||||
|
GatherAppsData *gather_apps_data = g_new0 (GatherAppsData, 1);
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
||||||
|
|
||||||
|
From 98086eca23dbd46284039722887852e8c760a0fe Mon Sep 17 00:00:00 2001
|
||||||
|
Date: Wed, 20 Dec 2023 12:32:21 +0100
|
||||||
|
Subject: [PATCH 3/3] gs-overview-page: Verify category sizes
|
||||||
|
|
||||||
|
The "list-categories" job can set inaccurate sizes for the categories,
|
||||||
|
thus check the actual category content to operate with proper numbers.
|
||||||
|
For example the appstream data can have information about apps, which
|
||||||
|
no plugin can provide due to disabled repository.
|
||||||
|
---
|
||||||
|
src/gs-overview-page.c | 176 +++++++++++++++++++++++++++++++++++------
|
||||||
|
1 file changed, 153 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/gs-overview-page.c b/src/gs-overview-page.c
|
||||||
|
index 72000e257..3ec689ac1 100644
|
||||||
|
--- a/src/gs-overview-page.c
|
||||||
|
+++ b/src/gs-overview-page.c
|
||||||
|
@@ -440,6 +440,7 @@ category_activated_cb (GsOverviewPage *self, GsCategoryTile *tile)
|
||||||
|
typedef struct {
|
||||||
|
GsOverviewPage *page; /* (unowned) */
|
||||||
|
GsPluginJobListCategories *job; /* (owned) */
|
||||||
|
+ guint n_pending_ops;
|
||||||
|
} GetCategoriesData;
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -451,31 +452,18 @@ get_categories_data_free (GetCategoriesData *data)
|
||||||
|
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GetCategoriesData, get_categories_data_free)
|
||||||
|
|
||||||
|
-static void
|
||||||
|
-gs_overview_page_get_categories_cb (GObject *source_object,
|
||||||
|
- GAsyncResult *res,
|
||||||
|
- gpointer user_data)
|
||||||
|
+static guint
|
||||||
|
+update_categories_sections (GsOverviewPage *self,
|
||||||
|
+ GPtrArray *list) /* (element-type GsCategory) */
|
||||||
|
{
|
||||||
|
- g_autoptr(GetCategoriesData) data = g_steal_pointer (&user_data);
|
||||||
|
- GsOverviewPage *self = GS_OVERVIEW_PAGE (data->page);
|
||||||
|
- GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (source_object);
|
||||||
|
- guint i;
|
||||||
|
GsCategory *cat;
|
||||||
|
GtkFlowBox *flowbox;
|
||||||
|
GtkWidget *tile;
|
||||||
|
guint added_cnt = 0;
|
||||||
|
guint found_apps_cnt = 0;
|
||||||
|
- g_autoptr(GError) error = NULL;
|
||||||
|
- GPtrArray *list = NULL; /* (element-type GsCategory) */
|
||||||
|
|
||||||
|
- if (!gs_plugin_loader_job_action_finish (plugin_loader, res, &error)) {
|
||||||
|
- if (!g_error_matches (error, GS_PLUGIN_ERROR, GS_PLUGIN_ERROR_CANCELLED) &&
|
||||||
|
- !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||||
|
- g_warning ("failed to get categories: %s", error->message);
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- list = gs_plugin_job_list_categories_get_result_list (data->job);
|
||||||
|
+ if (g_cancellable_is_cancelled (self->cancellable))
|
||||||
|
+ return found_apps_cnt;
|
||||||
|
|
||||||
|
gs_widget_remove_all (self->flowbox_categories, (GsRemoveFunc) gtk_flow_box_remove);
|
||||||
|
gs_widget_remove_all (self->flowbox_iconless_categories, (GsRemoveFunc) gtk_flow_box_remove);
|
||||||
|
@@ -488,7 +476,7 @@ gs_overview_page_get_categories_cb (GObject *source_object,
|
||||||
|
* be visually important, and are listed near the top of the page.
|
||||||
|
* Categories without icons are listed in a separate flowbox at the
|
||||||
|
* bottom of the page. Typically they are addons. */
|
||||||
|
- for (i = 0; i < list->len; i++) {
|
||||||
|
+ for (guint i = 0; list != NULL && i < list->len; i++) {
|
||||||
|
cat = GS_CATEGORY (g_ptr_array_index (list, i));
|
||||||
|
if (gs_category_get_size (cat) == 0)
|
||||||
|
continue;
|
||||||
|
@@ -510,7 +498,6 @@ gs_overview_page_get_categories_cb (GObject *source_object,
|
||||||
|
g_object_ref (cat));
|
||||||
|
}
|
||||||
|
|
||||||
|
-out:
|
||||||
|
/* Show the heading for the iconless categories iff there are any. */
|
||||||
|
gtk_widget_set_visible (self->iconless_categories_heading,
|
||||||
|
gtk_flow_box_get_child_at_index (GTK_FLOW_BOX (self->flowbox_iconless_categories), 0) != NULL);
|
||||||
|
@@ -525,6 +512,27 @@ out:
|
||||||
|
* See https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2053 */
|
||||||
|
gtk_widget_set_visible (self->flowbox_categories, found_apps_cnt >= MIN_CATEGORIES_APPS);
|
||||||
|
|
||||||
|
+ return found_apps_cnt;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+finish_verify_category_op (GetCategoriesData *op_data)
|
||||||
|
+{
|
||||||
|
+ g_autoptr(GetCategoriesData) data = g_steal_pointer (&op_data);
|
||||||
|
+ GsOverviewPage *self = GS_OVERVIEW_PAGE (data->page);
|
||||||
|
+ guint i, found_apps_cnt;
|
||||||
|
+ GPtrArray *list; /* (element-type GsCategory) */
|
||||||
|
+
|
||||||
|
+ data->n_pending_ops--;
|
||||||
|
+ if (data->n_pending_ops > 0) {
|
||||||
|
+ /* to not be freed */
|
||||||
|
+ g_steal_pointer (&data);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ list = gs_plugin_job_list_categories_get_result_list (data->job);
|
||||||
|
+ found_apps_cnt = update_categories_sections (self, list);
|
||||||
|
+
|
||||||
|
g_debug ("overview page found %u category apps", found_apps_cnt);
|
||||||
|
if (found_apps_cnt < MIN_CATEGORIES_APPS && found_apps_cnt > 0) {
|
||||||
|
GsPluginListAppsFlags flags = GS_PLUGIN_LIST_APPS_FLAGS_INTERACTIVE;
|
||||||
|
@@ -534,10 +542,10 @@ out:
|
||||||
|
gather_apps_data->self = g_object_ref (self);
|
||||||
|
gather_apps_data->list = gs_app_list_new ();
|
||||||
|
|
||||||
|
- for (i = 0; i < list->len; i++) {
|
||||||
|
+ for (i = 0; list != NULL && i < list->len; i++) {
|
||||||
|
g_autoptr(GsPluginJob) plugin_job = NULL;
|
||||||
|
g_autoptr(GsAppQuery) query = NULL;
|
||||||
|
- GsCategory *subcat;
|
||||||
|
+ GsCategory *cat, *subcat;
|
||||||
|
|
||||||
|
cat = GS_CATEGORY (g_ptr_array_index (list, i));
|
||||||
|
if (gs_category_get_size (cat) == 0 ||
|
||||||
|
@@ -578,6 +586,128 @@ out:
|
||||||
|
gs_overview_page_decrement_action_cnt (self);
|
||||||
|
}
|
||||||
|
|
||||||
|
+typedef struct {
|
||||||
|
+ GsOverviewPage *page; /* (unowned) */
|
||||||
|
+ GetCategoriesData *op_data; /* (unowned) */
|
||||||
|
+ GsCategory *category; /* (owned) */
|
||||||
|
+} VerifyCategoryData;
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+verify_category_data_free (VerifyCategoryData *data)
|
||||||
|
+{
|
||||||
|
+ g_clear_object (&data->category);
|
||||||
|
+ g_free (data);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (VerifyCategoryData, verify_category_data_free)
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+gs_overview_page_verify_category_cb (GObject *source_object,
|
||||||
|
+ GAsyncResult *res,
|
||||||
|
+ gpointer user_data)
|
||||||
|
+{
|
||||||
|
+ g_autoptr(VerifyCategoryData) data = user_data;
|
||||||
|
+ GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (source_object);
|
||||||
|
+ g_autoptr(GError) local_error = NULL;
|
||||||
|
+ g_autoptr(GsAppList) list = NULL;
|
||||||
|
+
|
||||||
|
+ list = gs_plugin_loader_job_process_finish (plugin_loader, res, &local_error);
|
||||||
|
+ if (list == NULL) {
|
||||||
|
+ if (!g_error_matches (local_error, GS_PLUGIN_ERROR, GS_PLUGIN_ERROR_CANCELLED) &&
|
||||||
|
+ !g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||||
|
+ g_warning ("failed to get apps for category: %s", local_error->message);
|
||||||
|
+ g_debug ("Failed to get category content '%s' for overview page: %s", gs_category_get_id (data->category), local_error->message);
|
||||||
|
+ } else {
|
||||||
|
+ GsCategory *all_subcat = gs_category_find_child (data->category, "all");
|
||||||
|
+ guint size = gs_app_list_length (list);
|
||||||
|
+ g_debug ("overview page verify category '%s' size:%u~>%u subcat:'%s' size:%u~>%u",
|
||||||
|
+ gs_category_get_id (data->category), gs_category_get_size (data->category), size,
|
||||||
|
+ gs_category_get_id (all_subcat), gs_category_get_size (all_subcat), size);
|
||||||
|
+ gs_category_set_size (data->category, size);
|
||||||
|
+ gs_category_set_size (all_subcat, size);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ finish_verify_category_op (data->op_data);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+gs_overview_page_get_categories_list_cb (GObject *source_object,
|
||||||
|
+ GAsyncResult *res,
|
||||||
|
+ gpointer user_data)
|
||||||
|
+{
|
||||||
|
+ g_autoptr(GetCategoriesData) data = g_steal_pointer (&user_data);
|
||||||
|
+ GsOverviewPage *self = GS_OVERVIEW_PAGE (data->page);
|
||||||
|
+ GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (source_object);
|
||||||
|
+ g_autoptr(GError) error = NULL;
|
||||||
|
+
|
||||||
|
+ g_assert (data->n_pending_ops == 0);
|
||||||
|
+
|
||||||
|
+ data->n_pending_ops++;
|
||||||
|
+
|
||||||
|
+ /* The apps can be mentioned in the appstream data, but no plugin may provide actual app,
|
||||||
|
+ thus try to get the content as the Categories page and fine tune the numbers appropriately. */
|
||||||
|
+ if (!gs_plugin_loader_job_action_finish (plugin_loader, res, &error)) {
|
||||||
|
+ if (!g_error_matches (error, GS_PLUGIN_ERROR, GS_PLUGIN_ERROR_CANCELLED) &&
|
||||||
|
+ !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||||
|
+ g_warning ("failed to get categories: %s", error->message);
|
||||||
|
+ } else {
|
||||||
|
+ g_autoptr(GPtrArray) verify_categories = NULL; /* (element-type GsCategory) */
|
||||||
|
+ GPtrArray *list = NULL; /* (element-type GsCategory) */
|
||||||
|
+ guint found_apps_cnt;
|
||||||
|
+
|
||||||
|
+ list = gs_plugin_job_list_categories_get_result_list (data->job);
|
||||||
|
+ found_apps_cnt = update_categories_sections (self, list);
|
||||||
|
+
|
||||||
|
+ if (found_apps_cnt >= MIN_CATEGORIES_APPS) {
|
||||||
|
+ verify_categories = g_ptr_array_new_full (list != NULL ? list->len : 0, g_object_unref);
|
||||||
|
+ for (guint i = 0; list != NULL && i < list->len; i++) {
|
||||||
|
+ GsCategory *category = g_ptr_array_index (list, i);
|
||||||
|
+ if (gs_category_get_size (category) > 0 &&
|
||||||
|
+ gs_category_find_child (category, "all") != NULL) {
|
||||||
|
+ g_ptr_array_add (verify_categories, g_object_ref (category));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (verify_categories != NULL && verify_categories->len > 0 && !g_cancellable_is_cancelled (self->cancellable)) {
|
||||||
|
+ for (guint i = 0; i < verify_categories->len; i++) {
|
||||||
|
+ GsCategory *category = g_ptr_array_index (verify_categories, i);
|
||||||
|
+ GsCategory *all_subcat = gs_category_find_child (category, "all");
|
||||||
|
+ g_autoptr(GsAppQuery) query = NULL;
|
||||||
|
+ g_autoptr(GsPluginJob) plugin_job = NULL;
|
||||||
|
+ VerifyCategoryData *ver_data;
|
||||||
|
+
|
||||||
|
+ g_assert (all_subcat != NULL);
|
||||||
|
+
|
||||||
|
+ data->n_pending_ops++;
|
||||||
|
+
|
||||||
|
+ ver_data = g_new0 (VerifyCategoryData, 1);
|
||||||
|
+ ver_data->page = self;
|
||||||
|
+ ver_data->op_data = data;
|
||||||
|
+ ver_data->category = g_object_ref (category);
|
||||||
|
+
|
||||||
|
+ query = gs_app_query_new ("category", all_subcat,
|
||||||
|
+ "refine-flags", GS_PLUGIN_REFINE_FLAGS_REQUIRE_ID,
|
||||||
|
+ "dedupe-flags", GS_APP_LIST_FILTER_FLAG_KEY_ID_PROVIDES,
|
||||||
|
+ "license-type", gs_page_get_query_license_type (GS_PAGE (self)),
|
||||||
|
+ /*"developer-verified-type", gs_page_get_query_developer_verified_type (GS_PAGE (self)),*/
|
||||||
|
+ NULL);
|
||||||
|
+ plugin_job = gs_plugin_job_list_apps_new (query, GS_PLUGIN_LIST_APPS_FLAGS_NONE);
|
||||||
|
+ gs_plugin_loader_job_process_async (plugin_loader,
|
||||||
|
+ plugin_job,
|
||||||
|
+ self->cancellable,
|
||||||
|
+ gs_overview_page_verify_category_cb,
|
||||||
|
+ ver_data);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ finish_verify_category_op (g_steal_pointer (&data));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ finish_verify_category_op (g_steal_pointer (&data));
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
third_party_destroy_cb (GtkWindow *window,
|
||||||
|
GsOverviewPage *self)
|
||||||
|
@@ -967,7 +1097,7 @@ gs_overview_page_load (GsOverviewPage *self)
|
||||||
|
data->job = g_object_ref (GS_PLUGIN_JOB_LIST_CATEGORIES (plugin_job));
|
||||||
|
|
||||||
|
gs_plugin_loader_job_process_async (self->plugin_loader, plugin_job,
|
||||||
|
- self->cancellable, gs_overview_page_get_categories_cb,
|
||||||
|
+ self->cancellable, gs_overview_page_get_categories_list_cb,
|
||||||
|
g_steal_pointer (&data));
|
||||||
|
self->action_cnt++;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
151
0004-prefer-vendor-name.patch
Normal file
151
0004-prefer-vendor-name.patch
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
diff --git a/lib/gs-app.c b/lib/gs-app.c
|
||||||
|
index fa266cdc1..66a5acad7 100644
|
||||||
|
--- a/lib/gs-app.c
|
||||||
|
+++ b/lib/gs-app.c
|
||||||
|
@@ -6319,8 +6319,11 @@ gs_app_dup_origin_ui (GsApp *app,
|
||||||
|
if (gs_app_has_quirk (app, GS_APP_QUIRK_PROVENANCE) &&
|
||||||
|
gs_app_get_kind (app) != AS_COMPONENT_KIND_REPOSITORY) {
|
||||||
|
os_release = gs_os_release_new (NULL);
|
||||||
|
- if (os_release != NULL)
|
||||||
|
- origin_str = gs_os_release_get_name (os_release);
|
||||||
|
+ if (os_release != NULL) {
|
||||||
|
+ origin_str = gs_os_release_get_vendor_name (os_release);
|
||||||
|
+ if (origin_str == NULL)
|
||||||
|
+ origin_str = gs_os_release_get_name (os_release);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
priv = gs_app_get_instance_private (app);
|
||||||
|
diff --git a/lib/gs-os-release.c b/lib/gs-os-release.c
|
||||||
|
index 85ea24e2e..380c9c84e 100644
|
||||||
|
--- a/lib/gs-os-release.c
|
||||||
|
+++ b/lib/gs-os-release.c
|
||||||
|
@@ -37,6 +37,7 @@ struct _GsOsRelease
|
||||||
|
gchar *distro_codename;
|
||||||
|
gchar *home_url;
|
||||||
|
gchar *logo;
|
||||||
|
+ gchar *vendor_name;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void gs_os_release_initable_iface_init (GInitableIface *iface);
|
||||||
|
@@ -44,6 +45,18 @@ static void gs_os_release_initable_iface_init (GInitableIface *iface);
|
||||||
|
G_DEFINE_TYPE_WITH_CODE (GsOsRelease, gs_os_release, G_TYPE_OBJECT,
|
||||||
|
G_IMPLEMENT_INTERFACE(G_TYPE_INITABLE, gs_os_release_initable_iface_init))
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+gs_os_release_set_string_nonempty (gchar **inout_string,
|
||||||
|
+ const gchar *value)
|
||||||
|
+{
|
||||||
|
+ if (*inout_string == value)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ g_clear_pointer (inout_string, g_free);
|
||||||
|
+ if (value != NULL && *value != '\0')
|
||||||
|
+ *inout_string = g_strdup (value);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static gboolean
|
||||||
|
gs_os_release_initable_init (GInitable *initable,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
@@ -89,43 +102,49 @@ gs_os_release_initable_init (GInitable *initable,
|
||||||
|
|
||||||
|
/* match fields we're interested in */
|
||||||
|
if (g_strcmp0 (lines[i], "NAME") == 0) {
|
||||||
|
- os_release->name = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->name, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "VERSION") == 0) {
|
||||||
|
- os_release->version = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->version, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "ID") == 0) {
|
||||||
|
- os_release->id = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->id, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "ID_LIKE") == 0) {
|
||||||
|
+ if (os_release->id_like != NULL)
|
||||||
|
+ g_strfreev (os_release->id_like);
|
||||||
|
os_release->id_like = g_strsplit (tmp, " ", 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "VERSION_ID") == 0) {
|
||||||
|
- os_release->version_id = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->version_id, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "PRETTY_NAME") == 0) {
|
||||||
|
- os_release->pretty_name = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->pretty_name, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "CPE_NAME") == 0) {
|
||||||
|
- os_release->cpe_name = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->cpe_name, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "UBUNTU_CODENAME") == 0) {
|
||||||
|
- os_release->distro_codename = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->distro_codename, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "HOME_URL") == 0) {
|
||||||
|
- os_release->home_url = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->home_url, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (g_strcmp0 (lines[i], "LOGO") == 0) {
|
||||||
|
- os_release->logo = g_strdup (tmp);
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->logo, tmp);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ if (g_strcmp0 (lines[i], "VENDOR_NAME") == 0) {
|
||||||
|
+ gs_os_release_set_string_nonempty (&os_release->vendor_name, tmp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -304,6 +323,23 @@ gs_os_release_get_logo (GsOsRelease *os_release)
|
||||||
|
return os_release->logo;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * gs_os_release_get_vendor_name:
|
||||||
|
+ * @os_release: A #GsOsRelease
|
||||||
|
+ *
|
||||||
|
+ * Gets the vendor name from the os-release parser.
|
||||||
|
+ *
|
||||||
|
+ * Returns: (nullable): a string, or %NULL
|
||||||
|
+ *
|
||||||
|
+ * Since: 46.3
|
||||||
|
+ **/
|
||||||
|
+const gchar *
|
||||||
|
+gs_os_release_get_vendor_name (GsOsRelease *os_release)
|
||||||
|
+{
|
||||||
|
+ g_return_val_if_fail (GS_IS_OS_RELEASE (os_release), NULL);
|
||||||
|
+ return os_release->vendor_name;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
gs_os_release_finalize (GObject *object)
|
||||||
|
{
|
||||||
|
@@ -318,6 +354,7 @@ gs_os_release_finalize (GObject *object)
|
||||||
|
g_free (os_release->distro_codename);
|
||||||
|
g_free (os_release->home_url);
|
||||||
|
g_free (os_release->logo);
|
||||||
|
+ g_free (os_release->vendor_name);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (gs_os_release_parent_class)->finalize (object);
|
||||||
|
}
|
||||||
|
diff --git a/lib/gs-os-release.h b/lib/gs-os-release.h
|
||||||
|
index e219e5c96..6d52ecdd2 100644
|
||||||
|
--- a/lib/gs-os-release.h
|
||||||
|
+++ b/lib/gs-os-release.h
|
||||||
|
@@ -30,5 +30,6 @@ const gchar *gs_os_release_get_cpe_name (GsOsRelease *os_release);
|
||||||
|
const gchar *gs_os_release_get_distro_codename (GsOsRelease *os_release);
|
||||||
|
const gchar *gs_os_release_get_home_url (GsOsRelease *os_release);
|
||||||
|
const gchar *gs_os_release_get_logo (GsOsRelease *os_release);
|
||||||
|
+const gchar *gs_os_release_get_vendor_name (GsOsRelease *os_release);
|
||||||
|
|
||||||
|
G_END_DECLS
|
@ -1,813 +0,0 @@
|
|||||||
From b6a41a1b9e9020a23dbc418183ebe4746b6ec027 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kalev Lember <klember@redhat.com>
|
|
||||||
Date: Mon, 18 May 2020 14:45:35 +0200
|
|
||||||
Subject: [PATCH 1/2] Add basic auth support to flatpak plugin
|
|
||||||
|
|
||||||
This is useful for e.g. OCI remotes that can use basic auth.
|
|
||||||
|
|
||||||
All user visible strings in the basic auth dialog are taken from the
|
|
||||||
flatpak CLI client.
|
|
||||||
---
|
|
||||||
lib/gs-plugin-loader.c | 29 +++-
|
|
||||||
lib/gs-plugin-loader.h | 7 +-
|
|
||||||
lib/gs-plugin.c | 68 +++++++++-
|
|
||||||
lib/gs-plugin.h | 13 +-
|
|
||||||
plugins/flatpak/gs-plugin-flatpak.c | 55 +++++++-
|
|
||||||
po/POTFILES.in | 2 +
|
|
||||||
src/gnome-software.gresource.xml | 1 +
|
|
||||||
src/gs-basic-auth-dialog.c | 130 ++++++++++++++++++
|
|
||||||
src/gs-basic-auth-dialog.h | 28 ++++
|
|
||||||
src/gs-basic-auth-dialog.ui | 203 ++++++++++++++++++++++++++++
|
|
||||||
src/gs-shell.c | 25 +++-
|
|
||||||
src/meson.build | 1 +
|
|
||||||
12 files changed, 556 insertions(+), 6 deletions(-)
|
|
||||||
create mode 100644 src/gs-basic-auth-dialog.c
|
|
||||||
create mode 100644 src/gs-basic-auth-dialog.h
|
|
||||||
create mode 100644 src/gs-basic-auth-dialog.ui
|
|
||||||
|
|
||||||
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
|
|
||||||
index 979f3d5d..35382e3f 100644
|
|
||||||
--- a/lib/gs-plugin-loader.c
|
|
||||||
+++ b/lib/gs-plugin-loader.c
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
|
||||||
*
|
|
||||||
* Copyright (C) 2007-2018 Richard Hughes <richard@hughsie.com>
|
|
||||||
- * Copyright (C) 2014-2018 Kalev Lember <klember@redhat.com>
|
|
||||||
+ * Copyright (C) 2014-2020 Kalev Lember <klember@redhat.com>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
|
||||||
*/
|
|
||||||
@@ -74,6 +74,7 @@ enum {
|
|
||||||
SIGNAL_PENDING_APPS_CHANGED,
|
|
||||||
SIGNAL_UPDATES_CHANGED,
|
|
||||||
SIGNAL_RELOAD,
|
|
||||||
+ SIGNAL_BASIC_AUTH_START,
|
|
||||||
SIGNAL_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -2016,6 +2017,23 @@ gs_plugin_loader_status_changed_cb (GsPlugin *plugin,
|
|
||||||
0, app, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void
|
|
||||||
+gs_plugin_loader_basic_auth_start_cb (GsPlugin *plugin,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GCallback callback,
|
|
||||||
+ gpointer user_data,
|
|
||||||
+ GsPluginLoader *plugin_loader)
|
|
||||||
+{
|
|
||||||
+ g_debug ("emitting basic-auth-start %s", realm);
|
|
||||||
+ g_signal_emit (plugin_loader,
|
|
||||||
+ signals[SIGNAL_BASIC_AUTH_START], 0,
|
|
||||||
+ remote,
|
|
||||||
+ realm,
|
|
||||||
+ callback,
|
|
||||||
+ user_data);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
gs_plugin_loader_job_actions_changed_delay_cb (gpointer user_data)
|
|
||||||
{
|
|
||||||
@@ -2102,6 +2120,9 @@ gs_plugin_loader_open_plugin (GsPluginLoader *plugin_loader,
|
|
||||||
g_signal_connect (plugin, "status-changed",
|
|
||||||
G_CALLBACK (gs_plugin_loader_status_changed_cb),
|
|
||||||
plugin_loader);
|
|
||||||
+ g_signal_connect (plugin, "basic-auth-start",
|
|
||||||
+ G_CALLBACK (gs_plugin_loader_basic_auth_start_cb),
|
|
||||||
+ plugin_loader);
|
|
||||||
g_signal_connect (plugin, "report-event",
|
|
||||||
G_CALLBACK (gs_plugin_loader_report_event_cb),
|
|
||||||
plugin_loader);
|
|
||||||
@@ -2712,6 +2733,12 @@ gs_plugin_loader_class_init (GsPluginLoaderClass *klass)
|
|
||||||
G_STRUCT_OFFSET (GsPluginLoaderClass, reload),
|
|
||||||
NULL, NULL, g_cclosure_marshal_VOID__VOID,
|
|
||||||
G_TYPE_NONE, 0);
|
|
||||||
+ signals [SIGNAL_BASIC_AUTH_START] =
|
|
||||||
+ g_signal_new ("basic-auth-start",
|
|
||||||
+ G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
|
|
||||||
+ G_STRUCT_OFFSET (GsPluginLoaderClass, basic_auth_start),
|
|
||||||
+ NULL, NULL, g_cclosure_marshal_generic,
|
|
||||||
+ G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
diff --git a/lib/gs-plugin-loader.h b/lib/gs-plugin-loader.h
|
|
||||||
index 74cbfa53..e88ea2d1 100644
|
|
||||||
--- a/lib/gs-plugin-loader.h
|
|
||||||
+++ b/lib/gs-plugin-loader.h
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
|
||||||
*
|
|
||||||
* Copyright (C) 2007-2017 Richard Hughes <richard@hughsie.com>
|
|
||||||
- * Copyright (C) 2015 Kalev Lember <klember@redhat.com>
|
|
||||||
+ * Copyright (C) 2015-2020 Kalev Lember <klember@redhat.com>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
|
||||||
*/
|
|
||||||
@@ -31,6 +31,11 @@ struct _GsPluginLoaderClass
|
|
||||||
void (*pending_apps_changed) (GsPluginLoader *plugin_loader);
|
|
||||||
void (*updates_changed) (GsPluginLoader *plugin_loader);
|
|
||||||
void (*reload) (GsPluginLoader *plugin_loader);
|
|
||||||
+ void (*basic_auth_start) (GsPluginLoader *plugin_loader,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GCallback callback,
|
|
||||||
+ gpointer user_data);
|
|
||||||
};
|
|
||||||
|
|
||||||
GsPluginLoader *gs_plugin_loader_new (void);
|
|
||||||
diff --git a/lib/gs-plugin.c b/lib/gs-plugin.c
|
|
||||||
index 5aed1058..3f63fa97 100644
|
|
||||||
--- a/lib/gs-plugin.c
|
|
||||||
+++ b/lib/gs-plugin.c
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
|
||||||
*
|
|
||||||
* Copyright (C) 2013-2016 Richard Hughes <richard@hughsie.com>
|
|
||||||
- * Copyright (C) 2014-2018 Kalev Lember <klember@redhat.com>
|
|
||||||
+ * Copyright (C) 2014-2020 Kalev Lember <klember@redhat.com>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
|
||||||
*/
|
|
||||||
@@ -87,6 +87,7 @@ enum {
|
|
||||||
SIGNAL_RELOAD,
|
|
||||||
SIGNAL_REPORT_EVENT,
|
|
||||||
SIGNAL_ALLOW_UPDATES,
|
|
||||||
+ SIGNAL_BASIC_AUTH_START,
|
|
||||||
SIGNAL_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -851,6 +852,64 @@ gs_plugin_status_update (GsPlugin *plugin, GsApp *app, GsPluginStatus status)
|
|
||||||
g_source_attach (idle_source, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
+typedef struct {
|
|
||||||
+ GsPlugin *plugin;
|
|
||||||
+ gchar *remote;
|
|
||||||
+ gchar *realm;
|
|
||||||
+ GCallback callback;
|
|
||||||
+ gpointer user_data;
|
|
||||||
+} GsPluginBasicAuthHelper;
|
|
||||||
+
|
|
||||||
+static gboolean
|
|
||||||
+gs_plugin_basic_auth_start_cb (gpointer user_data)
|
|
||||||
+{
|
|
||||||
+ GsPluginBasicAuthHelper *helper = user_data;
|
|
||||||
+ g_signal_emit (helper->plugin,
|
|
||||||
+ signals[SIGNAL_BASIC_AUTH_START], 0,
|
|
||||||
+ helper->remote,
|
|
||||||
+ helper->realm,
|
|
||||||
+ helper->callback,
|
|
||||||
+ helper->user_data);
|
|
||||||
+ g_free (helper->remote);
|
|
||||||
+ g_free (helper->realm);
|
|
||||||
+ g_slice_free (GsPluginBasicAuthHelper, helper);
|
|
||||||
+ return FALSE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * gs_plugin_basic_auth_start:
|
|
||||||
+ * @plugin: a #GsPlugin
|
|
||||||
+ * @remote: a string
|
|
||||||
+ * @realm: a string
|
|
||||||
+ * @callback: callback to invoke to submit the user/password
|
|
||||||
+ * @user_data: callback data to pass to the callback
|
|
||||||
+ *
|
|
||||||
+ * Emit the basic-auth-start signal in the main thread.
|
|
||||||
+ *
|
|
||||||
+ * Since: 3.38
|
|
||||||
+ **/
|
|
||||||
+void
|
|
||||||
+gs_plugin_basic_auth_start (GsPlugin *plugin,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GCallback callback,
|
|
||||||
+ gpointer user_data)
|
|
||||||
+{
|
|
||||||
+ GsPluginBasicAuthHelper *helper;
|
|
||||||
+ g_autoptr(GSource) idle_source = NULL;
|
|
||||||
+
|
|
||||||
+ helper = g_slice_new0 (GsPluginBasicAuthHelper);
|
|
||||||
+ helper->plugin = plugin;
|
|
||||||
+ helper->remote = g_strdup (remote);
|
|
||||||
+ helper->realm = g_strdup (realm);
|
|
||||||
+ helper->callback = callback;
|
|
||||||
+ helper->user_data = user_data;
|
|
||||||
+
|
|
||||||
+ idle_source = g_idle_source_new ();
|
|
||||||
+ g_source_set_callback (idle_source, gs_plugin_basic_auth_start_cb, helper, NULL);
|
|
||||||
+ g_source_attach (idle_source, NULL);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static gboolean
|
|
||||||
gs_plugin_app_launch_cb (gpointer user_data)
|
|
||||||
{
|
|
||||||
@@ -1959,6 +2018,13 @@ gs_plugin_class_init (GsPluginClass *klass)
|
|
||||||
G_STRUCT_OFFSET (GsPluginClass, allow_updates),
|
|
||||||
NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN,
|
|
||||||
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
|
|
||||||
+
|
|
||||||
+ signals [SIGNAL_BASIC_AUTH_START] =
|
|
||||||
+ g_signal_new ("basic-auth-start",
|
|
||||||
+ G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
|
|
||||||
+ G_STRUCT_OFFSET (GsPluginClass, basic_auth_start),
|
|
||||||
+ NULL, NULL, g_cclosure_marshal_generic,
|
|
||||||
+ G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
diff --git a/lib/gs-plugin.h b/lib/gs-plugin.h
|
|
||||||
index 7dd2d864..d07afd3b 100644
|
|
||||||
--- a/lib/gs-plugin.h
|
|
||||||
+++ b/lib/gs-plugin.h
|
|
||||||
@@ -1,6 +1,7 @@
|
|
||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012-2016 Richard Hughes <richard@hughsie.com>
|
|
||||||
+ * Copyright (C) 2020 Kalev Lember <klember@redhat.com>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
|
||||||
*/
|
|
||||||
@@ -37,7 +38,12 @@ struct _GsPluginClass
|
|
||||||
GsPluginEvent *event);
|
|
||||||
void (*allow_updates) (GsPlugin *plugin,
|
|
||||||
gboolean allow_updates);
|
|
||||||
- gpointer padding[26];
|
|
||||||
+ void (*basic_auth_start) (GsPlugin *plugin,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GCallback callback,
|
|
||||||
+ gpointer user_data);
|
|
||||||
+ gpointer padding[25];
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct GsPluginData GsPluginData;
|
|
||||||
@@ -116,5 +122,10 @@ void gs_plugin_report_event (GsPlugin *plugin,
|
|
||||||
void gs_plugin_set_allow_updates (GsPlugin *plugin,
|
|
||||||
gboolean allow_updates);
|
|
||||||
gboolean gs_plugin_get_network_available (GsPlugin *plugin);
|
|
||||||
+void gs_plugin_basic_auth_start (GsPlugin *plugin,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GCallback callback,
|
|
||||||
+ gpointer user_data);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
diff --git a/plugins/flatpak/gs-plugin-flatpak.c b/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
index 4d6a81ba..2518025d 100644
|
|
||||||
--- a/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
+++ b/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
*
|
|
||||||
* Copyright (C) 2016 Joaquim Rocha <jrocha@endlessm.com>
|
|
||||||
* Copyright (C) 2016-2018 Richard Hughes <richard@hughsie.com>
|
|
||||||
- * Copyright (C) 2017-2018 Kalev Lember <klember@redhat.com>
|
|
||||||
+ * Copyright (C) 2017-2020 Kalev Lember <klember@redhat.com>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
|
||||||
*/
|
|
||||||
@@ -456,6 +456,55 @@ _group_apps_by_installation (GsPlugin *plugin,
|
|
||||||
return g_steal_pointer (&applist_by_flatpaks);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if FLATPAK_CHECK_VERSION(1,6,0)
|
|
||||||
+typedef struct {
|
|
||||||
+ FlatpakTransaction *transaction;
|
|
||||||
+ guint id;
|
|
||||||
+} BasicAuthData;
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+basic_auth_data_free (BasicAuthData *data)
|
|
||||||
+{
|
|
||||||
+ g_object_unref (data->transaction);
|
|
||||||
+ g_slice_free (BasicAuthData, data);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(BasicAuthData, basic_auth_data_free)
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+_basic_auth_cb (const gchar *user, const gchar *password, gpointer user_data)
|
|
||||||
+{
|
|
||||||
+ g_autoptr(BasicAuthData) data = user_data;
|
|
||||||
+
|
|
||||||
+ g_debug ("Submitting basic auth data");
|
|
||||||
+
|
|
||||||
+ /* NULL user aborts the basic auth request */
|
|
||||||
+ flatpak_transaction_complete_basic_auth (data->transaction, data->id, user, password, NULL /* options */);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static gboolean
|
|
||||||
+_basic_auth_start (FlatpakTransaction *transaction,
|
|
||||||
+ const char *remote,
|
|
||||||
+ const char *realm,
|
|
||||||
+ GVariant *options,
|
|
||||||
+ guint id,
|
|
||||||
+ GsPlugin *plugin)
|
|
||||||
+{
|
|
||||||
+ BasicAuthData *data;
|
|
||||||
+
|
|
||||||
+ if (!gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE))
|
|
||||||
+ return FALSE;
|
|
||||||
+
|
|
||||||
+ data = g_slice_new0 (BasicAuthData);
|
|
||||||
+ data->transaction = g_object_ref (transaction);
|
|
||||||
+ data->id = id;
|
|
||||||
+
|
|
||||||
+ g_debug ("Login required remote %s (realm %s)\n", remote, realm);
|
|
||||||
+ gs_plugin_basic_auth_start (plugin, remote, realm, G_CALLBACK (_basic_auth_cb), data);
|
|
||||||
+ return TRUE;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
static FlatpakTransaction *
|
|
||||||
_build_transaction (GsPlugin *plugin, GsFlatpak *flatpak,
|
|
||||||
GCancellable *cancellable, GError **error)
|
|
||||||
@@ -491,6 +540,10 @@ _build_transaction (GsPlugin *plugin, GsFlatpak *flatpak,
|
|
||||||
/* connect up signals */
|
|
||||||
g_signal_connect (transaction, "ref-to-app",
|
|
||||||
G_CALLBACK (_ref_to_app), plugin);
|
|
||||||
+#if FLATPAK_CHECK_VERSION(1,6,0)
|
|
||||||
+ g_signal_connect (transaction, "basic-auth-start",
|
|
||||||
+ G_CALLBACK (_basic_auth_start), plugin);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* use system installations as dependency sources for user installations */
|
|
||||||
flatpak_transaction_add_default_dependency_sources (transaction);
|
|
||||||
diff --git a/po/POTFILES.in b/po/POTFILES.in
|
|
||||||
index 20721c4a..a44a6ad3 100644
|
|
||||||
--- a/po/POTFILES.in
|
|
||||||
+++ b/po/POTFILES.in
|
|
||||||
@@ -10,6 +10,8 @@ src/gs-app-row.c
|
|
||||||
src/gs-app-row.ui
|
|
||||||
src/gs-app-tile.c
|
|
||||||
src/gs-app-tile.ui
|
|
||||||
+src/gs-basic-auth-dialog.c
|
|
||||||
+src/gs-basic-auth-dialog.ui
|
|
||||||
lib/gs-category.c
|
|
||||||
src/gs-category-page.c
|
|
||||||
src/gs-category-page.ui
|
|
||||||
diff --git a/src/gnome-software.gresource.xml b/src/gnome-software.gresource.xml
|
|
||||||
index 3eaabca2..459ecf82 100644
|
|
||||||
--- a/src/gnome-software.gresource.xml
|
|
||||||
+++ b/src/gnome-software.gresource.xml
|
|
||||||
@@ -4,6 +4,7 @@
|
|
||||||
<file preprocess="xml-stripblanks">gnome-software.ui</file>
|
|
||||||
<file preprocess="xml-stripblanks">gs-app-addon-row.ui</file>
|
|
||||||
<file preprocess="xml-stripblanks">gs-app-row.ui</file>
|
|
||||||
+ <file preprocess="xml-stripblanks">gs-basic-auth-dialog.ui</file>
|
|
||||||
<file preprocess="xml-stripblanks">gs-category-page.ui</file>
|
|
||||||
<file preprocess="xml-stripblanks">gs-category-tile.ui</file>
|
|
||||||
<file preprocess="xml-stripblanks">gs-details-page.ui</file>
|
|
||||||
diff --git a/src/gs-basic-auth-dialog.c b/src/gs-basic-auth-dialog.c
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..c690a327
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/gs-basic-auth-dialog.c
|
|
||||||
@@ -0,0 +1,130 @@
|
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
|
||||||
+ *
|
|
||||||
+ * Copyright (C) 2020 Kalev Lember <klember@redhat.com>
|
|
||||||
+ *
|
|
||||||
+ * SPDX-License-Identifier: GPL-2.0+
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "config.h"
|
|
||||||
+
|
|
||||||
+#include "gs-basic-auth-dialog.h"
|
|
||||||
+
|
|
||||||
+#include <glib.h>
|
|
||||||
+#include <glib/gi18n.h>
|
|
||||||
+#include <gtk/gtk.h>
|
|
||||||
+
|
|
||||||
+struct _GsBasicAuthDialog
|
|
||||||
+{
|
|
||||||
+ GtkDialog parent_instance;
|
|
||||||
+
|
|
||||||
+ GsBasicAuthCallback callback;
|
|
||||||
+ gpointer callback_data;
|
|
||||||
+
|
|
||||||
+ /* template widgets */
|
|
||||||
+ GtkButton *login_button;
|
|
||||||
+ GtkLabel *description_label;
|
|
||||||
+ GtkEntry *user_entry;
|
|
||||||
+ GtkEntry *password_entry;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+G_DEFINE_TYPE (GsBasicAuthDialog, gs_basic_auth_dialog, GTK_TYPE_DIALOG)
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+cancel_button_clicked_cb (GsBasicAuthDialog *dialog)
|
|
||||||
+{
|
|
||||||
+ /* abort the basic auth request */
|
|
||||||
+ dialog->callback (NULL, NULL, dialog->callback_data);
|
|
||||||
+
|
|
||||||
+ gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+login_button_clicked_cb (GsBasicAuthDialog *dialog)
|
|
||||||
+{
|
|
||||||
+ const gchar *user;
|
|
||||||
+ const gchar *password;
|
|
||||||
+
|
|
||||||
+ user = gtk_entry_get_text (dialog->user_entry);
|
|
||||||
+ password = gtk_entry_get_text (dialog->password_entry);
|
|
||||||
+
|
|
||||||
+ /* submit the user/password to basic auth */
|
|
||||||
+ dialog->callback (user, password, dialog->callback_data);
|
|
||||||
+
|
|
||||||
+ gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+dialog_validate (GsBasicAuthDialog *dialog)
|
|
||||||
+{
|
|
||||||
+ const gchar *user;
|
|
||||||
+ const gchar *password;
|
|
||||||
+ gboolean valid_user;
|
|
||||||
+ gboolean valid_password;
|
|
||||||
+
|
|
||||||
+ /* require user */
|
|
||||||
+ user = gtk_entry_get_text (dialog->user_entry);
|
|
||||||
+ valid_user = user != NULL && strlen (user) != 0;
|
|
||||||
+
|
|
||||||
+ /* require password */
|
|
||||||
+ password = gtk_entry_get_text (dialog->password_entry);
|
|
||||||
+ valid_password = password != NULL && strlen (password) != 0;
|
|
||||||
+
|
|
||||||
+ gtk_widget_set_sensitive (GTK_WIDGET (dialog->login_button), valid_user && valid_password);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+update_description (GsBasicAuthDialog *dialog, const gchar *remote, const gchar *realm)
|
|
||||||
+{
|
|
||||||
+ g_autofree gchar *description = NULL;
|
|
||||||
+
|
|
||||||
+ /* TRANSLATORS: This is a description for entering user/password */
|
|
||||||
+ description = g_strdup_printf (_("Login required remote %s (realm %s)"),
|
|
||||||
+ remote, realm);
|
|
||||||
+ gtk_label_set_text (dialog->description_label, description);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+gs_basic_auth_dialog_init (GsBasicAuthDialog *dialog)
|
|
||||||
+{
|
|
||||||
+ gtk_widget_init_template (GTK_WIDGET (dialog));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+gs_basic_auth_dialog_class_init (GsBasicAuthDialogClass *klass)
|
|
||||||
+{
|
|
||||||
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
|
||||||
+
|
|
||||||
+ gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Software/gs-basic-auth-dialog.ui");
|
|
||||||
+
|
|
||||||
+ gtk_widget_class_bind_template_child (widget_class, GsBasicAuthDialog, login_button);
|
|
||||||
+ gtk_widget_class_bind_template_child (widget_class, GsBasicAuthDialog, description_label);
|
|
||||||
+ gtk_widget_class_bind_template_child (widget_class, GsBasicAuthDialog, user_entry);
|
|
||||||
+ gtk_widget_class_bind_template_child (widget_class, GsBasicAuthDialog, password_entry);
|
|
||||||
+
|
|
||||||
+ gtk_widget_class_bind_template_callback (widget_class, dialog_validate);
|
|
||||||
+ gtk_widget_class_bind_template_callback (widget_class, cancel_button_clicked_cb);
|
|
||||||
+ gtk_widget_class_bind_template_callback (widget_class, login_button_clicked_cb);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+GtkWidget *
|
|
||||||
+gs_basic_auth_dialog_new (GtkWindow *parent,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GsBasicAuthCallback callback,
|
|
||||||
+ gpointer callback_data)
|
|
||||||
+{
|
|
||||||
+ GsBasicAuthDialog *dialog;
|
|
||||||
+
|
|
||||||
+ dialog = g_object_new (GS_TYPE_BASIC_AUTH_DIALOG,
|
|
||||||
+ "use-header-bar", TRUE,
|
|
||||||
+ "transient-for", parent,
|
|
||||||
+ "modal", TRUE,
|
|
||||||
+ NULL);
|
|
||||||
+ dialog->callback = callback;
|
|
||||||
+ dialog->callback_data = callback_data;
|
|
||||||
+
|
|
||||||
+ update_description (dialog, remote, realm);
|
|
||||||
+ dialog_validate (dialog);
|
|
||||||
+
|
|
||||||
+ return GTK_WIDGET (dialog);
|
|
||||||
+}
|
|
||||||
diff --git a/src/gs-basic-auth-dialog.h b/src/gs-basic-auth-dialog.h
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..ec5f1d03
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/gs-basic-auth-dialog.h
|
|
||||||
@@ -0,0 +1,28 @@
|
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
|
||||||
+ *
|
|
||||||
+ * Copyright (C) 2020 Kalev Lember <klember@redhat.com>
|
|
||||||
+ *
|
|
||||||
+ * SPDX-License-Identifier: GPL-2.0+
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#pragma once
|
|
||||||
+
|
|
||||||
+#include <gtk/gtk.h>
|
|
||||||
+
|
|
||||||
+#include "gnome-software-private.h"
|
|
||||||
+
|
|
||||||
+G_BEGIN_DECLS
|
|
||||||
+
|
|
||||||
+typedef void (*GsBasicAuthCallback) (const gchar *user, const gchar *password, gpointer callback_data);
|
|
||||||
+
|
|
||||||
+#define GS_TYPE_BASIC_AUTH_DIALOG (gs_basic_auth_dialog_get_type ())
|
|
||||||
+
|
|
||||||
+G_DECLARE_FINAL_TYPE (GsBasicAuthDialog, gs_basic_auth_dialog, GS, BASIC_AUTH_DIALOG, GtkDialog)
|
|
||||||
+
|
|
||||||
+GtkWidget *gs_basic_auth_dialog_new (GtkWindow *parent,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GsBasicAuthCallback callback,
|
|
||||||
+ gpointer callback_data);
|
|
||||||
+
|
|
||||||
+G_END_DECLS
|
|
||||||
diff --git a/src/gs-basic-auth-dialog.ui b/src/gs-basic-auth-dialog.ui
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..339e831d
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/src/gs-basic-auth-dialog.ui
|
|
||||||
@@ -0,0 +1,203 @@
|
|
||||||
+<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
+<interface>
|
|
||||||
+ <template class="GsBasicAuthDialog" parent="GtkDialog">
|
|
||||||
+ <property name="can_focus">False</property>
|
|
||||||
+ <property name="border_width">5</property>
|
|
||||||
+ <property name="resizable">False</property>
|
|
||||||
+ <property name="modal">True</property>
|
|
||||||
+ <property name="destroy_with_parent">True</property>
|
|
||||||
+ <property name="type_hint">dialog</property>
|
|
||||||
+ <property name="title" translatable="yes">Login Required</property>
|
|
||||||
+ <property name="use_header_bar">1</property>
|
|
||||||
+ <child internal-child="headerbar">
|
|
||||||
+ <object class="GtkHeaderBar">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">False</property>
|
|
||||||
+ <property name="show_close_button">False</property>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkButton" id="cancel_button">
|
|
||||||
+ <property name="label" translatable="yes">_Cancel</property>
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">True</property>
|
|
||||||
+ <property name="can_default">True</property>
|
|
||||||
+ <property name="receives_default">True</property>
|
|
||||||
+ <property name="use_action_appearance">False</property>
|
|
||||||
+ <property name="use_underline">True</property>
|
|
||||||
+ <property name="valign">center</property>
|
|
||||||
+ <signal name="clicked" handler="cancel_button_clicked_cb" object="GsBasicAuthDialog" swapped="yes"/>
|
|
||||||
+ <style>
|
|
||||||
+ <class name="text-button"/>
|
|
||||||
+ </style>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="pack_type">start</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkButton" id="login_button">
|
|
||||||
+ <property name="label" translatable="yes">_Login</property>
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">True</property>
|
|
||||||
+ <property name="can_default">True</property>
|
|
||||||
+ <property name="has_default">True</property>
|
|
||||||
+ <property name="receives_default">True</property>
|
|
||||||
+ <property name="use_action_appearance">False</property>
|
|
||||||
+ <property name="use_underline">True</property>
|
|
||||||
+ <property name="valign">center</property>
|
|
||||||
+ <signal name="clicked" handler="login_button_clicked_cb" object="GsBasicAuthDialog" swapped="yes"/>
|
|
||||||
+ <style>
|
|
||||||
+ <class name="text-button"/>
|
|
||||||
+ <class name="suggested-action"/>
|
|
||||||
+ </style>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="pack_type">end</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ </object>
|
|
||||||
+ </child>
|
|
||||||
+ <child internal-child="vbox">
|
|
||||||
+ <object class="GtkBox">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">False</property>
|
|
||||||
+ <property name="orientation">vertical</property>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkGrid">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">False</property>
|
|
||||||
+ <property name="hexpand">True</property>
|
|
||||||
+ <property name="row_spacing">8</property>
|
|
||||||
+ <property name="column_spacing">6</property>
|
|
||||||
+ <property name="border_width">20</property>
|
|
||||||
+ <property name="margin_end">20</property>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkLabel" id="description_label">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">False</property>
|
|
||||||
+ <property name="wrap">True</property>
|
|
||||||
+ <property name="wrap_mode">word-char</property>
|
|
||||||
+ <property name="margin_bottom">20</property>
|
|
||||||
+ <property name="max_width_chars">55</property>
|
|
||||||
+ <property name="xalign">0</property>
|
|
||||||
+ <style>
|
|
||||||
+ <class name="dim-label"/>
|
|
||||||
+ </style>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="left_attach">0</property>
|
|
||||||
+ <property name="top_attach">0</property>
|
|
||||||
+ <property name="width">2</property>
|
|
||||||
+ <property name="height">1</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkLabel" id="user_label">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">False</property>
|
|
||||||
+ <property name="xalign">1</property>
|
|
||||||
+ <property name="label" translatable="yes">_User</property>
|
|
||||||
+ <property name="use_underline">True</property>
|
|
||||||
+ <property name="mnemonic_widget">user_entry</property>
|
|
||||||
+ <property name="margin_start">20</property>
|
|
||||||
+ <style>
|
|
||||||
+ <class name="dim-label"/>
|
|
||||||
+ </style>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="left_attach">0</property>
|
|
||||||
+ <property name="top_attach">3</property>
|
|
||||||
+ <property name="width">1</property>
|
|
||||||
+ <property name="height">1</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkLabel" id="password_label">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">False</property>
|
|
||||||
+ <property name="xalign">1</property>
|
|
||||||
+ <property name="label" translatable="yes">_Password</property>
|
|
||||||
+ <property name="use_underline">True</property>
|
|
||||||
+ <property name="mnemonic_widget">password_entry</property>
|
|
||||||
+ <property name="margin_start">20</property>
|
|
||||||
+ <style>
|
|
||||||
+ <class name="dim-label"/>
|
|
||||||
+ </style>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="left_attach">0</property>
|
|
||||||
+ <property name="top_attach">4</property>
|
|
||||||
+ <property name="width">1</property>
|
|
||||||
+ <property name="height">1</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkEntry" id="user_entry">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">True</property>
|
|
||||||
+ <property name="has_focus">True</property>
|
|
||||||
+ <property name="hexpand">True</property>
|
|
||||||
+ <property name="invisible_char">●</property>
|
|
||||||
+ <property name="activates_default">True</property>
|
|
||||||
+ <property name="invisible_char_set">True</property>
|
|
||||||
+ <property name="input_purpose">password</property>
|
|
||||||
+ <signal name="changed" handler="dialog_validate" object="GsBasicAuthDialog" swapped="yes"/>
|
|
||||||
+ <signal name="activate" handler="dialog_validate" object="GsBasicAuthDialog" swapped="yes"/>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="left_attach">1</property>
|
|
||||||
+ <property name="top_attach">3</property>
|
|
||||||
+ <property name="width">1</property>
|
|
||||||
+ <property name="height">1</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ <child>
|
|
||||||
+ <object class="GtkEntry" id="password_entry">
|
|
||||||
+ <property name="visible">True</property>
|
|
||||||
+ <property name="can_focus">True</property>
|
|
||||||
+ <property name="hexpand">True</property>
|
|
||||||
+ <property name="visibility">False</property>
|
|
||||||
+ <property name="invisible_char">●</property>
|
|
||||||
+ <property name="activates_default">True</property>
|
|
||||||
+ <property name="invisible_char_set">True</property>
|
|
||||||
+ <property name="input_purpose">password</property>
|
|
||||||
+ <signal name="changed" handler="dialog_validate" object="GsBasicAuthDialog" swapped="yes"/>
|
|
||||||
+ <signal name="activate" handler="dialog_validate" object="GsBasicAuthDialog" swapped="yes"/>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="left_attach">1</property>
|
|
||||||
+ <property name="top_attach">4</property>
|
|
||||||
+ <property name="width">1</property>
|
|
||||||
+ <property name="height">1</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ </object>
|
|
||||||
+ <packing>
|
|
||||||
+ <property name="expand">False</property>
|
|
||||||
+ <property name="fill">True</property>
|
|
||||||
+ <property name="position">0</property>
|
|
||||||
+ </packing>
|
|
||||||
+ </child>
|
|
||||||
+ </object>
|
|
||||||
+ </child>
|
|
||||||
+ </template>
|
|
||||||
+ <object class="GtkSizeGroup">
|
|
||||||
+ <widgets>
|
|
||||||
+ <widget name="user_label"/>
|
|
||||||
+ <widget name="password_label"/>
|
|
||||||
+ </widgets>
|
|
||||||
+ </object>
|
|
||||||
+ <object class="GtkSizeGroup">
|
|
||||||
+ <widgets>
|
|
||||||
+ <widget name="user_entry"/>
|
|
||||||
+ <widget name="password_entry"/>
|
|
||||||
+ </widgets>
|
|
||||||
+ </object>
|
|
||||||
+ <object class="GtkSizeGroup">
|
|
||||||
+ <property name="mode">horizontal</property>
|
|
||||||
+ <widgets>
|
|
||||||
+ <widget name="login_button"/>
|
|
||||||
+ <widget name="cancel_button"/>
|
|
||||||
+ </widgets>
|
|
||||||
+ </object>
|
|
||||||
+</interface>
|
|
||||||
diff --git a/src/gs-shell.c b/src/gs-shell.c
|
|
||||||
index 009776ad..41503cf8 100644
|
|
||||||
--- a/src/gs-shell.c
|
|
||||||
+++ b/src/gs-shell.c
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
*
|
|
||||||
* Copyright (C) 2013-2017 Richard Hughes <richard@hughsie.com>
|
|
||||||
* Copyright (C) 2013 Matthias Clasen <mclasen@redhat.com>
|
|
||||||
- * Copyright (C) 2014-2018 Kalev Lember <klember@redhat.com>
|
|
||||||
+ * Copyright (C) 2014-2020 Kalev Lember <klember@redhat.com>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
|
||||||
*/
|
|
||||||
@@ -18,6 +18,7 @@
|
|
||||||
|
|
||||||
#include "gs-common.h"
|
|
||||||
#include "gs-shell.h"
|
|
||||||
+#include "gs-basic-auth-dialog.h"
|
|
||||||
#include "gs-details-page.h"
|
|
||||||
#include "gs-installed-page.h"
|
|
||||||
#include "gs-metered-data-dialog.h"
|
|
||||||
@@ -362,6 +363,25 @@ scheduler_ready_cb (GObject *source_object,
|
|
||||||
}
|
|
||||||
#endif /* HAVE_MOGWAI */
|
|
||||||
|
|
||||||
+static void
|
|
||||||
+gs_shell_basic_auth_start_cb (GsPluginLoader *plugin_loader,
|
|
||||||
+ const gchar *remote,
|
|
||||||
+ const gchar *realm,
|
|
||||||
+ GsBasicAuthCallback callback,
|
|
||||||
+ gpointer callback_data,
|
|
||||||
+ GsShell *shell)
|
|
||||||
+{
|
|
||||||
+ GsShellPrivate *priv = gs_shell_get_instance_private (shell);
|
|
||||||
+ GtkWidget *dialog;
|
|
||||||
+
|
|
||||||
+ dialog = gs_basic_auth_dialog_new (priv->main_window, remote, realm, callback, callback_data);
|
|
||||||
+ gs_shell_modal_dialog_present (shell, GTK_DIALOG (dialog));
|
|
||||||
+
|
|
||||||
+ /* just destroy */
|
|
||||||
+ g_signal_connect_swapped (dialog, "response",
|
|
||||||
+ G_CALLBACK (gtk_widget_destroy), dialog);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
free_back_entry (BackEntry *entry)
|
|
||||||
{
|
|
||||||
@@ -2126,6 +2146,9 @@ gs_shell_setup (GsShell *shell, GsPluginLoader *plugin_loader, GCancellable *can
|
|
||||||
g_signal_connect_object (priv->plugin_loader, "notify::network-metered",
|
|
||||||
G_CALLBACK (gs_shell_network_metered_notify_cb),
|
|
||||||
shell, 0);
|
|
||||||
+ g_signal_connect_object (priv->plugin_loader, "basic-auth-start",
|
|
||||||
+ G_CALLBACK (gs_shell_basic_auth_start_cb),
|
|
||||||
+ shell, 0);
|
|
||||||
priv->cancellable = g_object_ref (cancellable);
|
|
||||||
|
|
||||||
priv->settings = g_settings_new ("org.gnome.software");
|
|
||||||
diff --git a/src/meson.build b/src/meson.build
|
|
||||||
index cbd0a511..6581e77c 100644
|
|
||||||
--- a/src/meson.build
|
|
||||||
+++ b/src/meson.build
|
|
||||||
@@ -20,6 +20,7 @@ gnome_software_sources = [
|
|
||||||
'gs-application.c',
|
|
||||||
'gs-app-row.c',
|
|
||||||
'gs-app-tile.c',
|
|
||||||
+ 'gs-basic-auth-dialog.c',
|
|
||||||
'gs-category-page.c',
|
|
||||||
'gs-category-tile.c',
|
|
||||||
'gs-common.c',
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
|||||||
From 9dce785c2a71e81c410c6e314dd4d4db6cc02808 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kalev Lember <klember@redhat.com>
|
|
||||||
Date: Wed, 3 Jun 2020 16:35:03 +0200
|
|
||||||
Subject: [PATCH] Fix hardcoded desktop and appdata names to match what's in
|
|
||||||
RHEL 8.3
|
|
||||||
|
|
||||||
---
|
|
||||||
data/assets/org.gnome.Software.Featured.xml | 2 +-
|
|
||||||
plugins/core/gs-plugin-hardcoded-popular.c | 2 +-
|
|
||||||
src/gs-folders.c | 6 +++---
|
|
||||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/data/assets/org.gnome.Software.Featured.xml b/data/assets/org.gnome.Software.Featured.xml
|
|
||||||
index d1d920be..822fc6a9 100644
|
|
||||||
--- a/data/assets/org.gnome.Software.Featured.xml
|
|
||||||
+++ b/data/assets/org.gnome.Software.Featured.xml
|
|
||||||
@@ -145,7 +145,7 @@ text-shadow: none;</value>
|
|
||||||
</custom>
|
|
||||||
</component>
|
|
||||||
<component merge="append">
|
|
||||||
- <id>org.gimp.GIMP</id>
|
|
||||||
+ <id>gimp.desktop</id>
|
|
||||||
<custom>
|
|
||||||
<value key="GnomeSoftware::FeatureTile-css">border-color: #4a8c30;
|
|
||||||
text-shadow: none;
|
|
||||||
diff --git a/plugins/core/gs-plugin-hardcoded-popular.c b/plugins/core/gs-plugin-hardcoded-popular.c
|
|
||||||
index 3998a813..03b44475 100644
|
|
||||||
--- a/plugins/core/gs-plugin-hardcoded-popular.c
|
|
||||||
+++ b/plugins/core/gs-plugin-hardcoded-popular.c
|
|
||||||
@@ -29,7 +29,7 @@ gs_plugin_add_popular (GsPlugin *plugin,
|
|
||||||
"org.gnome.clocks.desktop",
|
|
||||||
"org.gnome.Dictionary.desktop",
|
|
||||||
"org.gnome.Documents.desktop",
|
|
||||||
- "org.gnome.Evince",
|
|
||||||
+ "evince.desktop",
|
|
||||||
"org.gnome.gedit.desktop",
|
|
||||||
"org.gnome.Maps.desktop",
|
|
||||||
"org.gnome.Weather",
|
|
||||||
diff --git a/src/gs-folders.c b/src/gs-folders.c
|
|
||||||
index fa068f0e..589cc1e2 100644
|
|
||||||
--- a/src/gs-folders.c
|
|
||||||
+++ b/src/gs-folders.c
|
|
||||||
@@ -560,12 +560,12 @@ gs_folders_convert (void)
|
|
||||||
"org.gnome.DejaDup.desktop",
|
|
||||||
"org.gnome.Dictionary.desktop",
|
|
||||||
"org.gnome.DiskUtility.desktop",
|
|
||||||
- "org.gnome.eog.desktop",
|
|
||||||
- "org.gnome.Evince.desktop",
|
|
||||||
+ "eog.desktop",
|
|
||||||
+ "evince.desktop",
|
|
||||||
"org.gnome.FileRoller.desktop",
|
|
||||||
"org.gnome.fonts.desktop",
|
|
||||||
"org.gnome.Screenshot.desktop",
|
|
||||||
- "org.gnome.seahorse.Application.desktop",
|
|
||||||
+ "seahorse.desktop",
|
|
||||||
"org.gnome.Terminal.desktop",
|
|
||||||
"org.gnome.tweaks.desktop",
|
|
||||||
"org.gnome.Usage.desktop",
|
|
||||||
--
|
|
||||||
2.18.2
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
|||||||
From bc31889bf90e14776e4404cd58e9b0244efc4f2e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kalev Lember <klember@redhat.com>
|
|
||||||
Date: Tue, 9 Jun 2020 21:42:41 +0200
|
|
||||||
Subject: [PATCH] Improve the heuristic for detecting old-style AppStream
|
|
||||||
override files
|
|
||||||
|
|
||||||
The heuristic was trying to detect old-style AppStream override files
|
|
||||||
that have the following structure:
|
|
||||||
|
|
||||||
<component type=desktop>
|
|
||||||
<id>org.kde.amarok.desktop</id>
|
|
||||||
<categories>
|
|
||||||
<category>AudioVideo</category>
|
|
||||||
<category>Featured</category>
|
|
||||||
</categories>
|
|
||||||
</component>
|
|
||||||
|
|
||||||
When it found one, it gave it the wildcard quirk to avoid leaking the
|
|
||||||
result to the installed apps list.
|
|
||||||
|
|
||||||
This however incorrectly tripped on old appdata files that didn't
|
|
||||||
specify name and relied on filling the missing name/summary/icon from
|
|
||||||
the desktop file.
|
|
||||||
|
|
||||||
Fix this by tightening the heuristic and also look for
|
|
||||||
<metadata_license> that none of the override files should have.
|
|
||||||
|
|
||||||
This fixes RHEL firefox package to correctly show up when clicking on
|
|
||||||
'Show Details' in GNOME Shell.
|
|
||||||
---
|
|
||||||
plugins/core/gs-appstream.c | 14 ++++++++------
|
|
||||||
1 file changed, 8 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/plugins/core/gs-appstream.c b/plugins/core/gs-appstream.c
|
|
||||||
index a387f2e0..da9ba970 100644
|
|
||||||
--- a/plugins/core/gs-appstream.c
|
|
||||||
+++ b/plugins/core/gs-appstream.c
|
|
||||||
@@ -746,6 +746,13 @@ gs_appstream_refine_app (GsPlugin *plugin,
|
|
||||||
gs_app_remove_quirk (app, GS_APP_QUIRK_HIDE_EVERYWHERE);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* try to detect old-style AppStream 'override'
|
|
||||||
+ * files without the merge attribute */
|
|
||||||
+ if (xb_node_query_text (component, "name", NULL) == NULL &&
|
|
||||||
+ xb_node_query_text (component, "metadata_license", NULL) == NULL) {
|
|
||||||
+ gs_app_add_quirk (app, GS_APP_QUIRK_IS_WILDCARD);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* set id */
|
|
||||||
tmp = xb_node_query_text (component, "id", NULL);
|
|
||||||
if (tmp != NULL && gs_app_get_id (app) == NULL)
|
|
||||||
@@ -770,13 +777,8 @@ gs_appstream_refine_app (GsPlugin *plugin,
|
|
||||||
|
|
||||||
/* set name */
|
|
||||||
tmp = xb_node_query_text (component, "name", NULL);
|
|
||||||
- if (tmp != NULL) {
|
|
||||||
+ if (tmp != NULL)
|
|
||||||
gs_app_set_name (app, GS_APP_QUALITY_HIGHEST, tmp);
|
|
||||||
- } else {
|
|
||||||
- /* this is a heuristic, but works even with old-style AppStream
|
|
||||||
- * files without the merge attribute */
|
|
||||||
- gs_app_add_quirk (app, GS_APP_QUIRK_IS_WILDCARD);
|
|
||||||
- }
|
|
||||||
|
|
||||||
/* set summary */
|
|
||||||
tmp = xb_node_query_text (component, "summary", NULL);
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
|||||||
From de3afc6463aeb0e2d637a0360d1b96acffdf4e6d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kalev Lember <klember@redhat.com>
|
|
||||||
Date: Tue, 19 May 2020 14:28:10 +0200
|
|
||||||
Subject: [PATCH 2/2] Add webflow auth support to flatpak plugin
|
|
||||||
|
|
||||||
This is just the minimal support, launching the auth page in the default
|
|
||||||
web browser when libflatpak signals that we need to do the webflow auth.
|
|
||||||
|
|
||||||
Possible improvements could include doing either a webkitgtk dialog, or
|
|
||||||
maybe asking for confirmation before launching the web browser.
|
|
||||||
---
|
|
||||||
plugins/flatpak/gs-plugin-flatpak.c | 69 +++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 69 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/plugins/flatpak/gs-plugin-flatpak.c b/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
index 2518025d..a453cec8 100644
|
|
||||||
--- a/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
+++ b/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
@@ -503,6 +503,71 @@ _basic_auth_start (FlatpakTransaction *transaction,
|
|
||||||
gs_plugin_basic_auth_start (plugin, remote, realm, G_CALLBACK (_basic_auth_cb), data);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+static gboolean
|
|
||||||
+_webflow_start (FlatpakTransaction *transaction,
|
|
||||||
+ const char *remote,
|
|
||||||
+ const char *url,
|
|
||||||
+ GVariant *options,
|
|
||||||
+ guint id,
|
|
||||||
+ GsPlugin *plugin)
|
|
||||||
+{
|
|
||||||
+ const char *browser;
|
|
||||||
+ g_autoptr(GError) error_local = NULL;
|
|
||||||
+
|
|
||||||
+ if (!gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE))
|
|
||||||
+ return FALSE;
|
|
||||||
+
|
|
||||||
+ g_debug ("Authentication required for remote '%s'", remote);
|
|
||||||
+
|
|
||||||
+ /* Allow hard overrides with $BROWSER */
|
|
||||||
+ browser = g_getenv ("BROWSER");
|
|
||||||
+ if (browser != NULL) {
|
|
||||||
+ const char *args[3] = { NULL, url, NULL };
|
|
||||||
+ args[0] = browser;
|
|
||||||
+ if (!g_spawn_async (NULL, (char **)args, NULL, G_SPAWN_SEARCH_PATH,
|
|
||||||
+ NULL, NULL, NULL, &error_local)) {
|
|
||||||
+ g_autoptr(GsPluginEvent) event = NULL;
|
|
||||||
+
|
|
||||||
+ g_warning ("Failed to start browser %s: %s", browser, error_local->message);
|
|
||||||
+
|
|
||||||
+ event = gs_plugin_event_new ();
|
|
||||||
+ gs_flatpak_error_convert (&error_local);
|
|
||||||
+ gs_plugin_event_set_error (event, error_local);
|
|
||||||
+ gs_plugin_event_add_flag (event, GS_PLUGIN_EVENT_FLAG_WARNING);
|
|
||||||
+ gs_plugin_report_event (plugin, event);
|
|
||||||
+
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ if (!g_app_info_launch_default_for_uri (url, NULL, &error_local)) {
|
|
||||||
+ g_autoptr(GsPluginEvent) event = NULL;
|
|
||||||
+
|
|
||||||
+ g_warning ("Failed to show url: %s", error_local->message);
|
|
||||||
+
|
|
||||||
+ event = gs_plugin_event_new ();
|
|
||||||
+ gs_flatpak_error_convert (&error_local);
|
|
||||||
+ gs_plugin_event_set_error (event, error_local);
|
|
||||||
+ gs_plugin_event_add_flag (event, GS_PLUGIN_EVENT_FLAG_WARNING);
|
|
||||||
+ gs_plugin_report_event (plugin, event);
|
|
||||||
+
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ g_debug ("Waiting for browser...");
|
|
||||||
+
|
|
||||||
+ return TRUE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+_webflow_done (FlatpakTransaction *transaction,
|
|
||||||
+ GVariant *options,
|
|
||||||
+ guint id,
|
|
||||||
+ GsPlugin *plugin)
|
|
||||||
+{
|
|
||||||
+ g_debug ("Browser done");
|
|
||||||
+}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static FlatpakTransaction *
|
|
||||||
@@ -543,6 +608,10 @@ _build_transaction (GsPlugin *plugin, GsFlatpak *flatpak,
|
|
||||||
#if FLATPAK_CHECK_VERSION(1,6,0)
|
|
||||||
g_signal_connect (transaction, "basic-auth-start",
|
|
||||||
G_CALLBACK (_basic_auth_start), plugin);
|
|
||||||
+ g_signal_connect (transaction, "webflow-start",
|
|
||||||
+ G_CALLBACK (_webflow_start), plugin);
|
|
||||||
+ g_signal_connect (transaction, "webflow-done",
|
|
||||||
+ G_CALLBACK (_webflow_done), plugin);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* use system installations as dependency sources for user installations */
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
|||||||
diff -up gnome-software-3.36.1/lib/gs-plugin-loader.c.12 gnome-software-3.36.1/lib/gs-plugin-loader.c
|
|
||||||
--- gnome-software-3.36.1/lib/gs-plugin-loader.c.12 2022-09-22 12:17:59.367881179 +0200
|
|
||||||
+++ gnome-software-3.36.1/lib/gs-plugin-loader.c 2022-09-22 12:17:59.392881205 +0200
|
|
||||||
@@ -333,10 +333,17 @@ gs_plugin_job_to_failed_event (GsPluginJ
|
|
||||||
|
|
||||||
/* invalid */
|
|
||||||
if (error->domain != GS_PLUGIN_ERROR) {
|
|
||||||
- g_warning ("not GsPlugin error %s:%i: %s",
|
|
||||||
- g_quark_to_string (error->domain),
|
|
||||||
- error->code,
|
|
||||||
- error->message);
|
|
||||||
+ if (g_strcmp0 (BUILD_TYPE, "debug") == 0) {
|
|
||||||
+ g_warning ("not GsPlugin error %s:%i: %s",
|
|
||||||
+ g_quark_to_string (error->domain),
|
|
||||||
+ error->code,
|
|
||||||
+ error->message);
|
|
||||||
+ } else {
|
|
||||||
+ g_debug ("not GsPlugin error %s:%i: %s",
|
|
||||||
+ g_quark_to_string (error->domain),
|
|
||||||
+ error->code,
|
|
||||||
+ error->message);
|
|
||||||
+ }
|
|
||||||
g_set_error_literal (&error_copy,
|
|
||||||
GS_PLUGIN_ERROR,
|
|
||||||
GS_PLUGIN_ERROR_FAILED,
|
|
||||||
diff -up gnome-software-3.36.1/meson.build.12 gnome-software-3.36.1/meson.build
|
|
||||||
--- gnome-software-3.36.1/meson.build.12 2022-09-22 12:18:09.900892043 +0200
|
|
||||||
+++ gnome-software-3.36.1/meson.build 2022-09-22 12:18:19.311901744 +0200
|
|
||||||
@@ -9,6 +9,7 @@ conf = configuration_data()
|
|
||||||
conf.set_quoted('VERSION', meson.project_version())
|
|
||||||
conf.set_quoted('PACKAGE_NAME', meson.project_name())
|
|
||||||
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
|
|
||||||
+conf.set_quoted('BUILD_TYPE', get_option('buildtype'))
|
|
||||||
|
|
||||||
# this refers to the gnome-software plugin API version
|
|
||||||
# this is not in any way related to a package or soname version
|
|
||||||
diff -up gnome-software-3.36.1/src/gs-shell.c.12 gnome-software-3.36.1/src/gs-shell.c
|
|
||||||
--- gnome-software-3.36.1/src/gs-shell.c.12 2022-09-22 12:17:59.301881111 +0200
|
|
||||||
+++ gnome-software-3.36.1/src/gs-shell.c 2022-09-22 12:17:59.392881205 +0200
|
|
||||||
@@ -2044,10 +2044,17 @@ gs_shell_rescan_events (GsShell *shell)
|
|
||||||
!g_error_matches (error,
|
|
||||||
G_IO_ERROR,
|
|
||||||
G_IO_ERROR_CANCELLED)) {
|
|
||||||
- g_warning ("not handling error %s for action %s: %s",
|
|
||||||
- gs_plugin_error_to_string (error->code),
|
|
||||||
- gs_plugin_action_to_string (action),
|
|
||||||
- error->message);
|
|
||||||
+ if (g_strcmp0 (BUILD_TYPE, "debug") == 0) {
|
|
||||||
+ g_warning ("not handling error %s for action %s: %s",
|
|
||||||
+ gs_plugin_error_to_string (error->code),
|
|
||||||
+ gs_plugin_action_to_string (action),
|
|
||||||
+ error->message);
|
|
||||||
+ } else {
|
|
||||||
+ g_debug ("not handling error %s for action %s: %s",
|
|
||||||
+ gs_plugin_error_to_string (error->code),
|
|
||||||
+ gs_plugin_action_to_string (action),
|
|
||||||
+ error->message);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
gs_plugin_event_add_flag (event, GS_PLUGIN_EVENT_FLAG_INVALID);
|
|
||||||
return;
|
|
@ -1,197 +0,0 @@
|
|||||||
diff -up gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit.c.13 gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit.c
|
|
||||||
--- gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit.c.13 2023-04-25 17:12:24.676551145 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit.c 2023-04-25 17:13:54.026626204 +0200
|
|
||||||
@@ -38,6 +38,7 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
priv->task = pk_task_new ();
|
|
||||||
pk_client_set_background (PK_CLIENT (priv->task), FALSE);
|
|
||||||
pk_client_set_cache_age (PK_CLIENT (priv->task), G_MAXUINT);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -71,6 +72,7 @@ gs_plugin_add_sources_related (GsPlugin
|
|
||||||
PK_FILTER_ENUM_NOT_COLLECTIONS,
|
|
||||||
-1);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_get_packages (PK_CLIENT(priv->task),
|
|
||||||
filter,
|
|
||||||
cancellable,
|
|
||||||
@@ -134,6 +136,7 @@ gs_plugin_add_sources (GsPlugin *plugin,
|
|
||||||
PK_FILTER_ENUM_NOT_SUPPORTED,
|
|
||||||
-1);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_get_repo_list (PK_CLIENT(priv->task),
|
|
||||||
filter,
|
|
||||||
cancellable,
|
|
||||||
@@ -195,6 +198,7 @@ gs_plugin_app_origin_repo_enable (GsPlug
|
|
||||||
/* do sync call */
|
|
||||||
gs_plugin_status_update (plugin, app, GS_PLUGIN_STATUS_WAITING);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_repo_enable (PK_CLIENT (priv->task),
|
|
||||||
repo_id,
|
|
||||||
TRUE,
|
|
||||||
@@ -229,6 +233,7 @@ gs_plugin_repo_enable (GsPlugin *plugin,
|
|
||||||
gs_app_set_state (app, AS_APP_STATE_INSTALLING);
|
|
||||||
gs_packagekit_helper_add_app (helper, app);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_repo_enable (PK_CLIENT (priv->task),
|
|
||||||
gs_app_get_id (app),
|
|
||||||
TRUE,
|
|
||||||
@@ -462,6 +467,7 @@ gs_plugin_repo_disable (GsPlugin *plugin
|
|
||||||
gs_app_set_state (app, AS_APP_STATE_REMOVING);
|
|
||||||
gs_packagekit_helper_add_app (helper, app);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_repo_enable (PK_CLIENT (priv->task),
|
|
||||||
gs_app_get_id (app),
|
|
||||||
FALSE,
|
|
||||||
@@ -594,6 +600,7 @@ gs_plugin_add_updates (GsPlugin *plugin,
|
|
||||||
/* do sync call */
|
|
||||||
gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_WAITING);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_get_updates (PK_CLIENT (priv->task),
|
|
||||||
pk_bitfield_value (PK_FILTER_ENUM_NONE),
|
|
||||||
cancellable,
|
|
||||||
@@ -632,6 +639,7 @@ gs_plugin_add_search_files (GsPlugin *pl
|
|
||||||
PK_FILTER_ENUM_ARCH,
|
|
||||||
-1);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_search_files (PK_CLIENT (priv->task),
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
@@ -664,6 +672,7 @@ gs_plugin_add_search_what_provides (GsPl
|
|
||||||
PK_FILTER_ENUM_ARCH,
|
|
||||||
-1);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_what_provides (PK_CLIENT (priv->task),
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
diff -up gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-local.c.13 gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-local.c
|
|
||||||
--- gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-local.c.13 2020-05-22 16:51:19.876380400 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-local.c 2023-04-25 17:12:24.756551212 +0200
|
|
||||||
@@ -29,6 +29,7 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
g_mutex_init (&priv->task_mutex);
|
|
||||||
priv->task = pk_task_new ();
|
|
||||||
pk_client_set_background (PK_CLIENT (priv->task), FALSE);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -189,6 +190,7 @@ gs_plugin_file_to_app (GsPlugin *plugin,
|
|
||||||
files = g_strsplit (filename, "\t", -1);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
pk_client_set_cache_age (PK_CLIENT (priv->task), G_MAXUINT);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_get_details_local (PK_CLIENT (priv->task),
|
|
||||||
files,
|
|
||||||
cancellable,
|
|
||||||
diff -up gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine.c.13 gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine.c
|
|
||||||
--- gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine.c.13 2020-05-22 16:51:19.877380400 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine.c 2023-04-25 17:12:24.756551212 +0200
|
|
||||||
@@ -56,6 +56,7 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
G_CALLBACK (gs_plugin_packagekit_repo_list_changed_cb), plugin);
|
|
||||||
pk_client_set_background (priv->client, FALSE);
|
|
||||||
pk_client_set_cache_age (priv->client, G_MAXUINT);
|
|
||||||
+ pk_client_set_interactive (priv->client, gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
|
|
||||||
/* need pkgname and ID */
|
|
||||||
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "appstream");
|
|
||||||
@@ -587,6 +588,7 @@ gs_plugin_packagekit_refine_distro_upgra
|
|
||||||
g_mutex_lock (&priv->client_mutex);
|
|
||||||
cache_age_save = pk_client_get_cache_age (priv->client);
|
|
||||||
pk_client_set_cache_age (priv->client, 60 * 60 * 24 * 7); /* once per week */
|
|
||||||
+ pk_client_set_interactive (priv->client, gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_upgrade_system (priv->client,
|
|
||||||
pk_bitfield_from_enums (PK_TRANSACTION_FLAG_ENUM_SIMULATE, -1),
|
|
||||||
gs_app_get_version (app),
|
|
||||||
diff -up gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine-repos.c.13 gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine-repos.c
|
|
||||||
--- gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine-repos.c.13 2020-05-22 16:51:19.877380400 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refine-repos.c 2023-04-25 17:12:24.756551212 +0200
|
|
||||||
@@ -36,6 +36,7 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
priv->client = pk_client_new ();
|
|
||||||
pk_client_set_background (priv->client, FALSE);
|
|
||||||
pk_client_set_cache_age (priv->client, G_MAXUINT);
|
|
||||||
+ pk_client_set_interactive (priv->client, gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
|
|
||||||
/* need repos::repo-filename */
|
|
||||||
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_RUN_AFTER, "repos");
|
|
||||||
@@ -65,6 +66,7 @@ gs_plugin_packagekit_refine_repo_from_fi
|
|
||||||
to_array[0] = filename;
|
|
||||||
gs_packagekit_helper_add_app (helper, app);
|
|
||||||
g_mutex_lock (&priv->client_mutex);
|
|
||||||
+ pk_client_set_interactive (priv->client, gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_search_files (priv->client,
|
|
||||||
pk_bitfield_from_enums (PK_FILTER_ENUM_INSTALLED, -1),
|
|
||||||
(gchar **) to_array,
|
|
||||||
diff -up gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refresh.c.13 gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refresh.c
|
|
||||||
--- gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refresh.c.13 2020-05-22 16:51:19.877380400 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-refresh.c 2023-04-25 17:12:24.756551212 +0200
|
|
||||||
@@ -35,6 +35,7 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
priv->task = pk_task_new ();
|
|
||||||
pk_task_set_only_download (priv->task, TRUE);
|
|
||||||
pk_client_set_background (PK_CLIENT (priv->task), TRUE);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
|
|
||||||
/* we can return better results than dpkg directly */
|
|
||||||
gs_plugin_add_rule (plugin, GS_PLUGIN_RULE_CONFLICTS, "dpkg");
|
|
||||||
@@ -67,6 +68,7 @@ _download_only (GsPlugin *plugin, GsAppL
|
|
||||||
* we end up downloading a different set of packages than what was
|
|
||||||
* shown to the user */
|
|
||||||
pk_client_set_cache_age (PK_CLIENT (priv->task), G_MAXUINT);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_get_updates (PK_CLIENT (priv->task),
|
|
||||||
pk_bitfield_value (PK_FILTER_ENUM_NONE),
|
|
||||||
cancellable,
|
|
||||||
@@ -165,6 +167,7 @@ gs_plugin_refresh (GsPlugin *plugin,
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
/* cache age of 1 is user-initiated */
|
|
||||||
pk_client_set_background (PK_CLIENT (priv->task), cache_age > 1);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
pk_client_set_cache_age (PK_CLIENT (priv->task), cache_age);
|
|
||||||
/* refresh the metadata */
|
|
||||||
results = pk_client_refresh_cache (PK_CLIENT (priv->task),
|
|
||||||
diff -up gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-upgrade.c.13 gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-upgrade.c
|
|
||||||
--- gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-upgrade.c.13 2020-05-22 16:51:19.877380400 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-upgrade.c 2023-04-25 17:14:16.586645156 +0200
|
|
||||||
@@ -30,6 +30,7 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
pk_task_set_only_download (priv->task, TRUE);
|
|
||||||
pk_client_set_background (PK_CLIENT (priv->task), TRUE);
|
|
||||||
pk_client_set_cache_age (PK_CLIENT (priv->task), 60 * 60 * 24);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -69,6 +70,7 @@ gs_plugin_app_upgrade_download (GsPlugin
|
|
||||||
gs_app_set_state (app, AS_APP_STATE_INSTALLING);
|
|
||||||
gs_packagekit_helper_set_progress_app (helper, app);
|
|
||||||
g_mutex_lock (&priv->task_mutex);
|
|
||||||
+ pk_client_set_interactive (PK_CLIENT (priv->task), gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_task_upgrade_system_sync (priv->task,
|
|
||||||
gs_app_get_version (app),
|
|
||||||
PK_UPGRADE_KIND_ENUM_COMPLETE,
|
|
||||||
diff -up gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-url-to-app.c.13 gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-url-to-app.c
|
|
||||||
--- gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-url-to-app.c.13 2020-05-22 16:51:19.878380300 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/packagekit/gs-plugin-packagekit-url-to-app.c 2023-04-25 17:12:24.756551212 +0200
|
|
||||||
@@ -28,6 +28,7 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
|
|
||||||
pk_client_set_background (priv->client, FALSE);
|
|
||||||
pk_client_set_cache_age (priv->client, G_MAXUINT);
|
|
||||||
+ pk_client_set_interactive (priv->client, gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -87,6 +88,7 @@ gs_plugin_url_to_app (GsPlugin *plugin,
|
|
||||||
package_ids[0] = g_strdup (path);
|
|
||||||
|
|
||||||
g_mutex_lock (&priv->client_mutex);
|
|
||||||
+ pk_client_set_interactive (priv->client, gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_INTERACTIVE));
|
|
||||||
results = pk_client_resolve (priv->client,
|
|
||||||
pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, PK_FILTER_ENUM_ARCH, -1),
|
|
||||||
package_ids,
|
|
File diff suppressed because it is too large
Load Diff
@ -1,27 +0,0 @@
|
|||||||
From b50003ed83cab2c6cf6654e5972d6ee3e2303eb6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Milan Crha <mcrha@redhat.com>
|
|
||||||
Date: Tue, 16 Feb 2021 16:09:08 +0100
|
|
||||||
Subject: [PATCH] odrs: Cannot be disabled by filling empty 'review-server'
|
|
||||||
setting
|
|
||||||
|
|
||||||
Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1143
|
|
||||||
---
|
|
||||||
plugins/odrs/gs-plugin-odrs.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/plugins/odrs/gs-plugin-odrs.c b/plugins/odrs/gs-plugin-odrs.c
|
|
||||||
index f0c0c3b91..2c9bd878d 100644
|
|
||||||
--- a/plugins/odrs/gs-plugin-odrs.c
|
|
||||||
+++ b/plugins/odrs/gs-plugin-odrs.c
|
|
||||||
@@ -175,6 +175,8 @@ gs_plugin_initialize (GsPlugin *plugin)
|
|
||||||
|
|
||||||
/* set name of MetaInfo file */
|
|
||||||
gs_plugin_set_appstream_id (plugin, "org.gnome.Software.Plugin.Odrs");
|
|
||||||
+
|
|
||||||
+ gs_plugin_set_enabled (plugin, priv->review_server && *priv->review_server);
|
|
||||||
}
|
|
||||||
|
|
||||||
static GArray *
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
|||||||
From 98dbef8b5a547d3d920d377022e20d2e63519b2f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Milan Crha <mcrha@redhat.com>
|
|
||||||
Date: Tue, 16 Feb 2021 12:58:19 +0100
|
|
||||||
Subject: [PATCH 1/2] GsApplication: Crash when run as root
|
|
||||||
|
|
||||||
The `search_provider` is not initialized in this case, leading
|
|
||||||
to NULL dereference. Skip the call in such cases, because the search
|
|
||||||
provider is not that important.
|
|
||||||
|
|
||||||
Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1142
|
|
||||||
---
|
|
||||||
src/gs-application.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/gs-application.c b/src/gs-application.c
|
|
||||||
index 48f0c6aac..fdb5f55c4 100644
|
|
||||||
--- a/src/gs-application.c
|
|
||||||
+++ b/src/gs-application.c
|
|
||||||
@@ -912,7 +912,8 @@ static void
|
|
||||||
gs_application_setup_search_provider (GsApplication *app)
|
|
||||||
{
|
|
||||||
gs_application_initialize_plugins (app);
|
|
||||||
- gs_shell_search_provider_setup (app->search_provider, app->plugin_loader);
|
|
||||||
+ if (app->search_provider)
|
|
||||||
+ gs_shell_search_provider_setup (app->search_provider, app->plugin_loader);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
||||||
|
|
||||||
From 0055bfa8535bb7c5ccd9ace244d71b2885a47daa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philip Withnall <philip@tecnocode.co.uk>
|
|
||||||
Date: Mon, 22 Feb 2021 11:41:05 +0000
|
|
||||||
Subject: [PATCH 2/2] Apply 1 suggestion(s) to 1 file(s)
|
|
||||||
|
|
||||||
---
|
|
||||||
src/gs-application.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/gs-application.c b/src/gs-application.c
|
|
||||||
index fdb5f55c4..f05f6f718 100644
|
|
||||||
--- a/src/gs-application.c
|
|
||||||
+++ b/src/gs-application.c
|
|
||||||
@@ -49,7 +49,7 @@ struct _GsApplication {
|
|
||||||
#ifdef HAVE_PACKAGEKIT
|
|
||||||
GsDbusHelper *dbus_helper;
|
|
||||||
#endif
|
|
||||||
- GsShellSearchProvider *search_provider;
|
|
||||||
+ GsShellSearchProvider *search_provider; /* (nullable) (owned) */
|
|
||||||
GSettings *settings;
|
|
||||||
GSimpleActionGroup *action_map;
|
|
||||||
guint shell_loaded_handler_id;
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
From 5b0e476a17129be0d8b451467aded9c8ae861218 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rasmus Thomsen <oss@cogitri.dev>
|
|
||||||
Date: Fri, 17 Apr 2020 18:55:21 +0200
|
|
||||||
Subject: [PATCH] build: install more headers
|
|
||||||
|
|
||||||
These are required for building out of tree plugins
|
|
||||||
---
|
|
||||||
lib/meson.build | 6 ++++++
|
|
||||||
1 file changed, 6 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/lib/meson.build b/lib/meson.build
|
|
||||||
index 1c00d4f3e..6a2e803e5 100644
|
|
||||||
--- a/lib/meson.build
|
|
||||||
+++ b/lib/meson.build
|
|
||||||
@@ -4,12 +4,18 @@ cargs += ['-DLOCALPLUGINDIR=""']
|
|
||||||
install_headers([
|
|
||||||
'gnome-software.h',
|
|
||||||
'gs-app.h',
|
|
||||||
+ 'gs-app-collation.h',
|
|
||||||
'gs-app-list.h',
|
|
||||||
+ 'gs-autocleanups.h',
|
|
||||||
'gs-category.h',
|
|
||||||
+ 'gs-ioprio.h',
|
|
||||||
'gs-metered.h',
|
|
||||||
'gs-os-release.h',
|
|
||||||
'gs-plugin.h',
|
|
||||||
'gs-plugin-event.h',
|
|
||||||
+ 'gs-plugin-job.h',
|
|
||||||
+ 'gs-plugin-loader.h',
|
|
||||||
+ 'gs-plugin-loader-sync.h',
|
|
||||||
'gs-plugin-types.h',
|
|
||||||
'gs-plugin-vfuncs.h',
|
|
||||||
'gs-utils.h'
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@ -1,117 +0,0 @@
|
|||||||
diff -up gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c.10 gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c
|
|
||||||
--- gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c.10 2020-05-22 16:51:19.868380300 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/flatpak/gs-flatpak.c 2021-06-21 21:24:00.233689928 +0200
|
|
||||||
@@ -1844,12 +1844,13 @@ gs_flatpak_refine_app_state (GsFlatpak *
|
|
||||||
}
|
|
||||||
|
|
||||||
static GsApp *
|
|
||||||
-gs_flatpak_create_runtime (GsFlatpak *self, GsApp *parent, const gchar *runtime)
|
|
||||||
+gs_flatpak_create_runtime (GsFlatpak *self, GsApp *parent, const gchar *runtime, GCancellable *cancellable)
|
|
||||||
{
|
|
||||||
g_autofree gchar *source = NULL;
|
|
||||||
g_auto(GStrv) split = NULL;
|
|
||||||
g_autoptr(GsApp) app_cache = NULL;
|
|
||||||
g_autoptr(GsApp) app = NULL;
|
|
||||||
+ const gchar *origin;
|
|
||||||
|
|
||||||
/* get the name/arch/branch */
|
|
||||||
split = g_strsplit (runtime, "/", -1);
|
|
||||||
@@ -1864,6 +1865,24 @@ gs_flatpak_create_runtime (GsFlatpak *se
|
|
||||||
gs_app_set_kind (app, AS_APP_KIND_RUNTIME);
|
|
||||||
gs_app_set_branch (app, split[2]);
|
|
||||||
|
|
||||||
+ origin = gs_app_get_origin (parent);
|
|
||||||
+ if (origin != NULL) {
|
|
||||||
+ g_autoptr(FlatpakRemoteRef) xref = NULL;
|
|
||||||
+
|
|
||||||
+ xref = flatpak_installation_fetch_remote_ref_sync (self->installation,
|
|
||||||
+ origin,
|
|
||||||
+ FLATPAK_REF_KIND_RUNTIME,
|
|
||||||
+ gs_app_get_id (app),
|
|
||||||
+ gs_flatpak_app_get_ref_arch (parent),
|
|
||||||
+ gs_app_get_branch (app),
|
|
||||||
+ cancellable,
|
|
||||||
+ NULL);
|
|
||||||
+
|
|
||||||
+ /* Prefer runtime from the same origin as the parent application */
|
|
||||||
+ if (xref)
|
|
||||||
+ gs_app_set_origin (app, origin);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* search in the cache */
|
|
||||||
app_cache = gs_plugin_cache_lookup (self->plugin, gs_app_get_unique_id (app));
|
|
||||||
if (app_cache != NULL) {
|
|
||||||
@@ -1898,6 +1917,7 @@ gs_flatpak_set_app_metadata (GsFlatpak *
|
|
||||||
GsApp *app,
|
|
||||||
const gchar *data,
|
|
||||||
gsize length,
|
|
||||||
+ GCancellable *cancellable,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
gboolean secure = TRUE;
|
|
||||||
@@ -1951,7 +1971,7 @@ gs_flatpak_set_app_metadata (GsFlatpak *
|
|
||||||
gs_app_add_kudo (app, GS_APP_KUDO_SANDBOXED_SECURE);
|
|
||||||
|
|
||||||
/* create runtime */
|
|
||||||
- app_runtime = gs_flatpak_create_runtime (self, app, runtime);
|
|
||||||
+ app_runtime = gs_flatpak_create_runtime (self, app, runtime, cancellable);
|
|
||||||
if (app_runtime != NULL) {
|
|
||||||
gs_plugin_refine_item_scope (self, app_runtime);
|
|
||||||
gs_app_set_runtime (app, app_runtime);
|
|
||||||
@@ -2046,7 +2066,7 @@ gs_plugin_refine_item_metadata (GsFlatpa
|
|
||||||
}
|
|
||||||
|
|
||||||
/* parse key file */
|
|
||||||
- if (!gs_flatpak_set_app_metadata (self, app, str, len, error))
|
|
||||||
+ if (!gs_flatpak_set_app_metadata (self, app, str, len, cancellable, error))
|
|
||||||
return FALSE;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
@@ -2506,6 +2526,7 @@ gs_flatpak_file_to_app_bundle (GsFlatpak
|
|
||||||
if (!gs_flatpak_set_app_metadata (self, app,
|
|
||||||
g_bytes_get_data (metadata, NULL),
|
|
||||||
g_bytes_get_size (metadata),
|
|
||||||
+ cancellable,
|
|
||||||
error))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
diff -up gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.10 gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
--- gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.10 2021-06-21 20:38:42.585590510 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c 2021-06-21 21:23:00.977665979 +0200
|
|
||||||
@@ -852,6 +852,36 @@ gs_plugin_app_install (GsPlugin *plugin,
|
|
||||||
ref, NULL, error)) {
|
|
||||||
gs_flatpak_error_convert (error);
|
|
||||||
return FALSE;
|
|
||||||
+ } else {
|
|
||||||
+ GsApp *runtime;
|
|
||||||
+
|
|
||||||
+ runtime = gs_app_get_runtime (app);
|
|
||||||
+ if (runtime != NULL && gs_app_get_origin (runtime) != NULL) {
|
|
||||||
+ g_autoptr(FlatpakInstalledRef) runtime_ref = NULL;
|
|
||||||
+
|
|
||||||
+ runtime_ref = flatpak_installation_get_installed_ref (gs_flatpak_get_installation (flatpak),
|
|
||||||
+ gs_flatpak_app_get_ref_kind (runtime),
|
|
||||||
+ gs_flatpak_app_get_ref_name (runtime),
|
|
||||||
+ gs_flatpak_app_get_ref_arch (runtime),
|
|
||||||
+ gs_app_get_branch (runtime),
|
|
||||||
+ cancellable,
|
|
||||||
+ NULL);
|
|
||||||
+ if (runtime_ref == NULL) {
|
|
||||||
+ g_autoptr(GError) error_local = NULL;
|
|
||||||
+
|
|
||||||
+ g_clear_pointer (&ref, g_free);
|
|
||||||
+ ref = gs_flatpak_app_get_ref_display (runtime);
|
|
||||||
+ if (!flatpak_transaction_add_install (transaction, gs_app_get_origin (runtime), ref, NULL, &error_local)) {
|
|
||||||
+ if (g_error_matches (error_local, FLATPAK_ERROR, FLATPAK_ERROR_ALREADY_INSTALLED)) {
|
|
||||||
+ g_clear_error (&error_local);
|
|
||||||
+ } else {
|
|
||||||
+ g_propagate_error (error, g_steal_pointer (&error_local));
|
|
||||||
+ gs_flatpak_error_convert (error);
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
diff -up gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.unrelated-refs gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
--- gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.unrelated-refs 2020-10-09 14:07:16.407235531 -0400
|
|
||||||
+++ gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c 2020-10-09 14:08:48.775544689 -0400
|
|
||||||
@@ -696,6 +696,11 @@ gs_plugin_app_remove (GsPlugin *plugin,
|
|
||||||
gs_flatpak_error_convert (error);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ /* add to the transaction cache for quick look up -- other unrelated
|
|
||||||
+ * refs will be matched using gs_plugin_flatpak_find_app_by_ref() */
|
|
||||||
+ gs_flatpak_transaction_add_app (transaction, app);
|
|
||||||
+
|
|
||||||
ref = gs_flatpak_app_get_ref_display (app);
|
|
||||||
if (!flatpak_transaction_add_uninstall (transaction, ref, error)) {
|
|
||||||
gs_flatpak_error_convert (error);
|
|
||||||
@@ -899,6 +904,10 @@ gs_plugin_flatpak_update (GsPlugin *plug
|
|
||||||
gs_flatpak_error_convert (error);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ /* add to the transaction cache for quick look up -- other unrelated
|
|
||||||
+ * refs will be matched using gs_plugin_flatpak_find_app_by_ref() */
|
|
||||||
+ gs_flatpak_transaction_add_app (transaction, app);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* run transaction */
|
|
@ -1,97 +0,0 @@
|
|||||||
diff -up gnome-software-3.36.1/lib/gs-plugin.c.1888404 gnome-software-3.36.1/lib/gs-plugin.c
|
|
||||||
--- gnome-software-3.36.1/lib/gs-plugin.c.1888404 2021-05-24 13:50:34.302612057 +0200
|
|
||||||
+++ gnome-software-3.36.1/lib/gs-plugin.c 2021-05-24 13:50:39.160609728 +0200
|
|
||||||
@@ -1398,6 +1398,44 @@ gs_plugin_cache_lookup (GsPlugin *plugin
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
+ * gs_plugin_cache_lookup_by_state:
|
|
||||||
+ * @plugin: a #GsPlugin
|
|
||||||
+ * @list: a #GsAppList to add applications to
|
|
||||||
+ * @state: a #AsAppState
|
|
||||||
+ *
|
|
||||||
+ * Adds each cached #GsApp with state @state into the @list.
|
|
||||||
+ * When the state is %AS_APP_STATE_UNKNOWN, then adds all
|
|
||||||
+ * cached applications.
|
|
||||||
+ *
|
|
||||||
+ * Since: 3.36.1-8
|
|
||||||
+ **/
|
|
||||||
+void
|
|
||||||
+gs_plugin_cache_lookup_by_state (GsPlugin *plugin,
|
|
||||||
+ GsAppList *list,
|
|
||||||
+ AsAppState state)
|
|
||||||
+{
|
|
||||||
+ GsPluginPrivate *priv;
|
|
||||||
+ GHashTableIter iter;
|
|
||||||
+ gpointer value;
|
|
||||||
+ g_autoptr(GMutexLocker) locker = NULL;
|
|
||||||
+
|
|
||||||
+ g_return_if_fail (GS_IS_PLUGIN (plugin));
|
|
||||||
+ g_return_if_fail (GS_IS_APP_LIST (list));
|
|
||||||
+
|
|
||||||
+ priv = gs_plugin_get_instance_private (plugin);
|
|
||||||
+ locker = g_mutex_locker_new (&priv->cache_mutex);
|
|
||||||
+
|
|
||||||
+ g_hash_table_iter_init (&iter, priv->cache);
|
|
||||||
+ while (g_hash_table_iter_next (&iter, NULL, &value)) {
|
|
||||||
+ GsApp *app = value;
|
|
||||||
+
|
|
||||||
+ if (state == AS_APP_STATE_UNKNOWN ||
|
|
||||||
+ state == gs_app_get_state (app))
|
|
||||||
+ gs_app_list_add (list, app);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
* gs_plugin_cache_remove:
|
|
||||||
* @plugin: a #GsPlugin
|
|
||||||
* @key: a key which matches
|
|
||||||
diff -up gnome-software-3.36.1/lib/gs-plugin.h.1888404 gnome-software-3.36.1/lib/gs-plugin.h
|
|
||||||
--- gnome-software-3.36.1/lib/gs-plugin.h.1888404 2021-05-24 13:50:34.302612057 +0200
|
|
||||||
+++ gnome-software-3.36.1/lib/gs-plugin.h 2021-05-24 13:50:39.160609728 +0200
|
|
||||||
@@ -102,6 +102,9 @@ gboolean gs_plugin_check_distro_id (Gs
|
|
||||||
const gchar *distro_id);
|
|
||||||
GsApp *gs_plugin_cache_lookup (GsPlugin *plugin,
|
|
||||||
const gchar *key);
|
|
||||||
+void gs_plugin_cache_lookup_by_state (GsPlugin *plugin,
|
|
||||||
+ GsAppList *list,
|
|
||||||
+ AsAppState state);
|
|
||||||
void gs_plugin_cache_add (GsPlugin *plugin,
|
|
||||||
const gchar *key,
|
|
||||||
GsApp *app);
|
|
||||||
diff -up gnome-software-3.36.1/lib/gs-plugin-loader.c.1888404 gnome-software-3.36.1/lib/gs-plugin-loader.c
|
|
||||||
--- gnome-software-3.36.1/lib/gs-plugin-loader.c.1888404 2021-05-24 13:50:34.302612057 +0200
|
|
||||||
+++ gnome-software-3.36.1/lib/gs-plugin-loader.c 2021-05-24 13:50:39.159609728 +0200
|
|
||||||
@@ -1273,7 +1273,7 @@ static gboolean
|
|
||||||
gs_plugin_loader_app_is_valid_updatable (GsApp *app, gpointer user_data)
|
|
||||||
{
|
|
||||||
return gs_plugin_loader_app_is_valid (app, user_data) &&
|
|
||||||
- gs_app_is_updatable (app);
|
|
||||||
+ (gs_app_is_updatable (app) || gs_app_get_state (app) == AS_APP_STATE_INSTALLING);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
diff -up gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.1888404 gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c
|
|
||||||
--- gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c.1888404 2021-05-24 13:50:34.310612054 +0200
|
|
||||||
+++ gnome-software-3.36.1/plugins/flatpak/gs-plugin-flatpak.c 2021-05-24 13:50:39.161609727 +0200
|
|
||||||
@@ -218,6 +218,7 @@ gs_plugin_add_updates (GsPlugin *plugin,
|
|
||||||
if (!gs_flatpak_add_updates (flatpak, list, cancellable, error))
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
+ gs_plugin_cache_lookup_by_state (plugin, list, AS_APP_STATE_INSTALLING);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up gnome-software-3.36.1/src/gs-updates-page.c.1888404 gnome-software-3.36.1/src/gs-updates-page.c
|
|
||||||
--- gnome-software-3.36.1/src/gs-updates-page.c.1888404 2021-05-24 13:50:39.161609727 +0200
|
|
||||||
+++ gnome-software-3.36.1/src/gs-updates-page.c 2021-05-24 13:51:00.211599638 +0200
|
|
||||||
@@ -139,7 +139,8 @@ gs_updates_page_invalidate (GsUpdatesPag
|
|
||||||
static GsUpdatesSectionKind
|
|
||||||
_get_app_section (GsApp *app)
|
|
||||||
{
|
|
||||||
- if (gs_app_get_state (app) == AS_APP_STATE_UPDATABLE_LIVE) {
|
|
||||||
+ if (gs_app_get_state (app) == AS_APP_STATE_UPDATABLE_LIVE ||
|
|
||||||
+ gs_app_get_state (app) == AS_APP_STATE_INSTALLING) {
|
|
||||||
if (gs_app_get_kind (app) == AS_APP_KIND_FIRMWARE)
|
|
||||||
return GS_UPDATES_SECTION_KIND_ONLINE_FIRMWARE;
|
|
||||||
return GS_UPDATES_SECTION_KIND_ONLINE;
|
|
6
gating.yaml
Normal file
6
gating.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-9
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}
|
@ -1,107 +1,97 @@
|
|||||||
%global glib2_version 2.56.0
|
%global appstream_version 0.14.0
|
||||||
%global gtk3_version 3.22.4
|
%global flatpak_version 1.9.1
|
||||||
%global json_glib_version 1.2.0
|
%global fwupd_version 1.5.6
|
||||||
%global packagekit_version 1.1.12-7
|
%global glib2_version 2.68.0
|
||||||
%global appstream_glib_version 0.7.14-3
|
%global gtk4_version 4.10.0
|
||||||
%global libsoup_version 2.52.0
|
%global json_glib_version 1.6.0
|
||||||
%global gsettings_desktop_schemas_version 3.12.0
|
%global libadwaita_version 1.3.alpha
|
||||||
%global gnome_desktop_version 3.18.0
|
|
||||||
%global fwupd_version 1.0.7
|
|
||||||
%global flatpak_version 0.9.4
|
|
||||||
%global libxmlb_version 0.1.7
|
%global libxmlb_version 0.1.7
|
||||||
|
%global packagekit_version 1.2.5
|
||||||
|
|
||||||
%global fwupd_arches aarch64 ppc64le s390x x86_64
|
# Disable WebApps for RHEL builds
|
||||||
|
%bcond webapps %[!0%{?rhel}]
|
||||||
Name: gnome-software
|
# Disable parental control for RHEL builds
|
||||||
Version: 3.36.1
|
%bcond malcontent %[!0%{?rhel}]
|
||||||
Release: 12%{?dist}
|
# Disable rpm-ostree support for RHEL builds
|
||||||
Summary: A software center for GNOME
|
%bcond rpmostree %[!0%{?rhel}]
|
||||||
|
|
||||||
License: GPLv2+
|
|
||||||
URL: https://wiki.gnome.org/Apps/Software
|
|
||||||
Source0: https://download.gnome.org/sources/gnome-software/3.36/%{name}-%{version}.tar.xz
|
|
||||||
|
|
||||||
# Add support for basic auth and webflow auth in flatpak plugin
|
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/467
|
|
||||||
Patch0: 0001-Add-basic-auth-support-to-flatpak-plugin.patch
|
|
||||||
Patch1: 0002-Add-webflow-auth-support-to-flatpak-plugin.patch
|
|
||||||
# Add back shell extensions support as we don't have the extensions app in RHEL 8.3
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1839774
|
|
||||||
Patch2: add-back-shell-extensions-support.patch
|
|
||||||
# Fix hardcoded desktop and appdata names to match what's in RHEL 8.3
|
|
||||||
Patch3: 0001-Fix-hardcoded-desktop-and-appdata-names-to-match-wha.patch
|
|
||||||
# Fix 'Show Details' to correctly work for rpm-installed firefox
|
|
||||||
Patch4: 0001-Improve-the-heuristic-for-detecting-old-style-AppStr.patch
|
|
||||||
# Fix flatpak updates and removals when same ref occurs in multiple remotes
|
|
||||||
Patch5: gnome-software-3.36.1-unrelated-refs.patch
|
|
||||||
|
|
||||||
Patch6: be-able-to-disable-odrs.patch
|
|
||||||
Patch7: crash-when-run-as-root.patch
|
|
||||||
Patch8: gs-updates-page-keep-showing-installing-apps.patch
|
|
||||||
Patch9: flatpak-same-runtime-origin.patch
|
|
||||||
Patch10: devel-install-headers.patch
|
|
||||||
Patch11: 0003-hide-some-errors.patch
|
|
||||||
Patch12: 0004-set-interactive-flag-on-PkClient.patch
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: gettext
|
|
||||||
BuildRequires: libxslt
|
|
||||||
BuildRequires: docbook-style-xsl
|
|
||||||
BuildRequires: desktop-file-utils
|
|
||||||
%ifarch %{fwupd_arches}
|
|
||||||
BuildRequires: fwupd-devel >= %{fwupd_version}
|
|
||||||
%endif
|
|
||||||
BuildRequires: glib2-devel >= %{glib2_version}
|
|
||||||
BuildRequires: gnome-desktop3-devel
|
|
||||||
BuildRequires: gnome-online-accounts-devel
|
|
||||||
BuildRequires: gsettings-desktop-schemas-devel >= %{gsettings_desktop_schemas_version}
|
|
||||||
BuildRequires: gspell-devel
|
|
||||||
BuildRequires: gtk3-devel >= %{gtk3_version}
|
|
||||||
BuildRequires: gtk-doc
|
|
||||||
BuildRequires: json-glib-devel >= %{json_glib_version}
|
|
||||||
BuildRequires: libappstream-glib-devel >= %{appstream_glib_version}
|
|
||||||
BuildRequires: libsoup-devel
|
|
||||||
BuildRequires: libxmlb-devel >= %{libxmlb_version}
|
|
||||||
BuildRequires: meson
|
|
||||||
BuildRequires: PackageKit-glib-devel >= %{packagekit_version}
|
|
||||||
BuildRequires: polkit-devel
|
|
||||||
BuildRequires: flatpak-devel >= %{flatpak_version}
|
|
||||||
%if 0%{?fedora}
|
|
||||||
BuildRequires: libdnf-devel
|
|
||||||
BuildRequires: ostree-devel
|
|
||||||
BuildRequires: rpm-devel
|
|
||||||
BuildRequires: rpm-ostree-devel
|
|
||||||
%endif
|
|
||||||
BuildRequires: libgudev1-devel
|
|
||||||
%ifarch %{valgrind_arches}
|
|
||||||
BuildRequires: valgrind-devel
|
|
||||||
%endif
|
|
||||||
|
|
||||||
Requires: appstream-data
|
|
||||||
Requires: flatpak%{?_isa} >= %{flatpak_version}
|
|
||||||
Requires: flatpak-libs%{?_isa} >= %{flatpak_version}
|
|
||||||
%ifarch %{fwupd_arches}
|
|
||||||
Requires: fwupd%{?_isa} >= %{fwupd_version}
|
|
||||||
%endif
|
|
||||||
Requires: glib2%{?_isa} >= %{glib2_version}
|
|
||||||
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} >= %{gsettings_desktop_schemas_version}
|
|
||||||
Requires: gtk3%{?_isa} >= %{gtk3_version}
|
|
||||||
Requires: json-glib%{?_isa} >= %{json_glib_version}
|
|
||||||
Requires: iso-codes
|
|
||||||
Requires: libappstream-glib%{?_isa} >= %{appstream_glib_version}
|
|
||||||
# librsvg2 is needed for gdk-pixbuf svg loader
|
|
||||||
Requires: librsvg2%{?_isa}
|
|
||||||
Requires: libsoup%{?_isa} >= %{libsoup_version}
|
|
||||||
Requires: PackageKit%{?_isa} >= %{packagekit_version}
|
|
||||||
Requires: libxmlb%{?_isa} >= %{libxmlb_version}
|
|
||||||
|
|
||||||
Obsoletes: gnome-software-editor < 3.35.1
|
|
||||||
|
|
||||||
# this is not a library version
|
# this is not a library version
|
||||||
%define gs_plugin_version 13
|
%define gs_plugin_version 20
|
||||||
|
|
||||||
|
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||||
|
|
||||||
|
%global __provides_exclude_from ^%{_libdir}/%{name}/plugins-%{gs_plugin_version}/.*\\.so.*$
|
||||||
|
|
||||||
|
Name: gnome-software
|
||||||
|
Version: 45.3
|
||||||
|
Release: 3%{?dist}
|
||||||
|
Summary: A software center for GNOME
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
URL: https://wiki.gnome.org/Apps/Software
|
||||||
|
Source0: https://download.gnome.org/sources/gnome-software/45/%{name}-%{tarball_version}.tar.xz
|
||||||
|
|
||||||
|
Patch01: 0001-Lower_glib_dependency_to_2_68.patch
|
||||||
|
Patch02: 0002-Lower-pango-attributes.patch
|
||||||
|
Patch03: 0003-Verify-category-sizes.patch
|
||||||
|
Patch04: 0004-prefer-vendor-name.patch
|
||||||
|
|
||||||
|
BuildRequires: docbook-style-xsl
|
||||||
|
BuildRequires: desktop-file-utils
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: gettext
|
||||||
|
BuildRequires: gtk-doc
|
||||||
|
BuildRequires: libxslt
|
||||||
|
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-2.4)
|
||||||
|
%if %{with malcontent}
|
||||||
|
BuildRequires: pkgconfig(malcontent-0)
|
||||||
|
%endif
|
||||||
|
BuildRequires: pkgconfig(ostree-1)
|
||||||
|
BuildRequires: pkgconfig(packagekit-glib2) >= %{packagekit_version}
|
||||||
|
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}
|
||||||
|
|
||||||
|
Requires: appstream-data
|
||||||
|
Requires: appstream%{?_isa} >= %{appstream_version}
|
||||||
|
%if %{with webapps}
|
||||||
|
Requires: epiphany-runtime%{?_isa}
|
||||||
|
%endif
|
||||||
|
Requires: flatpak%{?_isa} >= %{flatpak_version}
|
||||||
|
Requires: flatpak-libs%{?_isa} >= %{flatpak_version}
|
||||||
|
Requires: fwupd%{?_isa} >= %{fwupd_version}
|
||||||
|
Requires: glib2%{?_isa} >= %{glib2_version}
|
||||||
|
# gnome-menus is needed for app folder .directory entries
|
||||||
|
Requires: gnome-menus%{?_isa}
|
||||||
|
Requires: gsettings-desktop-schemas%{?_isa}
|
||||||
|
Requires: json-glib%{?_isa} >= %{json_glib_version}
|
||||||
|
Requires: iso-codes
|
||||||
|
# librsvg2 is needed for gdk-pixbuf svg loader
|
||||||
|
Requires: librsvg2%{?_isa}
|
||||||
|
Requires: libxmlb%{?_isa} >= %{libxmlb_version}
|
||||||
|
|
||||||
|
Recommends: PackageKit%{?_isa} >= %{packagekit_version}
|
||||||
|
|
||||||
|
Obsoletes: gnome-software-snap < 3.33.1
|
||||||
|
Obsoletes: gnome-software-editor < 3.35.1
|
||||||
|
|
||||||
%description
|
%description
|
||||||
gnome-software is an application that makes it easy to add, remove
|
gnome-software is an application that makes it easy to add, remove
|
||||||
@ -115,23 +105,50 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
|||||||
These development files are for building gnome-software plugins outside
|
These development files are for building gnome-software plugins outside
|
||||||
the source tree. Most users do not need this subpackage installed.
|
the source tree. Most users do not need this subpackage installed.
|
||||||
|
|
||||||
|
%if %{with rpmostree}
|
||||||
|
%package rpm-ostree
|
||||||
|
Summary: rpm-ostree backend for gnome-software
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: rpm-ostree%{?_isa}
|
||||||
|
Supplements: (gnome-software%{?_isa} and rpm-ostree%{?_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
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -S gendiff
|
%autosetup -p1 -S gendiff -n %{name}-%{tarball_version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson \
|
%meson \
|
||||||
|
-Dsoup2=true \
|
||||||
-Dsnap=false \
|
-Dsnap=false \
|
||||||
%ifnarch %{valgrind_arches}
|
%if %{with malcontent}
|
||||||
-Dvalgrind=false \
|
-Dmalcontent=true \
|
||||||
%endif
|
%else
|
||||||
%ifnarch %{fwupd_arches}
|
-Dmalcontent=false \
|
||||||
-Dfwupd=false \
|
|
||||||
%endif
|
%endif
|
||||||
-Dgudev=true \
|
-Dgudev=true \
|
||||||
-Dpackagekit=true \
|
-Dpackagekit=true \
|
||||||
|
-Dpackagekit_autoremove=true \
|
||||||
-Dexternal_appstream=false \
|
-Dexternal_appstream=false \
|
||||||
-Dmalcontent=false \
|
%if %{with rpmostree}
|
||||||
|
-Drpm_ostree=true \
|
||||||
|
%else
|
||||||
-Drpm_ostree=false \
|
-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
|
||||||
-Dtests=false
|
-Dtests=false
|
||||||
%meson_build
|
%meson_build
|
||||||
|
|
||||||
@ -139,7 +156,7 @@ the source tree. Most users do not need this subpackage installed.
|
|||||||
%meson_install
|
%meson_install
|
||||||
|
|
||||||
# remove unneeded dpkg plugin
|
# remove unneeded dpkg plugin
|
||||||
rm %{buildroot}%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_dpkg.so
|
rm %{buildroot}%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dpkg.so
|
||||||
|
|
||||||
# make the software center load faster
|
# make the software center load faster
|
||||||
desktop-file-edit %{buildroot}%{_datadir}/applications/org.gnome.Software.desktop \
|
desktop-file-edit %{buildroot}%{_datadir}/applications/org.gnome.Software.desktop \
|
||||||
@ -148,7 +165,13 @@ desktop-file-edit %{buildroot}%{_datadir}/applications/org.gnome.Software.deskto
|
|||||||
# set up for Fedora
|
# set up for Fedora
|
||||||
cat >> %{buildroot}%{_datadir}/glib-2.0/schemas/org.gnome.software-fedora.gschema.override << FOE
|
cat >> %{buildroot}%{_datadir}/glib-2.0/schemas/org.gnome.software-fedora.gschema.override << FOE
|
||||||
[org.gnome.software]
|
[org.gnome.software]
|
||||||
official-repos = [ 'rhel-7' ]
|
%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
|
||||||
FOE
|
FOE
|
||||||
|
|
||||||
%find_lang %name --with-gnome
|
%find_lang %name --with-gnome
|
||||||
@ -160,60 +183,51 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
|||||||
%doc AUTHORS README.md
|
%doc AUTHORS README.md
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%{_bindir}/gnome-software
|
%{_bindir}/gnome-software
|
||||||
%{_datadir}/applications/gnome-software-local-file.desktop
|
%{_datadir}/applications/gnome-software-local-file-flatpak.desktop
|
||||||
|
%{_datadir}/applications/gnome-software-local-file-fwupd.desktop
|
||||||
|
%{_datadir}/applications/gnome-software-local-file-packagekit.desktop
|
||||||
%{_datadir}/applications/org.gnome.Software.desktop
|
%{_datadir}/applications/org.gnome.Software.desktop
|
||||||
%dir %{_datadir}/gnome-software
|
%{_mandir}/man1/gnome-software.1*
|
||||||
%{_datadir}/gnome-software/*.png
|
|
||||||
%{_mandir}/man1/gnome-software.1.gz
|
|
||||||
%{_datadir}/icons/hicolor/*/apps/org.gnome.Software.svg
|
%{_datadir}/icons/hicolor/*/apps/org.gnome.Software.svg
|
||||||
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Software-symbolic.svg
|
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Software-symbolic.svg
|
||||||
%{_datadir}/icons/hicolor/scalable/status/software-installed-symbolic.svg
|
%{_datadir}/icons/hicolor/scalable/actions/app-remove-symbolic.svg
|
||||||
%{_datadir}/gnome-software/featured-*.svg
|
%{_datadir}/metainfo/org.gnome.Software.metainfo.xml
|
||||||
%{_datadir}/gnome-software/featured-*.jpg
|
%if %{with webapps}
|
||||||
%{_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.Flatpak.metainfo.xml
|
||||||
%ifarch %{fwupd_arches}
|
|
||||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Fwupd.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
|
||||||
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dummy.so
|
||||||
|
%if %{with webapps}
|
||||||
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_epiphany.so
|
||||||
%endif
|
%endif
|
||||||
%{_datadir}/metainfo/org.gnome.Software.Plugin.Odrs.metainfo.xml
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fedora-langpacks.so
|
||||||
%dir %{_libdir}/gs-plugins-%{gs_plugin_version}
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fedora-pkgdb-collections.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_appstream.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_flatpak.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_desktop-categories.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fwupd.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_desktop-menu-path.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_generic-updates.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_dummy.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-blocklist.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fedora-langpacks.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_icons.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fedora-pkgdb-collections.so
|
%if %{with malcontent}
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_flatpak.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_malcontent.so
|
||||||
%ifarch %{fwupd_arches}
|
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fwupd.so
|
|
||||||
%endif
|
%endif
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_generic-updates.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_modalias.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-blacklist.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_os-release.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-popular.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_icons.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_provenance-license.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_key-colors-metadata.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_provenance.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_key-colors.so
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_repos.so
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_modalias.so
|
%{_sysconfdir}/xdg/autostart/org.gnome.Software.desktop
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_odrs.so
|
%dir %{_datadir}/swcatalog
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_os-release.so
|
%dir %{_datadir}/swcatalog/xml
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-history.so
|
%if %{with webapps}
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-local.so
|
%{_datadir}/swcatalog/xml/gnome-pwa-list-foss.xml
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-offline.so
|
%endif
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-proxy.so
|
%{_datadir}/swcatalog/xml/org.gnome.Software.Curated.xml
|
||||||
%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refine-repos.so
|
%{_datadir}/swcatalog/xml/org.gnome.Software.Featured.xml
|
||||||
%{_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_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
|
%{_datadir}/dbus-1/services/org.freedesktop.PackageKit.service
|
||||||
%{_datadir}/dbus-1/services/org.gnome.Software.service
|
%{_datadir}/dbus-1/services/org.gnome.Software.service
|
||||||
%{_datadir}/gnome-shell/search-providers/org.gnome.Software-search-provider.ini
|
%{_datadir}/gnome-shell/search-providers/org.gnome.Software-search-provider.ini
|
||||||
@ -222,75 +236,302 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
|||||||
%{_libexecdir}/gnome-software-cmd
|
%{_libexecdir}/gnome-software-cmd
|
||||||
%{_libexecdir}/gnome-software-restarter
|
%{_libexecdir}/gnome-software-restarter
|
||||||
|
|
||||||
|
%if %{with rpmostree}
|
||||||
|
%files rpm-ostree
|
||||||
|
%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_rpm-ostree.so
|
||||||
|
%endif
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%{_libdir}/pkgconfig/gnome-software.pc
|
%{_libdir}/pkgconfig/gnome-software.pc
|
||||||
%dir %{_includedir}/gnome-software
|
%dir %{_includedir}/gnome-software
|
||||||
%{_includedir}/gnome-software/*.h
|
%{_includedir}/gnome-software/*.h
|
||||||
%{_datadir}/gtk-doc/html/gnome-software
|
%{_libdir}/gnome-software/libgnomesoftware.so
|
||||||
|
%dir %{_datadir}/gtk-doc
|
||||||
|
%dir %{_datadir}/gtk-doc/html
|
||||||
|
%{_datadir}/gtk-doc/html/gnome-software/
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Apr 25 2023 Milan Crha <mcrha@redhat.com> - 3.36.1-12
|
* Mon May 27 2024 Milan Crha <mcrha@redhat.com> - 45.3-3
|
||||||
- Resolves: #1857654 (packagekit: Set interactive flag on PkClient)
|
- Resolves: RHEL-22268 (Prefer VENDOR_NAME in app origin)
|
||||||
|
|
||||||
* Thu Sep 22 2022 Milan Crha <mcrha@redhat.com> - 3.36.1-11
|
* Mon May 06 2024 Milan Crha <mcrha@redhat.com> - 45.3-2
|
||||||
- Resolves: #2124772 (Hide some errors in non-debug builds)
|
- Resolves: RHEL-843 (Rebase GNOME Software to its GNOME 45 version)
|
||||||
|
|
||||||
* Thu Jul 08 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-10
|
* Thu Aug 03 2023 Milan Crha <mcrha@redhat.com> - 41.5-3
|
||||||
- Resolves: #1978505 (Development package is missing important header files)
|
- Resolves: #2228374 (Rebuild to move gnome-software-devel into CRB)
|
||||||
|
|
||||||
* Mon Jun 21 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-9
|
* Thu Sep 22 2022 Milan Crha <mcrha@redhat.com> - 41.5-2
|
||||||
- Resolves: #1972545 (flatpak: Prefer runtime from the same origin as the application)
|
- Resolves: #2128812 (Correct property name in GsRemovalDialog .ui file)
|
||||||
|
- Resolves: #2129021 (Hide some errors in non-debug builds)
|
||||||
|
|
||||||
* Mon May 24 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-8
|
* Mon Mar 21 2022 Milan Crha <mcrha@redhat.com> - 41.5-1
|
||||||
- Resolves: #1888404 (Updates page hides ongoing updates on refresh)
|
- Resolves: #2066164 (Update to 41.5)
|
||||||
|
|
||||||
* Mon May 24 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-7
|
* Mon Feb 14 2022 Milan Crha <mcrha@redhat.com> - 41.4-1
|
||||||
- Resolves: #1873297 (Crash when run as root)
|
- Resolves: #2054082 (Update to 41.4)
|
||||||
|
|
||||||
* Mon May 24 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-6
|
* Mon Jan 31 2022 Milan Crha <mcrha@redhat.com> - 41.3-2
|
||||||
- Resolves: #1791478 (Cannot completely disable ODRS (GNOME Ratings))
|
- Resolves: #2048397 (Optional software repos can't be disabled)
|
||||||
|
|
||||||
* Wed Feb 17 2021 Milan Crha <mcrha@redhat.com> - 3.36.1-5
|
* Mon Jan 10 2022 Milan Crha <mcrha@redhat.com> - 41.3-1
|
||||||
- Fix flatpak updates and removals when same ref occurs in multiple remotes
|
- Resolves: #2038805 (Update to 41.3)
|
||||||
- Resolves: #1888407
|
|
||||||
|
|
||||||
* Thu Jun 11 2020 Kalev Lember <klember@redhat.com> - 3.36.1-4
|
* Mon Dec 06 2021 Milan Crha <mcrha@redhat.com> - 41.2-1
|
||||||
- Fix 'Show Details' to correctly work for rpm-installed firefox
|
- Resolves: #2029323 (Update to 41.2)
|
||||||
- Resolves: #1845714
|
|
||||||
|
|
||||||
* Wed Jun 03 2020 Kalev Lember <klember@redhat.com> - 3.36.1-3
|
* Mon Nov 01 2021 Milan Crha <mcrha@redhat.com> - 41.1-1
|
||||||
- Upload correct 3.36.1 tarball
|
- Resolves: #2018871 (Update to 41.1)
|
||||||
- Fix hardcoded desktop and appdata names to match what's in RHEL 8.3
|
|
||||||
- Add back shell extensions support
|
|
||||||
- Resolves: #1839774
|
|
||||||
|
|
||||||
* Tue Jun 02 2020 Kalev Lember <klember@redhat.com> - 3.36.1-2
|
* Tue Oct 12 2021 Milan Crha <mcrha@redhat.com> - 41.0-2
|
||||||
- Add support for basic auth and webflow auth in flatpak plugin
|
- Resolves: #2012699 (Backport changes from Fedora 35)
|
||||||
- Resolves: #1815502
|
- Add patch to mark compulsory only repos, not apps from it
|
||||||
|
- Resolves: #2011176 (flathub repo can't be added through gnome-software)
|
||||||
|
- Resolves: #2010660 (gs-repos-dialog: Can show also desktop applications)
|
||||||
|
- Resolves: #2010353 (Optional repos cannot be disabled)
|
||||||
|
- Resolves: #2010740 (Refresh on repository setup change)
|
||||||
|
- Resolves: #2009063 (Correct update notifications)
|
||||||
|
|
||||||
|
* Mon Sep 20 2021 Milan Crha <mcrha@redhat.com> - 41.0-1
|
||||||
|
- Resolves: #2005770 (Update to 41.0)
|
||||||
|
|
||||||
|
* Mon Aug 23 2021 Kalev Lember <klember@redhat.com> - 41~beta-1
|
||||||
|
- Resolves: #1995567 (Update to 41.beta)
|
||||||
|
|
||||||
|
* Fri Aug 13 2021 Milan Crha <mcrha@redhat.com> - 40.4-1
|
||||||
|
- Resolves: #1992452 (Update to 40.4)
|
||||||
|
|
||||||
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 40.3-3
|
||||||
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
|
* Mon Jul 19 2021 Milan Crha <mcrha@redhat.com> - 40.3-2
|
||||||
|
- Resolves: #1983553
|
||||||
|
- Add rpm-ostree patch to hide packages from the search results
|
||||||
|
- Add patch to implement what-provides search in the Flatpak plugin
|
||||||
|
|
||||||
|
* Mon Jul 12 2021 Milan Crha <mcrha@redhat.com> - 40.3-1
|
||||||
|
- Related: #1981296 (Update to 40.3)
|
||||||
|
|
||||||
|
* Tue Jun 22 2021 Mohan Boddu <mboddu@redhat.com> - 40.2-2
|
||||||
|
- Rebuilt for RHEL 9 BETA for openssl 3.0
|
||||||
|
Related: rhbz#1971065
|
||||||
|
|
||||||
|
* Fri Jun 04 2021 Milan Crha <mcrha@redhat.com> - 40.2-1
|
||||||
|
- Related: #1967855 (Update to 40.2)
|
||||||
|
|
||||||
|
* Mon May 03 2021 Milan Crha <mcrha@redhat.com> - 40.1-2
|
||||||
|
- Related: #1952776 (Add patch for crash under gs_details_page_refresh_all() (i#1227))
|
||||||
|
|
||||||
|
* Mon May 03 2021 Milan Crha <mcrha@redhat.com> - 40.1-1
|
||||||
|
- Related: #1952776 (Update to 40.1)
|
||||||
|
|
||||||
|
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 40.0-3
|
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
|
* Fri Mar 26 2021 Kalev Lember <klember@redhat.com> - 40.0-2
|
||||||
|
- Rebuild to fix sysprof-capture symbols leaking into libraries consuming it
|
||||||
|
|
||||||
|
* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 40.0-1
|
||||||
|
- Update to 40.0
|
||||||
|
|
||||||
|
* Thu Mar 18 2021 Adam Williamson <awilliam@redhat.com> - 40~rc-2
|
||||||
|
- Backport a couple of bug fixes from upstream (icon display, crash bug)
|
||||||
|
|
||||||
|
* Mon Mar 15 2021 Kalev Lember <klember@redhat.com> - 40~rc-1
|
||||||
|
- Update to 40.rc
|
||||||
|
|
||||||
|
* Wed Mar 10 2021 Adam Williamson <awilliam@redhat.com> - 40~beta-2
|
||||||
|
- Backport MR #643 to fix update notifications on first run (#1930401)
|
||||||
|
|
||||||
|
* Tue Feb 16 2021 Kalev Lember <klember@redhat.com> - 40~beta-1
|
||||||
|
- Update to 40.beta
|
||||||
|
|
||||||
|
* Mon Feb 08 2021 Richard Hughes <richard@hughsie.com> - 3.38.1-1
|
||||||
|
- New upstream version
|
||||||
|
- Fix package details not found for some packages
|
||||||
|
- Ignore harmless warnings when using unusual fwupd versions
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.38.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Sep 14 2020 Kalev Lember <klember@redhat.com> - 3.38.0-2
|
||||||
|
- Revert an optimization that broke packagekit updates
|
||||||
|
|
||||||
|
* Fri Sep 11 2020 Kalev Lember <klember@redhat.com> - 3.38.0-1
|
||||||
|
- Update to 3.38.0
|
||||||
|
|
||||||
|
* Tue Sep 01 2020 Kalev Lember <klember@redhat.com> - 3.37.92-1
|
||||||
|
- Update to 3.37.92
|
||||||
|
|
||||||
|
* Tue Aug 18 2020 Richard Hughes <richard@hughsie.com> - 3.36.1-4
|
||||||
|
- Rebuild for the libxmlb API bump.
|
||||||
|
|
||||||
|
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.36.1-3
|
||||||
|
- Second attempt - Rebuilt for
|
||||||
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.36.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
* Fri May 22 2020 Richard Hughes <rhughes@redhat.com> - 3.36.1-1
|
* Fri May 22 2020 Richard Hughes <rhughes@redhat.com> - 3.36.1-1
|
||||||
- Update to 3.36.1
|
- Update to 3.36.1
|
||||||
- Resolves: #1797932
|
|
||||||
|
|
||||||
* Wed Jan 29 2020 Kalev Lember <klember@redhat.com> - 3.30.6-3
|
* Tue May 12 2020 Kalev Lember <klember@redhat.com> - 3.36.0-2
|
||||||
- Fix issues with installing Cockpit
|
- Backport various rpm-ostree backend fixes
|
||||||
- Resolves: #1759913
|
|
||||||
|
|
||||||
* Fri Jul 12 2019 Kalev Lember <klember@redhat.com> - 3.30.6-2
|
* Wed Mar 11 2020 Kalev Lember <klember@redhat.com> - 3.36.0-1
|
||||||
- Hide addons that are not available in repos
|
- Update to 3.36.0
|
||||||
- Resolves: #1719779
|
|
||||||
|
|
||||||
* Tue Dec 18 2018 Kalev Lember <klember@redhat.com> - 3.30.6-1
|
* Wed Mar 04 2020 Kalev Lember <klember@redhat.com> - 3.35.92-1
|
||||||
- Update to 3.30.6
|
- Update to 3.35.92
|
||||||
|
|
||||||
* Fri Aug 3 2018 Florian Weimer <fweimer@redhat.com> - 3.28.2-3
|
* Fri Feb 21 2020 Richard Hughes <rhughes@redhat.com> - 3.35.91-2
|
||||||
- Honor %%{valgrind_arches}
|
- Backport a patch to fix a crash when looking at the application details.
|
||||||
|
|
||||||
* Wed Jul 18 2018 Richard Hughes <rhughes@redhat.com> - 3.28.2-2
|
* Wed Feb 19 2020 Richard Hughes <rhughes@redhat.com> - 3.35.91-1
|
||||||
- Do not build the snapd plugin on RHEL.
|
- Update to 3.35.91.
|
||||||
|
|
||||||
* Thu Jul 12 2018 Richard Hughes <rhughes@redhat.com> - 3.28.2-1
|
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.35.2-2
|
||||||
- Update to 3.28.2
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Nov 25 2019 Richard Hughes <rhughes@redhat.com> - 3.35.2-1
|
||||||
|
- Update to 3.35.2.
|
||||||
|
|
||||||
|
* Fri Oct 18 2019 Kalev Lember <klember@redhat.com> - 3.34.1-6
|
||||||
|
- Backport patches to fix a crash in gs_flatpak_get_installation (#1762689)
|
||||||
|
|
||||||
|
* Mon Oct 14 2019 Kalev Lember <klember@redhat.com> - 3.34.1-5
|
||||||
|
- Update renamed appstream ids for GNOME 3.34
|
||||||
|
|
||||||
|
* Fri Oct 11 2019 Richard Hughes <rhughes@redhat.com> - 3.34.1-4
|
||||||
|
- Backport a simpler to correct the installed applications
|
||||||
|
- Resolves #1759193
|
||||||
|
|
||||||
|
* Fri Oct 11 2019 Richard Hughes <rhughes@redhat.com> - 3.34.1-3
|
||||||
|
- Backport a better patch to correct the installed applications
|
||||||
|
- Resolves #1759193
|
||||||
|
|
||||||
|
* Thu Oct 10 2019 Richard Hughes <rhughes@redhat.com> - 3.34.1-2
|
||||||
|
- Backport a patch to correct the applications shown in the installed list
|
||||||
|
- Resolves #1759193
|
||||||
|
|
||||||
|
* Mon Oct 07 2019 Kalev Lember <klember@redhat.com> - 3.34.1-1
|
||||||
|
- Update to 3.34.1
|
||||||
|
|
||||||
|
* Wed Sep 25 2019 Kalev Lember <klember@redhat.com> - 3.34.0-2
|
||||||
|
- Fix third party repo enabling not working (#1749566)
|
||||||
|
|
||||||
|
* Mon Sep 09 2019 Kalev Lember <klember@redhat.com> - 3.34.0-1
|
||||||
|
- Update to 3.34.0
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.4-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 11 2019 Kalev Lember <klember@redhat.com> - 3.32.4-1
|
||||||
|
- Update to 3.32.4
|
||||||
|
|
||||||
|
* Thu Jul 11 2019 Richard Hughes <rhughes@redhat.com> - 3.32.3-5
|
||||||
|
- Disable the snap plugin. Canonical upstream are not going to be installing
|
||||||
|
gnome-software in the next LTS, prefering instead to ship a "Snap Store"
|
||||||
|
rather than GNOME Software.
|
||||||
|
- Enabling the snap plugin also enables the Snap Store which violated the same
|
||||||
|
rules which prevented us installing Flathub by default.
|
||||||
|
- The existing plugin is barely maintained and I don't want to be the one
|
||||||
|
responsible when it breaks.
|
||||||
|
|
||||||
|
* Thu Jun 13 2019 Kalev Lember <klember@redhat.com> - 3.32.3-4
|
||||||
|
- Rebuild for accidental libflatpak ABI break
|
||||||
|
|
||||||
|
* Mon Jun 10 22:13:19 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.32.3-3
|
||||||
|
- Rebuild for RPM 4.15
|
||||||
|
|
||||||
|
* Mon Jun 10 15:42:01 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.32.3-2
|
||||||
|
- Rebuild for RPM 4.15
|
||||||
|
|
||||||
|
* Fri May 24 2019 Kalev Lember <klember@redhat.com> - 3.32.3-1
|
||||||
|
- Update to 3.32.3
|
||||||
|
|
||||||
|
* Tue May 07 2019 Kalev Lember <klember@redhat.com> - 3.32.2-1
|
||||||
|
- Update to 3.32.2
|
||||||
|
|
||||||
|
* Fri May 03 2019 Kalev Lember <klember@redhat.com> - 3.32.1-4
|
||||||
|
- Update a patch to final upstream version
|
||||||
|
|
||||||
|
* Tue Apr 30 2019 Kalev Lember <klember@redhat.com> - 3.32.1-3
|
||||||
|
- Backport a number of rpm-ostree fixes
|
||||||
|
|
||||||
|
* Tue Apr 16 2019 Adam Williamson <awilliam@redhat.com> - 3.32.1-2
|
||||||
|
- Rebuild with Meson fix for #1699099
|
||||||
|
|
||||||
|
* Mon Apr 15 2019 Kalev Lember <klember@redhat.com> - 3.32.1-1
|
||||||
|
- Update to 3.32.1
|
||||||
|
|
||||||
|
* Fri Apr 05 2019 Neal Gompa <ngompa13@gmail.com> - 3.32.0-6
|
||||||
|
- Require snapd instead of the obsolete snapd-login-service for snap subpackage
|
||||||
|
|
||||||
|
* Wed Apr 03 2019 Kalev Lember <klember@redhat.com> - 3.32.0-5
|
||||||
|
- Switch to system libdnf
|
||||||
|
|
||||||
|
* Fri Mar 29 2019 Kalev Lember <klember@redhat.com> - 3.32.0-4
|
||||||
|
- Rebuild for new rpm-ostree
|
||||||
|
|
||||||
|
* Fri Mar 15 2019 Kalev Lember <klember@redhat.com> - 3.32.0-3
|
||||||
|
- Add nm-connection-editor.desktop to Utilities folder (#1686851)
|
||||||
|
|
||||||
|
* Tue Mar 12 2019 Kalev Lember <klember@redhat.com> - 3.32.0-2
|
||||||
|
- Backport a patch to add shadows to app icons
|
||||||
|
|
||||||
|
* Mon Mar 11 2019 Kalev Lember <klember@redhat.com> - 3.32.0-1
|
||||||
|
- Update to 3.32.0
|
||||||
|
|
||||||
|
* Tue Mar 05 2019 Kalev Lember <klember@redhat.com> - 3.31.92-1
|
||||||
|
- Update to 3.31.92
|
||||||
|
|
||||||
|
* Thu Feb 28 2019 Kalev Lember <klember@redhat.com> - 3.31.90-4
|
||||||
|
- Change PackageKit requires to recommends
|
||||||
|
|
||||||
|
* Wed Feb 27 2019 Kalev Lember <klember@redhat.com> - 3.31.90-3
|
||||||
|
- Remove unneeded dpkg plugin
|
||||||
|
|
||||||
|
* Mon Feb 25 2019 Kalev Lember <klember@redhat.com> - 3.31.90-2
|
||||||
|
- Split rpm-ostree backend to its own subpackage
|
||||||
|
|
||||||
|
* Sun Feb 24 2019 Kalev Lember <klember@redhat.com> - 3.31.90-1
|
||||||
|
- Update to 3.31.90
|
||||||
|
- Add "anaconda" repo to official repos list (#1679693)
|
||||||
|
|
||||||
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.31.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 16 2019 Kalev Lember <klember@redhat.com> - 3.31.2-1
|
||||||
|
- Update to 3.31.2
|
||||||
|
|
||||||
|
* Fri Dec 14 2018 Kalev Lember <klember@redhat.com> - 3.31.1-2
|
||||||
|
- Fix offline update notifications to show up (#1659231)
|
||||||
|
|
||||||
|
* Tue Oct 09 2018 Kalev Lember <klember@redhat.com> - 3.31.1-1
|
||||||
|
- Update to 3.31.1
|
||||||
|
|
||||||
|
* Fri Oct 05 2018 Kalev Lember <klember@redhat.com> - 3.30.2-1
|
||||||
|
- Update to 3.30.2
|
||||||
|
|
||||||
|
* Wed Sep 26 2018 Kalev Lember <klember@redhat.com> - 3.30.1-2
|
||||||
|
- Add modular repos to official repos list
|
||||||
|
|
||||||
|
* Tue Sep 25 2018 Kalev Lember <klember@redhat.com> - 3.30.1-1
|
||||||
|
- Update to 3.30.1
|
||||||
|
|
||||||
|
* Thu Sep 06 2018 Kalev Lember <klember@redhat.com> - 3.30.0-1
|
||||||
|
- Update to 3.30.0
|
||||||
|
|
||||||
|
* Tue Aug 28 2018 Richard Hughes <rhughes@redhat.com> - 3.29.92-1
|
||||||
|
- Update to 3.29.92
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.29.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed May 09 2018 Kalev Lember <klember@redhat.com> - 3.29.1-1
|
||||||
|
- Update to 3.29.1
|
||||||
|
|
||||||
* Mon Apr 09 2018 Kalev Lember <klember@redhat.com> - 3.28.1-1
|
* Mon Apr 09 2018 Kalev Lember <klember@redhat.com> - 3.28.1-1
|
||||||
- Update to 3.28.1
|
- Update to 3.28.1
|
7
rpminspect.yaml
Normal file
7
rpminspect.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
runpath:
|
||||||
|
allowed_paths:
|
||||||
|
- /usr/lib/gnome-software
|
||||||
|
- /usr/lib/rpm-ostree
|
||||||
|
- /usr/lib64/gnome-software
|
||||||
|
- /usr/lib64/rpm-ostree
|
Loading…
Reference in New Issue
Block a user