Package: gdm Version: 2.20.10-1 Severity: important
On logging in from gdm, I'm dropped in a default session (no wm, no gnome, etc.) It appears that /etc/gdm/Xsession is not trying to execute a gnome-session. (See attached .xsession-errors, in particular the line 'echo "$0: Executing $command failed, will try to run x-terminal-emulator"' and the absence of actually executing $command.) I'm not sure what the right fix for this is and would prefer not to start with hacks to files like /etc/gdm/Xsession. I suspect this is a matter of misconfiguration somewhere rather than outright bug, although perhaps that leaves a bug concerning a missing error message somewhere. Pointers much appreciated. -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 2.6.30-2-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/dash Versions of packages gdm depends on: ii adduser 3.111 add and remove users and groups ii debconf [debconf-2.0] 1.5.28 Debian configuration management sy ii gksu 2.0.2-2+b1 graphical frontend to su ii gnome-session [x-session-ma 2.26.2-1 The GNOME Session Manager ii gnome-terminal [x-terminal- 2.28.1-1 The GNOME terminal emulator applic ii libart-2.0-2 2.3.20-2 Library of functions for 2D graphi ii libatk1.0-0 1.28.0-1 The ATK accessibility toolkit ii libattr1 1:2.4.44-1 Extended attribute shared library ii libaudit0 1.7.13-1 Dynamic library for security audit ii libc6 2.10.1-7 GNU C Library: Shared libraries ii libcairo2 1.8.8-2 The Cairo 2D vector graphics libra ii libdbus-1-3 1.2.16-2 simple interprocess messaging syst ii libdbus-glib-1-2 0.82-2 simple interprocess messaging syst ii libdmx1 1:1.0.2-3 X11 Distributed Multihead extensio ii libfontconfig1 2.6.0-4 generic font configuration library ii libfreetype6 2.3.11-1 FreeType 2 font engine, shared lib ii libglade2-0 1:2.6.4-1 library to load .glade files at ru ii libglib2.0-0 2.22.2-2 The GLib library of C routines ii libgnomecanvas2-0 2.26.0-1 A powerful object-oriented display ii libgtk2.0-0 2.18.3-1 The GTK+ graphical user interface ii libpam-modules 1.1.0-4 Pluggable Authentication Modules f ii libpam-runtime 1.1.0-4 Runtime support for the PAM librar ii libpam0g 1.1.0-4 Pluggable Authentication Modules l ii libpango1.0-0 1.26.0-1 Layout and rendering of internatio ii librsvg2-2 2.26.0-1 SAX-based renderer library for SVG ii librsvg2-common 2.26.0-1 SAX-based renderer library for SVG ii libselinux1 2.0.88-1 SELinux runtime shared libraries ii libwrap0 7.6.q-18 Wietse Venema's TCP wrappers libra ii libx11-6 2:1.2.2-1 X11 client-side library ii libxau6 1:1.0.5-1 X11 authorisation library ii libxdmcp6 1:1.0.2-3 X11 Display Manager Control Protoc ii libxext6 2:1.0.4-1 X11 miscellaneous extension librar ii libxi6 2:1.2.1-2 X11 Input extension library ii libxinerama1 2:1.0.3-2 X11 Xinerama extension library ii libxml2 2.7.6.dfsg-1 GNOME XML library ii lsb-base 3.2-23 Linux Standard Base 3.2 init scrip ii metacity [x-window-manager] 1:2.28.0-2 lightweight GTK+ window manager ii sawfish [x-window-manager] 1:1.3.5.2-1 a window manager for X11 ii twm [x-window-manager] 1:1.0.4-2 Tab window manager ii xterm [x-terminal-emulator] 250-1 X terminal emulator Versions of packages gdm recommends: ii dialog 1.1-20080819-1 Displays user-friendly dialog boxe ii gdm-themes 0.6.2 Themes for the GNOME Display Manag ii whiptail 0.52.10-4.1 Displays user-friendly dialog boxe ii xserver-xephyr 2:1.6.5-1 nested X server ii xserver-xorg 1:7.4+4 the X.Org X server ii zenity 2.28.0-1 Display graphical dialog boxes fro Versions of packages gdm suggests: ii libpam-gnome-keyring 2.28.1-1 PAM module to unlock the GNOME key ii locales 2.10.1-7 GNU C Library: National Language ( ii pm-utils 1.2.5-4 utilities and scripts for power ma -- debconf information: gdm/daemon_name: /usr/bin/gdm * shared/default-x-display-manager: gdm
#!/bin/sh -xv # # This is SORT OF LIKE an X session, but not quite. You get a command as the # first argument (it could be multiple words, so run it with "eval"). As a # special case, the command can be: # failsafe - Run an xterm only # default - Run the appropriate Xclients startup (see the code below) # custom - Run ~/.xsession and if that's not available run 'default' # # (Note that other arguments could also follow, but only the command one is # right now relevant and supported) # # The output is ALREADY redirected to .xsession-errors in GDM. This way # .xsession-errors actually gets more output such as if the PreSession script # is failing. This also prevents DoS attacks if some app in the users session # can be prodded to dump lots of stuff on the stdout/stderr. We wish to be # robust don't we? In case you wish to use an existing script for other DM's, # you can just not redirect when GDMSESSION is set. GDMSESSION will always # be set from gdm. # # Also note that this is not run as a login shell, this is just executed. # # based on: # $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $ PROGNAME=Xsession + PROGNAME=Xsession message () { # pretty-print messages of arbitrary length; use xmessage if it # is available and $DISPLAY is set MESSAGE="$PROGNAME: $*" echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2 if [ -n "$DISPLAY" ]; then if [ -n "$zenity" ]; then "$zenity" --info --text "`gettextfunc "$MESSAGE"`" elif [ -n "$xmessage" ]; then echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | $xmessage -center -file - fi fi } message_nonl () { # pretty-print messages of arbitrary length (no trailing newline); use # xmessage if it is available and $DISPLAY is set MESSAGE="$PROGNAME: $*" echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2; if [ -n "$DISPLAY" ]; then if [ -n "$zenity" ]; then "$zenity" --info --text "`gettextfunc "$MESSAGE"`" elif [ -n "$xmessage" ]; then echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | $xmessage -center -file - fi fi } errormsg () { # exit script with error message "$*" exit 1 } internal_errormsg () { # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message # One big call to message() for the sake of xmessage; if we had two then # the user would have dismissed the error we want reported before seeing the # request to report it. errormsg "$*" \ "Please report the installed version of the \"xfree86-common\"" \ "package and the complete text of this error message to" \ "<debia...@lists.debian.org>." } run_parts () { # until run-parts --noexec is implemented if [ -z "$1" ]; then internal_errormsg "run_parts() called without an argument." fi if [ ! -d "$1" ]; then internal_errormsg "run_parts() called, but \"$1\" does not exist or is" \ "not a directory." fi for F in $(/bin/ls $1); do if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then if [ -f "$1/$F" ]; then echo "$1/$F" fi fi done } # initialize variables for use by all session scripts OPTIONFILE=/etc/X11/Xsession.options + OPTIONFILE=/etc/X11/Xsession.options SYSRESOURCES=/etc/X11/Xresources + SYSRESOURCES=/etc/X11/Xresources USRRESOURCES=$HOME/.Xresources + USRRESOURCES=/home/jeff/.Xresources SYSSESSIONDIR=/etc/X11/Xsession.d + SYSSESSIONDIR=/etc/X11/Xsession.d USERXSESSION=$HOME/.xsession + USERXSESSION=/home/jeff/.xsession USERXSESSIONRC=$HOME/.xsessionrc + USERXSESSIONRC=/home/jeff/.xsessionrc ALTUSERXSESSION=$HOME/.Xsession + ALTUSERXSESSION=/home/jeff/.Xsession # this will go into the .xsession-errors along with all other echo's # good for debugging where things went wrong echo "$0: Beginning session setup..." + echo /etc/gdm/Xsession: Beginning session setup... /etc/gdm/Xsession: Beginning session setup... # First read /etc/profile and .profile test -f /etc/profile && . /etc/profile + test -f /etc/profile + . /etc/profile # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/games" fi + id -u + [ 1000 -eq 0 ] + PATH=/usr/local/bin:/usr/bin:/bin:/usr/games if [ "$PS1" ]; then if [ "$BASH" ]; then PS1='\...@\h:\w\$ ' else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi + [ $ ] + [ ] + id -u + [ 1000 -eq 0 ] + PS1=$ export PATH + export PATH umask 022 + umask 022 test -f "$HOME/.profile" && . "$HOME/.profile" + test -f /home/jeff/.profile # Second read /etc/xprofile and .xprofile for X specific setup test -f /etc/xprofile && . /etc/xprofile + test -f /etc/xprofile test -f "$HOME/.xprofile" && . "$HOME/.xprofile" + test -f /home/jeff/.xprofile # Translation stuff if [ -x "/usr/lib/gdm/gdmtranslate" ] ; then gdmtranslate="/usr/lib/gdm/gdmtranslate" else gdmtranslate= fi + [ -x /usr/lib/gdm/gdmtranslate ] + gdmtranslate=/usr/lib/gdm/gdmtranslate # Note that this should only go to zenity dialogs which always expect utf8 gettextfunc () { if [ "x$gdmtranslate" != "x" ] ; then "$gdmtranslate" --utf8 "$1" else echo "$1" fi } zenity=`which zenity 2>/dev/null` + which zenity + zenity=/usr/bin/zenity xmessage=`which xmessage 2>/dev/null` + which xmessage + xmessage=/usr/bin/xmessage command="$1" + command=default if [ -z "$command" ] ; then command=failsafe fi + [ -z default ] if [ x"$command" = xfailsafe ] ; then if [ -n "$zenity" ] ; then "$zenity" --info --text "`gettextfunc "This is the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"`" else echo "$0: Starting the failsafe xterm session." fi exec xterm -geometry 80x24+0+0 fi + [ xdefault = xfailsafe ] # clean up after xbanner freetemp=`which freetemp 2>/dev/null` + which freetemp + freetemp= if [ -n "$freetemp" ] ; then "$freetemp" fi + [ -n ] usermodmap="$HOME/.Xmodmap" + usermodmap=/home/jeff/.Xmodmap userxkbmap="$HOME/.Xkbmap" + userxkbmap=/home/jeff/.Xkbmap if [ -f "$userxkbmap" ]; then setxkbmap `cat "$userxkbmap"` XKB_IN_USE=yes fi + [ -f /home/jeff/.Xkbmap ] # xkb and xmodmap don't play nice together if [ -z "$XKB_IN_USE" ]; then if [ -f "$usermodmap" ]; then xmodmap "$usermodmap" fi fi + [ -z ] + [ -f /home/jeff/.Xmodmap ] unset XKB_IN_USE + unset XKB_IN_USE # if GDM_LANG isn't first in LANGUAGE, then unset it. if [ -n "$GDM_LANG" ]; then if [ -n "$LANGUAGE" ]; then if echo "$LANGUAGE" | grep -q -- "^$GDM_LANG"; then : else unset LANGUAGE fi fi fi + [ -n en_US.ISO-8859-15 ] + [ -n ] # The default Debian session runs xsession first, so we just do that for # "custom" if [ "x$command" = "xcustom" ] ; then shift set default $* fi + [ xdefault = xcustom ] # use run-parts to source every file in the session directory; we source # instead of executing so that the variables and functions defined above # are available to the scripts, and so that they can pass variables to each # other SESSIONFILES=$(run_parts $SYSSESSIONDIR) + run_parts /etc/X11/Xsession.d + [ -z /etc/X11/Xsession.d ] + [ ! -d /etc/X11/Xsession.d ] + /bin/ls /etc/X11/Xsession.d + expr 60seahorse : [[:alnum:]_-]\+$ + [ -f /etc/X11/Xsession.d/60seahorse ] + echo /etc/X11/Xsession.d/60seahorse + SESSIONFILES=/etc/X11/Xsession.d/60seahorse if [ -n "$SESSIONFILES" ]; then for SESSIONFILE in $SESSIONFILES; do . $SESSIONFILE done fi + [ -n /etc/X11/Xsession.d/60seahorse ] + . /etc/X11/Xsession.d/60seahorse # This file is sourced by Xsession(5), not executed. SEAHORSE=/usr/bin/seahorse-agent + SEAHORSE=/usr/bin/seahorse-agent if [ -n "$GNOMERC" ] && [ -x $SEAHORSE ] && [ -z "$GPG_AGENT_INFO" ]; then STARTUP="$SEAHORSE --execute $STARTUP" fi + [ -n ] echo "$0: Executing $command failed, will try to run x-terminal-emulator" + echo /etc/gdm/Xsession: Executing default failed, will try to run x-terminal-emulator /etc/gdm/Xsession: Executing default failed, will try to run x-terminal-emulator if [ -n "$zenity" ] ; then "$zenity" --info --text "`gettextfunc "I could not start your session and so I have started the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"`" fi + [ -n /usr/bin/zenity ] + gettextfunc I could not start your session and so I have started the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner + [ x/usr/lib/gdm/gdmtranslate != x ] + /usr/lib/gdm/gdmtranslate --utf8 I could not start your session and so I have started the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner + /usr/bin/zenity --info --text I could not start your session and so I have started the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner exec x-terminal-emulator -geometry 80x24+0+0 + exec x-terminal-emulator -geometry 80x24+0+0