Add patch for GNOME Software to facilitate sandboxing
This commit is contained in:
parent
4c6f4f4a3d
commit
9599d3da9d
@ -0,0 +1,73 @@
|
||||
From cfb9327280c3e173b4cfb0ec3ec3d62e729f1e21 Mon Sep 17 00:00:00 2001
|
||||
From: Bruce Leidl <bruce@subgraph.com>
|
||||
Date: Fri, 27 Sep 2024 07:34:13 -0400
|
||||
Subject: [PATCH] Remove System Bus and close application on quit
|
||||
|
||||
To facilitage sandboxing remove dependency on system bus. The
|
||||
system bus is not needed for any plugin that we are using. Also
|
||||
close the application rather than just hiding the window when
|
||||
the user exits the application. Otherwise the sandbox will run
|
||||
forever.
|
||||
---
|
||||
lib/gs-plugin-loader.c | 5 +----
|
||||
lib/gs-plugin.c | 1 -
|
||||
src/gs-shell.c | 4 +++-
|
||||
3 files changed, 4 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
|
||||
index 6661b73..ac57bdc 100644
|
||||
--- a/lib/gs-plugin-loader.c
|
||||
+++ b/lib/gs-plugin-loader.c
|
||||
@@ -1964,8 +1964,6 @@ gs_plugin_loader_setup_async (GsPluginLoader *plugin_loader,
|
||||
* time. */
|
||||
if (plugin_loader->session_bus_connection == NULL)
|
||||
g_bus_get (G_BUS_TYPE_SESSION, cancellable, get_session_bus_cb, g_object_ref (task));
|
||||
- if (plugin_loader->system_bus_connection == NULL)
|
||||
- g_bus_get (G_BUS_TYPE_SYSTEM, cancellable, get_system_bus_cb, g_object_ref (task));
|
||||
|
||||
finish_setup_get_bus (task);
|
||||
}
|
||||
@@ -2032,8 +2030,7 @@ finish_setup_get_bus (GTask *task)
|
||||
g_autoptr(GError) local_error = NULL;
|
||||
|
||||
/* Wait until we’ve got all the buses we need. */
|
||||
- if (plugin_loader->session_bus_connection == NULL ||
|
||||
- plugin_loader->system_bus_connection == NULL)
|
||||
+ if (plugin_loader->session_bus_connection == NULL)
|
||||
return;
|
||||
|
||||
/* use the default, but this requires a 'make install' */
|
||||
diff --git a/lib/gs-plugin.c b/lib/gs-plugin.c
|
||||
index 97bc47e..514d97a 100644
|
||||
--- a/lib/gs-plugin.c
|
||||
+++ b/lib/gs-plugin.c
|
||||
@@ -1606,7 +1606,6 @@ gs_plugin_constructed (GObject *object)
|
||||
|
||||
/* Check all required properties have been set. */
|
||||
g_assert (priv->session_bus_connection != NULL);
|
||||
- g_assert (priv->system_bus_connection != NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/src/gs-shell.c b/src/gs-shell.c
|
||||
index 5c069e2..13bdcc6 100644
|
||||
--- a/src/gs-shell.c
|
||||
+++ b/src/gs-shell.c
|
||||
@@ -1081,6 +1081,8 @@ main_window_closed_cb (GtkWidget *dialog, gpointer user_data)
|
||||
/* Free unused memory with GNU extension of malloc.h */
|
||||
malloc_trim (0);
|
||||
#endif
|
||||
+ GApplication *app = g_application_get_default ();
|
||||
+ g_action_group_activate_action(G_ACTION_GROUP(app), "quit", NULL);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -2505,7 +2507,7 @@ gs_shell_class_init (GsShellClass *klass)
|
||||
gtk_widget_class_bind_template_callback (widget_class, gs_shell_details_page_metainfo_loaded_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, details_page_app_clicked_cb);
|
||||
|
||||
- gtk_widget_class_add_binding_action (widget_class, GDK_KEY_q, GDK_CONTROL_MASK, "window.close", NULL);
|
||||
+ gtk_widget_class_add_binding_action (widget_class, GDK_KEY_q, GDK_CONTROL_MASK, "app.quit", NULL);
|
||||
}
|
||||
|
||||
static void
|
@ -28,6 +28,7 @@ RDEPENDS:${PN} = "iso-codes"
|
||||
|
||||
EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
|
||||
|
||||
SRC_URI += " file://0001-Remove-System-Bus-and-close-application-on-quit.patch"
|
||||
SRC_URI[archive.sha256sum] = "b6eeb789100de94b50ebe2e77f16b26be4c2db15489905f198d060c425e19076"
|
||||
|
||||
PACKAGECONFIG ?= "flatpak"
|
||||
|
Loading…
Reference in New Issue
Block a user