On 02/03/2014 02:02 PM, David C. Rankin wrote:
On 02/03/2014 01:01 PM, Slávek Banko wrote:
Is there
anything we can add to /etc/profile.d/trinity.sh that might
> help?
I assume that the essence of 'good conduct' on Ubuntu
Saucy's is presence
ConsoleKit and creating ConsoleKit session in TDM. I'm afraid that the
absence ConsoleKit requires to add SystemD session management into TDM.
Right now I search the entire git tree if anything use XDG_SESSION_COOKIE,
which is specific for ConsoleKit. Such would require a fix for
the "clean" SystemD session.
Slavek,
What graphical authentication agent does TDE load? Does it work with polkit?
Also, I found:
14:00 phoinix:/dat_e/tde/tde/main/tdebase> grep -rn XDG_SESSION_COOKIE *
tdm/backend/client.c:1315: env = setEnv ( env,
"XDG_SESSION_COOKIE", ck_session_cookie );
tdm/backend/client.c:1320: env = setEnv ( env,
"XDG_SESSION_COOKIE", ck_session_cookie );
So what kind of fix do we need?
There are already preprocessor checks around the consolekit code, so in Arch's
case, they should not even be part of the build:
#ifdef WITH_CONSOLE_KIT
if (ck_session_cookie != NULL) {
env = setEnv ( env, "XDG_SESSION_COOKIE", ck_session_cookie );
}
#endif
#ifdef WITH_CONSOLE_KIT
if (ck_session_cookie != NULL) {
env = setEnv ( env, "XDG_SESSION_COOKIE", ck_session_cookie );
}
#endif
The question become what do we need to add to accommodate systemd. Can we
implement the following in the same place?
Minimal porting (without multi-seat) requires the following:
Remove/disable all code responsible for registering your service with
ConsoleKit.
Make sure to register your greeter session via the PAM session stack, and
make sure the PAM session modules include pam_systemd. Also, make sure to set
the session class to "greeter." This may be done by setting the environment
variable XDG_SESSION_CLASS to "greeter" with pam_misc_setenv() or setting the
"class=greeter" option in the pam_systemd module, in order to allow
applications
to filter out greeter sessions from normal login sessions.
Make sure to register your logged in session via the PAM session stack as
well, also including pam_systemd in it.
Optionally, use pam_misc_setenv() to set the environment variables XDG_SEAT
and XDG_VTNR. The former should contain "seat0", the latter the VT number your
session runs on. pam_systemd can determine these values automatically but it's
nice to pass these variables anyway. In summary: porting a display manager from
ConsoleKit to systemd primarily means removing code, not necessarily adding any
new code. Here, a cheers to simplicity!
--
David C. Rankin, J.D.,P.E.