StracciatellaSession

Differences between revisions 1 and 2
Revision 1 as of 2009-02-18 15:59:22
Size: 3585
Editor: p579DE689
Comment:
Revision 2 as of 2009-02-18 16:55:37
Size: 4536
Editor: p579DE689
Comment:
Deletions are marked like this. Additions are marked like this.
Line 31: Line 31:
== Assumptions == == Scope ==
Line 45: Line 45:
 1. The messaging indicator applet will silently not start if that session is selected.  1. The messaging indicator applet will not appear if that session is selected.
Line 78: Line 78:
=== messaging indicator === === Messaging indicator ===
Line 80: Line 80:
TODO There is currently no clean way to use a different GNOME panel layout
for different sessions, since it is all hardcoded in gconf. So we have
to assume that the messaging indicator applet will always start, even
in the GNOME session. It can't just `exit()`, since then the panel
will pop up a dialog to say that the applet unexpectedly crashed and
offer to restart it.

For Jaunty, we will use a nonintrusive approach: In the stracciatella
session, the applet will just not do and display anything at all. Then
`evolution-indicator` will send notifications into the void and thus
appear "sufficiently" disabled as well.

=== Upstream evolution notifier ===

Evolution does not have a concept of enabling/disabling plugins, they
are always used when installed. evolution-notifier (upstream) and
evolution-indicator (Ubuntu specific for now) thus can and will run
side by side.

No action is required on those two for providing a stracciatella
session.
  • Launchpad Entry: stracciatella-session

  • Created: 2009-02-18

  • Contributors: Rick Spencer, Mark Shuttleworth, Sebastien Bacher, Martin Pitt

  • Packages affected: notify-osd

Summary

We provide an easy way for users and developers to get a "mostly GNOME upstream" (vanilla) session with only very few Ubuntu modifications (some brown crumbs).

Release Note

To be done when beta is available.

Rationale

We want software developers to be able to test their software in a GNOME environment as well as in the Ubuntu Desktop, which has some different parts (notifications, messaging indicators, etc.).

We also want GNOME to be able to deliver their intended experience to users.

Use Cases

  • Fred develops an tea timer applet. He usually uses Ubuntu, but wants to check whether his latest version still looks good and works well under a standard GNOME desktop. He installs "gnome-stracciatella-session", chooses the "Upstream GNOME" session in gdm, and lands in a desktop without messaging indicator and the standard notification-daemon.

Scope

  • This works on component granularity, not on the level of patches. We currently do not have the infrastructure to provide a real "pure" GNOME environment, since some patches will even be required just to build and work at all under Ubuntu. Instead, we promise that when we exchange a component of GNOME, such as the notification system, we provide the upstream GNOME one as an alternative.
  • We do not want to use anything that modifies the user's configuration, such as changing gconf keys or configuration files.
  • For Jaunty our particular focus is the messaging indicator and the new notification system (notify-osd). Further components will be added to it in future Ubuntu releases when Ubuntu modifies/replaces more components.

Design

  1. We create a new package gnome-stracciatella-session which provides a new session "GNOME (without Ubuntu modifications)" and pulls in some upstream GNOME components.

  2. notify-osd will run the standard notification-daemon if that session is selected.
  3. The messaging indicator applet will not appear if that session is selected.
  4. The upstream evolution notification applet will be enabled if the user previously enabled it.

Implementation

gnome-stracciatella package

Package gnome-stracciatella-session:

  • provides a new session type /usr/share/xsessions/gnome-stracciatella.desktop, with

      Exec=/usr/bin/env GDMSESSION=gnome-stracciatella /usr/bin/gnome-session

It pulls in the notification-daemon package as a dependency.

D-BUS activated services

For D-BUS activated services like notify-osd we modify their .service files to run the upstream service:

  •    Exec=/bin/sh -c "if [ \"$GDMSESSION\" = gnome-stracciatella ]; then exec /usr/lib/notification-daemon/notification-daemon; else exec /usr/lib/notify-osd/alsdorf"

The Conflicts:/Replaces: notification-daemon needs to be dropped and replaced with a diversion of notification-daemon's D-BUS .service file.

These two steps will make the packages co-installable and start the wanted daemon based on the selected session type.

Messaging indicator

There is currently no clean way to use a different GNOME panel layout for different sessions, since it is all hardcoded in gconf. So we have to assume that the messaging indicator applet will always start, even in the GNOME session. It can't just exit(), since then the panel will pop up a dialog to say that the applet unexpectedly crashed and offer to restart it.

For Jaunty, we will use a nonintrusive approach: In the stracciatella session, the applet will just not do and display anything at all. Then evolution-indicator will send notifications into the void and thus appear "sufficiently" disabled as well.

Upstream evolution notifier

Evolution does not have a concept of enabling/disabling plugins, they are always used when installed. evolution-notifier (upstream) and evolution-indicator (Ubuntu specific for now) thus can and will run side by side.

No action is required on those two for providing a stracciatella session.

Migration

No migration is involved, this should not ever become the default session.

Test/Demo Plan

To be added when a beta is available.


CategorySpec

DesktopTeam/Specs/Jaunty/StracciatellaSession (last edited 2009-02-25 09:39:48 by p579DE308)