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

Reply via email to