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/<user>/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/<PID>/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/<PID>/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:<name>] 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
