From 31f22cde7c26164bdbee67d7eb12cd28577c3a809878b15216872d2808572786 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Thu, 22 Mar 2007 20:05:31 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=11 --- gdm-2.17.7-vt-fallback.patch | 62 ++++++++++++++++++++++++++++++++++++ gdm.changes | 6 ++++ gdm.spec | 7 +++- 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 gdm-2.17.7-vt-fallback.patch diff --git a/gdm-2.17.7-vt-fallback.patch b/gdm-2.17.7-vt-fallback.patch new file mode 100644 index 0000000..c9116e5 --- /dev/null +++ b/gdm-2.17.7-vt-fallback.patch @@ -0,0 +1,62 @@ +diff -upr gdm-2.17.7-pre/daemon/getvt.c gdm-2.17.7-post/daemon/getvt.c +--- gdm-2.17.7-pre/daemon/getvt.c 2007-02-11 23:40:19.000000000 -0600 ++++ gdm-2.17.7-post/daemon/getvt.c 2007-03-20 16:25:35.000000000 -0600 +@@ -90,8 +90,10 @@ get_free_vt_linux (int *vtfd) + int vtno; + unsigned short vtmask; + struct vt_stat vtstat; ++ guint v_state; + + *vtfd = -1; ++ fdv = -1; + + do { + errno = 0; +@@ -101,26 +103,33 @@ get_free_vt_linux (int *vtfd) + #endif + , 0); + } while G_UNLIKELY (errno == EINTR); +- if (fd < 0) +- return -1; + +- if (ioctl (fd, VT_GETSTATE, &vtstat) < 0) { +- VE_IGNORE_EINTR (close (fd)); +- return -1; +- } ++ if (fd >= 0 && ioctl (fd, VT_GETSTATE, &vtstat) >= 0) ++ v_state = vtstat.v_state; ++ else ++ v_state = 0; + +- for (vtno = gdm_get_value_int (GDM_KEY_FIRST_VT), vtmask = 1 << vtno; +- vtstat.v_state & vtmask; vtno++, vtmask <<= 1); +- if (!vtmask) { +- VE_IGNORE_EINTR (close (fd)); +- return -1; ++ for (vtno = gdm_get_value_int (GDM_KEY_FIRST_VT), vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) { ++ /* Is this console in use? */ ++ if (v_state & vtmask) ++ continue; ++ ++ /* No, try to open it */ ++ fdv = open_vt (vtno); ++ if (fdv >= 0) ++ break; ++ ++ /* If we're here, kernel indicated that the console was free, ++ * but we failed to open it. Just go on to higher VTs. */ + } + +- fdv = open_vt (vtno); +- if (fdv < 0) { ++ if (fdv < 0) ++ vtno = -1; ++ ++ if (fd >= 0) { + VE_IGNORE_EINTR (close (fd)); +- return -1; + } ++ + *vtfd = fdv; + return vtno; + } diff --git a/gdm.changes b/gdm.changes index afcfb2f..ad8f047 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Mar 21 23:43:05 CET 2007 - hpj@suse.de + +- Add gdm-2.17.7-vt-fallback.patch. This is a port of the fix for + https://bugzilla.novell.com/show_bug.cgi?id=206804 + ------------------------------------------------------------------- Tue Mar 13 17:42:14 CST 2007 - maw@suse.de diff --git a/gdm.spec b/gdm.spec index 01cbc19..ee6ffa0 100644 --- a/gdm.spec +++ b/gdm.spec @@ -25,7 +25,7 @@ License: GNU General Public License (GPL) Group: System/GUI/GNOME Autoreqprov: on Version: 2.17.7 -Release: 1 +Release: 2 Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd @@ -55,6 +55,7 @@ Patch29: gdm-gdmsetup.patch Patch30: gdm-conf-custom-sysconfig.patch Patch32: gdm-trunk-string-literal-cmp.patch Patch33: gdm-2.13.0.4-audit-login.patch +Patch34: gdm-2.17.7-vt-fallback.patch URL: http://www.gnome.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Docdir: %{_defaultdocdir} @@ -106,6 +107,7 @@ gnome-patch-translation-prepare %patch30 %patch32 %patch33 -p1 +%patch34 -p1 gnome-patch-translation-update %build @@ -230,6 +232,9 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i %endif %changelog +* Wed Mar 21 2007 - hpj@suse.de +- Add gdm-2.17.7-vt-fallback.patch. This is a port of the fix for + https://bugzilla.novell.com/show_bug.cgi?id=206804 * Tue Mar 13 2007 - maw@suse.de - Update to version 2.17.7 - Removeupstreamed gdm-autobuild-warning.patch,