Hello community, here is the log from the commit of package gdm checked in at Thu Mar 22 21:05:30 CET 2007. -------- --- GNOME/gdm/gdm.changes 2007-03-15 18:39:55.000000000 +0100 +++ /mounts/work_src_done/STABLE/gdm/gdm.changes 2007-03-21 23:46:10.535331000 +0100 @@ -1,0 +2,6 @@ +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 + +------------------------------------------------------------------- New: ---- gdm-2.17.7-vt-fallback.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gdm.spec ++++++ --- /var/tmp/diff_new_pack.i22861/_old 2007-03-22 21:05:05.000000000 +0100 +++ /var/tmp/diff_new_pack.i22861/_new 2007-03-22 21:05:05.000000000 +0100 @@ -25,7 +25,7 @@ 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 @@ 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 @@ %patch30 %patch32 %patch33 -p1 +%patch34 -p1 gnome-patch-translation-update %build @@ -230,6 +232,9 @@ %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, ++++++ gdm-2.17.7-vt-fallback.patch ++++++ 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; } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org