Commit Graph
13874 Commits
Author SHA1 Message Date
Lennart Poettering 069f5e61eb bus: implement synchronous message calls via kernel ioctl 2014-01-21 21:42:49 +01:00
Tom Gundersen 607553f930 libsystemd: split up into subdirs
We still only produce on .so, but let's keep the sources separate to make things a bit
less messy.
2014-01-21 14:41:35 +01:00
Marcel Holtmann 43d9c2b584 hwdb: Update database of Bluetooth company identifiers 2014-01-20 17:53:16 -08:00
Tom Gundersen c61be55d23 libsystemd-dhcp: revert merge into libsystemd
Unlike the other merged libs, the rest of libsystemd will never depend on
sd-dhcp-client, so there is no reason not to keep it separate.
2014-01-21 00:04:53 +01:00
Kay Sievers 5274f05381 TODO: update 2014-01-20 23:55:02 +01:00
Kay Sievers 97f82db325 Revert "sd-bus: let sd_bus_call() use the synchronous kdbus method"
This reverts commit 021b89861d.

Something is not quite right, "KillUnit" sent from systemctl is not
handled correctly and shutdown has problems.
2014-01-20 23:45:36 +01:00
David Herrmann 49e6fdbf14 logind: introduce session "positions"
logind has no concept of session ordering. Sessions have a unique name,
some attributes about the capabilities and that's already it. There is
currently no stable+total order on sessions. If we use the logind API to
switch between sessions, we are faced with an unordered list of sessions
we have no clue of.

This used to be no problem on seats with VTs or on seats with only a
single active session. However, with the introduction of multi-session
capability for seats without VTs, we need to find a way to order sessions
in a stable way.

