rpms/evolution/devel evolution-2.22.0-line-status.patch, NONE, 1.1 evolution.spec, 1.327, 1.328

Matthew Barnes (mbarnes) fedora-extras-commits at redhat.com
Fri Mar 14 17:02:16 UTC 2008


Author: mbarnes

Update of /cvs/pkgs/rpms/evolution/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28993

Modified Files:
	evolution.spec 
Added Files:
	evolution-2.22.0-line-status.patch 
Log Message:

* Fri Mar 14 2008 Matthew Barnes <mbarnes at redhat.com> - 2.22.0-2.fc9
- Add patch for RH bug #437208 (tracking network status).


evolution-2.22.0-line-status.patch:

--- NEW FILE evolution-2.22.0-line-status.patch ---
diff -up evolution-2.22.0/shell/e-shell-nm-glib.c.line-status evolution-2.22.0/shell/e-shell-nm-glib.c
--- evolution-2.22.0/shell/e-shell-nm-glib.c.line-status	2007-11-29 23:23:59.000000000 -0500
+++ evolution-2.22.0/shell/e-shell-nm-glib.c	2008-03-14 12:13:29.000000000 -0400
@@ -33,23 +33,40 @@
 static libnm_glib_ctx *nm_ctx = NULL;
 static guint id = 0;
 
