--- a/patches/gnome-desktop-03-trusted-extensions.diff Fri Mar 13 08:00:19 2009 +0000
+++ b/patches/gnome-desktop-03-trusted-extensions.diff Fri Mar 13 08:37:38 2009 +0000
@@ -159,67 +159,6 @@
+void gnome_desktop_tsol_proxy_app_launch (char *command);
+gboolean gnome_desktop_tsol_user_is_workstation_owner (void);
+
---- gnome-desktop-2.25.2/libgnome-desktop/gnome-desktop-item.c.ori 2008-12-10 06:57:19.193603709 +0000
-+++ gnome-desktop-2.25.2/libgnome-desktop/gnome-desktop-item.c 2008-12-10 06:57:56.840911498 +0000
-@@ -41,6 +41,7 @@
- #include <glib/gi18n-lib.h>
- #include <locale.h>
- #include <stdlib.h>
-+#include <zone.h>
-
- #include <gio/gio.h>
-
-@@ -58,6 +59,7 @@
- #undef GNOME_DISABLE_DEPRECATED
- #include <libgnome/gnome-desktop-item.h>
- #include <libgnome/gnome-desktop-utils.h>
-+#include <libgnome/gnome-desktop-tsol-extensions.h>
-
- struct _GnomeDesktopItem {
- int refcount;
-@@ -1757,6 +1759,7 @@
- char *new_exec, *uris, *temp;
- char *exec_locale;
- int launched = 0;
-+ char *command;
- #ifdef HAVE_STARTUP_NOTIFICATION
- SnLauncherContext *sn_context;
- SnDisplay *sn_display;
-@@ -1955,7 +1958,15 @@
- #endif
-
-
-- if ( ! g_spawn_async (working_dir,
-+
-+ if (gnome_desktop_tsol_is_multi_label_session () &&
-+ gnome_desktop_tsol_user_is_workstation_owner () &&
-+ getzoneid () == 0) {
-+ command = g_strdup_printf ("%d:%s", gdk_screen_get_number (screen), g_strjoinv (" ", real_argv));
-+ gnome_desktop_tsol_proxy_app_launch (command);
-+ g_free (command);
-+ } else {
-+ if ( ! g_spawn_async (working_dir,
- real_argv,
- envp,
- (do_not_reap_child ? G_SPAWN_DO_NOT_REAP_CHILD : 0) | G_SPAWN_SEARCH_PATH /* flags */,
-@@ -1963,11 +1974,12 @@
- NULL, /* child_setup_func_data */
- &ret /* child_pid */,
- error)) {
-- /* The error was set for us,
-- * we just can't launch this thingie */
-- ret = -1;
-- g_strfreev (real_argv);
-- break;
-+ /* The error was set for us,
-+ * we just can't launch this thingie */
-+ ret = -1;
-+ g_strfreev (real_argv);
-+ break;
-+ }
- }
- launched ++;
-
--- gnome-desktop-2.25.2/libgnome-desktop/Makefile.am.ori 2008-12-10 06:56:26.211081440 +0000
+++ gnome-desktop-2.25.2/libgnome-desktop/Makefile.am 2008-12-10 06:57:08.915616350 +0000
@@ -18,6 +18,7 @@
@@ -239,3 +178,64 @@
- gnome-desktop-item.h
+ gnome-desktop-item.h \
+ gnome-desktop-tsol-extensions.h
+--- gnome-desktop-2.25.92/libgnome-desktop/gnome-desktop-item.c.ori 2009-03-13 08:09:32.130714679 +0000
++++ gnome-desktop-2.25.92/libgnome-desktop/gnome-desktop-item.c 2009-03-13 08:10:58.807107686 +0000
+@@ -41,6 +41,7 @@
+ #include <glib/gi18n-lib.h>
+ #include <locale.h>
+ #include <stdlib.h>
++#include <zone.h>
+
+ #include <gio/gio.h>
+
+@@ -58,6 +59,7 @@
+ #undef GNOME_DISABLE_DEPRECATED
+ #include <libgnome/gnome-desktop-item.h>
+ #include <libgnome/gnome-desktop-utils.h>
++#include <libgnome/gnome-desktop-tsol-extensions.h>
+
+ #include "private.h"
+
+@@ -1746,6 +1748,7 @@
+ char *new_exec, *uris, *temp;
+ char *exec_locale;
+ int launched = 0;
++ char *command;
+ #ifdef HAVE_STARTUP_NOTIFICATION
+ SnLauncherContext *sn_context;
+ SnDisplay *sn_display;
+@@ -1944,7 +1947,15 @@
+ #endif
+
+
+- if ( ! g_spawn_async (working_dir,
++
++ if (gnome_desktop_tsol_is_multi_label_session () &&
++ gnome_desktop_tsol_user_is_workstation_owner () &&
++ getzoneid () == 0) {
++ command = g_strdup_printf ("%d:%s", gdk_screen_get_number (screen), g_strjoinv (" ", real_argv));
++ gnome_desktop_tsol_proxy_app_launch (command);
++ g_free (command);
++ } else {
++ if ( ! g_spawn_async (working_dir,
+ real_argv,
+ envp,
+ (do_not_reap_child ? G_SPAWN_DO_NOT_REAP_CHILD : 0) | G_SPAWN_SEARCH_PATH /* flags */,
+@@ -1952,11 +1963,12 @@
+ NULL, /* child_setup_func_data */
+ &ret /* child_pid */,
+ error)) {
+- /* The error was set for us,
+- * we just can't launch this thingie */
+- ret = -1;
+- g_strfreev (real_argv);
+- break;
++ /* The error was set for us,
++ * we just can't launch this thingie */
++ ret = -1;
++ g_strfreev (real_argv);
++ break;
++ }
+ }
+ launched ++;
+