This patch introduces session "positions". A position is a simple integer
assigned to a session which is never changed implicitly (currently, we
also don't change it explicitly, but that may be changed someday). For
seats with VTs, we force the position to be the same as the VTnr. Without
VTs, we simply find the lowest unassigned number and use it as position.
If position-assignment fails or if, for any reason, we decide to not
assign a position to a session, the position is set to 0 (which is treated
as invalid position).
During session_load() or if two sessions have the same VTnr, we may end up
with two sessions with the same position (this shouldn't happen, but lets
be fail-safe in case some other part of the stack fails). This case is
dealt with gracefully by ignoring any session but the first session
assigned to the position. Thus, session->pos is a hint, seat->positions[i]
is the definite position-assignment. Always verify both match in case you
need to modify them!

Additionally, we introduce SwitchTo(unsigned int) on the seat-dbus-API.
You can call it with any integer value != 0 and logind will try to switch
to the request position. If you implement a compositor or any other
session-controller, you simply watch for ctrl+alt+F1 to F12 and call
SwitchTo(Fx). logind will figure a way out deal with this number.
For convenience, we also introduce SwitchToNext/Previous(). It should be
called on ctrl+alt+Left/Right (like the kernel-console used to support).

Note that the public API (SwitchTo*()) is *not* bound to the underlying
logic that is implemented now. We don't export "session-positions" on the
dbus/C API! They are an implementation detail. Instead, the SwitchTo*()
API is supposed to be a hint to let logind choose the session-switching
logic. Any foreground session-controller is free to enumerate/order
existing sessions according to their needs and call Session.Activate()
manually. But the SwitchTo*() API provides a uniform behavior across
session-controllers.

Background: Session-switching keys depend on the active keymap. The XKB
specification provides the XKB_KEY_XF86Switch_VT_1-12 key-symbols which
have to be mapped by all keymaps to allow session-switching. It is usually
bound to ctrl+alt+Fx but may be set differently. A compositor passes any
keyboard input to XKB before passing it to clients. In case a key-press
invokes the XKB_KEY_XF86Switch_VT_x action, the keypress is *not*
forwarded to clients, but instead a session-switch is scheduled.

This actually prevents us from handling these keys outside of the session.
If an active compositor has a keymap with a different mapping of these
keys, and logind itself tries to catch these combinations, we end up with
the key-press sent to the compositor's clients *and* handled by logind.
This is *bad* and we must avoid this. The only situation where a
background process is allowed to handle key-presses is debugging and
emergency-keys. In these cases, we don't care for keymap mismatches and
accept the double-event. Another exception is unmapped keys like
PowerOff/Suspend (even though this one is controversial).
2014-01-20 22:30:01 +01:00
Lennart Poettering 7f112f50fe exec: introduce PrivateDevices= switch to provide services with a private /dev
Similar to PrivateNetwork=, PrivateTmp= introduce PrivateDevices= that
sets up a private /dev with only the API pseudo-devices like /dev/null,
/dev/zero, /dev/random, but not any physical devices in them.
2014-01-20 21:28:37 +01:00
Lennart Poettering 3540c7f88f update TODO 2014-01-20 17:57:42 +01:00
Umut Tezduyar Lindskog 8c8f0fb968 sd-dhcp-client: refactor state machine check 2014-01-20 14:01:14 +01:00
Lennart Poettering 67d6621059 systemctl: skip native unit file handling if sysv file handling already handled everything
Issue pointed out by Colin Guthrie.
2014-01-20 13:43:57 +01:00
Lennart Poettering 488ad3b32a update TODO 2014-01-20 13:43:57 +01:00
Daniel Mack 021b89861d sd-bus: let sd_bus_call() use the synchronous kdbus method 2014-01-19 22:57:35 +01:00
Daniel Mack cb67f7184e bus-kernel: move bus_kernel_make_message
This makes future commits more readable.
2014-01-19 22:05:43 +01:00
Tom Gundersen e6674986de networkd: use 'up'/'down' rather than 'on'/'off' 2014-01-19 15:43:33 +01:00
Tom Gundersen 0de638530c networkd: dhcp - by default ignore the MTU 2014-01-18 21:19:09 +01:00
Tom Gundersen b25ef18b33 sd-dhcp-client: refactor client_{free,new}
Make them more simiar to sd_bus and friends. Also factor out the event attachment. In the future,
we will likely want to support external main-loops, so this is a first step. For the time being,
we are still requiring an sd_event to be attached though.
2014-01-18 19:32:45 +01:00
Daniel Buch 35bbea48dc sd-resolv: declare functions from .h public 2014-01-18 17:52:10 +01:00
Daniel Buch 127b55d5a4 sd-resolve: rename get_next() and get_n_queries() + cleanup 2014-01-18 17:52:10 +01:00
Daniel Buch 885d1c80d9 sd-resolve: Allocate objects with new() 2014-01-18 17:52:10 +01:00
Daniel Buch 65883c9108 sd-resolve: get rid of sd_resolve_freeanswer() 2014-01-18 17:52:10 +01:00
Tom Gundersen 039ebe6aeb sd-dhcp-client/networkd: add domainname support 2014-01-18 17:52:10 +01:00
Tom Gundersen bcbca8291f networkd: don't hard depend on system bus
We may not have a dbus daemon in the initrd (until we can rely on kdbus). In
this case, simply ignore any attempts at using the bus. There is only one user
for now, but surely more to come.

In order to work reliably in the real root without kdbus, but at the same time
don't delay boot when kdbus is in use, order ourselves after dbus.service.
2014-01-18 01:56:41 +01:00
Tom Gundersen b2ad8a16ee networkd: resolv.conf - reword comment
Take into account that users may want to use resolvconf(8), or similar. Also,
avoid repeated calls to fputs().
2014-01-18 00:59:07 +01:00
Daniel Mack e4ecabd0a4 libsystemd: sync kdbus.h 2014-01-18 00:50:37 +01:00
Lennart Poettering 02ebe178a2 units: drop [Install] section from multi-user.target and graphical.target
They were supposed to make it easy to make the default.target a symlink
to these targets, but this was never advertised and we have a better
command for this now in "systemctl set-default". Since the install
section makes the output of "systemctl list-unit-files" confusing (since
it makes the units appear as "disabled"), let's drop the sections.
2014-01-17 20:27:35 +01:00
Lennart Poettering 6a8b5fa463 Update TODO 2014-01-17 19:59:50 +01:00
Daniel Buch 5599e86621 sd-resolve: rename structs to fit coding-style e.g 'struct MixedCase'
lets get this right once, and if not for all, atleast for now :)

