chiark / gitweb /
7 years agobus: decorate API calls with gcc attributes where appropriate
Lennart Poettering [Fri, 11 Oct 2013 03:21:08 +0000 (05:21 +0200)]
bus: decorate API calls with gcc attributes where appropriate

7 years agobus: allow specifying NULL as type string when we want to construct messages with...
Lennart Poettering [Fri, 11 Oct 2013 03:20:24 +0000 (05:20 +0200)]
bus: allow specifying NULL as type string when we want to construct messages with no payload

7 years agobus: make GetManagedObjects() work
Lennart Poettering [Fri, 11 Oct 2013 02:52:38 +0000 (04:52 +0200)]
bus: make GetManagedObjects() work

7 years agoevent: add apis to query the timestamp of the event currently processed
Lennart Poettering [Fri, 11 Oct 2013 02:36:02 +0000 (04:36 +0200)]
event: add apis to query the timestamp of the event currently processed

7 years agoevent: move all library calls over to new assert_return() macro
Lennart Poettering [Fri, 11 Oct 2013 00:11:30 +0000 (02:11 +0200)]
event: move all library calls over to new assert_return() macro

7 years agoevent: add sd_event_source_get_child_pid() call to query the PID of a child event...
Lennart Poettering [Thu, 10 Oct 2013 23:33:25 +0000 (01:33 +0200)]
event: add sd_event_source_get_child_pid() call to query the PID of a child event source

7 years agoevent: rename the "mute" field of event sources to "enabled"
Lennart Poettering [Thu, 10 Oct 2013 23:08:15 +0000 (01:08 +0200)]
event: rename the "mute" field of event sources to "enabled"

In addition, the states "UNMUTED" and "MUTED" become "ON" and "OFF".

This has the benefit that a possible value of this field is not
identical to its name, thus minimizing confusion.

7 years agoevent: implement quit handlers
Lennart Poettering [Thu, 10 Oct 2013 22:49:11 +0000 (00:49 +0200)]
event: implement quit handlers

Quit handlers are executed when an event loop is terminated via
sd_event_request_quit(). They are in a way atexit() handlers that are
executed in a well-defined environment, time and thread: from the event
loop thread when the event loop finishes.

7 years agomacro: add new assert_return() macro for early parameter checking in functions
Lennart Poettering [Thu, 10 Oct 2013 22:45:47 +0000 (00:45 +0200)]
macro: add new assert_return() macro for early parameter checking in functions

For the library functions we expose we currently repeatedly use checks
like the following:

if (!value_is_ok(parameter1))
        return -EINVAL;
if (!value_is_ok(parameter2))
        return -EINVAL;

And so on. Let's turn this into a macro:

assert_return(value_is_ok(parameter1), -EINVAL);
assert_return(value_is_ok(paramater2), -EINVAL);

This makes our code a bit shorter and simpler, and also allows us to add
a _unlikely_() around the check.

7 years agoevent: refuse operation if the caller tries to reuse an event loop after a fork()
Lennart Poettering [Thu, 10 Oct 2013 19:37:50 +0000 (21:37 +0200)]
event: refuse operation if the caller tries to reuse an event loop after a fork()

7 years agoevent: add timer accuracy/coalescing logic
Lennart Poettering [Thu, 10 Oct 2013 19:16:21 +0000 (21:16 +0200)]
event: add timer accuracy/coalescing logic

In order to improve energy consumption we should minimize our wake-ups
when handling timers.  Hence, for each timer take an accuracy value and
schedule the actual wake-up time somewhere between the specified time
and the specified timer plus the accuracy.

The specified time of timer event sources hence becomes the time the
handler is called the *earliest*, and the specified time plus the accuracy
the time by which it is called the *latest*, leaving the library the
freedom to schedule the wake-up somewhere inbetween.

If the accuracy is specified as 0 the default of 250ms will be used.

When scheduling timeouts we will now try to elapse them at the same
point within each second, across the entire system. We do this by using
a fixed perturbation value keyed off the boot id. If this point within a
second is not in the acceptable range, we try again with a fixed time
within each 250ms time step. If that doesn't work either, we wake up at
the last possible time.

