Seulement dans gdm-2.4.4.7-sun/config: gdm-autologin.suse
diff -cr gdm-2.4.4.7/config/gdm.conf.in gdm-2.4.4.7-sun/config/gdm.conf.in
*** gdm-2.4.4.7/config/gdm.conf.in	2003-10-10 23:03:16.000000000 +0200
--- gdm-2.4.4.7-sun/config/gdm.conf.in	2005-04-09 00:40:59.000000000 +0200
***************
*** 37,52 ****
  
  # The gdm configuration program that is run from the login screen, you should
  # probably leave this alone
! #Configurator=@EXPANDED_GDMCONFIGDIR@/gdmsetup --disable-sound --disable-crash-dialog
  # The chooser program.  Must output the chosen host on stdout, probably you
  # should leave this alone
! #Chooser=@EXPANDED_BINDIR@/gdmchooser
  # Greeter for local (non-xdmcp) logins.  Change gdmlogin to gdmgreeter to
  # get the new graphical greeter.
! #Greeter=@EXPANDED_BINDIR@/gdmlogin
  # Greeter for xdmcp logins, usually you want a less graphically intensive
  # greeter here so it's better to leave this with gdmlogin
! #RemoteGreeter=@EXPANDED_BINDIR@/gdmlogin
  # Launch the greeter with an additional list of colon seperated gtk 
  # modules. This is useful for enabling additional feature support 
  # e.g. gnome accessibility framework. Only "trusted" modules should
--- 37,52 ----
  
  # The gdm configuration program that is run from the login screen, you should
  # probably leave this alone
! Configurator=@EXPANDED_GDMCONFIGDIR@/gdmsetup --disable-sound --disable-crash-dialog
  # The chooser program.  Must output the chosen host on stdout, probably you
  # should leave this alone
! Chooser=@EXPANDED_BINDIR@/gdmchooser
  # Greeter for local (non-xdmcp) logins.  Change gdmlogin to gdmgreeter to
  # get the new graphical greeter.
! Greeter=@EXPANDED_BINDIR@/gdmgreeter
  # Greeter for xdmcp logins, usually you want a less graphically intensive
  # greeter here so it's better to leave this with gdmlogin
! RemoteGreeter=@EXPANDED_BINDIR@/gdmlogin
  # Launch the greeter with an additional list of colon seperated gtk 
  # modules. This is useful for enabling additional feature support 
  # e.g. gnome accessibility framework. Only "trusted" modules should
***************
*** 56,68 ****
  #GtkModulesList=gail:atk-bridge:dwellmouselistener:keymouselistener
  
  # Default path to set.  The profile scripts will likely override this
! #DefaultPath=/bin:/usr/bin:@X_CONF_PATH@:@EXPANDED_BINDIR@
  # Default path for root.  The profile scripts will likely override this
  #RootPath=/sbin:/usr/sbin:/bin:/usr/bin:@X_CONF_PATH@:@EXPANDED_BINDIR@
  
  # If you are having trouble with using a single server for a long time and
  # want gdm to kill/restart the server, turn this on
! #AlwaysRestartServer=false
  
  # User and group that gdm should run as.  Probably should be gdm and gdm and
  # you should create these user and group.  Anyone found running this as
--- 56,68 ----
  #GtkModulesList=gail:atk-bridge:dwellmouselistener:keymouselistener
  
  # Default path to set.  The profile scripts will likely override this
! DefaultPath=/bin:/usr/bin:@X_CONF_PATH@:@EXPANDED_BINDIR@
  # Default path for root.  The profile scripts will likely override this
  #RootPath=/sbin:/usr/sbin:/bin:/usr/bin:@X_CONF_PATH@:@EXPANDED_BINDIR@
  
  # If you are having trouble with using a single server for a long time and
  # want gdm to kill/restart the server, turn this on
! AlwaysRestartServer=false
  
  # User and group that gdm should run as.  Probably should be gdm and gdm and
  # you should create these user and group.  Anyone found running this as
***************
*** 79,100 ****
  # Note that a post login script is run before a PreSession script.
  # It is run after the login is successful and before any setup is
  # run on behalf of the user
! PostLoginScriptDir=@EXPANDED_SYSCONFDIR@/gdm/PostLogin/
! PreSessionScriptDir=@EXPANDED_SYSCONFDIR@/gdm/PreSession/
! PostSessionScriptDir=@EXPANDED_SYSCONFDIR@/gdm/PostSession/
! DisplayInitDir=@EXPANDED_SYSCONFDIR@/gdm/Init
  # Distributions:  If you have some script that runs an X server in say
  # VGA mode, allowing a login, could you please send it to me?
! #FailsafeXServer=
  # if X keeps crashing on us we run this script.  The default one does a bunch
  # of cool stuff to figure out what to tell the user and such and can
  # run an X configuration program.
! XKeepsCrashing=@EXPANDED_SYSCONFDIR@/gdm/XKeepsCrashing
  # Reboot, Halt and suspend commands, you can add different commands
  # separated by a semicolon and gdm will use the first one it can find
! #RebootCommand=/usr/bin/reboot;/sbin/reboot;/sbin/shutdown -r now;/usr/sbin/shutdown -r now
! #HaltCommand=/usr/bin/poweroff;/sbin/poweroff;/sbin/shutdown -h now;/usr/sbin/shutdown -h now
! #SuspendCommand=
  # Probably should not touch the below this is the standard setup
  ServAuthDir=@EXPANDED_AUTHDIR@
  # This is our standard startup script.  A bit different from a normal
--- 79,100 ----
  # Note that a post login script is run before a PreSession script.
  # It is run after the login is successful and before any setup is
  # run on behalf of the user
! PostLoginScriptDir=@EXPANDED_SYSCONFDIR@/gdm/SunRayPostLogin/
! PreSessionScriptDir=@EXPANDED_SYSCONFDIR@/gdm/SunRayPreSession/
! PostSessionScriptDir=@EXPANDED_SYSCONFDIR@/gdm/SunRayPostSession/
! DisplayInitDir=@EXPANDED_SYSCONFDIR@/gdm/SunRayInit
  # Distributions:  If you have some script that runs an X server in say
  # VGA mode, allowing a login, could you please send it to me?
! FailsafeXServer=
  # if X keeps crashing on us we run this script.  The default one does a bunch
  # of cool stuff to figure out what to tell the user and such and can
  # run an X configuration program.
! XKeepsCrashing=/bin/true
  # Reboot, Halt and suspend commands, you can add different commands
  # separated by a semicolon and gdm will use the first one it can find
! RebootCommand=/bin/false
! HaltCommand=/bin/false
! SuspendCommand=/bin/false
  # Probably should not touch the below this is the standard setup
  ServAuthDir=@EXPANDED_AUTHDIR@
  # This is our standard startup script.  A bit different from a normal
***************
*** 120,133 ****
  # The X server to use if we can't figure out what else to run.
  StandardXServer=@X_SERVER@
  # The maximum number of flexible X servers to run.
! #FlexibleXServers=5
  # the X nest command
  Xnest=@X_SERVER_PATH@/Xnest -audit 0 -name Xnest
  # Automatic VT allocation.  Right now only works on Linux.  This way
  # we force X to use specific vts.  turn VTAllocation to false if this
  # is causing problems.
  #FirstVT=7
! #VTAllocation=true
  # Should double login be treated with a warning (and possibility to change
  # vts on linux systems for console logins)
  #DoubleLoginWarning=true
--- 120,133 ----
  # The X server to use if we can't figure out what else to run.
  StandardXServer=@X_SERVER@
  # The maximum number of flexible X servers to run.
! FlexibleXServers=0
  # the X nest command
  Xnest=@X_SERVER_PATH@/Xnest -audit 0 -name Xnest
  # Automatic VT allocation.  Right now only works on Linux.  This way
  # we force X to use specific vts.  turn VTAllocation to false if this
  # is causing problems.
  #FirstVT=7
! VTAllocation=false
  # Should double login be treated with a warning (and possibility to change
  # vts on linux systems for console logins)
  #DoubleLoginWarning=true
***************
*** 158,164 ****
  # Note: Anytime we find a -query or -indirect on the command line we do
  # not add a "-nolisten tcp", as then the query just wouldn't work, so
  # this setting only affects truly local sessions.
! #DisallowTCP=true
  # By default never place cookies if we "detect" NFS.  We detect NFS
  # by detecting "root-squashing".  It seems bad practice to place
  # cookies on things that go over the network by default and thus we
