parent
25d9fbd19e
commit
85e76e8866
222
add-back-session-name-property.patch
Normal file
222
add-back-session-name-property.patch
Normal file
@ -0,0 +1,222 @@
|
||||
From 837a0bfcc44d104ff48285077f3a3e8e01ecc29a Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 5 Jan 2015 13:41:47 -0500
|
||||
Subject: [PATCH] manager: add back session-name property
|
||||
|
||||
It got stripped out in the gdbus port, but it's used internally.
|
||||
|
||||
Fixes memory corruption crasher
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=622924
|
||||
---
|
||||
gnome-session/gsm-manager.c | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
|
||||
index 1e6841e..0edfef0 100644
|
||||
--- a/gnome-session/gsm-manager.c
|
||||
+++ b/gnome-session/gsm-manager.c
|
||||
@@ -144,60 +144,61 @@ struct GsmManagerPrivate
|
||||
|
||||
/* List of clients which were disconnected due to disabled condition
|
||||
* and shouldn't be automatically restarted */
|
||||
GSList *condition_clients;
|
||||
|
||||
GSList *pending_end_session_tasks;
|
||||
GCancellable *end_session_cancellable;
|
||||
|
||||
GSettings *settings;
|
||||
GSettings *session_settings;
|
||||
GSettings *screensaver_settings;
|
||||
GSettings *lockdown_settings;
|
||||
|
||||
GsmSystem *system;
|
||||
GDBusConnection *connection;
|
||||
GsmExportedManager *skeleton;
|
||||
gboolean dbus_disconnected : 1;
|
||||
guint name_owner_id;
|
||||
|
||||
GsmShell *shell;
|
||||
guint shell_end_session_dialog_canceled_id;
|
||||
guint shell_end_session_dialog_open_failed_id;
|
||||
guint shell_end_session_dialog_confirmed_logout_id;
|
||||
guint shell_end_session_dialog_confirmed_shutdown_id;
|
||||
guint shell_end_session_dialog_confirmed_reboot_id;
|
||||
};
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_CLIENT_STORE,
|
||||
+ PROP_SESSION_NAME,
|
||||
PROP_FALLBACK,
|
||||
PROP_FAILSAFE
|
||||
};
|
||||
|
||||
enum {
|
||||
PHASE_CHANGED,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
static guint signals [LAST_SIGNAL] = { 0 };
|
||||
|
||||
static void gsm_manager_class_init (GsmManagerClass *klass);
|
||||
static void gsm_manager_init (GsmManager *manager);
|
||||
|
||||
static gboolean auto_save_is_enabled (GsmManager *manager);
|
||||
static void maybe_save_session (GsmManager *manager);
|
||||
|
||||
static gboolean _log_out_is_locked_down (GsmManager *manager);
|
||||
|
||||
static void _handle_client_end_session_response (GsmManager *manager,
|
||||
GsmClient *client,
|
||||
gboolean is_ok,
|
||||
gboolean do_last,
|
||||
gboolean cancel,
|
||||
const char *reason);
|
||||
static void show_shell_end_session_dialog (GsmManager *manager,
|
||||
GsmShellEndSessionDialogType type);
|
||||
static gpointer manager_object = NULL;
|
||||
|
||||
G_DEFINE_TYPE (GsmManager, gsm_manager, G_TYPE_OBJECT)
|
||||
@@ -2069,60 +2070,63 @@ gsm_manager_set_property (GObject *object,
|
||||
switch (prop_id) {
|
||||
case PROP_FAILSAFE:
|
||||
gsm_manager_set_failsafe (self, g_value_get_boolean (value));
|
||||
break;
|
||||
case PROP_FALLBACK:
|
||||
self->priv->is_fallback_session = g_value_get_boolean (value);
|
||||
break;
|
||||
case PROP_CLIENT_STORE:
|
||||
gsm_manager_set_client_store (self, g_value_get_object (value));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gsm_manager_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GsmManager *self;
|
||||
|
||||
self = GSM_MANAGER (object);
|
||||
|
||||
switch (prop_id) {
|
||||
case PROP_FAILSAFE:
|
||||
g_value_set_boolean (value, self->priv->failsafe);
|
||||
break;
|
||||
+ case PROP_SESSION_NAME:
|
||||
+ g_value_set_string (value, self->priv->session_name);
|
||||
+ break;
|
||||
case PROP_FALLBACK:
|
||||
g_value_set_boolean (value, self->priv->is_fallback_session);
|
||||
break;
|
||||
case PROP_CLIENT_STORE:
|
||||
g_value_set_object (value, self->priv->clients);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_find_app_provides (const char *id,
|
||||
GsmApp *app,
|
||||
const char *service)
|
||||
{
|
||||
return gsm_app_provides (app, service);
|
||||
}
|
||||
|
||||
static GObject *
|
||||
gsm_manager_constructor (GType type,
|
||||
guint n_construct_properties,
|
||||
GObjectConstructParam *construct_properties)
|
||||
{
|
||||
GsmManager *manager;
|
||||
|
||||
manager = GSM_MANAGER (G_OBJECT_CLASS (gsm_manager_parent_class)->constructor (type,
|
||||
n_construct_properties,
|
||||
construct_properties));
|
||||
@@ -2257,60 +2261,74 @@ gsm_manager_dispose (GObject *object)
|
||||
|
||||
G_OBJECT_CLASS (gsm_manager_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gsm_manager_class_init (GsmManagerClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->get_property = gsm_manager_get_property;
|
||||
object_class->set_property = gsm_manager_set_property;
|
||||
object_class->constructor = gsm_manager_constructor;
|
||||
object_class->dispose = gsm_manager_dispose;
|
||||
|
||||
signals [PHASE_CHANGED] =
|
||||
g_signal_new ("phase-changed",
|
||||
G_TYPE_FROM_CLASS (object_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (GsmManagerClass, phase_changed),
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE,
|
||||
1, G_TYPE_STRING);
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_FAILSAFE,
|
||||
g_param_spec_boolean ("failsafe",
|
||||
NULL,
|
||||
NULL,
|
||||
FALSE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||
+ /**
|
||||
+ * GsmManager::session-name
|
||||
+ *
|
||||
+ * Then name of the currently active session, typically "gnome" or "gnome-fallback".
|
||||
+ * This may be the name of the configured default session, or the name of a fallback
|
||||
+ * session in case we fell back.
|
||||
+ */
|
||||
+ g_object_class_install_property (object_class,
|
||||
+ PROP_SESSION_NAME,
|
||||
+ g_param_spec_string ("session-name",
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ G_PARAM_READABLE));
|
||||
|
||||
/**
|
||||
* GsmManager::fallback
|
||||
*
|
||||
* If %TRUE, the current session is running in the "fallback" mode;
|
||||
* this is distinct from whether or not it was configured as default.
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_FALLBACK,
|
||||
g_param_spec_boolean ("fallback",
|
||||
NULL,
|
||||
NULL,
|
||||
FALSE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_CLIENT_STORE,
|
||||
g_param_spec_object ("client-store",
|
||||
NULL,
|
||||
NULL,
|
||||
GSM_TYPE_STORE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||
|
||||
g_type_class_add_private (klass, sizeof (GsmManagerPrivate));
|
||||
}
|
||||
|
||||
static void
|
||||
on_presence_status_changed (GsmPresence *presence,
|
||||
guint status,
|
||||
GsmManager *manager)
|
||||
--
|
||||
2.1.0
|
||||
|
@ -11,7 +11,7 @@
|
||||
Summary: GNOME session manager
|
||||
Name: gnome-session
|
||||
Version: 3.15.3
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
URL: http://www.gnome.org
|
||||
#VCS: git:git://git.gnome.org/gnome-session
|
||||
Source0: http://download.gnome.org/sources/gnome-session/3.15/%{name}-%{version}.tar.xz
|
||||
@ -20,6 +20,7 @@ Source0: http://download.gnome.org/sources/gnome-session/3.15/%{name}-%{version}
|
||||
Patch1: gnome-session-3.3.92-nv30.patch
|
||||
Patch2: 0001-main-Set-XDG_MENU_PREFIX.patch
|
||||
Patch3: gnome-session-3.6.2-swrast.patch
|
||||
Patch4: add-back-session-name-property.patch
|
||||
|
||||
License: GPLv2+
|
||||
Group: User Interface/Desktops
|
||||
@ -91,6 +92,7 @@ Desktop file to add GNOME on wayland to display manager session menu.
|
||||
%patch1 -p1 -b .nv30
|
||||
%patch2 -p1 -b .set-xdg-menu-prefix
|
||||
%patch3 -p1 -b .swrast
|
||||
%patch4 -p1 -b .add-back-session-name-property
|
||||
|
||||
echo "ACLOCAL_AMFLAGS = -I m4" >> Makefile.am
|
||||
|
||||
@ -146,6 +148,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml
|
||||
|
||||
%changelog
|
||||
* Mon Jan 05 2015 Ray Strode <rstrode@redhat.com> 3.15.3-2
|
||||
- Fix crasher
|
||||
Resolves: #1176413
|
||||
|
||||
* Fri Dec 19 2014 Richard Hughes <rhughes@redhat.com> - 3.15.3-1
|
||||
- Update to 3.15.3
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user