7 years agosecurity: missing header inclusions
Lennart Poettering [Thu, 10 Oct 2013 19:13:31 +0000 (21:13 +0200)]
security: missing header inclusions

7 years agobus: fix duplicate comparisons
Tero Roponen [Thu, 10 Oct 2013 05:14:24 +0000 (08:14 +0300)]
bus: fix duplicate comparisons

Testing for y > x is the same as testing for x < y.

7 years agosecurity: rework selinux, smack, ima, apparmor detection logic
Lennart Poettering [Thu, 10 Oct 2013 14:35:44 +0000 (16:35 +0200)]
security: rework selinux, smack, ima, apparmor detection logic

Always cache the results, and bypass low-level security calls when the
respective subsystem is not enabled.

7 years agologin: make sd_session_get_vt() actually work
David Herrmann [Thu, 10 Oct 2013 11:11:27 +0000 (13:11 +0200)]
login: make sd_session_get_vt() actually work

We use VTNR, not VTNr as key. Until now sd_session_get_vt() just returns
an error.

7 years agologin: fix invalid free() in sd_session_get_vt()
David Herrmann [Thu, 10 Oct 2013 11:09:37 +0000 (13:09 +0200)]
login: fix invalid free() in sd_session_get_vt()

We need to clear variables markes as _cleanup_free_. Otherwise, our
error-paths might corrupt random memory.

7 years agobus: add minimal event loop API
Lennart Poettering [Thu, 10 Oct 2013 02:40:28 +0000 (04:40 +0200)]
bus: add minimal event loop API

So far we tried to use epoll directly wherever we needed an event loop.
However, that has various shortcomings, such as the inability to handle
larger amounts of timers (since each timerfd costs one fd, which is a
very limited resource, usually bounded to 1024), and inability to do
priorisation between multiple queued events.

Let's add a minimal event loop API around epoll that is suitable for
implementation of our own daemons and maybe one day can become public
API for those who desire it.

This loop is part of libsystemd-bus, but may be used independently of

7 years agojournald: remove rotated file from hashmap when rotation fails
Zbigniew Jędrzejewski-Szmek [Thu, 10 Oct 2013 02:13:13 +0000 (22:13 -0400)]
journald: remove rotated file from hashmap when rotation fails

Before, when the user journal file was rotated, journal_file_rotate
could close the old file and fail to open the new file. In that
case, we would leave the old (deallocated) file in the hashmap.
On subsequent accesses, we could retrieve this stale entry, leading
to a segfault.

When journal_file_rotate fails with the file pointer set to 0,
old file is certainly gone, and cannot be used anymore.

7 years agojournald: replace new+snprintf with asprintf
Zbigniew Jędrzejewski-Szmek [Thu, 10 Oct 2013 02:13:04 +0000 (22:13 -0400)]
journald: replace new+snprintf with asprintf

7 years agodo not accept "garbage" from acpi firmware performance data (FPDT)
Kay Sievers [Wed, 9 Oct 2013 23:38:11 +0000 (01:38 +0200)]
do not accept "garbage" from acpi firmware performance data (FPDT)

00000000  46 42 50 54 38 00 00 00  02 00 30 02 00 00 00 00  |FBPT8.....0.....|
00000010  23 45 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |#E..............|
00000020  f5 6a 51 00 00 00 00 00  00 00 00 00 00 00 00 00  |.jQ.............|
00000030  00 00 00 00 00 00 00 00  70 74 61 6c 58 00 00 00  |........ptalX...|

7 years agoSmack: Test if smack is enabled before mounting
Auke Kok [Wed, 9 Oct 2013 17:52:15 +0000 (10:52 -0700)]
Smack: Test if smack is enabled before mounting

Since on most systems with xattr systemd will compile with Smack
support enabled, we still attempt to mount various fs's with
Smack-only options.

Before mounting any of these Smack-related filesystems with
Smack specific mount options, check if Smack is functionally
active on the running kernel.

If Smack is really enabled in the kernel, all these Smack mounts
are now *fatal*, as they should be.