--- 158,164 ----
  # Note: Anytime we find a -query or -indirect on the command line we do
  # not add a "-nolisten tcp", as then the query just wouldn't work, so
  # this setting only affects truly local sessions.
! DisallowTCP=false
  # By default never place cookies if we "detect" NFS.  We detect NFS
  # by detecting "root-squashing".  It seems bad practice to place
  # cookies on things that go over the network by default and thus we
***************
*** 211,251 ****
  # The 'theme'.  By default we're using the default gtk theme
  # Of course assuming that gtk got installed in the same prefix,
  # if not change this.
! #GtkRC=@EXPANDED_DATADIR@/themes/Default/gtk/gtkrc
  # Maximum size of an icon, larger icons are scaled down
  #MaxIconWidth=128
  #MaxIconHeight=128
  
  [greeter]
  # Greeter has a nice title bar that the user can move
! #TitleBar=true
  # Configuration is available from the system menu of the greeter
! #ConfigAvailable=true
  # Face browser is enabled.  This only works currently for the
  # standard greeter as it is not yet enabled in the graphical greeter.
  Browser=false
  # The default picture in the browser
! #DefaultFace=@EXPANDED_PIXMAPDIR@/nobody.png
  # These are things excluded from the face browser, not from logging in
! #Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,gdm,postgres,pvm,rpm,nfsnobody,pcap
  # As an alternative to the above this is the minimum uid to show
  #MinimalUID=100
  # If user or user.png exists in this dir it will be used as his picture
! #GlobalFaceDir=@EXPANDED_DATADIR@/faces/
  # File which contains the locale we show to the user.  Likely you want to use
  # the one shipped with gdm and edit it.  It is not a standard locale.alias file,
  # although gdm will be able to read a standard locale.alias file as well.
! #LocaleFile=@EXPANDED_LOCALEDIR@/locale.alias
  # Logo shown in the standard greeter
! #Logo=@EXPANDED_PIXMAPDIR@/gdm-foot-logo.png
  # The standard greeter should shake if a user entered the wrong username or
  # password.  Kind of cool looking
! #Quiver=true
  # The Actions menu (formerly system menu) is shown in the greeter, this is the
  # menu that contains reboot, shutdown, suspend, config and chooser.  None of
  # these is available if this is off.  They can be turned off individually
  # however
! #SystemMenu=true
  # Should the chooser button be shown.  If this is shown, GDM can drop into
  # chooser mode which will run the xdmcp chooser locally and allow the user
  # to connect to some remote host.  Local XDMCP does not need to be enabled
--- 211,253 ----
  # The 'theme'.  By default we're using the default gtk theme
  # Of course assuming that gtk got installed in the same prefix,
  # if not change this.
! # NOTE - the next line is modified by the specfile.src in
! # src/pkg/gdm for suse/jds. Know what you are doing before changing.
! GtkRC=@EXPANDED_DATADIR@/themes/Bluecurve/gtk-2.0/gtkrc
  # Maximum size of an icon, larger icons are scaled down
  #MaxIconWidth=128
  #MaxIconHeight=128
  
  [greeter]
  # Greeter has a nice title bar that the user can move
! TitleBar=false
  # Configuration is available from the system menu of the greeter
! ConfigAvailable=false
  # Face browser is enabled.  This only works currently for the
  # standard greeter as it is not yet enabled in the graphical greeter.
  Browser=false
  # The default picture in the browser
! DefaultFace=@EXPANDED_PIXMAPDIR@/nobody.png
  # These are things excluded from the face browser, not from logging in
! Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,gdm,postgres,pvm,rpm,nfsnobody,pcap
  # As an alternative to the above this is the minimum uid to show
  #MinimalUID=100
  # If user or user.png exists in this dir it will be used as his picture
! GlobalFaceDir=@EXPANDED_DATADIR@/faces/
  # File which contains the locale we show to the user.  Likely you want to use
  # the one shipped with gdm and edit it.  It is not a standard locale.alias file,
  # although gdm will be able to read a standard locale.alias file as well.
! LocaleFile=@EXPANDED_LOCALEDIR@/locale.alias
  # Logo shown in the standard greeter
! Logo=
  # The standard greeter should shake if a user entered the wrong username or
  # password.  Kind of cool looking
! Quiver=true
  # The Actions menu (formerly system menu) is shown in the greeter, this is the
  # menu that contains reboot, shutdown, suspend, config and chooser.  None of
  # these is available if this is off.  They can be turned off individually
  # however
! SystemMenu=false
  # Should the chooser button be shown.  If this is shown, GDM can drop into
  # chooser mode which will run the xdmcp chooser locally and allow the user
  # to connect to some remote host.  Local XDMCP does not need to be enabled
***************
*** 259,331 ****
  # (through XDMCP).
  # The default entries that are shipped are translated inside genius and
  # are as follows:
! #Welcome=Welcome
! #RemoteWelcome=Welcome to %n
  # Don't allow user to move the standard greeter window.  Only makes sense
  # if TitleBar is on
! #LockPosition=false
  # Set a position rather then just centering the window.  If you enter
  # negative values for the position it is taken as an offset from the
  # right or bottom edge.
! #SetPosition=false
! #PositionX=0
! #PositionY=0
  # Xinerama screen we use to display the greeter on.  Not for true
  # multihead, currently only works for Xinerama.
! #XineramaScreen=0
  # Background settings for the standard greeter:
  # Type can be 0=None, 1=Image, 2=Color
! #BackgroundType=2
! #BackgroundImage=
! #BackgroundScaleToFit=true
! #BackgroundColor=#363047
  # XDMCP session should only get a color, this is the sanest setting since
  # you don't want to take up too much bandwidth
! #BackgroundRemoteOnlyColor=true
  # Program to run to draw the background in the standard greeter.  Perhaps
  # something like an xscreensaver hack or some such.
  #BackgroundProgram=
  # if this is true then the background program is run always, otherwise
  # it is only run when the BackgroundType is 0 (None)
! #RunBackgroundProgramAlways=false
  # Show the Failsafe sessions.  These are much MUCH nicer (focus for xterm for
  # example) and more failsafe then those supplied by scripts so distros should
  # use this rather then just running an xterm from a script.
! #ShowGnomeFailsafeSession=true
! #ShowXtermFailsafeSession=true
  # Normally there is a session type called 'Last' that is shown which refers to
  # the last session the user used.  If off, we will be in 'switchdesk' mode where
  # the session saving stuff is disabled in GDM
  #ShowLastSession=true
  # Always use 24 hour clock no matter what the locale.
! #Use24Clock=false
  # Use circles in the password field.  Looks kind of cool actually,
  # but only works with certain fonts.
! #UseCirclesInEntry=false
  # These two keys are for the new greeter.  Circles is the standard
  # shipped theme
! #GraphicalTheme=circles
  GraphicalThemeDir=@EXPANDED_DATADIR@/gdm/themes/
  
  # The chooser is what's displayed when a user wants an indirect XDMCP
  # session, or selects Run XDMCP chooser from the system menu
  [chooser]
  # Default image for hosts
! #DefaultHostImg=@EXPANDED_PIXMAPDIR@/nohost.png
  # Directory with host images, they are named by the hosts: host or host.png
  HostImageDir=@EXPANDED_DATADIR@/hosts/
  # Time we scan for hosts (well only the time we tell the user we are
  # scanning actually, we continue to listen even after this has
  # expired)
! #ScanTime=4
  # A comma separated lists of hosts to automatically add (if they answer to
  # a query of course).  You can use this to reach hosts that broadcast cannot
  # reach.
  Hosts=
  # Broadcast a query to get all hosts on the current network that answer
! #Broadcast=true
  # Allow adding random hosts to the list by typing in their names
! #AllowAdd=true
  
  [debug]
  # This will enable debugging into the syslog, usually not neccessary
--- 261,333 ----
  # (through XDMCP).
  # The default entries that are shipped are translated inside genius and
  # are as follows:
! Welcome=Welcome
! RemoteWelcome=Welcome to %n
  # Don't allow user to move the standard greeter window.  Only makes sense
  # if TitleBar is on
! LockPosition=true
  # Set a position rather then just centering the window.  If you enter
  # negative values for the position it is taken as an offset from the
  # right or bottom edge.
! SetPosition=false
! PositionX=0
! PositionY=0
  # Xinerama screen we use to display the greeter on.  Not for true
  # multihead, currently only works for Xinerama.
! XineramaScreen=0
  # Background settings for the standard greeter:
  # Type can be 0=None, 1=Image, 2=Color
