Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 100543 - xscreensaver-4.22-r2 newlogin feature broken for 2nd new display
Summary: xscreensaver-4.22-r2 newlogin feature broken for 2nd new display
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Jonathan Smith (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-07-27 19:54 UTC by Christopher Cowart
Modified: 2006-02-28 01:54 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch against /usr/portage/gnome-base/gdm (gdm-portage.patch,4.24 KB, patch)
2005-08-10 22:49 UTC, Christopher Cowart
Details | Diff
Patch for /usr/portage/gnome-base/gdm/files (flexi-servers-dialog.patch,3.56 KB, patch)
2005-08-10 22:50 UTC, Christopher Cowart
Details | Diff
Patch against /usr/portage/x11-misc/xscreensaver (xscreensaver-portage.patch,2.86 KB, patch)
2005-08-10 22:51 UTC, Christopher Cowart
Details | Diff
Patch against gdm-2.6.0.9 (gdmflexiserver.patch,1.65 KB, patch)
2005-08-12 17:32 UTC, Christopher Cowart
Details | Diff
Patch against xscreensaver-4.22 (xscreensaver-4.22-new-login-configure.patch,1.07 KB, patch)
2005-08-12 17:35 UTC, Christopher Cowart
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Christopher Cowart 2005-07-27 19:54:16 UTC
When you lock the screen on the first X session, you can click the button to
create a new login. That works great. On the second display, however, when you
lock the screen and click the button to create a third display, a confirmation
window pops up, letting the user know that a display is already running that
he/she may want to use. Problem is you can't get the mouse into that window. The
mouse (and cursor) stay in the username/password dialog, making it impossible to
use the new window. 

Upon further investigation, I've noticed that if you have a 2nd display running,
and you try to start a new login from the 1st display, it does nothing. Well, it
does almost nothing. The same window I mentioned above is created, it just gets
created under the screensaver. As such, the owner of the screen has to unlock
the screen before the new session can be accessed.

This is a great feature that I've been waiting for -- it's virtually a necessity
in our office. Let me know if I can give you any more information to help pin it
down and get it fixed.

Reproducible: Always
Steps to Reproduce:
Lock Display 1.
Create a new Display 2.
Lock Display 2.
Create a new Display 3 from display 2
or Create a new Display 3 from display 1
Actual Results:  
Display 3 is never created due to problems with the confirmation window
specifying other running displays.

Expected Results:  
It should create a 3rd display. And after that, a 4th...

Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.5-r1, 2.6.11.10 i686)
=================================================================
System uname: 2.6.11.10 i686 Intel(R) Pentium(R) 4 CPU 2.00GHz
Gentoo Base System version 1.6.12
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.10
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.16
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distcc distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
LC_ALL="C"
MAKEOPTS="-j21"
PKGDIR="/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/rc-overlay"
SYNC="rsync://gentoo/gentoo-portage"
USE="x86 X acl alsa apm arts avi berkdb bitmap-fonts cdr crypt cups curl eds
emboss encode esd fam fbcon foomaticdb fortran gdbm gif gnome gpm gstreamer gtk
gtk2 guile imlib java jpeg kde ldap libg++ libwww mad mikmod motif mozilla mp3
mpeg ncurses nls ogg oggvorbis opengl oss pam pdflib perl png ppds python qt
quicktime readline sdl spell sse ssl tcpd tiff truetype truetype-fonts
type1-fonts usb vorbis xml xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LDFLAGS, LINGUAS


====