We no longer mount smackfs if systemd was compiled without
Smack support. This makes it easier to make smackfs mount
failures a critical error when Smack is enabled.

We no longer mount these filesystems with their Smack specific
options inside containers. There these filesystems will be
mounted with there non-mount smack options for now.

7 years agoudev: add SECLABEL{selinux}= support
Kay Sievers [Wed, 9 Oct 2013 15:31:00 +0000 (17:31 +0200)]
udev: add SECLABEL{selinux}= support

7 years agokeymap: Fix Samsung 900X[34]C
Martin Pitt [Wed, 9 Oct 2013 14:05:15 +0000 (16:05 +0200)]
keymap: Fix Samsung 900X[34]C

It appears that it's not really the 900 vs. 940 or the X3 vs X4, but the
A/B/C/D suffix after that which makes the difference between the keymaps. On a
NP900X3C-A04RU you get


So change the matches to use AB vs. CDG as the differentiator.

Thanks to Anatoly Markov for reporting and testing!

7 years agoudev: reset Linux Security Module labels if no custom rules are given
Kay Sievers [Wed, 9 Oct 2013 02:17:39 +0000 (04:17 +0200)]
udev: reset Linux Security Module labels if no custom rules are given

7 years agobus: fix missing initialization
Lennart Poettering [Wed, 9 Oct 2013 02:04:10 +0000 (04:04 +0200)]
bus: fix missing initialization

7 years agotests: fix some memory leaks in tests
Lennart Poettering [Wed, 9 Oct 2013 02:04:04 +0000 (04:04 +0200)]
tests: fix some memory leaks in tests

7 years agojournald: fix minor memory leak
Lennart Poettering [Wed, 9 Oct 2013 02:03:45 +0000 (04:03 +0200)]
journald: fix minor memory leak

7 years agobuild-sys: add a makefile target to run all tests through valgrind
Lennart Poettering [Wed, 9 Oct 2013 02:02:54 +0000 (04:02 +0200)]
build-sys: add a makefile target to run all tests through valgrind

7 years agobuild-sys: add sd-bus-vtable.h header
Kay Sievers [Wed, 9 Oct 2013 01:39:57 +0000 (03:39 +0200)]
build-sys: add sd-bus-vtable.h header

7 years agobus: fix GetAll() userdata passing
Lennart Poettering [Wed, 9 Oct 2013 01:28:59 +0000 (03:28 +0200)]
bus: fix GetAll() userdata passing

7 years agobus: don't require that if a child object node exists its parent node must too
Lennart Poettering [Wed, 9 Oct 2013 01:27:22 +0000 (03:27 +0200)]
bus: don't require that if a child object node exists its parent node must too

7 years agobus: fix synthetic error messages
Lennart Poettering [Wed, 9 Oct 2013 01:26:34 +0000 (03:26 +0200)]
bus: fix synthetic error messages

7 years agolibsystemd-bus: add lightweight object vtable implementation for exposing objects...
Lennart Poettering [Wed, 9 Oct 2013 00:37:10 +0000 (02:37 +0200)]
libsystemd-bus: add lightweight object vtable implementation for exposing objects on the bus

This adds a lightweight scheme how to define interfaces in static fixed
arrays which then can be easily registered on a bus connection. This
makes it much easier to write bus services.

This automatically handles implementation of the Properties,
ObjectManager, and Introspection bus interfaces.

7 years agocore: unify the way we denote serialization attributes
Lennart Poettering [Tue, 8 Oct 2013 22:13:55 +0000 (00:13 +0200)]
core: unify the way we denote serialization attributes

7 years agosystemd: serialize/deserialize forbid_restart value
Sylvia Else [Mon, 7 Oct 2013 03:06:35 +0000 (23:06 -0400)]
systemd: serialize/deserialize forbid_restart value

The Service type's forbid_restart field was not preserved by
serialization/deserialization, so the fact that the service should not
be restarted after stopping was lost.

If a systemctl stop foo command has been given, but the foo service
has not yet stopped, and then the systemctl --system daemon-reload was
given, then when the foo service eventually stopped, systemd would
restart it.

