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