-static void e_shell_glib_network_monitor (libnm_glib_ctx *ctx, gpointer user_data)
+static void
+e_shell_glib_network_monitor (libnm_glib_ctx *ctx, gpointer user_data)
 {
 	libnm_glib_state	state;
-	EShellLineStatus line_status;
 	EShellWindow *window = E_SHELL_WINDOW (user_data);
 	EShell *shell = e_shell_window_peek_shell (window);
 	GNOME_Evolution_ShellState shell_state;
+	gboolean shell_is_online;
+	gboolean shell_is_offline;
 
 	g_return_if_fail (ctx != NULL);
 
 	state = libnm_glib_get_network_state (ctx);
-	line_status = e_shell_get_line_status (shell);
 
-	if (line_status == E_SHELL_LINE_STATUS_ONLINE && state == LIBNM_NO_NETWORK_CONNECTION) {
+	switch (e_shell_get_line_status (shell)) {
+		case E_SHELL_LINE_STATUS_ONLINE:
+			shell_is_online = TRUE;
+			shell_is_offline = FALSE;
+			break;
+		case E_SHELL_LINE_STATUS_OFFLINE:
+		case E_SHELL_LINE_STATUS_FORCED_OFFLINE:
+			shell_is_online = FALSE;
+			shell_is_offline = TRUE;
+			break;
+		default:  /* in-between states */
+			shell_is_online = FALSE;
+			shell_is_offline = FALSE;
+	}
+
+	if (shell_is_online && state == LIBNM_NO_NETWORK_CONNECTION) {
 	   	 shell_state = GNOME_Evolution_FORCED_OFFLINE;
 		 e_shell_go_offline (shell, window, shell_state);
-	} else if (line_status == E_SHELL_LINE_STATUS_OFFLINE && state == LIBNM_ACTIVE_NETWORK_CONNECTION) {
+
+	} else if (shell_is_offline && state == LIBNM_ACTIVE_NETWORK_CONNECTION) {
 	       	 shell_state = GNOME_Evolution_USER_ONLINE;
 		 e_shell_go_online (shell, window, shell_state);
 	}
@@ -58,15 +75,15 @@ static void e_shell_glib_network_monitor
 int e_shell_nm_glib_initialise (EShellWindow *window);
 void e_shell_nm_glib_dispose (EShellWindow *window);
 
-int e_shell_nm_glib_initialise (EShellWindow *window)
+int
+e_shell_nm_glib_initialise (EShellWindow *window)
 {
-	if (!nm_ctx)
-	{
+	if (!nm_ctx) {
 		nm_ctx = libnm_glib_init ();
 		if (!nm_ctx) {
-				fprintf (stderr, "Could not initialize libnm.\n");
-				return FALSE;
-			  }
+			g_warning ("Could not initialize libnm.");
+			return FALSE;
+		}
 	}
 
 	id = libnm_glib_register_callback (nm_ctx, e_shell_glib_network_monitor, window, NULL);
@@ -74,7 +91,8 @@ int e_shell_nm_glib_initialise (EShellWi
 	return TRUE;
 }
 
-void e_shell_nm_glib_dispose (EShellWindow *window)
+void
+e_shell_nm_glib_dispose (EShellWindow *window)
 {
 	if (id != 0 && nm_ctx != NULL) {
 		libnm_glib_unregister_callback (nm_ctx, id);
@@ -83,4 +101,3 @@ void e_shell_nm_glib_dispose (EShellWind
 		id = 0;
 	}
 }
-
diff -up evolution-2.22.0/shell/e-shell-nm.c.line-status evolution-2.22.0/shell/e-shell-nm.c
--- evolution-2.22.0/shell/e-shell-nm.c.line-status	2008-02-22 04:51:05.000000000 -0500
+++ evolution-2.22.0/shell/e-shell-nm.c	2008-03-14 12:13:29.000000000 -0400
@@ -35,17 +35,12 @@
 #include <dbus/dbus-glib.h>
 #include <NetworkManager/NetworkManager.h>
 
-typedef enum _ShellLineStatus {
-	E_SHELL_LINE_DOWN,
-	E_SHELL_LINE_UP
-} ShellLineStatus;
-
-
 static gboolean init_dbus (EShellWindow *window);
+int e_shell_dbus_initialise (EShellWindow *window);
+void e_shell_dbus_dispose (EShellWindow *window);
 
 static DBusConnection *dbus_connection = NULL;
 
-
 static gboolean
 reinit_dbus (gpointer user_data)
 {
@@ -63,11 +58,12 @@ e_shell_network_monitor (DBusConnection 
 {
 	DBusError error;
 	const char *object;
-	ShellLineStatus status;
 	EShellWindow *window = NULL;
 	EShell *shell = NULL;
 	GNOME_Evolution_ShellState shell_state;
-	EShellLineStatus line_status;
+	gboolean shell_is_online;
+	gboolean shell_is_offline;
+	gboolean network_device_active;
 
  	if (!user_data || !E_IS_SHELL_WINDOW (user_data))
  		return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
@@ -89,9 +85,9 @@ e_shell_network_monitor (DBusConnection 
 	}
 
 	if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNoLongerActive"))
-		status = E_SHELL_LINE_DOWN;
+		network_device_active = FALSE;
 	else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNowActive"))
-		status = E_SHELL_LINE_UP;
+		network_device_active = TRUE;
 	else
 		return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 
@@ -99,12 +95,26 @@ e_shell_network_monitor (DBusConnection 
 				    &object, DBUS_TYPE_INVALID))
 		return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 
-	line_status = e_shell_get_line_status (shell);
+	switch (e_shell_get_line_status (shell)) {
+		case E_SHELL_LINE_STATUS_ONLINE:
+			shell_is_online = TRUE;
+			shell_is_offline = FALSE;
+			break;
+		case E_SHELL_LINE_STATUS_OFFLINE:
+		case E_SHELL_LINE_STATUS_FORCED_OFFLINE:
+			shell_is_online = FALSE;
+			shell_is_offline = TRUE;
+			break;
+		default:  /* in-between states */
+			shell_is_online = FALSE;
+			shell_is_offline = FALSE;
+	}
 
-	if (line_status == E_SHELL_LINE_STATUS_ONLINE && status == E_SHELL_LINE_DOWN) {
+	if (shell_is_online && !network_device_active) {
 		  shell_state = GNOME_Evolution_FORCED_OFFLINE;
 		  e_shell_go_offline (shell, window, shell_state);
-	} else if (line_status == E_SHELL_LINE_STATUS_OFFLINE && status == E_SHELL_LINE_UP) {
+
+	} else if (shell_is_offline && network_device_active) {
 		  shell_state = GNOME_Evolution_USER_ONLINE;
 		  e_shell_go_online (shell, window, shell_state);
 	}
@@ -153,14 +163,16 @@ init_dbus (EShellWindow *window)
 	return FALSE;
 }
 
-int e_shell_dbus_initialise (EShellWindow *window)
+int
+e_shell_dbus_initialise (EShellWindow *window)
 {
 	g_type_init ();
 
 	return init_dbus (window);
 }
 
-void e_shell_dbus_dispose (EShellWindow *window)
+void
+e_shell_dbus_dispose (EShellWindow *window)
 {
 	//FIXME
 	return;


Index: evolution.spec
===================================================================
RCS file: /cvs/pkgs/rpms/evolution/devel/evolution.spec,v
retrieving revision 1.327
retrieving revision 1.328
diff -u -r1.327 -r1.328
--- evolution.spec	10 Mar 2008 17:20:53 -0000	1.327
+++ evolution.spec	14 Mar 2008 17:01:26 -0000	1.328
@@ -46,7 +46,7 @@
 
 Name: evolution
 Version: 2.22.0
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2 and GFDL+
 Group: Applications/Productivity
 Summary: GNOME's next-generation groupware suite
@@ -81,6 +81,9 @@
 # RH bug #176400
 Patch15: evolution-2.9.1-im-context-reset.patch
 
+# RH bug #437208 / GNOME bug #518103
+Patch16: evolution-2.22.0-line-status.patch
+
 ## Dependencies ###
 
 Requires(post): GConf2
@@ -223,6 +226,7 @@
 %patch13 -p1 -b .fix-conduit-dir
 %patch14 -p1 -b .no-gnome-common
 %patch15 -p1 -b .im-context-reset
+%patch16 -p1 -b .line-status
 
 mkdir -p krb5-fakeprefix/include
 mkdir -p krb5-fakeprefix/lib
@@ -650,6 +654,9 @@
 %{evo_plugin_dir}/liborg-gnome-sa-junk-plugin.so
 
 %changelog
+* Fri Mar 14 2008 Matthew Barnes <mbarnes at redhat.com> - 2.22.0-2.fc9
+- Add patch for RH bug #437208 (tracking network status).
+
 * Mon Mar 10 2008 Matthew Barnes <mbarnes at redhat.com> - 2.22.0-1.fc9
 - Update to 2.22.0
 - Remove patch for CVE-2008-0072 (fixed upstream).




More information about the fedora-extras-commits mailing list