7 years agojournalctl: flip to --full by default
Zbigniew Jędrzejewski-Szmek [Mon, 7 Oct 2013 01:55:18 +0000 (21:55 -0400)]
journalctl: flip to --full by default

We already shew lines in full when using a pager or not on a
tty. The commit disables ellipsization in the sole remaining case,
namely when --follow is used.

This has been a popular request for a long time, and indeed, full
output seems much more useful. Old behaviour can still be requested by
using --no-full. Old options retain their behaviour for compatiblity,
but aren't advertised as much. This change applies only to jornalctl,
not to systemctl, when ellipsization is useful to keep the layout.

7 years agoudev: support custom Linux Security Module labels for device nodes
Kay Sievers [Mon, 7 Oct 2013 23:59:10 +0000 (01:59 +0200)]
udev: support custom Linux Security Module labels for device nodes

7 years agoRun with a custom SMACK domain (label).
Auke Kok [Wed, 25 Sep 2013 22:49:42 +0000 (15:49 -0700)]
Run with a custom SMACK domain (label).

Allows the systemd --system process to change its current
SMACK label to a predefined custom label (usually "system")
at boot time.

This is needed to have a few system-generated folders and
sockets automatically be created with the right SMACK
label. Without that, processes either cannot communicate with
systemd or systemd fails to perform some actions.

7 years agoMount /run, /dev/shm usable to tasks when using SMACK.
Auke Kok [Thu, 26 Sep 2013 21:41:09 +0000 (14:41 -0700)]
Mount /run, /dev/shm usable to tasks when using SMACK.

Once systemd itself is running in a security domain for SMACK,
it will fail to start countless tasks due to missing privileges
for mounted and created directory structures. For /run and shm
specifically, we grant all tasks access.

These 2 mounts are allowed to fail, which will happen if the
system is not running a SMACK enabled kernel or security=none is
passed to the kernel.

7 years agoshared/util: fix off-by-one error in tag_to_udev_node
Dave Reisner [Sun, 6 Oct 2013 22:26:23 +0000 (18:26 -0400)]
shared/util: fix off-by-one error in tag_to_udev_node

Triggered false negatives when encoding a string which needed every
character to be escaped, e.g. "LABEL=/".

7 years agoutf8: fix utf8_is_printable
Zbigniew Jędrzejewski-Szmek [Sun, 6 Oct 2013 02:47:52 +0000 (22:47 -0400)]
utf8: fix utf8_is_printable

7 years agocore: do not add "what" to RequiresMountsFor for network mounts
Zbigniew Jędrzejewski-Szmek [Sat, 5 Oct 2013 17:09:43 +0000 (13:09 -0400)]
core: do not add "what" to RequiresMountsFor for network mounts

For cifs mount like //server/share, we would get
RequiresMountsFor=/server/share, which probably isn't
harmful, but quite confusing.

Unfortunately a bunch of static functions had to be moved
up, but patch is really one line.

7 years agomount: check for NULL before reading pm->what
Dave Reisner [Fri, 4 Oct 2013 22:22:40 +0000 (18:22 -0400)]
mount: check for NULL before reading pm->what

Since a57f7e2c828b85, a mount unit with garbage in it would cause
systemd to crash on loading it.


7 years agologind: fix bus introspection data for TakeControl()
Lennart Poettering [Fri, 4 Oct 2013 19:16:40 +0000 (21:16 +0200)]
logind: fix bus introspection data for TakeControl()

7 years agomanager: when verifying whether clients may change environment using selinux check...
Lennart Poettering [Fri, 4 Oct 2013 15:01:37 +0000 (17:01 +0200)]
manager: when verifying whether clients may change environment using selinux check for "reload" rather "reboot"

This appears to be a copy/paste error.

7 years agoupdate TODO
Lennart Poettering [Fri, 4 Oct 2013 15:01:32 +0000 (17:01 +0200)]
update TODO

7 years agosystemd: order remote mounts from mountinfo before
Zbigniew Jędrzejewski-Szmek [Fri, 4 Oct 2013 02:15:08 +0000 (22:15 -0400)]
systemd: order remote mounts from mountinfo before