! BackgroundType=0
! BackgroundImage=
! BackgroundScaleToFit=true
! BackgroundColor=#27408b
  # XDMCP session should only get a color, this is the sanest setting since
  # you don't want to take up too much bandwidth
! BackgroundRemoteOnlyColor=true
  # Program to run to draw the background in the standard greeter.  Perhaps
  # something like an xscreensaver hack or some such.
  #BackgroundProgram=
  # if this is true then the background program is run always, otherwise
  # it is only run when the BackgroundType is 0 (None)
! RunBackgroundProgramAlways=false
  # Show the Failsafe sessions.  These are much MUCH nicer (focus for xterm for
  # example) and more failsafe then those supplied by scripts so distros should
  # use this rather then just running an xterm from a script.
! ShowGnomeFailsafeSession=false
! ShowXtermFailsafeSession=false
  # Normally there is a session type called 'Last' that is shown which refers to
  # the last session the user used.  If off, we will be in 'switchdesk' mode where
  # the session saving stuff is disabled in GDM
  #ShowLastSession=true
  # Always use 24 hour clock no matter what the locale.
! Use24Clock=false
  # Use circles in the password field.  Looks kind of cool actually,
  # but only works with certain fonts.
! UseCirclesInEntry=false
  # These two keys are for the new greeter.  Circles is the standard
  # shipped theme
! GraphicalTheme=Bluecurve
  GraphicalThemeDir=@EXPANDED_DATADIR@/gdm/themes/
  
  # The chooser is what's displayed when a user wants an indirect XDMCP
  # session, or selects Run XDMCP chooser from the system menu
  [chooser]
  # Default image for hosts
! DefaultHostImg=@EXPANDED_PIXMAPDIR@/nohost.png
  # Directory with host images, they are named by the hosts: host or host.png
  HostImageDir=@EXPANDED_DATADIR@/hosts/
  # Time we scan for hosts (well only the time we tell the user we are
  # scanning actually, we continue to listen even after this has
  # expired)
! ScanTime=4
  # A comma separated lists of hosts to automatically add (if they answer to
  # a query of course).  You can use this to reach hosts that broadcast cannot
  # reach.
  Hosts=
  # Broadcast a query to get all hosts on the current network that answer
! Broadcast=true
  # Allow adding random hosts to the list by typing in their names
! AllowAdd=true
  
  [debug]
  # This will enable debugging into the syslog, usually not neccessary
***************
*** 365,371 ****
  [server-Standard]
  name=Standard server
  command=@X_SERVER@ -audit 0
! flexible=true
  
  # To use this server type you should add -query host or -indirect host
  # to the command line
--- 367,379 ----
  [server-Standard]
  name=Standard server
  command=@X_SERVER@ -audit 0
! flexible=false
! 
! # Standard Server with forced vt allocation
! [server-StandardVT]
! name=Standard server with VTAllocation
! command=@X_SERVER@ -audit 0 vt7
! flexible=false
  
  # To use this server type you should add -query host or -indirect host
  # to the command line
Seulement dans gdm-2.4.4.7-sun/config: gdm.suse
Seulement dans gdm-2.4.4.7-sun/config: kde.desktop.in
diff -cr gdm-2.4.4.7/config/Makefile.in gdm-2.4.4.7-sun/config/Makefile.in
*** gdm-2.4.4.7/config/Makefile.in	2003-12-31 19:31:32.000000000 +0100
--- gdm-2.4.4.7-sun/config/Makefile.in	2005-04-09 00:40:58.000000000 +0200
***************
*** 178,184 ****
  
  noinst_DATA = gdm.conf
  
! EXTRA_DIST =  	gdm.conf.in 	gnome.desktop.in 	default.desktop.in 	CDE.desktop.in 	Xsession.in 	gdm 	gdm-autologin 	locale.alias 	Default.in 	PostSession.in 	PreSession.in 	PostLogin 	XKeepsCrashing 	gettextfoo.h 	extract-shell.sh
  
  mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
  CONFIG_HEADER = ../config.h
--- 178,184 ----
  
  noinst_DATA = gdm.conf
  
! EXTRA_DIST =  	gdm.conf.in 	gnome.desktop.in 	default.desktop.in 	kde.desktop.in CDE.desktop.in 	Xsession.in 	gdm 	gdm-autologin 	locale.alias 	Default.in 	PostSession.in 	PreSession.in 	PostLogin 	XKeepsCrashing 	gettextfoo.h 	extract-shell.sh
  
  mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
  CONFIG_HEADER = ../config.h
***************
*** 300,306 ****
  
  @INTLTOOL_DESKTOP_RULE@
  
! install-data-hook: gdm.conf Xsession gnome.desktop default.desktop CDE.desktop Default PostSession PreSession
  	if test '!' -d $(DESTDIR)$(confdir); then \
  		$(mkinstalldirs) $(DESTDIR)$(confdir); \
  		chmod 755 $(DESTDIR)$(confdir); \
--- 300,306 ----
  
  @INTLTOOL_DESKTOP_RULE@
  
! install-data-hook: gdm.conf Xsession gnome.desktop default.desktop kde.desktop CDE.desktop Default PostSession PreSession
  	if test '!' -d $(DESTDIR)$(confdir); then \
  		$(mkinstalldirs) $(DESTDIR)$(confdir); \
  		chmod 755 $(DESTDIR)$(confdir); \
***************
*** 344,349 ****
--- 344,354 ----
  	fi
  	$(INSTALL_SCRIPT) default.desktop $(DESTDIR)$(bisessdir)/default.desktop
  
+ 	-if test -f $(DESTDIR)$(bisessdir)/kde.desktop.notused; then \
+ 		rm -f $(DESTDIR)$(confdir)/kde.desktop.notused; \
+ 	fi
+ 	$(INSTALL_SCRIPT) kde.desktop $(DESTDIR)$(bisessdir)/kde.desktop.notused
+ 
  	-if test -f $(DESTDIR)$(bisessdir)/gnome.desktop; then \
  		mv -f $(DESTDIR)$(bisessdir)/gnome.desktop $(DESTDIR)$(bisessdir)/gnome.desktop.orig; \
  	fi
diff -cr gdm-2.4.4.7/config/Xsession.in gdm-2.4.4.7-sun/config/Xsession.in
*** gdm-2.4.4.7/config/Xsession.in	2003-09-29 23:33:47.000000000 +0200
--- gdm-2.4.4.7-sun/config/Xsession.in	2005-04-09 00:40:59.000000000 +0200
***************
*** 132,139 ****
         xmodmap "$rh6sysmodmap"
      fi
  
!     if [ -f "$sysmodmap" ]; then
!        xmodmap "$sysmodmap"
      fi
  
      if [ -f "$usermodmap" ]; then
--- 132,148 ----
         xmodmap "$rh6sysmodmap"
      fi
  
!     DPY=$(echo $DISPLAY | awk -F: '{ print $2 }' | awk -F. '{ print $1 }')
!     if [ \( -f /etc/sun-release -o -f /etc/SuSE-release \) -a "$DPY" -gt "10" ]; then
!         # we are on JDS or SuSE and on a SunRay - perform an ugly
!         # hack for now to workaround bug 5056967
!         if [ -f "${sysmodmap}.remote" ]; then
!             xmodmap "${sysmodmap}.remote"
!         fi
!     else
!         if [ -f "$sysmodmap" ]; then
!             xmodmap "$sysmodmap"
!         fi
      fi
  
      if [ -f "$usermodmap" ]; then
***************
*** 183,188 ****
--- 192,232 ----
      done
  fi
  
+ #
+ # To determine the character set used for filenames with
+ # glib's g_filename_to/from_utf8() functions, we set the
+ # environment variables G_FILENAME_ENCODING and G_BROKEN_FILENAMES.
+ #
+ # G_BROKEN_FILENAMES, when set, lets the functions take the 
+ # character set for the current locale for filename's encoding.
+ #
+ # G_FILENAME_ENCODING, which is introduced to glib 2.3.x and later, may be
+ # set to a comma-separated list of character set names.
+ # The special token "@locale" is taken to mean the character set 
+ # for the current locale. The first character set from the list is taken 
+ # as the filename encoding. 
+ #
+ # If G_FILENAME_ENCODING is not set, but G_BROKEN_FILENAMES is, the
+ # character set of the current locale is taken as the filename encoding.
+ 
+ G_BROKEN_FILENAMES=yes
+ export G_BROKEN_FILENAMES
+ # G_FILENAME_ENCODING=@locale
+ # export G_FILENAME_ENCODING
+ 
+ #Startup Input methods (IIIM->XIM)
+ if [ -f /etc/iiim/xsession ]; then
+ 	. /etc/iiim/xsession
+ fi
+ #Startup XIM stuff
+ if [ "x$XMODIFIERS" = "x" ]; then
+  if [ -f "$HOME/.xim" ]; then
+ 	. $HOME/.xim
+  elif [ -f "/etc/skel/.xim" ]; then
+ 	. /etc/skel/.xim
+  fi
+ fi
+ 
  if [ "x$command" = "xcustom" ] ; then
    if [ -x "$HOME/.xsession" ]; then
      command="$HOME/.xsession"
