chiark / gitweb /
8 years agokeymap: Add release quirk for Acer AOA switchvideomode key
Martin Pitt [Tue, 28 Jan 2014 17:10:12 +0000 (18:10 +0100)]
keymap: Add release quirk for Acer AOA switchvideomode key

8 years agobuild-sys: disable lto also for libsystemd-id128
Zbigniew Jędrzejewski-Szmek [Tue, 28 Jan 2014 15:36:11 +0000 (10:36 -0500)]
build-sys: disable lto also for libsystemd-id128

Another instance of

8 years agoalways use the same code for creating temporary files
Lennart Poettering [Tue, 28 Jan 2014 12:47:35 +0000 (13:47 +0100)]
always use the same code for creating temporary files

Let's unify our code here, and also always specifiy O_CLOEXEC.

8 years agoutil: pick slightly safer open() flags when creating temporary files
Lennart Poettering [Tue, 28 Jan 2014 12:26:48 +0000 (13:26 +0100)]
util: pick slightly safer open() flags when creating temporary files

8 years agoutil: define O_TMPFILE on x86/x86-64, where the generic value is used
Lennart Poettering [Tue, 28 Jan 2014 12:25:51 +0000 (13:25 +0100)]
util: define O_TMPFILE on x86/x86-64, where the generic value is used

On other archs we'll not define it so that open_tmpfile() falls back to
unguessable name + unlink.

8 years agoutil: pass original flags value to mkostemp(), in open_tmpfile()
Lennart Poettering [Tue, 28 Jan 2014 12:09:14 +0000 (13:09 +0100)]
util: pass original flags value to mkostemp(), in open_tmpfile()

8 years agoutil: simplify mkostemp_safe()
Lennart Poettering [Tue, 28 Jan 2014 12:08:34 +0000 (13:08 +0100)]
util: simplify mkostemp_safe()

Make it use dev_urandom() and endswith().

8 years agoutil: introduce new dev_urandom() call that is like random_bytes() but doesn't fall...
Lennart Poettering [Tue, 28 Jan 2014 12:07:28 +0000 (13:07 +0100)]
util: introduce new dev_urandom() call that is like random_bytes() but doesn't fall back to PRNG

8 years agoutil: modernize loop_read() and loop_write() a bit
Lennart Poettering [Tue, 28 Jan 2014 12:06:44 +0000 (13:06 +0100)]
util: modernize loop_read() and loop_write() a bit

Let's make use of fd_wait_for_event() here, instead of rolling our own.

8 years agobus: reorder a few things
Lennart Poettering [Tue, 28 Jan 2014 11:33:32 +0000 (12:33 +0100)]
bus: reorder a few things

8 years agobus: update kdbus.h (ABI break)
Kay Sievers [Tue, 28 Jan 2014 11:07:20 +0000 (12:07 +0100)]
bus: update kdbus.h (ABI break)

8 years agoRevert "manager: print ephemeral information about running jobs' timeouts"
Kay Sievers [Tue, 28 Jan 2014 11:03:23 +0000 (12:03 +0100)]
Revert "manager: print ephemeral information about running jobs' timeouts"

This reverts commit 2cba2e03524ec0922ddc70f933e8a89b7d23b4ec.

It breaks bootup with dracut, the transition to the real rootfs fails.

8 years agomanager: also turn on output on unit failure
Zbigniew Jędrzejewski-Szmek [Tue, 28 Jan 2014 03:48:18 +0000 (22:48 -0500)]
manager: also turn on output on unit failure

8 years agomanager: add systemd.show_status=auto mode
Zbigniew Jędrzejewski-Szmek [Tue, 28 Jan 2014 03:27:07 +0000 (22:27 -0500)]
manager: add systemd.show_status=auto mode

When set to auto, status will shown when the first ephemeral message
is shown (a job has been running for five seconds). Then until the
boot or shutdown ends, status messages will be shown.

No indication about the switch is done: I think it should be clear
for the user that first the cylon eye and the ephemeral messages appear,
and afterwards messages are displayed.

The initial arming of the event source was still wrong, but now should
really be fixed.

