Comment 8 for bug 218494

Revision history for this message
In , Halton Huo (halton-huo) wrote :

This is a feature requested by new GDM, which is to add gdmdynamic supporting in GDM. Refer to bug http://bugzilla.gnome.org/show_bug.cgi?id=536355.

There are two options to achieve this goal.

Option #1: Implement in ConsoleKit and GDM code. Add ck-dynamic in ConsoleKit,

        Xserver
           ^
           | STEP 4: Create/Kill a Xsession on ":101"
           |
      gdm-binary (Listern for event from ConsoleKit)
           ^
           | STEP 3: Signal CreateDisplay/RemoveDisplay event
           | with display ":101"
    _ _ _ _|
   | ck-dynamic
   | | ^
   | __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ | |
   | | |
   | | STEP 2: Require to CreateSession/RemoveSession |
   | | with display ":101" |
   | | |
   | V STEP 1: Call ck-dynamic when a display, e.g. ":101", |
ConsoleKit is added/removed. |
                                                                        |
                                                               Xmgr/gdm Script

1. gdm-binary to listen for CreateDynamicDisplay/RemoveDynamicDisplay event to org.gnome.DisplayManager.LocalDisplayFactory
2. console-kit-daemon to listen for CreateSession/RemoveSession/ListenCreatedSessions events to org.freedesktop.ConsoleKit.Manager
3. ListenCreatedSessions only talks to ConsoleKit
4. gdmdynamic is a script wrapper for ck-dynamic

Option #2: Implement inside GDM code.

 Xserver
    ^
    | STEP 4: Create/Kill Xserver regarding ":101"
    |
 gdm-binary (Listern for event from ConsoleKit)
    ^ ^
    | |__ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
    | |
    | STEP 3: Register/Unregister a X session |
    | corresponding to ":101" |
    | |
    | STEP 2: Require GDM to start/terminate Xsession for ":101" |
    | |
    | gdmdynamic
    | |
    V STEP 1: Call gdmdyncmic when a display, e.g. ":101", |
ConsoleKit is added/removed. |
                                                                Xmgr/gdm Script

Option #2 is how patch in http://bugzilla.gnome.org/show_bug.cgi?id=536355#c5 does.