Hi, all
I am sponsoring this case, and setting the time out to be 04/23/2008.
The proposal is attached.
Please review.
--Irene
-------------- next part --------------
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