diff -cr gdm-2.4.4.7/configure gdm-2.4.4.7-sun/configure
*** gdm-2.4.4.7/configure	2003-12-31 19:10:05.000000000 +0100
--- gdm-2.4.4.7-sun/configure	2005-04-09 00:41:26.000000000 +0200
***************
*** 25395,25401 ****
  #  DEBIAN_DATESTAMP=`head -1 debian/changelog| sed -e 's/.*cvs.//' -e 's/).*//'`
  #  DEBIAN_DATE=`grep '^ --' debian/changelog | head -1 | sed -e 's/.*  //'`
  #else
! #  DEBIAN_DATESTAMP=`date +%Y%m%d%H%M%s`
  #  DEBIAN_DATE=`date -R`
  #fi
  #
--- 25395,25401 ----
  #  DEBIAN_DATESTAMP=`head -1 debian/changelog| sed -e 's/.*cvs.//' -e 's/).*//'`
  #  DEBIAN_DATE=`grep '^ --' debian/changelog | head -1 | sed -e 's/.*  //'`
  #else
! #  DEBIAN_DATESTAMP=`date +m%d04/08/05M%s`
  #  DEBIAN_DATE=`date -R`
  #fi
  #
diff -cr gdm-2.4.4.7/configure.in gdm-2.4.4.7-sun/configure.in
*** gdm-2.4.4.7/configure.in	2003-12-31 19:09:09.000000000 +0100
--- gdm-2.4.4.7-sun/configure.in	2005-04-09 00:41:26.000000000 +0200
***************
*** 583,589 ****
  #  DEBIAN_DATESTAMP=`head -1 debian/changelog| sed -e 's/.*cvs.//' -e 's/).*//'`
  #  DEBIAN_DATE=`grep '^ --' debian/changelog | head -1 | sed -e 's/.*  //'`
  #else
! #  DEBIAN_DATESTAMP=`date +%Y%m%d%H%M%s`
  #  DEBIAN_DATE=`date -R`
  #fi
  #
--- 583,589 ----
  #  DEBIAN_DATESTAMP=`head -1 debian/changelog| sed -e 's/.*cvs.//' -e 's/).*//'`
  #  DEBIAN_DATE=`grep '^ --' debian/changelog | head -1 | sed -e 's/.*  //'`
  #else
! #  DEBIAN_DATESTAMP=`date +m%d04/08/05M%s`
  #  DEBIAN_DATE=`date -R`
  #fi
  #
diff -cr gdm-2.4.4.7/daemon/display.c gdm-2.4.4.7-sun/daemon/display.c
*** gdm-2.4.4.7/daemon/display.c	2003-12-11 00:29:21.000000000 +0100
--- gdm-2.4.4.7-sun/daemon/display.c	2005-04-09 00:41:05.000000000 +0200
***************
*** 48,53 ****
--- 48,54 ----
  extern GdmConnection *fifoconn;
  extern GdmConnection *pipeconn;
  extern GdmConnection *unixconn;
+ extern GdmConnection *dynamicconn;
  extern int slave_fifo_pipe_fd; /* the slavepipe (like fifo) connection, this is the write end */
  
  static gboolean
***************
*** 218,224 ****
--- 219,242 ----
  		    d->servpid = 0;
  	    }
      }
+     gdm_server_whack_lockfile (d);
      d->slavepid = 0;
+ 
+     if (d->socket_conn != NULL) {
+ 	    GdmConnection *conn = d->socket_conn;
+ 	    d->socket_conn = NULL;
+ 	    gdm_connection_set_close_notify (conn, NULL, NULL);
+     }
+ 
+     if (d->slave_notify_fd >= 0) {
+ 	    IGNORE_EINTR (close (d->slave_notify_fd));
+ 	    d->slave_notify_fd = -1;
+     }
+ 
+     if (d->master_notify_fd >= 0) {
+ 	    IGNORE_EINTR (close (d->master_notify_fd));
+ 	    d->master_notify_fd = -1;
+     }
  }
  
  /**
***************
*** 285,290 ****
--- 303,311 ----
  	pipeconn = NULL;
  	gdm_connection_close (unixconn);
  	unixconn = NULL;
+ 	if (dynamicconn)
+ 		gdm_connection_close (dynamicconn);
+ 	dynamicconn = NULL;
  
  	closelog ();
  
***************
*** 367,373 ****
      whack_old_slave (d);
      
      d->dispstat = DISPLAY_DEAD;
!     if (d->type != TYPE_LOCAL)
  	gdm_display_dispose (d);
  
      gdm_debug ("gdm_display_unmanage: Display stopped");
--- 388,394 ----
      whack_old_slave (d);
      
      d->dispstat = DISPLAY_DEAD;
!     if (d->type != TYPE_LOCAL || d->removeconf)
  	gdm_display_dispose (d);
  
      gdm_debug ("gdm_display_unmanage: Display stopped");
diff -cr gdm-2.4.4.7/daemon/gdm.c gdm-2.4.4.7-sun/daemon/gdm.c
*** gdm-2.4.4.7/daemon/gdm.c	2003-12-20 01:30:35.000000000 +0100
--- gdm-2.4.4.7-sun/daemon/gdm.c	2005-04-09 00:41:04.000000000 +0200
***************
*** 59,64 ****
--- 59,68 ----
  #include "cookie.h"
  #include "filecheck.h"
  
+ #define DYNAMIC_ADD	0
+ #define DYNAMIC_RELEASE	1
+ #define DYNAMIC_REMOVE	2
+ 
  /* Local functions */
  static void gdm_config_parse (void);
  static void gdm_handle_message (GdmConnection *conn,
***************
*** 67,72 ****
--- 71,79 ----
  static void gdm_handle_user_message (GdmConnection *conn,
  				     const char *msg,
  				     gpointer data);
+ static void gdm_handle_dynamic_message (GdmConnection *conn,
+ 					const char *msg,
+ 					gpointer data);
  static void gdm_daemonify (void);
  static void gdm_safe_restart (void);
  static void gdm_restart_now (void);
***************
*** 95,100 ****
--- 102,108 ----
  GdmConnection *fifoconn = NULL; /* Fifo connection */
  GdmConnection *pipeconn = NULL; /* slavepipe (handled just like Fifo for compatibility) connection */
  GdmConnection *unixconn = NULL; /* UNIX Socket connection */
+ GdmConnection *dynamicconn = NULL; /* dynamic server unix Socket connection */
  int slave_fifo_pipe_fd = -1; /* the slavepipe connection */
  
  char *gdm_charset = NULL;
***************
*** 181,190 ****
--- 189,200 ----
  gint GdmTimedLoginDelay = 0;
  gchar *GdmStandardXServer = NULL;
  gint  GdmFlexibleXServers = 5;
+ gboolean GdmSockDynamicXServers = FALSE;
  gchar *GdmXnest = NULL;
  int GdmFirstVT = 7;
  gboolean GdmVTAllocation = TRUE;
  gboolean GdmDisallowTCP = TRUE;
+ gboolean GdmDisallowSupport = TRUE;
  
  
  /* set in the main function */
***************
*** 197,202 ****
--- 207,232 ----
  
  static GMainLoop *main_loop = NULL;
  
+ /*
+  * lookup display number if the display number is
+  * exists then clear the remove flag and return TRUE
+  * otherwise return FALSE
+  */
+ static gboolean
+ mark_display_exists (int num)
+ {
+ 	GSList *li;
+ 
+ 	for (li = displays; li != NULL; li = li->next) {
+ 		GdmDisplay *disp = li->data;
+ 		if (disp->dispnum == num) {
+ 			disp->removeconf = FALSE;
+ 			return TRUE;
+ 		}
+ 	}
+ 	return FALSE;
+ }
+ 
  static gboolean
  display_exists (int num)
  {
***************
*** 395,400 ****
--- 425,431 ----
  		    GdmStandardXServer = g_strdup ("/usr/bin/X11/X");
  	    }
      }