8 years agojournal: guarantee async-signal-safety in sd_journald_sendv
Zbigniew Jędrzejewski-Szmek [Sun, 26 Jan 2014 04:35:28 +0000 (23:35 -0500)]
journal: guarantee async-signal-safety in sd_journald_sendv

signal(7) provides a list of functions which may be called from a
signal handler. Other functions, which only call those functions and
don't access global memory and are reentrant are also safe.
sd_j_sendv was mostly OK, but would call mkostemp and writev in a
fallback path, which are unsafe.

Being able to call sd_j_sendv in a async-signal-safe way is important
because it allows it be used in signal handlers.

Safety is achieved by replacing mkostemp with open(O_TMPFILE) and an
open-coded writev replacement which uses write. Unfortunately,
O_TMPFILE is only available on kernels >= 3.11. When O_TMPFILE is
unavailable, an open-coded mkostemp is used.

8 years agoReplace mkostemp+unlink with open(O_TMPFILE)
Zbigniew Jędrzejewski-Szmek [Sun, 26 Jan 2014 01:48:01 +0000 (20:48 -0500)]
Replace mkostemp+unlink with open(O_TMPFILE)

This will only work on Linux >= 3.11, and probably not on all
filesystems. Fallback code is provided.

8 years agobus: update bloom filter description a bit
Lennart Poettering [Tue, 28 Jan 2014 00:05:32 +0000 (01:05 +0100)]
bus: update bloom filter description a bit

8 years agobus: rework bloom filter logic to operate with variable bloom filter
Lennart Poettering [Mon, 27 Jan 2014 23:57:38 +0000 (00:57 +0100)]
bus: rework bloom filter logic to operate with variable bloom filter
sizes and numbers of hash functions

In order to make the bloom filter logic more future proof communicate
bloom filter parameters from the original bus creator to the clients,
and allow them to be variable within certain ranges.

8 years agobus: add API calls for connecting to starter bus
Lennart Poettering [Mon, 27 Jan 2014 20:34:54 +0000 (21:34 +0100)]
bus: add API calls for connecting to starter bus

Add new calls sd_bus_open() and sd_bus_default() for connecting to the
starter bus a service was invoked for, or -- if the process is not a
bus-activated service -- the appropriate bus for the scope the process
has been started in.

8 years agoresolve: update sd-resolve to match the other APIs in style and functionality
Lennart Poettering [Mon, 27 Jan 2014 19:12:14 +0000 (20:12 +0100)]
resolve: update sd-resolve to match the other APIs in style and functionality

8 years agobus: when we cannot bus activate a service because we go down, drop one
Lennart Poettering [Wed, 22 Jan 2014 22:36:06 +0000 (23:36 +0100)]
bus: when we cannot bus activate a service because we go down, drop one
message from the queue

8 years agokeymap: Add HP Chromebook 14 (Falco)
Martin Pitt [Mon, 27 Jan 2014 08:04:22 +0000 (09:04 +0100)]
keymap: Add HP Chromebook 14 (Falco)

Thanks to Stefan Nagy <>.

8 years agocore: require mounts for the root and working directories
Zbigniew Jędrzejewski-Szmek [Mon, 27 Jan 2014 06:23:20 +0000 (01:23 -0500)]
core: require mounts for the root and working directories

We know that launching a unit will fail if some required directories
haven't been mounted yet. There's no point in starting it just to
have it fail even before it gets a chance to run.

8 years agocore: simplify check for path absoluteness
Zbigniew Jędrzejewski-Szmek [Mon, 27 Jan 2014 06:23:16 +0000 (01:23 -0500)]
core: simplify check for path absoluteness

Just a microopt.

8 years agomanager: rearm jobs timer
Zbigniew Jędrzejewski-Szmek [Mon, 27 Jan 2014 06:15:27 +0000 (01:15 -0500)]
manager: rearm jobs timer

It would fire just once.

Also fix units from sec to usec as appropriate.

Decrease the switching interval to 1/3 s, so that when the time
remaining is displayed with 1s precision, it doesn't jump by 2s every
once in a while. Also, the system is feels noticably faster when the
status changes couple of times per second instead of every few

8 years agomanager: print ephemeral information about running jobs' timeouts
Zbigniew Jędrzejewski-Szmek [Mon, 27 Jan 2014 05:59:08 +0000 (00:59 -0500)]
manager: print ephemeral information about running jobs' timeouts

