Ghee:
In my previous email I asked why we still need to hack
dtlogin-integration's Xsession script to save the user's SHELL variable
and reset it after calling dbus-launch. This seems unnecessary when
calling dbus-launch with --sh-syntax.
Also, why are we patching dtlogin-integration rather than modifying
the dtlogin-integration module and spinning a new release?
> I noticed that there more than one set of dbus-launch/dbus-daemon in
> OpenSolairs b97 + vermillion 100.
> Based on the ordering of pids, the most likely app that launches
> dbus-daemon is iiimd, however I can't
> confirm it since I don't know where the source is, and not sure the
> exact sequence it start.
>
> We need to have a coherence approach to start dbus session, we should
> only have one session dbus
> per user session for memory/efficiency. So the approach is 2 folds:
>
> - We should start dbus session as early as possible when user login,
> Brian Cameron made suggestion to
> put it in /etc/X11/xinit/xinitrc.d, I am clarifying how does this work.
When using GDM, the /etc/X11/gdm/Xsession script has this code:
# run all system xinitrc shell scripts.
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for i in /etc/X11/xinit/xinitrc.d/* ; do
if [ -x "$i" ]; then
. "$i"
fi
done
fi
So, if you install files to this directory, they should run. I
believe that the /etc/x11/xinit directory is empty by default on
both Solaris and OpenSolaris. However, any package (such as
gnome-session) which wants to install a script to make sure that
something like dbus-launch is started can easily create the directory
and add any desired scripts. Since OpenSolaris only uses GDM, this
should work fine.
> - Application should check whether there is DBUS_SESSION_BUS_ADDRESS
> defined before
> doing an explicit dbus-launch.
For this to work with CDE login, though, you would need to also
put the same script in /usr/dt/config/Xsession.d. Since, on
Solaris Nevada, GDM runs both the /etc/X11/gdm/Xsession script
and the /etc/X11/xinit/xinitrc.d scripts, you would obviously
need to check the environment variables as you describe and avoid
starting dbus-launch a second time if it was already started by
an earlier process.
By the way, I understand that Takao is considering moving G11N
specific Xsession startup code that is currently hardcoded into
the GDM Xsession script and/or dtstart script into the
/usr/dt/config/Xsession.d and /etc/X11/xinit/xinitrc.d scripts
so that code is better encapsulated and separated from other
session startup scripting.
Brian