+     GdmSockDynamicXServers = ve_config_get_bool (cfg, GDM_KEY_SOCK_DYNAMIC_XSERVERS);
      GdmFlexibleXServers = ve_config_get_int (cfg, GDM_KEY_FLEXIBLE_XSERVERS);    
      GdmXnest = ve_config_get_string (cfg, GDM_KEY_XNEST);    
      if (ve_string_empty (GdmXnest))
***************
*** 403,408 ****
--- 434,440 ----
      GdmFirstVT = ve_config_get_int (cfg, GDM_KEY_FIRSTVT);    
      GdmVTAllocation = ve_config_get_bool (cfg, GDM_KEY_VTALLOCATION);    
      GdmDisallowTCP = ve_config_get_bool (cfg, GDM_KEY_DISALLOWTCP);    
+     GdmDisallowSupport = ve_config_get_bool (cfg, GDM_KEY_DISALLOW_SUPPORT);
  
      GdmDebug = ve_config_get_bool (cfg, GDM_KEY_DEBUG);
  
***************
*** 551,557 ****
      }
      ve_config_free_list_of_strings (list);
  
!     if G_UNLIKELY (displays == NULL && ! GdmXdmcp) {
  	    char *server = NULL;
  
  	    /* if we requested no local servers (there is no console),
--- 583,590 ----
      }
      ve_config_free_list_of_strings (list);
  
!     if G_UNLIKELY ((displays == NULL) && (! GdmXdmcp) &&
!        (!GdmSockDynamicXServers)) {
  	    char *server = NULL;
  
  	    /* if we requested no local servers (there is no console),
***************
*** 605,610 ****
--- 638,646 ----
      if (displays == NULL)
  	    no_console = TRUE;
  
+     if (GdmSockDynamicXServers)
+ 	    no_console = TRUE;
+ 
      /* Lookup user and groupid for the gdm user */
      pwent = getpwnam (GdmUser);
  
***************
*** 1005,1010 ****
--- 1041,1052 ----
  		unixconn = NULL;
  	}
  
+ 	if (dynamicconn != NULL) {
+ 		gdm_connection_close (dynamicconn);
+ 		IGNORE_EINTR (unlink (GDM_DYN_SOCKET));
+ 		dynamicconn = NULL;
+ 	}
+ 
  	closelog();
  
  	if (GdmPidFile != NULL) {
***************
*** 1291,1296 ****
--- 1333,1339 ----
  	    if (d->servpid > 1)
  		    kill (d->servpid, SIGTERM);
  	    d->servpid = 0;
+ 	    gdm_server_whack_lockfile (d);
  
  	    /* race avoider */
  	    gdm_sleep_no_signal (1);
***************
*** 1310,1316 ****
      d->dispstat = DISPLAY_DEAD;
  
      if ( ! GdmSystemMenu &&
! 	(status == DISPLAY_REBOOT ||
  	 status == DISPLAY_SUSPEND ||
  	 status == DISPLAY_HALT)) {
  	    gdm_info (_("Reboot or Halt request when there is no system menu from display %s"), d->name);
--- 1353,1360 ----
      d->dispstat = DISPLAY_DEAD;
  
      if ( ! GdmSystemMenu &&
! 	(status == DISPLAY_RESTARTGDM ||
! 	 status == DISPLAY_REBOOT ||
  	 status == DISPLAY_SUSPEND ||
  	 status == DISPLAY_HALT)) {
  	    gdm_info (_("Reboot or Halt request when there is no system menu from display %s"), d->name);
***************
*** 1696,1702 ****
  	}
  
  
! 	unixconn = gdm_connection_open_unix (GDM_SUP_SOCKET, 0666);
  
  	if G_LIKELY (unixconn != NULL) {
  		gdm_connection_set_handler (unixconn,
--- 1740,1750 ----
  	}
  
  
! 	if (GdmDisallowSupport) {
! 		unixconn = NULL;
! 	} else {
! 		unixconn = gdm_connection_open_unix (GDM_SUP_SOCKET, 0666);
! 	}
  
  	if G_LIKELY (unixconn != NULL) {
  		gdm_connection_set_handler (unixconn,
***************
*** 1708,1713 ****
--- 1756,1774 ----
  						 &unixconn,
  						 close_notify);
  	}
+ 
+ 	dynamicconn = gdm_connection_open_unix (GDM_DYN_SOCKET, 0600);
+ 
+ 	if G_LIKELY (dynamicconn != NULL) {
+ 		gdm_connection_set_handler (dynamicconn,
+ 					    gdm_handle_dynamic_message,
+ 					    NULL /* data */,
+ 					    NULL /* destroy_notify */);
+ 		gdm_connection_set_nonblock (dynamicconn, TRUE);
+ 		gdm_connection_set_close_notify (dynamicconn,
+ 						 &dynamicconn,
+ 						 close_notify);
+ 	}
  }
  
  struct poptOption options [] = {
***************
*** 2026,2031 ****
--- 2087,2093 ----
  #ifdef SIGLOST
      gdm_signal_ignore (SIGLOST);
  #endif
+     gdm_signal_ignore (SIGPIPE);
  
      gdm_debug ("gdm_main: Here we go...");
  
***************
*** 2955,2960 ****
--- 3017,3124 ----
  	/* Now we wait for the server to start up (or not) */
  }
  
+ static void
+ handle_dynamic_server (GdmConnection *conn, int type, char *key)
+ {
+ 	GdmDisplay *disp;
+ 	int disp_num;
+ 	char *full;
+ 	char *val;
+ 
+ 	if (!(GdmSockDynamicXServers)) {
+ 		gdm_connection_write (conn, "ERROR 200 Dynamic X servers not allowed\n");
+ 	}
+ 
+ 	if ((key == NULL) || (!(isdigit (*key)))) {
+ 		gdm_connection_write (conn, "ERROR 1 Bad display number\n");
+ 		return;
+ 	}
+ 	disp_num = atoi (key);
+ 
+ 	if (type == DYNAMIC_ADD) {
+ 	    /* prime an X server for launching */
+ 
+ 	    if (mark_display_exists (disp_num)) {
+ 		/* need to skip starting this one again */
+ 		gdm_connection_write (conn, "ERROR 2 Existing display\n");
+ 
+ 		return;
+ 	    }
+ 
+ 	    if (disp_num != atoi (key)) {
+ 		gdm_connection_write (conn, "ERROR 1 Bad display number\n");
+ 	    	return;
+ 	    }
+ 
+ 	    full = strchr(key, '=');
+ 	    if (full == NULL || *(full+1) == 0) {
+ 		gdm_connection_write (conn, "ERROR 3 No server string\n");
+ 		return;
+ 	    }
+ 
+ 	    val = full+1;
+ 	    disp = gdm_server_alloc (disp_num, val);
+ 
+ 	    if (disp == NULL) {
+ 		gdm_connection_write (conn, "ERROR 4 Display startup fail\n");
+ 		return;
+ 	    }
+ 	    displays = g_slist_insert_sorted (displays,
+ 					      disp,
+ 					      compare_displays);
+ 
+ 	   disp->dispstat = DISPLAY_CONFIG;
+ 
+ 	    disp->removeconf = FALSE;
+ 
+ 	    if (disp_num > high_display_num)
+ 		    high_display_num = disp_num;
+ 	    gdm_connection_write (conn, "OK\n");
+ 	    return;
+ 	}
+ 
+ 	if (type == DYNAMIC_REMOVE) {
+ 	    GSList *li;
+ 	    GSList *nli;
+ 	    /* shutdown a dynamic X server */
+ 
+ 	    for (li = displays; li != NULL; li = nli) {
+ 		disp = li->data;
+ 		nli = li->next;
+ 		if (disp->dispnum == disp_num) {
+ 			disp->removeconf = TRUE;
+ 			gdm_display_unmanage (disp);
+ 	    		gdm_connection_write (conn, "OK\n");
+ 			return;
+ 		}
+ 	    }
+ 
+ 	    gdm_connection_write (conn, "ERROR 1 Bad display number\n");
+ 	    return;
+ 	}
+ 
+ 	if (type == DYNAMIC_RELEASE) {
+ 	    /* cause the newly configured X servers to actually run */
+ 	    GSList *li;
+ 	    GSList *nli;
+ 
+ 	    for (li = displays; li != NULL; li = nli) {
+ 		GdmDisplay *disp = li->data;
+ 		nli = li->next;
+ 		if ((disp->dispnum == disp_num) &&
+ 		   (disp->dispstat == DISPLAY_CONFIG)) {
+ 		    disp->dispstat = DISPLAY_UNBORN;
+ 
+ 		    if ( ! gdm_display_manage (disp)) {
+ 		    	gdm_display_unmanage(disp);
+ 		    }
+ 		}
+ 	    }
+ 	    gdm_connection_write (conn, "OK\n");
+ 	    /* Now we wait for the server to start up (or not) */
+ 	    return;
+ 	}
+ }
  static gboolean
  is_key (const char *key1, const char *key2)
  {
***************
*** 3426,3429 ****
--- 3590,3683 ----
  	}
  }
  
+ static void
+ gdm_handle_dynamic_message (GdmConnection *conn, const char *msg, gpointer data)
+ {
+ 	gdm_debug ("Handling dynamic message: '%s'", msg);
+ 
+ 	if (gdm_connection_get_message_count (conn) > 20) {
+ 		gdm_connection_write (conn, "ERROR 200 Too many messages\n");
+ 		gdm_connection_close (conn);
+ 		return;
+ 	}
+ 
+ 	if (strncmp (msg, GDM_SUP_ADD_X_SERVER " ",
+ 		            strlen (GDM_SUP_ADD_X_SERVER " ")) == 0) {
+ 		char *key;
+ 
+ 		key = g_strdup (&msg[strlen (GDM_SUP_ADD_X_SERVER " ")]);
+ 		g_strstrip (key);
+ 
+ 		handle_dynamic_server(conn, DYNAMIC_ADD, key);
+ 
+ 		g_free(key);
+ 
+ 	} else if (strncmp (msg, GDM_SUP_REMOVE_X_SERVER " ",
+ 		            strlen (GDM_SUP_REMOVE_X_SERVER " ")) == 0) {
+ 		char *key;
+ 
+ 		key = g_strdup (&msg[strlen (GDM_SUP_REMOVE_X_SERVER " ")]);
+ 		g_strstrip (key);
+ 
+ 		handle_dynamic_server(conn, DYNAMIC_REMOVE, key);
+ 
+ 		g_free(key);
+ 
+ 	} else if (strncmp (msg, GDM_SUP_RELEASE_X_SERVERS " ",
+ 			strlen(GDM_SUP_RELEASE_X_SERVERS)) == 0) {
+ 
+ 		char *key;
+ 
+ 		key = g_strdup (&msg[strlen (GDM_SUP_RELEASE_X_SERVERS " ")]);
+ 		g_strstrip (key);
+ 
+ 		handle_dynamic_server(conn, DYNAMIC_RELEASE, key);
+ 
+ 		g_free(key);
+ 
+ 	} else if (strcmp (msg, GDM_SUP_LIST_DISPLAYS) == 0) {
+ 		GSList *li;
+ 		gdm_connection_write (conn, "OK");
+ 		for (li = displays; li != NULL; li = li->next) {
+ 			GdmDisplay *disp = li->data;
+ 			gdm_connection_printf (conn, "%d ", disp->dispnum);
+ 		}
+ 		gdm_connection_write (conn, "\n");
+ 		gdm_connection_close (conn);
+ 	} else if (strncmp (msg, GDM_SUP_DISPLAY_QUERY,
+ 			strlen(GDM_SUP_DISPLAY_QUERY)) == 0) {
+ 		GSList *li;
+ 		char *key;
+ 		int n;
+ 		int found = 0;
+ 
+ 		key = g_strdup (&msg[strlen (GDM_SUP_DISPLAY_QUERY " ")]);
+ 	    	if (!(isdigit (*key))) {
+ 			gdm_connection_write (conn, "ERROR 1 Bad display number\n");
+ 		} else {
+ 			n = atoi(key);
+ 			for (li = displays; li != NULL; li = li->next) {
+ 				GdmDisplay *disp = li->data;
+ 				if (disp->dispnum == n) {
+ 					gdm_connection_printf (conn, "OK %s %s\n",
+ 						ve_sure_string (disp->name),
+                                                ve_sure_string (disp->login));
+ 					found = 1;
+ 					break;
+ 				}
+ 			}
+ 			if (found == 0) {
+ 				gdm_connection_write (conn, "ERROR 1 display not found\n");
+ 			}
+ 		}
+ 	} else if (strcmp (msg, GDM_SUP_VERSION) == 0) {
+ 		gdm_connection_write (conn, "GDM " VERSION "\n");
+ 	} else if (strcmp (msg, GDM_SUP_CLOSE) == 0) {
+ 		gdm_connection_close (conn);
+ 	} else {
+ 		gdm_connection_write (conn, "ERROR 0 Not implemented\n");
+ 		gdm_connection_close (conn);
+ 	}
+ }
+ 
  /* EOF */
diff -cr gdm-2.4.4.7/daemon/gdm.h gdm-2.4.4.7-sun/daemon/gdm.h
*** gdm-2.4.4.7/daemon/gdm.h	2003-10-16 18:58:19.000000000 +0200
--- gdm-2.4.4.7-sun/daemon/gdm.h	2005-04-09 00:41:05.000000000 +0200
***************
*** 71,77 ****
  	DISPLAY_ALIVE /* Yay! we're alive (non-xdmcp) */,
  	XDMCP_PENDING /* Pending XDMCP display */,
  	XDMCP_MANAGED /* Managed XDMCP display */,
! 	DISPLAY_DEAD /* Left for dead */
  };
  
  /* Opcodes for the highly sophisticated protocol used for
--- 71,78 ----
  	DISPLAY_ALIVE /* Yay! we're alive (non-xdmcp) */,
  	XDMCP_PENDING /* Pending XDMCP display */,
  	XDMCP_MANAGED /* Managed XDMCP display */,
