[gdm] disable fatal-critical stuff

Ray Strode rstrode at fedoraproject.org
Tue Jun 28 17:18:35 UTC 2011


commit 7ed046b604abc75418a804f9ed000b8ad30fa74d
Author: Ray Strode <rstrode at redhat.com>
Date:   Tue Jun 28 13:17:55 2011 -0400

    disable fatal-critical stuff

 disable-fatal-criticals.patch |  182 +++++++++++++++++++++++++++++++++++++++++
 gdm.spec                      |    8 ++-
 2 files changed, 189 insertions(+), 1 deletions(-)
---
diff --git a/disable-fatal-criticals.patch b/disable-fatal-criticals.patch
new file mode 100644
index 0000000..8af6636
--- /dev/null
+++ b/disable-fatal-criticals.patch
@@ -0,0 +1,182 @@
+From fc6ee4aa6d71d2c448a9b62aca24ba318163c590 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode at redhat.com>
+Date: Tue, 28 Jun 2011 12:51:51 -0400
+Subject: [PATCH] common: don't tank on criticals
+
+Tiny (or not so tiny) bugs in components below GDM in the stack
+can lead to critical warnings.
+
+In development releases, GDM by default will crash when encountering
+a critical warning.
+
+Losing the login screen is a big deal.  We shouldn't automatically subject
+our users to "can't log in" in order to highlight bugs in development
+releases.
+
+This commit removes fatal criticals by default.
+---
+ common/gdm-common.c                   |    9 ---------
+ common/gdm-common.h                   |    1 -
+ daemon/factory-slave-main.c           |    2 --
+ daemon/main.c                         |    2 --
+ daemon/product-slave-main.c           |    2 --
+ daemon/session-worker-main.c          |    2 --
+ daemon/simple-slave-main.c            |    2 --
+ daemon/xdmcp-chooser-slave-main.c     |    2 --
+ gui/simple-chooser/chooser-main.c     |    2 --
+ gui/simple-chooser/gdm-host-chooser.c |    2 --
+ gui/simple-greeter/greeter-main.c     |    2 --
+ 11 files changed, 0 insertions(+), 28 deletions(-)
+
+diff --git a/common/gdm-common.c b/common/gdm-common.c
+index 7a4e26d..865341a 100644
+--- a/common/gdm-common.c
++++ b/common/gdm-common.c
+@@ -65,15 +65,6 @@ gdm_is_version_unstable (void)
+         return unstable;
+ }
+ 
+-void
+-gdm_set_fatal_warnings_if_unstable (void)
+-{
+-        if (gdm_is_version_unstable ()) {
+-                g_setenv ("G_DEBUG", "fatal_criticals", FALSE);
+-                g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
+-        }
+-}
+-
+ gboolean
+ gdm_get_pwent_for_name (const char     *name,
+                         struct passwd **pwentp)
+diff --git a/common/gdm-common.h b/common/gdm-common.h
+index 06300c8..41ddf1c 100644
+--- a/common/gdm-common.h
++++ b/common/gdm-common.h
+@@ -31,7 +31,6 @@
+ G_BEGIN_DECLS
+ 
+ gboolean       gdm_is_version_unstable            (void);
+-void           gdm_set_fatal_warnings_if_unstable (void);
+ 
+ int            gdm_wait_on_pid           (int pid);
+ int            gdm_wait_on_and_kill_pid  (int pid,
+diff --git a/daemon/factory-slave-main.c b/daemon/factory-slave-main.c
+index 9caab1c..2441260 100644
+--- a/daemon/factory-slave-main.c
++++ b/daemon/factory-slave-main.c
+@@ -183,8 +183,6 @@ main (int    argc,
+         textdomain (GETTEXT_PACKAGE);
+         setlocale (LC_ALL, "");
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         context = g_option_context_new (_("GNOME Display Manager Slave"));
+diff --git a/daemon/main.c b/daemon/main.c
+index 5b8d66b..2ffb779 100644
+--- a/daemon/main.c
++++ b/daemon/main.c
+@@ -543,8 +543,6 @@ main (int    argc,
+ 
+         ret = 1;
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         context = g_option_context_new (_("GNOME Display Manager"));
+diff --git a/daemon/product-slave-main.c b/daemon/product-slave-main.c
+index b0ab03f..b8e4755 100644
+--- a/daemon/product-slave-main.c
++++ b/daemon/product-slave-main.c
+@@ -187,8 +187,6 @@ main (int    argc,
+         textdomain (GETTEXT_PACKAGE);
+         setlocale (LC_ALL, "");
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         context = g_option_context_new (_("GNOME Display Manager Slave"));
+diff --git a/daemon/session-worker-main.c b/daemon/session-worker-main.c
+index 35b4463..9d40b8d 100644
+--- a/daemon/session-worker-main.c
++++ b/daemon/session-worker-main.c
+@@ -151,8 +151,6 @@ main (int    argc,
+ 
+         g_type_init ();
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         /* Translators: worker is a helper process that does the work
+            of starting up a session */
+         context = g_option_context_new (_("GNOME Display Manager Session Worker"));
+diff --git a/daemon/simple-slave-main.c b/daemon/simple-slave-main.c
+index 7751b61..057492b 100644
+--- a/daemon/simple-slave-main.c
++++ b/daemon/simple-slave-main.c
+@@ -187,8 +187,6 @@ main (int    argc,
+         textdomain (GETTEXT_PACKAGE);
+         setlocale (LC_ALL, "");
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         context = g_option_context_new (_("GNOME Display Manager Slave"));
+diff --git a/daemon/xdmcp-chooser-slave-main.c b/daemon/xdmcp-chooser-slave-main.c
+index f86ea89..ea54210 100644
+--- a/daemon/xdmcp-chooser-slave-main.c
++++ b/daemon/xdmcp-chooser-slave-main.c
+@@ -189,8 +189,6 @@ main (int    argc,
+         textdomain (GETTEXT_PACKAGE);
+         setlocale (LC_ALL, "");
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         context = g_option_context_new (_("GNOME Display Manager Slave"));
+diff --git a/gui/simple-chooser/chooser-main.c b/gui/simple-chooser/chooser-main.c
+index ac1edd6..2978a23 100644
+--- a/gui/simple-chooser/chooser-main.c
++++ b/gui/simple-chooser/chooser-main.c
+@@ -233,8 +233,6 @@ main (int argc, char *argv[])
+ 
+         setlocale (LC_ALL, "");
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         gdm_log_init ();
+diff --git a/gui/simple-chooser/gdm-host-chooser.c b/gui/simple-chooser/gdm-host-chooser.c
+index 371ba28..1f5f9c6 100644
+--- a/gui/simple-chooser/gdm-host-chooser.c
++++ b/gui/simple-chooser/gdm-host-chooser.c
+@@ -232,8 +232,6 @@ main (int argc, char *argv[])
+ 
+         setlocale (LC_ALL, "");
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         gdm_log_init ();
+diff --git a/gui/simple-greeter/greeter-main.c b/gui/simple-greeter/greeter-main.c
+index aa165fa..a2c533e 100644
+--- a/gui/simple-greeter/greeter-main.c
++++ b/gui/simple-greeter/greeter-main.c
+@@ -252,8 +252,6 @@ main (int argc, char *argv[])
+ 
+         setlocale (LC_ALL, "");
+ 
+-        gdm_set_fatal_warnings_if_unstable ();
+-
+         g_type_init ();
+ 
+         gdm_profile_start ("Initializing settings client");
+-- 
+1.7.5.4
+
diff --git a/gdm.spec b/gdm.spec
index ddb13a3..da9494b 100644
--- a/gdm.spec
+++ b/gdm.spec
@@ -15,7 +15,7 @@
 Summary: The GNOME Display Manager
 Name: gdm
 Version: 3.1.2
-Release: 2%{?dist}
+Release: 3%{?dist}
 Epoch: 1
 License: GPLv2+
 Group: User Interface/X
@@ -98,6 +98,7 @@ Requires: audit-libs >= %{libauditver}
 Requires: system-icon-theme
 
 Patch0: fix-build.patch
+Patch1: disable-fatal-criticals.patch
 
 # Fedora-specific
 Patch98: plymouth.patch
@@ -128,6 +129,7 @@ The GDM fingerprint plugin provides functionality necessary to use a fingerprint
 %prep
 %setup -q
 %patch0 -p1 -b .fix-build
+%patch1 -p1 -b .disable-fatal-criticals
 %patch98 -p1 -b .plymouth
 %patch99 -p1 -b .fedora-logo
 
@@ -362,6 +364,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/null || :
 %{_libdir}/gdm/simple-greeter/extensions/libfingerprint.so
 
 %changelog
+* Tue Jun 28 2011 Ray Strode <rstrode at redhat.com> 3.1.2-3
+- Disable fatal critcals
+  Resolves: #717324
+
 * Tue Jun 21 2011 Michael Schwendt <mschwendt at fedoraproject.org> - 3.1.2-2
 - Fix /dev/ull typo in scriptlets (#693046).
 


More information about the scm-commits mailing list