Usually the network is stopped before filesystems are umounted.
Ordering network filesystems before means that their
unmounting will be performed earlier, and can terminate sucessfully.

7 years agoIntroduce _cleanup_endmntent_
Zbigniew Jędrzejewski-Szmek [Fri, 4 Oct 2013 02:13:55 +0000 (22:13 -0400)]
Introduce _cleanup_endmntent_

7 years agogpt-auto-generator: exit immediately if in container
Zbigniew Jędrzejewski-Szmek [Fri, 4 Oct 2013 02:13:01 +0000 (22:13 -0400)]
gpt-auto-generator: exit immediately if in container

Otherwise we get an ugly warning when running systemd in
a container.

7 years agoexecute: more debugging messages
Zbigniew Jędrzejewski-Szmek [Wed, 28 Aug 2013 12:01:30 +0000 (08:01 -0400)]
execute: more debugging messages

7 years agoman: Improve the description of parameter X in tmpfiles.d page
Václav Pavlín [Thu, 3 Oct 2013 13:47:26 +0000 (15:47 +0200)]
man: Improve the description of parameter X in tmpfiles.d page

7 years agoexecute.c: always set $SHELL
Zbigniew Jędrzejewski-Szmek [Wed, 2 Oct 2013 11:23:10 +0000 (13:23 +0200)]
execute.c: always set $SHELL

In e6dca81 $SHELL was added to user@.service. Let's
instead provide it to all units which have a user.

7 years agotmpfiles.d: include setgid perms for /run/log/journal
Dave Reisner [Wed, 2 Oct 2013 19:35:16 +0000 (15:35 -0400)]
tmpfiles.d: include setgid perms for /run/log/journal

4608af4333d0f7f5 set permissions for journal storage on persistent disk
but not the volatile storage.


7 years agonspawn: always copy /etc/resolv.conf rather than bind mount
Lennart Poettering [Wed, 2 Oct 2013 17:40:43 +0000 (19:40 +0200)]
nspawn: always copy /etc/resolv.conf rather than bind mount

We were already creating the file if it was missing, and this way
containers can reconfigure the file without running into problems.

This also makes resolv.conf handling more alike to handling of
/etc/localtime, which is also not a bind mount.

7 years agomkdir: pass a proper function pointer to mkdir_safe_internal
Lennart Poettering [Wed, 2 Oct 2013 17:38:52 +0000 (19:38 +0200)]
mkdir: pass a proper function pointer to mkdir_safe_internal

7 years agostrv: don't access potentially NULL string arrays
Lennart Poettering [Wed, 2 Oct 2013 17:38:28 +0000 (19:38 +0200)]
strv: don't access potentially NULL string arrays

7 years agoefi: never call qsort on potentially NULL arrays
Lennart Poettering [Wed, 2 Oct 2013 17:38:09 +0000 (19:38 +0200)]
efi: never call qsort on potentially NULL arrays

7 years agomodules-load: fix error handling
Lennart Poettering [Wed, 2 Oct 2013 17:37:44 +0000 (19:37 +0200)]
modules-load: fix error handling

7 years agodbus: fix return value of dispatch_rqueue()
Lennart Poettering [Wed, 2 Oct 2013 17:37:30 +0000 (19:37 +0200)]
dbus: fix return value of dispatch_rqueue()

7 years agobus: fix potentially uninitialized memory access
Lennart Poettering [Wed, 2 Oct 2013 17:37:11 +0000 (19:37 +0200)]
bus: fix potentially uninitialized memory access

7 years agojournald: add missing error check
Lennart Poettering [Wed, 2 Oct 2013 17:36:43 +0000 (19:36 +0200)]
journald: add missing error check

7 years agocryptsetup: fix OOM handling when parsing mount options
Lennart Poettering [Wed, 2 Oct 2013 17:36:28 +0000 (19:36 +0200)]
cryptsetup: fix OOM handling when parsing mount options

7 years agosystemctl: fix name mangling for sysv units
Václav Pavlín [Wed, 2 Oct 2013 14:42:42 +0000 (16:42 +0200)]
systemctl: fix name mangling for sysv units

