Overview of changes in lightdm 1.24.1 * Fixes for VNC and XDMCP connections * Set names for XDMCP and VNC seats * Expose autologin-session as a hint to the greeter * Fix timed autologins not using autologin-session when no session specified Overview of changes in lightdm 1.24.0 * No changes from 1.22 Overview of changes in lightdm 1.22.0 * Allow guest sessions to talk to Mir (allowing unity8) Overview of changes in lightdm 1.21.5 * Fix logic that checked if a session was being stopped. This fixes a race condition that could cause logging into an existing session from a greeter to not return to that session. Overview of changes in lightdm 1.21.4 * Use power management functions from ConsoleKit2 if available. * Correctly pass return value from sessions to LightDM. * Retry VT_WAITACTIVE if we get EINTR. * Ignore SIGHUP by default. * Use SA_RESTART with SIGPIPE. * liblightdm-qt: Use liblightdm-gobject power methods instead of re-implementing in Qt. Overview of changes in lightdm 1.21.3 * Fix crashes introduced in 1.21.2 due to environment variable changes * Fix incorrect unref in XDMCP server code * Fix logging warning Overview of changes in lightdm 1.21.2 * Use SA_RESTART on signals so we don't get interrupted reads * Use logind to terminate greeter sessions if it is available * Load greeters from XDG_DATA_DIRS instead of compile time value * Allow D-Bus interface to be disabled * Always pass through LD_PRELOAD, LD_LIBRARY_PATH and PATH to sessions/display servers Overview of changes in lightdm 1.21.1 * Fix greeters crashing with unknown configuration keys (regression from 1.21.0) * Add an API verison to the greeter-daemon protocol for future enhancements * More regression tests Overview of changes in lightdm 1.21.0 * Add liblightdm functions for getting OS release information and the message of the day. * Warn if we find unknown keys in configuration. * Fix .profile errors not showing in .xsession-errors log. * Remove duplicate Qt property in liblightdm. * Fix and improve liblightdm API documentation. * Minor GIR annotation fixes. Overview of changes in lightdm 1.20.0 * Use stable version number (no other changes) Overview of changes in lightdm 1.19.5 * Fix errors in documentation generation * Improve documentation * Fix guest AppArmor profile to allow guest sessions more access to the upstart session socket * Fix small memory leak in liblightdm-gobject keyboard layout code Overview of changes in lightdm 1.19.4 * Fix various issues in new in-session greeter code * Fix user list memory management exposed by use of in-session greeters * Fix some spurious warnings in the log Overview of changes in lightdm 1.19.3 * Fix in-session greeters not working for greeter logins Overview of changes in lightdm 1.19.2 * Add support for greeters running inside sessions. This is enabled by setting X-LightDM-Allow-Greeter inside the session .desktop file. The session can then use liblightdm to connect one greeter to the daemon. The communication is done using a socket (/var/run/lightdm//greeter-socket) that is accessible to any process run by that user. Consider controlling access to this socket using a MAC system such as AppArmor. * Report errors for all liblightdm methods. This will require existing greeters to update their API usage. The ABI is unchanged. * Handle EAGAIN correctly when daemons communicate with the daemon. * Drop support for mir-container sessions - no-one ever used these. Overview of changes in lightdm 1.19.1 * Rename "xlocal" seat type to "local". Using "xlocal" will continue to work but report a warning. * Fix memory leaks * Fix uninitialized memory errors * Use MIR_SERVER_HOST_SOCKET instead of MIR_SOCKET to report compositor socket to sessions. This used to work but no longer works in Mir 0.21 * Allow XMir to run on the xlocal seat using the new x-server-backend=mir option * Use only a single compositor on local seats * Fix Mir greeter log filename having "(null)" in the name * Copy fcitx/mozc rules so session works when these aren't installed * Revert lxsession change - it caused the AppArmor to fail to compile Overview of changes in lightdm 1.19.0 * Use /dev/tty0 instead of /dev/console for VT operations * Don't quit on SIGUSR1, SIGUSR2 or SIGHUP * Improve XDMCP IPv6 address selection * Set XDMCP hostname field in to system hostname or configured value * Allow fcitx and mozc to run in guest session * Fix lxsession running in guest sessiono * Drop support for legacy XMir * Fix g_spawn compiler warning Overview of changes in lightdm 1.18.0 * Small documentation fixes Overview of changes in lightdm 1.17.6 * Don't write $DISPLAY into tty line in utmp/btmp. Overview of changes in lightdm 1.17.5 * Set XDG_RUNTIME_DIR for ConsoleKit sessions. This is a recent change in ConsoleKit2. Overview of changes in lightdm 1.17.4 * Add support for g_autoptr and liblightdm-gobject * Fix dm-tool add-local-seat not working because LightDM is trying to connect with TCP/IP Overview of changes in lightdm 1.17.3 * Don't enable the hardware cursor in Unity System Compositor anymore. Unity 8 now correctly provides its own cursor and other shells should too Overview of changes in lightdm 1.17.2 * Handle XDMCP Request packet with no addresses. * Don't start LightDM if the XDMCP server is configured with a key that doesn't exist. * Add IP addresses to XDMCP log messages. * Refactor XDMCP error handling. * Add more XDMCP tests. Overview of changes in lightdm 1.17.1 * Add a backup-logs option that can be used to disable existing logging files having a .old suffix added to them. * Add LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT and LC_IDENTIFICATION variables to the list of inherited locale variables. * Implement XDMCP ForwardQuery. * Fix small memory leak in XDMCP logging code. Overview of changes in lightdm 1.17.0 * Disable log backups - this interferes with logrotate. * Support using libaudit to generate audit events. * Handle trailing whitespace on boolean values in configuration. * Update example configuration to more correctly match allowed options. * Fix unnecessary X server from being launched when locking seats. * Check the version of the X server we are running so we correctly pass -listen tcp when required. * Allow reading /proc//net/dev from within a guest session. * Allow guest sessions to write in /{,var/}run/screen folder. * Update guest-session AppArmor profile to be suitable for openSUSE. * Fix apparmor profiles for running Chromium in guest sessions. * Fix configure failing without Vala installed. Overview of changes in lightdm 1.16.0 * Update default configuration better explaining the seat configuration name matching and dropping references to the obsolete [SeatDefaults] section Overview of changes in lightdm 1.15.3 * Drop Xorg option -sharevts. It's no longer required for non-seat0 X servers since xorg-server release 1.16. Overview of changes in lightdm 1.15.2 * Support Wayland sessions. * Implement autologin-session option. * Generate Vala bindings from GIR instead of manually writing them. This fixes some small bugs in both the Vala and GIR bindings. * Don't remove autotools generated files in distclean. Overview of changes in lightdm 1.15.1 * Fix default X server command set to XMir in 1.15.0. * Internally merge the [SeatDefaults] and [Seat:*] sections together. The previous method meant configuration snippets using a mix of old and new naming would not correctly override eachother. * Use IP address of XDMCP requests to contact X server if available. * Add an option for XDMCP and VNC servers to only listen on one address. * Fix configuration file warnings so they go to the log, not stderr. * Warn if deprecated options logind-load-seats or xdg-seat are in configuration. * Improve IP addresses in XDMCP log messages. * Fix typo in dm-tool man page. Overview of changes in lightdm 1.15.0 * Deprecate [SeatDefaults] in favour of [Seat:*] * Use new Xmir binary when running X under Unity System Compositor Overview of changes in lightdm 1.14.0 * Initialize file descriptor handles so we don't attempt to close stdin by accident. * Fix small errors detected by scan-build (clang). Overview of changes in lightdm 1.13.2 * Fix pipe file descriptor leak for each greeter session. * Support active session changing via logind. * Don't allow liblightdm-gobject to be disabled. It is required for liblightdm-qt and the tests so it's not worth supporting builds without it. * Add bash autocompletion support Overview of changes in lightdm 1.13.1 * Don't attempt generate D-Bus seat/session removal signals on shutdown. * Add missing method QLightDM::Greeter::cancelAutologin Overview of changes in lightdm 1.13.0 * Fix crash when having configuration keys defined in multiple places * Fix pipe file descriptor leak for each session login / authentication * Use correct syntax for DesktopNames key in session files * Match seat configuration with globbing * Allow user switching in multi-seat until bug stopping greeter showing on logout is fixed * Disable log message when AccountsService users change * Update AppArmor scripts, requires AppArmor 2.9 * Update tests to run better on servers Overview of changes in lightdm 1.12.0 * Fix assumption that the display server is X when running scripts. * Don't access .dmrc files until information from these files is required. Overview of changes in lightdm 1.11.9 * Don't check the logind CanGraphical seat property unless login-check-graphical option is set to true. There are too many cases of drivers that don't set the appropriate flags for this feature to work. * Make socket writing code used between greeter and daemon more robust to errors. * Fix small memory leaks. * Improve logging messages. * Test improvements. Overview of changes in lightdm 1.11.8 * Rework logind code that gets session ID. The previous method was racy and a change in lightdm 1.11.7 led to a lockup when this race occurred. * Handle CanGraphical property on logind seats Overview of changes in lightdm 1.11.7 * Use logind to provide the list of seats to use. Deprecate the old method of manually defining seats. * Add --show-config option that shows combined configuration. * Drop the surfaceflinger seat type. This was a temporary solution while Ubuntu Phone was migrating to Mir. Overview of changes in lightdm 1.11.6 * Add a seat option 'allow-user-switching' that can disable all user switching for that seat * Add a new session type 'mir-container' that allows the session to run inside a custom system compositor * Only seat0 takes VT from Plymouth * Removed unused GAsyncResultIface.is_tagged as this attribute was not available in earlier versions of Glib I/O. * Abort autogen if yelp-tools not installed * Return correct errors for D-Bus calls Overview of changes in lightdm 1.11.5 * Make PAM services configurable Overview of changes in lightdm 1.11.4 * Do timed autologin each time you are returned to the greeter * Fix tests failing with Qt 5.3 due to it checking getuid/geteuid which we are faking * dm-tool: Warn if trying to switch to user without username Overview of changes in lightdm 1.11.3 * Fix Mir sessions broken with unity-system-compositor 0.3. * Add back Vala bindings for LightDM.Greeter.connect_sync - just mark as deprecated. * Put unity-system-compositor's mir_socket under /run rather than /tmp. * Fix building with clang (3.5) and -Werror. * Correct section name in default users.conf file. Overview of changes in lightdm 1.11.2 * Add liblightdm method to get user UID * DBus-activate logind * Check for libgcrypt at configure time Overview of changes in lightdm 1.11.1 * Allow greeters to remain runing to reduce startup time when switching to a greeter * Add asynchronous methods to liblightdm Overview of changes in lightdm 1.11.0 * When switching to an existing session refresh PAM credentials and end session cleanly so no resources leak. * Support new standard DesktopNames field in session files * Set XDG_SESSION_TYPE and XDG_SESSION_DESKTOP as used by systemd * Emit DBus PropertiesChanged when Sessions/Seats properties change. Also add SessionAdded/SessionRemoved signals to Seat interface Overview of changes in lightdm 1.10.0 * Fix return value for Vala bindings to Greeter.start_session_sync * Fix logging when failing to find session Overview of changes in lightdm 1.9.15 * Update the lightdm AppArmor abstraction to allow the guest session to start when AppArmor is mediating signals and ptrace and fix a minor, but noisy, denial when applications attempt to read /proc//stat. Overview of changes in lightdm 1.9.14 * Pass --enable-hardware-greeter to unity-system-compositor for Mir sessions on xlocal seats Overview of changes in lightdm 1.9.13 * Handle not getting an X connection when attempting to get X layouts. * Read config data from both XDG_DATA_DIRS and XDG_CONFIG_DIRS. Overview of changes in lightdm 1.9.12 * Ensure X authority is written before X server is started * Activate after unlocking a logind session Overview of changes in lightdm 1.9.11 * Don't use g_hash_table_get_keys_as_array, it's a glib 2.40 feature Overview of changes in lightdm 1.9.10 * Honour session type requested by greeter for guest sessions * Log to wtmp and btmp. * Implement guest-session config option Overview of changes in lightdm 1.9.9 * Handle signals being received in child processes instead of treating them like they are received in the daemon. * Set utmp ut_line to the display name (i.e. :0) to match what other programs expect (e.g. 'w'). * Fix lightdm_greeter_ensure_shared_data_dir_sync returning the wrong value. * Fix shared data tests so you can run test suite without root again. * Be extra careful not to call any non thread safe function after a fork. * Fix some small memory leaks detected by valgrind. * Fix process shutdown code to stop generating confusing warnings * Fix more double removal of source IDs. * Test improvements. Overview of changes in lightdm 1.9.8 * Add support for shared user data directories between the greeter and user sessions. * Refactor LightDMUser and User classes to use the same code internally. Overview of changes in lightdm 1.9.7 * Correctly invoke PAM to change authentication token. * Make xdg-seat a core property of a seat and always pass it to X servers. * Qt bindings: properly hand over prompt and message type. * Add warning flags where they are missing and fix the resulting warnings. Overview of changes in lightdm 1.9.6 * Support Mir sessions in xlocal seats by starting a unity system compositor for each session. * Add --screen and --fullscreen options to "dm-tool add-nested-seat" * Don't try to compile liblightdm-qt if liblightdm-gobject will not be compiled. * Stop greeters warning if sessions directories not present or lightdm.conf doesn't exist - this is valid. * Fix log name for Mir display servers * Fix double removal of source IDs Overview of changes in lightdm 1.9.5 * In the unity seat, if we don't have proper VT support, fake VT 0 instead of a real VT number. This matches what logind expects. Overview of changes in lightdm 1.9.4 * Fix issue where VTs are double used when switching sessions. * Remove lightdm-set-defaults and gdmflexiserver. * Add new ability to specify a list of seat types to try, rather than just one. * Allow Mir sessions in the surfaceflinger seat. * Rename the guest session wrapper to have a simpler name. * Make sure sessions are associated with the display server before starting them. * Add a dm-tool man page. Overview of changes in lightdm 1.9.3 * Don't pass system user accounts from AccountsService to greeters. * Fix crash if switching to greeter and it isn't installed. Overview of changes in lightdm 1.9.2 * Implement missing guest-wrapper functionality and enable it for Ubuntu. * Update AppArmor scripts to work in Ubuntu 13.10. Overview of changes in lightdm 1.9.1 * Correctly set $XDG_SESSION_CLASS for greeters. This was regressed in 1.7.5 for ConsoleKit and was never passed to logind. logind/ConsoleKit treat greeter sessions without this set as user sessions. This causes greeters to show the lightdm user able to be logged in with. * Set $USER when running the session-setup-script. This is a regression from 1.7.5. * Fix notification of sessions being logged out. This is a regression from 1.7.5 and caused greeters to show sessions logged in after they had been logged out. * Refactor liblightdm user scanning to be simpler and more reliable. This fixes bugs where some properties wouldn't be updated when they changed in accounts service. * Add support for a "display-stopped-script" field in lightdm.conf. The "display-stopped-script" field allows us to run a script right after stopping the display server. * Allow dm-tool to run outside of a session if it doesn't need to be. * Set $MIR_SERVER_NAME to assign a name to launched sessions. Also use a "greeter-" prefix for greeter sessions for the benefit of unity-system-compositor. Overview of changes in lightdm 1.9.0 * Fix crash when starting with existing X servers. This was introduced in rev 1651 (lightdm 1.7.0). * Fix crash where Process objects are accessed after unref Overview of changes in lightdm 1.8.0 * Add regression test for corrupt X authority files. Overview of changes in lightdm 1.7.18 * Set session environment variables for guest sessions (1.7 regression). * Don't fail writing X authority if reading it had an error. * Update environment variables that we pass to Mir. Overview of changes in lightdm 1.7.17 * surfaceflinger: Set XDG_VTNR=0 if VTs are not available * Allow compiling of liblightdm-qt without liblightdm-gobject * Add missing documentation for xremote seat options. Overview of changes in lightdm 1.7.16 * Fix ConsoleKit support broken in 1.7.5 * Fix --test-mode * Add support for running Surfaceflinger sessions Overview of changes in lightdm 1.7.15 * Set XDG_VTNR=1 as a fallback if using SeatUnity without a functioning compositor or working VT switching, so that logind will recognize the VT as active. Overview of changes in lightdm 1.7.14 * Correctly set permissions on Xauthority file. Overview of changes in lightdm 1.7.13 * Correctly set $XDG_CURRENT_DESKTOP for non-autologin sessions * Fix overallocation of array for strings from greeter. * Fix truncation writing card32 in XDMCP server. Overview of changes in lightdm 1.7.12 * Add xdg-seat config setting * Notify Unity System Compositor of the session being authenticated Overview of changes in lightdm 1.7.11 * Fix crash when greeter quits due to read watch not being removed * Correctly setup Unity System Compositor environment * Improve log messages Overview of changes in lightdm 1.7.10 * Fix session locking broken in 1.7.5 * Load lightdm.conf after lightdm.conf.d/*.conf * Also support loading config from /usr/share * When switching sessions show a greeter if authentication required * Set $XDG_CURRENT_DESKTOP if specified in the xsession file * Change logging prefixes to make it easier to troubleshoot multiseat setups * Bring Ubuntu packaging in-tree Overview of changes in lightdm 1.7.9 * Correctly set XDG_VTNR for unity sessions that are not autologin. Overview of changes in lightdm 1.7.8 * Add support for Mir sessions and greeters. * Set XDG_VTNR for unity sessions. * Fix desktop-session-start upstart signal not being emitted since 1.7.5. * Fix greeter log broken in 1.7.5. Overview of changes in lightdm 1.7.7 * Fix uninitialized pointer introduced in 1.7.3 * Enable compile warnings and fix code generating warnings Overview of changes in lightdm 1.7.6 * Restore greeter hints that were regressed in 1.7.5. * Don't run greeters through session wrapper - regression in 1.7.5 Overview of changes in lightdm 1.7.5 * Quit Plymouth correctly when using the unity seat type * Release the VT when the system compositor fails to start * Load sessions and greeters from /usr/share/lightdm/sessions and /usr/share/lightdm/greeters. The existing directories are checked if the sessions are not in these directories. * Refactor the Display class so that it merges with the Seat class * Support running the greeter and session in different display servers instead of re-using the same one during a login. * Add more regression tests * Documentation fixes Overview of changes in lightdm 1.7.4 * Set XDG_SEAT and XDG_VTNR environment variables. * Add initial support for Unity (i.e. Mir based) seats. * Add a greeter wrapper option. Overview of changes in lightdm 1.7.3 * Load configuration from /etc/lightdm/lightdm.conf.d. * Fix compile warnings * Fix tests not running from install directory inside checkout. Overview of changes in lightdm 1.7.2 * Fix incorrectly distributed guest-session apparmor data Overview of changes in lightdm 1.7.1 * Fix .pc file for liblightdm-qt5-3 * Add a new option "autologin-in-background" which lets an autologin happen in a second display while still showing the greeter. * Stop if fail to create default seat * Add option to set seat type in lightdm-set-defaults * Stop using g_file_set_contents - it can leave intermediate files around * Make tests work without installing them * Fix distcheck Overview of changes in lightdm 1.7.0 * Use logind instead of ConsoleKit if it is available * Use Q_SLOTS and Q_SIGNALS instead of slots and signals. * Ignore stale X server locks * Pass through system locale or set locale from AccountsService/.dmrc * Fix bug where seat failure before D-Bus acquired would not stop daemon Overview of changes in lightdm 1.6.0 * Allow VNC command to be specified in lightdm.conf * Register enums with QObject meta type system. Overview of changes in lightdm 1.5.3 * Fix build with gobject-introspection 1.35.9 * Fix authentication cancel regression caused in 1.5.2 Overview of changes in lightdm 1.5.2 * Fix stale X server being left behind when using LockSession D-Bus API * Adjust AppArmor profile to also work with logind * Don't use GIO to access X authority files - it uses GVFS which is unnecessary overhead/complexity * Handle over/underflows when reading from greeter * Improve warning message when XDMCP packet has length mismatch * Only report test command line if it fails * Add more regression tests Overview of changes in lightdm 1.5.1 * QLightDM: Add Qt5 version of the library: liblightdm-qt5-2 * QLightDM: Add some missing role names in UsersModel * QLightDM: Add a backgroundPath role to UsersModel * QLightDM: Fix potential crash in QLightDM::UsersModel closedown. * Improve guest session apparmor * Run each test in its own /tmp dir so they can't interfere with eachother * Fix script hooks no longer working with latest glib * Fix display clean up code Overview of changes in lightdm 1.5.0 * Add man page for lightdm-set-defaults * Use xzip for distribution, don't distribute old metadata * Correctly check if display is active when session quits * Relicense liblightdm to LGPL-2/LGPL-3 so GPL-2 code can link against it * Selectively lock memory rather than calling mlockall for main daemon Overview of changes in lightdm 1.4.1 * Fix autologin PAM configuration Overview of changes in lightdm 1.4.0 * Correctly implement and test autologin timeouts * Add greeter-show-remote-login hint * Correctly annotate enums in vapi file * QLightDM: Add default constructor to Qt power interface * QLightDM: Expose image path in UserModel * QLightDM: Add parameter to session model to show either local or remote sessions * Fix race conditions in tests Overview of changes in lightdm 1.3.3 * Add a new remote session type. These sessions create a temporary local account and authenticate against a remote server. The session is an application that accesses that remote session (e.g. VNC, RDP etc) * Support multiple simultaneous PAM prompts * Set utmp ut_host field to the X display address * Correctly reap unused authentication sessions Overview of changes in lightdm 1.3.2 * Handle clearenv() not being defined * Fix compilation with GCC 4.7 * Expose remaining properties in QLightDM::Greeter * Fix utmp records being written before child process created Overview of changes in lightdm 1.3.1 * Fix wrapper path in AppArmor profile (broken since 1.1.1) * Add show-manual-login and allow-guest options to lightdm-set-defaults * Don't set PAM_XDISPLAY or PAM_XAUTHDATA if not supported * Add lock-memory option, enabled by default, to prevent paging memory to disk. * Write utmp records for sessions * Install PAM configuration * Run greeters inside the "lightdm-greeter" PAM service * Handle setresgid and setresuid not being available * Use xsession directory from lightdm.conf in liblightdm Overview of changes in lightdm 1.2.0 * Backup .xsession-errors on login * Handle failures in pam_setcred * Open log files in append mode * Add extra checks in liblightdm so that it doesn't send invalid messages to the daemon * Fix gdmflexiserver not being added to the path (broken since 1.1.4) * Fix PAM conversations after authentication from locking up sessions * Fix PAM informational messages locking up autologin * Change XDMCP manage timeout from 10ms to 126s (maximum specified in the XDMCP specification) Overview of changes in lightdm 1.1.9 * Add --show-users/--hide-users to lightdm-set-defaults * Call initgroups before pam_setcred - this allows pam_setcred to change group membership correctly Overview of changes in lightdm 1.1.8 * Handle PAM interactions that have more than one message in one callback Overview of changes in lightdm 1.1.7 * Add a seat option greeter-allow-guest which controls if the greeter should provide an option to access the guest account. * Add a seat option greeter-show-manual-login which hints to a greeter if it should show a manual username entry if a user list is already present. Overview of changes in lightdm 1.1.6 * Fix session wrapper working the same as it did in 1.1.3 Overview of changes in lightdm 1.1.5 * Stop file descriptors leaking into the session processes Overview of changes in lightdm 1.1.4 * Change session directory once user permissions are set so it works on NFS filesystems that don't allow root to access files. * Restructure session code so the PAM authentication is run in its own process. * Set PAM_XDISPLAY and PAM_XAUTHDATA pam items * Don't send session stdout to .xsession-errors * Fix Qt bindings crash when removing a user Overview of changes in lightdm 1.1.3 * Actually return the system default keyboard layout, not just 'us' * Add keyboard layout variants to list of keyboard layouts * Check accountsservice as well as .dmrc for users' layouts * Add lightdm_user_get_layouts() to query the configured list of layouts on a per-user basis * Add Lock D-Bus method that locks the seat and provides a hint to the greeter to be in lock mode. * Automatically lock sessions when switching away from them * Add a has-messages property to liblightdm * Add regression tests for PAM modules changing usernames * Don't use g_key_file_unref, it requires glib 2.32 Overview of changes in lightdm 1.1.2 * Add regression tests for getting the user language and layout * Stop accidentally distributing libsystem * Fix introspection bindings not containing any methods * lightdm-set-defaults can now set the autologin user * Add Python greeter regression tests (representative of all introspection based greeters) * Wait for the VT to become active when switching to avoid a suspected race condition somewhere between LightDM, X, ConsoleKit and the kernel. * Stop lightdm_greeter_start_session_sync() blocking on success. Overview of changes in lightdm 1.1.1 * Add a --disable-tests option * Add note to AUTHORS file where to find author list * Update build system to find moc/uic * Fix non-distributed tests/src/lightdm-session * Fix X sessions with arguments in Exec not working * Use previous session for automatic login or if greeter does not request one. * Set default resolution of VNC to 1024x768, add settings for width, height, depth into lightdm.conf. * AppArmor profile: Fix broken gnome-keyring and dbus/gwibber, and quiesce annoying kernel audit messages for privileges that we definitively do not want to grant. * Set LOGNAME environment variable * Don't set USERNAME environment variable - this is not specified in POSIX, please report if this causes any major problems. * Drop privileges when reading ~/.dmrc * Move the GTK+ and Qt greeters into their own projects * Fix crash when quitting with newer GLib * Fix crash calling lightdm_get_layout * Support for reading users' backgrounds from Accounts Service * Fix --debug working with new glib * Support PAM requesting a change of password * Update build system to work with automake 1.11.2 * Run tests inside their own system D-Bus, simulating ConsoleKit and AccountsService * Add regression test for users that have their home directory created after authentication. * Move lightdm-guest-session from libexec to pkglibexec directory Overview of changes in lightdm 1.1.0 * Remove GetSeatForCookie and GetSessionForCookie D-Bus methods * Switching to a user without a password bypasses the greeter * Use LD_PRELOAD to intercept system calls for testing * Removed the --passwd-file option as not required for testing anymore * Rename test-xserver to X and remove --xserver-command option * Make a test session wrapper and remove --session-wrapper option * Remove unused --user-session, --greeter-session, --minimum-vt, --minimum-display-number options * Use 'default' as the default greeter (make a symlink) * GTK greeter now initializes i18n * GTK greeter now remembers last user * Start authentication for automtically selected user in GTK greeter * Don't resize GTK greeter on each click * Start authentication when scrolling through GTK greeter entries * Link liblightdm-qt against QtGui * Fix liblightdm-qt crashing when face images are installed * Set correct permissions on session log files * Introduce a lightdm-guest-session-wrapper session command which MAC systems like AppArmor and SELinux can use for attaching a restrictive policy to guest sessions. * Provide an AppArmor profile for guest session lockdown. * Fix daemon from blocking if Accounts Service does not exist * Fix greeter log file not being written * Don't set LANG environment variable if using Accounts Service. * Fix gdmflexiserver not working due to it not being in PATH * Don't authenticate the greeter user * Allow greeters to be disabled in configure flags * Fix over allocation of read buffer in greeter protocol * Make sure objects are cleaned up on exit * Fix minor memory leaks * Fix reference counting issue in ConsoleKit code * Fix --enable-gtk-greeter=yes not working Overview of changes in lightdm 1.0.0 * Explicitly grab keyboard focus in GTK greeter * Fix removed power and a11y menu items in GTK greeter * Put system binary directory into path when running in test mode * Call pam_getenvlist after pam_setcred Overview of changes in lightdm 0.9.8 * GetSeatForCookie and GetSessionForCookie are now deprecated. They remain for now but use the XDG_SEAT_PATH and XDG_SESSION_PATH environment variables instead. * Change log filenames to be unique across different display types. * Fix up script hooks, add regression tests for them * Complete removal of X code from the core of LightDM, so it can better support various display types * Add ability to set the language of a user from the greeter * Set LANG variable based on the user language * Add language selector into GTK greeter (disabled by default) * Allow TCP/IP connections if xserver-allow-tcp is true * Allow lightdm --version to be run as non-root * Automatically respond to PAM messages without prompts * Create 'AddLocalXSeat' D-Bus method, and require root to use 'AddSeat' * Fix multi-seat configuration picking the same display number * Use correct D-Bus and power interface in liblightdm-qt * Run pam_setcred inside the session process so pam_group works * Make sure one session is always selected in the GTK greeter Overview of changes in lightdm 0.9.7 * Set PAM_TTY to the display name, not the tty device Overview of changes in lightdm 0.9.6 * Only unlock displays if switched to from greeter * Make log file not system readable * Write ~/.Xauthority inside the session process so it cannot be hijacked * Set PAM_TTY and PAM_XDISPLAY when opening PAM session * Add VNC server support * Do not write ~/.dmrc and ~/.Xauthority as root. [CVE-2011-3349] Overview of changes in lightdm 0.9.5 * Use accounts service in the daemon if it is available * Correctly load seat type in multi seat configuration * Add display-setup, session-setup and session-cleanup scripting hooks * Fix cancel button in GTK greeter * Fix line through GTK greeter menu items * Exit daemon if a seat fails which has exit-on-failure set to true * Add HasGuestAccount property to seat D-Bus interface * Fix XDMCP authorization * Update man file Overview of changes in lightdm 0.9.4 * lightdm-set-defaults enables tweaking the default session and chosen greeter for lightdm. This is useful for derivatives waiting to not ship the whole configuration file of lightdm * Fix crash in GTK+ greeter when a user is added * Move xsessions-directory and xgreeters-directory from [SeatDefaults] to [LightDM]. This is a configuration break, but making it on the assumption that these settings are not likely to have been overridden. * Fix fallback from org.freedesktop.Accounts to passwd format * Fix duplicate user entries being shown when using passwd file * Add AddSeat D-Bus method for adding dynamic seats * Added a dm-tool program that allows user switching and adding seats * Allow remote X servers, e.g. launched using dm-tool add-nested-seat * Fix bug where sessions were started when the greeter quit and the user hadn't been authorized. * Fix bug where sessions used the seat bus name * Don't allow autologin-username to be set to empty * Fix bug where PAM session was not opened before writing to home directory * Fix crash when failing to write X authority Overview of changes in lightdm 0.9.3 * Unlock ConsoleKit sessions when switching to them * Add a gdmflexiserver binary that provides backwards compatibility with existing sessions * Set XDG_SEAT_PATH and XDG_SESSION_PATH environment variables for sessions. * Always set XAUTHORITY environment variable so sudo keeps accessing the correct X authority. * Connect up lightdm_user_get_logged_in in liblightdm-gobject * Ignore sessions that fail TryExec or are hidden * Add missing home_directory User property missing in Vala bindings Overview of changes in lightdm 0.9.2 * Fix annotation and Vala bindings for getting the UserList singleton * Fix GTK+ greeter error label not being shown * Don't set SIGQUIT to ignore in child processes * Reworked the PAM code as ecryptfs users weren't able to log in. They can now but not sure what changed to fix that!? Overview of changes in lightdm 0.9.1 * Fix up translation build system * Add a --with-greeter-user configure option * Fix greeter-user configuration not being used * Abort greeter if attempted to be run as root and greeter-user set * Fix setting session in GTK+ greeter Overview of changes in lightdm 0.9.0 * Fix invalid XAUTHORITY variable being set for second X server. * Fix bug where switching users created X servers without VTs * Release a VT when the X server on it stops * Greeters are now just standard X sessions that are stored in /usr/share/xgreeters. * Binaries now installed in /usr/sbin * Drop most of the configure options, they aren't necessary * Config changes: - Major reorginisation of configuration to make it easier to configure and understand. Users should set [SeatDefaults] section with settings for all seats, and can override each setting in a per seat configuration. - Default seats are now specified using a [Seat:] section. If no seats are specified then one is started. This can be overridden by setting start-default-seat=false in [LightDM]. - Support setting autologin user to guest account - Split the user accounts configuration into /etc/lightdm/users.conf so the main config can be private. - The default user session is now "default". Distributions should put a symlink to their chosen default or set one in lightdm.conf. - XDMCP keys now stored in keys.conf * liblightdm API changes: - Both libraries are now version 1 and have API and ABI guarantees. - Face images are now local paths not URIs - liblightdm-gobject now uses lightdm_ prefix instead of ldm_ - Non-greeter functions are now moved out of the Greeter class - connect_to_server() is now called connect_sync and blocks until completion. - start_session() is now called start_session_sync and blocks until completion. The quit signal is removed, and the greeter should quit if this method returns TRUE. - login() is now called authenticate() - Greeters now have hints instead of configuration (greeters should load their own configuration from /etc/lightdm if they need it). - liblightdm-gobject uses AccountsService if it is available - Added regression tests for liblightdm-qt * D-Bus API changes: - Expose Seats and Sessions on org.freedesktop.DisplayManager - Add a CanSwitch property - Rename ShowGreeter() to SwitchToGreeter() * Greeter changes: - Drop "example" from the name of the GTK+ and Qt greeters and make them official default greeters. - Use GTK3 for GTK+ greeter. - Removed the Vala and Python GTK+ greeters, they weren't being well maintained. Overview of changes in lightdm 0.4.4 * Fix failure to accept XDMCP connections due to invalid assert. * Allow minimum-display-number to be set in lightdm.conf and on the command line. * Session X authority now written to ~/.Xauthority by default. It can be configured to run from the system location by setting user-authority-in-system-dir=true in lightdm.conf. * When using system authority the authority can be updated by the user. * Written X authority files now checks hostname and display number. * Enironment is no longer passed through to X servers and sessions, this is no longer required now PAM works correctly. * liblightdm API changes: - Drop ldm_greeter_get_is_first() - it was added for testing and doesn't work well. * Fix more errors where authentication messages from previous sessions could be confused with new sessions. * Added XDMCP regression tests. Overview of changes in lightdm 0.4.3 * Don't replace Plymouth if it isn't running on a valid VT * Allow a null username to log in with - the system will prompt for a username. * liblightdm API changes: - Rename ldm_greeter_provide_secret to ldm_greeter_respond - responses may not be secrets. - show-prompt signal now has a PromptType field - show-message signal now has a MessageType field and takes over behaviour of show-error signal * Fix error where an authentication failure from a previous session could be interpreted as a failure in the current session. * Simplify Vala bindings and add missing methods Overview of changes in lightdm 0.4.2 * Fix errors communicating with PAM * Fix interaction with Plytmouth. * Removes the vt option in lightdm.conf, this is no longer required and the active is used for the first display if Plymouth is detected. A new option minimum-vt is added to select the first VT to be used for other displays. * On login switch to an existing session if already logged in with that username. * Correctly connect up D-Bus interface for user switching Overview of changes in lightdm 0.4.1 * Fix linking issue with -z,defs * Added guest account support * Restart X server if it crashes during a session * Don't set language environment variables, use the daemon values (system default) and leave it to ~/.profile for users to set these * Change greeter library API, starting a session no longer has a language option * Fix greeter crash when user accounts change Overview of changes in lightdm 0.4.0 * Fix crash when child processes quit * Fix crash when catching signals * Fix crash when session quits after X server * Add internal checking for NULL object access * Correctly handle signals from external programs (Thanks to Jason Conti) * liblightdm API changes: - ldm_greeter_start_authentication becomes ldm_greeter_login - The existing ldm_greeter_login is now ldm_greeter_start_session and the username parameter is not required. - Drop ldm_greeter_get_default_layout (X controls the layout) * Configuration changes: - Use /etc/lightdm/lightdm.conf instead of /etc/lightdm.conf - The "displays" item is now called "seats". LightDM will fallback to "displays" if "seats" is not defined, but this is deprecated and will be removed by version 1.0. - Make X server configuration a separate section and now has new options * Automatic login users now use PAM session lightdm-autologin * Use org.freedesktop.DisplayManager instead of org.lightdm.LightDisplayManager for D-Bus name * Add regression tests * Allow many more options to be set from the command line Overview of changes in lightdm 0.3.7 * Fix autologin broken in 0.3.3 Overview of changes in lightdm 0.3.6 * Disable Plymouth when starting * Allow display vt setting to be set to "active" to start on active VT * Fix login in Qt example greeter * Fix typo for High Contrast menu item (GTK example greeter) Overview of changes in lightdm 0.3.5 * Set working directory when logging in * Massive improvements to Qt greeter * Fix XDMCP authentication/authorization errors * Have the daemon open a connection to a local X server * Tidy up some debugging messages Overview of changes in lightdm 0.3.4 * Updates to liblightdm-qt * Fix --with-cache-dir not working * Set greeterdir in .pc files to point to where greeter engines should be installed Overview of changes in lightdm 0.3.3 * Don't run in test-mode if Xephyr cannot be found * Fix daemon using 100% CPU after greeter quits * Fix crash when users don't have GECOS data * Greeters can now detect user add/remove events * Fix ConsoleKit support broken with switch to GDBus * Correctly clean up X processes on exit * Wait for greeter to quit before running user session (fixes problem with Compiz) Overview of changes in lightdm 0.3.2 * Distribute GTK greeter .ui file Overview of changes in lightdm 0.3.1 * Add greeter login_with_defaults method * Add example to the name of all the greeters * Set the configuration for the default display to use VT 7 * Fix the vt setting for displays, it was incorrectly named tty * Fix crash when load-users is false in UserManager * Fix up name of .vapi file so it can be used directly from valac * Tidy up Qt library and greeter * Move menubar in greeters to top of screen * Fix console kit get_can_*() methods * Use GtkBuilder for example GTK greeter Overview of changes in lightdm 0.3.0 * Correctly pass environment variables through to the session * Allow starting virtual terminal to be configured * Replace D-Bus greeter communication with a private pipe * Use GDBus instead of dbus-glib * Use the engine process name instead of a hardcoded value in theme files * Rename ldm_greeter_connect to ldm_greeter_connect_to_server so it doesn't clash with GObject method name * Rename ldm-gtk-greeter to lightdm-gtk-greeter * Rename gnome theme to example-gtk-gnome * Add more annotations to liblightdm-gobject * Add an example PyGObject, Vala and QT greeter * Generate metadata for QT libraries * Move Webkit greeter into separate module Overview of changes in lightdm 0.2.3 * Set correct linking library names in pkg-config files * Handle session executables that take arguments Overview of changes in lightdm 0.2.2 * Make default themedir work when --prefix is not passed to configure * Look for face images in ~/.face and ~/.face.icon * Put .vapi file in unversioned vala directory * Fix compiling without QT * Choose the VT to open the display on * Set correct group memberships for sessions (Yves-Alexis Perez) * Set permissions on xauthority file so it can only be read by the owning user (Yves-Alexis Perez) * Set correct permissions on ~/.dmrc (Yves-Alexis Perez) * Add --enable-liblightdm-gobject, --enable-liblightdm-qt configure option * Set environment variables from PAM (Yves-Alexis Perez) Overview of changes in lightdm 0.2.1 * Use "lightdm" as default PAM service and make it configurable * Rename libldmgreeter to libldmgreeter-gobject * Add libldmgreeter-qt (David Edmundson) * Fix gobject-introspection build * Renamed libldmgreeter to liblightdm * Install a .vapi file Overview of changes in lightdm 0.2.0 * Make default user configuration per-display * Only automatically login the first time * Fix WebKit theme loading and automatic login * Do cross fade for sessions that support it (set X-LightDM-Supports-Transitions=true in their xsession file) * Load user settings from ~/.dmrc * Add configuration for default language/layout * Change language/layout/session when user selected in GTK+ greeter * Set default keyboard layout on first login * Don't run all sessions throught /etc/X11/XSession - make the session wrapper optional and configurable. * Make pkgconfig file require libxklavier * Only compile greeters if have dependencies * Include ck-connector code to reduce library dependencies * Add introspection.m4 to the source tree * Support using no greeter user in lightdm.conf * Flush writes to main log file * Allow non-privilidged user to write greeter log file in /var * Fix bugs stopping running greeter as priviledged user (i.e. root) * Don't default to running greeters with the GDM user - it may not exist! Overview of changes in lightdm 0.1.2 * Write PID file * Make user switcher API work * Add a AddDisplay D-Bus method to start new displays * Feed signals to GLib main loop via a pipe * Add an upstart script * Make theme files more similar to existing themes * Change dbus namespace from org.freedesktop.LightDisplayManager to org.lightdm.LightDisplayManager * Write debug log to /var/log/lightdm/lightdm.log instead of stdout. Use --debug for the previous behaviour * Add exec_prefix into libldmgreeter.pc * Change versioned include and pkgconfig files from 1 to 0 * Add themedir variable into pkgconfig file * Connect language list in GTK greeter to login language Overview of changes in lightdm 0.1.1 * Change licence of libldmgreeter from GPL to LGPL * Write X server and session output to log files * Set PATH, DESKTOP_SESSION, GDMSESSION and USERNAME environment variables * Run sessions through Xsession * Close all X servers on exit * Send SIGHUP to X server when returning to greeter (makes all clients quit) * Change authorization after a session ends so previous session does not get access * Make shutdown buttons work in GTK+ greeter * Make user manager configurable * Make GTK+ greeter show username entry if no user list * Hide C and POSIX languages in greeter * Load language and layout from .dmrc file Overview of changes in lightdm 0.1.0 * Make --test-mode which runs as the current user * Support displays acting as XDMCP terminals * Support MIT-MAGIC-COOKIE-1 and XDM-AUTHORIZATION-1 authorization * Support XDMCP over IPv6 Overview of changes in lightdm 0.0.4 * Support XDMCP logins * Support multi-head * Clean up resources on exit * Create gettext instance in WebKit greeter Overview of changes in lightdm 0.0.3 * Wait for signal from X server before starting session * Add language API * Add keyboard layout API * Add gettext support to the WebKit greeter Overview of changes in lightdm 0.0.2 * Fix installation of D-Bus service file * Allow DISPLAY env variable to be passed to X server so can run Xephyr * Handle no automatic login in webkit theme Overview of changes in lightdm 0.0.1 * Initial release