Produces output like:
[  *** ] (1 of 2) A start job is running for slow.service (33s / 1min 30s)

The first nubmer is the time since job start, the second is the job timeout.

8 years agocore: add function to tell when job will time out
Zbigniew Jędrzejewski-Szmek [Mon, 27 Jan 2014 05:57:34 +0000 (00:57 -0500)]
core: add function to tell when job will time out

Things will continue when either the job timeout
or the unit timeout is reached. Add functionality to
access that info.

8 years agopam_systemd: Ignore vtnr when seat != seat0
Matthew Monaco [Fri, 24 Jan 2014 18:23:01 +0000 (11:23 -0700)]
pam_systemd: Ignore vtnr when seat != seat0

logind considers it an error for a seat other than seat0 to have a
non-zero vtnr for CreateSession

8 years agodbus1-generator: use XDG_RUNTIME_DIR instead of /run/user/%lu/
Kay Sievers [Sun, 26 Jan 2014 16:51:53 +0000 (17:51 +0100)]
dbus1-generator: use XDG_RUNTIME_DIR instead of /run/user/%lu/

8 years agobuild-sys: expose more phony targets
Zbigniew Jędrzejewski-Szmek [Sun, 26 Jan 2014 16:36:04 +0000 (11:36 -0500)]
build-sys: expose more phony targets

8 years agobuild-sys: add a phony target for cppcheck
Elia Pinto [Wed, 22 Jan 2014 11:28:43 +0000 (03:28 -0800)]
build-sys: add a phony target for cppcheck

The cppcheck target was introduced by commit 16f4efb4150c65e3c61adaa8ea512489de49f532
"build-sys: add cppcheck target". But it is preferable to use a make phony target
for it, as this patch does.

There are two general reasons to use a phony target: to avoid a
conflict with a file of the same name, and to improve performance. In
this case the first reason is obvious, and the second is that make
skips the implicit rule search for phony targets, since it knows that
phony targets do not name actual files that could be remade from other
files (as described in the "Gnu Make" Manual).

8 years agocryptsetup: Support key-slot option
Christian Seiler [Sun, 26 Jan 2014 11:02:49 +0000 (12:02 +0100)]
cryptsetup: Support key-slot option

Debian recently introduced the option key-slot to /etc/crypttab to
specify the LUKS key slot to be used for decrypting the device. On
systems where a keyfile is used and the key is not in the first slot,
this can speed up the boot process quite a bit, since cryptsetup does
not need to try all of the slots sequentially. (Unsuccessfully testing
a key slot typically takes up to about 1 second.)

This patch makes systemd aware of this option.

Debian bug that introduced the feature:

8 years agobuild-sys: update files
Zbigniew Jędrzejewski-Szmek [Sat, 25 Jan 2014 23:55:50 +0000 (18:55 -0500)]
build-sys: update files

8 years agobuild-sys: merge libsystemd-id128 into libsystemd
Zbigniew Jędrzejewski-Szmek [Sat, 25 Jan 2014 21:05:08 +0000 (16:05 -0500)]
build-sys: merge libsystemd-id128 into libsystemd

8 years agobuild-sys: create "compatibility libraries" section
Zbigniew Jędrzejewski-Szmek [Sun, 19 Jan 2014 13:50:02 +0000 (08:50 -0500)]
build-sys: create "compatibility libraries" section

Compat stuff is moved to src/compat-libs/.
Warnings are issued when programs are linked with the deprecated library.

8 years agobuild-sys: disable lto for compatibility libraries
Zbigniew Jędrzejewski-Szmek [Sat, 25 Jan 2014 22:24:19 +0000 (17:24 -0500)]
build-sys: disable lto for compatibility libraries

8 years agobuild-sys: merge libsystemd-login into libsystemd
Zbigniew Jędrzejewski-Szmek [Sun, 19 Jan 2014 05:12:20 +0000 (00:12 -0500)]
build-sys: merge libsystemd-login into libsystemd

A compatibility libsystemd-login library is created which uses
.symver and ifunc magic proposed by Lennart to make programs linked
to the old library name continue to work seamlessly.

Unfortunately the bfd linker crashes:
This will be fixed in binutils 2.25.

