Template Version: @(#)onepager.txt 1.35 07/11/07 SMI Copyright 2007 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: GNOME shutdown dialog 1.2. Name of Document Author/Supplier: Simon Zheng 1.3. Date of This Document: 04/10/08 2. Background In Solaris gnome desktop, there are 4 scenarios that require user to confirm with logout or shutdown action. - Clicking buttons in launch menu of gnome-panel - Response to user pressing power button - Response to suspend key from keyboard - Sending XSMP saveyourself request to gnome-session. e.g. $gnome-session-save --kill As of now, they're handled by 3 different dialogs from gnome-panel, gnome-sys-suspend and gnome-session. It's not good for both user experience and authorization checking. Recently, Defining Workstation Owner Infrastructure (PSARC/2008/034), HAL power management support (PSARC/2008/021) and GNOME power manager (LSARC/2007/702) provide easier underlying interfaces with application to run power management operation. Based on those interfaces, this project will supply user a unified logout and shutdown GUI dialog. 4. Technical Description: 4.1. Details: Two new dialogs will be added on Solaris. One dialog shows user logout and user switch action buttons. The other dialog provides user another 4 actions, suspend, hibernate, shutdown, reboot. These dialogs are consistent with current upstream. Suspend, hibernate, shutdown and reboot actions are done by calling gnome-power-manager interfaces, e.g. "org.freedesktop. PowerManagement.Suspend". Logout action don't have to depend on extra interface, gnome-session just cleans up itself and its child processes to close session. Note that user switch will be hidden until multi-session capability is supported on Solaris. New GUI dialogs are drawn by gnome-session. Likewise, gnome-session will export two new D-Bus interfaces, which are backported from upstream. Via new interfaces, gnome-panel and other applications can notify gnome-session to show user dialog when necessary. For instance, when console user logs in desktop, menu button "Shut Down..." is visible on Launch Menu. If user pushes it, gnome-panel will cause shutdown dialog show up by invoking "org.gnome.SessionManager.Shutdown" instead of current XSMP-based saveyourself request. Please note gnome-sys-suspend will be obsolete after new dialogs are integrated. Another separate case will be filed to make related interface obsolete. 4.2. Bug/RFE Number(s): - CR #6378018 gnome-sys-suspend should offer "logout" and "reboot" choices as well - CR #6378021 gnome-sys-suspend should not offer "Suspend" if system doesn't support it - CR #6621991 No restart option seen in GUI - CR #6554809 Shutdown option should not appear on non-root Sun Ray desktops 4.3. Interfaces: Exported Interfaces Interface Name Classification Comment ------------------- --------------- -------------- org.gnome.SessionManager.Logout Volatile Show logout dialog. Allow user to logout or switch to another user if supported. org.gnome.SessionManager.Shutdown Volatile Show shutdown dialog. Allow user to choose suspend, hibernate, shutdown, reboot if supported. Imported Interfaces Interface Name Classification ARC Case Comment ------------------- --------------- -------------- --------------------------------- D-BUS Volatile LSARC/2006/368 D-Bus and glib-binding library. D-BUS Message Bus System org.freedesktop.PowerManagement.Suspend Volatile LSARC/2007/702 Attempt to suspend the system. GNOME Power Manager org.freedesktop.PowerManagement.Hibernate Volatile The same as above Attempt to hibernate. org.freedesktop.PowerManagement.Shutdown Volatile The same as above Attempt to shutdown. org.freedesktop.PowerManagement.Reboot Volatile The same as above Attempt to reboot. org.freedesktop.PowerManagement.CanSuspend Volatile The same as above If the current session user is able to suspend the system. org.freedesktop.PowerManagement.CanSuspend Volatile The same as above If the current session user is able to suspend the system. org.freedesktop.PowerManagement.CanShutdown Volatile The same as above If the current session user is able to shutdown the system. org.freedesktop.PowerManagement.CanReboot Volatile The same as above If the current session user is able to reboot the system. 4.4. Security Impact: This case is just the consumer of LSARC/2007/702. It doesn't depend on any authorization directly. Since shutdown, suspend, hibernate action aren't available for all users, hardware capability and user authorization need to be checked before showing action buttons on dialog. This checking rely on gnome-power-manager D-Bus interface, e.g. "org.freedesktop.PowerManagement.CanShutdown". In addtions, the same checking is needed before showing "Shut Down..." menu button on Launch Menu. Some distribution, e.g. SunRay, probably wants to hide some buttons and actions. It's easy to be achieved through configuring related power management authorizations (see PSARC/2008/021). 4.5. Dependency: GNOME power manager (LSARC/2007/702) is a putback dependency. 5. Resources and Schedule 5.1 Release Binding Target to a minor release of Solaris 5.2. Consolidation C-team Name: JDS/GNOME 5.3. ARC review type: FastTrack 5.4. ARC Exposure: open 6. Related ARC cases LSARC/2007/702 GNOME power manager LSARC/2006/368 D-BUS Message Bus System PSARC/2008/034 Defining Workstation Owner Infrastructure PSARC/2008/021 HAL Power Management Support