Gentoo Archives: gentoo-commits

From: "Gilles Dartiguelongue (eva)" <eva@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in gnome-base/gnome-session/files: gnome-session-2.28.0-xsmp-stop-throw-error.patch gnome-session-2.27.91-gentoo-branding.patch gnome-session-2.28.0-do-not-keep-zombie-clients.patch
Date: Thu, 29 Oct 2009 23:46:29
Message-Id: E1N3ehG-0003cd-LB@stork.gentoo.org
1 eva 09/10/29 23:46:26
2
3 Added: gnome-session-2.28.0-xsmp-stop-throw-error.patch
4 gnome-session-2.27.91-gentoo-branding.patch
5 gnome-session-2.28.0-do-not-keep-zombie-clients.patch
6 Log:
7 New version for GNOME 2.28. Clean up old revision.
8 (Portage version: 2.2_rc46/cvs/Linux x86_64)
9
10 Revision Changes Path
11 1.1 gnome-base/gnome-session/files/gnome-session-2.28.0-xsmp-stop-throw-error.patch
12
13 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/gnome-base/gnome-session/files/gnome-session-2.28.0-xsmp-stop-throw-error.patch?rev=1.1&view=markup
14 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/gnome-base/gnome-session/files/gnome-session-2.28.0-xsmp-stop-throw-error.patch?rev=1.1&content-type=text/plain
15
16 Index: gnome-session-2.28.0-xsmp-stop-throw-error.patch
17 ===================================================================
18 From ff15cffb457715179a69cc8e05212a19ffbd4a25 Mon Sep 17 00:00:00 2001
19 From: Romain Perier <mrpouet@g.o>
20 Date: Wed, 14 Oct 2009 11:06:19 +0200
21 Subject: [PATCH] Throw an error from xsmp_stop() when the client is not registered, it's fixes a SIGSEGV
22
23 ---
24 gnome-session/gsm-xsmp-client.c | 9 +++++++++
25 1 files changed, 9 insertions(+), 0 deletions(-)
26
27 diff --git a/gnome-session/gsm-xsmp-client.c b/gnome-session/gsm-xsmp-client.c
28 index bc3f77e..7e7ad99 100644
29 --- a/gnome-session/gsm-xsmp-client.c
30 +++ b/gnome-session/gsm-xsmp-client.c
31 @@ -713,6 +713,15 @@ xsmp_stop (GsmClient *client,
32
33 g_debug ("GsmXSMPClient: xsmp_stop ('%s')", xsmp->priv->description);
34
35 + /*FIXME: What do we do if the client can't be stoped ?
36 + * (probably a cleaner solution exists...) */
37 + if (xsmp->priv->conn == NULL) {
38 + g_set_error (error,
39 + GSM_CLIENT_ERROR,
40 + GSM_CLIENT_ERROR_NOT_REGISTERED,
41 + "Client is not registered");
42 + return FALSE;
43 + }
44 SmsDie (xsmp->priv->conn);
45
46 return TRUE;
47 --
48 1.6.5
49
50
51
52 1.1 gnome-base/gnome-session/files/gnome-session-2.27.91-gentoo-branding.patch
53
54 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/gnome-base/gnome-session/files/gnome-session-2.27.91-gentoo-branding.patch?rev=1.1&view=markup
55 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/gnome-base/gnome-session/files/gnome-session-2.27.91-gentoo-branding.patch?rev=1.1&content-type=text/plain
56
57 Index: gnome-session-2.27.91-gentoo-branding.patch
58 ===================================================================
59 Our own splash for world domination (updated for 2.27.91)
60
61 ---
62 --- data/gnome-session.schemas.in.in
63 +++ data/gnome-session.schemas.in.in
64 @@ -40,7 +40,7 @@
65 <applyto>/apps/gnome-session/options/splash_image</applyto>
66 <owner>gnome</owner>
67 <type>string</type>
68 - <default>splash/gnome-splash.png</default>
69 + <default>splash/gentoo-splash.png</default>
70 <locale name="C">
71 <short>Preferred Image to use for login splash screen</short>
72 <long>This is a relative path value based off the $datadir/pixmaps/ directory. Sub-directories and image names are valid values. Changing this value will effect the next session login.</long>
73
74
75
76 1.1 gnome-base/gnome-session/files/gnome-session-2.28.0-do-not-keep-zombie-clients.patch
77
78 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/gnome-base/gnome-session/files/gnome-session-2.28.0-do-not-keep-zombie-clients.patch?rev=1.1&view=markup
79 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/gnome-base/gnome-session/files/gnome-session-2.28.0-do-not-keep-zombie-clients.patch?rev=1.1&content-type=text/plain
80
81 Index: gnome-session-2.28.0-do-not-keep-zombie-clients.patch
82 ===================================================================
83 From: Romain Perier <mrpouet@g.o>
84 Date: Fri, 23 Oct 2009 14:17:40 +0200
85 Subject: [PATCH] Avoid to keep zombie clients in the case when a IceError is thrown between accept_ice_connection() and accept_xsmp_connection()
86
87 Assuming the following behaviour:
88 An "Ice packet" is caught by accept_ice_connection() and the new Ice connection is accepted,
89 then a GsmXsmpClient is instancied and stored in GsmXsmpServer's table.
90 gsm_store_add() function emits the "ADDED" signal, which calls gsm_manager.c:on_store_client_added() (connected to ADDED signal),
91 this previous callback install some signals EXCEPT "disconnect" signal on this new client.
92 Now before the client being registered by libSM and before accept_xsmp_connection() is invoked, an IceError is thrown.
93 gsm_xsmp_client.c:client_iochannel_watch() catchs this error :
94 What is the default behaviour of this function when a IceProcessMessagesIOError is detected ?
95 - the status of the client is changed to GSM_CLIENT_FAILED
96 - then the "disconnect" signal is emited on this object (a client)
97
98 => a problem occurs, because the "disconnect" signal is not connected yet (done by GsmManager on a registered xsmp client)
99 => so the client is able to be freed (depending on the counter reference)
100 => but the client is not removed from the GsmManager's table.
101 Conclusion: the client is a "zombie".
102
103 The solution is to connect the "disconnect" client in gsm_manager.c:on_store_client_added(), and in a case like that
104 its works perfectly :)
105
106 => NO timeout executed on logout/reboot/shutdown ;)
107
108 ---
109 gnome-session/gsm-manager.c | 6 ++++--
110 1 files changed, 4 insertions(+), 2 deletions(-)
111
112 diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
113 index ee90716..06c6a02 100644
114 --- a/gnome-session/gsm-manager.c
115 +++ b/gnome-session/gsm-manager.c
116 @@ -1988,9 +1988,11 @@ on_store_client_added (GsmStore *store,
117 "end-session-response",
118 G_CALLBACK (on_client_end_session_response),
119 manager);
120 -
121 + g_signal_connect (client,
122 + "disconnected",
123 + G_CALLBACK (on_client_disconnected),
124 + manager);
125 g_signal_emit (manager, signals [CLIENT_ADDED], 0, id);
126 - /* FIXME: disconnect signal handler */
127 }
128
129 static void
130 --
131 1.6.5.1