This commit is contained in:
parent
e667f6cb6c
commit
31f22cde7c
62
gdm-2.17.7-vt-fallback.patch
Normal file
62
gdm-2.17.7-vt-fallback.patch
Normal file
@ -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;
|
||||
}
|
@ -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
|
||||
|
||||
|
7
gdm.spec
7
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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user