| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
callout invocation
This adds a callout directory called seat.d/ that follows the basic
session.d/ semantics but works on seats instead of sessions.
As replacement for the old session.d/ 'session_active_changed'
semantics seat.d/ knows 'seat_active_session_changed'. Which combines
the two callouts necessary for session_active_changed into one. This has
various advantages: it's not as racy, allows the suppressing of ACL
permission changes when switching between sessions of the same user,
reduces the amount of disk IO and finally is less ugly.
This patch also moves all callout invocations into the CkManager. This
has the advantage that we can guarantee to have fully dumped the CK
database before the callout.
In summary, the session.d/ directory will now get two types of callout
invocations:
session_added
session_removed
In contrast, seat.d/ gets three types:
seat_added
seat_removed
seat_active_session_changed
The 'seat_active_session_changed' callout type gets two sets of
environment variables describing the old resp. the new session that is
active. Either set can be left out if no session was active before, or
no session will be active after the switch. This is similar to the logic
behind D-Bus' NameOwnerChanged.
This patch duplicates CkSeat's 'session-removed' signal into
'session-removed-full' (and friends). Reason for that is that the signal
forwarded via D-Bus needs the session id as string while the callout
code needs the session itself as object. Since at the time of invocation
the CkSeat is no longer in the seats hashtable it is hence necessary to
pass the object in as argument to the signal handlers, which makes this
duplification necessary to not confuse dbus-glib. For a similar reason
'active-session-changed' is duplicated as well.
|
|
|
|
|
|
| |
At one point we had to strip out the docs because dbus-glib didn't support
unknown tags. Apparently this is now fixed. Also install the xml to
/usr/share/dbus-1/interfaces.
|
|
|
|
| |
We don't want scripts going into lib64...
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes polkit an optional dependency. If present
it builds with it. If not, polkit support is disabled.
This patch also adds a --enable-rbac-shutdown=<key> option.
If set, then ConsoleKit will allow shutdown/reboot if the
user has the RBAC key authorization defined. For example,
since the GDM GUI program runs as the "gdm" user, setting
the key for the "gdm" user allows the login program to
shutdown and reboot via ConsoleKit.
Also this patch modifies the tools/solaris/ck-system-restart
and tools/solaris/ck-system-stop scripts to call "/sbin/init 6"
and "/sbin/init 5", which are the right commands for Solaris.
|
|
|
|
| |
This will make it easier to dump/restore.
|
|
|
|
|
| |
Refactor some event logging code to share with ck-history. At the
moment the command only prints the events.
|
|
|
|
|
|
|
|
| |
This adds the ability to log events to a history file. One idea
is to be able to provide wtmp like functionality. The next step
is to add a seat-aware "last" command. This will be very useful
for creating graphical logins that remember the most recent/frequent
logins.
|
|
|
|
|
|
|
|
| |
This feature is useful for programs wanting to read the database
without going through the D-Bus interface. This is sometimes desirable
when both performance and runtime dependencies are important.
For security reasons the file is only readable for the super user.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support for running programs when
1. A session is added
2. A session is removed
3. The activity of a session changes
Executables with the suffix .ck in the directories
$sysconfdir/ConsoleKit/run-session.d
(typically /etc/ConsoleKit/run-session.d)
and
$libdir/ConsoleKit/run-session.d
(typically /usr/lib/ConsoleKit/run-session.d)
will be run on each event. The former directory is meant to be used
for the system administrator and the latter is meant to be used by
programs.
Only when all programs in these directories have run, ConsoleKit will
resume event processing and e.g. broadcast the event on the system
message bus. Hence, this new mechanism can be used to safely
(e.g. without race conditions) perform operations on certain resources
before programs in the desktop session are told they may use them. The
obvious example here is managing ACL's on /dev such that certain
device nodes are only available to users in local and active sessions.
The environment of the program launched is the environment that the
ConsoleKit daemon was launched with and also the following variables
(variables tagged with [*] may not be set).
CK_SESSION_ID
CK_SESSION_TYPE
CK_SESSION_SEAT_ID
CK_SESSION_USER_UID
CK_SESSION_DISPLAY_DEVICE [*]
CK_SESSION_X11_DISPLAY_DEVICE [*]
CK_SESSION_X11_DISPLAY [*]
CK_SESSION_REMOTE_HOST_NAME [*]
CK_SESSION_IS_ACTIVE
CK_SESSION_IS_LOCAL
corresponding to the properties of a Session object in question. Each
program is passed exactly one parameter that can assume one of the
following values:
- session_active_changed: is_active changed
- session_added: the session was added
- session_removed: the session was removed
As a safety hatch, there is a timeout of 15 seconds for each program;
if it hasn't exited within 15 seconds, the daemon will send it a
SIGTERM signal, and move on to the next program. The daemon is still
responsive when the program is running - this is to ensure that the
program itself can call into the org.freedesktop.ConsoleKit service.
|
|
|
|
|
|
|
| |
Fix make dist by making sure ck-sysdeps-freebsd.c is available on all
platforms.
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
|
|
|
|
|
|
|
|
|
| |
- Add Marcus' FreeBSD backend for ConsoleKit. Compiles fine but
test-vt-monitor doesn't seem to work correctly.
- Remove TODO entry.
Submitted by: marcus
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
|
|
|
|
|
|
|
| |
- Add some ifdef's to make the code compile.
- Add ck-sysdeps-freebsd.c, based on the Linux version, which
means it's using linprocfs right now.
Signed-off-by: Florent Thoumie <flz@FreeBSD.org>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Based on a patch from Brian Cameron.
|
| |
|
|
|
|
|
| |
Also add ability to toggle debugging when SIGUSR1 is
received.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The attached patch does the following:
- Use a separate $pam-module-dir variable for the pam module
- Instead of defining a custom $slibdir variable, just use the
standard $libdir variable specified by autoconf
- Use the standard autoconf $docdir variable (Add AC_PREREQ(2.59) for that).
- Drop AS_AC_EXPAND macro and remove AC_DEFINE_UNQUOTED for dir variables.
+ Build the init script at make time using sed
+ Use defines in src/Makefile.am to pass the variables to gcc at make time
- Consistently use AC_HELP_STRING everywhere
- Remove/Replace deprecated macros:
+ AM_INIT_AUTOMAKE takes the package name and version number from AC_INIT
+ AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
+ AC_OUTPUT -> AC_CONFIG_FILES
Patch is tested and make distcheck works.
|
|
|
|
|
| |
Use an async helper job to collect session info for the
OpenSession() method.
|
|
|
|
| |
Also fix a distcheck error.
|
|
|