7 years agoacpi: make sure we never free an uninitialized pointer
Lennart Poettering [Wed, 2 Oct 2013 12:03:56 +0000 (14:03 +0200)]
acpi: make sure we never free an uninitialized pointer

7 years agofix lingering references to /var/lib/{backlight,random-seed}
Dave Reisner [Wed, 2 Oct 2013 11:46:24 +0000 (07:46 -0400)]
fix lingering references to /var/lib/{backlight,random-seed}

This should have been part of ef5bfcf668e6029faa78534dfe.

7 years agoacpi-fptd: fix memory leak in acpi_get_boot_usec
Lukas Nykryn [Wed, 2 Oct 2013 11:39:49 +0000 (13:39 +0200)]
acpi-fptd: fix memory leak in acpi_get_boot_usec

7 years agocgroup: there's no point in labelling cgroupfs dirs, so let's not do that v208
Lennart Poettering [Wed, 2 Oct 2013 02:54:07 +0000 (04:54 +0200)]
cgroup: there's no point in labelling cgroupfs dirs, so let's not do that

This allows us to get rid of the dep on libsystemd-label for cgroup

7 years agobuild-sys: mkdir.[ch] should be in libsystemd-shared
Lennart Poettering [Wed, 2 Oct 2013 02:52:48 +0000 (04:52 +0200)]
build-sys: mkdir.[ch] should be in libsystemd-shared

Otherwise, why is mkdir-label.[ch] split out?

7 years agobuild-ss: prepare new release
Lennart Poettering [Wed, 2 Oct 2013 01:02:25 +0000 (03:02 +0200)]
build-ss: prepare new release

7 years agohashmap: randomize hash functions a bit
Lennart Poettering [Tue, 1 Oct 2013 21:11:23 +0000 (23:11 +0200)]
hashmap: randomize hash functions a bit

7 years agoUpdate TODO
David Herrmann [Tue, 1 Oct 2013 17:21:35 +0000 (19:21 +0200)]
Update TODO

Remove "logind fbdev removal" as it is no longer supported.

7 years agologind: remove fbdev session-device support
David Herrmann [Tue, 1 Oct 2013 16:08:54 +0000 (18:08 +0200)]
logind: remove fbdev session-device support

fbdev does not support access-handover so it is quite useless to route it
through logind. If compositors want to use it they ought to open it
themselves. It's highly recommended to be ignored entirely, though. fbdev
is about to be deprecated in the kernel.

7 years agologind: run with CAP_SYS_ADMIN
David Herrmann [Tue, 1 Oct 2013 15:59:44 +0000 (17:59 +0200)]
logind: run with CAP_SYS_ADMIN

DRM Master access requires CAP_SYS_ADMIN, yay! Add it to the capability
bounding set for systemd-logind. As CAP_SYS_ADMIN actually allows a huge
set of actions, this mostly renders the restriction-set useless. Anyway,
patches are already pending to reduce the restriction on the kernel side.
But these won't really make it into any stable-release so for now we're
stuck with CAP_SYS_ADMIN.

7 years agologind: send PropertyChanged during deactivation
David Herrmann [Tue, 1 Oct 2013 15:58:58 +0000 (17:58 +0200)]
logind: send PropertyChanged during deactivation

We only send the PropertyChanged signal for the to-be-activated session
but not for the to-be-deactivated one. Fix that so both listeners get
notified about the new state.

7 years agologind: check whether first drmSetMaster succeeded
David Herrmann [Tue, 1 Oct 2013 15:53:43 +0000 (17:53 +0200)]
logind: check whether first drmSetMaster succeeded

The initial drmSetMaster may fail if there is an active master already. We
must not assume that all existing clients comply to logind rules. We check
for this during session-activation already but didn't during device setup.
Fix this by checking the return code.

As drmSetMaster has had horrible return codes in the past (0 for failure?
EINVAL for denied access, ..) we need to be quite pedantic. To guarantee
an open file-descriptor we need to close the device and reopen it without
master if setting master failed first.

