cups/gdm/gsession
gsession: depends on xserver
dbus: session
    the theory is that only xserver role callers acquire service on the
    session bus, thus dbus role depends on xserver role, and gnome
    depends on dbus

    xserver does not depend on dbus

    (optional xserver_role ...
        (optional dbus_role ....
            (optional gnome_role ... )))