! 	DISPLAY_DEAD /* Left for dead */,
! 	DISPLAY_CONFIG /* in process of being configured */
  };
  
  /* Opcodes for the highly sophisticated protocol used for
***************
*** 131,137 ****
  #define GDM_KEY_ADD_GTK_MODULES "daemon/AddGtkModules=false"
  #define GDM_KEY_GTK_MODULES_LIST "daemon/GtkModulesList="
  #define GDM_KEY_GROUP "daemon/Group=gdm"
! #define GDM_KEY_HALT "daemon/HaltCommand=/usr/bin/poweroff;/sbin/poweroff;/sbin/shutdown -h now;/usr/sbin/shutdown -h now"
  #define GDM_KEY_INITDIR "daemon/DisplayInitDir=" EXPANDED_SYSCONFDIR "/gdm/Init"
  #define GDM_KEY_KILLIC "daemon/KillInitClients=true"
  #define GDM_KEY_LOGDIR "daemon/LogDir=" EXPANDED_LOGDIR
--- 132,138 ----
  #define GDM_KEY_ADD_GTK_MODULES "daemon/AddGtkModules=false"
  #define GDM_KEY_GTK_MODULES_LIST "daemon/GtkModulesList="
  #define GDM_KEY_GROUP "daemon/Group=gdm"
! #define GDM_KEY_HALT "daemon/HaltCommand="
  #define GDM_KEY_INITDIR "daemon/DisplayInitDir=" EXPANDED_SYSCONFDIR "/gdm/Init"
  #define GDM_KEY_KILLIC "daemon/KillInitClients=true"
  #define GDM_KEY_LOGDIR "daemon/LogDir=" EXPANDED_LOGDIR
***************
*** 141,148 ****
  #define GDM_KEY_PRESESS "daemon/PreSessionScriptDir=" EXPANDED_SYSCONFDIR "/gdm/PreSession/"
  #define GDM_KEY_POSTLOGIN "daemon/PostLoginScriptDir=" EXPANDED_SYSCONFDIR "/gdm/PreSession/"
  #define GDM_KEY_FAILSAFE_XSERVER "daemon/FailsafeXServer="
! #define GDM_KEY_XKEEPSCRASHING "daemon/XKeepsCrashing=" EXPANDED_SYSCONFDIR "/gdm/XKeepsCrashing"
! #define GDM_KEY_REBOOT "daemon/RebootCommand=/usr/bin/reboot;/sbin/reboot;/sbin/shutdown -r now;/usr/sbin/shutdown -r now"
  #define GDM_KEY_ROOTPATH "daemon/RootPath=/sbin:/usr/sbin:/bin:/usr/bin:" X_CONF_PATH ":" EXPANDED_BINDIR
  #define GDM_KEY_SERVAUTH "daemon/ServAuthDir=" EXPANDED_AUTHDIR
  #define GDM_KEY_SESSDIR "daemon/SessionDesktopDir=/etc/X11/sessions/:" EXPANDED_SYSCONFDIR "/dm/Sessions/:" EXPANDED_DATADIR "/xsessions/"
--- 142,149 ----
  #define GDM_KEY_PRESESS "daemon/PreSessionScriptDir=" EXPANDED_SYSCONFDIR "/gdm/PreSession/"
  #define GDM_KEY_POSTLOGIN "daemon/PostLoginScriptDir=" EXPANDED_SYSCONFDIR "/gdm/PreSession/"
  #define GDM_KEY_FAILSAFE_XSERVER "daemon/FailsafeXServer="
! #define GDM_KEY_XKEEPSCRASHING "daemon/XKeepsCrashing=/bin/true"
! #define GDM_KEY_REBOOT "daemon/RebootCommand="
  #define GDM_KEY_ROOTPATH "daemon/RootPath=/sbin:/usr/sbin:/bin:/usr/bin:" X_CONF_PATH ":" EXPANDED_BINDIR
  #define GDM_KEY_SERVAUTH "daemon/ServAuthDir=" EXPANDED_AUTHDIR
  #define GDM_KEY_SESSDIR "daemon/SessionDesktopDir=/etc/X11/sessions/:" EXPANDED_SYSCONFDIR "/dm/Sessions/:" EXPANDED_DATADIR "/xsessions/"
***************
*** 166,171 ****
--- 167,174 ----
  
  #define GDM_KEY_STANDARD_XSERVER "daemon/StandardXServer=" X_SERVER
  #define GDM_KEY_FLEXIBLE_XSERVERS "daemon/FlexibleXServers=5"
+ #define GDM_KEY_DYNAMIC_XSERVERS "daemon/DynamicXServers=false"
+ #define GDM_KEY_SOCK_DYNAMIC_XSERVERS "daemon/SockDynamicXServers=false"
  #define GDM_KEY_XNEST "daemon/Xnest=" X_SERVER_PATH "/Xnest -name Xnest"
  /* Keys for automatic VT allocation rather then letting it up to the
   * X server */