As a work-around, gold can be used:

Unfortunately the switch to pick the linker appeared in gcc 4.8.

This also doesn't work with LLVM:

8 years agobuild-sys: default to gold linker
Zbigniew Jędrzejewski-Szmek [Wed, 22 Jan 2014 01:38:49 +0000 (20:38 -0500)]
build-sys: default to gold linker

gold doesn't exhibit the problems with linking of compatibility

It is also slightly faster:

make clean && make -j5   bfd       gold

real                   34.885s     33.707s
user                   34.486s     32.189s
sys                    9.929s      10.845s

real                   35.128s     33.508s
user                   34.660s     31.858s
sys                    10.798s     10.341s

real                   35.405s     33.748s
user                   34.765s     32.384s
sys                    11.635s     10.998s

real                   35.250s     33.795s
user                   34.704s     32.253s
sys                    11.220s     11.469s

touch src/libsystemd/sd-bus.c && make -j5
                        bfd        gold

real                   10.224s      9.030s
user                   11.664s      9.877s
sys                    3.431s       2.878s

real                   10.021s      9.165s
user                   11.526s      9.990s
sys                    3.061s       3.015s

real                   10.233s      8.961s
user                   11.657s      9.973s
sys                    3.467s       2.202s

real                   10.160s      9.086s
user                   11.637s      9.950s
sys                    3.188s       2.859s

8 years agodbus1-generator: add missing "path=" and "unix:*" to DBUS environment variables
Kay Sievers [Sat, 25 Jan 2014 20:04:39 +0000 (21:04 +0100)]
dbus1-generator: add missing "path=" and "unix:*" to DBUS environment variables

This works around the goa daemon crash:
  Jan 25 20:54:24 lon goa[1363]: goa-daemon version 3.10.2 starting [main.c:117, main()]
  Jan 25 20:54:24 lon systemd[424]: Starting Legacy D-Bus Protocol Compatibility Daemon (PID 1363/UID 2702)...
  Jan 25 20:54:24 lon systemd[424]: Started Legacy D-Bus Protocol Compatibility Daemon (PID 1363/UID 2702).
  Jan 25 20:54:24 lon kernel: goa-daemon[1363]: segfault at 20 ip 00007f46914b26d5 sp 00007fff1ae6d9a0 error 4 in[7f469144f000+228000]
  Jan 25 20:54:24 lon systemd-coredump[1368]: Process 1363 (goa-daemon) dumped core.
  Jan 25 20:54:32 lon goa[1375]: goa-daemon version 3.10.2 starting [main.c:117, main()]

8 years agonetworkd: improve logging a bit
Tom Gundersen [Sat, 25 Jan 2014 10:39:22 +0000 (11:39 +0100)]
networkd: improve logging a bit

Fix/add some structured logging messages, and be uniform about when we WARN and ERR.

8 years agonetworkd: add basic VLAN support
Tom Gundersen [Wed, 22 Jan 2014 13:49:24 +0000 (14:49 +0100)]
networkd: add basic VLAN support

8 years agosd-rtnl: extend tests a bit
Tom Gundersen [Sat, 25 Jan 2014 00:22:54 +0000 (01:22 +0100)]
sd-rtnl: extend tests a bit

8 years agosd-rtnl: add support for reading containers
Tom Gundersen [Fri, 24 Jan 2014 20:04:05 +0000 (21:04 +0100)]
sd-rtnl: add support for reading containers

Also insist on messages being sealed before reading them. In other
words we don't allow interleaving of reading and appending to messages.

8 years agobus: bump memfd vs. copy limit to 512k to reflect recent benchmarks
Kay Sievers [Fri, 24 Jan 2014 20:15:34 +0000 (21:15 +0100)]
bus: bump memfd vs. copy limit to 512k to reflect recent benchmarks

8 years agosd-rtnl: add support for nested containers
Tom Gundersen [Fri, 24 Jan 2014 17:44:03 +0000 (18:44 +0100)]
sd-rtnl: add support for nested containers

8 years agobus: update kdbus.h (ABI break)
Kay Sievers [Fri, 24 Jan 2014 18:25:51 +0000 (19:25 +0100)]
bus: update kdbus.h (ABI break)