7 years agologind: fix session-device dbus notify
David Herrmann [Tue, 1 Oct 2013 15:48:15 +0000 (17:48 +0200)]
logind: fix session-device dbus notify

Had this fix lying around here for some time. Thanks to missing
type-checking for va-args we passed in the actual major/minor values
instead of pointers to it. Fix it by saving the values on the stack first
and passing in the pointers.

7 years agokernel-install: add compat with 'installkernel'
Tom Gundersen [Wed, 25 Sep 2013 22:38:34 +0000 (00:38 +0200)]
kernel-install: add compat with 'installkernel'

If 'kernel-install' is called as 'installkernel' it will be compatible with the
syntax used by the kernel's build system.

This means it can be called by doing 'make install' in a kernel build
directory, if the correct symlink has been installed (which we don't do by
default yet).

[Edit removed basename and use shift]

7 years agoupdate TODO
Lennart Poettering [Tue, 1 Oct 2013 11:35:37 +0000 (13:35 +0200)]
update TODO

7 years agocore: whenever a new PID is passed to us, make sure we watch it
Lennart Poettering [Tue, 1 Oct 2013 03:06:56 +0000 (05:06 +0200)]
core: whenever a new PID is passed to us, make sure we watch it

7 years agoutil.c: ignore pollfd.revent for loop_read/loop_write
Chen Jie [Thu, 12 Sep 2013 01:21:41 +0000 (09:21 +0800)]
util.c: ignore pollfd.revent for loop_read/loop_write

Let read()/write() report any error/EOF.

7 years agounits: Add SHELL environment variable
Evan Callicoat [Tue, 24 Sep 2013 02:01:04 +0000 (21:01 -0500)]
units: Add SHELL environment variable

With the advent of systemd --user sessions, it's become very interesting to spawn X as a user unit, as well as accompanying processes that may have previously been in a .xinitrc/.xsession, or even just to replace a collection of XDG/GDM/KDM/etc session files with independent systemd --user units. The simplest case here would be to login on a tty, with the traditional /usr/sbin/login "login manager".

However, systemd --user (spawned by user@.service) is at the top level of the slice for the user, and does not inherit any environment variables from the login process. Given the number of common applications which rely on SHELL being set in the environment, it seems like the cleanest way to provide this variable is to set it to %s in the user@.service.

Ideally in the long-term, applications which rely on SHELL being set should be fixed to just grab it from getpwnam() or similar, but until that becomes more common, I propose this simple change to make user sessions a little bit nicer out of the box.

7 years agobuild-sys: don't fallback to upstart defaults
Lennart Poettering [Tue, 1 Oct 2013 01:22:41 +0000 (03:22 +0200)]
build-sys: don't fallback to upstart defaults

7 years agosystemctl: remove legacy upstart compatibility
Cristian Rodríguez [Mon, 30 Sep 2013 02:17:42 +0000 (23:17 -0300)]
systemctl: remove legacy upstart compatibility

7 years agosmack-setup: fix path to Smack/CIPSO mappings
Patrick McCarty [Tue, 1 Oct 2013 00:43:38 +0000 (17:43 -0700)]
smack-setup: fix path to Smack/CIPSO mappings

The correct path to the dir with CIPSO mappings is /etc/smack/cipso.d/;
/etc/smack/cipso is a file that can include these mappings as well,
though it is no longer supported in upstream libsmack.

7 years agoRevert "build-sys: link libsystemd-login with"
Kay Sievers [Mon, 30 Sep 2013 22:19:25 +0000 (00:19 +0200)]
Revert "build-sys: link libsystemd-login with"

Systemd-logind does not pull in cg_create(), if we unconditionally link
this, all users of systemd-logind qill need the label stuff and therefore
link against selinux.

It is probably a build-system issue, or something that need to be sorted
out in a differnt way than linking not needed libs.

This reverts commit ceadabb102b05b237bfab11e1f742975ee4daeb1.

7 years agoUpdate TODO
Lennart Poettering [Mon, 30 Sep 2013 22:15:15 +0000 (00:15 +0200)]
Update TODO

