patches/gnome-desktop-03-trusted-extensions.diff
changeset 15385 126cc6a7af4b
parent 14744 8dbe926a20de
child 15881 ad1e2c38787d
--- 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 ++;
+