***************
*** 191,196 ****
--- 194,200 ----
  #define GDM_KEY_RELAXPERM "security/RelaxPermissions=0"
  #define GDM_KEY_RETRYDELAY "security/RetryDelay=3"
  #define GDM_KEY_DISALLOWTCP "security/DisallowTCP=true"
+ #define GDM_KEY_DISALLOW_SUPPORT "security/DisallowSupport=true"
  
  #define GDM_KEY_NEVERPLACECOOKIESONNFS "security/NeverPlaceCookiesOnNFS=true"
  
***************
*** 218,224 ****
  #define GDM_KEY_LOCFILE "greeter/LocaleFile=" EXPANDED_LOCALEDIR "/locale.alias"
  #define GDM_KEY_LOGO "greeter/Logo=" EXPANDED_PIXMAPDIR "/gdm-foot-logo.png"
  #define GDM_KEY_QUIVER "greeter/Quiver=true"
! #define GDM_KEY_SYSMENU "greeter/SystemMenu=true"
  #define GDM_KEY_CONFIGURATOR "daemon/Configurator=" EXPANDED_GDMCONFIGDIR "/gdmsetup --disable-sound --disable-crash-dialog"
  #define GDM_KEY_CONFIG_AVAILABLE "greeter/ConfigAvailable=true"
  #define GDM_KEY_CHOOSER_BUTTON "greeter/ChooserButton=true"
--- 222,228 ----
  #define GDM_KEY_LOCFILE "greeter/LocaleFile=" EXPANDED_LOCALEDIR "/locale.alias"
  #define GDM_KEY_LOGO "greeter/Logo=" EXPANDED_PIXMAPDIR "/gdm-foot-logo.png"
  #define GDM_KEY_QUIVER "greeter/Quiver=true"
! #define GDM_KEY_SYSMENU "greeter/SystemMenu=false"
  #define GDM_KEY_CONFIGURATOR "daemon/Configurator=" EXPANDED_GDMCONFIGDIR "/gdmsetup --disable-sound --disable-crash-dialog"
  #define GDM_KEY_CONFIG_AVAILABLE "greeter/ConfigAvailable=true"
  #define GDM_KEY_CHOOSER_BUTTON "greeter/ChooserButton=true"
***************
*** 308,313 ****
--- 312,318 ----
  
      guint8 dispstat;
      guint16 dispnum;
+     gboolean removeconf;
      guint8 servstat;
      time_t starttime;
      time_t managetime;
***************
*** 521,526 ****
--- 526,533 ----
  
  #define GDM_SUP_SOCKET "/tmp/.gdm_socket"
  
+ #define GDM_DYN_SOCKET "/tmp/.gdm_dynamic_socket"
+ 
  /*
   * The user socket protocol.  Each command is given on a separate line
   *
***************
*** 709,714 ****
--- 716,780 ----
   * Supported since: 2.2.4.0
   */
  
