platform/upstream/systemd.git
9 years agosd-bus: if a NULL signatures is passed to sd_bus_message_skip(), make it skip a singl...
Lennart Poettering [Fri, 28 Nov 2014 18:16:25 +0000 (19:16 +0100)]
sd-bus: if a NULL signatures is passed to sd_bus_message_skip(), make it skip a single element of any type

9 years agosd-bus: add arrays of strings in the bloom filter
Lennart Poettering [Fri, 28 Nov 2014 16:44:05 +0000 (17:44 +0100)]
sd-bus: add arrays of strings in the bloom filter

Let's do this right from the beginning, to prepare ground for udev
messages that most likely want to store list of strings (for device
tags) in messages, and filter on them.

9 years agoupdate TODO
Lennart Poettering [Fri, 28 Nov 2014 16:03:48 +0000 (17:03 +0100)]
update TODO

9 years agosd-bus: make more connection properties readable
Lennart Poettering [Fri, 28 Nov 2014 16:03:35 +0000 (17:03 +0100)]
sd-bus: make more connection properties readable

9 years agosd-bus: add new sd_bus_get_address() for querying the current bus address
Lennart Poettering [Fri, 28 Nov 2014 15:51:45 +0000 (16:51 +0100)]
sd-bus: add new sd_bus_get_address() for querying the current bus address

Also, update "busctl" to show this in its output.

9 years agosd-bus: rename sd_bus_get_owner_id() → sd_bus_get_bus_id()
Lennart Poettering [Fri, 28 Nov 2014 15:38:47 +0000 (16:38 +0100)]
sd-bus: rename sd_bus_get_owner_id() → sd_bus_get_bus_id()

The ID returned really doesn't identify the owner, but the bus instance,
hence fix this misnaming.

Also, update "busctl status" to show the ID in its output.

9 years agotreewide: another round of simplifications
Michal Schmidt [Fri, 28 Nov 2014 18:57:32 +0000 (19:57 +0100)]
treewide: another round of simplifications

Using the same scripts as in f647962d64e "treewide: yet more log_*_errno
+ return simplifications".

9 years agotreewide: use log_*_errno whenever %m is in the format string
Michal Schmidt [Fri, 28 Nov 2014 18:29:59 +0000 (19:29 +0100)]
treewide: use log_*_errno whenever %m is in the format string

If the format string contains %m, clearly errno must have a meaningful
value, so we might as well use log_*_errno to have ERRNO= logged.