I'm using binary packages built on the following machine:

Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.5-r1, 2.6.11.10 i686)
=================================================================
System uname: 2.6.11.10 i686 Intel(R) Pentium(R) 4 CPU 1.70GHz
Gentoo Base System version 1.6.13
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.11
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distcc distlocks fixpackages sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j23"
PKGDIR="/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/rc-overlay"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X acl alsa apm arts avi berkdb bitmap-fonts cdr crypt cups curl eds
emboss encode esd fam fbcon foomaticdb fortran gdbm gif gnome gpm gstreamer gtk
gtk2 guile imagemagick imlib java jpeg kde ldap libg++ libwww mad mikmod motif
mozilla mp3 mpeg ncurses nls ogg oggvorbis opengl oss pam pdflib perl png ppds
python qt quicktime readline sdl spell sse ssl tcpd tiff truetype truetype-fonts
type1-fonts usb vorbis xml xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Comment 1 Jonathan Smith (RETIRED) gentoo-dev 2005-07-27 20:01:05 UTC
smells like an upstream bug to me, but i'll take a look
Comment 2 Christopher Cowart 2005-08-10 22:43:56 UTC
I had an opportunity to get my hands (really) dirty with this. Turns out it has
nothing to do with xscreensaver code. In the configure script, it specifies a
command that is launched upon clicking the button. That command is
$ gdmflexiserver -l
Unfortunately, the gdmflexiserver creates the aforementioned dialog when more
than 1 display is currently running. I've searched gdmflexiserver documentation
and simply cannot find a way to disable this dialog. So I wrote a patch to do it
for me. The patch completely disables the creation of the dialog. This fixes
xscreensaver's problem.

I patched the xscreensaver ebuild to warn users that new-login is limited unless
gdm is recompiled with new-login as well. I edited the gdm ebuild to apply my
patch if new-login is set. I'm submitting my patches against the portage tree.
I'm also going upstream with gdm to request that they create a command-line
option to disable the dialog to avoid such draconian measures being necessary to
get xscreensaver working correctly.
Comment 3 Christopher Cowart 2005-08-10 22:49:02 UTC
Created attachment 65634 [details, diff]
Patch against /usr/portage/gnome-base/gdm

This updates the gdm ebuild as mentioned in the bug.
Comment 4 Christopher Cowart 2005-08-10 22:50:29 UTC
Created attachment 65635 [details, diff]
Patch for /usr/portage/gnome-base/gdm/files

This is referenced in my updated ebuild.
Comment 5 Christopher Cowart 2005-08-10 22:51:07 UTC
Created attachment 65636 [details, diff]
Patch against /usr/portage/x11-misc/xscreensaver

This patches the xscreensaver ebuild as outlined in my comments.
Comment 6 Jonathan Smith (RETIRED) gentoo-dev 2005-08-11 06:28:14 UTC
gdm is the gnome herd's baby, so ccing them
Comment 7 Christopher Cowart 2005-08-11 14:27:15 UTC
FYI: #313197 at bugzilla.gnome.org
Comment 8 Christopher Cowart 2005-08-12 17:32:12 UTC
Created attachment 65800 [details, diff]
Patch against gdm-2.6.0.9

Suggesting that a feature be destroyed got some attention upstream. They added
a -s/--startnew commandline option to gdmflexiserver.c in CVS. I ported the
changes to the current stable ebuild. 

Doing an epatch with this patch works like a charm. The dialog is dismissed
with the appropriate command-line option.
Comment 9 Christopher Cowart 2005-08-12 17:35:45 UTC
Created attachment 65801 [details, diff]
Patch against xscreensaver-4.22

And this patch is needed to get xscreensaver to play nicely. gdmflexiserver has
to be called with a -s by xscreensaver. I can't say that I know anything about
./configure scripts, but this makes sure that the -s option is passed along to
gdmflexiserver. 

On a slightly unrelated note, the original configure script says the default is
"gdmflexiserver -l", but the result when the script is run is simply
"gdmflexiserver". The arguments are lost during configure time. The -l is
unnessecary. I'm going to bug upstream with xscreensaver so they know what
behavior to expect from gdmflexiserver. This patch should be applied in ebuilds
for now to allow this functionality.
Comment 10 Christopher Cowart 2006-02-28 01:54:38 UTC
GDM's changes from upstream have trickled down into stable ebuilds. xscreensaver can be configured via /etc/X11/app-defaults/XScreenSaver with the line:
*newLoginCommand:       /usr/bin/gdmflexiserver --startnew

Thus, I consider the issue resolved.