8 years agoTODO: update
Michal Sekletar [Fri, 24 Jan 2014 16:45:49 +0000 (17:45 +0100)]
TODO: update

ps can display slice unit for a process.

8 years agobus: update kdbus.h (ABI break)
Kay Sievers [Fri, 24 Jan 2014 16:06:36 +0000 (17:06 +0100)]
bus: update kdbus.h (ABI break)

8 years agobus: change API to expose "inverted" no_reply and no_auto_start message flags non...
Lennart Poettering [Wed, 22 Jan 2014 19:45:05 +0000 (20:45 +0100)]
bus: change API to expose "inverted" no_reply and no_auto_start message flags non-inverted

8 years agoupdate TODO
Lennart Poettering [Wed, 22 Jan 2014 19:29:57 +0000 (20:29 +0100)]
update TODO

8 years agobus: add sd_bus_process_priority() to support prioq mode of kdbus
Lennart Poettering [Wed, 22 Jan 2014 19:26:58 +0000 (20:26 +0100)]
bus: add sd_bus_process_priority() to support prioq mode of kdbus

8 years agobus: expose priority field of messages, in preparation for prioq support
Lennart Poettering [Wed, 22 Jan 2014 19:01:23 +0000 (20:01 +0100)]
bus: expose priority field of messages, in preparation for prioq support

8 years agobus: temporarily disable faking of seclabels, as this is broken in kdbus right now
Lennart Poettering [Wed, 22 Jan 2014 18:10:49 +0000 (19:10 +0100)]
bus: temporarily disable faking of seclabels, as this is broken in kdbus right now

8 years agobus: set debug name of proxy bus connections
Lennart Poettering [Wed, 22 Jan 2014 18:08:22 +0000 (19:08 +0100)]
bus: set debug name of proxy bus connections

8 years agobusctl: include connection name in busctl output
Lennart Poettering [Wed, 22 Jan 2014 17:43:03 +0000 (18:43 +0100)]
busctl: include connection name in busctl output

8 years agobus: unescape connection name when reading it from credentials
Lennart Poettering [Wed, 22 Jan 2014 17:45:38 +0000 (18:45 +0100)]
bus: unescape connection name when reading it from credentials

8 years agosd-rtnl: simplify sd_rtnl_message_addr_new()
Tom Gundersen [Tue, 21 Jan 2014 14:55:57 +0000 (15:55 +0100)]
sd-rtnl: simplify sd_rtnl_message_addr_new()

Split out into sd_rtnl_message_addr_set_{prefixlen,flags,scope}().

8 years agonetworkd: add basic bonding support
Tom Gundersen [Tue, 21 Jan 2014 20:58:08 +0000 (21:58 +0100)]
networkd: add basic bonding support

Refactor bridging support to be generic netdev support and extend it to
cover bonding as well.

8 years agosd-rtnl: add sd_rtnl_message_append_u16()
Tom Gundersen [Wed, 22 Jan 2014 13:16:01 +0000 (14:16 +0100)]
sd-rtnl: add sd_rtnl_message_append_u16()

8 years agoDEFINE_STRING_TABLE_LOOKUP: return _INVALID_* rather than assert on NULL string
Tom Gundersen [Tue, 21 Jan 2014 23:14:04 +0000 (00:14 +0100)]
DEFINE_STRING_TABLE_LOOKUP: return _INVALID_* rather than assert on NULL string

8 years agosd-rtnl: link - allow setting the change mask
Tom Gundersen [Tue, 21 Jan 2014 14:20:42 +0000 (15:20 +0100)]
sd-rtnl: link - allow setting the change mask

8 years agobus: pass timestamp info only to caller if he asked for it
Lennart Poettering [Wed, 22 Jan 2014 15:44:32 +0000 (16:44 +0100)]
bus: pass timestamp info only to caller if he asked for it

8 years agobus: include connection name in credentials structure
Lennart Poettering [Wed, 22 Jan 2014 15:28:58 +0000 (16:28 +0100)]
bus: include connection name in credentials structure

8 years agobus: when allocating a memfd for usage in a bus connection, name the memfd after...
Lennart Poettering [Wed, 22 Jan 2014 15:16:04 +0000 (16:16 +0100)]
bus: when allocating a memfd for usage in a bus connection, name the memfd after the bus connection

