Author: fcrozat
Date: Fri Feb 16 15:15:58 2007
New Revision: 121728

Added:
   
packages/cooker/gnome-screensaver/current/SOURCES/gnome-screensaver-2.17.7-fixlocking.patch
Modified:
   packages/cooker/gnome-screensaver/current/SPECS/gnome-screensaver.spec

Log:
-Patch5 (SVN): fix locking


Added: 
packages/cooker/gnome-screensaver/current/SOURCES/gnome-screensaver-2.17.7-fixlocking.patch
==============================================================================
--- (empty file)
+++ 
packages/cooker/gnome-screensaver/current/SOURCES/gnome-screensaver-2.17.7-fixlocking.patch
 Fri Feb 16 15:15:58 2007
@@ -0,0 +1,119 @@
+Index: src/gs-window-x11.c
+===================================================================
+--- gnome-screensaver/src/gs-window-x11.c      (r�vision 1094)
++++ gnome-screensaver/src/gs-window-x11.c      (r�vision 1096)
+@@ -1134,10 +1134,31 @@
+ }
+ 
+ static void
++kill_keyboard_command (GSWindow *window)
++{
++        if (window->priv->keyboard_pid > 0) {
++                signal_pid (window->priv->keyboard_pid, SIGTERM);
++        }
++}
++
++static void
++kill_dialog_command (GSWindow *window)
++{
++        /* If a dialog is up we need to signal it
++           and wait on it */
++        if (window->priv->lock_pid > 0) {
++                signal_pid (window->priv->lock_pid, SIGTERM);
++        }
++}
++
++static void
+ keyboard_command_finish (GSWindow *window)
+ {
+         g_return_if_fail (GS_IS_WINDOW (window));
+ 
++        /* send a signal just in case */
++        kill_keyboard_command (window);
++
+         gs_debug ("Keyboard finished");
+ 
+         if (window->priv->keyboard_pid > 0) {
+@@ -1150,15 +1171,6 @@
+         }
+ }
+ 
+-static void
+-kill_keyboard_command (GSWindow *window)
+-{
+-        if (window->priv->keyboard_pid > 0) {
+-                signal_pid (window->priv->keyboard_pid, SIGTERM);
+-        }
+-        keyboard_command_finish (window);
+-}
+-
+ static gboolean
+ keyboard_command_watch (GIOChannel   *source,
+                         GIOCondition  condition,
+@@ -1272,8 +1284,13 @@
+         g_return_if_fail (GS_IS_WINDOW (window));
+ 
+         gs_debug ("Dialog finished");
+-        kill_keyboard_command (window);
+ 
++        /* make sure we finish the keyboard thing too */
++        keyboard_command_finish (window);
++
++        /* send a signal just in case */
++        kill_dialog_command (window);
++
+         if (window->priv->lock_pid > 0) {
+                 int exit_status;
+ 
+@@ -1287,18 +1304,6 @@
+         remove_key_events (window);
+ }
+ 
+-static void
+-kill_dialog_command (GSWindow *window)
+-{
+-        /* If a dialog is up we need to signal it
+-           and wait on it */
+-        if (window->priv->lock_pid > 0) {
+-                signal_pid (window->priv->lock_pid, SIGTERM);
+-        }
+-
+-        gs_window_dialog_finish (window);
+-}
+-
+ /* very rudimentary animation for indicating an auth failure */
+ static void
+ shake_dialog (GSWindow *window)
+@@ -2173,8 +2178,7 @@
+ 
+         remove_command_watches (window);
+ 
+-        kill_keyboard_command (window);
+-        kill_dialog_command (window);
++        gs_window_dialog_finish (window);
+ 
+         G_OBJECT_CLASS (gs_window_parent_class)->finalize (object);
+ }
+Index: src/cut-n-paste/gdm-queue.c
+===================================================================
+--- gnome-screensaver/src/cut-n-paste/gdm-queue.c      (r�vision 1094)
++++ gnome-screensaver/src/cut-n-paste/gdm-queue.c      (r�vision 1096)
+@@ -235,13 +235,14 @@
+         addr.sun_family = AF_UNIX;
+ 
+         if (fcntl (gdm_socket, F_SETFL, O_NONBLOCK) < 0) {
+-          close_gdm_socket ();
+-          return TRUE;
++          VE_IGNORE_EINTR (close (gdm_socket));
++          return FALSE;
+         }
+ 
+         if (connect (gdm_socket, (struct sockaddr *)&addr, sizeof (addr)) < 
0) {
+-          close_gdm_socket ();
+-          return TRUE;
++          g_warning ("Unable to connect to GDM socket: %s", 
GDM_SOCKET_FILENAME);
++          VE_IGNORE_EINTR (close (gdm_socket));
++          return FALSE;
+         }
+ 
+         gdm_send_command("VERSION");

Modified: packages/cooker/gnome-screensaver/current/SPECS/gnome-screensaver.spec
==============================================================================
--- packages/cooker/gnome-screensaver/current/SPECS/gnome-screensaver.spec      
(original)
+++ packages/cooker/gnome-screensaver/current/SPECS/gnome-screensaver.spec      
Fri Feb 16 15:15:58 2007
@@ -1,6 +1,6 @@
 %define name gnome-screensaver
 %define version 2.17.7
-%define release %mkrel 1
+%define release %mkrel 2
 
 Summary: GNOME Screensaver
 Name: %{name}
@@ -16,6 +16,8 @@
 Patch3: gnome-screensaver-2.17.5-solidbg.patch
 # (fc) 2.15.7-2mdv change default settings
 Patch4: gnome-screensaver-2.15.7-default.patch
+# (fc) 2.17.7-2mdv fix locking (SVN)
+Patch5: gnome-screensaver-2.17.7-fixlocking.patch
 
 License: GPL
 Group: Graphical desktop/GNOME
@@ -55,6 +57,7 @@
 %patch2 -p1 -b .sort
 %patch3 -p1 -b .solidbg
 %patch4 -p1 -b .default
+%patch5 -p1 -b .fixlocking
 
 %build
 %configure2_5x --disable-more-warnings 
--with-xscreensaverdir=%{_datadir}/xscreensaver/config 
--with-xscreensaverhackdir=%{_libdir}/xscreensaver

Reply via email to