+ #define GDM_SUP_ADD_X_SERVER	"ADD_X_SERVER" 
+ /*
+  * ADD_X_SERVER: add a dynamic X server configuration
+  * Arguments:  <display to run on>=<server command line>
+  * configures a dynamic X server to run on the specified display
+  * leaving it in DISPLAY_CONFIG state.
+  * Answers:
+  *  OK
+  *  ERROR
+  *     0 = Not implemented
+  *     999 = Unknown error
+  */
+ #define GDM_SUP_REMOVE_X_SERVER	"REMOVE_X_SERVER" 
+ /*
+  * REMOVE_X_SERVER: remove a dynamic X server 
+  * Arguments:  <display to remove>
+  * removes a dynamic X display, killing the server and purging
+  * the server configuration
+  * Answers:
+  *  OK
+  *  ERROR
+  *     0 = Not implemented
+  *     999 = Unknown error
+  */
+ #define GDM_SUP_RELEASE_X_SERVERS	"RELEASE_X_SERVERS"
+ /*
+  * RELEASE_SERVERS: release dynamic X servers currently in PAUSED state
+  * Arguments: None
+  * Answers:
+  *  OK
+  *  ERROR
+  *     0 = Not implemented
+  *     999 = Unknown error
+  */
+ #define GDM_SUP_LIST_DISPLAYS  "LIST_DISPLAYS" /* None */
+ /* LIST_DISPLAYS: List all displays
+  * Can for example be useful to figure out if the display you are on is managed
+  * by the gdm daemon, by seeing if it is in the list.  
+  * Arguments:  None
+  * Answers:
+  *   OK <display> <display>;...
+  *
+  *   ERROR <err number> <english error description>
+  *      0 = Not implemented
+  *      200 = Too many messages
+  *      999 = Unknown error
+  */
+ #define GDM_SUP_DISPLAY_QUERY  "DISPLAY_QUERY" /* None */
+ /* DISPLAY_QUERY: query display configuration
+  * Arguments:  display_number
+  * Answers:
+  *   OK <display> ......
+  *
+  *   ERROR <err number> <english error description>
+  *      0 = Not implemented
+  *      200 = Too many messages
+  *      999 = Unknown error
+  */
+ 
  /* User flags for the SUP protocol */
  enum {
  	GDM_SUP_FLAG_AUTHENTICATED = 0x1 /* authenticated as a local user,
diff -cr gdm-2.4.4.7/daemon/server.c gdm-2.4.4.7-sun/daemon/server.c
*** gdm-2.4.4.7/daemon/server.c	2003-08-25 23:05:31.000000000 +0200
--- gdm-2.4.4.7-sun/daemon/server.c	2005-04-09 00:41:05.000000000 +0200
***************
*** 48,54 ****
  #include "slave.h"
  #include "getvt.h"
  
! #define SERVER_WAIT_ALARM 10
  
  
  /* Local prototypes */
--- 48,54 ----
  #include "slave.h"
  #include "getvt.h"
  
! #define SERVER_WAIT_ALARM 100
  
  
  /* Local prototypes */
***************
*** 536,542 ****
  		     * just wait a few seconds and hope things just work,
  		     * fortunately there is no such case yet and probably
  		     * never will, but just for code anality's sake */
! 		    gdm_sleep_no_signal (5);
  	    } else if (d->server_uid != 0) {
  		    int i;
  
--- 536,542 ----
  		     * just wait a few seconds and hope things just work,
  		     * fortunately there is no such case yet and probably
  		     * never will, but just for code anality's sake */
! 		    gdm_sleep_no_signal (10);
  	    } else if (d->server_uid != 0) {
  		    int i;
  
diff -cr gdm-2.4.4.7/daemon/slave.c gdm-2.4.4.7-sun/daemon/slave.c
*** gdm-2.4.4.7/daemon/slave.c	2003-10-16 18:58:19.000000000 +0200
--- gdm-2.4.4.7-sun/daemon/slave.c	2005-04-09 00:41:05.000000000 +0200
***************
*** 2725,2731 ****
  	     wait_for_ack &&
  	     ! gdm_got_ack &&
  	     parent_exists () &&
! 	     i < 10;
  	     i++) {
  		if (in_usr2_signal > 0) {
  			fd_set rfds;
--- 2725,2731 ----
  	     wait_for_ack &&
  	     ! gdm_got_ack &&
  	     parent_exists () &&
! 	     i < 60;
  	     i++) {
  		if (in_usr2_signal > 0) {
  			fd_set rfds;
Seulement dans gdm-2.4.4.7-sun: gdmsetup-pam.suse
Seulement dans gdm-2.4.4.7-sun/gui: gdmdynamic.c
Seulement dans gdm-2.4.4.7-sun/gui: gdmdynamic.h
Seulement dans gdm-2.4.4.7/gui: gdmflexiserver.desktop
Seulement dans gdm-2.4.4.7/gui: gdmflexiserver-xnest.desktop
Seulement dans gdm-2.4.4.7/gui: gdmphotosetup.desktop
Seulement dans gdm-2.4.4.7/gui: gdmsetup.desktop
Seulement dans gdm-2.4.4.7/gui/greeter/themes/circles: circles.xml
Seulement dans gdm-2.4.4.7/gui/greeter/themes/circles: GdmGreeterTheme.desktop
Seulement dans gdm-2.4.4.7/gui/greeter/themes/happygnome: GdmGreeterTheme.desktop
Seulement dans gdm-2.4.4.7/gui/greeter/themes/happygnome: happygnome.xml
Seulement dans gdm-2.4.4.7/gui/greeter/themes/happygnome-list: GdmGreeterTheme.desktop
Seulement dans gdm-2.4.4.7/gui/greeter/themes/happygnome-list: happygnome.xml
diff -cr gdm-2.4.4.7/gui/Makefile.in gdm-2.4.4.7-sun/gui/Makefile.in
*** gdm-2.4.4.7/gui/Makefile.in	2003-12-31 19:31:42.000000000 +0100
--- gdm-2.4.4.7-sun/gui/Makefile.in	2005-04-09 00:41:18.000000000 +0200
***************
*** 180,186 ****
  
  noinst_LIBRARIES = libgdmwm.a libgdmlang.a
  
! bin_PROGRAMS =  	@GDMCHOOSER@ 			gdmlogin 			gdmsetup 			gdmphotosetup 			@GDMXNESTCHOOSER@		gdmflexiserver
  
  EXTRA_PROGRAMS = gdmchooser gdmXnestchooser
  
--- 180,186 ----
  
  noinst_LIBRARIES = libgdmwm.a libgdmlang.a
  
! bin_PROGRAMS =  	@GDMCHOOSER@ 			gdmlogin 			gdmsetup 			gdmphotosetup 			@GDMXNESTCHOOSER@		gdmflexiserver gdmdynamic
  
  EXTRA_PROGRAMS = gdmchooser gdmXnestchooser
  
***************
*** 192,197 ****
--- 192,198 ----
  
  gdmflexiserver_SOURCES =  	gdmflexiserver.c		gdmcomm.c			gdmcomm.h
  
+ gdmdynamic_SOURCES =  	gdmdynamic.c		gdmdynamic.h
  
  libgdmwm_a_SOURCES =  	gdmwm.c				gdmwm.h
  
***************
*** 227,232 ****
--- 228,234 ----
  
  gdmflexiserver_LDADD =  	$(GUI_LIBS)			-lXau				$(INTLLIBS)			-L$(top_builddir)/vicious-extensions		-lviciousui-gnome
  
+ gdmdynamic_LDADD =  	$(GUI_LIBS)			-lXau				$(INTLLIBS)			-L$(top_builddir)/vicious-extensions		-lviciousui-gnome
  
  Settingsdir = $(datadir)/gnome/capplets
  Settings_in_files = gdmphotosetup.desktop.in
***************
*** 262,268 ****
  libgdmlang_a_LIBADD = 
  libgdmlang_a_OBJECTS =  gdmlanguages.$(OBJEXT)
  bin_PROGRAMS =  @GDMCHOOSER@ gdmlogin$(EXEEXT) gdmsetup$(EXEEXT) \
! gdmphotosetup$(EXEEXT) @GDMXNESTCHOOSER@ gdmflexiserver$(EXEEXT)
  PROGRAMS =  $(bin_PROGRAMS)
  
  gdmchooser_OBJECTS =  gdmchooser.$(OBJEXT) misc.$(OBJEXT)
--- 264,270 ----
  libgdmlang_a_LIBADD = 
  libgdmlang_a_OBJECTS =  gdmlanguages.$(OBJEXT)
  bin_PROGRAMS =  @GDMCHOOSER@ gdmlogin$(EXEEXT) gdmsetup$(EXEEXT) \
! gdmphotosetup$(EXEEXT) @GDMXNESTCHOOSER@ gdmflexiserver$(EXEEXT) gdmdynamic$(EXEEXT)
  PROGRAMS =  $(bin_PROGRAMS)
  
  gdmchooser_OBJECTS =  gdmchooser.$(OBJEXT) misc.$(OBJEXT)
***************
*** 281,286 ****
--- 283,291 ----
  gdmflexiserver_OBJECTS =  gdmflexiserver.$(OBJEXT) gdmcomm.$(OBJEXT)
  gdmflexiserver_DEPENDENCIES = 
  gdmflexiserver_LDFLAGS = 
+ gdmdynamic_OBJECTS =  gdmdynamic.$(OBJEXT)
+ gdmdynamic_DEPENDENCIES = 
+ gdmdynamic_LDFLAGS = 
  COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
  LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
  CCLD = $(CC)
***************
*** 294,301 ****
  
  TAR = gtar
  GZIP_ENV = --best
! SOURCES = $(libgdmwm_a_SOURCES) $(libgdmlang_a_SOURCES) $(gdmchooser_SOURCES) $(gdmXnestchooser_SOURCES) $(gdmlogin_SOURCES) $(gdmsetup_SOURCES) $(gdmphotosetup_SOURCES) $(gdmflexiserver_SOURCES)
! OBJECTS = $(libgdmwm_a_OBJECTS) $(libgdmlang_a_OBJECTS) $(gdmchooser_OBJECTS) $(gdmXnestchooser_OBJECTS) $(gdmlogin_OBJECTS) $(gdmsetup_OBJECTS) $(gdmphotosetup_OBJECTS) $(gdmflexiserver_OBJECTS)
  
  all: all-redirect
  .SUFFIXES:
--- 299,306 ----
  
  TAR = gtar
  GZIP_ENV = --best
! SOURCES = $(libgdmwm_a_SOURCES) $(libgdmlang_a_SOURCES) $(gdmchooser_SOURCES) $(gdmXnestchooser_SOURCES) $(gdmlogin_SOURCES) $(gdmsetup_SOURCES) $(gdmphotosetup_SOURCES) $(gdmflexiserver_SOURCES) $(gdmdynamic_SOURCES)
! OBJECTS = $(libgdmwm_a_OBJECTS) $(libgdmlang_a_OBJECTS) $(gdmchooser_OBJECTS) $(gdmXnestchooser_OBJECTS) $(gdmlogin_OBJECTS) $(gdmsetup_OBJECTS) $(gdmphotosetup_OBJECTS) $(gdmflexiserver_OBJECTS) $(gdmdynamic_OBJECTS)
  
  all: all-redirect
  .SUFFIXES:
***************
*** 420,425 ****
--- 425,434 ----
  	@rm -f gdmflexiserver$(EXEEXT)
  	$(LINK) $(gdmflexiserver_LDFLAGS) $(gdmflexiserver_OBJECTS) $(gdmflexiserver_LDADD) $(LIBS)
  
+ gdmdynamic$(EXEEXT): $(gdmdynamic_OBJECTS) $(gdmdynamic_DEPENDENCIES)
+ 	@rm -f gdmdynamic$(EXEEXT)
+ 	$(LINK) $(gdmdynamic_LDFLAGS) $(gdmdynamic_OBJECTS) $(gdmdynamic_LDADD) $(LIBS)
+ 
  install-GladeDATA: $(Glade_DATA)
  	@$(NORMAL_INSTALL)
  	$(mkinstalldirs) $(DESTDIR)$(Gladedir)
