Hi, it looks as if Kchildlock doesn't work at all on Opensuse 13 and I think I can fix that if I understand the concept behind.
I am not so used to C++ (more Python) but from things I can see it like an issue with KchildlockDaemon, that cannot find the correct user information.
There is a class that should provide the user info: CurrentUserState()
This will get its content from get_active_user() and others, right?
However get_active_user isn't in the package, maybe somewhere else (older ConsoleKit?).
As a result after activating debugging I get this file:
cat /var/opt/kchildlock/kchildlockd_20140209_133215_debuglog.tmp
Starting kchildlock daemon (version 0.90.4) ...
date and time is 9.2.2014. 13:32:15
after the initial timeout...
date and time is 9.2.2014. 13:32:20
function=get_active_user 1: actsessionPath=
function=get_active_user 2: no active session
function=get_active_user 1: actsessionPath=
function=get_active_user 2: no active session
filename /var/opt/kchildlock/.kch_time.dat
User gets default consumed times values without file;
woy=6. dow=7. usd=0, usw=0
This shows that kchildlock cannot get the correct user and some other data.
Is it possible that functions like get_active_user (and others) are replaced by something else in KDE4 or ConsoleKit?
BTW, I am running the 64bit version of OpenSuse and kchildlock compiles and installs without complaint.
OK, during my waiting time to start a discussion I found the following:
get_active_user IS defined in user_session.cpp, but it looks as if consolekit don't give the right answer on:
$ dbus-send --system --dest=org.freedesktop.ConsoleKit --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/ConsoleKit/Seat1 org.freedesktop.ConsoleKit.Seat.GetActiveSession
Error org.freedesktop.DBus.GLib.UnmappedError.CkSeatError.Code0: Seat has no active session
and
$ ck-list-sessions
Session1:
unix-user = '30026'
realname = 'thomas'
seat = 'Seat2'
session-type = ''
active = FALSE
x11-display = ''
x11-display-device = ''
display-device = ''
remote-host-name = ''
is-local = FALSE
on-since = '2014-02-10T09:40:52.993215Z'
login-session-id = '1'
The FALSE is the point here.
I may be false but is it possible the Opensuse don't use ConsoleKit anymore?