8 years agobus: add support for attaching name to bus connections for debugging purposes
Lennart Poettering [Wed, 22 Jan 2014 15:09:59 +0000 (16:09 +0100)]
bus: add support for attaching name to bus connections for debugging purposes

8 years agobus: extend memfd api so that we can label memfds for debugging purposes
Lennart Poettering [Wed, 22 Jan 2014 12:06:04 +0000 (13:06 +0100)]
bus: extend memfd api so that we can label memfds for debugging purposes

8 years agoman: document message timestamping/sequence number API
Lennart Poettering [Wed, 22 Jan 2014 10:44:54 +0000 (11:44 +0100)]
man: document message timestamping/sequence number API

8 years agobus: rename sd_bus_get_realtime_timestamp() to sd_bus_get_realtime_usec()
Lennart Poettering [Wed, 22 Jan 2014 10:25:39 +0000 (11:25 +0100)]
bus: rename sd_bus_get_realtime_timestamp() to sd_bus_get_realtime_usec()

This brings the calls into similar style as the respective functions in
libsystemd-journal, and also is a bi shorter and more descriptive since
it clarifies the time unit used.

8 years agobus: simplify naming of feature negotation calls
Lennart Poettering [Wed, 22 Jan 2014 10:21:51 +0000 (11:21 +0100)]
bus: simplify naming of feature negotation calls

Two verbs in a function name suck, so let's simplify this a bit.

8 years agobus: add API for querying the kdbus message sequence number
Lennart Poettering [Wed, 22 Jan 2014 09:57:12 +0000 (10:57 +0100)]
bus: add API for querying the kdbus message sequence number

8 years agoudev: static_node - do not exit rule after first static_node item
Kay Sievers [Wed, 22 Jan 2014 09:47:48 +0000 (10:47 +0100)]
udev: static_node - do not exit rule after first static_node item

The nodes usually do not exist, so handle the next item instead of
skipping the entire rule.

8 years agobus: implement synchronous message calls via kernel ioctl
Lennart Poettering [Tue, 21 Jan 2014 14:02:07 +0000 (15:02 +0100)]
bus: implement synchronous message calls via kernel ioctl

8 years agolibsystemd: split up into subdirs
Tom Gundersen [Tue, 21 Jan 2014 13:10:18 +0000 (14:10 +0100)]
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.

8 years agohwdb: Update database of Bluetooth company identifiers
Marcel Holtmann [Tue, 21 Jan 2014 01:53:16 +0000 (17:53 -0800)]
hwdb: Update database of Bluetooth company identifiers

8 years agolibsystemd-dhcp: revert merge into libsystemd
Tom Gundersen [Mon, 20 Jan 2014 22:40:30 +0000 (23:40 +0100)]
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.

8 years agoTODO: update
Kay Sievers [Mon, 20 Jan 2014 22:55:02 +0000 (23:55 +0100)]
TODO: update

8 years agoRevert "sd-bus: let sd_bus_call() use the synchronous kdbus method"
Kay Sievers [Mon, 20 Jan 2014 22:42:05 +0000 (23:42 +0100)]
Revert "sd-bus: let sd_bus_call() use the synchronous kdbus method"

This reverts commit 021b89861d0b1defcbd6ba71d1aaf6271785a942.

Something is not quite right, "KillUnit" sent from systemctl is not
handled correctly and shutdown has problems.

8 years agologind: introduce session "positions"
David Herrmann [Sat, 30 Nov 2013 10:39:48 +0000 (11:39 +0100)]
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

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).

8 years agoexec: introduce PrivateDevices= switch to provide services with a private /dev
Lennart Poettering [Mon, 20 Jan 2014 18:54:51 +0000 (19:54 +0100)]
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.

8 years agoupdate TODO
Lennart Poettering [Mon, 20 Jan 2014 16:57:42 +0000 (17:57 +0100)]
update TODO

8 years agosd-dhcp-client: refactor state machine check
Umut Tezduyar Lindskog [Mon, 20 Jan 2014 08:58:41 +0000 (09:58 +0100)]
sd-dhcp-client: refactor state machine check

