2006-02-13 Brian Cameron * Release 2.13.0.8: * NEWS: Updated. * configure.ac: Update to 2.13.0.8 and use EXPANDED_DATADIR instead of %{datadir} since that makes it work much better. * README.install, README, docs/C/gdm.xml: Update docs so that the change from --with-configdir to --with-defaults-conf and renaming of default and custom config file is documented. * daemon/gdm-net.c, daemon/gdmconfig.c, gui/gdmsetup.c: Update comments to no longer mention old name of config file. Fix gdmsetup to know new location of custom config file. * config/Makefile.am: Now if upgrading and gdm.conf and factory-gdm.conf are different, move the gdm.conf file to custom.conf instead of copy. This is because we don't want GDM to overwrite the custom.conf file every time user upgrades. Only first time, then gdm.conf should go away. 2006-02-13 Brian Cameron * acconfig.h, configure.ac, daemon/Makefile.am, daemon/gdmconfig.c, docs/C/gdm.xml: Change --with-configdir to --with-defaults-conf and make it work so that the gdm.conf and gdm.conf-custom file can be installed to different subdirectories. Fixes bug #330905. Patch provided by Ray Strode. 2006-02-13 Brian Cameron * config/Xsession.in: Fix calls to zenity so they work. Fixes bug #330892. * README, README.install, docs/C/gdm.xml: Last minute updates before string freeze. 2006-02-10 Brian Cameron * gui/greeter/greeter.c, gui/greeter/greeter_action_language.[ch], gui/greeter/greeter_canvas_item.c, gui/greeter/greeter_events.c, gui/greeter/greeter_session.c, gui/greeter/greeter_system.c: Fix problem with options button and F10 menu not working if the button is not in the theme. This only affects buttons that can be in the F10 button but may not be in the theme (language, system, session, halt, reboot, shutdown). Fixes bug #330343. 2006-02-10 Brian Cameron * README, docs/C/gdm.xml: Few more updates worth adding. 2006-02-10 Brian Cameron * gui/gdmflexiserver.c: Fix bug that was causing gdmflexiserver to fail. Because we were calling gtk-init when the --command option was being used, and this breaks gdmflexiserver since it is sometimes run with the --command option when there is no display. * README, README.install: Updated with some new features and moved some info to docs/C/gdm.xml where the info is more useful. * TODO: Updated. * configure.ac: Fixed the mess about /usr/opensolaris/bin * gui/greeter/greeter_system.c: Do not put tooltips on menus. They are a bad idea and their use is discouraged by the HIG because they break a11y. * docs/C/gdm.xml: Updated docs with a bunch of information from the README and README.install file that really belonged in the docs. 2006-02-09 Brian Cameron A known issue with gdmdynamic is that when a display connects to the server it generates the gdmdynamic "ADD" and "RELEASE" commands. On startup, hundreds of displays could send these commands at once and cause the server too be flooded with sockets requests. Hammering the socket like this caused me to find and fix a number of problems that improve socket reliability for general GDM use. I also enhanced gdmdynamic so it is more sensitive to the socket being busy and no longer overloads it, instead sleeping and retrying if necessary. This allows gdmdynamic to work if there are hundreds of displays instead of just a dozen or so. * daemon/gdm.[ch]: Added new "SERVER_BUSY" sockets command so that gdmdynamic can sleep before starting new slaves if the daemon is already busy. * daemon/gdm-net.[ch]: Bump up MAX_CONNECTIONS from 10 to 15. I notice that this improves performance significantly when hammering the daemon with connections. Added better comments for this logic and now debug logs when a subconnection is thrown away. New gdm_connection_is_server_busy function * daemon/display.c: Correct DYNAMIC_REMOVE so it works and fixes bug #326796. Before it wasn't really removing the displays. * gui/gdmdynamic.c: Quite a bit of work to make gdmdynamic avoid flooding the server with sockets requests. Now it sets sockets retries to 1 and manages sleeping and retries itself. * gui/gdmconfig.c: Added gdm_config_set_comm_retries so that slaves can specify how many retries they want the comm logic to use. * gui/gdmcomm.c: Now do_command returns NULL when it gets back "", which happens when a subconnection was dropped by the daemon. This lets the slave try the connection again. Now error messages are always logged, not just when debug is turned on. Added gdmcomm_did_connection_fail and gdmcomm_set_allow_sleep so gdmdynamic can control the behavior of how the connection works. * gui/gdmcommon.c, gui/gdmchooser.c, gui/gdmlogin.c, gui/greeter/greeter.c: Fix gdm_common_fail so it doesn't generate compile errors when building with GCC. Fixes bug #330480. * docs/C/gdm.xml: Cleaned up section that explains sockets commands so that they are in alphabetical order, added info about SERVER_BUSY and new gdmdynamic -s and -t options. * config/gdm.conf: Better description of how debug works, perhaps I just didn't like the word "spew". 2006-02-07 Brian Cameron * gui/gdmconfig.c: Return compiled in value if slave fails to get a value back from the daemon. * gui/gdmcomm.c:, gui/gdmconfig.c: Use gdm_common_error instead of gdm_common_info so message really go to log. * gui/gdmsession.c: Include needed gdmcommon.h. Missed this in my previous putback earlier today. 2006-02-07 Brian Cameron * gdm-restart.in, gdm-safe-restart.in, gdm-stop.in, gdm.spec.in: Now use gdmflexiserver to get the PidFile instead of grepping the config file directly since this is a safer/better way to get configuration date. 2006-02-07 Brian Cameron This patch resolves some performance issues that I noticed when testing GDM with the gdmdynamic command. I notice that waiting for the sockets to timeout made gdmdynamic slower so now all the clients load all the configuration data in one quick pass and close the socket. Since the gdm_config_get functions cache the data, the slaves will not go over the socket to get the data again unless asked to reread. Bump the maximum messages over the socket from 20 to 80 because gdmlogin pulls about 65 configuration parms over and this allows all data to be accessed in one connection (and gives a little room for growth). Improved the way GDM slaves deal with syslog so all slaves use the same interfaces. Added three missing keys to the daemon configuration handling code. * daemon/gdmconfig.c: Add three keys that were missing for background program support. * gui/gdmcomm.[ch]: Now if there is a failure connecting to the daemon, the slave will sleep 1 second before retry (normally retries 5 times). If all retries fail, it will not try sleeping on subsequent calls to the daemon. This greatly improves performance when the daemon is flooded with slave requests. In normal usage, this will likely not happen, but it is good for GDM to not fail so easily. Added better debug. Added gdm_comm_close function so that slaves can ask to close the socket when done reading config. Now uses common syslog functions. * daemon/gdm.h: Add better comments, rename GDM_SUP_MAX_CONNECTIONS to GDM_SUP_MAX_MESSAGES which is more accurate, and bump the max number to 80. * gui/gdmcommon.h, gui/gdmwm.h, gui/gdmsession.h: Added common syslog functions to gdmcommon.h and moved some functions that were in gdmcommon.h to gdmwm.h and gdmsession.h since the implementations were in those c-files. Renamed functions to make naming consistant. * gui/gdmXnestchooser, gui/gdmchooser.c, gui/gdmcommon.c, gui/gdmconfig.c, gui/gdmdynamic.c, gui/gdmflexiserver.c, gui/gdmlogin.c, gui/gdmphotosetup.c, gui/gdmsession.c, gui/gdmwm.c, gui/greeter/greeter.c, gui/greeter/greeter_item_ulist.c, gui/greeter/greeter_session.c, gui/greeter/greeter_system.c: Slaves close sockets connection when done reading config. Now slaves use common syslog functions. Naming changes to reflect renaming of functions in gdmcommon.h/gdmwm.h/gdmsession.h. Better debug. * daemon/auth.c, daemon/cookie.c, daemon/display.c, daemon/gdm.c, daemon/gdm-net.c, daemon/misc.c, daemon/slave.c, daemon/xdmcp.c, gui/gdmlanguages.c, gui/greeter/greeter_canvas_item.c, gui/gdmsetup.c, vicious-extensions/ve-config.c: Make spacing around "++" more consistant. Add better debug in some functions 2006-02-03 Brian Cameron * daemon/gdmconfig.c: Fix glib.h include so it compiles under LFS. Fixes bug #329801. 2006-02-02 Brian Cameron * docs/C/gdm.xml: Add comment to docs that +xkb is needed as an Xserver argument for the keyboard gestures to work. 2006-01-30 Brian Cameron * docs/C/gdm.xml: Change section name for "Security" to "security" so the generated html file has a more consistant name with the other html files.