7 years agohashmap: size hashmap bucket array dynamically
Lennart Poettering [Mon, 30 Sep 2013 22:13:18 +0000 (00:13 +0200)]
hashmap: size hashmap bucket array dynamically

Instead of fixing the hashmap bucket array to 127 entries dynamically
size it, starting with a smaller one of 31. As soon as a fill level of
75% is reached, quadruple the size, and so on.

This should siginficantly optimize the lookup time in large tables
(from O(n) back to O(1)), and save memory on smaller tables (which most

7 years agolocal: fix memory leak when putting together locale settings
Lennart Poettering [Mon, 30 Sep 2013 22:08:30 +0000 (00:08 +0200)]
local: fix memory leak when putting together locale settings

Also, we need to use proper strv_env_xyz() calls when putting together
the environment array, since otherwise settings won't be properly

And let's get rid of strv_appendf(), is overkill and there was only one

7 years agomain: don't free fds array twice
Lennart Poettering [Mon, 30 Sep 2013 22:06:48 +0000 (00:06 +0200)]
main: don't free fds array twice

7 years agologs-show.c: show all messages for a slice
Zbigniew Jędrzejewski-Szmek [Mon, 30 Sep 2013 21:58:44 +0000 (23:58 +0200)]
logs-show.c: show all messages for a slice

7 years agobuild-sys: link libsystemd-login with
Michał Górny [Mon, 30 Sep 2013 08:08:09 +0000 (10:08 +0200)]
build-sys: link libsystemd-login with uses cg_create() that currently seems to be a part
of However, it doesn't link against that library
and it seems that none of the (unconditional) libraries it uses do. In
the end, people end up getting «undefined reference to `cg_create'»
when trying to build e.g. dbus.

7 years agoman: mention the systemd homepage from systemd(1)
Lennart Poettering [Mon, 30 Sep 2013 16:56:34 +0000 (18:56 +0200)]
man: mention the systemd homepage from systemd(1)

7 years agoupdate TODO
Lennart Poettering [Mon, 30 Sep 2013 16:54:12 +0000 (18:54 +0200)]
update TODO

7 years agoman: link cgroups api docs from relevant man pages
Lennart Poettering [Mon, 30 Sep 2013 16:54:05 +0000 (18:54 +0200)]
man: link cgroups api docs from relevant man pages

7 years agoset IgnoreOnIsolate=true for systemd-cryptsetup@.service
Andrey Borzenkov [Sun, 29 Sep 2013 11:37:30 +0000 (15:37 +0400)]
set IgnoreOnIsolate=true for systemd-cryptsetup@.service

When crypttab contains noauto, cryptsetup service does not have any
explicit dependencies. If service is started later manually (directly or via
mount dependency) it will be stopped on isolate.

mount units already have IgnoreOnIsolate set by default. Set it by
default for cryptsetup units as well.

7 years agoFix buffer overrun when enumerating files
Zbigniew Jędrzejewski-Szmek [Sun, 29 Sep 2013 12:40:58 +0000 (14:40 +0200)]
Fix buffer overrun when enumerating files

Based-on-a-patch-by: Hans Petter Jansson <>
7 years agokmod-static-nodes: condition execution on modules.devname
Dave Reisner [Sat, 28 Sep 2013 18:51:39 +0000 (14:51 -0400)]
kmod-static-nodes: condition execution on modules.devname

7 years agoAdd a bit more explicit message, to help confused users
Michael Scherer [Fri, 27 Sep 2013 09:43:28 +0000 (11:43 +0200)]
Add a bit more explicit message, to help confused users

it seems that the default message is a bit confusing for people
who never encountered it before, so adding a link to the manpage could
help them.

7 years agokernel-install: avoid using 'cp --preserve'
Tom Gundersen [Wed, 25 Sep 2013 20:58:00 +0000 (22:58 +0200)]
kernel-install: avoid using 'cp --preserve'

Force 0644 and root:root instead, to avoid problems with fat filesystems.

7 years agobuild-sys: restore detection of sphinx
Zbigniew Jędrzejewski-Szmek [Fri, 27 Sep 2013 06:24:00 +0000 (08:24 +0200)]
build-sys: restore detection of sphinx