1 Overview of changes in lightdm 1.6.0
3 * QLightDM: Add Qt5 version of the library: liblightdm-qt5-2
4 * QLightDM: Add some missing role names in UsersModel
6 Overview of changes in lightdm 1.5.0
8 * Add man page for lightdm-set-defaults
9 * Use xzip for distribution, don't distribute old metadata
10 * Correctly check if display is active when session quits
11 * Relicense liblightdm to LGPL-2/LGPL-3 so GPL-2 code can link against it
12 * Selectively lock memory rather than calling mlockall for main daemon
14 Overview of changes in lightdm 1.4.1
16 * Fix autologin PAM configuration
18 Overview of changes in lightdm 1.4.0
20 * Correctly implement and test autologin timeouts
21 * Add greeter-show-remote-login hint
22 * Correctly annotate enums in vapi file
23 * QLightDM: Add default constructor to Qt power interface
24 * QLightDM: Expose image path in UserModel
25 * QLightDM: Add parameter to session model to show either local or remote
27 * Fix race conditions in tests
29 Overview of changes in lightdm 1.3.3
31 * Add a new remote session type. These sessions create a temporary local
32 account and authenticate against a remote server. The session is an
33 application that accesses that remote session (e.g. VNC, RDP etc)
34 * Support multiple simultaneous PAM prompts
35 * Set utmp ut_host field to the X display address
36 * Correctly reap unused authentication sessions
38 Overview of changes in lightdm 1.3.2
40 * Handle clearenv() not being defined
41 * Fix compilation with GCC 4.7
42 * Expose remaining properties in QLightDM::Greeter
43 * Fix utmp records being written before child process created
45 Overview of changes in lightdm 1.3.1
47 * Fix wrapper path in AppArmor profile (broken since 1.1.1)
48 * Add show-manual-login and allow-guest options to lightdm-set-defaults
49 * Don't set PAM_XDISPLAY or PAM_XAUTHDATA if not supported
50 * Add lock-memory option, enabled by default, to prevent paging memory
52 * Write utmp records for sessions
53 * Install PAM configuration
54 * Run greeters inside the "lightdm-greeter" PAM service
55 * Handle setresgid and setresuid not being available
56 * Use xsession directory from lightdm.conf in liblightdm
58 Overview of changes in lightdm 1.2.0
60 * Backup .xsession-errors on login
61 * Handle failures in pam_setcred
62 * Open log files in append mode
63 * Add extra checks in liblightdm so that it doesn't send invalid messages
65 * Fix gdmflexiserver not being added to the path (broken since 1.1.4)
66 * Fix PAM conversations after authentication from locking up sessions
67 * Fix PAM informational messages locking up autologin
68 * Change XDMCP manage timeout from 10ms to 126s (maximum specified in the
71 Overview of changes in lightdm 1.1.9
73 * Add --show-users/--hide-users to lightdm-set-defaults
74 * Call initgroups before pam_setcred - this allows pam_setcred to change
75 group membership correctly
77 Overview of changes in lightdm 1.1.8
79 * Handle PAM interactions that have more than one message in one callback
81 Overview of changes in lightdm 1.1.7
83 * Add a seat option greeter-allow-guest which controls if the greeter should
84 provide an option to access the guest account.
85 * Add a seat option greeter-show-manual-login which hints to a greeter if it
86 should show a manual username entry if a user list is already present.
88 Overview of changes in lightdm 1.1.6
90 * Fix session wrapper working the same as it did in 1.1.3
92 Overview of changes in lightdm 1.1.5
94 * Stop file descriptors leaking into the session processes
96 Overview of changes in lightdm 1.1.4
98 * Change session directory once user permissions are set so it works
99 on NFS filesystems that don't allow root to access files.
100 * Restructure session code so the PAM authentication is run in its
102 * Set PAM_XDISPLAY and PAM_XAUTHDATA pam items
103 * Don't send session stdout to .xsession-errors
104 * Fix Qt bindings crash when removing a user
106 Overview of changes in lightdm 1.1.3
108 * Actually return the system default keyboard layout, not just 'us'
109 * Add keyboard layout variants to list of keyboard layouts
110 * Check accountsservice as well as .dmrc for users' layouts
111 * Add lightdm_user_get_layouts() to query the configured list of layouts
113 * Add Lock D-Bus method that locks the seat and provides a hint to the
114 greeter to be in lock mode.
115 * Automatically lock sessions when switching away from them
116 * Add a has-messages property to liblightdm
117 * Add regression tests for PAM modules changing usernames
118 * Don't use g_key_file_unref, it requires glib 2.32
120 Overview of changes in lightdm 1.1.2
122 * Add regression tests for getting the user language and layout
123 * Stop accidentally distributing libsystem
124 * Fix introspection bindings not containing any methods
125 * lightdm-set-defaults can now set the autologin user
126 * Add Python greeter regression tests (representative of all introspection
128 * Wait for the VT to become active when switching to avoid a suspected
129 race condition somewhere between LightDM, X, ConsoleKit and the kernel.
130 * Stop lightdm_greeter_start_session_sync() blocking on success.
132 Overview of changes in lightdm 1.1.1
134 * Add a --disable-tests option
135 * Add note to AUTHORS file where to find author list
136 * Update build system to find moc/uic
137 * Fix non-distributed tests/src/lightdm-session
138 * Fix X sessions with arguments in Exec not working
139 * Use previous session for automatic login or if greeter does not request
141 * Set default resolution of VNC to 1024x768, add settings for width, height,
142 depth into lightdm.conf.
143 * AppArmor profile: Fix broken gnome-keyring and dbus/gwibber, and quiesce
144 annoying kernel audit messages for privileges that we definitively do not
146 * Set LOGNAME environment variable
147 * Don't set USERNAME environment variable - this is not specified in POSIX,
148 please report if this causes any major problems.
149 * Drop privileges when reading ~/.dmrc
150 * Move the GTK+ and Qt greeters into their own projects
151 * Fix crash when quitting with newer GLib
152 * Fix crash calling lightdm_get_layout
153 * Support for reading users' backgrounds from Accounts Service
154 * Fix --debug working with new glib
155 * Support PAM requesting a change of password
156 * Update build system to work with automake 1.11.2
157 * Run tests inside their own system D-Bus, simulating ConsoleKit and
159 * Add regression test for users that have their home directory created after
161 * Move lightdm-guest-session from libexec to pkglibexec directory
163 Overview of changes in lightdm 1.1.0
165 * Remove GetSeatForCookie and GetSessionForCookie D-Bus methods
166 * Switching to a user without a password bypasses the greeter
167 * Use LD_PRELOAD to intercept system calls for testing
168 * Removed the --passwd-file option as not required for testing anymore
169 * Rename test-xserver to X and remove --xserver-command option
170 * Make a test session wrapper and remove --session-wrapper option
171 * Remove unused --user-session, --greeter-session, --minimum-vt,
172 --minimum-display-number options
173 * Use 'default' as the default greeter (make a symlink)
174 * GTK greeter now initializes i18n
175 * GTK greeter now remembers last user
176 * Start authentication for automtically selected user in GTK greeter
177 * Don't resize GTK greeter on each click
178 * Start authentication when scrolling through GTK greeter entries
179 * Link liblightdm-qt against QtGui
180 * Fix liblightdm-qt crashing when face images are installed
181 * Set correct permissions on session log files
182 * Introduce a lightdm-guest-session-wrapper session command which MAC
183 systems like AppArmor and SELinux can use for attaching a restrictive
184 policy to guest sessions.
185 * Provide an AppArmor profile for guest session lockdown.
186 * Fix daemon from blocking if Accounts Service does not exist
187 * Fix greeter log file not being written
188 * Don't set LANG environment variable if using Accounts Service.
189 * Fix gdmflexiserver not working due to it not being in PATH
190 * Don't authenticate the greeter user
191 * Allow greeters to be disabled in configure flags
192 * Fix over allocation of read buffer in greeter protocol
193 * Make sure objects are cleaned up on exit
194 * Fix minor memory leaks
195 * Fix reference counting issue in ConsoleKit code
196 * Fix --enable-gtk-greeter=yes not working
198 Overview of changes in lightdm 1.0.0
200 * Explicitly grab keyboard focus in GTK greeter
201 * Fix removed power and a11y menu items in GTK greeter
202 * Put system binary directory into path when running in test mode
203 * Call pam_getenvlist after pam_setcred
205 Overview of changes in lightdm 0.9.8
207 * GetSeatForCookie and GetSessionForCookie are now deprecated. They
208 remain for now but use the XDG_SEAT_PATH and XDG_SESSION_PATH
209 environment variables instead.
210 * Change log filenames to be unique across different display types.
211 * Fix up script hooks, add regression tests for them
212 * Complete removal of X code from the core of LightDM, so it can better
213 support various display types
214 * Add ability to set the language of a user from the greeter
215 * Set LANG variable based on the user language
216 * Add language selector into GTK greeter (disabled by default)
217 * Allow TCP/IP connections if xserver-allow-tcp is true
218 * Allow lightdm --version to be run as non-root
219 * Automatically respond to PAM messages without prompts
220 * Create 'AddLocalXSeat' D-Bus method, and require root to use 'AddSeat'
221 * Fix multi-seat configuration picking the same display number
222 * Use correct D-Bus and power interface in liblightdm-qt
223 * Run pam_setcred inside the session process so pam_group works
224 * Make sure one session is always selected in the GTK greeter
226 Overview of changes in lightdm 0.9.7
228 * Set PAM_TTY to the display name, not the tty device
230 Overview of changes in lightdm 0.9.6
232 * Only unlock displays if switched to from greeter
233 * Make log file not system readable
234 * Write ~/.Xauthority inside the session process so it cannot be hijacked
235 * Set PAM_TTY and PAM_XDISPLAY when opening PAM session
236 * Add VNC server support
237 * Do not write ~/.dmrc and ~/.Xauthority as root. [CVE-2011-3349]
239 Overview of changes in lightdm 0.9.5
241 * Use accounts service in the daemon if it is available
242 * Correctly load seat type in multi seat configuration
243 * Add display-setup, session-setup and session-cleanup scripting hooks
244 * Fix cancel button in GTK greeter
245 * Fix line through GTK greeter menu items
246 * Exit daemon if a seat fails which has exit-on-failure set to true
247 * Add HasGuestAccount property to seat D-Bus interface
248 * Fix XDMCP authorization
251 Overview of changes in lightdm 0.9.4
253 * lightdm-set-defaults enables tweaking the default session and chosen
254 greeter for lightdm. This is useful for derivatives waiting to not ship
255 the whole configuration file of lightdm
256 * Fix crash in GTK+ greeter when a user is added
257 * Move xsessions-directory and xgreeters-directory from [SeatDefaults] to
258 [LightDM]. This is a configuration break, but making it on the assumption
259 that these settings are not likely to have been overridden.
260 * Fix fallback from org.freedesktop.Accounts to passwd format
261 * Fix duplicate user entries being shown when using passwd file
262 * Add AddSeat D-Bus method for adding dynamic seats
263 * Added a dm-tool program that allows user switching and adding seats
264 * Allow remote X servers, e.g. launched using dm-tool add-nested-seat
265 * Fix bug where sessions were started when the greeter quit and the user
266 hadn't been authorized.
267 * Fix bug where sessions used the seat bus name
268 * Don't allow autologin-username to be set to empty
269 * Fix bug where PAM session was not opened before writing to home directory
270 * Fix crash when failing to write X authority
272 Overview of changes in lightdm 0.9.3
274 * Unlock ConsoleKit sessions when switching to them
275 * Add a gdmflexiserver binary that provides backwards compatibility with
277 * Set XDG_SEAT_PATH and XDG_SESSION_PATH environment variables for sessions.
278 * Always set XAUTHORITY environment variable so sudo keeps accessing the
280 * Connect up lightdm_user_get_logged_in in liblightdm-gobject
281 * Ignore sessions that fail TryExec or are hidden
282 * Add missing home_directory User property missing in Vala bindings
284 Overview of changes in lightdm 0.9.2
286 * Fix annotation and Vala bindings for getting the UserList singleton
287 * Fix GTK+ greeter error label not being shown
288 * Don't set SIGQUIT to ignore in child processes
289 * Reworked the PAM code as ecryptfs users weren't able to log in. They
290 can now but not sure what changed to fix that!?
292 Overview of changes in lightdm 0.9.1
294 * Fix up translation build system
295 * Add a --with-greeter-user configure option
296 * Fix greeter-user configuration not being used
297 * Abort greeter if attempted to be run as root and greeter-user set
298 * Fix setting session in GTK+ greeter
300 Overview of changes in lightdm 0.9.0
302 * Fix invalid XAUTHORITY variable being set for second X server.
303 * Fix bug where switching users created X servers without VTs
304 * Release a VT when the X server on it stops
305 * Greeters are now just standard X sessions that are stored in
306 /usr/share/xgreeters.
307 * Binaries now installed in /usr/sbin
308 * Drop most of the configure options, they aren't necessary
310 - Major reorginisation of configuration to make it easier to configure and
311 understand. Users should set [SeatDefaults] section with settings for
312 all seats, and can override each setting in a per seat configuration.
313 - Default seats are now specified using a [Seat:<name>] section. If no seats
314 are specified then one is started. This can be overridden by setting
315 start-default-seat=false in [LightDM].
316 - Support setting autologin user to guest account
317 - Split the user accounts configuration into /etc/lightdm/users.conf so the
318 main config can be private.
319 - The default user session is now "default". Distributions should put a
320 symlink to their chosen default or set one in lightdm.conf.
321 - XDMCP keys now stored in keys.conf
322 * liblightdm API changes:
323 - Both libraries are now version 1 and have API and ABI guarantees.
324 - Face images are now local paths not URIs
325 - liblightdm-gobject now uses lightdm_ prefix instead of ldm_
326 - Non-greeter functions are now moved out of the Greeter class
327 - connect_to_server() is now called connect_sync and blocks until
329 - start_session() is now called start_session_sync and blocks until
330 completion. The quit signal is removed, and the greeter should quit if
331 this method returns TRUE.
332 - login() is now called authenticate()
333 - Greeters now have hints instead of configuration (greeters should load their
334 own configuration from /etc/lightdm if they need it).
335 - liblightdm-gobject uses AccountsService if it is available
336 - Added regression tests for liblightdm-qt
338 - Expose Seats and Sessions on org.freedesktop.DisplayManager
339 - Add a CanSwitch property
340 - Rename ShowGreeter() to SwitchToGreeter()
342 - Drop "example" from the name of the GTK+ and Qt greeters and make them
343 official default greeters.
344 - Use GTK3 for GTK+ greeter.
345 - Removed the Vala and Python GTK+ greeters, they weren't being well
348 Overview of changes in lightdm 0.4.4
350 * Fix failure to accept XDMCP connections due to invalid assert.
351 * Allow minimum-display-number to be set in lightdm.conf and on the command
353 * Session X authority now written to ~/.Xauthority by default. It can be
354 configured to run from the system location by setting
355 user-authority-in-system-dir=true in lightdm.conf.
356 * When using system authority the authority can be updated by the user.
357 * Written X authority files now checks hostname and display number.
358 * Enironment is no longer passed through to X servers and sessions, this is
359 no longer required now PAM works correctly.
360 * liblightdm API changes:
361 - Drop ldm_greeter_get_is_first() - it was added for testing and doesn't
363 * Fix more errors where authentication messages from previous sessions could
364 be confused with new sessions.
365 * Added XDMCP regression tests.
367 Overview of changes in lightdm 0.4.3
369 * Don't replace Plymouth if it isn't running on a valid VT
370 * Allow a null username to log in with - the system will prompt for a
372 * liblightdm API changes:
373 - Rename ldm_greeter_provide_secret to ldm_greeter_respond - responses
375 - show-prompt signal now has a PromptType field
376 - show-message signal now has a MessageType field and takes over
377 behaviour of show-error signal
378 * Fix error where an authentication failure from a previous session could
379 be interpreted as a failure in the current session.
380 * Simplify Vala bindings and add missing methods
382 Overview of changes in lightdm 0.4.2
384 * Fix errors communicating with PAM
385 * Fix interaction with Plytmouth.
386 * Removes the vt option in lightdm.conf, this is no longer required
387 and the active is used for the first display if Plymouth is
388 detected. A new option minimum-vt is added to select the first
389 VT to be used for other displays.
390 * On login switch to an existing session if already logged in with that
392 * Correctly connect up D-Bus interface for user switching
394 Overview of changes in lightdm 0.4.1
396 * Fix linking issue with -z,defs
397 * Added guest account support
398 * Restart X server if it crashes during a session
399 * Don't set language environment variables, use the daemon values
400 (system default) and leave it to ~/.profile for users to set these
401 * Change greeter library API, starting a session no longer has a language
403 * Fix greeter crash when user accounts change
405 Overview of changes in lightdm 0.4.0
407 * Fix crash when child processes quit
408 * Fix crash when catching signals
409 * Fix crash when session quits after X server
410 * Add internal checking for NULL object access
411 * Correctly handle signals from external programs (Thanks to Jason Conti)
412 * liblightdm API changes:
413 - ldm_greeter_start_authentication becomes ldm_greeter_login
414 - The existing ldm_greeter_login is now ldm_greeter_start_session
415 and the username parameter is not required.
416 - Drop ldm_greeter_get_default_layout (X controls the layout)
417 * Configuration changes:
418 - Use /etc/lightdm/lightdm.conf instead of /etc/lightdm.conf
419 - The "displays" item is now called "seats". LightDM will fallback to
420 "displays" if "seats" is not defined, but this is deprecated and will
421 be removed by version 1.0.
422 - Make X server configuration a separate section and now has new options
423 * Automatic login users now use PAM session lightdm-autologin
424 * Use org.freedesktop.DisplayManager instead of
425 org.lightdm.LightDisplayManager for D-Bus name
426 * Add regression tests
427 * Allow many more options to be set from the command line
429 Overview of changes in lightdm 0.3.7
431 * Fix autologin broken in 0.3.3
433 Overview of changes in lightdm 0.3.6
435 * Disable Plymouth when starting
436 * Allow display vt setting to be set to "active" to start on active VT
437 * Fix login in Qt example greeter
438 * Fix typo for High Contrast menu item (GTK example greeter)
440 Overview of changes in lightdm 0.3.5
442 * Set working directory when logging in
443 * Massive improvements to Qt greeter
444 * Fix XDMCP authentication/authorization errors
445 * Have the daemon open a connection to a local X server
446 * Tidy up some debugging messages
448 Overview of changes in lightdm 0.3.4
450 * Updates to liblightdm-qt
451 * Fix --with-cache-dir not working
452 * Set greeterdir in .pc files to point to where greeter engines should be
455 Overview of changes in lightdm 0.3.3
457 * Don't run in test-mode if Xephyr cannot be found
458 * Fix daemon using 100% CPU after greeter quits
459 * Fix crash when users don't have GECOS data
460 * Greeters can now detect user add/remove events
461 * Fix ConsoleKit support broken with switch to GDBus
462 * Correctly clean up X processes on exit
463 * Wait for greeter to quit before running user session (fixes problem with
466 Overview of changes in lightdm 0.3.2
468 * Distribute GTK greeter .ui file
470 Overview of changes in lightdm 0.3.1
472 * Add greeter login_with_defaults method
473 * Add example to the name of all the greeters
474 * Set the configuration for the default display to use VT 7
475 * Fix the vt setting for displays, it was incorrectly named tty
476 * Fix crash when load-users is false in UserManager
477 * Fix up name of .vapi file so it can be used directly from valac
478 * Tidy up Qt library and greeter
479 * Move menubar in greeters to top of screen
480 * Fix console kit get_can_*() methods
481 * Use GtkBuilder for example GTK greeter
483 Overview of changes in lightdm 0.3.0
485 * Correctly pass environment variables through to the session
486 * Allow starting virtual terminal to be configured
487 * Replace D-Bus greeter communication with a private pipe
488 * Use GDBus instead of dbus-glib
489 * Use the engine process name instead of a hardcoded value in theme files
490 * Rename ldm_greeter_connect to ldm_greeter_connect_to_server so it doesn't
491 clash with GObject method name
492 * Rename ldm-gtk-greeter to lightdm-gtk-greeter
493 * Rename gnome theme to example-gtk-gnome
494 * Add more annotations to liblightdm-gobject
495 * Add an example PyGObject, Vala and QT greeter
496 * Generate metadata for QT libraries
497 * Move Webkit greeter into separate module
499 Overview of changes in lightdm 0.2.3
501 * Set correct linking library names in pkg-config files
502 * Handle session executables that take arguments
504 Overview of changes in lightdm 0.2.2
506 * Make default themedir work when --prefix is not passed to configure
507 * Look for face images in ~/.face and ~/.face.icon
508 * Put .vapi file in unversioned vala directory
509 * Fix compiling without QT
510 * Choose the VT to open the display on
511 * Set correct group memberships for sessions (Yves-Alexis Perez)
512 * Set permissions on xauthority file so it can only be read by the owning
513 user (Yves-Alexis Perez)
514 * Set correct permissions on ~/.dmrc (Yves-Alexis Perez)
515 * Add --enable-liblightdm-gobject, --enable-liblightdm-qt configure option
516 * Set environment variables from PAM (Yves-Alexis Perez)
518 Overview of changes in lightdm 0.2.1
520 * Use "lightdm" as default PAM service and make it configurable
521 * Rename libldmgreeter to libldmgreeter-gobject
522 * Add libldmgreeter-qt (David Edmundson)
523 * Fix gobject-introspection build
524 * Renamed libldmgreeter to liblightdm
525 * Install a .vapi file
527 Overview of changes in lightdm 0.2.0
529 * Make default user configuration per-display
530 * Only automatically login the first time
531 * Fix WebKit theme loading and automatic login
532 * Do cross fade for sessions that support it
533 (set X-LightDM-Supports-Transitions=true in their xsession file)
534 * Load user settings from ~/.dmrc
535 * Add configuration for default language/layout
536 * Change language/layout/session when user selected in GTK+ greeter
537 * Set default keyboard layout on first login
538 * Don't run all sessions throught /etc/X11/XSession - make the session
539 wrapper optional and configurable.
540 * Make pkgconfig file require libxklavier
541 * Only compile greeters if have dependencies
542 * Include ck-connector code to reduce library dependencies
543 * Add introspection.m4 to the source tree
544 * Support using no greeter user in lightdm.conf
545 * Flush writes to main log file
546 * Allow non-privilidged user to write greeter log file in /var
547 * Fix bugs stopping running greeter as priviledged user (i.e. root)
548 * Don't default to running greeters with the GDM user - it may not exist!
550 Overview of changes in lightdm 0.1.2
553 * Make user switcher API work
554 * Add a AddDisplay D-Bus method to start new displays
555 * Feed signals to GLib main loop via a pipe
556 * Add an upstart script
557 * Make theme files more similar to existing themes
558 * Change dbus namespace from org.freedesktop.LightDisplayManager to
559 org.lightdm.LightDisplayManager
560 * Write debug log to /var/log/lightdm/lightdm.log instead of stdout. Use
561 --debug for the previous behaviour
562 * Add exec_prefix into libldmgreeter.pc
563 * Change versioned include and pkgconfig files from 1 to 0
564 * Add themedir variable into pkgconfig file
565 * Connect language list in GTK greeter to login language
567 Overview of changes in lightdm 0.1.1
569 * Change licence of libldmgreeter from GPL to LGPL
570 * Write X server and session output to log files
571 * Set PATH, DESKTOP_SESSION, GDMSESSION and USERNAME environment variables
572 * Run sessions through Xsession
573 * Close all X servers on exit
574 * Send SIGHUP to X server when returning to greeter (makes all clients quit)
575 * Change authorization after a session ends so previous session does not get
577 * Make shutdown buttons work in GTK+ greeter
578 * Make user manager configurable
579 * Make GTK+ greeter show username entry if no user list
580 * Hide C and POSIX languages in greeter
581 * Load language and layout from .dmrc file
583 Overview of changes in lightdm 0.1.0
585 * Make --test-mode which runs as the current user
586 * Support displays acting as XDMCP terminals
587 * Support MIT-MAGIC-COOKIE-1 and XDM-AUTHORIZATION-1 authorization
588 * Support XDMCP over IPv6
590 Overview of changes in lightdm 0.0.4
592 * Support XDMCP logins
594 * Clean up resources on exit
595 * Create gettext instance in WebKit greeter
597 Overview of changes in lightdm 0.0.3
599 * Wait for signal from X server before starting session
601 * Add keyboard layout API
602 * Add gettext support to the WebKit greeter
604 Overview of changes in lightdm 0.0.2
606 * Fix installation of D-Bus service file
607 * Allow DISPLAY env variable to be passed to X server so can run Xephyr
608 * Handle no automatic login in webkit theme
610 Overview of changes in lightdm 0.0.1