8 years agosystemctl: skip native unit file handling if sysv file handling already handled every...
Lennart Poettering [Mon, 20 Jan 2014 12:43:20 +0000 (13:43 +0100)]
systemctl: skip native unit file handling if sysv file handling already handled everything

Issue pointed out by Colin Guthrie.

8 years agoupdate TODO
Lennart Poettering [Mon, 20 Jan 2014 12:42:52 +0000 (13:42 +0100)]
update TODO

8 years agosd-bus: let sd_bus_call() use the synchronous kdbus method
Daniel Mack [Sat, 18 Jan 2014 19:09:14 +0000 (20:09 +0100)]
sd-bus: let sd_bus_call() use the synchronous kdbus method

8 years agobus-kernel: move bus_kernel_make_message
Daniel Mack [Sat, 18 Jan 2014 19:06:21 +0000 (20:06 +0100)]
bus-kernel: move bus_kernel_make_message

This makes future commits more readable.

8 years agonetworkd: use 'up'/'down' rather than 'on'/'off'
Tom Gundersen [Sun, 19 Jan 2014 14:43:33 +0000 (15:43 +0100)]
networkd: use 'up'/'down' rather than 'on'/'off'

8 years agonetworkd: dhcp - by default ignore the MTU
Tom Gundersen [Sat, 18 Jan 2014 20:19:09 +0000 (21:19 +0100)]
networkd: dhcp - by default ignore the MTU

8 years agosd-dhcp-client: refactor client_{free,new}
Tom Gundersen [Sat, 18 Jan 2014 18:32:45 +0000 (19:32 +0100)]
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.

8 years agosd-resolv: declare functions from .h public
Daniel Buch [Sat, 18 Jan 2014 15:07:31 +0000 (16:07 +0100)]
sd-resolv: declare functions from .h public

8 years agosd-resolve: rename get_next() and get_n_queries() + cleanup
Daniel Buch [Sat, 18 Jan 2014 13:30:28 +0000 (14:30 +0100)]
sd-resolve: rename get_next() and get_n_queries() + cleanup

8 years agosd-resolve: Allocate objects with new()
Daniel Buch [Sat, 18 Jan 2014 13:30:27 +0000 (14:30 +0100)]
sd-resolve: Allocate objects with new()

8 years agosd-resolve: get rid of sd_resolve_freeanswer()
Daniel Buch [Sat, 18 Jan 2014 13:30:26 +0000 (14:30 +0100)]
sd-resolve: get rid of sd_resolve_freeanswer()

8 years agosd-dhcp-client/networkd: add domainname support
Tom Gundersen [Sat, 18 Jan 2014 14:47:57 +0000 (15:47 +0100)]
sd-dhcp-client/networkd: add domainname support

8 years agonetworkd: don't hard depend on system bus
Tom Gundersen [Sat, 18 Jan 2014 00:37:35 +0000 (01:37 +0100)]
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.

8 years agonetworkd: resolv.conf - reword comment
Tom Gundersen [Fri, 17 Jan 2014 16:09:56 +0000 (17:09 +0100)]
networkd: resolv.conf - reword comment

Take into account that users may want to use resolvconf(8), or similar. Also,
avoid repeated calls to fputs().

8 years agolibsystemd: sync kdbus.h
Daniel Mack [Fri, 17 Jan 2014 23:50:37 +0000 (00:50 +0100)]
libsystemd: sync kdbus.h

8 years agounits: drop [Install] section from and
Lennart Poettering [Fri, 17 Jan 2014 19:27:35 +0000 (20:27 +0100)]
units: drop [Install] section from and

They were supposed to make it easy to make the 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.

8 years agoUpdate TODO
Lennart Poettering [Fri, 17 Jan 2014 18:59:50 +0000 (19:59 +0100)]
Update TODO

8 years agosd-resolve: rename structs to fit coding-style e.g 'struct MixedCase'
Daniel Buch [Wed, 15 Jan 2014 17:21:30 +0000 (18:21 +0100)]
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.


8 years agosd-resolve: get rid of _t post-fixes for sd_ objects
Daniel Buch [Wed, 15 Jan 2014 17:21:29 +0000 (18:21 +0100)]
sd-resolve: get rid of _t post-fixes for sd_ objects

We dont want _t prefixes, right?