Merge lp:~matttbe/ubuntu/saucy/gnome-session/lp1191290 into lp:ubuntu/saucy/gnome-session
- Saucy (13.10)
- lp1191290
- Merge into saucy
Status: | Merged |
---|---|
Merge reported by: | Jeremy Bícha |
Merged at revision: | not available |
Proposed branch: | lp:~matttbe/ubuntu/saucy/gnome-session/lp1191290 |
Merge into: | lp:ubuntu/saucy/gnome-session |
Diff against target: |
496 lines (+449/-0) 6 files modified
.pc/107_add_xdg_menu_prefix.patch/gnome-session/main.c (+413/-0) .pc/applied-patches (+1/-0) debian/changelog (+8/-0) debian/patches/107_add_xdg_menu_prefix.patch (+21/-0) debian/patches/series (+1/-0) gnome-session/main.c (+5/-0) |
To merge this branch: | bzr merge lp:~matttbe/ubuntu/saucy/gnome-session/lp1191290 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jeremy Bícha | Abstain | ||
Review via email: mp+169621@code.launchpad.net |
Commit message
Description of the change
Hello,
This new version add $XDG_MENU_PREFIX environment variable according to Desktop Menu Specification.
This change is needed because gnome-menus (version 3.8.0-1ubuntu3) has now added 'gnome-' prefix to the applications.menu file: https:/
This 'bug' seems to/will be fixed with gnome-session 3.8 but it's just to be sure that anything is broken ;)
Note: I set you (jbicha) has reviewer because the latest version of gnome-menus was modified by you but I can set ubuntu-sponsors team if you prefer.
Matthieu Baerts (matttbe) wrote : | # |
> Like I said in the bug report, can we wait a few more days to get gnome-session 3.8 in instead of backporting patches?
To other people: I answer to Jeremy on the bug report. (lp: #1191290).
And I confirm that this patch is no longer needed with the version 3.8 so I guess it's not a problem to wait a few more days, not so many people should have problem with that.
Jeremy Bícha (jbicha) wrote : | # |
I'm marking this as merged since I uploaded gnome-session 3.8 to Saucy today. It may take another couple days for it to migrate from -proposed to the regular Saucy archives because we're waiting on the latest GTK 3.8 to build on armhf and we need to figure out how to best handle migrating users from gnome-session-
Matthieu Baerts (matttbe) wrote : | # |
Ok!
Thank you for all these details ;)
Preview Diff
1 | === added directory '.pc/107_add_xdg_menu_prefix.patch' | |||
2 | === added directory '.pc/107_add_xdg_menu_prefix.patch/gnome-session' | |||
3 | === added file '.pc/107_add_xdg_menu_prefix.patch/gnome-session/main.c' | |||
4 | --- .pc/107_add_xdg_menu_prefix.patch/gnome-session/main.c 1970-01-01 00:00:00 +0000 | |||
5 | +++ .pc/107_add_xdg_menu_prefix.patch/gnome-session/main.c 2013-06-15 14:10:34 +0000 | |||
6 | @@ -0,0 +1,413 @@ | |||
7 | 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- | ||
8 | 2 | * | ||
9 | 3 | * Copyright (C) 2006 Novell, Inc. | ||
10 | 4 | * Copyright (C) 2008 Red Hat, Inc. | ||
11 | 5 | * | ||
12 | 6 | * This program is free software; you can redistribute it and/or | ||
13 | 7 | * modify it under the terms of the GNU General Public License as | ||
14 | 8 | * published by the Free Software Foundation; either version 2 of the | ||
15 | 9 | * License, or (at your option) any later version. | ||
16 | 10 | * | ||
17 | 11 | * This program is distributed in the hope that it will be useful, but | ||
18 | 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
19 | 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
20 | 14 | * Lesser General Public License for more details. | ||
21 | 15 | * | ||
22 | 16 | * You should have received a copy of the GNU General Public License | ||
23 | 17 | * along with this program; if not, write to the Free Software | ||
24 | 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | ||
25 | 19 | * 02111-1307, USA. | ||
26 | 20 | */ | ||
27 | 21 | |||
28 | 22 | #include <config.h> | ||
29 | 23 | |||
30 | 24 | #include <libintl.h> | ||
31 | 25 | #include <signal.h> | ||
32 | 26 | #include <stdlib.h> | ||
33 | 27 | #include <string.h> | ||
34 | 28 | #include <unistd.h> | ||
35 | 29 | #include <errno.h> | ||
36 | 30 | |||
37 | 31 | #include <glib/gi18n.h> | ||
38 | 32 | #include <glib.h> | ||
39 | 33 | #include <gtk/gtk.h> | ||
40 | 34 | |||
41 | 35 | #include <dbus/dbus.h> | ||
42 | 36 | #include <dbus/dbus-glib.h> | ||
43 | 37 | #include <dbus/dbus-glib-bindings.h> | ||
44 | 38 | #include <dbus/dbus-glib-lowlevel.h> | ||
45 | 39 | |||
46 | 40 | #include "gdm-signal-handler.h" | ||
47 | 41 | #include "gdm-log.h" | ||
48 | 42 | |||
49 | 43 | #include "gsm-util.h" | ||
50 | 44 | #include "gsm-manager.h" | ||
51 | 45 | #include "gsm-session-fill.h" | ||
52 | 46 | #include "gsm-store.h" | ||
53 | 47 | #include "gsm-system.h" | ||
54 | 48 | #include "gsm-xsmp-server.h" | ||
55 | 49 | #include "gsm-fail-whale-dialog.h" | ||
56 | 50 | |||
57 | 51 | #define GSM_DBUS_NAME "org.gnome.SessionManager" | ||
58 | 52 | |||
59 | 53 | static gboolean failsafe = FALSE; | ||
60 | 54 | static gboolean show_version = FALSE; | ||
61 | 55 | static gboolean debug = FALSE; | ||
62 | 56 | static gboolean please_fail = FALSE; | ||
63 | 57 | |||
64 | 58 | static DBusGProxy *bus_proxy = NULL; | ||
65 | 59 | |||
66 | 60 | static void shutdown_cb (gpointer data); | ||
67 | 61 | |||
68 | 62 | static void | ||
69 | 63 | on_bus_name_lost (DBusGProxy *bus_proxy, | ||
70 | 64 | const char *name, | ||
71 | 65 | gpointer data) | ||
72 | 66 | { | ||
73 | 67 | g_warning ("Lost name on bus: %s, exiting", name); | ||
74 | 68 | exit (1); | ||
75 | 69 | } | ||
76 | 70 | |||
77 | 71 | static gboolean | ||
78 | 72 | acquire_name_on_proxy (DBusGProxy *bus_proxy, | ||
79 | 73 | const char *name) | ||
80 | 74 | { | ||
81 | 75 | GError *error; | ||
82 | 76 | guint result; | ||
83 | 77 | gboolean res; | ||
84 | 78 | gboolean ret; | ||
85 | 79 | |||
86 | 80 | ret = FALSE; | ||
87 | 81 | |||
88 | 82 | if (bus_proxy == NULL) { | ||
89 | 83 | goto out; | ||
90 | 84 | } | ||
91 | 85 | |||
92 | 86 | error = NULL; | ||
93 | 87 | res = dbus_g_proxy_call (bus_proxy, | ||
94 | 88 | "RequestName", | ||
95 | 89 | &error, | ||
96 | 90 | G_TYPE_STRING, name, | ||
97 | 91 | G_TYPE_UINT, 0, | ||
98 | 92 | G_TYPE_INVALID, | ||
99 | 93 | G_TYPE_UINT, &result, | ||
100 | 94 | G_TYPE_INVALID); | ||
101 | 95 | if (! res) { | ||
102 | 96 | if (error != NULL) { | ||
103 | 97 | g_warning ("Failed to acquire %s: %s", name, error->message); | ||
104 | 98 | g_error_free (error); | ||
105 | 99 | } else { | ||
106 | 100 | g_warning ("Failed to acquire %s", name); | ||
107 | 101 | } | ||
108 | 102 | goto out; | ||
109 | 103 | } | ||
110 | 104 | |||
111 | 105 | if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { | ||
112 | 106 | if (error != NULL) { | ||
113 | 107 | g_warning ("Failed to acquire %s: %s", name, error->message); | ||
114 | 108 | g_error_free (error); | ||
115 | 109 | } else { | ||
116 | 110 | g_warning ("Failed to acquire %s", name); | ||
117 | 111 | } | ||
118 | 112 | goto out; | ||
119 | 113 | } | ||
120 | 114 | |||
121 | 115 | /* register for name lost */ | ||
122 | 116 | dbus_g_proxy_add_signal (bus_proxy, | ||
123 | 117 | "NameLost", | ||
124 | 118 | G_TYPE_STRING, | ||
125 | 119 | G_TYPE_INVALID); | ||
126 | 120 | dbus_g_proxy_connect_signal (bus_proxy, | ||
127 | 121 | "NameLost", | ||
128 | 122 | G_CALLBACK (on_bus_name_lost), | ||
129 | 123 | NULL, | ||
130 | 124 | NULL); | ||
131 | 125 | |||
132 | 126 | |||
133 | 127 | ret = TRUE; | ||
134 | 128 | |||
135 | 129 | out: | ||
136 | 130 | return ret; | ||
137 | 131 | } | ||
138 | 132 | |||
139 | 133 | static gboolean | ||
140 | 134 | acquire_name (void) | ||
141 | 135 | { | ||
142 | 136 | GError *error; | ||
143 | 137 | DBusGConnection *connection; | ||
144 | 138 | |||
145 | 139 | error = NULL; | ||
146 | 140 | connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); | ||
147 | 141 | if (connection == NULL) { | ||
148 | 142 | gsm_util_init_error (TRUE, | ||
149 | 143 | "Could not connect to session bus: %s", | ||
150 | 144 | error->message); | ||
151 | 145 | return FALSE; | ||
152 | 146 | } | ||
153 | 147 | |||
154 | 148 | bus_proxy = dbus_g_proxy_new_for_name_owner (connection, | ||
155 | 149 | DBUS_SERVICE_DBUS, | ||
156 | 150 | DBUS_PATH_DBUS, | ||
157 | 151 | DBUS_INTERFACE_DBUS, | ||
158 | 152 | &error); | ||
159 | 153 | if (error != NULL) { | ||
160 | 154 | gsm_util_init_error (TRUE, | ||
161 | 155 | "Could not connect to session bus: %s", | ||
162 | 156 | error->message); | ||
163 | 157 | return FALSE; | ||
164 | 158 | } | ||
165 | 159 | |||
166 | 160 | g_signal_connect_swapped (bus_proxy, | ||
167 | 161 | "destroy", | ||
168 | 162 | G_CALLBACK (shutdown_cb), | ||
169 | 163 | NULL); | ||
170 | 164 | |||
171 | 165 | if (! acquire_name_on_proxy (bus_proxy, GSM_DBUS_NAME) ) { | ||
172 | 166 | gsm_util_init_error (TRUE, | ||
173 | 167 | "%s", | ||
174 | 168 | "Could not acquire name on session bus"); | ||
175 | 169 | return FALSE; | ||
176 | 170 | } | ||
177 | 171 | |||
178 | 172 | return TRUE; | ||
179 | 173 | } | ||
180 | 174 | |||
181 | 175 | static gboolean | ||
182 | 176 | signal_cb (int signo, | ||
183 | 177 | gpointer data) | ||
184 | 178 | { | ||
185 | 179 | int ret; | ||
186 | 180 | GsmManager *manager; | ||
187 | 181 | |||
188 | 182 | g_debug ("Got callback for signal %d", signo); | ||
189 | 183 | |||
190 | 184 | ret = TRUE; | ||
191 | 185 | |||
192 | 186 | switch (signo) { | ||
193 | 187 | case SIGFPE: | ||
194 | 188 | case SIGPIPE: | ||
195 | 189 | /* let the fatal signals interrupt us */ | ||
196 | 190 | g_debug ("Caught signal %d, shutting down abnormally.", signo); | ||
197 | 191 | ret = FALSE; | ||
198 | 192 | break; | ||
199 | 193 | case SIGINT: | ||
200 | 194 | case SIGTERM: | ||
201 | 195 | manager = (GsmManager *)data; | ||
202 | 196 | gsm_manager_logout (manager, GSM_MANAGER_LOGOUT_MODE_FORCE, NULL); | ||
203 | 197 | |||
204 | 198 | /* let the fatal signals interrupt us */ | ||
205 | 199 | g_debug ("Caught signal %d, shutting down normally.", signo); | ||
206 | 200 | ret = TRUE; | ||
207 | 201 | break; | ||
208 | 202 | case SIGHUP: | ||
209 | 203 | g_debug ("Got HUP signal"); | ||
210 | 204 | ret = TRUE; | ||
211 | 205 | break; | ||
212 | 206 | case SIGUSR1: | ||
213 | 207 | g_debug ("Got USR1 signal"); | ||
214 | 208 | ret = TRUE; | ||
215 | 209 | gdm_log_toggle_debug (); | ||
216 | 210 | break; | ||
217 | 211 | default: | ||
218 | 212 | g_debug ("Caught unhandled signal %d", signo); | ||
219 | 213 | ret = TRUE; | ||
220 | 214 | |||
221 | 215 | break; | ||
222 | 216 | } | ||
223 | 217 | |||
224 | 218 | return ret; | ||
225 | 219 | } | ||
226 | 220 | |||
227 | 221 | static void | ||
228 | 222 | shutdown_cb (gpointer data) | ||
229 | 223 | { | ||
230 | 224 | GsmManager *manager = (GsmManager *)data; | ||
231 | 225 | g_debug ("Calling shutdown callback function"); | ||
232 | 226 | |||
233 | 227 | /* | ||
234 | 228 | * When the signal handler gets a shutdown signal, it calls | ||
235 | 229 | * this function to inform GsmManager to not restart | ||
236 | 230 | * applications in the off chance a handler is already queued | ||
237 | 231 | * to dispatch following the below call to gtk_main_quit. | ||
238 | 232 | */ | ||
239 | 233 | gsm_manager_set_phase (manager, GSM_MANAGER_PHASE_EXIT); | ||
240 | 234 | |||
241 | 235 | gtk_main_quit (); | ||
242 | 236 | } | ||
243 | 237 | |||
244 | 238 | static gboolean | ||
245 | 239 | require_dbus_session (int argc, | ||
246 | 240 | char **argv, | ||
247 | 241 | GError **error) | ||
248 | 242 | { | ||
249 | 243 | char **new_argv; | ||
250 | 244 | int i; | ||
251 | 245 | |||
252 | 246 | if (g_getenv ("DBUS_SESSION_BUS_ADDRESS")) | ||
253 | 247 | return TRUE; | ||
254 | 248 | |||
255 | 249 | /* Just a sanity check to prevent infinite recursion if | ||
256 | 250 | * dbus-launch fails to set DBUS_SESSION_BUS_ADDRESS | ||
257 | 251 | */ | ||
258 | 252 | g_return_val_if_fail (!g_str_has_prefix (argv[0], "dbus-launch"), | ||
259 | 253 | TRUE); | ||
260 | 254 | |||
261 | 255 | /* +2 for our new arguments, +1 for NULL */ | ||
262 | 256 | new_argv = g_malloc (argc + 3 * sizeof (*argv)); | ||
263 | 257 | |||
264 | 258 | new_argv[0] = "dbus-launch"; | ||
265 | 259 | new_argv[1] = "--exit-with-session"; | ||
266 | 260 | for (i = 0; i < argc; i++) { | ||
267 | 261 | new_argv[i + 2] = argv[i]; | ||
268 | 262 | } | ||
269 | 263 | new_argv[i + 2] = NULL; | ||
270 | 264 | |||
271 | 265 | if (!execvp ("dbus-launch", new_argv)) { | ||
272 | 266 | g_set_error (error, | ||
273 | 267 | G_SPAWN_ERROR, | ||
274 | 268 | G_SPAWN_ERROR_FAILED, | ||
275 | 269 | "No session bus and could not exec dbus-launch: %s", | ||
276 | 270 | g_strerror (errno)); | ||
277 | 271 | return FALSE; | ||
278 | 272 | } | ||
279 | 273 | |||
280 | 274 | /* Should not be reached */ | ||
281 | 275 | return TRUE; | ||
282 | 276 | } | ||
283 | 277 | |||
284 | 278 | int | ||
285 | 279 | main (int argc, char **argv) | ||
286 | 280 | { | ||
287 | 281 | struct sigaction sa; | ||
288 | 282 | GError *error; | ||
289 | 283 | char *display_str; | ||
290 | 284 | GsmManager *manager; | ||
291 | 285 | GsmStore *client_store; | ||
292 | 286 | GsmXsmpServer *xsmp_server; | ||
293 | 287 | GdmSignalHandler *signal_handler; | ||
294 | 288 | static char **override_autostart_dirs = NULL; | ||
295 | 289 | static char *session_name = NULL; | ||
296 | 290 | static GOptionEntry entries[] = { | ||
297 | 291 | { "autostart", 'a', 0, G_OPTION_ARG_STRING_ARRAY, &override_autostart_dirs, N_("Override standard autostart directories"), N_("AUTOSTART_DIR") }, | ||
298 | 292 | { "session", 0, 0, G_OPTION_ARG_STRING, &session_name, N_("Session to use"), N_("SESSION_NAME") }, | ||
299 | 293 | { "debug", 0, 0, G_OPTION_ARG_NONE, &debug, N_("Enable debugging code"), NULL }, | ||
300 | 294 | { "failsafe", 'f', 0, G_OPTION_ARG_NONE, &failsafe, N_("Do not load user-specified applications"), NULL }, | ||
301 | 295 | { "version", 0, 0, G_OPTION_ARG_NONE, &show_version, N_("Version of this application"), NULL }, | ||
302 | 296 | /* Translators: the 'fail whale' is the black dialog we show when something goes seriously wrong */ | ||
303 | 297 | { "whale", 0, 0, G_OPTION_ARG_NONE, &please_fail, N_("Show the fail whale dialog for testing"), NULL }, | ||
304 | 298 | { NULL, 0, 0, 0, NULL, NULL, NULL } | ||
305 | 299 | }; | ||
306 | 300 | |||
307 | 301 | /* Make sure that we have a session bus */ | ||
308 | 302 | if (!require_dbus_session (argc, argv, &error)) { | ||
309 | 303 | gsm_util_init_error (TRUE, "%s", error->message); | ||
310 | 304 | } | ||
311 | 305 | |||
312 | 306 | bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); | ||
313 | 307 | bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); | ||
314 | 308 | textdomain (GETTEXT_PACKAGE); | ||
315 | 309 | |||
316 | 310 | sa.sa_handler = SIG_IGN; | ||
317 | 311 | sa.sa_flags = 0; | ||
318 | 312 | sigemptyset (&sa.sa_mask); | ||
319 | 313 | sigaction (SIGPIPE, &sa, 0); | ||
320 | 314 | |||
321 | 315 | error = NULL; | ||
322 | 316 | gtk_init_with_args (&argc, &argv, | ||
323 | 317 | (char *) _(" - the GNOME session manager"), | ||
324 | 318 | entries, GETTEXT_PACKAGE, | ||
325 | 319 | &error); | ||
326 | 320 | if (error != NULL) { | ||
327 | 321 | g_warning ("%s", error->message); | ||
328 | 322 | exit (1); | ||
329 | 323 | } | ||
330 | 324 | |||
331 | 325 | if (show_version) { | ||
332 | 326 | g_print ("%s %s\n", argv [0], VERSION); | ||
333 | 327 | exit (1); | ||
334 | 328 | } | ||
335 | 329 | |||
336 | 330 | if (please_fail) { | ||
337 | 331 | gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL); | ||
338 | 332 | gtk_main (); | ||
339 | 333 | exit (1); | ||
340 | 334 | } | ||
341 | 335 | |||
342 | 336 | gdm_log_init (); | ||
343 | 337 | gdm_log_set_debug (debug); | ||
344 | 338 | |||
345 | 339 | /* Set DISPLAY explicitly for all our children, in case --display | ||
346 | 340 | * was specified on the command line. | ||
347 | 341 | */ | ||
348 | 342 | display_str = gdk_get_display (); | ||
349 | 343 | gsm_util_setenv ("DISPLAY", display_str); | ||
350 | 344 | g_free (display_str); | ||
351 | 345 | |||
352 | 346 | /* Some third-party programs rely on GNOME_DESKTOP_SESSION_ID to | ||
353 | 347 | * detect if GNOME is running. We keep this for compatibility reasons. | ||
354 | 348 | */ | ||
355 | 349 | gsm_util_setenv ("GNOME_DESKTOP_SESSION_ID", "this-is-deprecated"); | ||
356 | 350 | |||
357 | 351 | client_store = gsm_store_new (); | ||
358 | 352 | |||
359 | 353 | /* Talk to logind before acquiring a name, since it does synchronous | ||
360 | 354 | * calls at initialization time that invoke a main loop and if we | ||
361 | 355 | * already owned a name, then we would service too early during | ||
362 | 356 | * that main loop. | ||
363 | 357 | */ | ||
364 | 358 | g_object_unref (gsm_get_system ()); | ||
365 | 359 | |||
366 | 360 | xsmp_server = gsm_xsmp_server_new (client_store); | ||
367 | 361 | |||
368 | 362 | if (!acquire_name ()) { | ||
369 | 363 | gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL); | ||
370 | 364 | gtk_main (); | ||
371 | 365 | exit (1); | ||
372 | 366 | } | ||
373 | 367 | |||
374 | 368 | manager = gsm_manager_new (client_store, failsafe); | ||
375 | 369 | /* | ||
376 | 370 | signal_handler = gdm_signal_handler_new (); | ||
377 | 371 | gdm_signal_handler_add_fatal (signal_handler); | ||
378 | 372 | gdm_signal_handler_add (signal_handler, SIGFPE, signal_cb, NULL); | ||
379 | 373 | gdm_signal_handler_add (signal_handler, SIGHUP, signal_cb, NULL); | ||
380 | 374 | gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL); | ||
381 | 375 | gdm_signal_handler_add (signal_handler, SIGTERM, signal_cb, manager); | ||
382 | 376 | gdm_signal_handler_add (signal_handler, SIGINT, signal_cb, manager); | ||
383 | 377 | gdm_signal_handler_set_fatal_func (signal_handler, shutdown_cb, manager); | ||
384 | 378 | */ | ||
385 | 379 | if (IS_STRING_EMPTY (session_name)) | ||
386 | 380 | session_name = _gsm_manager_get_default_session (manager); | ||
387 | 381 | |||
388 | 382 | gsm_util_set_autostart_dirs (override_autostart_dirs); | ||
389 | 383 | |||
390 | 384 | if (!gsm_session_fill (manager, session_name)) { | ||
391 | 385 | gsm_util_init_error (TRUE, "Failed to load session \"%s\"", session_name ? session_name : "(null)"); | ||
392 | 386 | } | ||
393 | 387 | |||
394 | 388 | gsm_xsmp_server_start (xsmp_server); | ||
395 | 389 | gsm_manager_start (manager); | ||
396 | 390 | |||
397 | 391 | gtk_main (); | ||
398 | 392 | |||
399 | 393 | if (xsmp_server != NULL) { | ||
400 | 394 | g_object_unref (xsmp_server); | ||
401 | 395 | } | ||
402 | 396 | |||
403 | 397 | if (manager != NULL) { | ||
404 | 398 | g_debug ("Unreffing manager"); | ||
405 | 399 | g_object_unref (manager); | ||
406 | 400 | } | ||
407 | 401 | |||
408 | 402 | if (client_store != NULL) { | ||
409 | 403 | g_object_unref (client_store); | ||
410 | 404 | } | ||
411 | 405 | |||
412 | 406 | if (bus_proxy != NULL) { | ||
413 | 407 | g_object_unref (bus_proxy); | ||
414 | 408 | } | ||
415 | 409 | |||
416 | 410 | gdm_log_shutdown (); | ||
417 | 411 | |||
418 | 412 | return 0; | ||
419 | 413 | } | ||
420 | 0 | 414 | ||
421 | === modified file '.pc/applied-patches' | |||
422 | --- .pc/applied-patches 2013-04-29 10:05:07 +0000 | |||
423 | +++ .pc/applied-patches 2013-06-15 14:10:34 +0000 | |||
424 | @@ -17,3 +17,4 @@ | |||
425 | 17 | 104_dont_show_fallback_warning.patch | 17 | 104_dont_show_fallback_warning.patch |
426 | 18 | 105_hide_session_startup_help.patch | 18 | 105_hide_session_startup_help.patch |
427 | 19 | 106_display_gnome-session-properties.patch | 19 | 106_display_gnome-session-properties.patch |
428 | 20 | 107_add_xdg_menu_prefix.patch | ||
429 | 20 | 21 | ||
430 | === modified file 'debian/changelog' | |||
431 | --- debian/changelog 2013-05-22 12:55:52 +0000 | |||
432 | +++ debian/changelog 2013-06-15 14:10:34 +0000 | |||
433 | @@ -1,3 +1,11 @@ | |||
434 | 1 | gnome-session (3.6.2-0ubuntu8) saucy; urgency=low | ||
435 | 2 | |||
436 | 3 | * debian/patches/107_add_xdg_menu_prefix.patch: (LP: #1191290) | ||
437 | 4 | - Set XDG_MENU_PREFIX according to Desktop Menu Specification because | ||
438 | 5 | Gnome-menus has added 'gnome-' prefix to the applications.menu file | ||
439 | 6 | |||
440 | 7 | -- Matthieu Baerts (matttbe) <matttbe@ubuntu.com> Sat, 15 Jun 2013 15:54:54 +0200 | ||
441 | 8 | |||
442 | 1 | gnome-session (3.6.2-0ubuntu7) saucy; urgency=low | 9 | gnome-session (3.6.2-0ubuntu7) saucy; urgency=low |
443 | 2 | 10 | ||
444 | 3 | * Have the upstart job start for any gnome-session, not just 'ubuntu' - | 11 | * Have the upstart job start for any gnome-session, not just 'ubuntu' - |
445 | 4 | 12 | ||
446 | === added file 'debian/patches/107_add_xdg_menu_prefix.patch' | |||
447 | --- debian/patches/107_add_xdg_menu_prefix.patch 1970-01-01 00:00:00 +0000 | |||
448 | +++ debian/patches/107_add_xdg_menu_prefix.patch 2013-06-15 14:10:34 +0000 | |||
449 | @@ -0,0 +1,21 @@ | |||
450 | 1 | From: Matthieu Baerts <matttbe@gmail.com> | ||
451 | 2 | Subject: Set XDG_MENU_PREFIX according to Desktop Menu Specification | ||
452 | 3 | Bug: https://bugs.launchpad.net/ubuntu/+source/gnome-menus/+bug/1191290 | ||
453 | 4 | Forwarded: no | ||
454 | 5 | |||
455 | 6 | Index: gnome-session/gnome-session/main.c | ||
456 | 7 | =================================================================== | ||
457 | 8 | --- gnome-session.orig/gnome-session/main.c 2013-06-15 15:41:52.314641000 +0200 | ||
458 | 9 | +++ gnome-session/gnome-session/main.c 2013-06-15 15:49:20.693234175 +0200 | ||
459 | 10 | @@ -348,6 +348,11 @@ | ||
460 | 11 | */ | ||
461 | 12 | gsm_util_setenv ("GNOME_DESKTOP_SESSION_ID", "this-is-deprecated"); | ||
462 | 13 | |||
463 | 14 | + /* Set XDG_MENU_PREFIX according to Desktop Menu Specification. | ||
464 | 15 | + * gnome-menus has added 'gnome-' prefix to the applications.menu file | ||
465 | 16 | + */ | ||
466 | 17 | + gsm_util_setenv ("XDG_MENU_PREFIX", "gnome-"); | ||
467 | 18 | + | ||
468 | 19 | client_store = gsm_store_new (); | ||
469 | 20 | |||
470 | 21 | /* Talk to logind before acquiring a name, since it does synchronous | ||
471 | 0 | 22 | ||
472 | === modified file 'debian/patches/series' | |||
473 | --- debian/patches/series 2013-04-29 10:05:07 +0000 | |||
474 | +++ debian/patches/series 2013-06-15 14:10:34 +0000 | |||
475 | @@ -20,4 +20,5 @@ | |||
476 | 20 | 104_dont_show_fallback_warning.patch | 20 | 104_dont_show_fallback_warning.patch |
477 | 21 | 105_hide_session_startup_help.patch | 21 | 105_hide_session_startup_help.patch |
478 | 22 | 106_display_gnome-session-properties.patch | 22 | 106_display_gnome-session-properties.patch |
479 | 23 | 107_add_xdg_menu_prefix.patch | ||
480 | 23 | 24 | ||
481 | 24 | 25 | ||
482 | === modified file 'gnome-session/main.c' | |||
483 | --- gnome-session/main.c 2012-11-13 14:06:21 +0000 | |||
484 | +++ gnome-session/main.c 2013-06-15 14:10:34 +0000 | |||
485 | @@ -348,6 +348,11 @@ | |||
486 | 348 | */ | 348 | */ |
487 | 349 | gsm_util_setenv ("GNOME_DESKTOP_SESSION_ID", "this-is-deprecated"); | 349 | gsm_util_setenv ("GNOME_DESKTOP_SESSION_ID", "this-is-deprecated"); |
488 | 350 | 350 | ||
489 | 351 | /* Set XDG_MENU_PREFIX according to Desktop Menu Specification. | ||
490 | 352 | * gnome-menus has added 'gnome-' prefix to the applications.menu file | ||
491 | 353 | */ | ||
492 | 354 | gsm_util_setenv ("XDG_MENU_PREFIX", "gnome-"); | ||
493 | 355 | |||
494 | 351 | client_store = gsm_store_new (); | 356 | client_store = gsm_store_new (); |
495 | 352 | 357 | ||
496 | 353 | /* Talk to logind before acquiring a name, since it does synchronous | 358 | /* Talk to logind before acquiring a name, since it does synchronous |
Like I said in the bug report, can we wait a few more days to get gnome-session 3.8 in instead of backporting patches?
If you want to try the new gnome-session out, see https:/ /launchpad. net/~ubuntu- desktop/ +archive/ ppa/ (but note that the desktop ppa is used for testing things to make sure they are ready for the regular archives.)