Using:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\((".*%m.*")/log_\1_errno(errno, \2/'

Plus some whitespace, linewrap, and indent adjustments.

9 years agocore: fix return value in error path after sd_event_add_io() failure
Michal Schmidt [Fri, 28 Nov 2014 18:20:59 +0000 (19:20 +0100)]
core: fix return value in error path after sd_event_add_io() failure

sd_event_add_io() does not set errno, it returns negative errno.

Noticed during log_*_errno conversions.

9 years agotreewide: a few more log_*_errno + return simplifications
Michal Schmidt [Fri, 28 Nov 2014 18:13:53 +0000 (19:13 +0100)]
treewide: a few more log_*_errno + return simplifications

The one in tmpfiles.c:create_item() even looks like it fixes a bug.

9 years agotreewide: yet more log_*_errno + return simplifications
Michal Schmidt [Fri, 28 Nov 2014 17:50:43 +0000 (18:50 +0100)]
treewide: yet more log_*_errno + return simplifications

Using:
find . -name '*.[ch]' | while read f; do perl -i.mmm -e \
 'local $/;
  local $_=<>;
  s/(if\s*\([^\n]+\))\s*{\n(\s*)(log_[a-z_]*_errno\(\s*([->a-zA-Z_]+)\s*,[^;]+);\s*return\s+\g4;\s+}/\1\n\2return \3;/msg;
  print;'
 $f
done

And a couple of manual whitespace fixups.

9 years agoRevert "systemctl: append default suffix only if none present"
Zbigniew Jędrzejewski-Szmek [Fri, 28 Nov 2014 17:25:09 +0000 (12:25 -0500)]
Revert "systemctl: append default suffix only if none present"

This reverts a chunk out of commit 5e03c6e3b517286bbd65b48d88f60e5b83721894
which was trying to pass NULL to the the '.service' default. Anyway,
it seems better to be explicit.

9 years agotreewide: more log_*_errno + return simplifications
Michal Schmidt [Fri, 28 Nov 2014 17:23:20 +0000 (18:23 +0100)]
treewide: more log_*_errno + return simplifications

9 years agosystemctl: append default suffix only if none present
Zbigniew Jędrzejewski-Szmek [Fri, 28 Nov 2014 16:28:10 +0000 (11:28 -0500)]
systemctl: append default suffix only if none present

Simplify unit_name_mangle() and unit_name_mangle_with_suffix() to
always behave the same, and only append a suffix if there is no
type suffix. If a user says 'isolate blah.device' it is better to
return an error that the type cannot be isolated, than to try to
isolate blah.device.target.

9 years agoudevd: don't set receive buffer size when socket activated
Tom Gundersen [Fri, 28 Nov 2014 15:58:32 +0000 (16:58 +0100)]
udevd: don't set receive buffer size when socket activated

The socket unit does this, so no need to redo it in udevd.

9 years agotreewide: simplify log_*_errno(r,...) immediately followed by "return r"
Michal Schmidt [Fri, 28 Nov 2014 16:34:26 +0000 (17:34 +0100)]
treewide: simplify log_*_errno(r,...) immediately followed by "return r"

9 years agotreewide: more log_*_errno() conversions, multiline calls
Michal Schmidt [Fri, 28 Nov 2014 16:09:20 +0000 (17:09 +0100)]
treewide: more log_*_errno() conversions, multiline calls

Basically:

find . -name '*.[ch]' | while read f; do perl -i.mmm -e \
'local $/;
 local $_=<>;
 s/log_(debug|info|notice|warning|error|emergency)\("([^"]*)%s"([^;]*),\s*strerror\(-?([->a-zA-Z_]+)\)\);/log_\1_errno(\4, "\2%m"\3);/gms;print;' \
 $f; done

Plus manual indentation fixups.

9 years agohostnamectl: Exit with zero on success
Martin Pitt [Fri, 28 Nov 2014 14:38:05 +0000 (15:38 +0100)]
hostnamectl: Exit with zero on success

In show_all_names(), bus_map_all_properties() returns 1 on success which is
then used as the return code of show_all_names() and eventually main(). Exit
with zero in main() on all nonnegative results to guard against similar errors.

9 years agoudev,update-done: more log_xyz_errno() conversions
Lennart Poettering [Fri, 28 Nov 2014 15:32:26 +0000 (16:32 +0100)]
udev,update-done: more log_xyz_errno() conversions

9 years agosd-bus: make sure %m resolves to the specified error in bus_error_set_errnofv()
Lennart Poettering [Fri, 28 Nov 2014 15:30:53 +0000 (16:30 +0100)]
sd-bus: make sure %m resolves to the specified error in bus_error_set_errnofv()

9 years agoupdate TODO
Lennart Poettering [Fri, 28 Nov 2014 15:16:18 +0000 (16:16 +0100)]
update TODO

9 years agobus-proxy: automatically detect scope of bus and derive which XML snippets to load...
Lennart Poettering [Fri, 28 Nov 2014 15:14:39 +0000 (16:14 +0100)]
bus-proxy: automatically detect scope of bus and derive which XML snippets to load from that

9 years agosd-bus: rename default bus address constants, they aren't "paths" but "addresses"
Lennart Poettering [Fri, 28 Nov 2014 15:05:43 +0000 (16:05 +0100)]
sd-bus: rename default bus address constants, they aren't "paths" but "addresses"

9 years agosd-bus: add new call sd_bus_get_scope() for querying whether one is connected to...
Lennart Poettering [Fri, 28 Nov 2014 14:59:05 +0000 (15:59 +0100)]
sd-bus: add new call sd_bus_get_scope() for querying whether one is connected to a system or a user bus

9 years agosd-bus: rework credential query logic
Lennart Poettering [Fri, 28 Nov 2014 14:58:03 +0000 (15:58 +0100)]
sd-bus: rework credential query logic

Also, make the call to free kdbus slices generic and use it everywhere

9 years agotreewide: more log_*_errno() conversions
Michal Schmidt [Fri, 28 Nov 2014 13:45:55 +0000 (14:45 +0100)]
treewide: more log_*_errno() conversions

9 years agotreewide: drop unnecessary trailing \n in log_*() calls
Michal Schmidt [Fri, 28 Nov 2014 13:26:31 +0000 (14:26 +0100)]
treewide: drop unnecessary trailing \n in log_*() calls

9 years agocore: two more log_unit_*_errno() conversions
Michal Schmidt [Fri, 28 Nov 2014 12:54:40 +0000 (13:54 +0100)]
core: two more log_unit_*_errno() conversions

9 years agocore: convert log_unit_*() to log_unit_*_errno()
Michal Schmidt [Fri, 28 Nov 2014 12:17:02 +0000 (13:17 +0100)]
core: convert log_unit_*() to log_unit_*_errno()

Using:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_unit_(debug|info|notice|warning|error|emergency)\(([^"]+), "(.*)%s"(.*), strerror\(-([a-zA-Z_]+)\)\);/log_unit_\1_errno(\2, \5, "\3%m"\4);/'

9 years agocore: add log_unit_*_errno() macros
Michal Schmidt [Fri, 28 Nov 2014 11:15:34 +0000 (12:15 +0100)]
core: add log_unit_*_errno() macros

9 years agotreewide: no need to negate errno for log_*_errno()
Michal Schmidt [Fri, 28 Nov 2014 12:19:16 +0000 (13:19 +0100)]
treewide: no need to negate errno for log_*_errno()

It corrrectly handles both positive and negative errno values.

9 years agotreewide: auto-convert the simple cases to log_*_errno()
Michal Schmidt [Fri, 28 Nov 2014 10:58:34 +0000 (11:58 +0100)]
treewide: auto-convert the simple cases to log_*_errno()

As a followup to 086891e5c1 "log: add an "error" parameter to all
low-level logging calls and intrdouce log_error_errno() as log calls
that take error numbers", use sed to convert the simple cases to use
the new macros:

find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\("(.*)%s"(.*), strerror\(-([a-zA-Z_]+)\)\);/log_\1_errno(-\4, "\2%m"\3);/'

Multi-line log_*() invocations are not covered.
And we also should add log_unit_*_errno().

9 years agoshared: fix log_emergency_errno macro
Michal Schmidt [Fri, 28 Nov 2014 10:54:25 +0000 (11:54 +0100)]
shared: fix log_emergency_errno macro

It was not passing the error argument.

9 years agoupdate TODO
Lennart Poettering [Fri, 28 Nov 2014 02:29:52 +0000 (03:29 +0100)]
update TODO

9 years agokdbus: when running in a container, don't complain that we cannot write to /sys
Lennart Poettering [Fri, 28 Nov 2014 01:30:43 +0000 (02:30 +0100)]
kdbus: when running in a container, don't complain that we cannot write to /sys

9 years agolog: change log_xyz_errno() calls to always return the negative error
Lennart Poettering [Fri, 28 Nov 2014 02:10:55 +0000 (03:10 +0100)]
log: change log_xyz_errno() calls to always return the negative error

This enables us to write things like this:

    int open_some_file(void) {

            fd = open("/dev/foobar", O_RDWR|O_CLOEXEC);
            if (fd < 0)
                    return log_error_errno(errno, "Failed to reboot: %m");

            return fd;
    }

Which is function that returns -errno on failure, as well as printing an
error message, all in one line.

9 years agolog: make socket address structs static const
Lennart Poettering [Fri, 28 Nov 2014 01:56:39 +0000 (02:56 +0100)]
log: make socket address structs static const

9 years agolog: also set errno to the passed error code before processing format string in log_s...
Lennart Poettering [Fri, 28 Nov 2014 01:30:49 +0000 (02:30 +0100)]
log: also set errno to the passed error code before processing format string in log_struct()

That way the caller may use %m to print the specified error.

9 years agocore: only override kdbus attach mask when running as PID 1
Lennart Poettering [Fri, 28 Nov 2014 01:26:05 +0000 (02:26 +0100)]
core: only override kdbus attach mask when running as PID 1

9 years agosd-bus: the attach_mask kernel module parameter is 64bit now, hence initialize it...
Lennart Poettering [Fri, 28 Nov 2014 01:23:29 +0000 (02:23 +0100)]
sd-bus: the attach_mask kernel module parameter is 64bit now, hence initialize it as such

9 years agolog: allow negative errno values
Lennart Poettering [Fri, 28 Nov 2014 01:12:30 +0000 (02:12 +0100)]
log: allow negative errno values

sd_bus_error_set_errno() allows negative errors too, hence, be equally
nice.

9 years agolog: fix order of log_unit_struct() to match other logging calls
Lennart Poettering [Fri, 28 Nov 2014 01:05:14 +0000 (02:05 +0100)]
log: fix order of log_unit_struct() to match other logging calls

Also, while we are at it, introduce some syntactic sugar for creating
ERRNO= and MESSAGE= structured logging fields.

9 years agonetworkd: update logging macros for parameter order, and errno, to match rest of...
Lennart Poettering [Thu, 27 Nov 2014 23:42:35 +0000 (00:42 +0100)]
networkd: update logging macros for parameter order, and errno, to match rest of the code

9 years agoupdate TODO
Lennart Poettering [Thu, 27 Nov 2014 23:41:49 +0000 (00:41 +0100)]
update TODO

9 years agonetworkd: remove duplicate macro definitions
Lennart Poettering [Thu, 27 Nov 2014 23:41:38 +0000 (00:41 +0100)]
networkd: remove duplicate macro definitions

9 years agoUpdate TODO
David Herrmann [Fri, 28 Nov 2014 00:03:54 +0000 (01:03 +0100)]
Update TODO

kdbus eavesdropping was fixed!

9 years agosysv-generator: advertise the man page
Zbigniew Jędrzejewski-Szmek [Thu, 27 Nov 2014 22:17:09 +0000 (17:17 -0500)]
sysv-generator: advertise the man page

9 years agoman: add systemd-sysv-generator(8)
Zbigniew Jędrzejewski-Szmek [Thu, 27 Nov 2014 22:13:12 +0000 (17:13 -0500)]
man: add systemd-sysv-generator(8)

In principle SysV stuff is only for compatibility, but we are stuck
with it for the forseeable future, so documentation might as well
be provided.

https://bugs.debian.org/771172

9 years agofix build with --enable-terminal
Thomas Hindoe Paaboel Andersen [Thu, 27 Nov 2014 22:15:54 +0000 (23:15 +0100)]
fix build with --enable-terminal

Broke with 086891e5c119abb9854237fc32e736fe2d67234c

9 years agokmod-setup: simplify kernel command line parsing
Lennart Poettering [Thu, 27 Nov 2014 20:56:39 +0000 (21:56 +0100)]
kmod-setup: simplify kernel command line parsing

9 years agokdbus: set kernel attach mask before creating the first bus
Lennart Poettering [Thu, 27 Nov 2014 20:28:13 +0000 (21:28 +0100)]
kdbus: set kernel attach mask before creating the first bus

9 years agoselinux: log selinux log messages with LOG_AUTH facility
Lennart Poettering [Thu, 27 Nov 2014 19:28:51 +0000 (20:28 +0100)]
selinux: log selinux log messages with LOG_AUTH facility

9 years agolog: rearrange log function naming
Lennart Poettering [Thu, 27 Nov 2014 19:20:23 +0000 (20:20 +0100)]
log: rearrange log function naming

- Rename log_meta() → log_internal(), to follow naming scheme of most
  other log functions that are usually invoked through macros, but never
  directly.

- Rename log_info_object() to log_object_info(), simply because the
  object should be before any other parameters, to follow OO-style
  programming style.

9 years agolog: be a bit less wasteful when allocating buffers
Lennart Poettering [Thu, 27 Nov 2014 18:52:27 +0000 (19:52 +0100)]
log: be a bit less wasteful when allocating buffers

9 years agolog: add an "error" parameter to all low-level logging calls and intrdouce log_error_...
Lennart Poettering [Thu, 27 Nov 2014 18:48:02 +0000 (19:48 +0100)]
log: add an "error" parameter to all low-level logging calls and intrdouce log_error_errno() as log calls that take error numbers

This change has two benefits:

- The format string %m will now resolve to the specified error (or to
  errno if the specified error is 0. This allows getting rid of a ton of
  strerror() invocations, a function that is not thread-safe.

- The specified error can be passed to the journal in the ERRNO= field.

Now of course, we just need somebody to convert all cases of this:

        log_error("Something happened: %s", strerror(-r));

into thus:

        log_error_errno(-r, "Something happened: %m");

9 years agosd-bus: set creds info for "org.freedesktop.DBus.Local" generated messages, too
Lennart Poettering [Thu, 27 Nov 2014 11:52:13 +0000 (12:52 +0100)]
sd-bus: set creds info for "org.freedesktop.DBus.Local" generated messages, too

9 years agosd-bus: when we get the list of well-known names back from kdbus we shouldn't confuse...
Lennart Poettering [Thu, 27 Nov 2014 11:51:22 +0000 (12:51 +0100)]
sd-bus: when we get the list of well-known names back from kdbus we shouldn't confuse the empty list with unknown information

9 years agosd-bus: deal with whitespace in matches
Lennart Poettering [Thu, 27 Nov 2014 02:20:51 +0000 (03:20 +0100)]
sd-bus: deal with whitespace in matches

9 years agosd-bus: unify logic how we patch the message source of driver messages
Lennart Poettering [Thu, 27 Nov 2014 01:57:22 +0000 (02:57 +0100)]
sd-bus: unify logic how we patch the message source of driver messages

9 years agosd-bus: fake valid well-known-names metadata for faked bus messages
Lennart Poettering [Thu, 27 Nov 2014 01:37:05 +0000 (02:37 +0100)]
sd-bus: fake valid well-known-names metadata for faked bus messages

9 years agosd-bus: optimize how we generate the well-known-names lists in messages from kdbus
Lennart Poettering [Thu, 27 Nov 2014 01:28:23 +0000 (02:28 +0100)]
sd-bus: optimize how we generate the well-known-names lists in messages from kdbus

9 years agosd-bus: be stricter with mismatches between dbus1 and kdbus message headers
Lennart Poettering [Thu, 27 Nov 2014 00:19:50 +0000 (01:19 +0100)]
sd-bus: be stricter with mismatches between dbus1 and kdbus message headers

9 years agobus-proxy: beef up policy enforcement
Lennart Poettering [Wed, 26 Nov 2014 22:14:13 +0000 (23:14 +0100)]
bus-proxy: beef up policy enforcement

- actually return permission errors to clients

- use the right ucreds field

- fix error paths when we cannot keep track of locally acquired names
  due to OOM

- avoid unnecessary global variables

- log when the policy denies access

- enforce correct policy rule order

- always request all the metadata its we need to make decisions

9 years agoupdate TODO
Lennart Poettering [Wed, 26 Nov 2014 22:13:52 +0000 (23:13 +0100)]
update TODO

9 years agobus-proxy: check passed parameter signature of all driver method calls
Lennart Poettering [Wed, 26 Nov 2014 21:52:10 +0000 (22:52 +0100)]
bus-proxy: check passed parameter signature of all driver method calls

9 years agonetworkd: fix kernel rtnl receive buffer overrun error
Alin Rauta [Thu, 27 Nov 2014 17:50:48 +0000 (18:50 +0100)]
networkd: fix kernel rtnl receive buffer overrun error

We got the following error when running systemd on a device  with many ports:

"rtnl: kernel receive buffer overrun
Event source 'rtnl-receive-message' returned error, disabling: No buffer space
available"

I think the kernel socket receive buffer queue should be increased. The default
value is taken from:
"/proc/sys/net/core/rmem_default", but we can overwrite it using SO_RCVBUF
socket option.

This is already done in networkd for other sockets.
For example, the bus socket (sd-bus/bus-socket.c) has a receive queue of 8MB.
In our case, the default is 208KB.

Increasing the buffer receive queue for manager socket to 512KB should be enough
to get rid of the above error.

[tomegun: bump the limit even higher to 8M]

9 years agoresolve: reject empty TXT records
Stanisław Pitucha [Tue, 18 Nov 2014 03:52:13 +0000 (14:52 +1100)]
resolve: reject empty TXT records

TXT records should have at least one character, so enforce this.

Before 0f84a72 parser SIGSEGV'd on ->txt.strings being NULL, but
even if this is fixed we should reject invalid TXT records.

9 years agoresolve: set error code on failure
Stanisław Pitucha [Tue, 18 Nov 2014 05:40:18 +0000 (16:40 +1100)]
resolve: set error code on failure

Set the error code in case of incorrect name. This prevents continuing
and failing an assert(name) later on.

9 years agoresolve: fix redirection loops in compressed RR
Stanisław Pitucha [Tue, 18 Nov 2014 05:25:20 +0000 (16:25 +1100)]
resolve: fix redirection loops in compressed RR

Loops in RR compression were only detected for the first entry.
Multiple redirections should be allowed, each one checking for an
infinite loop on its own starting point.
Also update the pointer on each redirection to avoid longer loops of
labels and redirections, in names like:
(start) [len=1] "A", [ptr to start]

(David: rename variable to "jump_barrier" and add reference to RFC)

9 years agocore: fix transaction destructiveness check once more
Michal Schmidt [Thu, 27 Nov 2014 14:23:58 +0000 (15:23 +0100)]
core: fix transaction destructiveness check once more

The previous fix e0312f4db "core: fix check for transaction
destructiveness" broke test-engine (noticed by Zbyszek).
Apparently I had a wrong idea of the intended semantics of --fail.

The manpage says the operation should fail if it "conflicts with a
pending job (more specifically: causes an already pending start job to
be reversed into a stop job or vice versa)".

So let's check job_type_is_conflicting, instead of !is_superset.

This makes both test-engine and TEST-03-JOBS pass again.

9 years agoresolve: fix NULL deref on strv comparison
David Herrmann [Thu, 27 Nov 2014 15:08:46 +0000 (16:08 +0100)]
resolve: fix NULL deref on strv comparison

A strv might be NULL if it is empty. The txt.strings comparison doesn't
take that into account. Introduce strv_equal() to provide a proper helper
for this and fix resolve to use it.

Thanks to Stanisław Pitucha <viraptor@gmail.com> for reporting this!

9 years agobus: prefix custom endpoints with "$UID-"
David Herrmann [Thu, 27 Nov 2014 12:49:41 +0000 (13:49 +0100)]
bus: prefix custom endpoints with "$UID-"

The kdbus module will later get a policy that endpoint-names are
restricted to "<uid>-<name>" just like bus-names. Make sure that systemd
is already compatible to that.

9 years agohwdb: add a new db for the DPI/frequency settings of mice
Peter Hutterer [Tue, 25 Nov 2014 11:35:16 +0000 (21:35 +1000)]
hwdb: add a new db for the DPI/frequency settings of mice

Pointer acceleration for relative input devices (mice, trackballs, etc.)
applies to the deltas of the device. Alas, those deltas have no physical
reference point - a delta of 10 may be caused by a large movement of a
low-dpi mouse or by a minute movement of a high-dpi mouse.
Which makes pointer acceleration a bit useless and high-dpi devices
essentially unusable.

In an ideal world, we could read the DPI from the device directly and work
with that. In the world we actually live in, we need to compile this list
manually. This patch introduces the database, with the usual match formats
and a single property to be set on a device: MOUSE_DPI

That is either a single value for most mice, or a list of values for mice
that can change resolution at runtime. The exact format is detailed in the
hwdb file.

Note that we're explicitly overshooting the requirements we have for
libinput atm. Frequency could be detected in software and we don't
actually use the list of multiple resolutions (because we can't detect
when they change anyway). However, we might as well collect those values
from the get-go, adding/modifying what will eventually amount to hundreds
of entries is a bit cumbersome.

Note: we rely on the input_id builtin to tag us as mouse first, ordering
of the rules is important.

(David: fixed up typos and moved hwdb file into ./hwdb/)

9 years agounit-name: fix escaping logic in unit_name_mangle_with_suffix()
Ivan Shapovalov [Tue, 25 Nov 2014 18:58:14 +0000 (21:58 +0300)]
unit-name: fix escaping logic in unit_name_mangle_with_suffix()

Make screened character set consistent with unit_name_mangle() by splitting off
the escaping loop into a separate function.

Before this fix, unit names such as `foo@bar.target` would get transformed
into `foo\x40bar.target` when unit_name_mangle_with_suffix() is used.

https://bugs.freedesktop.org/show_bug.cgi?id=86711

9 years agocoredump: use openat
Zbigniew Jędrzejewski-Szmek [Thu, 27 Nov 2014 04:31:35 +0000 (23:31 -0500)]
coredump: use openat

9 years agojournalctl: print all possible lines immediately with --follow + --since
Andrej Manduch [Tue, 25 Nov 2014 19:47:49 +0000 (20:47 +0100)]
journalctl: print all possible lines immediately with --follow + --since

When I tryed to run journalctl with --follow and --since arguments it
behaved very strangely.
First It prints logs from what I specified in --since argument, then
printed 10 lines (as is default in --follow) and when app put something
new in to log journalctl printed everithing from the last printed line.

How to reproduce:
1. run: journalctl -m --since 14:00 --follow
Then you'll see 10 lines of logs since 14:00. After that wait until some
app add something in the journal or just run `systemd-cat echo test`
2. After that journalctl will print every single line since 14:00 and will
follow as expected.

As long as --since and --follow will eventually print all relevant
lines, I seen no reason why not to print them right away and not after
first new message in journal.

Relevant bugzillas:
        https://bugs.freedesktop.org/show_bug.cgi?id=71546
        https://bugs.freedesktop.org/show_bug.cgi?id=64291

9 years agocoredump: collect all /proc data useful for bug reporting
Jakub Filak [Tue, 25 Nov 2014 06:37:48 +0000 (07:37 +0100)]
coredump: collect all /proc data useful for bug reporting

/proc/[pid]:
- status
- maps
- limits
- cgroup
- cwd
- root
- environ
- fd/ & fdinfo/ joined in open_fds

9 years agoutil: add function getting proc environ
Jakub Filak [Tue, 25 Nov 2014 06:37:47 +0000 (07:37 +0100)]
util: add function getting proc environ

On the contrary of env, the added function returns all characters
cescaped, because it improves reproducibility.

9 years agonetworkd: route - allow routes without a gateway
Gavin Li [Mon, 24 Nov 2014 23:51:31 +0000 (15:51 -0800)]
networkd: route - allow routes without a gateway

For IPv6, the kernel returns EINVAL if a route is added with the
RTA_GATEWAY attribute set to in6addr_any (::). A route without a
gateway is useful in some situations, such as layer 3 tunneling
(sit, gre, etc.).

This patch prevents the RTA_GATEWAY attribute from being added
when route.in_addr is ip6addr_any (::).

9 years agobuild-sys: do not install tmpfiles and sysusers files by default
Łukasz Stelmach [Wed, 26 Nov 2014 08:17:50 +0000 (09:17 +0100)]
build-sys: do not install tmpfiles and sysusers files by default

9 years agotimesyncd: do not keep listening socket open forever
Sean Young [Wed, 26 Nov 2014 09:33:30 +0000 (09:33 +0000)]
timesyncd: do not keep listening socket open forever

This also makes the source port less predicatable.

9 years agologind: Support logind.conf.d directories in the usual search paths
Josh Triplett [Wed, 29 Oct 2014 12:10:48 +0000 (05:10 -0700)]
logind: Support logind.conf.d directories in the usual search paths

This makes it possible to drop in logind configuration snippets from a
package or other configuration management mechanism.

Add documentation to the header of /etc/logind.conf pointing the user at
/etc/logind.conf.d/*.conf.

Introduce a new helper, conf_parse_many, to parse configuration files in
a search path.

9 years agoIntroduce CONF_DIRS_NULSTR helper to define standard conf dirs
Josh Triplett [Wed, 29 Oct 2014 12:02:56 +0000 (05:02 -0700)]
Introduce CONF_DIRS_NULSTR helper to define standard conf dirs

Several different systemd tools define a nulstr containing a standard
series of configuration file directories, in /etc, /run, /usr/local/lib,
/usr/lib, and (#ifdef HAVE_SPLIT_USR) /lib.  Factor that logic out into
a new helper macro, CONF_DIRS_NULSTR.

9 years agojournald: proceed even if some sockets are unknown
Zbigniew Jędrzejewski-Szmek [Wed, 26 Nov 2014 20:05:55 +0000 (15:05 -0500)]
journald: proceed even if some sockets are unknown

systemd-journald would refuse to start if it received an unknown
socket from systemd. This is annoying, because the failure more for
systemd-journald is unpleasant: systemd will keep restarting journald,
but most likely the same error will occur every time. It is better
to continue. journald will try to open missing sockets on its own,
so things should mostly work.

One question is whether to close the sockets which cannot be parsed or
to keep them open. Either way we might lose some messages. This
failure is most likely for the audit socket (selinux issues), which
can be opened multiple times so this not a problem, so I decided to
keep them open because it makes it easier to debug the issue after the
system is fully started.

9 years agoswap: restore support for nofail
Zbigniew Jędrzejewski-Szmek [Wed, 26 Nov 2014 15:36:52 +0000 (10:36 -0500)]
swap: restore support for nofail

systemd stops adding automatic dependencies on swap.target to swap
units. If a dependency is required, it has to be added by unit
configuration. fstab-generator did that already, except that now it is
modified to create a Requires or Wants type dependency, depending on
whether nofail is specified in /etc/fstab. This makes .swap units
obey the nofail/noauto options more or less the same as .mount units.

Documentation is extended to clarify that, and to make
systemd.mount(5) and system.swap(5) more similar. The gist is not
changed, because current behaviour actually matches existing
documentation.

https://bugs.freedesktop.org/show_bug.cgi?id=86488

9 years agomanager: print fatal errors on the console too
Zbigniew Jędrzejewski-Szmek [Thu, 6 Nov 2014 05:05:38 +0000 (00:05 -0500)]
manager: print fatal errors on the console too

When booting in quiet mode, fatal messages would not be shown at all to the user.

https://bugzilla.redhat.com/show_bug.cgi?id=1155468

9 years agomanager: log some fatal errors at emergency level
Zbigniew Jędrzejewski-Szmek [Thu, 6 Nov 2014 05:04:06 +0000 (00:04 -0500)]
manager: log some fatal errors at emergency level

This adds a new log_emergency() function, which is equivalent to
log_error() for non-PID-1, and logs at the highest priority for PID 1.
Some messages which occur before freezing are converted to use it.

9 years agobus-policy: actually test messages against the newly added test.conf
Lennart Poettering [Wed, 26 Nov 2014 20:15:39 +0000 (21:15 +0100)]
bus-policy: actually test messages against the newly added test.conf

9 years agobus-policy: also add in other bus policy tests from dbus1
Lennart Poettering [Wed, 26 Nov 2014 19:58:34 +0000 (20:58 +0100)]
bus-policy: also add in other bus policy tests from dbus1

dbus1 only checks if these files parse correctly so let's do the same for now.

9 years agobus-policy: steal a test case for prefix ownership from dbus1, and make sure it passe...
Lennart Poettering [Wed, 26 Nov 2014 19:22:22 +0000 (20:22 +0100)]
bus-policy: steal a test case for prefix ownership from dbus1, and make sure it passes with the bus proxy enforcement

9 years agosd-bus: make sure that when we connect to the system bus we have enough creds to...
Lennart Poettering [Wed, 26 Nov 2014 17:59:31 +0000 (18:59 +0100)]
sd-bus: make sure that when we connect to the system bus we have enough creds to make security decisions

9 years agocore: make sure we have enough information when doing selinux decisions
Lennart Poettering [Wed, 26 Nov 2014 17:57:37 +0000 (18:57 +0100)]
core: make sure we have enough information when doing selinux decisions

Let's ask for the security relevant bits in a race-free way, and augment
the rest from /proc.

9 years agoupdate TODO
Lennart Poettering [Wed, 26 Nov 2014 16:27:13 +0000 (17:27 +0100)]
update TODO

9 years agosd-bus: update peeking into receieved messages, with recent kernel change we need...
Lennart Poettering [Wed, 26 Nov 2014 14:54:53 +0000 (15:54 +0100)]
sd-bus: update peeking into receieved messages, with recent kernel change we need to FREE them after all

9 years agocore: fix check for transaction destructiveness
Michal Schmidt [Wed, 26 Nov 2014 15:33:46 +0000 (16:33 +0100)]
core: fix check for transaction destructiveness

When checking if the transaction is destructive, we need to check if the
previously installed job is a superset of the new job (and hence the new
job will fold into the installed one without changing it), not the other
way around.

9 years agocore: drop now-redundant special-casing of JOB_NOP
Michal Schmidt [Wed, 26 Nov 2014 15:33:45 +0000 (16:33 +0100)]
core: drop now-redundant special-casing of JOB_NOP

job_type_is_conflicting(X, JOB_NOP) correctly gives: false.

job_type_allows_late_merge(JOB_NOP) && job_type_is_superset(X, JOB_NOP)
correctly gives: true.

9 years agocore: fix assertion failure in checking a transaction with a JOB_NOP
Michal Schmidt [Wed, 26 Nov 2014 15:33:43 +0000 (16:33 +0100)]
core: fix assertion failure in checking a transaction with a JOB_NOP

Several functions called from transaction_activate() need to correctly
handle the case where a JOB_NOP job is being checked against a unit's
pending job. The assumption that JOB_NOP never merges with other job
types was correct, but since the job_type_is_*() functions are
implemented using the merge lookup, they need to special-case JOB_NOP
to avoid hitting assertion failures.

9 years agotest: add test for crash when adding a JOB_NOP
Michal Schmidt [Wed, 26 Nov 2014 15:33:40 +0000 (16:33 +0100)]
test: add test for crash when adding a JOB_NOP

9 years agosd-bus: update kdbus.h from upstream
Lennart Poettering [Wed, 26 Nov 2014 14:43:50 +0000 (15:43 +0100)]
sd-bus: update kdbus.h from upstream

9 years agocore: reindent mount/kmod tables
Lennart Poettering [Wed, 26 Nov 2014 14:43:20 +0000 (15:43 +0100)]
core: reindent mount/kmod tables