So comments and input about nameing is very welcome.

Cheers
2014-01-17 19:51:28 +01:00
Daniel Buch 4f80925636 sd-resolve: get rid of _t post-fixes for sd_ objects
We dont want _t prefixes, right?
2014-01-17 19:51:24 +01:00
Umut Tezduyar Lindskog fece63b86e build: Skip .busname generator when kdbus is off 2014-01-17 19:17:38 +01:00
Lukasz Skalski 1ffee377ee bus: Fix read_word_le() function 2014-01-17 18:34:40 +01:00
Lennart Poettering 47c94a96df update TODO 2014-01-17 18:34:40 +01:00
Tom Gundersen b4b5212d31 libsystemd: rename LIBSYSTEMD_BUS to LIBSYSTEMD 2014-01-17 13:53:05 +01:00
Kay Sievers 9ff1897bb5 bus: update kdbus.h (ABI break) 2014-01-17 01:42:35 +01:00
Tom Gundersen 5d8364b3c5 networkd: resolv.conf - extend the comment a bit 2014-01-16 20:32:09 +01:00
Tom Gundersen 5ee482dfd3 sd-dhcp-client: minor style fixes
Also introduce a cleanup macro for DHCPLease
2014-01-16 20:32:09 +01:00
Tom Gundersen 7ae4ef6d23 sd-dhcp-client: refactor DNS support
Rather than keeping an array of pointers to addresses, just keep an array of addresses.
2014-01-16 20:32:08 +01:00
Tom Gundersen 1346b1f038 sd-dhcp-client/networkd: add transient hostname support 2014-01-16 20:32:08 +01:00
Tom Gundersen 6fc7349894 networkd: dhcp - only set the MTU option once
Only set MTU request when creating the dhcp client, not every time it is restarted.
2014-01-16 20:32:08 +01:00
Tom Gundersen 396945dc1f networkd: link - only save original MTU when necessary 2014-01-16 20:32:08 +01:00
Tom Gundersen 1f6d9bc9ee networkd: improve logging 2014-01-16 20:32:08 +01:00
Zbigniew Jędrzejewski-Szmek c4e6e24255 bus: fix issue with reference counting
b7fc42e03 introduced a regression.
2014-01-16 01:15:17 -05:00
Zbigniew Jędrzejewski-Szmek 235ee2134f build-sys: increase valgrind stack limit so all tests pass again 2014-01-16 00:16:02 -05:00
Zbigniew Jędrzejewski-Szmek b7fc42e03a bus: break reference cycle between bus and messages
Previously (6ee4f99 bus: break reference cycle between bus and
messages) I committed the test code, but not the actual fix :)
2014-01-16 00:16:02 -05:00
Chengwei Yang 8114dedc59 build-sys: fix --enable-dbus
The incorrect shell code of AS_IF always get false value, so it always
build without dbus though build with "--enable-dbus" explicitely.
2014-01-16 00:16:02 -05:00
Tom Gundersen 4f882b2a50 sd-dhcp-client/networkd: add interface MTU support 2014-01-16 01:44:19 +01:00
Tom Gundersen eb2f9b1802 sd-rtnl: only alter link flags when reqeusted to 2014-01-16 01:41:12 +01:00
Tom Gundersen b087416f97 sd-dhcp-client: fix memory corruption 2014-01-16 01:41:12 +01:00
Lennart Poettering 31927c16de event: extend priority raneg to 64bit
The kdbus prioq logic will use 64bit prios too, so let's keep this
similar in style. Using 64bit here has the advantage, that pointers and
pretty much anything else can be mapped naturally to priorities if so
desired.
2014-01-15 20:16:20 +01:00
Lennart Poettering ac3efa8ac6 systemctl: introduce new "import-environment" command
This may be used in graphical session start-up scripts to upload
environment variables such as $DISPLAY into the systemd manager easily.
2014-01-15 20:16:20 +01:00